csk 7 лет назад
Сommit
0d2e89a1d4
100 измененных файлов с 6457 добавлено и 0 удалено
  1. 25 0
      .gitignore
  2. 5 0
      README.md
  3. 87 0
      build.gradle
  4. 23 0
      src/main/java/com/emato/cus/supervise/CusWmsSuperviseApplication.java
  5. 88 0
      src/main/java/com/emato/cus/supervise/aop/AspectWebLog.java
  6. 18 0
      src/main/java/com/emato/cus/supervise/biz/CusData.java
  7. 14 0
      src/main/java/com/emato/cus/supervise/biz/CusWmsTask.java
  8. 24 0
      src/main/java/com/emato/cus/supervise/biz/RecordTime.java
  9. 21 0
      src/main/java/com/emato/cus/supervise/biz/WmsData.java
  10. 48 0
      src/main/java/com/emato/cus/supervise/biz/acq03inve/Acq03CusData.java
  11. 103 0
      src/main/java/com/emato/cus/supervise/biz/acq03inve/Acq03RecordTime.java
  12. 58 0
      src/main/java/com/emato/cus/supervise/biz/acq03inve/Acq03WmsData.java
  13. 73 0
      src/main/java/com/emato/cus/supervise/biz/acq03inve/AcqInventoryInfoBiz03.java
  14. 48 0
      src/main/java/com/emato/cus/supervise/biz/acq0401up/Acq0401CusData.java
  15. 102 0
      src/main/java/com/emato/cus/supervise/biz/acq0401up/Acq0401RecordTime.java
  16. 58 0
      src/main/java/com/emato/cus/supervise/biz/acq0401up/Acq0401WmsData.java
  17. 72 0
      src/main/java/com/emato/cus/supervise/biz/acq0401up/AcqShelfLoadUpBiz04.java
  18. 48 0
      src/main/java/com/emato/cus/supervise/biz/acq0402back/Acq0402CusData.java
  19. 102 0
      src/main/java/com/emato/cus/supervise/biz/acq0402back/Acq0402RecordTime.java
  20. 58 0
      src/main/java/com/emato/cus/supervise/biz/acq0402back/Acq0402WmsData.java
  21. 71 0
      src/main/java/com/emato/cus/supervise/biz/acq0402back/AcqShelfLoadBackBiz04.java
  22. 48 0
      src/main/java/com/emato/cus/supervise/biz/acq0403out/Acq0403CusData.java
  23. 102 0
      src/main/java/com/emato/cus/supervise/biz/acq0403out/Acq0403RecordTime.java
  24. 58 0
      src/main/java/com/emato/cus/supervise/biz/acq0403out/Acq0403WmsData.java
  25. 74 0
      src/main/java/com/emato/cus/supervise/biz/acq0403out/AcqShelfLoadOutBiz04.java
  26. 48 0
      src/main/java/com/emato/cus/supervise/biz/acq05move/Acq05CusData.java
  27. 102 0
      src/main/java/com/emato/cus/supervise/biz/acq05move/Acq05RecordTime.java
  28. 58 0
      src/main/java/com/emato/cus/supervise/biz/acq05move/Acq05WmsData.java
  29. 73 0
      src/main/java/com/emato/cus/supervise/biz/acq05move/AcqGoodsMoveBiz05.java
  30. 48 0
      src/main/java/com/emato/cus/supervise/biz/acq06Seat/Acq06CusData.java
  31. 102 0
      src/main/java/com/emato/cus/supervise/biz/acq06Seat/Acq06RecordTime.java
  32. 58 0
      src/main/java/com/emato/cus/supervise/biz/acq06Seat/Acq06WmsData.java
  33. 73 0
      src/main/java/com/emato/cus/supervise/biz/acq06Seat/AcqGoodsSeatBiz06.java
  34. 30 0
      src/main/java/com/emato/cus/supervise/config/SpringPropertyResolverConfig.java
  35. 72 0
      src/main/java/com/emato/cus/supervise/config/ds/primary/PrimaryDataSourceConfig.java
  36. 42 0
      src/main/java/com/emato/cus/supervise/config/ds/primary/PrimaryMapperConfig.java
  37. 71 0
      src/main/java/com/emato/cus/supervise/config/ds/second/SecondDataSourceConfig.java
  38. 42 0
      src/main/java/com/emato/cus/supervise/config/ds/second/SecondMapperConfig.java
  39. 65 0
      src/main/java/com/emato/cus/supervise/config/httpMsgCvt/CustomHttpMessageConverterConfig.java
  40. 52 0
      src/main/java/com/emato/cus/supervise/config/jackson/JacksonObjectMapper.java
  41. 32 0
      src/main/java/com/emato/cus/supervise/config/servlet/ServletConfig.java
  42. 20 0
      src/main/java/com/emato/cus/supervise/constant/CommonConstant.java
  43. 40 0
      src/main/java/com/emato/cus/supervise/constant/EmtRecordTimeEnum.java
  44. 231 0
      src/main/java/com/emato/cus/supervise/domain/WmsAcqGoodsMove05.java
  45. 238 0
      src/main/java/com/emato/cus/supervise/domain/WmsAcqGoodsSeat06.java
  46. 209 0
      src/main/java/com/emato/cus/supervise/domain/WmsAcqInventoryInfo03.java
  47. 239 0
      src/main/java/com/emato/cus/supervise/domain/WmsAcqShelfLoad04.java
  48. 231 0
      src/main/java/com/emato/cus/supervise/domainCus/CusAcqGoodsMove05.java
  49. 238 0
      src/main/java/com/emato/cus/supervise/domainCus/CusAcqGoodsSeat06.java
  50. 209 0
      src/main/java/com/emato/cus/supervise/domainCus/CusAcqInventoryInfo03.java
  51. 239 0
      src/main/java/com/emato/cus/supervise/domainCus/CusAcqShelfLoad04.java
  52. 78 0
      src/main/java/com/emato/cus/supervise/domainCus/EmtRecordTime.java
  53. 63 0
      src/main/java/com/emato/cus/supervise/entity/Wms2CusAcqGoodsMove05.java
  54. 65 0
      src/main/java/com/emato/cus/supervise/entity/Wms2CusAcqGoodsSeat06.java
  55. 60 0
      src/main/java/com/emato/cus/supervise/entity/Wms2CusAcqInventoryInfo03.java
  56. 66 0
      src/main/java/com/emato/cus/supervise/entity/Wms2CusAcqShelfLoad04.java
  57. 24 0
      src/main/java/com/emato/cus/supervise/mapper/WmsAcqGoodsMoveMapper05.java
  58. 24 0
      src/main/java/com/emato/cus/supervise/mapper/WmsAcqGoodsSeatMapper06.java
  59. 23 0
      src/main/java/com/emato/cus/supervise/mapper/WmsAcqInventoryInfoMapper03.java
  60. 37 0
      src/main/java/com/emato/cus/supervise/mapper/WmsAcqShelfLoadMapper04.java
  61. 23 0
      src/main/java/com/emato/cus/supervise/mapperCus/CusAcqGoodsMoveMapper05.java
  62. 23 0
      src/main/java/com/emato/cus/supervise/mapperCus/CusAcqGoodsSeatMapper06.java
  63. 22 0
      src/main/java/com/emato/cus/supervise/mapperCus/CusAcqInventoryInfoMapper03.java
  64. 22 0
      src/main/java/com/emato/cus/supervise/mapperCus/CusAcqShelfLoadMapper04.java
  65. 22 0
      src/main/java/com/emato/cus/supervise/mapperCus/EmtRecordTimeMapper.java
  66. 57 0
      src/main/java/com/emato/cus/supervise/msg/MessageException.java
  67. 25 0
      src/main/java/com/emato/cus/supervise/msg/Messages.java
  68. 166 0
      src/main/java/com/emato/cus/supervise/msg/ResponseMessage.java
  69. 79 0
      src/main/java/com/emato/cus/supervise/msg/ResponseMessageData.java
  70. 49 0
      src/main/java/com/emato/cus/supervise/schedule/AcqGoodsMoveSchedule05.java
  71. 50 0
      src/main/java/com/emato/cus/supervise/schedule/AcqGoodsSeatSchedule06.java
  72. 48 0
      src/main/java/com/emato/cus/supervise/schedule/AcqInventoryInfoSchedule03.java
  73. 96 0
      src/main/java/com/emato/cus/supervise/schedule/AcqShelfLoadSchedule04.java
  74. 20 0
      src/main/java/com/emato/cus/supervise/service/cus/CusAcqGoodsMoveService05.java
  75. 20 0
      src/main/java/com/emato/cus/supervise/service/cus/CusAcqGoodsSeatService06.java
  76. 20 0
      src/main/java/com/emato/cus/supervise/service/cus/CusAcqInventoryInfoService03.java
  77. 20 0
      src/main/java/com/emato/cus/supervise/service/cus/CusAcqShelfLoadService04.java
  78. 19 0
      src/main/java/com/emato/cus/supervise/service/cus/EmtRecordTimeService.java
  79. 30 0
      src/main/java/com/emato/cus/supervise/service/cus/impl/CusAcqGoodsMoveSeatServiceImpl06.java
  80. 30 0
      src/main/java/com/emato/cus/supervise/service/cus/impl/CusAcqGoodsMoveServiceImpl05.java
  81. 30 0
      src/main/java/com/emato/cus/supervise/service/cus/impl/CusAcqInventoryInfoServiceImpl03.java
  82. 30 0
      src/main/java/com/emato/cus/supervise/service/cus/impl/CusAcqShelfLoadServiceImpl04.java
  83. 36 0
      src/main/java/com/emato/cus/supervise/service/cus/impl/EmtRecordTimeServiceImpl.java
  84. 23 0
      src/main/java/com/emato/cus/supervise/service/wms/WmsAcqGoodsMoveService05.java
  85. 23 0
      src/main/java/com/emato/cus/supervise/service/wms/WmsAcqGoodsSeatService06.java
  86. 22 0
      src/main/java/com/emato/cus/supervise/service/wms/WmsAcqInventoryInfoService03.java
  87. 36 0
      src/main/java/com/emato/cus/supervise/service/wms/WmsAcqShelfLoadService04.java
  88. 31 0
      src/main/java/com/emato/cus/supervise/service/wms/impl/WmsAcqGoodsMoveServiceImpl05.java
  89. 31 0
      src/main/java/com/emato/cus/supervise/service/wms/impl/WmsAcqGoodsSeatServiceImpl06.java
  90. 31 0
      src/main/java/com/emato/cus/supervise/service/wms/impl/WmsAcqInventoryInfoServiceImpl03.java
  91. 43 0
      src/main/java/com/emato/cus/supervise/service/wms/impl/WmsAcqShelfLoadServiceImpl04.java
  92. 110 0
      src/main/java/com/emato/cus/supervise/util/LocalDateTimeUtils.java
  93. 11 0
      src/main/resources/application-dev.yml
  94. 62 0
      src/main/resources/application.yml
  95. 125 0
      src/main/resources/logback.xml
  96. 35 0
      src/main/resources/mybatis/mapper/wms-acq-goods-move.xml
  97. 32 0
      src/main/resources/mybatis/mapper/wms-acq-goods-seat.xml
  98. 29 0
      src/main/resources/mybatis/mapper/wms-acq-inventory-info.xml
  99. 86 0
      src/main/resources/mybatis/mapper/wms-acq-shelf-load.xml
  100. 60 0
      src/main/resources/mybatis/mapperCus/cus-acq-goods-move.xml

+ 25 - 0
.gitignore

@@ -0,0 +1,25 @@
+.gradle
+/build/
+!gradle/wrapper/gradle-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+nbproject/private/
+build/
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/

+ 5 - 0
README.md

@@ -0,0 +1,5 @@
+# 旧WMS数据抓取
+
+
+旧WMS数据抓到海关监管系统
+

+ 87 - 0
build.gradle

@@ -0,0 +1,87 @@
+buildscript {
+	ext {
+		springBootVersion = '1.5.8.RELEASE'
+	}
+	repositories {
+		/*本地仓库*/
+		mavenLocal()
+		jcenter()
+		mavenCentral()
+		maven {
+			url "http://central.maven.org/maven2"
+		}
+	}
+	dependencies {
+		classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
+	}
+}
+
+apply plugin: 'java'
+apply plugin: 'org.springframework.boot'
+apply plugin: 'war'
+
+group = 'com.emato'
+version = '1.0.0'
+sourceCompatibility = 1.8
+
+// 解决中文乱码
+tasks.withType(JavaCompile) {
+	options.encoding = "UTF-8"
+}
+
+repositories {
+	/*本地仓库*/
+	mavenLocal()
+	jcenter()
+	mavenCentral()
+	maven {
+		url('http://central.maven.org/maven2')
+	}
+}
+
+ext {
+	mybatis_spring_boot = '1.3.1'
+	mybatis_typehandlers_jsr310 = '1.0.2'
+
+	logback_ext_spring = '0.1.4'
+
+	jackson = '2.8.4'
+	google_guava = '23.3-jre'
+	cage = '1.0'
+	okhttp = '3.4.1'
+	apache_commons_lang3 = '3.6'
+}
+dependencies {
+
+	// Spring Boot
+	testCompile('org.springframework.boot:spring-boot-starter-test')
+
+	compile('org.springframework.boot:spring-boot-starter-web')
+	compile('org.springframework.boot:spring-boot-starter-aop')
+
+
+	compile('org.springframework.boot:spring-boot-starter-jdbc')
+	// Mybatis Spring Boot
+	compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:${mybatis_spring_boot}")
+	// Mybatis支持使用LocalDateTime
+	compile("org.mybatis:mybatis-typehandlers-jsr310:${mybatis_typehandlers_jsr310}")
+
+	/*runtime('mysql:mysql-connector-java')*/
+	runtime('com.microsoft.sqlserver:mssql-jdbc')
+	// Mariadb jdbc
+	compile('org.mariadb.jdbc:mariadb-java-client')
+	// HikariCP
+	compile('com.zaxxer:HikariCP')
+
+
+	// logback对spring的支持
+	compile("org.logback-extensions:logback-ext-spring:${logback_ext_spring}")
+	// 数据序列化
+	compile("com.fasterxml.jackson.core:jackson-databind:${jackson}")
+	compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:${jackson}")
+	compile("com.fasterxml.jackson.module:jackson-module-afterburner:${jackson}")
+
+	// 工具类
+	compile("com.google.guava:guava:${google_guava}")
+	compile("org.apache.commons:commons-lang3:${apache_commons_lang3}")
+}

+ 23 - 0
src/main/java/com/emato/cus/supervise/CusWmsSuperviseApplication.java

@@ -0,0 +1,23 @@
+package com.emato.cus.supervise;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+@SpringBootApplication(
+		exclude ={
+				// 多数据源,不使用自动配置
+				DataSourceAutoConfiguration.class
+		},scanBasePackages = {
+		"com.emato.cus.supervise"
+	}
+)
+//允许事务
+@EnableTransactionManagement
+public class CusWmsSuperviseApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(CusWmsSuperviseApplication.class, args);
+	}
+}

+ 88 - 0
src/main/java/com/emato/cus/supervise/aop/AspectWebLog.java

@@ -0,0 +1,88 @@
+package com.emato.cus.supervise.aop;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Map;
+
+/**
+ * Created by Anyx on 2015/5/13.
+ * 日志AOP
+ */
+
+@Aspect
+public class AspectWebLog {
+    private static final Logger logger = LoggerFactory.getLogger(AspectWebLog.class);
+    ObjectMapper mapper = new ObjectMapper();
+    /**
+     * 方法开始前执行
+     * @param jp:JoinPoint
+     * @return
+     */
+    public void beforeAdvice(JoinPoint jp) {
+        try {
+            Object[] args = jp.getArgs();
+
+            StringBuffer sb = new StringBuffer();
+            String str = null;
+
+            if (args[0] instanceof Map) {
+                Map<String, String> map = (Map<String, String>) args[0];
+                str = mapper.writeValueAsString(map);
+            }else{
+                str = mapper.writeValueAsString(args[0]);
+            }
+            logger.info("入参:{}", str);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 方法返回后执行
+     * @param jp:JoinPoint
+     * @param retValue:String 主体方法传递到通知方法的返回值
+     * @return
+     */
+    public void afterReturningAdvice(JoinPoint jp, String retValue) {
+        logger.info("出参:{}",retValue);
+    }
+
+    /**
+     * 方法异常后执行
+     * @param jp:JoinPoint
+     * @return
+     */
+    public void afterThrowingAdvice(JoinPoint jp) {
+        logger.info("异常结束后:{}");
+    }
+
+    /**
+     * 方法完后执行,无论成功还是异常
+     * @param jp:JoinPoint
+     * @return
+     */
+    public void afterAdvice(JoinPoint jp) {
+        logger.info("执行结束后:{}");
+    }
+
+    /**
+     * 主体方法返回后将执行的通知方法
+     * @param pjp:ProceedingJoinPoint
+     * @return
+     */
+    public Object aroundAdvice(ProceedingJoinPoint pjp) throws Throwable {
+        long bftime = System.currentTimeMillis();
+        Object retVal = pjp.proceed();
+        double time =(double)(System.currentTimeMillis() - bftime) / 1000;
+        logger.debug("执行时间:{}秒", time);
+        return retVal;
+    }
+
+}

+ 18 - 0
src/main/java/com/emato/cus/supervise/biz/CusData.java

@@ -0,0 +1,18 @@
+package com.emato.cus.supervise.biz;
+
+import java.util.List;
+
+/**
+ * CUS 数据
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 11:59
+ */
+public interface CusData {
+    /**
+     * 写入CUS 数据
+     * @param list
+     * @return
+     */
+    int insertCus(List<?> list);
+}

+ 14 - 0
src/main/java/com/emato/cus/supervise/biz/CusWmsTask.java

@@ -0,0 +1,14 @@
+package com.emato.cus.supervise.biz;
+
+/**
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 13:41
+ */
+public interface CusWmsTask {
+    /**
+     * 任务入口
+     */
+    void task();
+
+}

+ 24 - 0
src/main/java/com/emato/cus/supervise/biz/RecordTime.java

@@ -0,0 +1,24 @@
+package com.emato.cus.supervise.biz;
+
+/**
+ * 扫描时间
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 11:56
+ */
+public interface RecordTime {
+    /**
+     * 获取扫描时间
+     * @return
+     */
+    String getEmtRecordTime();
+
+    /**
+     * 更新记录时间
+     *
+     * @param thisTime 当前时间作为下次扫描时间
+     * @param lastTime 本次扫描时间成为上次扫描时间
+     * @return
+     */
+    boolean updateWmsRecordTime(String thisTime, String lastTime);
+}

+ 21 - 0
src/main/java/com/emato/cus/supervise/biz/WmsData.java

@@ -0,0 +1,21 @@
+package com.emato.cus.supervise.biz;
+
+import java.util.List;
+
+/**
+ * WMS 数据
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 11:57
+ */
+public interface WmsData {
+    /**
+     * 获取WMS 数据
+     * @param thisTime
+     * @return
+     */
+    List getWmsData(String thisTime);
+
+
+}
+

+ 48 - 0
src/main/java/com/emato/cus/supervise/biz/acq03inve/Acq03CusData.java

@@ -0,0 +1,48 @@
+package com.emato.cus.supervise.biz.acq03inve;
+
+import com.emato.cus.supervise.biz.CusData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqInventoryInfo03;
+import com.emato.cus.supervise.domainCus.CusAcqInventoryInfo03;
+import com.emato.cus.supervise.entity.Wms2CusAcqInventoryInfo03;
+import com.emato.cus.supervise.service.cus.CusAcqInventoryInfoService03;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 货物库存数据 业务 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:38
+ */
+@Component
+public class Acq03CusData implements CusData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq03CusData.class);
+
+    @Autowired
+    private CusAcqInventoryInfoService03 cusAcqInventoryInfoService03;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_00.getCode() + "]" + EmtRecordTimeEnum.I_00.getName();
+
+
+    @Override
+    public int insertCus(List<?> list) {
+        logger.info("---------- 货物库存数据::写入本次监控数据开始 --------------------");
+
+        List<WmsAcqInventoryInfo03> wmsList = (List<WmsAcqInventoryInfo03>) list;
+
+        List<CusAcqInventoryInfo03> cusList = Wms2CusAcqInventoryInfo03.toCus(wmsList);
+
+        int result = cusAcqInventoryInfoService03.addCusAcqInventoryInfo(cusList);
+
+        logger.info("---【" + DATA_TYPE_INFO + "】写入监控数据:{} 条", result);
+
+        logger.info("---------- 货物库存数据::写入本次监控数据结束 --------------------");
+        return result;
+    }
+}

