From cf9a5039e6db9d1d5963e3fe1a37d00169ec2ef7 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期三, 25 六月 2025 11:18:22 +0800
Subject: [PATCH] 验收报告修改

---
 src/main/java/com/whyc/service/ProductHistoryService.java |  161 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 94 insertions(+), 67 deletions(-)

diff --git a/src/main/java/com/whyc/service/ProductHistoryService.java b/src/main/java/com/whyc/service/ProductHistoryService.java
index fe88546..34c60d0 100644
--- a/src/main/java/com/whyc/service/ProductHistoryService.java
+++ b/src/main/java/com/whyc/service/ProductHistoryService.java
@@ -13,11 +13,14 @@
 import com.whyc.pojo.ProductHistory;
 import com.whyc.pojo.ProductLockLog;
 import com.whyc.util.ActionUtil;
+import com.whyc.util.DateUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
+import java.util.LinkedList;
 import java.util.List;
 
 @Service
@@ -48,10 +51,38 @@
     }
 
     /**鏂板杩藉姞鐨勭増鏈苟灏嗗師鍏堢殑鐗堟湰鐨勫惎鐢ㄨ缃负鏈惎鐢�*/
+    @Transactional
     public void insertAndUpdateEnabled(ProductHistory productHistory) {
+        QueryWrapper<ProductHistory> query = Wrappers.query();
+        query.eq("parent_code",productHistory.getParentCode())
+                .eq("custom_code",productHistory.getCustomCode()).ne("enabled",0);
+        List<ProductHistory> productNoZeroList = mapper.selectList(query);
+        //娣诲姞鏂板鏃ュ織鍒皌b_product_lock_log琛�
+        List<ProductLockLog> lockLogs = new LinkedList<>();
+        for (ProductHistory historyNoZero : productNoZeroList) {
+            ProductLockLog lockLog = new ProductLockLog();
+            lockLog.setParentCode(historyNoZero.getParentCode());
+            lockLog.setCustomCode(historyNoZero.getCustomCode());
+            lockLog.setVersion(historyNoZero.getVersion());
+            lockLog.setVersionTime(DateUtil.YYYY_MM_DD_HH_MM_SS.format(historyNoZero.getVersionTime()));
+            if(historyNoZero.getEnabled() == 1) {
+                lockLog.setReason("浜у搧bom涓婁紶,鍘熺敓鏁堢増鏈攣瀹�");
+            }else{
+                lockLog.setReason("浜у搧bom涓婁紶,鍘熷緟瀹℃牳鐗堟湰閿佸畾");
+            }
+            lockLog.setOwner(ActionUtil.getUser().getName());
+            lockLog.setCreateTime(new Date());
+            //1浠h〃鏃ュ織绫诲瀷涓�:閿佸畾
+            lockLog.setLockFlag(1);
+
+            lockLogs.add(lockLog);
+        }
+        if(lockLogs.size()>0) {
+            lockLogService.insertBatch(lockLogs);
+        }
         UpdateWrapper<ProductHistory> update = Wrappers.update();
         update.set("enabled",0).eq("parent_code",productHistory.getParentCode())
-                .eq("custom_code",productHistory.getCustomCode()).eq("enabled",1);
+                .eq("custom_code",productHistory.getCustomCode()).ne("enabled",0);
         mapper.update(null,update);
 
         mapper.insert(productHistory);
@@ -82,42 +113,41 @@
         query.eq("parent_code",parentCode).eq("custom_code",customCode).orderByDesc("version").last(" limit 1");
         return mapper.selectOne(query);
     }
