From d6879bb617c2790b614e704fe49761afe7c2f1c6 Mon Sep 17 00:00:00 2001 From: HuangHuiKang Date: Tue, 9 Jun 2026 15:36:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E6=A8=A1=E5=85=B7?= =?UTF-8?q?=E7=BB=84=E7=BB=B4=E6=8A=A4=E7=82=B9=E6=A3=80/=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/MoldPlanMaintenanceRespVO.java | 6 +- .../MoldTaskManagementCreateTicketReqVO.java | 7 ++ .../MoldPlanMaintenanceDO.java | 9 ++- .../MoldPlanMaintenanceServiceImpl.java | 8 ++- .../MoldTaskManagementServiceImpl.java | 71 ++++++++++++++++--- 5 files changed, 90 insertions(+), 11 deletions(-) diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceRespVO.java index e5cab10f7..ecf256ae9 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldplanmaintenance/vo/MoldPlanMaintenanceRespVO.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.mes.controller.admin.moldplanmaintenance.vo; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -36,7 +37,10 @@ public class MoldPlanMaintenanceRespVO extends BaseDO { @Schema(description = "项目集合ids") private List subjectIds; + @Schema(description = "项目集合") + private List subjectList; + @Schema(description = "创建人名字") @ExcelProperty("创建人名字") private String creatorName; -} \ No newline at end of file +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementCreateTicketReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementCreateTicketReqVO.java index 1e7121bfd..e736269dc 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementCreateTicketReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldtaskmanagement/vo/MoldTaskManagementCreateTicketReqVO.java @@ -1,11 +1,14 @@ package cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo; import com.fasterxml.jackson.annotation.JsonFormat; +import cn.iocoder.yudao.module.common.controller.admin.moldticketresults.vo.MoldTicketResultsSaveReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; +import java.util.List; @Schema(description = "管理后台 - 模具任务管理直接创建工单 Request VO") @Data @@ -46,4 +49,8 @@ public class MoldTaskManagementCreateTicketReqVO { @Schema(description = "是否启用") private Boolean enabled; + + @Schema(description = "工单检验结果集合,可直接传入创建") + @Valid + private List ticketResultsList; } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldplanmaintenance/MoldPlanMaintenanceDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldplanmaintenance/MoldPlanMaintenanceDO.java index a386a4117..6c1e4248a 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldplanmaintenance/MoldPlanMaintenanceDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/moldplanmaintenance/MoldPlanMaintenanceDO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance; +import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -45,4 +46,10 @@ public class MoldPlanMaintenanceDO extends BaseDO { */ @TableField(exist = false) private List subjectIds; -} \ No newline at end of file + + /** + * 项目集合 + */ + @TableField(exist = false) + private List subjectList; +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceServiceImpl.java index 93410d4d9..73bb344e5 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldplanmaintenance/MoldPlanMaintenanceServiceImpl.java @@ -158,12 +158,18 @@ public class MoldPlanMaintenanceServiceImpl implements MoldPlanMaintenanceServic PageResult moldplanMaintenanceDOPageResult = moldplanMaintenanceMapper.selectPage(pageReqVO); for (MoldPlanMaintenanceDO moldplanMaintenanceDO : moldplanMaintenanceDOPageResult.getList()) { List ids = new ArrayList<>(); + List subjectList = new ArrayList<>(); List subjectMoldPlanDOList = subjectMoldPlanMapper.selectList(Wrappers.lambdaQuery() .eq(SubjectMoldPlanDO::getPlanId, moldplanMaintenanceDO.getId())); for (SubjectMoldPlanDO subjectMoldPlanDO : subjectMoldPlanDOList) { ids.add(subjectMoldPlanDO.getSubjectId()); + MoldSubjectDO moldSubjectDO = moldSubjectMapper.selectById(subjectMoldPlanDO.getSubjectId()); + if (moldSubjectDO != null) { + subjectList.add(moldSubjectDO); + } } moldplanMaintenanceDO.setSubjectIds(ids); + moldplanMaintenanceDO.setSubjectList(subjectList); } @@ -189,4 +195,4 @@ public class MoldPlanMaintenanceServiceImpl implements MoldPlanMaintenanceServic return moldSubjectDOList; } -} \ No newline at end of file +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java index 16c8789fe..a3908b85a 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldtaskmanagement/MoldTaskManagementServiceImpl.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.mes.service.moldtaskmanagement; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.common.controller.admin.moldticketresults.vo.MoldTicketResultsSaveReqVO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldBrandDO; import cn.iocoder.yudao.module.common.dal.dataobject.moldticketmanagement.MoldTicketManagementDO; import cn.iocoder.yudao.module.common.dal.dataobject.moldticketresults.MoldTicketResultsDO; @@ -31,6 +32,7 @@ import java.time.LocalDate; import java.util.Arrays; import java.util.Date; import java.util.List; +import java.util.Objects; import java.util.Random; import java.util.stream.Collectors; @@ -126,22 +128,31 @@ public class MoldTaskManagementServiceImpl implements MoldTaskManagementService } createMoldTicketInternal(moldtaskManagementDO.getId(), moldtaskManagementDO.getProjectForm(), moldtaskManagementDO.getTaskType(), moldtaskManagementDO.getName(), - moldtaskManagementDO.getEndDate(), moldtaskManagementDO.getMoldList()); + moldtaskManagementDO.getEndDate(), moldtaskManagementDO.getMoldList(), null); } @Override public void createMoldTicketDirect(MoldTaskManagementCreateTicketReqVO createReqVO) { createMoldTicketInternal(createReqVO.getId(), createReqVO.getProjectForm(), createReqVO.getTaskType(), - createReqVO.getName(), createReqVO.getEndDate()!=null?LocalDate.parse(createReqVO.getEndDate()):null, createReqVO.getMoldList()); + createReqVO.getName(), createReqVO.getEndDate()!=null?LocalDate.parse(createReqVO.getEndDate()):null, + createReqVO.getMoldList(), createReqVO.getTicketResultsList()); } private void createMoldTicketInternal(Long taskId, Long planId, Integer taskType, String configName, - LocalDate endDate, String moldList) { + LocalDate endDate, String moldList, + List ticketResultsList) { List moldIds = Arrays.stream(moldList.split(",")) .map(String::trim) .map(Long::valueOf) .collect(Collectors.toList()); + List subjectmoldPlanDOList = subjectmoldPlanMapper.selectList( + Wrappers.lambdaQuery().eq(SubjectMoldPlanDO::getPlanId, planId)); + List moldSubjectDOList = subjectmoldPlanDOList.stream() + .map(subjectmoldPlanDO -> moldSubjectMapper.selectById(subjectmoldPlanDO.getSubjectId())) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + for (Long moldId : moldIds) { MoldBrandDO moldDO = moldBrandMapper.selectById(moldId); @@ -155,11 +166,8 @@ public class MoldTaskManagementServiceImpl implements MoldTaskManagementService moldticketManagementDO.setTaskEndTime(endDate !=null ? endDate.atStartOfDay(): null); moldticketManagementMapper.insert(moldticketManagementDO); - List subjectmoldPlanDOList = subjectmoldPlanMapper.selectList( - Wrappers.lambdaQuery().eq(SubjectMoldPlanDO::getPlanId, planId)); - for (SubjectMoldPlanDO subjectmoldPlanDO : subjectmoldPlanDOList) { - MoldSubjectDO moldSubjectDO = moldSubjectMapper.selectById(subjectmoldPlanDO.getSubjectId()); - + for (int index = 0; index < moldSubjectDOList.size(); index++) { + MoldSubjectDO moldSubjectDO = moldSubjectDOList.get(index); MoldTicketResultsDO moldticketResultsDO = new MoldTicketResultsDO(); moldticketResultsDO.setInspectionItemName(moldSubjectDO.getSubjectName()); moldticketResultsDO.setInspectionMethod(moldSubjectDO.getInspectionMethod()); @@ -167,11 +175,58 @@ public class MoldTaskManagementServiceImpl implements MoldTaskManagementService moldticketResultsDO.setManagementId(moldticketManagementDO.getId()); moldticketResultsDO.setMoldId(moldId); moldticketResultsDO.setValueType(moldSubjectDO.getValueType()); + mergeTicketResultData(moldticketResultsDO, + findMatchedTicketResult(ticketResultsList, moldSubjectDO.getSubjectName(), index)); moldticketResultsMapper.insert(moldticketResultsDO); } } } + private MoldTicketResultsSaveReqVO findMatchedTicketResult(List ticketResultsList, + String subjectName, int index) { + if (CollectionUtils.isEmpty(ticketResultsList)) { + return null; + } + for (MoldTicketResultsSaveReqVO ticketResults : ticketResultsList) { + if (ticketResults != null && subjectName != null + && subjectName.equals(ticketResults.getInspectionItemName())) { + return ticketResults; + } + } + return index < ticketResultsList.size() ? ticketResultsList.get(index) : null; + } + + private void mergeTicketResultData(MoldTicketResultsDO moldticketResultsDO, + MoldTicketResultsSaveReqVO ticketResults) { + if (ticketResults == null) { + return; + } + if (ticketResults.getInspectionMethod() != null) { + moldticketResultsDO.setInspectionMethod(ticketResults.getInspectionMethod()); + } + if (ticketResults.getJudgmentCriteria() != null) { + moldticketResultsDO.setJudgmentCriteria(ticketResults.getJudgmentCriteria()); + } + if (ticketResults.getInspectionResult() != null) { + moldticketResultsDO.setInspectionResult(ticketResults.getInspectionResult()); + } + if (ticketResults.getImages() != null) { + moldticketResultsDO.setImages(ticketResults.getImages()); + } + if (ticketResults.getRemark() != null) { + moldticketResultsDO.setRemark(ticketResults.getRemark()); + } + if (ticketResults.getInspectionTime() != null) { + moldticketResultsDO.setInspectionTime(ticketResults.getInspectionTime()); + } + if (ticketResults.getValueType() != null) { + moldticketResultsDO.setValueType(ticketResults.getValueType()); + } + if (ticketResults.getTextInput() != null) { + moldticketResultsDO.setTextInput(ticketResults.getTextInput()); + } + } + public static String generatePrefixedOrderNo() { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String date = sdf.format(new Date());