+ 103 - 0
src/main/java/com/emato/cus/supervise/biz/acq03inve/Acq03RecordTime.java

@@ -0,0 +1,103 @@
+package com.emato.cus.supervise.biz.acq03inve;
+
+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 Acq03RecordTime implements RecordTime {
+    private static final Logger logger = LoggerFactory.getLogger(Acq03RecordTime.class);
+
+    @Autowired
+    private EmtRecordTimeService emtRecordTimeService;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_00.getCode() + "]" + EmtRecordTimeEnum.I_00.getName();
+
+    /**
+     * 获取扫描时间
+     * @return
+     */
+    @Override
+    public String getEmtRecordTime() {
+        logger.info("---------- 货物库存数据::获取上次扫描时间开始 --------------------");
+
+        //根据数据类型, 取扫描时间
+        Map<String, Object> param = ImmutableMap.of("dataType", EmtRecordTimeEnum.I_00.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.I_00.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;
+    }
+}

+ 58 - 0
src/main/java/com/emato/cus/supervise/biz/acq03inve/Acq03WmsData.java

@@ -0,0 +1,58 @@
+package com.emato.cus.supervise.biz.acq03inve;
+
+import com.emato.cus.supervise.biz.WmsData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqInventoryInfo03;
+import com.emato.cus.supervise.service.wms.WmsAcqInventoryInfoService03;
+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 org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 货物库存数据 业务 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:24
+ */
+@Component
+public class Acq03WmsData implements WmsData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq03WmsData.class);
+
+    @Autowired
+    private WmsAcqInventoryInfoService03 wmsAcqInventoryInfoService03;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_00.getCode() + "]" + EmtRecordTimeEnum.I_00.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<WmsAcqInventoryInfo03> resultList = wmsAcqInventoryInfoService03.getWmsAcqInventoryInfo(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;
+    }
+}

+ 73 - 0
src/main/java/com/emato/cus/supervise/biz/acq03inve/AcqInventoryInfoBiz03.java

@@ -0,0 +1,73 @@
+package com.emato.cus.supervise.biz.acq03inve;
+
+import com.emato.cus.supervise.biz.CusWmsTask;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqInventoryInfo03;
+import com.emato.cus.supervise.util.LocalDateTimeUtils;
+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 org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 货物库存数据 业务
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 13:35
+ */
+@Component
+public class AcqInventoryInfoBiz03 implements CusWmsTask {
+    private static final Logger logger = LoggerFactory.getLogger(AcqInventoryInfoBiz03.class);
+
+    @Autowired
+    private Acq03RecordTime acq03RecordTime;
+
+    @Autowired
+    private Acq03WmsData acq03WmsData;
+
+    @Autowired
+    private Acq03CusData acq03CusData;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_00.getCode() + "]" + EmtRecordTimeEnum.I_00.getName();
+
+
+    /**
+     * 任务入口
+     */
+    @Override
+    public void task() {
+
+        // 获取扫描时间
+        String oldThisTime = acq03RecordTime.getEmtRecordTime();
+        if (StringUtils.isBlank(oldThisTime)) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】未获取到本次扫描时间, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq03RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
+                    LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN));
+            return;
+
+        }
+
+        // 扫描WMS 数据
+        List<WmsAcqInventoryInfo03> wmsList = acq03WmsData.getWmsData(oldThisTime);
+        if (wmsList == null || wmsList.size() == 0) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq03RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+            return;
+        }
+
+        // 写CUS 数据
+        int res = acq03CusData.insertCus(wmsList);
+
+        // 更新扫描时间
+        boolean bl = acq03RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+
+    }
+
+
+}

+ 48 - 0
src/main/java/com/emato/cus/supervise/biz/acq0401up/Acq0401CusData.java

@@ -0,0 +1,48 @@
+package com.emato.cus.supervise.biz.acq0401up;
+
+import com.emato.cus.supervise.biz.CusData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import com.emato.cus.supervise.domainCus.CusAcqShelfLoad04;
+import com.emato.cus.supervise.entity.Wms2CusAcqShelfLoad04;
+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 org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 货物上下架数据 上架 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:38
+ */
+@Component
+public class Acq0401CusData implements CusData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq0401CusData.class);
+
+    @Autowired
+    private CusAcqShelfLoadService04 cusAcqShelfLoadService04;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_01.getCode() + "]" + EmtRecordTimeEnum.I_01_01.getName();
+
+
+    @Override
+    public int insertCus(List<?> list) {
+        logger.info("---------- 货物上下架数据::上架::写入本次监控数据开始 --------------------");
+
+        List<WmsAcqShelfLoad04> wmsList = (List<WmsAcqShelfLoad04>) list;
+
+        List<CusAcqShelfLoad04> cusList = Wms2CusAcqShelfLoad04.toCus(wmsList);
+
+        int result = cusAcqShelfLoadService04.addCusAcqShelfLoad04(cusList);
+
+        logger.info("---【" + DATA_TYPE_INFO + "】写入监控数据:{} 条", result);
+
+        logger.info("---------- 货物上下架数据::上架::写入本次监控数据结束 --------------------");
+        return result;
+    }
+}

+ 102 - 0
src/main/java/com/emato/cus/supervise/biz/acq0401up/Acq0401RecordTime.java

@@ -0,0 +1,102 @@
+package com.emato.cus.supervise.biz.acq0401up;
+
+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 Acq0401RecordTime implements RecordTime {
+    private static final Logger logger = LoggerFactory.getLogger(Acq0401RecordTime.class);
+
+    @Autowired
+    private EmtRecordTimeService emtRecordTimeService;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_01.getCode() + "]" + EmtRecordTimeEnum.I_01_01.getName();
+
+    /**
+     * 获取扫描时间
+     * @return
+     */
+    @Override
+    public String getEmtRecordTime() {
+        logger.info("---------- 货物上下架数据::上架::获取上次扫描时间开始 --------------------");
+
+        //根据数据类型, 取扫描时间
+        Map<String, Object> param = ImmutableMap.of("dataType", EmtRecordTimeEnum.I_01_01.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.I_01_01.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;
+    }
+}

+ 58 - 0
src/main/java/com/emato/cus/supervise/biz/acq0401up/Acq0401WmsData.java

@@ -0,0 +1,58 @@
+package com.emato.cus.supervise.biz.acq0401up;
+
+import com.emato.cus.supervise.biz.WmsData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import com.emato.cus.supervise.service.wms.WmsAcqShelfLoadService04;
+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 org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 货物上下架数据 上架 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:24
+ */
+@Component
+public class Acq0401WmsData implements WmsData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq0401WmsData.class);
+
+    @Autowired
+    private WmsAcqShelfLoadService04 wmsAcqShelfLoadService04;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_01.getCode() + "]" + EmtRecordTimeEnum.I_01_01.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<WmsAcqShelfLoad04> resultList = wmsAcqShelfLoadService04.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;
+    }
+}

+ 72 - 0
src/main/java/com/emato/cus/supervise/biz/acq0401up/AcqShelfLoadUpBiz04.java

@@ -0,0 +1,72 @@
+package com.emato.cus.supervise.biz.acq0401up;
+
+import com.emato.cus.supervise.biz.CusWmsTask;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import com.emato.cus.supervise.util.LocalDateTimeUtils;
+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;
+
+/**
+ * 货物上下架数据 上架 业务
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 13:35
+ */
+@Component
+public class AcqShelfLoadUpBiz04 implements CusWmsTask {
+    private static final Logger logger = LoggerFactory.getLogger(AcqShelfLoadUpBiz04.class);
+
+    @Autowired
+    private Acq0401RecordTime acq0401RecordTime;
+
+    @Autowired
+    private Acq0401WmsData acq0401WmsData;
+
+    @Autowired
+    private Acq0401CusData acq0401CusData;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_01.getCode() + "]" + EmtRecordTimeEnum.I_01_01.getName();
+
+
+    /**
+     * 任务入口
+     */
+    @Override
+    public void task() {
+
+        // 获取扫描时间
+        String oldThisTime = acq0401RecordTime.getEmtRecordTime();
+        if (StringUtils.isBlank(oldThisTime)) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】未获取到本次扫描时间, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq0401RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
+                    LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN));
+            return;
+
+        }
+
+        // 扫描WMS 数据
+        List<WmsAcqShelfLoad04> wmsList = acq0401WmsData.getWmsData(oldThisTime);
+        if (wmsList == null || wmsList.size() == 0) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq0401RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+            return;
+        }
+
+        // 写CUS 数据
+        int res = acq0401CusData.insertCus(wmsList);
+
+        // 更新扫描时间
+        boolean bl = acq0401RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+
+    }
+
+
+}

+ 48 - 0
src/main/java/com/emato/cus/supervise/biz/acq0402back/Acq0402CusData.java

@@ -0,0 +1,48 @@
+package com.emato.cus.supervise.biz.acq0402back;
+
+import com.emato.cus.supervise.biz.CusData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import com.emato.cus.supervise.domainCus.CusAcqShelfLoad04;
+import com.emato.cus.supervise.entity.Wms2CusAcqShelfLoad04;
+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 org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 货物上下架数据 上架 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:38
+ */
+@Component
+public class Acq0402CusData implements CusData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq0402CusData.class);
+
+    @Autowired
+    private CusAcqShelfLoadService04 cusAcqShelfLoadService04;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_02.getCode() + "]" + EmtRecordTimeEnum.I_01_02.getName();
+
+
+    @Override
+    public int insertCus(List<?> list) {
+        logger.info("---------- 货物上下架数据::退港::写入本次监控数据开始 --------------------");
+
+        List<WmsAcqShelfLoad04> wmsList = (List<WmsAcqShelfLoad04>) list;
+
+        List<CusAcqShelfLoad04> cusList = Wms2CusAcqShelfLoad04.toCus(wmsList);
+
+        int result = cusAcqShelfLoadService04.addCusAcqShelfLoad04(cusList);
+
+        logger.info("---【" + DATA_TYPE_INFO + "】写入监控数据:{} 条", result);
+
+        logger.info("---------- 货物上下架数据::退港::写入本次监控数据结束 --------------------");
+        return result;
+    }
+}

+ 102 - 0
src/main/java/com/emato/cus/supervise/biz/acq0402back/Acq0402RecordTime.java

@@ -0,0 +1,102 @@
+package com.emato.cus.supervise.biz.acq0402back;
+
+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 Acq0402RecordTime implements RecordTime {
+    private static final Logger logger = LoggerFactory.getLogger(Acq0402RecordTime.class);
+
+    @Autowired
+    private EmtRecordTimeService emtRecordTimeService;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_02.getCode() + "]" + EmtRecordTimeEnum.I_01_02.getName();
+
+    /**
+     * 获取扫描时间
+     * @return
+     */
+    @Override
+    public String getEmtRecordTime() {
+        logger.info("---------- 货物上下架数据::退港::获取上次扫描时间开始 --------------------");
+
+        //根据数据类型, 取扫描时间
+        Map<String, Object> param = ImmutableMap.of("dataType", EmtRecordTimeEnum.I_01_02.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.I_01_02.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;
+    }
+}

+ 58 - 0
src/main/java/com/emato/cus/supervise/biz/acq0402back/Acq0402WmsData.java

@@ -0,0 +1,58 @@
+package com.emato.cus.supervise.biz.acq0402back;
+
+import com.emato.cus.supervise.biz.WmsData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import com.emato.cus.supervise.service.wms.WmsAcqShelfLoadService04;
+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 org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 货物上下架数据 退港 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:24
+ */
+@Component
+public class Acq0402WmsData implements WmsData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq0402WmsData.class);
+
+    @Autowired
+    private WmsAcqShelfLoadService04 wmsAcqShelfLoadService04;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_02.getCode() + "]" + EmtRecordTimeEnum.I_01_02.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<WmsAcqShelfLoad04> resultList = wmsAcqShelfLoadService04.getWmsAcqShelfLoadBack(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;
+    }
+}

+ 71 - 0
src/main/java/com/emato/cus/supervise/biz/acq0402back/AcqShelfLoadBackBiz04.java

@@ -0,0 +1,71 @@
+package com.emato.cus.supervise.biz.acq0402back;
+
+import com.emato.cus.supervise.biz.CusWmsTask;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import com.emato.cus.supervise.util.LocalDateTimeUtils;
+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.Service;
+
+import java.util.List;
+
+/**
+ * 货物上下架数据 退港 业务
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 13:35
+ */
+@Service
+public class AcqShelfLoadBackBiz04 implements CusWmsTask {
+    private static final Logger logger = LoggerFactory.getLogger(AcqShelfLoadBackBiz04.class);
+
+    @Autowired
+    private Acq0402RecordTime acq0402RecordTime;
+
+    @Autowired
+    private Acq0402WmsData acq0402WmsData;
+
+    @Autowired
+    private Acq0402CusData acq0402CusData;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_02.getCode() + "]" + EmtRecordTimeEnum.I_01_02.getName();
+
+
+    /**
+     * 任务入口
+     */
+    @Override
+    public void task() {
+
+        // 获取扫描时间
+        String oldThisTime = acq0402RecordTime.getEmtRecordTime();
+        if (StringUtils.isBlank(oldThisTime)) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】未获取到本次扫描时间, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq0402RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
+                    LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN));
+            return;
+
+        }
+
+        // 扫描WMS 数据
+        List<WmsAcqShelfLoad04> wmsList = acq0402WmsData.getWmsData(oldThisTime);
+        if (wmsList == null || wmsList.size() == 0) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq0402RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+            return;
+        }
+
+        // 写CUS 数据
+        int res = acq0402CusData.insertCus(wmsList);
+
+        // 更新扫描时间
+        boolean bl = acq0402RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+
+    }
+
+}

+ 48 - 0
src/main/java/com/emato/cus/supervise/biz/acq0403out/Acq0403CusData.java

@@ -0,0 +1,48 @@
+package com.emato.cus.supervise.biz.acq0403out;
+
+import com.emato.cus.supervise.biz.CusData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import com.emato.cus.supervise.domainCus.CusAcqShelfLoad04;
+import com.emato.cus.supervise.entity.Wms2CusAcqShelfLoad04;
+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 org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 货物上下架数据 上架 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:38
+ */
+@Component
+public class Acq0403CusData implements CusData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq0403CusData.class);
+
+    @Autowired
+    private CusAcqShelfLoadService04 cusAcqShelfLoadService04;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_03.getCode() + "]" + EmtRecordTimeEnum.I_01_03.getName();
+
+
+    @Override
+    public int insertCus(List<?> list) {
+        logger.info("---------- 货物上下架数据::正常拣货::写入本次监控数据开始 --------------------");
+
+        List<WmsAcqShelfLoad04> wmsList = (List<WmsAcqShelfLoad04>) list;
+
+        List<CusAcqShelfLoad04> cusList = Wms2CusAcqShelfLoad04.toCus(wmsList);
+
+        int result = cusAcqShelfLoadService04.addCusAcqShelfLoad04(cusList);
+
+        logger.info("---【" + DATA_TYPE_INFO + "】写入监控数据:{} 条", result);
+
+        logger.info("---------- 货物上下架数据::正常拣货::写入本次监控数据结束 --------------------");
+        return result;
+    }
+}

+ 102 - 0
src/main/java/com/emato/cus/supervise/biz/acq0403out/Acq0403RecordTime.java

