Merge remote-tracking branch 'origin/master'

This commit is contained in:
zer0Black
2023-10-12 16:33:22 +08:00
12 changed files with 175 additions and 30 deletions
@@ -9,8 +9,59 @@ import lombok.Data;
@Data
public class ProcessCenterListVO {
/**
* 流程编号
*/
private String processNum;
/**
* 流程类型
*/
private String processType;
/**
* 流程名称
*/
private String processName;
/**
* 发起人
*/
private String createUser;
/**
* 创建时间
*/
private String createTime;
/**
* 任务Id
*/
private String taskId;
/**
* 当前处理人
*/
private String currentUser;
/**
* 接收任务时间
*/
private String acceptTime;
/**
* 完成时间
*/
private String completeTime;
/**
* 流程状态
*/
private String processStatus;
/**
* 流程耗时
*/
private String processTime;
}
@@ -56,6 +56,11 @@ public class ProcessDraft implements Serializable {
*/
private String businessId;
/**
* 流程类型
*/
private String processKey;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
@@ -11,18 +11,20 @@ public enum ProcessType {
/**
* 企标立项变更
*/
ES_INIT_CHANGE("企标立项/变更计划", "1", "es-init-change"),
ES_INIT_CHANGE("企标立项/变更计划", "1", "es-init-change", "processEsInitChangeServiceImpl"),
;
private final String name;
private final String value;
private final String processKey;
private final String serviceClassName;
ProcessType(String name, String value, String processKey) {
ProcessType(String name, String value, String processKey, String serviceClassName) {
this.name = name;
this.value = value;
this.processKey = processKey;
this.serviceClassName = serviceClassName;
}
public String getProcessTypeNameByProcessKey(String processKey) {
@@ -45,6 +47,9 @@ public enum ProcessType {
public String getProcessKey() {
return processKey;
}
public String getServiceClassName() {
return serviceClassName;}
}
@@ -57,7 +57,6 @@ public class ActFlowCommonService {
Map<String, Object> variables = customService.setVariables(businessId);
// 第一个节点默认通过
variables.put("pass", true);
variables.put("createUser", UserUtils.getUserId());
// 启动流程
ProcessInstance processInstance = runtimeService.startProcessInstanceById(latestProcessDefinition.getId(), variables);
// 流程实例ID
@@ -1,9 +1,19 @@
package com.jero.modules.activiti.process.esInitChange.listener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.aspect.annotation.RedisLock;
import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange;
import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.ExecutionListener;
import javax.annotation.Resource;
import java.util.List;
/**
* @author: Mzaxd
* @Date: 2023/10/10 14:14
@@ -11,16 +21,30 @@ import org.activiti.engine.delegate.ExecutionListener;
@Slf4j
public class ProcessESInitChangeEndListener implements ExecutionListener {
@Resource
private EnterpriseStandardPlanService espService;
@Resource
private ProcessEsInitChangeService esInitChangeService;
/**
* 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程
* @param delegateExecution
*/
@Override
public void notify(DelegateExecution delegateExecution) {
//TODO 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程
// 获取流程实例ID
String processInstanceId = delegateExecution.getProcessInstanceId();
// 根据流程实例Id找到所有流程业务数据
LambdaQueryWrapper<ProcessEsInitChange> esInitChangeWrapper = new LambdaQueryWrapper<>();
esInitChangeWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId);
List<ProcessEsInitChange> processEsInitChanges = esInitChangeService.list(esInitChangeWrapper);
// 立项新增变更编辑
List<EnterpriseStandardPlan> enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class);
espService.saveOrUpdateBatch(enterpriseStandardPlans);
// 软删除流程数据
esInitChangeService.removeByProcessInstanceId(processInstanceId);
// 立项新增
// 变更编辑
// 发起制修订流程
//TODO 发起制修订流程
}
}
@@ -45,4 +45,10 @@ public interface ProcessEsInitChangeService extends IService<ProcessEsInitChange
* @param esInitChange
*/
void saveToDraft(List<ProcessEsInitChange> esInitChange);
/**
* 软删除实例数据
* @param processInstanceId
*/
void removeByProcessInstanceId(String processInstanceId);
}
@@ -3,8 +3,10 @@ package com.jero.modules.activiti.process.esInitChange.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
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.ActFlowCommonService;
import com.jero.modules.activiti.process.common.service.IActFlowCustomService;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
@@ -54,6 +56,7 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
private Map<String, Object> setVariables(ProcessEsInitChange initChange) {
Map<String, Object> map = new HashMap<>();
// 设置流程中各个节点的人
map.put("createUser", UserUtils.getUserIdByUserName(initChange.getCreateBy()));
map.put("contactUser", initChange.getContactUser());
map.put("standardExpertList", Optional.ofNullable(initChange.getStandardExpert()).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList()));
map.put("mainDraftUserLeader", initChange.getMainDraftUserLeader());
@@ -83,17 +86,17 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
public void startInitChange(List<ProcessEsInitChange> esInitChangeList) {
// 校验企标编号是否冲突
if (!esUtil.verifyEnStandardNumber(esInitChangeList.get(0).getOriginEnStandardNo())) {
throw new JeroBootException("企标编号冲突");
throw new JeroBootException("企标编号冲突,请重新生成");
}
String processDefinitionKey = "es-init-change";
String processDefinitionKey = ProcessType.ES_INIT_CHANGE.getProcessKey();
String userId = UserUtils.getUserId();
// 保存到业务流程表
saveBatch(esInitChangeList);
ProcessEsInitChange initChange = esInitChangeList.get(0);
// 对数据进行其他操作
String beanName = "processEsInitChangeServiceImpl";
String beanName = ProcessType.ES_INIT_CHANGE.getServiceClassName();
ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, beanName, initChange.getId());
@@ -106,10 +109,8 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
for (Map<String, Object> map : taskList) {
if (map.get("assignee").toString().equals(userId) &&
map.get("processDefinitionId").toString().equals(processDefinitionId)) {
log.info("当前用户ID:{},相关联的流程定义ID:{}", userId, map.get("processDefinitionId").toString());
log.info("匹配到的任务ID{}", map.get("taskId").toString());
actFlowCommonService.completeTask("同意", map.get("taskId").toString(), userId, map);
}
}
@@ -168,11 +169,20 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
ProcessDraft draft = new ProcessDraft();
draft.setDraftId(UUID.randomUUID().toString());
draft.setBusinessId(esInitChangeItem.getId());
draft.setProcessKey(ProcessType.ES_INIT_CHANGE.getProcessKey());
draftList.add(draft);
}
processDraftService.saveBatch(draftList);
}
@Override
public void removeByProcessInstanceId(String processInstanceId) {
LambdaUpdateWrapper<ProcessEsInitChange> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId)
.set(ProcessEsInitChange::getDelFlag, YesOrNoEnum.YES.getValue());
update(updateWrapper);
}
@Override
public List<String> getSequenceNumbers(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) {
// 已经存在的标准
@@ -2,6 +2,7 @@ package com.jero.modules.split.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
@@ -12,6 +13,7 @@ import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.enums.SplitEnum;
import com.jero.modules.split.page.SarFileSplitInfoEOPage;
import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.split.vo.SplitFilePageInfoParam;
@@ -21,6 +23,7 @@ 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.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -68,7 +71,7 @@ public class SarFileSplitInfoController extends JeroController<SarFileSplitInfoE
@ApiOperation(value="文档拆分表-分页列表查询", notes="文档拆分表-分页列表查询")
@GetMapping(value = "/page")
// @RequiresPermissions("split:sarFileSplitInfo:page")
public Result<?> queryPageList(SarFileSplitInfoEOPage sarFileSplitInfoEOPage) {
public Result<IPage<SarFileSplitInfoEO>> queryPageList(SarFileSplitInfoEOPage sarFileSplitInfoEOPage) {
QueryWrapper<SarFileSplitInfoEO> queryWrapper = new QueryWrapper<>();
if(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getSerialNumberOrName())){
sarFileSplitInfoEOPage.setSerialNumberOrName(sarFileSplitInfoEOPage.getSerialNumberOrName().replace("%","\\%"));
@@ -123,7 +126,7 @@ public class SarFileSplitInfoController extends JeroController<SarFileSplitInfoE
@ApiOperation(value="文档拆分表-回传至文档库", notes="文档拆分表-回传至文档库")
@GetMapping(value = "/bindToDocumentLibrary")
// @RequiresPermissions("split:sarFileSplitInfo:bind")
public Result<?> bindToDocumentLibrary(String id, String connectId, String fileName) {
public Result<T> bindToDocumentLibrary(String id, String connectId, String fileName) {
// 设置fileId
boolean bindState = sarFileSplitInfoService.bindToDocumentLibrary(id, connectId, fileName);
if(bindState){
@@ -143,7 +146,7 @@ public class SarFileSplitInfoController extends JeroController<SarFileSplitInfoE
@ApiOperation(value="文档拆分表-添加", notes="文档拆分表-添加")
@PostMapping(value = "/add")
// @RequiresPermissions("split:sarFileSplitInfo:add")
public Result<?> add(@RequestBody SarFileSplitInfoEO sarFileSplitInfoEO) {
public Result<T> add(@RequestBody SarFileSplitInfoEO sarFileSplitInfoEO) {
// String id = sarFileSplitInfoEO.getId();
// if (StringUtils.isBlank(id)){
// throw new JeroBootException("请选择文本!");
@@ -159,19 +162,42 @@ public class SarFileSplitInfoController extends JeroController<SarFileSplitInfoE
}
/**
* 编辑
* 更改权限
*
* @param sarFileSplitInfoEO
* @return
*/
@AutoLog(value = "文档拆分表-编辑")
@ApiOperation(value="文档拆分表-编辑", notes="文档拆分表-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody SarFileSplitInfoEO sarFileSplitInfoEO) {
sarFileSplitInfoService.editById(sarFileSplitInfoEO);
return Result.OK("编辑成功!");
@AutoLog(value = "文档拆分表-更改权限")
@ApiOperation(value="文档拆分表-更改权限", notes="文档拆分表-更改权限")
@PostMapping(value = "/updatePermissions")
public Result<T> updatePermissions(@Validated @RequestBody SarFileSplitInfoEO sarFileSplitInfoEO) {
LambdaUpdateWrapper<SarFileSplitInfoEO> updateWrapper = new LambdaUpdateWrapper<>();
if (StringUtils.isNotBlank(sarFileSplitInfoEO.getIds())){
updateWrapper.in(SarFileSplitInfoEO::getId, Arrays.asList(sarFileSplitInfoEO.getIds().split(",")));
}
updateWrapper.set(SarFileSplitInfoEO::getCreateBy, sarFileSplitInfoEO.getCreateBy());
sarFileSplitInfoService.update(updateWrapper);
return Result.OK("操作成功!");
}
/**
* 发布
*
* @param sarFileSplitInfoEO
* @return
*/
@AutoLog(value = "文档拆分表-发布")
@ApiOperation(value="文档拆分表-发布", notes="文档拆分表-发布")
@PostMapping(value = "/publish")
public Result<T> publish(@Validated @RequestBody SarFileSplitInfoEO sarFileSplitInfoEO) {
sarFileSplitInfoService.update(
new LambdaUpdateWrapper<SarFileSplitInfoEO>()
.eq(SarFileSplitInfoEO::getId, sarFileSplitInfoEO.getId())
.set(SarFileSplitInfoEO::getSplitStatus, SplitEnum.SPLIT_STATUS2.getValue()));
return Result.OK("发布成功!");
}
/**
* 通过id删除
*
@@ -180,9 +206,9 @@ public class SarFileSplitInfoController extends JeroController<SarFileSplitInfoE
*/
@AutoLog(value = "文档拆分表-通过id删除Y")
@ApiOperation(value="文档拆分表-通过id删除", notes="文档拆分表-通过id删除")
@GetMapping(value = "/delete")
@PostMapping(value = "/delete")
// @RequiresPermissions("split:sarFileSplitInfo:delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
public Result<T> delete(@RequestParam(name="id",required=true) String id) {
sarFileSplitInfoService.deleteById(id);
return Result.OK("删除成功!");
}
@@ -197,7 +223,7 @@ public class SarFileSplitInfoController extends JeroController<SarFileSplitInfoE
@ApiOperation(value="文档拆分表-批量删除", notes="文档拆分表-批量删除")
@PostMapping(value = "/deleteBatch")
// @RequiresPermissions("split:sarFileSplitInfo:deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
public Result<T> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.sarFileSplitInfoService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
@@ -211,7 +237,7 @@ public class SarFileSplitInfoController extends JeroController<SarFileSplitInfoE
@AutoLog(value = "文档拆分表-通过id查询")
@ApiOperation(value="文档拆分表-通过id查询", notes="文档拆分表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
public Result<SarFileSplitInfoEO> queryById(@RequestParam(name="id",required=true) String id) {
SarFileSplitInfoEO sarFileSplitInfoEO = sarFileSplitInfoService.queryById(id);
if(sarFileSplitInfoEO ==null) {
return Result.error("未找到对应数据");
@@ -274,7 +300,7 @@ public class SarFileSplitInfoController extends JeroController<SarFileSplitInfoE
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
public Result<SarFileSplitInfoEO> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, SarFileSplitInfoEO.class);
}
@@ -131,4 +131,7 @@ public class SarFileSplitInfoEO implements Serializable {
@TableField(exist = false)
private String documentId;
/**ids*/
@TableField(exist = false)
private String ids;
}
@@ -76,4 +76,7 @@ public interface ISarFileSplitInfoService extends IService<SarFileSplitInfoEO> {
void batchUpdateByDocumentSerialNumber(String oldSerialNumber,String newSerialNumber,String newTitle,String newTitleEn);
Page<OSSFile> splitFilePageInfoList(Page<OSSFile> page, HttpServletRequest request, SplitFilePageInfoParam param);
// 同步更新文档拆分标准名称
void updateTitleByStandardId(String standardId, String title);
}
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.LanguageEnum;
@@ -427,5 +428,12 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
return pageList;
}
@Override
public void updateTitleByStandardId(String standardId, String title) {
update(new LambdaUpdateWrapper<SarFileSplitInfoEO>()
.set(SarFileSplitInfoEO::getTitle, title)
.eq(SarFileSplitInfoEO::getStandardId, standardId));
}
}
@@ -17,4 +17,9 @@ public class UserUtils {
public static LoginUser getCurrentUser() {
return (LoginUser) SecurityUtils.getSubject().getPrincipal();
}
public static String getUserIdByUserName(String createBy) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
return sysUser.getId();
}
}