“djh”
2025-03-17 47d330d27fb88e85a40e64e5423f73b0b29c088e
修改
已重命名4个文件
已修改30个文件
已添加5个文件
787 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-dev.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-pro.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/controller/app/AppLoginController.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureFlowController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureItemController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/controller/web/SignatureFlowController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/controller/web/SignatureItemController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/controller/web/SignatureTemplateController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/controller/web/SignatureTypeController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/dto/rep/SignatureFlowRep.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/dto/rep/SignatureItemRep.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/dto/rep/SignatureTemplateRep.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowAddReq.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowSignReq.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/entity/SignatureFlow.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/entity/SignatureTemplate.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/entity/SignatureType.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/mapper/SignatureFlowMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/mapper/SignatureItemMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/mapper/SignatureTemplateMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/mapper/SignatureTypeMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/SignatureFlowService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/SignatureItemService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/SignatureTemplateService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/SignatureTypeService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/impl/SignatureFlowServiceImpl.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/impl/SignatureItemServiceImpl.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/impl/SignatureTemplateServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/java/com/gkhy/sign/service/impl/SignatureTypeServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/resources/mapper/sign/SignatureItemMapper.xml 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/resources/mapper/sign/SignatureTemplateMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
signature/src/main/resources/mapper/sign/SignatureTypeMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
@@ -1,5 +1,6 @@
package com.ruoyi;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@@ -9,7 +10,8 @@
 * 
 * @author ruoyi
 */
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class },scanBasePackages = {"com.gkhy","com.ruoyi"})
@MapperScan("com.gkhy.sign.mapper")
public class RuoYiApplication
{
    public static void main(String[] args)
ruoyi-admin/src/main/resources/application-dev.yml
@@ -24,9 +24,9 @@
    druid:
      # 主库数据源
      master:
        url: jdbc:mysql://localhost:3306/signature?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        url: jdbc:mysql://192.168.2.3:7006/signature?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: password
        password: 2farwL3yPXfbH2AP
      # 从库数据源
      slave:
        # 从数据源开关/默认关闭
@@ -80,7 +80,7 @@
  # redis 配置
  redis:
    # 地址
    host: 192.168.2.6
    host: 192.168.2.3
    # 端口,默认为6379
    port: 6379
    # 数据库索引
ruoyi-admin/src/main/resources/application-pro.yml
@@ -24,7 +24,7 @@
        druid:
            # 主库数据源
            master:
                url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                url: jdbc:mysql://localhost:3306/signature?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: password
            # 从库数据源
ruoyi-admin/src/main/resources/application.yml
@@ -109,7 +109,7 @@
  # 是否开启swagger
  enabled: true
  # 请求前缀
  pathMapping: /dev-api
  pathMapping: /
# 防止XSS攻击
xss:
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java
@@ -4,6 +4,9 @@
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
@@ -19,6 +22,7 @@
    /** 搜索值 */
    @JsonIgnore
    @TableField(exist = false)
    private String searchValue;
    /** 创建者 */
@@ -36,10 +40,12 @@
    private Date updateTime;
    /** 备注 */
    @TableField(exist = false)
    private String remark;
    /** 请求参数 */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @TableField(exist = false)
    private Map<String, Object> params;
    public String getSearchValue()
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -101,7 +101,7 @@
            .csrf(csrf -> csrf.disable())
            // 禁用HTTP响应标头
            .headers((headersCustomizer) -> {
                headersCustomizer.cacheControl(cache -> cache.disable()).frameOptions(options -> options.sameOrigin());
                headersCustomizer.cacheControl(cache -> cache.disable()).frameOptions(options -> options.disable());
            })
            // 认证失败处理类
            .exceptionHandling(exception -> exception.authenticationEntryPoint(unauthorizedHandler))
@@ -111,7 +111,7 @@
            .authorizeHttpRequests((requests) -> {
                permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll());
                // 对于登录login 注册register 验证码captchaImage 允许匿名访问
                requests.antMatchers("/login", "/register", "/captchaImage").permitAll()
                requests.antMatchers("/login", "/register", "/captchaImage","/app/login").permitAll()
                    // 静态资源,可匿名访问
                    .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                    .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -1,6 +1,10 @@
package com.ruoyi.framework.web.service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
@@ -51,6 +55,9 @@
    @Autowired
    private ISysConfigService configService;
    @Autowired
    private HttpServletRequest request;
    /**
     * 登录验证
@@ -157,12 +164,12 @@
            throw new UserPasswordNotMatchException();
        }
        // IP黑名单校验
        String blackStr = configService.selectConfigByKey("sys.login.blackIPList");
        if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
        {
            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("login.blocked")));
            throw new BlackListException();
        }
//        String blackStr = configService.selectConfigByKey("sys.login.blackIPList");
//        if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
//        {
//            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("login.blocked")));
//            throw new BlackListException();
//        }
    }
    /**
@@ -178,4 +185,48 @@
        sysUser.setLoginDate(DateUtils.getNowDate());
        userService.updateUserProfile(sysUser);
    }
    public String appLogin(String username, String password) {
        // 验证码校验
//        validateCaptcha(username, code, uuid);
        // 登录前置校验
        loginPreCheck(username, password);
        // 用户验证
        Authentication authentication = null;
        try
        {
            UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
            AuthenticationContextHolder.setContext(authenticationToken);
            // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
            authentication = authenticationManager.authenticate(authenticationToken);
        }
        catch (Exception e)
        {
            if (e instanceof BadCredentialsException)
            {
                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
                throw new UserPasswordNotMatchException();
            }
            else
            {
                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
                throw new ServiceException(e.getMessage());
            }
        }
        finally
        {
            AuthenticationContextHolder.clearContext();
        }
        AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
        recordLoginInfo(loginUser.getUserId());
        // 生成token
        return tokenService.createToken(loginUser);
    }
    public void logout() {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        tokenService.delLoginUser(loginUser.getToken());
    }
}
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -66,6 +66,9 @@
        <if test="userName != null and userName != ''">
            AND u.user_name like concat('%', #{userName}, '%')
        </if>
          <if test="nickName != null and nickName != ''">
              and u.nick_name like concat('%',#{nickName},'%')
          </if>
        <if test="status != null and status != ''">
            AND u.status = #{status}
        </if>
signature/src/main/java/com/gkhy/sign/controller/app/AppLoginController.java
对比新文件
@@ -0,0 +1,39 @@
package com.gkhy.sign.controller.app;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.framework.web.service.SysLoginService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "APP用户登录前端控制器")
@RestController
@RequestMapping("/app")
public class AppLoginController {
    @Autowired
    private SysLoginService sysLoginService;
    @ApiOperation(value = "用户登录")
    @PostMapping("/login")
    public AjaxResult login(@RequestBody LoginBody loginBody){
        AjaxResult ajax = AjaxResult.success();
        // 生成令牌
        String token = sysLoginService.appLogin(loginBody.getUsername(), loginBody.getPassword());
        ajax.put(Constants.TOKEN, token);
        return ajax;
    }
    @ApiOperation(value = "用户退出")
    @PostMapping("/logout")
    public AjaxResult logout(){
        sysLoginService.logout();
        return AjaxResult.success();
    }
}
signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureFlowController.java
对比新文件
@@ -0,0 +1,35 @@
package com.gkhy.sign.controller.app;
import com.gkhy.sign.dto.req.SignatureFlowSignReq;
import com.gkhy.sign.service.SignatureFlowService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "app端签名管理")
@RestController
@RequestMapping("/app/sign")
public class AppSignatureFlowController extends BaseController {
    @Autowired
    private SignatureFlowService signatureFlowService;
    /**
     * 保存签名
     */
    @PostMapping("/save/sign")
    public AjaxResult save(@RequestBody SignatureFlowSignReq signatureFlowReq){
        return toAjax(signatureFlowService.saveSignatureFlow(signatureFlowReq));
    }
}
signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureItemController.java
对比新文件
@@ -0,0 +1,32 @@
package com.gkhy.sign.controller.app;
import com.gkhy.sign.dto.req.SignatureItemReq;
import com.gkhy.sign.service.SignatureItemService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "app端签署项目管理")
@RestController
@RequestMapping("/app/item")
public class AppSignatureItemController extends BaseController {
    @Autowired
    private SignatureItemService signatureItemService;
    /**
     * 查询签署项目列表
     */
    @GetMapping("/list")
    @ApiOperation(value = "查询签署项目列表")
    public TableDataInfo list(SignatureItemReq signatureItem) {
        startPage();
        return getDataTable(signatureItemService.selectItemList(signatureItem));
    }
}
signature/src/main/java/com/gkhy/sign/controller/web/SignatureFlowController.java
文件名从 signature/src/main/java/com/gkhy/sign/controller/SignatureFlowController.java 修改
@@ -1,5 +1,7 @@
package com.gkhy.sign.controller;
package com.gkhy.sign.controller.web;
import com.gkhy.sign.dto.req.SignatureFlowAddReq;
import com.gkhy.sign.dto.req.SignatureFlowSignReq;
import com.gkhy.sign.dto.req.SignatureItemReq;
import com.gkhy.sign.entity.SignatureFlow;
import com.gkhy.sign.entity.SignatureItem;
@@ -15,7 +17,7 @@
import org.springframework.web.bind.annotation.*;
@RestController
@Api(value = "签名流转管理")
@Api(tags = "签名流转管理")
@RequestMapping("/flow")
public class SignatureFlowController extends BaseController {
@@ -43,5 +45,22 @@
        return toAjax(signatureFlowService.insertSignatureFlow(signatureFlow));
    }
//    /**
//     * 保存签名
//     */
//    @PostMapping("/save/sign")
//    public AjaxResult save(@RequestBody SignatureFlowSignReq signatureFlowReq){
//        return toAjax(signatureFlowService.saveSignatureFlow(signatureFlowReq));
//    }
    /**
     * 归档
     * @param signatureFlow
     * @return
     */
    @PostMapping("/returnFile")
    public AjaxResult returnFile(@RequestBody SignatureFlow signatureFlow){
        return toAjax(signatureFlowService.returnFile(signatureFlow));
    }
}
signature/src/main/java/com/gkhy/sign/controller/web/SignatureItemController.java
文件名从 signature/src/main/java/com/gkhy/sign/controller/SignatureItemController.java 修改
@@ -1,4 +1,4 @@
package com.gkhy.sign.controller;
package com.gkhy.sign.controller.web;
import com.gkhy.sign.dto.req.SignatureItemReq;
import com.gkhy.sign.entity.SignatureItem;
@@ -14,7 +14,7 @@
import org.springframework.web.bind.annotation.*;
@RestController
@Api(value = "签署项目管理")
@Api(tags = "签署项目管理")
@RequestMapping("/item")
public class SignatureItemController extends BaseController {
@@ -53,10 +53,10 @@
    /**
     * 删除签署项目
     */
    @PostMapping("/delete")
    @PostMapping("/delete/{id}")
    @ApiOperation(value = "删除签署项目")
    public AjaxResult remove(@RequestBody Long[] ids) {
        return toAjax(signatureItemService.deleteItem(ids));
    public AjaxResult remove(@PathVariable("id") Integer id) {
        return toAjax(signatureItemService.deleteItem(id));
    }
signature/src/main/java/com/gkhy/sign/controller/web/SignatureTemplateController.java
文件名从 signature/src/main/java/com/gkhy/sign/controller/SignatureTemplateController.java 修改
@@ -1,4 +1,4 @@
package com.gkhy.sign.controller;
package com.gkhy.sign.controller.web;
import com.gkhy.sign.entity.SignatureTemplate;
import com.gkhy.sign.entity.SignatureType;
@@ -13,7 +13,7 @@
import org.springframework.web.bind.annotation.*;
@RestController
@Api(value = "签署模版管理")
@Api(tags = "签署模版管理")
@RequestMapping("/template")
public class SignatureTemplateController extends BaseController {
@@ -52,10 +52,10 @@
    /**
     * 删除签署模版
     */
    @PostMapping("/delete")
    @PostMapping("/delete/{id}")
    @ApiOperation(value = "删除签署模版")
    public AjaxResult remove(@RequestBody Long[] ids) {
        return toAjax(signatureTemplateService.deleteTemplate(ids));
    public AjaxResult remove(@PathVariable("id") Long id) {
        return toAjax(signatureTemplateService.deleteTemplate(id));
    }
signature/src/main/java/com/gkhy/sign/controller/web/SignatureTypeController.java
文件名从 signature/src/main/java/com/gkhy/sign/controller/SignatureTypeController.java 修改
@@ -1,7 +1,8 @@
package com.gkhy.sign.controller;
package com.gkhy.sign.controller.web;
import com.gkhy.sign.entity.SignatureType;
import com.gkhy.sign.service.SignatureTypeService;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -13,7 +14,7 @@
@RestController
@Api(value = "签署类型管理")
@Api(tags = "签署类型管理")
@RequestMapping("/type")
public class SignatureTypeController extends BaseController {
@@ -24,7 +25,8 @@
     * 查询签署类别列表
     */
    @GetMapping("/list")
    @ApiOperation(value = "查询签署类别列表")
    @ApiOperation("查询签署类别列表")
    @Anonymous
    public AjaxResult list(SignatureType signatureType) {
        return success(signatureTypeService.selectTypeList(signatureType));
    }
@@ -33,7 +35,7 @@
     * 新增签署类别
     */
    @PostMapping("/insert")
    @ApiOperation(value = "新增签署类别")
    @ApiOperation("新增签署类别")
    public AjaxResult add(@Validated @RequestBody SignatureType signatureType) {
        return toAjax(signatureTypeService.insertSignatureType(signatureType));
    }
@@ -42,7 +44,7 @@
     * 修改签署类别
     */
    @PostMapping("/update")
    @ApiOperation(value = "修改签署类别")
    @ApiOperation("修改签署类别")
    public AjaxResult edit(@RequestBody SignatureType signatureType) {
        return toAjax(signatureTypeService.updateSignatureType(signatureType));
    }
@@ -50,10 +52,10 @@
    /**
     * 删除签署类别
     */
    @PostMapping("/delete")
    @ApiOperation(value = "删除签署类别")
    public AjaxResult remove(@RequestBody Long[] ids) {
        return toAjax(signatureTypeService.deleteType(ids));
    @PostMapping("/delete/{id}")
    @ApiOperation("删除签署类别")
    public AjaxResult remove(@PathVariable("id") Integer id) {
        return toAjax(signatureTypeService.deleteType(id));
    }
signature/src/main/java/com/gkhy/sign/dto/rep/SignatureFlowRep.java
@@ -15,6 +15,7 @@
    private String userName;
    private Integer deptId;
    private String deptName;
    private Integer  signUserId;
@@ -25,6 +26,7 @@
    private String signFile;
    private Integer signStatus;
    private Integer sort;
    public Integer getItemId() {
        return itemId;
@@ -56,6 +58,14 @@
    public void setDeptId(Integer deptId) {
        this.deptId = deptId;
    }
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public Integer getSignUserId() {
@@ -105,4 +115,12 @@
    public void setSignStatus(Integer signStatus) {
        this.signStatus = signStatus;
    }
    public Integer getSort() {
        return sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
}
signature/src/main/java/com/gkhy/sign/dto/rep/SignatureItemRep.java
@@ -2,16 +2,19 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gkhy.sign.entity.SignatureFlow;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class SignatureItemRep extends BaseEntity {
public class SignatureItemRep implements Serializable {
    private  Long id ;
    private String itemName;
@@ -19,6 +22,8 @@
    private String templateName;
    private Integer deptId;
    private String deptName;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date originateTime;
    private Integer initiaiUserId;
    private String initiaiUserName;
signature/src/main/java/com/gkhy/sign/dto/rep/SignatureTemplateRep.java
@@ -17,6 +17,7 @@
    private String deptName;
    private String filePath;
    private String fileName;
    private Integer delFlag;
    public Long getId() {
@@ -75,6 +76,14 @@
        this.filePath = filePath;
    }
    public String getFileName() {
        return fileName;
    }
    public void setFileName(String fileName) {
        this.fileName = fileName;
    }
    public Integer getDelFlag() {
        return delFlag;
    }
signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowAddReq.java
对比新文件
@@ -0,0 +1,132 @@
package com.gkhy.sign.dto.req;
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 String filePath;
    private Integer status;
    private Integer sort;
    private Integer delFlag;
    public Long getItemId() {
        return itemId;
    }
    public void setItemId(Long itemId) {
        this.itemId = itemId;
    }
    public Long getUserId() {
        return userId;
    }
    public void setUserId(Long userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public Long getDeptId() {
        return deptId;
    }
    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }
    public String getDeptName() {
        return deptName;
    }
    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 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 getSort() {
        return sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
    public Integer getDelFlag() {
        return delFlag;
    }
    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }
}
signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowSignReq.java
对比新文件
@@ -0,0 +1,43 @@
package com.gkhy.sign.dto.req;
public class SignatureFlowSignReq {
    private Integer itemId;
    private Long userId;
    private String filePath;
    private Integer status;
    public Integer getItemId() {
        return itemId;
    }
    public void setItemId(Integer itemId) {
        this.itemId = itemId;
    }
    public Long getUserId() {
        return userId;
    }
    public void setUserId(Long userId) {
        this.userId = userId;
    }
    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;
    }
}
signature/src/main/java/com/gkhy/sign/entity/SignatureFlow.java
@@ -17,32 +17,30 @@
    private Integer id;
    @NotNull(message = "项目id不能为空")
    @ApiModelProperty(value = "项目id")
    private Integer itemId;
    private Long itemId;
    @NotNull(message = "操作人id不能为空")
    @ApiModelProperty(value = "操作人id")
    private Long userId;
    @NotNull(message = "操作人姓名不能为空")
    @ApiModelProperty(value = "操作人姓名")
    private String userName;
    @NotNull(message = "操作人部门不能为空")
    @ApiModelProperty(value = "操作人部门")
    private Long deptId;
    @ApiModelProperty(value = "操作人部门")
    private String deptName;
    @NotNull(message = "流向人id不能为空")
    @ApiModelProperty(value = "流向人id")
    private Long signUserId;
    @NotNull(message = "流向人姓名不能为空")
    @ApiModelProperty(value = "流向人姓名")
    private String signUserName;
    @NotNull(message = "流向人部门不能为空")
    @ApiModelProperty(value = "流向人部门")
    private Long signDeptId;
    @ApiModelProperty(value = "流向人部门名称")
    private String signDeptName;
    private String file_path;
    private String filePath;
    private Integer status;
    private Integer sort;
    private Integer delFlag;
    public Integer getId() {
@@ -53,11 +51,11 @@
        this.id = id;
    }
    public Integer getItemId() {
    public Long getItemId() {
        return itemId;
    }
    public void setItemId(Integer itemId) {
    public void setItemId(Long itemId) {
        this.itemId = itemId;
    }
@@ -133,12 +131,21 @@
        this.deptName = deptName;
    }
    public String getFile_path() {
        return file_path;
    public String getFilePath() {
        return filePath;
    }
    public void setFile_path(String file_path) {
        this.file_path = file_path;
    public void setFilePath(String file_path) {
        this.filePath = filePath;
    }
    public Integer getSort() {
        return sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
    public Integer getStatus() {
signature/src/main/java/com/gkhy/sign/entity/SignatureTemplate.java
@@ -14,6 +14,7 @@
@ApiModel(value = "签署模版对象" , description = "签署模版对象")
public class SignatureTemplate extends BaseEntity {
    private static final long serialVersionUID = 1L;
    @TableId(type = IdType.AUTO)
    private Long id;
signature/src/main/java/com/gkhy/sign/entity/SignatureType.java
@@ -7,6 +7,7 @@
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@@ -14,11 +15,12 @@
@ApiModel(value = "签署类型",description = "签署类型对象")
public class SignatureType extends BaseEntity {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @NotNull(message = "类型名成不能为空")
    @NotBlank(message = "类型名成不能为空")
    private String typeName;
    private Integer delFlag;
signature/src/main/java/com/gkhy/sign/mapper/SignatureFlowMapper.java
@@ -2,10 +2,18 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.sign.dto.rep.SignatureFlowRep;
import com.gkhy.sign.dto.req.SignatureFlowSignReq;
import com.gkhy.sign.entity.SignatureFlow;
import java.util.List;
public interface SignatureFlowMapper extends BaseMapper<SignatureFlow> {
    List<SignatureFlowRep> selectbyItemId(Long id);
    int updateByFlowItemId(SignatureFlowSignReq signatureFlowReq);
    SignatureFlow selectByItemIdAndUserId(SignatureFlow signatureFlow);
    int updateByFlow(SignatureFlow signatureFlow);
}
signature/src/main/java/com/gkhy/sign/mapper/SignatureItemMapper.java
@@ -10,7 +10,10 @@
public interface SignatureItemMapper extends BaseMapper<SignatureItem> {
    List<SignatureItemRep> getItemList(SignatureItemReq signatureItem);
    int deleteItemByIds(Long[] ids);
    int deleteItemByIds(Integer ids);
    int insertSignatureItem(SignatureItem signatureItem);
    void updateByItemId(SignatureItem signatureItem);
}
signature/src/main/java/com/gkhy/sign/mapper/SignatureTemplateMapper.java
@@ -1,12 +1,13 @@
package com.gkhy.sign.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.sign.dto.rep.SignatureTemplateRep;
import com.gkhy.sign.entity.SignatureTemplate;
import java.util.List;
public interface SignatureTemplateMapper extends BaseMapper<SignatureTemplate> {
    List<SignatureTemplate> selectTemplateList(SignatureTemplate signatureTemplate);
    List<SignatureTemplateRep> selectTemplateList(SignatureTemplate signatureTemplate);
    int deleteTemplateByIds(Long[] ids);
    int deleteTemplateByIds(Long ids);
}
signature/src/main/java/com/gkhy/sign/mapper/SignatureTypeMapper.java
@@ -2,11 +2,14 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.sign.entity.SignatureType;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SignatureTypeMapper extends BaseMapper<SignatureType> {
    List<SignatureType> selectTypeList(SignatureType signatureType);
    int deleteTypeIds(Long[] ids);
    int deleteTypeIds(Integer ids);
    SignatureType selectByTypeName( String typeName);
}
signature/src/main/java/com/gkhy/sign/service/SignatureFlowService.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.sign.dto.rep.SignatureFlowRep;
import com.gkhy.sign.dto.req.SignatureFlowAddReq;
import com.gkhy.sign.dto.req.SignatureFlowSignReq;
import com.gkhy.sign.entity.SignatureFlow;
import java.util.List;
@@ -11,5 +13,8 @@
    int insertSignatureFlow(SignatureFlow signatureFlow);
    int saveSignatureFlow(SignatureFlowSignReq signatureFlowReq);
    int returnFile(SignatureFlow signatureFlow);
}
signature/src/main/java/com/gkhy/sign/service/SignatureItemService.java
@@ -14,5 +14,5 @@
    int updateSignatureIteme(SignatureItem signatureItem);
    int deleteItem(Long[] ids);
    int deleteItem(Integer ids);
}
signature/src/main/java/com/gkhy/sign/service/SignatureTemplateService.java
@@ -1,16 +1,17 @@
package com.gkhy.sign.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.sign.dto.rep.SignatureTemplateRep;
import com.gkhy.sign.entity.SignatureTemplate;
import java.util.List;
public interface SignatureTemplateService extends IService<SignatureTemplate> {
    List<SignatureTemplate> selectTemplate(SignatureTemplate signatureTemplate);
    List<SignatureTemplateRep> selectTemplate(SignatureTemplate signatureTemplate);
    int insertSignatureTemplate(SignatureTemplate signatureTemplate);
    int updateSignatureTemplate(SignatureTemplate signatureTemplate);
    int deleteTemplate(Long[] ids);
    int deleteTemplate(Long ids);
}
signature/src/main/java/com/gkhy/sign/service/SignatureTypeService.java
@@ -12,5 +12,5 @@
    int updateSignatureType(SignatureType signatureType);
    int deleteType(Long[] ids);
    int deleteType(Integer ids);
}
signature/src/main/java/com/gkhy/sign/service/impl/SignatureFlowServiceImpl.java
@@ -2,12 +2,24 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.sign.dto.rep.SignatureFlowRep;
import com.gkhy.sign.dto.req.SignatureFlowAddReq;
import com.gkhy.sign.dto.req.SignatureFlowSignReq;
import com.gkhy.sign.entity.SignatureFlow;
import com.gkhy.sign.entity.SignatureItem;
import com.gkhy.sign.mapper.SignatureFlowMapper;
import com.gkhy.sign.mapper.SignatureItemMapper;
import com.gkhy.sign.service.SignatureFlowService;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
@@ -15,6 +27,12 @@
    @Autowired
    private SignatureFlowMapper signatureFlowMapper;
    @Autowired
    private SignatureItemMapper signatureItemMapper;
    @Autowired
    private SysUserMapper sysUserMapper;
    @Autowired
    private SysDeptMapper sysDeptMapper;
@@ -25,6 +43,56 @@
    @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());
        return signatureFlowMapper.insert(signatureFlow);
    }
    @Override
    public int saveSignatureFlow(SignatureFlowSignReq signatureFlowReq) {
        return signatureFlowMapper.updateByFlowItemId(signatureFlowReq);
    }
    @Override
    public int returnFile(SignatureFlow signatureFlow) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        signatureFlow.setStatus(3);
        SysUser sysUser = sysUserMapper.selectUserById(loginUser.getUserId());
        SysDept sysDept = sysDeptMapper.selectDeptById(loginUser.getDeptId());
        signatureFlow.setUserId(loginUser.getUserId());
        signatureFlow.setUserName(sysUser.getNickName());
        signatureFlow.setDeptId(loginUser.getDeptId());
        signatureFlow.setDeptName(sysDept.getDeptName());
        signatureFlow.setSignDeptId(sysDept.getDeptId());
        signatureFlow.setSignDeptName(sysDept.getDeptName());
        signatureFlow.setSignUserId(sysUser.getUserId());
        signatureFlow.setSignUserName(sysUser.getNickName());
        List<SignatureFlowRep> signatureFlowReps = signatureFlowMapper.selectbyItemId(signatureFlow.getItemId());
        signatureFlow.setSort(signatureFlowReps.size()+1);
        int i = signatureFlowMapper.insert(signatureFlow);
        SignatureItem signatureItem = new SignatureItem();
        if (i>0){
            signatureItem.setId(Long.valueOf(signatureFlow.getItemId()));
            signatureItem.setFilePath(signatureFlow.getFilePath());
            signatureItem.setStatus(2);
            signatureItem.setUpdateBy(SecurityUtils.getUsername());
            signatureItem.setUpdateTime(new Date());
            signatureItemMapper.updateByItemId(signatureItem);
        }
        return i;
    }
}
signature/src/main/java/com/gkhy/sign/service/impl/SignatureItemServiceImpl.java
@@ -1,6 +1,8 @@
package com.gkhy.sign.service.impl;
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.SignatureItemReq;
import com.gkhy.sign.entity.SignatureFlow;
@@ -9,7 +11,9 @@
import com.gkhy.sign.mapper.SignatureItemMapper;
import com.gkhy.sign.service.SignatureItemService;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.system.mapper.SysUserMapper;
@@ -35,9 +39,15 @@
    @Override
    public List<SignatureItemRep> selectItemList(SignatureItemReq signatureItem) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        signatureItem.setUserId(user.getUserId());
        return signatureItemMapper.getItemList(signatureItem);
        if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
            signatureItem.setUserId(SecurityUtils.getUserId());
        }
        List<SignatureItemRep> itemList = signatureItemMapper.getItemList(signatureItem);
        for (SignatureItemRep signatureItemRep : itemList) {
            List<SignatureFlowRep> signatureFlowReps = signatureFlowMapper.selectbyItemId(signatureItemRep.getId());
            signatureItemRep.setSignatureFlows(signatureFlowReps);
        }
        return itemList;
    }
    @Override
@@ -48,20 +58,23 @@
        signatureItem.setOriginateTime(new Date());
        int insert = signatureItemMapper.insertSignatureItem(signatureItem);
        List<SignatureFlowRep> signatureFlowReps = signatureFlowMapper.selectbyItemId(signatureItem.getId());
        SignatureFlow signatureFlow = new SignatureFlow();
        signatureFlow.setItemId(insert);
        signatureFlow.setItemId(signatureItem.getId());
        signatureFlow.setUserId(SecurityUtils.getUserId());
        signatureFlow.setUserName(SecurityUtils.getUsername());
        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.getUserName());
        signatureFlow.setSignUserName(sysUser1.getNickName());
        signatureFlow.setSignDeptId(sysDept1.getDeptId());
        signatureFlow.setSignDeptName(sysDept1.getDeptName());
        signatureFlow.setStatus(0);
        signatureFlow.setSort(signatureFlowReps.size()+1);
        signatureFlowMapper.insert(signatureFlow);
        return insert;
@@ -76,7 +89,7 @@
    }
    @Override
    public int deleteItem(Long[] ids) {
    public int deleteItem(Integer ids) {
        return signatureItemMapper.deleteItemByIds(ids);
    }
}
signature/src/main/java/com/gkhy/sign/service/impl/SignatureTemplateServiceImpl.java
@@ -1,11 +1,15 @@
package com.gkhy.sign.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.sign.dto.rep.SignatureTemplateRep;
import com.gkhy.sign.entity.SignatureTemplate;
import com.gkhy.sign.mapper.SignatureTemplateMapper;
import com.gkhy.sign.service.SignatureTemplateService;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.FileUtils;
import org.apache.tomcat.util.http.fileupload.FileUpload;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -19,12 +23,17 @@
    private SignatureTemplateMapper signatureTemplateMapper;
    @Override
    public List<SignatureTemplate> selectTemplate(SignatureTemplate signatureTemplate) {
    public List<SignatureTemplateRep> selectTemplate(SignatureTemplate signatureTemplate) {
        if (!SysUser.isAdmin(SecurityUtils.getUserId())){
            signatureTemplate.setDeptId(SecurityUtils.getDeptId());
        }
        return signatureTemplateMapper.selectTemplateList(signatureTemplate);
        List<SignatureTemplateRep> signatureTemplateReps = signatureTemplateMapper.selectTemplateList(signatureTemplate);
        for (SignatureTemplateRep signatureTemplateRep : signatureTemplateReps) {
            String name = FileUtils.getName(signatureTemplateRep.getFilePath());
            signatureTemplateRep.setFileName(name);
        }
        return signatureTemplateReps;
    }
    @Override
@@ -42,7 +51,7 @@
    }
    @Override
    public int deleteTemplate(Long[] ids) {
    public int deleteTemplate(Long ids) {
        return signatureTemplateMapper.deleteTemplateByIds(ids);
    }
}
signature/src/main/java/com/gkhy/sign/service/impl/SignatureTypeServiceImpl.java
@@ -9,8 +9,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -30,6 +28,10 @@
        SysUser user = SecurityUtils.getLoginUser().getUser();
        signatureType.setCreateBy(user.getUserName());
        signatureType.setCreateTime(new Date());
        SignatureType signatureType1 = signatureTypeMapper.selectByTypeName(signatureType.getTypeName());
        if (signatureType1!=null){
            throw new RuntimeException("类型名称不可重复");
        }
        return signatureTypeMapper.insert(signatureType);
    }
@@ -42,7 +44,7 @@
    }
    @Override
    public int deleteType(Long[] ids) {
    public int deleteType(Integer ids) {
        return signatureTypeMapper.deleteTypeIds(ids);
    }
}
signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml
@@ -3,20 +3,39 @@
        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},
            `status` = #{status}
        WHERE
            item_id = #{itemId}
          AND sign_user_id = #{userId}
    </update>
    <update id="updateByFlow">
        update signature_flow
        set status=#{status} where item_id = #{itemId} and sign_user_id = #{userId}
    </update>
    <select id="selectbyItemId" resultType="com.gkhy.sign.dto.rep.SignatureFlowRep">
        select sf.item_id,
               sf.user_id,
               sf.user_name,
               sf.dept_id,
               sf.dept_name,
               sf.after_user_id,
               sf.after_user_name,
               sf.after_dept_id,
               sf.after_dept_name,
               siu.status as sing_status
        select
            item_id,
            user_id,
            user_name,
            dept_id,
            dept_name,
            sign_user_id,
            sign_user_name,
            sign_dept_id,
            sign_dept_name,
            file_path as sign_file,
            status as sign_status,
            sort
        from
            signature_flow where item_id = #{id}
    </select>
    <select id="selectByItemIdAndUserId" resultType="com.gkhy.sign.entity.SignatureFlow">
        select * from signature_flow where item_id = #{itemId} and sign_user_id = #{signUserId}
    </select>
</mapper>
signature/src/main/resources/mapper/sign/SignatureItemMapper.xml
@@ -13,24 +13,26 @@
        <result property="deptName" column="item_dept_name"/>
        <result property="originateTime" column="originate_time"/>
        <result property="initiaiUserId" column="initiai_user_id"/>
        <result property="initiaiUserName" column="initiaiUserid"/>
        <result property="initiaiUserName" column="initiai_user_name"/>
        <result property="itemFile" column="item_file"/>
        <result property="itemStatus" column="item_status"/>
        <result property="delFlag" column="del_flag"/>
        <collection property="signatureFlows" javaType="java.util.List" resultMap="signatureItemRep"/>
<!--        <collection property="signatureFlows" javaType="java.util.List" resultMap="signatureItemRep"/>-->
    </resultMap>
    <resultMap id="signatureItemRep" type="com.gkhy.sign.dto.rep.SignatureFlowRep">
        <result property="itemId" column="item_id"/>
        <result property="userId" column="user_id"/>
        <result property="userName" column="userName"/>
        <result property="userName" column="user_name"/>
        <result property="deptId" column="dept_id"/>
        <result property="deptName" column="dept_name"/>
        <result property="signUserId" column="sign_user_id"/>
        <result property="signUserName" column="sign_user_name"/>
        <result property="signDeptId" column="sign_dept_id"/>
        <result property="signDeptName" column="sign_dept_name"/>
        <result property="signFile" column="sign_file"/>
        <result property="signStatus" column="sign_status"/>
        <result property="sort" column="sort"/>
    </resultMap>
    <insert id="insertSignatureItem" parameterType="SignatureItem" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO `signature`.`signature_item`
@@ -40,7 +42,7 @@
            <if test="templateId != null">template_id,</if>
            <if test="deptId != null">dept_id,</if>
            <if test="originateTime != null">originate_time,</if>
            <if test="initialUserId != null">initiai_user_id,</if>
            <if test="initiaiUserId != null">initiai_user_id,</if>
            <if test="filePath != null and filePath != ''">file_path,</if>
            <if test="status != null">status,</if>
            <if test="delFlag != null">del_flag,</if>
@@ -55,7 +57,7 @@
            <if test="templateId != null">#{templateId},</if>
            <if test="deptId != null">#{deptId},</if>
            <if test="originateTime != null">#{originateTime},</if>
            <if test="initialUserId != null">#{initialUserId},</if>
            <if test="initiaiUserId != null">#{initiaiUserId},</if>
            <if test="filePath != null and filePath != ''">#{filePath},</if>
            <if test="status != null">#{status},</if>
            <if test="delFlag != null">#{delFlag},</if>
@@ -65,15 +67,33 @@
            <if test="updateTime != null">#{updateTime},</if>
        </trim>
    </insert>
    <update id="updateByItemId">
            update signature_item
            <trim prefix="SET" suffixOverrides=",">
                <if test="itemName != null and itemName != ''">item_name = #{itemName},</if>
                <if test="templateId != null">template_id = #{templateId},</if>
                <if test="deptId != null">dept_id = #{deptId},</if>
                <if test="originateTime != null">originate_time = #{originateTime},</if>
                <if test="initiaiUserId != null">initiai_user_id = #{initiaiUserId},</if>
                <if test="filePath != null and filePath != ''">file_path = #{filePath},</if>
                <if test="status != null"> status = #{status},</if>
                <if test="delFlag != null">del_flag = #{delFlag},</if>
                <if test="createBy != null and createBy != ''"> create_by = #{createBy},</if>
                <if test="createTime != null">create_time = #{createTime},</if>
                <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
                <if test="updateTime != null">update_time = #{updateTime},</if>
            </trim>
            where id = #{id}
    </update>
    <delete id="deleteItemByIds">
        update signature_item set del_flag = 2 where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
        update signature_item set del_flag = 2 where id = #{ids}
    </delete>
    <select id="getItemList" resultMap="signatureItemRep">
<!--    LEFT JOIN signature_flow sf ON si.id = sf.item_id-->
    <select id="getItemList" resultMap="itemVo">
        SELECT
            si.id,
            si.item_name,
@@ -82,37 +102,31 @@
            si.dept_id as itme_dept_id,
            sd.dept_name as item_dept_name,
            si.originate_time,
            su.user_name AS initiai_user_name,
            su.nick_name AS initiai_user_name,
            si.initiai_user_id,
            st.file_path as item_file,
            si.`status` as item_status,
            si.del_flag,
            sf.item_id,
            sf.user_id,
            sf.user_name,
            sf.dept_id,
            sf.dept_name,
            sf.sign_user_id,
            sf.sign_user_name,
            sf.sign_dept_id,
            sf.sign_dept_name,
            sf.file_path as sign_file,
            sf.status as sign_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
            LEFT JOIN signature_flow sf ON si.id = sf.item_id
        <where>
            si.del_flag = 0
            <if test="userId != null">
                AND si.id IN (
                SELECT DISTINCT si.id
                FROM signature_item si
                LEFT JOIN signature_flow sf ON si.id = sf.item_id
                WHERE sf.sign_user_id = #{userId}
                )
            </if>
            <if test="status != null">
                and si.status = #{status}
            </if>
            <if test="userId != null">
                and sf.user_id = #{userId}
            </if>
        </where>
        ORDER BY si.id
        ORDER BY si.create_time desc
    </select>
</mapper>
signature/src/main/resources/mapper/sign/SignatureTemplateMapper.xml
@@ -16,14 +16,11 @@
        <result property="delFlag" column="del_flag"/>
    </resultMap>
    <delete id="deleteTemplateByIds">
        update signature_template set del_flag = 2 where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
        update signature_template set del_flag = 2 where id = #{ids}
    </delete>
    <select id="selectTemplateList" resultType="com.gkhy.sign.entity.SignatureTemplate">
    <select id="selectTemplateList" resultType="com.gkhy.sign.dto.rep.SignatureTemplateRep">
        SELECT
            st.id,
            st.template_name,
@@ -38,9 +35,11 @@
                LEFT JOIN sys_dept sd ON st.dept_id = sd.dept_id
                LEFT JOIN signature_type sty on st.type_id = sty.id
        <where>
            and st.del_flag = 0
            <if test="deptId != null">
                and st.dept_id = #{deptId}
            </if>
        </where>
        order by st.create_time desc
    </select>
</mapper>
signature/src/main/resources/mapper/sign/SignatureTypeMapper.xml
@@ -18,10 +18,7 @@
    </sql>
    <delete id="deleteTypeIds">
        update signature_type set del_flag = 2 where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
        update signature_type set del_flag = 2 where id= #{ids}
    </delete>
@@ -34,4 +31,9 @@
            </if>
        </where>
    </select>
    <select id="selectByTypeName" resultType="com.gkhy.sign.entity.SignatureType">
        <include refid="selectType"/>
        where type_name =#{typeName} and del_flag = 0
    </select>
</mapper>