-    //鍘嗗彶鐗堟湰鍙敤鎬ц瀹�
+    //鍘嗗彶鐗堟湰鍙敤鎬ц瀹�<浜у搧涓寘鍚挘閲戜欢锛�0120锛夊鏋滃寘鍚渶瑕佹妸褰撴垚浜у搧鐨勯挘閲戜欢閿佹帀
     @Transactional
     public Response setpHistoryEnable(String parentCode, String customCode, int version, int enabled, String reason, String versionTime) {
-        UpdateWrapper wrapper=new UpdateWrapper();
-        wrapper.eq("parent_code",parentCode);
-        wrapper.eq("custom_code",customCode);
         int flag=0;
-        //鏌ュ嚭鏈�鏂颁笂浼犵殑鐗堟湰
-        QueryWrapper qhisWrapper=new QueryWrapper();
-        qhisWrapper.eq("parent_code",parentCode);
-        qhisWrapper.eq("custom_code",customCode);
-        qhisWrapper.eq("enabled",-1);
-        ProductHistory pHistory=mapper.selectOne(qhisWrapper);
-        if(enabled==1){
+        QueryWrapper qWrapper=new QueryWrapper();
+        qWrapper.eq("parent_code",parentCode);
+        qWrapper.eq("custom_code",customCode);
+        //1.鏌ヨ褰撳墠product涓殑淇℃伅
+        Product product=productMapper.selectOne(qWrapper);
+        if(enabled==1){//瑙i攣
             //鍏堝皢鎵�鏈夌殑閿佸畾
+            UpdateWrapper wrapper=new UpdateWrapper();
+            wrapper.eq("parent_code",parentCode);
+            wrapper.eq("custom_code",customCode);
             wrapper.set("enabled",0);
-            flag=mapper.update(null,wrapper);
-            //鍐嶅皢閫変腑鐨勮涓哄彲鐢�(鏈�鏂颁笂浼犵殑鎵緀nabled=-1)
-            if(version==-1){
-                wrapper.eq("enabled",-1);
-            }else{
-                wrapper.eq("version",version);
-            }
-            wrapper.set("enabled",1);
-            flag=mapper.update(null,wrapper);
+            mapper.update(null,wrapper);
+            //鍐嶅皢閫変腑鐨勮涓哄彲鐢�(鏌ュ嚭瑕佷娇鐢ㄧ増鏈�)
+            QueryWrapper hisWrapper=new QueryWrapper();
+            hisWrapper.eq("parent_code",parentCode);
+            hisWrapper.eq("custom_code",customCode);
+            hisWrapper.eq("version",version);
+            ProductHistory his=mapper.selectOne(hisWrapper);
+            UpdateWrapper wrapper1=new UpdateWrapper();
+            wrapper1.eq("parent_code",parentCode);
+            wrapper1.eq("custom_code",customCode);
+            wrapper1.eq("id",his.getId());
+            wrapper1.set("enabled",1);
+            flag=mapper.update(null,wrapper1);
             if(flag>0){
-                QueryWrapper qWrapper=new QueryWrapper();
-                qWrapper.eq("parent_code",parentCode);
-                qWrapper.eq("custom_code",customCode);
-                //1.鏌ヨ褰撳墠product涓殑淇℃伅
-                Product product=productMapper.selectOne(qWrapper);
                 //2.灏嗛�変腑鐨勭増鏈殑鍘嗗彶淇℃伅鏌ヨ鍑烘潵
+                /*qWrapper.eq("id",his.getId());
+                ProductHistory pHistory=mapper.selectOne(qWrapper);*/
                 //3:prodcut涓垹闄ゆ棫鐨勪骇鍝佷俊鎭�
                 UpdateWrapper deleteWrapper=new UpdateWrapper();
-                deleteWrapper.eq("parent_code",parentCode);
-                deleteWrapper.eq("custom_code",customCode);
+                deleteWrapper.eq("id",product.getId());
                 productMapper.delete(deleteWrapper);
                 //4.productBom涓垹闄ゆ棫鐨勪俊鎭�
                 if(product!=null){
@@ -125,14 +155,17 @@
                     bomWrapper.eq("product_id",product.getId());
                     productBomMapper.delete(bomWrapper);
                 }
-                if(pHistory!=null){
+                if(his!=null){
                     // 5.鍦╬roduct涓彃鍏ヨ瀹氬彲鐢ㄧ殑pHistory
-                    productMapper.insertPselectPH(pHistory.getId());
+                    productMapper.insertPselectPH(his.getId());
                     //6.鍦╬roductBom涓彃鍏HsitoryBom鏌ヨ鍑虹殑鏁版嵁
-                    productBomMapper.insertBomSelectBomH(pHistory.getId(),pHistory.getSubVersionMax());
+                    productBomMapper.insertBomSelectBomH(his.getId(),his.getSubVersionMax());
                 }
             }
         }else{
+            UpdateWrapper wrapper=new UpdateWrapper();
+            wrapper.eq("parent_code",parentCode);
+            wrapper.eq("custom_code",customCode);
             wrapper.eq("version",version);
             wrapper.set("enabled",0);
             flag=mapper.update(null,wrapper);
@@ -146,44 +179,23 @@
             productMapper.update(null,uWrapper);
 
             //4.鏌ヨ浜у搧鏄惁瀛樺湪鐗╂枡鏃堕挘閲戜欢鐨勪骇鍝�
-            Material material_0120=productMapper.selectMaterial_0120(parentCode,customCode);
+            List<Material> list=productMapper.selectMaterial_0120(parentCode,customCode);
             //濡傛灉瀛樺湪鍒欓攣瀹�
-            if(material_0120!=null){
-                //鍏堥攣瀹氬巻鍙�
-                UpdateWrapper wrapperHistory_0120=new UpdateWrapper();
-                wrapperHistory_0120.eq("parent_code",material_0120.getSubCode());
-                wrapperHistory_0120.set("enabled",0);
-                mapper.update(null,wrapperHistory_0120);
-                //鍐嶈缃疄鏃朵负-1
-                UpdateWrapper wrapper_0120=new UpdateWrapper();
-                wrapper_0120.eq("parent_code",material_0120.getSubCode());
-                //璁句负涓嶅彲鐢ㄧ増鏈负-1
-                wrapper_0120.set("version",-1);
-                productMapper.update(null,wrapper_0120);
-            }
-            /*if(flag>0){
-                //
-                QueryWrapper qWrapper=new QueryWrapper();
-                qWrapper.eq("parent_code",parentCode);
-                qWrapper.eq("custom_code",customCode);
-
-                //1.鏌ヨ褰撳墠product涓殑淇℃伅
-                Product product=productMapper.selectOne(qWrapper);
-
-                //2.prodcut涓垹闄ゆ棫鐨勪骇鍝佷俊鎭�
-                UpdateWrapper deleteWrapper=new UpdateWrapper();
-                deleteWrapper.eq("parent_code",parentCode);
-                deleteWrapper.eq("custom_code",customCode);
-                productMapper.delete(deleteWrapper);
-
-                //3.鍒犻櫎productBom
-                if(product!=null){
-                    UpdateWrapper bomWrapper=new UpdateWrapper();
-                    bomWrapper.eq("product_id",product.getId());
-                    productBomMapper.delete(bomWrapper);
+            if(list!=null&&list.size()>0){
+                for (Material material_0120:list) {
+                    //鍏堥攣瀹氬巻鍙�
+                    UpdateWrapper wrapperHistory_0120=new UpdateWrapper();
+                    wrapperHistory_0120.eq("parent_code",material_0120.getSubCode());
+                    wrapperHistory_0120.set("enabled",0);
+                    mapper.update(null,wrapperHistory_0120);
+                    //鍐嶈缃疄鏃朵负-1
+                    UpdateWrapper wrapper_0120=new UpdateWrapper();
+                    wrapper_0120.eq("parent_code",material_0120.getSubCode());
+                    //璁句负涓嶅彲鐢ㄧ増鏈负-1
+                    wrapper_0120.set("version",-1);
+                    productMapper.update(null,wrapper_0120);
                 }
-
-            }*/
+            }
 
         }
         //閿佸畾鍜岃В閿佽褰曟坊鍔�
@@ -227,4 +239,19 @@
         }
         return null;
     }
+
+    public boolean checkExists(String parentCode, String customCode) {
+        QueryWrapper<ProductHistory> query = Wrappers.query();
+        query.eq("parent_code",parentCode);
+        if(!StringUtils.isBlank(customCode)){ //鏍囧噯浜у搧
+            query.eq("custom_code",customCode);
+        }
+        query.last(" limit 1");
+        ProductHistory productHistory = mapper.selectOne(query);
+        return productHistory!=null;
+    }
+
+    public ProductHistory getById(Integer id) {
+        return mapper.selectById(id);
+    }
 }

--
Gitblit v1.9.1