refactor(wms): 物料调拨库存修改优化

dev
wanghao 1 week ago
parent a17d8778cb
commit 9e7cc70ce5

@ -56,12 +56,14 @@ public class WmsMaterialTransferRecord extends TenantEntity {
*
*/
private Long transferInStoreId;
/**
* ID
*/
private Long transferBillsId;
/**
* id
*/
private Long inventoryDetailsId;
/**
* 0 1
*/
@ -72,7 +74,6 @@ public class WmsMaterialTransferRecord extends TenantEntity {
*/
@TableField(exist = false)
private String productCode;
/**
*
*/
@ -81,9 +82,10 @@ public class WmsMaterialTransferRecord extends TenantEntity {
@TableField(exist = false)
private String externalBrand;
@TableField(exist = false)
/**
*
*/
private String productSpe;
private Long transferBillsId;
@TableField(exist = false)
private Double unitPrice;
@TableField(exist = false)
private Long projectId;
}

@ -234,7 +234,7 @@ public class WmsInventoryDetailsServiceImpl implements IWmsInventoryDetailsServi
public WmsInventoryDetails queryInventory(WmsInventoryDetailsBo bo) {
MPJLambdaWrapper<WmsInventoryDetails> lqw = JoinWrappers.lambda(WmsInventoryDetails.class)
.selectAll(WmsInventoryDetails.class)
.eq(WmsInventoryDetails::getDelFlag, "0")
// .eq(WmsInventoryDetails::getDelFlag, "0")
.eq(StringUtils.isNotBlank(bo.getLocationCode()), WmsInventoryDetails::getLocationCode, bo.getLocationCode())
.eq(bo.getWarehouseId() != null, WmsInventoryDetails::getWarehouseId, bo.getWarehouseId())
.eq(bo.getMaterielId() != null, WmsInventoryDetails::getMaterielId, bo.getMaterielId())

@ -103,6 +103,7 @@ public class WmsMaterialTransferBillsServiceImpl implements IWmsMaterialTransfer
if (flag) {
Long transferBillsId = add.getTransferBillsId();
bo.setTransferBillsId(transferBillsId);
//插入子表
wmsMaterialTransferRecordService.insertByBo(transferBillsId,bo.getList());

@ -9,12 +9,11 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.wms.domain.WmsBaseProduct;
import org.dromara.wms.domain.WmsInventoryDetails;
import org.dromara.wms.domain.WmsMaterialTransferRecord;
import org.dromara.wms.domain.bo.WmsMaterialTransferRecordBo;
import org.dromara.wms.domain.vo.WmsMaterialTransferRecordVo;
import org.dromara.wms.mapper.WmsInventoryDetailsMapper;
import org.dromara.wms.mapper.WmsMaterialTransferRecordMapper;
import org.dromara.wms.service.IWmsInventoryDetailsService;
import org.dromara.wms.service.IWmsMaterialTransferRecordService;
import org.springframework.stereotype.Service;
@ -34,7 +33,8 @@ public class WmsMaterialTransferRecordServiceImpl implements IWmsMaterialTransfe
private final WmsMaterialTransferRecordMapper baseMapper;
private final WmsInventoryDetailsMapper wmsInventoryDetailsMapper;
// private final WmsInventoryDetailsMapper wmsInventoryDetailsMapper;
private final IWmsInventoryDetailsService wmsInventoryDetailsService;
/**
*
@ -98,13 +98,28 @@ public class WmsMaterialTransferRecordServiceImpl implements IWmsMaterialTransfe
*/
@Override
public Boolean insertByBo(Long transferBillsId, List<WmsMaterialTransferRecord> bo) {
baseMapper.insert(bo);
// 修改库存
bo.forEach(record -> {
record.setTransferBillsId(transferBillsId);// 调拨单ID
Long inventoryDetailsId = record.getInventoryDetailsId(); // 库存ID
Long inventoryId = record.getInventoryDetailsId(); // 库存ID
Double transferQty = record.getTransferQty(); // 调拨数量
// 库存验证
wmsInventoryDetailsService.outStoreLossInventoryAmount(
inventoryId,
transferQty,
record.getTransferOutStoreId(),
record.getBatchNumber(),
record.getMaterielId(), "6");
wmsInventoryDetailsService.inStoreAddInventoryAmount(
record.getTransferInStoreId(),
record.getProjectId(),
record.getBatchNumber(),
record.getMaterielId(),
record.getUnitPrice(),
record.getUnitName(),
transferQty, "7");
/* // 库存验证
WmsInventoryDetails inventoryDetails = wmsInventoryDetailsMapper.selectById(inventoryDetailsId);
double lossQty = inventoryDetails.getInventoryAmount() - transferQty;
if (lossQty < 0) {
@ -117,7 +132,9 @@ public class WmsMaterialTransferRecordServiceImpl implements IWmsMaterialTransfe
if (lossQty == 0) {
outDetails.setDelFlag("1");
}
wmsInventoryDetailsMapper.updateById(outDetails);
// wmsInventoryDetailsMapper.updateById(outDetails);
// 入库库存增加
WmsInventoryDetails inDetails = new WmsInventoryDetails();
inDetails.setInventoryAmount(transferQty);// 入库数量
@ -125,11 +142,11 @@ public class WmsMaterialTransferRecordServiceImpl implements IWmsMaterialTransfe
inDetails.setMaterielId(inventoryDetails.getMaterielId());
inDetails.setUnitPrice(inventoryDetails.getUnitPrice());
inDetails.setBatchNumber(record.getBatchNumber());
inDetails.setUnitName(record.getUnitName());
inDetails.setUnitName(record.getUnitName());*/
// inDetails
wmsInventoryDetailsMapper.insert(inDetails);
// wmsInventoryDetailsMapper.insert(inDetails);
});
baseMapper.insert(bo);
return true;
}

@ -35,7 +35,6 @@ public class WmsSampleLedgerServiceImpl implements IWmsSampleLedgerService {
private final WmsSampleLedgerMapper baseMapper;
private final IWmsInventoryDetailsService inventoryDetailsService;
private final WmsInventoryLedgerMapper wmsInventoryLedgerMapper;
/**
*
@ -104,24 +103,10 @@ public class WmsSampleLedgerServiceImpl implements IWmsSampleLedgerService {
*/
@Override
public Boolean insertByBo(List<WmsSampleLedger> bo) {
List<WmsInventoryLedger> wmsInventoryLedgers = new ArrayList<>(bo.size());
bo.forEach(item -> {
Long inventoryId = item.getInventoryDetailsId();
Double lentQty = item.getLentQty();
Double inventoryAmount = inventoryDetailsService.workUpdateInventory(inventoryId, lentQty);
//库存变动
WmsInventoryLedger wmsInventoryLedger = new WmsInventoryLedger();
wmsInventoryLedger.setWarehouseId(item.getWarehouseId());
wmsInventoryLedger.setBatchNumber(item.getBatchNumber());
wmsInventoryLedger.setMaterielId(item.getMaterielId());
wmsInventoryLedger.setChangeType("4");//变动类型
wmsInventoryLedger.setLedgerState("0");
wmsInventoryLedger.setChangeAmount(lentQty);
wmsInventoryLedger.setInventoryAmount(inventoryAmount);
wmsInventoryLedgers.add(wmsInventoryLedger);
inventoryDetailsService.outStoreLossInventoryAmount(item.getInventoryDetailsId(),
item.getLentQty(),item.getWarehouseId(),item.getBatchNumber(),item.getMaterielId(),"4");
});
wmsInventoryLedgerMapper.insert(wmsInventoryLedgers);
baseMapper.insert(bo);
return true;
}

Loading…
Cancel
Save