|
|
|
@ -158,7 +158,7 @@ public class ErpStockServiceImpl implements ErpStockService {
|
|
|
|
stock.setAreaName(areaName);
|
|
|
|
stock.setAreaName(areaName);
|
|
|
|
stockMapper.updateById(new ErpStockDO().setId(stock.getId()).setAreaName(areaName));
|
|
|
|
stockMapper.updateById(new ErpStockDO().setId(stock.getId()).setAreaName(areaName));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (product != null && isStockSnapshotMissing(stock)) {
|
|
|
|
if (product != null && isStockSnapshotMissing(stock, product, defaultPackagingScheme)) {
|
|
|
|
fillStockSnapshot(stock, product, defaultPackagingScheme);
|
|
|
|
fillStockSnapshot(stock, product, defaultPackagingScheme);
|
|
|
|
stockMapper.updateById(buildStockSnapshotUpdate(stock));
|
|
|
|
stockMapper.updateById(buildStockSnapshotUpdate(stock));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -299,7 +299,7 @@ public class ErpStockServiceImpl implements ErpStockService {
|
|
|
|
String unitName = resolveStockUnitName(stockList, productMap);
|
|
|
|
String unitName = resolveStockUnitName(stockList, productMap);
|
|
|
|
card.setSkuCount(countDistinctProduct(stockList));
|
|
|
|
card.setSkuCount(countDistinctProduct(stockList));
|
|
|
|
card.setTotalCount(totalCount);
|
|
|
|
card.setTotalCount(totalCount);
|
|
|
|
card.setUnitName(unitName);
|
|
|
|
card.setUnitName(nullToEmpty(unitName));
|
|
|
|
card.setStockDisplay(formatNumber(totalCount) + nullToEmpty(unitName));
|
|
|
|
card.setStockDisplay(formatNumber(totalCount) + nullToEmpty(unitName));
|
|
|
|
card.setPackagingStocks(buildStockPackagingStocks(stockList, productMap));
|
|
|
|
card.setPackagingStocks(buildStockPackagingStocks(stockList, productMap));
|
|
|
|
card.setTodayFinishedInDisplay(formatNumber(BigDecimal.ZERO) + nullToEmpty(unitName));
|
|
|
|
card.setTodayFinishedInDisplay(formatNumber(BigDecimal.ZERO) + nullToEmpty(unitName));
|
|
|
|
@ -313,7 +313,7 @@ public class ErpStockServiceImpl implements ErpStockService {
|
|
|
|
String unitName = resolveInItemUnitName(itemList, productMap);
|
|
|
|
String unitName = resolveInItemUnitName(itemList, productMap);
|
|
|
|
card.setSkuCount(itemList.stream().map(ErpStockInItemDO::getProductId).distinct().count());
|
|
|
|
card.setSkuCount(itemList.stream().map(ErpStockInItemDO::getProductId).distinct().count());
|
|
|
|
card.setTotalCount(totalCount);
|
|
|
|
card.setTotalCount(totalCount);
|
|
|
|
card.setUnitName(unitName);
|
|
|
|
card.setUnitName(nullToEmpty(unitName));
|
|
|
|
card.setStockDisplay(formatNumber(totalCount) + nullToEmpty(unitName));
|
|
|
|
card.setStockDisplay(formatNumber(totalCount) + nullToEmpty(unitName));
|
|
|
|
card.setPackagingStocks(buildInItemPackagingStocks(itemList, productMap));
|
|
|
|
card.setPackagingStocks(buildInItemPackagingStocks(itemList, productMap));
|
|
|
|
return card;
|
|
|
|
return card;
|
|
|
|
@ -326,14 +326,14 @@ public class ErpStockServiceImpl implements ErpStockService {
|
|
|
|
String unitName = resolveOutItemUnitName(itemList, productMap);
|
|
|
|
String unitName = resolveOutItemUnitName(itemList, productMap);
|
|
|
|
card.setSkuCount(itemList.stream().map(ErpStockOutItemDO::getProductId).distinct().count());
|
|
|
|
card.setSkuCount(itemList.stream().map(ErpStockOutItemDO::getProductId).distinct().count());
|
|
|
|
card.setTotalCount(totalCount);
|
|
|
|
card.setTotalCount(totalCount);
|
|
|
|
card.setUnitName(unitName);
|
|
|
|
card.setUnitName(nullToEmpty(unitName));
|
|
|
|
card.setStockDisplay(formatNumber(totalCount) + nullToEmpty(unitName));
|
|
|
|
card.setStockDisplay(formatNumber(totalCount) + nullToEmpty(unitName));
|
|
|
|
card.setPackagingStocks(buildOutItemPackagingStocks(itemList, productMap));
|
|
|
|
card.setPackagingStocks(buildOutItemPackagingStocks(itemList, productMap));
|
|
|
|
return card;
|
|
|
|
return card;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private String buildUnitKey(Long unitId, String unitName) {
|
|
|
|
private String buildUnitKey(Long unitId, String unitName) {
|
|
|
|
return String.valueOf(unitId) + "_" + String.valueOf(unitName);
|
|
|
|
return String.valueOf(unitId != null ? unitId : "") + "_" + nullToEmpty(unitName);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private ErpStockStatisticsRespVO.UnitGroupedStockCard buildInItemUnitGroupedStockCard(List<ErpStockInItemDO> itemList,
|
|
|
|
private ErpStockStatisticsRespVO.UnitGroupedStockCard buildInItemUnitGroupedStockCard(List<ErpStockInItemDO> itemList,
|
|
|
|
@ -387,7 +387,7 @@ public class ErpStockServiceImpl implements ErpStockService {
|
|
|
|
private ErpStockStatisticsRespVO.UnitStock buildUnitStock(Long unitId, String unitName, BigDecimal count) {
|
|
|
|
private ErpStockStatisticsRespVO.UnitStock buildUnitStock(Long unitId, String unitName, BigDecimal count) {
|
|
|
|
ErpStockStatisticsRespVO.UnitStock unitStock = new ErpStockStatisticsRespVO.UnitStock();
|
|
|
|
ErpStockStatisticsRespVO.UnitStock unitStock = new ErpStockStatisticsRespVO.UnitStock();
|
|
|
|
unitStock.setUnitId(unitId);
|
|
|
|
unitStock.setUnitId(unitId);
|
|
|
|
unitStock.setUnitName(unitName);
|
|
|
|
unitStock.setUnitName(nullToEmpty(unitName));
|
|
|
|
unitStock.setCount(count);
|
|
|
|
unitStock.setCount(count);
|
|
|
|
unitStock.setStockDisplay(formatNumber(count) + nullToEmpty(unitName));
|
|
|
|
unitStock.setStockDisplay(formatNumber(count) + nullToEmpty(unitName));
|
|
|
|
return unitStock;
|
|
|
|
return unitStock;
|
|
|
|
@ -511,7 +511,7 @@ public class ErpStockServiceImpl implements ErpStockService {
|
|
|
|
detail.setPackagingSchemeId(packagingSchemeId);
|
|
|
|
detail.setPackagingSchemeId(packagingSchemeId);
|
|
|
|
detail.setPackagingSchemeName(packagingSchemeName);
|
|
|
|
detail.setPackagingSchemeName(packagingSchemeName);
|
|
|
|
detail.setTotalCount(totalCount);
|
|
|
|
detail.setTotalCount(totalCount);
|
|
|
|
detail.setUnitName(unitName);
|
|
|
|
detail.setUnitName(nullToEmpty(unitName));
|
|
|
|
detail.setStockDisplay(formatNumber(totalCount) + nullToEmpty(unitName));
|
|
|
|
detail.setStockDisplay(formatNumber(totalCount) + nullToEmpty(unitName));
|
|
|
|
detail.setPackagingDisplay(formatProductQuantity(calculateProductQuantity(totalCount, palletTotalQuantity, packageQuantity)));
|
|
|
|
detail.setPackagingDisplay(formatProductQuantity(calculateProductQuantity(totalCount, palletTotalQuantity, packageQuantity)));
|
|
|
|
detail.setPackageQuantity(packageQuantity);
|
|
|
|
detail.setPackageQuantity(packageQuantity);
|
|
|
|
@ -639,10 +639,10 @@ public class ErpStockServiceImpl implements ErpStockService {
|
|
|
|
if (!keepZero) {
|
|
|
|
if (!keepZero) {
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
display.append("0").append(unitName);
|
|
|
|
display.append("0").append(nullToEmpty(unitName));
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
display.append(formatNumber(quantity)).append(unitName);
|
|
|
|
display.append(formatNumber(quantity)).append(nullToEmpty(unitName));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private BigDecimal defaultZero(BigDecimal value) {
|
|
|
|
private BigDecimal defaultZero(BigDecimal value) {
|
|
|
|
@ -686,17 +686,18 @@ public class ErpStockServiceImpl implements ErpStockService {
|
|
|
|
.orElse(null);
|
|
|
|
.orElse(null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private boolean isStockSnapshotMissing(ErpStockDO stock) {
|
|
|
|
private boolean isStockSnapshotMissing(ErpStockDO stock, ErpProductRespVO product,
|
|
|
|
return stock.getUnitId() == null
|
|
|
|
ProductPackagingSchemeRespVO defaultPackagingScheme) {
|
|
|
|
|| stock.getUnitName() == null
|
|
|
|
return (product.getUnitId() != null && stock.getUnitId() == null)
|
|
|
|
|| stock.getPurchaseUnitId() == null
|
|
|
|
|| (product.getUnitName() != null && stock.getUnitName() == null)
|
|
|
|
|| stock.getPurchaseUnitName() == null
|
|
|
|
|| (product.getPurchaseUnitId() != null && stock.getPurchaseUnitId() == null)
|
|
|
|
|| stock.getPurchaseUnitConvertQuantity() == null
|
|
|
|
|| (product.getPurchaseUnitName() != null && stock.getPurchaseUnitName() == null)
|
|
|
|
|| stock.getDefaultPackagingSchemeId() == null
|
|
|
|
|| (product.getPurchaseUnitConvertQuantity() != null && stock.getPurchaseUnitConvertQuantity() == null)
|
|
|
|
|| stock.getDefaultPackagingSchemeName() == null
|
|
|
|
|| (defaultPackagingScheme != null && stock.getDefaultPackagingSchemeId() == null)
|
|
|
|
|| stock.getPackageQuantity() == null
|
|
|
|
|| (defaultPackagingScheme != null && stock.getDefaultPackagingSchemeName() == null)
|
|
|
|
|| stock.getPalletPackageQuantity() == null
|
|
|
|
|| (defaultPackagingScheme != null && stock.getPackageQuantity() == null)
|
|
|
|
|| stock.getPalletTotalQuantity() == null;
|
|
|
|
|| (defaultPackagingScheme != null && stock.getPalletPackageQuantity() == null)
|
|
|
|
|
|
|
|
|| (defaultPackagingScheme != null && stock.getPalletTotalQuantity() == null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private ErpStockDO buildStockSnapshotUpdate(ErpStockDO stock) {
|
|
|
|
private ErpStockDO buildStockSnapshotUpdate(ErpStockDO stock) {
|
|
|
|
|