@@ -0,0 +1,102 @@
+package com.emato.cus.supervise.biz.acq0403out;
+
+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 Acq0403RecordTime implements RecordTime {
+    private static final Logger logger = LoggerFactory.getLogger(Acq0403RecordTime.class);
+
+    @Autowired
+    private EmtRecordTimeService emtRecordTimeService;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_03.getCode() + "]" + EmtRecordTimeEnum.I_01_03.getName();
+
+    /**
+     * 获取扫描时间
+     * @return
+     */
+    @Override
+    public String getEmtRecordTime() {
+        logger.info("---------- 货物上下架数据::正常拣货::获取上次扫描时间开始 --------------------");
+
+        //根据数据类型, 取扫描时间
+        Map<String, Object> param = ImmutableMap.of("dataType", EmtRecordTimeEnum.I_01_03.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.I_01_03.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;
+    }
+}

+ 58 - 0
src/main/java/com/emato/cus/supervise/biz/acq0403out/Acq0403WmsData.java

@@ -0,0 +1,58 @@
+package com.emato.cus.supervise.biz.acq0403out;
+
+import com.emato.cus.supervise.biz.WmsData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import com.emato.cus.supervise.service.wms.WmsAcqShelfLoadService04;
+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 org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 货物上下架数据 退港 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:24
+ */
+@Component
+public class Acq0403WmsData implements WmsData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq0403WmsData.class);
+
+    @Autowired
+    private WmsAcqShelfLoadService04 wmsAcqShelfLoadService04;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_03.getCode() + "]" + EmtRecordTimeEnum.I_01_03.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<WmsAcqShelfLoad04> resultList = wmsAcqShelfLoadService04.getWmsAcqShelfLoadOut(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;
+    }
+}

+ 74 - 0
src/main/java/com/emato/cus/supervise/biz/acq0403out/AcqShelfLoadOutBiz04.java

@@ -0,0 +1,74 @@
+package com.emato.cus.supervise.biz.acq0403out;
+
+import com.emato.cus.supervise.biz.CusWmsTask;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import com.emato.cus.supervise.util.LocalDateTimeUtils;
+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 org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 货物上下架数据 正常拣货 业务
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 13:35
+ */
+@Component
+public class AcqShelfLoadOutBiz04 implements CusWmsTask {
+    private static final Logger logger = LoggerFactory.getLogger(AcqShelfLoadOutBiz04.class);
+
+    @Autowired
+    private Acq0403RecordTime acq0403RecordTime;
+
+    @Autowired
+    private Acq0403WmsData acq0403WmsData;
+
+    @Autowired
+    private Acq0403CusData acq0403CusData;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_01_03.getCode() + "]" + EmtRecordTimeEnum.I_01_03.getName();
+
+
+    /**
+     * 任务入口
+     */
+    @Override
+    public void task() {
+
+        // 获取扫描时间
+        String oldThisTime = acq0403RecordTime.getEmtRecordTime();
+        if (StringUtils.isBlank(oldThisTime)) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】未获取到本次扫描时间, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq0403RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
+                    LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN));
+            return;
+
+        }
+
+        // 扫描WMS 数据
+        List<WmsAcqShelfLoad04> wmsList = acq0403WmsData.getWmsData(oldThisTime);
+        if (wmsList == null || wmsList.size() == 0) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq0403RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+            return;
+        }
+
+        // 写CUS 数据
+        int res = acq0403CusData.insertCus(wmsList);
+
+        // 更新扫描时间
+        boolean bl = acq0403RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+
+    }
+
+
+}

+ 48 - 0
src/main/java/com/emato/cus/supervise/biz/acq05move/Acq05CusData.java

@@ -0,0 +1,48 @@
+package com.emato.cus.supervise.biz.acq05move;
+
+import com.emato.cus.supervise.biz.CusData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqGoodsMove05;
+import com.emato.cus.supervise.domainCus.CusAcqGoodsMove05;
+import com.emato.cus.supervise.entity.Wms2CusAcqGoodsMove05;
+import com.emato.cus.supervise.service.cus.CusAcqGoodsMoveService05;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 货物库位移动数据 业务 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:38
+ */
+@Component
+public class Acq05CusData implements CusData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq05CusData.class);
+
+    @Autowired
+    private CusAcqGoodsMoveService05 cusAcqGoodsMoveService05;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_02.getCode() + "]" + EmtRecordTimeEnum.I_02.getName();
+
+
+    @Override
+    public int insertCus(List<?> list) {
+        logger.info("---------- 货物库位移动数据::写入本次监控数据开始 --------------------");
+
+        List<WmsAcqGoodsMove05> wmsList = (List<WmsAcqGoodsMove05>) list;
+
+        List<CusAcqGoodsMove05> cusList = Wms2CusAcqGoodsMove05.toCus(wmsList);
+
+        int result = cusAcqGoodsMoveService05.addCusAcqGoodsMove05(cusList);
+
+        logger.info("---【" + DATA_TYPE_INFO + "】写入监控数据:{} 条", result);
+
+        logger.info("---------- 货物库位移动数据::写入本次监控数据结束 --------------------");
+        return result;
+    }
+}

+ 102 - 0
src/main/java/com/emato/cus/supervise/biz/acq05move/Acq05RecordTime.java

@@ -0,0 +1,102 @@
+package com.emato.cus.supervise.biz.acq05move;
+
+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 Acq05RecordTime implements RecordTime {
+    private static final Logger logger = LoggerFactory.getLogger(Acq05RecordTime.class);
+
+    @Autowired
+    private EmtRecordTimeService emtRecordTimeService;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_02.getCode() + "]" + EmtRecordTimeEnum.I_02.getName();
+
+    /**
+     * 获取扫描时间
+     * @return
+     */
+    @Override
+    public String getEmtRecordTime() {
+        logger.info("---------- 货物库位移动数据::获取上次扫描时间开始 --------------------");
+
+        //根据数据类型, 取扫描时间
+        Map<String, Object> param = ImmutableMap.of("dataType", EmtRecordTimeEnum.I_02.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.I_02.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;
+    }
+}

+ 58 - 0
src/main/java/com/emato/cus/supervise/biz/acq05move/Acq05WmsData.java

@@ -0,0 +1,58 @@
+package com.emato.cus.supervise.biz.acq05move;
+
+import com.emato.cus.supervise.biz.WmsData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqGoodsMove05;
+import com.emato.cus.supervise.service.wms.WmsAcqGoodsMoveService05;
+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 org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 货物库位移动数据 业务 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:24
+ */
+@Component
+public class Acq05WmsData implements WmsData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq05WmsData.class);
+
+    @Autowired
+    private WmsAcqGoodsMoveService05 wmsAcqGoodsMoveService05;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_02.getCode() + "]" + EmtRecordTimeEnum.I_02.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<WmsAcqGoodsMove05> resultList = wmsAcqGoodsMoveService05.getWmsAcqGoodsMove(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;
+    }
+}

+ 73 - 0
src/main/java/com/emato/cus/supervise/biz/acq05move/AcqGoodsMoveBiz05.java

@@ -0,0 +1,73 @@
+package com.emato.cus.supervise.biz.acq05move;
+
+import com.emato.cus.supervise.biz.CusWmsTask;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqInventoryInfo03;
+import com.emato.cus.supervise.util.LocalDateTimeUtils;
+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 org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 货物库位移动数据 业务
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 13:35
+ */
+@Component
+public class AcqGoodsMoveBiz05 implements CusWmsTask {
+    private static final Logger logger = LoggerFactory.getLogger(AcqGoodsMoveBiz05.class);
+
+    @Autowired
+    private Acq05RecordTime acq05RecordTime;
+
+    @Autowired
+    private Acq05WmsData acq05WmsData;
+
+    @Autowired
+    private Acq05CusData acq05CusData;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_02.getCode() + "]" + EmtRecordTimeEnum.I_02.getName();
+
+
+    /**
+     * 任务入口
+     */
+    @Override
+    public void task() {
+
+        // 获取扫描时间
+        String oldThisTime = acq05RecordTime.getEmtRecordTime();
+        if (StringUtils.isBlank(oldThisTime)) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】未获取到本次扫描时间, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq05RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
+                    LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN));
+            return;
+
+        }
+
+        // 扫描WMS 数据
+        List<WmsAcqInventoryInfo03> wmsList = acq05WmsData.getWmsData(oldThisTime);
+        if (wmsList == null || wmsList.size() == 0) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq05RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+            return;
+        }
+
+        // 写CUS 数据
+        int res = acq05CusData.insertCus(wmsList);
+
+        // 更新扫描时间
+        boolean bl = acq05RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+
+    }
+
+
+}

+ 48 - 0
src/main/java/com/emato/cus/supervise/biz/acq06Seat/Acq06CusData.java

@@ -0,0 +1,48 @@
+package com.emato.cus.supervise.biz.acq06Seat;
+
+import com.emato.cus.supervise.biz.CusData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqGoodsSeat06;
+import com.emato.cus.supervise.domainCus.CusAcqGoodsSeat06;
+import com.emato.cus.supervise.entity.Wms2CusAcqGoodsSeat06;
+import com.emato.cus.supervise.service.cus.CusAcqGoodsSeatService06;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 库位货物数据 业务 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:38
+ */
+@Component
+public class Acq06CusData implements CusData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq06CusData.class);
+
+    @Autowired
+    private CusAcqGoodsSeatService06 cusAcqGoodsSeatService06;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_03.getCode() + "]" + EmtRecordTimeEnum.I_03.getName();
+
+
+    @Override
+    public int insertCus(List<?> list) {
+        logger.info("---------- 库位货物数据::写入本次监控数据开始 --------------------");
+
+        List<WmsAcqGoodsSeat06> wmsList = (List<WmsAcqGoodsSeat06>) list;
+
+        List<CusAcqGoodsSeat06> cusList = Wms2CusAcqGoodsSeat06.toCus(wmsList);
+
+        int result = cusAcqGoodsSeatService06.addCusAcqGoodsSeat06(cusList);
+
+        logger.info("---【" + DATA_TYPE_INFO + "】写入监控数据:{} 条", result);
+
+        logger.info("---------- 库位货物数据::写入本次监控数据结束 --------------------");
+        return result;
+    }
+}

+ 102 - 0
src/main/java/com/emato/cus/supervise/biz/acq06Seat/Acq06RecordTime.java

@@ -0,0 +1,102 @@
+package com.emato.cus.supervise.biz.acq06Seat;
+
+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 Acq06RecordTime implements RecordTime {
+    private static final Logger logger = LoggerFactory.getLogger(Acq06RecordTime.class);
+
+    @Autowired
+    private EmtRecordTimeService emtRecordTimeService;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_03.getCode() + "]" + EmtRecordTimeEnum.I_03.getName();
+
+    /**
+     * 获取扫描时间
+     * @return
+     */
+    @Override
+    public String getEmtRecordTime() {
+        logger.info("---------- 库位货物数据::获取上次扫描时间开始 --------------------");
+
+        //根据数据类型, 取扫描时间
+        Map<String, Object> param = ImmutableMap.of("dataType", EmtRecordTimeEnum.I_03.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.I_03.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;
+    }
+}

+ 58 - 0
src/main/java/com/emato/cus/supervise/biz/acq06Seat/Acq06WmsData.java

@@ -0,0 +1,58 @@
+package com.emato.cus.supervise.biz.acq06Seat;
+
+import com.emato.cus.supervise.biz.WmsData;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqGoodsSeat06;
+import com.emato.cus.supervise.service.wms.WmsAcqGoodsSeatService06;
+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 org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 库位货物数据 业务 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 12:24
+ */
+@Component
+public class Acq06WmsData implements WmsData {
+    private static final Logger logger = LoggerFactory.getLogger(Acq06WmsData.class);
+
+    @Autowired
+    private WmsAcqGoodsSeatService06 wmsAcqGoodsSeatService06;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_03.getCode() + "]" + EmtRecordTimeEnum.I_03.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<WmsAcqGoodsSeat06> resultList = wmsAcqGoodsSeatService06.getWmsAcqGoodsSeat(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;
+    }
+}

+ 73 - 0
src/main/java/com/emato/cus/supervise/biz/acq06Seat/AcqGoodsSeatBiz06.java

@@ -0,0 +1,73 @@
+package com.emato.cus.supervise.biz.acq06Seat;
+
+import com.emato.cus.supervise.biz.CusWmsTask;
+import com.emato.cus.supervise.constant.EmtRecordTimeEnum;
+import com.emato.cus.supervise.domain.WmsAcqInventoryInfo03;
+import com.emato.cus.supervise.util.LocalDateTimeUtils;
+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 org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 库位货物数据 业务
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 13:35
+ */
+@Component
+public class AcqGoodsSeatBiz06 implements CusWmsTask {
+    private static final Logger logger = LoggerFactory.getLogger(AcqGoodsSeatBiz06.class);
+
+    @Autowired
+    private Acq06RecordTime acq06RecordTime;
+
+    @Autowired
+    private Acq06WmsData acq06WmsData;
+
+    @Autowired
+    private Acq06CusData acq06CusData;
+
+    private static final String DATA_TYPE_INFO = "[" + EmtRecordTimeEnum.I_03.getCode() + "]" + EmtRecordTimeEnum.I_03.getName();
+
+
+    /**
+     * 任务入口
+     */
+    @Override
+    public void task() {
+
+        // 获取扫描时间
+        String oldThisTime = acq06RecordTime.getEmtRecordTime();
+        if (StringUtils.isBlank(oldThisTime)) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】未获取到本次扫描时间, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq06RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN),
+                    LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN));
+            return;
+
+        }
+
+        // 扫描WMS 数据
+        List<WmsAcqInventoryInfo03> wmsList = acq06WmsData.getWmsData(oldThisTime);
+        if (wmsList == null || wmsList.size() == 0) {
+            logger.info("--- 【" + DATA_TYPE_INFO + "】获取到本次扫描数据为空, 不执行写数据操作, 本次扫描提前结束!!!");
+            //下次扫描时间
+            acq06RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+            return;
+        }
+
+        // 写CUS 数据
+        int res = acq06CusData.insertCus(wmsList);
+
+        // 更新扫描时间
+        boolean bl = acq06RecordTime.updateWmsRecordTime(LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN), oldThisTime);
+
+    }
+
+
+}

+ 30 - 0
src/main/java/com/emato/cus/supervise/config/SpringPropertyResolverConfig.java

@@ -0,0 +1,30 @@
+package com.emato.cus.supervise.config;
+
+import org.springframework.boot.bind.RelaxedPropertyResolver;
+import org.springframework.context.EnvironmentAware;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+import org.springframework.core.env.PropertyResolver;
+
+/**
+ * Spring property Resolver
+ *
+ * @author Scott Chen
+ * @date 2017/4/23
+ */
+@Configuration
+public class SpringPropertyResolverConfig implements EnvironmentAware {
+
+    private PropertyResolver propertyResolver;
+
+    @Override
+    public void setEnvironment(Environment environment) {
+        propertyResolver = new RelaxedPropertyResolver(environment);
+    }
+
+    @Bean
+    public PropertyResolver propertyResolver() {
+        return propertyResolver;
+    }
+}

+ 72 - 0
src/main/java/com/emato/cus/supervise/config/ds/primary/PrimaryDataSourceConfig.java

@@ -0,0 +1,72 @@
+package com.emato.cus.supervise.config.ds.primary;
+
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.PropertyResolver;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.sql.DataSource;
+
+/**
+ * 多数据源配置
+ *
+ * 数据源配置
+ *
+ * 指定mybatis-config.xml, 和要扫描的别名包
+ *
+ * @author Scott Chen
+ * @date 2017/4/22
+ */
+@Configuration
+public class PrimaryDataSourceConfig {
+
+    @Autowired
+    private PropertyResolver propertyResolver;
+
+    @Bean
+    public DataSource primaryDataSource() {
+        return primaryDataSourceProperties().initializeDataSourceBuilder().build();
+    }
+
+    @Bean
+    @ConfigurationProperties(prefix = "spring.datasource.primary")
+    public DataSourceProperties primaryDataSourceProperties() {
+        return new DataSourceProperties();
+    }
+
+    @Bean
+    public SqlSessionFactory primarySqlSessionFactory(DataSource primaryDataSource) throws Exception  {
+        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
+        sessionFactoryBean.setDataSource(primaryDataSource);
+        //Mybatis XML配置文件
+        sessionFactoryBean.setConfigLocation(new PathMatchingResourcePatternResolver().getResource(
+                propertyResolver.getProperty("mybatis.primary.config-location")));
+        sessionFactoryBean.setTypeAliasesPackage(propertyResolver.getProperty("mybatis.primary.type-aliases-package"));
+        //sessionFactoryBean.setMapperLocations(mapperLocations());
+        return sessionFactoryBean.getObject();
+    }
+
+    @Bean
+    public DataSourceTransactionManager primaryTransactionManager(DataSource primaryDataSource) {
+        return new DataSourceTransactionManager(primaryDataSource);
+    }
+
+
+    @Bean
+    public SqlSessionTemplate primarySqlSessionTemplate(SqlSessionFactory primarySqlSessionFactory) {
+        return new SqlSessionTemplate(primarySqlSessionFactory);
+    }
+
+    /*private Resource[] mapperLocations(){
+        Resource resource = new PathMatchingResourcePatternResolver().getResource("classpath:mybatis/mapper*//*.xml");
+        return ImmutableSet.of(resource).stream().toArray(Resource[]::new);
+    }*/
+
+}

+ 42 - 0
src/main/java/com/emato/cus/supervise/config/ds/primary/PrimaryMapperConfig.java

@@ -0,0 +1,42 @@
+package com.emato.cus.supervise.config.ds.primary;
+
+import com.google.common.base.Joiner;
+import com.google.common.collect.ImmutableList;
+import org.mybatis.spring.mapper.MapperScannerConfigurer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
+/**
+ * Mybatis Mapper接口扫描配置
+ *
+ * @author Scott Chen
+ * @date 2017/4/23
+ */
+@Configuration
+/*@DependsOn(value = {"primarySqlSessionTemplate"})*/
+public class PrimaryMapperConfig {
+
+    @Bean
+    public MapperScannerConfigurer primaryMapperScannerConfigurer() {
+        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
+        //Mapper接口包
+        mapperScannerConfigurer.setBasePackage(mapperPackage());
+        //要使用的数据源
+        mapperScannerConfigurer.setSqlSessionTemplateBeanName("primarySqlSessionTemplate");
+        return mapperScannerConfigurer;
+    }
+
+    /**
+     * 添加要扫描的Mapper接口包
+     * 以逗号分隔的字符串
+     *
+     * @return
+     */
+    protected String mapperPackage() {
+        ImmutableList.Builder<String> builder = new ImmutableList.Builder();
+        builder.add("com.emato.cus.supervise.mapper");
+        return Joiner.on(",").join(builder.build());
+    }
+
+}

