| 
					
				 | 
			
			
				@@ -270,48 +270,9 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 采购入库-来源余纱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherPurInList(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			FabricPoOrder fabricPoOrderLyys = new FabricPoOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderLyys.setCInvName("来源余纱"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderLyys.setIQuantityIn(0.0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderLyys.setFabricPoOrderOutList(fabricPoOrderTempList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderList.add(fabricPoOrderLyys); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if (fabricPoOrderTempList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				for (FabricPoOrderOut item : fabricPoOrderTempList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					fabricPoOrderLyys.setIQuantityIn(item.getIQuantity()+fabricPoOrderLyys.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					String cCode = item.getCCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					int index1 = cCode.indexOf("SY"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if (index1 == -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					int index2 = cCode.indexOf("-", index1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if (index2 == -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						index2 = cCode.length(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					item.setCPlanCode(cCode.substring(index1,index2-1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				BigDecimal bdVal = new BigDecimal(fabricPoOrderLyys.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				fabricPoOrderLyys.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			List<FabricPoOrder> lyysList = getPoOrderLyys(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			fabricPoOrderList.addAll(lyysList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 采购入库-其他入库的纱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherInList(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			FabricPoOrder fabricPoOrderQtrk = new FabricPoOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderQtrk.setCInvName("其他入库的纱"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderQtrk.setIQuantityIn(0.0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderQtrk.setFabricPoOrderOutList(fabricPoOrderTempList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fabricPoOrderList.add(fabricPoOrderQtrk); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if (fabricPoOrderTempList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				for (FabricPoOrderOut item : fabricPoOrderTempList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					fabricPoOrderQtrk.setIQuantityIn(item.getIQuantity()+fabricPoOrderQtrk.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				BigDecimal bdVal = new BigDecimal(fabricPoOrderQtrk.getIQuantityIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				fabricPoOrderQtrk.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			fabricPoOrderList.addAll(getPoOrderQtrk(code,lyysList)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			ret.setFabricPoOrderList(fabricPoOrderList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 委外订单所有 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -321,6 +282,9 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				ret.setMessage("本计划没有面料委外,无面损表"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				return ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 委外订单分组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fabricOMOrderListAll = groupOmOrderList(fabricOMOrderListAll); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 织、染、印,其他排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			List<FabricOMOrder> fabricOMOrderList1 = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			List<FabricOMOrder> fabricOMOrderListTmp = fabricOMOrderListAll.stream().filter(e->e.getCVCName().indexOf("织")==0).collect(Collectors.toList()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -695,7 +659,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for (FabricOMOrder fabricOMOrder : fabricOMOrderList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 根据入库物料过滤 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			List<FabricMoOrderCK> findOutList = fabricMoOrderCKList.stream().filter(e-> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					e.getCInvCodeColorIn().equals(fabricOMOrder.getCInvCode()+fabricOMOrder.getCColor())).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					fabricOMOrder.getMODetailsID().indexOf(e.getMODetailsID())>-1).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			fabricOMOrder.setFabricMoOrderCKList(findOutList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -714,8 +678,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for (FabricOMOrder fabricOMOrder : fabricOMOrderList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			List<FabricMoOrderRK> findList = fabricMoOrderRKList.stream().filter(e-> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					e.getCInvCode().equals(fabricOMOrder.getCInvCode()) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					oConvertUtils.getString(e.getCColor()).equals(fabricOMOrder.getCColor())).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					fabricOMOrder.getMODetailsID().indexOf(e.getMODetailsID())>-1).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if (findList.size() == 0){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -841,7 +804,15 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	private List<FabricPoOrder> getPoOrderLyys(String code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherPurInList(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<FabricPoOrderOut> fabricPoOrderTempList1 = fabricLossMapper.getPurchaseListOtherPurInList(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<FabricPoOrderOut> fabricPoOrderTempList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 根据autoid去重 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for (FabricPoOrderOut item : fabricPoOrderTempList1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (fabricPoOrderTempList.stream().filter(e->e.getAutoid().equals(item.getAutoid())).count()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fabricPoOrderTempList.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<FabricPoOrderOut> fabricPoOrderOutListGroup = new ArrayList<>();   // 根据委外订单号和批号分组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //		FabricPoOrder fabricPoOrderLyys = new FabricPoOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //		fabricPoOrderLyys.setCInvName("来源余纱"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -880,6 +851,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		rowInList.addAll(rowInListWithAV); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<Map<String,Object>> purchuseInList = rowInList.stream().filter(e->"普通采购".equals(e.get("cBusType").toString())).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 去掉数量0的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fabricPoOrderOutListGroup = fabricPoOrderOutListGroup.stream().filter(e->e.getIQuantity()>0).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 单价数量保留位数、计划号处理,根据委外处理的出库物料重新设置价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for (FabricPoOrderOut item : fabricPoOrderOutListGroup){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -892,7 +865,6 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				item.setIPrice(oConvertUtils.getDouble(findIn.get("iPurchuseMoney").toString(), 0)/oConvertUtils.getDouble(findIn.get("iQuantity").toString(),0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				item.setIMoney(item.getIPrice()*item.getIQuantity()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			BigDecimal bdVal = new BigDecimal(item.getIPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			item.setIPrice(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			bdVal = new BigDecimal(item.getIQuantity()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -966,7 +938,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 根据委外订单子表id,找到入库物料 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			findInCanSetList = findInCanSetList.stream().filter(in->{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				return findOutCanSetList.stream().filter(out-> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						out.getMODetailsID() == oConvertUtils.getInt(in.get("MODetailsID"),0)).count()>0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						out.getMODetailsID().equals(oConvertUtils.getString(in.get("MODetailsID")))).count()>0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 设置入库单金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			for (Map<String,Object> item : findInCanSetList){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1083,7 +1055,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			Double outSum = itemOut.getIQuantityOut(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 委外订单行 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			Optional<Map<String,Object>> findRowInfoOpt = rowInfoList.stream().filter(info-> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					oConvertUtils.getInt(info.get("MODetailsID")).equals(itemOut.getMODetailsID()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					oConvertUtils.getString(info.get("MODetailsID")).equals(itemOut.getMODetailsID()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			).findFirst(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if (!findRowInfoOpt.isPresent()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				continue; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1110,6 +1082,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				retItem.setCInvNameOut(itemOut.getCInvNameOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				retItem.setCColorOut(itemOut.getCColorOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				retItem.setCBatchOut(itemOut.getCBatchOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				retItem.setMODetailsID(itemOut.getMODetailsID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if ("普通采购".equals(itemIn.get("cBusType"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					retItem.setCPlanCode(itemIn.get("poCode").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				}else{ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1150,6 +1123,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					retItem.setCInvNameOut(itemOut.getCInvNameOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					retItem.setCColorOut(itemOut.getCColorOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					retItem.setCBatchOut(itemOut.getCBatchOut()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					retItem.setMODetailsID(itemOut.getMODetailsID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if ("普通采购".equals(itemIn.get("cBusType"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						retItem.setCPlanCode(itemIn.get("poCode").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					}else{ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1595,4 +1569,29 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 委外订单分组,根据供应商分类,供应商名称,供应商简称,供应商编码,物料编号,物料名称,颜色,计量单位,染厂色号, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 *  计算委外订单数量,材料出库数量,委外入库数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 *  同时把委外订单子表id逗号分割,放到MODetailsID字段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @param omOrderList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private List<FabricOMOrder> groupOmOrderList(List<FabricOMOrder> omOrderList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<FabricOMOrder> ret = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for (FabricOMOrder omOrder : omOrderList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Optional<FabricOMOrder> findOpt = ret.stream().filter(e->e.getGroupId().equals(omOrder.getGroupId())).findFirst(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (findOpt.isPresent()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				FabricOMOrder find = findOpt.get(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				find.setIQuantityOut(DoubleOperation.add(find.getIQuantityOut(), omOrder.getIQuantityOut())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				find.setIQuantity(DoubleOperation.add(find.getIQuantity(), omOrder.getIQuantity())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				find.setIQuantityIn(DoubleOperation.add(find.getIQuantityIn(), omOrder.getIQuantityIn())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				find.setMODetailsID(find.getMODetailsID()+","+omOrder.getMODetailsID()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				ret.add(omOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |