|  | @@ -115,17 +115,20 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
	
		
			
				|  |  |  	@AutoLog(value = "发运明细主表-分页列表查询")
 | 
	
		
			
				|  |  |  	@ApiOperation(value="发运明细主表-分页列表查询", notes="发运明细主表-分页列表查询")
 | 
	
		
			
				|  |  |  	@GetMapping(value = "/list")
 | 
	
		
			
				|  |  | -	public Result<IPage<SyShippingDetailsVo>> queryPageList(SyShippingDetailsVo syShippingDetails, String startTime, String endTime, String flourOrGarment,
 | 
	
		
			
				|  |  | +	public Result<IPage<QueryShippingVo>> queryPageList(SyShippingDetailsVo syShippingDetails, String startTime, String endTime, String flourOrGarment,
 | 
	
		
			
				|  |  |  														String refer, String preDeliveryDateB, String preDeliveryDateE, String supplier, String isElement,
 | 
	
		
			
				|  |  |  														@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 | 
	
		
			
				|  |  |  														@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 | 
	
		
			
				|  |  |  														HttpServletRequest req) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		Result<IPage<SyShippingDetailsVo>> result = new Result<IPage<SyShippingDetailsVo>>();
 | 
	
		
			
				|  |  | +		Result<IPage<QueryShippingVo>> result = new Result<IPage<QueryShippingVo>>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		Page<QueryShippingVo> page = new Page<QueryShippingVo>(1, -1);
 | 
	
		
			
				|  |  | +		IPage<QueryShippingVo> pageList = null;
 | 
	
		
			
				|  |  |           //列表合计
 | 
	
		
			
				|  |  | -		 Double amountTo = 0.0000;
 | 
	
		
			
				|  |  | +		 BigDecimal amountTo = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		QueryWrapper<SyShippingDetailsVo> queryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | +		QueryWrapper<QueryShippingVo> queryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  |  		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
 | 
	
		
			
				|  |  |  		if(oConvertUtils.isNotEmpty(syShippingDetails.getDocumentNo())){
 | 
	
		
			
				|  |  |  			queryWrapper.like("a.document_no",syShippingDetails.getDocumentNo());
 | 
	
	
		
			
				|  | @@ -200,31 +203,17 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
	
		
			
				|  |  |  			queryWrapper.in("b.small_po",asList);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(1, -1);
 | 
	
		
			
				|  |  | -		IPage<SyShippingDetailsVo> pageList;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		if (flourOrGarment.equals("0")) { // 面辅料
 | 
	
		
			
				|  |  |  			queryWrapper.eq("1", 1);
 | 
	
		
			
				|  |  | -			pageList = syShippingDetailsService.queryShippingDetailsGarment(page, queryWrapper);
 | 
	
		
			
				|  |  | +			pageList = syShippingDetailsMapper.queryShippingDetailsGarmentCeshi(page, queryWrapper);
 | 
	
		
			
				|  |  |  		} else { // 成衣
 | 
	
		
			
				|  |  |  			queryWrapper.eq("1", 1);
 | 
	
		
			
				|  |  | -			pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
 | 
	
		
			
				|  |  | +			pageList = syShippingDetailsMapper.queryShippingDetailsCeshi(page, queryWrapper);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |           // 计算总合计数量
 | 
	
		
			
				|  |  | -		amountTo = pageList.getRecords().stream().mapToDouble(SyShippingDetailsVo::getShipmentQuantity).sum();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // 对查询结果按 createTime 逆序排序
 | 
	
		
			
				|  |  | -		pageList.setRecords(pageList.getRecords().stream().sorted(Comparator.comparing(SyShippingDetailsVo::getCreateTime).reversed()).collect(Collectors.toList()));
 | 
	
		
			
				|  |  | +		amountTo = pageList.getRecords().stream().map(QueryShippingVo::getShipmentQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -//		List<QueryShippingVo> voList = new ArrayList<>();
 | 
	
		
			
				|  |  | -//		for(SyShippingDetailsVo vo:pageList.getRecords()){
 | 
	
		
			
				|  |  | -//			QueryShippingVo entity = new QueryShippingVo();
 | 
	
		
			
				|  |  | -//			BeanUtils.copyProperties(vo,entity);
 | 
	
		
			
				|  |  | -//			voList.add(entity);
 | 
	
		
			
				|  |  | -//		}
 | 
	
		
			
				|  |  | -		Page<QueryShippingVo> page1 = new Page<QueryShippingVo>(1, -1);
 | 
	
		
			
				|  |  | -		//IPage<QueryShippingVo> voList1 = new I;
 | 
	
		
			
				|  |  | -		//voList1.setRecords(voList);
 | 
	
		
			
				|  |  | -		//page1.setRecords(voList);
 | 
	
		
			
				|  |  |  		result.setResult(pageList);
 | 
	
		
			
				|  |  |  		result.setSuccess(true);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -351,11 +340,15 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
	
		
			
				|  |  |  //			result.setSuccess(false);
 | 
	
		
			
				|  |  |  //			return result;
 | 
	
		
			
				|  |  |  //		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		List<String> idList = new ArrayList<>();
 | 
	
		
			
				|  |  | +		idList.add(id);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		String idsSplit[] = itemIds.split(",");
 | 
	
		
			
				|  |  |  		for(String str:idsSplit){
 | 
	
		
			
				|  |  |  			strList.add(str);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		int size = syShippingDetailsService.syShippingDetailsDelete(id,strList);
 | 
	
		
			
				|  |  | +		int size = syShippingDetailsService.syShippingDetailsDelete(idList,strList);
 | 
	
		
			
				|  |  |  		if(size>0){
 | 
	
		
			
				|  |  |  			result.setSuccess(true);
 | 
	
		
			
				|  |  |  			result.setMessage("删除成功");
 | 
	
	
		
			
				|  | @@ -381,9 +374,14 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
	
		
			
				|  |  |  			throw new JeecgBootException("为获取到勾选数据ID!");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        // 使用HashSet对List进行去重
 | 
	
		
			
				|  |  | +		Set<String> uniqueSet = new HashSet<>(syShippingDetails.getIds());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 创建一个新的List,将去重后的元素重新添加进去
 | 
	
		
			
				|  |  | +		List<String> deduplicatedList = new ArrayList<>(uniqueSet);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		//获取子表ID
 | 
	
		
			
				|  |  |          List<String> itemIds = new ArrayList<>();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  		for(String li:syShippingDetails.getItemId()){
 | 
	
		
			
				|  |  |  			String idsSplit[] = li.split(",");
 | 
	
		
			
				|  |  |  			for(String id :idsSplit){
 | 
	
	
		
			
				|  | @@ -398,20 +396,21 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
	
		
			
				|  |  |  			throw new JeecgBootException("部分单据已提交,不允许删除!");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		int ii = 0;
 | 
	
		
			
				|  |  | -		for(String str :syShippingDetails.getIds()){
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -			List<String> itenIdList = new ArrayList<>();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -			List<String> strList = syShippingDetails.getItemId();
 | 
	
		
			
				|  |  | -			String idIndex = strList.get(ii);
 | 
	
		
			
				|  |  | -			String split[] = idIndex.split(",");
 | 
	
		
			
				|  |  | -			for(String sr : split){
 | 
	
		
			
				|  |  | -				itenIdList.add(sr);
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -			syShippingDetailsService.syShippingDetailsDelete(str,itenIdList);
 | 
	
		
			
				|  |  | -			ii++;
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | +		syShippingDetailsService.syShippingDetailsDelete(deduplicatedList,itemIds);
 | 
	
		
			
				|  |  | +//		int ii = 0;
 | 
	
		
			
				|  |  | +//		for(String str :syShippingDetails.getIds()){
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//			List<String> itenIdList = new ArrayList<>();
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//			List<String> strList = syShippingDetails.getItemId();
 | 
	
		
			
				|  |  | +//			String idIndex = strList.get(ii);
 | 
	
		
			
				|  |  | +//			String split[] = idIndex.split(",");
 | 
	
		
			
				|  |  | +//			for(String sr : split){
 | 
	
		
			
				|  |  | +//				itenIdList.add(sr);
 | 
	
		
			
				|  |  | +//			}
 | 
	
		
			
				|  |  | +//
 | 
	
		
			
				|  |  | +//			ii++;
 | 
	
		
			
				|  |  | +//		}
 | 
	
		
			
				|  |  |  		result.setSuccess(true);
 | 
	
		
			
				|  |  |  		result.setMessage("删除成功");
 | 
	
		
			
				|  |  |  		result.setResult(1);
 | 
	
	
		
			
				|  | @@ -599,6 +598,11 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
	
		
			
				|  |  |  					result.setMessage("报关要素未维护,不允许导出!");
 | 
	
		
			
				|  |  |  					return result;
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  | +				  if(li.getSubmitStatus().equals("0")){
 | 
	
		
			
				|  |  | +					  result.setSuccess(false);
 | 
	
		
			
				|  |  | +					  result.setMessage("有未提交数据,不允许导出");
 | 
	
		
			
				|  |  | +					  return result;
 | 
	
		
			
				|  |  | +				  }
 | 
	
		
			
				|  |  |  				  if(oConvertUtils.isEmpty(li.getGarmentFactory())){
 | 
	
		
			
				|  |  |  					  li.setGarmentFactory(" ");
 | 
	
		
			
				|  |  |  				  }
 | 
	
	
		
			
				|  | @@ -672,7 +676,11 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
	
		
			
				|  |  |  					  result.setSuccess(false);
 | 
	
		
			
				|  |  |  					  result.setMessage("报关要素未维护,不允许导出!");
 | 
	
		
			
				|  |  |  					  return result;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +				  }
 | 
	
		
			
				|  |  | +				  if(li.getSubmitStatus().equals("0")){
 | 
	
		
			
				|  |  | +					  result.setSuccess(false);
 | 
	
		
			
				|  |  | +					  result.setMessage("有未提交数据,不允许导出");
 | 
	
		
			
				|  |  | +					  return result;
 | 
	
		
			
				|  |  |  				  }
 | 
	
		
			
				|  |  |  				  String pre = sf.format(li.getPreDeliveryDate());
 | 
	
		
			
				|  |  |  				  //用到货日期代替一下预发货日期
 | 
	
	
		
			
				|  | @@ -949,25 +957,18 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
	
		
			
				|  |  |  		  List<String> submitListId = syShippingDetails.getGrouyIdList();
 | 
	
		
			
				|  |  |  		  for(String str:submitListId ){
 | 
	
		
			
				|  |  |  			  idsList.add(str);
 | 
	
		
			
				|  |  | -//		  	String idsArray[] = str.split(",");
 | 
	
		
			
				|  |  | -//
 | 
	
		
			
				|  |  | -//		  	for(String arr:idsArray){
 | 
	
		
			
				|  |  | -//				idsList.add(arr);
 | 
	
		
			
				|  |  | -//			}
 | 
	
		
			
				|  |  |  		  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		  //查询是否已提交
 | 
	
		
			
				|  |  | -		  QueryWrapper<SyShippingDetailsItem> itemQueryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | -		  itemQueryWrapper.in("id",idsList).eq("submit_status","0");
 | 
	
		
			
				|  |  | -		  List<SyShippingDetailsItem> list = syShippingDetailsItemService.list(itemQueryWrapper);
 | 
	
		
			
				|  |  |  			  if(syShippingDetails.getType().equals("1")) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				  Set<String> seenData = new HashSet<>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				  //查询未提交数据
 | 
	
		
			
				|  |  | +				  QueryWrapper<SyShippingDetailsItem> itemQueryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | +				  itemQueryWrapper.in("id",idsList).eq("submit_status","0");
 | 
	
		
			
				|  |  | +				  List<SyShippingDetailsItem> list = syShippingDetailsItemService.list(itemQueryWrapper);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  				  for (SyShippingDetailsItem li : list) {
 | 
	
		
			
				|  |  | -//					  if (li.getSubmitStatus() == 1) {
 | 
	
		
			
				|  |  | -//						  result.setSuccess(false);
 | 
	
		
			
				|  |  | -//						  result.setMessage("部分单据已提交,请勿重复提交!");
 | 
	
		
			
				|  |  | -//						  return result;
 | 
	
		
			
				|  |  | -//					  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  					  //判断是不是辅料数据,如果是不必维护一下内容
 | 
	
		
			
				|  |  |  					  String code = li.getInventoryCcode().substring(0,2);
 | 
	
	
		
			
				|  | @@ -975,7 +976,6 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
	
		
			
				|  |  |  					  if(li.getInventoryCcode().length() >= 4){
 | 
	
		
			
				|  |  |  						  code1 = li.getInventoryCcode().substring(0,4);
 | 
	
		
			
				|  |  |  					  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  					  if(!code.equals("04") && !code.equals("05")&& !code.equals("06")&& !code.equals("07")&& !code1.equals("0299")&& !code1.equals("0399")&& !code1.equals("0499")){
 | 
	
		
			
				|  |  |  						  //判断物料成份。isTc、款号是否为空,为空不允许提交
 | 
	
		
			
				|  |  |  						  if(oConvertUtils.isEmpty(li.getItemNumber()) || oConvertUtils.isEmpty(li.getMaterialComposition()) || oConvertUtils.isEmpty(li.getIsTc())){
 | 
	
	
		
			
				|  | @@ -984,29 +984,18 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
	
		
			
				|  |  |  							  return result;
 | 
	
		
			
				|  |  |  						  }
 | 
	
		
			
				|  |  |  					  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -					  
 | 
	
		
			
				|  |  | -				  }
 | 
	
		
			
				|  |  | -				  //判断重复自由项数据
 | 
	
		
			
				|  |  | -				  for (String str : syShippingDetails.getGrouyIdList()) {
 | 
	
		
			
				|  |  | -					  Set<String> seenData = new HashSet<>();
 | 
	
		
			
				|  |  | -					  QueryWrapper<SyShippingDetailsItem> queryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | -					  queryWrapper.in("group_id", str).eq("del_flag", 0);
 | 
	
		
			
				|  |  | -					  List<SyShippingDetailsItem> groupList = syShippingDetailsItemService.list(queryWrapper);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -					  for (SyShippingDetailsItem item : groupList) {
 | 
	
		
			
				|  |  | -						  String key = generateKey(item);
 | 
	
		
			
				|  |  | -						  if (seenData.contains(key)) {
 | 
	
		
			
				|  |  | -							  result.setSuccess(false);
 | 
	
		
			
				|  |  | -							  result.setMessage("第" + count + "条里面有重复数据,无法提交");
 | 
	
		
			
				|  |  | -							  return result;
 | 
	
		
			
				|  |  | -						  }
 | 
	
		
			
				|  |  | -						  seenData.add(key);
 | 
	
		
			
				|  |  | +					  //判断重复自由项数据
 | 
	
		
			
				|  |  | +					  String key = generateKey(li);
 | 
	
		
			
				|  |  | +					  if (seenData.contains(key)) {
 | 
	
		
			
				|  |  | +						  result.setSuccess(false);
 | 
	
		
			
				|  |  | +						  result.setMessage("第" + count + "条里面有重复数据,无法提交");
 | 
	
		
			
				|  |  | +						  return result;
 | 
	
		
			
				|  |  |  					  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +					  seenData.add(key);
 | 
	
		
			
				|  |  |  					  count++;
 | 
	
		
			
				|  |  |  				  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  			  }else{
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			  	  List<String> taId = new ArrayList<>();
 | 
	
	
		
			
				|  | @@ -1067,7 +1056,7 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
 | 
	
		
			
				|  |  |    //处理拼接
 | 
	
		
			
				|  |  |  	 private String generateKey(SyShippingDetailsItem item) {
 | 
	
		
			
				|  |  |  		 // 根据需要拼接一个唯一标识字符串,用于比较
 | 
	
		
			
				|  |  | -		 return item.getSmallPo() + item.getOrderNumber() + item.getPreDeliveryDate() + item.getPreCompletionDate()
 | 
	
		
			
				|  |  | +		 return item.getGroupId()+item.getSmallPo() + item.getOrderNumber() + item.getPreDeliveryDate() + item.getPreCompletionDate()
 | 
	
		
			
				|  |  |  				 + item.getItemNumber() + item.getInventoryCode() + item.getColour() + item.getSize()
 | 
	
		
			
				|  |  |  				 + item.getGuangpeiGateWidth() + item.getWeight() + item.getCodingRules();
 | 
	
		
			
				|  |  |  	 }
 |