diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java index e8aa51cd..a77b7ac8 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java @@ -159,7 +159,7 @@ public class WorkPlan extends BaseEntity { * 不合格数量 */ @Schema(description = "不合格数量") - private Integer unqualifiedQty; + private Double unqualifiedQty; /** * 实际开始 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/ReviewSheetConst.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/ReviewSheetConst.java index c8a9d68a..79beb54d 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/ReviewSheetConst.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/ReviewSheetConst.java @@ -55,7 +55,7 @@ public interface ReviewSheetConst { /** * 初始化 */ - Integer REVIEW_STATUS_INIT = -1; + Short REVIEW_STATUS_INIT = -1; /** * 让步接收 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java index 49c15568..1beacbdf 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java @@ -180,6 +180,19 @@ public class InspectionTask extends BaseEntity { */ public static final String COL_PREPARE_WORK_MINUTE = "PREPARE_WORK_MINUTE"; + /** + * 未检验 + */ + public static Integer CHECK_RESULT_NOT = -1; + /** + * 合格 + */ + public static Integer CHECK_RESULT_OK = 1; + /** + * 不合格 + */ + public static Integer CHECK_RESULT_NO = 2; + /** * [检验任务]编码 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java index ec66f6d3..1c8d1baa 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java @@ -306,7 +306,7 @@ public class ReviewSheet extends BaseEntity { * 审理状态 */ @Schema(description = "审理状态") - private Integer reviewStatus; + private Short reviewStatus; /** * 业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理; */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/AiWebApiController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/AiWebApiController.java index 71658e0a..52d4de88 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/AiWebApiController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/AiWebApiController.java @@ -7,6 +7,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; +import org.springblade.common.exception.BusinessException; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.desk.oldv1.constant.Constant; import org.springblade.desk.oldv1.pojo.ResultInfo; @@ -52,4 +53,22 @@ public class AiWebApiController extends BladeController { return ResultInfo.ok(); } + @PostMapping(value = "/deleteReviewOrder") + @Operation(summary = "审理结束回调接口") + public ResultInfo deleteReviewOrder(HttpServletRequest request) throws Exception { + JSONObject params = (JSONObject) request.getAttribute(Constant.WEBAPI_REQUEST_PARAMETERS); + // 添加 调试log + log.info("审理单删除调用接口 params = {}", params); + if (params == null || params.size() == 0) { + throw new BusinessException("参数传递异常!"); + } + try { + String trialId = params.getString("trialId"); + qcReviewSheetService.deleteReviewOrder(trialId); + } catch (Exception e) { + log.error("审理单删除调用接口{}", params.toJSONString(), e); + } + return ResultInfo.ok(); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java index df76fe20..85363183 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java @@ -11,6 +11,7 @@ import org.springblade.desk.produce.pojo.vo.BatchPrepareVO; import org.springblade.desk.produce.pojo.vo.QueryByReadStatusVO; import org.springblade.desk.produce.pojo.vo.WorkOrderVO; import org.springblade.desk.produce.pojo.vo.WorkPlanRunVO; +import org.springblade.desk.quality.pojo.entity.InspectionTask; import org.springblade.scheduling.pojo.entity.WorkOrderEntity; import org.springblade.desk.produce.pojo.vo.*; import java.util.List; @@ -217,7 +218,7 @@ public interface IWorkOrderService extends BaseService { * @param wp 工单计划 * @param wo 工单 */ - void qualified(WorkPlan wp, WorkOrder wo, String userName); + void qualified(WorkPlan wp, InspectionTask taskWorkOrder ,WorkOrder wo, String userName); /** *

方法名: setRbFilePreserveData

diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java index a5c9097a..65e193bf 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java @@ -213,7 +213,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl() @@ -344,7 +344,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl { List listErpNew(IPage page, @Param("q") ReviewSheetErpSearch search); + + List queryGdByCode(String trialId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml index fb7202fe..3989da71 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml @@ -346,4 +346,7 @@ and lotno like concat(concat('%', #{q.dutyBatNo}),'%') + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java index bf6632f5..23578e92 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java @@ -37,4 +37,6 @@ public interface WorkPlanItemMapper extends BaseMapper { * @return List */ List exportWorkPlanItem(@Param("ew") Wrapper queryWrapper); + + List listByWoId(Long woId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml index 01936f64..7367603d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml @@ -37,4 +37,16 @@ SELECT * FROM QA_WORK_PLAN_ITEM ${ew.customSqlSegment} + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java index c521d7d4..86b886ec 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java @@ -16,6 +16,8 @@ import org.springblade.core.tool.api.R; import org.springblade.desk.produce.pojo.dto.PrintThicknessCraftCard; import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveDetailEntity; import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveSlotEntity; +import org.springblade.desk.produce.pojo.entity.WorkOrder; +import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.quality.excel.InspectionTaskExcel; import org.springblade.desk.quality.pojo.entity.InspectionTask; import org.springblade.desk.quality.pojo.request.InspectionTaskSearch; @@ -131,5 +133,7 @@ public interface IInspectionTaskService extends BaseService { List printThicknessList(List idArr); List getByRfpsIdMesNew(Long rfpsId); - public void saveOrEditMes(List submitList, List deleteIds, BladeUser curUserInfo,Long rfpId); + void saveOrEditMes(List submitList, List deleteIds, BladeUser curUserInfo, Long rfpId); + + void computeOrderQty(WorkPlan wp, InspectionTask task, WorkOrder wo, int checkQ, int testQty, int lossQty, int scrapQty); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java index 9772b7ea..442cbc5b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java @@ -55,4 +55,10 @@ public interface IWorkPlanItemService extends BaseService { void saveCheckItem(WorkPlan wp, List checkItemList, List deleteIds, String s); void deleteItem(List deleteIds); + + List listByWpId(Long wpId, Integer checkResultNo); + + List listByWpId(Long wpId); + + List listByWoId(Long woId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java index 10078e39..8f30c29a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java @@ -95,7 +95,7 @@ import static com.fasterxml.jackson.databind.type.LogicalType.DateTime; @EqualsAndHashCode(callSuper = true) @Slf4j public class InspectionTaskServiceImpl extends BaseServiceImpl - implements IInspectionTaskService , ApplicationContextAware { + implements IInspectionTaskService, ApplicationContextAware { @Resource private IInspectionItemService itemService; @@ -124,7 +124,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); List msgListNew = new ArrayList<>(); - if(null != parts && parts.size() > 0){ + if (null != parts && parts.size() > 0) { - if(null != processId && 107L == processId){ + if (null != processId && 107L == processId) { LambdaQueryWrapper qw = Wrappers.lambdaQuery(RemindMsg.class) .eq(RemindMsg::getPartCode, parts.get(0).getPartCode()) // .eq(RemindMsg::getQualityLevel, prodIdent) @@ -239,7 +238,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl qw = Wrappers.lambdaQuery(RemindMsg.class) .eq(RemindMsg::getPartCode, parts.get(0).getPartCode()) // .eq(RemindMsg::getQualityLevel, prodIdent) @@ -275,10 +274,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl list = partService.getPartSubList(detailDetail.getPartCode(), null); List colorMsges = new ArrayList<>(); - if(null != list && list.size() > 0){ - for(DsPartEntity partEntity : list){ + if (null != list && list.size() > 0) { + for (DsPartEntity partEntity : list) { List msges = new ArrayList<>(); - LambdaQueryWrapper qw = Wrappers.lambdaQuery(RemindMsg.class) + LambdaQueryWrapper qw = Wrappers.lambdaQuery(RemindMsg.class) .eq(RemindMsg::getSubPartCode, partEntity.getPartCode()) // .eq(RemindMsg::getQualityLevel, prodIdent) .eq(RemindMsg::getRemindMsgType, 2L) @@ -509,16 +508,16 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl 0){ + if (null != wpItemVO.getWpItemDetailList() && wpItemVO.getWpItemDetailList().size() > 0) { QueryWrapper qw = new QueryWrapper<>(); qw.eq("WORK_PLAN_ITEM_ID", wpItemDB.getId()); wpItemDetailService.remove(qw); @@ -568,7 +567,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl 0){ + if (null != wpItemVO.getThicknessList() && wpItemVO.getThicknessList().size() > 0) { for (WorkPlanItemThicknessVO wpItemDetailVO : wpItemVO.getThicknessList()) { WorkPlanThicknessDetail wpItemDetail = new WorkPlanThicknessDetail(); BeanUtil.copyProperties(wpItemDetailVO, wpItemDetail); @@ -590,7 +589,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl listSearch(IPage page, InspectionTaskSearch search) { List listVO = baseMapper.listSearch(page, search); @@ -651,8 +649,8 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl qwpart = new QueryWrapper<>(); qwpart.eq("PART_CODE", pjYieldOrder.getPartCode()); List partList = partService.list(qwpart); - DsPartEntity dsPart = new DsPartEntity(); - if(partList != null && partList.size() > 0){ + DsPartEntity dsPart = new DsPartEntity(); + if (partList != null && partList.size() > 0) { dsPart = partList.get(0); } @@ -735,7 +733,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl qw = new QueryWrapper<>(); qw.eq("WC_ID", workPlan.getId()); List auditFileList = auditFileService.list(qw); - if(auditFileList != null && auditFileList.size() > 0){ + if (auditFileList != null && auditFileList.size() > 0) { workPlan.setAuditFile(auditFileList.get(0)); } @@ -799,10 +797,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl0 && workPlan.getReceiveMan() != null ) { + if (null != workPlan.getOcId() && workPlan.getOcId() > 0 && workPlan.getReceiveMan() != null) { R user = userClient.userInfoById(workPlan.getReceiveMan()); - if(null != user && null != user.getData() && null != user.getData().getAccount()){ + if (null != user && null != user.getData() && null != user.getData().getAccount()) { // workPlan.setCreateMan(workPlan.getReceiveMan().getUserName()); MakeRec prMakeRec = workPlanMapper.getByWpId(workPlan.getId()); if (prMakeRec != null) { @@ -814,7 +812,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl prList; List dsRbFilePreserveSlotList = new ArrayList<>(); - QueryWrapper qwteam= new QueryWrapper<>(); + QueryWrapper qwteam = new QueryWrapper<>(); qwteam.eq("TS_ID", workPlan.getMakeTeam()); List teamList = centerTeamService.list(qwteam); CenterTeam bsCenterTeam = null; @@ -852,7 +850,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl preserveSlotList; MesQcProduceRunEntity boxInfo = new MesQcProduceRunEntity(); @@ -885,7 +883,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); - if(runs != null && runs.size() > 0){ + if (runs != null && runs.size() > 0) { boxInfo = runs.get(0); } if (StringUtils.isNotBlank(boxInfo.getInDate())) { @@ -927,9 +925,9 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl dsRbFilePreserveList = null; - if (workPlan.getPpsId() != null){ + if (workPlan.getPpsId() != null) { BsProcessSetEntity process = processSetService.getById(workPlan.getPpsId()); - if("喷砂".equals(process.getName()) || "涂色标".equals(process.getName())) { + if ("喷砂".equals(process.getName()) || "涂色标".equals(process.getName())) { dsRbFilePreserveList = workPlanMapper.getDataByWcIdAndPpsId(null, workPlan.getPpsId(), Boolean.TRUE); } else { @@ -944,7 +942,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); - if(runs != null && runs.size() > 0){ + if (runs != null && runs.size() > 0) { boxInfo = runs.get(0); } // 烘箱信息(从设备,工装使用记录获取) @@ -978,7 +976,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); - if(runs != null && runs.size() > 0){ + if (runs != null && runs.size() > 0) { boxInfo = runs.get(0); } @@ -1536,10 +1533,9 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl= 0 && countNO <= itemList.size()) { // 不合格 @@ -1572,8 +1568,14 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("part_code", yieldOrder.getPartCode()); List dsPartList = partService.list(queryWrapper); DsPartEntity dsPart = new DsPartEntity(); - if(null != dsPartList && dsPartList.size() > 0){ + if (null != dsPartList && dsPartList.size() > 0) { dsPart = dsPartList.get(0); } @@ -1641,10 +1643,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl user = userClient.userInfoById(prWorkPlanItem.getCheckUserId()); - if(null != user && null != user.getData()){ + if (null != user && null != user.getData()) { printChildCheck.setCheckName(user.getData().getRealName()); } } @@ -1699,7 +1701,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl planList, List moduleList) { JSONObject obj = new JSONObject(); // 订单信息 - WorkOrder prWorkOrder =workOrderMapper.selectById(woId); + WorkOrder prWorkOrder = workOrderMapper.selectById(woId); List subPrWorkOrderList = this.checkOrderSj(prWorkOrder); YieldOrder yieldOrder = yieldOrderMapper.selectById(prWorkOrder.getYoId()); @@ -1708,7 +1710,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl dsPartList = partService.list(queryWrapper); DsPartEntity dsPart = new DsPartEntity(); - if(null != dsPartList && dsPartList.size() > 0){ + if (null != dsPartList && dsPartList.size() > 0) { dsPart = dsPartList.get(0); } obj.put("prWorkOrder", prWorkOrder); @@ -1761,6 +1763,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl getCheckListDetail(List checkList, List piLst, Boolean eleOrPrint) { if (piLst != null && piLst.size() > 0) { @@ -1789,16 +1792,16 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl 0 ? pi.getTestQty().toString() : ""); // 检验结果 - if(0==pi.getCheckResult()){ + if (0 == pi.getCheckResult()) { cc.setCheckResult("未检验"); } - if(1==pi.getCheckResult()){ + if (1 == pi.getCheckResult()) { cc.setCheckResult("合格"); } - if(2==pi.getCheckResult()){ + if (2 == pi.getCheckResult()) { cc.setCheckResult("不合格"); } - if(-1==pi.getCheckResult()){ + if (-1 == pi.getCheckResult()) { cc.setCheckResult("NA"); } // cc.setCheckResult(!"未检验".equals(pi.getCheckResult()) ? pi.getCheckResult() : null); @@ -1806,14 +1809,13 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl user = userClient.userInfoById(pi.getCheckUserId()); String userName = user.getData().getAccount(); - if(null != user && user.getData() != null){ + if (null != user && user.getData() != null) { cc.setCheckName(user.getData().getRealName()); } //zxh 20250212 从nerp获取检验员印章 String checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(userName); - if (eleOrPrint) { cc.setImgUrl(checkManByNewErp); } else { @@ -1823,7 +1825,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl planList, List moduleList) { @@ -1971,8 +1972,9 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl list = workPlanMapper.getByRfpsIdMesNew(id); return list; } + @Override - public void saveOrEditMes(List submitList, List deleteIds, BladeUser curUserInfo,Long rfpId){ + public void saveOrEditMes(List submitList, List deleteIds, BladeUser curUserInfo, Long rfpId) { Map slotNameCountMap = submitList.stream() // 按slotName分组,key=slotName,value=该名称的元素数量 .collect(Collectors.groupingBy(MesRbFilePreserveSlotEntity::getSlotName, Collectors.counting())); @@ -1989,7 +1991,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl qw = new QueryWrapper<>(); qw.eq("WC_ID", prWorkPlan.getId()); List auditFileList = auditFileService.list(qw); - if(auditFileList != null && auditFileList.size() > 0){ + if (auditFileList != null && auditFileList.size() > 0) { prWorkPlan.setAuditFile(auditFileList.get(0)); } // 同槽信息 @@ -2082,10 +2084,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl user = userClient.userInfoById(prWorkPlanItem.getCheckUserId()); - if(null != user && null != user.getData()){ + if (null != user && null != user.getData()) { printChildCheck.setCheckName(user.getData().getRealName()); } } @@ -2110,10 +2112,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl - implements IReviewSheetService { +public class ReviewSheetServiceImpl extends EnBaseServiceImpl implements IReviewSheetService { @Value("${request.newErp.url}") private String newErpUrl; @Resource @@ -99,6 +95,18 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl selectReviewSheetPage(IPage page, ReviewSheetDetailVO reviewSheet) { return page.setRecords(baseMapper.selectReviewSheetPage(page, reviewSheet)); @@ -283,28 +291,128 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl users = userClient.userListByName(reviewMan); + rs.setReviewUserId(CollectionUtils.isNotEmpty(users) ? users.get(0).getId() : null); rs.setMemo(memo); rs.setReviewDate(LocalDateTime.now()); - rs.setReviewStatus((int) resultStatus); // todo: + rs.setReviewStatus(resultStatus); rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE); // 装配模式 if (ReviewSheetConst.MODE_ASSEMBLY.equals(rs.getReviewOrderMode())) { - + // 如果相关零件号存在 报废数量直接扣除 + if (StringUtils.isNotBlank(liabilityPart)) { + if (scrapQty != null && scrapQty > 0) { + //20250407 zxh 装配模式有报废且有相关零件时,校验订单加工数需大于报废数后再进行扣数 + if (wo.getMakeQty() >= scrapQty) { + inspectionTaskService.computeOrderQty(wp, wc, wo, 0, 0, 0, scrapQty); + } + } + } else { // 将报废数累加,不扣生产数量 + if (scrapQty != null && scrapQty > 0) { + if (wc != null) { + wc.setScrapQty(wc.getScrapQty() + scrapQty); + } + if (wo != null) { + wo.setScrapQty(wo.getScrapQty() + scrapQty); + } + } + } } // 零件模式 - if (ReviewSheetConst.MODE_PART.equals(rs.getReviewOrderMode())) { + else if (ReviewSheetConst.MODE_PART.equals(rs.getReviewOrderMode())) { + // 如果有报废数量直接扣除 + if (scrapQty != null && scrapQty > 0) { + //20250329 zxh 审理单多次归档问题处理 + List queryGdByCode = baseMapper.queryGdByCode(trialId); + if (queryGdByCode != null && !queryGdByCode.isEmpty()) { + wo.setScrapQty(wo.getScrapQty() - wc.getScrapQty()); + wo.setMakeQty(wo.getMakeQty() + wc.getScrapQty()); + wp.setWorkQty(wp.getWorkQty() + wc.getScrapQty()); + wp.setScrapQty(wp.getScrapQty() - wc.getScrapQty()); + wc.setScrapQty(0d); + } + inspectionTaskService.computeOrderQty(wp, wc, wo, 0, 0, 0, scrapQty); + } + } + + //如果有返工数量,则直接返工 + if (reworkQty != null && reworkQty > 0) { + wc.setUnqualifiedQty(wo.getMakeQty()); + wc.setReworkQty(Double.valueOf(reworkQty)); + wp.setUnqualifiedQty(wo.getMakeQty()); + } else { + //如果全部报废则更改车间订单为全部报废 + if (wo.getMakeQty().intValue() <= 0) { + //检验完成修改车间订单 + workOrderService.updateStatus(Collections.singletonList(wo.getId()), WorkOrder.RUN_STATUS_SCRAP, null, null); + } else { + // 查询此工序是否有试验项目,如果有说明是检验工序 + List list = workPlanItemService.listByWpId(wp.getId()); + + if (list != null && !list.isEmpty()) { + //修改检验明细为合格 + list = workPlanItemService.listByWpId(wp.getId(), InspectionTask.CHECK_RESULT_NO); + list.forEach(item -> item.setCheckResult(InspectionTask.CHECK_RESULT_OK)); + + //判定是否还有未检验,如果没有,修改检验为合格 + list = workPlanItemService.listByWpId(wp.getId(), InspectionTask.CHECK_RESULT_NOT); + + if (list.isEmpty()) { + // 扣除实验数、消耗数 + List prWorkPlanItemList = workPlanItemService.listByWpId(wp.getId()); + int sumCheckQ = 0, sumTestQty = 0, sumLossQty = 0; + for (WorkPlanItem wpi : prWorkPlanItemList) { + sumCheckQ += wpi.getCheckQty(); + sumTestQty += wpi.getTestQty(); + sumLossQty += wpi.getLossQty(); + } + List prWorkPlanItems = workPlanItemService.listByWoId(wo.getId()); + int sumAllTestQty = 0; + int sumAllLostQty = 0; + for (WorkPlanItem prWorkPlanItem : prWorkPlanItems) { + sumAllTestQty += prWorkPlanItem.getTestQty(); + sumAllLostQty += prWorkPlanItem.getLossQty(); + } + //周新昊 20241104 加日志 + //zxh 20241128 审理单归档后扣除实验数前增加校验 + //zxh 20250423 条件增加||损耗数校验 + if (!(wo.getTestQty().equals(sumAllTestQty)) || !(wo.getLossQty().equals(sumAllLostQty))) { + inspectionTaskService.computeOrderQty(wp, wc, wo, sumCheckQ, sumTestQty, sumLossQty, 0); + } + workOrderService.qualified(wp, wc, wo, userClient.userInfoById(wc.getCheckUserId()).getData().getRealName()); + } else { + wc.setCheckResult(InspectionTask.CHECK_RESULT_NOT); + // 如果还有未检验得试验项目、继续检验 + wo.setRunStatus(WorkOrder.RUN_STATUS_CHECK); + log.info("审理结束回调接口修改订单状态为检验中"); + workOrderService.updateById(wo); + } + } else { + wc.setCheckResult(InspectionTask.CHECK_RESULT_NOT); + wo.setRunStatus(WorkOrder.RUN_STATUS_RECEIVE); + workOrderService.updateById(wo); + } + if (wo.getMakeQty() < 1) { + //检验完成修改车间订单 + workOrderService.updateStatus(Collections.singletonList(wo.getId()), WorkOrder.RUN_STATUS_SCRAP, null, null); + } + } } //zxh 20250617 审理结论为让步接收时,将检验记录中不合格数清零,检验状态改为合格 @@ -312,15 +420,57 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl prWorkPlanItems; + prWorkPlanItems = workPlanItemService.listByWpId(prWorkCheck.getWpId(), InspectionTask.CHECK_RESULT_NOT); + if (prWorkPlanItems != null && !prWorkPlanItems.isEmpty()) { + workOrder.setRunStatus(WorkOrder.RUN_STATUS_CHECK); + log.info("审理单删除调用接口修改订单状态为检验中1"); + } else if (prWorkPlanItems.isEmpty()) { + // 判断是否有试验项目不合格 + prWorkPlanItems = workPlanItemService.listByWpId(prWorkCheck.getWpId(), InspectionTask.CHECK_RESULT_NO); + if (prWorkPlanItems != null && !prWorkPlanItems.isEmpty()) { + workOrder.setRunStatus(WorkOrder.RUN_STATUS_CHECK); + log.info("审理单删除调用接口修改订单状态为检验中2"); + } + } + workOrderService.updateById(workOrder); + } + } } - // todo: mes v1 + this.removeById(reviewSheet); } @Override @@ -494,10 +644,10 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl listByWpId(Long wpId, Integer checkResultNo) { + return this.list(Wrappers.lambdaQuery(WorkPlanItem.class).eq(WorkPlanItem::getWpId, wpId).eq(WorkPlanItem::getCheckResult, checkResultNo)); + } + + @Override + public List listByWpId(Long wpId) { + return this.list(Wrappers.lambdaQuery(WorkPlanItem.class).eq(WorkPlanItem::getWpId, wpId)); + } + + @Override + public List listByWoId(Long woId) { + return baseMapper.listByWoId(woId); + } }