From ff83a01df6bd810003fc60c39ed8247cd989590f Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期三, 20 九月 2023 10:16:33 +0800
Subject: [PATCH] 产品上传后enabled默认-1状态,校验定制产品的产品编码是否被占用

---
 src/main/java/com/whyc/service/ProductService.java |   41 ++++++++++++++++++++++++++++++-----------
 1 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/whyc/service/ProductService.java b/src/main/java/com/whyc/service/ProductService.java
index 7a2090c..3551fc8 100644
--- a/src/main/java/com/whyc/service/ProductService.java
+++ b/src/main/java/com/whyc/service/ProductService.java
@@ -435,6 +435,13 @@
         Date date = new Date();
         boolean isCopyCustom = false;
         Product relatedProduct = null;
+        //鏍¢獙鍑℃槸鏈夊畾鍒惰〃鍗曞彿鐨勪骇鍝侊紝涓嶈兘浣跨敤宸蹭笂浼犺繃鐨勬爣鍑嗕骇鍝佺紪鐮�
+        if(customCode!=null && !customCode.trim().equals("")){
+            ProductHistory standard = phService.getStandard(parentCode);
+            if(standard !=null){
+                return new Response().set(1,false,"绯荤粺瀛樺湪姝ゆ姣嶇墿鏂欑紪鐮佺殑鏍囧噯浜у搧,鎷掔粷鎻愪氦");
+            }
+        }
         //鍒ゆ柇鏄惁涓轰緷鎹骇鍝佸鍒跺畾鍒剁殑浜у搧
         if(bomList == null){
             bomList = pbService.getBomByProductId(product.getId());
@@ -657,21 +664,23 @@
             his.setVersionTime(product.getVersionTime());
             his.setVersion(1);
             his.setSubVersionMax(1);
-            his.setEnabled(1);
+            //涓婁紶鍚庣殑鏈�鍒濆浣胯兘鐘舵�佷负-1
+            //绗竴娆¤В閿佸悗,鍚庣画鐨勯攣瀹氬拰瑙i攣鍦�0鍜�1涔嬮棿鍒囨崲
+            his.setEnabled(-1);
             phService.insertAndUpdateEnabled(his);
             //phService.insert(his);
-            // -> product
+            // -> product 鐜版湁浜у搧鍜屼骇鍝乥om涓嶉渶瑕佹彃鍏�,浣嗘槸瑕佸仛鍒犻櫎鍘熸潵鐨勬棫鐗堟湰
             product.setId(his.getId());
             product.setCreateTime(date);
             product.setVersion(1);
-            //insert(product);
-            deleteAndInsert(product);
+            //deleteAndInsert(product);
+            delete(product);
             // -> bom
-            bomList.forEach(bom-> {
+            /*bomList.forEach(bom-> {
                 bom.setProductId(product.getId());
                 bom.setSubVersion(1);
             });
-            pbService.insertBatch(bomList);
+            pbService.insertBatch(bomList);*/
             // -> bom_his
             List<ProductBomHistory> bomHistoryList = new LinkedList<>();
             bomList.forEach(bom->{
@@ -900,15 +909,17 @@
             productHistory.setVersion(nextVersion);
             //鐗堟湰鏂板,鍒濆bom瀛愪欢鐗堟湰涓�1
             productHistory.setSubVersionMax(1);
-            productHistory.setEnabled(1);
+
+            productHistory.setEnabled(-1);
             phService.insertAndUpdateEnabled(productHistory);
-            // -> product
+            // -> product 鐜版湁浜у搧鍜屼骇鍝乥om涓嶉渶瑕佹彃鍏�,浣嗘槸瑕佸仛鍒犻櫎鍘熸潵鐨勬棫鐗堟湰
             product.setId(productHistory.getId());
             product.setCreateTime(date);
             product.setVersion(nextVersion);
-            deleteAndInsert(product);
+            //deleteAndInsert(product);
+            delete(product);
             // -> product_bom
-            List<ProductBom> productBomList = new LinkedList<>();
+            /*List<ProductBom> productBomList = new LinkedList<>();
             bomMaterialList.forEach(bomMaterial -> {
                 ProductBom bom = new ProductBom();
                 bom.setProductId(product.getId());
@@ -926,7 +937,7 @@
 
                 productBomList.add(bom);
             });
-            pbService.insertBatch(productBomList);
+            pbService.insertBatch(productBomList);*/
             // -> product_bom_history
             List<ProductBomHistory> bomHistoryList = new LinkedList<>();
             bomMaterialList.forEach(bomMaterial -> {
@@ -975,6 +986,14 @@
         mapper.insert(product);
     }
 
+    private void delete(Product product) {
+        Product productDB = getByProductCodeAndCustomCode(product.getParentCode(), product.getCustomCode());
+        if(productDB!=null) {
+            mapper.deleteById(productDB.getId());
+            pbService.deleteByProductId(productDB.getId());
+        }
+    }
+
     private Product getByProductCodeAndCustomCode(String parentCode, String customCode) {
         QueryWrapper<Product> query = Wrappers.query();
         query.eq("parent_code",parentCode).eq("custom_code",customCode).last(" limit 1");

--
Gitblit v1.9.1