| blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/DoneMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/DoneMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/DoneQueryVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
@@ -14,6 +14,7 @@ import org.springblade.core.tool.api.R; import org.springblade.mdm.basesetting.producedivision.entity.MdmUser; import org.springblade.mdm.basesetting.producedivision.service.MdmUserService; import org.springblade.mdm.flow.service.DoneQueryService; import org.springblade.mdm.flow.service.FlowBusinessService; import org.springblade.mdm.flow.service.FlowCommonService; import org.springblade.mdm.flow.service.FlowTransferService; @@ -46,6 +47,9 @@ private FlowTransferService flowTransferService; @Autowired private FlowCommonService flowCommonService; @Autowired private DoneQueryService doneQueryService; /** * å¾ åä»»å¡å表页 */ @@ -59,7 +63,7 @@ return R.data(pages); } @GetMapping("done-list") @GetMapping("done-list-old") @ApiOperationSupport(order = 3) @Operation(summary = "å½åç¨æ·å·²åä»»å¡å页", description = "ä¼ å ¥æµç¨ä¿¡æ¯") public R<IPage<FlowVO>> doneList(@Parameter(description = "å ³é®å") String keyword, @Parameter(description = "å建æ¶é´å¼å§") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeBegin, @Parameter(description = "å建æ¶é´æªæ¢") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeEnd, Query query) { @@ -67,6 +71,14 @@ return R.data(pages); } @GetMapping("done-list") @ApiOperationSupport(order = 3) @Operation(summary = "å½åç¨æ·å·²åä»»å¡å页2", description = "ä¼ å ¥æµç¨ä¿¡æ¯2") public R<IPage<FlowVO>> doneList2(@Parameter(description = "å ³é®å") String keyword, @Parameter(description = "å建æ¶é´å¼å§") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeBegin, @Parameter(description = "å建æ¶é´æªæ¢") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeEnd, Query query) { IPage<FlowVO> pages = doneQueryService.selectDonePage(Condition.getPage(query),"" ,createTimeBegin,createTimeEnd,keyword); return R.data(pages); } /** blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/DoneMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package org.springblade.mdm.flow.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; import org.springblade.core.mp.mapper.BladeMapper; import org.springblade.mdm.flow.entity.ApproveRecord; import org.springblade.mdm.flow.vo.ApproveRecordVO; import org.springblade.mdm.flow.vo.DoneQueryVO; import org.springblade.mdm.flow.vo.FlowVO; import java.util.List; public interface DoneMapper extends BladeMapper<ApproveRecord> { IPage<FlowVO> pageQuery(@Param("page")IPage<FlowVO> page, @Param("query") DoneQueryVO queryVO); } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/DoneMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,61 @@ <?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="org.springblade.mdm.flow.mapper.DoneMapper"> <select id="pageQuery" resultType="org.springblade.mdm.flow.vo.FlowVO"> SELECT HTI.ID_ AS taskId, HTI.NAME_ AS taskName, HPI.START_USER_ID_, su.name start_user_name, HTI.ASSIGNEE_ AS assignee, HTI.START_TIME_ AS createTime, HTI.END_TIME_ AS endTime, HPI.PROC_INST_ID_ AS processInstanceId, HPI.BUSINESS_KEY_ AS businessKey, HPD.NAME_ AS processDefinitionName, HPD.KEY_ as processDefinitionKey, HPI.START_TIME_ as processCreateTime FROM ACT_HI_TASKINST HTI INNER JOIN ACT_HI_PROCINST HPI ON HTI.PROC_INST_ID_ = HPI.PROC_INST_ID_ inner JOIN blade_user su on HPI.START_USER_ID_=su.id INNER JOIN ACT_RE_PROCDEF HPD ON HPI.PROC_DEF_ID_ = HPD.ID_ WHERE HTI.ASSIGNEE_ = #{query.userId}<!--'1932080214599315458'--> AND HTI.END_TIME_ IS NOT NULL and HPI.PROC_INST_ID_ in ( select VAR.PROC_INST_ID_ from ACT_HI_VARINST VAR join ACT_HI_TASKINST taskin on VAR.PROC_INST_ID_=taskin.PROC_INST_ID_ <where> VAR.VAR_TYPE_ ='string' and taskin.ASSIGNEE_ = #{query.userId} <!-- ä»»å¡å建æ¶é´è¿æ»¤ --> <if test="query.createTimeBegin != null"> AND taskin.START_TIME_ >= #{query.createTimeBegin} </if> <if test="query.createTimeEnd != null"> AND taskin.START_TIME_ <= #{query.createTimeEnd} </if> <if test="query.keyword != null and query.keyword != ''"> <bind name="patternVal" value="'%'+query.keyword+'%'"/> and ( (VAR.name_='title' and TEXT_ like #{patternVal}) or (VAR.name_='drawingNo' and TEXT_ like #{patternVal}) or (VAR.name_='processNo' and TEXT_ like #{patternVal}) or (VAR.name_='machineCode' and TEXT_ like #{patternVal}) or (VAR.name_='processName' and TEXT_ like #{patternVal}) or (VAR.name_='processEdition' and TEXT_ like #{patternVal}) or (VAR.name_='craftEdition' and TEXT_ like #{patternVal}) or (VAR.name_='productModel' and TEXT_ like #{patternVal}) ) </if> </where> ) </select> </mapper> blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,101 @@ package org.springblade.mdm.flow.service; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import org.flowable.engine.HistoryService; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.history.HistoricProcessInstanceQuery; import org.flowable.engine.task.Comment; import org.flowable.task.api.Task; import org.flowable.task.api.TaskInfoQuery; import org.flowable.task.api.TaskQuery; import org.flowable.task.api.history.HistoricTaskInstance; import org.flowable.task.api.history.HistoricTaskInstanceQuery; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.flow.constants.FlowContants; import org.springblade.mdm.flow.entity.FlowProgramFile; import org.springblade.mdm.flow.entity.MdmFlowProcess; import org.springblade.mdm.flow.mapper.DoneMapper; import org.springblade.mdm.flow.util.MdmFlowCache; import org.springblade.mdm.flow.vo.DoneQueryVO; import org.springblade.mdm.flow.vo.FlowVO; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; /** * æµç¨ä¸å¡å®ç°ç±» * * @author Chill */ @Service @AllArgsConstructor public class DoneQueryService { private final FlowProgramFileService flowProgramFileService; private final HistoryService historyService; private final IUserClient userClient; private final DoneMapper doneMapper; // public IPage<FlowVO> selectDonePage(IPage<FlowVO> page, String s, LocalDateTime createTimeBegin, LocalDateTime createTimeEnd, String keyword) { //已忰æ¥è¯¢ String userId = "" + AuthUtil.getUserId(); DoneQueryVO queryVO = new DoneQueryVO(); queryVO.setSize(Long.valueOf(page.getSize()).intValue()); queryVO.setCurrent(Long.valueOf(page.getCurrent()).intValue()); queryVO.setUserId(userId); queryVO.setCreateTimeBegin(createTimeBegin); if(createTimeEnd != null){ createTimeEnd = createTimeEnd.plusDays(1); } queryVO.setCreateTimeEnd(createTimeEnd); queryVO.setKeyword(keyword); IPage<FlowVO> pageDta = doneMapper.pageQuery(page,queryVO); List<String> instIdList = pageDta.getRecords().stream().map(FlowVO::getProcessInstanceId).toList(); if(!instIdList.isEmpty()) { List<HistoricProcessInstance> processList = getHistoricProcessInstances(instIdList); Map<String,Map<String,Object>> varmap = new HashMap<>(); for(HistoricProcessInstance inst : processList) { varmap.put(inst.getId(),inst.getProcessVariables()); } pageDta.getRecords().forEach(flowVO->{ flowVO.setVariables(varmap.get(flowVO.getProcessInstanceId())); flowVO.setFile(this.getFileString(flowVO.getProcessInstanceId())); }); } return pageDta; } List<HistoricProcessInstance> getHistoricProcessInstances(List<String> processInstanceIds) { return historyService.createHistoricProcessInstanceQuery().includeProcessVariables(). processInstanceIds(new HashSet<>(processInstanceIds)) .list(); } /* è·åå表ä¸çæä»¶å */ String getFileString(String processInstanceId){ String result = ""; List<FlowProgramFile> fileList = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId, processInstanceId).list(); result = String.join(",",fileList.stream().map(FlowProgramFile::getName).toList()); return result; } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
@@ -549,4 +549,5 @@ return page; } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/DoneQueryVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package org.springblade.mdm.flow.vo; import lombok.Getter; import lombok.Setter; import org.springblade.core.mp.support.Query; import java.time.LocalDateTime; @Setter @Getter public class DoneQueryVO extends Query { private String userId; private LocalDateTime createTimeBegin; private LocalDateTime createTimeEnd; private String keyword; }