|  |  | @ -44,188 +44,190 @@ public class UdiTraceController { | 
			
		
	
		
		
			
				
					
					|  |  |  |     IoOrderService orderService; |  |  |  |     IoOrderService orderService; | 
			
		
	
		
		
			
				
					
					|  |  |  |     @Resource |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |     InvProductServiceNew invProductServiceNew; |  |  |  |     InvProductServiceNew invProductServiceNew; | 
			
		
	
		
		
			
				
					
					|  |  |  |     //TODO 20241017 先把这个接口注释了
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //    @AuthRuleAnnotation("")
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //    @GetMapping("udiwarehouse/trace/filter")
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //    public BaseResponse list(FilterCodeTraceRequest filterCodeTraceRequest) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        if (StrUtil.isEmpty(filterCodeTraceRequest.getCode())) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            return ResultVOUtils.error(500, "UDI码不能为空");
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeTraceRequest.getCode());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        if (udiEntity == null) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            return ResultVOUtils.error(500, "无效条码");
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        UdiRelevanceResponse udiInfoBean = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        if (udiInfoBean == null) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            return ResultVOUtils.error(500, "耗材字典不存在此产品!");
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        List<UdiProductEntity> udiInfoEntities = udiProductService.findByUuids(udiInfoBean.getUuid());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        if (udiInfoEntities != null && udiInfoEntities.size() > 1) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            filterInvProductDetailRequest.setRelId(udiInfoBean.getId() + "");
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        } else {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        if (invProductDetailEntities.size() > 0) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            Map<String, String> filterMap = new HashMap<>();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            for (InvProductNewVo invProductDetailEntity : invProductDetailEntities) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                filterMap.put(invProductDetailEntity.getOrderId(), invProductDetailEntity.getOrderId());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            List<String> orderIds = new ArrayList<>();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            for (String key : filterMap.keySet()) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                orderIds.add(key);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            filterOrderRequest.setOrderIds(orderIds);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            List<IoOrderResponse> orderEntities = orderService.filterList(filterOrderRequest);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            filterUdiInfoRequest.setNameCode(udiEntity.getUdi());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterUdiGp(filterUdiInfoRequest);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            UdiRelevanceResponse udiRelevance = null;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                udiRelevance = udiRelevanceResponses.get(0);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            UdiRelevanceResponse finalUdiRelevance = udiRelevance;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            List<UdiTraceResponse> udiTraceResponseList = orderEntities.stream().map(item ->
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                UdiTraceResponse udiTraceResponse = new UdiTraceResponse();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                udiTraceResponse.setOrderId(item.getBillNo());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                udiTraceResponse.setBillTypeName(item.getBillTypeName());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                udiTraceResponse.setFromCorp(item.getFromName());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                udiTraceResponse.setActDate(MsDateUtil.formatDate(item.getCreateTime()));
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                if (finalUdiRelevance != null) {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    udiTraceResponse.setYlqxzcrbarmc(finalUdiRelevance.getYlqxzcrbarmc());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    udiTraceResponse.setCpmctymc(finalUdiRelevance.getCpmctymc());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    udiTraceResponse.setGgxh(finalUdiRelevance.getGgxh());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    InvProductNewVo invProductDetailEntity = invProductDetailEntities.get(0);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    udiTraceResponse.setBatchNo(invProductDetailEntity.getBatchNo());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    udiTraceResponse.setProduceDate(invProductDetailEntity.getProduceDate());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    udiTraceResponse.setExpireDate(invProductDetailEntity.getExpireDate());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                    udiTraceResponse.setCount(invProductDetailEntity.getCount());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //                return udiTraceResponse;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            }).collect(Collectors.toList());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            PageInfo<UdiTraceResponse> pageInfo;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            pageInfo = new PageInfo<>(udiTraceResponseList);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            PageSimpleResponse<UdiTraceResponse> pageSimpleResponse = new PageSimpleResponse<>();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            pageSimpleResponse.setTotal(pageInfo.getTotal());
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            pageSimpleResponse.setList(udiTraceResponseList);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            return ResultVOUtils.success(pageSimpleResponse);
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        } else {
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //            return ResultVOUtils.error(500, "未查询到数据!");
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | //    }
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     //TODO 20241017 先把这个接口注释了
 |  |  |  |     //TODO 20241017 先把这个接口注释了
 | 
			
		
	
		
		
			
				
					
					|  |  |  | //    @AuthRuleAnnotation("")
 |  |  |  |     @AuthRuleAnnotation("") | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //    @GetMapping("spms/inv/products/order/trace")
 |  |  |  |     @GetMapping("udiwarehouse/trace/filter") | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //    public BaseResponse filterOrderTrace(FilterCodeTraceRequest filterCodeTraceRequest) {
 |  |  |  |     public BaseResponse list(FilterCodeTraceRequest filterCodeTraceRequest) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |         if (StrUtil.isEmpty(filterCodeTraceRequest.getCode())) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        if (filterCodeTraceRequest.getCode() == null) {
 |  |  |  |             return ResultVOUtils.error(500, "UDI码不能为空"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            return ResultVOUtils.success();
 |  |  |  |         } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |         UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeTraceRequest.getCode()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        System.out.println(filterCodeTraceRequest + "---------------------------------------------");
 |  |  |  |         if (udiEntity == null) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeTraceRequest.getCode());
 |  |  |  |             return ResultVOUtils.error(500, "无效条码"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        if (udiEntity == null) {
 |  |  |  |         } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            return ResultVOUtils.error(500, "无效条码");
 |  |  |  |         UdiRelevanceResponse udiInfoBean = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |         if (udiInfoBean == null) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        UdiRelevanceResponse udiInfoBean = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
 |  |  |  |             return ResultVOUtils.error(500, "耗材字典不存在此产品!"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        if (udiInfoBean == null) {
 |  |  |  |         } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            return ResultVOUtils.error(500, "耗材字典不存在此产品!");
 |  |  |  |         List<UdiProductEntity> udiInfoEntities = udiProductService.findByUuids(udiInfoBean.getUuid()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |         FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        List<InvProductNewVo> mInvProductDetailEntities = new ArrayList<>();
 |  |  |  |         if (udiInfoEntities != null && udiInfoEntities.size() > 1) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        //判断是否多级包装
 |  |  |  |             filterInvProductDetailRequest.setRelId(udiInfoBean.getId() + ""); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        List<UdiProductEntity> udiInfoEntities = udiProductService.findByUuids(udiInfoBean.getUuid());
 |  |  |  |             filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |         } else { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        if (udiInfoEntities != null && udiInfoEntities.size() > 1) {
 |  |  |  |             filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            //多级包装根据产品ID,批次号查询
 |  |  |  |         } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            //1.判断是否di关联多个产品ID
 |  |  |  | //        IoCodeEntity;
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectAllByNameCode(udiEntity.getUdi());
 |  |  |  |         filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            if (CollUtil.isNotEmpty(udiRelevanceResponses)) {
 |  |  |  |         List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |         if (invProductDetailEntities.size() > 0) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
 |  |  |  |             Map<String, String> filterMap = new HashMap<>(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                    //假设条码不完整
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                    FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
 |  |  |  |             for (InvProductNewVo invProductDetailEntity : invProductDetailEntities) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                    filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode());
 |  |  |  |                 filterMap.put(invProductDetailEntity.getOrderId(), invProductDetailEntity.getOrderId()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                    filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId());
 |  |  |  |             } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                    List<InvProductNewVo> temps = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest);
 |  |  |  |             List<String> orderIds = new ArrayList<>(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                    if (CollUtil.isNotEmpty(temps)) {
 |  |  |  |             for (String key : filterMap.keySet()) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                        Map<String, List<InvProductNewVo>> filterMaps = temps.stream().collect(Collectors.groupingBy(InvProductNewVo::getBatchNo));
 |  |  |  |                 orderIds.add(key); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                        if (filterMaps.size() > 0) {
 |  |  |  |             } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                            for (String bacthNo : filterMaps.keySet()) {
 |  |  |  |             FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                                filterInvProductDetailRequest = new FilterInvProductDetailRequest();
 |  |  |  |             filterOrderRequest.setOrderIds(orderIds); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                                filterInvProductDetailRequest.setRelId(udiRelevanceResponse.getId() + "");
 |  |  |  |             List<IoOrderResponse> orderEntities = orderService.filterList(filterOrderRequest); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                                filterInvProductDetailRequest.setBatchNo(bacthNo);
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                                List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest);
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                                if (CollUtil.isNotEmpty(invProductDetailEntities)) {
 |  |  |  |             FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                                    mInvProductDetailEntities.addAll(invProductDetailEntities);
 |  |  |  |             filterUdiInfoRequest.setNameCode(udiEntity.getUdi()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                                }
 |  |  |  |             List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterUdiGp(filterUdiInfoRequest); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                            }
 |  |  |  |             UdiRelevanceResponse udiRelevance = null; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                        }
 |  |  |  |             if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                    } else {
 |  |  |  |                 udiRelevance = udiRelevanceResponses.get(0); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                        filterInvProductDetailRequest = new FilterInvProductDetailRequest();
 |  |  |  |             } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                        filterInvProductDetailRequest.setRelId(udiRelevanceResponse.getId() + "");
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                        filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo());
 |  |  |  |             UdiRelevanceResponse finalUdiRelevance = udiRelevance; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                        List<InvProductEntity> invProductDetailEntities = invProductServiceNew.selectByUnique(udiRelevanceResponse.getId(), udiEntity.getBatchNo(), null, null, null);
 |  |  |  |             List<UdiTraceResponse> udiTraceResponseList = orderEntities.stream().map(item -> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                        if (CollUtil.isNotEmpty(invProductDetailEntities)) {
 |  |  |  |             { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                            mInvProductDetailEntities.addAll(invProductDetailEntities);
 |  |  |  |                 UdiTraceResponse udiTraceResponse = new UdiTraceResponse(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                        }
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                    }
 |  |  |  |                 udiTraceResponse.setOrderId(item.getBillNo()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                }
 |  |  |  |                 udiTraceResponse.setBillTypeName(item.getBillTypeName()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            }
 |  |  |  |                 udiTraceResponse.setFromCorp(item.getFromName()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        } else {
 |  |  |  |                 udiTraceResponse.setActDate(MsDateUtil.formatDate(item.getCreateTime())); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            //单级包装
 |  |  |  |                 if (finalUdiRelevance != null) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
 |  |  |  |                     udiTraceResponse.setYlqxzcrbarmc(finalUdiRelevance.getYlqxzcrbarmc()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode());
 |  |  |  |                     udiTraceResponse.setCpmctymc(finalUdiRelevance.getCpmctymc()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId());
 |  |  |  |                     udiTraceResponse.setGgxh(finalUdiRelevance.getGgxh()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |                     InvProductNewVo invProductDetailEntity = invProductDetailEntities.get(0); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.list(new QueryWrapper<InvProductNewVo>().likeRight("code", filterCodeTraceRequest.getCode()));
 |  |  |  |                     udiTraceResponse.setBatchNo(invProductDetailEntity.getBatchNo()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | ////            List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest);
 |  |  |  |                     udiTraceResponse.setProduceDate(invProductDetailEntity.getProduceDate()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            if (CollUtil.isNotEmpty(invProductDetailEntities)) {
 |  |  |  |                     udiTraceResponse.setExpireDate(invProductDetailEntity.getExpireDate()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                mInvProductDetailEntities.addAll(invProductDetailEntities);
 |  |  |  |                     udiTraceResponse.setCount(invProductDetailEntity.getCount()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            }
 |  |  |  |                 } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |                 return udiTraceResponse; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        if (mInvProductDetailEntities.size() > 0) {
 |  |  |  |             }).collect(Collectors.toList()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            Map<String, String> filterMap = new HashMap<>();
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            for (InvProductNewVo invProductDetailEntity : mInvProductDetailEntities) {
 |  |  |  |             PageInfo<UdiTraceResponse> pageInfo; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                filterMap.put(invProductDetailEntity.getOrderId(), invProductDetailEntity.getOrderId());
 |  |  |  |             pageInfo = new PageInfo<>(udiTraceResponseList); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            }
 |  |  |  |             PageSimpleResponse<UdiTraceResponse> pageSimpleResponse = new PageSimpleResponse<>(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            List<String> orderIds = new ArrayList<>();
 |  |  |  |             pageSimpleResponse.setTotal(pageInfo.getTotal()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            for (String key : filterMap.keySet()) {
 |  |  |  |             pageSimpleResponse.setList(udiTraceResponseList); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //                orderIds.add(key);
 |  |  |  |             return ResultVOUtils.success(pageSimpleResponse); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            }
 |  |  |  |         } else { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
 |  |  |  |             return ResultVOUtils.error(500, "未查询到数据!"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            filterOrderRequest.setOrderIds(orderIds);
 |  |  |  |         } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            filterOrderRequest.setPage(filterCodeTraceRequest.getPage());
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            filterOrderRequest.setLimit(filterCodeTraceRequest.getLimit());
 |  |  |  |     } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            List<IoOrderResponse> orderEntities = orderService.filterList(filterOrderRequest);
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            Collections.sort(orderEntities, Comparator.comparing(IoOrderResponse::getCreateTime));
 |  |  |  |     //    TODO 20241017先把这个接口注释了
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            PageInfo<IoOrderResponse> pageInfo;
 |  |  |  |     @AuthRuleAnnotation("") | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            pageInfo = new PageInfo<>(orderEntities);
 |  |  |  |     @GetMapping("spms/inv/products/order/trace") | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            PageSimpleResponse<IoOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            pageSimpleResponse.setTotal(pageInfo.getTotal());
 |  |  |  |     public BaseResponse filterOrderTrace(FilterCodeTraceRequest filterCodeTraceRequest) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            pageSimpleResponse.setList(orderEntities);
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            return ResultVOUtils.success(pageSimpleResponse);
 |  |  |  |         if (filterCodeTraceRequest.getCode() == null) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        } else {
 |  |  |  |             return ResultVOUtils.success(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //            return ResultVOUtils.error(500, "未查询到数据!");
 |  |  |  |         } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //        }
 |  |  |  |         System.out.println(filterCodeTraceRequest + "---------------------------------------------"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //
 |  |  |  |         UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeTraceRequest.getCode()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | //    }
 |  |  |  |         if (udiEntity == null) { | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return ResultVOUtils.error(500, "无效条码"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         UdiRelevanceResponse udiInfoBean = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (udiInfoBean == null) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return ResultVOUtils.error(500, "耗材字典不存在此产品!"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<InvProductNewVo> mInvProductDetailEntities = new ArrayList<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //判断是否多级包装
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<UdiProductEntity> udiInfoEntities = udiProductService.findByUuids(udiInfoBean.getUuid()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (udiInfoEntities != null && udiInfoEntities.size() > 1) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             //多级包装根据产品ID,批次号查询
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             //1.判断是否di关联多个产品ID
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectAllByNameCode(udiEntity.getUdi()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (CollUtil.isNotEmpty(udiRelevanceResponses)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     //假设条码不完整
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     List<InvProductNewVo> temps = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     if (CollUtil.isNotEmpty(temps)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         Map<String, List<InvProductNewVo>> filterMaps = temps.stream().collect(Collectors.groupingBy(InvProductNewVo::getBatchNo)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         if (filterMaps.size() > 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                             for (String bacthNo : filterMaps.keySet()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                 filterInvProductDetailRequest = new FilterInvProductDetailRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                 filterInvProductDetailRequest.setRelId(udiRelevanceResponse.getId() + ""); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                 filterInvProductDetailRequest.setBatchNo(bacthNo); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                 List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                 if (CollUtil.isNotEmpty(invProductDetailEntities)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                     mInvProductDetailEntities.addAll(invProductDetailEntities); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         filterInvProductDetailRequest = new FilterInvProductDetailRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         filterInvProductDetailRequest.setRelId(udiRelevanceResponse.getId() + ""); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         List<InvProductEntity> invProductDetailEntities = invProductServiceNew.selectByUnique(udiRelevanceResponse.getId(), udiEntity.getBatchNo(), null, null, null); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         if (CollUtil.isNotEmpty(invProductDetailEntities)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                             mInvProductDetailEntities.addAll(invProductDetailEntities); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             //单级包装
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.list(new QueryWrapper<InvProductNewVo>().likeRight("code", filterCodeTraceRequest.getCode())); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | //            List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest);
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (CollUtil.isNotEmpty(invProductDetailEntities)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 mInvProductDetailEntities.addAll(invProductDetailEntities); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (mInvProductDetailEntities.size() > 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             Map<String, String> filterMap = new HashMap<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             for (InvProductNewVo invProductDetailEntity : mInvProductDetailEntities) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 filterMap.put(invProductDetailEntity.getOrderId(), invProductDetailEntity.getOrderId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<String> orderIds = new ArrayList<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             for (String key : filterMap.keySet()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 orderIds.add(key); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             filterOrderRequest.setOrderIds(orderIds); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             filterOrderRequest.setPage(filterCodeTraceRequest.getPage()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             filterOrderRequest.setLimit(filterCodeTraceRequest.getLimit()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<IoOrderResponse> orderEntities = orderService.filterList(filterOrderRequest); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             Collections.sort(orderEntities, Comparator.comparing(IoOrderResponse::getCreateTime)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             PageInfo<IoOrderResponse> pageInfo; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             pageInfo = new PageInfo<>(orderEntities); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             PageSimpleResponse<IoOrderResponse> pageSimpleResponse = new PageSimpleResponse<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             pageSimpleResponse.setTotal(pageInfo.getTotal()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             pageSimpleResponse.setList(orderEntities); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return ResultVOUtils.success(pageSimpleResponse); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return ResultVOUtils.error(500, "未查询到数据!"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |