|
|
@ -3,11 +3,13 @@ package com.glxp.sale.admin.service.inout.impl;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
|
|
|
import com.glxp.sale.admin.constant.ConstantStatus;
|
|
|
|
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.FilterErpOrderRequest;
|
|
|
|
|
|
|
|
import com.glxp.sale.admin.entity.inout.OrderEntity;
|
|
|
|
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;
|
|
|
@ -17,10 +19,12 @@ 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;
|
|
|
|
import com.glxp.sale.admin.service.inout.CodesService;
|
|
|
|
import com.glxp.sale.admin.service.inout.CodesService;
|
|
|
|
|
|
|
|
import com.glxp.sale.admin.service.inout.OrderService;
|
|
|
|
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.ArrayList;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
@ -41,6 +45,8 @@ public class CodesServiceImpl implements CodesService {
|
|
|
|
private OrderDao orderDao;
|
|
|
|
private OrderDao orderDao;
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private StockOrderDao stockOrderDao;
|
|
|
|
private StockOrderDao stockOrderDao;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private OrderService orderService;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<WarehouseEntity> listWarehouse(WarehouseQueryRequest warehouseQueryRequest) {
|
|
|
|
public List<WarehouseEntity> listWarehouse(WarehouseQueryRequest warehouseQueryRequest) {
|
|
|
@ -158,18 +164,29 @@ public class CodesServiceImpl implements CodesService {
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void replaceCodes(CodesReplaceRequest codesReplaceRequest) {
|
|
|
|
public void replaceCodes(CodesReplaceRequest codesReplaceRequest) {
|
|
|
|
List<WarehouseEntity> codeList = codesDao.findByCode(codesReplaceRequest.getCode());
|
|
|
|
OrderEntity orderEntity = orderDao.selectByBillNo(codesReplaceRequest.getOrderId());
|
|
|
|
|
|
|
|
//查询所有单据
|
|
|
|
//删除码表,添加新的条码,并更新库存
|
|
|
|
List<OrderEntity> orderList = new ArrayList<>();
|
|
|
|
for (WarehouseEntity warehouseEntity : codeList) {
|
|
|
|
orderList.add(orderEntity);
|
|
|
|
|
|
|
|
orderService.getAllOrder(orderEntity, orderList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (OrderEntity order : orderList) {
|
|
|
|
|
|
|
|
//查询条码
|
|
|
|
|
|
|
|
WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest();
|
|
|
|
|
|
|
|
warehouseQueryRequest.setOrderId(order.getId());
|
|
|
|
|
|
|
|
warehouseQueryRequest.setCode(codesReplaceRequest.getCode());
|
|
|
|
|
|
|
|
List<WarehouseEntity> warehouseEntities = codesDao.findByOrderId(warehouseQueryRequest);
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(warehouseEntities)) {
|
|
|
|
|
|
|
|
for (WarehouseEntity warehouseEntity : warehouseEntities) {
|
|
|
|
//删除码详情
|
|
|
|
//删除码详情
|
|
|
|
codesDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), warehouseEntity.getCode());
|
|
|
|
codesDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), warehouseEntity.getCode());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (order.getStatus().equals(ConstantStatus.ORDER_STATUS_PROCESS)) {
|
|
|
|
//查询库存详情
|
|
|
|
//查询库存详情
|
|
|
|
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
|
|
|
|
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
|
|
|
|
filterInvProductDetailRequest.setOriginCode(codesReplaceRequest.getCode());
|
|
|
|
filterInvProductDetailRequest.setOriginCode(codesReplaceRequest.getCode());
|
|
|
|
filterInvProductDetailRequest.setProductIdFk(warehouseEntity.getRelId());
|
|
|
|
filterInvProductDetailRequest.setProductIdFk(warehouseEntity.getRelId());
|
|
|
|
filterInvProductDetailRequest.setOrderIdFk(warehouseEntity.getOrderId());
|
|
|
|
filterInvProductDetailRequest.setOrderIdFk(order.getId());
|
|
|
|
if (StrUtil.isNotBlank(warehouseEntity.getBatchNo())) {
|
|
|
|
if (StrUtil.isNotBlank(warehouseEntity.getBatchNo())) {
|
|
|
|
filterInvProductDetailRequest.setBatchNo(warehouseEntity.getBatchNo());
|
|
|
|
filterInvProductDetailRequest.setBatchNo(warehouseEntity.getBatchNo());
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -205,10 +222,11 @@ public class CodesServiceImpl implements CodesService {
|
|
|
|
//更新库存
|
|
|
|
//更新库存
|
|
|
|
invProductDao.updateInvProduct(invProductEntity);
|
|
|
|
invProductDao.updateInvProduct(invProductEntity);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//删除单据详情
|
|
|
|
//删除单据详情
|
|
|
|
FilterErpOrderRequest deleteOrderDetailParam = new FilterErpOrderRequest();
|
|
|
|
FilterErpOrderRequest deleteOrderDetailParam = new FilterErpOrderRequest();
|
|
|
|
deleteOrderDetailParam.setOrderIdFk(warehouseEntity.getOrderId());
|
|
|
|
deleteOrderDetailParam.setOrderIdFk(order.getId());
|
|
|
|
deleteOrderDetailParam.setGoodsid(warehouseEntity.getRelId());
|
|
|
|
deleteOrderDetailParam.setGoodsid(warehouseEntity.getRelId());
|
|
|
|
deleteOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo());
|
|
|
|
deleteOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo());
|
|
|
|
orderDetailDao.deleteOrder(deleteOrderDetailParam); //删除扫码单据详情
|
|
|
|
orderDetailDao.deleteOrder(deleteOrderDetailParam); //删除扫码单据详情
|
|
|
@ -216,17 +234,19 @@ public class CodesServiceImpl implements CodesService {
|
|
|
|
StockOrderDetailFilterRequest deleteStockOrderDetailParam = new StockOrderDetailFilterRequest();
|
|
|
|
StockOrderDetailFilterRequest deleteStockOrderDetailParam = new StockOrderDetailFilterRequest();
|
|
|
|
deleteStockOrderDetailParam.setProductId(warehouseEntity.getRelId());
|
|
|
|
deleteStockOrderDetailParam.setProductId(warehouseEntity.getRelId());
|
|
|
|
deleteStockOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo());
|
|
|
|
deleteStockOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo());
|
|
|
|
deleteStockOrderDetailParam.setOrderIdFk(warehouseEntity.getOrderId());
|
|
|
|
deleteStockOrderDetailParam.setOrderIdFk(order.getId());
|
|
|
|
stockOrderDetailDao.deleteStockOrderDetail(deleteStockOrderDetailParam); //删除业务单据详情
|
|
|
|
stockOrderDetailDao.deleteStockOrderDetail(deleteStockOrderDetailParam); //删除业务单据详情
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int orderDetailCount = orderDetailDao.countByOrderId(warehouseEntity.getOrderId());
|
|
|
|
int orderDetailCount = orderDetailDao.countByOrderId(order.getId());
|
|
|
|
if (orderDetailCount == 0) {
|
|
|
|
if (orderDetailCount == 0) {
|
|
|
|
//当单据详情数量为0时,删除扫码单据和业务单据
|
|
|
|
//当单据详情数量为0时,删除扫码单据和业务单据
|
|
|
|
orderDao.deleteById(warehouseEntity.getOrderId());
|
|
|
|
orderDao.deleteById(order.getId());
|
|
|
|
stockOrderDao.deleteByOrderIdFk(warehouseEntity.getOrderId());
|
|
|
|
stockOrderDao.deleteByOrderIdFk(order.getId());
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|