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

---
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                      |   14 +
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/IdsDto.java           |   24 ++
 signature/pom.xml                                                                    |    9 
 signature/src/main/java/com/gkhy/sign/service/SignatureItemService.java              |    3 
 signature/src/main/java/com/gkhy/sign/service/impl/SignatureItemServiceImpl.java     |   72 ++++--
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java    |    2 
 signature/src/main/java/com/gkhy/sign/controller/web/SignatureFlowController.java    |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java             |    5 
 signature/src/main/java/com/gkhy/sign/controller/web/SignatureItemController.java    |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java                |    6 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java     |    8 
 signature/src/main/java/com/gkhy/sign/utils/SendMessageUtil.java                     |   81 ++++++++
 signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureItemController.java |    1 
 signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureFlowController.java |    2 
 signature/src/main/resources/mapper/sign/SignatureItemMapper.xml                     |   42 ++++
 signature/src/main/java/com/gkhy/sign/entity/SignatureFlow.java                      |    2 
 signature/src/main/java/com/gkhy/sign/mapper/SignatureFlowMapper.java                |    4 
 signature/src/main/java/com/gkhy/sign/service/SignatureFlowService.java              |    2 
 signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemAddReq.java               |  108 ++++++++++
 signature/src/main/java/com/gkhy/sign/entity/SignatureItem.java                      |    9 
 signature/src/main/java/com/gkhy/sign/mapper/SignatureItemMapper.java                |    1 
 signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml                     |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java     |    7 
 signature/src/main/java/com/gkhy/sign/service/impl/SignatureFlowServiceImpl.java     |   52 +++-
 signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemReq.java                  |    2 
 signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowAddReq.java               |   66 -----
 signature/src/main/java/com/gkhy/sign/dto/rep/SignatureItemRep.java                  |   16 +
 ruoyi-admin/src/main/resources/application-dev.yml                                   |    9 
 28 files changed, 440 insertions(+), 117 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index c0d4981..ad90724 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -61,7 +61,7 @@
      * 
      * @return 用户信息
      */
-    @GetMapping("getInfo")
+    @GetMapping("/getInfo")
     public AjaxResult getInfo()
     {
         LoginUser loginUser = SecurityUtils.getLoginUser();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 130c438..643c0ba 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -3,6 +3,8 @@
 import java.util.List;
 import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.core.domain.entity.IdsDto;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -65,6 +67,12 @@
         return getDataTable(list);
     }
 
