|  |  |  | @ -1,5 +1,6 @@ | 
			
		
	
		
			
				
					|  |  |  |  | package com.glxp.api.controller.inv; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.bean.BeanUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.collection.CollUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.util.StrUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
			
		
	
	
		
			
				
					|  |  |  | @ -7,10 +8,13 @@ import com.github.pagehelper.PageInfo; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.annotation.AuthRuleAnnotation; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.res.BaseResponse; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.util.ResultVOUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.dao.inout.IoCodeDao; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.basic.UdiEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.basic.UdiProductEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.inout.IoCodeEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.entity.inv.InvProductEntity; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.basic.FilterUdiRelRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.inout.FilterCodeRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.inout.FilterOrderRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.inv.FilterCodeTraceRequest; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.req.inv.FilterInvProductDetailRequest; | 
			
		
	
	
		
			
				
					|  |  |  | @ -44,7 +48,8 @@ public class UdiTraceController { | 
			
		
	
		
			
				
					|  |  |  |  |     IoOrderService orderService; | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     InvProductServiceNew invProductServiceNew; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Resource | 
			
		
	
		
			
				
					|  |  |  |  |     IoCodeDao ioCodeDao; | 
			
		
	
		
			
				
					|  |  |  |  |     //TODO 20241017 先把这个接口注释了
 | 
			
		
	
		
			
				
					|  |  |  |  |     @AuthRuleAnnotation("") | 
			
		
	
		
			
				
					|  |  |  |  |     @GetMapping("udiwarehouse/trace/filter") | 
			
		
	
	
		
			
				
					|  |  |  | @ -61,21 +66,21 @@ public class UdiTraceController { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "耗材字典不存在此产品!"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         List<UdiProductEntity> udiInfoEntities = udiProductService.findByUuids(udiInfoBean.getUuid()); | 
			
		
	
		
			
				
					|  |  |  |  |         FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         FilterCodeRequest filterCodeRequest = new FilterCodeRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (udiInfoEntities != null && udiInfoEntities.size() > 1) { | 
			
		
	
		
			
				
					|  |  |  |  |             filterInvProductDetailRequest.setRelId(udiInfoBean.getId() + ""); | 
			
		
	
		
			
				
					|  |  |  |  |             filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |             filterCodeRequest.setRelId(udiInfoBean.getId() + ""); | 
			
		
	
		
			
				
					|  |  |  |  |             filterCodeRequest.setBatchNo(udiEntity.getBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |  |             filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             filterCodeRequest.setCode(filterCodeTraceRequest.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | //        IoCodeEntity;
 | 
			
		
	
		
			
				
					|  |  |  |  |         filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId()); | 
			
		
	
		
			
				
					|  |  |  |  |         List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         filterCodeRequest.setSupId(filterCodeTraceRequest.getSupId()); | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCodeEntity> invProductDetailEntities = ioCodeDao.filterCodeList(filterCodeRequest); | 
			
		
	
		
			
				
					|  |  |  |  |         if (invProductDetailEntities.size() > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |             Map<String, String> filterMap = new HashMap<>(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             for (InvProductNewVo invProductDetailEntity : invProductDetailEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCodeEntity invProductDetailEntity : invProductDetailEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |                 filterMap.put(invProductDetailEntity.getOrderId(), invProductDetailEntity.getOrderId()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             List<String> orderIds = new ArrayList<>(); | 
			
		
	
	
		
			
				
					|  |  |  | @ -108,7 +113,7 @@ public class UdiTraceController { | 
			
		
	
		
			
				
					|  |  |  |  |                     udiTraceResponse.setYlqxzcrbarmc(finalUdiRelevance.getYlqxzcrbarmc()); | 
			
		
	
		
			
				
					|  |  |  |  |                     udiTraceResponse.setCpmctymc(finalUdiRelevance.getCpmctymc()); | 
			
		
	
		
			
				
					|  |  |  |  |                     udiTraceResponse.setGgxh(finalUdiRelevance.getGgxh()); | 
			
		
	
		
			
				
					|  |  |  |  |                     InvProductNewVo invProductDetailEntity = invProductDetailEntities.get(0); | 
			
		
	
		
			
				
					|  |  |  |  |                     IoCodeEntity invProductDetailEntity = invProductDetailEntities.get(0); | 
			
		
	
		
			
				
					|  |  |  |  |                     udiTraceResponse.setBatchNo(invProductDetailEntity.getBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                     udiTraceResponse.setProduceDate(invProductDetailEntity.getProduceDate()); | 
			
		
	
		
			
				
					|  |  |  |  |                     udiTraceResponse.setExpireDate(invProductDetailEntity.getExpireDate()); | 
			
		
	
	
		
			
				
					|  |  |  | @ -148,7 +153,7 @@ public class UdiTraceController { | 
			
		
	
		
			
				
					|  |  |  |  |         if (udiInfoBean == null) { | 
			
		
	
		
			
				
					|  |  |  |  |             return ResultVOUtils.error(500, "耗材字典不存在此产品!"); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         List<InvProductNewVo> mInvProductDetailEntities = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         List<IoCodeEntity> mInvProductDetailEntities = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         //判断是否多级包装
 | 
			
		
	
		
			
				
					|  |  |  |  |         List<UdiProductEntity> udiInfoEntities = udiProductService.findByUuids(udiInfoBean.getUuid()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -161,28 +166,29 @@ public class UdiTraceController { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { | 
			
		
	
		
			
				
					|  |  |  |  |                     //假设条码不完整
 | 
			
		
	
		
			
				
					|  |  |  |  |                     FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |                     filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                     filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId()); | 
			
		
	
		
			
				
					|  |  |  |  |                     List<InvProductNewVo> temps = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest); | 
			
		
	
		
			
				
					|  |  |  |  |                     FilterCodeRequest filterCodeRequest = new FilterCodeRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |                     filterCodeRequest.setCode(filterCodeTraceRequest.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                     filterCodeRequest.setSupId(filterCodeTraceRequest.getSupId()); | 
			
		
	
		
			
				
					|  |  |  |  |                     List<IoCodeEntity> temps = ioCodeDao.filterCodeList(filterCodeRequest); | 
			
		
	
		
			
				
					|  |  |  |  |                     if (CollUtil.isNotEmpty(temps)) { | 
			
		
	
		
			
				
					|  |  |  |  |                         Map<String, List<InvProductNewVo>> filterMaps = temps.stream().collect(Collectors.groupingBy(InvProductNewVo::getBatchNo)); | 
			
		
	
		
			
				
					|  |  |  |  |                         Map<String, List<IoCodeEntity>> filterMaps = temps.stream().collect(Collectors.groupingBy(IoCodeEntity::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); | 
			
		
	
		
			
				
					|  |  |  |  |                                 filterCodeRequest = new FilterCodeRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |                                 filterCodeRequest.setRelId(udiRelevanceResponse.getId() + ""); | 
			
		
	
		
			
				
					|  |  |  |  |                                 filterCodeRequest.setBatchNo(bacthNo); | 
			
		
	
		
			
				
					|  |  |  |  |                                 List<IoCodeEntity> invProductDetailEntities = ioCodeDao.filterCodeList(filterCodeRequest); | 
			
		
	
		
			
				
					|  |  |  |  |                                 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); | 
			
		
	
		
			
				
					|  |  |  |  |                         filterCodeRequest = new FilterCodeRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |                         filterCodeRequest.setRelId(udiRelevanceResponse.getId() + ""); | 
			
		
	
		
			
				
					|  |  |  |  |                         filterCodeRequest.setBatchNo(udiEntity.getBatchNo()); | 
			
		
	
		
			
				
					|  |  |  |  |                         List<IoCodeEntity> invProductDetailEntities = ioCodeDao.filterCodeList(filterCodeRequest); | 
			
		
	
		
			
				
					|  |  |  |  |                         if (CollUtil.isNotEmpty(invProductDetailEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |                             mInvProductDetailEntities.addAll(invProductDetailEntities); | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
	
		
			
				
					|  |  |  | @ -191,12 +197,12 @@ public class UdiTraceController { | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |  |             //单级包装
 | 
			
		
	
		
			
				
					|  |  |  |  |             FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |             filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId()); | 
			
		
	
		
			
				
					|  |  |  |  |             FilterCodeRequest filterCodeRequest = new FilterCodeRequest(); | 
			
		
	
		
			
				
					|  |  |  |  |             filterCodeRequest.setCode(filterCodeTraceRequest.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |             filterCodeRequest.setSupId(filterCodeTraceRequest.getSupId()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.list(new QueryWrapper<InvProductNewVo>().likeRight("code", filterCodeTraceRequest.getCode())); | 
			
		
	
		
			
				
					|  |  |  |  | //            List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest);
 | 
			
		
	
		
			
				
					|  |  |  |  |             List<IoCodeEntity> invProductDetailEntities = ioCodeDao.selectList(new QueryWrapper<IoCodeEntity>().likeRight("code", filterCodeTraceRequest.getCode()).eq("supId",filterCodeRequest.getSupId())); | 
			
		
	
		
			
				
					|  |  |  |  | //            List<IoCodeEntity> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterCodeRequest);
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (CollUtil.isNotEmpty(invProductDetailEntities)) { | 
			
		
	
		
			
				
					|  |  |  |  |                 mInvProductDetailEntities.addAll(invProductDetailEntities); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
	
		
			
				
					|  |  |  | @ -204,7 +210,7 @@ public class UdiTraceController { | 
			
		
	
		
			
				
					|  |  |  |  |         if (mInvProductDetailEntities.size() > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |             Map<String, String> filterMap = new HashMap<>(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             for (InvProductNewVo invProductDetailEntity : mInvProductDetailEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |             for (IoCodeEntity invProductDetailEntity : mInvProductDetailEntities) { | 
			
		
	
		
			
				
					|  |  |  |  |                 filterMap.put(invProductDetailEntity.getOrderId(), invProductDetailEntity.getOrderId()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             List<String> orderIds = new ArrayList<>(); | 
			
		
	
	
		
			
				
					|  |  |  | 
 |