“djh”
2025-03-25 a06aacdfa9fdc493eedfb5f5784853b1d8386165
更新
已修改25个文件
已添加3个文件
557 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-dev.yml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/IdsDto.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/pom.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureFlowController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureItemController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/controller/web/SignatureFlowController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/controller/web/SignatureItemController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/dto/rep/SignatureItemRep.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowAddReq.java 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemAddReq.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemReq.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/entity/SignatureFlow.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/entity/SignatureItem.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/mapper/SignatureFlowMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/mapper/SignatureItemMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/SignatureFlowService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/SignatureItemService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/impl/SignatureFlowServiceImpl.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/impl/SignatureItemServiceImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/utils/SendMessageUtil.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/resources/mapper/sign/SignatureItemMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
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")
ruoyi-admin/src/main/resources/application-dev.yml
@@ -106,4 +106,11 @@
  queueCapacity: 10000
  scheduling:
    #控制线程是否执行 true:执行;false:不执行
    enabled: true
    enabled: true
# 七牛云相关信息
safecheckqiniuymes:
  accesskey: 5YprpjY0BJiyjII2VqlHed7UhBEvvkPZicbwd8Kl
  secretkey: m3gGQNQ9cLmVBBZwPXZ5-Wzr0duzyAPPmJUx4_ay
  templateid: 1844221365930962944
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;
    }
}
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);
}
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);
}
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);
    }
}
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>
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>
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));
    }
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));
    }
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));
    }
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));
    }
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;
    }
}
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() {
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;
    }
}
signature/src/main/java/com/gkhy/sign/dto/req/SignatureItemReq.java
@@ -8,4 +8,6 @@
    private Integer status;
    private Long userId;
    private Integer type;
}
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;
    }
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;
    }
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);
}
signature/src/main/java/com/gkhy/sign/mapper/SignatureItemMapper.java
@@ -16,4 +16,5 @@
    void updateByItemId(SignatureItem signatureItem);
    List<SignatureItemRep> getItemListApp(SignatureItemReq signatureItem);
}
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);
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);
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
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;
    }
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();
        }
    }
}
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>
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>