فهرست منبع

企业货物上下架信息开发完成

zjl 7 سال پیش
والد
کامیت
7c1549796a
18فایلهای تغییر یافته به همراه886 افزوده شده و 4 حذف شده
  1. 4 0
      build.gradle
  2. 2 0
      src/main/java/com/emato/cus/supervise/biz/acqInventoryInfo/AcqInventoryInfoBiz.java
  3. 79 0
      src/main/java/com/emato/cus/supervise/biz/acqShelfLoad/AcqShelfLoadBiz.java
  4. 44 0
      src/main/java/com/emato/cus/supervise/biz/acqShelfLoad/AcqShelfLoadCusData.java
  5. 75 0
      src/main/java/com/emato/cus/supervise/biz/acqShelfLoad/AcqShelfLoadDataConversion.java
  6. 102 0
      src/main/java/com/emato/cus/supervise/biz/acqShelfLoad/AcqShelfLoadRecordTime.java
  7. 57 0
      src/main/java/com/emato/cus/supervise/biz/acqShelfLoad/AcqShelfLoadWmsData.java
  8. 1 0
      src/main/java/com/emato/cus/supervise/constant/EmtRecordTimeEnum.java
  9. 239 0
      src/main/java/com/emato/cus/supervise/domain/WmsAcqShelfLoad.java
  10. 15 0
      src/main/java/com/emato/cus/supervise/mapper/WmsAcqShelfLoadMapper.java
  11. 3 4
      src/main/java/com/emato/cus/supervise/schedule/AcqInventoryInfoSchedule.java
  12. 48 0
      src/main/java/com/emato/cus/supervise/schedule/AcqShelfLoadSchedule.java
  13. 21 0
      src/main/java/com/emato/cus/supervise/service/wms/WmsAcqShelfLoadService.java
  14. 33 0
      src/main/java/com/emato/cus/supervise/service/wms/impl/WmsAcqShelfLoadServiceImpl.java
  15. 121 0
      src/main/java/com/emato/cus/supervise/util/GsonUtil.java
  16. 36 0
      src/main/resources/mybatis/mapper/wms-acq-shelf-load.xml
  17. 1 0
      src/main/resources/mybatis/mybatis-config.xml
  18. 5 0
      src/sql/emt-record-time-2.0.sql

+ 4 - 0
build.gradle

