diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessCenterListVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessCenterListVO.java index 3ab24bdf..56054865 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessCenterListVO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessCenterListVO.java @@ -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; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java index e8d318b3..0e9ab9a4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/entity/ProcessDraft.java @@ -56,6 +56,11 @@ public class ProcessDraft implements Serializable { */ private String businessId; + /** + * 流程类型 + */ + private String processKey; + @TableField(exist = false) private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java index 1b384be0..c4c3854c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java @@ -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;} } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index 69ebc584..674a1233 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -57,7 +57,6 @@ public class ActFlowCommonService { Map variables = customService.setVariables(businessId); // 第一个节点默认通过 variables.put("pass", true); - variables.put("createUser", UserUtils.getUserId()); // 启动流程 ProcessInstance processInstance = runtimeService.startProcessInstanceById(latestProcessDefinition.getId(), variables); // 流程实例ID diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java index 7a19b11a..ff99a434 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java @@ -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 esInitChangeWrapper = new LambdaQueryWrapper<>(); + esInitChangeWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId); + List processEsInitChanges = esInitChangeService.list(esInitChangeWrapper); + // 立项新增变更编辑 + List enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class); + espService.saveOrUpdateBatch(enterpriseStandardPlans); + // 软删除流程数据 + esInitChangeService.removeByProcessInstanceId(processInstanceId); - // 立项新增 - - // 变更编辑 - - // 发起制修订流程 + //TODO 发起制修订流程 } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java index b63c5ede..b3484bcf 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java @@ -45,4 +45,10 @@ public interface ProcessEsInitChangeService extends IService esInitChange); + + /** + * 软删除实例数据 + * @param processInstanceId + */ + void removeByProcessInstanceId(String processInstanceId); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java index 9192db3a..7fc662b4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java @@ -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 setVariables(ProcessEsInitChange initChange) { Map 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 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 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 updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId) + .set(ProcessEsInitChange::getDelFlag, YesOrNoEnum.YES.getValue()); + update(updateWrapper); + } + @Override public List getSequenceNumbers(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) { // 已经存在的标准 diff --git a/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java b/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java index a80c28c7..a617cf43 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java +++ b/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java @@ -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 queryPageList(SarFileSplitInfoEOPage sarFileSplitInfoEOPage) { + public Result> queryPageList(SarFileSplitInfoEOPage sarFileSplitInfoEOPage) { QueryWrapper queryWrapper = new QueryWrapper<>(); if(StringUtils.isNotEmpty(sarFileSplitInfoEOPage.getSerialNumberOrName())){ sarFileSplitInfoEOPage.setSerialNumberOrName(sarFileSplitInfoEOPage.getSerialNumberOrName().replace("%","\\%")); @@ -123,7 +126,7 @@ public class SarFileSplitInfoController extends JeroController bindToDocumentLibrary(String id, String connectId, String fileName) { + public Result 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 add(@RequestBody SarFileSplitInfoEO sarFileSplitInfoEO) { + public Result add(@RequestBody SarFileSplitInfoEO sarFileSplitInfoEO) { // String id = sarFileSplitInfoEO.getId(); // if (StringUtils.isBlank(id)){ // throw new JeroBootException("请选择文本!"); @@ -159,19 +162,42 @@ public class SarFileSplitInfoController extends JeroController edit(@Validated @RequestBody SarFileSplitInfoEO sarFileSplitInfoEO) { - sarFileSplitInfoService.editById(sarFileSplitInfoEO); - return Result.OK("编辑成功!"); + @AutoLog(value = "文档拆分表-更改权限") + @ApiOperation(value="文档拆分表-更改权限", notes="文档拆分表-更改权限") + @PostMapping(value = "/updatePermissions") + public Result updatePermissions(@Validated @RequestBody SarFileSplitInfoEO sarFileSplitInfoEO) { + LambdaUpdateWrapper 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 publish(@Validated @RequestBody SarFileSplitInfoEO sarFileSplitInfoEO) { + sarFileSplitInfoService.update( + new LambdaUpdateWrapper() + .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 delete(@RequestParam(name="id",required=true) String id) { + public Result delete(@RequestParam(name="id",required=true) String id) { sarFileSplitInfoService.deleteById(id); return Result.OK("删除成功!"); } @@ -197,7 +223,7 @@ public class SarFileSplitInfoController extends JeroController deleteBatch(@RequestParam(name="ids",required=true) String ids) { + public Result 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 queryById(@RequestParam(name="id",required=true) String id) { + public Result 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 importExcel(HttpServletRequest request, HttpServletResponse response) { + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, SarFileSplitInfoEO.class); } diff --git a/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitInfoEO.java b/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitInfoEO.java index 4e3906c2..562356b4 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitInfoEO.java +++ b/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitInfoEO.java @@ -131,4 +131,7 @@ public class SarFileSplitInfoEO implements Serializable { @TableField(exist = false) private String documentId; + /**ids*/ + @TableField(exist = false) + private String ids; } diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitInfoService.java b/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitInfoService.java index e22b55a4..9b059876 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitInfoService.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitInfoService.java @@ -76,4 +76,7 @@ public interface ISarFileSplitInfoService extends IService { void batchUpdateByDocumentSerialNumber(String oldSerialNumber,String newSerialNumber,String newTitle,String newTitleEn); Page splitFilePageInfoList(Page page, HttpServletRequest request, SplitFilePageInfoParam param); + + // 同步更新文档拆分标准名称 + void updateTitleByStandardId(String standardId, String title); } diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java index 1955a6eb..88dfc1e7 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java @@ -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() + .set(SarFileSplitInfoEO::getTitle, title) + .eq(SarFileSplitInfoEO::getStandardId, standardId)); + } + } diff --git a/laws-modules/src/main/java/com/jero/modules/sys/utils/UserUtils.java b/laws-modules/src/main/java/com/jero/modules/sys/utils/UserUtils.java index dd48a0c2..ba883108 100644 --- a/laws-modules/src/main/java/com/jero/modules/sys/utils/UserUtils.java +++ b/laws-modules/src/main/java/com/jero/modules/sys/utils/UserUtils.java @@ -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(); + } }