|  |  | @ -2,14 +2,25 @@ package com.glxp.sale.admin.controller.inout; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.github.pagehelper.PageInfo; |  |  |  | import com.github.pagehelper.PageInfo; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.sale.admin.annotation.AuthRuleAnnotation; |  |  |  | import com.glxp.sale.admin.annotation.AuthRuleAnnotation; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.sale.admin.entity.basic.UdiInfoEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.sale.admin.entity.inout.OrderEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.sale.admin.entity.inout.WarehouseEntity; |  |  |  | import com.glxp.sale.admin.entity.inout.WarehouseEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.sale.admin.entity.inventory.InvProductDetailEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.sale.admin.entity.udid.UdiEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.sale.admin.req.basic.FilterUdiInfoRequest; |  |  |  | import com.glxp.sale.admin.req.basic.FilterUdiInfoRequest; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.sale.admin.req.inout.WarehouseQueryRequest; |  |  |  | import com.glxp.sale.admin.req.inout.WarehouseQueryRequest; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.sale.admin.req.inventory.FilterCodeTraceRequest; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.sale.admin.req.inventory.FilterInvProductDetailRequest; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.sale.admin.res.PageSimpleResponse; |  |  |  | import com.glxp.sale.admin.res.PageSimpleResponse; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.sale.admin.res.basic.UdiRelevanceResponse; |  |  |  | import com.glxp.sale.admin.res.basic.UdiRelevanceResponse; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.sale.admin.res.inout.UdiTraceResponse; |  |  |  | import com.glxp.sale.admin.res.inout.UdiTraceResponse; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.sale.admin.res.inventory.InvProductPageRespnonse; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.sale.admin.service.basic.UdiInfoService; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.sale.admin.service.basic.UdiRelevanceService; |  |  |  | import com.glxp.sale.admin.service.basic.UdiRelevanceService; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.sale.admin.service.inout.CodesService; |  |  |  | import com.glxp.sale.admin.service.inout.CodesService; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.sale.admin.service.inout.OrderService; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.sale.admin.service.inventory.InvProductDetailService; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.sale.admin.util.FilterUdiUtils; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.sale.common.res.BaseResponse; |  |  |  | import com.glxp.sale.common.res.BaseResponse; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.sale.common.util.ResultVOUtils; |  |  |  | import com.glxp.sale.common.util.ResultVOUtils; | 
			
		
	
		
		
			
				
					
					|  |  |  | import org.springframework.beans.BeanUtils; |  |  |  | import org.springframework.beans.BeanUtils; | 
			
		
	
	
		
		
			
				
					|  |  | @ -17,7 +28,10 @@ import org.springframework.web.bind.annotation.GetMapping; | 
			
		
	
		
		
			
				
					
					|  |  |  | import org.springframework.web.bind.annotation.RestController; |  |  |  | import org.springframework.web.bind.annotation.RestController; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | import javax.annotation.Resource; |  |  |  | import javax.annotation.Resource; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import java.util.ArrayList; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import java.util.HashMap; | 
			
		
	
		
		
			
				
					
					|  |  |  | import java.util.List; |  |  |  | import java.util.List; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import java.util.Map; | 
			
		
	
		
		
			
				
					
					|  |  |  | import java.util.stream.Collectors; |  |  |  | import java.util.stream.Collectors; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | @RestController |  |  |  | @RestController | 
			
		
	
	
		
		
			
				
					|  |  | @ -27,10 +41,91 @@ public class UdiTraceController { | 
			
		
	
		
		
			
				
					
					|  |  |  |     private CodesService warehouseService; |  |  |  |     private CodesService warehouseService; | 
			
		
	
		
		
			
				
					
					|  |  |  |     @Resource |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |     UdiRelevanceService udiRelevanceService; |  |  |  |     UdiRelevanceService udiRelevanceService; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private UdiInfoService udiInfoService; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     InvProductDetailService invProductDetailService; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     OrderService orderService; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     @AuthRuleAnnotation("") |  |  |  |     @AuthRuleAnnotation("") | 
			
		
	
		
		
			
				
					
					|  |  |  |     @GetMapping("udiwarehouse/trace/filter") |  |  |  |     @GetMapping("udiwarehouse/trace/filter") | 
			
		
	
		
		
			
				
					
					|  |  |  |     public BaseResponse list(WarehouseQueryRequest warehouseQueryRequest) { |  |  |  |     public BaseResponse list(FilterCodeTraceRequest filterCodeTraceRequest) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (filterCodeTraceRequest.getCode() == null) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return ResultVOUtils.success(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         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<UdiInfoEntity> udiInfoEntities = udiInfoService.findByUuids(udiInfoBean.getUuid()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (udiInfoEntities != null && udiInfoEntities.size() > 1) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             filterInvProductDetailRequest.setProductIdFk(udiInfoBean.getId() + ""); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             filterInvProductDetailRequest.setOriginCode(filterCodeTraceRequest.getCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProduct(filterInvProductDetailRequest); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (invProductDetailEntities.size() > 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             Map<String, String> filterMap = new HashMap<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 filterMap.put(invProductDetailEntity.getOrderIdFk(), invProductDetailEntity.getOrderIdFk()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<String> orderIds = new ArrayList<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             for (String key : filterMap.keySet()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 orderIds.add(key); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<OrderEntity> orderEntities = orderService.filterListByOrder(orderIds); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             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(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 BeanUtils.copyProperties(item, udiTraceResponse); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if (finalUdiRelevance != null) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     udiTraceResponse.setYlqxzcrbarmc(finalUdiRelevance.getYlqxzcrbarmc()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     udiTraceResponse.setCpmctymc(finalUdiRelevance.getCpmctymc()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     udiTraceResponse.setGgxh(finalUdiRelevance.getGgxh()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     udiTraceResponse.setOrderId(item.getId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 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, "未查询到数据!"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @AuthRuleAnnotation("") | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @GetMapping("udiwarehouse/trace/filterOld") | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public BaseResponse filterOld(WarehouseQueryRequest warehouseQueryRequest) { | 
			
		
	
		
		
			
				
					
					|  |  |  |         List<WarehouseEntity> warehouseEntityList = warehouseService.findByOrderId(warehouseQueryRequest); |  |  |  |         List<WarehouseEntity> warehouseEntityList = warehouseService.findByOrderId(warehouseQueryRequest); | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (warehouseEntityList != null && warehouseEntityList.size() > 0) { |  |  |  |         if (warehouseEntityList != null && warehouseEntityList.size() > 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             WarehouseEntity warehouseEntity = warehouseEntityList.get(0); |  |  |  |             WarehouseEntity warehouseEntity = warehouseEntityList.get(0); | 
			
		
	
	
		
		
			
				
					|  |  | @ -48,7 +143,7 @@ public class UdiTraceController { | 
			
		
	
		
		
			
				
					
					|  |  |  |             { |  |  |  |             { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 UdiTraceResponse udiTraceResponse = new UdiTraceResponse(); |  |  |  |                 UdiTraceResponse udiTraceResponse = new UdiTraceResponse(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 BeanUtils.copyProperties(item, udiTraceResponse); |  |  |  |                 BeanUtils.copyProperties(item, udiTraceResponse); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if(finalUdiRelevance!=null){ |  |  |  |                 if (finalUdiRelevance != null) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     udiTraceResponse.setYlqxzcrbarmc(finalUdiRelevance.getYlqxzcrbarmc()); |  |  |  |                     udiTraceResponse.setYlqxzcrbarmc(finalUdiRelevance.getYlqxzcrbarmc()); | 
			
		
	
		
		
			
				
					
					|  |  |  |                     udiTraceResponse.setCpmctymc(finalUdiRelevance.getCpmctymc()); |  |  |  |                     udiTraceResponse.setCpmctymc(finalUdiRelevance.getCpmctymc()); | 
			
		
	
		
		
			
				
					
					|  |  |  |                     udiTraceResponse.setGgxh(finalUdiRelevance.getGgxh()); |  |  |  |                     udiTraceResponse.setGgxh(finalUdiRelevance.getGgxh()); | 
			
		
	
	
		
		
			
				
					|  |  | @ -61,8 +156,8 @@ public class UdiTraceController { | 
			
		
	
		
		
			
				
					
					|  |  |  |             pageSimpleResponse.setTotal(pageInfo.getTotal()); |  |  |  |             pageSimpleResponse.setTotal(pageInfo.getTotal()); | 
			
		
	
		
		
			
				
					
					|  |  |  |             pageSimpleResponse.setList(udiTraceResponseList); |  |  |  |             pageSimpleResponse.setList(udiTraceResponseList); | 
			
		
	
		
		
			
				
					
					|  |  |  |             return ResultVOUtils.success(pageSimpleResponse); |  |  |  |             return ResultVOUtils.success(pageSimpleResponse); | 
			
		
	
		
		
			
				
					
					|  |  |  |         }else { |  |  |  |         } else { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             return ResultVOUtils.error(500,"未找到该条码!"); |  |  |  |             return ResultVOUtils.error(500, "未找到该条码!"); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |