UDI码流向查询修改

fencang
anthonyywj2 3 years ago
parent 6def1b6a81
commit c7f31fa4b1

@ -2,14 +2,25 @@ package com.glxp.sale.admin.controller.inout;
import com.github.pagehelper.PageInfo;
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.inventory.InvProductDetailEntity;
import com.glxp.sale.admin.entity.udid.UdiEntity;
import com.glxp.sale.admin.req.basic.FilterUdiInfoRequest;
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.basic.UdiRelevanceResponse;
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.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.util.ResultVOUtils;
import org.springframework.beans.BeanUtils;
@ -17,7 +28,10 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RestController
@ -27,10 +41,91 @@ public class UdiTraceController {
private CodesService warehouseService;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
private UdiInfoService udiInfoService;
@Resource
InvProductDetailService invProductDetailService;
@Resource
OrderService orderService;
@AuthRuleAnnotation("")
@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);
if (warehouseEntityList != null && warehouseEntityList.size() > 0) {
WarehouseEntity warehouseEntity = warehouseEntityList.get(0);
@ -48,7 +143,7 @@ public class UdiTraceController {
{
UdiTraceResponse udiTraceResponse = new UdiTraceResponse();
BeanUtils.copyProperties(item, udiTraceResponse);
if(finalUdiRelevance!=null){
if (finalUdiRelevance != null) {
udiTraceResponse.setYlqxzcrbarmc(finalUdiRelevance.getYlqxzcrbarmc());
udiTraceResponse.setCpmctymc(finalUdiRelevance.getCpmctymc());
udiTraceResponse.setGgxh(finalUdiRelevance.getGgxh());
@ -61,8 +156,8 @@ public class UdiTraceController {
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiTraceResponseList);
return ResultVOUtils.success(pageSimpleResponse);
}else {
return ResultVOUtils.error(500,"未找到该条码!");
} else {
return ResultVOUtils.error(500, "未找到该条码!");
}
}
}

@ -1,5 +1,6 @@
package com.glxp.sale.admin.controller.inventory;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.sale.admin.annotation.AuthRuleAnnotation;
@ -50,6 +51,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RestController
@ -299,22 +301,72 @@ public class InvProductsController {
if (udiInfoBean == null) {
return ResultVOUtils.error(500, "耗材字典不存在此产品!");
}
List<InvProductDetailEntity> mInvProductDetailEntities = new ArrayList<>();
//判断是否多级包装
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());
//多级包装根据产品ID批次号查询
//1.判断是否di关联多个产品ID
List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectAllByNameCode(udiEntity.getUdi());
if (CollUtil.isNotEmpty(udiRelevanceResponses)) {
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
//假设条码不完整
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setOriginCode(filterCodeTraceRequest.getCode());
filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId());
List<InvProductDetailEntity> temps = invProductDetailService.filterInvProduct(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(temps)) {
Map<String, List<InvProductDetailEntity>> filterMaps = temps.stream().collect(Collectors.groupingBy(InvProductDetailEntity::getBatchNo));
if (filterMaps.size() > 0) {
for (String bacthNo : filterMaps.keySet()) {
filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setProductIdFk(udiRelevanceResponse.getId() + "");
filterInvProductDetailRequest.setBatchNo(bacthNo);
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProduct(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
mInvProductDetailEntities.addAll(invProductDetailEntities);
}
}
}
} else {
filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setProductIdFk(udiRelevanceResponse.getId() + "");
filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProduct(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
mInvProductDetailEntities.addAll(invProductDetailEntities);
}
}
}
}
} else {
//单级包装
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setOriginCode(filterCodeTraceRequest.getCode());
filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProduct(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
mInvProductDetailEntities.addAll(invProductDetailEntities);
}
}
filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProduct(filterInvProductDetailRequest);
if (invProductDetailEntities.size() > 0) {
if (mInvProductDetailEntities.size() > 0) {
Map<String, String> filterMap = new HashMap<>();
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
for (InvProductDetailEntity invProductDetailEntity : mInvProductDetailEntities) {
filterMap.put(invProductDetailEntity.getOrderIdFk(), invProductDetailEntity.getOrderIdFk());
}
List<String> orderIds = new ArrayList<>();

@ -18,6 +18,8 @@ public interface UdiRelevanceService {
UdiRelevanceResponse selectByNameCode(String nameCode);
List<UdiRelevanceResponse> selectAllByNameCode(String nameCode);
List<UdiRelevanceResponse> selectAllByNameCode(String nameCode, String unitFk);
boolean isExit();

@ -22,8 +22,6 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService {
UdiRelevanceDao udiRelevanceDao;
@Resource
BasicThirdSysService basicThirdSysService;
@Resource
UdiInfoService udiInfoService;
@Override
public List<UdiRelevanceResponse> filterUdiRelevance(FilterUdiInfoRequest filterUdiInfoRequest) {
@ -74,6 +72,14 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService {
return null;
}
@Override
public List<UdiRelevanceResponse> selectAllByNameCode(String nameCode) {
FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
filterUdiInfoRequest.setUniqueNameCode(nameCode);
List<UdiRelevanceResponse> udiRelevanceResponses = filterUdiRelevance(filterUdiInfoRequest);
return udiRelevanceResponses;
}
@Override
public List<UdiRelevanceResponse> selectAllByNameCode(String nameCode, String unitFk) {

@ -98,7 +98,8 @@
#{updateTime},
#{replicateNo},
#{invWarehouseCode},
#{fromSubInvCode},#{createTime}
#{fromSubInvCode},
#{createTime}
)
</insert>
@ -582,6 +583,8 @@
<foreach collection="orderList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
order by actDate
</select>
<select id="selectByBillNo" resultType="com.glxp.sale.admin.entity.inout.OrderEntity">

Loading…
Cancel
Save