This commit is contained in:
zfh 2025-02-20 17:26:55 +08:00
parent 7b7b80f461
commit 014a4b3325
14 changed files with 675 additions and 0 deletions

View File

@ -0,0 +1,85 @@
package com.bonus.material.work.controller;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.material.work.domain.SysWorkflowNode;
import com.bonus.material.work.service.SysWorkflowNodeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@Api(tags = "工作流详情表")
@RestController
@RequestMapping("/sysWorkflowNode")
public class SysWorkflowNodeController extends BaseController {
@Resource
private SysWorkflowNodeService sysWorkflowNodeService;
/**
* 工作流详情列表
*/
@ApiOperation(value = "工作流详情列表")
@GetMapping("/list")
public TableDataInfo list(SysWorkflowNode sysWorkflowNode)
{
try {
startPage();
List<SysWorkflowNode> list = sysWorkflowNodeService.selectSysWorkflowNodeList(sysWorkflowNode);
return getDataTable(list);
}catch (Exception e){
return getDataTableError(null);
}
}
/**
* 新增工作流详情
*/
@ApiOperation(value = "新增工作流详情")
@PostMapping("/add")
public AjaxResult add(@RequestBody SysWorkflowNode sysWorkflowNode)
{
try {
sysWorkflowNodeService.addSysWorkflowNode(sysWorkflowNode);
return new AjaxResult(200,"新增成功!");
}catch (Exception e){
return error();
}
}
/**
* 删除工作流详情
*/
@ApiOperation(value = "删除工作流详情")
@PostMapping("/delete")
public AjaxResult delete(@RequestBody SysWorkflowNode sysWorkflowNode)
{
try {
sysWorkflowNodeService.deleteSysWorkflowNode(sysWorkflowNode);
return new AjaxResult(200,"删除成功!");
}catch (Exception e){
return error();
}
}
/**
* 修改工作流详情
*/
@ApiOperation(value = "修改工作流详情")
@PostMapping("/update")
public AjaxResult update(@RequestBody SysWorkflowNode sysWorkflowNode)
{
try {
sysWorkflowNodeService.updateSysWorkflowNode(sysWorkflowNode);
return new AjaxResult(200,"修改成功!");
}catch (Exception e){
return error();
}
}
}

View File

@ -0,0 +1,85 @@
package com.bonus.material.work.controller;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.material.work.domain.SysWorkflowType;
import com.bonus.material.work.service.SysWorkflowTypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@Api(tags = "审批类型接口")
@RestController
@RequestMapping("/sysWorkflowType")
public class SysWorkflowTypeController extends BaseController {
@Resource
private SysWorkflowTypeService sysWorkflowTypeServicel;
/**
* 审批类型列表
*/
@ApiOperation(value = "审批类型列表")
@GetMapping("/list")
public TableDataInfo list(SysWorkflowType sysWorkflowType)
{
try {
startPage();
List<SysWorkflowType> list = sysWorkflowTypeServicel.selectSysWorkflowTypeList(sysWorkflowType);
return getDataTable(list);
}catch (Exception e){
return getDataTableError(null);
}
}
/**
* 新增审批类型
*/
@ApiOperation(value = "新增审批类型")
@PostMapping("/add")
public AjaxResult add(@RequestBody SysWorkflowType sysWorkflowType)
{
try {
sysWorkflowTypeServicel.addSysWorkflowType(sysWorkflowType);
return new AjaxResult(200,"新增成功!");
}catch (Exception e){
return error();
}
}
/**
* 删除审批类型
*/
@ApiOperation(value = "删除审批类型")
@PostMapping("/delete")
public AjaxResult delete(@RequestBody SysWorkflowType sysWorkflowType)
{
try {
sysWorkflowTypeServicel.deleteSysWorkflowType(sysWorkflowType);
return new AjaxResult(200,"删除成功!");
}catch (Exception e){
return error();
}
}
/**
* 修改审批类型
*/
@ApiOperation(value = "修改审批类型")
@PostMapping("/update")
public AjaxResult update(@RequestBody SysWorkflowType sysWorkflowType)
{
try {
sysWorkflowTypeServicel.updateSysWorkflowType(sysWorkflowType);
return new AjaxResult(200,"修改成功!");
}catch (Exception e){
return error();
}
}
}

View File

@ -0,0 +1,43 @@
package com.bonus.material.work.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.ToString;
import java.util.Date;
@Data
@ToString
public class SysWorkflowConfig {
/**
* 主键
*/
private Integer id;
/**
* 所属工作节点
*/
private Integer nodeId;
/**
* 配置类型 0角色 1用户
*/
private Integer configType;
/**
* 配置值
*/
private Integer configValue;
/**
* 0关闭 1启用
*/
private Integer isEnable;
/**
* 创建人
*/
private String keyWord;
}

View File

@ -0,0 +1,69 @@
package com.bonus.material.work.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.ToString;
import java.util.Date;
@Data
@ToString
public class SysWorkflowNode {
/**
* 主键
*/
private Integer id;
/**
* 所属流程类型ID
*/
private Integer typeId;
/**
* 流程节点名称
*/
private String nodeName;
/**
* 流程节点顺序从0开始不可重复
*/
private Integer nodeSort;
/**
* 流程节点签名方式 0:或签 1:会签
*/
private Integer nodeSignType;
/**
* 流程节点签名群体 0:角色 1:用户
*/
private Integer nodeSignConfig;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createTime;
/**
* 0关闭 1启用
*/
private Integer isEnable;
/**
* 关键字
*/
private String keyWord;
/**
* 配置值
*/
private String configValues;
}

View File

@ -0,0 +1,54 @@
package com.bonus.material.work.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.ToString;
import java.util.Date;
@Data
@ToString
public class SysWorkflowType {
/**
* 主键
*/
private Integer id;
/**
* 工作流类型
*/
private String typeName;
/**
* 执行任务类型
*/
private Integer taskType;
/**
* 执行任务类型
*/
private String taskName;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createTime;
/**
* 0关闭 1启用
*/
private Integer isEnable;
/**
* 创建人
*/
private String keyWord;
}

View File

@ -0,0 +1,14 @@
package com.bonus.material.work.mapper;
import com.bonus.material.work.domain.SysWorkflowConfig;
import com.bonus.material.work.domain.SysWorkflowType;
import java.util.List;
public interface SysWorkflowConfigMapper {
int addSysWorkflowConfig(SysWorkflowConfig sysWorkflowConfig);
int deleteSysWorkflowConfig(SysWorkflowConfig sysWorkflowConfig);
}

View File

@ -0,0 +1,17 @@
package com.bonus.material.work.mapper;
import com.bonus.material.work.domain.SysWorkflowNode;
import com.bonus.material.work.domain.SysWorkflowType;
import java.util.List;
public interface SysWorkflowNodeMapper {
List<SysWorkflowNode> selectSysWorkflowNodeList(SysWorkflowNode sysWorkflowNode);
int addSysWorkflowNode(SysWorkflowNode sysWorkflowNode);
int deleteSysWorkflowNode(SysWorkflowNode sysWorkflowNode);
int updateSysWorkflowNode(SysWorkflowNode sysWorkflowNode);
}

View File

@ -0,0 +1,17 @@
package com.bonus.material.work.mapper;
import com.bonus.material.warehouse.domain.WhDirectApplyDetails;
import com.bonus.material.work.domain.SysWorkflowType;
import java.util.List;
public interface SysWorkflowTypeMapper {
public List<SysWorkflowType> selectSysWorkflowTypeList(SysWorkflowType sysWorkflowType);
int addSysWorkflowType(SysWorkflowType sysWorkflowType);
int deleteSysWorkflowType(SysWorkflowType sysWorkflowType);
int updateSysWorkflowType(SysWorkflowType sysWorkflowType);
}

View File

@ -0,0 +1,16 @@
package com.bonus.material.work.service;
import com.bonus.material.work.domain.SysWorkflowNode;
import java.util.List;
public interface SysWorkflowNodeService {
List<SysWorkflowNode> selectSysWorkflowNodeList(SysWorkflowNode sysWorkflowNode);
int addSysWorkflowNode(SysWorkflowNode sysWorkflowNode);
int deleteSysWorkflowNode(SysWorkflowNode sysWorkflowNode);
int updateSysWorkflowNode(SysWorkflowNode sysWorkflowNode);
}

View File

@ -0,0 +1,16 @@
package com.bonus.material.work.service;
import com.bonus.material.work.domain.SysWorkflowType;
import java.util.List;
public interface SysWorkflowTypeService {
List<SysWorkflowType> selectSysWorkflowTypeList(SysWorkflowType sysWorkflowType);
int addSysWorkflowType(SysWorkflowType sysWorkflowType);
int deleteSysWorkflowType(SysWorkflowType sysWorkflowType);
int updateSysWorkflowType(SysWorkflowType sysWorkflowType);
}

View File

