diff --git a/laws-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java b/laws-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java index 80d9f7c4..28b77b10 100644 --- a/laws-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java +++ b/laws-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java @@ -1,7 +1,7 @@ package com.jero.modules.oss.controller; import com.jero.common.exception.JeroBootException; -import com.jero.common.util.MinioUtil; +import com.jero.common.util.obs.ObsBootUtil; import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.oss.util.SplitFileUtils; import lombok.extern.slf4j.Slf4j; @@ -36,9 +36,10 @@ public class SplitFileController { response.setHeader("Content-Disposition", "attachment; filename=\"" + SplitFileUtils.encodeFileName(fileName, request) + "\""); response.setContentType("application/force-download"); - if (MinioUtil.doesObjectExist(fileUrl)) { +// if (MinioUtil.doesObjectExist(fileUrl)) { try (OutputStream os = response.getOutputStream(); - InputStream fis = MinioUtil.download(fileUrl)) { +// InputStream fis = MinioUtil.download(fileUrl)) { + InputStream fis = ObsBootUtil.getOssFile(fileUrl)) { int len = 0; while ((len = fis.read()) != -1) { os.write(len); @@ -49,7 +50,7 @@ public class SplitFileController { } catch (IOException e) { throw new JeroBootException("文件不存在"); } - } +// } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/controller/ModelerController.java b/laws-modules/src/main/java/com/jero/modules/activiti/controller/ModelerController.java index 44f0956f..7d38586d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/controller/ModelerController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/controller/ModelerController.java @@ -8,13 +8,8 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import com.jero.common.api.vo.Result; import com.jero.common.util.MessageUtils; import com.jero.modules.activiti.entity.ProcessModelNode; -import com.jero.modules.activiti.listener.CompleteListener; -import com.jero.modules.activiti.listener.CreateListener; -import com.jero.modules.activiti.listener.EndListener; -import com.jero.modules.activiti.listener.StartListener; import com.jero.modules.activiti.service.ProcessNodeService; import com.jero.modules.activiti.service.ProcessModelNodeService; -import com.jero.modules.activiti.util.CreatedTools; import com.jero.modules.activiti.vo.AddTaskVO; import com.jero.common.api.vo.ResultCommon; import io.swagger.annotations.Api; @@ -28,8 +23,6 @@ import org.activiti.bpmn.model.Process; import org.activiti.editor.constants.ModelDataJsonConstants; import org.activiti.editor.language.json.converter.BpmnJsonConverter; import org.activiti.engine.*; -import org.activiti.engine.delegate.BaseExecutionListener; -import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.repository.*; import org.activiti.engine.runtime.ProcessInstance; import org.apache.commons.lang3.StringUtils; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java b/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java index 344b937a..ef90294a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java @@ -21,11 +21,13 @@ import com.jero.modules.activiti.process.common.entity.ProcessSnapshot; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.common.service.ProcessDraftService; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.vo.DelegateTaskParam; import com.jero.modules.activiti.vo.ResolveTaskParam; import com.jero.modules.laws.common.util.CurrentUserUtil; +import com.jero.modules.sys.utils.UserUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -33,6 +35,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -131,11 +134,12 @@ public class WorkCenterController { public Result getApprovalRecordList(ProcessApprovalRecord processApprovalRecord, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(name = "type") String type, HttpServletRequest req) { Page page = new Page<>(pageNo, pageSize); Page pageList; try { - pageList = processApprovalRecordService.pageList(page, processApprovalRecord, req); + pageList = processApprovalRecordService.pageList(page, processApprovalRecord, type, req); }catch (Exception e){ return Result.error(MessageUtils.getMessage(ResultCommon.ERROR)); } @@ -271,4 +275,30 @@ public class WorkCenterController { return Result.OK(actFlowCommonService.getExistSnapshot(snapshotId)); } + /** + * 保存到草稿 + * @param + */ + @AutoLog(value = "保存") + @ApiOperation(value="保存", notes="保存") + @PostMapping("/save") + public Result save(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processHandleService.saveToDraft(processInfoVO, UserUtils.getUserId()); + return Result.OK(); + } + + @AutoLog(value = "删除草稿") + @ApiOperation(value = "删除草稿") + @PostMapping("/deleteDraft") + public Result deleteDraft(@RequestBody Map map) { + String id = map.get("id"); + // 判断当前登录人是否属于草稿的所有人 + ProcessDraft processDraft = processDraftService.getById(id); + if (!CurrentUserUtil.getId().equals(processDraft.getUserId())) { + return Result.error(MessageUtils.getMessage(ResultCommon.NO_PERMISSION)); + } + processDraftService.removeById(id); + return Result.OK(); + } + } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/CompleteListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/CompleteListener.java deleted file mode 100644 index 5c5bfce9..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/CompleteListener.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.jero.modules.activiti.listener; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.jero.common.constant.enums.YesOrNoEnum; -import com.jero.modules.activiti.entity.ProcessApprovalRecord; -import com.jero.modules.activiti.enums.FinishFlagEnum; -import com.jero.modules.activiti.service.ProcessApprovalRecordService; -import com.jero.modules.activiti.util.SpringContextUtil; -import org.activiti.engine.delegate.DelegateTask; -import org.activiti.engine.delegate.TaskListener; - -/** - * @author liJiaRao - * @date 2023-10-15 17:02 - */ -public class CompleteListener implements TaskListener { - @Override - public void notify(DelegateTask delegateTask) { - //流程审批信息转办 - ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class); - - String taskId = delegateTask.getId(); - String assignee = delegateTask.getAssignee(); - //更新审批信息为完成 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(ProcessApprovalRecord::getTaskId,taskId); - wrapper.eq(ProcessApprovalRecord::getUserId,assignee); - ProcessApprovalRecord approvalRecord = recordService.getOne(wrapper); - approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue()); - recordService.updateById(approvalRecord); - - System.out.println(taskId); - System.out.println(delegateTask.getName()); - System.out.println(delegateTask.getEventName()); - System.out.println(assignee); - - - } -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/CreateListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/CreateListener.java deleted file mode 100644 index d9dd1e31..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/CreateListener.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.jero.modules.activiti.listener; - -import com.jero.modules.activiti.entity.ProcessApprovalRecord; -import com.jero.modules.activiti.enums.FinishFlagEnum; -import com.jero.modules.activiti.service.ProcessAllService; -import com.jero.modules.activiti.service.ProcessApprovalRecordService; -import com.jero.modules.activiti.util.SpringContextUtil; -import org.activiti.bpmn.model.ActivitiListener; - -import java.util.Date; - -import org.activiti.engine.delegate.DelegateExecution; - -import java.util.Set; - -import org.activiti.engine.delegate.DelegateTask; -import org.activiti.engine.delegate.TaskListener; -import org.activiti.engine.task.DelegationState; -import org.activiti.engine.task.IdentityLink; - -/** - * @author liJiaRao - * @date 2023-10-13 16:43 - */ -public class CreateListener implements TaskListener { - @Override - public void notify(DelegateTask delegateTask) { - //流程信息 - ProcessAllService processAllService = SpringContextUtil.getBean(ProcessAllService.class); - //流程审批信息 - ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class); - - String id = delegateTask.getId(); - String name = delegateTask.getName(); - String processInstanceId = delegateTask.getProcessInstanceId(); - Date createTime = delegateTask.getCreateTime(); - String assignee = delegateTask.getAssignee(); - String taskDefinitionKey = delegateTask.getTaskDefinitionKey(); - //新增待审批记录 - ProcessApprovalRecord approvalRecord = new ProcessApprovalRecord(); - approvalRecord.setTaskId(id); - approvalRecord.setTaskName(name); - approvalRecord.setProcessInstanceId(processInstanceId); - approvalRecord.setUserId(assignee); - approvalRecord.setFinishFlag(FinishFlagEnum.INCOMPLETE.getValue()); - approvalRecord.setCreateTime(createTime); - approvalRecord.setNodeId(taskDefinitionKey); - recordService.save(approvalRecord); - - } -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/EndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/EndListener.java deleted file mode 100644 index f1035727..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/EndListener.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.jero.modules.activiti.listener; - -import cn.hutool.core.date.DateBetween; -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.jero.modules.activiti.entity.ProcessAll; -import com.jero.modules.activiti.enums.ProcessStatusEnum; -import com.jero.modules.activiti.service.ProcessAllService; -import com.jero.modules.activiti.util.SpringContextUtil; -import org.activiti.engine.delegate.DelegateExecution; -import org.activiti.engine.delegate.DelegateTask; -import org.activiti.engine.delegate.ExecutionListener; -import org.activiti.engine.delegate.TaskListener; - -import java.util.Date; - -/** - * @author liJiaRao - * @date 2023-10-13 16:43 - */ -public class EndListener implements ExecutionListener { - @Override - public void notify(DelegateExecution execution) { - //流程信息 - ProcessAllService processAllService = SpringContextUtil.getBean(ProcessAllService.class); - - String processInstanceId = execution.getProcessInstanceId(); - ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId); - Date createTime = processAll.getCreateTime(); - DateTime date = DateUtil.date(); - DateBetween between = date.between(createTime); - - //更新流程总表信息为已完成 - LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); - wrapper.eq(ProcessAll::getProcessInstanceId,processInstanceId); - wrapper.set(ProcessAll::getPrcStatus, ProcessStatusEnum.COMPLETED.getValue()); - wrapper.set(ProcessAll::getEndTime,date); - wrapper.set(ProcessAll::getOverTime,between.toString()); - processAllService.update(wrapper); - } -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/SignListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/SignListener.java deleted file mode 100644 index 6c152e52..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/SignListener.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.jero.modules.activiti.listener; - -import lombok.extern.slf4j.Slf4j; -import org.activiti.engine.ProcessEngine; -import org.activiti.engine.ProcessEngines; -import org.activiti.engine.RuntimeService; -import org.activiti.engine.delegate.DelegateTask; -import org.activiti.engine.delegate.TaskListener; - -/** - * @author liJiaRao - * @date 2023-08-04 10:53 - */ -@Slf4j -public class SignListener implements TaskListener { - @Override - public void notify(DelegateTask delegateTask) { - /** - * - */ - //获取流程id - String taskId = delegateTask.getExecutionId(); - //获取流程参数pass,会签人员完成自己的审批任务时会添加流程参数pass,false为拒绝,true为同意 - // 1、创建ProcessEngine - ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); -// 2、获取RunTimeService - RuntimeService runtimeService = processEngine.getRuntimeService(); - boolean pass = (Boolean) runtimeService.getVariable(taskId, "pass"); - - /* ${nrOfCompletedInstances/nrOfInstances==1} - * false:有一个人拒绝,整个流程就结束了, - * 因为Complete condition的值为pass == false,即,当流程参数为pass时会签就结束开始下一个任务 - * 所以,当pass == false时,直接设置下一个流程跳转需要的参数 - * true:审批人同意,同时要判断是不是所有的人都已经完成了,而不是由一个人同意该会签就结束 - * 值得注意的是如果一个审批人完成了审批进入到该监听时nrOfCompletedInstances的值还没有更新,因此需要+1 - */ - Integer complete = (Integer) runtimeService.getVariable(taskId, "nrOfCompletedInstances"); - Integer all = (Integer) runtimeService.getVariable(taskId, "nrOfInstances"); - // 这里的test对应的是第一个节点中的对应的参数 - String username= (String) runtimeService.getVariable(delegateTask.getExecutionId(), "test"); - if(!pass){ - //会签结束,返回发起人节点 - runtimeService.setVariable(taskId, "countersignState", 0); - runtimeService.setVariable(taskId, "test", username); - }else{ - - //说明都完成了并且没有人拒绝 - if((complete + 1) / all == 1){ - // 流程流向下个节点 test2为下个节点人的参数 - runtimeService.setVariable(taskId, "countersignState", 1); - runtimeService.setVariable(taskId, "test2", "xiaowang"); - - } - } - } -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/StartListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/StartListener.java deleted file mode 100644 index 10b2f9bd..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/StartListener.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.jero.modules.activiti.listener; - -import com.jero.modules.activiti.entity.ProcessAll; -import com.jero.modules.activiti.enums.ProcessStatusEnum; -import com.jero.modules.activiti.enums.ProcessTypeEnum; -import com.jero.modules.activiti.service.ProcessAllService; -import com.jero.modules.activiti.service.ProcessApprovalRecordService; -import com.jero.modules.activiti.util.SpringContextUtil; - -import org.activiti.engine.*; -import org.activiti.engine.delegate.DelegateExecution; -import org.activiti.engine.delegate.ExecutionListener; -import org.activiti.engine.repository.ProcessDefinition; - -/** - * @author liJiaRao - * @date 2023-10-13 16:43 - */ -public class StartListener implements ExecutionListener { - - @Override - public void notify(DelegateExecution execution) { - //流程信息 - ProcessAllService processAllService = SpringContextUtil.getBean(ProcessAllService.class); - //流程审批信息 - ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class); - String id = execution.getId(); - String processInstanceId = execution.getProcessInstanceId(); - String processDefinitionId = execution.getProcessDefinitionId(); - - ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); - RepositoryService repositoryService = processEngine.getRepositoryService(); - ProcessDefinition processDefinition = repositoryService.getProcessDefinition(processDefinitionId); - - String name = processDefinition.getName(); - String key = processDefinition.getKey(); - //新增流程总表信息(剩余的内容在启动流程时填充) - ProcessAll processAll = new ProcessAll(); - processAll.setProcessInstanceId(processInstanceId); - processAll.setPrcType(ProcessTypeEnum.getValueByName(name, processDefinitionId)); - processAll.setPrcStatus(ProcessStatusEnum.INCOMPLETE.getValue()); - processAllService.save(processAll); - } -} 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 0cc405a7..462eab8f 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 @@ -36,6 +36,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.*; +import java.util.function.Consumer; +import java.util.function.Function; @Slf4j @Service @@ -152,6 +154,27 @@ public class ActFlowCommonService { return processApprovalRecordService.getByTaskId(taskId); } + public void setListAttribute(String instanceId, String variableName, Consumer> setter, Function> converter) { + Object value = runtimeService.getVariable(instanceId, variableName); + if (value != null) { + setter.accept(converter.apply(value)); + } + } + + public void setStringAttribute(String instanceId, String variableName, Consumer setter, Function converter) { + Object value = runtimeService.getVariable(instanceId, variableName); + if (value != null) { + setter.accept(converter.apply(value)); + } + } + + public void setStringBooleanAttribute(String instanceId, String variableName, Consumer setter, Function converter) { + Object value = runtimeService.getVariable(instanceId, variableName); + if (value != null) { + setter.accept(converter.apply(value)); + } + } + /** * 完成提交任务 */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/common/ProcessStandardComplianceCheckConstants.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/common/ProcessStandardComplianceCheckConstants.java index a252e2bc..60f9705a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/common/ProcessStandardComplianceCheckConstants.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/common/ProcessStandardComplianceCheckConstants.java @@ -73,4 +73,10 @@ public class ProcessStandardComplianceCheckConstants { public static final String AUTO_TASK_1 = "sid-95E41F78-FE01-4FEC-BF8B-EC11DFBA8824"; public static final String AUTO_TASK_2 = "autoTask_2"; public static final String AUTO_TASK_3 = "autoTask_3"; + + public static final String CONFORM_TO = "1"; + public static final String DISCREPANCY = "2"; + public static final String NOT_INVOLVE = "3"; + public static final String TO_BE_VERIFIED = "4"; + } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheck.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheck.java index cf595abe..a0909ff9 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheck.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheck.java @@ -195,6 +195,10 @@ public class ProcessStandardComplianceCheck implements Serializable { @TableField(exist = false) private String seniorManager; + @ApiModelProperty(value = "是否锁定下发下拉选项") + @TableField(exist = false) + private boolean lockDistributeFlag; + @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/standardComplianceCheck/entity/ProcessStandardComplianceCheckDetail.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheckDetail.java index 2119fa06..9b200b39 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheckDetail.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheckDetail.java @@ -93,7 +93,7 @@ public class ProcessStandardComplianceCheckDetail implements Serializable { */ @ApiModelProperty(value = "车型状态") @Dict(dicCode = "model_status") - private String modelState; + private String modelStatus; /** * 评估人 @@ -145,7 +145,7 @@ public class ProcessStandardComplianceCheckDetail implements Serializable { */ @ApiModelProperty(value = "整改周期") @Dict(dicCode = "correction_period") - private String correctionCycle; + private String correctionPeriod; /** * 整改费用 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java index 9e54de20..5f24c284 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java @@ -1,10 +1,28 @@ package com.jero.modules.activiti.process.standardComplianceCheck.listener; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheck; +import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheckDetail; +import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckDetailService; +import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckService; +import com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibrary; +import com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibraryDetail; +import com.jero.modules.assessmentLibrary.entity.LawsEvaluationNotMetLibrary; +import com.jero.modules.assessmentLibrary.service.ILawsConformityAssessmentLibraryDetailService; +import com.jero.modules.assessmentLibrary.service.ILawsConformityAssessmentLibraryService; +import com.jero.modules.assessmentLibrary.service.ILawsEvaluationNotMetLibraryService; +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 org.springframework.stereotype.Component; +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + +import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.*; + /** * @author liJiaRao * @date 2023-06-18 15:43 @@ -13,8 +31,49 @@ import org.springframework.stereotype.Component; @Component public class ProcessSCCEndListener implements ExecutionListener { + @Resource + private IProcessStandardComplianceCheckService sccService; + + @Resource + private IProcessStandardComplianceCheckDetailService sccDetailService; + + @Resource + private ILawsConformityAssessmentLibraryService calService; + + @Resource + private ILawsConformityAssessmentLibraryDetailService calDetailService; + + @Resource + private ILawsEvaluationNotMetLibraryService notMetService; + @Override public void notify(DelegateExecution delegateExecution) { - log.info("流程结束"); + log.info("法规符合性排查流程结束监听器开始执行"); + LambdaQueryWrapper sccWrapper = new LambdaQueryWrapper<>(); + LambdaQueryWrapper sccDetailWrapper = new LambdaQueryWrapper<>(); + // 找到流程数据 + String processInstanceId = delegateExecution.getProcessInstanceId(); + sccWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, processInstanceId); + ProcessStandardComplianceCheck scc = sccService.getOne(sccWrapper); + // 找到条款数据 + sccDetailWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, scc.getId()); + List list = sccDetailService.list(sccDetailWrapper); + // 入库保存 + LawsConformityAssessmentLibrary lawsConformityAssessmentLibrary = BeanCopyUtils.copyBean(scc, LawsConformityAssessmentLibrary.class); + lawsConformityAssessmentLibrary.setId(null); + calService.save(lawsConformityAssessmentLibrary); + List lawsConformityAssessmentLibraryDetails = BeanCopyUtils.copyBeanList(list, LawsConformityAssessmentLibraryDetail.class); + lawsConformityAssessmentLibraryDetails.forEach(detail -> { + detail.setBindId(lawsConformityAssessmentLibrary.getId()); + }); + calDetailService.saveBatch(lawsConformityAssessmentLibraryDetails); + // 找出不符合和待验证的存入不符合项库 + List notList = lawsConformityAssessmentLibraryDetails + .stream().filter(detail -> detail.getResult().equals(DISCREPANCY) || + detail.getResult().equals(NOT_INVOLVE)).collect(Collectors.toList()); + List lawsEvaluationNotMetLibraries = BeanCopyUtils.copyBeanList(notList, LawsEvaluationNotMetLibrary.class); + lawsEvaluationNotMetLibraries.forEach(detail -> detail.setId(null)); + notMetService.saveBatch(lawsEvaluationNotMetLibraries); + log.info("法规符合性排查流程结束监听器结束执行"); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/StandardComplianceCheckFlow.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/StandardComplianceCheckFlow.java new file mode 100644 index 00000000..4160c6f0 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/StandardComplianceCheckFlow.java @@ -0,0 +1,96 @@ +package com.jero.modules.activiti.process.standardComplianceCheck.service; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.exception.JeroBootException; +import com.jero.modules.activiti.entity.ProcessAll; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; +import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheck; +import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheckDetail; +import com.jero.modules.activiti.service.ProcessAllService; +import com.jero.modules.activiti.service.WorkCenterService; +import com.jero.modules.activiti.util.SpringContextUtil; +import com.jero.modules.activiti.vo.DelegateTaskParam; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.RuntimeService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +import java.util.List; +import java.util.stream.Collectors; + +import static com.jero.modules.activiti.common.ActivitiCommon.MAIN_INSTANCE_ID; +import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.MAIN_CHECK_USER; +import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.MAIN_CHECK_USER_APPROVAL; + +/** + * @ClassName: EsInspectPlanFlowService + * @Description: + * @Author: yjz + * @Date: 2024-01-11 21:19 + * @Version: 1.0 + **/ +@Slf4j +@Transactional(rollbackFor = {Exception.class, JeroBootException.class}) +@Service +public class StandardComplianceCheckFlow implements WorkCenterService { + + @Resource + private IProcessStandardComplianceCheckService sccService; + + @Resource + private IProcessStandardComplianceCheckDetailService sccDetailService; + + @Resource + private RuntimeService runtimeService; + + /** + * 强制撤回 + * @param processAll 流程总表 + */ + @Override + public void changeToDraft(ProcessAll processAll) { + + } + + /** + * 转办 + * @param processAll + * @param processApprovalRecord + * @param toUserId + * @param userId + */ + @Override + public void handleTransfer(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord, String toUserId, String userId) { + ProcessAllService processAllService = SpringContextUtil.getBean(ProcessAllService.class); + processAllService.specialTransfer(processAll, processApprovalRecord, toUserId, userId); + // 子流程中的主排查人的转办需要修改其余所有子流程及主流程中的数据 + String nodeId = processApprovalRecord.getNodeId(); + if (nodeId.equals(MAIN_CHECK_USER_APPROVAL)) { + String processInstanceId = processApprovalRecord.getProcessInstanceId(); + String mainInstanceId = (String) runtimeService.getVariable(processInstanceId, MAIN_INSTANCE_ID); + LambdaQueryWrapper sccWrapper = new LambdaQueryWrapper<>(); + sccWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, mainInstanceId); + ProcessStandardComplianceCheck scc = sccService.getOne(sccWrapper); + LambdaQueryWrapper sccDetailWrapper = new LambdaQueryWrapper<>(); + sccDetailWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, scc.getId()); + sccDetailWrapper.isNotNull(ProcessStandardComplianceCheckDetail::getProcessInstanceId); + List sccDetailList = sccDetailService.list(sccDetailWrapper); + if (CollUtil.isEmpty(sccDetailList)) { + return; + } + List allChildProcessInstanceId = sccDetailList.stream() + .map(ProcessStandardComplianceCheckDetail::getProcessInstanceId).distinct().collect(Collectors.toList()); + allChildProcessInstanceId.forEach(childProcessInstanceId -> { + runtimeService.setVariable(childProcessInstanceId, MAIN_CHECK_USER, toUserId); + }); + } + } + + @Override + public void flowCountersign(DelegateTaskParam param) { + + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java index b1dcd914..a096ad1d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java @@ -52,8 +52,6 @@ import javax.annotation.Resource; import java.io.IOException; import java.io.InputStream; import java.util.*; -import java.util.function.Consumer; -import java.util.function.Function; import java.util.stream.Collectors; import static com.jero.modules.activiti.common.ActivitiCommon.*; @@ -223,11 +221,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl detailInfoList = businessInfoDTO.getDetailInfoList(); + List detailInfoListIds = detailInfoList.stream() + .map(ProcessStandardComplianceCheckDetail::getId).collect(Collectors.toList()); // 根据流程实例Id获取流程定义ID ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); // 获取流程实例ID @@ -338,7 +338,10 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl detail.setValuationTime(new Date())); + sccDetailService.saveBatch(detailInfoList); } runtimeService.setVariable(processInstanceId, DISTRIBUTE, distributeFlag); runtimeService.setVariable(processInstanceId, UNALLOCATED_QUANTITY, unallocatedQuantity); @@ -349,12 +352,29 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl { detail.setAssessor(curUserId); detail.setAuthDept(curUserDepartIds); + detail.setValuationTime(new Date()); }); - sccDetailService.updateBatchById(detailInfoList); + // 先删后增 + removeByIds(detailInfoListIds); + sccDetailService.saveBatch(detailInfoList); runtimeService.setVariable(processInstanceId, DESIGNER, curUserId); break; case MAIN_CHECK_USER_COLLECT: - sccDetailService.updateBatchById(detailInfoList); + // 先删后增 + removeByIds(detailInfoListIds); + sccDetailService.saveBatch(detailInfoList); + // 不分发直接设置后续审批节点的人员变量 + List counterSignUserList = Arrays.asList(standardInfo.getCountersignUser().split(",")); + List managerList = Arrays.asList(standardInfo.getManager().split(",")); + List seniorMangagerList = Arrays.asList(standardInfo.getSeniorManager().split(",")); + runtimeService.setVariable(processInstanceId, COUNTERSIGN_USER_LIST, counterSignUserList); + runtimeService.setVariable(processInstanceId, MANAGER_LIST, managerList); + runtimeService.setVariable(processInstanceId, SENIOR_MANAGER_LIST, seniorMangagerList); + // 保存选人信息 + userMap.put(COUNTERSIGN_USER_LIST, standardInfo.getCountersignUser()); + userMap.put(MANAGER_LIST, standardInfo.getManager()); + userMap.put(SENIOR_MANAGER_LIST, standardInfo.getSeniorManager()); + processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap); break; } runtimeService.setVariable(processInstanceId, PASS, true); @@ -364,6 +384,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl scc.setCountersignUser(String.join(",", (List) v)), v -> (List) v); -// setListAttribute(mainInstanceId, MANAGER, scc::setManager, Object::toString); -// setListAttribute(mainInstanceId, SENIOR_MANAGER, scc::setSeniorManager, Object::toString); - } - - private void setListAttribute(String instanceId, String variableName, Consumer> setter, Function> converter) { - Object value = runtimeService.getVariable(instanceId, variableName); - if (value != null) { - setter.accept(converter.apply(value)); - } - } - - private void setStringAttribute(String instanceId, String variableName, Consumer setter, Function converter) { - Object value = runtimeService.getVariable(instanceId, variableName); - if (value != null) { - setter.accept(converter.apply(value)); - } + actFlowCommonService.setStringBooleanAttribute(mainInstanceId, DISTRIBUTE, scc::setDistributeFlag, value -> (boolean) value ? YesOrNoEnum.YES.getValue() : YesOrNoEnum.NO.getValue()); + // 如果没有下发过 + String distributeFlag = scc.getDistributeFlag(); + scc.setLockDistributeFlag(YesOrNoEnum.YES.getValue().equals(distributeFlag)); + actFlowCommonService.setStringAttribute(mainInstanceId, DEPT_USER, scc::setDeptUser, Object::toString); + actFlowCommonService.setStringAttribute(mainInstanceId, MAIN_CHECK_USER, scc::setMainCheckUser, Object::toString); + actFlowCommonService.setListAttribute(mainInstanceId, COUNTERSIGN_USER_LIST, v -> scc.setCountersignUser(String.join(",", v)), v -> (List) v); + actFlowCommonService.setListAttribute(mainInstanceId, MANAGER_LIST, v -> scc.setManager(String.join(",", v)), v -> (List) v); + actFlowCommonService.setListAttribute(mainInstanceId, SENIOR_MANAGER_LIST, v -> scc.setSeniorManager(String.join(",", v)), v -> (List) v); } private void setDesignerEngineerEvaluationHandleData(ProcessSccVO processSccVO, String mainInstanceId, String processInstanceId) { @@ -574,7 +582,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl processDraftUpdateWrapper.eq(ProcessDraft::getId, processDraft.getId()); processDraftUpdateWrapper.set(ProcessDraft::getSaveSource, null); processDraftUpdateWrapper.set(ProcessDraft::getProcessInstanceId, null); + processDraftUpdateWrapper.set(ProcessDraft::getTaskId, null); processDraftService.update(processDraftUpdateWrapper); } //activiti撤销 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java index 6b9c7396..1c39a040 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java @@ -1,6 +1,7 @@ package com.jero.modules.activiti.service; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -13,6 +14,7 @@ import com.jero.modules.activiti.mapper.ProcessApprovalRecordMapper; import com.jero.modules.activiti.process.common.entity.ProcessSnapshot; import com.jero.modules.activiti.process.common.service.ProcessSnapshotService; import com.jero.modules.laws.common.util.CurrentUserUtil; +import com.jero.modules.sys.utils.UserUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -31,6 +33,14 @@ import java.util.stream.Collectors; */ @Service public class ProcessApprovalRecordService extends ServiceImpl { + + // 已办 + public static final String COMPLETED_RECORD_LIST = "1"; + // 已发 + public static final String SENT_RECORD_LIST = "2"; + // 流程监控 + public static final String ALL_RECORD_LIST = "3"; + @Resource private ISysBaseAPI sysBaseAPI; @@ -50,7 +60,9 @@ public class ProcessApprovalRecordService extends ServiceImpl pageList(Page page, ProcessApprovalRecord processApprovalRecord, HttpServletRequest req) { + public Page pageList(Page page, ProcessApprovalRecord processApprovalRecord, String type, HttpServletRequest req) { + boolean allSnapshotFlag = type.equals(ALL_RECORD_LIST); + String curUserId = UserUtils.getUserId(); QueryWrapper wrapper = new QueryWrapper<>(); if (StringUtils.isNotBlank(processApprovalRecord.getFinishFlagSearch())){ wrapper.in("finish_flag", Arrays.asList(processApprovalRecord.getFinishFlagSearch().split(","))); @@ -66,12 +78,15 @@ public class ProcessApprovalRecordService extends ServiceImpl snapshotList = processSnapshotService.list(processSnapshotWrapper); Map> snapshotMap = snapshotList.stream().collect(Collectors.groupingBy(ProcessSnapshot::getTaskId)); for (ProcessApprovalRecord record : records) { - List processSnapshots = snapshotMap.get(record.getTaskId()); - if (CollUtil.isNotEmpty(processSnapshots)) { - ProcessSnapshot snapshot = processSnapshots.get(0); - record.setSnapshotId(snapshot.getId()); - } String userId = record.getUserId(); + if (StrUtil.isNotBlank(userId) && (allSnapshotFlag || curUserId.equals(userId))) { + List processSnapshots = snapshotMap.get(record.getTaskId()); + if (CollUtil.isNotEmpty(processSnapshots)) { + ProcessSnapshot snapshot = processSnapshots.get(0); + record.setSnapshotId(snapshot.getId()); + } + } + String taskAcceptor = sysBaseAPI.translateUserRealNameFromTable(userId); String delegateBy = record.getDelegateBy(); if (StringUtils.isNotBlank(delegateBy)){ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java index 7471cfda..c1a89cf3 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java @@ -1,15 +1,19 @@ package com.jero.modules.activiti.service; import cn.hutool.core.collection.CollStreamUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.modules.activiti.common.ActivitiCommon; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.entity.ProcessModelNode; import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.mapper.ProcessModelNodeMapper; import com.jero.modules.activiti.mapper.ProcessNodeMapper; import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.RuntimeService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -21,6 +25,9 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import static com.jero.modules.activiti.common.ActivitiCommon.DISTRIBUTE; +import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.*; + /** * @author liJiaRao * @date 2023-09-26 15:12 @@ -34,6 +41,12 @@ public class ProcessNodeService extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ProcessModelNode::getNodeType, "userTask"); @@ -114,30 +127,29 @@ public class ProcessNodeService extends ServiceImpl !"123".equals(v.getVariableName())) .collect(Collectors.toList()); + specialProcessScc(processNodeList, processInstanceId); return processNodeList; } - private void specialProcessEsRecheck(List processNodeList, String processInstanceId) { - // 如果有标准化发起节点,但是没有人员,则删除标准化发起节点 - ProcessNode firstNode = processNodeList.get(0); - ProcessNode secondNode = processNodeList.get(1); - if (StrUtil.isNotBlank(secondNode.getLinkUserIds())) { - if (StrUtil.isBlank(firstNode.getLinkUserIds())) { - processNodeList.remove(0); - } + private void specialProcessScc(List processNodeList, String processInstanceId) { + if (StrUtil.isBlank(processInstanceId)) { + return; } - } - - private void specialProcessEsMiniProcessEnd(List processNodeList) { - // 如果第三个节点有选人信息,则判断相关人员会签节点是否有人,如果没人,则删除相关人员会签节点 - if (processNodeList.size() >= 3) { - ProcessNode processNode = processNodeList.get(2); - if (StrUtil.isNotBlank(processNode.getLinkUserIds())) { - ProcessNode processNode1 = processNodeList.get(1); - if (StrUtil.isBlank(processNode1.getLinkUserIds())) { - processNodeList.remove(1); - } - } + // 如果没分发 则不显示 主排查人单线审核 主排查人汇总节点 + String mainInstanceId = (String) runtimeService.getVariable(processInstanceId, ActivitiCommon.MAIN_INSTANCE_ID); + Object variable = runtimeService.getVariable(mainInstanceId, DISTRIBUTE); + boolean distribute = ObjectUtil.isNotNull(variable) && YesOrNoEnum.YES.getValue().equals(variable.toString()); + if (!distribute) { + processNodeList.removeIf( v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_APPROVAL) + || v.getXmlNodeId().equals(MAIN_CHECK_USER_COLLECT)); + } + // 判断有没有 主排查人重新分批下发 节点 + LambdaQueryWrapper parWrapper = new LambdaQueryWrapper<>(); + parWrapper.eq(ProcessApprovalRecord::getProcessInstanceId, processInstanceId); + parWrapper.eq(ProcessApprovalRecord::getNodeId, MAIN_CHECK_USER_REDISTRIBUTE); + List list = parService.list(parWrapper); + if (CollectionUtils.isEmpty(list)) { + processNodeList.removeIf( v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_REDISTRIBUTE)); } } } diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsConformityAssessmentLibrary.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsConformityAssessmentLibrary.java index 2cc9e717..b00dd8f7 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsConformityAssessmentLibrary.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsConformityAssessmentLibrary.java @@ -4,15 +4,15 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; -import java.util.Date; - import com.fasterxml.jackson.annotation.JsonFormat; import com.jero.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import java.io.Serializable; +import java.util.Date; + /** * 法规符合性评估库 * @TableName laws_conformity_assessment_library @@ -40,6 +40,19 @@ public class LawsConformityAssessmentLibrary implements Serializable { @ApiModelProperty(value = "标准ID") private String standardId; + /** + * 标准编号 + */ + @ApiModelProperty(value = "标准编号") + private String standardNumber; + + /** + * 标准名称 + */ + @ApiModelProperty(value = "标准名称") + private String standardName; + + /** * 评估日期 */ @@ -62,20 +75,6 @@ public class LawsConformityAssessmentLibrary implements Serializable { @ApiModelProperty(value = "结束评估日期") private Date endValuationTime; - /** - * 标准编号 - */ - @TableField(exist = false) - @ApiModelProperty(value = "标准编号") - private String standardNumber; - - /** - * 标准名称 - */ - @TableField(exist = false) - @ApiModelProperty(value = "标准名称") - private String standardName; - /** * 适用市场 */ diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java index 42ab788c..e2b2b94d 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java @@ -229,7 +229,6 @@ public class LawsEvaluationNotMetLibrary implements Serializable { /** * 标准编号 */ - @TableField(exist = false) @ApiModelProperty(value = "标准编号") @Excel(name = "标准编号", width = 15, orderNum = "3") private String standardNumber; @@ -237,7 +236,6 @@ public class LawsEvaluationNotMetLibrary implements Serializable { /** * 标准名称 */ - @TableField(exist = false) @ApiModelProperty(value = "标准名称") @Excel(name = "标准编号", width = 15, orderNum = "4") private String standardName; diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java index c77cb5e4..182a8b4c 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java @@ -2,12 +2,14 @@ package com.jero.modules.split.service.impl; import cn.hutool.core.lang.RegexPool; import cn.hutool.core.util.ReUtil; +import cn.hutool.http.Header; +import cn.hutool.http.HttpRequest; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.IntekeyUtils; -import com.jero.common.util.MinioUtil; import com.jero.common.util.UUIDUtils; +import com.jero.common.util.obs.ObsBootUtil; import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper; import com.jero.modules.laws.standard.entity.LawsDomesticStandard; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; @@ -40,6 +42,8 @@ import org.openxmlformats.schemas.drawingml.x2006.main.CTGraphicalObject; import org.openxmlformats.schemas.drawingml.x2006.picture.CTPicture; import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTAnchor; import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline; +import org.openxmlformats.schemas.officeDocument.x2006.math.CTOMath; +import org.openxmlformats.schemas.officeDocument.x2006.math.CTOMathPara; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDrawing; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLevelText; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR; @@ -55,6 +59,7 @@ import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.*; @@ -173,10 +178,11 @@ public class FileSpiltService { } OSSFile ossFile = ossFileList.get(0); String readFilePath = ossFile.getUrl(); - if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) { + if (StringUtils.isEmpty(readFilePath)) { throw new JeroBootException("当前文件未找到,请重新选择!"); } - try (InputStream is = MinioUtil.download(readFilePath);InputStream is1 = MinioUtil.download(readFilePath)) { +// try (InputStream is = MinioUtil.download(readFilePath);InputStream is1 = MinioUtil.download(readFilePath)) { + try (InputStream is = ObsBootUtil.getOssFile(readFilePath);InputStream is1 = ObsBootUtil.getOssFile(readFilePath)) { String fileName = readFilePath.substring((readFilePath.lastIndexOf("/") + 1)); MultipartFile mFile = new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), is); MultipartFile mFile1 = new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), is1); @@ -217,34 +223,34 @@ public class FileSpiltService { // //处理段落中的文本以及图片 // handleParagraphRun(content, (XWPFRun) child, imageParser); //} else -// if (child instanceof CTOMath) { -// CTOMath ctoMath = (CTOMath) child; -// String xmlText = ctoMath.xmlText().replaceAll("xml-fragment","m:oMath"); -// Map map = new HashMap<>(); -// map.put("encode", xmlText); -// String post = HttpRequest.post(mathToImgUrl) -// .header(Header.CONTENT_TYPE, "application/json") -// .body(xmlText) -// .execute().body(); -// //String post = HttpUtil.post(mathToImgUrl, map); -// if (messageList.size() > 0) { -// addItermsMathImage(messageList.get(messageList.size() - 1), itemValList, post); -// } -// } -// else if (child instanceof CTOMathPara) { -// CTOMathPara ctoMathPara = (CTOMathPara) child; -// String xmlText = ctoMathPara.xmlText().replaceAll("xml-fragment","m:oMath");; -// Map map = new HashMap<>(); -// map.put("encode",xmlText); -// String post = HttpRequest.post(mathToImgUrl) -// .header(Header.CONTENT_TYPE, "application/json") -// .body(xmlText) -// .execute().body(); -// //String post = HttpUtil.post(mathToImgUrl, map); -// if (messageList.size() > 0) { -// addItermsMathImage(messageList.get(messageList.size() - 1), itemValList, post); -// } -// } + if (child instanceof CTOMath) { + CTOMath ctoMath = (CTOMath) child; + String xmlText = ctoMath.xmlText().replaceAll("xml-fragment","m:oMath"); + Map map = new HashMap<>(); + map.put("encode", xmlText); + String post = HttpRequest.post(mathToImgUrl) + .header(Header.CONTENT_TYPE, "application/json") + .body(xmlText) + .execute().body(); + //String post = HttpUtil.post(mathToImgUrl, map); + if (messageList.size() > 0) { + addItermsMathImage(messageList.get(messageList.size() - 1), itemValList, post); + } + } + else if (child instanceof CTOMathPara) { + CTOMathPara ctoMathPara = (CTOMathPara) child; + String xmlText = ctoMathPara.xmlText().replaceAll("xml-fragment","m:oMath");; + Map map = new HashMap<>(); + map.put("encode",xmlText); + String post = HttpRequest.post(mathToImgUrl) + .header(Header.CONTENT_TYPE, "application/json") + .body(xmlText) + .execute().body(); + //String post = HttpUtil.post(mathToImgUrl, map); + if (messageList.size() > 0) { + addItermsMathImage(messageList.get(messageList.size() - 1), itemValList, post); + } + } } for (XWPFRun xwrun : p.getRuns()) { @@ -940,7 +946,8 @@ public class FileSpiltService { String filepathandname = filePathCos + "/" + imageName; try { String path = splitUrl+imageName; - MinioUtil.uploadByte(bytev, filepathandname); +// MinioUtil.uploadByte(bytev, filepathandname); + ObsBootUtil.upload(new ByteArrayInputStream(bytev), filepathandname); String imgCon = path; String imgConVal = ""; message.getItemsCondi().add(imgConVal); @@ -961,7 +968,8 @@ public class FileSpiltService { String filepathandname = filePathCos + "/" + imageName; try { String path = splitUrl+imageName; - MinioUtil.uploadByte(bytev, filepathandname); +// MinioUtil.uploadByte(bytev, filepathandname); + ObsBootUtil.upload(new ByteArrayInputStream(bytev), filepathandname); String imgCon = path; String imgConVal = ""; stringBuilder.append(imgConVal); @@ -1118,11 +1126,11 @@ public class FileSpiltService { } OSSFile ossFile = ossFileList.get(0); String readFilePath = ossFile.getUrl(); - if (org.apache.commons.lang.StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) { + if (org.apache.commons.lang.StringUtils.isEmpty(readFilePath)) { throw new JeroBootException("当前文件未找到,请重新选择!"); } - try (InputStream is = MinioUtil.download(readFilePath)) { - +// try (InputStream is = MinioUtil.download(readFilePath)) { + try (InputStream is = ObsBootUtil.getOssFile(readFilePath)) { // InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。 XWPFDocument doc = new XWPFDocument(is);