| | |
| | | } |
| | | |
| | | // 查询主生产计划 |
| | | List<ProductionPlan> plans = productionPlanMapper.selectBatchIds(productionPlanDto.getIds()); |
| | | plans.sort(Comparator.comparingLong(ProductionPlan::getId)); |
| | | List<ProductionPlanDto> plans = productionPlanMapper.selectWithMaterialByIds(productionPlanDto.getIds()); |
| | | |
| | | // 校验是否存在不同的产品名称 |
| | | String firstProductName = plans.get(0).getProductName(); |
| | |
| | | } |
| | | |
| | | // 校验是否存在不同的产品规格 |
| | | String firstProductSpec = plans.get(0).getProductSpec(); |
| | | if (plans.stream().anyMatch(p -> !p.getProductSpec().equals(firstProductSpec))) { |
| | | String firstProductSpec = plans.get(0).getSpecification(); |
| | | if (plans.stream().anyMatch(p -> !p.getSpecification().equals(firstProductSpec))) { |
| | | throw new BaseException("合并失败,存在不同的产品规格"); |
| | | } |
| | | |
| | | |
| | | // 叠加剩余方数 |
| | | BigDecimal totalRemainingVolume = plans.stream() |
| | |
| | | plan.setCustomerName(formData.getString("textField_lbkozohg")); |
| | | |
| | | String materialCode = row.getString("textField_l9xo62q5"); |
| | | plan.setMaterialCode(materialCode); |
| | | |
| | | // 根据物料编码查询物料信息表,关联物料ID |
| | | if (StringUtils.isNotEmpty(materialCode)) { |
| | | LambdaQueryWrapper<ProductMaterial> queryWrapper = new LambdaQueryWrapper<>(); |
| | |
| | | } |
| | | } |
| | | |
| | | plan.setProductName(row.getString("textField_l9xo62q7")); |
| | | plan.setProductSpec(row.getString("textField_l9xo62q8")); |
| | | plan.setLength(row.getInteger("numberField_lb7lgatg_value")); |
| | | plan.setWidth(row.getInteger("numberField_lb7lgath_value")); |
| | | plan.setHeight(row.getInteger("numberField_lb7lgati_value")); |
| | |
| | | // Map (formInstanceId + materialCode) |
| | | Map<String, ProductionPlan> existMap = new HashMap<>(); |
| | | for (ProductionPlan p : existList) { |
| | | String key = p.getFormInstanceId() + "_" + p.getMaterialCode(); |
| | | String key = p.getFormInstanceId() + "_" + p.getProductMaterialId(); |
| | | existMap.put(key, p); |
| | | } |
| | | |
| | | // 遍历同步数据 |
| | | for (ProductionPlan plan : list) { |
| | | String key = plan.getFormInstanceId() + "_" + plan.getMaterialCode(); |
| | | String key = plan.getFormInstanceId() + "_" + plan.getProductMaterialId(); |
| | | ProductionPlan exist = existMap.get(key); |
| | | if (exist == null) { |
| | | // 新增 |
| | | this.save(plan); |
| | | affected++; |
| | | log.info("新增数据 formInstanceId={}, materialCode={}", plan.getFormInstanceId(), plan.getMaterialCode()); |
| | | log.info("新增数据 formInstanceId={}, materialCode={}", plan.getFormInstanceId(), plan.getProductMaterialId()); |
| | | } else { |
| | | // 判断是否需要更新 |
| | | if (exist.getFormModifiedTime() == null || !exist.getFormModifiedTime().equals(plan.getFormModifiedTime())) { |
| | |
| | | plan.setCreateTime(exist.getCreateTime()); |
| | | this.updateById(plan); |
| | | affected++; |
| | | log.info("更新数据 formInstanceId={}, materialCode={}", plan.getFormInstanceId(), plan.getMaterialCode()); |
| | | log.info("更新数据 formInstanceId={}, materialCode={}", plan.getFormInstanceId(), plan.getProductMaterialId()); |
| | | } |
| | | } |
| | | } |