From 8b43954926db6b4df6a61ab6e04d6cb11189069d Mon Sep 17 00:00:00 2001 From: 吴健 <14790700720@163.com> Date: 星期二, 15 四月 2025 08:54:08 +0800 Subject: [PATCH] add-415 --- jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java | 132 +++++++++++++++++++++++++++++++++----------- 1 files changed, 99 insertions(+), 33 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java index f63d690..5be6644 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java +++ b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java @@ -1,5 +1,7 @@ package com.jcdm.main.om.productionOrde.controller; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.jcdm.common.annotation.Log; import com.jcdm.common.core.controller.BaseController; @@ -15,6 +17,7 @@ import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo; import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService; import com.jcdm.main.webservice.service.ReceivingServices; +import com.kangaroohy.milo.model.ReadWriteEntity; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -23,7 +26,10 @@ import javax.servlet.http.HttpServletResponse; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; import static org.apache.commons.lang3.SystemUtils.getUserName; @@ -54,6 +60,15 @@ public TableDataInfo list(OmProductionOrdeInfo omProductionOrdeInfo) { startPage(); + if (StrUtil.isNotBlank(omProductionOrdeInfo.getEngineNo())){ + BsOrderScheduling bsOrderScheduling = bsOrderSchedulingService.selectBsOrderSchedulingSNCode(omProductionOrdeInfo.getEngineNo()); + if (ObjectUtil.isNotEmpty(bsOrderScheduling)){ + String orderNo = bsOrderScheduling.getOrderNo(); + if (StrUtil.isNotBlank(orderNo)){ + omProductionOrdeInfo.setWorkOrderNo(orderNo); + } + } + } List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo); return getDataTable(list); } @@ -88,6 +103,21 @@ @GetMapping("/ids/{ids}") public AjaxResult getInfo(@PathVariable Long[] ids) { + List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrderListById(ids); + if (CollUtil.isNotEmpty(omProductionOrdeInfos)){ + List<String> collect = omProductionOrdeInfos.stream().map(OmProductionOrdeInfo::getProductCode).distinct().collect(Collectors.toList()); + if (CollUtil.isNotEmpty(collect)){ + if (collect.size()>1){ + return error("瀛樺湪澶氫釜涓嶅悓鐨勪骇鍝佺紪鍙凤紝璇锋鏌�"); + } + } + List<String> collect1 = omProductionOrdeInfos.stream().map(OmProductionOrdeInfo::getOrderStatus).distinct().collect(Collectors.toList()); + if (CollUtil.isNotEmpty(collect1)){ + if (collect1.size()>1){ + return error("瀛樺湪澶氫釜涓嶅悓鐨勫伐鍗曠姸鎬侊紝璇锋鏌�"); + } + } + } return success(omProductionOrdeInfoService.selectOmProductionOrdeInfoByIds(ids)); } @@ -120,40 +150,72 @@ String dateTimeRule = omProductionOrdeInfo.getDateTimeRule(); - Long[] id=omProductionOrdeInfo.getIdNums(); - OmProductionOrdeInfo ProductionOrde = new OmProductionOrdeInfo(); - for (int a=0;a<id.length;a++){ - ProductionOrde=omProductionOrdeInfoService.selectOmProductionOrdeInfoById(id[a]); - Integer planQty = Math.toIntExact(ProductionOrde.getPlanQty());//璁″垝鏁伴噺 - if(planQty>0) { - for (int i = 0; i < planQty; i++) { - String engineNo = omProductionOrdeInfo.getTypeZ() + " " + dateTimeRule + StringUtils.leftPad(String.valueOf(startCode), 3, "0"); - BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); - bsOrderScheduling.setOrderNo(ProductionOrde.getWorkOrderNo()); - bsOrderScheduling.setWorkingHours(String.valueOf(i+1)); - bsOrderScheduling.setModel(ProductionOrde.getTypeZ()); - bsOrderScheduling.setEngineNo(engineNo); - bsOrderScheduling.setProductionStatus("1"); - bsOrderScheduling.setOperator(getUserName()); - bsOrderScheduling.setOperateTime(fomateDate); - bsOrderScheduling.setProductType(ProductionOrde.getTypeL());//浜у搧绫诲瀷 - bsOrderScheduling.setWhetherOrPrint("0"); - bsOrderSchedulingService.insertBsOrderScheduling(bsOrderScheduling); - startCode++; - } + //鏍¢獙缂栧彿閲嶅 + BsModelNumber bsModelNumberCheck = new BsModelNumber(); + bsModelNumberCheck.setModel(omProductionOrdeInfo.getTypeZ()); + bsModelNumberCheck.setModelDate(dateTimeRule); + List<BsModelNumber> numbers = bsModelNumberService.selectBsModelNumberList(bsModelNumberCheck); + BsModelNumber bsModelNumber = new BsModelNumber(); + Integer maxNum = 0; + if (CollUtil.isNotEmpty(numbers)){ + bsModelNumber = numbers.get(0); + String maxnumValue = bsModelNumber.getMaxnumValue(); + if (StrUtil.isNotBlank(maxnumValue)){ + maxNum = Integer.parseInt(maxnumValue); } - //鏇存柊宸ュ崟鐘舵�� - ProductionOrde.setOrderStatus("2"); - omProductionOrdeInfoService.updateOmProductionOrdeInfo(ProductionOrde); + } + if (startCode<=maxNum){ + return AjaxResult.error("缂栧彿閲嶅锛岃妫�鏌ワ紒"); + } + Long[] id=omProductionOrdeInfo.getIdNums(); + List<OmProductionOrdeInfo> omProductionOrdeInfoList = omProductionOrdeInfoService.selectOmProductionOrderListById(id); + if (CollUtil.isNotEmpty(omProductionOrdeInfoList)){ + omProductionOrdeInfoList.forEach(x -> { + if (ObjectUtil.isNotNull(x.getWorkOrderNo())){ + long l = Long.parseLong(x.getWorkOrderNo()); + x.setWorkOrderNoLong(l); + } + }); + List<OmProductionOrdeInfo> sortList = omProductionOrdeInfoList.stream().sorted(Comparator.comparing(OmProductionOrdeInfo::getWorkOrderNoLong)).collect(Collectors.toList()); + for (OmProductionOrdeInfo ProductionOrde : sortList) { + Integer planQty = Math.toIntExact(ProductionOrde.getPlanQty());//璁″垝鏁伴噺 + if(planQty>0) { + for (int i = 0; i < planQty; i++) { + String engineNo = omProductionOrdeInfo.getTypeZ() + " " + dateTimeRule + StringUtils.leftPad(String.valueOf(startCode), 3, "0"); + BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); + bsOrderScheduling.setOrderNo(ProductionOrde.getWorkOrderNo()); + bsOrderScheduling.setWorkingHours(String.valueOf(i+1)); + bsOrderScheduling.setModel(ProductionOrde.getTypeZ()); + bsOrderScheduling.setEngineNo(engineNo); + bsOrderScheduling.setProductionStatus("1"); + bsOrderScheduling.setOperator(getUserName()); + bsOrderScheduling.setOperateTime(fomateDate); + bsOrderScheduling.setProductType(ProductionOrde.getTypeL());//浜у搧绫诲瀷 + bsOrderScheduling.setWhetherOrPrint("0"); + bsOrderSchedulingService.insertBsOrderScheduling(bsOrderScheduling); + startCode++; + } + } + //鏇存柊宸ュ崟鐘舵�� + ProductionOrde.setOrderStatus("2"); + omProductionOrdeInfoService.updateOmProductionOrdeInfo(ProductionOrde); + } } //鏂板鏈哄瀷搴忓彿 - BsModelNumber bsModelNumber = new BsModelNumber(); - bsModelNumber.setModel(omProductionOrdeInfo.getTypeZ()); - bsModelNumber.setModelDate(dateTimeRule); - bsModelNumber.setMaxnumValue((startCode - 1) + ""); - bsModelNumber.setSaveTime(fomateDate); - bsModelNumber.setLastNumber((startCode - 1) + ""); - bsModelNumberService.insertBsModelNumber(bsModelNumber); + if (ObjectUtil.isNotNull(bsModelNumber.getId())){ + bsModelNumber.setMaxnumValue((startCode - 1) + ""); + bsModelNumber.setSaveTime(fomateDate); + bsModelNumber.setLastNumber((startCode - 1) + ""); + bsModelNumberService.updateBsModelNumber(bsModelNumber); + } else { + BsModelNumber bsModelNumberSave = new BsModelNumber(); + bsModelNumberSave.setModel(omProductionOrdeInfo.getTypeZ()); + bsModelNumberSave.setModelDate(dateTimeRule); + bsModelNumberSave.setMaxnumValue((startCode - 1) + ""); + bsModelNumberSave.setSaveTime(fomateDate); + bsModelNumberSave.setLastNumber((startCode - 1) + ""); + bsModelNumberService.insertBsModelNumber(bsModelNumberSave); + } return toAjax(1); } @@ -204,9 +266,13 @@ if (StrUtil.isBlank(factory)){ throw new ServiceException("璇烽�夋嫨宸ュ巶缂栧彿"); } - List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo); - if(omProductionOrdeInfos.size() == 0){ + OmProductionOrdeInfo queryProductOrder = new OmProductionOrdeInfo(); + queryProductOrder.setWorkshopCode(factory); + queryProductOrder.setProductionNotice(productionNotice); + List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(queryProductOrder); + if(CollUtil.isEmpty(omProductionOrdeInfos)){ try { + logger.info("鎺ユ敹宸ュ崟鍙凤細,{}",productionNotice); ReceivingServices.insertWebserviceData(factory,productionNotice); } catch (Exception e) { return error("鎺ユ敹澶辫触锛佽妫�鏌ラ�氱煡鍗曞彿"); -- Gitblit v1.9.3