|
@@ -232,27 +232,7 @@ public class EhsdPurchaseFlow extends FlowDelegate {
|
|
|
purchaseService.updateById(purchase);
|
|
|
|
|
|
//修改申购明细状态
|
|
|
- List<Long> subscribeDetailIds = purchaseProductService.listObject(EhsdPurchaseProduct::getSubscribeDetailId, q -> q
|
|
|
- .eq(EhsdPurchaseProduct::getPurchaseId, businessId)
|
|
|
- );
|
|
|
- //获取已采购数量
|
|
|
- List<SubscribeDetail> purchaseCountByIds = subscribeDetailMapper.getPurchaseCountByIds(subscribeDetailIds);
|
|
|
- Map<Long, BigDecimal> purchaseCountMap = purchaseCountByIds.stream().collect(Collectors.toMap(SubscribeDetail::getId, SubscribeDetail::getCount));
|
|
|
- //修改状态
|
|
|
- List<SubscribeDetail> subscribeDetails = subscribeDetailService.listByIds(subscribeDetailIds);
|
|
|
- for (SubscribeDetail subscribeDetail : subscribeDetails) {
|
|
|
- //获取已采购数并计算状态
|
|
|
- BigDecimal count = purchaseCountMap.getOrDefault(subscribeDetail.getId(), BigDecimal.ZERO);
|
|
|
- if (count.compareTo(subscribeDetail.getCount()) >= 0) {
|
|
|
- //修改为已采购
|
|
|
- subscribeDetail.setStatus(SubscribeDetailStatusEnum.PURCHASED.getKey());
|
|
|
- } else {
|
|
|
- //修改为部分采购
|
|
|
- subscribeDetail.setStatus(SubscribeDetailStatusEnum.LITT_PAID_AMOUNT.getKey());
|
|
|
- }
|
|
|
- }
|
|
|
- subscribeDetailService.updateBatchById(subscribeDetails);
|
|
|
-
|
|
|
+ updateSubscribeStatus(businessId);
|
|
|
|
|
|
List<InOutBo> inOutBoList = new ArrayList<>();
|
|
|
for (EhsdPurchaseProduct purchaseProduct : purchaseProductList) {
|
|
@@ -349,5 +329,36 @@ public class EhsdPurchaseFlow extends FlowDelegate {
|
|
|
}
|
|
|
}
|
|
|
productInfoService.editAvailableQuantity(inOutBoList, InOutType.OUT, businessId, ProductAvailableRecordType.PURCHASE_CANCEL, purchase.getCompanyId());
|
|
|
+
|
|
|
+ //修改申购明细状态
|
|
|
+ updateSubscribeStatus(businessId);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改申购明细状态
|
|
|
+ */
|
|
|
+ private void updateSubscribeStatus(Long businessId) {
|
|
|
+ //修改申购明细状态
|
|
|
+ List<Long> subscribeDetailIds = purchaseProductService.listObject(EhsdPurchaseProduct::getSubscribeDetailId, q -> q
|
|
|
+ .eq(EhsdPurchaseProduct::getPurchaseId, businessId)
|
|
|
+ );
|
|
|
+ //获取已采购数量
|
|
|
+ List<SubscribeDetail> purchaseCountByIds = subscribeDetailMapper.getPurchaseCountByIds(subscribeDetailIds);
|
|
|
+ Map<Long, BigDecimal> purchaseCountMap = purchaseCountByIds.stream().collect(Collectors.toMap(SubscribeDetail::getId, SubscribeDetail::getCount));
|
|
|
+ //修改状态
|
|
|
+ List<SubscribeDetail> subscribeDetails = subscribeDetailService.listByIds(subscribeDetailIds);
|
|
|
+ for (SubscribeDetail subscribeDetail : subscribeDetails) {
|
|
|
+ //获取已采购数并计算状态
|
|
|
+ BigDecimal count = purchaseCountMap.getOrDefault(subscribeDetail.getId(), BigDecimal.ZERO);
|
|
|
+ if (count.compareTo(subscribeDetail.getCount()) >= 0) {
|
|
|
+ //修改为已采购
|
|
|
+ subscribeDetail.setStatus(SubscribeDetailStatusEnum.PURCHASED.getKey());
|
|
|
+ } else {
|
|
|
+ //修改为部分采购
|
|
|
+ subscribeDetail.setStatus(SubscribeDetailStatusEnum.LITT_PAID_AMOUNT.getKey());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ subscribeDetailService.updateBatchById(subscribeDetails);
|
|
|
}
|
|
|
}
|