| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -343,15 +343,15 @@ public class SubController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            //数据整理
 | 
					 | 
					 | 
					 | 
					                            //数据整理
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            SetSaveDate(p,organizationId);
 | 
					 | 
					 | 
					 | 
					                            SetSaveDate(p,organizationId);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            //开启事务
 | 
					 | 
					 | 
					 | 
					                            //开启事务
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//                            TransactionStatus transactionStatus = transactionService.begin();
 | 
					 | 
					 | 
					 | 
					                            //TransactionStatus transactionStatus = transactionService.begin();
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            try {
 | 
					 | 
					 | 
					 | 
					                            try {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                //保存数据
 | 
					 | 
					 | 
					 | 
					                                //保存数据
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                SaveData(p);
 | 
					 | 
					 | 
					 | 
					                                SaveData(p);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//                               transactionService.commit(transactionStatus);
 | 
					 | 
					 | 
					 | 
					                            //transactionService.commit(transactionStatus);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            } catch (Exception e) {
 | 
					 | 
					 | 
					 | 
					                            } catch (Exception e) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                logger.error("保存事务回滚:" + p.getSlabNo(), e);
 | 
					 | 
					 | 
					 | 
					                                logger.error("保存事务回滚:" + p.getSlabNo(), e);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                //回滚事务
 | 
					 | 
					 | 
					 | 
					                                //回滚事务
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//                                transactionService.rollback(transactionStatus);
 | 
					 | 
					 | 
					 | 
					                            //transactionService.rollback(transactionStatus);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            }
 | 
					 | 
					 | 
					 | 
					                            }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        }
 | 
					 | 
					 | 
					 | 
					                        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -816,98 +816,102 @@ public class SubController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                GCG.getLtInfoGPreOrder().add(f);//添加订单信息
 | 
					 | 
					 | 
					 | 
					                GCG.getLtInfoGPreOrder().add(f);//添加订单信息
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            });
 | 
					 | 
					 | 
					 | 
					            });
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //存在订单,添加可计算分组
 | 
					 | 
					 | 
					 | 
					            try {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if (GCG.getLtInfoGPreOrder().size() > 0) {
 | 
					 | 
					 | 
					 | 
					                //存在订单,添加可计算分组
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                if (GCG.getLtInfoGPreOrder().size() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    //GCG.getLtInfoGPreOrder().stream().filter(e->e.)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    //最大宽度
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    OptionalInt maxWidth = GCG.getLtInfoGPreOrder().stream()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            .mapToInt(GPreOrder::getWid)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            .max();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    //最大宽度余量
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    OptionalInt maxAddWidth = GCG.getLtInfoGPreOrder().stream()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            .mapToInt(GPreOrder::getWidthAddv)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            .max();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    //宽展比   保留2位小数
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    BigDecimal decWidRate = BigDecimal.valueOf(maxWidth.orElse(0)).divide(SInfo.getSlabActWid(), 2, RoundingMode.HALF_UP);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    //最大厚度公差最小值
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    Optional<BigDecimal> maxTolThkMin = GCG.getLtInfoGPreOrder().stream()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            .map(GPreOrder::getThickTolMin)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            .reduce(BigDecimal::max);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    //厚度追加值
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    BigDecimal decThkAdd= BigDecimal.ZERO;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    String strThkTolType;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    if (GCG.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType() != null) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        strThkTolType = GCG.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        strThkTolType = "*";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    //存在数据,判断热处理模式
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    if (plistPmThickAddvBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            && p.getTolTypeCode().equals(strThkTolType)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            && p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    )) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        if (GCG.getLtInfoGPreOrder().get(0)==null)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //GCG.getLtInfoGPreOrder().stream().filter(e->e.)
 | 
					 | 
					 | 
					 | 
					                        }
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //最大宽度
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                OptionalInt maxWidth = GCG.getLtInfoGPreOrder().stream()
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        .mapToInt(GPreOrder::getWid)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        .max();
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //最大宽度余量
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                OptionalInt maxAddWidth = GCG.getLtInfoGPreOrder().stream()
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        .mapToInt(GPreOrder::getWidthAddv)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        .max();
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //宽展比   保留2位小数
 | 
					 | 
					 | 
					 | 
					                        if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO()==null)
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                BigDecimal decWidRate = BigDecimal.valueOf(maxWidth.orElse(0)).divide(SInfo.getSlabActWid(), 2, RoundingMode.HALF_UP);
 | 
					 | 
					 | 
					 | 
					                        {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //最大厚度公差最小值
 | 
					 | 
					 | 
					 | 
					                        }
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                Optional<BigDecimal> maxTolThkMin = GCG.getLtInfoGPreOrder().stream()
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        .map(GPreOrder::getThickTolMin)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        .reduce(BigDecimal::max);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //厚度追加值
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                BigDecimal decThkAdd= BigDecimal.ZERO;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                String strThkTolType;
 | 
					 | 
					 | 
					 | 
					                        if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType()==null)
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                if (GCG.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType() != null) {
 | 
					 | 
					 | 
					 | 
					                        {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    strThkTolType = GCG.getLtInfoGPreOrder().get(0).getInfoQdToPoOrderDO().getThkTolType();
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                } else {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    strThkTolType = "*";
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                }
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //存在数据,判断热处理模式
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                if (plistPmThickAddvBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getTolTypeCode().equals(strThkTolType)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                )) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType().contains("Q")) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getTolTypeCode().equals(strThkTolType)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getWholeHeatTreatmentType().equals("Q")
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        ).collect(Collectors.toList()).get(0).getThickAddv();
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    } else {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getTolTypeCode().equals(strThkTolType)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getWholeHeatTreatmentType().equals("*")
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        ).collect(Collectors.toList()).get(0).getThickAddv();
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    }
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                }
 | 
					 | 
					 | 
					 | 
					                        }
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //轧制厚度   厚度+厚度公差下限最大值+厚度追加值
 | 
					 | 
					 | 
					 | 
					                        if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType() != null
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                BigDecimal decThk = e.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO)).add(decThkAdd);
 | 
					 | 
					 | 
					 | 
					                                && GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType().contains("Q")) {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getTolTypeCode().equals(strThkTolType)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getWholeHeatTreatmentType().equals("Q")
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            ).collect(Collectors.toList()).get(0).getThickAddv();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        } else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getTolTypeCode().equals(strThkTolType)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getWholeHeatTreatmentType().equals("*")
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getPlateThickFrom().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getPlateThickTo().compareTo(GCG.getLtInfoGPreOrder().get(0).getThk()) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                    && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            ).collect(Collectors.toList()).get(0).getThickAddv();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //轧制宽度   最大宽度+宽度余量
 | 
					 | 
					 | 
					 | 
					                    }
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                int intWid = maxWidth.orElse(0) + maxAddWidth.orElse(0);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //切边
 | 
					 | 
					 | 
					 | 
					                    //轧制厚度   厚度+厚度公差下限最大值+厚度追加值
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                int intTrimWid = 0;
 | 
					 | 
					 | 
					 | 
					                    BigDecimal decThk = e.getThk().add(maxTolThkMin.orElse(BigDecimal.ZERO)).add(decThkAdd);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                String strWithSideFlag = "C";
 | 
					 | 
					 | 
					 | 
					                    //轧制宽度   最大宽度+宽度余量
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                if (GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark()==null
 | 
					 | 
					 | 
					 | 
					                    int intWid = maxWidth.orElse(0) + maxAddWidth.orElse(0);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        || GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals(""))
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    strWithSideFlag="C";
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                }else{
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    strWithSideFlag=GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark();
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                }
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //切边量
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                String finalStrWithSideFlag = strWithSideFlag;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                if (plistPmPlateTrimBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getPlateThickFrom().compareTo(decThk) <= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getPlateThickTo().compareTo(decThk) >= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getSmallPlateLenTo().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) >= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getWidenFrom().compareTo(decWidRate) <= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getWidenTo().compareTo(decWidRate) >= 0
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        && p.getWithSideFlag().equals(finalStrWithSideFlag)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                )) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    String finalStrWithSideFlag1 = strWithSideFlag;
 | 
					 | 
					 | 
					 | 
					                    //切边
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    intTrimWid = plistPmPlateTrimBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
					 | 
					 | 
					 | 
					                    int intTrimWid = 0;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    String strWithSideFlag = "C";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    if (GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark()==null
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            || GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark().equals(""))
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        strWithSideFlag="C";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    }else{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        strWithSideFlag=GCG.getLtInfoGPreOrder().get(0).getInfoPmProContProdAttrDO().getProdAMark();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    //切边量
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    String finalStrWithSideFlag = strWithSideFlag;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    if (plistPmPlateTrimBtDO.stream().anyMatch(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            && p.getPlateThickFrom().compareTo(decThk) <= 0
 | 
					 | 
					 | 
					 | 
					                            && p.getPlateThickFrom().compareTo(decThk) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            && p.getPlateThickTo().compareTo(decThk) >= 0
 | 
					 | 
					 | 
					 | 
					                            && p.getPlateThickTo().compareTo(decThk) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            && p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0
 | 
					 | 
					 | 
					 | 
					                            && p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -916,23 +920,39 @@ public class SubController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
 | 
					 | 
					 | 
					 | 
					                            && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            && p.getWidenFrom().compareTo(decWidRate) <= 0
 | 
					 | 
					 | 
					 | 
					                            && p.getWidenFrom().compareTo(decWidRate) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            && p.getWidenTo().compareTo(decWidRate) >= 0
 | 
					 | 
					 | 
					 | 
					                            && p.getWidenTo().compareTo(decWidRate) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            && p.getWithSideFlag().equals(finalStrWithSideFlag1)
 | 
					 | 
					 | 
					 | 
					                            && p.getWithSideFlag().equals(finalStrWithSideFlag)
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    ).collect(Collectors.toList()).get(0).getTrimWidth().intValue();
 | 
					 | 
					 | 
					 | 
					                    )) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                }
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        String finalStrWithSideFlag1 = strWithSideFlag;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        intTrimWid = plistPmPlateTrimBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                && p.getPlateThickFrom().compareTo(decThk) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                && p.getPlateThickTo().compareTo(decThk) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                && p.getSmallPlateLenFrom().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                && p.getSmallPlateLenTo().compareTo(BigDecimal.valueOf(GCG.getLtInfoGPreOrder().get(0).getLen())) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth.orElse(0) + maxAddWidth.orElse(0))) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                && p.getWidenFrom().compareTo(decWidRate) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                && p.getWidenTo().compareTo(decWidRate) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                && p.getWithSideFlag().equals(finalStrWithSideFlag1)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        ).collect(Collectors.toList()).get(0).getTrimWidth().intValue();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //轧制宽度= 最大宽度 + 最大宽度余量 + 切边量
 | 
					 | 
					 | 
					 | 
					                    //轧制宽度= 最大宽度 + 最大宽度余量 + 切边量
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                intWid = intWid + intTrimWid;
 | 
					 | 
					 | 
					 | 
					                    intWid = intWid + intTrimWid;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //宽度
 | 
					 | 
					 | 
					 | 
					                    //宽度
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                GCG.setWid(intWid);
 | 
					 | 
					 | 
					 | 
					                    GCG.setWid(intWid);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //厚度
 | 
					 | 
					 | 
					 | 
					                    //厚度
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                GCG.setThk(decThk);
 | 
					 | 
					 | 
					 | 
					                    GCG.setThk(decThk);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                //切边
 | 
					 | 
					 | 
					 | 
					                    //切边
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                GCG.setWid_Add(intTrimWid);
 | 
					 | 
					 | 
					 | 
					                    GCG.setWid_Add(intTrimWid);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                gltGCalGrp.add(GCG);
 | 
					 | 
					 | 
					 | 
					                    gltGCalGrp.add(GCG);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            } catch (Exception ex) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                logger.error("SetGrpConBinDataBySlab", ex);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            }
 | 
					 | 
					 | 
					 | 
					            }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        });
 | 
					 | 
					 | 
					 | 
					        });
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1101,7 +1121,24 @@ public class SubController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                                && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth + maxAddWidth.orElse(0))) <= 0
 | 
					 | 
					 | 
					 | 
					                                                && p.getCombinePlateWidthFrom().compareTo(BigDecimal.valueOf(maxWidth + maxAddWidth.orElse(0))) <= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                                && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth + maxAddWidth.orElse(0))) >= 0
 | 
					 | 
					 | 
					 | 
					                                                && p.getCombinePlateWidthTo().compareTo(BigDecimal.valueOf(maxWidth + maxAddWidth.orElse(0))) >= 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                        )) {
 | 
					 | 
					 | 
					 | 
					                                        )) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                            if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType().contains("Q")) {
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                            if (GCG.getLtInfoGPreOrder().get(0)==null)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                            {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                            }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                            if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO()==null)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                            {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                            }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                            if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType()==null)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                            {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                            }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                            if (GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType()!=null &&
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                                    GCG.getLtInfoGPreOrder().get(0).getInfoPmContMscTechDO().getWholeHeatTreatmentType().contains("Q")) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                                decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
					 | 
					 | 
					 | 
					                                                decThkAdd = plistPmThickAddvBtDO.stream().filter(p -> p.getMscLineNo().equals(SInfo.getMscLineNo())
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                                        && p.getTolTypeCode().equals(strThkTolType)
 | 
					 | 
					 | 
					 | 
					                                                        && p.getTolTypeCode().equals(strThkTolType)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                                        && p.getWholeHeatTreatmentType().equals("Q")
 | 
					 | 
					 | 
					 | 
					                                                        && p.getWholeHeatTreatmentType().equals("Q")
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -2453,8 +2490,15 @@ public class SubController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            // 使用 AtomicInteger 获取索引
 | 
					 | 
					 | 
					 | 
					            // 使用 AtomicInteger 获取索引
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            AtomicInteger index = new AtomicInteger(0);
 | 
					 | 
					 | 
					 | 
					            AtomicInteger index = new AtomicInteger(0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            AtomicInteger intX = new AtomicInteger(maxRate.getHead_Len());
 | 
					 | 
					 | 
					 | 
					            AtomicInteger intX = new AtomicInteger(maxRate.getHead_Len());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            maxRate.getLtActInfoGPreOrder().forEach(
 | 
					 | 
					 | 
					 | 
					            boolean Firstflag = true;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    gPreOrder -> {
 | 
					 | 
					 | 
					 | 
					            for(int m = 0; m < maxRate.getLtActInfoGPreOrder().size(); m++)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                GPreOrder   gPreOrder=maxRate.getLtActInfoGPreOrder().get(m);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                if (gPreOrder.getCombinationFlag()==1)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    BigDecimal intY = BigDecimal.valueOf(0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    for (int i = 0; i < gPreOrder.getLtInfoCombGPreOrder().size(); i++) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        int currentIndex = index.getAndIncrement();
 | 
					 | 
					 | 
					 | 
					                        int currentIndex = index.getAndIncrement();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        // 实例化 PmSubOrdDO 对象
 | 
					 | 
					 | 
					 | 
					                        // 实例化 PmSubOrdDO 对象
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -2466,18 +2510,31 @@ public class SubController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setSlabNo(SInfo.getSlabNo()); // 板坯号
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setSlabNo(SInfo.getSlabNo()); // 板坯号
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        // 手动为每个字段赋值
 | 
					 | 
					 | 
					 | 
					                        // 手动为每个字段赋值
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setOrderNo(gPreOrder.getOrderNo()); // 合同号
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setOrderNo(gPreOrder.getLtInfoCombGPreOrder().get(i).getInfoGPreOrder().getOrderNo()); // 合同号
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setSgSign(gPreOrder.getInfoPmProContProdAttrDO().getSgSign()); // 牌号
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setSgSign(gPreOrder.getLtInfoCombGPreOrder().get(i).getInfoGPreOrder().getInfoPmProContProdAttrDO().getSgSign()); // 牌号
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setStNo(SInfo.getStNo()); // 内部钢种
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setStNo(SInfo.getStNo()); // 内部钢种
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setOrderThick(gPreOrder.getThk()); // 订货厚度
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setOrderThick(gPreOrder.getLtInfoCombGPreOrder().get(i).getInfoGPreOrder().getThk()); // 订货厚度
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setOrderWidth(BigDecimal.valueOf(gPreOrder.getWid())); // 订货宽度
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setOrderWidth(BigDecimal.valueOf(gPreOrder.getLtInfoCombGPreOrder().get(i).getInfoGPreOrder().getWid())); // 订货宽度
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setLenAim(BigDecimal.valueOf(gPreOrder.getLen())); // 订货长度
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setLenAim(BigDecimal.valueOf(gPreOrder.getLtInfoCombGPreOrder().get(i).getInfoGPreOrder().getLen())); // 订货长度
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setPosX(BigDecimal.valueOf(intX.intValue())); // X坐标,假设默认为0
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setPosX(BigDecimal.valueOf(intX.intValue())); // X坐标,假设默认为0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        intX.addAndGet(gPreOrder.getLen() + 5);//X坐标
 | 
					 | 
					 | 
					 | 
					                        //第一块
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setPosY(BigDecimal.valueOf(maxRate.getTrimming() + gPreOrder.getWidthAddv())); // Y坐标,假设默认为0
 | 
					 | 
					 | 
					 | 
					                        if (i == 0) {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            intY = BigDecimal.valueOf(maxRate.getTrimming() + gPreOrder.getLtInfoCombGPreOrder().get(i).getInfoGPreOrder().getWidthAddv());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            pmSubOrdDO.setPosY(intY); // Y坐标,假设默认为0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            intY = intY.add(BigDecimal.valueOf(gPreOrder.getLtInfoCombGPreOrder().get(i).getInfoGPreOrder().getWid()));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        } else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            pmSubOrdDO.setPosY(intY); // Y坐标,假设默认为0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setDelivyDate(new Date()); // 交货日期,假设默认为当前时间
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setDelivyDate(new Date()); // 交货日期,假设默认为当前时间
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        if (Firstflag) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            pmSubOrdDO.setAxisOrd("1"); // 轴合同
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            Firstflag = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        } else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            pmSubOrdDO.setAxisOrd("0"); // 轴合同
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setAxisOrd("0"); // 轴合同
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setAxisOrd("0"); // 轴合同
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setLackNum(BigDecimal.ZERO); // 欠量,假设默认为0
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setLackNum(BigDecimal.ZERO); // 欠量,假设默认为0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setOverNum(BigDecimal.ZERO); // 超投,假设默认为0
 | 
					 | 
					 | 
					 | 
					                        pmSubOrdDO.setOverNum(BigDecimal.ZERO); // 超投,假设默认为0
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -2498,10 +2555,57 @@ public class SubController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        plistpmSubOrdDO.add(pmSubOrdDO);
 | 
					 | 
					 | 
					 | 
					                        plistpmSubOrdDO.add(pmSubOrdDO);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        //记录被使用的订单数据
 | 
					 | 
					 | 
					 | 
					                        //记录被使用的订单数据
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        plistOrdHis.add(gPreOrder);
 | 
					 | 
					 | 
					 | 
					                        plistOrdHis.add(gPreOrder.getLtInfoCombGPreOrder().get(i).getInfoGPreOrder());
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    }
 | 
					 | 
					 | 
					 | 
					                    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            );
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    intX.addAndGet(gPreOrder.getLen() + 5);//X坐标
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                } else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    int currentIndex = index.getAndIncrement();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    // 实例化 PmSubOrdDO 对象
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    PmSubOrd pmSubOrdDO = new PmSubOrd();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    // 生成虚拟板坯号
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setVirtualSlabNo(virtualSlabNo); // 虚拟板坯号
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setRelKey(virtualSlabNo); // 关系号
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setSlabNo(SInfo.getSlabNo()); // 板坯号
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    // 手动为每个字段赋值
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setOrderNo(gPreOrder.getOrderNo()); // 合同号
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setSgSign(gPreOrder.getInfoPmProContProdAttrDO().getSgSign()); // 牌号
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setStNo(SInfo.getStNo()); // 内部钢种
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setOrderThick(gPreOrder.getThk()); // 订货厚度
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setOrderWidth(BigDecimal.valueOf(gPreOrder.getWid())); // 订货宽度
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setLenAim(BigDecimal.valueOf(gPreOrder.getLen())); // 订货长度
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setPosX(BigDecimal.valueOf(intX.intValue())); // X坐标,假设默认为0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    intX.addAndGet(gPreOrder.getLen() + 5);//X坐标
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setPosY(BigDecimal.valueOf(maxRate.getTrimming() + gPreOrder.getWidthAddv())); // Y坐标,假设默认为0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setDelivyDate(new Date()); // 交货日期,假设默认为当前时间
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setAxisOrd("0"); // 轴合同
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setLackNum(BigDecimal.ZERO); // 欠量,假设默认为0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setOverNum(BigDecimal.ZERO); // 超投,假设默认为0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setCreationDate(new Date()); // 创建时间
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setCreatedBy(781L); // 创建人ID,假设默认为781
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setLastUpdatedBy(781L); // 最近更新人ID,假设默认为781
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setLastUpdateDate(new Date()); // 最近更新时间
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setTenantId(1L); // 租户ID,假设默认为0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setObjectVersionNumber(1L); // 行版本号,假设默认为0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setAttribute1(""); // 假设没有对应字段,设置为默认值
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setAttribute2(""); // 假设没有对应字段,设置为默认值
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setAttribute3(""); // 假设没有对应字段,设置为默认值
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setAttribute4(""); // 假设没有对应字段,设置为默认值
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setAttribute5(""); // 假设没有对应字段,设置为默认值
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    pmSubOrdDO.setOrderSeqNo(Long.valueOf(currentIndex)); // 合同顺序号,假设使用合同号作为顺序号
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    // 将 PmSubOrdDO 对象添加到列表中
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    plistpmSubOrdDO.add(pmSubOrdDO);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    //记录被使用的订单数据
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    plistOrdHis.add(gPreOrder);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //判断长宽大小
 | 
					 | 
					 | 
					 | 
					            //判断长宽大小
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            BigDecimal decLen = BigDecimal.valueOf(SInfo.getRemLen().intValue() - maxRate.getVirtualSlab_Len());
 | 
					 | 
					 | 
					 | 
					            BigDecimal decLen = BigDecimal.valueOf(SInfo.getRemLen().intValue() - maxRate.getVirtualSlab_Len());
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -2581,10 +2685,12 @@ public class SubController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            pmPdSlabDO.setAutoManualFlag("M");
 | 
					 | 
					 | 
					 | 
					            pmPdSlabDO.setAutoManualFlag("M");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            pmPdSlabDO.setOrderRemainDiv("1");
 | 
					 | 
					 | 
					 | 
					            pmPdSlabDO.setOrderRemainDiv("1");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            pmPdSlabDO.setCanDelFlag("1");
 | 
					 | 
					 | 
					 | 
					            pmPdSlabDO.setCanDelFlag("1");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            //TODO:合同个数,取所有合同的数量
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            List<String> orderNoList = ggcr.getLtActInfoGPreOrder().stream().map(GPreOrder::getOrderNo).distinct().collect(Collectors.toList());//根据实际合同信息 的合同号去重 取出板内合同个数
 | 
					 | 
					 | 
					 | 
					            List<String> orderNoList = ggcr.getLtActInfoGPreOrder().stream().map(GPreOrder::getOrderNo).distinct().collect(Collectors.toList());//根据实际合同信息 的合同号去重 取出板内合同个数
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            pmPdSlabDO.setOrderNumInPlate(BigDecimal.valueOf(orderNoList.size()));
 | 
					 | 
					 | 
					 | 
					            pmPdSlabDO.setOrderNumInPlate(BigDecimal.valueOf(orderNoList.size()));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            //TODO:合同数量,取所有小板的数据量
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            pmPdSlabDO.setTotSmallPlateNum(BigDecimal.valueOf(ggcr.getLtActInfoGPreOrder().size()));
 | 
					 | 
					 | 
					 | 
					            pmPdSlabDO.setTotSmallPlateNum(BigDecimal.valueOf(ggcr.getLtActInfoGPreOrder().size()));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					            //TODO:轴合同获取
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            Optional<PmContMscTech> resultPmContMscTechDO = plistPmContMscTechDO.stream()
 | 
					 | 
					 | 
					 | 
					            Optional<PmContMscTech> resultPmContMscTechDO = plistPmContMscTechDO.stream()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    .filter(item -> ggcr.getLtActInfoGPreOrder().get(0).getOrderNo().equals(item.getOrderNo())) //TODO 根据轴合同号查询合同工艺表  暂时取第一条合同
 | 
					 | 
					 | 
					 | 
					                    .filter(item -> ggcr.getLtActInfoGPreOrder().get(0).getOrderNo().equals(item.getOrderNo())) //TODO 根据轴合同号查询合同工艺表  暂时取第一条合同
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    .findFirst();
 | 
					 | 
					 | 
					 | 
					                    .findFirst();
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |