Browse Source

根据库位获取仓库

master
han\hanst 5 months ago
parent
commit
4f57d0175e
  1. 21
      src/main/java/com/gaotao/modules/inspection/service/impl/QualifiedStorageServiceImpl.java
  2. 20
      src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java

21
src/main/java/com/gaotao/modules/inspection/service/impl/QualifiedStorageServiceImpl.java

@ -13,6 +13,8 @@ import com.gaotao.modules.inspection.entity.InboundConfirmDto;
import com.gaotao.modules.inspection.service.QualifiedStorageService;
import com.gaotao.modules.warehouse.entity.InventoryStock;
import com.gaotao.modules.warehouse.dao.InventoryStockMapper;
import com.gaotao.modules.warehouse.entity.Location;
import com.gaotao.modules.warehouse.service.LocationService;
import com.gaotao.modules.po.entity.PoReceipt;
import com.gaotao.modules.po.entity.PoReceiptDetail;
import com.gaotao.modules.po.service.PoReceiptDetailService;
@ -74,6 +76,9 @@ public class QualifiedStorageServiceImpl implements QualifiedStorageService {
@Autowired
private InventoryStockMapper inventoryStockMapper;
@Autowired
private LocationService locationService;
@Value("${custom.ifs-ifsDBName}")
private String ifsDBName;
@ -369,10 +374,22 @@ public class QualifiedStorageServiceImpl implements QualifiedStorageService {
HandlingUnit firstHu) {
// 直接在此方法中实现库存创建逻辑使用带行锁的库存操作防止并发
String site = transDetail.getSite();
String warehouseId = transHeader.getWarehouseId();
String locationId = transDetail.getLocationId();
// 根据库位获取仓库ID
String warehouseId = null;
Location location = locationService.getByLocationIdAndSite(site, locationId);
if (location != null) {
warehouseId = location.getWarehouseId();
}
// 如果根据库位获取不到仓库则使用transHeader中的仓库ID作为备用
if (StringUtils.isBlank(warehouseId)) {
warehouseId = transHeader.getWarehouseId();
}
String partNo = transDetail.getPartNo();
String batchNo = transDetail.getBatchNo();
String locationId = transDetail.getLocationId();
String wdr = firstHu.getWdr() != null ? firstHu.getWdr() : "*";
BigDecimal transQty = BigDecimal.valueOf(qty);

20
src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java

@ -34,6 +34,8 @@ import com.gaotao.modules.trans.service.TransHeaderService;
import com.gaotao.modules.trans.service.TransNoControlService;
import com.gaotao.modules.warehouse.dao.InventoryStockMapper;
import com.gaotao.modules.warehouse.entity.InventoryStock;
import com.gaotao.modules.warehouse.entity.Location;
import com.gaotao.modules.warehouse.service.LocationService;
import jakarta.transaction.Transactional;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
@ -71,6 +73,8 @@ public class PoServiceImpl extends ServiceImpl<PoMapper, PurchaseOrder> implemen
private AccessSiteMapper accessSiteMapper;
@Autowired
private HandlingUnitIdGeneratorService handlingUnitIdGeneratorService;
@Autowired
private LocationService locationService;
@Value("${custom.ifs-url}")
private String ifsUrl;
@ -321,10 +325,22 @@ public class PoServiceImpl extends ServiceImpl<PoMapper, PurchaseOrder> implemen
private void genInventoryStock(TransDetailDto inData, TransHeader transHeader, PoReceiptDetail receiptDetail) {
// 直接在此方法中实现库存创建逻辑使用带行锁的库存操作防止并发
String site = inData.getSite();
String warehouseId = transHeader.getWarehouseId();
String locationId = inData.getLocationNo();
// 根据库位获取仓库ID
String warehouseId = null;
Location location = locationService.getByLocationIdAndSite(site, locationId);
if (location != null) {
warehouseId = location.getWarehouseId();
}
// 如果根据库位获取不到仓库则使用transHeader中的仓库ID作为备用
if (StringUtils.isBlank(warehouseId)) {
warehouseId = transHeader.getWarehouseId();
}
String partNo = inData.getPartNo();
String batchNo = inData.getBatchNo();
String locationId = inData.getLocationNo();
String wdr = inData.getWdr();
BigDecimal transQty = inData.getTransQty();
String huFlag = inData.getNeedHandlingUnit();

Loading…
Cancel
Save