@@ -49,6 +49,7 @@ ext {
 	cage = '1.0'
 	okhttp = '3.4.1'
 	apache_commons_lang3 = '3.6'
+	gson = '2.8.0'
 }
 dependencies {
 
@@ -83,4 +84,7 @@ dependencies {
 	// 工具类
 	compile("com.google.guava:guava:${google_guava}")
 	compile("org.apache.commons:commons-lang3:${apache_commons_lang3}")
+
+	//gson
+	compile("com.google.code.gson:gson:${gson}")
 }

+ 2 - 0
src/main/java/com/emato/cus/supervise/biz/acqInventoryInfo/AcqInventoryInfoBiz.java

@@ -5,6 +5,7 @@ import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
 import com.emato.cus.supervise.domain.WmsAcqInventoryInfo;
 import com.emato.cus.supervise.domainCus.CusAcqInventoryInfo03;
 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;
@@ -79,6 +80,7 @@ public class AcqInventoryInfoBiz implements CusWmsTask {
         List<OmsAcqInventoryInfo> omsList = acqInventoryInfoOmsData.getOmsData(merchSnList);
 
         if (omsList == null || omsList.isEmpty()) {
+            logger.error("wms扫描到的数据" + GsonUtil.toJson(wmsList));
             logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描OMS数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
             //下次扫描时间
             acqInventoryInfoRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),

+ 79 - 0
src/main/java/com/emato/cus/supervise/biz/acqShelfLoad/AcqShelfLoadBiz.java

@@ -0,0 +1,79 @@
+package com.emato.cus.supervise.biz.acqShelfLoad;
+
+import com.emato.cus.supervise.biz.CusWmsTask;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad;
+import com.emato.cus.supervise.domainCus.CusAcqShelfLoad04;
+import com.emato.cus.supervise.util.LocalDateTimeUtils;
+import com.google.common.collect.Maps;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zengjunlin
+ * @version 1.0
+ * 2018-02-03 11:25
+ */
+@Component
+public class AcqShelfLoadBiz  implements CusWmsTask{
+
+    private static final Logger logger = LoggerFactory.getLogger(AcqShelfLoadBiz.class);
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.ACQ_SHELF_LOAD.getCode() + "]" + EmtRecordTimeEnum.ACQ_SHELF_LOAD.getName();
+
+    @Autowired
+    private AcqShelfLoadRecordTime acqShelfLoadRecordTime;
+
+    @Autowired
+    private AcqShelfLoadCusData acqShelfLoadCusData;
+
+    @Autowired
+    private AcqShelfLoadWmsData acqShelfLoadWmsData;
+
+    @Autowired
+    private AcqShelfLoadDataConversion acqShelfLoadDataConversion;
+
+    /**
+     * 任务入口
+     */
+    @Override
+    public void task() {
+        // 获取扫描时间
+        String oldThisTime = acqShelfLoadRecordTime.getEmtRecordTime();
+        if (StringUtils.isBlank(oldThisTime)) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】未获取到本次扫描时间, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acqShelfLoadRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
+                    LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN));
+            return;
+
+        }
+
+        // 扫描WMS 数据
+        List<WmsAcqShelfLoad> wmsList = acqShelfLoadWmsData.getWmsData(oldThisTime);
+        if (wmsList == null || wmsList.size() == 0) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acqShelfLoadRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
+                    LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN));
+            return;
+        }
+        Map params = Maps.newHashMap();
+        params.put("wmsList",wmsList);
+        //组装CUS 数据
+        List<CusAcqShelfLoad04> cusList = acqShelfLoadDataConversion.conversion(params);
+
+        // 写CUS 数据
+        int res = acqShelfLoadCusData.insertCus(cusList);
+
+        // 更新扫描时间
+        boolean bl = acqShelfLoadRecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
+                oldThisTime);
+    }
+}

+ 44 - 0
src/main/java/com/emato/cus/supervise/biz/acqShelfLoad/AcqShelfLoadCusData.java

@@ -0,0 +1,44 @@
+package com.emato.cus.supervise.biz.acqShelfLoad;
+
+import com.emato.cus.supervise.biz.CusData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad;
+import com.emato.cus.supervise.domainCus.CusAcqShelfLoad04;
+import com.emato.cus.supervise.service.cus.CusAcqShelfLoadService04;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 货物上下架数据 上架 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:38
+ */
+@Component
+public class AcqShelfLoadCusData implements CusData {
+    private static final Logger logger = LoggerFactory.getLogger(AcqShelfLoadCusData.class);
+
+    @Autowired
+    private CusAcqShelfLoadService04 cusAcqShelfLoadService04;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.ACQ_SHELF_LOAD.getCode() + "]" + EmtRecordTimeEnum.ACQ_SHELF_LOAD.getName();
+
+
+    @Override
+    public int insertCus(List<?> list) {
+        logger.info("---------- 货物上下架数据::上架::写入本次监控数据开始 --------------------");
+
+        List<CusAcqShelfLoad04> cusList = (List<CusAcqShelfLoad04>) list;
+
+        int result = cusAcqShelfLoadService04.addCusAcqShelfLoad04(cusList);
+
+        logger.info("---【" + DATA_TYPE_INFO + "】写入监控数据:{} 条", result);
+
+        logger.info("---------- 货物上下架数据::上架::写入本次监控数据结束 --------------------");
+        return result;
+    }
+}

+ 75 - 0
src/main/java/com/emato/cus/supervise/biz/acqShelfLoad/AcqShelfLoadDataConversion.java

