feat(标准宣贯流程): 基础模块

This commit is contained in:
yjz
2023-11-30 11:36:05 +08:00
parent 222a03d6ed
commit 7ac884f988
15 changed files with 898 additions and 2 deletions
@@ -0,0 +1,14 @@
package com.jero.modules.activiti.process.esdeclare.common;
/**
* @ClassName: EsDeclareCommon
* @Description:
* @Author: yjz
* @Date: 2023-11-30 09:56
* @Version: 1.0
**/
public class EsDeclareCommon {
private EsDeclareCommon(){
}
}
@@ -0,0 +1,71 @@
package com.jero.modules.activiti.process.esdeclare.controller;
import com.jero.common.api.vo.Result;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.util.MessageUtils;
import com.jero.common.util.SnowflakeUtils;
import com.jero.modules.activiti.process.esdeclare.service.IEsDeclareFlowService;
import com.jero.modules.activiti.process.esdeclare.vo.EsDeclareFlowVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.web.bind.annotation.*;
/**
* @ClassName: EsDeclareController
* @Description:
* @Author: yjz
* @Date: 2023-11-30 09:58
* @Version: 1.0
**/
@Api(tags="标准宣贯流程")
@RestController
@RequestMapping("/esinspect/esDeclareFlowController")
@Slf4j
public class EsDeclareFlowController {
private final IEsDeclareFlowService esDeclareFlowService;
public EsDeclareFlowController(IEsDeclareFlowService esDeclareFlowService) {
this.esDeclareFlowService = esDeclareFlowService;
}
/**
* 标准宣贯流程-生成项目id
* @return 项目id
*/
@AutoLog(value = "标准宣贯流程-生成项目id")
@ApiOperation(value="标准宣贯流程-生成项目id", notes="标准宣贯流程-生成项目id")
@GetMapping(value = "/getProjectId")
public String getProjectId() {
return String.valueOf(SnowflakeUtils.snowflake());
}
/**
* 标准宣贯流程-流程发起
* @param esDeclareFlowVO 标准宣贯流程VO对象
* @return 结果对象
*/
@AutoLog(value = "标准宣贯流程-流程发起")
@ApiOperation(value="标准宣贯流程-流程发起", notes="标准宣贯流程-流程发起")
@PostMapping(value = "/flowStart")
public Result<T> flowStart(@RequestBody EsDeclareFlowVO esDeclareFlowVO) {
esDeclareFlowService.flowStart(esDeclareFlowVO);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
/**
* 标准宣贯流程-流程保存
* @param esDeclareFlowVO 标准宣贯流程VO对象
* @return 结果对象
*/
@AutoLog(value = "标准宣贯流程-流程保存")
@ApiOperation(value="标准宣贯流程-流程保存", notes="标准宣贯流程-流程保存")
@PostMapping(value = "/flowSave")
public Result<T> flowSave(@RequestBody EsDeclareFlowVO esDeclareFlowVO) {
esDeclareFlowService.flowSave(esDeclareFlowVO);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
}
@@ -0,0 +1,194 @@
package com.jero.modules.activiti.process.esdeclare.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.modules.activiti.process.esdeclare.entity.ProcessEsDeclare;
import com.jero.modules.activiti.process.esdeclare.service.IProcessEsDeclareService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @Description: 标准宣贯业务表
* @Author: jero-boot
* @Date: 2023-11-30
* @Version: V1.0
*/
@Api(tags="标准宣贯业务表")
@RestController
@RequestMapping("/esdeclare/processEsDeclare")
@Slf4j
public class ProcessEsDeclareController extends JeroController<ProcessEsDeclare, IProcessEsDeclareService> {
@Autowired
private IProcessEsDeclareService processEsDeclareService;
/**
* 分页列表查询
*
* @param processEsDeclare
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "标准宣贯业务表-分页列表查询")
@ApiOperation(value="标准宣贯业务表-分页列表查询", notes="标准宣贯业务表-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<ProcessEsDeclare>> queryPageList(ProcessEsDeclare processEsDeclare,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
IPage<ProcessEsDeclare> pageList = processEsDeclareService.queryPage(processEsDeclare, pageNo, pageSize, req);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @param processEsDeclare
* @param req
* @return
*/
@AutoLog(value = "标准宣贯业务表-列表查询")
@ApiOperation(value="标准宣贯业务表-列表查询", notes="标准宣贯业务表-列表查询")
@GetMapping(value = "/list")
public Result<List<ProcessEsDeclare>> queryList(ProcessEsDeclare processEsDeclare, HttpServletRequest req) {
List<ProcessEsDeclare> list = processEsDeclareService.queryList(processEsDeclare, req);
return Result.OK(list);
}
/**
* 添加
*
* @param processEsDeclare
* @return
*/
@AutoLog(value = "标准宣贯业务表-添加")
@ApiOperation(value="标准宣贯业务表-添加", notes="标准宣贯业务表-添加")
@PostMapping(value = "/add")
public Result<T> add(@Validated @RequestBody ProcessEsDeclare processEsDeclare) {
processEsDeclareService.add(processEsDeclare);
return Result.OK("操作成功!");
}
/**
* 编辑
*
* @param processEsDeclare
* @return
*/
@AutoLog(value = "标准宣贯业务表-编辑")
@ApiOperation(value="标准宣贯业务表-编辑", notes="标准宣贯业务表-编辑")
@PostMapping(value = "/edit")
public Result<T> edit(@Validated @RequestBody ProcessEsDeclare processEsDeclare) {
processEsDeclareService.editById(processEsDeclare);
return Result.OK("操作成功!");
}
/**
* 通过id删除
*
* @param map
* @return
*/
@AutoLog(value = "标准宣贯业务表-通过id删除")
@ApiOperation(value="标准宣贯业务表-通过id删除", notes="标准宣贯业务表-通过id删除")
@PostMapping(value = "/delete")
public Result<T> delete(@RequestBody Map<String, String> map) {
if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){
return Result.error("请选择数据!");
}
processEsDeclareService.deleteById(map.get("id"));
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param map
* @return
*/
@AutoLog(value = "标准宣贯业务表-批量删除")
@ApiOperation(value="标准宣贯业务表-批量删除", notes="标准宣贯业务表-批量删除")
@PostMapping(value = "/deleteBatch")
public Result<T> deleteBatch(@RequestBody Map<String, String> map) {
if(!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))){
return Result.error("请选择数据!");
}
this.processEsDeclareService.deleteByIds(Arrays.asList(map.get("ids").split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "标准宣贯业务表-通过id查询")
@ApiOperation(value="标准宣贯业务表-通过id查询", notes="标准宣贯业务表-通过id查询")
@GetMapping(value = "/queryById")
public Result<ProcessEsDeclare> queryById(@RequestParam(name="id",required=true) String id) {
ProcessEsDeclare processEsDeclare = processEsDeclareService.queryById(id);
if(processEsDeclare==null) {
return Result.error("未找到对应数据");
}
return Result.OK(processEsDeclare);
}
/**
* 通过项目id查询
*
* @param projectId
* @return
*/
@AutoLog(value = "标准宣贯业务表-通过项目id查询")
@ApiOperation(value="标准宣贯业务表-通过项目id查询", notes="标准宣贯业务表-通过项目id查询")
@GetMapping(value = "/queryByProjectId")
public Result<ProcessEsDeclare> queryByProjectId(String projectId) {
ProcessEsDeclare processEsDeclare = processEsDeclareService.queryByProjectId(projectId);
if(processEsDeclare==null) {
return Result.error("未找到对应数据");
}
return Result.OK(processEsDeclare);
}
/**
* 导出excel
*
* @param request
* @param processEsDeclare
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ProcessEsDeclare processEsDeclare) {
return super.exportXls(request, processEsDeclare, ProcessEsDeclare.class, "标准宣贯业务表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<ProcessEsDeclare> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ProcessEsDeclare.class);
}
}
@@ -0,0 +1,86 @@
package com.jero.modules.activiti.process.esdeclare.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import com.jero.modules.laws.documenttool.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
/**
* @Description: 企标宣贯业务表
* @Author: jero-boot
* @Date: 2023-11-30
* @Version: V1.0
*/
@Data
@TableName("process_es_declare")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="process_es_declare对象", description="企标宣贯业务表")
public class ProcessEsDeclare extends BaseEntity {
/**企标id*/
@Excel(name = "企标id", width = 15)
@ApiModelProperty(value = "企标id")
@TableField(exist = false)
private java.lang.String standardId;
/**企标编号*/
@Excel(name = "企标编号", width = 15)
@ApiModelProperty(value = "企标编号")
private java.lang.String standardNo;
/**企标名称*/
@Excel(name = "企标名称", width = 15)
@ApiModelProperty(value = "企标名称")
@TableField(exist = false)
private java.lang.String standardName;
/**宣贯日期*/
@Excel(name = "宣贯日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "宣贯日期")
private java.util.Date declareDate;
/**宣贯人*/
@Excel(name = "宣贯人", width = 15)
@ApiModelProperty(value = "宣贯人")
private java.lang.String declareUser;
/**主题*/
@Excel(name = "主题", width = 15)
@ApiModelProperty(value = "主题")
private java.lang.String declareTopic;
/**相关材料*/
@Excel(name = "相关材料", width = 15)
@ApiModelProperty(value = "相关材料")
private java.lang.String declareFile;
/**内容*/
@Excel(name = "内容", width = 15)
@ApiModelProperty(value = "内容")
private java.lang.String declareContent;
/**主送部门*/
@Excel(name = "主送部门", width = 15)
@ApiModelProperty(value = "主送部门")
private java.lang.String mainDepart;
/**参宣单位*/
@Excel(name = "参宣单位", width = 15)
@ApiModelProperty(value = "参宣单位")
private java.lang.String attendUnit;
/**联络人*/
@ApiModelProperty(value = "联络人")
@TableField(exist = false)
private java.lang.String initiator;
/**紧急程度(1:一般 2:急)*/
@Excel(name = "紧急程度(1:一般 2:急)", width = 15)
@ApiModelProperty(value = "紧急程度(1:一般 2:急)")
@Dict(dicCode = "emergency_degree")
private java.lang.String emergencyDegree;
/**项目id*/
@Excel(name = "项目id", width = 15)
@ApiModelProperty(value = "项目id")
private java.lang.String projectId;
}
@@ -0,0 +1,14 @@
package com.jero.modules.activiti.process.esdeclare.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.activiti.process.esdeclare.entity.ProcessEsDeclare;
/**
* @Description: 企标宣贯业务表
* @Author: jero-boot
* @Date: 2023-11-30
* @Version: V1.0
*/
public interface ProcessEsDeclareMapper extends BaseMapper<ProcessEsDeclare> {
}
@@ -0,0 +1,4 @@
<?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.jero.modules.activiti.process.esdeclare.mapper.ProcessEsDeclareMapper">
</mapper>
@@ -0,0 +1,24 @@
package com.jero.modules.activiti.process.esdeclare.service;
import com.jero.modules.activiti.process.esdeclare.vo.EsDeclareFlowVO;
/**
* @InterfaceName: IEsDeclareService
* @Description:
* @Author: yjz
* @Date: 2023-11-30 10:11
* @Version: 1.0
**/
public interface IEsDeclareFlowService {
/**
* 标准宣贯流程-流程发起
* @param esDeclareFlowVO
*/
void flowStart(EsDeclareFlowVO esDeclareFlowVO);
/**
* 标准宣贯流程-流程保存
* @param esDeclareFlowVO
*/
void flowSave(EsDeclareFlowVO esDeclareFlowVO);
}
@@ -0,0 +1,84 @@
package com.jero.modules.activiti.process.esdeclare.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.activiti.process.esdeclare.entity.ProcessEsDeclare;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* @Description: 企标宣贯业务表
* @Author: jero-boot
* @Date: 2023-11-30
* @Version: V1.0
*/
public interface IProcessEsDeclareService extends IService<ProcessEsDeclare> {
/**
* 分页查询
*
* @param processEsDeclare
* @param pageNo
* @param pageSize
* @param req
* @return
*/
IPage<ProcessEsDeclare> queryPage(ProcessEsDeclare processEsDeclare, Integer pageNo, Integer pageSize, HttpServletRequest req);
/**
* 列表查询
*
* @param processEsDeclare
* @param req
* @return
*/
List<ProcessEsDeclare> queryList(ProcessEsDeclare processEsDeclare, HttpServletRequest req);
/**
* 保存
*
* @param processEsDeclare
* @return
*/
void add(ProcessEsDeclare processEsDeclare);
/**
* 更新
*
* @param processEsDeclare
* @return
*/
void editById(ProcessEsDeclare processEsDeclare);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
ProcessEsDeclare queryById(String id);
/**
* 标准宣贯业务表-通过项目id查询
* @param projectId
* @return
*/
ProcessEsDeclare queryByProjectId(String projectId);
}
@@ -0,0 +1,195 @@
package com.jero.modules.activiti.process.esdeclare.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.esdeclare.entity.ProcessEsDeclare;
import com.jero.modules.activiti.process.esdeclare.service.IEsDeclareFlowService;
import com.jero.modules.activiti.process.esdeclare.service.IProcessEsDeclareService;
import com.jero.modules.activiti.process.esdeclare.vo.EsDeclareFlowVO;
import com.jero.modules.activiti.process.esinspect.common.EsInspectCommon;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardDeclare;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardDeclareService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
* @ClassName: EsDeclareServiceImpl
* @Description:
* @Author: yjz
* @Date: 2023-11-30 10:11
* @Version: 1.0
**/
@Service
@Transactional(rollbackFor = JeroBootException.class)
public class EsDeclareFlowServiceImpl implements IEsDeclareFlowService {
private final ProcessAllService processAllService;
private final ProcessApprovalRecordService processApprovalRecordService;
private final ProcessDraftService processDraftService;
private final ProcessNodeLinkService processNodeLinkService;
private final IProcessEsDeclareService processEsDeclareService;
private final EnterpriseStandardDeclareService enterpriseStandardDeclareService;
private final IOSSFileService ossFileService;
public EsDeclareFlowServiceImpl(ProcessAllService processAllService,
ProcessApprovalRecordService processApprovalRecordService,
ProcessDraftService processDraftService,
ProcessNodeLinkService processNodeLinkService,
IProcessEsDeclareService processEsDeclareService,
EnterpriseStandardDeclareService enterpriseStandardDeclareService,
IOSSFileService ossFileService) {
this.processAllService = processAllService;
this.processApprovalRecordService = processApprovalRecordService;
this.processDraftService = processDraftService;
this.processNodeLinkService = processNodeLinkService;
this.processEsDeclareService = processEsDeclareService;
this.enterpriseStandardDeclareService = enterpriseStandardDeclareService;
this.ossFileService = ossFileService;
}
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource
private TaskService taskService;
@Override
public void flowStart(EsDeclareFlowVO esDeclareFlowVO) {
// 流程信息
ProcessAll processAll = esDeclareFlowVO.getProcessAll();
// 流程审批信息
ProcessApprovalRecord processApprovalRecord = esDeclareFlowVO.getProcessApprovalRecord();
// map(参数)
Map<String, Object> map = esDeclareFlowVO.getMap();
// 根据流程key启动流程 同时 设置审批人员参数
ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey(EsInspectCommon.KEY, map);
// 再次设置map
runtimeService.setVariables(processInstance.getId(), map);
// 更新流程总表信息
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
processAll.setPrcType(Integer.valueOf(ProcessType.ES_INSPECT.getValue()));
processAll.setCreateUserId(loginUser.getId());
processAllService.update(processAll,
new LambdaUpdateWrapper<ProcessAll>()
.eq(ProcessAll::getProcessInstanceId, processInstance.getId()));
// 根据流程实例id查询
Task task = taskService.createTaskQuery()
.processInstanceId(processInstance.getId())
.singleResult();
// 更新流程审批信息
processApprovalRecord.setUserId(loginUser.getId());
processApprovalRecord.setProjectId(processAll.getProjectId());
processApprovalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue());
processApprovalRecordService.update(processApprovalRecord,
new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, task.getId()));
// 新增流程实例节点关联用户表
processNodeLinkService.saveNodeUserLink(processInstance.getProcessDefinitionId(), processInstance.getId(), listToString(map));
// 自动完成第一个节点
taskService.complete(task.getId());
// 删除草稿
processDraftService.remove(new LambdaQueryWrapper<ProcessDraft>()
.eq(ProcessDraft::getProjectId, processAll.getProjectId())
.eq(ProcessDraft::getUserId, loginUser.getId()));
// 发起即结束
ProcessEsDeclare processEsDeclare = processEsDeclareService.queryByProjectId(processAll.getProjectId());
// 保存数据至企标宣贯
EnterpriseStandardDeclare enterpriseStandardDeclare = new EnterpriseStandardDeclare();
BeanUtils.copyProperties(processEsDeclare, enterpriseStandardDeclare);
enterpriseStandardDeclare.setCreateTime(null);
enterpriseStandardDeclare.setUpdateTime(null);
enterpriseStandardDeclareService.save(enterpriseStandardDeclare);
// 保存企标关联文件
if (!Objects.isNull(processEsDeclare.getDeclareFile()) && StringUtils.isNotBlank(enterpriseStandardDeclare.getStandardId())){
List<String> list = Arrays.asList(processEsDeclare.getDeclareFile().split(","));
ossFileService.update(
new LambdaUpdateWrapper<OSSFile>()
.in(OSSFile::getId, list)
.set(OSSFile::getStandardId, enterpriseStandardDeclare.getStandardId())
.set(OSSFile::getStandardNumber, enterpriseStandardDeclare.getStandardNo())
.set(OSSFile::getStandardFileType, "associated_file"));
}
}
@Override
public void flowSave(EsDeclareFlowVO esDeclareFlowVO) {
// 流程信息
ProcessAll processAll = esDeclareFlowVO.getProcessAll();
// 流程审批信息
ProcessApprovalRecord processApprovalRecord = esDeclareFlowVO.getProcessApprovalRecord();
// 流程总表信息
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
processAll.setPrcType(Integer.valueOf(ProcessType.ES_INSPECT_PLAN.getValue()));
ProcessDraft processDraft = new ProcessDraft();
// 属性拷贝
BeanUtils.copyProperties(processAll, processDraft);
processDraft.setId("");
processDraft.setUpdateBy("");
Date date = new Date();
processDraft.setCreateTime(date);
processDraft.setUpdateBy("");
processDraft.setUpdateTime(date);
// 保存草稿表
if (StringUtils.isNotBlank(processApprovalRecord.getCommitFile())){
processDraft.setHandleFile(processApprovalRecord.getCommitFile());
}
if (StringUtils.isNotBlank(processApprovalRecord.getCommitText())){
processDraft.setHandleText(processApprovalRecord.getCommitText());
}
processDraft.setUserId(loginUser.getId());
// 删除旧草稿
processDraftService.remove(new LambdaQueryWrapper<ProcessDraft>()
.eq(ProcessDraft::getProjectId, processAll.getProjectId())
.eq(ProcessDraft::getUserId, loginUser.getId()));
// 保存新草稿
processDraftService.save(processDraft);
}
private Map<String, Object> listToString(Map<String, Object> map) {
Map<String, Object> stringObjectHashMap;
stringObjectHashMap = map.entrySet().stream().map(v -> {
if (v.getValue() instanceof List) {
List<String> list = (List<String>)v.getValue();
v.setValue(String.join(",", list));
}
return v;
}).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
return stringObjectHashMap;
}
}
@@ -0,0 +1,159 @@
package com.jero.modules.activiti.process.esdeclare.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.activiti.process.esdeclare.entity.ProcessEsDeclare;
import com.jero.modules.activiti.process.esdeclare.mapper.ProcessEsDeclareMapper;
import com.jero.modules.activiti.process.esdeclare.service.IProcessEsDeclareService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @Description: 企标宣贯业务表
* @Author: jero-boot
* @Date: 2023-11-30
* @Version: V1.0
*/
@Service
@Transactional(rollbackFor = JeroBootException.class)
public class ProcessEsDeclareServiceImpl extends ServiceImpl<ProcessEsDeclareMapper, ProcessEsDeclare> implements IProcessEsDeclareService {
private final ISysUserService sysUserService;
private final ILawsEnterpriseStandardService lawsEnterpriseStandardService;
public ProcessEsDeclareServiceImpl(ISysUserService sysUserService,
ILawsEnterpriseStandardService lawsEnterpriseStandardService) {
this.sysUserService = sysUserService;
this.lawsEnterpriseStandardService = lawsEnterpriseStandardService;
}
/**
* 分页查询
*
* @param processEsDeclare
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Override
public IPage<ProcessEsDeclare> queryPage(ProcessEsDeclare processEsDeclare, Integer pageNo, Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProcessEsDeclare> queryWrapper = QueryGenerator.initQueryWrapper(processEsDeclare, req.getParameterMap());
Page<ProcessEsDeclare> page = new Page<>(pageNo, pageSize);
return page(page, queryWrapper);
}
/**
* 列表查询
*
* @param processEsDeclare
* @param req
* @return
*/
@Override
public List<ProcessEsDeclare> queryList(ProcessEsDeclare processEsDeclare, HttpServletRequest req) {
return list(QueryGenerator.initQueryWrapper(processEsDeclare, req.getParameterMap()));
}
/**
* 保存
*
* @param processEsDeclare
* @return
*/
@Override
public void add(ProcessEsDeclare processEsDeclare) {
Date now = new Date();
processEsDeclare.setCreateTime(now);
processEsDeclare.setUpdateTime(now);
save(processEsDeclare);
}
/**
* 更新
*
* @param processEsDeclare
* @return
*/
@Override
public void editById(ProcessEsDeclare processEsDeclare) {
Date now = new Date();
processEsDeclare.setUpdateTime(now);
saveOrUpdate(processEsDeclare);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public ProcessEsDeclare queryById(String id) {
return getById(id);
}
@Override
public ProcessEsDeclare queryByProjectId(String projectId) {
ProcessEsDeclare processEsDeclare = getOne(new LambdaQueryWrapper<ProcessEsDeclare>().eq(ProcessEsDeclare::getProjectId, projectId), false);
if (!Objects.isNull(processEsDeclare)){
// 标准名称
LawsEnterpriseStandard lawsEnterpriseStandard = lawsEnterpriseStandardService.getOne(
new LambdaQueryWrapper<LawsEnterpriseStandard>()
.eq(LawsEnterpriseStandard::getStandardNumber, processEsDeclare.getStandardNo()), false);
if (!Objects.isNull(lawsEnterpriseStandard)){
processEsDeclare.setStandardId(lawsEnterpriseStandard.getId());
processEsDeclare.setStandardName(lawsEnterpriseStandard.getStandardName());
}
// 联络人
List<String> list = Arrays.asList(processEsDeclare.getAttendUnit().split(","));
List<SysUser> userByDepIds = sysUserService.getUserByDepIds(list, "");
if (!userByDepIds.isEmpty()){
String userIds = userByDepIds.stream().map(SysUser::getId).collect(Collectors.joining(","));
// 翻译
processEsDeclare.setInitiator(sysUserService.dictByIdsOrUserNames(userIds, ""));
}
}
return processEsDeclare;
}
}
@@ -0,0 +1,32 @@
package com.jero.modules.activiti.process.esdeclare.vo;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.process.esdeclare.entity.ProcessEsDeclare;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Map;
/**
* @ClassName: EsDEclareFlowVO
* @Description:
* @Author: yjz
* @Date: 2023-11-30 09:57
* @Version: 1.0
**/
@Data
public class EsDeclareFlowVO {
/**流程信息*/
@ApiModelProperty(value = "流程信息")
private ProcessAll processAll;
/**流程审批信息*/
@ApiModelProperty(value = "流程审批信息")
private ProcessApprovalRecord processApprovalRecord;
/**业务基本信息*/
@ApiModelProperty(value = "业务基本信息")
private ProcessEsDeclare processEsDeclare;
/**map*/
@ApiModelProperty(value = "map")
private Map<String, Object> map;
}
@@ -31,7 +31,7 @@ public class BaseEntity implements Serializable {
/** 创建人 */
@ApiModelProperty(value = "创建人")
// @Excel(name = "创建人", width = 15)
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
@Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
private java.lang.String createBy;
/** 创建人 翻译 */
@ApiModelProperty(value = "创建人 翻译")
@@ -46,7 +46,7 @@ public class BaseEntity implements Serializable {
/** 更新人 */
@ApiModelProperty(value = "更新人")
// @Excel(name = "更新人", width = 15)
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
@Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
private java.lang.String updateBy;
/** 更新人 翻译 */
@ApiModelProperty(value = "更新人 翻译")