feat(ops): 整改工单去重 — 已有活跃工单时升级优先级而非重复创建
- InspectionRectificationServiceImpl 先查区域活跃保洁工单: 排队中(PENDING/QUEUED)→升级一级优先级;已派发/已到达→静默跳过 - OpsOrderMapper 新增 selectActiveCleanOrder,使用枚举替代硬编码终态 - InspectionAsyncHandler 清理归属判定注释代码,替换为 TODO 标记 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,7 @@ import com.viewsh.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.viewsh.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.viewsh.module.ops.controller.admin.workorder.vo.statistics.*;
|
||||
import com.viewsh.module.ops.dal.dataobject.workorder.OpsOrderDO;
|
||||
import com.viewsh.module.ops.enums.WorkOrderStatusEnum;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@@ -74,6 +75,23 @@ public interface OpsOrderMapper extends BaseMapperX<OpsOrderDO> {
|
||||
.last("LIMIT 1"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询区域内保洁类型的活跃工单(非终态,不限触发来源)
|
||||
*
|
||||
* @param areaId 区域ID
|
||||
* @return 最近创建的活跃保洁工单,不存在返回 null
|
||||
*/
|
||||
default OpsOrderDO selectActiveCleanOrder(Long areaId) {
|
||||
return selectOne(new LambdaQueryWrapperX<OpsOrderDO>()
|
||||
.eq(OpsOrderDO::getAreaId, areaId)
|
||||
.eq(OpsOrderDO::getOrderType, "CLEAN")
|
||||
.notIn(OpsOrderDO::getStatus,
|
||||
WorkOrderStatusEnum.COMPLETED.getStatus(),
|
||||
WorkOrderStatusEnum.CANCELLED.getStatus())
|
||||
.orderByDesc(OpsOrderDO::getCreateTime)
|
||||
.last("LIMIT 1"));
|
||||
}
|
||||
|
||||
// ==================== 统计聚合查询 ====================
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user