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 |  154 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 144 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/whyc/service/TechnicalSpecificationService.java b/src/main/java/com/whyc/service/TechnicalSpecificationService.java
index 4d24ae3..f248d27 100644
--- a/src/main/java/com/whyc/service/TechnicalSpecificationService.java
+++ b/src/main/java/com/whyc/service/TechnicalSpecificationService.java
@@ -3,9 +3,12 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 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;
@@ -26,6 +29,7 @@
 import java.io.InputStream;
 import java.text.ParseException;
 import java.util.Date;
+import java.util.List;
 
 @Service
 public class TechnicalSpecificationService {
@@ -39,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();
@@ -124,11 +128,11 @@
             return new Response().set(1,false,"鏂囦欢鍚�,鏂囦欢绫诲瀷,鐗堟湰,璐熻矗浜�,褰掓。鏃ユ湡,鐗╂枡缂栫爜,瑙勬牸鍨嬪彿 涓嚦灏戞湁涓�椤逛负绌�");
         }
 
-        //鏍¢獙瑙勬牸涔︽枃浠跺悕绉�=璇存槑涔︿腑鐨勬枃浠跺悕绉�+鐗堟湰鍙�
+        //鏍¢獙瑙勬牸涔﹂檮浠跺悕绉�=璇存槑涔︿腑鐨勬枃浠跺悕绉�+鐗堟湰鍙�
         String fileNameUnion = specification.getFileName() + specification.getVersion();
-        String excelName = file2Name.substring(0,file2Name.lastIndexOf("."));
-        if(!(fileNameUnion).equals(excelName)){
-            return new Response().set(1,false,"鎶�鏈鏍间功excel鐨勫懡鍚嶄笌excel鍐呯殑鏂囦欢鍚�+鐗堟湰鍙风О涓嶄竴鑷�");
+        String attachmentName = file1Name.substring(0,file1Name.lastIndexOf("."));
+        if(!(fileNameUnion).equals(attachmentName)){
+            return new Response().set(1,false,"闄勪欢鐨勫懡鍚嶄笌鎶�鏈鏍间功excel鍐呯殑鏂囦欢鍚�+鐗堟湰鍙风О涓嶄竴鑷�");
         }
         //鏍¢獙璐熻矗浜烘槸鍚﹀瓨鍦�
         boolean checkExists = userService.checkExists(specification.getOwner());
@@ -162,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())){
@@ -199,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, "鏇存柊瀹屾垚");
     }
 
@@ -222,4 +271,89 @@
     private TechnicalSpecification get(int id){
         return mapper.selectById(id);
     }
+
+    //鏌ヨ鎶�鏈鏍间功
+    public Response getInfo(String applyMaterialCode, String applyModel, String applyCustomCode, String owner, Integer lockFlag
+                            ,int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum,pageSize);
+        QueryWrapper<TechnicalSpecification> query = Wrappers.query();
+        if(applyMaterialCode!=null&&!applyMaterialCode.isEmpty()){
+            query.like("apply_material_code",applyMaterialCode);
+        }
+        if(applyModel!=null&&!applyModel.isEmpty()){
+            query.like("apply_model",applyModel);
+        }
+        if(applyCustomCode!=null){
+            if(applyCustomCode.equals("")){
+                query.eq("apply_custom_code",applyCustomCode);
+            }else{
+                query.like("apply_custom_code",applyCustomCode);
+            }
+        }
+        if(owner!=null&&!owner.isEmpty()){
+            query.like("owner",owner);
+        }
+        if(lockFlag!=null){
+            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();
+        if(applyMaterialCode!=null&&!applyMaterialCode.isEmpty()){
+            query.eq("apply_material_code",applyMaterialCode);
+        }
+        if(applyModel!=null&&!applyModel.isEmpty()){
+            query.eq("apply_model",applyModel);
+        }
+        if(applyCustomCode!=null){
+            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