From a06aacdfa9fdc493eedfb5f5784853b1d8386165 Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期二, 25 三月 2025 15:50:53 +0800
Subject: [PATCH] 更新

---
 signature/src/main/java/com/gkhy/sign/service/impl/SignatureFlowServiceImpl.java |   52 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 36 insertions(+), 16 deletions(-)

diff --git a/signature/src/main/java/com/gkhy/sign/service/impl/SignatureFlowServiceImpl.java b/signature/src/main/java/com/gkhy/sign/service/impl/SignatureFlowServiceImpl.java
index c19e870..8a288ac 100644
--- a/signature/src/main/java/com/gkhy/sign/service/impl/SignatureFlowServiceImpl.java
+++ b/signature/src/main/java/com/gkhy/sign/service/impl/SignatureFlowServiceImpl.java
@@ -18,6 +18,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.util.Date;
 import java.util.List;
@@ -42,23 +43,42 @@
     }
 
     @Override
-    public int insertSignatureFlow(SignatureFlow signatureFlow) {
-//        SignatureFlow signatureFlow1 = signatureFlowMapper.selectByItemIdAndUserId(signatureFlow);
-//        if (signatureFlow1.getStatus() == 0 ){
-//            throw new RuntimeException("尚未签名,不能流转");
-//        }
-        List<SignatureFlowRep> signatureFlowReps = signatureFlowMapper.selectbyItemId(signatureFlow.getItemId());
-        signatureFlow.setSort(signatureFlowReps.size()+1);
-        SysUser sysUser = sysUserMapper.selectUserById(signatureFlow.getUserId());
-        SysDept sysDept = sysDeptMapper.selectDeptById(signatureFlow.getDeptId());
-        signatureFlow.setUserName(sysUser.getNickName());
-        signatureFlow.setDeptName(sysDept.getDeptName());
-        SysUser sysUserSign = sysUserMapper.selectUserById(signatureFlow.getSignUserId());
-        SysDept sysDeptSign = sysDeptMapper.selectDeptById(signatureFlow.getSignDeptId());
-        signatureFlow.setSignUserName(sysUserSign.getNickName());
-        signatureFlow.setSignDeptName(sysDeptSign.getDeptName());
+    public int insertSignatureFlow(SignatureFlowAddReq signatureFlowAddReq) {
+        List<SignatureFlow> signatureFlows = signatureFlowMapper.selectByItemIdAndStatus(signatureFlowAddReq.getItemId());
+        if (!CollectionUtils.isEmpty(signatureFlows)){
+            throw new RuntimeException("存在未签名记录,不能流转");
+        }
+        List<String> userDept = signatureFlowAddReq.getUserDept();
+        for (String fileData : userDept) {
+            String[] split = fileData.split("_");
+            List<SignatureFlow> signatureFlows1 = signatureFlowMapper.selectByItemIdAndUserId(signatureFlowAddReq.getItemId(), Long.valueOf(split[0]));
+            if (!signatureFlows1.isEmpty()){
+                throw new RuntimeException("用户已签名,请勿重复选择");
+            }
+        }
 
-        return signatureFlowMapper.insert(signatureFlow);
+        int insert = 0;
+        List<SignatureFlowRep> signatureFlowReps = signatureFlowMapper.selectbyItemId(signatureFlowAddReq.getItemId());
+        for (String fileData : userDept) {
+            SignatureFlow signatureFlow = new SignatureFlow();
+            BeanUtils.copyProperties(signatureFlowAddReq,signatureFlow);
+            String[] split = fileData.split("_");
+            signatureFlow.setSort(signatureFlowReps.size()+1);
+            SysUser sysUser = sysUserMapper.selectUserById(signatureFlow.getUserId());
+            SysDept sysDept = sysDeptMapper.selectDeptById(signatureFlow.getDeptId());
+            signatureFlow.setUserName(sysUser.getNickName());
+            signatureFlow.setDeptName(sysDept.getDeptName());
+            SysUser sysUserSign = sysUserMapper.selectUserById(Long.valueOf(split[0]));
+            SysDept sysDeptSign = sysDeptMapper.selectDeptById(Long.valueOf(split[1]));
+            signatureFlow.setSignUserId(sysUserSign.getUserId());
+            signatureFlow.setSignUserName(sysUserSign.getNickName());
+            signatureFlow.setSignDeptId(sysDeptSign.getDeptId());
+            signatureFlow.setSignDeptName(sysDeptSign.getDeptName());
+
+            insert+= signatureFlowMapper.insert(signatureFlow);
+        }
+
+        return insert;
     }
 
     @Override

--
Gitblit v1.9.2