UDI流向查询

master
anthonywj 3 years ago
parent 5a97811af0
commit 7718543a43

@ -4,14 +4,14 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.glxp.udi.admin.entity.auth.AuthAdmin; import com.glxp.udi.admin.entity.auth.AuthAdmin;
import com.glxp.udi.admin.entity.inout.OrderMdEntity; import com.glxp.udi.admin.entity.inout.*;
import com.glxp.udi.admin.entity.inout.TraceUploadEntity;
import com.glxp.udi.admin.entity.inout.UdiInfoEntity;
import com.glxp.udi.admin.entity.inout.WarehouseEntity;
import com.glxp.udi.admin.entity.udid.UdiEntity; import com.glxp.udi.admin.entity.udid.UdiEntity;
import com.glxp.udi.admin.exception.JsonException; import com.glxp.udi.admin.exception.JsonException;
import com.glxp.udi.admin.mongo.service.InvProductDetailMdService;
import com.glxp.udi.admin.mongo.service.InvProductMdService;
import com.glxp.udi.admin.mongo.service.OrderMdService; import com.glxp.udi.admin.mongo.service.OrderMdService;
import com.glxp.udi.admin.mongo.service.WarehouseMdService; import com.glxp.udi.admin.mongo.service.WarehouseMdService;
import com.glxp.udi.admin.req.inout.FilterInvProductDetailRequest;
import com.glxp.udi.admin.req.inout.FilterUdiInfoRequest; import com.glxp.udi.admin.req.inout.FilterUdiInfoRequest;
import com.glxp.udi.admin.req.inout.OrderFilterRequest; import com.glxp.udi.admin.req.inout.OrderFilterRequest;
import com.glxp.udi.admin.req.inout.WarehouseQueryRequest; import com.glxp.udi.admin.req.inout.WarehouseQueryRequest;
@ -60,6 +60,11 @@ public class UdiTraceController {
AuthAdminService authAdminService; AuthAdminService authAdminService;
@Resource @Resource
private OrderMdService orderMdService; private OrderMdService orderMdService;
@Resource
private InvProductMdService invProductMdService;
@Resource
private InvProductDetailMdService invProductDetailMdService;
@GetMapping("/udiwarehouse/trace/filter") @GetMapping("/udiwarehouse/trace/filter")
public BaseResponse list(WarehouseQueryRequest warehouseQueryRequest) { public BaseResponse list(WarehouseQueryRequest warehouseQueryRequest) {
@ -160,13 +165,14 @@ public class UdiTraceController {
if (warehouseQueryRequest.getCode() != null && !"".equals(warehouseQueryRequest.getCode())) { if (warehouseQueryRequest.getCode() != null && !"".equals(warehouseQueryRequest.getCode())) {
if (warehouseQueryRequest.getFilterType() == null || warehouseQueryRequest.getFilterType() == 1) { if (warehouseQueryRequest.getFilterType() == null || warehouseQueryRequest.getFilterType() == 1) {
List<OrderMdEntity> temps = filterUdiTrace(warehouseQueryRequest); List<OrderMdEntity> temps = filterUdiTrace(warehouseQueryRequest);
orderMdEntities.addAll(temps); if (temps != null)
orderMdEntities.addAll(temps);
} else { } else {
UdiEntity udiEntity = FilterUdiUtils.getUdi(warehouseQueryRequest.getCode()); UdiEntity udiEntity = FilterUdiUtils.getUdi(warehouseQueryRequest.getCode());
if (udiEntity == null) if (udiEntity == null)
return ResultVOUtils.error(500, "UDI码格式错误"); return ResultVOUtils.error(500, "UDI码格式错误");
UdiInfoEntity udiInfoEntity = udiInfoService.findByNameCode(udiEntity.getUdi(), customerId); UdiInfoEntity udiInfoEntity = udiInfoService.findByNameCode(udiEntity.getUdi(), customerId);
List<UdiInfoEntity> udiInfoEntities = udiInfoService.findByUuids(udiInfoEntity.getUuid(),customerId); List<UdiInfoEntity> udiInfoEntities = udiInfoService.findByUuids(udiInfoEntity.getUuid(), customerId);
if (udiInfoEntities != null && udiInfoEntities.size() > 0) { if (udiInfoEntities != null && udiInfoEntities.size() > 0) {
for (UdiInfoEntity temp : udiInfoEntities) { for (UdiInfoEntity temp : udiInfoEntities) {
WarehouseQueryRequest queryRequest = new WarehouseQueryRequest(); WarehouseQueryRequest queryRequest = new WarehouseQueryRequest();
@ -192,27 +198,62 @@ public class UdiTraceController {
} }
public List<OrderMdEntity> filterUdiTrace(WarehouseQueryRequest warehouseQueryRequest) { public List<OrderMdEntity> filterUdiTrace(WarehouseQueryRequest warehouseQueryRequest) {
List<OrderMdEntity> orderMdEntities = new ArrayList<>(); String code = warehouseQueryRequest.getCode();
List<WarehouseEntity> warehouseEntityList = warehouseMdService.filterWarehouse(warehouseQueryRequest); UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
List<String> orderS = new ArrayList<>(); List<InvProductDetailEntity> invProductDetailEntities;
warehouseEntityList.stream().filter( if (udiEntity.getSerialNo() != null) { //有序列号
v -> { UdiInfoEntity udiInfoEntity = udiInfoService.findByNameCode(udiEntity.getUdi(), warehouseQueryRequest.getCustomerId() + "");
boolean flag = !orderS.contains(v.getOrderId()); List<UdiInfoEntity> udiInfoEntities = udiInfoService.findByUuids(udiInfoEntity.getUuid(), warehouseQueryRequest.getCustomerId() + "");
if (flag) if (udiInfoEntities != null) {
orderS.add(v.getOrderId()); if (udiInfoEntities.size() > 1) {//多级包装,查所有
return flag; FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
} filterInvProductDetailRequest.setProductIdFk(udiInfoEntity.getUuid());
).collect(Collectors.toList()); filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo());
if (warehouseQueryRequest.getCustomerId() != null)
filterInvProductDetailRequest.setCustomerId(warehouseQueryRequest.getCustomerId() + "");
invProductDetailEntities = invProductDetailMdService.filterAllInvProduct(filterInvProductDetailRequest);
} else if (udiInfoEntities.size() == 1) { //单级包装,且唯一查询条码
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setCode(warehouseQueryRequest.getCode());
if (warehouseQueryRequest.getCustomerId() != null)
filterInvProductDetailRequest.setCustomerId(warehouseQueryRequest.getCustomerId() + "");
invProductDetailEntities = invProductDetailMdService.filterAllInvProduct(filterInvProductDetailRequest);
} else
return null;
} else
return null;
} else {
UdiInfoEntity udiInfoEntity = udiInfoService.findByNameCode(udiEntity.getUdi(), warehouseQueryRequest.getCustomerId() + "");
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setProductIdFk(udiInfoEntity.getUuid());
filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo());
if (warehouseQueryRequest.getCustomerId() != null)
filterInvProductDetailRequest.setCustomerId(warehouseQueryRequest.getCustomerId() + "");
invProductDetailEntities = invProductDetailMdService.filterAllInvProduct(filterInvProductDetailRequest);
}
if (invProductDetailEntities != null && invProductDetailEntities.size() > 0) {
List<OrderMdEntity> orderMdEntities = new ArrayList<>();
List<String> orderS = new ArrayList<>();
invProductDetailEntities.stream().filter(
v -> {
boolean flag = !orderS.contains(v.getOrderIdFk());
if (flag)
orderS.add(v.getOrderIdFk());
return flag;
}
).collect(Collectors.toList());
for (String orderId : orderS) { for (String orderId : orderS) {
OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); OrderFilterRequest orderFilterRequest = new OrderFilterRequest();
orderFilterRequest.setId(orderId); orderFilterRequest.setId(orderId);
List<OrderMdEntity> temps = orderMdService.findAll(orderFilterRequest); List<OrderMdEntity> temps = orderMdService.findAll(orderFilterRequest);
orderMdEntities.addAll(temps); orderMdEntities.addAll(temps);
} }
Collections.sort(orderMdEntities, Comparator.comparing(OrderMdEntity::getId)); Collections.sort(orderMdEntities, Comparator.comparing(OrderMdEntity::getId));
return orderMdEntities; return orderMdEntities;
} else return null;
} }
@GetMapping("/coor/trace/findCode") @GetMapping("/coor/trace/findCode")

@ -48,6 +48,26 @@ public class InvProductDetailMdService {
} }
public List<InvProductDetailEntity> filterAllInvProduct(FilterInvProductDetailRequest filterInvProductDetailRequest) {
Query query = new Query();
if (filterInvProductDetailRequest.getCode() != null && !filterInvProductDetailRequest.getCode().isEmpty()) {
query.addCriteria(Criteria.where("code").is(filterInvProductDetailRequest.getCode()));
}
if (filterInvProductDetailRequest.getProductIdFk() != null && !filterInvProductDetailRequest.getProductIdFk().isEmpty()) {
query.addCriteria(Criteria.where("productIdFk").is(filterInvProductDetailRequest.getProductIdFk()));
}
if (filterInvProductDetailRequest.getMainAction() != null && !filterInvProductDetailRequest.getMainAction().isEmpty()) {
query.addCriteria(Criteria.where("mainAction").is(filterInvProductDetailRequest.getMainAction()));
}
if (filterInvProductDetailRequest.getCustomerId() != null && !filterInvProductDetailRequest.getCustomerId().isEmpty()) {
query.addCriteria(Criteria.where("customerId").is(filterInvProductDetailRequest.getCustomerId()));
}
if (filterInvProductDetailRequest.getBatchNo() != null && !filterInvProductDetailRequest.getBatchNo().isEmpty()) {
query.addCriteria(Criteria.where("batchNo").is(filterInvProductDetailRequest.getBatchNo()));
}
return mongoTemplate.find(query, InvProductDetailEntity.class, MongoDBName.NAME_INV_PRODUCT_DETAIL);
}
public void insertInvProduct(InvProductDetailEntity invProductDetailEntity) { public void insertInvProduct(InvProductDetailEntity invProductDetailEntity) {
mongoTemplate.insert(invProductDetailEntity, MongoDBName.NAME_INV_PRODUCT_DETAIL); mongoTemplate.insert(invProductDetailEntity, MongoDBName.NAME_INV_PRODUCT_DETAIL);
} }

@ -2,6 +2,7 @@ package com.glxp.udi.admin.util;
import com.glxp.udi.admin.entity.inout.UdiInfoEntity; import com.glxp.udi.admin.entity.inout.UdiInfoEntity;
import com.glxp.udi.admin.entity.inout.WarehouseEntity;
import com.glxp.udi.admin.entity.udid.UdiEntity; import com.glxp.udi.admin.entity.udid.UdiEntity;
/** /**
@ -248,8 +249,10 @@ public class FilterUdiUtils {
data.setProduceDate(udiEntity.getProduceDate()); data.setProduceDate(udiEntity.getProduceDate());
data.setExpireDate(udiEntity.getExpireDate()); data.setExpireDate(udiEntity.getExpireDate());
data.setSerialNo(udiEntity.getSerialNo()); data.setSerialNo(udiEntity.getSerialNo());
data.setUdi(udiEntity.getUdi());
} }
return data; return data;
} }
} }

Loading…
Cancel
Save