소스 검색

外协供应商 新建可以重复的问题

dongke 1 년 전
부모
커밋
1292cab94b
1개의 변경된 파일50개의 추가작업 그리고 11개의 파일을 삭제
  1. 50 11
      src/main/java/com/dk/mdm/service/sale/OrderService.java

+ 50 - 11
src/main/java/com/dk/mdm/service/sale/OrderService.java

@@ -317,14 +317,33 @@ public class OrderService extends BaseService<Order> {
 
 
         // 订单明细保存
         // 订单明细保存
         if (orderVO.getItemList() != null && orderVO.getItemList().size() > 0) {
         if (orderVO.getItemList() != null && orderVO.getItemList().size() > 0) {
+            // 使用HashMap来存储SupName到SupId的映射
+            Map<String, String> supNameToSupIdMap = new HashMap<>();
             for (OrderItemVO orderItemVO : orderVO.getItemList()) {
             for (OrderItemVO orderItemVO : orderVO.getItemList()) {
-                //外协品供应上只有name 没有id 的时候 要新建供应商
-                if (orderItemVO.getSkuId() == null) { //说明外协品
-                    if (orderItemVO.getSupId() == null) { //说明在库里不存在这个供应商
-                        Supplier supplier = supplierService.saleinsert(new SupplierVo().setSupName(orderItemVO.getSupName()).setSupType("供应商类别-外协").setCpId(authUtils.getStaff().getCpId()));
-                        orderItemVO.setSupId(supplier.getSupId());
+                // 如果SKU ID为空,表示外协品
+                if (orderItemVO.getSkuId() == null) {
+                    // 如果SupId为空,表示在库中不存在这个供应商
+                    if (orderItemVO.getSupId() == null) {
+                        // 检查是否已经为这个SupName创建了供应商
+                        String existingSupId = supNameToSupIdMap.get(orderItemVO.getSupName());
+                        if (existingSupId == null) {
+                            // 尚未创建,新建供应商
+                            SupplierVo supplierVo = new SupplierVo()
+                                    .setSupName(orderItemVO.getSupName())
+                                    .setSupType("供应商类别-外协")
+                                    .setCpId(authUtils.getStaff().getCpId());
+                            Supplier supplier = supplierService.saleinsert(supplierVo);
+                            // 将新创建的SupId存入映射
+                            supNameToSupIdMap.put(orderItemVO.getSupName(), supplier.getSupId());
+                            // 设置orderItemVO的SupId
+                            orderItemVO.setSupId(supplier.getSupId());
+                        } else {
+                            // 已经创建,直接设置orderItemVO的SupId
+                            orderItemVO.setSupId(existingSupId);
+                        }
                     }
                     }
                 }
                 }
+
                 OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
                 OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
                 orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
                 orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
                 if (orderItem.getPriceStd() == null) {
                 if (orderItem.getPriceStd() == null) {
@@ -339,6 +358,8 @@ public class OrderService extends BaseService<Order> {
             }
             }
         }
         }
 
 
+
+
         /**************************************** 客户收款begin ********************************/
         /**************************************** 客户收款begin ********************************/
         if (orderVO.getReceiptList() != null && orderVO.getReceiptList().size() > 0) {
         if (orderVO.getReceiptList() != null && orderVO.getReceiptList().size() > 0) {
             // 商户产品版本
             // 商户产品版本
@@ -592,14 +613,33 @@ public class OrderService extends BaseService<Order> {
 
 
         // 新增的
         // 新增的
         List<OrderItemVO> insertOrderItemVOList = orderVO.getItemList().stream().filter(it -> it.getItemId() == null).collect(Collectors.toList());
         List<OrderItemVO> insertOrderItemVOList = orderVO.getItemList().stream().filter(it -> it.getItemId() == null).collect(Collectors.toList());
+         // 使用HashMap来存储SupName到SupId的映射
+        Map<String, String> supNameToSupIdMap = new HashMap<>();
         for (OrderItemVO orderItemVO : insertOrderItemVOList) {
         for (OrderItemVO orderItemVO : insertOrderItemVOList) {
-            //外协品供应上只有name 没有id 的时候 要新建供应商
-            if (orderItemVO.getSkuId() == null) { //说明外协品
-                if (orderItemVO.getSupId() == null) { //说明在库里不存在这个供应商
-                    Supplier supplier = supplierService.saleinsert(new SupplierVo().setSupName(orderItemVO.getSupName()).setSupType("供应商类别-外协").setCpId(authUtils.getStaff().getCpId()));
-                    orderItemVO.setSupId(supplier.getSupId());
+            // 如果SKU ID为空,表示外协品
+            if (orderItemVO.getSkuId() == null) {
+                // 如果SupId为空,表示在库中不存在这个供应商
+                if (orderItemVO.getSupId() == null) {
+                    // 检查是否已经为这个SupName创建了供应商
+                    String existingSupId = supNameToSupIdMap.get(orderItemVO.getSupName());
+                    if (existingSupId == null) {
+                        // 尚未创建,新建供应商
+                        SupplierVo supplierVo = new SupplierVo()
+                                .setSupName(orderItemVO.getSupName())
+                                .setSupType("供应商类别-外协")
+                                .setCpId(authUtils.getStaff().getCpId());
+                        Supplier supplier = supplierService.saleinsert(supplierVo);
+                        // 将新创建的SupId存入映射
+                        supNameToSupIdMap.put(orderItemVO.getSupName(), supplier.getSupId());
+                        // 设置orderItemVO的SupId
+                        orderItemVO.setSupId(supplier.getSupId());
+                    } else {
+                        // 已经创建,直接设置orderItemVO的SupId
+                        orderItemVO.setSupId(existingSupId);
+                    }
                 }
                 }
             }
             }
+
             OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
             OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
             orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
             orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
             orderItem.setItemId(UUID.randomUUID().toString());
             orderItem.setItemId(UUID.randomUUID().toString());
@@ -608,7 +648,6 @@ public class OrderService extends BaseService<Order> {
             orderItemVO.setOrderId(orderVO.getOrderId());
             orderItemVO.setOrderId(orderVO.getOrderId());
         }
         }
 
 
-
         // 删除业绩信息
         // 删除业绩信息
         multiOwnerMapper.deleteByOrderId(order.getOrderId());
         multiOwnerMapper.deleteByOrderId(order.getOrderId());