diff --git a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/controller/HotVehicleThreeInspectController.java b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/controller/HotVehicleThreeInspectController.java index 3080485..d7ce771 100644 --- a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/controller/HotVehicleThreeInspectController.java +++ b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/controller/HotVehicleThreeInspectController.java @@ -5,6 +5,7 @@ import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeIn import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectProcessVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeInspectVehicleQueryBo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectReceivedVehicleVo; +import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectSummaryVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectUnreceivedVehicleVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectVo; import com.hotwj.platform.config.vehicleThreeInspect.service.IHotVehicleThreeInspectPrintService; @@ -213,4 +214,13 @@ public class HotVehicleThreeInspectController extends BaseController { @PathVariable Long[] ids) { return toAjax(hotVehicleThreeInspectService.deleteWithValidByIds(List.of(ids), true)); } + + /** + * 查询车辆三检聚合列表 + */ + @GetMapping("/listSummary") + @Operation(summary = "分页查询车辆三检聚合列表") + public TableDataInfo listSummary(HotVehicleThreeInspectBo bo, PageQuery pageQuery) { + return hotVehicleThreeInspectService.querySummaryPageList(bo, pageQuery); + } } diff --git a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/domain/vo/HotVehicleThreeInspectSummaryVo.java b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/domain/vo/HotVehicleThreeInspectSummaryVo.java new file mode 100644 index 0000000..0253850 --- /dev/null +++ b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/domain/vo/HotVehicleThreeInspectSummaryVo.java @@ -0,0 +1,100 @@ +package com.hotwj.platform.config.vehicleThreeInspect.domain.vo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 车辆三检聚合列表视图对象 + * + * @author shihongwei + * @date 2026-06-01 + */ +@Data +public class HotVehicleThreeInspectSummaryVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 三检流程ID + */ + private Long inspectId; + + /** + * 公司ID + */ + private Long companyId; + + /** + * 车辆ID + */ + private Long vehicleId; + + /** + * 车牌号 + */ + private String plateNumber; + + /** + * 驾驶员ID + */ + private String driverId; + + /** + * 驾驶员姓名 + */ + private String driverName; + + /** + * 开始时间 + */ + private Date startTime; + + /** + * 结束时间 + */ + private Date endTime; + + /** + * 检查时间展示 + */ + private String inspectTime; + + /** + * 完成状态 + */ + private String completeStatus; + + /** + * 是否已完成 + */ + private Boolean completed; + + /** + * 审核完成状态 + */ + private String auditCompleteStatus; + + /** + * 是否完成审核 + */ + private Boolean auditCompleted; + + /** + * 出车检查 + */ + private HotVehicleThreeInspectVo outCheck; + + /** + * 行车检查 + */ + private HotVehicleThreeInspectVo drivingCheck; + + /** + * 收车检查 + */ + private HotVehicleThreeInspectVo backCheck; +} diff --git a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/mapper/HotVehicleThreeInspectMapper.java b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/mapper/HotVehicleThreeInspectMapper.java index 752cccc..e37df8c 100644 --- a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/mapper/HotVehicleThreeInspectMapper.java +++ b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/mapper/HotVehicleThreeInspectMapper.java @@ -6,6 +6,7 @@ import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeIn import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectProcessVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectPrintVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectReceivedVehicleVo; +import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectSummaryVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectUnreceivedVehicleVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectVo; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -44,6 +45,26 @@ public interface HotVehicleThreeInspectMapper extends BaseMapperPlus querySummaryPageList( + Page page, + @Param("bo") HotVehicleThreeInspectBo bo + ); + + /** + * 按流程ID集合查询三检明细 + * + * @param inspectIds 流程ID集合 + * @return 三检明细列表 + */ + List querySummaryDetailList(@Param("inspectIds") List inspectIds); + /** * 查询所有三检未收车的车辆列表 * diff --git a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/IHotVehicleThreeInspectService.java b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/IHotVehicleThreeInspectService.java index d0a0d95..aa86804 100644 --- a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/IHotVehicleThreeInspectService.java +++ b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/IHotVehicleThreeInspectService.java @@ -5,6 +5,7 @@ import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeIn import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeInspectVehicleQueryBo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectProcessVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectReceivedVehicleVo; +import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectSummaryVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectUnreceivedVehicleVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectVo; import com.hotwj.platform.resourceManagement.vehicleManagement.domain.vo.HotVehicleVo; @@ -72,6 +73,15 @@ public interface IHotVehicleThreeInspectService { */ TableDataInfo queryProcessPageList(HotVehicleThreeInspectBo bo, PageQuery pageQuery); + /** + * 分页查询车辆三检聚合列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 车辆三检聚合分页列表 + */ + TableDataInfo querySummaryPageList(HotVehicleThreeInspectBo bo, PageQuery pageQuery); + /** * 查询符合条件的车辆三检列表 * diff --git a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/impl/HotVehicleThreeInspectServiceImpl.java b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/impl/HotVehicleThreeInspectServiceImpl.java index d033cee..4cefa3b 100644 --- a/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/impl/HotVehicleThreeInspectServiceImpl.java +++ b/src/main/java/com/hotwj/platform/config/vehicleThreeInspect/service/impl/HotVehicleThreeInspectServiceImpl.java @@ -11,6 +11,7 @@ import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeIn import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeInspectVehicleQueryBo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectProcessVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectReceivedVehicleVo; +import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectSummaryVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectUnreceivedVehicleVo; import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectVo; import com.hotwj.platform.config.vehicleThreeInspectConfig.domain.HotVehicleThreeInspectConfig; @@ -197,6 +198,47 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec return TableDataInfo.build(result); } + /** + * 分页查询车辆三检聚合列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 车辆三检聚合分页列表 + */ + @Override + public TableDataInfo querySummaryPageList(HotVehicleThreeInspectBo bo, PageQuery pageQuery) { + Page result = baseMapper.querySummaryPageList(pageQuery.build(), bo); + List summaryList = result.getRecords(); + if (summaryList == null || summaryList.isEmpty()) { + return TableDataInfo.build(result); + } + + List inspectIds = summaryList.stream() + .map(HotVehicleThreeInspectSummaryVo::getInspectId) + .filter(Objects::nonNull) + .toList(); + if (inspectIds.isEmpty()) { + return TableDataInfo.build(result); + } + + List detailList = baseMapper.querySummaryDetailList(inspectIds); + fillTaskId(detailList); + + Map summaryMap = new HashMap<>(summaryList.size()); + for (HotVehicleThreeInspectSummaryVo summary : summaryList) { + summaryMap.put(summary.getInspectId(), summary); + } + + for (HotVehicleThreeInspectVo detail : detailList) { + HotVehicleThreeInspectSummaryVo summary = summaryMap.get(detail.getInspectId()); + if (summary == null) { + continue; + } + attachPhaseDetail(summary, detail); + } + return TableDataInfo.build(result); + } + /** * 查询符合条件的车辆三检列表 * @@ -209,6 +251,39 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec return baseMapper.selectVoList(lqw); } + private void attachPhaseDetail(HotVehicleThreeInspectSummaryVo summary, HotVehicleThreeInspectVo detail) { + if (summary == null || detail == null || detail.getInspectPhase() == null) { + return; + } + if (detail.getInspectPhase() == 1L) { + if (summary.getOutCheck() == null) { + summary.setOutCheck(detail); + } + return; + } + if (detail.getInspectPhase() == 2L) { + if (summary.getDrivingCheck() == null) { + summary.setDrivingCheck(detail); + } + return; + } + if (detail.getInspectPhase() == 3L && summary.getBackCheck() == null) { + summary.setBackCheck(detail); + } + } + + private void fillTaskId(List list) { + if (list == null || list.isEmpty()) { + return; + } + String businessUserId = LoginHelper.getBusinessUserId(); + for (HotVehicleThreeInspectVo vo : list) { + if (StringUtils.isNotBlank(vo.getInstanceId())) { + vo.setTaskId(flowService.getTaskId(vo.getInstanceId(), businessUserId)); + } + } + } + private LambdaQueryWrapper buildQueryWrapper(HotVehicleThreeInspectBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); diff --git a/src/main/resources/mapper/securityManagement/HotVehicleThreeInspectMapper.xml b/src/main/resources/mapper/securityManagement/HotVehicleThreeInspectMapper.xml index 7a0d46d..675d761 100644 --- a/src/main/resources/mapper/securityManagement/HotVehicleThreeInspectMapper.xml +++ b/src/main/resources/mapper/securityManagement/HotVehicleThreeInspectMapper.xml @@ -106,6 +106,96 @@ ORDER BY IFNULL(MAX(t.inspect_time), MAX(t.create_time)) DESC, MAX(t.create_time) DESC + + + +