yzc 2 vuotta sitten
vanhempi
commit
b7bfcb105b

+ 3 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java

@@ -132,6 +132,9 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         this.updateById(productionTaskDetailDto);
     }
 
+    /**
+     * 完工入库
+     */
     @Override
     public void productStorage(Long id) {
         ProductionTaskDetail productionTaskDetail = getById(id);

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java

@@ -110,6 +110,23 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
             s.setDeptId(json.getLong("deptId"));
         }
 
+        List<Long> subscribeDetailIds = list.stream().map(SubscribeDetail::getId).collect(Collectors.toList());
+        if (ObjectUtil.isNotEmpty(subscribeDetailIds)) {
+            List<PurchaseDetail> purchaseDetailsList = purchaseDetailService.list(q -> q.in(PurchaseDetail::getSubscribeDetailId, subscribeDetailIds));
+            Map<Long, List<PurchaseDetail>> purchaseDetailsMap = purchaseDetailsList.stream().collect(Collectors.groupingBy(PurchaseDetail::getSubscribeDetailId));
+            for (SubscribeDetailVo subscribeDetailVo : list) {
+                List<PurchaseDetail> purchaseDetails = purchaseDetailsMap.get(subscribeDetailVo.getId());
+                if (ObjectUtil.isEmpty(purchaseDetails)) {
+                    subscribeDetailVo.setPurchaseCount(BigDecimal.ZERO);
+                    continue;
+                }
+                BigDecimal count = purchaseDetails.stream()
+                        .map(PurchaseDetail::getCount)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add);
+                subscribeDetailVo.setPurchaseCount(count);
+            }
+        }
+
         return page;
     }
 

+ 16 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/purchase/impl/PurchaseBackServiceImpl.java

@@ -1,11 +1,15 @@
 package com.fjhx.victoriatourist.service.purchase.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.service.purchase.PurchaseService;
 import com.fjhx.victoriatourist.entity.purchase.dto.PurchaseBackDto;
 import com.fjhx.victoriatourist.entity.purchase.dto.PurchaseBackSelectDto;
 import com.fjhx.victoriatourist.entity.purchase.po.PurchaseBack;
@@ -21,6 +25,7 @@ import com.fjhx.wms.entity.stock.emums.StockWaitType;
 import com.fjhx.wms.entity.stock.po.*;
 import com.fjhx.wms.service.stock.*;
 import com.fjhx.wms.utils.CodeEnum;
+import com.obs.services.internal.ServiceException;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +58,8 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
     private StockJournalDetailsService stockJournalDetailsService;
     @Autowired
     private StockService stockService;
+    @Autowired
+    private PurchaseService purchaseService;
 
     @Override
     public Page<PurchaseBackVo> getPage(PurchaseBackSelectDto dto) {
@@ -80,9 +87,17 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
         purchaseBackDetailsList.forEach(purchaseBackDetails -> purchaseBackDetails.setPurchaseBackId(purchaseBackDto.getId()));
         purchaseBackDetailsService.saveBatch(purchaseBackDetailsList);
 
+        Purchase purchase = purchaseService.getById(purchaseBackDto.getPurchaseId());
+        if (ObjectUtil.isEmpty(purchase)) {
+            throw new ServiceException("无法查询到采购信息");
+        }
+        String victoriatouristJson = purchase.getVictoriatouristJson();
+        JSONObject json = ObjectUtil.isEmpty(victoriatouristJson) ? new JSONObject() : JSONObject.parseObject(victoriatouristJson);
+
         //创建待出库记录
         StockWait stockWait = new StockWait();
         stockWait.setBusinessId(purchaseBackDto.getId());
+        stockWait.setBusinessCode(json.getString("contractCode"));
         stockWait.setType(2);//出库
         stockWait.setStatus(0);//待出库
         stockWait.setBusinessType(StockWaitType.BACK_OUT.getDetailType());//已采购退货出库
@@ -101,7 +116,7 @@ public class PurchaseBackServiceImpl extends ServiceImpl<PurchaseBackMapper, Pur
 
     @Override
     @DSTransactional
-    public void backOut(StockWaitDetailsDto stockWaitDetailsDto){
+    public void backOut(StockWaitDetailsDto stockWaitDetailsDto) {
         //修改待出入库状态
         stockWaitDetailsService.changeStockWaitStatus(stockWaitDetailsDto);
         StockWaitDetails stockWaitDetails = stockWaitDetailsService.getById(stockWaitDetailsDto.getId());

+ 2 - 1
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitDetailsServiceImpl.java

@@ -177,7 +177,8 @@ public class StockWaitDetailsServiceImpl extends ServiceImpl<StockWaitDetailsMap
         List<StockWaitDetails> stockWaitDetailsList = list(q -> q.eq(StockWaitDetails::getStockWaitId, stockWaitDetails.getStockWaitId()));
         for (StockWaitDetails waitDetails : stockWaitDetailsList) {
             //计算已经完全出库的数量
-            if (waitDetails.getReceiptQuantity().compareTo(waitDetails.getQuantity()) == 0) {
+            BigDecimal receiptQuantity1 = ObjectUtil.isEmpty(waitDetails.getReceiptQuantity()) ? BigDecimal.ZERO : waitDetails.getReceiptQuantity();
+            if (receiptQuantity1.compareTo(waitDetails.getQuantity()) == 0) {
                 statusFlag++;
             }
         }