diff --git a/web-app/src/main/java/com/zcloud/eightwork/command/EightworkInfoWithdrawExe.java b/web-app/src/main/java/com/zcloud/eightwork/command/EightworkInfoWithdrawExe.java index f8f58b2..8629fb7 100644 --- a/web-app/src/main/java/com/zcloud/eightwork/command/EightworkInfoWithdrawExe.java +++ b/web-app/src/main/java/com/zcloud/eightwork/command/EightworkInfoWithdrawExe.java @@ -1,7 +1,6 @@ package com.zcloud.eightwork.command; import com.alibaba.cola.exception.BizException; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zcloud.eightwork.domain.gateway.TaskLogGateway; import com.zcloud.eightwork.domain.model.TaskLogE; import com.zcloud.eightwork.domain.model.enums.TaskLogStatus; @@ -9,8 +8,9 @@ import com.zcloud.eightwork.dto.EightworkInfoWithdrawCmd; import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO; import com.zcloud.eightwork.persistence.dataobject.TaskLogDO; import com.zcloud.eightwork.persistence.repository.EightworkInfoRepository; -import com.zcloud.eightwork.persistence.repository.MeasuresLogsRepository; import com.zcloud.eightwork.persistence.repository.TaskLogRepository; +import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil; +import com.zcloud.gbscommon.todolistmq.event.TodoListDeleteByForeignEvent; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -39,7 +39,7 @@ public class EightworkInfoWithdrawExe { private final EightworkInfoRepository eightworkInfoRepository; private final TaskLogRepository taskLogRepository; private final TaskLogGateway taskLogGateway; - private final MeasuresLogsRepository measuresLogsRepository; + private final TodoListEventPusherUtil todoListEventPusherUtil; @Transactional(rollbackFor = Exception.class) public void execute(EightworkInfoWithdrawCmd cmd) { @@ -77,7 +77,7 @@ public class EightworkInfoWithdrawExe { // 5. 再次检查状态(防止在检查期间状态被修改) EightworkInfoDO latestInfo = eightworkInfoRepository.getById(cmd.getId()); if (!latestInfo.getStatus().equals(currentStatus) || - !latestInfo.getLockFlag().equals(currentLockFlag)) { + !latestInfo.getLockFlag().equals(currentLockFlag)) { log.warn("撤回失败:作业状态已被修改 originalStatus={}, originalLockFlag={}, currentStatus={}, currentLockFlag={}", currentStatus, currentLockFlag, latestInfo.getStatus(), latestInfo.getLockFlag()); throw new BizException("操作失败:作业状态已被修改,请刷新后重试"); @@ -113,6 +113,9 @@ public class EightworkInfoWithdrawExe { log.info("申请步骤状态已改为未开始"); } + // 6.4 删除待办 + deleteTodoEvent(cmd.getId()); + log.info("作业撤回成功: workId={}, id={}", workId, cmd.getId()); } @@ -136,4 +139,18 @@ public class EightworkInfoWithdrawExe { } return true; } + + /** + * 删除待办事件 + */ + private void deleteTodoEvent(Long workId) { + try { + TodoListDeleteByForeignEvent event = new TodoListDeleteByForeignEvent(); + event.setForeignKey(workId); + todoListEventPusherUtil.sendMessageDeleteByForeignBatchEvent(event); + log.info("已删除待办: workId={}", workId); + } catch (Exception e) { + log.error("删除待办事件失败: workId={}", workId, e); + } + } } 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 d401fe5..2a7d771 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 @@ -34,6 +34,7 @@ import com.zcloud.eightwork.persistence.repository.*; import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil; import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent; import com.zcloud.gbscommon.todolistmq.event.TodoListCompleteEvent; +import com.zcloud.gbscommon.todolistmq.event.TodoListDeleteByForeignEvent; import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.utils.UuidUtil; import lombok.AllArgsConstructor; @@ -272,7 +273,7 @@ public class TaskLogUpdateExe { // 非申请步骤完成时,更新主表 lockFlag 为锁定状态(不可撤回) if (!APPLY_STEP_ID.equals(currentLog.getStepId()) && - TaskLogStatus.APPROVED.equalsCode(cmd.getStatus())) { + TaskLogStatus.APPROVED.equalsCode(cmd.getStatus())) { updateLockFlagToLocked(cmd.getWorkId()); } @@ -736,6 +737,9 @@ public class TaskLogUpdateExe { FORCE_TERMINATE_STATUS ); + // 删除待办 + deleteTodoEvent(getWorkId(cmd.getWorkId())); + log.info("工作流已强制终止: workId={}, skippedSteps={}", cmd.getWorkId(), actionLogs.size() - 1); } @@ -1326,6 +1330,19 @@ public class TaskLogUpdateExe { } } + /** + * 删除待办事件 + */ + private void deleteTodoEvent(Long workId) { + try { + TodoListDeleteByForeignEvent event = new TodoListDeleteByForeignEvent(); + event.setForeignKey(workId); + todoListEventPusherUtil.sendMessageDeleteByForeignBatchEvent(event); + } catch (Exception e) { + log.error("删除待办事件失败: workId={}", workId, e); + } + } + /** * 获取作业ID */ diff --git a/web-client/src/main/java/com/zcloud/eightwork/dto/EightworkInfoPageQry.java b/web-client/src/main/java/com/zcloud/eightwork/dto/EightworkInfoPageQry.java index 103cc20..8c71724 100644 --- a/web-client/src/main/java/com/zcloud/eightwork/dto/EightworkInfoPageQry.java +++ b/web-client/src/main/java/com/zcloud/eightwork/dto/EightworkInfoPageQry.java @@ -25,6 +25,7 @@ public class EightworkInfoPageQry extends PageQuery { * - `le`: 小于等于比较查询 * - `ne`: 不等比较查询,对应SQL的!=操作符 */ + private String menuPath; private String eqWorkType; private List inCorpInfoId; private String eqCheckNo; diff --git a/web-domain/src/main/java/com/zcloud/eightwork/domain/model/enums/MenuEnum.java b/web-domain/src/main/java/com/zcloud/eightwork/domain/model/enums/MenuEnum.java index e569727..b630d44 100644 --- a/web-domain/src/main/java/com/zcloud/eightwork/domain/model/enums/MenuEnum.java +++ b/web-domain/src/main/java/com/zcloud/eightwork/domain/model/enums/MenuEnum.java @@ -14,15 +14,36 @@ import java.util.stream.Collectors; @Getter public enum MenuEnum { - HOT_WORK("/eightwork/container/enterprise/hotWork/homework/list", "hotwork-list"), - BLINDBOARD_WORK("/eightwork/container/enterprise/blindBoardWork/homework/list", "blindboardwork-list"), - BREAKGROUND_WORK("/eightwork/container/enterprise/digWork/homework/list", "digwork-list"), - CONFINEDSPACE("/eightwork/container/enterprise/confinedSpaceWork/ledger/list", "confinedspacework-ledger-list"), - CONFINEDSPACE_WORK("/eightwork/container/enterprise/confinedSpaceWork/homework/list", "confinedspacework-list"), - CUTROAD_WORK("/eightwork/container/enterprise/cutWork/homework/list", "cutwork-list"), - ELECTRICITY_WORK("/eightwork/container/enterprise/electricWork/homework/list", "electricwork-list"), - HIGH_WORK("/eightwork/container/enterprise/highPlaceWork/homework/list", "highplacework-list"), - HOISTING("/eightwork/container/enterprise/liftingWork/homework/list", "liftingwork-list"); + // ==================== 企业端 ==================== + QY_HOT_WORK("/eightwork/container/enterprise/hotWork/homework/list", "hotwork-qy-list"), + QY_BLINDBOARD_WORK("/eightwork/container/enterprise/blindBoardWork/homework/list", "blindboardwork-qy-list"), + QY_BREAKGROUND_WORK("/eightwork/container/enterprise/digWork/homework/list", "digwork-qy-list"), + QY_CONFINEDSPACE("/eightwork/container/enterprise/confinedSpaceWork/ledger/list", "confinedspacework-ledger-qy-list"), + QY_CONFINEDSPACE_WORK("/eightwork/container/enterprise/confinedSpaceWork/homework/list", "confinedspacework-qy-list"), + QY_CUTROAD_WORK("/eightwork/container/enterprise/cutWork/homework/list", "cutwork-qy-list"), + QY_ELECTRICITY_WORK("/eightwork/container/enterprise/electricWork/homework/list", "electricwork-qy-list"), + QY_HIGH_WORK("/eightwork/container/enterprise/highPlaceWork/homework/list", "highplacework-qy-list"), + QY_HOISTING("/eightwork/container/enterprise/liftingWork/homework/list", "liftingwork-qy-list"), + + // ==================== 相关方端 ==================== + XGF_HOT_WORK("/eightwork/container/stakeholder/hotWork/homework/list", "hotwork-xgf-list"), + XGF_CONFINEDSPACE_WORK("/eightwork/container/stakeholder/confinedSpaceWork/homework/list", "confinedspacework-xgf-list"), + XGF_HIGH_WORK("/eightwork/container/stakeholder/highPlaceWork/homework/list", "highplacework-xgf-list"), + XGF_HOISTING("/eightwork/container/stakeholder/liftingWork/homework/list", "liftingwork-xgf-list"), + XGF_BLINDBOARD_WORK("/eightwork/container/stakeholder/blindBoardWork/homework/list", "blindboardwork-xgf-list"), + XGF_BREAKGROUND_WORK("/eightwork/container/stakeholder/digWork/homework/list", "digwork-xgf-list"), + XGF_CUTROAD_WORK("/eightwork/container/stakeholder/cutWork/homework/list", "cutwork-xgf-list"), + XGF_ELECTRICITY_WORK("/eightwork/container/stakeholder/electricWork/homework/list", "electricwork-xgf-list"), + + // ==================== 监管端 ==================== + JG_HOT_WORK("/eightwork/container/supervision/hotWork/list", "hotwork-jg-list"), + JG_CONFINEDSPACE_WORK("/eightwork/container/supervision/confinedSpaceWork/list", "confinedspacework-jg-list"), + JG_HIGH_WORK("/eightwork/container/supervision/highPlaceWork/list", "highplacework-jg-list"), + JG_HOISTING("/eightwork/container/supervision/liftingWork/list", "liftingwork-jg-list"), + JG_BLINDBOARD_WORK("/eightwork/container/supervision/blindBoardWork/list", "blindboardwork-jg-list"), + JG_BREAKGROUND_WORK("/eightwork/container/supervision/digWork/list", "digwork-jg-list"), + JG_CUTROAD_WORK("/eightwork/container/supervision/cutWork/list", "cutwork-jg-list"), + JG_ELECTRICITY_WORK("/eightwork/container/supervision/electricWork/list", "electricwork-jg-list"); private final String path; diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/ConfinedSpaceMapper.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/ConfinedSpaceMapper.java index 44e991f..5285141 100644 --- a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/ConfinedSpaceMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/mapper/ConfinedSpaceMapper.java @@ -1,9 +1,16 @@ package com.zcloud.eightwork.persistence.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jjb.saas.framework.datascope.annotation.DataScope; +import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.eightwork.persistence.dataobject.ConfinedSpaceDO; +import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO; import org.apache.ibatis.annotations.Mapper; +import java.util.Map; + /** * web-infrastructure * @@ -11,7 +18,11 @@ import org.apache.ibatis.annotations.Mapper; * @Date 2025-11-27 10:26:34 */ @Mapper +@DataScopes({ + @DataScope(method = "listPage", menuPerms = ""), +}) public interface ConfinedSpaceMapper extends BaseMapper { + IPage listPage(Page> page, Map params, String menuPerms); } diff --git a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/ConfinedSpaceRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/ConfinedSpaceRepositoryImpl.java index 4717452..7711c09 100644 --- a/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/ConfinedSpaceRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/eightwork/persistence/repository/impl/ConfinedSpaceRepositoryImpl.java @@ -3,9 +3,12 @@ package com.zcloud.eightwork.persistence.repository.impl; import com.alibaba.cola.dto.PageResponse; 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.enums.MenuEnum; import com.zcloud.eightwork.persistence.dataobject.ConfinedSpaceDO; +import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO; import com.zcloud.eightwork.persistence.mapper.ConfinedSpaceMapper; import com.zcloud.eightwork.persistence.repository.ConfinedSpaceRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; @@ -28,12 +31,9 @@ public class ConfinedSpaceRepositoryImpl extends BaseRepositoryImpl listPage(Map params) { - IPage iPage = new Query().getPage(params); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); - queryWrapper.orderByDesc("create_time"); - IPage result = confinedSpaceMapper.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())); + IPage iPage = confinedSpaceMapper.listPage(page, params,"confinedspacework-ledger-qy-list"); + return PageHelper.pageToResponse(iPage, iPage.getRecords()); } } diff --git a/web-infrastructure/src/main/resources/mapper/ConfinedSpaceMapper.xml b/web-infrastructure/src/main/resources/mapper/ConfinedSpaceMapper.xml index 6fe9f7c..5bbcbbb 100644 --- a/web-infrastructure/src/main/resources/mapper/ConfinedSpaceMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/ConfinedSpaceMapper.xml @@ -4,5 +4,28 @@ + diff --git a/web-infrastructure/src/main/resources/mapper/EightworkInfoMapper.xml b/web-infrastructure/src/main/resources/mapper/EightworkInfoMapper.xml index bde59fd..0a29df8 100644 --- a/web-infrastructure/src/main/resources/mapper/EightworkInfoMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/EightworkInfoMapper.xml @@ -32,13 +32,6 @@ and t.project_id = #{params.eqProjectId} - - and exists (select 1 - from task_log log - where log.work_id = t.work_id - and log.act_user = #{params.eqCreateId}) - - and exists (select 1 from task_log log @@ -117,4 +110,3 @@ -