From 274d9de5e50cc2d23b25ba271a8e66021b448916 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 23 二月 2024 10:11:54 +0800
Subject: [PATCH] 111

---
 server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java |   49 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 30 insertions(+), 19 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
index 65bc2af..b906342 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -102,7 +102,7 @@
         dispatchUnitMapper.updateById(update);
         if(Constants.equalsInteger(param.getWorktypeStatus(),Constants.ONE)){
             //瀹℃牳閫氳繃锛屼慨鏀圭姸鎬侊紝浜х敓鍘嗗彶鐗堟湰
-            newVersionData(dispatchUnitMapper.selectById(param.getId()),update);
+            newVersionData(dispatchUnitMapper.selectById(param.getId()),update,false);
             //瀛樺偍鎿嶄綔鍘嗗彶
             this.saveDuLog(update,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_PASS,update.getCheckInfo());
 
@@ -136,23 +136,32 @@
         return  1;
     }
 
-    private void newVersionData(DispatchUnit model, DispatchUnit update) {
-        dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda()
-                .set(DispatchUnit::getDataType,Constants.ZERO)
-                .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
-                .eq(DispatchUnit::getBaseId,model.getId()));
+    private void newVersionData(DispatchUnit model, DispatchUnit update,Boolean flag) {
         DispatchUnit newVersion = new DispatchUnit();
-        BeanUtils.copyProperties(model, newVersion);
-        newVersion.setWorktypeStatus(Constants.ONE);
-        newVersion.setCheckDate(update.getEditDate());
-        newVersion.setCheckUserId(update.getCheckUserId());
-        newVersion.setCheckInfo(update.getCheckInfo());
-        newVersion.setCreateDate(update.getCreateDate());
-        newVersion.setCreator(update.getEditor());
-        newVersion.setBaseId(model.getBaseId());
-        newVersion.setDataType(Constants.TWO);
-        dispatchUnitMapper.insert(newVersion);
-
+        if(flag){
+            dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda()
+                    .set(DispatchUnit::getDataType,Constants.ZERO)
+                    .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+                    .eq(DispatchUnit::getBaseId,model.getId()));
+            BeanUtils.copyProperties(model, newVersion);
+            newVersion.setWorktypeStatus(Constants.ONE);
+            newVersion.setCheckDate(update.getEditDate());
+            newVersion.setCheckUserId(update.getCheckUserId());
+            newVersion.setCheckInfo(update.getCheckInfo());
+            newVersion.setCreateDate(update.getCreateDate());
+            newVersion.setCreator(update.getEditor());
+            newVersion.setBaseId(model.getId());
+            newVersion.setDataType(Constants.TWO);
+            dispatchUnitMapper.insert(newVersion);
+        }else{
+            newVersion = dispatchUnitMapper.selectOne(new QueryWrapper<DispatchUnit>().lambda()
+                    .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+                    .eq(DispatchUnit::getDataType,Constants.TWO)
+                    .eq(DispatchUnit::getBaseId,model.getId()).last(" limit 1"));
+        }
+        if(Objects.isNull(newVersion)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌娲鹃仯鍗曚綅鏈�鏂扮増鏈�");
+        }
         List<DuWorktype> newWorktypes = new ArrayList<>();
         List<DuSolution> solutions = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda()
                 .eq(DuSolution::getIsdeleted,Constants.ZERO)
@@ -167,7 +176,6 @@
                 .eq(DuSolution::getStatus,Constants.ZERO)
                 .eq(DuSolution::getDispatchUnitId,model.getId())
         );
-
 
 
         if(solutions == null || solutions.size() ==0){
@@ -247,7 +255,7 @@
         DispatchUnit dispatchUnit = dispatchUnitMapper.selectById(param.getId());
         if(Constants.equalsInteger(param.getUnitStatus(),Constants.ONE)){
             //瀹℃牳閫氳繃锛屼慨鏀圭姸鎬侊紝浜х敓鍘嗗彶鐗堟湰
-            newVersionData(dispatchUnit,update);
+            newVersionData(dispatchUnit,update,true);
             //瀛樺偍鎿嶄綔鍘嗗彶
             this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_PASS,update.getCheckInfo());
         }else{
@@ -455,6 +463,9 @@
         }
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         DispatchUnit dispatchUnit = this.dispatchUnitMapper.selectById(saveDispatchUnitDTO.getId());
+        if(!dispatchUnit.getUnitStatus().equals(Constants.ONE)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"娲鹃仯鍗曚綅鏈鎵归�氳繃,鏃犳硶杩涜璇ユ搷浣�");
+        }
         dispatchUnit.setWorktypeStatus(Constants.ZERO);
         dispatchUnit.setEditDate(new Date());
         dispatchUnit.setEditor(loginUserInfo.getId());

--
Gitblit v1.9.3