|
|
|
|
@ -9,10 +9,12 @@ import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInPageRe
|
|
|
|
|
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInSaveReqVO;
|
|
|
|
|
import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO;
|
|
|
|
|
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO;
|
|
|
|
|
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockDO;
|
|
|
|
|
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO;
|
|
|
|
|
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInItemDO;
|
|
|
|
|
import cn.iocoder.yudao.module.erp.dal.mysql.stock.ErpStockInItemMapper;
|
|
|
|
|
import cn.iocoder.yudao.module.erp.dal.mysql.stock.ErpStockInMapper;
|
|
|
|
|
import cn.iocoder.yudao.module.erp.dal.mysql.stock.ErpStockMapper;
|
|
|
|
|
import cn.iocoder.yudao.module.erp.dal.redis.no.ErpNoRedisDAO;
|
|
|
|
|
import cn.iocoder.yudao.module.erp.enums.ErpAuditStatus;
|
|
|
|
|
import cn.iocoder.yudao.module.erp.enums.stock.ErpStockRecordBizTypeEnum;
|
|
|
|
|
@ -47,6 +49,9 @@ public class ErpStockInServiceImpl implements ErpStockInService {
|
|
|
|
|
@Resource
|
|
|
|
|
private ErpStockInItemMapper stockInItemMapper;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private ErpStockMapper erpStockMapper;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private ErpNoRedisDAO noRedisDAO;
|
|
|
|
|
|
|
|
|
|
@ -61,6 +66,8 @@ public class ErpStockInServiceImpl implements ErpStockInService {
|
|
|
|
|
@Resource
|
|
|
|
|
private ErpStockRecordService stockRecordService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public Long createStockIn(ErpStockInSaveReqVO createReqVO) {
|
|
|
|
|
@ -115,7 +122,7 @@ public class ErpStockInServiceImpl implements ErpStockInService {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void updateStockInStatus(Long id, Integer status) {
|
|
|
|
|
public void updateStockInStatus(Long id, Integer status,Integer bizType) {
|
|
|
|
|
boolean approve = ErpAuditStatus.APPROVE.getStatus().equals(status);
|
|
|
|
|
// 1.1 校验存在
|
|
|
|
|
ErpStockInDO stockIn = validateStockInExists(id);
|
|
|
|
|
@ -133,22 +140,33 @@ public class ErpStockInServiceImpl implements ErpStockInService {
|
|
|
|
|
|
|
|
|
|
// 3. 变更库存
|
|
|
|
|
List<ErpStockInItemDO> stockInItems = stockInItemMapper.selectListByInId(id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Integer bizType = approve ? ErpStockRecordBizTypeEnum.OTHER_IN.getType()
|
|
|
|
|
// : ErpStockRecordBizTypeEnum.OTHER_IN_CANCEL.getType();
|
|
|
|
|
// stockInItems.forEach(stockInItem -> {
|
|
|
|
|
// BigDecimal count = approve ? stockInItem.getCount() : stockInItem.getCount().negate();
|
|
|
|
|
// if (Objects.equals(stockIn.getInType(), "模具入库")) {
|
|
|
|
|
// MoldDO moldDO = moldService.getMold(stockInItem.getProductId());
|
|
|
|
|
// stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO(
|
|
|
|
|
// stockInItem.getProductId(),moldDO.getBrandId(), stockInItem.getWarehouseId(), count,
|
|
|
|
|
// bizType, stockInItem.getInId(), stockInItem.getId(), stockIn.getNo(), stockIn.getInTime()));
|
|
|
|
|
// } else {
|
|
|
|
|
// ErpProductDO productDO = productService.getProduct(stockInItem.getProductId());
|
|
|
|
|
// stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO(
|
|
|
|
|
// stockInItem.getProductId(),productDO.getCategoryId(), stockInItem.getWarehouseId(), count,
|
|
|
|
|
// bizType, stockInItem.getInId(), stockInItem.getId(), stockIn.getNo(), stockIn.getInTime()));
|
|
|
|
|
// }
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
stockInItems.forEach(stockInItem -> {
|
|
|
|
|
BigDecimal count = approve ? stockInItem.getCount() : stockInItem.getCount().negate();
|
|
|
|
|
if (Objects.equals(stockIn.getInType(), "模具入库")) {
|
|
|
|
|
MoldDO moldDO = moldService.getMold(stockInItem.getProductId());
|
|
|
|
|
stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO(
|
|
|
|
|
stockInItem.getProductId(),moldDO.getBrandId(), stockInItem.getWarehouseId(), count,
|
|
|
|
|
ErpStockRecordBizTypeEnum.OTHER_IN.getType(), stockInItem.getInId(), stockInItem.getId(), stockIn.getNo(), stockIn.getInTime()));
|
|
|
|
|
} else {
|
|
|
|
|
ErpProductDO productDO = productService.getProduct(stockInItem.getProductId());
|
|
|
|
|
stockRecordService.createStockRecord(new ErpStockRecordCreateReqBO(
|
|
|
|
|
stockInItem.getProductId(),productDO.getCategoryId(), stockInItem.getWarehouseId(), count,
|
|
|
|
|
ErpStockRecordBizTypeEnum.getTypeByName(stockIn.getInType(),status), stockInItem.getInId(), stockInItem.getId(), stockIn.getNo(), stockIn.getInTime()));
|
|
|
|
|
|
|
|
|
|
//更新库存
|
|
|
|
|
// erpStockMapper.updateStockCount(productDO.getId(), stockInItem.getWarehouseId(), BigDecimal.ONE);
|
|
|
|
|
//
|
|
|
|
|
// ErpStockDO stock = erpStockMapper.selectByProductIdAndWarehouseId(productDO.getId(), stockInItem.getWarehouseId());
|
|
|
|
|
// stock.setCount(stock.getCount() + 1);
|
|
|
|
|
// erpStockMapper.updateById(stock);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 更改状态
|
|
|
|
|
if (Objects.equals(stockIn.getInType(), "模具入库")) {
|
|
|
|
|
|