|
@@ -1,6 +1,7 @@
|
|
|
package com.sd.business.service.purchase.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.flow.enums.FlowStatusEnum;
|
|
@@ -9,6 +10,7 @@ import com.ruoyi.common.core.domain.BaseIdPo;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import com.sd.business.entity.apply.po.ApplyBuyBom;
|
|
|
+import com.sd.business.entity.in.po.InOutStorageBom;
|
|
|
import com.sd.business.entity.purchase.dto.PurchaseDto;
|
|
|
import com.sd.business.entity.purchase.dto.PurchaseSelectDto;
|
|
|
import com.sd.business.entity.purchase.po.Purchase;
|
|
@@ -231,7 +233,25 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
|
|
|
IWrapper<Purchase> wrapper = getWrapper();
|
|
|
wrapper.eq("p", Purchase::getFlowStatus, FlowStatusEnum.PASS.getKey());
|
|
|
wrapper.eq("p", Purchase::getStorageStatus, StatusConstant.NO);
|
|
|
+ wrapper.orderByDesc(Purchase::getId);
|
|
|
return this.baseMapper.getPurchaseInStorageList(wrapper);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void updatePurchaseBomArrivalQuantity(Long purchaseId, List<InOutStorageBom> inOutStorageBomList) {
|
|
|
+ for (InOutStorageBom inOutStorageBom : inOutStorageBomList) {
|
|
|
+ PurchaseBom bom = purchaseBomService.getOne(q -> q.eq(PurchaseBom::getPurchaseId, purchaseId).eq(PurchaseBom::getBomSpecId, inOutStorageBom.getBomSpecId()));
|
|
|
+ if (ObjectUtil.isNotEmpty(bom)) {
|
|
|
+ purchaseBomService.update(q -> q.eq(PurchaseBom::getId, bom.getId()).set(PurchaseBom::getArrivalQuantity, bom.getArrivalQuantity().add(inOutStorageBom.getQuantity())));
|
|
|
+
|
|
|
+ // 查询当前采购在途数量
|
|
|
+ long count = purchaseBomService.count(q -> q.eq(PurchaseBom::getPurchaseId, purchaseId).apply("purchase_quantity > arrival_quantity"));
|
|
|
+ if (count == 0) {
|
|
|
+ // 如果为0,将入库状态设置为已完成
|
|
|
+ this.update(q -> q.eq(Purchase::getId, purchaseId).set(Purchase::getStorageStatus, StatusConstant.YES));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|