| 
					
				 | 
			
			
				@@ -66,47 +66,61 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	private SyShippingOrderItemMapper syShippingOrderItemMapper;//托书主表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	BigDecimal update(List<SyPackingListTailoringItem> items,String pid){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		BigDecimal box=new BigDecimal(0);//获取总箱数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	void update(List<SyPackingListTailoringItem> items,String pid){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<SyPackingListTailoringItem> items3=new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<SyPackingListTailoringItem> items2=syPackingListTailoringItemMapper.selectByMainId(pid);//获取主表所有数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Map<String,SyPackingListTailoringItem> maps=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for (SyPackingListTailoringItem item : items){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			BigDecimal boxNumber1=item.getBoxNumber();//获取箱数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			box=box.add(boxNumber1);//合计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			item.setGroupId(oConvertUtils.id()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			item.setDelFlag("0");//删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			for (SizeTable size : sizes){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(size.getProportion()==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					size.setProportion(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				SyPackingListTailoringItem item1=item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				item1.setSize(size.getSize());//获取尺码信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				item1.setTotal(boxNumber);//该尺码件数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				item1.setActualPackingQty(boxNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价		箱数*单价-->件数*单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				//item.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				item1.setId(size.getItemId());//从尺码表中获取到id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				// 获取到预装箱单子表id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				SyPackingListTailoringItem splt=syPackingListTailoringItemMapper.selectById(item1.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				//获取预装箱单子表id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				item1.setSyPreAssembledPackingListItemId(splt.getSyPreAssembledPackingListItemId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(size.getProportion()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					item1.setTotal(null);//该尺码件数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(item.getIsAdd()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					item1.setSyPackingListTailoringId(pid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					item1.setId(oConvertUtils.id());//获取到随机id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					syPackingListTailoringItemMapper.insert(item1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				syPackingListTailoringItemMapper.updateById(item1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			//	typeConversion(item1);//调用方法同步修改托书数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			maps.put(item.getGroupId(),item);// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for (SyPackingListTailoringItem item2 : items2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if(maps.containsKey(item2.getGroupId())){//有这个分组id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				SyPackingListTailoringItem item=maps.get(item2.getGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<SizeTable> sizes=item.getSizeTables();//获取尺码表信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				BigDecimal boxNumber1=item.getBoxNumber();//获取箱数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				//box=box.add(boxNumber1);//合计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				item.setGroupId(oConvertUtils.id()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				item.setDelFlag("0");//删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				for (SizeTable size : sizes){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if(size.getProportion()==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						size.setProportion(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					SyPackingListTailoringItem item1=item; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					item1.setSize(size.getSize());//获取尺码信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					BigDecimal boxNumber=boxNumber1.multiply(new BigDecimal(size.getProportion()));//获取该尺码件数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					item1.setTotal(boxNumber);//该尺码件数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					item1.setActualPackingQty(boxNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					item1.setTotalPrice(boxNumber.multiply(item1.getUnitPrice()));//获取总价		箱数*单价-->件数*单价 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					//item.setSyDeclarationElementsItemId(size.getItemId());//获取到发运明细子表id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					item1.setId(size.getItemId());//从尺码表中获取到id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// 获取到预装箱单子表id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					//SyPackingListTailoringItem splt=syPackingListTailoringItemMapper.selectById(item1.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					SyPackingListTailoringItem splt=syPackingListTailoringItemMapper.selectById(item1.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					//获取预装箱单子表id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					item1.setSyPreAssembledPackingListItemId(splt.getSyPreAssembledPackingListItemId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if(size.getProportion()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						item1.setTotal(null);//该尺码件数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if(item.getIsAdd()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						item1.setSyPackingListTailoringId(pid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						item1.setId(oConvertUtils.id());//获取到随机id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						syPackingListTailoringItemMapper.insert(item1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						syPackingListTailoringItemMapper.updateById(item1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						SyPackingListTailoringItem item3=maps.get(item2.getGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						BeanUtils.copyProperties(item1,item3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						items3.add(item3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					//	typeConversion(item1);//调用方法同步修改托书数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				syPackingListTailoringItemMapper.deleteByGroupId(item2.getGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return box; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		syPackingListTailoringItemService.updateBatchById(items3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	//获取流水号 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -450,14 +464,17 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		/*if(!syPackingListTailoringMapper.selectById(syPackingListTailoring.getId()).getState().equals("0")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			throw new JeecgBootException("单据已提交不能修改!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		long startTime = System.currentTimeMillis(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<SyPackingListTailoringItem> items=syPackingListTailoring.getSyPackingListTailoringItemList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		syPackingListTailoringMapper.updateById(syPackingListTailoring);//修改主表数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		syPackingListTailoringItemMapper.deleteByMainId(syPackingListTailoring.getId());//将子表的删除状态都变成1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(syPackingListTailoring.getSyPackingListTailoringItemList()!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			BigDecimal box= update(syPackingListTailoring.getSyPackingListTailoringItemList(),syPackingListTailoring.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			syPackingListTailoring.setTotalBoxes(box); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			syPackingListTailoringMapper.updateById(syPackingListTailoring); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			update(syPackingListTailoring.getSyPackingListTailoringItemList(),syPackingListTailoring.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//syPackingListTailoring.setTotalBoxes(box); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//syPackingListTailoringMapper.updateById(syPackingListTailoring); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		long endTime3 = System.currentTimeMillis(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		System.out.println("查数据时间运行:" + (endTime3 - startTime) + "ms"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return syPackingListTailoring; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |