仓库逻辑改变仓库详情的逻辑都改成仓库表(第一次更新)

dev_no_inv
qyt 9 months ago
parent d313d19f35
commit 3813dd8295

File diff suppressed because it is too large Load Diff

@ -808,7 +808,7 @@ public class IoCodeTempController extends BaseController {
if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) {
return ResultVOUtils.error(533, "当前追溯码已存在!");
}
} else {
} else if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode());
if (fifoCodeEntity == null) {
@ -952,11 +952,11 @@ public class IoCodeTempController extends BaseController {
// TODO: 2024/10/14 判断价格先进先出
// //1.获取当前批次已出库数量
// Integer outCount = invProductDetailService.selectCountByInBatch(exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_OUT);
// Integer outCount = invProductServiceNew.selectCountByInBatch(exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_OUT);
// //2.获取当前批次入库数量
// Integer inCount = invProductDetailService.selectCountByInBatch(exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_PUT);
// Integer inCount = invProductServiceNew.selectCountByInBatch(exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_PUT);
// if ((IntUtil.value(inCount) - IntUtil.value(outCount) - IntUtil.value(exitLocalEntity.getReCount())) < 0) {
// InvProductDetailEntity nextInvProduct = invProductDetailService.selectNextInBatch(bussinessTypeEntity, exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_PUT, exitLocalEntity.getInBatchNo());
// InvProductNewVo nextInvProduct = invProductServiceNew.selectNextInBatch(bussinessTypeEntity, exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_PUT, exitLocalEntity.getInBatchNo());
// if (nextInvProduct != null) {
// genDetaiEntity.setPrice(nextInvProduct.getPrice());
// genDetaiEntity.setInBatchNo(nextInvProduct.getInBatchNo());
@ -1418,11 +1418,11 @@ public class IoCodeTempController extends BaseController {
// TODO: 2024/10/14 价格先进先出
// //1.获取当前批次已出库数量
// Integer outCount = invProductDetailService.selectCountByInBatch(exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_OUT);
// Integer outCount = invProductServiceNew.selectCountByInBatch(exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_OUT);
// //2.获取当前批次入库数量
// Integer inCount = invProductDetailService.selectCountByInBatch(exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_PUT);
// Integer inCount = invProductServiceNew.selectCountByInBatch(exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_PUT);
// if ((IntUtil.value(inCount) - IntUtil.value(outCount) - IntUtil.value(exitLocalEntity.getReCount())) < 0) {
// InvProductDetailEntity nextInvProduct = invProductDetailService.selectNextInBatch(bussinessTypeEntity, exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_PUT, exitLocalEntity.getInBatchNo());
// InvProductNewVo nextInvProduct = invProductServiceNew.selectNextInBatch(bussinessTypeEntity, exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_PUT, exitLocalEntity.getInBatchNo());
// if (nextInvProduct != null) {
// genDetaiEntity.setPrice(nextInvProduct.getPrice());
// genDetaiEntity.setInBatchNo(nextInvProduct.getInBatchNo());

@ -40,6 +40,7 @@ import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inout.impl.IoOrderInvoiceService;
import com.glxp.api.service.inv.InvPreProductDetailService;
import com.glxp.api.service.inv.InvPreinProductDetailService;
import com.glxp.api.service.inv.impl.InvProductServiceNew;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.*;
import lombok.extern.slf4j.Slf4j;
@ -100,6 +101,9 @@ public class IoOrderController extends BaseController {
@Resource
IoSplitFifoCodeService fifoCodeService;
@Resource
InvProductServiceNew invProductServiceNew;
/**
*
*
@ -1418,7 +1422,7 @@ public class IoOrderController extends BaseController {
outInvCode = invWarehouseEntity.getCode();
}
int count = 0;
count = invProductDetailService.vailStockCount(bizEntity.getBindRlFk(), bizEntity.getBatchNo(), bizEntity.getSupId(), null, outInvCode, null, true);
count = invProductServiceNew.vailStockCount(bizEntity.getBindRlFk(), bizEntity.getBatchNo(), bizEntity.getSupId(), null, outInvCode, null, true);
if (count < 0) {
if (count == -1) {
return ResultVOUtils.error(500, "该产品未入库");

@ -43,6 +43,7 @@ import com.glxp.api.service.inout.*;
import com.glxp.api.service.inout.impl.IoOrderInvoiceService;
import com.glxp.api.service.inout.impl.ReceiveDetailService;
import com.glxp.api.service.inout.impl.ReceiveService;
import com.glxp.api.service.inv.impl.InvProductServiceNew;
import com.glxp.api.service.purchase.PurOrderService;
import com.glxp.api.service.purchase.SupCertService;
import com.glxp.api.service.purchase.SupProductService;
@ -295,7 +296,7 @@ public class IoOrderDetailBizController extends BaseController {
}
@Resource
InvProductDetailService invProductDetailService;
InvProductServiceNew invProductServiceNew;
//修改业务单据详情
@AuthRuleAnnotation("")
@ -319,7 +320,7 @@ public class IoOrderDetailBizController extends BaseController {
Boolean vailBatchNo = true;
if (IntUtil.value(bussinessTypeEntity.getVailInvBatchNo()))
vailBatchNo = false;
Integer count = invProductDetailService.vailStockCount(orderDetailBizEntity.getBindRlFk(), orderDetailBizEntity.getBatchNo(), orderDetailBizEntity.getSupId(), null, outInvCode, null, vailBatchNo);
Integer count = invProductServiceNew.vailStockCount(orderDetailBizEntity.getBindRlFk(), orderDetailBizEntity.getBatchNo(), orderDetailBizEntity.getSupId(), null, outInvCode, null, vailBatchNo);
count = IntUtil.value(count) - orderDetailBizEntity.getCount();
if (count < 0) {

@ -2,6 +2,8 @@ package com.glxp.api.controller.inv;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.service.inv.impl.InvProductService;
import com.glxp.api.service.inv.impl.InvProductServiceNew;
import com.glxp.api.vo.basic.InvProductNewVo;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
@ -51,7 +53,7 @@ public class InvProductController extends BaseController {
@Resource
private InvProductService invProductService;
@Resource
private InvProductDetailService invProductDetailService;
private InvProductServiceNew invProductServiceNew;
@Resource
private WarehouseUserService warehouseUserService;
@Resource
@ -167,8 +169,8 @@ public class InvProductController extends BaseController {
if (!"".equals(filterInvProductDetailRequest.getOrderBy())) {
filterInvProductDetailRequest.setOrderBy("updateTime");
}
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProductDetailList(filterInvProductDetailRequest);
PageInfo<InvProductDetailEntity> pageInfo = new PageInfo<>(invProductDetailEntities);
List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest);
PageInfo<InvProductNewVo> pageInfo = new PageInfo<>(invProductDetailEntities);
List<InvProductDetailResponse> list = new ArrayList<>();
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
@ -176,7 +178,7 @@ public class InvProductController extends BaseController {
InvProductDetailResponse response = new InvProductDetailResponse();
BeanUtils.copyProperties(invProductDetailEntity, response);
//设置单据类型名称等单据相关参数
invProductDetailService.setOrderInfo(response);
invProductServiceNew.setOrderInfo(response);
list.add(response);
});
}
@ -226,7 +228,7 @@ public class InvProductController extends BaseController {
detailRequest.setBatchNo(invProductEntity.getBatchNo());
}
invProductService.deleteById(id);
invProductDetailService.deleteInvProductDetail(detailRequest);
// invProductServiceNew.deleteInvProductDetail(detailRequest);
return ResultVOUtils.success("删除成功");
} else {
return ResultVOUtils.error(500, "删除失败");
@ -315,14 +317,14 @@ public class InvProductController extends BaseController {
if (invWarehouseEntity != null) {
outInvCode = invWarehouseEntity.getCode();
}
count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, outInvCode, null, true);
count = invProductServiceNew.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, outInvCode, null, true);
} else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) {
count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), true);
count = invProductServiceNew.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), true);
} else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) {
//按指定货位出库
if (StrUtil.isEmpty(codeTempEntity.getWarehouseCode())) {
List<InvPlaceDetailResponse> invProductDetailEntities = invProductDetailService.findByGroupCode(codeTempEntity.getInvCode(), codeTempEntity.getCode(), true);
List<InvPlaceDetailResponse> invProductDetailEntities = invProductServiceNew.findByGroupCode(codeTempEntity.getInvCode(), codeTempEntity.getCode(), true);
if (CollUtil.isNotEmpty(invProductDetailEntities) && invProductDetailEntities.size() > 1) {
BaseResponse baseResponse = ResultVOUtils.error(511, "存在多个货位,请指定当前货位!");
baseResponse.setData(invProductDetailEntities);
@ -334,7 +336,7 @@ public class InvProductController extends BaseController {
return ResultVOUtils.error(500, "添加失败,该产品未上架货位!");
}
} else {
count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), true);
count = invProductServiceNew.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), true);
}
}
if (count <= 0) {

@ -9,6 +9,7 @@ import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.req.inv.FilterCodeTraceRequest;
@ -20,8 +21,10 @@ import com.glxp.api.res.inv.UdiTraceResponse;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.inv.impl.InvProductServiceNew;
import com.glxp.api.util.MsDateUtil;
import com.glxp.api.util.udi.FilterUdiUtils;
import com.glxp.api.vo.basic.InvProductNewVo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@ -39,187 +42,190 @@ public class UdiTraceController {
UdiProductService udiProductService;
@Resource
IoOrderService orderService;
@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<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProductDetailList(filterInvProductDetailRequest);
if (invProductDetailEntities.size() > 0) {
Map<String, String> filterMap = new HashMap<>();
for (InvProductDetailEntity 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());
InvProductDetailEntity 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, "未查询到数据!");
}
}
@AuthRuleAnnotation("")
@GetMapping("spms/inv/products/order/trace")
public BaseResponse filterOrderTrace(FilterCodeTraceRequest filterCodeTraceRequest) {
if (filterCodeTraceRequest.getCode() == null) {
return ResultVOUtils.success();
}
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<InvProductDetailEntity> 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<InvProductDetailEntity> temps = invProductDetailService.filterInvProductDetailList(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.setRelId(udiRelevanceResponse.getId() + "");
filterInvProductDetailRequest.setBatchNo(bacthNo);
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProductDetailList(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
mInvProductDetailEntities.addAll(invProductDetailEntities);
}
}
}
} else {
filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setRelId(udiRelevanceResponse.getId() + "");
filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.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<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.list(new QueryWrapper<InvProductDetailEntity>().likeRight("code", filterCodeTraceRequest.getCode()));
// List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProductDetailList(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
mInvProductDetailEntities.addAll(invProductDetailEntities);
}
}
if (mInvProductDetailEntities.size() > 0) {
Map<String, String> filterMap = new HashMap<>();
for (InvProductDetailEntity 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, "未查询到数据!");
}
}
@Resource
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 先把这个接口注释了
// @AuthRuleAnnotation("")
// @GetMapping("spms/inv/products/order/trace")
// public BaseResponse filterOrderTrace(FilterCodeTraceRequest filterCodeTraceRequest) {
//
// if (filterCodeTraceRequest.getCode() == null) {
// return ResultVOUtils.success();
// }
// 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, "未查询到数据!");
// }
//
// }
}

@ -23,6 +23,7 @@ import com.glxp.api.service.forthird.impl.ForThirdSysApiService;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.InvPreProductDetailService;
import com.glxp.api.service.inv.InvPreinProductDetailService;
import com.glxp.api.service.inv.impl.InvProductServiceNew;
import com.glxp.api.util.udi.FilterUdiUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -44,7 +45,7 @@ public class ForThirdSysApiController {
@Resource
InvPreProductDetailService invPreProductDetailService;
@Resource
InvProductDetailService invProductDetailService;
InvProductServiceNew invProductServiceNew;
@Resource
UdiRelevanceService udiRelevanceService;
@ -137,7 +138,7 @@ public class ForThirdSysApiController {
}
if (count == 0) {
//3.获取入账库库存
count = invProductDetailService.vailStockCount(checkUdi.getRelId(), udiEntity.getBatchNo(), null, null, filterInvProductRequest.getInvCode(), null, true);
count = invProductServiceNew.vailStockCount(checkUdi.getRelId(), udiEntity.getBatchNo(), null, null, filterInvProductRequest.getInvCode(), null, true);
}
InvProductResponse invProductResponse = new InvProductResponse();
BeanUtil.copyProperties(checkUdi, invProductResponse);

@ -9,6 +9,7 @@ import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvPreinProductResponse;
import com.glxp.api.vo.basic.InvProductNewVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -56,12 +57,12 @@ public interface InvPreInProductDetailDao extends BaseMapperPlus<InvPreInProduct
List<InvPreInProductDetailEntity> findBySpaceList(@Param("spaceList") List<String> spaceList);
InvProductDetailEntity selectLastInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction);
InvProductNewVo selectLastInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction);
InvProductDetailEntity selectFirstInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction);
InvProductNewVo selectFirstInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction);
Integer selectCountByInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo,@Param("inBatchNo") String inBatchNo, @Param("mainAction") String mainAction);
InvProductDetailEntity selectNextInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction, @Param("inBatchNo") String inBatchNo);
InvProductNewVo selectNextInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction, @Param("inBatchNo") String inBatchNo);
}

@ -9,6 +9,7 @@ import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvPreinProductResponse;
import com.glxp.api.vo.basic.InvProductNewVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -52,12 +53,12 @@ public interface InvPreProductDetailDao extends BaseMapperPlus<InvPreProductDeta
List<InvPlaceDetailResponse> findByGroupCode(@Param("invCode") String invCode, @Param("code") String code);
InvProductDetailEntity selectLastInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction);
InvProductNewVo selectLastInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction);
InvProductDetailEntity selectFirstInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction);
InvProductNewVo selectFirstInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction);
Integer selectCountByInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo,@Param("inBatchNo") String inBatchNo, @Param("mainAction") String mainAction);
InvProductDetailEntity selectNextInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction, @Param("inBatchNo") String inBatchNo);
InvProductNewVo selectNextInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("mainAction") String mainAction, @Param("inBatchNo") String inBatchNo);
}

@ -1,6 +1,8 @@
package com.glxp.api.dao.inv;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.vo.basic.InvProductNewVo;
import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.req.inv.FilterInvPlaceRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.req.inv.FilterInvProductRequest;
@ -8,13 +10,15 @@ import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.res.inv.BindInvSpaceRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvProductResponse;
import com.glxp.api.vo.basic.InvProductNewVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
@Mapper
public interface InvProductDetailDao extends BaseMapperPlus<InvProductDetailDao, InvProductDetailEntity, InvProductDetailEntity> {
public interface InvProductNewDao extends BaseMapperPlus<InvProductNewDao, InvProductNewVo, InvProductNewVo> {
/**
*
@ -22,7 +26,7 @@ public interface InvProductDetailDao extends BaseMapperPlus<InvProductDetailDao,
* @param filterInvProductDetailRequest
* @return
*/
List<InvProductDetailEntity> filterInvProductDetailList(FilterInvProductDetailRequest filterInvProductDetailRequest);
List<InvProductNewVo> filterInvProductDetailList(FilterInvProductDetailRequest filterInvProductDetailRequest);
List<InvProductResponse> findGroupBySpace(FilterInvProductRequest filterInvProductRequest);
@ -57,34 +61,34 @@ public interface InvProductDetailDao extends BaseMapperPlus<InvProductDetailDao,
* @param bindInvSpaceRequest
* @return
*/
InvProductDetailEntity selectByInvAndCode(BindInvSpaceRequest bindInvSpaceRequest);
InvProductNewVo selectByInvAndCode(BindInvSpaceRequest bindInvSpaceRequest);
/**
* ID
* ID(20241017===)
*
* @param code
* @return
*/
List<String> selectSupIdByCode(@Param("code") String code);
/**
*
*
* @param invCode
* @param invSpaceCode
* @param relId
* @param batchNo
* @return
*/
List<String> selectCountOrderCodes(@Param("invCode") String invCode, @Param("invSpaceCode") String invSpaceCode, @Param("relId") Long relId, @Param("batchNo") String batchNo);
/**
*
*
* @param filterInvPlaceRequest
* @return
*/
List<InvPlaceDetailResponse> getInvProductInfo(FilterInvPlaceRequest filterInvPlaceRequest);
// List<String> selectSupIdByCode(@Param("code") String code);
// /**
// * 查询盘点单的码(20241017===没用到注释了)
// *
// * @param invCode
// * @param invSpaceCode
// * @param relId
// * @param batchNo
// * @return
// */
// List<String> selectCountOrderCodes(@Param("invCode") String invCode, @Param("invSpaceCode") String invSpaceCode, @Param("relId") Long relId, @Param("batchNo") String batchNo);
// /**
// * 查询库存摆放的产品详情数据(20241017===没用到注释了)
// *
// * @param filterInvPlaceRequest
// * @return
// */
// List<InvPlaceDetailResponse> getInvProductInfo(FilterInvPlaceRequest filterInvPlaceRequest);
/**
*
@ -102,12 +106,14 @@ public interface InvProductDetailDao extends BaseMapperPlus<InvProductDetailDao,
List<InvPlaceDetailResponse> findByGroupCode(@Param("invCode") String invCode, @Param("code") String code, @Param("isCheckSpace") Boolean isCheckSpace);
InvProductDetailEntity selectLastInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("invCode") String invCode, @Param("mainAction") String mainAction);
InvProductNewVo selectLastInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("invCode") String invCode, @Param("mainAction") String mainAction);
InvProductDetailEntity selectFirstInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("invCode") String invCode, @Param("mainAction") String mainAction);
InvProductNewVo selectFirstInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("invCode") String invCode, @Param("mainAction") String mainAction);
Integer selectCountByInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("invCode") String invCode, @Param("inBatchNo") String inBatchNo, @Param("mainAction") String mainAction);
InvProductDetailEntity selectNextInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("invCode") String invCode, @Param("mainAction") String mainAction, @Param("inBatchNo") String inBatchNo);
InvProductNewVo selectNextInBatch(@Param("relId") String relId, @Param("batchNo") String batchNo, @Param("invCode") String invCode, @Param("mainAction") String mainAction, @Param("inBatchNo") String inBatchNo);
List<InvProductNewVo> selectOrderInfo(@Param(("orderIdFk")) String orderIdFk,@Param(("price")) BigDecimal price);
}

@ -0,0 +1,136 @@
package com.glxp.api.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class InvProductNewDto {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* UDI
*/
@TableField(value = "code")
private String code;
/**
*
*/
@TableField(value = "orderId")
private String orderId;
/**
* ID
*/
@TableField(value = "relId")
private Long relId;
/**
*
*/
@TableField(value = "nameCode")
private String nameCode;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
/**
*
*/
@TableField(value = "produceDate")
private String produceDate;
/**
*
*/
@TableField(value = "expireDate")
private String expireDate;
/**
*
*/
@TableField(value = "serialNo")
private String serialNo;
/**
*
*/
@TableField(value = "supId")
private String supId;
/**
*
*/
@TableField(value = "`count`")
private Integer count;
/**
*
*/
@TableField(value = "reCount")
private Integer reCount;
@TableField(value = "inCount")
private Integer inCount;
@TableField(value = "outCount")
private Integer outCount;
/**
*
*/
@TableField(value = "deptCode")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
/**
*
*/
@TableField(value = "invSpaceCode")
private String invSpaceCode;
/**
*
*/
@TableField(value = "purchaseType")
private Integer purchaseType;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
@TableField(value = "mainAction")
private String mainAction;
@TableField(value = "action")
private String action;
/**
*
*/
@TableField(value = "price")
private BigDecimal price;
/**
*
*/
@TableField(value = "inBatchNo")
private String inBatchNo;
}

@ -1,5 +1,6 @@
package com.glxp.api.req.inv;
import com.glxp.api.vo.basic.InvProductNewVo;
import lombok.Data;
import java.util.List;
@ -18,6 +19,6 @@ public class AddInvPlaceOrderRequest {
private String orderId;
private List<InvProductDetailEntity> codeList;
private List<InvProductNewVo> codeList;
}

@ -112,7 +112,7 @@ public class InvSpaceServiceImpl extends ServiceImpl<InvSpaceDao, InvSpace> impl
//todo 代码迁移,后面记得修改
// //判断此货位是否与库存绑定,如果与库存绑定,则无法删除
// Long detailCount = invProductDetailDao.countBySpaceCode(invSpace.getInvStorageCode(), invSpace.getInvWarehouseCode(), invSpace.getCode());
// Long detailCount = invProductServiceNew.countBySpaceCode(invSpace.getInvStorageCode(), invSpace.getInvWarehouseCode(), invSpace.getCode());
// if (detailCount > 0) {
// return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "此货位已被使用,无法删除!");
// }

@ -10,7 +10,7 @@ import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.dev.DeptDeviceDetailDao;
import com.glxp.api.dao.dev.DeviceReceiveOrderDetailDao;
import com.glxp.api.dao.inv.InvProductDao;
import com.glxp.api.dao.inv.InvProductDetailDao;
import com.glxp.api.dao.inv.InvProductNewDao;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.dev.DeptDeviceDetailEntity;
@ -25,6 +25,7 @@ import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.dev.DeviceReceiveOrderDetailService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.udi.FilterUdiUtils;
import com.glxp.api.vo.basic.InvProductNewVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -40,7 +41,7 @@ public class DeviceReceiveOrderDetailServiceImpl implements DeviceReceiveOrderDe
@Resource
private DeviceReceiveOrderDetailDao deviceReceiveOrderDetailDao;
@Resource
private InvProductDetailDao invProductDetailDao;
private InvProductNewDao invProductNewDao;
@Resource
private InvProductDao invProductDao;
@Resource
@ -102,8 +103,8 @@ public class DeviceReceiveOrderDetailServiceImpl implements DeviceReceiveOrderDe
invProductDetailRequest.setSupId(addDetailRequest.getSupId());
}
//查询库存详情
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(invProductDetailRequest);
InvProductDetailEntity invProductDetailEntity = invProductDetailEntities.get(0);
List<InvProductNewVo> invProductDetailEntities = invProductNewDao.filterInvProductDetailList(invProductDetailRequest);
InvProductNewVo invProductDetailEntity = invProductDetailEntities.get(0);
DeviceReceiveOrderDetailEntity orderDetail = getDeviceReceiveOrderDetailEntity(addDetailRequest.getOrderIdFk(), addDetailRequest.getCode(), invProductDetailEntity);
deviceReceiveOrderDetailDao.insert(orderDetail);
}else if(addDetailRequest.getType() == 2){
@ -125,15 +126,16 @@ public class DeviceReceiveOrderDetailServiceImpl implements DeviceReceiveOrderDe
} else {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("device_product");
if(systemParamConfigEntity.getParamValue().equals("0") || addDetailRequest.getType() == 1){
//通过选库存添加
//查询选中的库存信息
for (String invProductId : addDetailRequest.getInvProductIds()) {
//查询库存详情
InvProductDetailEntity invProductDetailEntities = invProductDetailDao.selectById(Integer.valueOf(invProductId));
DeviceReceiveOrderDetailEntity orderDetail = getDeviceReceiveOrderDetailEntity(addDetailRequest.getOrderIdFk(), invProductDetailEntities.getCode(), invProductDetailEntities);
//插入设备领用记录详情
deviceReceiveOrderDetailDao.insert(orderDetail);
}
//TODO 20241017 这个插入设备领用记录详情需要依赖订单详情表先注释了看下要不要用其他方式写
// //通过选库存添加
// //查询选中的库存信息
// for (String invProductId : addDetailRequest.getInvProductIds()) {
// //查询库存详情
// InvProductNewVo invProductDetailEntities = invProductNewDao.selectById(Integer.valueOf(invProductId));
// DeviceReceiveOrderDetailEntity orderDetail = getDeviceReceiveOrderDetailEntity(addDetailRequest.getOrderIdFk(), invProductDetailEntities.getCode(), invProductDetailEntities);
// //插入设备领用记录详情
// deviceReceiveOrderDetailDao.insert(orderDetail);
// }
}else if(systemParamConfigEntity.getParamValue().equals("1") || addDetailRequest.getType() == 3 ){
for (String invProductId : addDetailRequest.getInvProductIds()) {
DeviceReceiveOrderDetailEntity deviceReceiveOrderDetailEntity = new DeviceReceiveOrderDetailEntity();
@ -183,14 +185,14 @@ public class DeviceReceiveOrderDetailServiceImpl implements DeviceReceiveOrderDe
* @param invProductDetailEntity
* @return
*/
private static DeviceReceiveOrderDetailEntity getDeviceReceiveOrderDetailEntity(String orderIdFk, String code, InvProductDetailEntity invProductDetailEntity) {
private static DeviceReceiveOrderDetailEntity getDeviceReceiveOrderDetailEntity(String orderIdFk, String code, InvProductNewVo invProductDetailEntity) {
//此条码数量为多个,生成多条养护记录
UdiEntity udi = FilterUdiUtils.getUdi(code);
DeviceReceiveOrderDetailEntity orderDetail = new DeviceReceiveOrderDetailEntity();
orderDetail.setOrderIdFk(orderIdFk);
orderDetail.setOriginCode(code);
orderDetail.setCode(code);
orderDetail.setRelId(invProductDetailEntity.getRelId());
orderDetail.setRelId(invProductDetailEntity.getRelIdFk());
orderDetail.setNameCode(udi.getUdi());
orderDetail.setBatchNo(udi.getBatchNo());
orderDetail.setProductionDate(udi.getProduceDate());
@ -265,7 +267,7 @@ public class DeviceReceiveOrderDetailServiceImpl implements DeviceReceiveOrderDe
//查询此条码是否在库存中存在
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setCode(code);
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(filterInvProductDetailRequest);
List<InvProductNewVo> invProductDetailEntities = invProductNewDao.filterInvProductDetailList(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
if (invProductDetailEntities.size() > 1) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "此设备记录存在于多个仓库,请选择此设备当前所处仓库!");

@ -7,7 +7,6 @@ import com.github.pagehelper.PageHelper;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.dev.InvMAExplanationDao;
import com.glxp.api.dao.dev.InvMAOrderDao;
import com.glxp.api.dao.dev.InvMAOrderDetailDao;
@ -23,13 +22,13 @@ import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.dev.InvMAOrderDetailResponse;
import com.glxp.api.service.dev.InvMAOrderDetailService;
import com.glxp.api.util.udi.FilterUdiUtils;
import com.glxp.api.vo.basic.InvProductNewVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
@ -41,7 +40,7 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
@Resource
private InvMAOrderDao invMAOrderDao;
@Resource
private InvProductDetailDao invProductDetailDao;
private InvProductNewDao invProductNewDao;
@Resource
private InvProductDao invProductDao;
@Resource
@ -94,7 +93,7 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
filterInvProductDetailRequest.setInvSpaceCode(maOrder.getInvSpaceCode());
filterInvProductDetailRequest.setProductionDate(udi.getProduceDate());
filterInvProductDetailRequest.setExpireDate(udi.getExpireDate());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(filterInvProductDetailRequest);
List<InvProductNewVo> invProductDetailEntities = invProductNewDao.filterInvProductDetailList(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
log.info("库存中存在,添加到库存养护记录详情中");
//设置养护状态为未养护
@ -106,7 +105,7 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
invMAOrderDetailEntity.setProductionDate(udi.getProduceDate());
invMAOrderDetailEntity.setExpireDate(udi.getExpireDate());
invMAOrderDetailEntity.setNameCode(udi.getUdi());
invMAOrderDetailEntity.setRelId(invProductDetailEntities.get(0).getRelId());
invMAOrderDetailEntity.setRelId(invProductDetailEntities.get(0).getRelIdFk());
if (null != invMAExplanationEntity) {
invMAOrderDetailEntity.setRemark(invMAExplanationEntity.getText());
}
@ -131,82 +130,83 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
}
return ResultVOUtils.success();
}
//TODO 20241017 根据库存详情批量添加养护详情记录基本上逻辑就是依赖code先注释了
@Override
public BaseResponse batchAddDetail(AddInvMAOrderDetailRequest addMAOrderDetailRequest) {
//查询库存养护记录说明
InvMAExplanationEntity invMAExplanationEntity = invMAExplanationDao.selectByStatus(1);
//遍历库存ID查找库存详情的条码信息生成库存养护记录详情
addMAOrderDetailRequest.getInvProductIds().forEach(invProductId -> {
//查询库存信息
InvProductEntity invProductEntity = invProductDao.selectById(invProductId);
//查询库存详情码信息
FilterInvProductDetailRequest detailRequest = new FilterInvProductDetailRequest();
detailRequest.setRelId(String.valueOf(invProductEntity.getRelIdFk()));
detailRequest.setBatchNo(invProductEntity.getBatchNo());
detailRequest.setDeptCode(invProductEntity.getDeptCode());
detailRequest.setInvCode(invProductEntity.getInvCode());
detailRequest.setProductionDate(invProductEntity.getProductionDate());
detailRequest.setExpireDate(invProductEntity.getExpireDate());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(detailRequest);
//提取去重后的码集合
List<String> codeList = invProductDetailEntities.stream().map(InvProductDetailEntity::getCode).distinct().collect(Collectors.toList());
//初始化码数量计算集合数据
Map<String, Integer> codeMap = new HashMap<>(codeList.size());
codeList.forEach(code -> codeMap.put(code, 0));
//计算当前在库存中的码明细
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
UdiEntity udi = FilterUdiUtils.getUdi(invProductDetailEntity.getCode());
if (StrUtil.isNotBlank(udi.getSerialNo())) {
//有序列号产品,根据产品数量计算即可
Integer count = codeMap.get(invProductDetailEntity.getCode());
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
//出库
count = count - 1;
} else {
//入库
count = count + 1;
}
codeMap.put(invProductDetailEntity.getCode(), count);
} else {
//无序列号产品条码,直接查询库存,使用此库存信息计算出养护数量
int count = invProductEntity.getInCount() - invProductEntity.getOutCount();
codeMap.put(invProductDetailEntity.getCode(), count);
}
}
//根据库存中的码明细,生成库存养护记录详情
for (String code : codeMap.keySet()) {
if (codeMap.get(code) > 0) {
//获取库存详情
InvProductDetailEntity invProductDetailEntity = null;
for (InvProductDetailEntity detailEntity : invProductDetailEntities) {
if (detailEntity.getCode().equals(code)) {
invProductDetailEntity = detailEntity;
break;
}
}
//生成库存养护记录详情
InvMAOrderDetailEntity maOrderDetail = new InvMAOrderDetailEntity();
maOrderDetail.setOrderIdFk(addMAOrderDetailRequest.getOrderIdFk());
maOrderDetail.setCode(invProductDetailEntity.getCode());
maOrderDetail.setRelId(invProductDetailEntity.getRelId());
maOrderDetail.setNameCode(invProductDetailEntity.getNameCode());
maOrderDetail.setProductionDate(invProductDetailEntity.getProduceDate());
maOrderDetail.setExpireDate(invProductDetailEntity.getExpireDate());
maOrderDetail.setBatchNo(invProductDetailEntity.getBatchNo());
maOrderDetail.setCount(codeMap.get(code));
maOrderDetail.setMaStatus(0);
maOrderDetail.setDeviceStatus(1);
maOrderDetail.setCreateTime(new Date());
if (null != invMAExplanationEntity) {
maOrderDetail.setRemark(invMAExplanationEntity.getText());
}
invMAOrderDetailDao.insert(maOrderDetail);
}
}
});
return ResultVOUtils.success("添加成功");
return null;
// //查询库存养护记录说明
// InvMAExplanationEntity invMAExplanationEntity = invMAExplanationDao.selectByStatus(1);
// //遍历库存ID查找库存详情的条码信息生成库存养护记录详情
// addMAOrderDetailRequest.getInvProductIds().forEach(invProductId -> {
// //查询库存信息
// InvProductEntity invProductEntity = invProductDao.selectById(invProductId);
// //查询库存详情码信息
// FilterInvProductDetailRequest detailRequest = new FilterInvProductDetailRequest();
// detailRequest.setRelId(String.valueOf(invProductEntity.getRelIdFk()));
// detailRequest.setBatchNo(invProductEntity.getBatchNo());
// detailRequest.setDeptCode(invProductEntity.getDeptCode());
// detailRequest.setInvCode(invProductEntity.getInvCode());
// detailRequest.setProductionDate(invProductEntity.getProductionDate());
// detailRequest.setExpireDate(invProductEntity.getExpireDate());
// List<InvProductNewVo> invProductDetailEntities = invProductNewDao.filterInvProductDetailList(detailRequest);
// //提取去重后的码集合
// List<String> codeList = invProductDetailEntities.stream().map(InvProductNewVo::getCode).distinct().collect(Collectors.toList());
// //初始化码数量计算集合数据
// Map<String, Integer> codeMap = new HashMap<>(codeList.size());
// codeList.forEach(code -> codeMap.put(code, 0));
// //计算当前在库存中的码明细
// for (InvProductNewVo invProductDetailEntity : invProductDetailEntities) {
// UdiEntity udi = FilterUdiUtils.getUdi(invProductDetailEntity.getCode());
// if (StrUtil.isNotBlank(udi.getSerialNo())) {
// //有序列号产品,根据产品数量计算即可
// Integer count = codeMap.get(invProductDetailEntity.getCode());
// if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
// //出库
// count = count - 1;
// } else {
// //入库
// count = count + 1;
// }
// codeMap.put(invProductDetailEntity.getCode(), count);
// } else {
// //无序列号产品条码,直接查询库存,使用此库存信息计算出养护数量
// int count = invProductEntity.getInCount() - invProductEntity.getOutCount();
// codeMap.put(invProductDetailEntity.getCode(), count);
// }
// }
//
// //根据库存中的码明细,生成库存养护记录详情
// for (String code : codeMap.keySet()) {
// if (codeMap.get(code) > 0) {
// //获取库存详情
// InvProductNewVo invProductDetailEntity = null;
// for (InvProductNewVo detailEntity : invProductDetailEntities) {
// if (detailEntity.getCode().equals(code)) {
// invProductDetailEntity = detailEntity;
// break;
// }
// }
// //生成库存养护记录详情
// InvMAOrderDetailEntity maOrderDetail = new InvMAOrderDetailEntity();
// maOrderDetail.setOrderIdFk(addMAOrderDetailRequest.getOrderIdFk());
// maOrderDetail.setCode(invProductDetailEntity.getCode());
// maOrderDetail.setRelId(invProductDetailEntity.getRelId());
// maOrderDetail.setNameCode(invProductDetailEntity.getNameCode());
// maOrderDetail.setProductionDate(invProductDetailEntity.getProduceDate());
// maOrderDetail.setExpireDate(invProductDetailEntity.getExpireDate());
// maOrderDetail.setBatchNo(invProductDetailEntity.getBatchNo());
// maOrderDetail.setCount(codeMap.get(code));
// maOrderDetail.setMaStatus(0);
// maOrderDetail.setDeviceStatus(1);
// maOrderDetail.setCreateTime(new Date());
// if (null != invMAExplanationEntity) {
// maOrderDetail.setRemark(invMAExplanationEntity.getText());
// }
// invMAOrderDetailDao.insert(maOrderDetail);
// }
// }
// });
// return ResultVOUtils.success("添加成功");
}
@Override

@ -6,6 +6,8 @@ import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.impl.InvProductService;
import com.glxp.api.service.inv.impl.InvProductServiceNew;
import com.glxp.api.vo.basic.InvProductNewVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
@ -61,7 +63,7 @@ public class IoAddInoutService {
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
InvProductDetailService invProductDetailService;
InvProductServiceNew invProductServiceNew;
@Resource
BasicCorpService basicCorpService;
@Resource
@ -1066,9 +1068,9 @@ public class IoAddInoutService {
if (checkDiAttribute(bussinessTypeEntity, orderDetailCodeEntity.getBindRlFk(), 1)) {
int count = 0;
if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) {
count = invProductDetailService.vailStockCount(orderDetailCodeEntity.getBindRlFk(), orderDetailCodeEntity.getBatchNo(), orderDetailCodeEntity.getSupId(), null, outInvCode, null, true);
count = invProductServiceNew.vailStockCount(orderDetailCodeEntity.getBindRlFk(), orderDetailCodeEntity.getBatchNo(), orderDetailCodeEntity.getSupId(), null, outInvCode, null, true);
} else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) {
count = invProductDetailService.vailStockCount(orderDetailCodeEntity.getBindRlFk(), orderDetailCodeEntity.getBatchNo(), orderDetailCodeEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(), orderEntity.getCurSpaceCode(), true);
count = invProductServiceNew.vailStockCount(orderDetailCodeEntity.getBindRlFk(), orderDetailCodeEntity.getBatchNo(), orderDetailCodeEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(), orderEntity.getCurSpaceCode(), true);
}
if (count < orderDetailCodeEntity.getScanCount()) {
return ResultVOUtils.error(500, "提交失败," + orderDetailCodeEntity.getCoName() + "库存数量不足!");
@ -1129,7 +1131,7 @@ public class IoAddInoutService {
if (exitCount > 0) {
lastInBatch = lastList.get(0).getInBatchNo();
} else {
InvProductDetailEntity invProductDetailEntity = invProductDetailService.selectLastInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), codeTempEntity.getMainAction());
InvProductNewVo invProductDetailEntity = invProductServiceNew.selectLastInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), codeTempEntity.getMainAction());
if (invProductDetailEntity != null) {
lastInBatch = invProductDetailEntity.getInBatchNo();
codeTempEntity.setPrice(invProductDetailEntity.getPrice());
@ -1138,7 +1140,7 @@ public class IoAddInoutService {
}
if (lastInBatch == null && exitCount == 0) {
//首次出库,获取入库最早批次
InvProductDetailEntity inProductDetail = invProductDetailService.selectFirstInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), ConstantType.TYPE_PUT);
InvProductNewVo inProductDetail = invProductServiceNew.selectFirstInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), ConstantType.TYPE_PUT);
if (inProductDetail != null) {
codeTempEntity.setPrice(inProductDetail.getPrice());
codeTempEntity.setInBatchNo(inProductDetail.getInBatchNo());
@ -1146,9 +1148,9 @@ public class IoAddInoutService {
} else {
//非首次出库
//1.获取当前批次已出库数量
Integer outCount = IntUtil.value(invProductDetailService.selectCountByInBatch(codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), bussinessTypeEntity, lastInBatch, codeTempEntity.getInvCode(), ConstantType.TYPE_OUT));
Integer outCount = IntUtil.value(invProductServiceNew.selectCountByInBatch(codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), bussinessTypeEntity, lastInBatch, codeTempEntity.getInvCode(), ConstantType.TYPE_OUT));
//2.获取当前批次入库数量
Integer inCount = IntUtil.value(invProductDetailService.selectCountByInBatch(codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), bussinessTypeEntity, lastInBatch, codeTempEntity.getInvCode(), ConstantType.TYPE_PUT));
Integer inCount = IntUtil.value(invProductServiceNew.selectCountByInBatch(codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), bussinessTypeEntity, lastInBatch, codeTempEntity.getInvCode(), ConstantType.TYPE_PUT));
//3.若数量还有剩,则此次出库为当前批次
if (inCount >= (outCount + extiReCount + codeTempEntity.getReCount())) {
@ -1161,7 +1163,7 @@ public class IoAddInoutService {
} else {
// 4.若数量不足,则出下一批次
InvProductDetailEntity nextInvProduct = invProductDetailService.selectNextInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), ConstantType.TYPE_PUT, lastInBatch);
InvProductNewVo nextInvProduct = invProductServiceNew.selectNextInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), ConstantType.TYPE_PUT, lastInBatch);
if (nextInvProduct != null) {
codeTempEntity.setPrice(nextInvProduct.getPrice());
codeTempEntity.setInBatchNo(nextInvProduct.getInBatchNo());

@ -14,6 +14,7 @@ import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.inv.InvPreProductDetailService;
import com.glxp.api.service.inv.InvPreinProductDetailService;
import com.glxp.api.service.inv.impl.InvProductServiceNew;
import com.glxp.api.util.IntUtil;
import org.springframework.stereotype.Service;
@ -28,7 +29,7 @@ public class IoCheckInvService {
@Resource
InvWarehouseService invWarehouseService;
@Resource
InvProductDetailService invProductDetailService;
InvProductServiceNew invProductServiceNew;
@Resource
InvPreinProductDetailService invPreinProductDetailService;
@Resource
@ -77,13 +78,13 @@ public class IoCheckInvService {
}
int count = 0;
if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) {
count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, outInvCode, null, true);
count = invProductServiceNew.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, outInvCode, null, true);
} else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) {
count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), true);
count = invProductServiceNew.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), true);
} else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) {
//按指定货位出库
if (StrUtil.isEmpty(codeTempEntity.getWarehouseCode())) {
List<InvPlaceDetailResponse> invProductDetailEntities = invProductDetailService.findByGroupCode(codeTempEntity.getInvCode(), codeTempEntity.getCode(), true);
List<InvPlaceDetailResponse> invProductDetailEntities = invProductServiceNew.findByGroupCode(codeTempEntity.getInvCode(), codeTempEntity.getCode(), true);
if (CollUtil.isNotEmpty(invProductDetailEntities) && invProductDetailEntities.size() > 1) {
BaseResponse baseResponse = ResultVOUtils.error(511, "存在多个货位,请指定当前货位!");
baseResponse.setData(invProductDetailEntities);
@ -95,7 +96,7 @@ public class IoCheckInvService {
return ResultVOUtils.error(500, "添加失败,该产品未上架货位!");
}
} else {
count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), true);
count = invProductServiceNew.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), true);
}
}
if (count < 0) {

@ -2,7 +2,9 @@ package com.glxp.api.service.inout.impl;
import cn.hutool.core.bean.BeanUtil;
import com.glxp.api.service.inv.impl.InvProductService;
import com.glxp.api.service.inv.impl.InvProductServiceNew;
import com.glxp.api.util.RedisUtil;
import com.glxp.api.vo.basic.InvProductNewVo;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID;
@ -77,7 +79,7 @@ public class IoOrderServiceImpl implements IoOrderService {
@Resource
IBasicBussinessTypeService basicBussinessTypeService;
@Resource
InvProductDetailService invProductDetailService;
InvProductServiceNew invProductServiceNew;
@Resource
InvProductService invProductService;
@Resource
@ -282,11 +284,11 @@ public class IoOrderServiceImpl implements IoOrderService {
}
} else {
//删除普通库存
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.selectByOrderIdFk(billNo);
List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.selectByOrderIdFk(billNo);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
for (InvProductNewVo invProductDetailEntity : invProductDetailEntities) {
//更新库存
InvProductEntity invProductEntity = invProductService.selectByUnique(invProductDetailEntity.getRelId(), invProductDetailEntity.getBatchNo(), invProductDetailEntity.getSupId(), invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode(), invProductDetailEntity.getPrice());
InvProductEntity invProductEntity = invProductService.selectByUnique(invProductDetailEntity.getRelIdFk(), invProductDetailEntity.getBatchNo(), invProductDetailEntity.getSupId(), invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode(), invProductDetailEntity.getPrice());
if (invProductEntity != null) {
if (ConstantType.TYPE_PUT.equals(invProductDetailEntity.getMainAction())) {
int count = invProductEntity.getInCount() - invProductDetailEntity.getReCount();
@ -301,8 +303,8 @@ public class IoOrderServiceImpl implements IoOrderService {
invProductService.update(invProductEntity);
}
}
//删除库存详情
invProductDetailService.deleteByOrderId(billNo);
// //删除库存详情
// invProductServiceNew.deleteByOrderId(billNo);
}
}
}
@ -443,20 +445,21 @@ public class IoOrderServiceImpl implements IoOrderService {
}
} else { //普通库存
InvProductDetailEntity invProductDetailEntity = invProductDetailService.selectByCode(codeEntity.getOrderId(), codeEntity.getCode(), codeEntity.getPrice());
InvProductNewVo invProductDetailEntity = invProductServiceNew.selectByCode(codeEntity.getOrderId(), codeEntity.getCode(), codeEntity.getPrice());
if (invProductDetailEntity != null) {
int count = invProductDetailEntity.getCount() - remainCount;
if (count == 0) {
invProductDetailService.deleteById(invProductDetailEntity.getId());
} else {
//更新详情表
invProductDetailEntity.setCount(count);
invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() - remainScanCount);
invProductDetailService.update(invProductDetailEntity);
}
// (20241017===关于库存详情的删除修改进行注释)
// int count = invProductDetailEntity.getCount() - remainCount;
// if (count == 0) {
// invProductServiceNew.deleteById(invProductDetailEntity.getId());
// } else {
// //更新详情表
// invProductDetailEntity.setCount(count);
// invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() - remainScanCount);
// invProductServiceNew.update(invProductDetailEntity);
// }
//更新产品表
InvProductEntity invProductEntity = invProductService.selectByUnique(invProductDetailEntity.getRelId(), invProductDetailEntity.getBatchNo(), invProductDetailEntity.getSupId(),
InvProductEntity invProductEntity = invProductService.selectByUnique(invProductDetailEntity.getRelIdFk(), invProductDetailEntity.getBatchNo(), invProductDetailEntity.getSupId(),
invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode(), invProductDetailEntity.getPrice());
if (invProductEntity != null) {
if (ConstantType.TYPE_PUT.equals(invProductDetailEntity.getMainAction())) {
@ -560,10 +563,10 @@ public class IoOrderServiceImpl implements IoOrderService {
invPreProductDetailService.deleteByOrderId(billNo);
}
} else {
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.selectByOrderIdFk(billNo);
List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.selectByOrderIdFk(billNo);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
InvProductEntity invProductEntity = invProductService.selectByUnique(invProductDetailEntity.getRelId(), invProductDetailEntity.getBatchNo(), invProductDetailEntity.getSupId(),
for (InvProductNewVo invProductDetailEntity : invProductDetailEntities) {
InvProductEntity invProductEntity = invProductService.selectByUnique(invProductDetailEntity.getRelIdFk(), invProductDetailEntity.getBatchNo(), invProductDetailEntity.getSupId(),
invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode(), invProductDetailEntity.getPrice());
if (ConstantType.TYPE_PUT.equals(invProductDetailEntity.getMainAction())) {
@ -576,7 +579,7 @@ public class IoOrderServiceImpl implements IoOrderService {
invProductEntity.setReCount(invProductEntity.getInCount() - invProductEntity.getOutCount());
invProductService.update(invProductEntity);
}
invProductDetailService.deleteByOrderId(billNo);
// invProductServiceNew.deleteByOrderId(billNo);
}
}

@ -30,7 +30,6 @@ import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.inv.InvCountOrderResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.IoAddInoutService;
import com.glxp.api.service.inout.IoCheckInoutService;
import com.glxp.api.service.inout.IoOrderService;
@ -66,7 +65,7 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
@Resource
private CustomerService customerService;
@Resource
private InvProductDetailDao invProductDetailDao;
private InvProductNewDao invProductNewDao;
@Resource
private InvCountSettingMapper invCountSettingDao;
@Resource
@ -254,227 +253,227 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
return submitAudit(invCountOrder.getOrderId());
}
/**
*
*/
private void countOrderTransfer(InvCountOrderEntity invCountOrder) {
List<InvCountSettingEntity> list = invCountSettingDao.selectList(null);
if (CollUtil.isEmpty(list)) {
log.error("未配置盘点单据设置参数,无法转单");
return;
}
//出入库码明细列表
List<IoCodeTempEntity> inOrderCodes = new ArrayList<>();
List<IoCodeTempEntity> outOrderCodes = new ArrayList<>();
/**
*
* 1
* 2 / =
* 3
*
* 1
* 2 / =
* 3
*/
//构造库存详情查询参数
FilterInvProductDetailRequest invProductDetailRequest = new FilterInvProductDetailRequest();
invProductDetailRequest.setInvCode(invCountOrder.getInvStorageCode());
invProductDetailRequest.setInvSpaceCode(invCountOrder.getInvWarehouseCode());
//库存早于或等于盘点时间的库存数据,锁库存
invProductDetailRequest.setUpdateTime(invCountOrder.getCreateTime());
if (invCountOrder.getCountType() == 1) {
//按照货位盘点,查询库存详情添加货位条件
invProductDetailRequest.setInvSpaceCode(invCountOrder.getInvWarehouseCode());
}
FilterInvCountOrderDetailRequest detailRequest = new FilterInvCountOrderDetailRequest();
detailRequest.setOrderIdFk(invCountOrder.getOrderId());
//查询亏损单据详情
detailRequest.setStatus(0);
List<InvCountOrderDetailEntity> lossDetailList = invCountOrderDetailDao.selectDetailList(detailRequest);
if (CollUtil.isNotEmpty(lossDetailList)) {
log.info("开始生成盘亏单据码明细");
log.info("查询盘亏产品码详情");
for (InvCountOrderDetailEntity invCountOrderDetail : lossDetailList) {
//查询库存详情
invProductDetailRequest.setRelId(invCountOrderDetail.getProductId());
invProductDetailRequest.setBatchNo(invCountOrderDetail.getBatchNo());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(invProductDetailRequest);
//查询盘点码明细
FilterInvCountCodesRequest codesRequest = new FilterInvCountCodesRequest();
codesRequest.setOrderIdFk(invCountOrder.getOrderId());
codesRequest.setProductId(invCountOrderDetail.getProductId());
codesRequest.setBatchNo(invCountOrderDetail.getBatchNo());
List<String> countCodesList = invCountCodesDao.selectCodes(codesRequest);
List<String> invProductCodes = invProductDetailEntities.stream().map(InvProductDetailEntity::getCode).collect(Collectors.toList());
List<String> lossCodes = CollUtil.subtractToList(invProductCodes, countCodesList);
if (CollUtil.isNotEmpty(countCodesList) && CollUtil.isEmpty(lossCodes)) {
//盘点的码不为空,但是盘点数量和库存数量不一样,比对差集结果为空,说明是同一个条码,数量不同,直接根据盘亏数量计算生成一个扫码单据的码明细
//生成码详情
IoCodeTempEntity warehouseEntity = buildWarehouse(invCountOrder, invProductDetailEntities.get(0).getCode(), invProductDetailEntities.get(0).getRelId());
//判断此条码,是否有批次号和序列号
UdiEntity udi = FilterUdiUtils.getUdi(invProductDetailEntities.get(0).getCode());
//修改码数量
int actCount = invCountCodesService.getActCount(udi.getUdi());
//使用此盘点单据详情的盘亏数量 / 实际数量,计算得出扫码数量
int codeNum = invCountOrderDetail.getLossNum() / actCount;
warehouseEntity.setCount(codeNum);
warehouseEntity.setReCount(codeNum);
//设置供应商信息
setSupInfo(warehouseEntity, "loss");
outOrderCodes.add(warehouseEntity);
} else {
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
if (!countCodesList.contains(invProductDetailEntity.getCode()) && !verifyCodeExist(outOrderCodes, invProductDetailEntity.getCode())) {
//生成码详情
IoCodeTempEntity warehouseEntity = buildWarehouse(invCountOrder, invProductDetailEntity.getCode(), invProductDetailEntity.getRelId());
//判断此条码,是否有批次号和序列号
UdiEntity udi = FilterUdiUtils.getUdi(invProductDetailEntity.getCode());
if ((StrUtil.isBlank(udi.getBatchNo()) && StrUtil.isBlank(udi.getSerialNo())) || (StrUtil.isBlank(udi.getSerialNo()) && StrUtil.isNotBlank(udi.getBatchNo()))) {
//修改码数量
int actCount = invCountCodesService.getActCount(udi.getUdi());
//使用此盘点单据详情的盘亏数量 / 实际数量,计算得出扫码数量
int codeNum = invCountOrderDetail.getLossNum() / actCount;
warehouseEntity.setCount(codeNum);
warehouseEntity.setReCount(codeNum);
} else {
//修改实际数量
int actCount = invCountCodesService.getActCount(udi.getUdi());
warehouseEntity.setCount(actCount);
warehouseEntity.setReCount(actCount);
}
//设置供应商信息
setSupInfo(warehouseEntity, "loss");
outOrderCodes.add(warehouseEntity);
}
}
}
}
log.info("盘亏单据码明细生成完毕");
}
//生成盘盈单据的条码
//查询盘盈的单据详情
detailRequest.setStatus(1);
List<InvCountOrderDetailEntity> profitDetailList = invCountOrderDetailDao.selectDetailList(detailRequest);
if (CollUtil.isNotEmpty(profitDetailList)) {
log.info("开始生成盘盈单据码.明细");
//查询盘盈产品的库存详情
for (InvCountOrderDetailEntity invCountOrderDetail : profitDetailList) {
//查询库存详情
invProductDetailRequest.setRelId(invCountOrderDetail.getProductId());
invProductDetailRequest.setBatchNo(invCountOrderDetail.getBatchNo());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(invProductDetailRequest);
//查询盘点码明细
FilterInvCountCodesRequest codesRequest = new FilterInvCountCodesRequest();
codesRequest.setOrderIdFk(invCountOrder.getOrderId());
codesRequest.setProductId(invCountOrderDetail.getProductId());
codesRequest.setBatchNo(invCountOrderDetail.getBatchNo());
List<String> countCodesList = invCountCodesDao.selectCodes(codesRequest);
List<String> invProductCodeList = invProductDetailEntities.stream().map(InvProductDetailEntity::getCode).collect(Collectors.toList());
List<String> profitCodes = CollUtil.subtractToList(countCodesList, invProductCodeList); //计算盘盈的条码
log.info("查询盘盈产品的库存详情");
if (CollUtil.isNotEmpty(invProductCodeList) && CollUtil.isEmpty(profitCodes)) {
/**
*
*
*/
String code = null;
if (CollUtil.isNotEmpty(countCodesList)) {
code = countCodesList.get(0);
} else {
code = invProductCodeList.get(0);
}
IoCodeTempEntity warehouseEntity = buildWarehouse(invCountOrder, code, Long.parseLong(invCountOrderDetail.getProductId()));
//判断此条码,是否有批次号和序列号
UdiEntity udi = FilterUdiUtils.getUdi(code);
//修改码数量
int actCount = invCountCodesService.getActCount(udi.getUdi());
//使用此盘点单据详情的盘盈数量 / 实际数量,计算得出扫码数量
int codeNum = invCountOrderDetail.getProfitNum() / actCount;
warehouseEntity.setCount(codeNum);
warehouseEntity.setReCount(codeNum);
setSupInfo(warehouseEntity, "profit");
inOrderCodes.add(warehouseEntity);
log.info("添加库存条码");
} else {
for (String code : profitCodes) {
log.info("添加盘盈入库条码");
if (!verifyCodeExist(inOrderCodes, code)) {
//生成码详情
IoCodeTempEntity warehouseEntity = buildWarehouse(invCountOrder, code, Long.parseLong(invCountOrderDetail.getProductId()));
//判断此条码,是否有批次号和序列号
UdiEntity udi = FilterUdiUtils.getUdi(code);
if ((StrUtil.isBlank(udi.getBatchNo()) && StrUtil.isBlank(udi.getSerialNo())) || (StrUtil.isBlank(udi.getSerialNo()) && StrUtil.isNotBlank(udi.getBatchNo()))) {
//修改码数量
int actCount = invCountCodesService.getActCount(udi.getUdi());
//使用此盘点单据详情的盘盈数量 / 实际数量,计算得出扫码数量
int codeNum = invCountOrderDetail.getProfitNum() / actCount;
warehouseEntity.setCount(codeNum);
warehouseEntity.setReCount(codeNum);
} else {
//修改实际数量
int actCount = invCountCodesService.getActCount(udi.getUdi());
warehouseEntity.setCount(actCount);
warehouseEntity.setReCount(actCount);
}
setSupInfo(warehouseEntity, "profit");
inOrderCodes.add(warehouseEntity);
}
}
}
}
log.info("盘盈单据码详情生成完毕");
}
InvCountSettingEntity invCountSettingEntity = list.get(0);
if (CollUtil.isNotEmpty(inOrderCodes)) {
log.info("盘点单据:{} 生成盘盈入库单据", invCountOrder.getOrderId());
IoOrderEntity order = createOrder(invCountSettingEntity, invCountOrder, ConstantType.TYPE_PUT);
log.info("盘盈入库单据号:{}", order.getBillNo());
inOrderCodes.forEach(warehouseEntity -> {
warehouseEntity.setOrderId(order.getBillNo());
warehouseEntity.setAction(order.getAction());
warehouseEntity.setCorpOrderId(order.getCorpOrderId());
});
invCountOrder.setInOrderIds(order.getBillNo());
orderService.insertOrder(order);
codesTempDao.insertBatch(inOrderCodes);
log.info("盘盈入库单据生成成功");
}
if (CollUtil.isNotEmpty(outOrderCodes)) {
log.info("盘点单据:{} 生成盘亏入库单据", invCountOrder.getOrderId());
IoOrderEntity order = createOrder(invCountSettingEntity, invCountOrder, ConstantType.TYPE_OUT);
log.info("盘亏入库单据号:{}", order.getBillNo());
outOrderCodes.forEach(warehouseEntity -> {
warehouseEntity.setOrderId(order.getBillNo());
warehouseEntity.setAction(order.getAction());
warehouseEntity.setCorpOrderId(order.getCorpOrderId());
String supId = codesDao.selectSupIdByCode(warehouseEntity.getCode());
warehouseEntity.setSupId(supId);
});
invCountOrder.setOutOrderIds(order.getBillNo());
orderService.insertOrder(order);
codesTempDao.insertBatch(outOrderCodes);
log.info("盘亏入库单据生成成功");
}
//更新盘点单据生成的扫码单据号
invCountOrderDao.updateByOrderId(invCountOrder);
}
// /**
// * 盘点单据转扫码单(20241017===没用到注释了)
// */
// private void countOrderTransfer(InvCountOrderEntity invCountOrder) {
// List<InvCountSettingEntity> list = invCountSettingDao.selectList(null);
// if (CollUtil.isEmpty(list)) {
// log.error("未配置盘点单据设置参数,无法转单");
// return;
// }
//
// //出入库码明细列表
// List<IoCodeTempEntity> inOrderCodes = new ArrayList<>();
// List<IoCodeTempEntity> outOrderCodes = new ArrayList<>();
//
//
// /**
// * 生成盘盈和盘亏单据逻辑
// * 盘盈单据1、找出盘点单据码详情比库存码详情多的产品
// * 2、判断条码是否包含批次号和序列号如果不包含根据 盘盈数量 / 实际数量 = 多出的条码数量 ,计算出盘盈单据此条码的扫码数量
// * 3、生成条码保存单据
// *
// * 盘亏单据1、找出库存有而盘点不存在的条码
// * 2、判断此库存详情是否包含批次号如果不包含盘亏数量 / 实际数量 = 少的条码数量,计算出盘亏单据扫码数量
// * 3、生成条码保存单据
// */
//
// //构造库存详情查询参数
// FilterInvProductDetailRequest invProductDetailRequest = new FilterInvProductDetailRequest();
// invProductDetailRequest.setInvCode(invCountOrder.getInvStorageCode());
// invProductDetailRequest.setInvSpaceCode(invCountOrder.getInvWarehouseCode());
// //库存早于或等于盘点时间的库存数据,锁库存
// invProductDetailRequest.setUpdateTime(invCountOrder.getCreateTime());
//
// if (invCountOrder.getCountType() == 1) {
// //按照货位盘点,查询库存详情添加货位条件
// invProductDetailRequest.setInvSpaceCode(invCountOrder.getInvWarehouseCode());
// }
//
// FilterInvCountOrderDetailRequest detailRequest = new FilterInvCountOrderDetailRequest();
// detailRequest.setOrderIdFk(invCountOrder.getOrderId());
// //查询亏损单据详情
// detailRequest.setStatus(0);
// List<InvCountOrderDetailEntity> lossDetailList = invCountOrderDetailDao.selectDetailList(detailRequest);
// if (CollUtil.isNotEmpty(lossDetailList)) {
// log.info("开始生成盘亏单据码明细");
// log.info("查询盘亏产品码详情");
//
// for (InvCountOrderDetailEntity invCountOrderDetail : lossDetailList) {
// //查询库存详情
// invProductDetailRequest.setRelId(invCountOrderDetail.getProductId());
// invProductDetailRequest.setBatchNo(invCountOrderDetail.getBatchNo());
// List<InvProductNewVo> invProductDetailEntities = invProductNewDao.filterInvProductDetailList(invProductDetailRequest);
// //查询盘点码明细
// FilterInvCountCodesRequest codesRequest = new FilterInvCountCodesRequest();
// codesRequest.setOrderIdFk(invCountOrder.getOrderId());
// codesRequest.setProductId(invCountOrderDetail.getProductId());
// codesRequest.setBatchNo(invCountOrderDetail.getBatchNo());
// List<String> countCodesList = invCountCodesDao.selectCodes(codesRequest);
// List<String> invProductCodes = invProductDetailEntities.stream().map(InvProductNewVo::getCode).collect(Collectors.toList());
// List<String> lossCodes = CollUtil.subtractToList(invProductCodes, countCodesList);
// if (CollUtil.isNotEmpty(countCodesList) && CollUtil.isEmpty(lossCodes)) {
// //盘点的码不为空,但是盘点数量和库存数量不一样,比对差集结果为空,说明是同一个条码,数量不同,直接根据盘亏数量计算生成一个扫码单据的码明细
// //生成码详情
// IoCodeTempEntity warehouseEntity = buildWarehouse(invCountOrder, invProductDetailEntities.get(0).getCode(), invProductDetailEntities.get(0).getRelId());
// //判断此条码,是否有批次号和序列号
// UdiEntity udi = FilterUdiUtils.getUdi(invProductDetailEntities.get(0).getCode());
// //修改码数量
// int actCount = invCountCodesService.getActCount(udi.getUdi());
// //使用此盘点单据详情的盘亏数量 / 实际数量,计算得出扫码数量
// int codeNum = invCountOrderDetail.getLossNum() / actCount;
// warehouseEntity.setCount(codeNum);
// warehouseEntity.setReCount(codeNum);
//
// //设置供应商信息
// setSupInfo(warehouseEntity, "loss");
// outOrderCodes.add(warehouseEntity);
// } else {
// for (InvProductNewVo invProductDetailEntity : invProductDetailEntities) {
// if (!countCodesList.contains(invProductDetailEntity.getCode()) && !verifyCodeExist(outOrderCodes, invProductDetailEntity.getCode())) {
// //生成码详情
// IoCodeTempEntity warehouseEntity = buildWarehouse(invCountOrder, invProductDetailEntity.getCode(), invProductDetailEntity.getRelId());
// //判断此条码,是否有批次号和序列号
// UdiEntity udi = FilterUdiUtils.getUdi(invProductDetailEntity.getCode());
// if ((StrUtil.isBlank(udi.getBatchNo()) && StrUtil.isBlank(udi.getSerialNo())) || (StrUtil.isBlank(udi.getSerialNo()) && StrUtil.isNotBlank(udi.getBatchNo()))) {
// //修改码数量
// int actCount = invCountCodesService.getActCount(udi.getUdi());
// //使用此盘点单据详情的盘亏数量 / 实际数量,计算得出扫码数量
// int codeNum = invCountOrderDetail.getLossNum() / actCount;
// warehouseEntity.setCount(codeNum);
// warehouseEntity.setReCount(codeNum);
// } else {
// //修改实际数量
// int actCount = invCountCodesService.getActCount(udi.getUdi());
// warehouseEntity.setCount(actCount);
// warehouseEntity.setReCount(actCount);
// }
//
// //设置供应商信息
// setSupInfo(warehouseEntity, "loss");
// outOrderCodes.add(warehouseEntity);
// }
// }
// }
// }
// log.info("盘亏单据码明细生成完毕");
// }
//
// //生成盘盈单据的条码
// //查询盘盈的单据详情
// detailRequest.setStatus(1);
// List<InvCountOrderDetailEntity> profitDetailList = invCountOrderDetailDao.selectDetailList(detailRequest);
// if (CollUtil.isNotEmpty(profitDetailList)) {
// log.info("开始生成盘盈单据码.明细");
// //查询盘盈产品的库存详情
// for (InvCountOrderDetailEntity invCountOrderDetail : profitDetailList) {
// //查询库存详情
// invProductDetailRequest.setRelId(invCountOrderDetail.getProductId());
// invProductDetailRequest.setBatchNo(invCountOrderDetail.getBatchNo());
// List<InvProductNewVo> invProductDetailEntities = invProductNewDao.filterInvProductDetailList(invProductDetailRequest);
// //查询盘点码明细
// FilterInvCountCodesRequest codesRequest = new FilterInvCountCodesRequest();
// codesRequest.setOrderIdFk(invCountOrder.getOrderId());
// codesRequest.setProductId(invCountOrderDetail.getProductId());
// codesRequest.setBatchNo(invCountOrderDetail.getBatchNo());
// List<String> countCodesList = invCountCodesDao.selectCodes(codesRequest);
// List<String> invProductCodeList = invProductDetailEntities.stream().map(InvProductNewVo::getCode).collect(Collectors.toList());
// List<String> profitCodes = CollUtil.subtractToList(countCodesList, invProductCodeList); //计算盘盈的条码
// log.info("查询盘盈产品的库存详情");
// if (CollUtil.isNotEmpty(invProductCodeList) && CollUtil.isEmpty(profitCodes)) {
// /**
// * 盘点条码不为空,且库存条码也不为空,但是计算的条码差集为空
// * 说明盘点的条码和库存的条码是相同的条码,直接根据盘盈数量计算出扫码数量,生成一个条码即可
// */
// String code = null;
// if (CollUtil.isNotEmpty(countCodesList)) {
// code = countCodesList.get(0);
// } else {
// code = invProductCodeList.get(0);
// }
// IoCodeTempEntity warehouseEntity = buildWarehouse(invCountOrder, code, Long.parseLong(invCountOrderDetail.getProductId()));
// //判断此条码,是否有批次号和序列号
// UdiEntity udi = FilterUdiUtils.getUdi(code);
// //修改码数量
// int actCount = invCountCodesService.getActCount(udi.getUdi());
// //使用此盘点单据详情的盘盈数量 / 实际数量,计算得出扫码数量
// int codeNum = invCountOrderDetail.getProfitNum() / actCount;
// warehouseEntity.setCount(codeNum);
// warehouseEntity.setReCount(codeNum);
// setSupInfo(warehouseEntity, "profit");
// inOrderCodes.add(warehouseEntity);
// log.info("添加库存条码");
// } else {
//
// for (String code : profitCodes) {
// log.info("添加盘盈入库条码");
// if (!verifyCodeExist(inOrderCodes, code)) {
// //生成码详情
// IoCodeTempEntity warehouseEntity = buildWarehouse(invCountOrder, code, Long.parseLong(invCountOrderDetail.getProductId()));
// //判断此条码,是否有批次号和序列号
// UdiEntity udi = FilterUdiUtils.getUdi(code);
// if ((StrUtil.isBlank(udi.getBatchNo()) && StrUtil.isBlank(udi.getSerialNo())) || (StrUtil.isBlank(udi.getSerialNo()) && StrUtil.isNotBlank(udi.getBatchNo()))) {
// //修改码数量
// int actCount = invCountCodesService.getActCount(udi.getUdi());
// //使用此盘点单据详情的盘盈数量 / 实际数量,计算得出扫码数量
// int codeNum = invCountOrderDetail.getProfitNum() / actCount;
// warehouseEntity.setCount(codeNum);
// warehouseEntity.setReCount(codeNum);
// } else {
// //修改实际数量
// int actCount = invCountCodesService.getActCount(udi.getUdi());
// warehouseEntity.setCount(actCount);
// warehouseEntity.setReCount(actCount);
// }
// setSupInfo(warehouseEntity, "profit");
// inOrderCodes.add(warehouseEntity);
// }
// }
// }
// }
// log.info("盘盈单据码详情生成完毕");
// }
//
// InvCountSettingEntity invCountSettingEntity = list.get(0);
//
// if (CollUtil.isNotEmpty(inOrderCodes)) {
// log.info("盘点单据:{} 生成盘盈入库单据", invCountOrder.getOrderId());
// IoOrderEntity order = createOrder(invCountSettingEntity, invCountOrder, ConstantType.TYPE_PUT);
// log.info("盘盈入库单据号:{}", order.getBillNo());
// inOrderCodes.forEach(warehouseEntity -> {
// warehouseEntity.setOrderId(order.getBillNo());
// warehouseEntity.setAction(order.getAction());
// warehouseEntity.setCorpOrderId(order.getCorpOrderId());
// });
//
// invCountOrder.setInOrderIds(order.getBillNo());
// orderService.insertOrder(order);
// codesTempDao.insertBatch(inOrderCodes);
// log.info("盘盈入库单据生成成功");
// }
//
// if (CollUtil.isNotEmpty(outOrderCodes)) {
// log.info("盘点单据:{} 生成盘亏入库单据", invCountOrder.getOrderId());
// IoOrderEntity order = createOrder(invCountSettingEntity, invCountOrder, ConstantType.TYPE_OUT);
// log.info("盘亏入库单据号:{}", order.getBillNo());
// outOrderCodes.forEach(warehouseEntity -> {
// warehouseEntity.setOrderId(order.getBillNo());
// warehouseEntity.setAction(order.getAction());
// warehouseEntity.setCorpOrderId(order.getCorpOrderId());
// String supId = codesDao.selectSupIdByCode(warehouseEntity.getCode());
// warehouseEntity.setSupId(supId);
// });
//
// invCountOrder.setOutOrderIds(order.getBillNo());
// orderService.insertOrder(order);
// codesTempDao.insertBatch(outOrderCodes);
// log.info("盘亏入库单据生成成功");
// }
//
// //更新盘点单据生成的扫码单据号
// invCountOrderDao.updateByOrderId(invCountOrder);
// }
/**
@ -579,39 +578,39 @@ public class InvCountOrderService extends ServiceImpl<InvCountOrderMapper, InvCo
}
/**
*
* (20241017===)
*
* @param warehouseEntity
* @param countStatus
*/
private void setSupInfo(IoCodeTempEntity warehouseEntity, String countStatus) {
/**
* 使
*
* ID
*
* 1
*/
if (countStatus.equals("loss")) {
log.info("生成盘亏单据条码供应商详情,条码信息:{}", warehouseEntity.getCode());
List<String> supIds = invProductDetailDao.selectSupIdByCode(warehouseEntity.getCode());
if (CollUtil.isNotEmpty(supIds)) {
if (supIds.size() == 1) {
//此产品只绑定了一个供应商若绑定了多个供应商则不填供应商ID字段生成单据之后会进入异常单据页面手动指定供应商
warehouseEntity.setSupId(supIds.get(0));
}
}
} else {
log.info("生成盘盈单据条码供应商详情,条码信息:{}", warehouseEntity.getCode());
List<String> unitFkList = companyProductRelevanceDao.selectUnitFkByUdiRlIdFk(warehouseEntity.getRelId() + "");
if (CollUtil.isNotEmpty(unitFkList)) {
if (unitFkList.size() == 1) {
//此产品只绑定了一个供应商若绑定了多个供应商则不填供应商ID字段生成单据之后会进入异常单据页面手动指定供应商
warehouseEntity.setSupId(unitFkList.get(0));
}
}
}
}
// private void setSupInfo(IoCodeTempEntity warehouseEntity, String countStatus) {
// /**
// * 根据此码明细的盈亏状态,使用不同的逻辑生成供应商信息
// * 盘盈:此条码不存在于库存详情中,需要从供应商产品信息表查询供应商信息
// * 盘亏此条码在库存中存在但是盘点中没有此条码直接查询库存详情表中的供应商ID
// *
// * 若查询出的供应商信息多余1条则表明此产品被多个供应商绑定在此处不进行绑定单据生成之后会进入异常单据页面在异常单据页面手动指定供应商
// */
// if (countStatus.equals("loss")) {
// log.info("生成盘亏单据条码供应商详情,条码信息:{}", warehouseEntity.getCode());
// List<String> supIds = invProductNewDao.selectSupIdByCode(warehouseEntity.getCode());
// if (CollUtil.isNotEmpty(supIds)) {
// if (supIds.size() == 1) {
// //此产品只绑定了一个供应商若绑定了多个供应商则不填供应商ID字段生成单据之后会进入异常单据页面手动指定供应商
// warehouseEntity.setSupId(supIds.get(0));
// }
// }
// } else {
// log.info("生成盘盈单据条码供应商详情,条码信息:{}", warehouseEntity.getCode());
// List<String> unitFkList = companyProductRelevanceDao.selectUnitFkByUdiRlIdFk(warehouseEntity.getRelId() + "");
// if (CollUtil.isNotEmpty(unitFkList)) {
// if (unitFkList.size() == 1) {
// //此产品只绑定了一个供应商若绑定了多个供应商则不填供应商ID字段生成单据之后会进入异常单据页面手动指定供应商
// warehouseEntity.setSupId(unitFkList.get(0));
// }
// }
// }
// }
/**
*

@ -44,12 +44,12 @@ public interface InvPlaceService {
BaseResponse unbindInvOrderSpace(BindInvSpaceRequest bindInvSpaceRequest);
/**
*
*
* @param bindInvSpaceRequest
*/
BaseResponse changeInvSpace(BindInvSpaceRequest bindInvSpaceRequest);
// /**
// * 更换货位(20241017===没用到注释了)
// *
// * @param bindInvSpaceRequest
// */
// BaseResponse changeInvSpace(BindInvSpaceRequest bindInvSpaceRequest);
/**

@ -26,6 +26,7 @@ import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.inv.InvPlaceOrderService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
import com.glxp.api.vo.basic.InvProductNewVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -35,7 +36,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
//TODO 这个类的方法内部很多依赖code需要看一下
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
@ -52,7 +53,7 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
@Resource
private InvWarehouseDao invWarehouseDao;
@Resource
private InvProductDetailDao invProductDetailDao;
private InvProductNewDao invProductNewDao;
@Resource
private InvPreProductDetailDao invPreProductDetailDao;
@Resource
@ -101,8 +102,8 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
InvPlaceOrderDetailEntity orderDetailEntity = new InvPlaceOrderDetailEntity();
orderDetailEntity.setInvCode(addInvPlaceOrderRequest.getInvCode());
orderDetailEntity.setInvSpaceCode(addInvPlaceOrderRequest.getInvSpaceCode());
orderDetailEntity.setRelId(String.valueOf(invProductDetailEntity.getRelId()));
orderDetailEntity.setCode(invProductDetailEntity.getCode());
orderDetailEntity.setRelId(String.valueOf(invProductDetailEntity.getRelIdFk()));
// orderDetailEntity.setCode(invProductDetailEntity.getCode());
orderDetailEntity.setBatchNo(invProductDetailEntity.getBatchNo());
orderDetailEntity.setRecordId(recordId);
invPlaceOrderDetailDao.insert(orderDetailEntity);
@ -161,20 +162,20 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
expireDate = invPreInProductDetailEntity.getExpireDate();
serialNo = invPreInProductDetailEntity.getSerialNo();
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_NORMAL) {
QueryWrapper<InvProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("code", bindInvSpaceRequest.getCode());
QueryWrapper<InvProductNewVo> ew = new QueryWrapper<>();
// ew.eq("code", bindInvSpaceRequest.getCode());
if (bindInvSpaceRequest.getType() == 3) {
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
}
ew.last("limit 1");
InvProductDetailEntity invPreInProductDetailEntity = invProductDetailDao.selectOne(ew);
relId = invPreInProductDetailEntity.getRelId();
batchNo = invPreInProductDetailEntity.getBatchNo();
nameCode = invPreInProductDetailEntity.getNameCode();
supId = invPreInProductDetailEntity.getSupId();
produceDate = invPreInProductDetailEntity.getProduceDate();
expireDate = invPreInProductDetailEntity.getExpireDate();
serialNo = invPreInProductDetailEntity.getSerialNo();
InvProductNewVo invProductNewVo = invProductNewDao.selectOne(ew);
relId = invProductNewVo.getRelIdFk();
batchNo = invProductNewVo.getBatchNo();
nameCode = invProductNewVo.getNameCode();
supId = invProductNewVo.getSupId();
produceDate = invProductNewVo.getProductionDate();
expireDate = invProductNewVo.getExpireDate();
// serialNo = invProductEntity.getSerialNo();
}
@ -304,22 +305,22 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
filterInvPlaceOrderRequestList.add(filterInvPlaceOrderRequest);
}
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_NORMAL) {
QueryWrapper<InvProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("orderId", bindInvSpaceRequest.getOId());
QueryWrapper<InvProductNewVo> ew = new QueryWrapper<>();
// ew.eq("orderId", bindInvSpaceRequest.getOId());
ew.eq("invCode", bindInvSpaceRequest.getInvCode());
ew.eq("mainAction", "WareHouseIn");
List<InvProductDetailEntity> invProductDetailEntityList = invProductDetailDao.selectList(ew);
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntityList) {
// ew.eq("mainAction", "WareHouseIn");
List<InvProductNewVo> invProductDetailEntityList = invProductNewDao.selectList(ew);
for (InvProductNewVo invProductNewVo : invProductDetailEntityList) {
FilterInvPlaceOrderRequest filterInvPlaceOrderRequest = new FilterInvPlaceOrderRequest();
filterInvPlaceOrderRequest.setBatchNo(invProductDetailEntity.getBatchNo());
filterInvPlaceOrderRequest.setExpireDate(invProductDetailEntity.getExpireDate());
filterInvPlaceOrderRequest.setRelId(invProductDetailEntity.getRelId());
filterInvPlaceOrderRequest.setNameCode(invProductDetailEntity.getNameCode());
filterInvPlaceOrderRequest.setCount(invProductDetailEntity.getReCount());
filterInvPlaceOrderRequest.setSerialNo(invProductDetailEntity.getSerialNo());
filterInvPlaceOrderRequest.setProduceDate(invProductDetailEntity.getProduceDate());
filterInvPlaceOrderRequest.setSupId(invProductDetailEntity.getSupId());
filterInvPlaceOrderRequest.setCode(invProductDetailEntity.getCode());
filterInvPlaceOrderRequest.setBatchNo(invProductNewVo.getBatchNo());
filterInvPlaceOrderRequest.setExpireDate(invProductNewVo.getExpireDate());
filterInvPlaceOrderRequest.setRelId(invProductNewVo.getRelIdFk());
filterInvPlaceOrderRequest.setNameCode(invProductNewVo.getNameCode());
filterInvPlaceOrderRequest.setCount(invProductNewVo.getReCount());
// filterInvPlaceOrderRequest.setSerialNo(invProductEntity.getSerialNo());
filterInvPlaceOrderRequest.setProduceDate(invProductNewVo.getProductionDate());
filterInvPlaceOrderRequest.setSupId(invProductNewVo.getSupId());
// filterInvPlaceOrderRequest.setCode(invProductEntity.getCode());
filterInvPlaceOrderRequestList.add(filterInvPlaceOrderRequest);
}
}
@ -424,18 +425,18 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
expireDate = invPreProductDetailEntity.getExpireDate();
serialNo = invPreProductDetailEntity.getSerialNo();
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_NORMAL) {
QueryWrapper<InvProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("code", bindInvSpaceRequest.getCode());
QueryWrapper<InvProductNewVo> ew = new QueryWrapper<>();
// ew.eq("code", bindInvSpaceRequest.getCode());
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.last("limit 1");
InvProductDetailEntity invProductDetailEntity = invProductDetailDao.selectOne(ew);
relId = invProductDetailEntity.getRelId();
batchNo = invProductDetailEntity.getBatchNo();
nameCode = invProductDetailEntity.getNameCode();
supId = invProductDetailEntity.getSupId();
produceDate = invProductDetailEntity.getProduceDate();
expireDate = invProductDetailEntity.getExpireDate();
serialNo = invProductDetailEntity.getSerialNo();
InvProductNewVo invProductNewVo = invProductNewDao.selectOne(ew);
relId = invProductNewVo.getRelIdFk();
batchNo = invProductNewVo.getBatchNo();
nameCode = invProductNewVo.getNameCode();
supId = invProductNewVo.getSupId();
produceDate = invProductNewVo.getProductionDate();
expireDate = invProductNewVo.getExpireDate();
// serialNo = invProductEntity.getSerialNo();
}
@ -522,7 +523,7 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
List<InvPlaceDetailResponse> list = invPreInProductDetailDao.filterSpaceList(filterInvPlaceRequest);
List<InvPlaceDetailResponse> list2 = invPreProductDetailDao.filterSpaceList(filterInvPlaceRequest);
List<InvPlaceDetailResponse> list3 = invProductDetailDao.filterSpaceList(filterInvPlaceRequest);
List<InvPlaceDetailResponse> list3 = invProductNewDao.filterSpaceList(filterInvPlaceRequest);
list.addAll(list2);
list.addAll(list3);
@ -541,7 +542,7 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
List<InvPlaceDetailResponse> list = invPreProductDetailDao.filterSpaceList(filterInvPlaceRequest);
return list;
} else {
List<InvPlaceDetailResponse> list = invProductDetailDao.filterSpaceList(filterInvPlaceRequest);
List<InvPlaceDetailResponse> list = invProductNewDao.filterSpaceList(filterInvPlaceRequest);
return list;
}
}

@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inv.InvProductDao;
import com.glxp.api.dao.inv.InvProductDetailDao;
import com.glxp.api.dao.inv.InvProductNewDao;
import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.req.inv.FilterInvProductRequest;
import com.glxp.api.res.inv.InvProductResponse;
@ -25,7 +25,7 @@ public class InvProductService extends ServiceImpl<InvProductDao, InvProductEnti
@Resource
InvProductDao invProductDao;
@Resource
InvProductDetailDao invProductDetailDao;
InvProductNewDao invProductNewDao;
public int insert(InvProductEntity invProductEntity) {
@ -109,7 +109,7 @@ public class InvProductService extends ServiceImpl<InvProductDao, InvProductEnti
if (null != filterInvProductRequest.getPage() && null != filterInvProductRequest.getLimit()) {
PageHelper.offsetPage((filterInvProductRequest.getPage() - 1) * filterInvProductRequest.getLimit(), filterInvProductRequest.getLimit());
}
return invProductDetailDao.findGroupBySpace(filterInvProductRequest);
return invProductNewDao.findGroupBySpace(filterInvProductRequest);
}

@ -0,0 +1,306 @@
package com.glxp.api.service.inv.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.basic.BasicBussinessTypeDao;
import com.glxp.api.dao.basic.UdiProductDao;
import com.glxp.api.dao.inout.IoOrderDao;
import com.glxp.api.dao.inout.IoOrderDetailBizDao;
import com.glxp.api.dao.inv.InvPreInProductDetailDao;
import com.glxp.api.dao.inv.InvPreProductDetailDao;
import com.glxp.api.dao.inv.InvProductDao;
import com.glxp.api.dao.inv.InvProductNewDao;
import com.glxp.api.entity.auth.InvSpace;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvProductDetailResponse;
import com.glxp.api.service.auth.InvSpaceService;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.MsDateUtil;
import com.glxp.api.vo.basic.InvProductNewVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.List;
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class InvProductServiceNew extends ServiceImpl<InvProductNewDao, InvProductNewVo> {
@Resource
private InvProductNewDao invProductNewDao;
@Resource
private BasicBussinessTypeDao bussinessTypeDao;
@Resource
private IoOrderDao orderDao;
@Resource
private UdiProductDao udiProductDao;
// public int insert(InvProductNewVo InvProductNewVo) {
// InvProductNewVo.setId(null);
// if (InvProductNewVo.getMainAction().equals(ConstantType.TYPE_PUT)) {
// InvProductNewVo.setInCount(InvProductNewVo.getReCount());
// } else if (InvProductNewVo.getMainAction().equals(ConstantType.TYPE_OUT)) {
// InvProductNewVo.setOutCount(InvProductNewVo.getReCount());
// }
// return invProductNewDao.insert(InvProductNewVo);
// }
public List<InvProductNewVo> selectByOrderIdFk(String billNo) {
if (StrUtil.isEmpty(billNo))
return null;
List<InvProductNewVo> invProductDetailEntities = invProductNewDao.selectOrderInfo(billNo,null);
return invProductDetailEntities;
}
public InvProductNewVo selectByCode(String billNo, String code, BigDecimal price) {
List<InvProductNewVo> invProductDetailEntities = invProductNewDao.selectOrderInfo(billNo,price);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
for (InvProductNewVo InvProductNewVo : invProductDetailEntities) {
if (IntUtil.value(InvProductNewVo.getReCount()) > 0) {
return InvProductNewVo;
}
}
return invProductDetailEntities.get(0);
} else
return null;
}
//
// public int deleteByOrderId(String billNo) {
// return invProductNewDao.delete(new QueryWrapper<InvProductNewVo>().eq("orderId", billNo));
// }
// public int deleteById(Integer id) {
// return invProductNewDao.deleteById(id);
// }
//
//
// public int update(InvProductNewVo InvProductNewVo) {
//
// if (InvProductNewVo.getMainAction().equals(ConstantType.TYPE_PUT)) {
// InvProductNewVo.setInCount(InvProductNewVo.getReCount());
// } else if (InvProductNewVo.getMainAction().equals(ConstantType.TYPE_OUT)) {
// InvProductNewVo.setOutCount(InvProductNewVo.getReCount());
// }
//
// return invProductNewDao.updateById(InvProductNewVo);
// }
public List<InvProductNewVo> selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode) {
return invProductNewDao.selectList(new QueryWrapper<InvProductNewVo>().eq("relId", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo)
.isNull(StrUtil.isEmpty(batchNo), "batchNo").eq(supId != null, "supId", supId).eq(deptCode != null, "deptCode", deptCode).eq(invCode != null, "invCode", invCode));
}
// public InvProductNewVo sortFindByCode(String code) {
// List<InvProductNewVo> invProductDetailEntities = invProductNewDao.selectList(new QueryWrapper<InvProductNewVo>().eq("code", code).orderByDesc("id"));
// if (CollUtil.isNotEmpty(invProductDetailEntities))
// return invProductDetailEntities.get(0);
// else
// return null;
// }
// public boolean insertList(List<InvProductNewVo> invProductDetailEntities) {
// return invProductNewDao.insertBatch(invProductDetailEntities);
// }
public List<InvProductNewVo> filterInvProductDetailList(FilterInvProductDetailRequest filterInvProductDetailRequest) {
if (null == filterInvProductDetailRequest) {
return Collections.emptyList();
}
if (null != filterInvProductDetailRequest.getPage() && null != filterInvProductDetailRequest.getLimit()) {
PageHelper.offsetPage((filterInvProductDetailRequest.getPage() - 1) * filterInvProductDetailRequest.getLimit(), filterInvProductDetailRequest.getLimit());
}
return invProductNewDao.filterInvProductDetailList(filterInvProductDetailRequest);
}
// public boolean deleteInvProductDetail(FilterInvProductDetailRequest detailRequest) {
// return invProductNewDao.deleteInvProductDetail(detailRequest);
// }
@Resource
InvSpaceService invSpaceService;
public void setOrderInfo(InvProductDetailResponse response) {
//查询DI层级根据DI层级设置数量取值
Integer packLevel = udiProductDao.selectPackLevel(response.getNameCode());
//设置出入库中文及出入库数量
if (null != packLevel && packLevel != 1) {
//多级包装
if (response.getMainAction().equals(ConstantType.TYPE_OUT)) {
response.setMainActionStr("出库");
response.setOutCount(response.getReCount());
} else {
response.setMainActionStr("入库");
response.setInCount(response.getReCount());
}
} else {
//单层包装
if (response.getMainAction().equals(ConstantType.TYPE_OUT)) {
response.setMainActionStr("出库");
response.setOutCount(response.getCount());
} else {
response.setMainActionStr("入库");
response.setInCount(response.getCount());
}
}
InvSpace invSpace = invSpaceService.findByCode(response.getInvCode(), response.getInvSpaceCode());
if (invSpace != null)
response.setInvSpaceName(invSpace.getName());
//设置单据类型名称
BasicBussinessTypeEntity busType = bussinessTypeDao.selectOne(new QueryWrapper<BasicBussinessTypeEntity>().select("name").eq("action", response.getAction()));
if (busType != null)
response.setActionName(busType.getName());
//设置单据日期
IoOrderEntity order = orderDao.selectOne(new QueryWrapper<IoOrderEntity>().select("createTime").eq("billNo", response.getOrderId()));
if (order != null)
response.setOrderTime(MsDateUtil.toDateStr(order.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
}
/**
*
*/
public int vailStockCount(Long relId, String batchNo, String supId, String deptCode, String invCode, String invSpaceCode, Boolean vailBatchNo) {
if (relId == null) {
return 0;
}
List<InvProductNewVo> datas = null;
if (vailBatchNo || StrUtil.isNotEmpty(batchNo)) {
datas =
invProductNewDao.selectList(new QueryWrapper<InvProductNewVo>().eq("relIdFk", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo)
.eq(StrUtil.isNotEmpty(supId), "supId", supId).eq(StrUtil.isNotEmpty(deptCode), "deptCode", deptCode).eq("invCode", invCode)
.eq(StrUtil.isNotEmpty(invSpaceCode), "invSpaceCode", invSpaceCode)
.and(StrUtil.isEmpty(batchNo), i -> i.isNull("batchNo").or().eq("batchNo", ""))
);
} else {
datas =
invProductNewDao.selectList(new QueryWrapper<InvProductNewVo>().eq("relIdFk", relId)
.eq(StrUtil.isNotEmpty(supId), "supId", supId).eq(StrUtil.isNotEmpty(deptCode), "deptCode", deptCode).eq("invCode", invCode)
.eq(StrUtil.isNotEmpty(invSpaceCode), "invSpaceCode", invSpaceCode)
);
}
log.error("校验入账库存日志打印:" + relId + "," + batchNo + "," + supId + "," + deptCode + "," + invCode + "," + invSpaceCode);
// 因为直接用库存表了 不需要做入库和出库的清算了 直接获取reCount
int count = 0;
if (CollUtil.isNotEmpty(datas)) {
for (InvProductNewVo invProductNewVo : datas) {
count += invProductNewVo.getReCount();
// if (invProductEntity.getMainAction().equals(ConstantType.TYPE_PUT))
// count = count + invProductEntity.getReCount();
// else {
// count = count - invProductEntity.getReCount();
// }
}
}
return count;
}
// public int vailStockCountByCode(String deptCode, String invCode, String invSpaceCode, String code) {
// List<InvProductNewVo> datas =
// invProductNewDao.selectList(new QueryWrapper<InvProductNewVo>().eq("deptCode", deptCode).eq("invCode", invCode)
// .eq(StrUtil.isNotEmpty(invSpaceCode), "invSpaceCode", invSpaceCode)
// .eq("code", code)
// );
//
// int count = 0;
// if (CollUtil.isNotEmpty(datas)) {
// for (InvProductNewVo InvProductNewVo : datas) {
// if (InvProductNewVo.getMainAction().equals(ConstantType.TYPE_PUT))
// count = count + InvProductNewVo.getReCount();
// else {
// count = count - InvProductNewVo.getReCount();
// }
// }
// }
// return count;
// }
public List<InvPlaceDetailResponse> findByGroupCode(String invCode, String code, Boolean isCheckSpace) {
if (StrUtil.isNotEmpty(invCode) && StrUtil.isNotEmpty(code)) {
List<InvPlaceDetailResponse> datas =
invProductNewDao.findByGroupCode(invCode, code, isCheckSpace);
return datas;
}
return null;
}
@Resource
InvPreInProductDetailDao invPreInProductDetailDao;
@Resource
InvPreProductDetailDao invPreProductDetailDao;
public InvProductNewVo selectLastInBatch(BasicBussinessTypeEntity bussinessTypeEntity, String relId, String batchNo, String invCode, String mainAction) {
if (bussinessTypeEntity.isScanPreIn()) { //校验预验收库存
return invPreInProductDetailDao.selectLastInBatch(relId, batchNo, mainAction);
} else if (bussinessTypeEntity.isAdvancePreIn()) { //校验寄售库存
return invPreProductDetailDao.selectLastInBatch(relId, batchNo, mainAction);
} else {
return invProductNewDao.selectLastInBatch(relId, batchNo, invCode, mainAction);
}
}
public InvProductNewVo selectFirstInBatch(BasicBussinessTypeEntity bussinessTypeEntity, String relId, String batchNo, String invCode, String mainAction) {
if (bussinessTypeEntity.isScanPreIn()) { //校验预验收库存
return invPreInProductDetailDao.selectFirstInBatch(relId, batchNo, mainAction);
} else if (bussinessTypeEntity.isAdvancePreIn()) { //校验寄售库存
return invPreProductDetailDao.selectFirstInBatch(relId, batchNo, mainAction);
} else {
return invProductNewDao.selectFirstInBatch(relId, batchNo, invCode, mainAction);
}
}
public Integer selectCountByInBatch(String relId, String batchNo, BasicBussinessTypeEntity bussinessTypeEntity, String inBatchNo, String invCode, String mainAction) {
if (bussinessTypeEntity.isScanPreIn()) { //校验预验收库存
return invPreInProductDetailDao.selectCountByInBatch(relId, batchNo, inBatchNo, mainAction);
} else if (bussinessTypeEntity.isAdvancePreIn()) { //校验寄售库存
return invPreProductDetailDao.selectCountByInBatch(relId, batchNo, inBatchNo, mainAction);
} else {
return invProductNewDao.selectCountByInBatch(relId, batchNo, invCode, inBatchNo, mainAction);
}
}
public InvProductNewVo selectNextInBatch(BasicBussinessTypeEntity bussinessTypeEntity, String relId, String batchNo, String invCode, String mainAction, String inBatchNo) {
if (bussinessTypeEntity.isScanPreIn()) { //校验预验收库存
return invPreInProductDetailDao.selectNextInBatch(relId, batchNo, mainAction, inBatchNo);
} else if (bussinessTypeEntity.isAdvancePreIn()) { //校验寄售库存
return invPreProductDetailDao.selectNextInBatch(relId, batchNo, mainAction, inBatchNo);
} else {
return invProductNewDao.selectNextInBatch(relId, batchNo, invCode, mainAction, inBatchNo);
}
}
}

@ -0,0 +1,138 @@
package com.glxp.api.vo.basic;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@TableName("inv_product")
public class InvProductNewVo {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
// /**
// * UDI码
// */
// @TableField(value = "code")
// private String code;
// /**
// * 订单号外键
// */
// @TableField(value = "orderId")
// private String orderId;
/**
* ID
*/
@TableField(value = "relIdFk")
private Long relIdFk;
/**
*
*/
@TableField(value = "nameCode")
private String nameCode;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
/**
*
*/
@TableField(value = "productionDate")
private String productionDate;
/**
*
*/
@TableField(value = "expireDate")
private String expireDate;
// /**
// * 序列号
// */
// @TableField(value = "serialNo")
// private String serialNo;
/**
*
*/
@TableField(value = "supId")
private String supId;
// /**
// * 扫码数量
// */
// @TableField(value = "`count`")
// private Integer count;
/**
*
*/
@TableField(value = "reCount")
private Integer reCount;
@TableField(value = "inCount")
private Integer inCount;
@TableField(value = "outCount")
private Integer outCount;
/**
*
*/
@TableField(value = "deptCode")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
/**
*
*/
@TableField(value = "invSpaceCode")
private String invSpaceCode;
// /**
// * 采购类型
// */
// @TableField(value = "purchaseType")
// private Integer purchaseType;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
@TableField(value = "mainAction",select = false)
private String mainAction;
// @TableField(value = "action")
// private String action;
/**
*
*/
@TableField(value = "price")
private BigDecimal price;
/**
*
*/
@TableField(value = "inBatchNo")
private String inBatchNo;
}

@ -352,7 +352,7 @@
</select>
<select id="selectLastInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
<select id="selectLastInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select *
from inv_prein_product_detail
<where>
@ -372,7 +372,7 @@
order by inBatchNo desc
limit 1;
</select>
<select id="selectFirstInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
<select id="selectFirstInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select *
from inv_prein_product_detail
<where>
@ -417,7 +417,7 @@
</select>
<select id="selectNextInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
<select id="selectNextInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select *
from inv_prein_product_detail
<where>

@ -318,7 +318,7 @@
</where>
group by pd.invSpaceCode
</select>
<select id="selectLastInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
<select id="selectLastInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select *
from inv_pre_product_detail
<where>
@ -338,7 +338,7 @@
order by inBatchNo desc
limit 1;
</select>
<select id="selectFirstInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
<select id="selectFirstInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select *
from inv_pre_product_detail
<where>
@ -383,7 +383,7 @@
</select>
<select id="selectNextInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
<select id="selectNextInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select *
from inv_pre_product_detail
<where>

@ -2,23 +2,23 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.inv.InvProductDetailDao">
<mapper namespace="com.glxp.api.dao.inv.InvProductNewDao">
<select id="findGroupBySpace" resultType="com.glxp.api.res.inv.InvProductResponse">
select ipp.id,
ipp.nameCode,
bp.cpmctymc,
ipp.relId,
ipp.relIdFk as relId,
bp.ggxh,
bp.measname,
ipp.batchNo,
ipp.produceDate,
ipp.productionDate as produceDate,
ipp.expireDate,
bp.ylqxzcrbarmc,
bp.zczbhhzbapzbh,
bp.bzgg,
ifnull(sum(ipp.inCount), 0) as inCount,
ifnull(sum(ipp.outCount), 0) as outCount,
ipp.inCount - ipp.outCount as reCount,
inCount,
outCount,
reCount,
basic_corp.name supName,
ipp.supId,
auth_dept.name deptName,
@ -27,7 +27,7 @@
ipp.deptCode,
ipp.invCode,
ipp.invSpaceCode,
ipp.code as code,
<!-- ipp.code as code,-->
bp.productsType,
bp.levelUnit,
bp.prepnUnit,
@ -42,8 +42,8 @@
bp.majorStatus,
bp.physicType,
bp.medicareType
from inv_product_detail ipp
inner join basic_udirel on ipp.relId = basic_udirel.id
from inv_product ipp
inner join basic_udirel on ipp.relIdFk = basic_udirel.id
inner join basic_products bp on basic_udirel.uuid = bp.uuid
left join basic_corp on ipp.supId = basic_corp.erpId
left join auth_dept on auth_dept.code = ipp.deptCode
@ -57,7 +57,7 @@
AND ipp.nameCode like concat('%', #{nameCode}, '%')
</if>
<if test="relIdFk != null and relIdFk != ''">
AND ipp.relId = #{relIdFk}
AND ipp.relIdFk = #{relIdFk}
</if>
<if test="productsType != null ">
AND bp.productsType = #{productsType}
@ -69,7 +69,7 @@
AND ipp.batchNo like concat('%', #{batchNo}, '%')
</if>
<if test="productionDate != null and productionDate != ''">
AND ipp.produceDate = #{productionDate}
AND ipp.productionDate = #{productionDate}
</if>
<if test="expireDate != null and expireDate != ''">
AND ipp.expireDate = #{expireDate}
@ -100,36 +100,36 @@
</foreach>
</if>
</where>
GROUP BY ipp.relId, ipp.batchNo
GROUP BY ipp.relIdFk, ipp.batchNo
order by ipp.updateTime desc
</select>
<select id="filterInvProductDetailList" resultType="com.glxp.api.entity.inv.InvProductDetailEntity"
<select id="filterInvProductDetailList" resultType="com.glxp.api.vo.basic.InvProductNewVo"
parameterType="com.glxp.api.req.inv.FilterInvProductDetailRequest">
select *
from inv_product_detail
from inv_product
<where>
<if test="code != null and code != ''">
AND code like concat('%', #{code}, '%')
</if>
<if test="mainAction != null and mainAction != ''">
AND mainAction = #{mainAction}
</if>
<if test="action != null and action != ''">
AND action = #{action}
</if>
<!-- <if test="code != null and code != ''">-->
<!-- AND code like concat('%', #{code}, '%')-->
<!-- </if>-->
<!-- <if test="mainAction != null and mainAction != ''">-->
<!-- AND mainAction = #{mainAction}-->
<!-- </if>-->
<!-- <if test="action != null and action != ''">-->
<!-- AND action = #{action}-->
<!-- </if>-->
<if test="supId != null and supId != ''">
and supId = #{supId}
</if>
<if test="relId != null and relId != ''">
AND relId = #{relId}
AND relIdFk = #{relId}
</if>
<if test="nameCode != null and nameCode != ''">
AND nameCode like concat('%', #{nameCode}, '%')
</if>
<if test="orderId != null and orderId != ''">
AND orderId = #{orderId}
</if>
<!-- <if test="orderId != null and orderId != ''">-->
<!-- AND orderId = #{orderId}-->
<!-- </if>-->
<if test="deptCode != null and deptCode != ''">
AND deptCode = #{deptCode}
</if>
@ -154,13 +154,13 @@
</if>
<if test="productionDate != null and productionDate != ''">
AND produceDate = #{productionDate}
AND productionDate = #{productionDate}
</if>
<if test="expireDate != null and expireDate != ''">
AND expireDate = #{expireDate}
</if>
<if test="productIdList != null and productIdList.size() != 0">
AND relId in
AND relIdFk in
<foreach collection="productIdList" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
@ -188,10 +188,10 @@
<delete id="deleteInvProductDetail">
delete
from inv_product_detail
from inv_product
<where>
<if test="relId != null and relId != ''">
AND relId = #{relId}
AND relIdFk = #{relId}
</if>
<if test="batchNo != null and batchNo != '' and batchNo != 'empty'">
AND batchNo = #{batchNo}
@ -210,10 +210,10 @@
<select id="selectPlaceDetailList" resultType="com.glxp.api.res.inv.InvPlaceDetailResponse">
select pd.id,
pd.code,
pd.relId,
<!-- pd.code,-->
pd.relIdFk as relId,
pd.batchNo,
pd.produceDate productionDate,
pd.productionDate as productionDate,
pd.expireDate,
bp.ggxh,
bp.cpmctymc productName,
@ -224,8 +224,8 @@
ad.name deptName,
aw.name invName,
sp.name invSpaceName
from inv_product_detail pd
left join basic_udirel bu on pd.relId = bu.id
from inv_product pd
left join basic_udirel bu on pd.relIdFk = bu.id
left join basic_products bp on bp.uuid = bu.uuid
left join auth_dept ad on pd.deptCode = ad.code
left join auth_warehouse aw on pd.invCode = aw.code
@ -245,15 +245,15 @@
AND (pd.invSpaceCode is null or pd.invSpaceCode = '')
</if>
</where>
group by pd.code
<!-- group by pd.code-->
</select>
<select id="findByGroupCode" resultType="com.glxp.api.res.inv.InvPlaceDetailResponse">
select pd.id,
pd.code,
pd.relId,
pd.relIdFk as relId,
pd.batchNo,
pd.produceDate productionDate,
pd.productionDate productionDate,
pd.expireDate,
bp.ggxh,
bp.cpmctymc productName,
@ -266,11 +266,11 @@
ad.name deptName,
aw.name invName,
sp.name invSpaceName,
sum(pd.inCount) as inCount,
sum(pd.outCount) as outCount,
sum(pd.reCount) as reCount
from inv_product_detail pd
left join basic_udirel bu on pd.relId = bu.id
inCount,
outCount,
reCount
from inv_product pd
left join basic_udirel bu on pd.relIdFk = bu.id
left join basic_products bp on bp.uuid = bu.uuid
left join auth_dept ad on pd.deptCode = ad.code
left join auth_warehouse aw on pd.invCode = aw.code
@ -280,9 +280,9 @@
<if test="invCode != null and invCode != ''">
AND pd.invCode = #{invCode}
</if>
<if test="code != null and code != ''">
AND pd.code = #{code}
</if>
<!-- <if test="code != null and code != ''">-->
<!-- AND pd.code = #{code}-->
<!-- </if>-->
<if test="isCheckSpace != null and isCheckSpace == true">
AND (pd.invSpaceCode is not null or pd.invSpaceCode != '')
</if>
@ -292,7 +292,7 @@
<update id="batchBindSpace">
update inv_product_detail
update inv_product
set invSpaceCode = #{invSpaceCode}
where id in
<foreach collection="ids" index="index" item="item" open="(" close=")" separator=",">
@ -300,12 +300,12 @@
</foreach>
</update>
<select id="selectByInvAndCode" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
<select id="selectByInvAndCode" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select *
from inv_product_detail
from inv_product
where deptCode = #{deptCode}
and invCode = #{invCode}
and code = #{code}
<!-- and code = #{code}-->
limit 1
</select>
@ -326,7 +326,7 @@
AND invSpaceCode = #{invSpaceCode}
</if>
<if test="relId != null">
AND relId = #{relId}
AND relIdFk = #{relId}
</if>
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
@ -369,7 +369,7 @@
</select>
<select id="getInvPlaceOrderList" resultType="com.glxp.api.res.inout.IoOrderResponse">
select ipd.orderId billNo,
select odr.orderIdFk billNo,
(select name from basic_bussiness_type where action = o.action) billTypeName,
o.mainAction,
o.fromCorp,
@ -378,73 +378,72 @@
o.createTime,
o.auditTime,
(select employeeName from auth_user where id = o.reviewUser) reviewUserName
from inv_product_detail ipd
left join io_order o on ipd.orderId = o.billNo
from io_order_detail_biz odr
left join io_order o on o.billNo = odr.orderIdFk
<where>
<if test="invCode != null and invCode != ''">
AND ipd.invCode = #{invCode}
AND odr.invCode = #{invCode}
</if>
<if test="orderId != null and orderId != ''">
AND ipd.orderId like concat('%', #{orderId}, '%')
AND odr.orderIdFk like concat('%', #{orderId}, '%')
</if>
</where>
group by ipd.orderId
group by odr.orderIdFk
</select>
<select id="getInventoryQuantity" resultType="java.lang.Integer">
SELECT ifnull(SUM(inCount), 0) - ifnull(SUM(outCount), 0)
FROM inv_product_detail ipd
WHERE CODE = #{code}
and invCode = #{invCode}
SELECT reCount
FROM inv_product ipd
WHERE invCode = #{invCode}
and (invSpaceCode is null or invSpaceCode = '')
</select>
<select id="filterSpaceList" resultType="com.glxp.api.res.inv.InvPlaceDetailResponse">
SELECT t1.nameCode,
t1.relId,
t1.relIdFk as relId,
(SELECT NAME FROM auth_dept WHERE auth_dept.`code` = t1.deptCode) AS deptName,
(SELECT NAME FROM auth_warehouse WHERE auth_warehouse.`code` = t1.invCode) AS invName,
(SELECT NAME FROM auth_space WHERE auth_space.`code` = t1.invSpaceCode) AS invSpaceName,
SUM(t1.reCount) as count,
<include refid="inOrOutcount"/> as count,
bp.cpmctymc as productName,
bp.ggxh,
t1.batchNo,
t1.produceDate as productionDate,
t1.productionDate as produceDate as productionDate,
t1.expireDate,
bp.measname,
bp.zczbhhzbapzbh,
bp.ylqxzcrbarmc,
bp.manufactory,
(SELECT `name` FROM basic_corp WHERE erpId = t1.supId) supName
FROM inv_product_detail t1
LEFT JOIN basic_udirel bu ON bu.id = t1.relId
FROM inv_product t1
LEFT JOIN basic_udirel bu ON bu.id = t1.relIdFk
LEFT JOIN basic_products bp ON bp.uuid = bu.uuid
<where>
<if test="code != null and code != ''">
AND t1.code = #{code}
</if>
<!-- <if test="code != null and code != ''">-->
<!-- AND t1.code = #{code}-->
<!-- </if>-->
<if test="invSpaceCode != null and invSpaceCode != ''">
AND t1.invSpaceCode = #{invSpaceCode}
</if>
</where>
GROUP BY CODE,
invSpaceCode
GROUP BY invSpaceCode
</select>
<select id="selectLastInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
select *
from inv_product_detail
<select id="selectLastInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select <include refid="selectInvPreProduct"/>
from inv_product
<where>
<if test="relId != null and relId != ''">
AND relId = #{relId}
AND relIdFk = #{relId}
</if>
<if test="invCode != null and invCode != ''">
AND invCode = #{invCode}
</if>
<if test="mainAction != null and mainAction != ''">
AND mainAction = #{mainAction}
</if>
<!-- <if test="mainAction != null and mainAction != ''">-->
<!-- AND mainAction = #{mainAction}-->
<!-- </if>-->
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
@ -455,19 +454,19 @@
order by inBatchNo desc
limit 1;
</select>
<select id="selectFirstInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
select *
from inv_product_detail
<select id="selectFirstInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select <include refid="selectInvPreProduct"/>
from inv_product
<where>
<if test="relId != null and relId != ''">
AND relId = #{relId}
AND relIdFk = #{relId}
</if>
<if test="invCode != null and invCode != ''">
AND invCode = #{invCode}
</if>
<if test="mainAction != null and mainAction != ''">
AND mainAction = #{mainAction}
</if>
<!-- <if test="mainAction != null and mainAction != ''">-->
<!-- AND mainAction = #{mainAction}-->
<!-- </if>-->
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
@ -481,11 +480,12 @@
<select id="selectCountByInBatch" resultType="java.lang.Integer">
select sum(reCount)
from inv_product_detail
select
<include refid="inOrOutcount"/>
from inv_product
<where>
<if test="relId != null and relId != ''">
AND relId = #{relId}
AND relIdFk = #{relId}
</if>
<if test="invCode != null and invCode != ''">
AND invCode = #{invCode}
@ -493,9 +493,9 @@
<if test="inBatchNo != null and inBatchNo != ''">
AND inBatchNo = #{inBatchNo}
</if>
<if test="mainAction != null and mainAction != ''">
AND mainAction = #{mainAction}
</if>
<!-- <if test="mainAction != null and mainAction != ''">-->
<!-- AND mainAction = #{mainAction}-->
<!-- </if>-->
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
@ -506,19 +506,19 @@
</select>
<select id="selectNextInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
select *
from inv_product_detail
<select id="selectNextInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select <include refid="selectInvPreProduct"/>
from inv_product
<where>
<if test="relId != null and relId != ''">
AND relId = #{relId}
AND relIdFk = #{relId}
</if>
<if test="invCode != null and invCode != ''">
AND invCode = #{invCode}
</if>
<if test="mainAction != null and mainAction != ''">
AND mainAction = #{mainAction}
</if>
<!-- <if test="mainAction != null and mainAction != ''">-->
<!-- AND mainAction = #{mainAction}-->
<!-- </if>-->
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
@ -529,4 +529,28 @@
LIMIT 1
</where>
</select>
<sql id="selectInvPreProduct">
*
</sql>
<sql id="inOrOutcount">
<choose>
<when test="mainAction =='WareHouseOut'.toString() ">
outCount
</when>
<when test="mainAction =='WareHouseIn'.toString() ">
inCount
</when>
</choose>
</sql>
<select id="selectOrderInfo" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select t1.deptCode,t1.invCode,t1.mainAction,t2.* from io_order t1 inner join io_order_detail_biz t2 on t1.billNo = t2.orderIdFk
<where>
t2.orderIdFk = #{orderIdFk}
<if test="price != null and price != ''">
AND t2.price = #{price}
</if>
</where>
</select>
</mapper>
Loading…
Cancel
Save