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/TechnicalSpecificationService.java |   99 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 93 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/whyc/service/TechnicalSpecificationService.java b/src/main/java/com/whyc/service/TechnicalSpecificationService.java
index 9b76a18..f248d27 100644
--- a/src/main/java/com/whyc/service/TechnicalSpecificationService.java
+++ b/src/main/java/com/whyc/service/TechnicalSpecificationService.java
@@ -8,6 +8,7 @@
 import com.whyc.dto.Response;
 import com.whyc.mapper.TechnicalSpecificationMapper;
 import com.whyc.pojo.TechnicalSpecification;
+import com.whyc.pojo.TechnicalSpecificationLockLog;
 import com.whyc.util.ActionUtil;
 import com.whyc.util.CommonUtil;
 import com.whyc.util.DateUtil;
@@ -42,7 +43,7 @@
     private ProductHistoryService productHistoryService;
 
     @Autowired
-    private DocLogService logService;
+    private TechnicalSpecificationLockLogService lockLogService;
 
     public Response<Object> excelParse(InputStream inputStream) throws IOException, InvalidFormatException, ParseException {
         TechnicalSpecification specification = new TechnicalSpecification();
@@ -165,29 +166,60 @@
         specification.setFileUrl(specificationHttpUrl+File.separator+file1Name);
         specification.setExcelUrl(specificationHttpUrl+File.separator+file2Name);
         specification.setCreateTime(date);
+        specification.setUploadUser(ActionUtil.getUser().getName());
         //閿佸畾-璐熻矗浜烘墠鑳借В閿�
         specification.setLockFlag(1);
-        specification.setLockReason("绯荤粺榛樿閿佸畾,鏂扮増鏈妧鏈鍒欎功涓婁紶");
         mapper.insert(specification);
         //閿佸畾閫傜敤鏈哄瀷鐨勭敓鏁堢増鏈�
         lockOtherByAppliedProduct(specification);
+        //閿佸畾鏃ュ織
+        TechnicalSpecificationLockLog lockLog = new TechnicalSpecificationLockLog();
+        lockLog.setUserName("绯荤粺");
+        lockLog.setTechnicalSpecificationId(specification.getId());
+        lockLog.setReason("绯荤粺榛樿閿佸畾,鏂扮増鏈妧鏈鍒欎功涓婁紶");
+        lockLog.setCreateTime(date);
+        lockLog.setStatus(0);
+        lockLogService.add(lockLog);
         return new Response().set(1,true,"涓婁紶瀹屾垚");
     }
 
     private void lockOtherByAppliedProduct(TechnicalSpecification specification) {
+        //鍏堟煡璇�
+        QueryWrapper<TechnicalSpecification> query = Wrappers.query();
+        query.eq("apply_material_code",specification.getApplyMaterialCode());
+        query.eq("apply_custom_code", specification.getApplyCustomCode());
+        query.eq("lock_flag",0);
+        query.last(" limit 1");
+        TechnicalSpecification specificationToBeLocked = mapper.selectOne(query);
+        if(specificationToBeLocked !=null){ //瀛樺湪鐢熸晥鐨�,闇�瑕佽閿佸畾
+            specificationToBeLocked.setLockFlag(1);
+            mapper.updateById(specificationToBeLocked);
+            //閿佸畾鏃ュ織
+            TechnicalSpecificationLockLog lockLog = new TechnicalSpecificationLockLog();
+            lockLog.setUserName("绯荤粺");
+            lockLog.setTechnicalSpecificationId(specificationToBeLocked.getId());
+            lockLog.setReason("绯荤粺榛樿閿佸畾,鏂扮増鏈妧鏈鍒欎功涓婁紶,鏃х増鏈攣瀹�");
+            lockLog.setCreateTime(new Date());
+            lockLog.setStatus(0);
+            lockLogService.add(lockLog);
+        }
+
+
         UpdateWrapper<TechnicalSpecification> update = Wrappers.update();
         update.set("lock_flag",1);
-        update.set("lock_reason","绯荤粺榛樿閿佸畾,鏂扮増鏈妧鏈鍒欎功涓婁紶,鏃х増鏈攣瀹�");
+        //update.set("lock_reason","绯荤粺榛樿閿佸畾,鏂扮増鏈妧鏈鍒欎功涓婁紶,鏃х増鏈攣瀹�");
         update.eq("apply_material_code",specification.getApplyMaterialCode());
         update.eq("apply_custom_code", specification.getApplyCustomCode());
 
         update.eq("lock_flag",0);
         update.last(" limit 1");
+
         mapper.update(null,update);
     }
 
     @Transactional
