From 9946989992d90d1f296ab449d6af70db696e2f00 Mon Sep 17 00:00:00 2001 From: hayu <1604366271@qq.com> Date: Mon, 26 May 2025 00:52:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E7=AD=BE=E7=AE=A1=E7=90=86=EF=BC=8C?= =?UTF-8?q?=E5=BA=93=E7=AE=A1=E5=91=98=E5=A4=9A=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/signProcessController.java | 12 +- .../countersign/domain/SignProcessVo.java | 10 ++ .../countersign/mapper/SignProcessMapper.java | 11 +- .../service/ISignProcessService.java | 6 +- .../service/impl/SignProcessServiceImpl.java | 121 +++++++++++++----- .../countersign/SignProcessMapper.xml | 71 +++++++++- 6 files changed, 187 insertions(+), 44 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/controller/signProcessController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/controller/signProcessController.java index 392938ac..d161d659 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/controller/signProcessController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/controller/signProcessController.java @@ -65,9 +65,9 @@ public class signProcessController extends BaseController { */ @ApiOperation(value = "获取会签流程配置管理详细信息") @RequiresPermissions("signProcess:info:query") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) { - return success(signProcessService.selectProcessInfoById(id)); + @GetMapping(value = "/{ids}") + public AjaxResult getInfo(@PathVariable("ids") Long[] ids) { + return success(signProcessService.selectProcessInfoById(ids)); } @@ -94,8 +94,8 @@ public class signProcessController extends BaseController { @PreventRepeatSubmit @RequiresPermissions("signProcess:info:remove") @SysLog(title = "会签流程配置管理", businessType = OperaType.DELETE, module = "会签流程配置管理->删除会签流程配置管理") - @PostMapping("/delProcess/{id}") - public AjaxResult delProcess(@PathVariable("id") Long id) { - return signProcessService.delProcess(id); + @PostMapping("/delProcess/{ids}") + public AjaxResult delProcess(@PathVariable("ids") Long[] ids) { + return signProcessService.delProcess(ids); } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/domain/SignProcessVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/domain/SignProcessVo.java index 87af00f0..bbe3ec9d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/domain/SignProcessVo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/domain/SignProcessVo.java @@ -21,6 +21,10 @@ public class SignProcessVo extends BaseEntity { @ApiModelProperty(value = "id") private Long id; + private Long[] ids; + + private String idStr; + /** 会签流程id */ @ApiModelProperty(value = "会签流程id") private String processId; @@ -33,6 +37,12 @@ public class SignProcessVo extends BaseEntity { @ApiModelProperty(value = "组织id") private Long orgId; + private String orgIdStr; + + /** 组织id */ + @ApiModelProperty(value = "组织ids") + private Long[] orgIds; + /** 会签流程名称 */ @ApiModelProperty(value = "会签流程名称") private String processName; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/mapper/SignProcessMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/mapper/SignProcessMapper.java index a2443195..4f23e0bf 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/mapper/SignProcessMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/mapper/SignProcessMapper.java @@ -3,6 +3,7 @@ package com.bonus.material.countersign.mapper; import com.bonus.material.countersign.domain.SignConfigVo; import com.bonus.material.countersign.domain.SignProcessVo; import com.bonus.material.purchase.domain.PurchaseSignRecord; +import feign.Param; import java.util.List; @@ -40,6 +41,14 @@ public interface SignProcessMapper */ List getList(SignProcessVo signProcessVo); + /** + * 查询会签流程配置管理列表 + * + * @param signProcessVo 会签流程配置管理 + * @return 会签流程配置管理集合 + */ + List getListNew(SignProcessVo signProcessVo); + /** * 新增时查询流程id和会签类型下会签组织是否重复 * @@ -62,7 +71,7 @@ public interface SignProcessMapper * @param id 主键 * @return 会签流程配置管理 */ - SignProcessVo selectProcessInfoById(Long id); + SignProcessVo selectProcessInfoById(@Param("id") Long[] id); /** * 修改时查询查询流程id和会签类型下会签组织是否重复 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/service/ISignProcessService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/service/ISignProcessService.java index 710ce197..4aa56654 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/service/ISignProcessService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/service/ISignProcessService.java @@ -36,7 +36,7 @@ public interface ISignProcessService { * @param id 主键 * @return 会签流程配置管理 */ - SignProcessVo selectProcessInfoById(Long id); + SignProcessVo selectProcessInfoById(Long[] id); /** @@ -50,8 +50,8 @@ public interface ISignProcessService { /** * 删除会签流程配置管理信息 * - * @param id 主键 + * @param ids 主键 * @return 结果 */ - AjaxResult delProcess(Long id); + AjaxResult delProcess(Long[] ids); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/service/impl/SignProcessServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/service/impl/SignProcessServiceImpl.java index 61e786ea..eec5a0ce 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/service/impl/SignProcessServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/countersign/service/impl/SignProcessServiceImpl.java @@ -7,8 +7,11 @@ import com.bonus.material.countersign.mapper.SignConfigMapper; import com.bonus.material.countersign.mapper.SignProcessMapper; import com.bonus.material.countersign.service.ISignConfigService; import com.bonus.material.countersign.service.ISignProcessService; +import org.hibernate.validator.internal.util.StringHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.List; @@ -32,7 +35,26 @@ public class SignProcessServiceImpl implements ISignProcessService */ @Override public List getList(SignProcessVo signProcessVo) { - return signProcessMapper.getList(signProcessVo); + List list = signProcessMapper.getListNew(signProcessVo); + if (list.size()>0){ + for (SignProcessVo signProcessVos : list) { + //将idStr用逗号分割,放入ids数组中 + String[] split = signProcessVos.getIdStr().split(","); + Long[] ids = new Long[split.length]; + for (int i = 0; i < split.length; i++) { + ids[i] = Long.parseLong(split[i].trim()); + } + signProcessVos.setIds(ids); + //将orgIdStr用逗号分割,放入orgIds数组中 + String[] splitTwo = signProcessVos.getOrgIdStr().split(","); + Long[] orgIds = new Long[splitTwo.length]; + for (int i = 0; i < splitTwo.length; i++) { + orgIds[i] = Long.parseLong(splitTwo[i].trim()); + } + signProcessVos.setOrgIds(orgIds); + } + } + return list; } /** @@ -42,18 +64,24 @@ public class SignProcessServiceImpl implements ISignProcessService * @return 结果 */ @Override - public AjaxResult insertProcessInfo(SignProcessVo signProcessVo) - { + public AjaxResult insertProcessInfo(SignProcessVo signProcessVo) { try { - int count = signProcessMapper.selectProcessRepeat(signProcessVo); - if(count > 0){ - return AjaxResult.error("该会签流程和类型下已有该会签组织,请重新选择新增"); - } - int countTwo = signProcessMapper.insertProcessInfo(signProcessVo); - if(countTwo == 1){ + if (signProcessVo != null && signProcessVo.getOrgIds() != null) { + for (Long orgId : signProcessVo.getOrgIds()) { + signProcessVo.setOrgId(orgId); + int count = signProcessMapper.selectProcessRepeat(signProcessVo); + if (count > 0) { + return AjaxResult.error("该会签流程和类型下已有该会签组织,请重新选择新增"); + } + int countTwo = signProcessMapper.insertProcessInfo(signProcessVo); + if (countTwo <= 0) { + return AjaxResult.error("会签流程配置新增失败"); + } + } return AjaxResult.success(); + } else { + return AjaxResult.error("请选择会签组织"); } - return AjaxResult.error("会签流程配置新增失败"); } catch (Exception e) { return AjaxResult.error(); } @@ -62,13 +90,30 @@ public class SignProcessServiceImpl implements ISignProcessService /** * 查询会签流程配置管理详情 * - * @param id 主键 + * @param ids 主键 * @return 会签流程配置管理 */ @Override - public SignProcessVo selectProcessInfoById(Long id) + public SignProcessVo selectProcessInfoById(Long[] ids) { - return signProcessMapper.selectProcessInfoById(id); + SignProcessVo signProcessVo = signProcessMapper.selectProcessInfoById(ids); + if (signProcessVo != null && !StringHelper.isNullOrEmptyString(signProcessVo.getOrgIdStr())){ + //将orgIdStr用逗号分割,放入orgIds数组中 + String[] split = signProcessVo.getOrgIdStr().split(","); + Long[] orgIds = new Long[split.length]; + for (int i = 0; i < split.length; i++) { + orgIds[i] = Long.parseLong(split[i].trim()); + } + signProcessVo.setOrgIds(orgIds); + //将idStr用逗号分割,放入ids数组中 + String[] splitTwo = signProcessVo.getIdStr().split(","); + Long[] id = new Long[splitTwo.length]; + for (int i = 0; i < splitTwo.length; i++) { + id[i] = Long.parseLong(splitTwo[i].trim()); + } + signProcessVo.setIds(id); + } + return signProcessVo; } @@ -79,19 +124,32 @@ public class SignProcessServiceImpl implements ISignProcessService * @return 结果 */ @Override - public AjaxResult updateProcessInfo(SignProcessVo signProcessVo) - { + @Transactional(rollbackFor = Exception.class) + public AjaxResult updateProcessInfo(SignProcessVo signProcessVo) { try { - int count = signProcessMapper.selectProcessRepeatEdit(signProcessVo); - if(count > 0){ - return AjaxResult.error("该会签流程和类型下已有该会签组织,请重新选择修改"); + //先将数据删除 + for (Long id : signProcessVo.getIds()) { + int count = signProcessMapper.delProcess(id); + if (count <= 0) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("会签流程配置修改失败"); + } } - int countTwo = signProcessMapper.updateProcessInfo(signProcessVo); - if(countTwo == 1){ - return AjaxResult.success(); + for (Long orgId : signProcessVo.getOrgIds()) { + signProcessVo.setOrgId(orgId); + int count = signProcessMapper.selectProcessRepeat(signProcessVo); + if (count > 0) { + return AjaxResult.error("该会签流程和类型下已有该会签组织,请重新选择修改"); + } + int countTwo = signProcessMapper.insertProcessInfo(signProcessVo); + if (countTwo <= 0) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("会签流程配置修改失败"); + } } - return AjaxResult.error("会签流程配置修改失败"); + return AjaxResult.success(); } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.error(); } } @@ -99,18 +157,23 @@ public class SignProcessServiceImpl implements ISignProcessService /** * 删除会签流程配置管理信息 * - * @param id 主键 + * @param ids 主键 * @return 结果 */ @Override - public AjaxResult delProcess(Long id) - { + @Transactional(rollbackFor = Exception.class) + public AjaxResult delProcess(Long[] ids) { try { - int count = signProcessMapper.delProcess(id); - if(count == 1){ - return AjaxResult.success(); + if (ids != null || ids.length > 0) { + for (Long id : ids) { + int count = signProcessMapper.delProcess(id); + if (count <= 0) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("会签流程配置删除失败"); + } + } } - return AjaxResult.error("会签流程配置删除失败"); + return AjaxResult.success(); } catch (Exception e) { return AjaxResult.error(); } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/countersign/SignProcessMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/countersign/SignProcessMapper.xml index c4972bd1..2086a883 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/countersign/SignProcessMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/countersign/SignProcessMapper.xml @@ -4,6 +4,56 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + - select - sc.id as id,sc.process_id as processId,sc.sign_type as signType,sc.org_id as orgId - from sign_config sc - where sc.id = #{id} and sc.del_flag = 0 +