@@ -0,0 +1,75 @@
+package com.emato.cus.supervise.biz.acqShelfLoad;
+
+import com.emato.cus.supervise.biz.DataConversion;
+import com.emato.cus.supervise.constant.Dict;
+import com.emato.cus.supervise.domain.WmsAcqInventoryInfo;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad;
+import com.emato.cus.supervise.domainCus.CusAcqInventoryInfo03;
+import com.emato.cus.supervise.domainCus.CusAcqShelfLoad04;
+import com.emato.cus.supervise.domainOms.OmsAcqInventoryInfo;
+import com.google.common.collect.Lists;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * @author zengjunlin
+ * @version 1.0
+ * 2018-02-03 13:40
+ */
+@Component
+public class AcqShelfLoadDataConversion implements DataConversion {
+
+
+    private final static Logger logger = LoggerFactory.getLogger(AcqShelfLoadDataConversion.class);
+
+    /**
+     * 企业货物上下架信息组装
+     * 外部数据转换
+     * @param params
+     * @return
+     */
+    @Override
+    public List conversion(Map params) {
+        logger.info("开始转换oms,wms 组装cus数据===========================");
+        List<WmsAcqShelfLoad> wmsList = (List<WmsAcqShelfLoad>) 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<CusAcqShelfLoad04> cusAcqShelfLoad04List = Lists.newArrayList();
+        for (int i = 0; i < wmsList.size(); i++) {
+            WmsAcqShelfLoad wmsAcqShelfLoad = wmsList.get(i);
+            CusAcqShelfLoad04 cusAcqShelfLoad04 = new CusAcqShelfLoad04();
+            cusAcqShelfLoad04.setId(wmsAcqShelfLoad.getId());
+            cusAcqShelfLoad04.setGoodsName(wmsAcqShelfLoad.getGoodsName());
+            cusAcqShelfLoad04.setCodeTs(wmsAcqShelfLoad.getCodeTs());
+            cusAcqShelfLoad04.setFormNoDec(wmsAcqShelfLoad.getFormNoDec());
+            cusAcqShelfLoad04.setFormNo(wmsAcqShelfLoad.getFormNo());
+            cusAcqShelfLoad04.setSkuNo(wmsAcqShelfLoad.getSkuNo());
+            cusAcqShelfLoad04.setGoodsId(wmsAcqShelfLoad.getGoodsId());
+            cusAcqShelfLoad04.setgUnit(wmsAcqShelfLoad.getgUnit());
+            cusAcqShelfLoad04.setgQty(wmsAcqShelfLoad.getgQty());
+            cusAcqShelfLoad04.setLegalUnit(wmsAcqShelfLoad.getLegalUnit());
+            cusAcqShelfLoad04.setLegalQty(wmsAcqShelfLoad.getLegalQty());
+            cusAcqShelfLoad04.setGoodsModel(wmsAcqShelfLoad.getGoodsModel());
+            cusAcqShelfLoad04.setLocalEmsNo(Dict.localEmsNo);
+            cusAcqShelfLoad04.setSeatNo(wmsAcqShelfLoad.getSeatNo());
+            cusAcqShelfLoad04.setShelfLoadTime(wmsAcqShelfLoad.getShelfLoadTime());
+            cusAcqShelfLoad04.setShelfLoadType(wmsAcqShelfLoad.getShelfLoadType());
+            cusAcqShelfLoad04.setStoreCompanyName(Dict.storeCompanyName);
+            cusAcqShelfLoad04.setStoreUscCode(Dict.storeUscCode);
+            cusAcqShelfLoad04.setStoreCustomsCode(Dict.storeCustomsCode);
+            cusAcqShelfLoad04.setStoreCode(Dict.storeCode);
+            cusAcqShelfLoad04.setCreateTime(LocalDateTime.now());
+            cusAcqShelfLoad04List.add(cusAcqShelfLoad04);
+        }
+        logger.info("转换oms,wms 组装cus数据结束===========================");
+        return cusAcqShelfLoad04List;
+    }
+
+}

+ 102 - 0
src/main/java/com/emato/cus/supervise/biz/acqShelfLoad/AcqShelfLoadRecordTime.java

