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 a3908b85a..74b5e10e6 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 @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.mes.service.moldtaskmanagement; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 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; @@ -12,6 +14,7 @@ import cn.iocoder.yudao.module.common.dal.mysql.moldticketresults.MoldTicketResu import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.MoldTaskManagementCreateTicketReqVO; import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.MoldTaskManagementPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.moldtaskmanagement.vo.MoldTaskManagementSaveReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.moldticketresults.enums.MoldJobResultEnum; import cn.iocoder.yudao.module.mes.dal.dataobject.moldplanmaintenance.MoldPlanMaintenanceDO; import cn.iocoder.yudao.module.mes.dal.dataobject.moldsubject.MoldSubjectDO; import cn.iocoder.yudao.module.mes.dal.dataobject.moldtaskmanagement.MoldTaskManagementDO; @@ -29,6 +32,8 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -166,6 +171,7 @@ public class MoldTaskManagementServiceImpl implements MoldTaskManagementService moldticketManagementDO.setTaskEndTime(endDate !=null ? endDate.atStartOfDay(): null); moldticketManagementMapper.insert(moldticketManagementDO); + List createdResults = new ArrayList<>(); for (int index = 0; index < moldSubjectDOList.size(); index++) { MoldSubjectDO moldSubjectDO = moldSubjectDOList.get(index); MoldTicketResultsDO moldticketResultsDO = new MoldTicketResultsDO(); @@ -178,7 +184,10 @@ public class MoldTaskManagementServiceImpl implements MoldTaskManagementService mergeTicketResultData(moldticketResultsDO, findMatchedTicketResult(ticketResultsList, moldSubjectDO.getSubjectName(), index)); moldticketResultsMapper.insert(moldticketResultsDO); + createdResults.add(moldticketResultsDO); } + + handleInspectionResult(moldticketManagementDO, createdResults); } } @@ -227,6 +236,35 @@ public class MoldTaskManagementServiceImpl implements MoldTaskManagementService } } + private void handleInspectionResult(MoldTicketManagementDO moldticketManagementDO, + List ticketResultsList) { + if (moldticketManagementDO == null || CollectionUtils.isEmpty(ticketResultsList)) { + return; + } + + boolean hasPending = ticketResultsList.stream() + .anyMatch(result -> result.getInspectionResult() == null + || result.getInspectionResult().equals(MoldJobResultEnum.PENDING.getCode())); + if (hasPending) { + return; + } + + moldticketManagementDO.setTaskTime(LocalDateTime.now()); + moldticketManagementDO.setJobStatus(1); + + boolean hasFail = ticketResultsList.stream() + .anyMatch(result -> result.getInspectionResult() != null + && result.getInspectionResult().equals(MoldJobResultEnum.FAIL.getCode())); + moldticketManagementDO.setJobResult(hasFail ? MoldJobResultEnum.FAIL.getCode() : MoldJobResultEnum.PASS.getCode()); + + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + if (loginUser != null) { + moldticketManagementDO.setOperator(String.valueOf(loginUser.getId())); + } + + moldticketManagementMapper.updateById(moldticketManagementDO); + } + public static String generatePrefixedOrderNo() { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String date = sdf.format(new Date());