+ 71 - 0
src/main/java/com/emato/cus/supervise/config/ds/second/SecondDataSourceConfig.java

@@ -0,0 +1,71 @@
+package com.emato.cus.supervise.config.ds.second;
+
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.PropertyResolver;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.sql.DataSource;
+
+/**
+ * 多数据源配置
+ *
+ * 数据源配置
+ *
+ * 指定mybatis-config.xml, 和要扫描的别名包
+ *
+ * @author Scott Chen
+ * @date 2017/4/22
+ */
+@Configuration
+public class SecondDataSourceConfig {
+
+    @Autowired
+    private PropertyResolver propertyResolver;
+
+    @Bean
+    public DataSource secondDataSource() {
+        return secondDataSourceProperties().initializeDataSourceBuilder().build();
+    }
+
+    @Bean
+    @ConfigurationProperties(prefix = "spring.datasource.second")
+    public DataSourceProperties secondDataSourceProperties() {
+        return new DataSourceProperties();
+    }
+
+    @Bean
+    public SqlSessionFactory secondSqlSessionFactory(DataSource secondDataSource) throws Exception  {
+        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
+        sessionFactoryBean.setDataSource(secondDataSource);
+        //Mybatis XML配置文件
+        sessionFactoryBean.setConfigLocation(new PathMatchingResourcePatternResolver().getResource(
+                propertyResolver.getProperty("mybatis.second.config-location")));
+        sessionFactoryBean.setTypeAliasesPackage(propertyResolver.getProperty("mybatis.second.type-aliases-package"));
+        //sessionFactoryBean.setMapperLocations(mapperLocations());
+        return sessionFactoryBean.getObject();
+    }
+
+    @Bean
+    public DataSourceTransactionManager secondTransactionManager(DataSource secondDataSource) {
+        return new DataSourceTransactionManager(secondDataSource);
+    }
+
+    @Bean
+    public SqlSessionTemplate secondSqlSessionTemplate(SqlSessionFactory secondSqlSessionFactory) {
+        return new SqlSessionTemplate(secondSqlSessionFactory);
+    }
+
+    /*private Resource[] mapperLocations(){
+        Resource resource = new PathMatchingResourcePatternResolver().getResource("classpath:mybatis/mapper*//*.xml");
+        return ImmutableSet.of(resource).stream().toArray(Resource[]::new);
+    }*/
+
+}

+ 42 - 0
src/main/java/com/emato/cus/supervise/config/ds/second/SecondMapperConfig.java

@@ -0,0 +1,42 @@
+package com.emato.cus.supervise.config.ds.second;
+
+import com.google.common.base.Joiner;
+import com.google.common.collect.ImmutableList;
+import org.mybatis.spring.mapper.MapperScannerConfigurer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
+/**
+ * Mybatis Mapper接口扫描配置
+ *
+ * @author Scott Chen
+ * @date 2017/4/23
+ */
+@Configuration
+/*@DependsOn(value = {"secondSqlSessionTemplate"})*/
+public class SecondMapperConfig {
+
+    @Bean
+    public MapperScannerConfigurer secondMapperScannerConfigurer() {
+        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
+        //Mapper接口包
+        mapperScannerConfigurer.setBasePackage(mapperPackage());
+        //要使用的数据源
+        mapperScannerConfigurer.setSqlSessionTemplateBeanName("secondSqlSessionTemplate");
+        return mapperScannerConfigurer;
+    }
+
+    /**
+     * 添加要扫描的Mapper接口包
+     * 以逗号分隔的字符串
+     *
+     * @return
+     */
+    protected String mapperPackage() {
+        ImmutableList.Builder<String> builder = new ImmutableList.Builder();
+        builder.add("com.emato.cus.supervise.mapperCus");
+        return Joiner.on(",").join(builder.build());
+    }
+
+}

+ 65 - 0
src/main/java/com/emato/cus/supervise/config/httpMsgCvt/CustomHttpMessageConverterConfig.java

@@ -0,0 +1,65 @@
+package com.emato.cus.supervise.config.httpMsgCvt;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpOutputMessage;
+import org.springframework.http.converter.HttpMessageNotWritableException;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+
+import java.io.IOException;
+import java.lang.reflect.Type;
+
+/**
+ * 自定义 HttpMessageConverter 消息转换器
+ *
+ * @author Scott Chen
+ * @date 2017/4/19
+ */
+@Configuration
+public class CustomHttpMessageConverterConfig {
+
+  @Bean
+  public MappingJackson2HttpMessageConverter customMessageConverter(ObjectMapper objectMapper) {
+
+    MappingJackson2HttpMessageConverter bean =
+        new MappingJackson2HttpMessageConverter(objectMapper) {
+          private final Logger logger = LoggerFactory.getLogger(MappingJackson2HttpMessageConverter.class);
+
+            @Override
+          protected void writeInternal(Object object, Type type, HttpOutputMessage outputMessage)
+              throws IOException, HttpMessageNotWritableException {
+
+            /**
+             * 外部消息如果不是 ResponseMessage
+             * 重新包装成 ResponseMessage
+             */
+            /*ResponseMessage responseMessage;
+
+            if (object == null) {
+              responseMessage = ResponseMessage.builder().build();
+            } else if (object instanceof ResponseMessage) {
+              responseMessage = (ResponseMessage) object;
+            } else if (object instanceof String) {
+              responseMessage = ResponseMessage.builder()
+                  .setMsg((String) object)
+                  .build();
+            } else {
+              ResponseMessageData respData = ResponseMessageData.builder(object, Object.class).build();
+              responseMessage = ResponseMessage.builder()
+                  .setData(respData)
+                  .build();
+            }*/
+
+            super.writeInternal(object, Object.class, outputMessage);
+
+            String result = objectMapper.writeValueAsString(object);
+            logger.info("返回数据:{}", result);
+          }
+        };
+
+    return bean;
+  }
+}

+ 52 - 0
src/main/java/com/emato/cus/supervise/config/jackson/JacksonObjectMapper.java

@@ -0,0 +1,52 @@
+package com.emato.cus.supervise.config.jackson;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.fasterxml.jackson.module.afterburner.AfterburnerModule;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author Scott Chen
+ * @date 2017/4/19
+ */
+@Configuration
+public class JacksonObjectMapper {
+
+    @Bean
+    public ObjectMapper objectMapper() {
+        ObjectMapper objectMapper = new ObjectMapper();
+        //序列化时,如果没有为类型找到访问者,则会抛出异常以将其指定为非可序列化类型; 如果禁用,它们将被序列化为空对象
+        objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+        //反序列化时,遇到未知属性是否抛JsonMappingException异常.默认JsonMappingException
+        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+        //设置null值不参与序列化(字段不被显示)
+        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+
+        //使Jackson JSON支持Unicode编码非ASCII字符
+        /*SimpleModule module = new SimpleModule();
+        module.addSerializer(String.class, new JacksonStringUnicodeSerializer());
+        objectMapper.registerModule(module);*/
+
+        // register modules
+        objectMapper.registerModule(javaTimeModule());
+        objectMapper.registerModule(afterburnerModule());
+
+        return objectMapper;
+    }
+
+    @Bean
+    public JavaTimeModule javaTimeModule() {
+        return new JavaTimeModule();
+    }
+
+    @Bean
+    public AfterburnerModule afterburnerModule() {
+        return new AfterburnerModule();
+    }
+
+
+}

+ 32 - 0
src/main/java/com/emato/cus/supervise/config/servlet/ServletConfig.java

@@ -0,0 +1,32 @@
+package com.emato.cus.supervise.config.servlet;
+
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.filter.CharacterEncodingFilter;
+
+/**
+ * Servlet 配置
+ *
+ * @author Scott Chen
+ * @date 2017/5/4
+ */
+@Configuration
+public class ServletConfig {
+
+    /**
+     * 字符过滤
+     * @return
+     */
+    @Bean
+    public FilterRegistrationBean characterEncodingFilter() {
+        FilterRegistrationBean filterBean = new FilterRegistrationBean();
+        filterBean.setName("characterEncoding");
+        filterBean.setFilter(new CharacterEncodingFilter());
+        filterBean.addInitParameter("encoding", "UTF-8");
+        filterBean.addInitParameter("forceEncoding", "true");
+        filterBean.addUrlPatterns("/*");
+        return filterBean;
+    }
+
+}

+ 20 - 0
src/main/java/com/emato/cus/supervise/constant/CommonConstant.java

@@ -0,0 +1,20 @@
+package com.emato.cus.supervise.constant;
+
+/**
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 10:49
+ */
+public class CommonConstant {
+
+    /**
+     * 创建人编码
+     */
+    public static final String createSn = "1";
+
+    /**
+     * 修改人编码
+     */
+    public static final String moderSn = "1";
+
+}

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

@@ -0,0 +1,40 @@
+package com.emato.cus.supervise.constant;
+
+/**
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 11:54
+ */
+public enum EmtRecordTimeEnum {
+
+    I_00("00", "货物库存数据"),
+    I_01_01("01_01", "货物上下架_上架"),
+    I_01_02("01_02", "货物上下架_退港"),
+    I_01_03("01_03", "货物上下架_正常拣货"),
+    I_02("02", "货物库位移动数据"),
+    I_03("03", "库位货物");
+
+    private String code;
+    private String name;
+
+    EmtRecordTimeEnum(String code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 231 - 0
src/main/java/com/emato/cus/supervise/domain/WmsAcqGoodsMove05.java

@@ -0,0 +1,231 @@
+package com.emato.cus.supervise.domain;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 货物库位移动数据 WMS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 13:41
+ */
+public class WmsAcqGoodsMove05 implements Serializable {
+
+    private static final long serialVersionUID = 7916758925990853502L;
+
+    private String id;
+
+    private LocalDateTime shelfLoadTime;
+    private LocalDateTime shelfUnloadTime;
+    private String targetSeatNo;
+    private String originSeatNo;
+
+    private String goodsName;
+    private String codeTs;
+    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 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 LocalDateTime getShelfLoadTime() {
+        return shelfLoadTime;
+    }
+
+    public void setShelfLoadTime(LocalDateTime shelfLoadTime) {
+        this.shelfLoadTime = shelfLoadTime;
+    }
+
+    public LocalDateTime getShelfUnloadTime() {
+        return shelfUnloadTime;
+    }
+
+    public void setShelfUnloadTime(LocalDateTime shelfUnloadTime) {
+        this.shelfUnloadTime = shelfUnloadTime;
+    }
+
+    public String getTargetSeatNo() {
+        return targetSeatNo;
+    }
+
+    public void setTargetSeatNo(String targetSeatNo) {
+        this.targetSeatNo = targetSeatNo;
+    }
+
+    public String getOriginSeatNo() {
+        return originSeatNo;
+    }
+
+    public void setOriginSeatNo(String originSeatNo) {
+        this.originSeatNo = originSeatNo;
+    }
+
+    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 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 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;
+    }
+
+}

+ 238 - 0
src/main/java/com/emato/cus/supervise/domain/WmsAcqGoodsSeat06.java

@@ -0,0 +1,238 @@
+package com.emato.cus.supervise.domain;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 库位货物数据 WMS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 13:41
+ */
+public class WmsAcqGoodsSeat06 implements Serializable {
+    private static final long serialVersionUID = -6181417718340745214L;
+
+    private String id;
+    private String seatNo;
+
+    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 ownerCode;
+    private String ownerName;
+
+    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 getSeatNo() {
+        return seatNo;
+    }
+
+    public void setSeatNo(String seatNo) {
+        this.seatNo = seatNo;
+    }
+
+    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 getOwnerCode() {
+        return ownerCode;
+    }
+
+    public void setOwnerCode(String ownerCode) {
+        this.ownerCode = ownerCode;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    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;
+    }
+}

+ 209 - 0
src/main/java/com/emato/cus/supervise/domain/WmsAcqInventoryInfo03.java

@@ -0,0 +1,209 @@
+package com.emato.cus.supervise.domain;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 货物库存数据 WMS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 15:24
+ */
+public class WmsAcqInventoryInfo03 implements Serializable {
+    private static final long serialVersionUID = -1786218576323478234L;
+
+    private String id;
+    private String goodsName;
+    private String codeTs;
+    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 ownerCode;
+    private String ownerName;
+
+    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 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 getOwnerCode() {
+        return ownerCode;
+    }
+
+    public void setOwnerCode(String ownerCode) {
+        this.ownerCode = ownerCode;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    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;
+    }
+}

+ 239 - 0
src/main/java/com/emato/cus/supervise/domain/WmsAcqShelfLoad04.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 WmsAcqShelfLoad04 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;
+    }
+}

+ 231 - 0
src/main/java/com/emato/cus/supervise/domainCus/CusAcqGoodsMove05.java

@@ -0,0 +1,231 @@
+package com.emato.cus.supervise.domainCus;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 货物库位移动数据 WMS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 13:41
+ */
+public class CusAcqGoodsMove05 implements Serializable {
+
+    private static final long serialVersionUID = 1427472942297944139L;
+
+    private String id;
+
+    private LocalDateTime shelfLoadTime;
+    private LocalDateTime shelfUnloadTime;
+    private String targetSeatNo;
+    private String originSeatNo;
+
+    private String goodsName;
+    private String codeTs;
+    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 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 LocalDateTime getShelfLoadTime() {
+        return shelfLoadTime;
+    }
+
+    public void setShelfLoadTime(LocalDateTime shelfLoadTime) {
+        this.shelfLoadTime = shelfLoadTime;
+    }
+
+    public LocalDateTime getShelfUnloadTime() {
+        return shelfUnloadTime;
+    }
+
+    public void setShelfUnloadTime(LocalDateTime shelfUnloadTime) {
+        this.shelfUnloadTime = shelfUnloadTime;
+    }
+
+    public String getTargetSeatNo() {
+        return targetSeatNo;
+    }
+
+    public void setTargetSeatNo(String targetSeatNo) {
+        this.targetSeatNo = targetSeatNo;
+    }
+
+    public String getOriginSeatNo() {
+        return originSeatNo;
+    }
+
+    public void setOriginSeatNo(String originSeatNo) {
+        this.originSeatNo = originSeatNo;
+    }
+
+    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 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 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;
+    }
+
+}

+ 238 - 0
src/main/java/com/emato/cus/supervise/domainCus/CusAcqGoodsSeat06.java

@@ -0,0 +1,238 @@
+package com.emato.cus.supervise.domainCus;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 库位货物数据 CUS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 13:41
+ */
+public class CusAcqGoodsSeat06 implements Serializable {
+    private static final long serialVersionUID = -7234420460632649121L;
+
+    private String id;
+    private String seatNo;
+
+    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 ownerCode;
+    private String ownerName;
+
+    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 getSeatNo() {
+        return seatNo;
+    }
+
+    public void setSeatNo(String seatNo) {
+        this.seatNo = seatNo;
+    }
+
+    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 getOwnerCode() {
+        return ownerCode;
+    }
+
+    public void setOwnerCode(String ownerCode) {
+        this.ownerCode = ownerCode;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    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;
+    }
+}

+ 209 - 0
src/main/java/com/emato/cus/supervise/domainCus/CusAcqInventoryInfo03.java

@@ -0,0 +1,209 @@
+package com.emato.cus.supervise.domainCus;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 货物库存数据 CUS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 15:24
+ */
+public class CusAcqInventoryInfo03 implements Serializable {
+    private static final long serialVersionUID = -1786218576323478234L;
+
+    private String id;
+    private String goodsName;
+    private String codeTs;
+    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 ownerCode;
+    private String ownerName;
+
+    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 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 getOwnerCode() {
+        return ownerCode;
+    }
+
+    public void setOwnerCode(String ownerCode) {
+        this.ownerCode = ownerCode;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    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;
+    }
+}

+ 239 - 0
src/main/java/com/emato/cus/supervise/domainCus/CusAcqShelfLoad04.java

@@ -0,0 +1,239 @@
+package com.emato.cus.supervise.domainCus;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 货物上下架数据 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-31 09:27
+ */
+public class CusAcqShelfLoad04 implements Serializable {
+
+    private static final long serialVersionUID = 4549632312455490275L;
+
+    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;
+    }
+}

+ 78 - 0
src/main/java/com/emato/cus/supervise/domainCus/EmtRecordTime.java

@@ -0,0 +1,78 @@
+package com.emato.cus.supervise.domainCus;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 扫描WMS时间
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 09:44
+ */
+public class EmtRecordTime implements Serializable {
+    private static final long serialVersionUID = 71055833819912201L;
+
+    private String dataType;
+    private String lastTime;
+    private String thisTime;
+    private String createrSn;
+    private LocalDateTime createTime;
+    private String moderSn;
+    private LocalDateTime modTime;
+
+    public String getDataType() {
+        return dataType;
+    }
+
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
+    }
+
+    public String getLastTime() {
+        return lastTime;
+    }
+
+    public void setLastTime(String lastTime) {
+        this.lastTime = lastTime;
+    }
+
+    public String getThisTime() {
+        return thisTime;
+    }
+
+    public void setThisTime(String thisTime) {
+        this.thisTime = thisTime;
+    }
+
+    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;
+    }
+}

+ 63 - 0
src/main/java/com/emato/cus/supervise/entity/Wms2CusAcqGoodsMove05.java

