|
|
@@ -1,12 +1,18 @@
|
|
|
package cn.start.tz.module.pressure2.service.taskorder;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.start.tz.framework.common.pojo.PageResult;
|
|
|
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderPageReqVO;
|
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderRespVO;
|
|
|
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.TaskOrderExportVO;
|
|
|
+import cn.start.tz.module.pressure2.controller.admin.pipetaskorder.vo.PipeTaskOrderPageReqVO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderuser.BoilerTaskOrderUserDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitem.BoilerTaskOrderItemQueryMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderuser.BoilerTaskOrderUserMapper;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemQueryMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderuser.PipeTaskOrderUserMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.taskorder.UnifiedTaskOrderMapper;
|
|
|
import cn.start.tz.module.pressure2.util.DeptDataPermissionUtil;
|
|
|
@@ -41,6 +47,12 @@ public class TaskOrderServiceImpl implements TaskOrderService {
|
|
|
@Resource
|
|
|
private DeptApi deptApi;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private BoilerTaskOrderItemQueryMapper boilerTaskOrderItemQueryMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private PipeTaskOrderItemQueryMapper pipeTaskOrderItemQueryMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public PageResult<BoilerTaskOrderRespVO> getTaskOrderPage(BoilerTaskOrderPageReqVO pageReqVO) {
|
|
|
pageReqVO = DeptDataPermissionUtil.generateDeptDataPermissionReq(pageReqVO);
|
|
|
@@ -86,4 +98,85 @@ public class TaskOrderServiceImpl implements TaskOrderService {
|
|
|
|
|
|
return new PageResult<>(taskOrderRespVOS, total);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<TaskOrderExportVO> getTaskOrderItemExportList(BoilerTaskOrderPageReqVO pageReqVO) {
|
|
|
+ // 1. 检验员筛选 → 转换为任务单ID列表
|
|
|
+ if (CollUtil.isNotEmpty(pageReqVO.getInspectorIds())) {
|
|
|
+ List<String> boilerOrderIds = boilerTaskOrderUserMapper.selectList(
|
|
|
+ new LambdaQueryWrapperX<BoilerTaskOrderUserDO>()
|
|
|
+ .in(BoilerTaskOrderUserDO::getUserId, pageReqVO.getInspectorIds()))
|
|
|
+ .stream().map(BoilerTaskOrderUserDO::getOrderId).distinct().toList();
|
|
|
+ List<String> pipeOrderIds = pipeTaskOrderUserMapper.selectList(
|
|
|
+ new LambdaQueryWrapperX<PipeTaskOrderUserDO>()
|
|
|
+ .in(PipeTaskOrderUserDO::getUserId, pageReqVO.getInspectorIds()))
|
|
|
+ .stream().map(PipeTaskOrderUserDO::getOrderId).distinct().toList();
|
|
|
+ List<String> orderIds = new ArrayList<>(boilerOrderIds);
|
|
|
+ orderIds.addAll(pipeOrderIds);
|
|
|
+ orderIds = orderIds.stream().distinct().collect(Collectors.toList());
|
|
|
+ pageReqVO.setIds(CollUtil.isEmpty(orderIds) ? List.of("-1") : orderIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2. submitId(多选逗号分隔字符串)→ submitUserId(List)转换,并清空 submitId 避免 eq 误匹配
|
|
|
+ if (StrUtil.isNotBlank(pageReqVO.getSubmitId()) && CollUtil.isEmpty(pageReqVO.getSubmitUserId())) {
|
|
|
+ List<String> submitUserIdList = Arrays.stream(pageReqVO.getSubmitId().split(","))
|
|
|
+ .filter(StrUtil::isNotBlank)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (CollUtil.isNotEmpty(submitUserIdList)) {
|
|
|
+ pageReqVO.setSubmitUserId(submitUserIdList);
|
|
|
+ pageReqVO.setSubmitId(null); // 清空,避免 mapper 中 eq(submitId, "a,b") 无法匹配
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 明细全导出
|
|
|
+ pageReqVO.setTaskStatusList(null);
|
|
|
+
|
|
|
+ // 3. 查询锅炉任务单设备数据
|
|
|
+ List<TaskOrderExportVO> boilerList = boilerTaskOrderItemQueryMapper.selectExportList(pageReqVO);
|
|
|
+
|
|
|
+ // 4. 查询管道任务单设备数据(手动拷贝字段,避免 BeanUtils 泛型丢失)
|
|
|
+ PipeTaskOrderPageReqVO pipeReqVO = new PipeTaskOrderPageReqVO();
|
|
|
+ pipeReqVO.setCheckDate(pageReqVO.getCheckDate());
|
|
|
+ pipeReqVO.setDeptId(pageReqVO.getDeptId());
|
|
|
+ pipeReqVO.setTaskStatusList(pageReqVO.getTaskStatusList());
|
|
|
+ pipeReqVO.setCheckType(pageReqVO.getCheckType());
|
|
|
+ pipeReqVO.setUnitName(pageReqVO.getUnitName());
|
|
|
+ pipeReqVO.setEquipCode(pageReqVO.getEquipCode());
|
|
|
+ pipeReqVO.setOrderNo(pageReqVO.getOrderNo());
|
|
|
+ pipeReqVO.setTaskOrderIds(pageReqVO.getTaskOrderIds());
|
|
|
+ pipeReqVO.setReportNo(pageReqVO.getReportNo());
|
|
|
+ pipeReqVO.setContractNo(pageReqVO.getContractNo());
|
|
|
+ pipeReqVO.setSubmitUserId(pageReqVO.getSubmitUserId());
|
|
|
+ pipeReqVO.setSubmitTime(pageReqVO.getSubmitTime());
|
|
|
+ pipeReqVO.setCheckUserIds(pageReqVO.getCheckUserIds());
|
|
|
+ pipeReqVO.setIds(pageReqVO.getIds());
|
|
|
+ pipeReqVO.setSubmitId(pageReqVO.getSubmitId());
|
|
|
+ pipeReqVO.setInspectorIds(pageReqVO.getInspectorIds());
|
|
|
+ List<TaskOrderExportVO> pipeList = pipeTaskOrderItemQueryMapper.selectExportList(pipeReqVO);
|
|
|
+
|
|
|
+ // 5. 合并结果
|
|
|
+ List<TaskOrderExportVO> allList = new ArrayList<>(boilerList);
|
|
|
+ if (CollUtil.isNotEmpty(pipeList)) {
|
|
|
+ allList.addAll(pipeList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 6. 批量查询部门名称
|
|
|
+ if (CollUtil.isNotEmpty(allList)) {
|
|
|
+ List<String> deptIds = allList.stream()
|
|
|
+ .map(TaskOrderExportVO::getDeptId)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (CollUtil.isNotEmpty(deptIds)) {
|
|
|
+ Map<String, DeptRespDTO> deptMap = deptApi.getDeptMap(deptIds);
|
|
|
+ allList.forEach(item -> {
|
|
|
+ if (item.getDeptId() != null && deptMap.containsKey(item.getDeptId())) {
|
|
|
+ item.setDeptName(deptMap.get(item.getDeptId()).getName());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return allList;
|
|
|
+ }
|
|
|
}
|