| | |
| | | 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; |
| | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static org.apache.commons.lang3.SystemUtils.getUserName; |
| | | |
| | |
| | | @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)); |
| | | } |
| | | |
| | |
| | | |
| | | 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); |
| | | } |
| | | |