@ -0,0 +1,96 @@
package com.bonus.material.work.service.impl;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.work.domain.SysWorkflowConfig;
import com.bonus.material.work.domain.SysWorkflowNode;
import com.bonus.material.work.mapper.SysWorkflowConfigMapper;
import com.bonus.material.work.mapper.SysWorkflowNodeMapper;
import com.bonus.material.work.service.SysWorkflowNodeService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Service
public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService {
@Resource
private SysWorkflowNodeMapper sysWorkflowNodeMapper;
@Resource
private SysWorkflowConfigMapper sysWorkflowConfigMapper;
/**
* 工作流详情列表
*/
@Override
public List<SysWorkflowNode> selectSysWorkflowNodeList(SysWorkflowNode sysWorkflowNode) {
return sysWorkflowNodeMapper.selectSysWorkflowNodeList(sysWorkflowNode);
}
/**
* 新增工作流详情
*/
@Override
@Transactional
public int addSysWorkflowNode(SysWorkflowNode sysWorkflowNode) {
//保存创建人信息
sysWorkflowNode.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
//保存创建时间
sysWorkflowNode.setCreateTime(DateUtils.getNowDate());
String[] ConfigValue = sysWorkflowNode.getConfigValues().split(",");
if (sysWorkflowNode.getConfigValues().isEmpty()){
throw new ServiceException("请选择审核人员");
}
int count = sysWorkflowNodeMapper.addSysWorkflowNode(sysWorkflowNode);
for (int i = 0; i < ConfigValue.length; i++) {
SysWorkflowConfig sysWorkflowConfig = new SysWorkflowConfig();
sysWorkflowConfig.setNodeId(sysWorkflowNode.getId());
sysWorkflowConfig.setConfigType(sysWorkflowNode.getNodeSignType());
sysWorkflowConfig.setConfigValue(Integer.valueOf(ConfigValue[i]));
//新增审核详情表信息
sysWorkflowConfigMapper.addSysWorkflowConfig(sysWorkflowConfig);
}
return count;
}
/**
* 删除工作流详情
*/
@Override
@Transactional
public int deleteSysWorkflowNode(SysWorkflowNode sysWorkflowNode) {
SysWorkflowConfig sysWorkflowConfig = new SysWorkflowConfig();
sysWorkflowConfig.setNodeId(sysWorkflowNode.getId());
sysWorkflowConfigMapper.deleteSysWorkflowConfig(sysWorkflowConfig);
int count = sysWorkflowNodeMapper.deleteSysWorkflowNode(sysWorkflowNode);
return count;
}
/**
* 修改工作流详情
*/
@Override
@Transactional
public int updateSysWorkflowNode(SysWorkflowNode sysWorkflowNode) {
int count = sysWorkflowNodeMapper.updateSysWorkflowNode(sysWorkflowNode);
String[] ConfigValue = sysWorkflowNode.getConfigValues().split(",");
if (sysWorkflowNode.getConfigValues().isEmpty()){
throw new ServiceException("请选择审核人员");
}
sysWorkflowNodeMapper.deleteSysWorkflowNode(sysWorkflowNode);
for (int i = 0; i < ConfigValue.length; i++) {
SysWorkflowConfig sysWorkflowConfig = new SysWorkflowConfig();
sysWorkflowConfig.setNodeId(sysWorkflowNode.getId());
sysWorkflowConfig.setConfigType(sysWorkflowNode.getNodeSignType());
sysWorkflowConfig.setConfigValue(Integer.valueOf(ConfigValue[i]));
//新增审核详情表信息
sysWorkflowConfigMapper.addSysWorkflowConfig(sysWorkflowConfig);
}
return count;
}
}

View File

@ -0,0 +1,27 @@
<?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.bonus.material.work.mapper.SysWorkflowConfigMapper">
<insert id="addSysWorkflowConfig">
insert into sys_workflow_config
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="nodeId != null">node_id,</if>
<if test="configType != null">config_type,</if>
<if test="configValue != null">config_value,</if>
<if test="isEnable != null">is_enable,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="nodeId != null">#{nodeId},</if>
<if test="configType != null">#{configType},</if>
<if test="configValue != null">#{configValue},</if>
<if test="isEnable != null">#{isEnable},</if>
</trim>
</insert>
<delete id="deleteSysWorkflowConfig">
delete from sys_workflow_config where node_id=#{nodeId}
</delete>
</mapper>

View File

