From 0f25724852d7ecc2f59e1283e14bc988f846d5ef Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Sat, 23 Nov 2024 17:18:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E6=A8=A1=E5=9D=97=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repair/controller/RepairController.java | 10 +- .../domain/vo/RepairDeviceSummaryVo.java | 4 + .../repair/domain/vo/RepairTicketVo.java | 8 +- .../material/repair/mapper/RepairMapper.java | 2 +- .../repair/service/RepairService.java | 6 +- .../service/impl/RepairServiceImpl.java | 127 ++++++++++-------- .../mapper/material/repair/RepairMapper.xml | 92 ++++++------- 7 files changed, 131 insertions(+), 118 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java index 867ffb8c..c4c42d44 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java @@ -10,7 +10,6 @@ import com.bonus.material.repair.domain.RepairApplyRecord; import com.bonus.material.repair.domain.RepairPartDetails; import com.bonus.material.repair.domain.RepairTask; import com.bonus.material.repair.domain.RepairTaskDetails; -import com.bonus.material.repair.domain.vo.RepairDeviceListVo; import com.bonus.material.repair.domain.vo.RepairDeviceSummaryVo; import com.bonus.material.repair.domain.vo.RepairDeviceVO; import com.bonus.material.repair.service.RepairService; @@ -89,8 +88,7 @@ public class RepairController extends BaseController { @ApiOperation(value = "获取维修物资设备列表---不分页") @GetMapping("/getAppRepairMaTypeList") public AjaxResult getAppRepairMaTypeList(RepairTaskDetails bean) { - //List list = service.getRepairMaTypeList(bean); - List list = service.getRepairDeviceSummary(bean, true); + List list = service.getRepairDeviceSummary(bean); return AjaxResult.success(list); } @@ -98,9 +96,9 @@ public class RepairController extends BaseController { * 查询维修单 */ @ApiOperation(value = "获取维修单详情") - @GetMapping("/getRepairTicketInfo") - public AjaxResult getRepairTicketInfo(@NotBlank(message = "TaskId参数不能为空") String taskId) { - return service.getRepairTicketInfo(taskId); + @GetMapping("/getRepairDocumentInfo") + public AjaxResult getRepairDocumentInfo(@NotBlank(message = "TaskId参数不能为空") String taskId) { + return service.getRepairDocumentInfo(taskId); } /** diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceSummaryVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceSummaryVo.java index 9ef22eab..daca47f8 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceSummaryVo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceSummaryVo.java @@ -1,6 +1,7 @@ package com.bonus.material.repair.domain.vo; import com.bonus.common.biz.domain.BaseVO; +import com.bonus.material.basic.domain.BmFileInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -62,4 +63,7 @@ public class RepairDeviceSummaryVo extends BaseVO { @ApiModelProperty(value = "内层物资类型集合") private List repairDeviceList = new ArrayList<>(); + + @ApiModelProperty(value = "报废附件") + private List fileList; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairTicketVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairTicketVo.java index 1a83c449..566eb80b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairTicketVo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairTicketVo.java @@ -26,15 +26,15 @@ public class RepairTicketVo { private RepairTask repairTaskInfo; @ApiModelProperty(value = "维修物资列表") - private List repairDeviceArray; + private List repairDeviceSummaryList; @ApiModelProperty(value = "维修内容集合") private List repairPartArray; // 覆盖默认get方法,防止空指针异常 - public List getRepairDeviceList() { - if (this.repairDeviceArray == null) {return new ArrayList<>();} - return this.repairDeviceArray; + public List getRepairDeviceSummaryList() { + if (this.repairDeviceSummaryList == null) {return new ArrayList<>();} + return this.repairDeviceSummaryList; } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java index c73587ea..fcbdc247 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java @@ -37,7 +37,7 @@ public interface RepairMapper { * 获取维修详细列表 * @param bean 维修任务详情--查询条件 */ - List getRepairMaTypeList(RepairTaskDetails bean); +// List getRepairMaTypeList(RepairTaskDetails bean); /** * 新增维修记录 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/RepairService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/RepairService.java index 13435a47..df03dcd7 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/RepairService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/RepairService.java @@ -29,10 +29,10 @@ public interface RepairService { /** * 获取维修详细列表 */ - List getRepairMaTypeList(RepairTaskDetails bean, boolean isGroup); +// List getRepairMaTypeList(RepairTaskDetails bean, boolean isGroup); - List getRepairDeviceSummary(RepairTaskDetails bean, boolean isGroup); + List getRepairDeviceSummary(RepairTaskDetails bean); // default List getRepairMaTypeList(RepairTaskDetails bean) { @@ -42,7 +42,7 @@ public interface RepairService { /** * 查询维修单 */ - AjaxResult getRepairTicketInfo(@NotBlank(message = "TaskId参数不能为空") String taskId); + AjaxResult getRepairDocumentInfo(@NotBlank(message = "TaskId参数不能为空") String taskId); /** * 提交维修记录 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java index 52052c41..0b625ea9 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java @@ -70,7 +70,7 @@ public class RepairServiceImpl implements RepairService { } @Override - public List getRepairDeviceSummary(RepairTaskDetails bean, boolean isGroup) { + public List getRepairDeviceSummary(RepairTaskDetails bean) { List repairDeviceSummaryVoList = new ArrayList<>(); List repairDeviceList = repairMapper.getRepairDeviceList(bean); Map> map = repairDeviceList.stream().collect(Collectors.groupingBy(RepairDeviceVO::getTypeId)); @@ -81,12 +81,12 @@ public class RepairServiceImpl implements RepairService { Long[] ids = tempList.stream().map(RepairDeviceVO::getId).toArray(Long[]::new); int repairNumSum = tempList.stream().mapToInt(RepairDeviceVO::getRepairNum).sum(); int repairedNumSum = tempList.stream().mapToInt(RepairDeviceVO::getRepairedNum).sum(); - BigDecimal typeCostSum = tempList.stream().map(RepairDeviceVO::getTotalCost).reduce(BigDecimal.ZERO, BigDecimal::add); + //BigDecimal typeCostSum = tempList.stream().map(RepairDeviceVO::getTotalCost).reduce(BigDecimal.ZERO, BigDecimal::add); vo.setRepairDeviceList(tempList); vo.setIds(ids); vo.setTypeRepairNum(repairNumSum); vo.setTypeRepairedNum(repairedNumSum); - vo.setTypeCost(typeCostSum); + //vo.setTypeCost(typeCostSum); vo.setTaskId(tempList.get(0).getTaskId()); vo.setCode(tempList.get(0).getCode()); vo.setTypeName(tempList.get(0).getTypeName()); @@ -100,62 +100,62 @@ public class RepairServiceImpl implements RepairService { return repairDeviceSummaryVoList; } - @Override - public List getRepairMaTypeList(RepairTaskDetails bean, boolean isGroup) { - if (Objects.isNull(bean)) { - return new ArrayList<>(); - } - bean.setCompanyId(null); - List repairMaTypeList = repairMapper.getRepairMaTypeList(bean); - - if (repairMaTypeList.isEmpty() || !isGroup) { - return repairMaTypeList; - } - repairMaTypeList.removeIf(Objects::isNull); - // 创建Map集合,用于快速分组,使用 ConcurrentHashMap 保证线程安全 - Map resultMap = new ConcurrentHashMap<>(); - - // 遍历处理,把相同的父级对象,拆分到子集合中 - repairMaTypeList.forEach(item -> { - // 创建对象,并复制字段value - RepairDeviceVO repairDeviceVO = new RepairDeviceVO(); - try { - BeanUtil.copyProperties(item, repairDeviceVO); - } catch (Exception e) { - System.err.println("复制属性时发生错误: {}" + e.getMessage()); - throw new RuntimeException("复制属性时发生错误", e); - } - if (item.getTypeNameId() == null) { - System.err.println("typeNameId 为空,跳过当前项: " + item); - return; - } - resultMap.computeIfAbsent(item.getTypeNameId(), origin -> item).getRepairDeviceList().add(repairDeviceVO); - - resultMap.computeIfPresent(item.getTypeNameId(), (origin, novel) -> { - novel.setTotalCost(Optional.ofNullable(novel.getTotalCost()).orElse(BigDecimal.ZERO) - .add(Optional.ofNullable(item.getTotalCost()).orElse(BigDecimal.ZERO)) - ); - return novel; - }); - }); - - for (Long key : resultMap.keySet()) { - RepairDeviceListVo vo = resultMap.get(key); - if (MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(vo.getManageType())) { - vo.setRepairNum((int) vo.getRepairDeviceList().stream().filter(o -> o.getRepairNum() > 0).count()); - vo.setRepairedNum((int) vo.getRepairDeviceList().stream().filter(o -> o.getRepairedNum() > 0).count()); - } - } - - return new ArrayList<>(resultMap.values()); - } +// @Override +// public List getRepairMaTypeList(RepairTaskDetails bean, boolean isGroup) { +// if (Objects.isNull(bean)) { +// return new ArrayList<>(); +// } +// bean.setCompanyId(null); +// List repairMaTypeList = repairMapper.getRepairMaTypeList(bean); +// +// if (repairMaTypeList.isEmpty() || !isGroup) { +// return repairMaTypeList; +// } +// repairMaTypeList.removeIf(Objects::isNull); +// // 创建Map集合,用于快速分组,使用 ConcurrentHashMap 保证线程安全 +// Map resultMap = new ConcurrentHashMap<>(); +// +// // 遍历处理,把相同的父级对象,拆分到子集合中 +// repairMaTypeList.forEach(item -> { +// // 创建对象,并复制字段value +// RepairDeviceVO repairDeviceVO = new RepairDeviceVO(); +// try { +// BeanUtil.copyProperties(item, repairDeviceVO); +// } catch (Exception e) { +// System.err.println("复制属性时发生错误: {}" + e.getMessage()); +// throw new RuntimeException("复制属性时发生错误", e); +// } +// if (item.getTypeNameId() == null) { +// System.err.println("typeNameId 为空,跳过当前项: " + item); +// return; +// } +// resultMap.computeIfAbsent(item.getTypeNameId(), origin -> item).getRepairDeviceList().add(repairDeviceVO); +// +// resultMap.computeIfPresent(item.getTypeNameId(), (origin, novel) -> { +// novel.setTotalCost(Optional.ofNullable(novel.getTotalCost()).orElse(BigDecimal.ZERO) +// .add(Optional.ofNullable(item.getTotalCost()).orElse(BigDecimal.ZERO)) +// ); +// return novel; +// }); +// }); +// +// for (Long key : resultMap.keySet()) { +// RepairDeviceListVo vo = resultMap.get(key); +// if (MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(vo.getManageType())) { +// vo.setRepairNum((int) vo.getRepairDeviceList().stream().filter(o -> o.getRepairNum() > 0).count()); +// vo.setRepairedNum((int) vo.getRepairDeviceList().stream().filter(o -> o.getRepairedNum() > 0).count()); +// } +// } +// +// return new ArrayList<>(resultMap.values()); +// } /** * 查询维修单 * @param taskId 任务id */ @Override - public AjaxResult getRepairTicketInfo(@NotBlank(message = "TaskId参数不能为空") String taskId) { + public AjaxResult getRepairDocumentInfo(@NotBlank(message = "TaskId参数不能为空") String taskId) { if (!NumberUtil.isNumber(taskId)) { return AjaxResult.error("TaskId参数非数字类型,参数类型错误"); } @@ -167,12 +167,23 @@ public class RepairServiceImpl implements RepairService { return AjaxResult.error("未查询到维修任务信息"); } // 查询维修任务详情 - List repairMaTypeGroupList = getRepairMaTypeList(new RepairTaskDetails(taskId), true); - repairMaTypeGroupList.removeIf(Objects::isNull); - repairMaTypeGroupList.forEach(repairDevice -> { +// List repairMaTypeGroupList = getRepairMaTypeList(new RepairTaskDetails(taskId), true); +// repairMaTypeGroupList.removeIf(Objects::isNull); +// repairMaTypeGroupList.forEach(repairDevice -> { +// List fileInfos = bmFileInfoMapper.selectBmFileInfoList(new BmFileInfo() +// .setTaskId(OptionalLong.of(thisTaskId).orElse(0L)) +// .setModelId(Optional.ofNullable(repairDevice.getId()).orElse(0L)) +// .setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) +// ); +// repairDevice.setFileList(fileInfos); +// }); + + List repairDeviceSummaryList = getRepairDeviceSummary(new RepairTaskDetails(taskId)); + repairDeviceSummaryList.removeIf(Objects::isNull); + repairDeviceSummaryList.forEach(repairDevice -> { List fileInfos = bmFileInfoMapper.selectBmFileInfoList(new BmFileInfo() .setTaskId(OptionalLong.of(thisTaskId).orElse(0L)) - .setModelId(Optional.ofNullable(repairDevice.getId()).orElse(0L)) + .setModelId(Optional.ofNullable(repairDevice.getIds()[0]).orElse(0L)) .setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) ); repairDevice.setFileList(fileInfos); @@ -182,7 +193,7 @@ public class RepairServiceImpl implements RepairService { repairPartList = mergePartsNum(repairPartList); RepairTicketVo result = new RepairTicketVo() .setRepairTaskInfo(repairTaskInfo) - .setRepairDeviceArray(repairMaTypeGroupList) + .setRepairDeviceSummaryList(repairDeviceSummaryList) .setRepairPartArray(Optional.of(repairPartList).orElse(new ArrayList<>())); return AjaxResult.success(result); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml index 62ee79e5..54240250 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml @@ -303,52 +303,52 @@ order by rad.create_time desc - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +