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

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

Loading…
Cancel
Save