diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairPageRespVO.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairPageRespVO.java new file mode 100644 index 000000000..435ab2494 --- /dev/null +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairPageRespVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 模具维修记录分页 Response VO(含统计)") +@Data +public class MoldRepairPageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "待完成数量 (status=0)") + private Long pendingCount; + + @Schema(description = "已完成数量 (status=1)") + private Long finishedCount; + + @Schema(description = "待维修数量 (repairStatus=0)") + private Long pendingRepairCount; + + @Schema(description = "通过数量 (repairStatus=1)") + private Long passedCount; + + @Schema(description = "不通过数量 (repairStatus=2)") + private Long failedCount; + +} diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldticketmanagement/vo/MoldTicketManagementPageRespVO.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldticketmanagement/vo/MoldTicketManagementPageRespVO.java new file mode 100644 index 000000000..3b68d5f45 --- /dev/null +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldticketmanagement/vo/MoldTicketManagementPageRespVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.common.controller.admin.moldticketmanagement.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 模具工单管理分页 Response VO(含统计)") +@Data +public class MoldTicketManagementPageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "点检数量 (planType=1)") + private Long inspectCount; + + @Schema(description = "保养数量 (planType=2)") + private Long maintainCount; + + @Schema(description = "未作业数量 (jobStatus=0)") + private Long unworkedCount; + + @Schema(description = "已作业数量 (jobStatus=1)") + private Long workedCount; + + @Schema(description = "超时未作业数量 (jobStatus=2)") + private Long overtimeUnworkedCount; + + @Schema(description = "超时已作业数量 (jobStatus=3)") + private Long overtimeWorkedCount; + + @Schema(description = "取消数量 (jobStatus=4)") + private Long canceledCount; + +} diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldrepair/MoldRepairMapper.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldrepair/MoldRepairMapper.java index c105d56d0..d7c7f3740 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldrepair/MoldRepairMapper.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldrepair/MoldRepairMapper.java @@ -60,4 +60,13 @@ public interface MoldRepairMapper extends BaseMapperX { return selectPage(reqVO,moldRepairDOLambdaQueryWrapperX ); } + default List selectList(MoldRepairPageReqVO reqVO) { + LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX<>(); + wrapper + .eqIfPresent(MoldRepairDO::getStatus, reqVO.getStatus()) + .eqIfPresent(MoldRepairDO::getRepairStatus, reqVO.getRepairStatus()) + .orderByDesc(MoldRepairDO::getCreateTime); + return selectList(wrapper); + } + } diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldticketmanagement/MoldTicketManagementMapper.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldticketmanagement/MoldTicketManagementMapper.java index 2a738c00b..bcc4f11a1 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldticketmanagement/MoldTicketManagementMapper.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldticketmanagement/MoldTicketManagementMapper.java @@ -83,4 +83,13 @@ public interface MoldTicketManagementMapper extends BaseMapperX selectList(MoldTicketManagementPageReqVO reqVO) { + LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX<>(); + wrapper + .eqIfPresent(MoldTicketManagementDO::getPlanType, reqVO.getPlanType()) + .eqIfPresent(MoldTicketManagementDO::getJobStatus, reqVO.getJobStatus()) + .orderByDesc(MoldTicketManagementDO::getId); + return selectList(wrapper); + } + } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/DeviceLedgerController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/DeviceLedgerController.java index bd3817cb1..a6d04509e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/DeviceLedgerController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/DeviceLedgerController.java @@ -134,40 +134,38 @@ public class DeviceLedgerController { @GetMapping("/page") @Operation(summary = "获得设备台账分页") @PreAuthorize("@ss.hasPermission('mes:device-ledger:query')") - public CommonResult> getDeviceLedgerPage(@Valid DeviceLedgerPageReqVO pageReqVO) { - PageResult pageResult = deviceLedgerService.getDeviceLedgerPage(pageReqVO); - Set workshopIds = pageResult.getList().stream() - .map(DeviceLedgerDO::getWorkshop) - .filter(StringUtils::isNotBlank) // 使用StringUtils或手动判断 - .flatMap(workshop -> { - try { - return Stream.of(Long.valueOf(workshop.trim())); - } catch (NumberFormatException e) { - return Stream.empty(); // 转换失败时返回空流,相当于跳过 + public CommonResult getDeviceLedgerPage(@Valid DeviceLedgerPageReqVO pageReqVO) { + DeviceLedgerPageRespVO respVO = deviceLedgerService.getDeviceLedgerPageWithStatistics(pageReqVO); + // 填充车间名称 + if (respVO.getList() != null) { + Set workshopIds = respVO.getList().stream() + .map(DeviceLedgerRespVO::getWorkshop) + .filter(Objects::nonNull) + .map(workshop -> { + try { return Long.valueOf(workshop.trim()); } catch (NumberFormatException e) { return null; } + }) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + if (!workshopIds.isEmpty()) { + Map organizationMap = organizationService.getMapWithDeleted(workshopIds); + for (DeviceLedgerRespVO item : respVO.getList()) { + if (item.getWorkshop() != null) { + try { + Long workshopId = Long.parseLong(item.getWorkshop().trim()); + OrganizationDO org = organizationMap.get(workshopId); + if (org != null) { + String workshopName = org.getName(); + if (Boolean.TRUE.equals(org.getDeleted())) { + workshopName += "(已被删除)"; + } + item.setWorkshopName(workshopName); + } + } catch (NumberFormatException e) { } } - }) - .collect(Collectors.toSet()); - - Map organizationMap = organizationService.getMapWithDeleted(workshopIds); - - // 4. 设置 workshopName - for (DeviceLedgerDO item : pageResult.getList()) { - if (item.getWorkshop() != null) { - try { - Long workshopId = Long.parseLong(item.getWorkshop().trim()); - OrganizationDO org = organizationMap.get(workshopId); - if (org != null) { - String workshopName = org.getName(); - if (Boolean.TRUE.equals(org.getDeleted())) { - workshopName += "(已被删除)"; - } - item.setWorkshopName(workshopName); - } - } catch (NumberFormatException e) { } } } - return success(ResumeNameUtils.buildPageCreatorName(BeanUtils.toBean(pageResult, DeviceLedgerRespVO.class))); + return success(respVO); } @GetMapping("/list") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerPageRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerPageRespVO.java new file mode 100644 index 000000000..ae59537df --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerPageRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.mes.controller.admin.deviceledger.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 设备台账分页 Response VO(含统计)") +@Data +public class DeviceLedgerPageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "正常数量 (deviceStatus=0)") + private Long normalCount; + + @Schema(description = "停用数量 (deviceStatus=1)") + private Long disabledCount; + + @Schema(description = "已排产数量 (isScheduled=1)") + private Long scheduledCount; + + @Schema(description = "未排产数量 (isScheduled=0)") + private Long unscheduledCount; + +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java index 40b1f22de..bcd72f898 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java @@ -91,10 +91,10 @@ public class DvRepairController { @GetMapping("/page") @Operation(summary = "获得设备维修记录分页") @PreAuthorize("@ss.hasPermission('mes:dv-repair:query')") - public CommonResult> getDvRepairPage(@Valid DvRepairPageReqVO pageReqVO) { - PageResult pageResult = dvRepairService.getDvRepairPage(pageReqVO); - PageResult dvRepairRespVOPageResult = BeanUtils.toBean(pageResult, DvRepairRespVO.class); - return success(buildCreatorName(dvRepairRespVOPageResult)); + public CommonResult getDvRepairPage(@Valid DvRepairPageReqVO pageReqVO) { + DvRepairPageRespVO respVO = dvRepairService.getDvRepairPageWithStatistics(pageReqVO); + respVO.setList(buildCreatorName(respVO.getList())); + return success(respVO); } @GetMapping("/list") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageRespVO.java new file mode 100644 index 000000000..1cddaddaf --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageRespVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 设备维修记录分页 Response VO(含统计)") +@Data +public class DvRepairPageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "待完成数量 (status=0)") + private Long pendingCount; + + @Schema(description = "已完成数量 (status=1)") + private Long finishedCount; + + @Schema(description = "待维修数量 (repairStatus=0)") + private Long pendingRepairCount; + + @Schema(description = "通过数量 (repairStatus=1)") + private Long passedCount; + + @Schema(description = "不通过数量 (repairStatus=2)") + private Long failedCount; + +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java index 805bed8da..7d75a899e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java @@ -90,10 +90,12 @@ public class MoldRepairController { @GetMapping("/page") @Operation(summary = "获得模具维修记录分页") @PreAuthorize("@ss.hasPermission('mes:mold-repair:query')") - public CommonResult> getMoldRepairPage(@Valid MoldRepairPageReqVO pageReqVO) { - PageResult pageResult = moldRepairService.getMoldRepairPage(pageReqVO); - PageResult moldRepairRespVOPageResult = BeanUtils.toBean(pageResult, MoldRepairRespVO.class); - return success(buildCreatorName(moldRepairRespVOPageResult)); + public CommonResult getMoldRepairPage(@Valid MoldRepairPageReqVO pageReqVO) { + MoldRepairPageRespVO respVO = moldRepairService.getMoldRepairPageWithStatistics(pageReqVO); + if (respVO.getList() != null) { + respVO.setList(buildCreatorName(respVO.getList())); + } + return success(respVO); } @GetMapping("/list") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/MoldTaskManagementController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/MoldTaskManagementController.java index 8dc9d51e4..22cb79388 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/MoldTaskManagementController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/MoldTaskManagementController.java @@ -87,12 +87,19 @@ public class MoldTaskManagementController { @GetMapping("/page") @Operation(summary = "获得任务管理分页") @PreAuthorize("@ss.hasPermission('mes:mold-task-management:query')") - public CommonResult> getMoldTaskManagementPage(@Valid MoldTaskManagementPageReqVO pageReqVO) { - PageResult pageResult = moldtaskManagementService.getMoldTaskManagementPage(pageReqVO); - - PageResult moldtaskManagementRespVOPageResult = BeanUtils.toBean(pageResult, MoldTaskManagementRespVO.class); - buildPageCreatorName(moldtaskManagementRespVOPageResult); - return success(moldtaskManagementRespVOPageResult); + public CommonResult getMoldTaskManagementPage(@Valid MoldTaskManagementPageReqVO pageReqVO) { + MoldTaskManagementPageRespVO respVO = moldtaskManagementService.getMoldTaskManagementPageWithStatistics(pageReqVO); + if (respVO.getList() != null) { + for (MoldTaskManagementRespVO item : respVO.getList()) { + if (item.getCreator() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(item.getCreator())); + if (user != null) { + item.setCreatorName("(" + user.getUsername() + ")" + user.getNickname()); + } + } + } + } + return success(respVO); } @GetMapping("/export-excel") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementPageRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementPageRespVO.java new file mode 100644 index 000000000..6ab4a3cb2 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementPageRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 模具任务管理分页 Response VO(含统计)") +@Data +public class MoldTaskManagementPageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "点检数量 (taskType=1)") + private Long inspectCount; + + @Schema(description = "保养数量 (taskType=2)") + private Long maintainCount; + + @Schema(description = "启用数量 (enabled=true)") + private Long enabledCount; + + @Schema(description = "未启用数量 (enabled=false)") + private Long disabledCount; + +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/MoldTicketManagementController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/MoldTicketManagementController.java index edf547738..451eee0b6 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/MoldTicketManagementController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldticketmanagement/MoldTicketManagementController.java @@ -92,9 +92,19 @@ public class MoldTicketManagementController { @GetMapping("/page") @Operation(summary = "获得工单管理分页") @PreAuthorize("@ss.hasPermission('mes:mold-ticket-management:query')") - public CommonResult> getMoldTicketManagementPage(@Valid MoldTicketManagementPageReqVO pageReqVO) { - PageResult pageResult = moldticketManagementService.getMoldTicketManagementPage(pageReqVO); - return success(buildPageCreatorName(BeanUtils.toBean(pageResult, MoldTicketManagementRespVO.class))); + public CommonResult getMoldTicketManagementPage(@Valid MoldTicketManagementPageReqVO pageReqVO) { + MoldTicketManagementPageRespVO respVO = moldticketManagementService.getMoldTicketManagementPageWithStatistics(pageReqVO); + if (respVO.getList() != null) { + for (MoldTicketManagementRespVO item : respVO.getList()) { + if (item.getCreator() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(item.getCreator())); + if (user != null) { + item.setCreatorName("(" + user.getUsername() + ")" + user.getNickname()); + } + } + } + } + return success(respVO); } @GetMapping("/export-excel") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/TaskManagementController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/TaskManagementController.java index 8e10b16e6..5530a351d 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/TaskManagementController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/TaskManagementController.java @@ -93,12 +93,19 @@ public class TaskManagementController { @GetMapping("/page") @Operation(summary = "获得任务管理分页") @PreAuthorize("@ss.hasPermission('mes:task-management:query')") - public CommonResult> getTaskManagementPage(@Valid TaskManagementPageReqVO pageReqVO) { - PageResult pageResult = taskManagementService.getTaskManagementPage(pageReqVO); - - PageResult taskManagementRespVOPageResult = BeanUtils.toBean(pageResult, TaskManagementRespVO.class); - buildPageCreatorName(taskManagementRespVOPageResult); - return success(taskManagementRespVOPageResult); + public CommonResult getTaskManagementPage(@Valid TaskManagementPageReqVO pageReqVO) { + TaskManagementPageRespVO respVO = taskManagementService.getTaskManagementPageWithStatistics(pageReqVO); + if (respVO.getList() != null) { + for (TaskManagementRespVO item : respVO.getList()) { + if (item.getCreator() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(item.getCreator())); + if (user != null) { + item.setCreatorName("(" + user.getUsername() + ")" + user.getNickname()); + } + } + } + } + return success(respVO); } @GetMapping("/export-excel") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/vo/TaskManagementPageRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/vo/TaskManagementPageRespVO.java new file mode 100644 index 000000000..26cec9490 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/vo/TaskManagementPageRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.mes.controller.admin.taskmanagement.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 任务管理分页 Response VO(含统计)") +@Data +public class TaskManagementPageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "点检数量 (taskType=1)") + private Long inspectCount; + + @Schema(description = "保养数量 (taskType=2)") + private Long maintainCount; + + @Schema(description = "启用数量 (enabled=true)") + private Long enabledCount; + + @Schema(description = "未启用数量 (enabled=false)") + private Long disabledCount; + +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/TicketManagementController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/TicketManagementController.java index fe8b20d52..715176fec 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/TicketManagementController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/TicketManagementController.java @@ -99,9 +99,19 @@ public class TicketManagementController { @GetMapping("/page") @Operation(summary = "获得工单管理分页") @PreAuthorize("@ss.hasPermission('mes:ticket-management:query')") - public CommonResult> getTicketManagementPage(@Valid TicketManagementPageReqVO pageReqVO) { - PageResult pageResult = ticketManagementService.getTicketManagementPage(pageReqVO); - return success(buildPageCreatorName(BeanUtils.toBean(pageResult, TicketManagementRespVO.class))); + public CommonResult getTicketManagementPage(@Valid TicketManagementPageReqVO pageReqVO) { + TicketManagementPageRespVO respVO = ticketManagementService.getTicketManagementPageWithStatistics(pageReqVO); + if (respVO.getList() != null) { + for (TicketManagementRespVO item : respVO.getList()) { + if (item.getCreator() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(item.getCreator())); + if (user != null) { + item.setCreatorName("(" + user.getUsername() + ")" + user.getNickname()); + } + } + } + } + return success(respVO); } @GetMapping("/export-excel") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/vo/TicketManagementPageRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/vo/TicketManagementPageRespVO.java new file mode 100644 index 000000000..09fbe0ff0 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/vo/TicketManagementPageRespVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 工单管理分页 Response VO(含统计)") +@Data +public class TicketManagementPageRespVO { + + @Schema(description = "列表数据") + private List list; + + @Schema(description = "总数") + private Long total; + + @Schema(description = "全部数量") + private Long allCount; + + @Schema(description = "点检数量 (planType=1)") + private Long inspectCount; + + @Schema(description = "保养数量 (planType=2)") + private Long maintainCount; + + @Schema(description = "未作业数量 (jobStatus=0)") + private Long unworkedCount; + + @Schema(description = "已作业数量 (jobStatus=1)") + private Long workedCount; + + @Schema(description = "超时未作业数量 (jobStatus=2)") + private Long overtimeUnworkedCount; + + @Schema(description = "超时已作业数量 (jobStatus=3)") + private Long overtimeWorkedCount; + + @Schema(description = "取消数量 (jobStatus=4)") + private Long canceledCount; + +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldtaskmanagement/MoldTaskManagementMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldtaskmanagement/MoldTaskManagementMapper.java index e8a8299d6..9d441709f 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldtaskmanagement/MoldTaskManagementMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/moldtaskmanagement/MoldTaskManagementMapper.java @@ -50,4 +50,13 @@ public interface MoldTaskManagementMapper extends BaseMapperX selectList(MoldTaskManagementPageReqVO reqVO) { + LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX<>(); + wrapper + .eqIfPresent(MoldTaskManagementDO::getTaskType, reqVO.getTaskType()) + .eqIfPresent(MoldTaskManagementDO::getEnabled, reqVO.getEnabled()) + .orderByDesc(MoldTaskManagementDO::getId); + return selectList(wrapper); + } + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/taskmanagement/TaskManagementMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/taskmanagement/TaskManagementMapper.java index a98e5f149..b759adbc1 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/taskmanagement/TaskManagementMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/taskmanagement/TaskManagementMapper.java @@ -76,4 +76,13 @@ public interface TaskManagementMapper extends BaseMapperX { return selectPage(reqVO, taskManagementDOLambdaQueryWrapperX); } + default List selectList(TaskManagementPageReqVO reqVO) { + LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX<>(); + wrapper + .eqIfPresent(TaskManagementDO::getTaskType, reqVO.getTaskType()) + .eqIfPresent(TaskManagementDO::getEnabled, reqVO.getEnabled()) + .orderByDesc(TaskManagementDO::getId); + return selectList(wrapper); + } + } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/ticketmanagement/TicketManagementMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/ticketmanagement/TicketManagementMapper.java index a2330b3f2..298ca2cd4 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/ticketmanagement/TicketManagementMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/ticketmanagement/TicketManagementMapper.java @@ -101,4 +101,13 @@ public interface TicketManagementMapper extends BaseMapperX @Param("jobStatus") Integer jobStatus, @Param("cancelReason") String cancelReason); + default List selectList(TicketManagementPageReqVO reqVO) { + LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX<>(); + wrapper + .eqIfPresent(TicketManagementDO::getPlanType, reqVO.getPlanType()) + .eqIfPresent(TicketManagementDO::getJobStatus, reqVO.getJobStatus()) + .orderByDesc(TicketManagementDO::getId); + return selectList(wrapper); + } + } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerService.java index 11e97857f..42d708c54 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerService.java @@ -57,6 +57,11 @@ public interface DeviceLedgerService { */ PageResult getDeviceLedgerPage(DeviceLedgerPageReqVO pageReqVO); + /** + * 获得设备台账分页(含统计计数) + */ + DeviceLedgerPageRespVO getDeviceLedgerPageWithStatistics(DeviceLedgerPageReqVO pageReqVO); + PageResult getDeviceCapacityReportPage(DeviceCapacityReportPageReqVO pageReqVO); List getDeviceCapacityReportList(DeviceCapacityReportPageReqVO pageReqVO); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerServiceImpl.java index 2ae23f398..0f276c680 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerServiceImpl.java @@ -510,6 +510,45 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService { return deviceLedgerDOPageResult; } + @Override + public DeviceLedgerPageRespVO getDeviceLedgerPageWithStatistics(DeviceLedgerPageReqVO pageReqVO) { + DeviceLedgerPageRespVO respVO = new DeviceLedgerPageRespVO(); + // 1. 先查分页(保留 deviceStatus 和 isScheduled 筛选) + if (!prepareDeviceLedgerQuery(pageReqVO)) { + respVO.setList(Collections.emptyList()); + respVO.setTotal(0L); + respVO.setAllCount(0L); + respVO.setNormalCount(0L); + respVO.setDisabledCount(0L); + respVO.setScheduledCount(0L); + respVO.setUnscheduledCount(0L); + return respVO; + } + PageResult pageResult = deviceLedgerMapper.selectPage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), DeviceLedgerRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + // 2. 再查统计(忽略 deviceStatus 和 isScheduled 筛选,查全量) + DeviceLedgerPageReqVO statisticsReq = BeanUtils.toBean(pageReqVO, DeviceLedgerPageReqVO.class); + statisticsReq.setDeviceStatus(null); + statisticsReq.setIsScheduled(null); + if (!prepareDeviceLedgerQuery(statisticsReq)) { + respVO.setAllCount(0L); + respVO.setNormalCount(0L); + respVO.setDisabledCount(0L); + respVO.setScheduledCount(0L); + respVO.setUnscheduledCount(0L); + return respVO; + } + List allList = deviceLedgerMapper.selectList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setNormalCount(allList.stream().filter(item -> item.getDeviceStatus() != null && item.getDeviceStatus() == 0).count()); + respVO.setDisabledCount(allList.stream().filter(item -> item.getDeviceStatus() != null && item.getDeviceStatus() == 1).count()); + respVO.setScheduledCount(allList.stream().filter(item -> item.getIsScheduled() != null && item.getIsScheduled() == 1).count()); + respVO.setUnscheduledCount(allList.stream().filter(item -> item.getIsScheduled() != null && item.getIsScheduled() == 0).count()); + return respVO; + } + private boolean prepareDeviceLedgerQuery(DeviceLedgerPageReqVO pageReqVO) { if (pageReqVO == null) { return true; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java index cf11e547a..cd5f78688 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java @@ -55,6 +55,11 @@ public interface DvRepairService { */ PageResult getDvRepairPage(DvRepairPageReqVO pageReqVO); + /** + * 获得设备维修记录分页(含统计计数) + */ + DvRepairPageRespVO getDvRepairPageWithStatistics(DvRepairPageReqVO pageReqVO); + // ==================== 子表(设备维修记录行) ==================== /** diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java index d7d4e850e..695a974ce 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java @@ -212,6 +212,63 @@ public class DvRepairServiceImpl implements DvRepairService { return dvRepairMapper.selectPage(pageReqVO); } + @Override + public DvRepairPageRespVO getDvRepairPageWithStatistics(DvRepairPageReqVO pageReqVO) { + DvRepairPageRespVO respVO = new DvRepairPageRespVO(); + // 1. 先查分页 + PageResult pageResult = getDvRepairPage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), DvRepairRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + // 2. 再查统计(忽略 status 和 repairStatus 筛选,查全量) + DvRepairPageReqVO statisticsReq = BeanUtils.toBean(pageReqVO, DvRepairPageReqVO.class); + statisticsReq.setStatus(null); + statisticsReq.setRepairStatus(null); + List allList = getDvRepairList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setPendingCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 0).count()); + respVO.setFinishedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count()); + respVO.setPendingRepairCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 0).count()); + respVO.setPassedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 1).count()); + respVO.setFailedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 2).count()); + return respVO; + } + + private List getDvRepairList(DvRepairPageReqVO pageReqVO) { + if(StringUtils.isNotBlank(pageReqVO.getDeviceLine()) || StringUtils.isNotBlank(pageReqVO.getMachineryName())) { + LambdaQueryWrapperX deviceLedgerDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); + if(StringUtils.isNotBlank(pageReqVO.getDeviceLine())) + deviceLedgerDOLambdaQueryWrapperX.eqIfPresent(DeviceLedgerDO::getDeviceLine, pageReqVO.getDeviceLine()); + if(StringUtils.isNotBlank(pageReqVO.getMachineryName())){ + deviceLedgerDOLambdaQueryWrapperX.and(w -> w + .like(DeviceLedgerDO::getDeviceCode, pageReqVO.getMachineryName()) + .or() + .like(DeviceLedgerDO::getDeviceName, pageReqVO.getMachineryName()) + ); + } + List deviceLedgerDOS = deviceLedgerMapper.selectList(deviceLedgerDOLambdaQueryWrapperX); + List machineryIds = deviceLedgerDOS.stream().map(DeviceLedgerDO::getId).distinct().collect(Collectors.toList()); + if(CollUtil.isNotEmpty(machineryIds)){ + pageReqVO.setMachineryIds(machineryIds); + } else { + List objects = new ArrayList<>(); + objects.add((long) -1); + pageReqVO.setMachineryIds(objects); + } + } + // 构建查询条件(不含 status/repairStatus) + LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX<>(); + if(CollUtil.isNotEmpty(pageReqVO.getMachineryIds())){ + wrapper.in(DvRepairDO::getMachineryId, pageReqVO.getMachineryIds()); + } + wrapper + .likeIfPresent(DvRepairDO::getRepairCode, pageReqVO.getRepairCode()) + .likeIfPresent(DvRepairDO::getRepairName, pageReqVO.getRepairName()) + .eqIfPresent(DvRepairDO::getMachineryId, pageReqVO.getMachineryId()) + .orderByDesc(DvRepairDO::getCreateTime); + return dvRepairMapper.selectList(wrapper); + } + // ==================== 子表(设备维修记录行) ==================== @Override diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairService.java index 3fcaf2b2d..63da1388c 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairService.java @@ -58,6 +58,8 @@ public interface MoldRepairService { */ PageResult getMoldRepairPage(MoldRepairPageReqVO pageReqVO); + MoldRepairPageRespVO getMoldRepairPageWithStatistics(MoldRepairPageReqVO pageReqVO); + // ==================== 子表(模具维修记录行) ==================== /** diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairServiceImpl.java index fe2ab22b8..c6a707226 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairServiceImpl.java @@ -14,6 +14,8 @@ import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairL import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairUpdateReqVO; import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairPageReqVO; import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairSaveReqVO; +import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairRespVO; +import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairPageRespVO; import cn.iocoder.yudao.module.mes.controller.admin.ticketresults.enums.JobResultEnum; import cn.iocoder.yudao.module.common.dal.dataobject.moldrepair.MoldRepairDO; import cn.iocoder.yudao.module.common.dal.dataobject.moldrepair.MoldRepairLineDO; @@ -173,6 +175,26 @@ public class MoldRepairServiceImpl implements MoldRepairService { return moldRepairMapper.selectPage(pageReqVO); } + @Override + public MoldRepairPageRespVO getMoldRepairPageWithStatistics(MoldRepairPageReqVO pageReqVO) { + MoldRepairPageRespVO respVO = new MoldRepairPageRespVO(); + PageResult pageResult = getMoldRepairPage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), MoldRepairRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + MoldRepairPageReqVO statisticsReq = new MoldRepairPageReqVO(); + statisticsReq.setPageNo(1); + statisticsReq.setPageSize(Integer.MAX_VALUE); + List allList = moldRepairMapper.selectList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setPendingCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 0).count()); + respVO.setFinishedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count()); + respVO.setPendingRepairCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 0).count()); + respVO.setPassedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 1).count()); + respVO.setFailedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 2).count()); + return respVO; + } + // ==================== 子表(模具维修记录行) ==================== @Override diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementService.java index 9f82ada26..e681475ef 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementService.java @@ -52,6 +52,8 @@ public interface MoldTaskManagementService { */ PageResult getMoldTaskManagementPage(MoldTaskManagementPageReqVO pageReqVO); + MoldTaskManagementPageRespVO getMoldTaskManagementPageWithStatistics(MoldTaskManagementPageReqVO pageReqVO); + void createMoldTicket(Long id); void createMoldTicketDirect(@Valid MoldTaskManagementCreateTicketReqVO createReqVO); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java index cb3928c0e..dc09324af 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java @@ -16,6 +16,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.MoldTa import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.MoldTaskManagementPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.MoldTaskManagementSaveReqVO; import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.MoldTaskManagementUpdateEnabledReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.MoldTaskManagementPageRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.MoldTaskManagementRespVO; import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.enums.MoldJobResultEnum; import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO; import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; @@ -173,6 +175,25 @@ public class MoldTaskManagementServiceImpl implements MoldTaskManagementService return pageResult; } + @Override + public MoldTaskManagementPageRespVO getMoldTaskManagementPageWithStatistics(MoldTaskManagementPageReqVO pageReqVO) { + MoldTaskManagementPageRespVO respVO = new MoldTaskManagementPageRespVO(); + PageResult pageResult = getMoldTaskManagementPage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), MoldTaskManagementRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + MoldTaskManagementPageReqVO statisticsReq = new MoldTaskManagementPageReqVO(); + statisticsReq.setPageNo(1); + statisticsReq.setPageSize(Integer.MAX_VALUE); + List allList = moldtaskManagementMapper.selectList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setInspectCount(allList.stream().filter(item -> item.getTaskType() != null && item.getTaskType() == 1).count()); + respVO.setMaintainCount(allList.stream().filter(item -> item.getTaskType() != null && item.getTaskType() == 2).count()); + respVO.setEnabledCount(allList.stream().filter(item -> Boolean.TRUE.equals(item.getEnabled())).count()); + respVO.setDisabledCount(allList.stream().filter(item -> !Boolean.TRUE.equals(item.getEnabled())).count()); + return respVO; + } + @Override public void createMoldTicket(Long id) { validateMoldTaskManagementExists(id); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementService.java index 497a60654..e1fed6d55 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementService.java @@ -56,6 +56,8 @@ public interface MoldTicketManagementService { */ PageResult getMoldTicketManagementPage(MoldTicketManagementPageReqVO pageReqVO); + MoldTicketManagementPageRespVO getMoldTicketManagementPageWithStatistics(MoldTicketManagementPageReqVO pageReqVO); + void batchUpdateJobStatus(@Valid MoldTicketManagementBatchUpdateReqVO reqVO); List getInspectionByMoldId(Long id, String code, String startTime, String endTime, String ids); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementServiceImpl.java index dfe313ae2..416862635 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldticketmanagement/MoldTicketManagementServiceImpl.java @@ -100,6 +100,28 @@ public class MoldTicketManagementServiceImpl implements MoldTicketManagementServ return moldTicketManagementMapper.selectPage(pageReqVO); } + @Override + public MoldTicketManagementPageRespVO getMoldTicketManagementPageWithStatistics(MoldTicketManagementPageReqVO pageReqVO) { + MoldTicketManagementPageRespVO respVO = new MoldTicketManagementPageRespVO(); + PageResult pageResult = getMoldTicketManagementPage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), MoldTicketManagementRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + MoldTicketManagementPageReqVO statisticsReq = new MoldTicketManagementPageReqVO(); + statisticsReq.setPageNo(1); + statisticsReq.setPageSize(Integer.MAX_VALUE); + List allList = moldTicketManagementMapper.selectList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setInspectCount(allList.stream().filter(item -> item.getPlanType() == 1).count()); + respVO.setMaintainCount(allList.stream().filter(item -> item.getPlanType() == 2).count()); + respVO.setUnworkedCount(allList.stream().filter(item -> item.getJobStatus() != null && item.getJobStatus() == 0).count()); + respVO.setWorkedCount(allList.stream().filter(item -> item.getJobStatus() != null && item.getJobStatus() == 1).count()); + respVO.setOvertimeUnworkedCount(allList.stream().filter(item -> item.getJobStatus() != null && item.getJobStatus() == 2).count()); + respVO.setOvertimeWorkedCount(allList.stream().filter(item -> item.getJobStatus() != null && item.getJobStatus() == 3).count()); + respVO.setCanceledCount(allList.stream().filter(item -> item.getJobStatus() != null && item.getJobStatus() == 4).count()); + return respVO; + } + @Override @Transactional(rollbackFor = Exception.class) public void batchUpdateJobStatus(MoldTicketManagementBatchUpdateReqVO reqVO) { diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementService.java index 9f73dc2af..7e0b81ca4 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementService.java @@ -52,6 +52,11 @@ public interface TaskManagementService { */ PageResult getTaskManagementPage(TaskManagementPageReqVO pageReqVO); + /** + * 获得任务管理分页(含统计计数) + */ + TaskManagementPageRespVO getTaskManagementPageWithStatistics(TaskManagementPageReqVO pageReqVO); + void createTicket(Long id); void updateTaskManagementEnabled(TaskManagementUpdateEnabledReqVO updateEnabledReqVO); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementServiceImpl.java index 5e2a1eeb6..e9c5454e8 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementServiceImpl.java @@ -196,6 +196,27 @@ public class TaskManagementServiceImpl implements TaskManagementService { return taskManagementDOPageResult; } + @Override + public TaskManagementPageRespVO getTaskManagementPageWithStatistics(TaskManagementPageReqVO pageReqVO) { + TaskManagementPageRespVO respVO = new TaskManagementPageRespVO(); + // 1. 先查分页 + PageResult pageResult = getTaskManagementPage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), TaskManagementRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + // 2. 再查统计(清掉所有筛选条件,查全量) + TaskManagementPageReqVO statisticsReq = new TaskManagementPageReqVO(); + statisticsReq.setPageNo(1); + statisticsReq.setPageSize(Integer.MAX_VALUE); + List allList = taskManagementMapper.selectList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setInspectCount(allList.stream().filter(item -> item.getTaskType() != null && item.getTaskType() == 1).count()); + respVO.setMaintainCount(allList.stream().filter(item -> item.getTaskType() != null && item.getTaskType() == 2).count()); + respVO.setEnabledCount(allList.stream().filter(item -> Boolean.TRUE.equals(item.getEnabled())).count()); + respVO.setDisabledCount(allList.stream().filter(item -> !Boolean.TRUE.equals(item.getEnabled())).count()); + return respVO; + } + @Override public void createTicket(Long id) { diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementService.java index d31d9926b..c4073ddbc 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementService.java @@ -57,6 +57,11 @@ public interface TicketManagementService { */ PageResult getTicketManagementPage(TicketManagementPageReqVO pageReqVO); + /** + * 获得工单管理分页(含统计计数) + */ + TicketManagementPageRespVO getTicketManagementPageWithStatistics(TicketManagementPageReqVO pageReqVO); + void batchUpdateJobStatus(@Valid TicketManagementBatchUpdateReqVO reqVO); List getInspectionByDeviceId(Long id, String code, String startTime, String endTime, String ids); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementServiceImpl.java index 7fcbfc5c3..66c345b28 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementServiceImpl.java @@ -126,6 +126,30 @@ public class TicketManagementServiceImpl implements TicketManagementService { return ticketManagementMapper.selectPage(pageReqVO); } + @Override + public TicketManagementPageRespVO getTicketManagementPageWithStatistics(TicketManagementPageReqVO pageReqVO) { + TicketManagementPageRespVO respVO = new TicketManagementPageRespVO(); + // 1. 先查分页 + PageResult pageResult = getTicketManagementPage(pageReqVO); + respVO.setList(BeanUtils.toBean(pageResult.getList(), TicketManagementRespVO.class)); + respVO.setTotal(pageResult.getTotal()); + + // 2. 再查统计(忽略 planType 和 jobStatus 筛选,查全量) + TicketManagementPageReqVO statisticsReq = BeanUtils.toBean(pageReqVO, TicketManagementPageReqVO.class); + statisticsReq.setPlanType(null); + statisticsReq.setJobStatus(null); + List allList = ticketManagementMapper.selectList(statisticsReq); + respVO.setAllCount((long) allList.size()); + respVO.setInspectCount(allList.stream().filter(item -> item.getPlanType() == 1).count()); + respVO.setMaintainCount(allList.stream().filter(item -> item.getPlanType() == 2).count()); + respVO.setUnworkedCount(allList.stream().filter(item -> "0".equals(item.getJobStatus())).count()); + respVO.setWorkedCount(allList.stream().filter(item -> "1".equals(item.getJobStatus())).count()); + respVO.setOvertimeUnworkedCount(allList.stream().filter(item -> "2".equals(item.getJobStatus())).count()); + respVO.setOvertimeWorkedCount(allList.stream().filter(item -> "3".equals(item.getJobStatus())).count()); + respVO.setCanceledCount(allList.stream().filter(item -> "4".equals(item.getJobStatus())).count()); + return respVO; + } + private boolean matchesDeviceLine(DeviceLedgerDO deviceLedgerDO, String deviceLineId) { return StringUtils.isBlank(deviceLineId) || (deviceLedgerDO.getDeviceLine() != null