|
@@ -21,7 +21,6 @@ import com.fjhx.item.util.excel.util.ExcelUtil;
|
|
|
import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
|
|
|
import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
|
|
|
import com.fjhx.tenant.service.dict.DictTenantDataService;
|
|
|
-import com.fjhx.wms.entity.PurchaseDetailPo;
|
|
|
import com.fjhx.wms.entity.SubscribeDetailPo;
|
|
|
import com.fjhx.wms.entity.stock.bo.InOutBo;
|
|
|
import com.fjhx.wms.entity.stock.dto.StockDto;
|
|
@@ -980,24 +979,13 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
|
|
|
private void stockAnalysisComm(List<StockAnalysis> stockAnalysisList) {
|
|
|
List<Long> ids = stockAnalysisList.stream().map(StockAnalysis::getProductId).collect(Collectors.toList());
|
|
|
|
|
|
- //获取已采购数量(审批中/审批通过)
|
|
|
- List<PurchaseDetailPo> purchaseCountList = purService.getPurchaseCountList(IWrapper.<Object>getWrapper()
|
|
|
- .in("pd.bussiness_id", ids)
|
|
|
- .in("p.purchase_status", 10, 30)
|
|
|
- .groupBy("pd.bussiness_id"));
|
|
|
- purchaseCountList = ObjectUtil.isEmpty(purchaseCountList) ? new ArrayList<>() : purchaseCountList;
|
|
|
- //获取已申购数量(审批中/审批通过)
|
|
|
+ //获取待采购列表
|
|
|
List<SubscribeDetailPo> subscribeCountList = purService.getSubscribeCountList(IWrapper.<Object>getWrapper()
|
|
|
.in("sd.bussiness_id", ids)
|
|
|
.in("s.subcribe_status", 10, 30)
|
|
|
+ .in("sd.status", 15, 30)
|
|
|
.groupBy("sd.bussiness_id"));
|
|
|
subscribeCountList = ObjectUtil.isEmpty(subscribeCountList) ? new ArrayList<>() : subscribeCountList;
|
|
|
- //获取已采购数量(审批通过)
|
|
|
- List<PurchaseDetailPo> purchaseCountList1 = purService.getPurchaseCountList(IWrapper.<Object>getWrapper()
|
|
|
- .in("pd.bussiness_id", ids)
|
|
|
- .eq("p.purchase_status", 30)
|
|
|
- .groupBy("pd.bussiness_id"));
|
|
|
- purchaseCountList1 = ObjectUtil.isEmpty(purchaseCountList1) ? new ArrayList<>() : purchaseCountList1;
|
|
|
//获取已入库数量
|
|
|
List<StockWaitDetailsVo> stockWaitList = stockWaitService.getStockWaitList(IWrapper.<Object>getWrapper()
|
|
|
.in("swd.product_id", ids)
|
|
@@ -1021,26 +1009,34 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
|
|
|
|
|
|
for (StockAnalysis record : stockAnalysisList) {
|
|
|
//待采购数量(申购数-采购数)
|
|
|
- BigDecimal subscribeCount = subscribeCountList.stream()
|
|
|
+ BigDecimal purchaseWaitCount = subscribeCountList.stream()
|
|
|
.filter(item -> item.getBussinessId().equals(record.getProductId()))
|
|
|
- .map(SubscribeDetailPo::getCount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal purchaseCount = purchaseCountList.stream()
|
|
|
- .filter(item -> item.getBussinessId().equals(record.getProductId()))
|
|
|
- .map(PurchaseDetailPo::getCount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal purchaseWaitCount = subscribeCount.subtract(purchaseCount);
|
|
|
+ .map(item -> {
|
|
|
+ BigDecimal subtract = item.getCount().subtract(item.getPurchaseCount());
|
|
|
+ if (subtract.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
+ return BigDecimal.ZERO;
|
|
|
+ }
|
|
|
+ return subtract;
|
|
|
+ }).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
//待入库数量
|
|
|
- BigDecimal purchaseCount1 = purchaseCountList1.stream()
|
|
|
- .filter(item -> item.getBussinessId().equals(record.getProductId()))
|
|
|
- .map(PurchaseDetailPo::getCount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal reduce = stockWaitList.stream()
|
|
|
+ BigDecimal stockWaitInCount = stockWaitList.stream()
|
|
|
.filter(item -> item.getProductId().equals(record.getProductId()))
|
|
|
- .map(StockWaitDetailsVo::getReceiptQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal stockWaitInCount = purchaseCount1.subtract(reduce);
|
|
|
+ .map(item -> {
|
|
|
+ BigDecimal subtract = item.getQuantity().subtract(item.getReceiptQuantity());
|
|
|
+ if (subtract.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
+ return BigDecimal.ZERO;
|
|
|
+ }
|
|
|
+ return subtract;
|
|
|
+ }).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
//待出库数量
|
|
|
BigDecimal stockWaitOutCount = stockWaitOutList.stream()
|
|
|
.filter(item -> item.getProductId().equals(record.getProductId()))
|
|
|
.map(item -> {
|
|
|
- return item.getQuantity().subtract(item.getReceiptQuantity());
|
|
|
+ BigDecimal subtract = item.getQuantity().subtract(item.getReceiptQuantity());
|
|
|
+ if (subtract.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
+ return BigDecimal.ZERO;
|
|
|
+ }
|
|
|
+ return subtract;
|
|
|
}).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
//可支配库存
|
|
|
BigDecimal disposableCount = record.getQuantity().subtract(stockWaitOutCount);
|