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 a233bdfa..8132d00b 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 @@ -114,6 +114,16 @@ public class RepairController extends BaseController { return AjaxResult.success(list); } + /** + * 维修已完成--Ⅱ级页面详情列表 + */ + @ApiOperation(value = "维修已完成--Ⅱ级页面详情列表") + @GetMapping("/getAppRepairMaTypeListNew") + public AjaxResult getAppRepairMaTypeListNew(RepairTaskDetails bean) { + List list = service.getAppRepairMaTypeListNew(bean); + return AjaxResult.success(list); + } + /** * 获取维修任务机具列表--三级页面详情列表 */ @@ -206,6 +216,7 @@ public class RepairController extends BaseController { * 任务维修完成--提交修饰审核 */ @ApiOperation(value = "任务维修完成--提交至修饰审核") + @PreventRepeatSubmit @PostMapping("/endRepairTask") public AjaxResult endRepairTask(@RequestBody ArrayList taskList) { return service.endRepairTask(taskList); 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 8ba47675..a57b5091 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 @@ -79,4 +79,6 @@ public class RepairDeviceSummaryVo extends BaseVO { @ApiModelProperty(value = "待修数量") private BigDecimal waitRepairNum; + + private BigDecimal completeNum; } 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 5e5a0251..c274472b 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 @@ -140,6 +140,8 @@ public class RepairDeviceVO { */ private String dataStatus; + private BigDecimal completeNum; + // 手动覆盖 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 bd59d948..ec0a98cc 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 @@ -420,4 +420,18 @@ public interface RepairMapper { List getTestRecordDetails(TestRecord bean); List getPartDetails(RepairTaskDetails bean1); + + /** + * 查询机具列表--三级页面详情列表--新 + * @param bean + * @return + */ + List getAppRepairMaTypeListNew(RepairTaskDetails bean); + + /** + * 获取机具列表--三级页面详情列表--新 + * @param bean + * @return + */ + List getDetailsListAppTwo(RepairPartDetails 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 918fed45..0785cfc4 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 @@ -152,4 +152,11 @@ public interface RepairService { List getTestRecord(TestRecord dto); List getTestRecordDetails(TestRecord bean); + + /** + * 获取维修任务机具列表--app + * @param bean + * @return + */ + List getAppRepairMaTypeListNew(RepairTaskDetails bean); } 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 275f9c7e..31134506 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 @@ -208,6 +208,10 @@ public class RepairServiceImpl implements RepairService { .map(RepairDeviceVO::getScrapNum) .map(num -> Optional.ofNullable(num).orElse(BigDecimal.ZERO)) .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal completeNum = tempList.stream() + .map(RepairDeviceVO::getCompleteNum) + .map(num -> Optional.ofNullable(num).orElse(BigDecimal.ZERO)) + .reduce(BigDecimal.ZERO, BigDecimal::add); Integer dataStatusSum = tempList.stream() .map(RepairDeviceVO::getDataStatus) @@ -225,6 +229,7 @@ public class RepairServiceImpl implements RepairService { .setDataStatusNum(dataStatusSum) .setUnitValue(tempList.get(0).getUnitValue()) .setWaitRepairNum(waitRepairNum) + .setCompleteNum(completeNum) .setTypeCost(typeCostSum); repairDeviceSummaryVoList.add(vo); } @@ -1553,7 +1558,16 @@ public class RepairServiceImpl implements RepairService { @Override public List getDetailsListApp(RepairPartDetails bean) { - return repairMapper.getDetailsListApp(bean); + try { + List list = repairMapper.getDetailsListApp(bean); + if (list.size()<=0){ + list=repairMapper.getDetailsListAppTwo(bean); + } + return list; + } catch (Exception e) { + e.printStackTrace(); + return new ArrayList<>(); + } } @Override @@ -1679,6 +1693,75 @@ public class RepairServiceImpl implements RepairService { } } + @Override + public List getAppRepairMaTypeListNew(RepairTaskDetails bean) { + try { + Long userId = SecurityUtils.getLoginUser().getUserid(); + // 首先根据用户名去ma_type_manage表查询是否存在绑定物资信息 + List typeIdList = backApplyInfoMapper.selectTypeIdList(userId); + if (CollectionUtils.isEmpty(typeIdList)) { + bean.setUserId(userId == 0 ? null : userId); + } + List repairDeviceSummaryVoList = new ArrayList<>(); + List repairDeviceList = repairMapper.getAppRepairMaTypeListNew(bean); + if (CollectionUtil.isNotEmpty(repairDeviceList)) { + if (CollectionUtil.isNotEmpty(typeIdList)) { + repairDeviceList = repairDeviceList.stream() + .filter(item -> typeIdList.contains(item.getFirstId())) + .collect(Collectors.toList()); + } + } + 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); + BigDecimal repairNumSum = tempList.stream() + .map(RepairDeviceVO::getRepairNum) + .map(num -> Optional.ofNullable(num).orElse(BigDecimal.ZERO)) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal repairedNumSum = tempList.stream() + .map(RepairDeviceVO::getRepairedNum) + .map(num -> Optional.ofNullable(num).orElse(BigDecimal.ZERO)) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal scrapNumSum = tempList.stream() + .map(RepairDeviceVO::getScrapNum) + .map(num -> Optional.ofNullable(num).orElse(BigDecimal.ZERO)) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal completeNum = tempList.stream() + .map(RepairDeviceVO::getCompleteNum) + .map(num -> Optional.ofNullable(num).orElse(BigDecimal.ZERO)) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + Integer dataStatusSum = tempList.stream() + .map(RepairDeviceVO::getDataStatus) + .filter(Objects::nonNull) + .map(status -> "1".equals(status) ? 1 : 0) // 安全转换 + .reduce(0, Integer::sum); + BigDecimal waitRepairNum = repairNumSum.subtract(repairedNumSum).subtract(scrapNumSum); + BigDecimal typeCostSum = tempList.stream().map(RepairDeviceVO::getTotalCost).reduce(BigDecimal.ZERO, BigDecimal::add); + vo.setRepairDeviceList(tempList) + .setIds(ids).setTypeRepairNum(repairNumSum).setTypeRepairedNum(repairedNumSum) + .setTypeScrapNum(scrapNumSum).setTaskId(tempList.get(0).getTaskId()) + .setCode(tempList.get(0).getCode()).setTypeName(tempList.get(0).getTypeName()) + .setTypeId(tempList.get(0).getTypeId()).setType(tempList.get(0).getType()) + .setUnitName(tempList.get(0).getUnitName()).setManageType(tempList.get(0).getManageType()) + .setDataStatusNum(dataStatusSum) + .setUnitValue(tempList.get(0).getUnitValue()) + .setWaitRepairNum(waitRepairNum) + .setCompleteNum(completeNum) + .setTypeCost(typeCostSum); + repairDeviceSummaryVoList.add(vo); + } + } + return repairDeviceSummaryVoList; + } catch (Exception e) { + log.error("查询修试查询-维修配件查询列表", e.getMessage()); + return new ArrayList<>(); + } + } + /** * 查询修试查询-维修配件查询列表 * 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 266b75b7..d1bf59fb 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 @@ -416,6 +416,7 @@ sum(ifnull(rad.repaired_num,0) + ifnull(rad.this_repaired_num,0)) as repairedNum, sum(ifnull(rad.scrap_num,0) + ifnull(rad.this_scrap_num,0)) as scrapNum, rad.status as status, + rad.status as completeNum, su.nick_name as repairer, rad.update_time as updateTime, rad.type_id as typeId, @@ -1267,6 +1268,101 @@ and rar.part_id IS NOT NULL and mpt2.pa_name IS NOT NULL + + update