From f6e18f9455f9d6ee22470a5af19ca1e33fca91b9 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 20 Aug 2025 20:06:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/LeaseApplyInfoServiceImpl.java | 16 ++++ .../material/repair/domain/RepairTask.java | 3 + .../domain/vo/RepairDeviceSummaryVo.java | 5 + .../repair/domain/vo/RepairDeviceVO.java | 5 + .../material/repair/mapper/RepairMapper.java | 7 ++ .../service/impl/RepairServiceImpl.java | 94 ++++++++++++------- .../domain/UseMaintenanceWarningBean.java | 11 ++- .../mapper/material/repair/RepairMapper.xml | 19 +++- .../UseMaintenanceWarningMapper.xml | 12 ++- 9 files changed, 129 insertions(+), 43 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java index 91eba15b..764cca98 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java @@ -622,6 +622,22 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { applyInfo.setIsConfirm(1); } } + } else { + if (!CollectionUtils.isEmpty(list)) { + for (LeaseApplyInfo applyInfo : list) { + // 根据id去查询出库数量 + LeaseApplyInfo outList = leaseApplyInfoMapper.getOutList(applyInfo); + if (outList != null) { + if (applyInfo.getPreCountNum().compareTo(outList.getAlNum()) == 0) { + applyInfo.setIsConfirm(2); + } else { + applyInfo.setIsConfirm(1); + } + } else { + applyInfo.setIsConfirm(1); + } + } + } } //材料站权限过滤 String username = SecurityUtils.getLoginUser().getUsername(); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java index 5949d158..875e41c3 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java @@ -196,4 +196,7 @@ public class RepairTask { private String dataStatus; private Integer num; + + @ApiModelProperty(value = "退料ID") + private Long backId; } 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 4496dcce..8ba47675 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 @@ -74,4 +74,9 @@ public class RepairDeviceSummaryVo extends BaseVO { private List fileList; private Integer dataStatusNum; + + private String unitValue; + + @ApiModelProperty(value = "待修数量") + private BigDecimal waitRepairNum; } 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 0fa013cc..5e5a0251 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 @@ -84,6 +84,9 @@ public class RepairDeviceVO { @ApiModelProperty(value = "维修费用记录条数") private Integer totalCostRecords; + @ApiModelProperty(value = "待修数量") + private BigDecimal waitRepairNum; + @ApiModelProperty(value = "维修费用小计计") private BigDecimal totalCost; @@ -130,6 +133,8 @@ public class RepairDeviceVO { @ApiModelProperty(value = "一级类型id") private Long firstId; + private String unitValue; + /** * 数据状态 0-未定损,1-已定损 3-修饰后入库驳回 */ 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 3c8fce8c..b31d0b53 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 @@ -355,4 +355,11 @@ public interface RepairMapper { * @return */ int updatePartNum(RepairPart currentPart); + + /** + * 查询维修任务信息 + * @param repairTask + * @return + */ + RepairTask selectInfo(RepairTask repairTask); } 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 ac612d81..4ddda2c2 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 @@ -112,6 +112,13 @@ public class RepairServiceImpl implements RepairService { } List list = repairMapper.getRepairTaskList(bean); if (CollectionUtil.isNotEmpty(list)) { + for (RepairTask repairTask : list) { + // 根据backId查询是否为定损单,需追溯到拆分第一级 + RepairTask task = repairMapper.selectInfo(repairTask); + if (task != null) { + repairTask.setNum(task.getNum()); + } + } if (CollectionUtil.isNotEmpty(typeIdList)) { // 使用流过滤符合条件的元素 list = list.stream() @@ -174,6 +181,11 @@ public class RepairServiceImpl implements RepairService { List repairDeviceSummaryVoList = new ArrayList<>(); List repairDeviceList = repairMapper.getRepairDeviceList(bean); if (CollectionUtil.isNotEmpty(repairDeviceList)) { + for (RepairDeviceVO repairDeviceVO : repairDeviceList) { + // 获取待修数量 + repairDeviceVO.setWaitRepairNum(repairDeviceVO.getRepairNum().subtract(repairDeviceVO.getRepairedNum() + .subtract(repairDeviceVO.getScrapNum()))); + } if (CollectionUtil.isNotEmpty(typeIdList)) { repairDeviceList = repairDeviceList.stream() .filter(item -> typeIdList.contains(item.getFirstId())) @@ -213,6 +225,8 @@ public class RepairServiceImpl implements RepairService { .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(tempList.get(0).getWaitRepairNum()) .setTypeCost(typeCostSum); repairDeviceSummaryVoList.add(vo); } @@ -548,14 +562,16 @@ public class RepairServiceImpl implements RepairService { // 更新维修数量、并修改维修人员 repairMapper.updateRepairedNumAndStatus(bean.getId(), BigDecimal.ONE, 1, loginUser.getUsername(), loginUser.getUserid()); // 保存内部维修文件 - if (CollectionUtil.isNotEmpty(bean.getInRepairList().get(0).getFileList())) { - for (BmFileInfo fileInfo : bean.getInRepairList().get(0).getFileList()) { - fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) - .setFileType(Long.valueOf(RepairTypeEnum.INNER_REPAIR.getTypeId())) - .setTaskId(bean.getTaskId()).setModelId(bean.getId()) - .setCreateBy(loginUser.getUsername()); - fileInfo.setCreateTime(DateUtils.getNowDate()); - bmFileInfoMapper.insertBmFileInfo(fileInfo); + if (CollectionUtil.isNotEmpty(bean.getInRepairList())) { + if (CollectionUtil.isNotEmpty(bean.getInRepairList().get(0).getFileList())) { + for (BmFileInfo fileInfo : bean.getInRepairList().get(0).getFileList()) { + fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) + .setFileType(Long.valueOf(RepairTypeEnum.INNER_REPAIR.getTypeId())) + .setTaskId(bean.getTaskId()).setModelId(bean.getId()) + .setCreateBy(loginUser.getUsername()); + fileInfo.setCreateTime(DateUtils.getNowDate()); + bmFileInfoMapper.insertBmFileInfo(fileInfo); + } } } break; @@ -565,14 +581,16 @@ public class RepairServiceImpl implements RepairService { // 更新维修数量、维修人员不变 repairMapper.updateRepairedNumTwoAndStatus(bean.getId(), BigDecimal.ONE, 1, loginUser.getUserid()); // 保存外部维修文件 - if (CollectionUtil.isNotEmpty(bean.getOutRepairList().get(0).getFileList())) { - for (BmFileInfo fileInfo : bean.getOutRepairList().get(0).getFileList()) { - fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) - .setFileType(Long.valueOf(RepairTypeEnum.RETURN_FACTORY.getTypeId())) - .setTaskId(bean.getTaskId()).setModelId(bean.getId()) - .setCreateBy(loginUser.getUsername()); - fileInfo.setCreateTime(DateUtils.getNowDate()); - bmFileInfoMapper.insertBmFileInfo(fileInfo); + if (CollectionUtil.isNotEmpty(bean.getOutRepairList())) { + if (CollectionUtil.isNotEmpty(bean.getOutRepairList().get(0).getFileList())) { + for (BmFileInfo fileInfo : bean.getOutRepairList().get(0).getFileList()) { + fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) + .setFileType(Long.valueOf(RepairTypeEnum.RETURN_FACTORY.getTypeId())) + .setTaskId(bean.getTaskId()).setModelId(bean.getId()) + .setCreateBy(loginUser.getUsername()); + fileInfo.setCreateTime(DateUtils.getNowDate()); + bmFileInfoMapper.insertBmFileInfo(fileInfo); + } } } break; @@ -648,14 +666,16 @@ public class RepairServiceImpl implements RepairService { } } // 保存内部维修文件 - if (CollectionUtil.isNotEmpty(bean.getInRepairList().get(0).getFileList())) { - for (BmFileInfo fileInfo : bean.getInRepairList().get(0).getFileList()) { - fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) - .setFileType(Long.valueOf(RepairTypeEnum.INNER_REPAIR.getTypeId())) - .setTaskId(bean.getTaskId()).setModelId(bean.getId()) - .setCreateBy(loginUser.getUsername()); - fileInfo.setCreateTime(DateUtils.getNowDate()); - bmFileInfoMapper.insertBmFileInfo(fileInfo); + if (CollectionUtil.isNotEmpty(bean.getInRepairList())) { + if (CollectionUtil.isNotEmpty(bean.getInRepairList().get(0).getFileList())) { + for (BmFileInfo fileInfo : bean.getInRepairList().get(0).getFileList()) { + fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) + .setFileType(Long.valueOf(RepairTypeEnum.INNER_REPAIR.getTypeId())) + .setTaskId(bean.getTaskId()).setModelId(bean.getId()) + .setCreateBy(loginUser.getUsername()); + fileInfo.setCreateTime(DateUtils.getNowDate()); + bmFileInfoMapper.insertBmFileInfo(fileInfo); + } } } @@ -688,19 +708,23 @@ public class RepairServiceImpl implements RepairService { .setPartNum(repairPartDetails.getPartNum()).setRepairer(loginUser.getUsername()) .setPartPrice(Optional.ofNullable(repairPartDetails.getPartPrice()).orElse(BigDecimal.ZERO)) .setCreateBy(loginUser.getUsername()); - repairApplyRecord.setRemark(StringUtils.isNotBlank(bean.getOutRepairList().get(0).getRemark()) ? bean.getOutRepairList().get(0).getRemark() : ""); + if (CollectionUtil.isNotEmpty(bean.getOutRepairList())) { + repairApplyRecord.setRemark(StringUtils.isNotBlank(bean.getOutRepairList().get(0).getRemark()) ? bean.getOutRepairList().get(0).getRemark() : ""); + } // 新增【维修记录表】 repairMapper.addRecord(repairApplyRecord); } // 保存外部维修文件 - if (CollectionUtil.isNotEmpty(bean.getOutRepairList().get(0).getFileList())) { - for (BmFileInfo fileInfo : bean.getOutRepairList().get(0).getFileList()) { - fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) - .setFileType(Long.valueOf(RepairTypeEnum.RETURN_FACTORY.getTypeId())) - .setTaskId(bean.getTaskId()).setModelId(bean.getId()) - .setCreateBy(loginUser.getUsername()); - fileInfo.setCreateTime(DateUtils.getNowDate()); - bmFileInfoMapper.insertBmFileInfo(fileInfo); + if (CollectionUtil.isNotEmpty(bean.getOutRepairList())) { + if (CollectionUtil.isNotEmpty(bean.getOutRepairList().get(0).getFileList())) { + for (BmFileInfo fileInfo : bean.getOutRepairList().get(0).getFileList()) { + fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) + .setFileType(Long.valueOf(RepairTypeEnum.RETURN_FACTORY.getTypeId())) + .setTaskId(bean.getTaskId()).setModelId(bean.getId()) + .setCreateBy(loginUser.getUsername()); + fileInfo.setCreateTime(DateUtils.getNowDate()); + bmFileInfoMapper.insertBmFileInfo(fileInfo); + } } } for (int i = 0; i < partList.size(); i++) { @@ -801,7 +825,7 @@ public class RepairServiceImpl implements RepairService { int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()); // 生成维修单号 String code = genderWxTaskCode(thisMonthMaxOrder); - TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId(), RepairTaskStatusEnum.TASK_STATUS_PROCESSING.getStatus(), + TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId(), RepairTaskStatusEnum.TASK_LOSS_ASSESSMENT_COMPLETE.getStatus(), null,thisMonthMaxOrder + 1, code); tmTask.setCreateTime(DateUtils.getNowDate()); tmTask.setCreateBy(createBy); @@ -1196,7 +1220,7 @@ public class RepairServiceImpl implements RepairService { repairTaskDetail.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); repairTaskDetail.setStatus("0"); repairTaskDetail.setNewTaskId(newTaskId); - repairTaskDetail.setIsDs(1); + repairTaskDetail.setIsDs(0); repairMapper.insertRepaired(repairTaskDetail); } } else { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/warningAnalysis/domain/UseMaintenanceWarningBean.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/warningAnalysis/domain/UseMaintenanceWarningBean.java index 787537d7..c80279e1 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/warningAnalysis/domain/UseMaintenanceWarningBean.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/warningAnalysis/domain/UseMaintenanceWarningBean.java @@ -29,9 +29,10 @@ public class UseMaintenanceWarningBean extends BaseEntity { @Excel(name = "下次检验日期", width = 30, dateFormat = "yyyy-MM-dd") private Date nextCheckTime; - /** - * 类型名称 - */ + @ApiModelProperty(value = "物资类型") + @Excel(name = "物资类型") + private String materialType; + @ApiModelProperty(value = "机具类型") @Excel(name = "机具类型") private String typeName; @@ -61,6 +62,10 @@ public class UseMaintenanceWarningBean extends BaseEntity { @Excel(name = "工程名称") private String projectName; + @ApiModelProperty(value = "实施单位") + @Excel(name = "分公司") + private String impUnit; + /** * 协议ID */ 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 19df2b1b..3236fdfd 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 @@ -273,7 +273,8 @@ rd.level as level, GROUP_CONCAT(DISTINCT mt4.type_id) as firstId, rd.status as dataStatus, - rad2.num + rad2.num, + rd.back_id as backId FROM repair_apply_details rd LEFT JOIN ma_type mt on rd.type_id = mt.type_id @@ -410,7 +411,7 @@ mt.unit_name as unitName, mt.manage_type as manageType, mm.ma_code as code, - rad.repair_num as repairNum, + ifnull(rad.repair_num, 0) as repairNum, 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, @@ -425,7 +426,8 @@ mt4.type_id AS firstId, ( SELECT COUNT(*) FROM repair_cost rc WHERE rc.repair_id = rad.id ) AS totalCostRecords, ( SELECT COALESCE(SUM(rc.costs), 0) FROM repair_cost rc WHERE rc.repair_id = rad.id ) AS totalCost, - rad2.`status` as dataStatus + rad2.`status` as dataStatus, + mt.unit_value AS unitValue from repair_apply_details rad left join ma_type mt on rad.type_id = mt.type_id @@ -1041,6 +1043,17 @@ ORDER BY part_num DESC + + update repair_apply_details diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/warningAnalysis/UseMaintenanceWarningMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/warningAnalysis/UseMaintenanceWarningMapper.xml index 56ec65cc..0850cbd4 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/warningAnalysis/UseMaintenanceWarningMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/warningAnalysis/UseMaintenanceWarningMapper.xml @@ -8,17 +8,21 @@ SELECT mm.ma_id as maId, mm.next_check_time as nextCheckTime, + mt3.type_name as materialType, mt2.type_name as typeName, mt.type_name as typeModelName, mm.ma_code as maCode, bu.unit_name as unitName, bp.pro_name as projectName, bai.agreement_code as agreementCode, - DATEDIFF(mm.next_check_time, CURDATE()) AS overDays + DATEDIFF(mm.next_check_time, CURDATE()) AS overDays, + sd.dept_name as impUnit FROM ma_machine mm LEFT JOIN ma_type mt on mt.type_id=mm.type_id LEFT JOIN ma_type mt2 on mt2.type_id=mt.parent_id + LEFT JOIN ma_type mt3 on mt3.type_id=mt2.parent_id + LEFT JOIN ma_type mt4 on mt4.type_id=mt3.parent_id LEFT JOIN slt_agreement_info sai on sai.ma_id=mm.ma_id and mm.type_id=sai.type_id and sai.`status`='0' and sai.end_time is null LEFT JOIN bm_agreement_info bai on bai.agreement_id=sai.agreement_id @@ -26,12 +30,16 @@ AND bu.del_flag = '0' LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id AND bp.del_flag = '0' + LEFT JOIN sys_dept sd on sd.dept_id = bp.imp_unit WHERE mm.ma_status='2' and bp.pro_name is not null AND mm.next_check_time BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 MONTH) - and (mt2.type_name like concat('%', #{keyWord}, '%') or + and ( + mt4.type_name like concat('%', #{keyWord}, '%') or + mt3.type_name like concat('%', #{keyWord}, '%') or + mt2.type_name like concat('%', #{keyWord}, '%') or mt.type_name like concat('%', #{keyWord}, '%') or mm.ma_code like concat('%', #{keyWord}, '%') or bu.unit_name like concat('%', #{keyWord}, '%') or