| 
					
				 | 
			
			
				@@ -83,7 +83,7 @@ public class SyShippingDetailsServiceImpl extends ServiceImpl<SyShippingDetailsM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          //设置单据号(F2206201305854) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(oConvertUtils.isEmpty(syId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SimpleDateFormat sf = new SimpleDateFormat("yyMMddHHmmss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String createTime = sf.format(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         syShippingDetails.setDocumentNo("F"+createTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         syShippingDetails.setState("0");//状态 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -97,23 +97,39 @@ public class SyShippingDetailsServiceImpl extends ServiceImpl<SyShippingDetailsM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //订单子表明细ID集合(单条) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<String> stringList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        QueryWrapper<OrderDataVo> queryWrapper = new QueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> paramList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Page<OrderDataVo> page = new Page<OrderDataVo>(1, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //查询订单数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<String> itemId = syShippingDetails.getItemId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for(String ids:itemId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //报关要素ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String elementId = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //根据每一行分组订单ID进行拆分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String itemIdSplit[] = ids.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (String li:itemIdSplit){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 stringList.add(li); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                paramList.add(li); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            queryWrapper.in("b.id",stringList).eq("a.del_flag",0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //查询每条订单明细 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            QueryWrapper<OrderDataVo> queryWrapper = new QueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            queryWrapper.in("b.id",stringList).eq("a.del_flag",0).orderByDesc("b.create_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             IPage<OrderDataVo> pageList = syShippingDetailsMapper.displayDetails(page, queryWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //清空集合 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            stringList.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String gourpid = oConvertUtils.id(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //获取报关要素ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //根据条件查询报关要素信息(2023.03.14现改为:订单号+款号+账套+物料) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            QueryWrapper<SyDeclarationElements> elementsQueryWrapper = new QueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            elementsQueryWrapper.eq("order_number",pageList.getRecords().get(0).getOrderNumber()).eq("ac_set_no",pageList.getRecords().get(0).getOmpoAccount()).eq("item_number",pageList.getRecords().get(0).getItemNumber()).eq("del_flag",0).eq("inventory_code",pageList.getRecords().get(0).getInventoryCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            elementsQueryWrapper.orderByDesc("create_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<SyDeclarationElements> elementsList = syDeclarationElementsService.list(elementsQueryWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(elementsList.size() != 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //获取最新一条ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                elementId = elementsList.get(0).getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (OrderDataVo li:pageList.getRecords()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //实现构造函数方法赋值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 SyShippingDetailsItem entity = new SyShippingDetailsItem(li); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -125,16 +141,21 @@ public class SyShippingDetailsServiceImpl extends ServiceImpl<SyShippingDetailsM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //设置物料成分 和 是否TC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //根据款号物料名称查询相同数据并赋值,(2023.03.14现改为:订单号+款号+账套+物料) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                QueryWrapper<SyShippingDetailsItem> queryWrapper1 = new QueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                queryWrapper1.eq("item_number",li.getItemNumber()).eq("order_number",li.getOrderNumber()).eq("del_flag",0).eq("inventory_code",li.getInventoryCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                queryWrapper1.orderByDesc("create_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                List<SyShippingDetailsItem> list = syShippingDetailsItemService.list(queryWrapper1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(list.size()!=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    SyShippingDetailsItem itemEntity = list.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    entity.setMaterialComposition(itemEntity.getMaterialComposition()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    entity.setIsTc(itemEntity.getIsTc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                QueryWrapper<SyShippingDetailsItem> queryWrapper1 = new QueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                queryWrapper1.eq("item_number",li.getItemNumber()).eq("order_number",li.getOrderNumber()).eq("del_flag",0).eq("inventory_code",li.getInventoryCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                queryWrapper1.orderByDesc("create_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                List<SyShippingDetailsItem> list = syShippingDetailsItemService.list(queryWrapper1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                if(list.size()!=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    SyShippingDetailsItem itemEntity = list.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    entity.setMaterialComposition(itemEntity.getMaterialComposition()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    entity.setIsTc(itemEntity.getIsTc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //设置物料成份 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(entity.getInventoryCcode().substring(0,2).equals("19")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    entity.setMaterialComposition(entity.getSpecificationAndModel());//取规格型号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    entity.setMaterialComposition(entity.getInventoryName());//取存货名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //设置排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 entity.setSort(sort); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //设置主表自建 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -152,36 +173,36 @@ public class SyShippingDetailsServiceImpl extends ServiceImpl<SyShippingDetailsM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 BigDecimal customsDeclarationUnitPrice = li.getUnitPriceIncludingTax().subtract(yj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 entity.setCustomsDeclarationUnitPrice(customsDeclarationUnitPrice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //获取报关要素ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //根据条件查询报关要素信息(2023.03.14现改为:订单号+款号+账套+物料) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                QueryWrapper<SyDeclarationElements> elementsQueryWrapper = new QueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                elementsQueryWrapper.eq("order_number",li.getOrderNumber()).eq("ac_set_no",li.getOmpoAccount()).eq("item_number",li.getItemNumber()).eq("del_flag",0).eq("inventory_code",li.getInventoryCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                elementsQueryWrapper.orderByDesc("create_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                List<SyDeclarationElements> elementsList = syDeclarationElementsService.list(elementsQueryWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(elementsList.size() != 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //获取最新一条ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    String elementId = elementsList.get(0).getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    entity.setElementsId(elementId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //报关要素 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                entity.setElementsId(elementId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 syShippingDetailsItemList.add(entity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //设置主表客户 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 syShippingDetails.setCustomer(li.getCustomerName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //回写订单剩余数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //查询订单子表信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                SyOrderDataItem orderDataItem = syOrderDataItemService.getById(li.getSyOrderDataItemId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //SyOrderDataItem orderDataItem = syOrderDataItemService.getById(li.getSyOrderDataItemId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //直接设置为0,因为参照直接生成单据,数量不能更改,所以剩余数量会全部参照完 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderDataItem.setSurplusNum(orderDataItem.getSurplusNum().subtract(li.getQuantity())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                syOrderDataItemService.updateById(orderDataItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //orderDataItem.setSurplusNum(orderDataItem.getSurplusNum().subtract(li.getQuantity())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //syOrderDataItemService.updateById(orderDataItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           // syShippingDetailsMapper.updateSurplusNum(stringList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //清空集合 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stringList.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //回写订单剩余数量,直接设置为0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        QueryWrapper<SyOrderDataItem> queryWrapper = new QueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryWrapper.in("id", paramList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SyOrderDataItem dataItem = new SyOrderDataItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dataItem.setSurplusNum(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        syOrderDataItemService.update(dataItem, queryWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(syShippingDetailsItemList.size()!=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  syShippingDetailsItemService.saveBatch(syShippingDetailsItemList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         boolean ok = save(syShippingDetails); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(ok){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return syShippingDetails; 
			 |