From b347771ae3ba9d4a2fe47973aab7bc422e3b26e5 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Sat, 23 Nov 2024 16:28:15 +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 | 4 +- .../domain/vo/RepairDeviceSummaryVo.java | 62 +++++++++++++++++++ .../repair/domain/vo/RepairDeviceVO.java | 13 +++- .../material/repair/mapper/RepairMapper.java | 3 + .../repair/service/RepairService.java | 7 ++- .../service/impl/RepairServiceImpl.java | 32 +++++++++- .../mapper/material/repair/RepairMapper.xml | 47 ++++++++++++++ 7 files changed, 161 insertions(+), 7 deletions(-) create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceSummaryVo.java 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 52fe317f..e2058af8 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 @@ -11,6 +11,7 @@ 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; import com.bonus.system.api.domain.SysUser; @@ -88,7 +89,8 @@ public class RepairController extends BaseController { @ApiOperation(value = "获取维修物资设备列表---不分页") @GetMapping("/getAppRepairMaTypeList") public AjaxResult getAppRepairMaTypeList(RepairTaskDetails bean) { - List list = service.getRepairMaTypeList(bean); + //List list = service.getRepairMaTypeList(bean); + List list = service.getRepairDeviceSummary(bean, true); return AjaxResult.success(list); } 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 new file mode 100644 index 00000000..d00078e0 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceSummaryVo.java @@ -0,0 +1,62 @@ +package com.bonus.material.repair.domain.vo; + +import com.bonus.common.biz.domain.BaseVO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +@EqualsAndHashCode(callSuper = false) +@Data +public class RepairDeviceSummaryVo extends BaseVO { + + @ApiModelProperty(value = "id") + private Long[] ids; + + @ApiModelProperty(value = "任务ID") + private Long taskId; + + @ApiModelProperty(value = "类型id") + private Long typeNameId; + + @ApiModelProperty(value = "设备编码") + private String code; + + @ApiModelProperty(value = "类型名称") + private String typeName; + + @ApiModelProperty(value = "规格型号id") + private Long typeId; + + @ApiModelProperty(value = "规格型号") + private String type; + + @ApiModelProperty(value = "管理模式") + private Integer manageType; + + @ApiModelProperty(value = "设备表主键id") + private Long[] maIds; + + @ApiModelProperty(value = "维修人员") + private String[] repairers; + + @ApiModelProperty(value = "维修总量") + private int typeRepairNum; + + @ApiModelProperty(value = "已修数量") + private int typeRepairedNum; + + @ApiModelProperty(value = "维修报废数量") + private int typeScrapNum; + +// @ApiModelProperty(value = "维修费用记录条数") +// private Integer typeCostRecords; + + @ApiModelProperty(value = "维修费用合计") + private BigDecimal typeCostSum; + + @ApiModelProperty(value = "内层物资类型集合") + private List repairDeviceList = new ArrayList<>(); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceVO.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceVO.java index b67d30fe..5dde494b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceVO.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceVO.java @@ -1,11 +1,11 @@ package com.bonus.material.repair.domain.vo; -import com.bonus.material.repair.domain.RepairPart; +import com.bonus.material.basic.domain.BmFileInfo; import com.bonus.material.repair.domain.RepairPartDetails; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; - +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -67,6 +67,12 @@ public class RepairDeviceVO { @ApiModelProperty(value = "维修报废数量") private int scrapNum; + @ApiModelProperty(value = "维修费用记录条数") + private Integer totalCostRecords; + + @ApiModelProperty(value = "维修费用小计计") + private BigDecimal totalCost; + @ApiModelProperty(value = "编码--内部维修配件集合") private List codeInRepairPartList; @@ -85,6 +91,9 @@ public class RepairDeviceVO { @ApiModelProperty(value = "数量--报废维修配件集合") private List numberScrapRepairPartList; + @ApiModelProperty(value = "报废附件") + private List fileList; + // 手动覆盖 getter 方法,确保 List 始终被初始化 public List getCodeInRepairPartList() { if (this.codeInRepairPartList == null) {this.codeInRepairPartList = new ArrayList<>();} 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 e2779319..c73587ea 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 @@ -5,6 +5,7 @@ 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.RepairDeviceVO; import com.bonus.system.api.domain.SysUser; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -30,6 +31,8 @@ public interface RepairMapper { */ RepairTask getRepairTaskInfoByTaskId(Long taskId); + List getRepairDeviceList(RepairTaskDetails bean); + /** * 获取维修详细列表 * @param 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 cdac1727..618885d3 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 @@ -6,10 +6,9 @@ import com.bonus.material.repair.domain.RepairApplyRecord; 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.system.api.domain.SysUser; - -import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.util.ArrayList; @@ -32,6 +31,10 @@ public interface RepairService { */ List getRepairMaTypeList(RepairTaskDetails bean, boolean isGroup); + + List getRepairDeviceSummary(RepairTaskDetails bean, boolean isGroup); + + default List getRepairMaTypeList(RepairTaskDetails bean) { return getRepairMaTypeList(bean, true); } 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 f95e1e9a..b7056ccb 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 @@ -14,6 +14,7 @@ import com.bonus.material.basic.domain.BmFileInfo; import com.bonus.material.basic.mapper.BmFileInfoMapper; import com.bonus.material.repair.domain.*; 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.domain.vo.RepairTicketVo; import com.bonus.material.repair.mapper.RepairAuditDetailsMapper; @@ -26,9 +27,7 @@ import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; - import javax.annotation.Resource; -import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.math.BigDecimal; @@ -70,6 +69,35 @@ public class RepairServiceImpl implements RepairService { return repairMapper.exportRepairTaskList(bean); } + @Override + public List getRepairDeviceSummary(RepairTaskDetails bean, boolean isGroup) { + List repairDeviceSummaryVoList = new ArrayList<>(); + List repairDeviceList = repairMapper.getRepairDeviceList(bean); + Map> map = repairDeviceList.stream().collect(Collectors.groupingBy(RepairDeviceVO::getTypeId)); + for (Long key : map.keySet()) { + List tempList = map.get(key); + if (CollectionUtil.isNotEmpty(tempList)) { + RepairDeviceSummaryVo vo = new RepairDeviceSummaryVo(); + 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::getRepairedNum).reduce(BigDecimal.ZERO, BigDecimal::add); + vo.setRepairDeviceList(tempList); + vo.setIds(ids); + vo.setTypeRepairNum(repairNumSum); + vo.setTypeRepairedNum(repairedNumSum); + vo.setTaskId(tempList.get(0).getTaskId()); + vo.setCode(tempList.get(0).getCode()); + vo.setTypeName(tempList.get(0).getTypeName()); + vo.setTypeId(tempList.get(0).getTypeId()); + vo.setType(tempList.get(0).getType()); + vo.setManageType(tempList.get(0).getManageType()); + repairDeviceSummaryVoList.add(vo); + } + } + return repairDeviceSummaryVoList; + } + @Override public List getRepairMaTypeList(RepairTaskDetails bean, boolean isGroup) { if (Objects.isNull(bean)) { 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 620d6aeb..62ee79e5 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 @@ -256,6 +256,53 @@ tt.create_time DESC + +