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

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())) { if (fifoCodeEntity != null && StrUtil.isNotEmpty(fifoCodeEntity.getSerialNo())) {
return ResultVOUtils.error(533, "当前追溯码已存在!"); return ResultVOUtils.error(533, "当前追溯码已存在!");
} }
} else { } else if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) {
IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode()); IoSplitFifoCodeEntity fifoCodeEntity = fifoCodeService.findByCode(code, addOrderRequest.getWorkPlaceCode());
if (fifoCodeEntity == null) { if (fifoCodeEntity == null) {
@ -952,11 +952,11 @@ public class IoCodeTempController extends BaseController {
// TODO: 2024/10/14 判断价格先进先出 // TODO: 2024/10/14 判断价格先进先出
// //1.获取当前批次已出库数量 // //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.获取当前批次入库数量 // //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) { // 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) { // if (nextInvProduct != null) {
// genDetaiEntity.setPrice(nextInvProduct.getPrice()); // genDetaiEntity.setPrice(nextInvProduct.getPrice());
// genDetaiEntity.setInBatchNo(nextInvProduct.getInBatchNo()); // genDetaiEntity.setInBatchNo(nextInvProduct.getInBatchNo());
@ -1418,11 +1418,11 @@ public class IoCodeTempController extends BaseController {
// TODO: 2024/10/14 价格先进先出 // TODO: 2024/10/14 价格先进先出
// //1.获取当前批次已出库数量 // //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.获取当前批次入库数量 // //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) { // 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) { // if (nextInvProduct != null) {
// genDetaiEntity.setPrice(nextInvProduct.getPrice()); // genDetaiEntity.setPrice(nextInvProduct.getPrice());
// genDetaiEntity.setInBatchNo(nextInvProduct.getInBatchNo()); // 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.inout.impl.IoOrderInvoiceService;
import com.glxp.api.service.inv.InvPreProductDetailService; import com.glxp.api.service.inv.InvPreProductDetailService;
import com.glxp.api.service.inv.InvPreinProductDetailService; 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.service.system.SystemParamConfigService;
import com.glxp.api.util.*; import com.glxp.api.util.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -100,6 +101,9 @@ public class IoOrderController extends BaseController {
@Resource @Resource
IoSplitFifoCodeService fifoCodeService; IoSplitFifoCodeService fifoCodeService;
@Resource
InvProductServiceNew invProductServiceNew;
/** /**
* *
* *
@ -1418,7 +1422,7 @@ public class IoOrderController extends BaseController {
outInvCode = invWarehouseEntity.getCode(); outInvCode = invWarehouseEntity.getCode();
} }
int count = 0; 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 < 0) {
if (count == -1) { if (count == -1) {
return ResultVOUtils.error(500, "该产品未入库"); 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.IoOrderInvoiceService;
import com.glxp.api.service.inout.impl.ReceiveDetailService; import com.glxp.api.service.inout.impl.ReceiveDetailService;
import com.glxp.api.service.inout.impl.ReceiveService; 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.PurOrderService;
import com.glxp.api.service.purchase.SupCertService; import com.glxp.api.service.purchase.SupCertService;
import com.glxp.api.service.purchase.SupProductService; import com.glxp.api.service.purchase.SupProductService;
@ -295,7 +296,7 @@ public class IoOrderDetailBizController extends BaseController {
} }
@Resource @Resource
InvProductDetailService invProductDetailService; InvProductServiceNew invProductServiceNew;
//修改业务单据详情 //修改业务单据详情
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@ -319,7 +320,7 @@ public class IoOrderDetailBizController extends BaseController {
Boolean vailBatchNo = true; Boolean vailBatchNo = true;
if (IntUtil.value(bussinessTypeEntity.getVailInvBatchNo())) if (IntUtil.value(bussinessTypeEntity.getVailInvBatchNo()))
vailBatchNo = false; 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(); count = IntUtil.value(count) - orderDetailBizEntity.getCount();
if (count < 0) { if (count < 0) {

@ -2,6 +2,8 @@ package com.glxp.api.controller.inv;
import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.service.inv.impl.InvProductService; 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 org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@ -51,7 +53,7 @@ public class InvProductController extends BaseController {
@Resource @Resource
private InvProductService invProductService; private InvProductService invProductService;
@Resource @Resource
private InvProductDetailService invProductDetailService; private InvProductServiceNew invProductServiceNew;
@Resource @Resource
private WarehouseUserService warehouseUserService; private WarehouseUserService warehouseUserService;
@Resource @Resource
@ -167,8 +169,8 @@ public class InvProductController extends BaseController {
if (!"".equals(filterInvProductDetailRequest.getOrderBy())) { if (!"".equals(filterInvProductDetailRequest.getOrderBy())) {
filterInvProductDetailRequest.setOrderBy("updateTime"); filterInvProductDetailRequest.setOrderBy("updateTime");
} }
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProductDetailList(filterInvProductDetailRequest); List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest);
PageInfo<InvProductDetailEntity> pageInfo = new PageInfo<>(invProductDetailEntities); PageInfo<InvProductNewVo> pageInfo = new PageInfo<>(invProductDetailEntities);
List<InvProductDetailResponse> list = new ArrayList<>(); List<InvProductDetailResponse> list = new ArrayList<>();
if (CollUtil.isNotEmpty(invProductDetailEntities)) { if (CollUtil.isNotEmpty(invProductDetailEntities)) {
@ -176,7 +178,7 @@ public class InvProductController extends BaseController {
InvProductDetailResponse response = new InvProductDetailResponse(); InvProductDetailResponse response = new InvProductDetailResponse();
BeanUtils.copyProperties(invProductDetailEntity, response); BeanUtils.copyProperties(invProductDetailEntity, response);
//设置单据类型名称等单据相关参数 //设置单据类型名称等单据相关参数
invProductDetailService.setOrderInfo(response); invProductServiceNew.setOrderInfo(response);
list.add(response); list.add(response);
}); });
} }
@ -226,7 +228,7 @@ public class InvProductController extends BaseController {
detailRequest.setBatchNo(invProductEntity.getBatchNo()); detailRequest.setBatchNo(invProductEntity.getBatchNo());
} }
invProductService.deleteById(id); invProductService.deleteById(id);
invProductDetailService.deleteInvProductDetail(detailRequest); // invProductServiceNew.deleteInvProductDetail(detailRequest);
return ResultVOUtils.success("删除成功"); return ResultVOUtils.success("删除成功");
} else { } else {
return ResultVOUtils.error(500, "删除失败"); return ResultVOUtils.error(500, "删除失败");
@ -315,14 +317,14 @@ public class InvProductController extends BaseController {
if (invWarehouseEntity != null) { if (invWarehouseEntity != null) {
outInvCode = invWarehouseEntity.getCode(); 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) { } 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) { } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) {
//按指定货位出库 //按指定货位出库
if (StrUtil.isEmpty(codeTempEntity.getWarehouseCode())) { 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) { if (CollUtil.isNotEmpty(invProductDetailEntities) && invProductDetailEntities.size() > 1) {
BaseResponse baseResponse = ResultVOUtils.error(511, "存在多个货位,请指定当前货位!"); BaseResponse baseResponse = ResultVOUtils.error(511, "存在多个货位,请指定当前货位!");
baseResponse.setData(invProductDetailEntities); baseResponse.setData(invProductDetailEntities);
@ -334,7 +336,7 @@ public class InvProductController extends BaseController {
return ResultVOUtils.error(500, "添加失败,该产品未上架货位!"); return ResultVOUtils.error(500, "添加失败,该产品未上架货位!");
} }
} else { } 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) { 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.common.util.ResultVOUtils;
import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiProductEntity; 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.basic.FilterUdiRelRequest;
import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.req.inv.FilterCodeTraceRequest; 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.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.IoOrderService; 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.MsDateUtil;
import com.glxp.api.util.udi.FilterUdiUtils; 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.GetMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -39,187 +42,190 @@ public class UdiTraceController {
UdiProductService udiProductService; UdiProductService udiProductService;
@Resource @Resource
IoOrderService orderService; IoOrderService orderService;
@Resource
@AuthRuleAnnotation("") InvProductServiceNew invProductServiceNew;
@GetMapping("udiwarehouse/trace/filter") //TODO 20241017 先把这个接口注释了
public BaseResponse list(FilterCodeTraceRequest filterCodeTraceRequest) { // @AuthRuleAnnotation("")
if (StrUtil.isEmpty(filterCodeTraceRequest.getCode())) { // @GetMapping("udiwarehouse/trace/filter")
return ResultVOUtils.error(500, "UDI码不能为空"); // public BaseResponse list(FilterCodeTraceRequest filterCodeTraceRequest) {
} // if (StrUtil.isEmpty(filterCodeTraceRequest.getCode())) {
UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeTraceRequest.getCode()); // return ResultVOUtils.error(500, "UDI码不能为空");
if (udiEntity == null) { // }
return ResultVOUtils.error(500, "无效条码"); // UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeTraceRequest.getCode());
} // if (udiEntity == null) {
UdiRelevanceResponse udiInfoBean = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); // return ResultVOUtils.error(500, "无效条码");
if (udiInfoBean == null) { // }
return ResultVOUtils.error(500, "耗材字典不存在此产品!"); // UdiRelevanceResponse udiInfoBean = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
} // if (udiInfoBean == null) {
List<UdiProductEntity> udiInfoEntities = udiProductService.findByUuids(udiInfoBean.getUuid()); // return ResultVOUtils.error(500, "耗材字典不存在此产品!");
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); // }
if (udiInfoEntities != null && udiInfoEntities.size() > 1) { // List<UdiProductEntity> udiInfoEntities = udiProductService.findByUuids(udiInfoBean.getUuid());
filterInvProductDetailRequest.setRelId(udiInfoBean.getId() + ""); // FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo()); // if (udiInfoEntities != null && udiInfoEntities.size() > 1) {
} else { // filterInvProductDetailRequest.setRelId(udiInfoBean.getId() + "");
filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode()); // filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo());
} // } else {
// filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode());
// }
filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId()); //
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProductDetailList(filterInvProductDetailRequest); //
if (invProductDetailEntities.size() > 0) { // filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId());
Map<String, String> filterMap = new HashMap<>(); // List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest);
// if (invProductDetailEntities.size() > 0) {
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) { // Map<String, String> filterMap = new HashMap<>();
filterMap.put(invProductDetailEntity.getOrderId(), invProductDetailEntity.getOrderId()); //
} // for (InvProductNewVo invProductDetailEntity : invProductDetailEntities) {
List<String> orderIds = new ArrayList<>(); // filterMap.put(invProductDetailEntity.getOrderId(), invProductDetailEntity.getOrderId());
for (String key : filterMap.keySet()) { // }
orderIds.add(key); // List<String> orderIds = new ArrayList<>();
} // for (String key : filterMap.keySet()) {
FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); // orderIds.add(key);
filterOrderRequest.setOrderIds(orderIds); // }
List<IoOrderResponse> orderEntities = orderService.filterList(filterOrderRequest); // 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); // FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest();
UdiRelevanceResponse udiRelevance = null; // filterUdiInfoRequest.setNameCode(udiEntity.getUdi());
if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) { // List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterUdiGp(filterUdiInfoRequest);
udiRelevance = udiRelevanceResponses.get(0); // UdiRelevanceResponse udiRelevance = null;
} // if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) {
// udiRelevance = udiRelevanceResponses.get(0);
UdiRelevanceResponse finalUdiRelevance = udiRelevance; // }
List<UdiTraceResponse> udiTraceResponseList = orderEntities.stream().map(item -> //
{ // UdiRelevanceResponse finalUdiRelevance = udiRelevance;
UdiTraceResponse udiTraceResponse = new UdiTraceResponse(); // List<UdiTraceResponse> udiTraceResponseList = orderEntities.stream().map(item ->
// {
udiTraceResponse.setOrderId(item.getBillNo()); // UdiTraceResponse udiTraceResponse = new UdiTraceResponse();
udiTraceResponse.setBillTypeName(item.getBillTypeName()); //
udiTraceResponse.setFromCorp(item.getFromName()); // udiTraceResponse.setOrderId(item.getBillNo());
udiTraceResponse.setActDate(MsDateUtil.formatDate(item.getCreateTime())); // udiTraceResponse.setBillTypeName(item.getBillTypeName());
if (finalUdiRelevance != null) { // udiTraceResponse.setFromCorp(item.getFromName());
udiTraceResponse.setYlqxzcrbarmc(finalUdiRelevance.getYlqxzcrbarmc()); // udiTraceResponse.setActDate(MsDateUtil.formatDate(item.getCreateTime()));
udiTraceResponse.setCpmctymc(finalUdiRelevance.getCpmctymc()); // if (finalUdiRelevance != null) {
udiTraceResponse.setGgxh(finalUdiRelevance.getGgxh()); // udiTraceResponse.setYlqxzcrbarmc(finalUdiRelevance.getYlqxzcrbarmc());
InvProductDetailEntity invProductDetailEntity = invProductDetailEntities.get(0); // udiTraceResponse.setCpmctymc(finalUdiRelevance.getCpmctymc());
udiTraceResponse.setBatchNo(invProductDetailEntity.getBatchNo()); // udiTraceResponse.setGgxh(finalUdiRelevance.getGgxh());
udiTraceResponse.setProduceDate(invProductDetailEntity.getProduceDate()); // InvProductNewVo invProductDetailEntity = invProductDetailEntities.get(0);
udiTraceResponse.setExpireDate(invProductDetailEntity.getExpireDate()); // udiTraceResponse.setBatchNo(invProductDetailEntity.getBatchNo());
udiTraceResponse.setCount(invProductDetailEntity.getCount()); // udiTraceResponse.setProduceDate(invProductDetailEntity.getProduceDate());
} // udiTraceResponse.setExpireDate(invProductDetailEntity.getExpireDate());
return udiTraceResponse; // udiTraceResponse.setCount(invProductDetailEntity.getCount());
}).collect(Collectors.toList()); // }
// return udiTraceResponse;
// }).collect(Collectors.toList());
PageInfo<UdiTraceResponse> pageInfo; //
pageInfo = new PageInfo<>(udiTraceResponseList); //
PageSimpleResponse<UdiTraceResponse> pageSimpleResponse = new PageSimpleResponse<>(); // PageInfo<UdiTraceResponse> pageInfo;
pageSimpleResponse.setTotal(pageInfo.getTotal()); // pageInfo = new PageInfo<>(udiTraceResponseList);
pageSimpleResponse.setList(udiTraceResponseList); // PageSimpleResponse<UdiTraceResponse> pageSimpleResponse = new PageSimpleResponse<>();
return ResultVOUtils.success(pageSimpleResponse); // pageSimpleResponse.setTotal(pageInfo.getTotal());
} else { // pageSimpleResponse.setList(udiTraceResponseList);
return ResultVOUtils.error(500, "未查询到数据!"); // return ResultVOUtils.success(pageSimpleResponse);
} // } else {
// return ResultVOUtils.error(500, "未查询到数据!");
} // }
//
// }
@AuthRuleAnnotation("")
@GetMapping("spms/inv/products/order/trace") //TODO 20241017 先把这个接口注释了
public BaseResponse filterOrderTrace(FilterCodeTraceRequest filterCodeTraceRequest) { // @AuthRuleAnnotation("")
if (filterCodeTraceRequest.getCode() == null) { // @GetMapping("spms/inv/products/order/trace")
return ResultVOUtils.success(); // public BaseResponse filterOrderTrace(FilterCodeTraceRequest filterCodeTraceRequest) {
} //
System.out.println(filterCodeTraceRequest + "---------------------------------------------"); // if (filterCodeTraceRequest.getCode() == null) {
UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeTraceRequest.getCode()); // return ResultVOUtils.success();
if (udiEntity == null) { // }
return ResultVOUtils.error(500, "无效条码"); // System.out.println(filterCodeTraceRequest + "---------------------------------------------");
} // UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeTraceRequest.getCode());
UdiRelevanceResponse udiInfoBean = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); // if (udiEntity == null) {
if (udiInfoBean == null) { // return ResultVOUtils.error(500, "无效条码");
return ResultVOUtils.error(500, "耗材字典不存在此产品!"); // }
} // UdiRelevanceResponse udiInfoBean = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
List<InvProductDetailEntity> mInvProductDetailEntities = new ArrayList<>(); // if (udiInfoBean == null) {
//判断是否多级包装 // return ResultVOUtils.error(500, "耗材字典不存在此产品!");
List<UdiProductEntity> udiInfoEntities = udiProductService.findByUuids(udiInfoBean.getUuid()); // }
// List<InvProductNewVo> mInvProductDetailEntities = new ArrayList<>();
if (udiInfoEntities != null && udiInfoEntities.size() > 1) { // //判断是否多级包装
//多级包装根据产品ID批次号查询 // List<UdiProductEntity> udiInfoEntities = udiProductService.findByUuids(udiInfoBean.getUuid());
//
//1.判断是否di关联多个产品ID // if (udiInfoEntities != null && udiInfoEntities.size() > 1) {
List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectAllByNameCode(udiEntity.getUdi()); // //多级包装根据产品ID批次号查询
if (CollUtil.isNotEmpty(udiRelevanceResponses)) { //
// //1.判断是否di关联多个产品ID
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { // List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectAllByNameCode(udiEntity.getUdi());
//假设条码不完整 // if (CollUtil.isNotEmpty(udiRelevanceResponses)) {
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); //
filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode()); // for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId()); // //假设条码不完整
List<InvProductDetailEntity> temps = invProductDetailService.filterInvProductDetailList(filterInvProductDetailRequest); // FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
if (CollUtil.isNotEmpty(temps)) { // filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode());
Map<String, List<InvProductDetailEntity>> filterMaps = temps.stream().collect(Collectors.groupingBy(InvProductDetailEntity::getBatchNo)); // filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId());
if (filterMaps.size() > 0) { // List<InvProductNewVo> temps = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest);
for (String bacthNo : filterMaps.keySet()) { // if (CollUtil.isNotEmpty(temps)) {
filterInvProductDetailRequest = new FilterInvProductDetailRequest(); // Map<String, List<InvProductNewVo>> filterMaps = temps.stream().collect(Collectors.groupingBy(InvProductNewVo::getBatchNo));
filterInvProductDetailRequest.setRelId(udiRelevanceResponse.getId() + ""); // if (filterMaps.size() > 0) {
filterInvProductDetailRequest.setBatchNo(bacthNo); // for (String bacthNo : filterMaps.keySet()) {
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProductDetailList(filterInvProductDetailRequest); // filterInvProductDetailRequest = new FilterInvProductDetailRequest();
if (CollUtil.isNotEmpty(invProductDetailEntities)) { // filterInvProductDetailRequest.setRelId(udiRelevanceResponse.getId() + "");
mInvProductDetailEntities.addAll(invProductDetailEntities); // 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()); // } else {
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.selectByUnique(udiRelevanceResponse.getId(), udiEntity.getBatchNo(), null, null, null); // filterInvProductDetailRequest = new FilterInvProductDetailRequest();
if (CollUtil.isNotEmpty(invProductDetailEntities)) { // filterInvProductDetailRequest.setRelId(udiRelevanceResponse.getId() + "");
mInvProductDetailEntities.addAll(invProductDetailEntities); // 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()); // } else {
filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId()); // //单级包装
// FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.list(new QueryWrapper<InvProductDetailEntity>().likeRight("code", filterCodeTraceRequest.getCode())); // filterInvProductDetailRequest.setCode(filterCodeTraceRequest.getCode());
// List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProductDetailList(filterInvProductDetailRequest); // filterInvProductDetailRequest.setSupId(filterCodeTraceRequest.getSupId());
if (CollUtil.isNotEmpty(invProductDetailEntities)) { //
mInvProductDetailEntities.addAll(invProductDetailEntities); // List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.list(new QueryWrapper<InvProductNewVo>().likeRight("code", filterCodeTraceRequest.getCode()));
} //// List<InvProductNewVo> invProductDetailEntities = invProductServiceNew.filterInvProductDetailList(filterInvProductDetailRequest);
} // if (CollUtil.isNotEmpty(invProductDetailEntities)) {
if (mInvProductDetailEntities.size() > 0) { // mInvProductDetailEntities.addAll(invProductDetailEntities);
Map<String, String> filterMap = new HashMap<>(); // }
// }
for (InvProductDetailEntity invProductDetailEntity : mInvProductDetailEntities) { // if (mInvProductDetailEntities.size() > 0) {
filterMap.put(invProductDetailEntity.getOrderId(), invProductDetailEntity.getOrderId()); // Map<String, String> filterMap = new HashMap<>();
} //
List<String> orderIds = new ArrayList<>(); // for (InvProductNewVo invProductDetailEntity : mInvProductDetailEntities) {
for (String key : filterMap.keySet()) { // filterMap.put(invProductDetailEntity.getOrderId(), invProductDetailEntity.getOrderId());
orderIds.add(key); // }
} // List<String> orderIds = new ArrayList<>();
FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); // for (String key : filterMap.keySet()) {
filterOrderRequest.setOrderIds(orderIds); // orderIds.add(key);
filterOrderRequest.setPage(filterCodeTraceRequest.getPage()); // }
filterOrderRequest.setLimit(filterCodeTraceRequest.getLimit()); // FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
List<IoOrderResponse> orderEntities = orderService.filterList(filterOrderRequest); // filterOrderRequest.setOrderIds(orderIds);
Collections.sort(orderEntities, Comparator.comparing(IoOrderResponse::getCreateTime)); // filterOrderRequest.setPage(filterCodeTraceRequest.getPage());
PageInfo<IoOrderResponse> pageInfo; // filterOrderRequest.setLimit(filterCodeTraceRequest.getLimit());
pageInfo = new PageInfo<>(orderEntities); // List<IoOrderResponse> orderEntities = orderService.filterList(filterOrderRequest);
PageSimpleResponse<IoOrderResponse> pageSimpleResponse = new PageSimpleResponse<>(); // Collections.sort(orderEntities, Comparator.comparing(IoOrderResponse::getCreateTime));
pageSimpleResponse.setTotal(pageInfo.getTotal()); // PageInfo<IoOrderResponse> pageInfo;
pageSimpleResponse.setList(orderEntities); // pageInfo = new PageInfo<>(orderEntities);
return ResultVOUtils.success(pageSimpleResponse); // PageSimpleResponse<IoOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
} else { // pageSimpleResponse.setTotal(pageInfo.getTotal());
return ResultVOUtils.error(500, "未查询到数据!"); // 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.inout.impl.IoCodeService;
import com.glxp.api.service.inv.InvPreProductDetailService; import com.glxp.api.service.inv.InvPreProductDetailService;
import com.glxp.api.service.inv.InvPreinProductDetailService; import com.glxp.api.service.inv.InvPreinProductDetailService;
import com.glxp.api.service.inv.impl.InvProductServiceNew;
import com.glxp.api.util.udi.FilterUdiUtils; import com.glxp.api.util.udi.FilterUdiUtils;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -44,7 +45,7 @@ public class ForThirdSysApiController {
@Resource @Resource
InvPreProductDetailService invPreProductDetailService; InvPreProductDetailService invPreProductDetailService;
@Resource @Resource
InvProductDetailService invProductDetailService; InvProductServiceNew invProductServiceNew;
@Resource @Resource
UdiRelevanceService udiRelevanceService; UdiRelevanceService udiRelevanceService;
@ -137,7 +138,7 @@ public class ForThirdSysApiController {
} }
if (count == 0) { if (count == 0) {
//3.获取入账库库存 //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(); InvProductResponse invProductResponse = new InvProductResponse();
BeanUtil.copyProperties(checkUdi, 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.inout.IoOrderResponse;
import com.glxp.api.res.inv.InvPlaceDetailResponse; import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvPreinProductResponse; 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.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -56,12 +57,12 @@ public interface InvPreInProductDetailDao extends BaseMapperPlus<InvPreInProduct
List<InvPreInProductDetailEntity> findBySpaceList(@Param("spaceList") List<String> spaceList); 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); 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.inout.IoOrderResponse;
import com.glxp.api.res.inv.InvPlaceDetailResponse; import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvPreinProductResponse; import com.glxp.api.res.inv.InvPreinProductResponse;
import com.glxp.api.vo.basic.InvProductNewVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; 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); 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); 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; package com.glxp.api.dao.inv;
import com.glxp.api.dao.BaseMapperPlus; 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.FilterInvPlaceRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest; import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.req.inv.FilterInvProductRequest; 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.BindInvSpaceRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse; import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvProductResponse; 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.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
@Mapper @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 * @param filterInvProductDetailRequest
* @return * @return
*/ */
List<InvProductDetailEntity> filterInvProductDetailList(FilterInvProductDetailRequest filterInvProductDetailRequest); List<InvProductNewVo> filterInvProductDetailList(FilterInvProductDetailRequest filterInvProductDetailRequest);
List<InvProductResponse> findGroupBySpace(FilterInvProductRequest filterInvProductRequest); List<InvProductResponse> findGroupBySpace(FilterInvProductRequest filterInvProductRequest);
@ -57,34 +61,34 @@ public interface InvProductDetailDao extends BaseMapperPlus<InvProductDetailDao,
* @param bindInvSpaceRequest * @param bindInvSpaceRequest
* @return * @return
*/ */
InvProductDetailEntity selectByInvAndCode(BindInvSpaceRequest bindInvSpaceRequest); InvProductNewVo selectByInvAndCode(BindInvSpaceRequest bindInvSpaceRequest);
/** /**
* ID * ID(20241017===)
* *
* @param code * @param code
* @return * @return
*/ */
List<String> selectSupIdByCode(@Param("code") String code); // List<String> selectSupIdByCode(@Param("code") String code);
/** // /**
* // * 查询盘点单的码(20241017===没用到注释了)
* // *
* @param invCode // * @param invCode
* @param invSpaceCode // * @param invSpaceCode
* @param relId // * @param relId
* @param batchNo // * @param batchNo
* @return // * @return
*/ // */
List<String> selectCountOrderCodes(@Param("invCode") String invCode, @Param("invSpaceCode") String invSpaceCode, @Param("relId") Long relId, @Param("batchNo") String batchNo); // List<String> selectCountOrderCodes(@Param("invCode") String invCode, @Param("invSpaceCode") String invSpaceCode, @Param("relId") Long relId, @Param("batchNo") String batchNo);
/** // /**
* // * 查询库存摆放的产品详情数据(20241017===没用到注释了)
* // *
* @param filterInvPlaceRequest // * @param filterInvPlaceRequest
* @return // * @return
*/ // */
List<InvPlaceDetailResponse> getInvProductInfo(FilterInvPlaceRequest filterInvPlaceRequest); // 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); 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); 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; package com.glxp.api.req.inv;
import com.glxp.api.vo.basic.InvProductNewVo;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -18,6 +19,6 @@ public class AddInvPlaceOrderRequest {
private String orderId; private String orderId;
private List<InvProductDetailEntity> codeList; private List<InvProductNewVo> codeList;
} }

@ -112,7 +112,7 @@ public class InvSpaceServiceImpl extends ServiceImpl<InvSpaceDao, InvSpace> impl
//todo 代码迁移,后面记得修改 //todo 代码迁移,后面记得修改
// //判断此货位是否与库存绑定,如果与库存绑定,则无法删除 // //判断此货位是否与库存绑定,如果与库存绑定,则无法删除
// Long detailCount = invProductDetailDao.countBySpaceCode(invSpace.getInvStorageCode(), invSpace.getInvWarehouseCode(), invSpace.getCode()); // Long detailCount = invProductServiceNew.countBySpaceCode(invSpace.getInvStorageCode(), invSpace.getInvWarehouseCode(), invSpace.getCode());
// if (detailCount > 0) { // if (detailCount > 0) {
// return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "此货位已被使用,无法删除!"); // 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.DeptDeviceDetailDao;
import com.glxp.api.dao.dev.DeviceReceiveOrderDetailDao; import com.glxp.api.dao.dev.DeviceReceiveOrderDetailDao;
import com.glxp.api.dao.inv.InvProductDao; 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.UdiEntity;
import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.dev.DeptDeviceDetailEntity; 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.dev.DeviceReceiveOrderDetailService;
import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.udi.FilterUdiUtils; import com.glxp.api.util.udi.FilterUdiUtils;
import com.glxp.api.vo.basic.InvProductNewVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -40,7 +41,7 @@ public class DeviceReceiveOrderDetailServiceImpl implements DeviceReceiveOrderDe
@Resource @Resource
private DeviceReceiveOrderDetailDao deviceReceiveOrderDetailDao; private DeviceReceiveOrderDetailDao deviceReceiveOrderDetailDao;
@Resource @Resource
private InvProductDetailDao invProductDetailDao; private InvProductNewDao invProductNewDao;
@Resource @Resource
private InvProductDao invProductDao; private InvProductDao invProductDao;
@Resource @Resource
@ -102,8 +103,8 @@ public class DeviceReceiveOrderDetailServiceImpl implements DeviceReceiveOrderDe
invProductDetailRequest.setSupId(addDetailRequest.getSupId()); invProductDetailRequest.setSupId(addDetailRequest.getSupId());
} }
//查询库存详情 //查询库存详情
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(invProductDetailRequest); List<InvProductNewVo> invProductDetailEntities = invProductNewDao.filterInvProductDetailList(invProductDetailRequest);
InvProductDetailEntity invProductDetailEntity = invProductDetailEntities.get(0); InvProductNewVo invProductDetailEntity = invProductDetailEntities.get(0);
DeviceReceiveOrderDetailEntity orderDetail = getDeviceReceiveOrderDetailEntity(addDetailRequest.getOrderIdFk(), addDetailRequest.getCode(), invProductDetailEntity); DeviceReceiveOrderDetailEntity orderDetail = getDeviceReceiveOrderDetailEntity(addDetailRequest.getOrderIdFk(), addDetailRequest.getCode(), invProductDetailEntity);
deviceReceiveOrderDetailDao.insert(orderDetail); deviceReceiveOrderDetailDao.insert(orderDetail);
}else if(addDetailRequest.getType() == 2){ }else if(addDetailRequest.getType() == 2){
@ -125,15 +126,16 @@ public class DeviceReceiveOrderDetailServiceImpl implements DeviceReceiveOrderDe
} else { } else {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("device_product"); SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("device_product");
if(systemParamConfigEntity.getParamValue().equals("0") || addDetailRequest.getType() == 1){ if(systemParamConfigEntity.getParamValue().equals("0") || addDetailRequest.getType() == 1){
//通过选库存添加 //TODO 20241017 这个插入设备领用记录详情需要依赖订单详情表先注释了看下要不要用其他方式写
//查询选中的库存信息 // //通过选库存添加
for (String invProductId : addDetailRequest.getInvProductIds()) { // //查询选中的库存信息
//查询库存详情 // for (String invProductId : addDetailRequest.getInvProductIds()) {
InvProductDetailEntity invProductDetailEntities = invProductDetailDao.selectById(Integer.valueOf(invProductId)); // //查询库存详情
DeviceReceiveOrderDetailEntity orderDetail = getDeviceReceiveOrderDetailEntity(addDetailRequest.getOrderIdFk(), invProductDetailEntities.getCode(), invProductDetailEntities); // InvProductNewVo invProductDetailEntities = invProductNewDao.selectById(Integer.valueOf(invProductId));
//插入设备领用记录详情 // DeviceReceiveOrderDetailEntity orderDetail = getDeviceReceiveOrderDetailEntity(addDetailRequest.getOrderIdFk(), invProductDetailEntities.getCode(), invProductDetailEntities);
deviceReceiveOrderDetailDao.insert(orderDetail); // //插入设备领用记录详情
} // deviceReceiveOrderDetailDao.insert(orderDetail);
// }
}else if(systemParamConfigEntity.getParamValue().equals("1") || addDetailRequest.getType() == 3 ){ }else if(systemParamConfigEntity.getParamValue().equals("1") || addDetailRequest.getType() == 3 ){
for (String invProductId : addDetailRequest.getInvProductIds()) { for (String invProductId : addDetailRequest.getInvProductIds()) {
DeviceReceiveOrderDetailEntity deviceReceiveOrderDetailEntity = new DeviceReceiveOrderDetailEntity(); DeviceReceiveOrderDetailEntity deviceReceiveOrderDetailEntity = new DeviceReceiveOrderDetailEntity();
@ -183,14 +185,14 @@ public class DeviceReceiveOrderDetailServiceImpl implements DeviceReceiveOrderDe
* @param invProductDetailEntity * @param invProductDetailEntity
* @return * @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); UdiEntity udi = FilterUdiUtils.getUdi(code);
DeviceReceiveOrderDetailEntity orderDetail = new DeviceReceiveOrderDetailEntity(); DeviceReceiveOrderDetailEntity orderDetail = new DeviceReceiveOrderDetailEntity();
orderDetail.setOrderIdFk(orderIdFk); orderDetail.setOrderIdFk(orderIdFk);
orderDetail.setOriginCode(code); orderDetail.setOriginCode(code);
orderDetail.setCode(code); orderDetail.setCode(code);
orderDetail.setRelId(invProductDetailEntity.getRelId()); orderDetail.setRelId(invProductDetailEntity.getRelIdFk());
orderDetail.setNameCode(udi.getUdi()); orderDetail.setNameCode(udi.getUdi());
orderDetail.setBatchNo(udi.getBatchNo()); orderDetail.setBatchNo(udi.getBatchNo());
orderDetail.setProductionDate(udi.getProduceDate()); orderDetail.setProductionDate(udi.getProduceDate());
@ -265,7 +267,7 @@ public class DeviceReceiveOrderDetailServiceImpl implements DeviceReceiveOrderDe
//查询此条码是否在库存中存在 //查询此条码是否在库存中存在
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setCode(code); filterInvProductDetailRequest.setCode(code);
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(filterInvProductDetailRequest); List<InvProductNewVo> invProductDetailEntities = invProductNewDao.filterInvProductDetailList(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) { if (CollUtil.isNotEmpty(invProductDetailEntities)) {
if (invProductDetailEntities.size() > 1) { if (invProductDetailEntities.size() > 1) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "此设备记录存在于多个仓库,请选择此设备当前所处仓库!"); 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.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; 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.InvMAExplanationDao;
import com.glxp.api.dao.dev.InvMAOrderDao; import com.glxp.api.dao.dev.InvMAOrderDao;
import com.glxp.api.dao.dev.InvMAOrderDetailDao; 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.res.dev.InvMAOrderDetailResponse;
import com.glxp.api.service.dev.InvMAOrderDetailService; import com.glxp.api.service.dev.InvMAOrderDetailService;
import com.glxp.api.util.udi.FilterUdiUtils; import com.glxp.api.util.udi.FilterUdiUtils;
import com.glxp.api.vo.basic.InvProductNewVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
@ -41,7 +40,7 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
@Resource @Resource
private InvMAOrderDao invMAOrderDao; private InvMAOrderDao invMAOrderDao;
@Resource @Resource
private InvProductDetailDao invProductDetailDao; private InvProductNewDao invProductNewDao;
@Resource @Resource
private InvProductDao invProductDao; private InvProductDao invProductDao;
@Resource @Resource
@ -94,7 +93,7 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
filterInvProductDetailRequest.setInvSpaceCode(maOrder.getInvSpaceCode()); filterInvProductDetailRequest.setInvSpaceCode(maOrder.getInvSpaceCode());
filterInvProductDetailRequest.setProductionDate(udi.getProduceDate()); filterInvProductDetailRequest.setProductionDate(udi.getProduceDate());
filterInvProductDetailRequest.setExpireDate(udi.getExpireDate()); filterInvProductDetailRequest.setExpireDate(udi.getExpireDate());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(filterInvProductDetailRequest); List<InvProductNewVo> invProductDetailEntities = invProductNewDao.filterInvProductDetailList(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) { if (CollUtil.isNotEmpty(invProductDetailEntities)) {
log.info("库存中存在,添加到库存养护记录详情中"); log.info("库存中存在,添加到库存养护记录详情中");
//设置养护状态为未养护 //设置养护状态为未养护
@ -106,7 +105,7 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
invMAOrderDetailEntity.setProductionDate(udi.getProduceDate()); invMAOrderDetailEntity.setProductionDate(udi.getProduceDate());
invMAOrderDetailEntity.setExpireDate(udi.getExpireDate()); invMAOrderDetailEntity.setExpireDate(udi.getExpireDate());
invMAOrderDetailEntity.setNameCode(udi.getUdi()); invMAOrderDetailEntity.setNameCode(udi.getUdi());
invMAOrderDetailEntity.setRelId(invProductDetailEntities.get(0).getRelId()); invMAOrderDetailEntity.setRelId(invProductDetailEntities.get(0).getRelIdFk());
if (null != invMAExplanationEntity) { if (null != invMAExplanationEntity) {
invMAOrderDetailEntity.setRemark(invMAExplanationEntity.getText()); invMAOrderDetailEntity.setRemark(invMAExplanationEntity.getText());
} }
@ -131,82 +130,83 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
} }
return ResultVOUtils.success(); return ResultVOUtils.success();
} }
//TODO 20241017 根据库存详情批量添加养护详情记录基本上逻辑就是依赖code先注释了
@Override @Override
public BaseResponse batchAddDetail(AddInvMAOrderDetailRequest addMAOrderDetailRequest) { public BaseResponse batchAddDetail(AddInvMAOrderDetailRequest addMAOrderDetailRequest) {
//查询库存养护记录说明 return null;
InvMAExplanationEntity invMAExplanationEntity = invMAExplanationDao.selectByStatus(1); // //查询库存养护记录说明
//遍历库存ID查找库存详情的条码信息生成库存养护记录详情 // InvMAExplanationEntity invMAExplanationEntity = invMAExplanationDao.selectByStatus(1);
addMAOrderDetailRequest.getInvProductIds().forEach(invProductId -> { // //遍历库存ID查找库存详情的条码信息生成库存养护记录详情
//查询库存信息 // addMAOrderDetailRequest.getInvProductIds().forEach(invProductId -> {
InvProductEntity invProductEntity = invProductDao.selectById(invProductId); // //查询库存信息
//查询库存详情码信息 // InvProductEntity invProductEntity = invProductDao.selectById(invProductId);
FilterInvProductDetailRequest detailRequest = new FilterInvProductDetailRequest(); // //查询库存详情码信息
detailRequest.setRelId(String.valueOf(invProductEntity.getRelIdFk())); // FilterInvProductDetailRequest detailRequest = new FilterInvProductDetailRequest();
detailRequest.setBatchNo(invProductEntity.getBatchNo()); // detailRequest.setRelId(String.valueOf(invProductEntity.getRelIdFk()));
detailRequest.setDeptCode(invProductEntity.getDeptCode()); // detailRequest.setBatchNo(invProductEntity.getBatchNo());
detailRequest.setInvCode(invProductEntity.getInvCode()); // detailRequest.setDeptCode(invProductEntity.getDeptCode());
detailRequest.setProductionDate(invProductEntity.getProductionDate()); // detailRequest.setInvCode(invProductEntity.getInvCode());
detailRequest.setExpireDate(invProductEntity.getExpireDate()); // detailRequest.setProductionDate(invProductEntity.getProductionDate());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(detailRequest); // detailRequest.setExpireDate(invProductEntity.getExpireDate());
//提取去重后的码集合 // List<InvProductNewVo> invProductDetailEntities = invProductNewDao.filterInvProductDetailList(detailRequest);
List<String> codeList = invProductDetailEntities.stream().map(InvProductDetailEntity::getCode).distinct().collect(Collectors.toList()); // //提取去重后的码集合
//初始化码数量计算集合数据 // 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)); // 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()); // for (InvProductNewVo invProductDetailEntity : invProductDetailEntities) {
if (StrUtil.isNotBlank(udi.getSerialNo())) { // UdiEntity udi = FilterUdiUtils.getUdi(invProductDetailEntity.getCode());
//有序列号产品,根据产品数量计算即可 // if (StrUtil.isNotBlank(udi.getSerialNo())) {
Integer count = codeMap.get(invProductDetailEntity.getCode()); // //有序列号产品,根据产品数量计算即可
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { // Integer count = codeMap.get(invProductDetailEntity.getCode());
//出库 // if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
count = count - 1; // //出库
} else { // count = count - 1;
//入库 // } else {
count = count + 1; // //入库
} // count = count + 1;
codeMap.put(invProductDetailEntity.getCode(), count); // }
} else { // codeMap.put(invProductDetailEntity.getCode(), count);
//无序列号产品条码,直接查询库存,使用此库存信息计算出养护数量 // } else {
int count = invProductEntity.getInCount() - invProductEntity.getOutCount(); // //无序列号产品条码,直接查询库存,使用此库存信息计算出养护数量
codeMap.put(invProductDetailEntity.getCode(), count); // int count = invProductEntity.getInCount() - invProductEntity.getOutCount();
} // codeMap.put(invProductDetailEntity.getCode(), count);
} // }
// }
//根据库存中的码明细,生成库存养护记录详情 //
for (String code : codeMap.keySet()) { // //根据库存中的码明细,生成库存养护记录详情
if (codeMap.get(code) > 0) { // for (String code : codeMap.keySet()) {
//获取库存详情 // if (codeMap.get(code) > 0) {
InvProductDetailEntity invProductDetailEntity = null; // //获取库存详情
for (InvProductDetailEntity detailEntity : invProductDetailEntities) { // InvProductNewVo invProductDetailEntity = null;
if (detailEntity.getCode().equals(code)) { // for (InvProductNewVo detailEntity : invProductDetailEntities) {
invProductDetailEntity = detailEntity; // if (detailEntity.getCode().equals(code)) {
break; // invProductDetailEntity = detailEntity;
} // break;
} // }
//生成库存养护记录详情 // }
InvMAOrderDetailEntity maOrderDetail = new InvMAOrderDetailEntity(); // //生成库存养护记录详情
maOrderDetail.setOrderIdFk(addMAOrderDetailRequest.getOrderIdFk()); // InvMAOrderDetailEntity maOrderDetail = new InvMAOrderDetailEntity();
maOrderDetail.setCode(invProductDetailEntity.getCode()); // maOrderDetail.setOrderIdFk(addMAOrderDetailRequest.getOrderIdFk());
maOrderDetail.setRelId(invProductDetailEntity.getRelId()); // maOrderDetail.setCode(invProductDetailEntity.getCode());
maOrderDetail.setNameCode(invProductDetailEntity.getNameCode()); // maOrderDetail.setRelId(invProductDetailEntity.getRelId());
maOrderDetail.setProductionDate(invProductDetailEntity.getProduceDate()); // maOrderDetail.setNameCode(invProductDetailEntity.getNameCode());
maOrderDetail.setExpireDate(invProductDetailEntity.getExpireDate()); // maOrderDetail.setProductionDate(invProductDetailEntity.getProduceDate());
maOrderDetail.setBatchNo(invProductDetailEntity.getBatchNo()); // maOrderDetail.setExpireDate(invProductDetailEntity.getExpireDate());
maOrderDetail.setCount(codeMap.get(code)); // maOrderDetail.setBatchNo(invProductDetailEntity.getBatchNo());
maOrderDetail.setMaStatus(0); // maOrderDetail.setCount(codeMap.get(code));
maOrderDetail.setDeviceStatus(1); // maOrderDetail.setMaStatus(0);
maOrderDetail.setCreateTime(new Date()); // maOrderDetail.setDeviceStatus(1);
if (null != invMAExplanationEntity) { // maOrderDetail.setCreateTime(new Date());
maOrderDetail.setRemark(invMAExplanationEntity.getText()); // if (null != invMAExplanationEntity) {
} // maOrderDetail.setRemark(invMAExplanationEntity.getText());
invMAOrderDetailDao.insert(maOrderDetail); // }
} // invMAOrderDetailDao.insert(maOrderDetail);
} // }
}); // }
return ResultVOUtils.success("添加成功"); // });
// return ResultVOUtils.success("添加成功");
} }
@Override @Override

@ -6,6 +6,8 @@ import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.service.basic.*; import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.impl.InvProductService; 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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
@ -61,7 +63,7 @@ public class IoAddInoutService {
@Resource @Resource
UdiRelevanceService udiRelevanceService; UdiRelevanceService udiRelevanceService;
@Resource @Resource
InvProductDetailService invProductDetailService; InvProductServiceNew invProductServiceNew;
@Resource @Resource
BasicCorpService basicCorpService; BasicCorpService basicCorpService;
@Resource @Resource
@ -1066,9 +1068,9 @@ public class IoAddInoutService {
if (checkDiAttribute(bussinessTypeEntity, orderDetailCodeEntity.getBindRlFk(), 1)) { if (checkDiAttribute(bussinessTypeEntity, orderDetailCodeEntity.getBindRlFk(), 1)) {
int count = 0; int count = 0;
if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) { 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) { } 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()) { if (count < orderDetailCodeEntity.getScanCount()) {
return ResultVOUtils.error(500, "提交失败," + orderDetailCodeEntity.getCoName() + "库存数量不足!"); return ResultVOUtils.error(500, "提交失败," + orderDetailCodeEntity.getCoName() + "库存数量不足!");
@ -1129,7 +1131,7 @@ public class IoAddInoutService {
if (exitCount > 0) { if (exitCount > 0) {
lastInBatch = lastList.get(0).getInBatchNo(); lastInBatch = lastList.get(0).getInBatchNo();
} else { } 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) { if (invProductDetailEntity != null) {
lastInBatch = invProductDetailEntity.getInBatchNo(); lastInBatch = invProductDetailEntity.getInBatchNo();
codeTempEntity.setPrice(invProductDetailEntity.getPrice()); codeTempEntity.setPrice(invProductDetailEntity.getPrice());
@ -1138,7 +1140,7 @@ public class IoAddInoutService {
} }
if (lastInBatch == null && exitCount == 0) { 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) { if (inProductDetail != null) {
codeTempEntity.setPrice(inProductDetail.getPrice()); codeTempEntity.setPrice(inProductDetail.getPrice());
codeTempEntity.setInBatchNo(inProductDetail.getInBatchNo()); codeTempEntity.setInBatchNo(inProductDetail.getInBatchNo());
@ -1146,9 +1148,9 @@ public class IoAddInoutService {
} else { } else {
//非首次出库 //非首次出库
//1.获取当前批次已出库数量 //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.获取当前批次入库数量 //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.若数量还有剩,则此次出库为当前批次 //3.若数量还有剩,则此次出库为当前批次
if (inCount >= (outCount + extiReCount + codeTempEntity.getReCount())) { if (inCount >= (outCount + extiReCount + codeTempEntity.getReCount())) {
@ -1161,7 +1163,7 @@ public class IoAddInoutService {
} else { } else {
// 4.若数量不足,则出下一批次 // 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) { if (nextInvProduct != null) {
codeTempEntity.setPrice(nextInvProduct.getPrice()); codeTempEntity.setPrice(nextInvProduct.getPrice());
codeTempEntity.setInBatchNo(nextInvProduct.getInBatchNo()); 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.auth.InvWarehouseService;
import com.glxp.api.service.inv.InvPreProductDetailService; import com.glxp.api.service.inv.InvPreProductDetailService;
import com.glxp.api.service.inv.InvPreinProductDetailService; import com.glxp.api.service.inv.InvPreinProductDetailService;
import com.glxp.api.service.inv.impl.InvProductServiceNew;
import com.glxp.api.util.IntUtil; import com.glxp.api.util.IntUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -28,7 +29,7 @@ public class IoCheckInvService {
@Resource @Resource
InvWarehouseService invWarehouseService; InvWarehouseService invWarehouseService;
@Resource @Resource
InvProductDetailService invProductDetailService; InvProductServiceNew invProductServiceNew;
@Resource @Resource
InvPreinProductDetailService invPreinProductDetailService; InvPreinProductDetailService invPreinProductDetailService;
@Resource @Resource
@ -77,13 +78,13 @@ public class IoCheckInvService {
} }
int count = 0; int count = 0;
if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) { 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) { } 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) { } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) {
//按指定货位出库 //按指定货位出库
if (StrUtil.isEmpty(codeTempEntity.getWarehouseCode())) { 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) { if (CollUtil.isNotEmpty(invProductDetailEntities) && invProductDetailEntities.size() > 1) {
BaseResponse baseResponse = ResultVOUtils.error(511, "存在多个货位,请指定当前货位!"); BaseResponse baseResponse = ResultVOUtils.error(511, "存在多个货位,请指定当前货位!");
baseResponse.setData(invProductDetailEntities); baseResponse.setData(invProductDetailEntities);
@ -95,7 +96,7 @@ public class IoCheckInvService {
return ResultVOUtils.error(500, "添加失败,该产品未上架货位!"); return ResultVOUtils.error(500, "添加失败,该产品未上架货位!");
} }
} else { } 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) { if (count < 0) {

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

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

@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inv.InvProductDao; 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.entity.inv.InvProductEntity;
import com.glxp.api.req.inv.FilterInvProductRequest; import com.glxp.api.req.inv.FilterInvProductRequest;
import com.glxp.api.res.inv.InvProductResponse; import com.glxp.api.res.inv.InvProductResponse;
@ -25,7 +25,7 @@ public class InvProductService extends ServiceImpl<InvProductDao, InvProductEnti
@Resource @Resource
InvProductDao invProductDao; InvProductDao invProductDao;
@Resource @Resource
InvProductDetailDao invProductDetailDao; InvProductNewDao invProductNewDao;
public int insert(InvProductEntity invProductEntity) { public int insert(InvProductEntity invProductEntity) {
@ -109,7 +109,7 @@ public class InvProductService extends ServiceImpl<InvProductDao, InvProductEnti
if (null != filterInvProductRequest.getPage() && null != filterInvProductRequest.getLimit()) { if (null != filterInvProductRequest.getPage() && null != filterInvProductRequest.getLimit()) {
PageHelper.offsetPage((filterInvProductRequest.getPage() - 1) * filterInvProductRequest.getLimit(), 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>
<select id="selectLastInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity"> <select id="selectLastInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select * select *
from inv_prein_product_detail from inv_prein_product_detail
<where> <where>
@ -372,7 +372,7 @@
order by inBatchNo desc order by inBatchNo desc
limit 1; limit 1;
</select> </select>
<select id="selectFirstInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity"> <select id="selectFirstInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select * select *
from inv_prein_product_detail from inv_prein_product_detail
<where> <where>
@ -417,7 +417,7 @@
</select> </select>
<select id="selectNextInBatch" resultType="com.glxp.api.entity.inv.InvProductDetailEntity"> <select id="selectNextInBatch" resultType="com.glxp.api.vo.basic.InvProductNewVo">
select * select *
from inv_prein_product_detail from inv_prein_product_detail
<where> <where>

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

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