-    public Response updateLock(int id, int lockFlag) {
+    public Response updateLock(int id, int lockFlag, String reason) {
+        Date date = new Date();
         String userName = ActionUtil.getUser().getName();
         TechnicalSpecification specificationInDB = get(id);
         if(!userName.equals(specificationInDB.getOwner())){
@@ -202,14 +234,28 @@
                 }else{
                     //閿佸畾鐩墠鐢熸晥鐗堟湰
                     availableVersion.setLockFlag(1);
-                    availableVersion.setLockReason("鏂扮増鏈В閿�,姝ゆ棫鐗堟湰閿佸畾");
                     mapper.updateById(availableVersion);
+                    //閿佸畾鏃ュ織
+                    TechnicalSpecificationLockLog lockLog = new TechnicalSpecificationLockLog();
+                    lockLog.setUserName(userName);
+                    lockLog.setTechnicalSpecificationId(id);
+                    lockLog.setReason("鏂扮増鏈В閿�,姝ゆ棫鐗堟湰閿佸畾");
+                    lockLog.setCreateTime(date);
+                    lockLog.setStatus(0);
+                    lockLogService.add(lockLog);
                 }
             }
         }
         specificationInDB.setLockFlag(lockFlag);
         mapper.updateById(specificationInDB);
-
+        //閿佸畾/瑙i攣鏃ュ織
+        TechnicalSpecificationLockLog lockLog = new TechnicalSpecificationLockLog();
+        lockLog.setUserName(userName);
+        lockLog.setTechnicalSpecificationId(id);
+        lockLog.setReason(reason);
+        lockLog.setCreateTime(date);
+        lockLog.setStatus(lockFlag==1?0:1);
+        lockLogService.add(lockLog);
         return new Response().set(1, true, "鏇存柊瀹屾垚");
     }
 
@@ -251,9 +297,35 @@
             query.eq("lock_flag",lockFlag);
         }
         List<TechnicalSpecification> list=mapper.selectList(query);
+        //鏍囪瘑姣忔潯璁板綍閫傜敤鏈哄瀷鍙敤鐨勭増鏈殑璐熻矗浜烘槸涓嶆槸杩欐潯璁板綍鐨勮礋璐d汉
+        if(list!=null&&list.size()>0){
+            for (TechnicalSpecification t:list) {
+                TechnicalSpecification enableTe=getEnableVersion(t);
+                if(enableTe!=null){
+                   if(enableTe.getOwner().equals(t.getOwner())){
+                       t.setFlag(1);
+                   }else{
+                       t.setFlag(0);
+                   }
+                }else {
+                    t.setFlag(1);
+                }
+            }
+        }
         PageInfo pageInfo=new PageInfo(list);
         return new Response().setII(1,list!=null,pageInfo,"鏌ヨ鎶�鏈鏍间功");
     }
+    //鏌ヨ姣忔潯璁板綍閫傜敤鏈哄瀷鍙敤鐨勭増鏈�
+    public TechnicalSpecification getEnableVersion(TechnicalSpecification t){
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("apply_material_code",t.getApplyMaterialCode());
+        wrapper.eq("apply_model",t.getApplyModel());
+        wrapper.eq("apply_custom_code",t.getApplyCustomCode());
+        wrapper.last("limit 1");
+        TechnicalSpecification enableTe=mapper.selectOne(wrapper);
+        return enableTe;
+    }
+
    //鏌ヨ鎸囧畾鎶�鏈鏍间功鐨勬墍鏈夌増鏈�
     public Response getVersionByInfo(String applyMaterialCode, String applyModel, String applyCustomCode) {
         QueryWrapper<TechnicalSpecification> query = Wrappers.query();
@@ -267,6 +339,21 @@
             query.eq("apply_custom_code",applyCustomCode);
         }
         List<TechnicalSpecification> list=mapper.selectList(query);
+        //鏍囪瘑姣忔潯璁板綍閫傜敤鏈哄瀷鍙敤鐨勭増鏈殑璐熻矗浜烘槸涓嶆槸杩欐潯璁板綍鐨勮礋璐d汉
+        if(list!=null&&list.size()>0){
+            for (TechnicalSpecification t:list) {
+                TechnicalSpecification enableTe=getEnableVersion(t);
+                if(enableTe!=null){
+                    if(enableTe.getOwner().equals(t.getOwner())){
+                        t.setFlag(1);
+                    }else{
+                        t.setFlag(0);
+                    }
+                }else {
+                    t.setFlag(1);
+                }
+            }
+        }
         return new Response().setII(1,list!=null,list,"鏌ヨ鎸囧畾鎶�鏈鏍间功鐨勬墍鏈夌増鏈�");
     }
 }

--
Gitblit v1.9.1