@@ -0,0 +1,102 @@
+package com.emato.cus.supervise.biz.acqShelfLoad;
+
+import com.emato.cus.supervise.biz.RecordTime;
+import com.emato.cus.supervise.constant.CommonConstant;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domainCus.EmtRecordTime;
+import com.emato.cus.supervise.service.cus.EmtRecordTimeService;
+import com.emato.cus.supervise.util.LocalDateTimeUtils;
+import com.google.common.collect.ImmutableMap;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 货物上下架数据 上架 扫描时间
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:18
+ */
+@Component
+public class AcqShelfLoadRecordTime implements RecordTime {
+    private static final Logger logger = LoggerFactory.getLogger(AcqShelfLoadRecordTime.class);
+
+    @Autowired
+    private EmtRecordTimeService emtRecordTimeService;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.ACQ_SHELF_LOAD.getCode() + "]" + EmtRecordTimeEnum.ACQ_SHELF_LOAD.getName();
+
+    /**
+     * 获取扫描时间
+     * @return
+     */
+    @Override
+    public String getEmtRecordTime() {
+        logger.info("---------- 货物上下架数据::上架::获取上次扫描时间开始 --------------------");
+
+        //根据数据类型, 取扫描时间
+        Map<String, Object> param = ImmutableMap.of("dataType", EmtRecordTimeEnum.ACQ_SHELF_LOAD.getCode());
+
+        List<EmtRecordTime> list = emtRecordTimeService.selectEmtRecordTime(param);
+        if (list == null || list.size() == 0) {
+            String err = "---【" + DATA_TYPE_INFO + "】取扫描时间数据为空.";
+            logger.error(err);
+            return null;
+        }
+
+        String oldLastTime = list.get(0).getLastTime();
+        String oldThisTime = list.get(0).getThisTime();
+
+        logger.info("---【" + DATA_TYPE_INFO + "】任务上次扫描时间:{}", oldLastTime);
+        logger.info("---【" + DATA_TYPE_INFO + "】任务本次扫描时间:{}", oldThisTime);
+
+        logger.info("---------- 货物上下架数据::上架::获取上次扫描时间结束 --------------------");
+        return oldThisTime;
+    }
+
+    /**
+     * 更新记录时间
+     *
+     * @param thisTime 当前时间作为下次扫描时间
+     * @param lastTime 本次扫描时间成为上次扫描时间
+     */
+    @Override
+    public boolean updateWmsRecordTime(String thisTime, String lastTime) {
+        logger.info("---------- 货物上下架数据::上架::更新扫描时间开始 --------------------");
+
+        if (StringUtils.isBlank(thisTime)) {
+            thisTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        }
+        if (StringUtils.isBlank(lastTime)) {
+            logger.info("---【" + DATA_TYPE_INFO + "】本次更新时间为空, 不能写入扫描时间表, 更新扫描时间提前结束.");
+            return false;
+        }
+
+        logger.info("---【" + DATA_TYPE_INFO + "】本次扫描时间为:{}, 下次扫描时间:{}.", lastTime, thisTime);
+
+        ImmutableMap.Builder builder = new ImmutableMap.Builder();
+        builder.put("dataType", EmtRecordTimeEnum.ACQ_SHELF_LOAD.getCode());
+        builder.put("lastTime", lastTime);
+        builder.put("thisTime", thisTime);
+        builder.put("moderSn", CommonConstant.moderSn);
+        builder.put("modTime", LocalDateTime.now());
+
+        int res = emtRecordTimeService.updateEmtRecordTime(builder.build());
+        String err = "---【" + DATA_TYPE_INFO + "】更新扫描时间'{" + (res == 1 ? "成功" : "失败, 结束本次扫描!!!") + "}'.";
+        logger.info(err);
+        if (res != 1) {
+            return false;
+        }
+
+        logger.info("---------- 货物上下架数据::上架::更新扫描时间结束 --------------------");
+
+        return res == 1;
+    }
+}

+ 57 - 0
src/main/java/com/emato/cus/supervise/biz/acqShelfLoad/AcqShelfLoadWmsData.java

