From 295646f330a1ca15645d78e65337d9d7b0e6b8af Mon Sep 17 00:00:00 2001 From: fangjiakai <450850793@qq.com> Date: Thu, 2 Apr 2026 17:37:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(workflow):=20=E5=AE=8C=E5=96=84=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E6=B5=81=E7=A8=8B=E5=AE=A1=E6=89=B9=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在TaskLogNextCmd中添加remarks字段用于备注信息存储 - 添加rejectedStepFlag字段控制步骤是否可被打回 - 实现打回功能逻辑,包括设置当前步骤为打回状态和申请步骤为进行中 - 优化任务日志分页查询功能,使用统一的列表页面接口 - 修复CUTROAD_WORK枚举值描述错误,从"短路作业"改为"断路路作业" - 在打回操作中注释掉归档和删除逻辑,避免数据重复处理 --- .../command/EightworkInfoRemoveExe.java | 1 + .../eightwork/command/TaskLogUpdateExe.java | 36 +++++++++++++++---- .../eightwork/service/TaskLogServiceImpl.java | 2 +- .../zcloud/eightwork/dto/TaskFlowAddCmd.java | 2 ++ .../zcloud/eightwork/dto/TaskLogNextCmd.java | 10 ++++++ .../dto/clientobject/TaskFlowCO.java | 3 ++ .../eightwork/dto/clientobject/TaskLogCO.java | 3 ++ .../eightwork/domain/model/TaskFlowE.java | 2 ++ .../eightwork/domain/model/TaskLogE.java | 3 ++ .../domain/model/enums/WorkCodeEnum.java | 2 +- .../persistence/dataobject/TaskFlowDO.java | 3 ++ .../persistence/dataobject/TaskLogDO.java | 3 ++ .../persistence/mapper/TaskLogMapper.java | 5 +++ .../impl/TaskLogRepositoryImpl.java | 15 ++++---- .../main/resources/mapper/TaskLogMapper.xml | 26 ++++++++++++-- 15 files changed, 97 insertions(+), 19 deletions(-) diff --git a/web-app/src/main/java/com/zcloud/eightwork/command/EightworkInfoRemoveExe.java b/web-app/src/main/java/com/zcloud/eightwork/command/EightworkInfoRemoveExe.java index cd3984f..00e86fb 100644 --- a/web-app/src/main/java/com/zcloud/eightwork/command/EightworkInfoRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/eightwork/command/EightworkInfoRemoveExe.java @@ -2,6 +2,7 @@ package com.zcloud.eightwork.command; import com.alibaba.cola.exception.BizException; import com.zcloud.eightwork.domain.gateway.EightworkInfoGateway; +import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; diff --git a/web-app/src/main/java/com/zcloud/eightwork/command/TaskLogUpdateExe.java b/web-app/src/main/java/com/zcloud/eightwork/command/TaskLogUpdateExe.java index baf1898..12dfcda 100644 --- a/web-app/src/main/java/com/zcloud/eightwork/command/TaskLogUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/eightwork/command/TaskLogUpdateExe.java @@ -231,6 +231,7 @@ public class TaskLogUpdateExe { log.info("完成当前步骤: stepName={}, status={}", currentLog.getStepName(), cmd.getStatus()); currentLog.setStatus(cmd.getStatus()); + currentLog.setRemarks(cmd.getRemarks()); // 签字步骤,保存签字图片 if (SIGN_STEP_FLAG.equals(currentLog.getSignStepFlag())) { @@ -773,22 +774,43 @@ public class TaskLogUpdateExe { throw new BizException("未找到对应的步骤记录"); } + // 设置当前步骤为打回状态 + List actionLogs = new ArrayList<>(); + currentLog.setStatus(TaskLogStatus.REJECTED.getCode()); + addActionLog(actionLogs, currentLog); + + // 设置申请步骤为进行中 + TaskLogE applyFlow = allLogs.stream() + .filter(f -> FIRST_STEP_ID.equals(f.getStepId())) + .findFirst() + .orElseThrow(() -> new BizException("未找到申请步骤配置")); + applyFlow.setStatus(TaskLogStatus.IN_PROGRESS.getCode()); + addActionLog(actionLogs, applyFlow); + + // 更新本次步骤变化 + taskLogRepository.updateBatchById(actionLogs); + + + /* + * 打回后状态锁死 不需要归档数据 + */ + // 1. 归档当前的 task_log 记录(除了申请步骤) - archiveTaskLogs(allLogs); +// archiveTaskLogs(allLogs); // 2. 归档辅助数据(delay、gas、measures) - archiveSupplementaryInfo(cmd.getWorkId()); +// archiveSupplementaryInfo(cmd.getWorkId()); // 3. 删除除申请步骤外的所有 task_log - deleteTaskLogsExceptFirst(cmd.getWorkId()); +// deleteTaskLogsExceptFirst(cmd.getWorkId()); // 4. 删除辅助数据(delay、gas、measures) - deleteSupplementaryInfo(cmd.getWorkId()); - +// deleteSupplementaryInfo(cmd.getWorkId()); +// // 5. 新建一条新的申请记录,status=0(暂存状态) - createNewApplyTaskLog(cmd.getWorkId()); +// createNewApplyTaskLog(cmd.getWorkId()); - // 6. 更新主表状态为暂存,添加打回信息 + // 6. 更新主表状态为打回,添加打回信息 updateMainInfoForReject(cmd.getWorkId(), currentLog, cmd.getOthers()); // 7. 发送待办完成事件 diff --git a/web-app/src/main/java/com/zcloud/eightwork/service/TaskLogServiceImpl.java b/web-app/src/main/java/com/zcloud/eightwork/service/TaskLogServiceImpl.java index 802cb9a..2622a46 100644 --- a/web-app/src/main/java/com/zcloud/eightwork/service/TaskLogServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/eightwork/service/TaskLogServiceImpl.java @@ -62,7 +62,7 @@ public class TaskLogServiceImpl implements TaskLogServiceI { TaskLogNextCmd taskLogNextCmd = new TaskLogNextCmd(commitTaskLogDO.getId(), commitTaskLogDO.getWorkId(), commitTaskLogDO.getStepId(), - TaskLogStatus.APPROVED.getCode(),null,null,null,cmd.getOthers(),null,null,null); + TaskLogStatus.APPROVED.getCode(),cmd.getOthers()); taskLogUpdateExe.nextStep(taskLogNextCmd); return SingleResponse.buildSuccess(); diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/TaskFlowAddCmd.java b/web-client/src/main/java/com/zcloud/eightwork/dto/TaskFlowAddCmd.java index d0019e1..c9b9ef2 100644 --- a/web-client/src/main/java/com/zcloud/eightwork/dto/TaskFlowAddCmd.java +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/TaskFlowAddCmd.java @@ -81,6 +81,8 @@ public class TaskFlowAddCmd extends Command { @NotNull(message = "是否可以添加安全措施") private Integer measuresStepFlag; + @ApiModelProperty(value = "是否可以打回1是2否", name = "rejectedStepFlag") + private Integer rejectedStepFlag; @ApiModelProperty(value = "0无分支1有分支开始2有分支结束", name = "branchFlag", required = true) diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/TaskLogNextCmd.java b/web-client/src/main/java/com/zcloud/eightwork/dto/TaskLogNextCmd.java index b0ed445..aa7314e 100644 --- a/web-client/src/main/java/com/zcloud/eightwork/dto/TaskLogNextCmd.java +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/TaskLogNextCmd.java @@ -53,5 +53,15 @@ public class TaskLogNextCmd extends Command { //附件 @ApiModelProperty(value = "附件") private String filePath; + @ApiModelProperty(value = "备注") + private String remarks; + + public TaskLogNextCmd(Long id, String workId, Long stepId, Integer status, JSONObject others) { + this.id = id; + this.workId = workId; + this.stepId = stepId; + this.status = status; + this.others = others; + } } diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/TaskFlowCO.java b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/TaskFlowCO.java index 3961682..ce2a655 100644 --- a/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/TaskFlowCO.java +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/TaskFlowCO.java @@ -59,6 +59,9 @@ public class TaskFlowCO extends ClientObject { private Integer selectSignStep; @ApiModelProperty(value = "是否可以添加安全措施") private Integer measuresStepFlag; + //是否可以打回1是2否 + @ApiModelProperty(value = "是否可以打回1是2否") + private Integer rejectedStepFlag; //0无分支1有分支开始2有分支结束 @ApiModelProperty(value = "0无分支1有分支开始2有分支结束") private Integer branchFlag; diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/TaskLogCO.java b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/TaskLogCO.java index 6589f5c..88238fb 100644 --- a/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/TaskLogCO.java +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/clientobject/TaskLogCO.java @@ -100,6 +100,9 @@ public class TaskLogCO extends ClientObject { private Integer selectSignStep; @ApiModelProperty(value = "是否可以添加安全措施") private Integer measuresStepFlag; + //是否可以打回1是2否 + @ApiModelProperty(value = "是否可以打回1是2否") + private Integer rejectedStepFlag; //0无分支1有分支开始2有分支结束 @ApiModelProperty(value = "0无分支1有分支开始2有分支结束") private Integer branchFlag; diff --git a/web-domain/src/main/java/com/zcloud/eightwork/domain/model/TaskFlowE.java b/web-domain/src/main/java/com/zcloud/eightwork/domain/model/TaskFlowE.java index 3971a7d..a0ab4f0 100644 --- a/web-domain/src/main/java/com/zcloud/eightwork/domain/model/TaskFlowE.java +++ b/web-domain/src/main/java/com/zcloud/eightwork/domain/model/TaskFlowE.java @@ -46,6 +46,8 @@ public class TaskFlowE extends BaseE { private Integer selectSignStep; //是否可以添加安全措施 private Integer measuresStepFlag; + //是否可以打回1是2否 + private Integer rejectedStepFlag; //0无分支1有分支开始2有分支结束 private Integer branchFlag; //branch_flag == 1 分支节点ID diff --git a/web-domain/src/main/java/com/zcloud/eightwork/domain/model/TaskLogE.java b/web-domain/src/main/java/com/zcloud/eightwork/domain/model/TaskLogE.java index 9bec09e..9f121b8 100644 --- a/web-domain/src/main/java/com/zcloud/eightwork/domain/model/TaskLogE.java +++ b/web-domain/src/main/java/com/zcloud/eightwork/domain/model/TaskLogE.java @@ -69,6 +69,8 @@ public class TaskLogE extends BaseE { private Integer selectSignStep; //是否可以添加安全措施 private Integer measuresStepFlag; + //是否可以打回1是2否 + private Integer rejectedStepFlag; //0无分支1有分支开始2有分支结束 private Integer branchFlag; //branch_flag == 1 分支节点ID @@ -123,6 +125,7 @@ public class TaskLogE extends BaseE { this.specialStepCode = log.getSpecialStepCode(); this.selectSignStep = log.getSelectSignStep(); this.measuresStepFlag = log.getMeasuresStepFlag(); + this.rejectedStepFlag = log.getRejectedStepFlag(); this.branchFlag = log.getBranchFlag(); this.branchStep = log.getBranchStep(); this.branchMergeStep = log.getBranchMergeStep(); diff --git a/web-domain/src/main/java/com/zcloud/eightwork/domain/model/enums/WorkCodeEnum.java b/web-domain/src/main/java/com/zcloud/eightwork/domain/model/enums/WorkCodeEnum.java index 4a75213..3e3839c 100644 --- a/web-domain/src/main/java/com/zcloud/eightwork/domain/model/enums/WorkCodeEnum.java +++ b/web-domain/src/main/java/com/zcloud/eightwork/domain/model/enums/WorkCodeEnum.java @@ -17,7 +17,7 @@ public enum WorkCodeEnum { BLINDBOARD_WORK("blindboard_work", "MBCD","盲板抽堵作业"), BREAKGROUND_WORK("breakground_work", "DT","动土作业"), CONFINEDSPACE_WORK("confinedspace_work", "SXKJ","受限空间作业"), - CUTROAD_WORK("cutroad_work", "DL","短路作业"), + CUTROAD_WORK("cutroad_work", "DL","断路路作业"), ELECTRICITY_WORK("electricity_work", "LSYD","临时用电作业"), HIGH_WORK("high_work", "GC","高处作业"), HOISTING("hoisting_work", "DZ","吊装作业"); diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/TaskFlowDO.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/TaskFlowDO.java index 266f839..9c4552c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/TaskFlowDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/TaskFlowDO.java @@ -62,6 +62,9 @@ public class TaskFlowDO extends BaseDO { private Integer selectSignStep; @ApiModelProperty(value = "是否可以添加安全措施") private Integer measuresStepFlag; + //是否可以打回1是2否 + @ApiModelProperty(value = "是否可以打回1是2否") + private Integer rejectedStepFlag; //0无分支1有分支开始2有分支结束 @ApiModelProperty(value = "0无分支1有分支开始2有分支结束") private Integer branchFlag; diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/TaskLogDO.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/TaskLogDO.java index 08cbda5..d5c80ec 100644 --- a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/TaskLogDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/dataobject/TaskLogDO.java @@ -98,6 +98,9 @@ public class TaskLogDO extends BaseDO { private Integer selectSignStep; @ApiModelProperty(value = "是否可以添加安全措施") private Integer measuresStepFlag; + //是否可以打回1是2否 + @ApiModelProperty(value = "是否可以打回1是2否") + private Integer rejectedStepFlag; //0无分支1有分支开始2有分支结束 @ApiModelProperty(value = "0无分支1有分支开始2有分支结束") private Integer branchFlag; diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/TaskLogMapper.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/TaskLogMapper.java index 795b734..69ce332 100644 --- a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/TaskLogMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/TaskLogMapper.java @@ -1,12 +1,16 @@ package com.zcloud.eightwork.persistence.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zcloud.eightwork.domain.model.TodoCountE; +import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO; import com.zcloud.eightwork.persistence.dataobject.TaskLogDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * web-infrastructure @@ -17,6 +21,7 @@ import java.util.List; @Mapper public interface TaskLogMapper extends BaseMapper { + IPage listPage(Page> page, @Param("params") Map parmas, String menuPerms); List getTodoCount(@Param("orgId") Long orgId,@Param("userId") Long userId); List getTodoCountForWork(@Param("orgId") Long orgId,@Param("userId") Long userId,@Param("workType") String workType); diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/TaskLogRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/TaskLogRepositoryImpl.java index 0ddf6b4..d233fd1 100644 --- a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/TaskLogRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/TaskLogRepositoryImpl.java @@ -4,9 +4,12 @@ import com.alibaba.cola.dto.PageResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.zcloud.eightwork.domain.model.TodoCountE; +import com.zcloud.eightwork.domain.model.enums.MenuEnum; +import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO; import com.zcloud.eightwork.persistence.dataobject.TaskLogDO; import com.zcloud.eightwork.persistence.mapper.TaskLogMapper; import com.zcloud.eightwork.persistence.repository.TaskLogRepository; @@ -31,14 +34,10 @@ public class TaskLogRepositoryImpl extends BaseRepositoryImpl listPage(Map params) { - IPage iPage = new Query().getPage(params); - QueryWrapper queryWrapper = new QueryWrapper<>(); - PageQueryHelper.createPageQueryWrapper(queryWrapper, params); - queryWrapper.and(wrapper -> wrapper.eq("act_user", params.get("userId")) - .or(wrapper1 -> wrapper1.isNull("act_user").eq("act_user_department", params.get("departmentId")))); - queryWrapper.orderByDesc("create_time"); - IPage result = taskLogMapper.selectPage(iPage, queryWrapper); - return PageHelper.pageToResponse(result, result.getRecords()); + Page> page = new Page<>(Integer.parseInt(params.get("pageIndex").toString()),Integer.parseInt(params.get("pageSize").toString())); + String menuPerms = ""; + IPage iPage = taskLogMapper.listPage(page, params,menuPerms); + return PageHelper.pageToResponse(iPage, iPage.getRecords()); } @Override diff --git a/web-infrastructure/src/main/resources/mapper/TaskLogMapper.xml b/web-infrastructure/src/main/resources/mapper/TaskLogMapper.xml index d3653fc..30f790c 100644 --- a/web-infrastructure/src/main/resources/mapper/TaskLogMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/TaskLogMapper.xml @@ -3,6 +3,25 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + @@ -25,6 +46,7 @@ where task_log.status = 0 and task_log.work_type = #{workType} and eightwork_info.status != 0 + and eightwork_info.delete_enum = 'FALSE' and (task_log.act_user = #{userId} or (task_log.act_user_department = #{orgId} and task_log.act_user is null))