Merge remote-tracking branch 'origin/master'

master
zhaokai 2026-04-13 09:36:15 +08:00
commit 18febcd7af
8 changed files with 110 additions and 28 deletions

View File

@ -1,7 +1,6 @@
package com.zcloud.eightwork.command; package com.zcloud.eightwork.command;
import com.alibaba.cola.exception.BizException; 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.gateway.TaskLogGateway;
import com.zcloud.eightwork.domain.model.TaskLogE; import com.zcloud.eightwork.domain.model.TaskLogE;
import com.zcloud.eightwork.domain.model.enums.TaskLogStatus; 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.EightworkInfoDO;
import com.zcloud.eightwork.persistence.dataobject.TaskLogDO; import com.zcloud.eightwork.persistence.dataobject.TaskLogDO;
import com.zcloud.eightwork.persistence.repository.EightworkInfoRepository; import com.zcloud.eightwork.persistence.repository.EightworkInfoRepository;
import com.zcloud.eightwork.persistence.repository.MeasuresLogsRepository;
import com.zcloud.eightwork.persistence.repository.TaskLogRepository; 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.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -39,7 +39,7 @@ public class EightworkInfoWithdrawExe {
private final EightworkInfoRepository eightworkInfoRepository; private final EightworkInfoRepository eightworkInfoRepository;
private final TaskLogRepository taskLogRepository; private final TaskLogRepository taskLogRepository;
private final TaskLogGateway taskLogGateway; private final TaskLogGateway taskLogGateway;
private final MeasuresLogsRepository measuresLogsRepository; private final TodoListEventPusherUtil todoListEventPusherUtil;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void execute(EightworkInfoWithdrawCmd cmd) { public void execute(EightworkInfoWithdrawCmd cmd) {
@ -77,7 +77,7 @@ public class EightworkInfoWithdrawExe {
// 5. 再次检查状态(防止在检查期间状态被修改) // 5. 再次检查状态(防止在检查期间状态被修改)
EightworkInfoDO latestInfo = eightworkInfoRepository.getById(cmd.getId()); EightworkInfoDO latestInfo = eightworkInfoRepository.getById(cmd.getId());
if (!latestInfo.getStatus().equals(currentStatus) || if (!latestInfo.getStatus().equals(currentStatus) ||
!latestInfo.getLockFlag().equals(currentLockFlag)) { !latestInfo.getLockFlag().equals(currentLockFlag)) {
log.warn("撤回失败:作业状态已被修改 originalStatus={}, originalLockFlag={}, currentStatus={}, currentLockFlag={}", log.warn("撤回失败:作业状态已被修改 originalStatus={}, originalLockFlag={}, currentStatus={}, currentLockFlag={}",
currentStatus, currentLockFlag, latestInfo.getStatus(), latestInfo.getLockFlag()); currentStatus, currentLockFlag, latestInfo.getStatus(), latestInfo.getLockFlag());
throw new BizException("操作失败:作业状态已被修改,请刷新后重试"); throw new BizException("操作失败:作业状态已被修改,请刷新后重试");
@ -113,6 +113,9 @@ public class EightworkInfoWithdrawExe {
log.info("申请步骤状态已改为未开始"); log.info("申请步骤状态已改为未开始");
} }
// 6.4 删除待办
deleteTodoEvent(cmd.getId());
log.info("作业撤回成功: workId={}, id={}", workId, cmd.getId()); log.info("作业撤回成功: workId={}, id={}", workId, cmd.getId());
} }
@ -136,4 +139,18 @@ public class EightworkInfoWithdrawExe {
} }
return true; 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);
}
}
} }

View File

@ -34,6 +34,7 @@ import com.zcloud.eightwork.persistence.repository.*;
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil; import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent; import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent;
import com.zcloud.gbscommon.todolistmq.event.TodoListCompleteEvent; 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.Tools;
import com.zcloud.gbscommon.utils.UuidUtil; import com.zcloud.gbscommon.utils.UuidUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -272,7 +273,7 @@ public class TaskLogUpdateExe {
// 非申请步骤完成时,更新主表 lockFlag 为锁定状态(不可撤回) // 非申请步骤完成时,更新主表 lockFlag 为锁定状态(不可撤回)
if (!APPLY_STEP_ID.equals(currentLog.getStepId()) && if (!APPLY_STEP_ID.equals(currentLog.getStepId()) &&
TaskLogStatus.APPROVED.equalsCode(cmd.getStatus())) { TaskLogStatus.APPROVED.equalsCode(cmd.getStatus())) {
updateLockFlagToLocked(cmd.getWorkId()); updateLockFlagToLocked(cmd.getWorkId());
} }
@ -736,6 +737,9 @@ public class TaskLogUpdateExe {
FORCE_TERMINATE_STATUS FORCE_TERMINATE_STATUS
); );
// 删除待办
deleteTodoEvent(getWorkId(cmd.getWorkId()));
log.info("工作流已强制终止: workId={}, skippedSteps={}", cmd.getWorkId(), actionLogs.size() - 1); 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 * ID
*/ */

View File

@ -25,6 +25,7 @@ public class EightworkInfoPageQry extends PageQuery {
* - `le`: * - `le`:
* - `ne`: SQL!= * - `ne`: SQL!=
*/ */
private String menuPath;
private String eqWorkType; private String eqWorkType;
private List<Long> inCorpInfoId; private List<Long> inCorpInfoId;
private String eqCheckNo; private String eqCheckNo;

View File

@ -14,15 +14,36 @@ import java.util.stream.Collectors;
@Getter @Getter
public enum MenuEnum { public enum MenuEnum {
HOT_WORK("/eightwork/container/enterprise/hotWork/homework/list", "hotwork-list"), // ==================== 企业端 ====================
BLINDBOARD_WORK("/eightwork/container/enterprise/blindBoardWork/homework/list", "blindboardwork-list"), QY_HOT_WORK("/eightwork/container/enterprise/hotWork/homework/list", "hotwork-qy-list"),
BREAKGROUND_WORK("/eightwork/container/enterprise/digWork/homework/list", "digwork-list"), QY_BLINDBOARD_WORK("/eightwork/container/enterprise/blindBoardWork/homework/list", "blindboardwork-qy-list"),
CONFINEDSPACE("/eightwork/container/enterprise/confinedSpaceWork/ledger/list", "confinedspacework-ledger-list"), QY_BREAKGROUND_WORK("/eightwork/container/enterprise/digWork/homework/list", "digwork-qy-list"),
CONFINEDSPACE_WORK("/eightwork/container/enterprise/confinedSpaceWork/homework/list", "confinedspacework-list"), QY_CONFINEDSPACE("/eightwork/container/enterprise/confinedSpaceWork/ledger/list", "confinedspacework-ledger-qy-list"),
CUTROAD_WORK("/eightwork/container/enterprise/cutWork/homework/list", "cutwork-list"), QY_CONFINEDSPACE_WORK("/eightwork/container/enterprise/confinedSpaceWork/homework/list", "confinedspacework-qy-list"),
ELECTRICITY_WORK("/eightwork/container/enterprise/electricWork/homework/list", "electricwork-list"), QY_CUTROAD_WORK("/eightwork/container/enterprise/cutWork/homework/list", "cutwork-qy-list"),
HIGH_WORK("/eightwork/container/enterprise/highPlaceWork/homework/list", "highplacework-list"), QY_ELECTRICITY_WORK("/eightwork/container/enterprise/electricWork/homework/list", "electricwork-qy-list"),
HOISTING("/eightwork/container/enterprise/liftingWork/homework/list", "liftingwork-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; private final String path;

View File

@ -1,9 +1,16 @@
package com.zcloud.eightwork.persistence.mapper; package com.zcloud.eightwork.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.ConfinedSpaceDO;
import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.Map;
/** /**
* web-infrastructure * web-infrastructure
* *
@ -11,7 +18,11 @@ import org.apache.ibatis.annotations.Mapper;
* @Date 2025-11-27 10:26:34 * @Date 2025-11-27 10:26:34
*/ */
@Mapper @Mapper
@DataScopes({
@DataScope(method = "listPage", menuPerms = ""),
})
public interface ConfinedSpaceMapper extends BaseMapper<ConfinedSpaceDO> { public interface ConfinedSpaceMapper extends BaseMapper<ConfinedSpaceDO> {
IPage<EightworkInfoDO> listPage(Page<Map<String, Object>> page, Map<String, Object> params, String menuPerms);
} }

View File

@ -3,9 +3,12 @@ package com.zcloud.eightwork.persistence.repository.impl;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; 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.ConfinedSpaceDO;
import com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO;
import com.zcloud.eightwork.persistence.mapper.ConfinedSpaceMapper; import com.zcloud.eightwork.persistence.mapper.ConfinedSpaceMapper;
import com.zcloud.eightwork.persistence.repository.ConfinedSpaceRepository; import com.zcloud.eightwork.persistence.repository.ConfinedSpaceRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
@ -28,12 +31,9 @@ public class ConfinedSpaceRepositoryImpl extends BaseRepositoryImpl<ConfinedSpac
@Override @Override
public PageResponse<ConfinedSpaceDO> listPage(Map<String, Object> params) { public PageResponse<ConfinedSpaceDO> listPage(Map<String, Object> params) {
IPage<ConfinedSpaceDO> iPage = new Query<ConfinedSpaceDO>().getPage(params); Page<Map<String,Object>> page = new Page<>(Integer.parseInt(params.get("pageIndex").toString()),Integer.parseInt(params.get("pageSize").toString()));
QueryWrapper<ConfinedSpaceDO> queryWrapper = new QueryWrapper<>(); IPage<EightworkInfoDO> iPage = confinedSpaceMapper.listPage(page, params,"confinedspacework-ledger-qy-list");
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); return PageHelper.pageToResponse(iPage, iPage.getRecords());
queryWrapper.orderByDesc("create_time");
IPage<ConfinedSpaceDO> result = confinedSpaceMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
} }
} }

View File

@ -4,5 +4,28 @@
<mapper namespace="com.zcloud.eightwork.persistence.mapper.ConfinedSpaceMapper"> <mapper namespace="com.zcloud.eightwork.persistence.mapper.ConfinedSpaceMapper">
<select id="listPage" resultType="com.zcloud.eightwork.persistence.dataobject.EightworkInfoDO">
select *
from
confined_space s
where
s.delete_enum = 'FALSE'
<if test="eqCorpinfoId != null">
and s.corpinfo_id = #{eqCorpinfoId}
</if>
<if test="eqType != null and eqType != ''">
and s.type = #{eqType}
</if>
<if test="eqRiskLevel != null and eqRiskLevel != ''">
and s.risk_level = #{eqRiskLevel}
</if>
<if test="likeName != null and likeName != ''">
and s.name like concat('%',#{likeName},'%')
</if>
<if test="likeCode != null and likeCode != ''">
and s.code like concat('%',#{likeCode},'%')
</if>
order by s.create_time desc
</select>
</mapper> </mapper>

View File

@ -32,13 +32,6 @@
<if test="params.eqProjectId != null and params.eqProjectId != ''"> <if test="params.eqProjectId != null and params.eqProjectId != ''">
and t.project_id = #{params.eqProjectId} and t.project_id = #{params.eqProjectId}
</if> </if>
<if test="params.eqCreateId != null">
and exists (select 1
from task_log log
where log.work_id = t.work_id
and log.act_user = #{params.eqCreateId})
</if>
<if test="params.eqWorkDepartmentId != null"> <if test="params.eqWorkDepartmentId != null">
and exists (select 1 and exists (select 1
from task_log log from task_log log
@ -117,4 +110,3 @@
</select> </select>
</mapper> </mapper>