@@ -0,0 +1,57 @@
+package com.emato.cus.supervise.biz.acqShelfLoad;
+
+import com.emato.cus.supervise.biz.WmsData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad;
+import com.emato.cus.supervise.service.wms.WmsAcqShelfLoadService;
+import com.google.common.collect.ImmutableMap;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 货物上下架数据 上架 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:24
+ */
+@Component
+public class AcqShelfLoadWmsData implements WmsData {
+    private static final Logger logger = LoggerFactory.getLogger(AcqShelfLoadWmsData.class);
+
+    @Autowired
+    private WmsAcqShelfLoadService wmsAcqShelfLoadService;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.ACQ_SHELF_LOAD.getCode() + "]" + EmtRecordTimeEnum.ACQ_SHELF_LOAD.getName();
+
+
+    @Override
+    public List getWmsData(String thisTime) {
+        logger.info("---------- 货物上下架数据::上架::获取本次监控数据开始 --------------------");
+
+        if (StringUtils.isBlank(thisTime)) {
+            String err = "---【" + DATA_TYPE_INFO + "】本次扫描时间为空.";
+            logger.error(err);
+            return Collections.EMPTY_LIST;
+        }
+
+        ImmutableMap param = ImmutableMap.of("thisTime", thisTime);
+        List<WmsAcqShelfLoad> resultList = wmsAcqShelfLoadService.getWmsAcqShelfLoadUp(param);
+
+        if (resultList == null || resultList.size() == 0) {
+            String err = "---【" + DATA_TYPE_INFO + "】获取本次监控数据为空.";
+            logger.error(err);
+            return Collections.EMPTY_LIST;
+        }
+        logger.info("---【" + DATA_TYPE_INFO + "】获取本次监控数据{}条.", resultList.size());
+
+        logger.info("---------- 货物上下架数据::上架::获取本次监控数据结束 --------------------");
+
+        return resultList;
+    }
+}

+ 1 - 0
src/main/java/com/emato/cus/supervise/constant/EmtRecordTimeEnum.java

