|  | @@ -224,45 +224,29 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(1, -1);
 |  |  		Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(1, -1);
 | 
											
												
													
														|  | -		if(flourOrGarment.equals("0")){//面辅料
 |  | 
 | 
											
												
													
														|  | -			queryWrapper.eq("1",1);
 |  | 
 | 
											
												
													
														|  | -			 IPage<SyShippingDetailsVo> pageList = syShippingDetailsService.queryShippingDetailsGarment(page, queryWrapper);
 |  | 
 | 
											
												
													
														|  | 
 |  | +		IPage<SyShippingDetailsVo> pageList;
 | 
											
												
													
														|  | 
 |  | +		if (flourOrGarment.equals("0")) { // 面辅料
 | 
											
												
													
														|  | 
 |  | +			queryWrapper.eq("1", 1);
 | 
											
												
													
														|  | 
 |  | +			pageList = syShippingDetailsService.queryShippingDetailsGarment(page, queryWrapper);
 | 
											
												
													
														|  | 
 |  | +		} else { // 成衣
 | 
											
												
													
														|  | 
 |  | +			queryWrapper.eq("1", 1);
 | 
											
												
													
														|  | 
 |  | +			pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -			  for(SyShippingDetailsVo str:pageList.getRecords()){
 |  | 
 | 
											
												
													
														|  | -				  amountTo = amountTo+str.getShipmentQuantity();
 |  | 
 | 
											
												
													
														|  | -			  }
 |  | 
 | 
											
												
													
														|  | -			//amountTo = pageList.getRecords().stream().mapToDouble(i -> i.getShipmentQuantity()).sum();
 |  | 
 | 
											
												
													
														|  | -			pageList.setRecords(pageList.getRecords().stream().sorted(Comparator.comparing(SyShippingDetailsVo::getCreateTime).reversed()).collect(Collectors.toList()));
 |  | 
 | 
											
												
													
														|  | 
 |  | +         // 计算总合计数量
 | 
											
												
													
														|  | 
 |  | +		amountTo = pageList.getRecords().stream().mapToDouble(SyShippingDetailsVo::getShipmentQuantity).sum();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -			result.setSuccess(true);
 |  | 
 | 
											
												
													
														|  | -				result.setResult(pageList);
 |  | 
 | 
											
												
													
														|  | -				result.setMessage(amountTo.toString());
 |  | 
 | 
											
												
													
														|  | -		}else{//成衣
 |  | 
 | 
											
												
													
														|  | -			queryWrapper.eq("1",1);
 |  | 
 | 
											
												
													
														|  | -			IPage<SyShippingDetailsVo> pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -			amountTo = pageList.getRecords().stream().mapToDouble(i -> i.getShipmentQuantity()).sum();
 |  | 
 | 
											
												
													
														|  | -//			for(SyShippingDetailsVo str:pageList.getRecords()){
 |  | 
 | 
											
												
													
														|  | -//				//赋值报关信息
 |  | 
 | 
											
												
													
														|  | -//				SyDeclarationElements entity = syDeclarationElementsService.getById(str.getElementsId());
 |  | 
 | 
											
												
													
														|  | -//				if(oConvertUtils.isNotEmpty(entity)){
 |  | 
 | 
											
												
													
														|  | -//					str.setDeclarationName(entity.getDeclarationName());
 |  | 
 | 
											
												
													
														|  | -//					str.setHsCode(entity.getHsCode());
 |  | 
 | 
											
												
													
														|  | -//					str.setEnglishProductName(entity.getEnglishProductName());
 |  | 
 | 
											
												
													
														|  | -//				}
 |  | 
 | 
											
												
													
														|  | -//				amountTo = amountTo+str.getShipmentQuantity();
 |  | 
 | 
											
												
													
														|  | -//			}
 |  | 
 | 
											
												
													
														|  | 
 |  | +        // 对查询结果按 createTime 逆序排序
 | 
											
												
													
														|  | 
 |  | +		pageList.setRecords(pageList.getRecords().stream().sorted(Comparator.comparing(SyShippingDetailsVo::getCreateTime).reversed()).collect(Collectors.toList()));
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -			pageList.setRecords(pageList.getRecords().stream().sorted(Comparator.comparing(SyShippingDetailsVo::getCreateTime).reversed()).collect(Collectors.toList()));
 |  | 
 | 
											
												
													
														|  | -			result.setSuccess(true);
 |  | 
 | 
											
												
													
														|  | -			result.setResult(pageList);
 |  | 
 | 
											
												
													
														|  | -			result.setMessage(amountTo.toString());
 |  | 
 | 
											
												
													
														|  | 
 |  | +		result.setSuccess(true);
 | 
											
												
													
														|  | 
 |  | +		result.setResult(pageList);
 | 
											
												
													
														|  | 
 |  | +		result.setMessage(amountTo.toString());
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		return result;
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -		return result;
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -	
 |  | 
 | 
											
												
													
														|  |  	/**
 |  |  	/**
 | 
											
												
													
														|  |  	 * 添加
 |  |  	 * 添加
 | 
											
												
													
														|  |  	 *
 |  |  	 *
 | 
											
										
											
												
													
														|  | @@ -993,59 +977,100 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
											
												
													
														|  |  					  
 |  |  					  
 | 
											
												
													
														|  |  				  }
 |  |  				  }
 | 
											
												
													
														|  |  				  //判断重复自由项数据
 |  |  				  //判断重复自由项数据
 | 
											
												
													
														|  | -				  for(String str:syShippingDetails.getGrouyIdList()) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +				  for (String str : syShippingDetails.getGrouyIdList()) {
 | 
											
												
													
														|  | 
 |  | +					  Set<String> seenData = new HashSet<>();
 | 
											
												
													
														|  |  					  QueryWrapper<SyShippingDetailsItem> queryWrapper = new QueryWrapper<>();
 |  |  					  QueryWrapper<SyShippingDetailsItem> queryWrapper = new QueryWrapper<>();
 | 
											
												
													
														|  |  					  queryWrapper.in("group_id", str).eq("del_flag", 0);
 |  |  					  queryWrapper.in("group_id", str).eq("del_flag", 0);
 | 
											
												
													
														|  |  					  List<SyShippingDetailsItem> groupList = syShippingDetailsItemService.list(queryWrapper);
 |  |  					  List<SyShippingDetailsItem> groupList = syShippingDetailsItemService.list(queryWrapper);
 | 
											
												
													
														|  | -					  for (int i = 0; i < groupList.size(); i++) {
 |  | 
 | 
											
												
													
														|  | -						  SyShippingDetailsItem tableRow = groupList.get(i);
 |  | 
 | 
											
												
													
														|  | -						  for (int j = i+1; j < groupList.size(); j++) {
 |  | 
 | 
											
												
													
														|  | -							  SyShippingDetailsItem nextData = groupList.get(j);
 |  | 
 | 
											
												
													
														|  | -							  if (tableRow.getSmallPo().equals(nextData.getSmallPo()) && tableRow.getOrderNumber().equals(nextData.getOrderNumber()) &&
 |  | 
 | 
											
												
													
														|  | -									  tableRow.getPreDeliveryDate().equals(nextData.getPreDeliveryDate()) && tableRow.getPreCompletionDate().equals(nextData.getPreCompletionDate()) &&
 |  | 
 | 
											
												
													
														|  | -									  tableRow.getItemNumber().equals(nextData.getItemNumber()) && tableRow.getInventoryCode().equals(nextData.getInventoryCode()) &&
 |  | 
 | 
											
												
													
														|  | -									  tableRow.getColour().equals(nextData.getColour()) && tableRow.getSize().equals(nextData.getSize())&&
 |  | 
 | 
											
												
													
														|  | -									  tableRow.getGuangpeiGateWidth().equals(nextData.getGuangpeiGateWidth()) && tableRow.getWeight().equals(nextData.getWeight())&&
 |  | 
 | 
											
												
													
														|  | -							          tableRow.getCodingRules().equals(nextData.getCodingRules())) {
 |  | 
 | 
											
												
													
														|  | -								  result.setSuccess(false);
 |  | 
 | 
											
												
													
														|  | -								  result.setMessage("第"+count+"条里面的第"+(i+1)+"行和第"+(j+1)+"行数据相同,无法提交");
 |  | 
 | 
											
												
													
														|  | -								  return result;
 |  | 
 | 
											
												
													
														|  | -							  }
 |  | 
 | 
											
												
													
														|  | -						  }
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +					  for (SyShippingDetailsItem item : groupList) {
 | 
											
												
													
														|  | 
 |  | +						  String key = generateKey(item);
 | 
											
												
													
														|  | 
 |  | +						  if (seenData.contains(key)) {
 | 
											
												
													
														|  | 
 |  | +							  result.setSuccess(false);
 | 
											
												
													
														|  | 
 |  | +							  result.setMessage("第" + count + "条里面有重复数据,无法提交");
 | 
											
												
													
														|  | 
 |  | +							  return result;
 | 
											
												
													
														|  | 
 |  | +						  }
 | 
											
												
													
														|  | 
 |  | +						  seenData.add(key);
 | 
											
												
													
														|  |  					  }
 |  |  					  }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  					  count++;
 |  |  					  count++;
 | 
											
												
													
														|  |  				  }
 |  |  				  }
 | 
											
												
													
														|  | 
 |  | +//				  for(String str:syShippingDetails.getGrouyIdList()) {
 | 
											
												
													
														|  | 
 |  | +//					  QueryWrapper<SyShippingDetailsItem> queryWrapper = new QueryWrapper<>();
 | 
											
												
													
														|  | 
 |  | +//					  queryWrapper.in("group_id", str).eq("del_flag", 0);
 | 
											
												
													
														|  | 
 |  | +//					  List<SyShippingDetailsItem> groupList = syShippingDetailsItemService.list(queryWrapper);
 | 
											
												
													
														|  | 
 |  | +//					  for (int i = 0; i < groupList.size(); i++) {
 | 
											
												
													
														|  | 
 |  | +//						  SyShippingDetailsItem tableRow = groupList.get(i);
 | 
											
												
													
														|  | 
 |  | +//						  for (int j = i+1; j < groupList.size(); j++) {
 | 
											
												
													
														|  | 
 |  | +//							  SyShippingDetailsItem nextData = groupList.get(j);
 | 
											
												
													
														|  | 
 |  | +//							  if (tableRow.getSmallPo().equals(nextData.getSmallPo()) && tableRow.getOrderNumber().equals(nextData.getOrderNumber()) &&
 | 
											
												
													
														|  | 
 |  | +//									  tableRow.getPreDeliveryDate().equals(nextData.getPreDeliveryDate()) && tableRow.getPreCompletionDate().equals(nextData.getPreCompletionDate()) &&
 | 
											
												
													
														|  | 
 |  | +//									  tableRow.getItemNumber().equals(nextData.getItemNumber()) && tableRow.getInventoryCode().equals(nextData.getInventoryCode()) &&
 | 
											
												
													
														|  | 
 |  | +//									  tableRow.getColour().equals(nextData.getColour()) && tableRow.getSize().equals(nextData.getSize())&&
 | 
											
												
													
														|  | 
 |  | +//									  tableRow.getGuangpeiGateWidth().equals(nextData.getGuangpeiGateWidth()) && tableRow.getWeight().equals(nextData.getWeight())&&
 | 
											
												
													
														|  | 
 |  | +//							          tableRow.getCodingRules().equals(nextData.getCodingRules())) {
 | 
											
												
													
														|  | 
 |  | +//								  result.setSuccess(false);
 | 
											
												
													
														|  | 
 |  | +//								  result.setMessage("第"+count+"条里面的第"+(i+1)+"行和第"+(j+1)+"行数据相同,无法提交");
 | 
											
												
													
														|  | 
 |  | +//								  return result;
 | 
											
												
													
														|  | 
 |  | +//							  }
 | 
											
												
													
														|  | 
 |  | +//						  }
 | 
											
												
													
														|  | 
 |  | +//
 | 
											
												
													
														|  | 
 |  | +//					  }
 | 
											
												
													
														|  | 
 |  | +//					  count++;
 | 
											
												
													
														|  | 
 |  | +//				  }
 | 
											
												
													
														|  |  			  }else{
 |  |  			  }else{
 | 
											
												
													
														|  | -				  //查询是否已提交
 |  | 
 | 
											
												
													
														|  | 
 |  | +				  // 查询是否已提交
 | 
											
												
													
														|  |  				  QueryWrapper<SyShippingDetailsItem> itemQueryWrapper1 = new QueryWrapper<>();
 |  |  				  QueryWrapper<SyShippingDetailsItem> itemQueryWrapper1 = new QueryWrapper<>();
 | 
											
												
													
														|  | -				  itemQueryWrapper1.in("id",idsList).eq("submit_status","1");
 |  | 
 | 
											
												
													
														|  | 
 |  | +				  itemQueryWrapper1.in("id", idsList).eq("submit_status", "1");
 | 
											
												
													
														|  |  				  List<SyShippingDetailsItem> list1 = syShippingDetailsItemService.list(itemQueryWrapper1);
 |  |  				  List<SyShippingDetailsItem> list1 = syShippingDetailsItemService.list(itemQueryWrapper1);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  				  for (SyShippingDetailsItem li : list1) {
 |  |  				  for (SyShippingDetailsItem li : list1) {
 | 
											
												
													
														|  | -//					  if (li.getSubmitStatus() == 0) {
 |  | 
 | 
											
												
													
														|  | -//						  result.setSuccess(false);
 |  | 
 | 
											
												
													
														|  | -//						  result.setMessage("部分单据已取消提交,请勿重复取消提交!");
 |  | 
 | 
											
												
													
														|  | -//						  return result;
 |  | 
 | 
											
												
													
														|  | -//					  }
 |  | 
 | 
											
												
													
														|  | -					  //判断下游是否有预装箱单-成衣单据
 |  | 
 | 
											
												
													
														|  | -					  QueryWrapper<SyPreAssembledPackingListItem> queryWrapper = new QueryWrapper<SyPreAssembledPackingListItem>();
 |  | 
 | 
											
												
													
														|  | -					  queryWrapper.eq("sy_declaration_elements_item_id",li.getId()).eq("del_flag",0);
 |  | 
 | 
											
												
													
														|  | -                      List<SyPreAssembledPackingListItem> packingListItems = syPreAssembledPackingListItemService.list(queryWrapper);
 |  | 
 | 
											
												
													
														|  | -                      if(packingListItems.size()!=0){
 |  | 
 | 
											
												
													
														|  | -						  result.setSuccess(false);
 |  | 
 | 
											
												
													
														|  | -						  result.setMessage("该单据被下游参照,不允许取消提交!");
 |  | 
 | 
											
												
													
														|  | -						  return result;
 |  | 
 | 
											
												
													
														|  | -					  }
 |  | 
 | 
											
												
													
														|  | -					  //判断下游是否有装箱单-面辅料单据
 |  | 
 | 
											
												
													
														|  | -					  QueryWrapper<SyPackingListFabricItem> queryWrapper1 = new QueryWrapper<SyPackingListFabricItem>();
 |  | 
 | 
											
												
													
														|  | -					  queryWrapper1.eq("sy_shipping_details_item_id",li.getId()).eq("del_flag",0);
 |  | 
 | 
											
												
													
														|  | -					  List<SyPackingListFabricItem> packingListFabricItem = syPackingListFabricItemService.list(queryWrapper1);
 |  | 
 | 
											
												
													
														|  | -					  if(packingListFabricItem.size()!=0){
 |  | 
 | 
											
												
													
														|  | 
 |  | +					  // 判断下游是否有预装箱单-成衣单据和装箱单-面辅料单据
 | 
											
												
													
														|  | 
 |  | +					  QueryWrapper<SyPreAssembledPackingListItem> queryWrapper = new QueryWrapper<>();
 | 
											
												
													
														|  | 
 |  | +					  queryWrapper.eq("sy_declaration_elements_item_id", li.getId()).eq("del_flag", 0);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					  // 使用LEFT JOIN连接装箱单表,并筛选出符合条件的行数
 | 
											
												
													
														|  | 
 |  | +					  queryWrapper.apply("NOT EXISTS (SELECT 1 FROM sy_packing_list_fabric_item WHERE sy_shipping_details_item_id = {0} AND del_flag = 0)", li.getId());
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					  // 使用LEFT JOIN连接预装箱单表,并筛选出符合条件的行数
 | 
											
												
													
														|  | 
 |  | +					  queryWrapper.apply("NOT EXISTS (SELECT 1 FROM sy_pre_assembled_packing_list_item WHERE sy_declaration_elements_item_id = {0} AND del_flag = 0)", li.getId());
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					  int count1 = syPreAssembledPackingListItemService.count(queryWrapper);
 | 
											
												
													
														|  | 
 |  | +					  if (count1 > 0) {
 | 
											
												
													
														|  |  						  result.setSuccess(false);
 |  |  						  result.setSuccess(false);
 | 
											
												
													
														|  |  						  result.setMessage("该单据被下游参照,不允许取消提交!");
 |  |  						  result.setMessage("该单据被下游参照,不允许取消提交!");
 | 
											
												
													
														|  |  						  return result;
 |  |  						  return result;
 | 
											
												
													
														|  |  					  }
 |  |  					  }
 | 
											
												
													
														|  |  				  }
 |  |  				  }
 | 
											
												
													
														|  | 
 |  | +//				  //查询是否已提交
 | 
											
												
													
														|  | 
 |  | +//				  QueryWrapper<SyShippingDetailsItem> itemQueryWrapper1 = new QueryWrapper<>();
 | 
											
												
													
														|  | 
 |  | +//				  itemQueryWrapper1.in("id",idsList).eq("submit_status","1");
 | 
											
												
													
														|  | 
 |  | +//				  List<SyShippingDetailsItem> list1 = syShippingDetailsItemService.list(itemQueryWrapper1);
 | 
											
												
													
														|  | 
 |  | +//				  for (SyShippingDetailsItem li : list1) {
 | 
											
												
													
														|  | 
 |  | +////					  if (li.getSubmitStatus() == 0) {
 | 
											
												
													
														|  | 
 |  | +////						  result.setSuccess(false);
 | 
											
												
													
														|  | 
 |  | +////						  result.setMessage("部分单据已取消提交,请勿重复取消提交!");
 | 
											
												
													
														|  | 
 |  | +////						  return result;
 | 
											
												
													
														|  | 
 |  | +////					  }
 | 
											
												
													
														|  | 
 |  | +//					  //判断下游是否有预装箱单-成衣单据
 | 
											
												
													
														|  | 
 |  | +//					  QueryWrapper<SyPreAssembledPackingListItem> queryWrapper = new QueryWrapper<SyPreAssembledPackingListItem>();
 | 
											
												
													
														|  | 
 |  | +//					  queryWrapper.eq("sy_declaration_elements_item_id",li.getId()).eq("del_flag",0);
 | 
											
												
													
														|  | 
 |  | +//                      List<SyPreAssembledPackingListItem> packingListItems = syPreAssembledPackingListItemService.list(queryWrapper);
 | 
											
												
													
														|  | 
 |  | +//                      if(packingListItems.size()!=0){
 | 
											
												
													
														|  | 
 |  | +//						  result.setSuccess(false);
 | 
											
												
													
														|  | 
 |  | +//						  result.setMessage("该单据被下游参照,不允许取消提交!");
 | 
											
												
													
														|  | 
 |  | +//						  return result;
 | 
											
												
													
														|  | 
 |  | +//					  }
 | 
											
												
													
														|  | 
 |  | +//					  //判断下游是否有装箱单-面辅料单据
 | 
											
												
													
														|  | 
 |  | +//					  QueryWrapper<SyPackingListFabricItem> queryWrapper1 = new QueryWrapper<SyPackingListFabricItem>();
 | 
											
												
													
														|  | 
 |  | +//					  queryWrapper1.eq("sy_shipping_details_item_id",li.getId()).eq("del_flag",0);
 | 
											
												
													
														|  | 
 |  | +//					  List<SyPackingListFabricItem> packingListFabricItem = syPackingListFabricItemService.list(queryWrapper1);
 | 
											
												
													
														|  | 
 |  | +//					  if(packingListFabricItem.size()!=0){
 | 
											
												
													
														|  | 
 |  | +//						  result.setSuccess(false);
 | 
											
												
													
														|  | 
 |  | +//						  result.setMessage("该单据被下游参照,不允许取消提交!");
 | 
											
												
													
														|  | 
 |  | +//						  return result;
 | 
											
												
													
														|  | 
 |  | +//					  }
 | 
											
												
													
														|  | 
 |  | +//				  }
 | 
											
												
													
														|  |  			  }
 |  |  			  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -1072,6 +1097,16 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
											
												
													
														|  |    }
 |  |    }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +  //处理拼接
 | 
											
												
													
														|  | 
 |  | +	 private String generateKey(SyShippingDetailsItem item) {
 | 
											
												
													
														|  | 
 |  | +		 // 根据需要拼接一个唯一标识字符串,用于比较
 | 
											
												
													
														|  | 
 |  | +		 return item.getSmallPo() + item.getOrderNumber() + item.getPreDeliveryDate() + item.getPreCompletionDate()
 | 
											
												
													
														|  | 
 |  | +				 + item.getItemNumber() + item.getInventoryCode() + item.getColour() + item.getSize()
 | 
											
												
													
														|  | 
 |  | +				 + item.getGuangpeiGateWidth() + item.getWeight() + item.getCodingRules();
 | 
											
												
													
														|  | 
 |  | +	 }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  	 /**
 |  |  	 /**
 | 
											
												
													
														|  |  	  * 发运明细查询订单接口
 |  |  	  * 发运明细查询订单接口
 | 
											
												
													
														|  |  	  * @param
 |  |  	  * @param
 |