فهرست منبع

feat(pressure2): 实现任务单发放状态统计功能

- 在BoilerTaskOrderAppApiController中启用手机号过滤功能
- 添加PipeTaskOrderItemDO实体类依赖注入支持
- 添加BoilerTaskOrderItemMapper和PipeTaskOrderItemMapper资源注入
- 实现锅炉任务单发放状态统计逻辑,包括全部未发放、全部发放、部分发放三种状态
- 实现管道任务单发放状态统计逻辑,支持发放进度跟踪
- 添加详细的日志记录用于发放状态监控
- 修复任务状态枚举引用路径问题
xuzhancheng 3 روز پیش
والد
کامیت
254f539dd1

+ 5 - 5
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/app/taskorder/BoilerTaskOrderAppApiController.java

@@ -135,12 +135,12 @@ public class BoilerTaskOrderAppApiController {
     @PermitAll
     public CommonResult<PageResult<TaskOrderNonTaxRecordRespVO>> getNonTaxRecordPage(@Valid TaskOrderNonTaxRecordPageReqVO pageReqVO) {
         // 获取登录用户的手机号作为过滤条件
-//        String mobile = getLoginUserMobile();
-//        if (StringUtils.isEmpty(mobile)) {
-//            return success(new PageResult<>());
-//        }
+        String mobile = getLoginUserMobile();
+        if (StringUtils.isEmpty(mobile)) {
+            return success(new PageResult<>());
+        }
 //        // 设置联系电话过滤条件
-//        pageReqVO.setContactPhone(mobile);
+        pageReqVO.setContactPhone(mobile);
         // 审核通过的数据
         pageReqVO.setStatus(List.of(200));
         PageResult<TaskOrderNonTaxRecordRespVO> pageResult = taskOrderNonTaxRecordService.getTaskOrderNonTaxRecordPageApp(pageReqVO);

+ 60 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pushtaskorder/PushTaskOrderServiceImpl.java

@@ -81,6 +81,7 @@ import cn.start.tz.module.pressure2.dal.dataobject.equipboilerscheduling.EquipBo
 import cn.start.tz.module.pressure2.dal.dataobject.equipboilerschedulingitem.EquipBoilerSchedulingCheckDO;
 import cn.start.tz.module.pressure2.dal.dataobject.inspectionnature.InspectionNatureTemplateDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
 import cn.start.tz.module.pressure2.dal.dataobject.reporttemplate.ReportTemplateDO;
 import cn.start.tz.module.pressure2.dal.mysql.acceptorder.AcceptOrderMapper;
@@ -112,6 +113,8 @@ import cn.start.tz.module.pressure2.dal.mysql.equipboiler.EquipBoilerMapper;
 import cn.start.tz.module.pressure2.dal.mysql.equipboilercheckhistory.EquipBoilerCheckHistoryMapper;
 import cn.start.tz.module.pressure2.dal.mysql.equipboilerscheduling.EquipBoilerSchedulingRecordMapper;
 import cn.start.tz.module.pressure2.dal.mysql.equipboilerschedulingitem.EquipBoilerSchedulingCheckMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderinput.PipeTaskOrderInputMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderuser.PipeTaskOrderUserMapper;
 import cn.start.tz.module.pressure2.dal.mysql.reporttemplate.ReportTemplateMapper;
 import cn.start.tz.module.pressure2.enums.AcceptOrderStatusEnum;
@@ -228,6 +231,11 @@ public class PushTaskOrderServiceImpl implements PushTaskOrderService {
     @Resource
     private DeptApi deptApi;
 
+    @Resource
+    private BoilerTaskOrderItemMapper boilerTaskOrderItemMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
 
     @Resource
     private AppointmentConfirmOrderMapper appointmentConfirmOrderMapper;
@@ -262,11 +270,35 @@ public class PushTaskOrderServiceImpl implements PushTaskOrderService {
         reqDTO.setOrderFlag("1");// 服务单
         reqDTO.setChangeStatus("0");
         // reqDTO.setReportFinishFlag("2");
-
-        if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == cn.start.tz.module.pressure.enums.TaskOrderStatusEnum.REPORT_FINISH.getStatus().intValue()) {
+        if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == TaskOrderStatusEnum.REPORT_FINISH.getStatus().intValue()) {
             reqDTO.setReportFinishFlag("2");
+            // 全部未发放
+            reqDTO.setReportFlag("0");
+
+            // 统计发放数量
+            List<BoilerTaskOrderItemDO> taskOrderItemDOS = boilerTaskOrderItemMapper.selectList(BoilerTaskOrderItemDO::getOrderId, taskOrderDO.getId());
+            if (CollUtil.isNotEmpty(taskOrderItemDOS)) {
+                int itemSize = taskOrderItemDOS.size();
+                Integer i = 1;
+                int pushPlatform = taskOrderItemDOS.stream().filter(item -> i.equals(item.getIsPushPlatform())).toList().size();
+
+                log.info("taskOrder {} ,itemSize {} , pushPlatform {}", taskOrderDO.getOrderNo(), itemSize, pushPlatform);
+                if (itemSize == pushPlatform) {
+                    // 全部发放
+                    log.info("taskOrder 全部发放 {}", taskOrderDO.getOrderNo());
+                    reqDTO.setReportFlag("2");
+                } else if (pushPlatform > 0) {
+                    // 部分发放
+                    reqDTO.setReportFlag("1");
+                    log.info("taskOrder 部分发放 {}", taskOrderDO.getOrderNo());
+                }
+            }
         }
 
+//        if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == cn.start.tz.module.pressure.enums.TaskOrderStatusEnum.REPORT_FINISH.getStatus().intValue()) {
+//            reqDTO.setReportFinishFlag("2");
+//        }
+
         if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == TaskOrderStatusEnum.CANCEL.getStatus().intValue()) {
             // 任务单状态,0 正常 1被替换 2作废
             reqDTO.setChangeStatus("2");
@@ -423,11 +455,35 @@ public class PushTaskOrderServiceImpl implements PushTaskOrderService {
         reqDTO.setOrderFlag("1");// 服务单
         reqDTO.setChangeStatus("0");
         // reqDTO.setReportFinishFlag("2");
-
-        if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == cn.start.tz.module.pressure.enums.TaskOrderStatusEnum.REPORT_FINISH.getStatus().intValue()) {
+        if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == TaskOrderStatusEnum.REPORT_FINISH.getStatus().intValue()) {
             reqDTO.setReportFinishFlag("2");
+            // 全部未发放
+            reqDTO.setReportFlag("0");
+
+            // 统计发放数量
+            List<PipeTaskOrderItemDO> taskOrderItemDOS = pipeTaskOrderItemMapper.selectList(PipeTaskOrderItemDO::getOrderId, taskOrderDO.getId());
+            if (CollUtil.isNotEmpty(taskOrderItemDOS)) {
+                int itemSize = taskOrderItemDOS.size();
+                Integer i = 1;
+                int pushPlatform = taskOrderItemDOS.stream().filter(item -> i.equals(item.getIsPushPlatform())).toList().size();
+
+                log.info("taskOrder {} ,itemSize {} , pushPlatform {}", taskOrderDO.getOrderNo(), itemSize, pushPlatform);
+                if (itemSize == pushPlatform) {
+                    // 全部发放
+                    log.info("taskOrder 全部发放 {}", taskOrderDO.getOrderNo());
+                    reqDTO.setReportFlag("2");
+                } else if (pushPlatform > 0) {
+                    // 部分发放
+                    reqDTO.setReportFlag("1");
+                    log.info("taskOrder 部分发放 {}", taskOrderDO.getOrderNo());
+                }
+            }
         }
 
+//        if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == cn.start.tz.module.pressure.enums.TaskOrderStatusEnum.REPORT_FINISH.getStatus().intValue()) {
+//            reqDTO.setReportFinishFlag("2");
+//        }
+
         if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == TaskOrderStatusEnum.CANCEL.getStatus().intValue()) {
             // 任务单状态,0 正常 1被替换 2作废
             reqDTO.setChangeStatus("2");