@ -0,0 +1,72 @@
<?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.bonus.material.work.mapper.SysWorkflowNodeMapper">
<resultMap type="com.bonus.material.work.domain.SysWorkflowNode" id="SysWorkflowNodeResult">
<result property="id" column="id" />
<result property="typeId" column="type_id" />
<result property="nodeName" column="node_name" />
<result property="nodeSort" column="node_sort" />
<result property="nodeSignType" column="node_sign_type" />
<result property="nodeSignConfig" column="node_sign_config" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="isEnable" column="is_enable" />
</resultMap>
<sql id="selectSysWorkflowNodeVo">
select id, type_id, node_name, node_sort, node_sign_type, node_sign_config,
create_by,create_time,is_enable from sys_workflow_node
</sql>
<insert id="addSysWorkflowNode" useGeneratedKeys="true" keyProperty="id">
insert into sys_workflow_node
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="typeId != null">type_id,</if>
<if test="nodeName != null">node_name,</if>
<if test="nodeSort != null">node_sort,</if>
<if test="nodeSignType != null">node_sign_type,</if>
<if test="nodeSignConfig != null">node_sign_config,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="isEnable != null">is_enable,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="typeId != null">#{typeId},</if>
<if test="nodeName != null">#{nodeName},</if>
<if test="nodeSort != null">#{nodeSort},</if>
<if test="nodeSignType != null">#{nodeSignType},</if>
<if test="nodeSignConfig != null">#{nodeSignConfig},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="isEnable != null">#{isEnable},</if>
</trim>
</insert>
<update id="updateSysWorkflowNode">
update sys_workflow_node
<trim prefix="SET" suffixOverrides=",">
<if test="nodeName != null">node_name = #{nodeName},</if>
<if test="nodeSort != null">node_sort = #{nodeSort},</if>
<if test="nodeSignType != null">node_sign_type = #{nodeSignType},</if>
<if test="nodeSignConfig != null">node_sign_config = #{nodeSignConfig},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSysWorkflowNode">
delete from sys_workflow_node where id =#{id}
</delete>
<select id="selectSysWorkflowNodeList" resultType="com.bonus.material.work.domain.SysWorkflowNode">
select swn.id as id, swn.type_id typeId, swn.node_name as nodeName, swn.node_sort as nodeSort,
swn.node_sign_type as nodeSignType, swn.node_sign_config as nodeSignConfig,
swn.create_by as createBy,swn.create_time as createTime,swn.is_enable as isEnable,
GROUP_CONCAT(sec.config_value SEPARATOR ',') AS configValues
from sys_workflow_node swn
left join sys_workflow_config sec on swn.id= sec.node_id
where swn.type_id='1'
<if test="nodeName != null "> and type_name like concat('%', #{typeName}, '%')</if>
<if test="nodeSignType != null "> and node_sign_type = #{nodeSignType}</if>
GROUP BY swn.id
</select>
</mapper>

View File

@ -0,0 +1,64 @@
<?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.bonus.material.work.mapper.SysWorkflowTypeMapper">
<resultMap type="com.bonus.material.work.domain.SysWorkflowType" id="SysWorkflowTypeResult">
<result property="id" column="id" />
<result property="typeName" column="type_name" />
<result property="taskType" column="task_type" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="isEnable" column="is_enable" />
</resultMap>
<sql id="selectSysWorkflowTypeVo">
select id, type_name, task_type, create_by, create_time, is_enable from sys_workflow_type
</sql>
<insert id="addSysWorkflowType" parameterType="com.bonus.material.work.domain.SysWorkflowType">
insert into sys_workflow_type
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="typeName != null">type_name,</if>
<if test="taskType != null">task_type,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="isEnable != null">is_enable,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="typeName != null">#{typeName},</if>
<if test="taskType != null">#{taskType},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="isEnable != null">#{isEnable},</if>
</trim>
</insert>
<update id="updateSysWorkflowType" parameterType="com.bonus.material.work.domain.SysWorkflowType">
update sys_workflow_type
<trim prefix="SET" suffixOverrides=",">
<if test="typeName != null">type_name = #{typeName},</if>
<if test="taskType != null">task_type = #{taskType},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSysWorkflowType">
delete from sys_workflow_type where id = #{id}
</delete>
<select id="selectSysWorkflowTypeList" parameterType="com.bonus.material.work.domain.SysWorkflowType" resultType="com.bonus.material.work.domain.SysWorkflowType">
select swt.id as id, swt.type_name as typeName, swt.task_type as taskType,sdd.dict_label as taskName, swt.create_by as createBy,
swt.create_time as createTime, swt.is_enable as isEnable
from sys_workflow_type swt
left join sys_dict_data sdd on swt.task_type =sdd.dict_value
where sdd.dict_type='countersign_type_name'
<if test="typeName != null "> and type_name like concat('%', #{typeName}, '%')</if>
<if test="taskType != null "> and task_type = #{taskType}</if>
<if test="createBy != null "> and create_by = #{createBy}</if>
<if test="createTime != null "> and create_time = #{createTime}</if>
<if test="isEnable != null "> and is_enable = #{isEnable}</if>
<if test="keyWord != null "> and type_name like concat('%', #{keyWord}, '%')</if>
</select>
</mapper>