| | |
| | | import com.chinaztt.ztt.common.core.util.R; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.StringUtils; |
| | |
| | | if (CollectionUtil.isEmpty(list)) { |
| | | return; |
| | | } |
| | | List<String> uinck = new ArrayList<>(); |
| | | for (StructureData data : list) { |
| | | Part part = partMapper.selectOne(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getFatherPartNo()).eq(Part::getEngChgLevel, data.getFatherVersion())); |
| | | List<Part> parts = partMapper.selectList(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getPartNo())); |
| | | Part part = parts.get(0); |
| | | if (part == null) { |
| | | throw new RuntimeException("零件号:" + data.getFatherPartNo() + "不存在"); |
| | | throw new RuntimeException("零件号:" + data.getPartNo() + "不存在"); |
| | | } |
| | | Structure structure = baseMapper.selectOne(Wrappers.<Structure>lambdaQuery() |
| | | .eq(Structure::getPartId, part.getId()) |
| | | .eq(Structure::getBomTypeDb, data.getStructureType()) |
| | | .eq(Structure::getAlternativeNo, data.getAlternativeNo())); |
| | | Structure structure = baseMapper.selectOne(Wrappers.<Structure>lambdaQuery().eq(Structure::getPartId, part.getId())); |
| | | if (structure == null) { |
| | | structure = new Structure(); |
| | | BeanUtils.copyProperties(data, structure); |
| | | structure.setPartId(part.getId()); |
| | | structure.setVersion(data.getFatherVersion()); |
| | | structure.setAlternativeDesc(data.getAlternativeDesc()); |
| | | structure.setActive(true); |
| | | structure.setBomTypeDb(data.getStructureType()); |
| | | structure.setBomTypeDb("M"); |
| | | structure.setIfsSync(false); |
| | | structure.setAlternativeNo(data.getAlternativeNo()); |
| | | structure.setAlternativeNo("*"); |
| | | baseMapper.insert(structure); |
| | | } |
| | | if (uinck.contains(structure.getId() + "_" + data.getLineItemNo())) { |
| | | throw new RuntimeException("零件号:" + part.getPartNo() + "行项号重复"); |
| | | } |
| | | Part childPart = partMapper.selectOne(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getChildPartNo()).eq(Part::getEngChgLevel, data.getChildVersion())); |
| | | List<Part> childParts = partMapper.selectList(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getSonPartNo())); |
| | | Part childPart = childParts.get(0); |
| | | if (childPart == null) { |
| | | throw new RuntimeException("零件号:" + data.getChildPartNo() + "不存在"); |
| | | throw new RuntimeException("零件号:" + data.getSonPartNo() + "不存在"); |
| | | } |
| | | List<Operation> operations = operationMapper.selectList(Wrappers.<Operation>lambdaQuery().eq(Operation::getName, data.getOperationName())); |
| | | Operation operation = operations.get(0); |
| | | StructureComponent component = new StructureComponent(); |
| | | component.setStructureId(structure.getId()); |
| | | component.setPartId(childPart.getId()); |
| | | component.setPlanningMethod(childPart.getPlanningMethod()); |
| | | component.setQpa(new BigDecimal(data.getQpa())); |
| | | component.setLineItemNo(Integer.valueOf(data.getLineItemNo())); |
| | | component.setDiscNum(StringUtils.isEmpty(data.getDiskNum()) ? null : new Long(data.getDiskNum())); |
| | | //查询工序 如果有多个获取第一个 |
| | | List<Operation> operationList = operationMapper.selectList(Wrappers.<Operation>lambdaQuery() |
| | | .eq(Operation::getName, data.getOperationName()) |
| | | .eq(Operation::getActive, true).orderByAsc(Operation::getId)); |
| | | if (CollectionUtil.isEmpty(operationList)) { |
| | | throw new RuntimeException("工序" + data.getOperationName() + "不存在"); |
| | | } |
| | | component.setOperationId(operationList.get(0).getId()); |
| | | component.setQpa(new BigDecimal(1));// todo: 产品结构导入数量,还缺一个行号 |
| | | component.setOperationId(operation.getId()); |
| | | structureComponentMapper.insert(component); |
| | | uinck.add(structure.getId() + "_" + data.getLineItemNo()); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public R fullSave(StructureDTO structure) { |
| | | System.out.println(structure); |
| | | System.out.println("==============================="); |
| | | int noCount = baseMapper.selectCount(Wrappers.<Structure>lambdaQuery() |
| | | .eq(Structure::getAlternativeNo, structure.getAlternativeNo()) |
| | | .eq(Structure::getBomTypeDb, structure.getBomTypeDb()) |