yangys
2025-06-17 ceb4fde6edb1f73bc45f54129432ec8068875b6d
todo-list接口补充字段
已修改7个文件
85 ■■■■ 文件已修改
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskTraceVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
@@ -7,7 +7,10 @@
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.HistoryService;
import org.flowable.engine.TaskService;
import org.flowable.engine.task.Comment;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
@@ -37,6 +40,9 @@
    @Autowired
    private FlowBusinessService businessService;
    @Autowired
    private HistoryService historyService;
    @GetMapping("overtime-list")
    @ApiOperationSupport(order = 3)
    @Operation(summary = "超时查询", description = "查询所有超时任务")
@@ -65,10 +71,25 @@
    }
    @Operation(summary = "流程轨迹", description = "流程轨迹")
    @GetMapping("process-trace")
    public R<List<TaskTraceVO>> processTrace(long processInstanceId){
        return R.data(Collections.emptyList());
    public R<List<TaskTraceVO>> processTrace(String processInstanceId){
        List<TaskTraceVO> result = new ArrayList<>();
        List<HistoricTaskInstance> hisTasks = historyService.createHistoricTaskInstanceQuery()
            .processInstanceId(processInstanceId).orderByTaskCreateTime().desc().list();
// 批注信息
        List<Comment> comments;
        for (HistoricTaskInstance hisTask : hisTasks) {
            TaskTraceVO vo = new TaskTraceVO();
            BeanUtils.copyProperties(hisTask, vo);
            comments = taskService.getTaskComments(hisTask.getId());
            if(!comments.isEmpty()) {
                vo.setComment(comments.get(0).getFullMessage());
            }
            result.add(vo);
        }
        return R.data(result);
    }
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
@@ -9,12 +9,15 @@
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.*;
import org.springblade.mdm.basesetting.machine.MachineService;
import org.springblade.mdm.flow.entity.MdmFlowProcess;
import org.springblade.mdm.flow.util.MdmFlowCache;
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;
@@ -33,7 +36,7 @@
    private final TaskService taskService;
    private final HistoryService historyService;
    private final MachineService machineService;
    private final IUserClient userClient;
    public IPage<FlowVO> selectTodoPage(IPage<FlowVO> page, LocalDate createTimeBegin, LocalDate createTimeEnd, String keyword) {
        //String taskUser = TaskUtil.getTaskUser();
@@ -263,12 +266,20 @@
            flow.setProcessDefinitionId(task.getProcessDefinitionId());
            //flow.setProcessDefinitionKey(processDefinition.getKey());
            //flow.setProcessDefinitionVersion(processDefinition.getVersion());
            flow.setProcessInstanceId(task.getProcessInstanceId());
            // 查询流程实例创建时间
            HistoricProcessInstance historicProcess = historyService.createHistoricProcessInstanceQuery()
                .processInstanceId(task.getProcessInstanceId())
                .singleResult();
            flow.setProcessCreateTime(historicProcess.getStartTime());
            R<User> ru = userClient.userInfoById(Long.valueOf(historicProcess.getStartUserId()));
            if(ru.isSuccess()) {
                flow.setStartUserName(ru.getData().getName());
            }
            MdmFlowProcess processDefinition = MdmFlowCache.getProcessDefinition(task.getProcessDefinitionId());
            flow.setCategory(processDefinition.getCategory());
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java
@@ -25,6 +25,7 @@
 */
package org.springblade.mdm.flow.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springblade.flow.core.constant.ProcessConstant;
@@ -74,11 +75,17 @@
    /**
     * 创建时间
     */
    @Schema(description = "任务创建时间")
    private Date createTime;
    /**
     * 结束时间
     */
    private Date endTime;
    @Schema(description = "流程创建时间")
    private Date processCreateTime;
    @Schema(description = "流程启动用户姓名")
    private String startUserName;
    /**
     * 签收时间
     */
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskTraceVO.java
@@ -5,6 +5,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
@Data
@Schema(description = "流程轨迹数据")
@@ -15,8 +16,8 @@
    @Schema(description = "批注")
    private String comment;
    @Schema(description = "开始时间")
    private LocalDateTime startTime;
    private Date createTime;
    @Schema(description = "完成时间")
    private LocalDateTime completeTime;
    private Date endTime;
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
@@ -30,22 +30,26 @@
     * 新增
     */
    @PostMapping("/save")
    @Operation(summary = "新增", description = "节点信息")
    @Operation(summary = "新增节点", description = "节点信息")
    public R<Boolean> save(@RequestBody NcNodeVO vo) {
        ncNodeService.saveNcCode(vo);
        return R.<Boolean>status(true);
    }
    /**
     * 新增
     */
    @PostMapping("/update")
    @Operation(summary = "修改", description = "节点信息")
    @Operation(summary = "修改节点")
    public R<Boolean> update(@RequestBody NcNodeVO vo) {
        ncNodeService.updateNcCode(vo);
        return R.<Boolean>status(true);
    }
    @PostMapping("/remove")
    @Operation(summary = "删除节点")
    public R<Boolean> remove(Long id) {
        ncNodeService.removeById(id);
        return R.<Boolean>status(true);
    }
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java
@@ -1,5 +1,6 @@
package org.springblade.mdm.program.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import org.springblade.mdm.commons.vo.BaseVO;
@@ -7,11 +8,11 @@
@Setter
@Getter
public class NcNodeVO extends BaseVO {
    @Schema(description = "节点名称")
    private String name;
    @Schema(description = "父ID")
    private Long parentId;
    /**
     * 程序包名
      */
    @Schema(description = "节点类型,字典(程序节点类型nc_node_type)")
    private String nodeType;
}
blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
@@ -24,15 +24,15 @@
      <conditionExpression xsi:type="tFormalExpression">${approve=='Y'}</conditionExpression>
    </sequenceFlow>
    <serviceTask id="cureCheckServiceTask" flowable:exclusive="true" name="固化程序检查服务任务" flowable:expression="cureProgramCheckTask.execute(execution)"/>
    <userTask id="sid-015ac835-1083-489a-9496-97dbb9432d09" name="检查程序是否可用" flowable:assignee="${assignee}"/>
    <userTask id="confirmIsUseableTask" name="检查程序是否可用" flowable:assignee="${assignee}"/>
    <sequenceFlow id="sid-46ccac64-2d48-4933-88a6-f2941ae131dd" sourceRef="teamLeaderTask" targetRef="programmingTask">
      <conditionExpression xsi:type="tFormalExpression">${approve=='Y' &amp;&amp; hasCuredProgram=='N'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-af92e6ab-bc80-43ed-8b09-1d3ec54cc9e7" sourceRef="teamLeaderTask" targetRef="cureCheckServiceTask">
      <conditionExpression xsi:type="tFormalExpression">${approve=='Y' &amp;&amp; hasCuredProgram=='Y'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-353381d5-35c7-47b0-bf5b-2bafe865ab5e" sourceRef="cureCheckServiceTask" targetRef="sid-015ac835-1083-489a-9496-97dbb9432d09"/>
    <sequenceFlow id="sid-d144dad0-dc94-4a2b-96d6-9d8451b05ec1" sourceRef="sid-015ac835-1083-489a-9496-97dbb9432d09" targetRef="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" name="固化程序可用">
    <sequenceFlow id="sid-353381d5-35c7-47b0-bf5b-2bafe865ab5e" sourceRef="cureCheckServiceTask" targetRef="confirmIsUseableTask"/>
    <sequenceFlow id="sid-d144dad0-dc94-4a2b-96d6-9d8451b05ec1" sourceRef="confirmIsUseableTask" targetRef="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" name="固化程序可用">
      <conditionExpression>${approve=='Y'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-d4133565-1a45-4bb6-b603-9b9e4db1cdbb" sourceRef="approveTask" targetRef="check">
@@ -46,7 +46,7 @@
      <conditionExpression xsi:type="tFormalExpression">${processEditionEqual=='N'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-598e1dbe-85b3-40d0-89c8-bd2580ecbfc5" sourceRef="emptyUpgradeProcessEdtionServiceTask" targetRef="check"/>
    <sequenceFlow id="sid-80b50f96-7601-4ba2-8c32-968923170d25" sourceRef="sid-015ac835-1083-489a-9496-97dbb9432d09" targetRef="programmingTask">
    <sequenceFlow id="sid-80b50f96-7601-4ba2-8c32-968923170d25" sourceRef="confirmIsUseableTask" targetRef="programmingTask">
      <conditionExpression>${approve=='N'}</conditionExpression>
    </sequenceFlow>
    <serviceTask id="emptyUpgradeProcessEdtionServiceTask" flowable:exclusive="true" name="空升版" flowable:expression="programEmptyUpgradeProcessEdtionTask.execute(execution)"/>
@@ -98,7 +98,7 @@
      <bpmndi:BPMNShape id="shape-8455618d-c1b9-4e6a-bca4-de965cc81633" bpmnElement="cureCheckServiceTask">
        <omgdc:Bounds x="-275.0" y="37.500004" width="65.0" height="39.999996"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="shape-8f7064fc-4838-44cc-bf6d-ca15932a1e2e" bpmnElement="sid-015ac835-1083-489a-9496-97dbb9432d09">
      <bpmndi:BPMNShape id="shape-8f7064fc-4838-44cc-bf6d-ca15932a1e2e" bpmnElement="confirmIsUseableTask">
        <omgdc:Bounds x="-165.0" y="37.5" width="55.0" height="40.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-0408fc3c-c133-40e3-9006-c315b12e9790" bpmnElement="sid-46ccac64-2d48-4933-88a6-f2941ae131dd">