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

dev
wanghao 1 week ago
parent a17d8778cb
commit 9e7cc70ce5

@ -56,12 +56,14 @@ public class WmsMaterialTransferRecord extends TenantEntity {
* *
*/ */
private Long transferInStoreId; private Long transferInStoreId;
/**
* ID
*/
private Long transferBillsId;
/** /**
* id * id
*/ */
private Long inventoryDetailsId; private Long inventoryDetailsId;
/** /**
* 0 1 * 0 1
*/ */
@ -72,7 +74,6 @@ public class WmsMaterialTransferRecord extends TenantEntity {
*/ */
@TableField(exist = false) @TableField(exist = false)
private String productCode; private String productCode;
/** /**
* *
*/ */
@ -81,9 +82,10 @@ public class WmsMaterialTransferRecord extends TenantEntity {
@TableField(exist = false) @TableField(exist = false)
private String externalBrand; private String externalBrand;
@TableField(exist = false) @TableField(exist = false)
/**
*
*/
private String productSpe; 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) { public WmsInventoryDetails queryInventory(WmsInventoryDetailsBo bo) {
MPJLambdaWrapper<WmsInventoryDetails> lqw = JoinWrappers.lambda(WmsInventoryDetails.class) MPJLambdaWrapper<WmsInventoryDetails> lqw = JoinWrappers.lambda(WmsInventoryDetails.class)
.selectAll(WmsInventoryDetails.class) .selectAll(WmsInventoryDetails.class)
.eq(WmsInventoryDetails::getDelFlag, "0") // .eq(WmsInventoryDetails::getDelFlag, "0")
.eq(StringUtils.isNotBlank(bo.getLocationCode()), WmsInventoryDetails::getLocationCode, bo.getLocationCode()) .eq(StringUtils.isNotBlank(bo.getLocationCode()), WmsInventoryDetails::getLocationCode, bo.getLocationCode())
.eq(bo.getWarehouseId() != null, WmsInventoryDetails::getWarehouseId, bo.getWarehouseId()) .eq(bo.getWarehouseId() != null, WmsInventoryDetails::getWarehouseId, bo.getWarehouseId())
.eq(bo.getMaterielId() != null, WmsInventoryDetails::getMaterielId, bo.getMaterielId()) .eq(bo.getMaterielId() != null, WmsInventoryDetails::getMaterielId, bo.getMaterielId())

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

@ -35,7 +35,6 @@ public class WmsSampleLedgerServiceImpl implements IWmsSampleLedgerService {
private final WmsSampleLedgerMapper baseMapper; private final WmsSampleLedgerMapper baseMapper;
private final IWmsInventoryDetailsService inventoryDetailsService; private final IWmsInventoryDetailsService inventoryDetailsService;
private final WmsInventoryLedgerMapper wmsInventoryLedgerMapper;
/** /**
* *
@ -104,24 +103,10 @@ public class WmsSampleLedgerServiceImpl implements IWmsSampleLedgerService {
*/ */
@Override @Override
public Boolean insertByBo(List<WmsSampleLedger> bo) { public Boolean insertByBo(List<WmsSampleLedger> bo) {
List<WmsInventoryLedger> wmsInventoryLedgers = new ArrayList<>(bo.size());
bo.forEach(item -> { bo.forEach(item -> {
Long inventoryId = item.getInventoryDetailsId(); inventoryDetailsService.outStoreLossInventoryAmount(item.getInventoryDetailsId(),
Double lentQty = item.getLentQty(); item.getLentQty(),item.getWarehouseId(),item.getBatchNumber(),item.getMaterielId(),"4");
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);
}); });
wmsInventoryLedgerMapper.insert(wmsInventoryLedgers);
baseMapper.insert(bo); baseMapper.insert(bo);
return true; return true;
} }

Loading…
Cancel
Save