+    @PostMapping("/byDeptId")
+    public TableDataInfo byDeptId(@RequestBody IdsDto idsDto){
+        startPage();
+        return getDataTable(userService.selectUserByDeptIds(idsDto));
+    }
+
     @Log(title = "用户管理", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:user:export')")
     @PostMapping("/export")
diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index 1bfc956..49628d7 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -106,4 +106,11 @@
   queueCapacity: 10000
   scheduling:
     #控制线程是否执行 true:执行;false:不执行
-    enabled: true
\ No newline at end of file
+    enabled: true
+
+
+# 七牛云相关信息
+safecheckqiniuymes:
+  accesskey: 5YprpjY0BJiyjII2VqlHed7UhBEvvkPZicbwd8Kl
+  secretkey: m3gGQNQ9cLmVBBZwPXZ5-Wzr0duzyAPPmJUx4_ay
+  templateid: 1844221365930962944
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/IdsDto.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/IdsDto.java
new file mode 100644
index 0000000..860ed7d
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/IdsDto.java
@@ -0,0 +1,24 @@
+package com.ruoyi.common.core.domain.entity;
+
+public class IdsDto {
+    private Long[] deptId;
+
+    private String nickName;
+
+
+    public Long[] getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Long[] deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getNickName() {
+        return nickName;
+    }
+
+    public void setNickName(String nickName) {
+        this.nickName = nickName;
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 76e1c79..86834ea 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -1,6 +1,9 @@
 package com.ruoyi.system.mapper;
 
 import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.IdsDto;
+import nonapi.io.github.classgraph.json.Id;
 import org.apache.ibatis.annotations.Param;
 import com.ruoyi.common.core.domain.entity.SysUser;
 
@@ -124,4 +127,7 @@
      * @return 结果
      */
     public SysUser checkEmailUnique(String email);
+
+    List<SysUser> selectUserByDeptIds(IdsDto idsDto);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index 10bc2ab..25f41e1 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -1,6 +1,8 @@
 package com.ruoyi.system.service;
 
 import java.util.List;
+
+import com.ruoyi.common.core.domain.entity.IdsDto;
 import com.ruoyi.common.core.domain.entity.SysUser;
 
 /**
@@ -203,4 +205,7 @@
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
+
+    List<SysUser> selectUserByDeptIds(IdsDto idsDto);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 0aa82fb..88de0e7 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -4,6 +4,8 @@
 import java.util.List;
 import java.util.stream.Collectors;
 import javax.validation.Validator;
+
+import com.ruoyi.common.core.domain.entity.IdsDto;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -547,4 +549,9 @@
         }
         return successMsg.toString();
     }
+
+    @Override
+    public List<SysUser> selectUserByDeptIds(IdsDto idsDto) {
+        return userMapper.selectUserByDeptIds(idsDto);
+    }
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 9f868f3..ed99952 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -144,7 +144,19 @@
 	<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
 		select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
 	</select>
-	
+	<select id="selectUserByDeptIds" resultMap="SysUserResult">
+		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark ,d.dept_name, d.leader
+		from sys_user u left join sys_dept d on u.dept_id = d.dept_id
+		where u.del_flag = '0'
+		<if test="nickName!=null and nickName!=''">
+			and u.nick_name like concat('%',#{nickName},'%')
+		</if>
+		and u.dept_id in
+		<foreach item="id" collection="deptId" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</select>
+
 	<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
  		insert into sys_user(
  			<if test="userId != null and userId != 0">user_id,</if>
diff --git a/signature/pom.xml b/signature/pom.xml
index 30d6153..3fd2dee 100644
--- a/signature/pom.xml
+++ b/signature/pom.xml
@@ -28,6 +28,15 @@
             <artifactId>dom4j</artifactId>
             <version>2.1.3</version> <!-- 请检查最新版本 -->
         </dependency>
+
+        <!--        七牛云短信-->
+        <dependency>
+            <groupId>com.qiniu</groupId>
+            <artifactId>qiniu-java-sdk</artifactId>
+            <version>[7.2.0, 7.2.99]</version>
+        </dependency>
+
+
     </dependencies>
 
 
diff --git a/signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureFlowController.java b/signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureFlowController.java
index 3fbff67..1020e11 100644
--- a/signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureFlowController.java
+++ b/signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureFlowController.java
@@ -23,7 +23,7 @@
     /**
      * 保存签名
      */
-    @PostMapping("/save/sign")
+    @PostMapping("/save")
     public AjaxResult save(@RequestBody SignatureFlowSignReq signatureFlowReq){
         return toAjax(signatureFlowService.saveSignatureFlow(signatureFlowReq));
     }
diff --git a/signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureItemController.java b/signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureItemController.java
index df27b3e..08cefc0 100644
--- a/signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureItemController.java
+++ b/signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureItemController.java
@@ -25,6 +25,7 @@
     @ApiOperation(value = "查询签署项目列表")
     public TableDataInfo list(SignatureItemReq signatureItem) {
         startPage();
+        signatureItem.setType(2);
         return getDataTable(signatureItemService.selectItemList(signatureItem));
     }
 
diff --git a/signature/src/main/java/com/gkhy/sign/controller/web/SignatureFlowController.java b/signature/src/main/java/com/gkhy/sign/controller/web/SignatureFlowController.java
index bfdc7e4..74b6290 100644
--- a/signature/src/main/java/com/gkhy/sign/controller/web/SignatureFlowController.java
+++ b/signature/src/main/java/com/gkhy/sign/controller/web/SignatureFlowController.java
@@ -41,7 +41,7 @@
      */
     @PostMapping("/insert")
     @ApiOperation(value = "创建签署项目流转记录")
-    public AjaxResult add(@Validated @RequestBody SignatureFlow signatureFlow) {
+    public AjaxResult add(@Validated @RequestBody SignatureFlowAddReq signatureFlow) {
         return toAjax(signatureFlowService.insertSignatureFlow(signatureFlow));
     }
 
diff --git a/signature/src/main/java/com/gkhy/sign/controller/web/SignatureItemController.java b/signature/src/main/java/com/gkhy/sign/controller/web/SignatureItemController.java
index 50b1bce..af43c3e 100644
--- a/signature/src/main/java/com/gkhy/sign/controller/web/SignatureItemController.java
+++ b/signature/src/main/java/com/gkhy/sign/controller/web/SignatureItemController.java
@@ -1,5 +1,6 @@
 package com.gkhy.sign.controller.web;
 
+import com.gkhy.sign.dto.req.SignatureItemAddReq;
 import com.gkhy.sign.dto.req.SignatureItemReq;
 import com.gkhy.sign.entity.SignatureItem;
 import com.gkhy.sign.entity.SignatureType;
@@ -28,6 +29,7 @@
     @ApiOperation(value = "查询签署项目列表")
     public TableDataInfo list(SignatureItemReq signatureItem) {
         startPage();
+        signatureItem.setType(1);
         return getDataTable(signatureItemService.selectItemList(signatureItem));
     }
 
@@ -37,7 +39,7 @@
      */
     @PostMapping("/insert")
     @ApiOperation(value = "创建签署项目")
-    public AjaxResult add(@Validated @RequestBody SignatureItem signatureItem) {
+    public AjaxResult add(@Validated @RequestBody SignatureItemAddReq signatureItem) {
         return toAjax(signatureItemService.insertSignatureItem(signatureItem));
     }
 
diff --git a/signature/src/main/java/com/gkhy/sign/dto/rep/SignatureItemRep.java b/signature/src/main/java/com/gkhy/sign/dto/rep/SignatureItemRep.java
index 5111aa6..d8aec87 100644
--- a/signature/src/main/java/com/gkhy/sign/dto/rep/SignatureItemRep.java
+++ b/signature/src/main/java/com/gkhy/sign/dto/rep/SignatureItemRep.java
@@ -25,9 +25,10 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date originateTime;
-    private Integer initiaiUserId;
+    private String initiaiUserId;
     private String initiaiUserName;
     private String itemFile;
+    private String tempFile;
     private Integer itemStatus;
     private Integer delFlag;
     private List<SignatureFlowRep> signatureFlows;
@@ -88,11 +89,11 @@
         this.originateTime = originateTime;
     }
 
-    public Integer getInitiaiUserId() {
+    public String getInitiaiUserId() {
         return initiaiUserId;
     }
 
-    public void setInitiaiUserId(Integer initiaiUserId) {
+    public void setInitiaiUserId(String initiaiUserId) {
         this.initiaiUserId = initiaiUserId;
     }
 
@@ -135,4 +136,13 @@
     public void setSignatureFlows(List<SignatureFlowRep> signatureFlows) {
         this.signatureFlows = signatureFlows;
     }
+
+
+    public String getTempFile() {
+        return tempFile;
+    }
+
+    public void setTempFile(String tempFile) {
+        this.tempFile = tempFile;
+    }
 }
diff --git a/signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowAddReq.java b/signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowAddReq.java
index ed3d508..8f21360 100644
--- a/signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowAddReq.java
+++ b/signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowAddReq.java
@@ -1,30 +1,18 @@
 package com.gkhy.sign.dto.req;
 
+import java.util.List;
+
 public class SignatureFlowAddReq {
 
 
     private Long itemId;
-
     private Long userId;
-
-    private String userName;
-
     private Long deptId;
-    private String deptName;
-
-    private Long[] signUserId;
-
-    private String signUserName;
-
-    private Long signDeptId;
-
-    private String signDeptName;
-
+    private List<String> userDept;
     private String filePath;
     private Integer status;
     private Integer sort;
     private Integer delFlag;
-
 
     public Long getItemId() {
         return itemId;
@@ -42,14 +30,6 @@
         this.userId = userId;
     }
 
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
     public Long getDeptId() {
         return deptId;
     }
@@ -58,44 +38,12 @@
         this.deptId = deptId;
     }
 
-    public String getDeptName() {
-        return deptName;
+    public List<String> getUserDept() {
+        return userDept;
     }
 
-    public void setDeptName(String deptName) {
-        this.deptName = deptName;
-    }
-
-    public Long[] getSignUserId() {
-        return signUserId;
-    }
-
-    public void setSignUserId(Long[] signUserId) {
-        this.signUserId = signUserId;
-    }
-
-    public String getSignUserName() {
-        return signUserName;
-    }
-
-    public void setSignUserName(String signUserName) {
-        this.signUserName = signUserName;
-    }
-
-    public Long getSignDeptId() {
-        return signDeptId;
-    }
-
-    public void setSignDeptId(Long signDeptId) {
-        this.signDeptId = signDeptId;
-    }
-
-    public String getSignDeptName() {
-        return signDeptName;
-    }
-
-    public void setSignDeptName(String signDeptName) {
-        this.signDeptName = signDeptName;
+    public void setUserDept(List<String> userDept) {
+        this.userDept = userDept;
     }
 
     public String getFilePath() {
diff --git a/signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemAddReq.java b/signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemAddReq.java
new file mode 100644
index 0000000..7365e8e
--- /dev/null
+++ b/signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemAddReq.java
@@ -0,0 +1,108 @@
+package com.gkhy.sign.dto.req;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+import java.util.List;
+
+
+public class SignatureItemAddReq {
+    @NotNull(message = "项目名称不能为空")
+    @ApiModelProperty(value = "项目名称")
+    private String itemName;
+    @NotNull(message = "模版不能为空")
+    @ApiModelProperty(value = "模版id")
+    private Integer templateId;
+    @NotNull(message = "部门不能为空")
+    @ApiModelProperty(value = "部门名称")
+    private Integer deptId;
+    @ApiModelProperty(value = "发起时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date originateTime;
+
+    @NotNull(message = "最初签署人不能为空")
+    private String initiaiUserId;
+
+    private List<String> userDept;
+
+    @ApiModelProperty(value = "文件路径")
+    private String filePath;
+
+    @ApiModelProperty(value = "状态 1未签署  2已签署  3已归档")
+    private Integer status;
+    private Integer delFlag;
+
+    public String getItemName() {
+        return itemName;
+    }
+
+    public void setItemName(String itemName) {
+        this.itemName = itemName;
+    }
+
+    public Integer getTemplateId() {
+        return templateId;
+    }
+
+    public void setTemplateId(Integer templateId) {
+        this.templateId = templateId;
+    }
+
+    public Integer getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Integer deptId) {
+        this.deptId = deptId;
+    }
+
+    public Date getOriginateTime() {
+        return originateTime;
+    }
+
+    public void setOriginateTime(Date originateTime) {
+        this.originateTime = originateTime;
+    }
+
+    public String getInitiaiUserId() {
+        return initiaiUserId;
+    }
+
+    public void setInitiaiUserId(String initiaiUserId) {
+        this.initiaiUserId = initiaiUserId;
+    }
+
+    public List<String> getUserDept() {
+        return userDept;
+    }
+
+    public void setUserDept(List<String> userDept) {
+        this.userDept = userDept;
+    }
+
+    public String getFilePath() {
+        return filePath;
+    }
+
+    public void setFilePath(String filePath) {
+        this.filePath = filePath;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Integer getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(Integer delFlag) {
+        this.delFlag = delFlag;
+    }
+}
diff --git a/signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemReq.java b/signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemReq.java
index 6072e85..b96eaae 100644
--- a/signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemReq.java
+++ b/signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemReq.java
@@ -8,4 +8,6 @@
     private Integer status;
 
     private Long userId;
+
+    private Integer type;
 }
diff --git a/signature/src/main/java/com/gkhy/sign/entity/SignatureFlow.java b/signature/src/main/java/com/gkhy/sign/entity/SignatureFlow.java
index b47e655..400385b 100644
--- a/signature/src/main/java/com/gkhy/sign/entity/SignatureFlow.java
+++ b/signature/src/main/java/com/gkhy/sign/entity/SignatureFlow.java
@@ -135,7 +135,7 @@
         return filePath;
     }
 
-    public void setFilePath(String file_path) {
+    public void setFilePath(String filePath) {
         this.filePath = filePath;
     }
 
diff --git a/signature/src/main/java/com/gkhy/sign/entity/SignatureItem.java b/signature/src/main/java/com/gkhy/sign/entity/SignatureItem.java
index ff98689..0893f1f 100644
--- a/signature/src/main/java/com/gkhy/sign/entity/SignatureItem.java
+++ b/signature/src/main/java/com/gkhy/sign/entity/SignatureItem.java
@@ -8,6 +8,7 @@
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.util.Date;
 
@@ -31,8 +32,8 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date originateTime;
 
-    @NotNull(message = "最初签署人不能为空")
-    private Long initiaiUserId;
+    @NotBlank(message = "最初签署人不能为空")
+    private String initiaiUserId;
 
     @ApiModelProperty(value = "文件路径")
     private String filePath;
@@ -73,11 +74,11 @@
         this.deptId = deptId;
     }
 
-    public Long getInitiaiUserId() {
+    public String getInitiaiUserId() {
         return initiaiUserId;
     }
 
-    public void setInitiaiUserId(Long initiaiUserId) {
+    public void setInitiaiUserId(String initiaiUserId) {
         this.initiaiUserId = initiaiUserId;
     }
 
diff --git a/signature/src/main/java/com/gkhy/sign/mapper/SignatureFlowMapper.java b/signature/src/main/java/com/gkhy/sign/mapper/SignatureFlowMapper.java
index 33fe482..650f6b9 100644
--- a/signature/src/main/java/com/gkhy/sign/mapper/SignatureFlowMapper.java
+++ b/signature/src/main/java/com/gkhy/sign/mapper/SignatureFlowMapper.java
@@ -4,6 +4,7 @@
 import com.gkhy.sign.dto.rep.SignatureFlowRep;
 import com.gkhy.sign.dto.req.SignatureFlowSignReq;
 import com.gkhy.sign.entity.SignatureFlow;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -12,8 +13,9 @@
 
     int updateByFlowItemId(SignatureFlowSignReq signatureFlowReq);
 
-    SignatureFlow selectByItemIdAndUserId(SignatureFlow signatureFlow);
+    List<SignatureFlow> selectByItemIdAndStatus(Long itemId);
 
     int updateByFlow(SignatureFlow signatureFlow);
 
+    List<SignatureFlow> selectByItemIdAndUserId(@Param("itemId") Long itemId, @Param("signUserId") Long signUserId);
 }
diff --git a/signature/src/main/java/com/gkhy/sign/mapper/SignatureItemMapper.java b/signature/src/main/java/com/gkhy/sign/mapper/SignatureItemMapper.java
index 6c9fc6a..dec1bdc 100644
--- a/signature/src/main/java/com/gkhy/sign/mapper/SignatureItemMapper.java
+++ b/signature/src/main/java/com/gkhy/sign/mapper/SignatureItemMapper.java
@@ -16,4 +16,5 @@
 
     void updateByItemId(SignatureItem signatureItem);
 
+    List<SignatureItemRep> getItemListApp(SignatureItemReq signatureItem);
 }
diff --git a/signature/src/main/java/com/gkhy/sign/service/SignatureFlowService.java b/signature/src/main/java/com/gkhy/sign/service/SignatureFlowService.java
index dbdc6b0..a0a4f27 100644
--- a/signature/src/main/java/com/gkhy/sign/service/SignatureFlowService.java
+++ b/signature/src/main/java/com/gkhy/sign/service/SignatureFlowService.java
@@ -11,7 +11,7 @@
 public interface SignatureFlowService extends IService<SignatureFlow> {
     List<SignatureFlowRep> selectFlowList(Long id);
 
-    int insertSignatureFlow(SignatureFlow signatureFlow);
+    int insertSignatureFlow(SignatureFlowAddReq signatureFlow);
 
     int saveSignatureFlow(SignatureFlowSignReq signatureFlowReq);
 
diff --git a/signature/src/main/java/com/gkhy/sign/service/SignatureItemService.java b/signature/src/main/java/com/gkhy/sign/service/SignatureItemService.java
index 9e0237c..e1c32c4 100644
--- a/signature/src/main/java/com/gkhy/sign/service/SignatureItemService.java
+++ b/signature/src/main/java/com/gkhy/sign/service/SignatureItemService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.gkhy.sign.dto.rep.SignatureItemRep;
+import com.gkhy.sign.dto.req.SignatureItemAddReq;
 import com.gkhy.sign.dto.req.SignatureItemReq;
 import com.gkhy.sign.entity.SignatureItem;
 
@@ -10,7 +11,7 @@
 public interface SignatureItemService extends IService<SignatureItem> {
     List<SignatureItemRep> selectItemList(SignatureItemReq signatureItem);
 
-    int insertSignatureItem(SignatureItem signatureItem);
+    int insertSignatureItem(SignatureItemAddReq signatureItem);
 
     int updateSignatureIteme(SignatureItem signatureItem);
 
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
diff --git a/signature/src/main/java/com/gkhy/sign/service/impl/SignatureItemServiceImpl.java b/signature/src/main/java/com/gkhy/sign/service/impl/SignatureItemServiceImpl.java
index d3d14bf..e660910 100644
--- a/signature/src/main/java/com/gkhy/sign/service/impl/SignatureItemServiceImpl.java
+++ b/signature/src/main/java/com/gkhy/sign/service/impl/SignatureItemServiceImpl.java
@@ -1,9 +1,11 @@
 package com.gkhy.sign.service.impl;
 
+import cn.hutool.crypto.asymmetric.Sign;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageInfo;
 import com.gkhy.sign.dto.rep.SignatureFlowRep;
 import com.gkhy.sign.dto.rep.SignatureItemRep;
+import com.gkhy.sign.dto.req.SignatureItemAddReq;
 import com.gkhy.sign.dto.req.SignatureItemReq;
 import com.gkhy.sign.entity.SignatureFlow;
 import com.gkhy.sign.entity.SignatureItem;
@@ -18,9 +20,13 @@
 import com.ruoyi.system.mapper.SysDeptMapper;
 import com.ruoyi.system.mapper.SysUserMapper;
 import io.lettuce.core.RedisClient;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -32,7 +38,7 @@
     @Autowired
     private SysDeptMapper sysDeptMapper;
     @Autowired
-    private SysUserMapper sysUser;
+    private SysUserMapper sysUserMapper;
 
     @Autowired
     private SignatureFlowMapper signatureFlowMapper;
@@ -42,16 +48,34 @@
         if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
             signatureItem.setUserId(SecurityUtils.getUserId());
         }
-        List<SignatureItemRep> itemList = signatureItemMapper.getItemList(signatureItem);
-        for (SignatureItemRep signatureItemRep : itemList) {
+        List<SignatureItemRep> signatureItemReps = new ArrayList<>();
+
+        if (signatureItem.getType()==1){
+            signatureItemReps  = signatureItemMapper.getItemList(signatureItem);
+        }else {
+            signatureItemReps  = signatureItemMapper.getItemListApp(signatureItem);
+        }
+
+        for (SignatureItemRep signatureItemRep : signatureItemReps) {
             List<SignatureFlowRep> signatureFlowReps = signatureFlowMapper.selectbyItemId(signatureItemRep.getId());
             signatureItemRep.setSignatureFlows(signatureFlowReps);
+            String initiaiUserId = signatureItemRep.getInitiaiUserId();
+            String[] split = initiaiUserId.split(",");
+            StringBuffer stringBuffer = new StringBuffer();
+            for (String userId : split) {
+                SysUser sysUser1 = sysUserMapper.selectUserById(Long.valueOf(userId));
+                stringBuffer.append(sysUser1.getNickName()).append(",");
+            }
+            stringBuffer.deleteCharAt(stringBuffer.length()-1);
+            signatureItemRep.setInitiaiUserName(stringBuffer.toString());
         }
-        return itemList;
+        return signatureItemReps;
     }
 
     @Override
-    public int insertSignatureItem(SignatureItem signatureItem) {
+    public int insertSignatureItem(SignatureItemAddReq signatureItemAddReq) {
+        SignatureItem signatureItem = new SignatureItem();
+        BeanUtils.copyProperties(signatureItemAddReq,signatureItem);
         SysUser user = SecurityUtils.getLoginUser().getUser();
         signatureItem.setCreateBy(user.getUserName());
         signatureItem.setCreateTime(new Date());
@@ -59,24 +83,26 @@
         int insert = signatureItemMapper.insertSignatureItem(signatureItem);
 
         List<SignatureFlowRep> signatureFlowReps = signatureFlowMapper.selectbyItemId(signatureItem.getId());
-        SignatureFlow signatureFlow = new SignatureFlow();
-        signatureFlow.setItemId(signatureItem.getId());
-        signatureFlow.setUserId(SecurityUtils.getUserId());
-        SysUser sysUser2 = sysUser.selectUserById(SecurityUtils.getUserId());
-        signatureFlow.setUserName(sysUser2.getNickName());
-        signatureFlow.setDeptId(SecurityUtils.getDeptId());
-        SysDept sysDept = sysDeptMapper.selectDeptById(SecurityUtils.getDeptId());
-        signatureFlow.setDeptName(sysDept.getDeptName());
-        signatureFlow.setSignUserId(signatureItem.getInitiaiUserId());
-        SysUser sysUser1 = sysUser.selectUserById(signatureItem.getInitiaiUserId());
-        SysDept sysDept1 = sysDeptMapper.selectDeptById(sysUser1.getDeptId());
-        signatureFlow.setSignUserName(sysUser1.getNickName());
-        signatureFlow.setSignDeptId(sysDept1.getDeptId());
-        signatureFlow.setSignDeptName(sysDept1.getDeptName());
-        signatureFlow.setStatus(0);
-        signatureFlow.setSort(signatureFlowReps.size()+1);
-        signatureFlowMapper.insert(signatureFlow);
-
+        for (String userDept : signatureItemAddReq.getUserDept()) {
+            String[] split = userDept.split("_");
+            SignatureFlow signatureFlow = new SignatureFlow();
+            signatureFlow.setItemId(signatureItem.getId());
+            signatureFlow.setUserId(SecurityUtils.getUserId());
+            SysUser sysUser2 = sysUserMapper.selectUserById(SecurityUtils.getUserId());
+            signatureFlow.setUserName(sysUser2.getNickName());
+            signatureFlow.setDeptId(SecurityUtils.getDeptId());
+            SysDept sysDept = sysDeptMapper.selectDeptById(SecurityUtils.getDeptId());
+            signatureFlow.setDeptName(sysDept.getDeptName());
+            signatureFlow.setSignUserId(Long.valueOf(split[0]));
+            SysUser sysUserSign = sysUserMapper.selectUserById(Long.valueOf(split[0]));
+            SysDept sysDeptSign = sysDeptMapper.selectDeptById(Long.valueOf(split[1]));
+            signatureFlow.setSignUserName(sysUserSign.getNickName());
+            signatureFlow.setSignDeptId(sysDeptSign.getDeptId());
+            signatureFlow.setSignDeptName(sysDeptSign.getDeptName());
+            signatureFlow.setStatus(0);
+            signatureFlow.setSort(signatureFlowReps.size()+1);
+            signatureFlowMapper.insert(signatureFlow);
+        }
         return insert;
     }
 
diff --git a/signature/src/main/java/com/gkhy/sign/utils/SendMessageUtil.java b/signature/src/main/java/com/gkhy/sign/utils/SendMessageUtil.java
new file mode 100644
index 0000000..1617c8d
--- /dev/null
+++ b/signature/src/main/java/com/gkhy/sign/utils/SendMessageUtil.java
@@ -0,0 +1,81 @@
+package com.gkhy.sign.utils;
+
+import com.qiniu.common.QiniuException;
+import com.qiniu.http.Response;
+import com.qiniu.sms.SmsManager;
+import com.qiniu.util.Auth;
+import com.ruoyi.common.utils.http.HttpUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class SendMessageUtil {
+
+    private static final Logger log = LoggerFactory.getLogger(SendMessageUtil.class);
+
+    @Value("${safecheckqiniuymes.accesskey}")
+    private String accesskey;
+
+    @Value("${safecheckqiniuymes.secretkey}")
+    private String secretkey;
+
+    @Value("${safecheckqiniuymes.templateid}")
+    private String templateid;
+
+    public Response sendCheckMessage(String[] phone, Map<String,String> map){
+
+        Auth auth = Auth.create(accesskey, secretkey);
+        SmsManager smsManager = new SmsManager(auth);
+
+        try {
+           Response response =  smsManager.sendMessage(templateid, phone, map);
+           return response;
+        } catch (QiniuException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public void sendMessage(){
+        String host = "https://kzsms.market.alicloudapi.com";
+        String path = "/api/sms/send";
+        String method = "POST";
+        String appcode = "你自己的AppCode";
+        Map<String, String> headers = new HashMap<String, String>();
+        //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
+        headers.put("Authorization", "APPCODE " + appcode);
+        //根据API的要求,定义相对应的Content-Type
+        headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+        Map<String, String> querys = new HashMap<String, String>();
+        Map<String, String> bodys = new HashMap<String, String>();
+        bodys.put("templateId", "KZvoQcsO1HS23nYL8");
+        bodys.put("mobile", "19548157345");
+        bodys.put("value", "联系客服申请签名和模版");
+
+
+        try {
+            /**
+             * 重要提示如下:
+             * HttpUtils请从
+             * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
+             * 下载
+             *
+             * 相应的依赖请参照
+             * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
+//             */
+//            HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
+//            System.out.println(response.toString());
+//            HttpUtils.sendPost()
+            //获取response的body
+            //System.out.println(EntityUtils.toString(response.getEntity()));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+
+
+}
diff --git a/signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml b/signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml
index 11db864..ee2547b 100644
--- a/signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml
+++ b/signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml
@@ -3,6 +3,7 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.gkhy.sign.mapper.SignatureFlowMapper">
+
     <update id="updateByFlowItemId">
         UPDATE signature_flow
         SET file_path = #{filePath},
@@ -35,6 +36,9 @@
         from
             signature_flow where item_id = #{id}
     </select>
+    <select id="selectByItemIdAndStatus" resultType="com.gkhy.sign.entity.SignatureFlow">
+        select * from signature_flow where item_id = #{itemId} and status = 0
+    </select>
     <select id="selectByItemIdAndUserId" resultType="com.gkhy.sign.entity.SignatureFlow">
         select * from signature_flow where item_id = #{itemId} and sign_user_id = #{signUserId}
     </select>
diff --git a/signature/src/main/resources/mapper/sign/SignatureItemMapper.xml b/signature/src/main/resources/mapper/sign/SignatureItemMapper.xml
index a2d0970..237006d 100644
--- a/signature/src/main/resources/mapper/sign/SignatureItemMapper.xml
+++ b/signature/src/main/resources/mapper/sign/SignatureItemMapper.xml
@@ -15,6 +15,7 @@
         <result property="initiaiUserId" column="initiai_user_id"/>
         <result property="initiaiUserName" column="initiai_user_name"/>
         <result property="itemFile" column="item_file"/>
+        <result property="tempFile" column="temp_file"/>
         <result property="itemStatus" column="item_status"/>
         <result property="delFlag" column="del_flag"/>
 <!--        <collection property="signatureFlows" javaType="java.util.List" resultMap="signatureItemRep"/>-->
@@ -102,9 +103,9 @@
             si.dept_id as itme_dept_id,
             sd.dept_name as item_dept_name,
             si.originate_time,
-            su.nick_name AS initiai_user_name,
             si.initiai_user_id,
-            st.file_path as item_file,
+            si.file_path as item_file,
+            st.file_path as temp_file,
             si.`status` as item_status,
             si.del_flag
         FROM
@@ -129,4 +130,41 @@
         </where>
         ORDER BY si.create_time desc
     </select>
+    <select id="getItemListApp" resultType="com.gkhy.sign.dto.rep.SignatureItemRep">
+        SELECT
+        si.id,
+        si.item_name,
+        si.template_id,
+        st.template_name,
+        si.dept_id as itme_dept_id,
+        sd.dept_name as item_dept_name,
+        si.originate_time,
+        si.initiai_user_id,
+        si.file_path as item_file,
+        st.file_path as temp_file,
+        si.`status` as item_status,
+        si.del_flag
+        FROM
+        signature_item si
+        LEFT JOIN signature_template st ON si.template_id = st.id
+        LEFT JOIN signature_type sty ON st.type_id = sty.id
+        LEFT JOIN sys_dept sd ON si.dept_id = sd.dept_id
+        LEFT JOIN sys_user su ON si.initiai_user_id = su.user_id
+        where
+            si.del_flag = 0
+          AND si.id IN (
+          SELECT DISTINCT si.id
+          FROM signature_item si
+          LEFT JOIN signature_flow sf ON si.id = sf.item_id
+          <where>
+              <if test="status != null">
+                  and sf.status = #{status}
+              </if>
+              <if test="userId != null">
+                  and  sf.sign_user_id = #{userId}
+              </if>
+          </where>
+          )
+        ORDER BY si.create_time desc
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.2