回退逻辑修改,根据是否一次验收二次验收进行回退

zhairh
anthonyywj2 3 years ago
parent c69486989e
commit 13200bb936

@ -13,6 +13,7 @@ import com.glxp.sale.admin.dao.inventory.InvPreInProductDao;
import com.glxp.sale.admin.dao.inventory.InvPreInProductDetailDao; import com.glxp.sale.admin.dao.inventory.InvPreInProductDetailDao;
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.basic.BussinessTypeEntity;
import com.glxp.sale.admin.entity.inout.OrderEntity; import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.entity.inout.StockOrderEntity; import com.glxp.sale.admin.entity.inout.StockOrderEntity;
import com.glxp.sale.admin.entity.inout.StockOrderPrintEntity; import com.glxp.sale.admin.entity.inout.StockOrderPrintEntity;
@ -22,7 +23,9 @@ import com.glxp.sale.admin.req.inout.StockOrderFilterRequest;
import com.glxp.sale.admin.req.inout.StockOrderQueryRequest; import com.glxp.sale.admin.req.inout.StockOrderQueryRequest;
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.basic.BussinessTypeService;
import com.glxp.sale.admin.service.inout.StockOrderService; import com.glxp.sale.admin.service.inout.StockOrderService;
import com.glxp.sale.admin.util.BusTypeCheckUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -53,6 +56,8 @@ public class StockOrderServiceImpl implements StockOrderService {
private InvPreInProductDao invPreInProductDao; private InvPreInProductDao invPreInProductDao;
@Resource @Resource
private CodesDao codesDao; private CodesDao codesDao;
@Resource
BussinessTypeService bussinessTypeService;
@Override @Override
@ -168,21 +173,32 @@ public class StockOrderServiceImpl implements StockOrderService {
StockOrderEntity stockOrderEntity = stockOrderDao.selectByBillNo(billNo); StockOrderEntity stockOrderEntity = stockOrderDao.selectByBillNo(billNo);
//查询扫码单据 //查询扫码单据
OrderEntity orderEntity = orderDao.selectByBillNo(billNo); OrderEntity orderEntity = orderDao.selectByBillNo(billNo);
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(orderEntity.getAction());
if (stockOrderEntity.getStatus().equals(ConstantStatus.SORDER_CHECKED)) { if (stockOrderEntity.getStatus().equals(ConstantStatus.SORDER_CHECKED)) {
//回退未验收单据 //回退未验收单据
/* /*
1.
2.
*/ */
if (BusTypeCheckUtils.isFirstCheck(bussinessTypeEntity, orderEntity)) {
stockOrderEntity.setOrderIdFk(null); stockOrderEntity.setOrderIdFk(null);
stockOrderEntity.setStatus(ConstantStatus.SORDER_CHECK); stockOrderEntity.setStatus(ConstantStatus.SORDER_CHECK);
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK);
orderEntity.setErpFk("");
//更新单据状态
stockOrderDao.updateById(stockOrderEntity); stockOrderDao.updateById(stockOrderEntity);
orderDao.updateOrder(orderEntity); orderDao.updateOrder(orderEntity);
} else {
orderEntity.setErpFk("");
stockOrderDao.deleteById(stockOrderEntity.getId());
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
orderDao.updateOrder(orderEntity);
}
} else { } else {
//回退已完成单据 //回退已完成单据
@ -250,10 +266,6 @@ public class StockOrderServiceImpl implements StockOrderService {
filterInvProductDetailRequest.setOrderIdFk(orderEntity.getId()); filterInvProductDetailRequest.setOrderIdFk(orderEntity.getId());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest);
// //合并各个产品集合数据
// Map<String, List<InvProductDetailEntity>> invProductDetailMap =
// invProductDetailEntities.stream().collect(Collectors.groupingBy(InvProductDetailEntity::getProductIdFk));
List<InvProductEntity> invProductList = new ArrayList<>(); List<InvProductEntity> invProductList = new ArrayList<>();
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) { for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest(); FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest();
@ -277,8 +289,6 @@ public class StockOrderServiceImpl implements StockOrderService {
} }
//删除库存详情 //删除库存详情
invProductDetailDao.deleteByOrderId(orderEntity.getId()); invProductDetailDao.deleteByOrderId(orderEntity.getId());
//删除码详情
// codesDao.deleteByOrderId(orderEntity.getId());
//更新库存 //更新库存
for (InvProductEntity invProductEntity : invProductList) { for (InvProductEntity invProductEntity : invProductList) {
//查询库存码详情,如果库存码详情为空,则删除此库存 //查询库存码详情,如果库存码详情为空,则删除此库存
@ -297,8 +307,32 @@ public class StockOrderServiceImpl implements StockOrderService {
} }
} }
} }
//修改单据状态到未验收 //开始回退单据
//回退逻辑
//1.需要二次验收,则回退到未验收状态
//2.不需要二次验收:
// 1. 需要一次验收:则回退到等待校验状态
// 2. 不需要一次验收:则回退到新增扫码单据状态
if (BusTypeCheckUtils.isSecondCheck(bussinessTypeEntity, orderEntity)) {
stockOrderEntity.setStatus(ConstantStatus.SORDER_CHECKED); stockOrderEntity.setStatus(ConstantStatus.SORDER_CHECKED);
} else {
if (BusTypeCheckUtils.isFirstCheck(bussinessTypeEntity, orderEntity)) {
stockOrderEntity.setOrderIdFk(null);
stockOrderEntity.setStatus(ConstantStatus.SORDER_CHECK);
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK);
orderEntity.setErpFk("");
stockOrderDao.updateById(stockOrderEntity);
orderDao.updateOrder(orderEntity);
} else {
orderEntity.setErpFk("");
stockOrderDao.deleteById(stockOrderEntity.getId());
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
orderDao.updateOrder(orderEntity);
}
}
} }
//更新业务单据数据 //更新业务单据数据