@@ -7,6 +7,7 @@ package com.emato.cus.supervise.constant;
  */
 public enum EmtRecordTimeEnum {
     I_ACQ_INVENTORY_INFO("ACQ_INVENTORY_INFO", "企业库存信息"),
+    ACQ_SHELF_LOAD("ACQ_SHELF_LOAD", "企业货物上下架信息"),
     I_00("00", "货物库存数据"),
     I_01_01("01_01", "货物上下架_上架"),
     I_01_02("01_02", "货物上下架_退港"),

+ 239 - 0
src/main/java/com/emato/cus/supervise/domain/WmsAcqShelfLoad.java

@@ -0,0 +1,239 @@
+package com.emato.cus.supervise.domain;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 货物上下架数据 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 09:27
+ */
+public class WmsAcqShelfLoad implements Serializable {
+
+    private static final long serialVersionUID = 4088516799251099552L;
+
+    private String id;
+    private String goodsName;
+    private String codeTs;
+
+    private String formNoDec;
+    private String formNo;
+
+    private String skuNo;
+    private String goodsId;
+
+    private String gUnit;
+    private Double gQty;
+    private String legalUnit;
+    private Double legalQty;
+
+    private String goodsModel;
+    private String localEmsNo;
+
+    private String seatNo;
+    private LocalDateTime shelfLoadTime;
+    private String shelfLoadType;
+
+    private String storeCompanyName;
+    private String storeUscCode;
+    private String storeCustomsCode;
+    private String storeCode;
+
+    private String createrSn;
+    private LocalDateTime createTime;
+    private String moderSn;
+    private LocalDateTime modTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getGoodsName() {
+        return goodsName;
+    }
+
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    public String getCodeTs() {
+        return codeTs;
+    }
+
+    public void setCodeTs(String codeTs) {
+        this.codeTs = codeTs;
+    }
+
+    public String getFormNoDec() {
+        return formNoDec;
+    }
+
+    public void setFormNoDec(String formNoDec) {
+        this.formNoDec = formNoDec;
+    }
+
+    public String getFormNo() {
+        return formNo;
+    }
+
+    public void setFormNo(String formNo) {
+        this.formNo = formNo;
+    }
+
+    public String getSkuNo() {
+        return skuNo;
+    }
+
+    public void setSkuNo(String skuNo) {
+        this.skuNo = skuNo;
+    }
+
+    public String getGoodsId() {
+        return goodsId;
+    }
+
+    public void setGoodsId(String goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    public String getgUnit() {
+        return gUnit;
+    }
+
+    public void setgUnit(String gUnit) {
+        this.gUnit = gUnit;
+    }
+
+    public Double getgQty() {
+        return gQty;
+    }
+
+    public void setgQty(Double gQty) {
+        this.gQty = gQty;
+    }
+
+    public String getLegalUnit() {
+        return legalUnit;
+    }
+
+    public void setLegalUnit(String legalUnit) {
+        this.legalUnit = legalUnit;
+    }
+
+    public Double getLegalQty() {
+        return legalQty;
+    }
+
+    public void setLegalQty(Double legalQty) {
+        this.legalQty = legalQty;
+    }
+
+    public String getGoodsModel() {
+        return goodsModel;
+    }
+
+    public void setGoodsModel(String goodsModel) {
+        this.goodsModel = goodsModel;
+    }
+
+    public String getLocalEmsNo() {
+        return localEmsNo;
+    }
+
+    public void setLocalEmsNo(String localEmsNo) {
+        this.localEmsNo = localEmsNo;
+    }
+
+    public String getSeatNo() {
+        return seatNo;
+    }
+
+    public void setSeatNo(String seatNo) {
+        this.seatNo = seatNo;
+    }
+
+    public LocalDateTime getShelfLoadTime() {
+        return shelfLoadTime;
+    }
+
+    public void setShelfLoadTime(LocalDateTime shelfLoadTime) {
+        this.shelfLoadTime = shelfLoadTime;
+    }
+
+    public String getShelfLoadType() {
+        return shelfLoadType;
+    }
+
+    public void setShelfLoadType(String shelfLoadType) {
+        this.shelfLoadType = shelfLoadType;
+    }
+
+    public String getStoreCompanyName() {
+        return storeCompanyName;
+    }
+
+    public void setStoreCompanyName(String storeCompanyName) {
+        this.storeCompanyName = storeCompanyName;
+    }
+
+    public String getStoreUscCode() {
+        return storeUscCode;
+    }
+
+    public void setStoreUscCode(String storeUscCode) {
+        this.storeUscCode = storeUscCode;
+    }
+
+    public String getStoreCustomsCode() {
+        return storeCustomsCode;
+    }
+
+    public void setStoreCustomsCode(String storeCustomsCode) {
+        this.storeCustomsCode = storeCustomsCode;
+    }
+
+    public String getStoreCode() {
+        return storeCode;
+    }
+
+    public void setStoreCode(String storeCode) {
+        this.storeCode = storeCode;
+    }
+
+    public String getCreaterSn() {
+        return createrSn;
+    }
+
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    public LocalDateTime getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(LocalDateTime createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getModerSn() {
+        return moderSn;
+    }
+
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    public LocalDateTime getModTime() {
+        return modTime;
+    }
+
+    public void setModTime(LocalDateTime modTime) {
+        this.modTime = modTime;
+    }
+}

+ 15 - 0
src/main/java/com/emato/cus/supervise/mapper/WmsAcqShelfLoadMapper.java

@@ -0,0 +1,15 @@
+package com.emato.cus.supervise.mapper;
+
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map; /**
+ * @author zengjunlin
+ * @version 1.0
+ * 2018-02-03 11:40
+ */
+@Repository
+public interface WmsAcqShelfLoadMapper {
+    List<WmsAcqShelfLoad> getWmsAcqShelfLoadUp(Map<String, Object> param);
+}

+ 3 - 4
src/main/java/com/emato/cus/supervise/schedule/AcqInventoryInfo.java → src/main/java/com/emato/cus/supervise/schedule/AcqInventoryInfoSchedule.java

@@ -17,9 +17,9 @@ import org.springframework.scheduling.annotation.Scheduled;
  */
 @Configuration
 @EnableScheduling
-public class AcqInventoryInfo {
+public class AcqInventoryInfoSchedule {
 
-    private static final Logger logger = LoggerFactory.getLogger(AcqInventoryInfo.class);
+    private static final Logger logger = LoggerFactory.getLogger(AcqInventoryInfoSchedule.class);
 
     @Autowired
     private AcqInventoryInfoBiz acqInventoryInfoBiz;
@@ -28,8 +28,7 @@ public class AcqInventoryInfo {
      * 货物库存数据
      */
     //每月1号开始,每天12,22点各1次,共2次
-    //@Scheduled(cron = "0 0 12,22 1/1 * ?")
-    @Scheduled(cron = "10/10 * * * * ? ")
+    @Scheduled(cron = "0 0 12,22 1/1 * ?")
     public void timer() {
         logger.info("==================== 货物库存数据::监控数据读取开始 ====================");
         String begDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);

+ 48 - 0
src/main/java/com/emato/cus/supervise/schedule/AcqShelfLoadSchedule.java

@@ -0,0 +1,48 @@
+package com.emato.cus.supervise.schedule;
+
+import com.emato.cus.supervise.biz.acqShelfLoad.AcqShelfLoadBiz;
+import com.emato.cus.supervise.util.LocalDateTimeUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+
+/**
+ *
+ * @Configuration
+ * @EnableScheduling
+ * @author zengjunlin
+ * @version 1.0
+ * 2018-02-03 11:11
+ */
+@Configuration
+@EnableScheduling
+public class AcqShelfLoadSchedule {
+
+    private static final Logger logger = LoggerFactory.getLogger(AcqShelfLoadSchedule.class);
+
+    @Autowired
+    private AcqShelfLoadBiz acqShelfLoadBiz;
+    /**
+     * 上架
+     */
+    //每月1号开始,每天10,18点执行各1次,共2次
+    //@Scheduled(cron = "0 0 10,18 1/1 * ?")
+    @Scheduled(cron = "0/10 * * * * ? ")
+    public void timerUp() {
+        logger.info("==================== 货物上下架数据::上架::监控数据读取开始 ====================");
+        String begDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务开始时间: {}", begDateTime);
+
+        acqShelfLoadBiz.task();
+
+
+        String endDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务结束时间: {}", endDateTime);
+        logger.info("==================== 货物上下架数据::上架::监控数据读取结束 ====================");
+
+    }
+
+}

+ 21 - 0
src/main/java/com/emato/cus/supervise/service/wms/WmsAcqShelfLoadService.java

@@ -0,0 +1,21 @@
+package com.emato.cus.supervise.service.wms;
+
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zengjunlin
+ * @version 1.0
+ * 2018-02-03 11:38
+ */
+public interface WmsAcqShelfLoadService {
+
+    /**
+     * 货物上下架数据 上架
+     * @param param
+     * @return
+     */
+    List<WmsAcqShelfLoad> getWmsAcqShelfLoadUp(Map<String, Object> param);
+}

+ 33 - 0
src/main/java/com/emato/cus/supervise/service/wms/impl/WmsAcqShelfLoadServiceImpl.java

@@ -0,0 +1,33 @@
+package com.emato.cus.supervise.service.wms.impl;
+
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad;
+import com.emato.cus.supervise.mapper.WmsAcqShelfLoadMapper;
+import com.emato.cus.supervise.service.wms.WmsAcqShelfLoadService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 货物上下架数据 WMS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 16:30
+ */
+@Service
+public class WmsAcqShelfLoadServiceImpl implements WmsAcqShelfLoadService {
+
+    @Autowired
+    private WmsAcqShelfLoadMapper wmsAcqShelfLoadMapper;
+
+    @Override
+    @Transactional(value ="primaryTransactionManager")
+    public List<WmsAcqShelfLoad> getWmsAcqShelfLoadUp(Map<String, Object> param) {
+        return wmsAcqShelfLoadMapper.getWmsAcqShelfLoadUp(param);
+    }
+
+
+}

+ 121 - 0
src/main/java/com/emato/cus/supervise/util/GsonUtil.java

@@ -0,0 +1,121 @@
+package com.emato.cus.supervise.util;
+
+import com.google.gson.*;
+import com.google.gson.reflect.TypeToken;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zengjunlin
+ * @version 1.0
+ * 2017-11-22 14:22
+ */
+public class GsonUtil {
+
+    private static Gson gson = null;
+    static {
+        if (gson == null) {
+            gson =  new GsonBuilder().serializeNulls().create();
+        }
+    }
+
+    private GsonUtil() {
+    }
+
+    /**
+     * 转成json
+     *
+     * @param object
+     * @return
+     */
+    public static String toJson(Object object) {
+        String gsonString = null;
+        if (gson != null) {
+            gsonString = gson.toJson(object);
+        }
+        return gsonString;
+    }
+
+    /**
+     * 转成bean
+     *
+     * @param gsonString
+     * @param cls
+     * @return
+     */
+    public static <T> T fromJson(String gsonString, Class<T> cls) {
+        T t = null;
+        if (gson != null) {
+            t = gson.fromJson(gsonString, cls);
+        }
+        return t;
+    }
+
+    /**
+     * 转成list
+     * 泛型在编译期类型被擦除导致报错
+     * @param gsonString
+     * @param cls
+     * @return
+     */
+    public static <T> List<T> gsonToList(String gsonString, Class<T> cls) {
+        List<T> list = null;
+        if (gson != null) {
+            list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
+            }.getType());
+        }
+        return list;
+    }
+
+    /**
+     * 转成list
+     * 解决泛型问题
+     * @param json
+     * @param cls
+     * @param <T>
+     * @return
+     */
+    public static  <T> List<T> jsonToList(String json, Class<T> cls) {
+        Gson gson = new Gson();
+        List<T> list = new ArrayList<T>();
+        JsonArray array = new JsonParser().parse(json).getAsJsonArray();
+        for(final JsonElement elem : array){
+            list.add(gson.fromJson(elem, cls));
+        }
+        return list;
+    }
+
+
+    /**
+     * 转成list中有map的
+     *
+     * @param gsonString
+     * @return
+     */
+    public static <T> List<Map<String, T>> gsonToListMaps(String gsonString) {
+        List<Map<String, T>> list = null;
+        if (gson != null) {
+            list = gson.fromJson(gsonString,
+                    new TypeToken<List<Map<String, T>>>() {
+                    }.getType());
+        }
+        return list;
+    }
+
+    /**
+     * 转成map的
+     *
+     * @param gsonString
+     * @return
+     */
+    public static <T> Map<String, T> gsonToMaps(String gsonString) {
+        Map<String, T> map = null;
+        if (gson != null) {
+            map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
+            }.getType());
+        }
+        return map;
+    }
+}

+ 36 - 0
src/main/resources/mybatis/mapper/wms-acq-shelf-load.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.emato.cus.supervise.mapper.WmsAcqShelfLoadMapper">
+
+    <!-- 企业货物上下架信息: 上架查询 -->
+    <select id="getWmsAcqShelfLoadUp" parameterType="java.util.Map"
+            resultType="com.emato.cus.supervise.domain.WmsAcqShelfLoad">
+			SELECT
+				rc.created AS shelfLoadTime,
+				rc.itemCode AS skuNo,
+				rc.itemCode AS codeTs,
+				rc.itemCode AS goodsId,
+				rc.quantity AS gQty,
+				rc.toLocation AS seatNo,
+				i.unitDesc AS gUnit,
+				'E' AS shelfLoadType,
+				i.`name` AS goodsName,
+				CONCAT(
+					i.itemSize,
+					'-',
+					i.itemColor,
+					'-',
+					i.itemStyle
+				) AS goodsModel
+			FROM
+				receipt_container rc
+			LEFT JOIN item i ON rc.itemcode = i. CODE
+		<where>
+			<if test="thisTime != null">
+				rc.created &gt;= #{thisTime}
+			</if>
+		</where>
+    </select>
+
+</mapper>

+ 1 - 0
src/main/resources/mybatis/mybatis-config.xml

@@ -6,6 +6,7 @@
     <mappers>
         <!--使用相对于mybatis-config.xml的路径-->
         <mapper resource="mybatis/mapper/wms-acq-inventory-info.xml"/>
+        <mapper resource="mybatis/mapper/wms-acq-shelf-load.xml"/>
 
     </mappers>
 </configuration>

+ 5 - 0
src/sql/emt-record-time-2.0.sql

@@ -1,4 +1,9 @@
 DELETE FROM emt_record_time;
+--企业库存信息
 INSERT INTO emt_record_time (data_type, last_time, this_time, creater_sn, create_time, moder_sn, mod_time) VALUES (
   'ACQ_INVENTORY_INFO', '2018-02-02 14:11:30', '2018-02-02 14:11:30', '1', now(), '1', now()
+);
+-- 企业货物上下架信息
+INSERT INTO emt_record_time (data_type, last_time, this_time, creater_sn, create_time, moder_sn, mod_time) VALUES (
+  'ACQ_SHELF_LOAD', '2018-02-02 14:11:30', '2018-02-02 14:11:30', '1', now(), '1', now()
 );