diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java index 7ef7d8b8..f5546e69 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java @@ -320,33 +320,36 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { .collect(Collectors.toMap(ProjectProductInfo::getId, product -> product)); Map newMap = CollUtil.isEmpty(newList) ? new HashMap<>() : newList.stream() .collect(Collectors.toMap(ProjectProductInfo::getId, product -> product)); + //新增 + List addCode = newList.stream().filter(item -> item.getId() == null).map(ProjectProductInfo::getProductBomCode).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(addCode)) { + logContent.append(index).append(".产品新增").append(type).append(":").append(String.join(",", addCode)).append("\n"); + index++; + } + //删除 + List deleteCode = oldList.stream().filter(item -> !newMap.containsKey(item.getId())).map(ProjectProductInfo::getProductBomCode).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(deleteCode)) { + logContent.append(index).append(".产品删除").append(type).append(":").append(String.join(",", deleteCode)).append("\n"); + index++; + } + // 获取所有 id 的并集 Set allIds = new HashSet<>(oldMap.keySet()); allIds.addAll(newMap.keySet()); - for (Long id : allIds) { ProjectProductInfo oldProduct = oldMap.get(id); ProjectProductInfo newProduct = newMap.get(id); - - if (oldProduct == null && newProduct != null) { - // 新增产品 - logContent.append(index).append(".").append(type).append("新增:").append(StringUtils.isEmpty(newProduct.getProductBomCode()) ? "空" : newProduct.getProductBomCode()).append("\n"); - index++; - } else if (oldProduct != null && newProduct == null) { - // 删除产品 - logContent.append(index).append(".").append(type).append("删除:").append(StringUtils.isEmpty(oldProduct.getProductBomCode()) ? "空" : oldProduct.getProductBomCode()).append("\n"); - index++; - } else if (oldProduct != null) { + if (oldProduct != null && newProduct != null) { // 变更产品 index = compareField(logContent, index, "产品编号", oldProduct.getProductBomCode(), newProduct.getProductBomCode()); index = compareField(logContent, index, "数量", oldProduct.getQuantity(), newProduct.getQuantity()); - index = compareField(logContent, index, "目录单价", oldProduct.getCataloguePrice(), newProduct.getCataloguePrice()); - index = compareField(logContent, index, "指导折扣", oldProduct.getGuidanceDiscount(), newProduct.getGuidanceDiscount()); - index = compareField(logContent, index, "指导折扣", oldProduct.getDiscount(), newProduct.getDiscount()); - index = compareField(logContent, index, "单价", oldProduct.getPrice(), newProduct.getPrice()); - index = compareField(logContent, index, "总价", oldProduct.getAllPrice(), newProduct.getAllPrice()); - index = compareField(logContent, index, "目录总价", oldProduct.getCatalogueAllPrice(), newProduct.getCatalogueAllPrice()); + index = compareBigDecimalField(logContent, index, "目录单价", oldProduct.getCataloguePrice(), newProduct.getCataloguePrice()); + index = compareBigDecimalField(logContent, index, "指导折扣", oldProduct.getGuidanceDiscount(), newProduct.getGuidanceDiscount()); + index = compareBigDecimalField(logContent, index, "指导折扣", oldProduct.getDiscount(), newProduct.getDiscount()); + index = compareBigDecimalField(logContent, index, "单价", oldProduct.getPrice(), newProduct.getPrice()); + index = compareBigDecimalField(logContent, index, "总价", oldProduct.getAllPrice(), newProduct.getAllPrice()); + index = compareBigDecimalField(logContent, index, "目录总价", oldProduct.getCatalogueAllPrice(), newProduct.getCatalogueAllPrice()); index = compareField(logContent, index, "备注", oldProduct.getRemark(), newProduct.getRemark()); } } @@ -359,7 +362,7 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { index, fieldName, oldValue == null ? "空" : oldValue, - newValue == null ? "空" : oldValue)); + newValue == null ? "空" : newValue)); index++; } return index; @@ -367,13 +370,11 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { private int compareBigDecimalField(StringBuilder logContent, int index, String fieldName, BigDecimal oldValue, BigDecimal newValue) { if (oldValue != null && newValue != null && oldValue.compareTo(newValue) != 0) { - logContent.append(index).append(".") - .append(fieldName) - .append("由‘") - .append(oldValue) - .append("’变更为‘") - .append(newValue) - .append("’\n"); + logContent.append(StringUtils.format("{}.{}由[{}]变更为[{}]\n", + index, + fieldName, + oldValue, + newValue)); index++; } return index; diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectProductInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectProductInfoMapper.xml index 9eada1e1..240513e0 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectProductInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectProductInfoMapper.xml @@ -132,7 +132,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update project_product_info project_id = #{item.projectId}, - product_bom_code = #{item.productBomCode}, + product_bom_code = #{item.productBomCode}, model = #{item.model}, product_code = #{item.productCode}, product_desc = #{item.productDesc},