소스 검색

库位上的货物信息查询oms

zjl 7 년 전
부모
커밋
be2fc0bd55

+ 8 - 4
src/main/java/com/emato/cus/supervise/biz/acqGoodsSeat/AcqGoodsOnSeatDataConversion.java

@@ -4,6 +4,7 @@ import com.emato.cus.supervise.biz.DataConversion;
 import com.emato.cus.supervise.constant.Dict;
 import com.emato.cus.supervise.domain.WmsAcqGoodsOnSeat;
 import com.emato.cus.supervise.domainCus.CusAcqGoodsSeat06;
+import com.emato.cus.supervise.domainOms.OmsAcqInventoryInfo;
 import com.google.common.collect.Lists;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -12,6 +13,7 @@ import org.springframework.stereotype.Component;
 import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author zengjunlin
@@ -34,11 +36,15 @@ public class AcqGoodsOnSeatDataConversion implements DataConversion{
         logger.info("开始转换oms,wms 组装cus数据===========================");
 
         List<WmsAcqGoodsOnSeat> wmsList = (List<WmsAcqGoodsOnSeat>) params.get("wmsList");
+        List<OmsAcqInventoryInfo> omsList = (List<OmsAcqInventoryInfo>) params.get("omsList");
 
+        final Map<String,OmsAcqInventoryInfo> omsAcqInventoryInfoMap = omsList.stream().collect(Collectors.toMap(k->k.getMerchSn(), v->v));
         List<CusAcqGoodsSeat06> cusAcqGoodsSeat06List = Lists.newArrayList();
 
         for (int i = 0; i < wmsList.size(); i++) {
             WmsAcqGoodsOnSeat wmsAcqGoodsOnSeat = wmsList.get(i);
+            OmsAcqInventoryInfo omsAcqInventoryInfo = omsAcqInventoryInfoMap.get(wmsAcqGoodsOnSeat.getMerchSn());
+
             CusAcqGoodsSeat06 cusAcqGoodsSeat06 = new CusAcqGoodsSeat06();
             cusAcqGoodsSeat06.setId(wmsAcqGoodsOnSeat.getId());
             cusAcqGoodsSeat06.setSeatNo(wmsAcqGoodsOnSeat.getSeatNo());
@@ -54,10 +60,8 @@ public class AcqGoodsOnSeatDataConversion implements DataConversion{
             cusAcqGoodsSeat06.setLegalQty(wmsAcqGoodsOnSeat.getLegalQty());
             cusAcqGoodsSeat06.setGoodsModel(wmsAcqGoodsOnSeat.getGoodsModel());
             cusAcqGoodsSeat06.setLocalEmsNo(Dict.localEmsNo);
-            //TODO  下面二个查询oms系统
-            cusAcqGoodsSeat06.setOwnerCode(wmsAcqGoodsOnSeat.getOwnerCode());
-            cusAcqGoodsSeat06.setOwnerName(wmsAcqGoodsOnSeat.getOwnerName());
-
+            cusAcqGoodsSeat06.setOwnerCode(omsAcqInventoryInfo.getOwnerCode());
+            cusAcqGoodsSeat06.setOwnerName(omsAcqInventoryInfo.getOwnerName());
             cusAcqGoodsSeat06.setStoreCompanyName(Dict.storeCompanyName);
             cusAcqGoodsSeat06.setStoreUscCode(Dict.storeUscCode);
             cusAcqGoodsSeat06.setStoreCustomsCode(Dict.storeCustomsCode);

+ 31 - 1
src/main/java/com/emato/cus/supervise/biz/acqGoodsSeat/AcqGoodsSeatBiz.java

@@ -1,9 +1,14 @@
 package com.emato.cus.supervise.biz.acqGoodsSeat;
 
 import com.emato.cus.supervise.biz.CusWmsTask;
+import com.emato.cus.supervise.biz.acqInventoryInfo.AcqInventoryInfoOmsData;
 import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
 import com.emato.cus.supervise.domain.WmsAcqGoodsOnSeat;
+import com.emato.cus.supervise.domainOms.OmsAcqInventoryInfo;
+import com.emato.cus.supervise.util.GsonUtil;
 import com.emato.cus.supervise.util.LocalDateTimeUtils;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -11,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 库位货物数据 业务
@@ -31,6 +37,12 @@ public class AcqGoodsSeatBiz implements CusWmsTask {
     @Autowired
     private AcqGoodsOnSeatCusData acqGoodsOnSeatCusData;
 
+    @Autowired
+    private AcqGoodsOnSeatDataConversion acqGoodsOnSeatDataConversion;
+
+    @Autowired
+    private AcqInventoryInfoOmsData acqInventoryInfoOmsData;
+
     private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getCode() + "]" + EmtRecordTimeEnum.ACQ_GOODS_ON_SEAT.getName();
 
 
@@ -60,9 +72,27 @@ public class AcqGoodsSeatBiz implements CusWmsTask {
                     LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN));
             return;
         }
+        List<String> merchSnList = Lists.newArrayList();
+
+        wmsList.forEach(i -> merchSnList.add(i.getMerchSn()));
+
+        // 根据sku查询oms系统数据。
+        List<OmsAcqInventoryInfo> omsList = acqInventoryInfoOmsData.getOmsData(merchSnList);
 
+        if (omsList == null || omsList.isEmpty()) {
+            logger.error("wms扫描到的数据" + GsonUtil.toJson(wmsList));
+            logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描OMS数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
+                    LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN));
+            return;
+        }
+        Map params = Maps.newHashMap();
+        params.put("wmsList", wmsList);
+        params.put("omsList", omsList);
+        List cusList = acqGoodsOnSeatDataConversion.conversion(params);
         // 写CUS 数据