@@ -0,0 +1,63 @@
+package com.emato.cus.supervise.entity;
+
+import com.emato.cus.supervise.constant.CommonConstant;
+import com.emato.cus.supervise.domain.WmsAcqGoodsMove05;
+import com.emato.cus.supervise.domainCus.CusAcqGoodsMove05;
+import com.google.common.collect.ImmutableList;
+
+import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * WMS数据转换为CUS数据
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:29
+ */
+public class Wms2CusAcqGoodsMove05 {
+
+    public static List<CusAcqGoodsMove05> toCus(List<WmsAcqGoodsMove05> list) {
+        if (list == null || list.size() == 0) {
+            return Collections.emptyList();
+        }
+
+        ImmutableList.Builder<CusAcqGoodsMove05> builder = new ImmutableList.Builder<>();
+
+        list.stream().forEach(x->{
+            CusAcqGoodsMove05 cus = new CusAcqGoodsMove05();
+
+            cus.setShelfLoadTime(x.getShelfLoadTime());
+            cus.setShelfUnloadTime(x.getShelfUnloadTime());
+            cus.setTargetSeatNo(x.getTargetSeatNo());
+            cus.setOriginSeatNo(x.getOriginSeatNo());
+
+            cus.setGoodsName(x.getGoodsName());
+            cus.setCodeTs(x.getCodeTs());
+            cus.setSkuNo(x.getSkuNo());
+            cus.setGoodsId(x.getGoodsId());
+
+            cus.setgUnit(x.getgUnit());
+            cus.setgQty(x.getgQty());
+            cus.setLegalUnit(x.getLegalUnit());
+            cus.setLegalQty(x.getLegalQty());
+
+            cus.setGoodsModel(x.getGoodsModel());
+            cus.setLocalEmsNo(x.getLocalEmsNo());
+
+            cus.setStoreCompanyName(x.getStoreCompanyName());
+            cus.setStoreUscCode(x.getStoreUscCode());
+            cus.setStoreCustomsCode(x.getStoreCustomsCode());
+            cus.setStoreCode(x.getStoreCode());
+
+            cus.setCreaterSn(CommonConstant.createSn);
+            cus.setCreateTime(LocalDateTime.now());
+            cus.setModerSn(CommonConstant.moderSn);
+            cus.setModTime(LocalDateTime.now());
+
+            builder.add(cus);
+        });
+
+        return builder.build();
+    }
+}

+ 65 - 0
src/main/java/com/emato/cus/supervise/entity/Wms2CusAcqGoodsSeat06.java

@@ -0,0 +1,65 @@
+package com.emato.cus.supervise.entity;
+
+import com.emato.cus.supervise.constant.CommonConstant;
+import com.emato.cus.supervise.domain.WmsAcqGoodsSeat06;
+import com.emato.cus.supervise.domainCus.CusAcqGoodsSeat06;
+import com.google.common.collect.ImmutableList;
+
+import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * WMS数据转换为CUS数据
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:29
+ */
+public class Wms2CusAcqGoodsSeat06 {
+
+    public static List<CusAcqGoodsSeat06> toCus(List<WmsAcqGoodsSeat06> list) {
+        if (list == null || list.size() == 0) {
+            return Collections.emptyList();
+        }
+
+        ImmutableList.Builder<CusAcqGoodsSeat06> builder = new ImmutableList.Builder<>();
+
+        list.stream().forEach(x->{
+            CusAcqGoodsSeat06 cus = new CusAcqGoodsSeat06();
+
+            cus.setSeatNo(x.getSeatNo());
+
+            cus.setGoodsName(x.getGoodsName());
+            cus.setCodeTs(x.getCodeTs());
+            cus.setFormNoDec(x.getFormNoDec());
+            cus.setFormNo(x.getFormNo());
+
+            cus.setSkuNo(x.getSkuNo());
+            cus.setGoodsId(x.getGoodsId());
+
+            cus.setgUnit(x.getgUnit());
+            cus.setgQty(x.getgQty());
+            cus.setLegalUnit(x.getLegalUnit());
+            cus.setLegalQty(x.getLegalQty());
+
+            cus.setGoodsModel(x.getGoodsModel());
+            cus.setLocalEmsNo(x.getLocalEmsNo());
+            cus.setOwnerCode(x.getOwnerCode());
+            cus.setOwnerName(x.getOwnerName());
+
+            cus.setStoreCompanyName(x.getStoreCompanyName());
+            cus.setStoreUscCode(x.getStoreUscCode());
+            cus.setStoreCustomsCode(x.getStoreCustomsCode());
+            cus.setStoreCode(x.getStoreCode());
+
+            cus.setCreaterSn(CommonConstant.createSn);
+            cus.setCreateTime(LocalDateTime.now());
+            cus.setModerSn(CommonConstant.moderSn);
+            cus.setModTime(LocalDateTime.now());
+
+            builder.add(cus);
+        });
+
+        return builder.build();
+    }
+}

+ 60 - 0
src/main/java/com/emato/cus/supervise/entity/Wms2CusAcqInventoryInfo03.java

@@ -0,0 +1,60 @@
+package com.emato.cus.supervise.entity;
+
+import com.emato.cus.supervise.constant.CommonConstant;
+import com.emato.cus.supervise.domain.WmsAcqInventoryInfo03;
+import com.emato.cus.supervise.domainCus.CusAcqInventoryInfo03;
+import com.google.common.collect.ImmutableList;
+
+import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * WMS数据转换为CUS数据
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:29
+ */
+public class Wms2CusAcqInventoryInfo03 {
+
+    public static List<CusAcqInventoryInfo03> toCus(List<WmsAcqInventoryInfo03> list) {
+        if (list == null || list.size() == 0) {
+            return Collections.emptyList();
+        }
+
+        ImmutableList.Builder<CusAcqInventoryInfo03> builder = new ImmutableList.Builder<>();
+
+        list.stream().forEach(x->{
+            CusAcqInventoryInfo03 cus = new CusAcqInventoryInfo03();
+
+            cus.setGoodsName(x.getGoodsName());
+            cus.setCodeTs(x.getCodeTs());
+            cus.setSkuNo(x.getSkuNo());
+            cus.setGoodsId(x.getGoodsId());
+
+            cus.setGUnit(x.getGUnit());
+            cus.setgQty(x.getgQty());
+            cus.setLegalUnit(x.getLegalUnit());
+            cus.setLegalQty(x.getLegalQty());
+
+            cus.setGoodsModel(x.getGoodsModel());
+            cus.setLocalEmsNo(x.getLocalEmsNo());
+            cus.setOwnerCode(x.getOwnerCode());
+            cus.setOwnerName(x.getOwnerName());
+
+            cus.setStoreCompanyName(x.getStoreCompanyName());
+            cus.setStoreUscCode(x.getStoreUscCode());
+            cus.setStoreCustomsCode(x.getStoreCustomsCode());
+            cus.setStoreCode(x.getStoreCode());
+
+            cus.setCreaterSn(CommonConstant.createSn);
+            cus.setCreateTime(LocalDateTime.now());
+            cus.setModerSn(CommonConstant.moderSn);
+            cus.setModTime(LocalDateTime.now());
+
+            builder.add(cus);
+        });
+
+        return builder.build();
+    }
+}

+ 66 - 0
src/main/java/com/emato/cus/supervise/entity/Wms2CusAcqShelfLoad04.java

@@ -0,0 +1,66 @@
+package com.emato.cus.supervise.entity;
+
+import com.emato.cus.supervise.constant.CommonConstant;
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import com.emato.cus.supervise.domainCus.CusAcqShelfLoad04;
+import com.google.common.collect.ImmutableList;
+
+import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * WMS数据转换为CUS数据
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:29
+ */
+public class Wms2CusAcqShelfLoad04 {
+
+    public static List<CusAcqShelfLoad04> toCus(List<WmsAcqShelfLoad04> list) {
+        if (list == null || list.size() == 0) {
+            return Collections.emptyList();
+        }
+
+        ImmutableList.Builder<CusAcqShelfLoad04> builder = new ImmutableList.Builder<>();
+
+        list.stream().forEach(x->{
+            CusAcqShelfLoad04 cus = new CusAcqShelfLoad04();
+
+            cus.setGoodsName(x.getGoodsName());
+            cus.setCodeTs(x.getCodeTs());
+
+            cus.setFormNoDec(x.getFormNoDec());
+            cus.setFormNo(x.getFormNo());
+
+            cus.setSkuNo(x.getSkuNo());
+            cus.setGoodsId(x.getGoodsId());
+
+            cus.setgUnit(x.getgUnit());
+            cus.setgQty(x.getgQty());
+            cus.setLegalUnit(x.getLegalUnit());
+            cus.setLegalQty(x.getLegalQty());
+
+            cus.setGoodsModel(x.getGoodsModel());
+            cus.setLocalEmsNo(x.getLocalEmsNo());
+
+            cus.setSeatNo(x.getSeatNo());
+            cus.setShelfLoadTime(x.getShelfLoadTime());
+            cus.setShelfLoadType(x.getShelfLoadType());
+
+            cus.setStoreCompanyName(x.getStoreCompanyName());
+            cus.setStoreUscCode(x.getStoreUscCode());
+            cus.setStoreCustomsCode(x.getStoreCustomsCode());
+            cus.setStoreCode(x.getStoreCode());
+
+            cus.setCreaterSn(CommonConstant.createSn);
+            cus.setCreateTime(LocalDateTime.now());
+            cus.setModerSn(CommonConstant.moderSn);
+            cus.setModTime(LocalDateTime.now());
+
+            builder.add(cus);
+        });
+
+        return builder.build();
+    }
+}

+ 24 - 0
src/main/java/com/emato/cus/supervise/mapper/WmsAcqGoodsMoveMapper05.java

@@ -0,0 +1,24 @@
+package com.emato.cus.supervise.mapper;
+
+import com.emato.cus.supervise.domain.WmsAcqGoodsMove05;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 货物库位移动数据 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 15:38
+ */
+@Repository
+public interface WmsAcqGoodsMoveMapper05 {
+    /**
+     * 货物库位移动数据
+     * @param param
+     * @return
+     */
+    List<WmsAcqGoodsMove05> getWmsAcqGoodsMove(Map<String, Object> param);
+
+}

+ 24 - 0
src/main/java/com/emato/cus/supervise/mapper/WmsAcqGoodsSeatMapper06.java

@@ -0,0 +1,24 @@
+package com.emato.cus.supervise.mapper;
+
+import com.emato.cus.supervise.domain.WmsAcqGoodsSeat06;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 库位货物数据 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 15:38
+ */
+@Repository
+public interface WmsAcqGoodsSeatMapper06 {
+    /**
+     * 货物库位移动数据
+     * @param param
+     * @return
+     */
+    List<WmsAcqGoodsSeat06> getWmsAcqGoodsSeat(Map<String, Object> param);
+
+}

+ 23 - 0
src/main/java/com/emato/cus/supervise/mapper/WmsAcqInventoryInfoMapper03.java

@@ -0,0 +1,23 @@
+package com.emato.cus.supervise.mapper;
+
+import com.emato.cus.supervise.domain.WmsAcqInventoryInfo03;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 货物库存数据 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 15:38
+ */
+@Repository
+public interface WmsAcqInventoryInfoMapper03 {
+    /**
+     * 货物库存数据
+     * @param param
+     * @return
+     */
+    List<WmsAcqInventoryInfo03> getWmsAcqInventoryInfo(Map<String, Object> param);
+}

+ 37 - 0
src/main/java/com/emato/cus/supervise/mapper/WmsAcqShelfLoadMapper04.java

@@ -0,0 +1,37 @@
+package com.emato.cus.supervise.mapper;
+
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 货物上下架数据 WMS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 15:38
+ */
+@Repository
+public interface WmsAcqShelfLoadMapper04 {
+    /**
+     * 货物上下架数据 上架
+     * @param param
+     * @return
+     */
+    List<WmsAcqShelfLoad04> getWmsAcqShelfLoadUp(Map<String, Object> param);
+
+    /**
+     * 货物上下架数据 退港
+     * @param param
+     * @return
+     */
+    List<WmsAcqShelfLoad04> getWmsAcqShelfLoadBack(Map<String, Object> param);
+
+    /**
+     * 货物上下架数据 正常拣货
+     * @param param
+     * @return
+     */
+    List<WmsAcqShelfLoad04> getWmsAcqShelfLoadOut(Map<String, Object> param);
+}

+ 23 - 0
src/main/java/com/emato/cus/supervise/mapperCus/CusAcqGoodsMoveMapper05.java

@@ -0,0 +1,23 @@
+package com.emato.cus.supervise.mapperCus;
+
+import com.emato.cus.supervise.domainCus.CusAcqGoodsMove05;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 货物库位移动数据 CUS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 15:38
+ */
+@Repository
+public interface CusAcqGoodsMoveMapper05 {
+    /**
+     * 货物库位移动数据
+     * @param list
+     * @return
+     */
+    int addCusAcqGoodsMove05(List<CusAcqGoodsMove05> list);
+}

+ 23 - 0
src/main/java/com/emato/cus/supervise/mapperCus/CusAcqGoodsSeatMapper06.java

@@ -0,0 +1,23 @@
+package com.emato.cus.supervise.mapperCus;
+
+import com.emato.cus.supervise.domainCus.CusAcqGoodsSeat06;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 库位货物数据 CUS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 15:38
+ */
+@Repository
+public interface CusAcqGoodsSeatMapper06 {
+    /**
+     * 货物库位移动数据
+     * @param list
+     * @return
+     */
+    int addCusAcqGoodsSeat06(List<CusAcqGoodsSeat06> list);
+}

+ 22 - 0
src/main/java/com/emato/cus/supervise/mapperCus/CusAcqInventoryInfoMapper03.java

@@ -0,0 +1,22 @@
+package com.emato.cus.supervise.mapperCus;
+
+import com.emato.cus.supervise.domainCus.CusAcqInventoryInfo03;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 货物库存数据 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 15:38
+ */
+@Repository
+public interface CusAcqInventoryInfoMapper03 {
+    /**
+     * 货物库存数据
+     * @param list
+     * @return
+     */
+    int addAcqInventoryInfo03(List<CusAcqInventoryInfo03> list);
+}

+ 22 - 0
src/main/java/com/emato/cus/supervise/mapperCus/CusAcqShelfLoadMapper04.java

@@ -0,0 +1,22 @@
+package com.emato.cus.supervise.mapperCus;
+
+import com.emato.cus.supervise.domainCus.CusAcqShelfLoad04;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 货物上下架数据 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 15:38
+ */
+@Repository
+public interface CusAcqShelfLoadMapper04 {
+    /**
+     * 货物上下架数据
+     * @param list
+     * @return
+     */
+    int addCusAcqShelfLoad04(List<CusAcqShelfLoad04> list);
+}

+ 22 - 0
src/main/java/com/emato/cus/supervise/mapperCus/EmtRecordTimeMapper.java

@@ -0,0 +1,22 @@
+package com.emato.cus.supervise.mapperCus;
+
+import com.emato.cus.supervise.domainCus.EmtRecordTime;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 扫描WMS时间记录 Mapper
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 09:42
+ */
+@Repository
+public interface EmtRecordTimeMapper {
+
+    List<EmtRecordTime> selectEmtRecordTime(Map<String, Object> param);
+
+    int updateEmtRecordTime(Map<String, Object> param);
+
+}

+ 57 - 0
src/main/java/com/emato/cus/supervise/msg/MessageException.java

