From 9d7be2c16b9c21f7ee4c147cbd98f3dba21e301f Mon Sep 17 00:00:00 2001 From: gy b Date: Mon, 8 Jan 2024 18:39:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=B5=81=E7=A8=8B=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/flow/CaseFlowController.java | 60 +++++++ .../system/domain/entity/flow/MsCaseFlow.java | 48 ++++++ .../entity/flow/MsCaseFlowRoleRelated.java | 30 ++++ .../domain/vo/flow/MsCaseFlowSearchVO.java | 28 ++++ .../system/domain/vo/flow/MsCaseFlowVO.java | 45 +++++ .../system/mapper/flow/MsCaseFlowMapper.java | 7 + .../flow/MsCaseFlowRoleRelatedMapper.java | 7 + .../system/service/flow/CaseFlowService.java | 34 ++++ .../service/flow/CaseFlowServiceImpl.java | 154 ++++++++++++++++++ .../system/mapper/flow/MsCaseFlowMapper.xml | 15 ++ .../flow/MsCaseFlowRoleRelatedMapper.xml | 12 ++ .../resources/generator/config.properties | 6 +- 12 files changed, 443 insertions(+), 3 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/flow/CaseFlowController.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlow.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlowRoleRelated.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowSearchVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowRoleRelatedMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.xml create mode 100644 ruoyi-system/src/main/resources/com/ruoyi/system/mapper/flow/MsCaseFlowRoleRelatedMapper.xml diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/flow/CaseFlowController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/flow/CaseFlowController.java new file mode 100644 index 0000000..1966e58 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/flow/CaseFlowController.java @@ -0,0 +1,60 @@ +package com.ruoyi.web.controller.flow; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO; +import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO; +import com.ruoyi.system.service.flow.CaseFlowService; +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; + +import static com.ruoyi.common.core.domain.AjaxResult.success; + +/** + * 案件流程管理 + */ +@RestController +@RequestMapping("/case/flow") +public class CaseFlowController { + @Autowired + CaseFlowService caseFlowService; + + /** + * 查询案件流程节点信息 + */ + @PostMapping("/queryCaseFlowInfo") + public AjaxResult queryCaseFlowInfo(@RequestBody MsCaseFlowSearchVO caseFlowSearchVO) { + Object obj = caseFlowService.queryCaseFlowInfo(caseFlowSearchVO); + return success(obj); + } + + /** + * 新增或编辑案件流程节点信息 + */ + @PostMapping("/saveCaseFlow") + public AjaxResult addCaseFlow(@RequestBody MsCaseFlowVO caseFlowVO) { + Boolean result = caseFlowService.addCaseFlow(caseFlowVO); + return success(result); + + } + + /** + * 删除案件流程节点信息 + */ + @PostMapping("/deleteCaseFlow") + public AjaxResult deleteCaseFlow(@RequestBody MsCaseFlowVO caseFlowVO) { + Boolean result = caseFlowService.deleteCaseFlow(caseFlowVO); + return success(result); + } + + /** + * 排序案件流程节点 + */ + @PostMapping("/sortCaseFlow") + public AjaxResult sortCaseFlow(@RequestBody MsCaseFlowVO caseFlowVO) { + Boolean result = caseFlowService.sortCaseFlow(caseFlowVO); + return success(result); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlow.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlow.java new file mode 100644 index 0000000..8def684 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlow.java @@ -0,0 +1,48 @@ +package com.ruoyi.system.domain.entity.flow; + +import javax.persistence.*; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@ToString +@Table(name = "ms_case_flow") +public class MsCaseFlow { + /** + * 主键id + */ + @Id + @GeneratedValue(generator = "JDBC") + private Integer id; + + /** + * 案件节点id + */ + @Column(name = "node_id") + private Integer nodeId; + + /** + * 案件节点名称 + */ + @Column(name = "node_name") + private String nodeName; + + /** + * 顺序 + */ + private Integer sort; + + /** + * 案件状态名称 + */ + @Column(name = "case_status_name") + private String caseStatusName; + + /** + * 驳回节点id + */ + @Column(name = "back_flow_id") + private Integer backFlowId; +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlowRoleRelated.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlowRoleRelated.java new file mode 100644 index 0000000..7a4477a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/entity/flow/MsCaseFlowRoleRelated.java @@ -0,0 +1,30 @@ +package com.ruoyi.system.domain.entity.flow; + +import javax.persistence.*; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@ToString +@Table(name = "ms_case_flow_role_related") +public class MsCaseFlowRoleRelated { + /** + * id + */ + @Id + @GeneratedValue(generator = "JDBC") + private Integer id; + + /** + * 案件流程id + */ + @Column(name = "flow_id") + private Integer flowId; + + /** + * 用户角色id + */ + private Long roleid; +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowSearchVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowSearchVO.java new file mode 100644 index 0000000..b337f8c --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowSearchVO.java @@ -0,0 +1,28 @@ +package com.ruoyi.system.domain.vo.flow; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +import javax.persistence.Column; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Table; + +@Getter +@Setter +@ToString +public class MsCaseFlowSearchVO { + /** + * 主键id + */ + private Integer id; + + /** + * 案件节点名称 + */ + private String nodeName; + private Integer pageNum; + private Integer pageSize; + +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java new file mode 100644 index 0000000..d1ba4ca --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java @@ -0,0 +1,45 @@ +package com.ruoyi.system.domain.vo.flow; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class MsCaseFlowVO { + /** + * 主键id + */ + private Integer id; + + /** + * 案件节点id + */ + private Integer nodeId; + + /** + * 案件节点名称 + */ + private String nodeName; + + /** + * 顺序 + */ + private Integer sort; + + /** + * 案件状态名称 + */ + private String caseStatusName; + + /** + * 驳回节点id + */ + private Integer backFlowId; + private String backFlowName; + private String roleNames; +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.java new file mode 100644 index 0000000..f682692 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.java @@ -0,0 +1,7 @@ +package com.ruoyi.system.mapper.flow; + +import com.ruoyi.system.domain.entity.flow.MsCaseFlow; +import tk.mybatis.mapper.common.Mapper; + +public interface MsCaseFlowMapper extends Mapper { +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowRoleRelatedMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowRoleRelatedMapper.java new file mode 100644 index 0000000..1a91364 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowRoleRelatedMapper.java @@ -0,0 +1,7 @@ +package com.ruoyi.system.mapper.flow; + +import com.ruoyi.system.domain.entity.flow.MsCaseFlowRoleRelated; +import tk.mybatis.mapper.common.Mapper; + +public interface MsCaseFlowRoleRelatedMapper extends Mapper { +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowService.java new file mode 100644 index 0000000..bf0c988 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowService.java @@ -0,0 +1,34 @@ +package com.ruoyi.system.service.flow; + +import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO; +import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO; + +public interface CaseFlowService { + /** + * 查询案件流程节点信息 + * @param caseFlowSearchVO + * @return + */ + Object queryCaseFlowInfo(MsCaseFlowSearchVO caseFlowSearchVO); + + /** + * 新增或编辑案件流程节点信息 + * @param caseFlowVO + * @return + */ + Boolean addCaseFlow(MsCaseFlowVO caseFlowVO); + + /** + * 删除案件流程节点信息 + * @param caseFlowVO + * @return + */ + Boolean deleteCaseFlow(MsCaseFlowVO caseFlowVO); + + /** + * 排序案件流程节点 + * @param caseFlowVO + * @return + */ + Boolean sortCaseFlow(MsCaseFlowVO caseFlowVO); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowServiceImpl.java new file mode 100644 index 0000000..6b83abe --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/flow/CaseFlowServiceImpl.java @@ -0,0 +1,154 @@ +package com.ruoyi.system.service.flow; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.utils.PageUtils; +import com.ruoyi.system.domain.SysOperLog; +import com.ruoyi.system.domain.entity.flow.MsCaseFlow; +import com.ruoyi.system.domain.entity.flow.MsCaseFlowRoleRelated; +import com.ruoyi.system.domain.vo.flow.MsCaseFlowSearchVO; +import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.system.mapper.flow.MsCaseFlowMapper; +import com.ruoyi.system.mapper.flow.MsCaseFlowRoleRelatedMapper; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import tk.mybatis.mapper.entity.Example; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.deepoove.poi.data.NumberingRenderData.build; +import static com.ruoyi.common.utils.PageUtils.startPage; +import static jdk.nashorn.internal.runtime.Debug.id; + +@Service +public class CaseFlowServiceImpl implements CaseFlowService { + @Autowired + MsCaseFlowMapper msCaseFlowMapper; + @Autowired + MsCaseFlowRoleRelatedMapper msCaseFlowRoleRelatedMapper; + @Autowired + SysRoleMapper sysRoleMapper; + + /** + * 查询案件流程节点信息 + * + * @param caseFlowSearchVO + * @return + */ + @Override + public Object queryCaseFlowInfo(MsCaseFlowSearchVO caseFlowSearchVO) { + //查询某个案件流程节点信息 + if (caseFlowSearchVO.getId() != null) { + return msCaseFlowMapper.selectByPrimaryKey(caseFlowSearchVO.getId()); + } else if (caseFlowSearchVO == null) { + return msCaseFlowMapper.selectAll(); + } else if (caseFlowSearchVO.getPageNum() == null || caseFlowSearchVO.getPageSize() == null) { + return msCaseFlowMapper.selectAll(); + } else { + Map> sysRoleMap = queryRoleByFlowId(null); + Example example = new Example(MsCaseFlow.class); + example.setOrderByClause(" sort DESC "); + Example.Criteria criteria = example.createCriteria(); + if (caseFlowSearchVO.getNodeName() != null) { + criteria.andLike("nodeName", "%" + caseFlowSearchVO.getNodeName() + "%"); + } + PageHelper.startPage(caseFlowSearchVO.getPageNum(), caseFlowSearchVO.getPageSize()); + List msCaseFlows = msCaseFlowMapper.selectByExample(example); + PageInfo pageInfo = new PageInfo<>(msCaseFlows); + PageInfo newpageInfo = new PageInfo<>(); + BeanUtils.copyProperties(pageInfo, newpageInfo); + List list = new ArrayList<>(); + for (int i = 0; i < msCaseFlows.size(); i++) { + MsCaseFlow msCaseFlow = msCaseFlows.get(i); + MsCaseFlowVO temp = new MsCaseFlowVO(); + BeanUtils.copyProperties(msCaseFlow, temp); + //关联的角色 + List roleNames = new ArrayList<>(); + if (sysRoleMap.containsKey(msCaseFlow.getId())) { + List sysRoles = sysRoleMap.get(msCaseFlow.getId()); + roleNames = sysRoles + .stream() + .map(sysRole -> sysRole.getRoleName()) + .collect(Collectors.toList()); + temp.setRoleNames(roleNames.toString()); + } + //驳回节点 + if (msCaseFlow.getBackFlowId() != null) { + MsCaseFlow msCaseFlow1 = msCaseFlowMapper.selectByPrimaryKey(msCaseFlow.getBackFlowId()); + temp.setBackFlowName(msCaseFlow1.getNodeName()); + } + list.add(temp); + } + return list; + } + } + + /** + * 查询流程信息相关的角色信息 + * + * @return + */ + Map> queryRoleByFlowId(Integer flowId) { + Map> map = new HashMap<>(); + Example example = new Example(MsCaseFlowRoleRelated.class); + Example.Criteria criteria = example.createCriteria(); + if (flowId != null) { + criteria.andEqualTo("flowId", flowId); + } + List msCaseFlowRoleRelateds = msCaseFlowRoleRelatedMapper.selectByExample(example); + for (int i = 0; i < msCaseFlowRoleRelateds.size(); i++) { + Integer flowId1 = msCaseFlowRoleRelateds.get(i).getFlowId(); + if (msCaseFlowRoleRelateds.get(i).getRoleid() != null) { + SysRole sysRole = sysRoleMapper.selectRoleById(msCaseFlowRoleRelateds.get(i).getRoleid()); + if (map.containsKey(flowId1)) { + map.get(flowId1).add(sysRole); + } else { + List newList = new ArrayList<>(); + newList.add(sysRole); + map.put(flowId1, newList); + } + } + } + return map; + } + + /** + * 新增或编辑案件流程节点信息 + * + * @param caseFlowVO + * @return + */ + @Override + public Boolean addCaseFlow(MsCaseFlowVO caseFlowVO) { + return null; + } + + /** + * 删除案件流程节点信息 + * + * @param caseFlowVO + * @return + */ + @Override + public Boolean deleteCaseFlow(MsCaseFlowVO caseFlowVO) { + return null; + } + + /** + * 排序案件流程节点 + * + * @param caseFlowVO + * @return + */ + @Override + public Boolean sortCaseFlow(MsCaseFlowVO caseFlowVO) { + return null; + } +} diff --git a/ruoyi-system/src/main/resources/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.xml b/ruoyi-system/src/main/resources/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.xml new file mode 100644 index 0000000..8869184 --- /dev/null +++ b/ruoyi-system/src/main/resources/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/com/ruoyi/system/mapper/flow/MsCaseFlowRoleRelatedMapper.xml b/ruoyi-system/src/main/resources/com/ruoyi/system/mapper/flow/MsCaseFlowRoleRelatedMapper.xml new file mode 100644 index 0000000..e55c30e --- /dev/null +++ b/ruoyi-system/src/main/resources/com/ruoyi/system/mapper/flow/MsCaseFlowRoleRelatedMapper.xml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/tkgenerator/src/main/resources/generator/config.properties b/tkgenerator/src/main/resources/generator/config.properties index c326d39..cf2f08b 100644 --- a/tkgenerator/src/main/resources/generator/config.properties +++ b/tkgenerator/src/main/resources/generator/config.properties @@ -3,10 +3,10 @@ jdbc.url=jdbc:mysql://121.40.189.20:3306/mediation_system?serverTimezone=Asia/Sh jdbc.user=root jdbc.password=YMzc157# #目标模块项目路径 -targetprojectpath=D:/ymPro/Mediation-Backend/ruoyi-system +targetprojectpath=E:/WorkCode/SH/Mediation-Backend/ruoyi-system #模块名称 -moduleName=mscase +moduleName=flow #表名 -tableName=ms_case_application +tableName=ms_case_flow_role_related #主键 premaryId=id