-        int res = acqGoodsOnSeatCusData.insertCus(wmsList);
+        int res = acqGoodsOnSeatCusData.insertCus(cusList);
 
         // 更新扫描时间
         boolean bl = acqGoodsOnSeatRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),

+ 9 - 1
src/main/java/com/emato/cus/supervise/domain/WmsAcqGoodsOnSeat.java

@@ -12,7 +12,7 @@ import java.time.LocalDateTime;
  */
 public class WmsAcqGoodsOnSeat implements Serializable {
     private static final long serialVersionUID = -6181417718340745214L;
-
+    private String merchSn;
     private String id;
     private String seatNo;
 
@@ -235,4 +235,12 @@ public class WmsAcqGoodsOnSeat implements Serializable {
     public void setModTime(LocalDateTime modTime) {
         this.modTime = modTime;
     }
+
+    public String getMerchSn() {
+        return merchSn;
+    }
+
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
 }

+ 2 - 1
src/main/java/com/emato/cus/supervise/schedule/AcqGoodsSeatSchedule.java

@@ -30,7 +30,8 @@ public class AcqGoodsSeatSchedule {
      * 每30分钟1次
      */
     //每月1号开始,每天10,12,15,18,22点各1次,共5次
-    @Scheduled(cron = "0 0 10,12,15,18,22 1/1 * ?")
+    //@Scheduled(cron = "0 0 10,12,15,18,22 1/1 * ?")
+    @Scheduled(cron = "0/10 * * * * ? ")
     public void timerUp() {
         logger.info("==================== 库位货物数据::监控数据读取开始 ====================");
         String begDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);

+ 1 - 2
src/main/java/com/emato/cus/supervise/schedule/AcqInventoryInfoSchedule.java

@@ -28,8 +28,7 @@ public class AcqInventoryInfoSchedule {
      * 货物库存数据
      */
     //每月1号开始,每天12,22点各1次,共2次
-    //@Scheduled(cron = "0 0 12,22 1/1 * ?")
-    @Scheduled(cron = "0/10 * * * * ? ")
+    @Scheduled(cron = "0 0 12,22 1/1 * ?")
     public void timer() {
         logger.info("==================== 货物库存数据::监控数据读取开始 ====================");
         String begDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);

+ 1 - 0
src/main/resources/mybatis/mapper/wms-acq-goods-on-seat.xml

@@ -7,6 +7,7 @@
     <select id="getWmsAcqGoodsSeat" parameterType="java.util.Map"
             resultType="com.emato.cus.supervise.domain.WmsAcqGoodsOnSeat">
         SELECT
+        li.companyCode AS merchSn,
         li.locationCode AS seatNo,
         li.itemName AS goodsName,
         li.itemCode AS codeTs,