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