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 | 188 +++++++++++++++++++++++++++++++++------------- 1 files changed, 134 insertions(+), 54 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 3357f1e..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,12 +1,15 @@ package com.jcdm.main.om.productionOrde.controller; -import java.text.SimpleDateFormat; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Date; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - +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; +import com.jcdm.common.core.domain.AjaxResult; +import com.jcdm.common.core.page.TableDataInfo; +import com.jcdm.common.enums.BusinessType; +import com.jcdm.common.exception.ServiceException; +import com.jcdm.common.utils.poi.ExcelUtil; import com.jcdm.main.bs.modelNumber.domain.BsModelNumber; import com.jcdm.main.bs.modelNumber.service.IBsModelNumberService; import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; @@ -14,23 +17,19 @@ 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.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.jcdm.common.annotation.Log; -import com.jcdm.common.core.controller.BaseController; -import com.jcdm.common.core.domain.AjaxResult; -import com.jcdm.common.enums.BusinessType; -import com.jcdm.common.utils.poi.ExcelUtil; -import com.jcdm.common.core.page.TableDataInfo; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +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; @@ -61,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); } @@ -89,6 +97,31 @@ } /** + * 鑾峰彇鐢熶骇宸ュ崟璇︾粏淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('om:productionOrde:query')") + @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)); + } + + /** * 鏂板鐢熶骇宸ュ崟 */ @PreAuthorize("@ss.hasPermi('om:productionOrde:add')") @@ -100,11 +133,12 @@ } /** - * 鏂板鐢熶骇宸ュ崟 + * 鐢熸垚鎸夐挳 */ @PostMapping("/orderSchedulingForBoxCode") public AjaxResult addOrderSchedulingForBoxCode(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo) { + //鑾峰彇褰撳墠鏃堕棿 LocalDateTime date= LocalDateTime.now(); //鍒涘缓鏃ユ湡鏃堕棿瀵硅薄鏍煎紡鍖栧櫒锛屾棩鏈熸牸寮忕被浼硷細 2023-05-23 22:18:38 @@ -112,42 +146,77 @@ //灏嗘椂闂磋浆鍖栦负瀵瑰簲鏍煎紡鐨勫瓧绗︿覆 String fomateDate=date.format(formatter).toString(); - Integer startCode = Integer.parseInt(omProductionOrdeInfo.getStartCode());//寮�濮嬬紪鍙� - Integer planQty = Math.toIntExact(omProductionOrdeInfo.getPlanQty());//璁″垝鏁伴噺 + String dateTimeRule = omProductionOrdeInfo.getDateTimeRule(); - String engineNo = ""; - if(planQty>0) { - for (int i = 0; i < planQty; i++) { - engineNo = omProductionOrdeInfo.getTypeZ() + " " + dateTimeRule + StringUtils.leftPad(String.valueOf(startCode), 3, "0"); - BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); - bsOrderScheduling.setOrderNo(omProductionOrdeInfo.getWorkOrderNo()); - bsOrderScheduling.setModel(omProductionOrdeInfo.getTypeZ()); - bsOrderScheduling.setEngineNo(engineNo); - bsOrderScheduling.setProductionStatus("1"); - bsOrderScheduling.setOperator(getUserName()); - bsOrderScheduling.setOperateTime(fomateDate); - bsOrderScheduling.setProductType(omProductionOrdeInfo.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); } - - //鏂板鏈哄瀷搴忓彿 - BsModelNumber bsModelNumber = new BsModelNumber(); - bsModelNumber.setModel(omProductionOrdeInfo.getTypeZ()); - bsModelNumber.setModelDate(dateTimeRule); + } + 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); + } + } + //鏂板鏈哄瀷搴忓彿 + if (ObjectUtil.isNotNull(bsModelNumber.getId())){ bsModelNumber.setMaxnumValue((startCode - 1) + ""); bsModelNumber.setSaveTime(fomateDate); bsModelNumber.setLastNumber((startCode - 1) + ""); - bsModelNumberService.insertBsModelNumber(bsModelNumber); + 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); } - //鏇存柊宸ュ崟鐘舵�� - omProductionOrdeInfo.setOrderStatus("2"); - return toAjax(omProductionOrdeInfoService.updateOmProductionOrdeInfo(omProductionOrdeInfo)); - - + return toAjax(1); } /** @@ -189,11 +258,22 @@ @GetMapping("/getProductionNotice") public AjaxResult getProductionNotice(OmProductionOrdeInfo omProductionOrdeInfo) { + String factory = omProductionOrdeInfo.getWorkshopCode(); String productionNotice = omProductionOrdeInfo.getProductionNotice(); - List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo); - if(omProductionOrdeInfos.size() == 0){ + if (StrUtil.isBlank(productionNotice)){ + throw new ServiceException("璇疯緭鍏ョ敓浜ч�氱煡鍗曞彿"); + } + if (StrUtil.isBlank(factory)){ + throw new ServiceException("璇烽�夋嫨宸ュ巶缂栧彿"); + } + OmProductionOrdeInfo queryProductOrder = new OmProductionOrdeInfo(); + queryProductOrder.setWorkshopCode(factory); + queryProductOrder.setProductionNotice(productionNotice); + List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(queryProductOrder); + if(CollUtil.isEmpty(omProductionOrdeInfos)){ try { - ReceivingServices.insertWebserviceData(productionNotice); + logger.info("鎺ユ敹宸ュ崟鍙凤細,{}",productionNotice); + ReceivingServices.insertWebserviceData(factory,productionNotice); } catch (Exception e) { return error("鎺ユ敹澶辫触锛佽妫�鏌ラ�氱煡鍗曞彿"); } -- Gitblit v1.9.3