|
|
@ -1,14 +1,18 @@
|
|
|
|
package com.glxp.sale.admin.service.inout.impl;
|
|
|
|
package com.glxp.sale.admin.service.inout.impl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
import com.glxp.sale.admin.constant.ConstantType;
|
|
|
|
import com.glxp.sale.admin.constant.ConstantType;
|
|
|
|
import com.glxp.sale.admin.dao.inout.*;
|
|
|
|
import com.glxp.sale.admin.dao.inout.*;
|
|
|
|
import com.glxp.sale.admin.dao.inventory.InvProductDao;
|
|
|
|
import com.glxp.sale.admin.dao.inventory.InvProductDao;
|
|
|
|
import com.glxp.sale.admin.dao.inventory.InvProductDetailDao;
|
|
|
|
import com.glxp.sale.admin.dao.inventory.InvProductDetailDao;
|
|
|
|
|
|
|
|
import com.glxp.sale.admin.entity.inout.FilterErpOrderRequest;
|
|
|
|
import com.glxp.sale.admin.entity.inout.WarehouseEntity;
|
|
|
|
import com.glxp.sale.admin.entity.inout.WarehouseEntity;
|
|
|
|
import com.glxp.sale.admin.entity.inventory.InvProductDetailEntity;
|
|
|
|
import com.glxp.sale.admin.entity.inventory.InvProductDetailEntity;
|
|
|
|
import com.glxp.sale.admin.entity.inventory.InvProductEntity;
|
|
|
|
import com.glxp.sale.admin.entity.inventory.InvProductEntity;
|
|
|
|
import com.glxp.sale.admin.req.inout.CodesReplaceRequest;
|
|
|
|
import com.glxp.sale.admin.req.inout.CodesReplaceRequest;
|
|
|
|
|
|
|
|
import com.glxp.sale.admin.req.inout.StockOrderDetailFilterRequest;
|
|
|
|
import com.glxp.sale.admin.req.inout.WarehouseQueryRequest;
|
|
|
|
import com.glxp.sale.admin.req.inout.WarehouseQueryRequest;
|
|
|
|
import com.glxp.sale.admin.req.inventory.FilterInvProductDetailRequest;
|
|
|
|
import com.glxp.sale.admin.req.inventory.FilterInvProductDetailRequest;
|
|
|
|
import com.glxp.sale.admin.req.inventory.FilterInvProductRequest;
|
|
|
|
import com.glxp.sale.admin.req.inventory.FilterInvProductRequest;
|
|
|
@ -158,42 +162,62 @@ public class CodesServiceImpl implements CodesService {
|
|
|
|
|
|
|
|
|
|
|
|
//删除码表,添加新的条码,并更新库存
|
|
|
|
//删除码表,添加新的条码,并更新库存
|
|
|
|
for (WarehouseEntity warehouseEntity : codeList) {
|
|
|
|
for (WarehouseEntity warehouseEntity : codeList) {
|
|
|
|
//构造新的码
|
|
|
|
|
|
|
|
WarehouseEntity codeEntity = new WarehouseEntity();
|
|
|
|
|
|
|
|
//删除码详情
|
|
|
|
//删除码详情
|
|
|
|
codesDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), warehouseEntity.getCode());
|
|
|
|
codesDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), warehouseEntity.getCode());
|
|
|
|
|
|
|
|
|
|
|
|
//查询库存详情
|
|
|
|
//查询库存详情
|
|
|
|
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
|
|
|
|
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
|
|
|
|
filterInvProductDetailRequest.setOriginCode(codesReplaceRequest.getCode());
|
|
|
|
filterInvProductDetailRequest.setOriginCode(codesReplaceRequest.getCode());
|
|
|
|
filterInvProductDetailRequest.setOrderIdFk(codeEntity.getOrderId());
|
|
|
|
filterInvProductDetailRequest.setProductIdFk(warehouseEntity.getRelId());
|
|
|
|
|
|
|
|
filterInvProductDetailRequest.setOrderIdFk(warehouseEntity.getOrderId());
|
|
|
|
|
|
|
|
if (StrUtil.isNotBlank(warehouseEntity.getBatchNo())) {
|
|
|
|
|
|
|
|
filterInvProductDetailRequest.setBatchNo(warehouseEntity.getBatchNo());
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
filterInvProductDetailRequest.setBatchNo("empty");
|
|
|
|
|
|
|
|
}
|
|
|
|
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest);
|
|
|
|
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest);
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
|
|
|
|
InvProductDetailEntity invProductDetailEntity = invProductDetailEntities.get(0); //库存
|
|
|
|
//库存详情不为空,单据已验收,更新库存
|
|
|
|
|
|
|
|
InvProductDetailEntity invProductDetailEntity = invProductDetailEntities.get(0); //库存
|
|
|
|
//删除库存详情
|
|
|
|
|
|
|
|
invProductDetailDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), codesReplaceRequest.getCode());
|
|
|
|
//删除库存详情
|
|
|
|
//查询原库存详情和新的库存详情
|
|
|
|
invProductDetailDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), codesReplaceRequest.getCode());
|
|
|
|
FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest();
|
|
|
|
//查询原库存详情和新的库存详情
|
|
|
|
filterInvProductRequest.setRelIdFk(invProductDetailEntity.getProductIdFk());
|
|
|
|
FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest();
|
|
|
|
InvProductEntity invProductEntity = invProductDao.filterInvProduct(filterInvProductRequest).get(0);
|
|
|
|
filterInvProductRequest.setRelIdFk(invProductDetailEntity.getProductIdFk());
|
|
|
|
|
|
|
|
if (StrUtil.isBlank(invProductDetailEntity.getBatchNo())) {
|
|
|
|
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
|
|
|
|
filterInvProductRequest.setBatchNo("empty");
|
|
|
|
//出库
|
|
|
|
} else {
|
|
|
|
int count = invProductEntity.getOutCount() + invProductDetailEntity.getCount();
|
|
|
|
filterInvProductRequest.setBatchNo(invProductDetailEntity.getBatchNo());
|
|
|
|
invProductEntity.setOutCount(count);
|
|
|
|
}
|
|
|
|
} else if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) {
|
|
|
|
InvProductEntity invProductEntity = invProductDao.filterInvProduct(filterInvProductRequest).get(0);
|
|
|
|
//入库
|
|
|
|
|
|
|
|
int count = invProductEntity.getInCount() - invProductDetailEntity.getCount();
|
|
|
|
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
|
|
|
|
invProductEntity.setInCount(count);
|
|
|
|
//出库
|
|
|
|
|
|
|
|
int count = invProductEntity.getOutCount() + invProductDetailEntity.getCount();
|
|
|
|
|
|
|
|
invProductEntity.setOutCount(count);
|
|
|
|
|
|
|
|
} else if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) {
|
|
|
|
|
|
|
|
//入库
|
|
|
|
|
|
|
|
int count = invProductEntity.getInCount() - invProductDetailEntity.getCount();
|
|
|
|
|
|
|
|
invProductEntity.setInCount(count);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//更新库存
|
|
|
|
|
|
|
|
invProductDao.updateInvProduct(invProductEntity);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//更新库存
|
|
|
|
|
|
|
|
invProductDao.updateInvProduct(invProductEntity);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//删除单据详情
|
|
|
|
//删除单据详情
|
|
|
|
orderDetailDao.deleteByOrderIdAndNameCode(warehouseEntity.getOrderId(), codesReplaceRequest.getUdiEntity().getNameCode());
|
|
|
|
FilterErpOrderRequest deleteOrderDetailParam = new FilterErpOrderRequest();
|
|
|
|
stockOrderDetailDao.deleteByOrderIdAndProductId(warehouseEntity.getOrderId(), warehouseEntity.getRelId());
|
|
|
|
deleteOrderDetailParam.setOrderIdFk(warehouseEntity.getOrderId());
|
|
|
|
|
|
|
|
deleteOrderDetailParam.setGoodsid(warehouseEntity.getRelId());
|
|
|
|
|
|
|
|
deleteOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo());
|
|
|
|
|
|
|
|
orderDetailDao.deleteOrder(deleteOrderDetailParam); //删除扫码单据详情
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StockOrderDetailFilterRequest deleteStockOrderDetailParam = new StockOrderDetailFilterRequest();
|
|
|
|
|
|
|
|
deleteStockOrderDetailParam.setProductId(warehouseEntity.getRelId());
|
|
|
|
|
|
|
|
deleteStockOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo());
|
|
|
|
|
|
|
|
deleteStockOrderDetailParam.setOrderIdFk(warehouseEntity.getOrderId());
|
|
|
|
|
|
|
|
stockOrderDetailDao.deleteStockOrderDetail(deleteStockOrderDetailParam); //删除业务单据详情
|
|
|
|
|
|
|
|
|
|
|
|
int orderDetailCount = orderDetailDao.countByOrderId(warehouseEntity.getOrderId());
|
|
|
|
int orderDetailCount = orderDetailDao.countByOrderId(warehouseEntity.getOrderId());
|
|
|
|
if (orderDetailCount == 0) {
|
|
|
|
if (orderDetailCount == 0) {
|
|
|
|