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 | 197 ++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 163 insertions(+), 34 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 7e9648d..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,30 +1,37 @@ package com.jcdm.main.om.productionOrde.controller; -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; import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; 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; /** * 鐢熶骇宸ュ崟Controller @@ -42,6 +49,9 @@ @Autowired private IBsOrderSchedulingService bsOrderSchedulingService; + @Autowired + private IBsModelNumberService bsModelNumberService; + /** * 鏌ヨ鐢熶骇宸ュ崟鍒楄〃 */ @@ -50,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); } @@ -78,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')") @@ -89,27 +133,90 @@ } /** - * 鏂板鐢熶骇宸ュ崟 + * 鐢熸垚鎸夐挳 */ @PostMapping("/orderSchedulingForBoxCode") public AjaxResult addOrderSchedulingForBoxCode(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo) { + + //鑾峰彇褰撳墠鏃堕棿 + LocalDateTime date= LocalDateTime.now(); + //鍒涘缓鏃ユ湡鏃堕棿瀵硅薄鏍煎紡鍖栧櫒锛屾棩鏈熸牸寮忕被浼硷細 2023-05-23 22:18:38 + DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + //灏嗘椂闂磋浆鍖栦负瀵瑰簲鏍煎紡鐨勫瓧绗︿覆 + String fomateDate=date.format(formatter).toString(); + Integer startCode = Integer.parseInt(omProductionOrdeInfo.getStartCode());//寮�濮嬬紪鍙� - Integer planQty = Math.toIntExact(omProductionOrdeInfo.getPlanQty());//璁″垝鏁伴噺 + String dateTimeRule = omProductionOrdeInfo.getDateTimeRule(); - for(int i=0;i<planQty;i++){ - BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); - bsOrderScheduling.setOrderNo(omProductionOrdeInfo.getWorkOrderNo()); - bsOrderScheduling.setModel(omProductionOrdeInfo.getTypeZ()); - bsOrderScheduling.setEngineNo(omProductionOrdeInfo.getTypeZ() + " "+dateTimeRule+ StringUtils.leftPad(String.valueOf(startCode),3, "0")); - bsOrderScheduling.setStatus("1"); - 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); + } } - - omProductionOrdeInfo.setOrderStatus("2");//鏇存柊宸ュ崟鐘舵�� - return toAjax(omProductionOrdeInfoService.updateOmProductionOrdeInfo(omProductionOrdeInfo)); + 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.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); } /** @@ -145,12 +252,34 @@ } /** - * table鍒椾笂绉讳笅绉� + * 鎺ユ敹宸ュ崟 */ + @PreAuthorize("@ss.hasPermi('om:productionOrde:receive')") @GetMapping("/getProductionNotice") public AjaxResult getProductionNotice(OmProductionOrdeInfo omProductionOrdeInfo) { - ReceivingServices.insertWebserviceData(omProductionOrdeInfo.getProductionNotice()); - return AjaxResult.success(); + String factory = omProductionOrdeInfo.getWorkshopCode(); + String productionNotice = omProductionOrdeInfo.getProductionNotice(); + 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 { + logger.info("鎺ユ敹宸ュ崟鍙凤細,{}",productionNotice); + ReceivingServices.insertWebserviceData(factory,productionNotice); + } catch (Exception e) { + return error("鎺ユ敹澶辫触锛佽妫�鏌ラ�氱煡鍗曞彿"); + } + }else { + return warn("璇ラ�氱煡鍗曞凡缁忔帴鏀跺畬姣曪紝涓嶈兘閲嶅鎺ユ敹锛�"); + } + return AjaxResult.success("鎺ユ敹鎴愬姛锛�"); } } -- Gitblit v1.9.3