@ -0,0 +1,102 @@
package com.glxp.sale.admin.util;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
import com.glxp.sale.admin.entity.inout.OrderEntity;
public class BusTypeCheckUtils {
public static boolean isFirstCheck(BussinessTypeEntity bussinessTypeEntity, OrderEntity orderEntity) {
if (bussinessTypeEntity.isCheckEnable()) {
if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDIMS) {
if (bussinessTypeEntity.isCheckUdims()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_WEBNEW) {
if (bussinessTypeEntity.isCheckWebNew()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAED) {
if (bussinessTypeEntity.isCheckPdaEd()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAUN) {
if (bussinessTypeEntity.isCheckPdaUn()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PC) {
if (bussinessTypeEntity.isCheckPc()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_CHANGE) {
if (bussinessTypeEntity.isCheckChange()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PEACE_CHANGE) {
if (bussinessTypeEntity.isCheckBalacne()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDIWMS) {
if (bussinessTypeEntity.isCheckUdiwms()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_COPY) {
if (bussinessTypeEntity.isCheckCopy()) {
return true;
}
}
}
return false;
}
public static boolean isSecondCheck(BussinessTypeEntity bussinessTypeEntity, OrderEntity orderEntity) {
if (bussinessTypeEntity.isSecCheckEnable()) {
if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDIMS) {
if (bussinessTypeEntity.isSecCheckUdims()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_WEBNEW) {
if (bussinessTypeEntity.isSecCheckWebNew()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAED) {
if (bussinessTypeEntity.isSecCheckPdaEd()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAUN) {
if (bussinessTypeEntity.isSecCheckPdaUn()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PC) {
if (bussinessTypeEntity.isSecCheckPc()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_CHANGE) {
if (bussinessTypeEntity.isSecCheckChange()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PEACE_CHANGE) {
if (bussinessTypeEntity.isSecCheckBalacne()) {
return true;
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_COPY) {
if (bussinessTypeEntity.isSecCheckCopy()) {
return true;
}
}
}
return false;
}
}

@ -1,4 +1,4 @@
spring.profiles.active=dev spring.profiles.active=test1
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

Loading…
Cancel
Save