Browse Source

入库完成更新采购在途数量,采购下拉框查询BUG修复

fgd 1 year ago
parent
commit
fe2e0dc3a4

+ 1 - 1
sd-business/src/main/java/com/sd/business/entity/purchase/vo/PurchaseBomSelectVo.java

@@ -73,5 +73,5 @@ public class PurchaseBomSelectVo {
     /**
      * bom规格信息列表
      */
-    private List<PurchaseBomInfoVo> purchaseBomInfoList;
+    private List<PurchaseBomInfoVo> bomSpecList;
 }

+ 1 - 1
sd-business/src/main/java/com/sd/business/mapper/purchase/PurchaseMapper.java

@@ -30,5 +30,5 @@ public interface PurchaseMapper extends BaseMapper<Purchase> {
      * @param wrapper
      * @return
      */
-    List<PurchaseVo> getPurchaseInStorageList(IWrapper<Purchase> wrapper);
+    List<PurchaseVo> getPurchaseInStorageList(@Param("ew") IWrapper<Purchase> wrapper);
 }

+ 9 - 0
sd-business/src/main/java/com/sd/business/service/in/impl/InOutStorageServiceImpl.java

@@ -1,6 +1,7 @@
 package com.sd.business.service.in.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -19,6 +20,7 @@ import com.sd.business.mapper.in.InOutStorageMapper;
 import com.sd.business.service.in.InOutStorageBomService;
 import com.sd.business.service.in.InOutStorageService;
 import com.sd.business.service.inventory.InventoryService;
+import com.sd.business.service.purchase.PurchaseService;
 import com.sd.business.util.CodeEnum;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -44,6 +46,9 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
     @Autowired
     private InventoryService inventoryService;
 
+    @Autowired
+    private PurchaseService purchaseService;
+
     @Override
     public Page<InOutStorageVo> getPage(InOutStorageSelectDto dto) {
         IWrapper<InOutStorage> wrapper = getWrapper();
@@ -79,6 +84,10 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
             inOutStorageDto.setCode(CodeEnum.IN_CODE.getCode());
             // 更新库存
             inventoryService.in(inOutStorageDto.getDepartmentId(), inOutStorageDto.getWarehouseId(), inOutStorageBomList);
+            if (ObjectUtil.isNotEmpty(inOutStorageDto) && InDetailTypeEnum.PURCHASE.getKey().equals(inOutStorageDto.getDetailType())) {
+                // 更新采购到货数量
+                purchaseService.updatePurchaseBomArrivalQuantity(inOutStorageDto.getPurchaseId(), inOutStorageBomList);
+            }
         } else {
             // 赋值出库单号
             inOutStorageDto.setCode(CodeEnum.OUT_CODE.getCode());

+ 8 - 0
sd-business/src/main/java/com/sd/business/service/purchase/PurchaseService.java

@@ -2,6 +2,7 @@ package com.sd.business.service.purchase;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.service.BaseService;
+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;
@@ -50,4 +51,11 @@ public interface PurchaseService extends BaseService<Purchase> {
      * @return
      */
     List<PurchaseVo> getPurchaseInStorageList();
+
+    /**
+     * 更新采购bom到货数量
+     * @param purchaseId
+     * @param inOutStorageBomList
+     */
+    void updatePurchaseBomArrivalQuantity(Long purchaseId, List<InOutStorageBom> inOutStorageBomList);
 }

+ 1 - 1
sd-business/src/main/java/com/sd/business/service/purchase/impl/PurchaseBomServiceImpl.java

@@ -89,7 +89,7 @@ public class PurchaseBomServiceImpl extends ServiceImpl<PurchaseBomMapper, Purch
         Map<Long, List<PurchaseBomInfoVo>> bomSpecIdMap = list.stream().collect(Collectors.groupingBy(PurchaseBomInfoVo::getBomId));
 
         for (PurchaseBomSelectVo record : records) {
-            record.setPurchaseBomInfoList(bomSpecIdMap.get(record.getBomId()));
+            record.setBomSpecList(bomSpecIdMap.get(record.getBomId()));
         }
         return page;
     }

+ 20 - 0
sd-business/src/main/java/com/sd/business/service/purchase/impl/PurchaseServiceImpl.java

@@ -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));
+                }
+            }
+        }
+
+    }
 }

+ 2 - 2
sd-business/src/main/resources/mapper/purchase/PurchaseBomMapper.xml

@@ -24,8 +24,8 @@
     <select id="getPurchaseBomPage" resultType="com.sd.business.entity.purchase.vo.PurchaseBomSelectVo">
         select
             b.id bomId,
-            b.code bomCode,
-            b.name bomName,
+            b.code,
+            b.name,
             b.item_subclass,
             b.species,
             b.front_grain,

+ 1 - 1
sd-business/src/main/resources/mapper/purchase/PurchaseMapper.xml

@@ -17,7 +17,7 @@
                s.name  supplierName
         from purchase p
                  left join supplier s on p.supplier_id = s.id
-            ${wrapper.customSqlSegment}
+            ${ew.customSqlSegment}
     </select>
 
 </mapper>