business/src/main/java/com/ycl/controller/ProcessConfigInfoController.java
New file @@ -0,0 +1,48 @@ package com.ycl.controller; import com.ycl.common.group.Update; import com.ycl.common.group.Add; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import lombok.RequiredArgsConstructor; import java.util.List; import org.springframework.validation.annotation.Validated; import javax.validation.constraints.NotEmpty; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import com.ycl.service.ProcessConfigInfoService; import com.ycl.common.base.Result; import com.ycl.domain.form.ProcessConfigInfoForm; import com.ycl.domain.query.ProcessConfigInfoQuery; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; /** * 流程类型配置信息表 前端控制器 * * @author xp * @since 2024-11-26 */ @Validated @RequiredArgsConstructor @Api(value = "流程类型配置信息表", tags = "流程类型配置信息表管理") @RestController @RequestMapping("/process-config-info") public class ProcessConfigInfoController { private final ProcessConfigInfoService processConfigInfoService; @PostMapping @ApiOperation(value = "保存", notes = "保存") @PreAuthorize("@ss.hasPermi('processConfigInfo:add')") public Result save(@RequestBody ProcessConfigInfoForm form) { return processConfigInfoService.save(form); } @GetMapping @ApiOperation(value = "详情", notes = "详情") @PreAuthorize("@ss.hasPermi('processConfigInfo:detail')") public Result detail(@RequestParam String deployId, @RequestParam Integer deployVersion) { return processConfigInfoService.detail(deployId, deployVersion); } } business/src/main/java/com/ycl/domain/entity/ProcessConfigInfo.java
New file @@ -0,0 +1,47 @@ package com.ycl.domain.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import com.ycl.system.domain.base.AbsEntity; import lombok.Data; /** * 流程类型配置信息表 * * @author xp * @since 2024-11-26 */ @Data @TableName("t_process_config_info") public class ProcessConfigInfo extends AbsEntity { private static final long serialVersionUID = 1L; @TableField("deploy_id") /** 流程部署id */ private String deployId; @TableField("project_type") /** 项目类型 */ private String projectType; @TableField("fund_type") /** 资金类型 */ private String fundType; @TableField("invest_type") /** 投资类别 */ private String investType; @TableField("importance_type") /** 重点分类 */ private String importanceType; @TableField("deploy_version") /** 发布版本 */ private Integer deployVersion; } business/src/main/java/com/ycl/domain/form/ProcessConfigInfoForm.java
New file @@ -0,0 +1,58 @@ package com.ycl.domain.form; import com.ycl.common.group.Update; import com.ycl.common.group.Add; import com.ycl.system.domain.base.AbsForm; import com.ycl.domain.entity.ProcessConfigInfo; import org.springframework.beans.BeanUtils; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import org.springframework.lang.NonNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * 流程类型配置信息表表单 * * @author xp * @since 2024-11-26 */ @Data @ApiModel(value = "ProcessConfigInfo表单", description = "流程类型配置信息表表单") public class ProcessConfigInfoForm { @NotBlank(message = "流程部署id不能为空") @ApiModelProperty("流程部署id") private String deployId; @NotBlank(message = "项目类型不能为空") @ApiModelProperty("项目类型") private String projectType; @NotBlank(message = "资金类型不能为空") @ApiModelProperty("资金类型") private String fundType; @NotBlank(message = "投资类别不能为空") @ApiModelProperty("投资类别") private String investType; @NotBlank(message = "重点分类不能为空") @ApiModelProperty("重点分类") private String importanceType; @NotNull(message = "发布版本不能为空") @ApiModelProperty("发布版本") private Integer deployVersion; public static ProcessConfigInfo getEntityByForm(@NonNull ProcessConfigInfoForm form, ProcessConfigInfo entity) { if(entity == null) { entity = new ProcessConfigInfo(); } BeanUtils.copyProperties(form, entity); return entity; } } business/src/main/java/com/ycl/domain/query/ProcessConfigInfoQuery.java
New file @@ -0,0 +1,22 @@ package com.ycl.domain.query; import com.ycl.system.domain.base.AbsQuery; import java.util.List; import org.springframework.lang.NonNull; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * 流程类型配置信息表查询 * * @author xp * @since 2024-11-26 */ @Data @ApiModel(value = "ProcessConfigInfo查询参数", description = "流程类型配置信息表查询参数") public class ProcessConfigInfoQuery extends AbsQuery { } business/src/main/java/com/ycl/domain/vo/ProcessConfigInfoVO.java
New file @@ -0,0 +1,55 @@ package com.ycl.domain.vo; import com.ycl.system.domain.base.AbsVo; import com.ycl.domain.entity.ProcessConfigInfo; import java.util.List; import org.springframework.lang.NonNull; import org.springframework.beans.BeanUtils; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * 流程类型配置信息表展示 * * @author xp * @since 2024-11-26 */ @Data @ApiModel(value = "流程类型配置信息表响应数据", description = "流程类型配置信息表响应数据") public class ProcessConfigInfoVO extends AbsVo { /** 流程部署id */ @ApiModelProperty("流程部署id") private String deployId; /** 项目类型 */ @ApiModelProperty("项目类型") private String projectType; /** 资金类型 */ @ApiModelProperty("资金类型") private String fundType; /** 投资类别 */ @ApiModelProperty("投资类别") private String investType; /** 重点分类 */ @ApiModelProperty("重点分类") private String importanceType; /** 发布版本 */ @ApiModelProperty("发布版本") private Integer deployVersion; public static ProcessConfigInfoVO getVoByEntity(@NonNull ProcessConfigInfo entity, ProcessConfigInfoVO vo) { if(vo == null) { vo = new ProcessConfigInfoVO(); } BeanUtils.copyProperties(entity, vo); return vo; } } business/src/main/java/com/ycl/mapper/ProcessConfigInfoMapper.java
New file @@ -0,0 +1,34 @@ package com.ycl.mapper; import com.ycl.domain.entity.ProcessConfigInfo; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.domain.vo.ProcessConfigInfoVO; import com.ycl.domain.form.ProcessConfigInfoForm; import com.ycl.domain.query.ProcessConfigInfoQuery; import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * 流程类型配置信息表 Mapper 接口 * * @author xp * @since 2024-11-26 */ @Mapper public interface ProcessConfigInfoMapper extends BaseMapper<ProcessConfigInfo> { /** * id查找流程类型配置信息表 * @param id * @return */ ProcessConfigInfoVO getById(Integer id); /** * 分页 */ IPage getPage(IPage page, @Param("query") ProcessConfigInfoQuery query); } business/src/main/java/com/ycl/service/ProcessConfigInfoService.java
New file @@ -0,0 +1,34 @@ package com.ycl.service; import com.ycl.domain.entity.ProcessConfigInfo; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.common.base.Result; import com.ycl.domain.form.ProcessConfigInfoForm; import com.ycl.domain.query.ProcessConfigInfoQuery; import java.util.List; /** * 流程类型配置信息表 服务类 * * @author xp * @since 2024-11-26 */ public interface ProcessConfigInfoService extends IService<ProcessConfigInfo> { /** * 添加 * @param form * @return */ Result save(ProcessConfigInfoForm form); /** * 根据deployId查找 * @param deployId 流程部署id * @param deployId 流程部署版本 * @return */ Result detail(String deployId, Integer deployVersion); } business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java
New file @@ -0,0 +1,84 @@ package com.ycl.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.ycl.domain.entity.ProcessConfigInfo; import com.ycl.mapper.ProcessConfigInfoMapper; import com.ycl.service.ProcessConfigInfoService; import com.ycl.common.base.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.domain.form.ProcessConfigInfoForm; import com.ycl.domain.vo.ProcessConfigInfoVO; import com.ycl.domain.query.ProcessConfigInfoQuery; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import com.ycl.framework.utils.PageUtil; import org.springframework.beans.BeanUtils; import org.springframework.util.Assert; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * 流程类型配置信息表 服务实现类 * * @author xp * @since 2024-11-26 */ @Service @RequiredArgsConstructor public class ProcessConfigInfoServiceImpl extends ServiceImpl<ProcessConfigInfoMapper, ProcessConfigInfo> implements ProcessConfigInfoService { private final ProcessConfigInfoMapper processConfigInfoMapper; /** * 添加 * @param form * @return */ @Override public Result save(ProcessConfigInfoForm form) { // 根据部署id和版本号查询是否保存过,有就修改,没有就新增 ProcessConfigInfo entity = new LambdaQueryChainWrapper<>(baseMapper) .eq(ProcessConfigInfo::getDeployId, form.getDeployId()) .eq(ProcessConfigInfo::getDeployVersion, form.getDeployVersion()) .one(); if (Objects.isNull(entity)) { entity = ProcessConfigInfoForm.getEntityByForm(form, null); baseMapper.insert(entity); } else { new LambdaUpdateChainWrapper<>(baseMapper) .eq(ProcessConfigInfo::getDeployId, form.getDeployId()) .eq(ProcessConfigInfo::getDeployVersion, form.getDeployVersion()) .set(ProcessConfigInfo::getProjectType, form.getProjectType()) .set(ProcessConfigInfo::getFundType, form.getFundType()) .set(ProcessConfigInfo::getInvestType, form.getInvestType()) .set(ProcessConfigInfo::getImportanceType, form.getImportanceType()) .update(); } return Result.ok("保存成功"); } /** * 根据id查找 * @param deployId * @return */ @Override public Result detail(String deployId, Integer deployVersion) { ProcessConfigInfo entity = new LambdaQueryChainWrapper<>(baseMapper) .eq(ProcessConfigInfo::getDeployId, deployId) .eq(ProcessConfigInfo::getDeployVersion, deployVersion) .one(); ProcessConfigInfoVO vo = new ProcessConfigInfoVO(); if (Objects.isNull(entity)) { return Result.ok().data(entity); } else { BeanUtils.copyProperties(entity, vo); } return Result.ok().data(vo); } } business/src/main/resources/mapper/ProcessConfigInfoMapper.xml
New file @@ -0,0 +1,52 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ycl.mapper.ProcessConfigInfoMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProcessConfigInfoVO"> <result column="deploy_id" property="deployId" /> <result column="project_type" property="projectType" /> <result column="fund_type" property="fundType" /> <result column="invest_type" property="investType" /> <result column="importance_type" property="importanceType" /> <result column="deploy_version" property="deployVersion" /> </resultMap> <select id="getById" resultMap="BaseResultMap"> SELECT TPCI.deploy_id, TPCI.project_type, TPCI.fund_type, TPCI.invest_type, TPCI.importance_type, TPCI.deploy_version, TPCI.id FROM t_process_config_info TPCI WHERE TPCI.id = #{id} AND TPCI.deleted = 0 </select> <select id="getPage" resultMap="BaseResultMap"> SELECT TPCI.deploy_id, TPCI.project_type, TPCI.fund_type, TPCI.invest_type, TPCI.importance_type, TPCI.deploy_version, TPCI.id FROM t_process_config_info TPCI WHERE TPCI.deleted = 0 </select> </mapper> flowable/src/main/java/com/ycl/service/impl/FlowDefinitionServiceImpl.java
@@ -118,7 +118,7 @@ /** * 导入流程文件 * 导入流程文件,自动部署 * * 当每个key的流程第一次部署时,指定版本为1。对其后所有使用相同key的流程定义, * 部署时版本会在该key当前已部署的最高版本号基础上加1。key参数用于区分流程定义