@@ -0,0 +1,57 @@
+package com.emato.cus.supervise.msg;
+
+/**
+ * 自定义异常
+ *
+ * @author Scott Chen
+ * @date 2017/3/22
+ */
+public class MessageException extends RuntimeException {
+
+    private static final long serialVersionUID = -1422580005904561463L;
+
+    private String code;
+    private String msg;
+
+    public MessageException() {
+        super();
+    }
+
+    public MessageException(String msg) {
+        super(msg);
+        this.msg = msg;
+    }
+
+    public MessageException(String code, String msg) {
+        super(msg);
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public MessageException(String code, String msg, Throwable cause) {
+        super(msg, cause);
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public MessageException(String msg, Throwable cause) {
+        super(msg, cause);
+        this.msg = msg;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+}

+ 25 - 0
src/main/java/com/emato/cus/supervise/msg/Messages.java

@@ -0,0 +1,25 @@
+package com.emato.cus.supervise.msg;
+
+/**
+ * Message消息代码定义
+ *
+ * 可以根据业务不同进行拆分, 对不同业务功能定义不同消息代码
+ *
+ * @author Scott Chen
+ * @date 2017/3/9
+ */
+public enum Messages {
+
+    I_0("0", "成功"),
+    I_MINUS_1("-1", "失败"),
+    I_100000("100000", "非法请求");
+
+    public String CODE;
+    public String MSG;
+
+    Messages(String code, String msg) {
+        this.CODE = code;
+        this.MSG = msg;
+    }
+
+}

+ 166 - 0
src/main/java/com/emato/cus/supervise/msg/ResponseMessage.java

@@ -0,0 +1,166 @@
+package com.emato.cus.supervise.msg;
+
+import com.google.common.base.Strings;
+
+import java.util.List;
+
+/**
+ * @author Scott Chen
+ * @date 2017/4/20
+ */
+public class ResponseMessage {
+
+    private static final String SUCCESS_CODE = "0";
+    private static final String SUCCESS_MSG = "成功";
+
+    public static final String ERROR_CODE = "-1";
+    public static final String ERROR_MSG = "错误";
+
+    private static final String FAILURE_CODE = "-2";
+    private static final String FAILURE_MSG = "失败";
+
+    private String code;
+    private String msg;
+    private ResponseMessageData data;
+
+    private ResponseMessage() {
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public ResponseMessageData getData() {
+        return data;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+    public static Builder builder(String code, String msg) {
+        return new Builder(code, msg);
+    }
+    public static Builder builder(String code, String msg, ResponseMessageData responseMessageData) {
+        return new Builder(code, msg, responseMessageData);
+    }
+    public static Builder builder(String code, String msg, List list) {
+        return new Builder(code, msg, list);
+    }
+
+    //---------- 直接返回结果 ----------
+    //成功
+    public static ResponseMessage success() {
+        return new Builder().build();
+    }
+    public static ResponseMessage success(String code, String msg) {
+        return new Builder(code, msg).build();
+    }
+    public static ResponseMessage success(String msg) {
+        return new Builder(SUCCESS_CODE, msg).build();
+    }
+    public static ResponseMessage success(String msg, List rows) {
+        return new Builder(SUCCESS_CODE, msg, rows).build();
+    }
+    public static ResponseMessage success(String code, String msg, List rows) {
+        return new Builder(code, msg, rows).build();
+    }
+    public static ResponseMessage success(List rows) {
+        return new Builder(SUCCESS_CODE, SUCCESS_MSG, rows).build();
+    }
+
+    //错误
+    public static ResponseMessage error() {
+        return new Builder(ERROR_CODE, ERROR_MSG).build();
+    }
+    public static ResponseMessage error(String code, String msg) {
+        return new Builder(code, msg).build();
+    }
+    public static ResponseMessage error(String msg) {
+        return new Builder(ERROR_CODE, msg).build();
+    }
+    public static ResponseMessage error(List rows) {
+        return new Builder(ERROR_CODE, ERROR_MSG, rows).build();
+    }
+    public static ResponseMessage error(String code, String msg, List rows) {
+        return new Builder(code, msg, rows).build();
+    }
+
+    //失败
+    public static ResponseMessage failed() {
+        return new Builder(FAILURE_CODE, FAILURE_MSG).build();
+    }
+    public static ResponseMessage failed(String code, String msg) {
+        return new Builder(code, msg).build();
+    }
+    public static ResponseMessage failed(String msg) {
+        return new Builder(FAILURE_CODE, msg).build();
+    }
+    public static ResponseMessage failed(List rows) {
+        return new Builder(FAILURE_CODE, FAILURE_MSG, rows).build();
+    }
+    public static ResponseMessage failed(String code, String msg, List rows) {
+        return new Builder(code, msg, rows).build();
+    }
+
+    /**
+     * 消息构建器类
+     */
+    public static class Builder {
+        private String code;
+        private String msg;
+        private ResponseMessageData data;
+
+        public Builder() {
+            this.code = SUCCESS_CODE;
+            this.msg = SUCCESS_MSG;
+            this.data = ResponseMessageData.builder().build();
+        }
+
+        public Builder(String code, String msg) {
+            this.code = Strings.isNullOrEmpty(code) ? SUCCESS_CODE : code;
+            this.msg = Strings.isNullOrEmpty(msg) ? SUCCESS_MSG : msg;
+            this.data = ResponseMessageData.builder().build();
+        }
+
+        public Builder(String code, String msg, ResponseMessageData responseMessageData) {
+            this.code = code;
+            this.msg = msg;
+            this.data = responseMessageData;
+        }
+
+        public Builder(String code, String msg, List rows) {
+            this.code = code;
+            this.msg = msg;
+            this.data = ResponseMessageData.builder(rows).build();
+        }
+
+        public Builder setCode(String code) {
+            this.code = code;
+            return this;
+        }
+
+        public Builder setMsg(String msg) {
+            this.msg = msg;
+            return this;
+        }
+
+        public Builder setData(ResponseMessageData data) {
+            this.data = data;
+            return this;
+        }
+
+        public ResponseMessage build() {
+            ResponseMessage message = new ResponseMessage();
+            message.code = this.code;
+            message.msg = this.msg;
+            message.data = this.data;
+            return message;
+        }
+
+    }
+}
+

+ 79 - 0
src/main/java/com/emato/cus/supervise/msg/ResponseMessageData.java

@@ -0,0 +1,79 @@
+package com.emato.cus.supervise.msg;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Scott Chen
+ * @date 2017/4/20
+ */
+public class ResponseMessageData {
+
+    private int total;
+    private List rows;
+
+    private ResponseMessageData() {
+    }
+
+    public int getTotal() {
+        return total;
+    }
+
+    public List getRows() {
+        return rows;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+    public static Builder builder(List rows) {
+        return new Builder(rows);
+    }
+    public static <T> Builder builder(T t, Class<T> type) {
+        return new Builder(t, type);
+    }
+
+
+    public static class Builder {
+        private int total = 0;
+        private List rows = new ArrayList<>();
+
+        public Builder() {
+        }
+
+        public Builder(List rows) {
+            this.total = rows ==null ? 0 : rows.size();
+            this.rows = rows ==null ? new ArrayList<>() : rows;
+        }
+
+        public <T> Builder(T t, Class<T> type) {
+            List rows = new ArrayList<>();
+            if (t == null) {
+                this.total = 0;
+            }else{
+                rows.add(t);
+                this.total = rows.size();
+            }
+            this.rows = rows;
+        }
+
+        public Builder setTotal(int total) {
+            this.total = total;
+            return this;
+        }
+
+        public Builder setRows(List rows) {
+            this.rows = rows;
+            return this;
+        }
+
+        public ResponseMessageData build() {
+            ResponseMessageData data = new ResponseMessageData();
+            data.total = this.total;
+            data.rows = this.rows;
+            return data;
+        }
+
+    }
+
+}

+ 49 - 0
src/main/java/com/emato/cus/supervise/schedule/AcqGoodsMoveSchedule05.java

@@ -0,0 +1,49 @@
+package com.emato.cus.supervise.schedule;
+
+import com.emato.cus.supervise.biz.acq05move.AcqGoodsMoveBiz05;
+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;
+
+/**
+ * 货物库位移动数据 计划任务
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 11:42
+ */
+@Configuration
+@EnableScheduling
+public class AcqGoodsMoveSchedule05 {
+    private static final Logger logger = LoggerFactory.getLogger(AcqGoodsMoveSchedule05.class);
+
+    @Autowired
+    private AcqGoodsMoveBiz05 acqGoodsMoveBiz05;
+
+
+    /**
+     * 货物库位移动数据
+     */
+    //每月1号开始,每天12,18点执行各1次,共2次
+    //@Scheduled(cron = "0 0 12,18 1/1 * ?")
+    @Scheduled(cron = "0 0/10 * * * ?")
+    public void timerUp() {
+        logger.info("==================== 货物库位移动数据::监控数据读取开始 ====================");
+        String begDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务开始时间: {}", begDateTime);
+
+        acqGoodsMoveBiz05.task();
+
+
+        String endDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务结束时间: {}", endDateTime);
+        logger.info("==================== 货物库位移动数据::监控数据读取结束 ====================");
+
+    }
+
+
+}

+ 50 - 0
src/main/java/com/emato/cus/supervise/schedule/AcqGoodsSeatSchedule06.java

@@ -0,0 +1,50 @@
+package com.emato.cus.supervise.schedule;
+
+import com.emato.cus.supervise.biz.acq06Seat.AcqGoodsSeatBiz06;
+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;
+
+/**
+ * 库位货物数据 计划任务
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 11:42
+ */
+@Configuration
+@EnableScheduling
+public class AcqGoodsSeatSchedule06 {
+    private static final Logger logger = LoggerFactory.getLogger(AcqGoodsSeatSchedule06.class);
+
+    @Autowired
+    private AcqGoodsSeatBiz06 acqGoodsSeatBiz06;
+
+
+    /**
+     * 库位货物数据
+     * 每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 * * * ?")
+    public void timerUp() {
+        logger.info("==================== 库位货物数据::监控数据读取开始 ====================");
+        String begDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务开始时间: {}", begDateTime);
+
+        acqGoodsSeatBiz06.task();
+
+
+        String endDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务结束时间: {}", endDateTime);
+        logger.info("==================== 库位货物数据::监控数据读取结束 ====================");
+
+    }
+
+
+}

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

@@ -0,0 +1,48 @@
+package com.emato.cus.supervise.schedule;
+
+import com.emato.cus.supervise.biz.acq03inve.AcqInventoryInfoBiz03;
+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;
+
+/**
+ * 货物库存数据 计划任务
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 11:42
+ */
+@Configuration
+@EnableScheduling
+public class AcqInventoryInfoSchedule03 {
+    private static final Logger logger = LoggerFactory.getLogger(AcqInventoryInfoSchedule03.class);
+
+    @Autowired
+    private AcqInventoryInfoBiz03 acqInventoryInfoBiz03;
+
+    /**
+     * 货物库存数据
+     */
+    //每月1号开始,每天12,22点各1次,共2次
+    //@Scheduled(cron = "0 0 12,22 1/1 * ?")
+    @Scheduled(cron = "0 0/10 * * * ?")
+    public void timer() {
+        logger.info("==================== 货物库存数据::监控数据读取开始 ====================");
+        String begDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务开始时间: {}", begDateTime);
+
+        acqInventoryInfoBiz03.task();
+
+
+        String endDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务结束时间: {}", endDateTime);
+        logger.info("==================== 货物库存数据::监控数据读取结束 ====================");
+
+    }
+
+
+}

+ 96 - 0
src/main/java/com/emato/cus/supervise/schedule/AcqShelfLoadSchedule04.java

@@ -0,0 +1,96 @@
+package com.emato.cus.supervise.schedule;
+
+import com.emato.cus.supervise.biz.acq0401up.AcqShelfLoadUpBiz04;
+import com.emato.cus.supervise.biz.acq0402back.AcqShelfLoadBackBiz04;
+import com.emato.cus.supervise.biz.acq0403out.AcqShelfLoadOutBiz04;
+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;
+
+/**
+ * 货物上下架数据 计划任务
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 11:42
+ */
+@Configuration
+@EnableScheduling
+public class AcqShelfLoadSchedule04 {
+    private static final Logger logger = LoggerFactory.getLogger(AcqShelfLoadSchedule04.class);
+
+    @Autowired
+    private AcqShelfLoadUpBiz04 acqShelfLoadUpBiz04;
+
+    @Autowired
+    private AcqShelfLoadBackBiz04 acqShelfLoadBackBiz04;
+
+    @Autowired
+    private AcqShelfLoadOutBiz04 acqShelfLoadOutBiz04;
+
+    /**
+     * 上架
+     */
+    //每月1号开始,每天10,18点执行各1次,共2次
+    //@Scheduled(cron = "0 0 10,18 1/1 * ?")
+    @Scheduled(cron = "0 0/10 * * * ?")
+    public void timerUp() {
+        logger.info("==================== 货物上下架数据::上架::监控数据读取开始 ====================");
+        String begDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务开始时间: {}", begDateTime);
+
+        acqShelfLoadUpBiz04.task();
+
+
+        String endDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务结束时间: {}", endDateTime);
+        logger.info("==================== 货物上下架数据::上架::监控数据读取结束 ====================");
+
+    }
+
+    /**
+     * 退港
+     */
+    //每月1号开始,每天18点执行1次,共1次
+    //@Scheduled(cron = "0 0 18 1/1 * ?")
+    @Scheduled(cron = "0 0/10 * * * ?")
+    public void timerBack() {
+        logger.info("==================== 货物上下架数据::退港::监控数据读取开始 ====================");
+        String begDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务开始时间: {}", begDateTime);
+
+        acqShelfLoadBackBiz04.task();
+
+
+        String endDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务结束时间: {}", endDateTime);
+        logger.info("==================== 货物上下架数据::退港::监控数据读取结束 ====================");
+
+    }
+
+    /**
+     * 正常拣货
+     */
+    //@Scheduled(cron = "0 0/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 * * * ?")
+    public void timerOut() {
+        logger.info("==================== 货物上下架数据::正常拣货::监控数据读取开始 ====================");
+        String begDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务开始时间: {}", begDateTime);
+
+        acqShelfLoadOutBiz04.task();
+
+
+        String endDateTime = LocalDateTimeUtils.formatNow(LocalDateTimeUtils.DATA_TIME_HYPHEN);
+        logger.info("--- 任务结束时间: {}", endDateTime);
+        logger.info("==================== 货物上下架数据::正常拣货::监控数据读取结束 ====================");
+
+    }
+
+}

+ 20 - 0
src/main/java/com/emato/cus/supervise/service/cus/CusAcqGoodsMoveService05.java

@@ -0,0 +1,20 @@
+package com.emato.cus.supervise.service.cus;
+
+import com.emato.cus.supervise.domainCus.CusAcqGoodsMove05;
+
+import java.util.List;
+
+/**
+ * 货物库位移动数据 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:14
+ */
+public interface CusAcqGoodsMoveService05 {
+    /**
+     * 货物库位移动数据
+     * @param list
+     * @return
+     */
+    int addCusAcqGoodsMove05(List<CusAcqGoodsMove05> list);
+}

+ 20 - 0
src/main/java/com/emato/cus/supervise/service/cus/CusAcqGoodsSeatService06.java

@@ -0,0 +1,20 @@
+package com.emato.cus.supervise.service.cus;
+
+import com.emato.cus.supervise.domainCus.CusAcqGoodsSeat06;
+
+import java.util.List;
+
+/**
+ * 库位货物数据 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:14
+ */
+public interface CusAcqGoodsSeatService06 {
+    /**
+     * 库位货物数据
+     * @param list
+     * @return
+     */
+    int addCusAcqGoodsSeat06(List<CusAcqGoodsSeat06> list);
+}

+ 20 - 0
src/main/java/com/emato/cus/supervise/service/cus/CusAcqInventoryInfoService03.java

@@ -0,0 +1,20 @@
+package com.emato.cus.supervise.service.cus;
+
+import com.emato.cus.supervise.domainCus.CusAcqInventoryInfo03;
+
+import java.util.List;
+
+/**
+ * 货物库存数据 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:14
+ */
+public interface CusAcqInventoryInfoService03 {
+    /**
+     * 货物库存数据
+     * @param list
+     * @return
+     */
+    int addCusAcqInventoryInfo(List<CusAcqInventoryInfo03> list);
+}

+ 20 - 0
src/main/java/com/emato/cus/supervise/service/cus/CusAcqShelfLoadService04.java

@@ -0,0 +1,20 @@
+package com.emato.cus.supervise.service.cus;
+
+import com.emato.cus.supervise.domainCus.CusAcqShelfLoad04;
+
+import java.util.List;
+
+/**
+ * 货物库存数据 CUS
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:14
+ */
+public interface CusAcqShelfLoadService04 {
+    /**
+     * 货物库存数据
+     * @param list
+     * @return
+     */
+    int addCusAcqShelfLoad04(List<CusAcqShelfLoad04> list);
+}

+ 19 - 0
src/main/java/com/emato/cus/supervise/service/cus/EmtRecordTimeService.java

@@ -0,0 +1,19 @@
+package com.emato.cus.supervise.service.cus;
+
+import com.emato.cus.supervise.domainCus.EmtRecordTime;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 10:20
+ */
+public interface EmtRecordTimeService {
+
+    List<EmtRecordTime> selectEmtRecordTime(Map<String, Object> param);
+
+    int updateEmtRecordTime(Map<String, Object> param);
+
+}

+ 30 - 0
src/main/java/com/emato/cus/supervise/service/cus/impl/CusAcqGoodsMoveSeatServiceImpl06.java

@@ -0,0 +1,30 @@
+package com.emato.cus.supervise.service.cus.impl;
+
+import com.emato.cus.supervise.domainCus.CusAcqGoodsSeat06;
+import com.emato.cus.supervise.mapperCus.CusAcqGoodsSeatMapper06;
+import com.emato.cus.supervise.service.cus.CusAcqGoodsSeatService06;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 库位货物数据 CUS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:15
+ */
+@Service
+public class CusAcqGoodsMoveSeatServiceImpl06 implements CusAcqGoodsSeatService06 {
+
+    @Autowired
+    CusAcqGoodsSeatMapper06 cusAcqGoodsSeatMapper06;
+
+    @Override
+    @Transactional(value ="secondTransactionManager")
+    public int addCusAcqGoodsSeat06(List<CusAcqGoodsSeat06> list) {
+        return cusAcqGoodsSeatMapper06.addCusAcqGoodsSeat06(list);
+    }
+}

+ 30 - 0
src/main/java/com/emato/cus/supervise/service/cus/impl/CusAcqGoodsMoveServiceImpl05.java

@@ -0,0 +1,30 @@
+package com.emato.cus.supervise.service.cus.impl;
+
+import com.emato.cus.supervise.domainCus.CusAcqGoodsMove05;
+import com.emato.cus.supervise.mapperCus.CusAcqGoodsMoveMapper05;
+import com.emato.cus.supervise.service.cus.CusAcqGoodsMoveService05;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 货物库位移动数据 CUS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:15
+ */
+@Service
+public class CusAcqGoodsMoveServiceImpl05 implements CusAcqGoodsMoveService05 {
+
+    @Autowired
+    CusAcqGoodsMoveMapper05 cusAcqGoodsMoveMapper05;
+
+    @Override
+    @Transactional(value ="secondTransactionManager")
+    public int addCusAcqGoodsMove05(List<CusAcqGoodsMove05> list) {
+        return cusAcqGoodsMoveMapper05.addCusAcqGoodsMove05(list);
+    }
+}

+ 30 - 0
src/main/java/com/emato/cus/supervise/service/cus/impl/CusAcqInventoryInfoServiceImpl03.java

@@ -0,0 +1,30 @@
+package com.emato.cus.supervise.service.cus.impl;
+
+import com.emato.cus.supervise.domainCus.CusAcqInventoryInfo03;
+import com.emato.cus.supervise.mapperCus.CusAcqInventoryInfoMapper03;
+import com.emato.cus.supervise.service.cus.CusAcqInventoryInfoService03;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 货物库存数据 CUS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:15
+ */
+@Service
+public class CusAcqInventoryInfoServiceImpl03 implements CusAcqInventoryInfoService03 {
+
+    @Autowired
+    CusAcqInventoryInfoMapper03 cusAcqInventoryInfoMapper03;
+
+    @Override
+    @Transactional(value ="secondTransactionManager")
+    public int addCusAcqInventoryInfo(List<CusAcqInventoryInfo03> list) {
+        return cusAcqInventoryInfoMapper03.addAcqInventoryInfo03(list);
+    }
+}

+ 30 - 0
src/main/java/com/emato/cus/supervise/service/cus/impl/CusAcqShelfLoadServiceImpl04.java

@@ -0,0 +1,30 @@
+package com.emato.cus.supervise.service.cus.impl;
+
+import com.emato.cus.supervise.domainCus.CusAcqShelfLoad04;
+import com.emato.cus.supervise.mapperCus.CusAcqShelfLoadMapper04;
+import com.emato.cus.supervise.service.cus.CusAcqShelfLoadService04;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 货物上下架数据 CUS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 17:15
+ */
+@Service
+public class CusAcqShelfLoadServiceImpl04 implements CusAcqShelfLoadService04 {
+
+    @Autowired
+    CusAcqShelfLoadMapper04 cusAcqShelfLoadMapper04;
+
+    @Override
+    @Transactional(value ="secondTransactionManager")
+    public int addCusAcqShelfLoad04(List<CusAcqShelfLoad04> list) {
+        return cusAcqShelfLoadMapper04.addCusAcqShelfLoad04(list);
+    }
+}

+ 36 - 0
src/main/java/com/emato/cus/supervise/service/cus/impl/EmtRecordTimeServiceImpl.java

@@ -0,0 +1,36 @@
+package com.emato.cus.supervise.service.cus.impl;
+
+import com.emato.cus.supervise.domainCus.EmtRecordTime;
+import com.emato.cus.supervise.mapperCus.EmtRecordTimeMapper;
+import com.emato.cus.supervise.service.cus.EmtRecordTimeService;
+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;
+
+/**
+ * 扫描时间
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 10:23
+ */
+@Service
+public class EmtRecordTimeServiceImpl implements EmtRecordTimeService {
+
+    @Autowired
+    private EmtRecordTimeMapper emtRecordTimeMapper;
+
+    @Override
+    @Transactional(value ="secondTransactionManager")
+    public List<EmtRecordTime> selectEmtRecordTime(Map<String, Object> param) {
+        return emtRecordTimeMapper.selectEmtRecordTime(param);
+    }
+
+    @Override
+    @Transactional(value ="secondTransactionManager")
+    public int updateEmtRecordTime(Map<String, Object> param) {
+        return emtRecordTimeMapper.updateEmtRecordTime(param);
+    }
+}

+ 23 - 0
src/main/java/com/emato/cus/supervise/service/wms/WmsAcqGoodsMoveService05.java

@@ -0,0 +1,23 @@
+package com.emato.cus.supervise.service.wms;
+
+import com.emato.cus.supervise.domain.WmsAcqGoodsMove05;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 货物库位移动数据 WMS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 16:30
+ */
+public interface WmsAcqGoodsMoveService05 {
+    /**
+     * 货物库位移动数据
+     * @param param
+     * @return
+     */
+    List<WmsAcqGoodsMove05> getWmsAcqGoodsMove(Map<String, Object> param);
+
+}

+ 23 - 0
src/main/java/com/emato/cus/supervise/service/wms/WmsAcqGoodsSeatService06.java

@@ -0,0 +1,23 @@
+package com.emato.cus.supervise.service.wms;
+
+import com.emato.cus.supervise.domain.WmsAcqGoodsSeat06;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 库位货物数据 WMS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 16:30
+ */
+public interface WmsAcqGoodsSeatService06 {
+    /**
+     * 库位货物数据
+     * @param param
+     * @return
+     */
+    List<WmsAcqGoodsSeat06> getWmsAcqGoodsSeat(Map<String, Object> param);
+
+}

+ 22 - 0
src/main/java/com/emato/cus/supervise/service/wms/WmsAcqInventoryInfoService03.java

@@ -0,0 +1,22 @@
+package com.emato.cus.supervise.service.wms;
+
+import com.emato.cus.supervise.domain.WmsAcqInventoryInfo03;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 库存数据 WMS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 16:30
+ */
+public interface WmsAcqInventoryInfoService03 {
+    /**
+     * 根据上次时间取货物库存
+     * @param param
+     * @return
+     */
+    List<WmsAcqInventoryInfo03> getWmsAcqInventoryInfo(Map<String, Object> param);
+}

+ 36 - 0
src/main/java/com/emato/cus/supervise/service/wms/WmsAcqShelfLoadService04.java

@@ -0,0 +1,36 @@
+package com.emato.cus.supervise.service.wms;
+
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 货物上下架数据 WMS
+ *
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 16:30
+ */
+public interface WmsAcqShelfLoadService04 {
+    /**
+     * 货物上下架数据 上架
+     * @param param
+     * @return
+     */
+    List<WmsAcqShelfLoad04> getWmsAcqShelfLoadUp(Map<String, Object> param);
+
+    /**
+     * 货物上下架数据 退港
+     * @param param
+     * @return
+     */
+    List<WmsAcqShelfLoad04> getWmsAcqShelfLoadBack(Map<String, Object> param);
+
+    /**
+     * 货物上下架数据 正常拣货
+     * @param param
+     * @return
+     */
+    List<WmsAcqShelfLoad04> getWmsAcqShelfLoadOut(Map<String, Object> param);
+}

+ 31 - 0
src/main/java/com/emato/cus/supervise/service/wms/impl/WmsAcqGoodsMoveServiceImpl05.java

@@ -0,0 +1,31 @@
+package com.emato.cus.supervise.service.wms.impl;
+
+import com.emato.cus.supervise.domain.WmsAcqGoodsMove05;
+import com.emato.cus.supervise.mapper.WmsAcqGoodsMoveMapper05;
+import com.emato.cus.supervise.service.wms.WmsAcqGoodsMoveService05;
+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 WmsAcqGoodsMoveServiceImpl05 implements WmsAcqGoodsMoveService05 {
+
+    @Autowired
+    private WmsAcqGoodsMoveMapper05 wmsAcqGoodsMoveMapper05;
+
+    @Override
+    @Transactional(value ="primaryTransactionManager")
+    public List<WmsAcqGoodsMove05> getWmsAcqGoodsMove(Map<String, Object> param) {
+        return wmsAcqGoodsMoveMapper05.getWmsAcqGoodsMove(param);
+    }
+}

+ 31 - 0
src/main/java/com/emato/cus/supervise/service/wms/impl/WmsAcqGoodsSeatServiceImpl06.java

@@ -0,0 +1,31 @@
+package com.emato.cus.supervise.service.wms.impl;
+
+import com.emato.cus.supervise.domain.WmsAcqGoodsSeat06;
+import com.emato.cus.supervise.mapper.WmsAcqGoodsSeatMapper06;
+import com.emato.cus.supervise.service.wms.WmsAcqGoodsSeatService06;
+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 WmsAcqGoodsSeatServiceImpl06 implements WmsAcqGoodsSeatService06 {
+
+    @Autowired
+    private WmsAcqGoodsSeatMapper06 wmsAcqGoodsSeatMapper06;
+
+    @Override
+    @Transactional(value ="primaryTransactionManager")
+    public List<WmsAcqGoodsSeat06> getWmsAcqGoodsSeat(Map<String, Object> param) {
+        return wmsAcqGoodsSeatMapper06.getWmsAcqGoodsSeat(param);
+    }
+}

+ 31 - 0
src/main/java/com/emato/cus/supervise/service/wms/impl/WmsAcqInventoryInfoServiceImpl03.java

@@ -0,0 +1,31 @@
+package com.emato.cus.supervise.service.wms.impl;
+
+import com.emato.cus.supervise.domain.WmsAcqInventoryInfo03;
+import com.emato.cus.supervise.mapper.WmsAcqInventoryInfoMapper03;
+import com.emato.cus.supervise.service.wms.WmsAcqInventoryInfoService03;
+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 WmsAcqInventoryInfoServiceImpl03 implements WmsAcqInventoryInfoService03 {
+
+    @Autowired
+    private WmsAcqInventoryInfoMapper03 wmsAcqInventoryInfoMapper03;
+
+    @Override
+    @Transactional(value ="primaryTransactionManager")
+    public List<WmsAcqInventoryInfo03> getWmsAcqInventoryInfo(Map<String, Object> param) {
+        return wmsAcqInventoryInfoMapper03.getWmsAcqInventoryInfo(param);
+    }
+}

+ 43 - 0
src/main/java/com/emato/cus/supervise/service/wms/impl/WmsAcqShelfLoadServiceImpl04.java

@@ -0,0 +1,43 @@
+package com.emato.cus.supervise.service.wms.impl;
+
+import com.emato.cus.supervise.domain.WmsAcqShelfLoad04;
+import com.emato.cus.supervise.mapper.WmsAcqShelfLoadMapper04;
+import com.emato.cus.supervise.service.wms.WmsAcqShelfLoadService04;
+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 WmsAcqShelfLoadServiceImpl04 implements WmsAcqShelfLoadService04 {
+
+    @Autowired
+    private WmsAcqShelfLoadMapper04 wmsAcqShelfLoadMapper04;
+
+    @Override
+    @Transactional(value ="primaryTransactionManager")
+    public List<WmsAcqShelfLoad04> getWmsAcqShelfLoadUp(Map<String, Object> param) {
+        return wmsAcqShelfLoadMapper04.getWmsAcqShelfLoadUp(param);
+    }
+
+    @Override
+    @Transactional(value ="primaryTransactionManager")
+    public List<WmsAcqShelfLoad04> getWmsAcqShelfLoadBack(Map<String, Object> param) {
+        return wmsAcqShelfLoadMapper04.getWmsAcqShelfLoadBack(param);
+    }
+
+    @Override
+    @Transactional(value ="primaryTransactionManager")
+    public List<WmsAcqShelfLoad04> getWmsAcqShelfLoadOut(Map<String, Object> param) {
+        return wmsAcqShelfLoadMapper04.getWmsAcqShelfLoadOut(param);
+    }
+}

+ 110 - 0
src/main/java/com/emato/cus/supervise/util/LocalDateTimeUtils.java

@@ -0,0 +1,110 @@
+package com.emato.cus.supervise.util;
+
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.Period;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
+import java.time.temporal.TemporalUnit;
+import java.util.Date;
+
+/**
+ * @author Scott Chen
+ * @version 1.0
+ * 2017-10-28 10:47
+ */
+public class LocalDateTimeUtils {
+
+    public static final String DATA_TIME_HYPHEN = "yyyy-MM-dd HH:mm:ss";
+
+    private LocalDateTimeUtils() { }
+
+    //获取当前时间的LocalDateTime对象
+    //LocalDateTime.now();
+
+    //根据年月日构建LocalDateTime
+    //LocalDateTime.of();
+
+    //比较日期先后
+    //LocalDateTime.now().isBefore(),
+    //LocalDateTime.now().isAfter(),
+
+    //Date转换为LocalDateTime
+    public static LocalDateTime convertDateToLDT(Date date) {
+        return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
+    }
+
+    //LocalDateTime转换为Date
+    public static Date convertLDTToDate(LocalDateTime time) {
+        return Date.from(time.atZone(ZoneId.systemDefault()).toInstant());
+    }
+
+
+    //获取指定日期的毫秒
+    public static Long getMilliByTime(LocalDateTime time) {
+        return time.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
+    }
+
+    //获取指定日期的秒
+    public static Long getSecondsByTime(LocalDateTime time) {
+        return time.atZone(ZoneId.systemDefault()).toInstant().getEpochSecond();
+    }
+
+    //获取指定时间的指定格式
+    public static String formatTime(LocalDateTime time, String pattern) {
+        return time.format(DateTimeFormatter.ofPattern(pattern));
+    }
+
+    //获取当前时间的指定格式
+    public static String formatNow(String pattern) {
+        return  formatTime(LocalDateTime.now(), pattern);
+    }
+
+    //日期加上一个数,根据field不同加不同值,field为ChronoUnit.*
+    public static LocalDateTime plus(LocalDateTime time, long number, TemporalUnit field) {
+        return time.plus(number, field);
+    }
+
+    //日期减去一个数,根据field不同减不同值,field参数为ChronoUnit.*
+    public static LocalDateTime minu(LocalDateTime time, long number, TemporalUnit field) {
+        return time.minus(number, field);
+    }
+
+    /**
+     * 获取两个日期的差  field参数为ChronoUnit.*
+     * @param startTime
+     * @param endTime
+     * @param field  单位(年月日时分秒)
+     * @return
+     */
+    public static long betweenTwoTime(LocalDateTime startTime, LocalDateTime endTime, ChronoUnit field) {
+        Period period = Period.between(LocalDate.from(startTime), LocalDate.from(endTime));
+        if (field == ChronoUnit.YEARS) {
+            return period.getYears();
+        }
+        if (field == ChronoUnit.MONTHS) {
+            return period.getYears() * 12 + period.getMonths();
+        }
+        return field.between(startTime, endTime);
+    }
+
+    //获取一天的开始时间,2017,7,22 00:00
+    public static LocalDateTime getDayStart(LocalDateTime time) {
+        return time.withHour(0)
+                .withMinute(0)
+                .withSecond(0)
+                .withNano(0);
+    }
+
+    //获取一天的结束时间,2017,7,22 23:59:59.999999999
+    public static LocalDateTime getDayEnd(LocalDateTime time) {
+        return time.withHour(23)
+                .withMinute(59)
+                .withSecond(59)
+                .withNano(999999999);
+    }
+
+
+}

+ 11 - 0
src/main/resources/application-dev.yml

@@ -0,0 +1,11 @@
+
+# 当前环境
+spring:
+  profiles: dev
+
+
+
+
+
+
+

+ 62 - 0
src/main/resources/application.yml

@@ -0,0 +1,62 @@
+#---------- Spring Boot 项目 ----------#
+
+
+# 项目配置
+app:
+  name: cus-wms-supervise
+  description: ${app.name} is a Spring Boot application
+
+# 服务配置
+server:
+  address: 120.24.12.161
+  port: 8081
+
+# 使用环境
+spring:
+  profiles:
+    active: dev
+
+  # 数据源
+  datasource:
+    primary:
+      # 数据源zaxxer HikariCP
+      type: com.zaxxer.hikari.HikariDataSource
+      driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+      url: jdbc:sqlserver://120.24.12.161:61201;DatabaseName=qhwms
+      # url: jdbc:sqlserver://rdsgg5179g53uq3w9n31.sqlserver.rds.aliyuncs.com:3433;DatabaseName=qhwms
+      username: wms
+      password: _1qaz-2wsx
+      # hikari连接池配置
+      hikari:
+        readOnly: true
+        connectionTimeout: 10000
+        validationTimeout: 5000
+        idleTimeout: 600000
+        maxLifetime: 1200000
+        maximumPoolSize: 3
+        minimumIdle: 3
+    second:
+      # 数据源zaxxer HikariCP
+      type: com.zaxxer.hikari.HikariDataSource
+      driver-class-name: org.mariadb.jdbc.Driver
+      url: jdbc:mysql://183.3.221.144:3306/wms_data?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
+      username: wms_admin
+      password: WMs@32!cj
+      # hikari连接池配置
+      hikari:
+        connectionTimeout: 10000
+        validationTimeout: 5000
+        idleTimeout: 600000
+        maxLifetime: 1200000
+        maximumPoolSize: 10
+        minimumIdle: 3
+
+
+# mybatis config 多数据源
+mybatis:
+  primary:
+      config-location: classpath:mybatis/mybatis-config.xml
+      type-aliases-package: com.emato.cus.supervise.domain
+  second:
+      config-location: classpath:mybatis/mybatis-config-cus.xml
+      type-aliases-package: com.emato.cus.supervise.domainCus

+ 125 - 0
src/main/resources/logback.xml

@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration scan="false" scanPeriod="60 seconds" debug="false">
+
+    <property name="LOG_HOME" value="/data_cus_data_supervise/cus_data_supervise/logs"/>
+    <!-- 定义日志的根目录 -->
+    <property name="DEBUG_DIR" value="debug" />
+    <property name="INFO_DIR" value="info" />
+    <property name="WARN_DIR" value="warn" />
+    <property name="ERROR_DIR" value="error" />
+    <!-- 定义日志文件名称 -->
+    <property name="DEBUG_FILE_NAME" value="cus-wms-debug"></property>
+    <property name="INFO_FILE_NAME" value="cus-wms-info"></property>
+    <property name="WARN_FILE_NAME" value="cus-wms-warn"></property>
+    <property name="ERROR_FILE_NAME" value="cus-wms-error"></property>
+
+    <!-- ConsoleAppender 控制台输出 appender -->
+    <appender name="stdoutAppender" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]-[%-5level][%logger{70}: %line] - %msg%n</pattern>
+        </encoder>
+    </appender>
+
+
+    <!-- DEBUG 日志 appender  -->
+    <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 指定日志文件的名称 -->
+        <file>${LOG_HOME}/${DEBUG_DIR}/${DEBUG_FILE_NAME}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/${DEBUG_DIR}/${DEBUG_FILE_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
+            <MaxHistory>365</MaxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]-[%-5level][%logger{70}: %line] - %msg%n</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+        </filter>
+    </appender>
+
+
+    <!-- INFO 日志 appender  -->
+    <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 指定日志文件的名称 -->
+        <file>${LOG_HOME}/${INFO_DIR}/${INFO_FILE_NAME}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/${INFO_DIR}/${INFO_FILE_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
+            <MaxHistory>365</MaxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]-[%-5level][%logger{70}: %line] - %msg%n</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+        </filter>
+    </appender>
+
+
+    <!-- WARN 日志 appender  -->
+    <appender name="warnAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 指定日志文件的名称 -->
+        <file>${LOG_HOME}/${WARN_DIR}/${WARN_FILE_NAME}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/${WARN_DIR}/${WARN_FILE_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
+            <MaxHistory>365</MaxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]-[%-5level][%logger{70}: %line] - %msg%n</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>WARN</level>
+        </filter>
+    </appender>
+
+
+    <!-- ERROR 日志 appender  -->
+    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 指定日志文件的名称 -->
+        <file>${LOG_HOME}/${ERROR_DIR}/${ERROR_FILE_NAME}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/${ERROR_DIR}/${ERROR_FILE_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
+            <MaxHistory>365</MaxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]-[%-5level][%logger{70}: %line] - %msg%n</pattern>
+        </encoder>
+
+        <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印错误日志 -->
+            <!-- 设置过滤级别 -->
+            <level>ERROR</level>
+        </filter>
+    </appender>
+
+
+    <logger name="org.apache" level="ERROR"/>
+    <logger name="org.mybatis" level="DEBUG"/>
+    <logger name="org.hibernate" level="WARN"/>
+    <logger name="org.springframework" level="INFO"/>
+    <logger name="org.thymeleaf" level="INFO"/>
+    <logger name="com.zaxxer.hikari" level="ERROR" additivity="false">
+        <appender-ref ref="stdoutAppender" />
+        <appender-ref ref="errorAppender" />
+    </logger>
+    <logger name="com.emato.cus.supervise" level="DEBUG"/>
+
+    <root level="DEBUG" >
+        <appender-ref ref="stdoutAppender" />
+        <appender-ref ref="debugAppender" />
+        <!--<appender-ref ref="infoAppender" />
+        <appender-ref ref="warnAppender" />
+        <appender-ref ref="errorAppender" />-->
+    </root>
+</configuration>

+ 35 - 0
src/main/resources/mybatis/mapper/wms-acq-goods-move.xml

@@ -0,0 +1,35 @@
+<?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.WmsAcqGoodsMoveMapper05">
+
+
+    <!-- 货物库位移动数据 -->
+    <select id="getWmsAcqGoodsMove" parameterType="Map" resultType="com.emato.cus.supervise.domain.WmsAcqGoodsMove05">
+        SELECT * from (
+            SELECT t.transferTime AS shelfLoadTime, t.transferTime AS shelfUnloadTime, t5.label AS targetSeatNo, t4.label AS originSeatNo,
+                t1.shortName AS goodsName, t2.customsProductCode AS codeTs, t.sku AS skuNo, t.sku AS goodsId, t1.unit AS gUnitName, t10.codeValue AS gUnit, t.qty AS gQty,
+                t1.qty1*t.qty AS legalQty, t1.unit1 AS legalUnitName, t11.codeValue AS legalUnit, t1.customsDeclaredElements AS goodsModel,
+                '440301111758322' AS storeUscCode, 'I440366000315001' AS localEmsNo,
+                '深圳前海电商供应链管理有限公司' AS storeCompanyName, '319489717' AS storeUseCode, '4403660003' AS storeCustomsCode, '534931948971720171102000281725' AS storeCode,
+                transferTime
+            FROM StockSlotTransfer t
+                LEFT OUTER JOIN Product t1 ON t.sku=t1.sku
+                LEFT OUTER JOIN ProductCategory t2 ON t1.productCategoryId=t2.id
+                LEFT OUTER JOIN WarehouseSlot t4 ON t.sourceSlotId=t4.id
+                LEFT OUTER JOIN WarehouseSlot t5 ON t.destSlotId=t5.id
+                LEFT OUTER JOIN CustomsCode t10 ON t1.unit=t10.codeName AND t10.codeType='4'
+                LEFT OUTER JOIN CustomsCode t11 ON t1.unit1=t11.codeName AND t11.codeType='4'
+            WHERE t.state='1' AND t.qualityType='0' AND t.qty &lt;&gt; 0 AND t.transferTime IS NOT NULL
+                AND t4.label IN (SELECT seat_no AS seatNo FROM WareHouseSlot_cus_data_supervise)
+                AND t5.label IN (SELECT seat_no AS seatNo FROM WareHouseSlot_cus_data_supervise)
+        ) tt
+        <where>
+             <if test="thisTime != null">
+                 tt.transferTime &gt;= #{thisTime}
+             </if>
+         </where>
+        ORDER BY transferTime ASC
+    </select>
+
+</mapper>

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

@@ -0,0 +1,32 @@
+<?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.WmsAcqGoodsSeatMapper06">
+
+
+    <!-- 库位货物数据 -->
+    <select id="getWmsAcqGoodsSeat" parameterType="Map" resultType="com.emato.cus.supervise.domain.WmsAcqGoodsSeat06">
+        SELECT max(t4.label) AS seatNo, max(t1.shortName) AS goodsName, max(t2.customsProductCode) AS codeTs, t.sku AS skuNo, t.sku AS goodsId,
+            max(t1.unit) AS gUnitName, max(t10.codeValue) AS gUnit,
+            sum(t.availableQty + t.frozenQty) AS gQty, sum(t1.qty1*(t.availableQty + t.frozenQty)) AS legalQty,
+            max(t1.unit1) AS legalUnitName, max(t11.codeValue) AS legalUnit,  max(t1.customsDeclaredElements) AS goodsModel,
+            max(t.shopId), min(t3.compayName) AS ownerName, max(t3.customsCertNo) AS ownerCode,
+            '440301111758322' AS storeUscCode, 'I440366000315001' AS localEmsNo,
+            '深圳前海电商供应链管理有限公司' AS storeCompanyName, '319489717' AS storeUseCode, '4403660003' AS storeCustomsCode, '534931948971720171102000281725' AS storeCode,
+            max(t.avaQtyChgTime) AS avaQtyChgTime
+        FROM WarehousingEntry t
+            LEFT OUTER JOIN Product t1 ON t.sku=t1.sku
+            LEFT OUTER JOIN ProductCategory t2 ON t1.productCategoryId=t2.id
+            LEFT OUTER JOIN ShopInfo t3 ON t.shopId=t3.ShopId
+            LEFT OUTER JOIN WarehouseSlot t4 ON t.slotId=t4.id
+            LEFT OUTER JOIN CustomsCode t10 ON t1.unit=t10.codeName AND t10.codeType='4'
+            LEFT OUTER JOIN CustomsCode t11 ON t1.unit1=t11.codeName AND t11.codeType='4'
+        WHERE t.type='0' AND t.availableQty &lt;&gt; 0  and t1.qty1 &lt;&gt; 0
+            AND t4.label IN (SELECT seat_no AS seatNo FROM WareHouseSlot_cus_data_supervise)
+            <if test="thisTime != null and thisTime != ''">
+                AND avaQtyChgTime &gt;= #{thisTime}
+            </if>
+        GROUP BY t.sku, t.slotId ORDER BY avaQtyChgTime ASC
+    </select>
+
+</mapper>

+ 29 - 0
src/main/resources/mybatis/mapper/wms-acq-inventory-info.xml

@@ -0,0 +1,29 @@
+<?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.WmsAcqInventoryInfoMapper03">
+
+
+    <select id="getWmsAcqInventoryInfo" parameterType="Map" resultType="com.emato.cus.supervise.domain.WmsAcqInventoryInfo03">
+            select max(t1.shortName) AS goodsName, max(t2.customsProductCode) AS codeTs, t.sku AS skuNo, t.sku AS goodsId,
+                max(t1.unit) AS gUnitName, max(t10.codeValue) AS gUnit,
+                sum(t.availableQty + t.frozenQty) AS gQty, sum(t1.qty1*(t.availableQty + t.frozenQty)) AS legalQty,
+                max(t1.unit1) AS legalUnitName, max(t11.codeValue) AS legalUnit,  max(t1.customsDeclaredElements) AS goodsModel,
+                max(t.shopId), min(t3.compayName) AS ownerName, max(t3.customsCertNo) AS ownerCode,
+                '440301111758322' AS storeUscCode,  'I440366000315001' AS localEmsNo,
+                '深圳前海电商供应链管理有限公司' AS storeCompanyName, '319489717' AS storeUseCode,
+                '4403660003' AS storeCustomsCode, '534931948971720171102000281725' AS storeCode, max(t.avaQtyChgTime) AS avaQtyChgTime
+            from WarehousingEntry t
+                LEFT OUTER JOIN Product t1 ON t.sku=t1.sku
+                LEFT OUTER JOIN ProductCategory t2 ON t1.productCategoryId=t2.id
+                LEFT OUTER JOIN ShopInfo t3 ON t.shopId=t3.ShopID
+                LEFT OUTER JOIN CustomsCode t10 ON t1.unit=t10.codeName AND t10.codeType='4'
+                LEFT OUTER JOIN CustomsCode t11 ON t1.unit1=t11.codeName AND t11.codeType='4'
+            WHERE t.type='0' AND t.availableQty &lt;&gt; 0 and t1.qty1 &lt;&gt; 0
+                <if test="thisTime != null and thisTime != ''">
+                     and avaQtyChgTime &gt;= #{thisTime}
+                </if>
+            group by t.sku ORDER BY avaQtyChgTime ASC
+    </select>
+
+</mapper>

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

@@ -0,0 +1,86 @@
+<?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.WmsAcqShelfLoadMapper04">
+
+
+    <!-- 上架 -->
+    <select id="getWmsAcqShelfLoadUp" parameterType="Map" resultType="com.emato.cus.supervise.domain.WmsAcqShelfLoad04">
+        SELECT * from (
+            SELECT t3.id, t.asnItemId, t1.shortName AS goodsName, t2.customsProductCode AS codeTs, t.sku AS skuNo, t.sku AS goodsId, t1.unit AS gUnitName, t10.codeValue AS gUnit,
+                t.nonDefectQty AS gQty, t1.qty1*t.nonDefectQty AS legalQty, t1.unit1 AS legalUnitName, t11.codeValue AS legalUnit, t1.customsDeclaredElements AS goodsModel,
+                t4.label AS seatNo, 'I' AS shelfLoadType, t.warehousedTime AS shelfLoadTime,
+                '440301111758322' AS storeUscCode, 'I440366000315001' AS localEmsNo,
+                '深圳前海电商供应链管理有限公司' AS storeCompanyName, '319489717' AS storeUseCode, '4403660003' AS storeCustomsCode, '534931948971720171102000281725' AS storeCode
+            FROM AsnItem t
+                LEFT OUTER JOIN Product t1 ON t.sku=t1.sku
+                LEFT OUTER JOIN ProductCategory t2 ON t1.productCategoryId=t2.id
+                LEFT OUTER JOIN WarehousingEntry t3 ON t.asnItemId=t3.id
+                LEFT OUTER JOIN WarehouseSlot t4 ON t3.slotId=t4.id
+                LEFT OUTER JOIN CustomsCode t10 ON t1.unit=t10.codeName AND t10.codeType='4'
+                LEFT OUTER JOIN CustomsCode t11 ON t1.unit1=t11.codeName AND t11.codeType='4'
+            WHERE t.slottingState='WAREHOUSED' AND t3.availableQty  &lt;&gt; 0 AND t.nonDefectQty  &lt;&gt; 0 AND t.warehousedTime IS NOT NULL
+              AND t4.label IN (SELECT seat_no AS seatNo FROM WareHouseSlot_cus_data_supervise)
+            ) tt
+             <where>
+                 <if test="thisTime != null">
+                     tt.shelfLoadTime &gt;= #{thisTime}
+                 </if>
+             </where>
+            ORDER BY shelfLoadTime ASC
+    </select>
+
+
+    <!-- 退港 -->
+    <select id="getWmsAcqShelfLoadBack" parameterType="Map" resultType="com.emato.cus.supervise.domain.WmsAcqShelfLoad04">
+        SELECT * from (
+            SELECT t1.shortName AS goodsName, t2.customsProductCode AS codeTs, t.sku AS skuNo, t.sku AS goodsId, t1.unit AS gUnitName, t10.codeValue AS gUnit,
+                t.withdrawQty AS gQty, t1.qty1*t.withdrawQty AS legalQty, t1.unit1 AS legalUnitName, t11.codeValue AS legalUnit, t1.customsDeclaredElements AS goodsModel,
+                t4.label AS seatNo, 'E' AS shelfLoadType, t.created AS shelfLoadTime,
+                '440301111758322' AS storeUscCode, 'I440366000315001' AS localEmsNo,
+                '深圳前海电商供应链管理有限公司' AS storeCompanyName, '319489717' AS storeUseCode, '4403660003' AS storeCustomsCode, '534931948971720171102000281725' AS storeCode
+            FROM StockWithdrawItem t
+                LEFT OUTER JOIN Product t1 ON t.sku=t1.sku
+                LEFT OUTER JOIN ProductCategory t2 ON t1.productCategoryId=t2.id
+                LEFT OUTER JOIN WarehousingEntry t3 ON t.warehousingEntryId=t3.id
+                LEFT OUTER JOIN WarehouseSlot t4 ON t3.slotId=t4.id
+                LEFT OUTER JOIN CustomsCode t10 ON t1.unit=t10.codeName AND t10.codeType='4'
+                LEFT OUTER JOIN CustomsCode t11 ON t1.unit1=t11.codeName AND t11.codeType='4'
+            WHERE t3.availableQty  &lt;&gt; 0 AND t.created IS NOT NULL
+                AND t4.label IN (SELECT seat_no AS seatNo FROM WareHouseSlot_cus_data_supervise)
+        ) tt
+        <where>
+            <if test="thisTime != null">
+                tt.shelfLoadTime &gt;= #{thisTime}
+            </if>
+        </where>
+        ORDER BY shelfLoadTime ASC
+    </select>
+
+
+    <!-- 正常拣货 -->
+    <select id="getWmsAcqShelfLoadOut" parameterType="Map" resultType="com.emato.cus.supervise.domain.WmsAcqShelfLoad04">
+        SELECT * from (
+            SELECT t.id, t1.shortName AS goodsName, t2.customsProductCode AS codeTs, t.sku AS skuNo, t.sku AS goodsId, t1.unit AS gUnitName, t10.codeValue AS gUnit,
+                t.qty AS gQty, t1.qty1*t.qty AS legalQty, t1.unit1 AS legalUnitName, t11.codeValue AS legalUnit, t1.customsDeclaredElements AS goodsModel,
+                t4.label AS seatNo, 'E' AS shelfLoadType, t.createTime AS shelfLoadTime,
+                '440301111758322' AS storeUscCode,  'I440366000315001' AS localEmsNo,
+                '深圳前海电商供应链管理有限公司' AS storeCompanyName, '319489717' AS storeUseCode, '4403660003' AS storeCustomsCode, '534931948971720171102000281725' AS storeCode
+            FROM WarehousingEntry_shipment t
+                LEFT OUTER JOIN Product t1 ON t.sku=t1.sku
+                LEFT OUTER JOIN ProductCategory t2 ON t1.productCategoryId=t2.id
+                LEFT OUTER JOIN WarehouseSlot t4 ON t.slotId=t4.id
+                LEFT OUTER JOIN CustomsCode t10 ON t1.unit=t10.codeName AND t10.codeType='4'
+                LEFT OUTER JOIN CustomsCode t11 ON t1.unit1=t11.codeName AND t11.codeType='4'
+            WHERE t.qty &lt;&gt; 0 AND t.createTime IS NOT NULL
+              AND t4.label IN (SELECT seat_no AS seatNo FROM WareHouseSlot_cus_data_supervise)
+        ) tt
+        <where>
+            <if test="thisTime != null">
+                tt.shelfLoadTime &gt;= #{thisTime}
+            </if>
+        </where>
+        ORDER BY shelfLoadTime ASC
+    </select>
+
+</mapper>

+ 60 - 0
src/main/resources/mybatis/mapperCus/cus-acq-goods-move.xml

@@ -0,0 +1,60 @@
+<?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.mapperCus.CusAcqGoodsMoveMapper05">
+
+    <resultMap id="cusAcqInventoryInfo" type="com.emato.cus.supervise.domainCus.CusAcqGoodsMove05">
+        <id property="id" column="id"/>
+
+        <result property="shelfLoadTime" column="shelf_load_time"/>
+        <result property="shelfUnloadTime" column="shelf_unload_time"/>
+        <result property="targetSeatNo" column="target_seat_no"/>
+        <result property="originSeatNo" column="origin_seat_no"/>
+
+        <result property="goodsName" column="goods_name"/>
+        <result property="codeTs" column="code_ts"/>
+        <result property="skuNo" column="sku_no"/>
+        <result property="goodsId" column="goods_id"/>
+
+        <result property="gUnit" column="g_unit"/>
+        <result property="gQty" column="g_qyt"/>
+        <result property="legalUnit" column="legal_unit"/>
+        <result property="legalQty" column="legal_qyt"/>
+
+        <result property="goodsModel" column="goods_model"/>
+        <result property="localEmsNo" column="local_ems_no"/>
+
+        <result property="storeCompanyName" column="store_company_name"/>
+        <result property="storeUscCode" column="store_usc_code"/>
+        <result property="storeCustomsCode" column="store_customs_code"/>
+        <result property="storeCode" column="store_code"/>
+
+        <result property="createrSn" column="creater_sn"/>
+        <result property="createTime" column="create_time"/>
+        <result property="moderSn" column="moder_sn"/>
+        <result property="modTime" column="mod_time"/>
+    </resultMap>
+
+    <!-- 货物库位移动数据 -->
+    <insert id="addCusAcqGoodsMove05" parameterType="List">
+        INSERT INTO acq_goods_move (
+                  shelf_load_time, shelf_unload_time, target_seat_no, origin_seat_no,
+                  goods_name, code_ts, sku_no, goods_id,
+                  g_unit, g_qyt, legal_unit, legal_qyt,
+                  goods_model, local_ems_no,
+                  store_company_name,store_usc_code, store_customs_code, store_code,
+                  creater_sn, create_time, moder_sn, mod_time)
+        VALUES
+        <foreach collection="list" item="item" index="idx" separator="," close=";">
+            (
+              #{item.shelfLoadTime, jdbcType=DATE}, #{item.shelfUnloadTime, jdbcType=DATE}, #{item.targetSeatNo, jdbcType=VARCHAR}, #{item.originSeatNo, jdbcType=VARCHAR},
+              #{item.goodsName, jdbcType=VARCHAR}, #{item.codeTs, jdbcType=VARCHAR}, #{item.skuNo, jdbcType=VARCHAR}, #{item.goodsId, jdbcType=VARCHAR},
+              #{item.gUnit, jdbcType=VARCHAR}, #{item.gQty, jdbcType=NUMERIC}, #{item.legalUnit, jdbcType=VARCHAR}, #{item.legalQty, jdbcType=NUMERIC},
+              #{item.goodsModel, jdbcType=VARCHAR}, #{item.localEmsNo, jdbcType=VARCHAR},
+              #{item.storeCompanyName, jdbcType=VARCHAR}, #{item.storeUscCode, jdbcType=VARCHAR}, #{item.storeCustomsCode, jdbcType=VARCHAR}, #{item.storeCode, jdbcType=VARCHAR},
+              #{item.createrSn, jdbcType=VARCHAR}, #{item.createTime, jdbcType=DATE}, #{item.moderSn, jdbcType=VARCHAR}, #{item.modTime, jdbcType=DATE}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

Некоторые файлы не были показаны из-за большого количества измененных файлов