From 6aad1d0d8fb4ee2e1af8dace0e02c813af5f81f6 Mon Sep 17 00:00:00 2001 From: syruan <321359594@qq.com> Date: Thu, 14 Nov 2024 17:37:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=B4=E4=BF=AE--=E4=BF=AE=E9=A5=B0=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8--=E5=AD=97=E5=85=B8=E5=BC=95=E5=85=A5=E3=80=81?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=E3=80=81SQL=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/constant/MaterialConstants.java | 3 + .../mapper/RepairAuditDetailsMapper.java | 18 ++- .../impl/RepairAuditDetailsServiceImpl.java | 75 ++++++---- .../repair/RepairAuditDetailsMapper.xml | 137 +++++++++++------- 4 files changed, 153 insertions(+), 80 deletions(-) diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java index febaa032..77af7f45 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java @@ -57,6 +57,9 @@ public class MaterialConstants { /** 领料单号的开头字母 */ public static final String LEASE_TASK_TYPE_LABEL = "L"; + /** 维修单号的开头字母 */ + public static final String REPAIR_TASK_TYPE_LABEL = "WX"; + public static final String INNER_PROTOCAL = "1"; //内部单位协议 public static final String OUTER_PROTOCAL = "2"; //外部单位协议 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairAuditDetailsMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairAuditDetailsMapper.java index cfc94035..9e12add8 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairAuditDetailsMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairAuditDetailsMapper.java @@ -1,6 +1,8 @@ package com.bonus.material.repair.mapper; import java.util.List; +import java.util.Map; + import com.bonus.material.repair.domain.RepairAuditDetails; import com.bonus.material.repair.domain.RepairPart; import com.bonus.material.repair.domain.RepairRecord; @@ -76,11 +78,25 @@ public interface RepairAuditDetailsMapper { List selectRepairQuestList(RepairAuditDetails repairAuditDetails); + /** + * 根据taskId查询单个规格名称---单个 + * @param taskId 任务id + */ String selectTypeNameByTaskId(Long taskId); + /** + * 根据taskIds批量查询规格名称---批量 + * @param taskIds 任务id集合 + */ + Map selectTypeNamesByTaskIds(List taskIds); + List selectRepairAuditDetailsByTaskId(Long taskId); - List selectnotAuditByTaskId(Long taskId); + /** + * 根据taskId查询未审核的数据 + * @param taskId 任务id + */ + List selectNotAuditByTaskId(Long taskId); List selectRepairInputByTaskId(Long taskId); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairAuditDetailsServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairAuditDetailsServiceImpl.java index a7bde4d7..8548e72e 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairAuditDetailsServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairAuditDetailsServiceImpl.java @@ -1,11 +1,10 @@ package com.bonus.material.repair.service.impl; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; +import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.enums.RepairTaskStatusEnum; import com.bonus.common.biz.enums.TmTaskTypeEnum; import com.bonus.common.core.exception.ServiceException; @@ -100,13 +99,37 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService */ @Override public List selectRepairQuestList(RepairAuditDetails repairAuditDetails) { - List repairQuestList = repairAuditDetailsMapper.selectRepairQuestList(repairAuditDetails); - for (ScrapApplyDetailsVO scrapApplyDetailsVO : repairQuestList) { - Long taskId = scrapApplyDetailsVO.getTaskId(); - String typeName = repairAuditDetailsMapper.selectTypeNameByTaskId(taskId); - scrapApplyDetailsVO.setItemType(typeName); + try { + // 获取所有需要查询的 taskId、过滤空的 + List repairQuestList = repairAuditDetailsMapper.selectRepairQuestList(repairAuditDetails); + // 通过流过滤掉空对象 并转换为 List集合 + List taskIds = repairQuestList.stream() + .filter(Objects::nonNull) // 过滤掉空的 ScrapApplyDetailsVO 对象 + .map(ScrapApplyDetailsVO::getTaskId) + .filter(Objects::nonNull) // 过滤掉空的 taskId + .distinct() + .collect(Collectors.toList()); + + // 批量查询 typeName + Map typeNameMap = repairAuditDetailsMapper.selectTypeNamesByTaskIds(taskIds); + + // 设置 itemType + for (ScrapApplyDetailsVO scrapApplyDetailsVO : repairQuestList) { + Long taskId = scrapApplyDetailsVO.getTaskId(); + if (taskId != null) { + String typeName = typeNameMap.get(taskId); + if (typeName != null) { + scrapApplyDetailsVO.setItemType(typeName); + } + } + } + + return repairQuestList; + } catch (Exception e) { + // 异常处理 + e.printStackTrace(); + throw new ServiceException("Failed to get repair quest list" + e.getMessage()); } - return repairQuestList; } /** @@ -124,13 +147,13 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService Integer b = 0; for (Long taskId : taskIdList) { char status; - TmTask task1 = taskMapper.selectTmTaskByTaskId(taskId); - if (task1.getTaskStatus() == 47) { + TmTask tmTask = taskMapper.selectTmTaskByTaskId(taskId); + if (tmTask.getTaskStatus() == 47) { throw new Exception("任务已审核已通过"); } List auditAllList = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskId(taskId); - List notAuditList = repairAuditDetailsMapper.selectnotAuditByTaskId(taskId); + List notAuditList = repairAuditDetailsMapper.selectNotAuditByTaskId(taskId); // 查询协议表 TmTaskAgreement tmTaskAgreement = agreementMapper.selectTmTaskAgreementByTaskId(taskId); String taskCode; @@ -231,16 +254,16 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService // 修饰审核通过时改修任务为已通过审核 if (auditDetailList != null) { if (auditDetailList.size() == notAuditList.size()) { - task1.setTaskStatus(47); + tmTask.setTaskStatus(47); } } else if (auditAllList != null) { if (auditAllList.size() == notAuditList.size()) { - task1.setTaskStatus(47); + tmTask.setTaskStatus(47); } } - task1.setUpdateTime(new Date()); - task1.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid())); - taskMapper.updateTmTask(task1); + tmTask.setUpdateTime(new Date()); + tmTask.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid())); + taskMapper.updateTmTask(tmTask); } else { status = 2; List repairDetailList = new ArrayList<>(); @@ -253,7 +276,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService if (repairDetailList.get(0).getCompanyId() != null) { companyId = repairDetailList.get(0).getCompanyId(); } - taskCode = purchaseCodeRule("WX", 41); + taskCode = purchaseCodeRule(MaterialConstants.REPAIR_TASK_TYPE_LABEL, 41); taskStatus = 43; taskType = 41; long inputTaskId = genTask(taskCode, taskType, taskStatus, tmTaskAgreement, companyId); @@ -275,15 +298,15 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService } } // 修饰审核任务不通过时 - TmTask tmTask = new TmTask(); - tmTask.setTaskId(taskId); - tmTask.setRemark(scrapAudit.getRemark()); + TmTask tmTaskNotExam = new TmTask(); + tmTaskNotExam.setTaskId(taskId); + tmTaskNotExam.setRemark(scrapAudit.getRemark()); if (repairDetailList.size() == notAuditList.size()) { - tmTask.setTaskStatus(48); + tmTaskNotExam.setTaskStatus(48); } - tmTask.setUpdateTime(new Date()); - tmTask.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid())); - taskMapper.updateTmTask(tmTask); + tmTaskNotExam.setUpdateTime(new Date()); + tmTaskNotExam.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid())); + taskMapper.updateTmTask(tmTaskNotExam); } if (scrapAudit.getAuditDetailList() != null && scrapAudit.getAuditDetailList().size() > 0) { if (auditDetailList != null) { diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairAuditDetailsMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairAuditDetailsMapper.xml index c3b87750..bd1a108e 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairAuditDetailsMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairAuditDetailsMapper.xml @@ -25,7 +25,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, task_id, repair_id, ma_id, type_id, repair_num, repaired_num, scrap_num, audit_by, audit_time, audit_remark, status, create_by, create_time, update_by, update_time, remark, company_id from repair_audit_details + select id, task_id, repair_id, ma_id, type_id, repair_num, repaired_num, scrap_num, audit_by, audit_time, + audit_remark, status, create_by, create_time, update_by, update_time, remark, company_id + from repair_audit_details @@ -52,34 +54,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -316,9 +329,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where task_id = #{taskId} - - where task_id = #{taskId} and rd.STATUS = '0' + where task_id = #{taskId} and `status` = '0' + + select + task_id, GROUP_CONCAT(type_name) as typeName + from + (select distinct rad.task_id, mt1.type_name + from repair_audit_details rad + left join ma_type mt on rad.type_id = mt.type_id + left join ma_type mt1 on mt.parent_id = mt1.type_id + where rad.task_id in + + #{taskId} + + ) t + GROUP BY task_id + + \ No newline at end of file