| 
					
				 | 
			
			
				@@ -292,7 +292,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				fabricPoOrderLyys.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderList.add(getPoOrderLyys(code)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fabricPoOrderList.addAll(getPoOrderLyys(code)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 采购入库-其他入库的纱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherInList(code); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -308,7 +308,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				BigDecimal bdVal = new BigDecimal(fabricPoOrderQtrk.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				fabricPoOrderQtrk.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderList.add(getPoOrderQtrk(code)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fabricPoOrderList.addAll(getPoOrderQtrk(code)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			ret.setFabricPoOrderList(fabricPoOrderList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 委外订单所有 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			List<FabricOMOrder> fabricOMOrderListAll = fabricLossMapper.getOmOrderListAll(code); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -351,9 +351,9 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if ("02".equals(fabricOMOrder.getCComUnitCode())){  // 根 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					fabricOMOrder.setIQuantityPCS(fabricOMOrder.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					fabricOMOrder.setIQuantityPCS(fabricOMOrder.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}else if ("04".equals(fabricOMOrder.getCComUnitCode())){    // 米 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					fabricOMOrder.setIQuantityM(fabricOMOrder.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					fabricOMOrder.setIQuantityM(fabricOMOrder.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				BigDecimal bDLoss = new BigDecimal(dLoss); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				fabricOMOrder.setCQuantityLoss(bDLoss.setScale(2, BigDecimal.ROUND_HALF_UP).toString()+"%"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -445,22 +445,15 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			fabricCostInvoiceList = fabricCostInvoiceListOrder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 转入成本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			Double d = getInCost(ret.getFabricPoOrderList(), fabricOMOrderListGn, fabricOMOrderListGw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			FabricCostInvoice fabricCostInvoice = new FabricCostInvoice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricCostInvoice.setCVCName("转入成本"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricCostInvoice.setIMoney(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricCostInvoiceList.add(fabricCostInvoice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fabricCostInvoiceList.addAll(getInCost(ret.getFabricPoOrderList(), fabricOMOrderListGn, fabricOMOrderListGw)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 转出成本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			d = getOutCost(ret.getFabricPoOrderList(), fabricOMOrderListGn, fabricOMOrderListGw); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricCostInvoice = new FabricCostInvoice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricCostInvoice.setCVCName("转出成本"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricCostInvoice.setIMoney(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricCostInvoiceList.add(fabricCostInvoice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fabricCostInvoiceList.addAll(getOutCost(ret.getFabricPoOrderList(), fabricOMOrderListGn, fabricOMOrderListGw)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			ret.setFabricCostInvoiceList(fabricCostInvoiceList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 计算单件成本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			Double costInTotal = fabricCostInvoiceList.stream().mapToDouble(FabricCostInvoice::getIMoney).sum(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			BigDecimal dVal = new BigDecimal(costInTotal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			ret.setActualMoney(dVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			BigDecimal bdPriceReal = new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if (ret.getNumber()>0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				bdPriceReal = new BigDecimal(costInTotal / ret.getNumber()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -640,17 +633,17 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @param code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private FabricPoOrder getPoOrderQtrk(String code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private List<FabricPoOrder> getPoOrderQtrk(String code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 采购入库-其他入库的纱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherInList(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<FabricPoOrderOut> fabricPoOrderOutListGroup = new ArrayList<>();   // 根据委外订单号和批号分组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		FabricPoOrder fabricPoOrderQtrk = new FabricPoOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		fabricPoOrderQtrk.setCInvName("其他入库的纱"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		fabricPoOrderQtrk.setIQuantityIn(0.0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		fabricPoOrderQtrk.setFabricPoOrderOutList(fabricPoOrderOutListGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		FabricPoOrder fabricPoOrderQtrk = new FabricPoOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		fabricPoOrderQtrk.setCInvName("其他入库的纱"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		fabricPoOrderQtrk.setIQuantityIn(0.0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		fabricPoOrderQtrk.setFabricPoOrderOutList(fabricPoOrderOutListGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if (fabricPoOrderTempList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			for (FabricPoOrderOut item : fabricPoOrderTempList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				fabricPoOrderQtrk.setIQuantityIn(item.getIQuantity()+fabricPoOrderQtrk.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				fabricPoOrderQtrk.setIQuantityIn(item.getIQuantity()+fabricPoOrderQtrk.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				String cCode = item.getCCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				String cBatch = item.getCBatch(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				Optional<FabricPoOrderOut> findItemOpt = fabricPoOrderOutListGroup.stream().filter(e-> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -670,8 +663,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					item.setIMoney(item.getIPrice()*item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			BigDecimal bdVal = new BigDecimal(fabricPoOrderQtrk.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderQtrk.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			BigDecimal bdVal = new BigDecimal(fabricPoOrderQtrk.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			fabricPoOrderQtrk.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 单价数量保留位数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for (FabricPoOrderOut item : fabricPoOrderOutListGroup){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -680,7 +673,37 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			bdVal = new BigDecimal(item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			item.setIQuantity(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return fabricPoOrderQtrk; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 去掉批号分组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<FabricPoOrder> fabricPoOrderList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for (FabricPoOrderOut item : fabricPoOrderOutListGroup){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			String cInvCode = item.getCInvCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			String cColor = item.getCColor(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Optional<FabricPoOrder> findOpt = fabricPoOrderList.stream().filter(e->e.getCInvCode().equals(cInvCode) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					e.getCColor().equals(cColor)).findFirst(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (!findOpt.isPresent()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				FabricPoOrder orderItem = new FabricPoOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setCInvName(item.getCInvName()+" "+item.getCColor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setCPOID("其他入库"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setCColor(cColor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setCInvCode(cInvCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setOmcVenAbbName(item.getCVenAbbName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setIQuantityIn(item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setIQuantityOut(item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<FabricPoOrderOut> findOutList = fabricPoOrderOutListGroup.stream().filter(e->e.getCInvCode().equals(cInvCode) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						e.getCColor().equals(cColor)).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setFabricPoOrderOutList(findOutList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fabricPoOrderList.add(orderItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				FabricPoOrder findItem = findOpt.get(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				findItem.setIQuantityOut(findItem.getIQuantityOut()+item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				findItem.setIQuantityIn(findItem.getIQuantityIn()+item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (findItem.getOmcVenAbbName().indexOf(item.getCVenAbbName()) == -1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					findItem.setOmcVenAbbName(findItem.getOmcVenAbbName()+","+item.getCVenAbbName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return fabricPoOrderList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -688,17 +711,17 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @param code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private FabricPoOrder getPoOrderLyys(String code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private List<FabricPoOrder> getPoOrderLyys(String code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherPurInList(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<FabricPoOrderOut> fabricPoOrderOutListGroup = new ArrayList<>();   // 根据委外订单号和批号分组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		FabricPoOrder fabricPoOrderLyys = new FabricPoOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		fabricPoOrderLyys.setCInvName("来源余纱"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		fabricPoOrderLyys.setIQuantityIn(0.0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		fabricPoOrderLyys.setFabricPoOrderOutList(fabricPoOrderOutListGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		FabricPoOrder fabricPoOrderLyys = new FabricPoOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		fabricPoOrderLyys.setCInvName("来源余纱"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		fabricPoOrderLyys.setIQuantityIn(0.0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		fabricPoOrderLyys.setFabricPoOrderOutList(fabricPoOrderOutListGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if (fabricPoOrderTempList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			for (FabricPoOrderOut item : fabricPoOrderTempList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				fabricPoOrderLyys.setIQuantityIn(item.getIQuantity()+fabricPoOrderLyys.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				fabricPoOrderLyys.setIQuantityIn(item.getIQuantity()+fabricPoOrderLyys.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				String cCode = item.getCCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				String cBatch = item.getCBatch(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -719,8 +742,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					item.setIMoney(item.getIPrice()*item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			BigDecimal bdVal = new BigDecimal(fabricPoOrderLyys.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderLyys.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			BigDecimal bdVal = new BigDecimal(fabricPoOrderLyys.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			fabricPoOrderLyys.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 获取委外订单出库物料的入库物料信息:包含采购入库、委外入库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<Map<String,Object>> rowInList = fabricLossMapper.getOmRowInList(code); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -751,8 +774,38 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			cPlanCode = org.jeecg.modules.system.util.oConvertUtils.stringCut(cPlanCode, ",", "SY", "-"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			item.setCPlanCode(cPlanCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 去掉批号分组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<FabricPoOrder> fabricPoOrderList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for (FabricPoOrderOut item : fabricPoOrderOutListGroup){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			String cInvCode = item.getCInvCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			String cColor = item.getCColor(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Optional<FabricPoOrder> findOpt = fabricPoOrderList.stream().filter(e->e.getCInvCode().equals(cInvCode) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					e.getCColor().equals(cColor)).findFirst(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (!findOpt.isPresent()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				FabricPoOrder orderItem = new FabricPoOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setCInvName(item.getCInvName()+" "+item.getCColor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setCPOID("来源余料"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setCColor(cColor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setCInvCode(cInvCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setOmcVenAbbName(item.getCVenAbbName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setIQuantityIn(item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setIQuantityOut(item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<FabricPoOrderOut> findOutList = fabricPoOrderOutListGroup.stream().filter(e->e.getCInvCode().equals(cInvCode) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						e.getCColor().equals(cColor)).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				orderItem.setFabricPoOrderOutList(findOutList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fabricPoOrderList.add(orderItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				FabricPoOrder findItem = findOpt.get(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				findItem.setIQuantityOut(findItem.getIQuantityOut()+item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				findItem.setIQuantityIn(findItem.getIQuantityIn()+item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (findItem.getOmcVenAbbName().indexOf(item.getCVenAbbName()) == -1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					findItem.setOmcVenAbbName(findItem.getOmcVenAbbName()+","+item.getCVenAbbName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return fabricPoOrderLyys; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return fabricPoOrderList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -927,6 +980,11 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				retItem.setCInvNameOut(itemOut.getCInvNameOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				retItem.setCColorOut(itemOut.getCColorOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				retItem.setCBatchOut(itemOut.getCBatchOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if ("普通采购".equals(itemIn.get("cBusType"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					retItem.setCPlanCode(itemIn.get("poCode").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					retItem.setCPlanCode(itemIn.get("moCode").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				retItem.setMODetailsID(itemOut.getMODetailsID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				BigDecimal bdVal = new BigDecimal(curSum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				retItem.setIQuantity(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -962,6 +1020,11 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					retItem.setCInvNameOut(itemOut.getCInvNameOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					retItem.setCColorOut(itemOut.getCColorOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					retItem.setCBatchOut(itemOut.getCBatchOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if ("普通采购".equals(itemIn.get("cBusType"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						retItem.setCPlanCode(itemIn.get("poCode").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						retItem.setCPlanCode(itemIn.get("moCode").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					retItem.setMODetailsID(itemOut.getMODetailsID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					BigDecimal bdVal = new BigDecimal(curSum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					retItem.setIQuantity(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -989,14 +1052,10 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @param omOrderListGw - 委外订单国外 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private Double getOutCost(List<FabricPoOrder> poOrderList, List<FabricOMOrder> omOrderListGn, List<FabricOMOrder> omOrderListGw){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private List<FabricCostInvoice> getOutCost(List<FabricPoOrder> poOrderList, List<FabricOMOrder> omOrderListGn, List<FabricOMOrder> omOrderListGw){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 采购出入库去掉末尾两行:来源余纱、其他入库纱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		List<FabricPoOrder> poOrderListReal = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (poOrderList.size()>2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			poOrderListReal.addAll(poOrderList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			poOrderListReal.remove(poOrderListReal.size()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			poOrderListReal.remove(poOrderListReal.size()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<FabricPoOrder> poOrderListReal = poOrderList.stream().filter(e->!e.getCPOID().equals("来源余料") && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				!e.getCPOID().equals("其他入库")).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 合并所有采购入库+委外入库的物料批次。借用FabricPoOrderIn类 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<FabricPoOrderIn> allInList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for (FabricPoOrder item : poOrderListReal){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1021,6 +1080,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						formatItem.setCBatch(itemIn.getCBatch()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						formatItem.setIQuantity(itemIn.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						formatItem.setIPrice(itemIn.getIPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						formatItem.setCInvName(itemIn.getCInvName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						allInList.add(formatItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1038,6 +1098,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					formatItem.setIQuantity(itemIn.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					formatItem.setIPrice(itemIn.getIPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					formatItem.setCBusType("1");        // 国内 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					formatItem.setCInvName(itemIn.getCInvName()+" "+itemIn.getCColor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					allInList.add(formatItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1054,6 +1115,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					formatItem.setIQuantity(itemIn.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					formatItem.setIPrice(itemIn.getIPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					formatItem.setCBusType("2");        // 国外 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					formatItem.setCInvName(itemIn.getCInvName()+" "+itemIn.getCColor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					allInList.add(formatItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1158,16 +1220,38 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		// 计算总转出成本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Double dTotal = 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<FabricCostInvoice> costInvoiceList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 计算总转入成本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for (FabricPoOrderIn itemIn : allInList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if (itemIn.getIQuantity()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				dTotal += itemIn.getIQuantity()*itemIn.getIPrice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				FabricCostInvoice fabricCostInvoice = new FabricCostInvoice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fabricCostInvoice.setCVCName(itemIn.getCInvName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fabricCostInvoice.setCVenAbbName(""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fabricCostInvoice.setCBusType("转出成本"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				BigDecimal bdVal = new BigDecimal(itemIn.getIQuantity()*itemIn.getIPrice()*-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fabricCostInvoice.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (fabricCostInvoice.getIMoney()!=0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					costInvoiceList.add(fabricCostInvoice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 分组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<FabricCostInvoice> costInvoiceListGroup = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for (FabricCostInvoice fabricCostInvoice : costInvoiceList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Optional<FabricCostInvoice> findOpt = costInvoiceListGroup.stream().filter(e-> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					e.getCVCName().equals(fabricCostInvoice.getCVCName()) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							e.getCVenAbbName().equals(fabricCostInvoice.getCVenAbbName())).findFirst(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (findOpt.isPresent()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				FabricCostInvoice find = findOpt.get(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				BigDecimal bdVal = new BigDecimal(find.getIMoney()+fabricCostInvoice.getIMoney()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				find.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				costInvoiceListGroup.add(fabricCostInvoice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		BigDecimal bdVal = new BigDecimal(dTotal*-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return costInvoiceListGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 根据文件id,获取文件内容 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1203,7 +1287,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<FabricPoOrder> poOrderList = fabricLoss.getFabricPoOrderList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if (oConvertUtils.listIsNotEmpty(poOrderList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			for (FabricPoOrder poOrder : poOrderList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (poOrder.getCInvName().equals("来源余纱") || poOrder.getCInvName().equals("其他入库的纱")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (poOrder.getCPOID().equals("来源余料") || poOrder.getCPOID().equals("其他入库")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					List<FabricPoOrderOut> orderOutList = poOrder.getFabricPoOrderOutList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if (oConvertUtils.listIsNotEmpty(orderOutList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						for (FabricPoOrderOut orderOut : orderOutList) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1231,14 +1315,10 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @param omOrderListGw - 委外订单国外 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private Double getInCost(List<FabricPoOrder> poOrderList, List<FabricOMOrder> omOrderListGn, List<FabricOMOrder> omOrderListGw){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private List<FabricCostInvoice> getInCost(List<FabricPoOrder> poOrderList, List<FabricOMOrder> omOrderListGn, List<FabricOMOrder> omOrderListGw){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 采购出入库去掉末尾两行:来源余纱、其他入库纱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		List<FabricPoOrder> poOrderListReal = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (poOrderList.size()>2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			poOrderListReal.addAll(poOrderList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			poOrderListReal.remove(poOrderListReal.size()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			poOrderListReal.remove(poOrderListReal.size()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<FabricPoOrder> poOrderListReal = poOrderList.stream().filter(e->!e.getCPOID().equals("来源余料") && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				!e.getCPOID().equals("其他入库")).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 合并所有采购入库+委外入库的物料批次。借用FabricPoOrderIn类 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<FabricPoOrderIn> allInList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for (FabricPoOrder item : poOrderListReal){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1313,6 +1393,10 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				outCopy.setCColorOut(omOut.getCColorOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				outCopy.setIQuantity(omOut.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				outCopy.setIPrice(omOut.getIPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				outCopy.setCVCName(omOrder.getCVCName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				outCopy.setCVenAbbName(omOrder.getCVenAbbName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				outCopy.setCPlanCode(omOut.getCPlanCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				omOutListAll.add(outCopy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1341,16 +1425,39 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			itemOut.setIQuantity(outLeft); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<FabricCostInvoice> costInvoiceList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 计算总转入成本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Double dTotal = 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for (FabricMoOrderCK itemOut : omOutListAll){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if (itemOut.getIQuantity()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				dTotal += itemOut.getIQuantity()*itemOut.getIPrice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				FabricCostInvoice fabricCostInvoice = new FabricCostInvoice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fabricCostInvoice.setCVCName(itemOut.getCVCName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fabricCostInvoice.setCVenAbbName(itemOut.getCPlanCode()+" "+itemOut.getCVenAbbName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fabricCostInvoice.setCBusType("转入成本"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				BigDecimal bdVal = new BigDecimal(itemOut.getIQuantity()*itemOut.getIPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fabricCostInvoice.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (fabricCostInvoice.getIMoney()!=0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					costInvoiceList.add(fabricCostInvoice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 分组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<FabricCostInvoice> costInvoiceListGroup = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for (FabricCostInvoice fabricCostInvoice : costInvoiceList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Optional<FabricCostInvoice> findOpt = costInvoiceListGroup.stream().filter(e-> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					e.getCVCName().equals(fabricCostInvoice.getCVCName()) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					e.getCVenAbbName().equals(fabricCostInvoice.getCVenAbbName())).findFirst(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (findOpt.isPresent()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				FabricCostInvoice find = findOpt.get(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				BigDecimal bdVal = new BigDecimal(find.getIMoney()+fabricCostInvoice.getIMoney()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				find.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				costInvoiceListGroup.add(fabricCostInvoice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		BigDecimal bdVal = new BigDecimal(dTotal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return costInvoiceListGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |