From 47d330d27fb88e85a40e64e5423f73b0b29c088e Mon Sep 17 00:00:00 2001 From: “djh” <“3298565835@qq.com”> Date: 星期一, 17 三月 2025 17:03:22 +0800 Subject: [PATCH] 修改 --- ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 3 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java | 6 signature/src/main/java/com/gkhy/sign/entity/SignatureType.java | 4 signature/src/main/java/com/gkhy/sign/mapper/SignatureTemplateMapper.java | 5 signature/src/main/java/com/gkhy/sign/service/SignatureItemService.java | 2 signature/src/main/java/com/gkhy/sign/dto/rep/SignatureFlowRep.java | 18 + signature/src/main/java/com/gkhy/sign/dto/rep/SignatureTemplateRep.java | 9 signature/src/main/java/com/gkhy/sign/service/SignatureTemplateService.java | 5 signature/src/main/java/com/gkhy/sign/service/impl/SignatureTemplateServiceImpl.java | 15 signature/src/main/java/com/gkhy/sign/controller/web/SignatureTemplateController.java | 10 ruoyi-admin/src/main/resources/application-pro.yml | 2 signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowSignReq.java | 43 +++ ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java | 4 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java | 63 ++++ signature/src/main/java/com/gkhy/sign/service/impl/SignatureItemServiceImpl.java | 27 + signature/src/main/java/com/gkhy/sign/controller/web/SignatureFlowController.java | 23 + signature/src/main/java/com/gkhy/sign/entity/SignatureTemplate.java | 1 signature/src/main/java/com/gkhy/sign/controller/web/SignatureItemController.java | 10 signature/src/main/resources/mapper/sign/SignatureTemplateMapper.xml | 9 signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureItemController.java | 32 ++ signature/src/main/java/com/gkhy/sign/controller/app/AppSignatureFlowController.java | 35 ++ signature/src/main/resources/mapper/sign/SignatureItemMapper.xml | 70 +++-- signature/src/main/java/com/gkhy/sign/entity/SignatureFlow.java | 31 + signature/src/main/java/com/gkhy/sign/mapper/SignatureFlowMapper.java | 8 signature/src/main/java/com/gkhy/sign/service/SignatureFlowService.java | 5 ruoyi-admin/src/main/resources/application.yml | 2 signature/src/main/java/com/gkhy/sign/mapper/SignatureItemMapper.java | 5 signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml | 39 ++ signature/src/main/java/com/gkhy/sign/service/SignatureTypeService.java | 2 signature/src/main/java/com/gkhy/sign/service/impl/SignatureFlowServiceImpl.java | 68 ++++ signature/src/main/java/com/gkhy/sign/controller/app/AppLoginController.java | 39 ++ signature/src/main/java/com/gkhy/sign/mapper/SignatureTypeMapper.java | 5 signature/src/main/java/com/gkhy/sign/service/impl/SignatureTypeServiceImpl.java | 8 ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java | 4 signature/src/main/java/com/gkhy/sign/controller/web/SignatureTypeController.java | 20 signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowAddReq.java | 132 +++++++++ signature/src/main/java/com/gkhy/sign/dto/rep/SignatureItemRep.java | 7 signature/src/main/resources/mapper/sign/SignatureTypeMapper.xml | 10 ruoyi-admin/src/main/resources/application-dev.yml | 6 39 files changed, 670 insertions(+), 117 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index 32eb6f1..2c161c9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/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) diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 4395f48..1bfc956 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/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 # 数据库索引 diff --git a/ruoyi-admin/src/main/resources/application-pro.yml b/ruoyi-admin/src/main/resources/application-pro.yml index 2c3d87c..eeb1cb4 100644 --- a/ruoyi-admin/src/main/resources/application-pro.yml +++ b/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 # 从库数据源 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index a32b0c2..973681a 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -109,7 +109,7 @@ # 是否开启swagger enabled: true # 请求前缀 - pathMapping: /dev-api + pathMapping: / # 防止XSS攻击 xss: diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java index 15bf66b..d138a3b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java +++ b/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() diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 2d3c0f6..a68e862 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/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() diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index fe16427..d6516c9 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/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()); + + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 5b2a7f2..9f868f3 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/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> diff --git a/signature/src/main/java/com/gkhy/sign/controller/app/AppLoginController.java b/signature/src/main/java/com/gkhy/sign/controller/app/AppLoginController.java new file mode 100644 index 0000000..6dd2be7 --- /dev/null +++ b/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(); + } +} + 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 new file mode 100644 index 0000000..3fbff67 --- /dev/null +++ b/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)); + } + + + + + +} 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 new file mode 100644 index 0000000..df27b3e --- /dev/null +++ b/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)); + } + + +} diff --git a/signature/src/main/java/com/gkhy/sign/controller/SignatureFlowController.java b/signature/src/main/java/com/gkhy/sign/controller/web/SignatureFlowController.java similarity index 67% rename from signature/src/main/java/com/gkhy/sign/controller/SignatureFlowController.java rename to signature/src/main/java/com/gkhy/sign/controller/web/SignatureFlowController.java index 91b22ba..bfdc7e4 100644 --- a/signature/src/main/java/com/gkhy/sign/controller/SignatureFlowController.java +++ b/signature/src/main/java/com/gkhy/sign/controller/web/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)); + } } diff --git a/signature/src/main/java/com/gkhy/sign/controller/SignatureItemController.java b/signature/src/main/java/com/gkhy/sign/controller/web/SignatureItemController.java similarity index 88% rename from signature/src/main/java/com/gkhy/sign/controller/SignatureItemController.java rename to signature/src/main/java/com/gkhy/sign/controller/web/SignatureItemController.java index 10f823a..50b1bce 100644 --- a/signature/src/main/java/com/gkhy/sign/controller/SignatureItemController.java +++ b/signature/src/main/java/com/gkhy/sign/controller/web/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)); } diff --git a/signature/src/main/java/com/gkhy/sign/controller/SignatureTemplateController.java b/signature/src/main/java/com/gkhy/sign/controller/web/SignatureTemplateController.java similarity index 91% rename from signature/src/main/java/com/gkhy/sign/controller/SignatureTemplateController.java rename to signature/src/main/java/com/gkhy/sign/controller/web/SignatureTemplateController.java index c8112d8..e73723b 100644 --- a/signature/src/main/java/com/gkhy/sign/controller/SignatureTemplateController.java +++ b/signature/src/main/java/com/gkhy/sign/controller/web/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)); } diff --git a/signature/src/main/java/com/gkhy/sign/controller/SignatureTypeController.java b/signature/src/main/java/com/gkhy/sign/controller/web/SignatureTypeController.java similarity index 75% rename from signature/src/main/java/com/gkhy/sign/controller/SignatureTypeController.java rename to signature/src/main/java/com/gkhy/sign/controller/web/SignatureTypeController.java index 45a0e9e..697b89a 100644 --- a/signature/src/main/java/com/gkhy/sign/controller/SignatureTypeController.java +++ b/signature/src/main/java/com/gkhy/sign/controller/web/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)); } diff --git a/signature/src/main/java/com/gkhy/sign/dto/rep/SignatureFlowRep.java b/signature/src/main/java/com/gkhy/sign/dto/rep/SignatureFlowRep.java index 2fae2cd..76522a5 100644 --- a/signature/src/main/java/com/gkhy/sign/dto/rep/SignatureFlowRep.java +++ b/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; + } } 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 03acbc2..5111aa6 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 @@ -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; diff --git a/signature/src/main/java/com/gkhy/sign/dto/rep/SignatureTemplateRep.java b/signature/src/main/java/com/gkhy/sign/dto/rep/SignatureTemplateRep.java index 53bd9bf..7fe794b 100644 --- a/signature/src/main/java/com/gkhy/sign/dto/rep/SignatureTemplateRep.java +++ b/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; } 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 new file mode 100644 index 0000000..ed3d508 --- /dev/null +++ b/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; + } +} diff --git a/signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowSignReq.java b/signature/src/main/java/com/gkhy/sign/dto/req/SignatureFlowSignReq.java new file mode 100644 index 0000000..6b2fa84 --- /dev/null +++ b/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; + } +} 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 18ada8c..b47e655 100644 --- a/signature/src/main/java/com/gkhy/sign/entity/SignatureFlow.java +++ b/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() { diff --git a/signature/src/main/java/com/gkhy/sign/entity/SignatureTemplate.java b/signature/src/main/java/com/gkhy/sign/entity/SignatureTemplate.java index d4e5f13..173216f 100644 --- a/signature/src/main/java/com/gkhy/sign/entity/SignatureTemplate.java +++ b/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; diff --git a/signature/src/main/java/com/gkhy/sign/entity/SignatureType.java b/signature/src/main/java/com/gkhy/sign/entity/SignatureType.java index 99b82ae..430bfc2 100644 --- a/signature/src/main/java/com/gkhy/sign/entity/SignatureType.java +++ b/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; 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 f65b7cc..33fe482 100644 --- a/signature/src/main/java/com/gkhy/sign/mapper/SignatureFlowMapper.java +++ b/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); + } 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 5d8b5e0..6c9fc6a 100644 --- a/signature/src/main/java/com/gkhy/sign/mapper/SignatureItemMapper.java +++ b/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); + } diff --git a/signature/src/main/java/com/gkhy/sign/mapper/SignatureTemplateMapper.java b/signature/src/main/java/com/gkhy/sign/mapper/SignatureTemplateMapper.java index 575c502..d89f10b 100644 --- a/signature/src/main/java/com/gkhy/sign/mapper/SignatureTemplateMapper.java +++ b/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); } diff --git a/signature/src/main/java/com/gkhy/sign/mapper/SignatureTypeMapper.java b/signature/src/main/java/com/gkhy/sign/mapper/SignatureTypeMapper.java index 33edefe..6a42fb5 100644 --- a/signature/src/main/java/com/gkhy/sign/mapper/SignatureTypeMapper.java +++ b/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); } 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 8c67d5c..dbdc6b0 100644 --- a/signature/src/main/java/com/gkhy/sign/service/SignatureFlowService.java +++ b/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); } 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 77b6a6c..9e0237c 100644 --- a/signature/src/main/java/com/gkhy/sign/service/SignatureItemService.java +++ b/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); } diff --git a/signature/src/main/java/com/gkhy/sign/service/SignatureTemplateService.java b/signature/src/main/java/com/gkhy/sign/service/SignatureTemplateService.java index f3b3f88..a77a922 100644 --- a/signature/src/main/java/com/gkhy/sign/service/SignatureTemplateService.java +++ b/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); } diff --git a/signature/src/main/java/com/gkhy/sign/service/SignatureTypeService.java b/signature/src/main/java/com/gkhy/sign/service/SignatureTypeService.java index 6220d13..71b766b 100644 --- a/signature/src/main/java/com/gkhy/sign/service/SignatureTypeService.java +++ b/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); } 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 66f2180..c19e870 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 @@ -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; + } } 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 3f0e5d3..d3d14bf 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,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); } } diff --git a/signature/src/main/java/com/gkhy/sign/service/impl/SignatureTemplateServiceImpl.java b/signature/src/main/java/com/gkhy/sign/service/impl/SignatureTemplateServiceImpl.java index a875bfd..0d05433 100644 --- a/signature/src/main/java/com/gkhy/sign/service/impl/SignatureTemplateServiceImpl.java +++ b/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); } } diff --git a/signature/src/main/java/com/gkhy/sign/service/impl/SignatureTypeServiceImpl.java b/signature/src/main/java/com/gkhy/sign/service/impl/SignatureTypeServiceImpl.java index c0c0a0f..ad153aa 100644 --- a/signature/src/main/java/com/gkhy/sign/service/impl/SignatureTypeServiceImpl.java +++ b/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); } } diff --git a/signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml b/signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml index c647e6b..11db864 100644 --- a/signature/src/main/resources/mapper/sign/SignatureFlowMapper.xml +++ b/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> \ No newline at end of file diff --git a/signature/src/main/resources/mapper/sign/SignatureItemMapper.xml b/signature/src/main/resources/mapper/sign/SignatureItemMapper.xml index 4523301..a2d0970 100644 --- a/signature/src/main/resources/mapper/sign/SignatureItemMapper.xml +++ b/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> \ No newline at end of file diff --git a/signature/src/main/resources/mapper/sign/SignatureTemplateMapper.xml b/signature/src/main/resources/mapper/sign/SignatureTemplateMapper.xml index c3e2571..ecdd072 100644 --- a/signature/src/main/resources/mapper/sign/SignatureTemplateMapper.xml +++ b/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> \ No newline at end of file diff --git a/signature/src/main/resources/mapper/sign/SignatureTypeMapper.xml b/signature/src/main/resources/mapper/sign/SignatureTypeMapper.xml index 43a22ee..94b22d4 100644 --- a/signature/src/main/resources/mapper/sign/SignatureTypeMapper.xml +++ b/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> \ No newline at end of file -- Gitblit v1.9.2