فهرست منبع

快递100集成

qt5107 2 سال پیش
والد
کامیت
b9476485d7

+ 12 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/constants/logistics/LogisticsConstant.java

@@ -16,6 +16,18 @@ public interface LogisticsConstant {
     }
 
     /**
+     * 入库状态
+     */
+    class InStockStatus {
+        //未入库
+        public static final Integer STATUS_10 = 10;
+        //部分入库
+        public static final Integer STATUS_20 = 20;
+        //已入库
+        public static final Integer STATUS_30 = 30;
+    }
+
+    /**
      * 物流状态(快递100的状态)
      */
     class KD100Status {

+ 5 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/logistics/LogisticsInfo.java

@@ -48,6 +48,11 @@ public class LogisticsInfo extends BaseEntity {
     private Integer status;
 
     /**
+     * 入库状态:10、未入库;20、部分入库;30、已入库
+     */
+    private Integer inStockStatus;
+
+    /**
      * 物流公司编码
      */
     private String logisticsCompanyCode;

+ 2 - 2
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/stock/StockJournal.java

@@ -62,9 +62,9 @@ public class StockJournal extends BaseEntity {
     private BigDecimal actualQuantity;
 
     /**
-     * 是否质检:0、否;1、是
+     * 质检状态:10、未质检;20、部分质检;30、已质检
      */
-    private Integer isQuality;
+    private Integer qualityStatus;
 
     /**
      * 备注

+ 58 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/enums/stock/QualityStatusEnum.java

@@ -0,0 +1,58 @@
+package com.fjhx.enums.stock;
+
+import cn.hutool.core.util.ObjectUtil;
+import lombok.Getter;
+import org.springblade.core.tool.utils.StringPool;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author 质检状态枚举
+ */
+@Getter
+public enum QualityStatusEnum {
+    STATUS_10(10, "未质检"),
+    STATUS_20(20, "部分质检"),
+    STATUS_30(30, "已质检"),
+
+    ;
+
+    private final int key;
+
+    private final String value;
+
+    QualityStatusEnum(int key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    private static final Map<Integer, QualityStatusEnum> CLASS_MAP = new HashMap<>();
+
+    static {
+        for (QualityStatusEnum value : QualityStatusEnum.values()) {
+            CLASS_MAP.put(value.getKey(), value);
+        }
+    }
+
+    /**
+     * 根据key获取枚举
+     */
+    public static QualityStatusEnum getEnumByKey(Integer type) {
+        return CLASS_MAP.get(type);
+    }
+
+    /**
+     * 通过key获取名称
+     */
+    public static String getValueByKey(Integer key) {
+        QualityStatusEnum inTypeEnum = CLASS_MAP.get(key);
+
+        if (ObjectUtil.isEmpty(inTypeEnum)) {
+            return StringPool.EMPTY;
+        }
+
+        return inTypeEnum.getValue();
+    }
+
+}

+ 15 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsInfoServiceImpl.java

@@ -4,9 +4,11 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.constants.logistics.LogisticsConstant;
+import com.fjhx.entity.apply.ApplyPurchase;
 import com.fjhx.entity.logistics.LogisticsInfo;
 import com.fjhx.mapper.logistics.LogisticsInfoMapper;
 import com.fjhx.params.logistics.LogisticsInfoVo;
+import com.fjhx.service.apply.ApplyPurchaseService;
 import com.fjhx.service.logistics.LogisticsDetailsService;
 import com.fjhx.service.logistics.LogisticsInfoService;
 import com.fjhx.uitl.kd100.KD100Util;
@@ -39,6 +41,9 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
     @Autowired
     private LogisticsDetailsService logisticsDetailsService;
 
+    @Autowired
+    private ApplyPurchaseService applyPurchaseService;
+
     @Override
     public Page<LogisticsInfo> getPage(Map<String, Object> condition) {
 
@@ -54,6 +59,12 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
             throw new ServiceException("物流信息不能为空");
         }
 
+        //查询采购明细信息
+        List<ApplyPurchase> purchases = applyPurchaseService.lambdaQuery().eq(ApplyPurchase::getPurchaseId, logisticsInfoVo.getBusinessId()).list();
+        if (Func.isEmpty(purchases)) {
+            throw new ServiceException("操作异常,暂无采购信息,请联系管理员!");
+        }
+
         //查询快递100的物流信息
         JSONObject result = KD100Util.queryTrack(logisticsInfoVo.getLogisticsCompanyCode(), logisticsInfoVo.getCode());
         Integer state = result.getInteger("state");
@@ -64,6 +75,10 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
         logisticsInfoVo.setLogisticsStatus(state);
 
         logisticsInfoVo.setStatus(LogisticsConstant.Status.STATUS_0);
+        logisticsInfoVo.setInStockStatus(LogisticsConstant.InStockStatus.STATUS_10);
+
+        //采购总数量
+
         save(logisticsInfoVo);
 
         logisticsInfoVo.getDetails().forEach(o -> {

+ 2 - 2
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockJournalServiceImpl.java

@@ -4,11 +4,11 @@ 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.base.Condition;
-import com.fjhx.constants.StatusConstant;
 import com.fjhx.constants.StockJournalTypeConstant;
 import com.fjhx.entity.stock.StockJournal;
 import com.fjhx.enums.stock.InTypeEnum;
 import com.fjhx.enums.stock.OutTypeEnum;
+import com.fjhx.enums.stock.QualityStatusEnum;
 import com.fjhx.mapper.stock.StockJournalMapper;
 import com.fjhx.params.stock.StockChangeVo;
 import com.fjhx.params.stock.StockJournalVo;
@@ -139,7 +139,7 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
                     stockJournal.setType(StockJournalTypeConstant.IN);
                     stockJournal.setDetailsType(((InTypeEnum) typeEnum).getKey());
                     stockJournal.setActualQuantity(BigDecimal.ZERO);
-                    stockJournal.setIsQuality(StatusConstant.NO);
+                    stockJournal.setQualityStatus(QualityStatusEnum.STATUS_10.getKey());
                 } else {
                     stockJournal.setType(StockJournalTypeConstant.OUT);
                     stockJournal.setDetailsType(((OutTypeEnum) typeEnum).getKey());

+ 8 - 7
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockServiceImpl.java

@@ -18,7 +18,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * <p>
@@ -34,9 +38,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
     @Autowired
     private StockJournalServiceImpl stockJournalService;
 
-    // 添加流水记录锁
-    public static final Object ADD_JOURNAL_LOCK = new Object();
-
     @Override
     public Page<Stock> getPage(Map<String, Object> condition) {
 
@@ -103,14 +104,14 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
                 stock = new Stock();
                 stock.setWarehouseId(warehouseId);
                 stock.setGoodsId(goodsId);
-                if (typeEnum.equals(InTypeEnum.PURCHASE) || typeEnum.equals(InTypeEnum.MANUAL)) {
+                if (typeEnum.equals(InTypeEnum.PURCHASE)) {
                     stock.setFrozenQuantity(changeQuantity);
                 } else {
                     stock.setQuantity(changeQuantity);
                 }
                 map.put(key, stock);
             } else {
-                if (typeEnum.equals(InTypeEnum.PURCHASE) || typeEnum.equals(InTypeEnum.MANUAL)) {
+                if (typeEnum.equals(InTypeEnum.PURCHASE)) {
                     stock.setFrozenQuantity(stock.getFrozenQuantity().add(changeQuantity));
                 } else {
                     stock.setQuantity(stock.getQuantity().add(changeQuantity));
@@ -133,7 +134,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 
             changeStock.setId(stock.getId());
             if (typeEnum instanceof InTypeEnum) {
-                if (typeEnum.equals(InTypeEnum.PURCHASE) || typeEnum.equals(InTypeEnum.MANUAL)) {
+                if (typeEnum.equals(InTypeEnum.PURCHASE)) {
                     changeStock.setFrozenQuantity(stock.getFrozenQuantity().add(changeStock.getFrozenQuantity()));
                 } else {
                     changeStock.setQuantity(stock.getQuantity().add(changeStock.getQuantity()));