diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1488a29 --- /dev/null +++ b/.gitignore @@ -0,0 +1,65 @@ +# ---> Eclipse +.metadata +/bin/ +/target/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ +.apt_generated_test/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +# Uncomment this line if you wish to ignore the project description file. +# Typically, this file would be tracked if it contains build/dependency configurations: +.project +.classpath +.idea +/emp-sync-service1.iml diff --git a/libs/HufuErpMigrateV2-0.0.1-jar-with-dependencies.jar b/libs/HufuErpMigrateV2-0.0.1-jar-with-dependencies.jar deleted file mode 100644 index a3bdb4c..0000000 Binary files a/libs/HufuErpMigrateV2-0.0.1-jar-with-dependencies.jar and /dev/null differ diff --git a/libs/apache-mime4j-0.6.jar b/libs/apache-mime4j-0.6.jar deleted file mode 100644 index 1d2282c..0000000 Binary files a/libs/apache-mime4j-0.6.jar and /dev/null differ diff --git a/libs/codec-client-0.2.4.jar b/libs/codec-client-0.2.4.jar deleted file mode 100644 index 686d528..0000000 Binary files a/libs/codec-client-0.2.4.jar and /dev/null differ diff --git a/libs/common-cipher-0.4.6.jar b/libs/common-cipher-0.4.6.jar deleted file mode 100644 index 888ea08..0000000 Binary files a/libs/common-cipher-0.4.6.jar and /dev/null differ diff --git a/libs/common-codec-0.4.6.jar b/libs/common-codec-0.4.6.jar deleted file mode 100644 index 575c820..0000000 Binary files a/libs/common-codec-0.4.6.jar and /dev/null differ diff --git a/libs/commons-beanutils-1.8.3.jar b/libs/commons-beanutils-1.8.3.jar deleted file mode 100644 index 218510b..0000000 Binary files a/libs/commons-beanutils-1.8.3.jar and /dev/null differ diff --git a/libs/commons-codec-1.3.jar b/libs/commons-codec-1.3.jar deleted file mode 100644 index 957b675..0000000 Binary files a/libs/commons-codec-1.3.jar and /dev/null differ diff --git a/libs/commons-collections-3.2.1.jar b/libs/commons-collections-3.2.1.jar deleted file mode 100644 index c35fa1f..0000000 Binary files a/libs/commons-collections-3.2.1.jar and /dev/null differ diff --git a/libs/commons-collections4-4.1.jar b/libs/commons-collections4-4.1.jar deleted file mode 100644 index 43a9413..0000000 Binary files a/libs/commons-collections4-4.1.jar and /dev/null differ diff --git a/libs/commons-httpclient-3.1.jar b/libs/commons-httpclient-3.1.jar deleted file mode 100644 index 7c59774..0000000 Binary files a/libs/commons-httpclient-3.1.jar and /dev/null differ diff --git a/libs/commons-lang-2.5.jar b/libs/commons-lang-2.5.jar deleted file mode 100644 index ae491da..0000000 Binary files a/libs/commons-lang-2.5.jar and /dev/null differ diff --git a/libs/commons-lang3-3.1.jar b/libs/commons-lang3-3.1.jar deleted file mode 100644 index a85e539..0000000 Binary files a/libs/commons-lang3-3.1.jar and /dev/null differ diff --git a/libs/commons-logging-1.2.jar b/libs/commons-logging-1.2.jar deleted file mode 100644 index 93a3b9f..0000000 Binary files a/libs/commons-logging-1.2.jar and /dev/null differ diff --git a/libs/commons-pool-1.5.6.jar b/libs/commons-pool-1.5.6.jar deleted file mode 100644 index ce5ff60..0000000 Binary files a/libs/commons-pool-1.5.6.jar and /dev/null differ diff --git a/libs/doudian-sdk-java-1.0.0-20211202165402.jar b/libs/doudian-sdk-java-1.0.0-20211202165402.jar deleted file mode 100644 index 0ffd4a8..0000000 Binary files a/libs/doudian-sdk-java-1.0.0-20211202165402.jar and /dev/null differ diff --git a/libs/druid-1.2.3.jar b/libs/druid-1.2.3.jar deleted file mode 100644 index 4c0e2d5..0000000 Binary files a/libs/druid-1.2.3.jar and /dev/null differ diff --git a/libs/ezmorph-1.0.6.jar b/libs/ezmorph-1.0.6.jar deleted file mode 100644 index 30fad12..0000000 Binary files a/libs/ezmorph-1.0.6.jar and /dev/null differ diff --git a/libs/fastjson-1.2.12.jar b/libs/fastjson-1.2.12.jar deleted file mode 100644 index 1b62aa3..0000000 Binary files a/libs/fastjson-1.2.12.jar and /dev/null differ diff --git a/libs/fe-platform_88fb7938e910aad5e7984042488ef09312f134bb_openSdk.jar.jar b/libs/fe-platform_88fb7938e910aad5e7984042488ef09312f134bb_openSdk.jar.jar deleted file mode 100644 index 614fc8f..0000000 Binary files a/libs/fe-platform_88fb7938e910aad5e7984042488ef09312f134bb_openSdk.jar.jar and /dev/null differ diff --git a/libs/fnGson-1.2.jar b/libs/fnGson-1.2.jar deleted file mode 100644 index 906dd20..0000000 Binary files a/libs/fnGson-1.2.jar and /dev/null differ diff --git a/libs/gmos_client_sdk.jar b/libs/gmos_client_sdk.jar deleted file mode 100644 index f20e09f..0000000 Binary files a/libs/gmos_client_sdk.jar and /dev/null differ diff --git a/libs/httpclient-4.4.1.jar b/libs/httpclient-4.4.1.jar deleted file mode 100644 index b80d379..0000000 Binary files a/libs/httpclient-4.4.1.jar and /dev/null differ diff --git a/libs/httpcore-4.4.1.jar b/libs/httpcore-4.4.1.jar deleted file mode 100644 index 99715b6..0000000 Binary files a/libs/httpcore-4.4.1.jar and /dev/null differ diff --git a/libs/httpmime-4.4.1.jar b/libs/httpmime-4.4.1.jar deleted file mode 100644 index e748cbd..0000000 Binary files a/libs/httpmime-4.4.1.jar and /dev/null differ diff --git a/libs/icu4j-59.1.jar b/libs/icu4j-59.1.jar deleted file mode 100644 index 3dc69c8..0000000 Binary files a/libs/icu4j-59.1.jar and /dev/null differ diff --git a/libs/jackson-core-asl-1.9.13.jar b/libs/jackson-core-asl-1.9.13.jar deleted file mode 100644 index bb4fe1d..0000000 Binary files a/libs/jackson-core-asl-1.9.13.jar and /dev/null differ diff --git a/libs/jackson-mapper-asl-1.9.13.jar b/libs/jackson-mapper-asl-1.9.13.jar deleted file mode 100644 index 0f2073f..0000000 Binary files a/libs/jackson-mapper-asl-1.9.13.jar and /dev/null differ diff --git a/libs/jakarta-oro-2.0.8.jar b/libs/jakarta-oro-2.0.8.jar deleted file mode 100644 index 23488d2..0000000 Binary files a/libs/jakarta-oro-2.0.8.jar and /dev/null differ diff --git a/libs/jdom.jar b/libs/jdom.jar deleted file mode 100644 index 65a1b3f..0000000 Binary files a/libs/jdom.jar and /dev/null differ diff --git a/libs/json-20160810.jar b/libs/json-20160810.jar deleted file mode 100644 index a90e448..0000000 Binary files a/libs/json-20160810.jar and /dev/null differ diff --git a/libs/json-lib-2.2.3.jar b/libs/json-lib-2.2.3.jar deleted file mode 100644 index 8c92fab..0000000 Binary files a/libs/json-lib-2.2.3.jar and /dev/null differ diff --git a/libs/junit-4.13.2.jar b/libs/junit-4.13.2.jar deleted file mode 100644 index 6da55d8..0000000 Binary files a/libs/junit-4.13.2.jar and /dev/null differ diff --git a/libs/justice-core-2.1.2.jar b/libs/justice-core-2.1.2.jar deleted file mode 100644 index 27de65c..0000000 Binary files a/libs/justice-core-2.1.2.jar and /dev/null differ diff --git a/libs/jxl.jar b/libs/jxl.jar deleted file mode 100644 index b210c06..0000000 Binary files a/libs/jxl.jar and /dev/null differ diff --git a/libs/kuaishou-merchant-open-sdk-110.jar b/libs/kuaishou-merchant-open-sdk-110.jar deleted file mode 100644 index ce857a9..0000000 Binary files a/libs/kuaishou-merchant-open-sdk-110.jar and /dev/null differ diff --git a/libs/log4j-api-2.17.1.jar b/libs/log4j-api-2.17.1.jar deleted file mode 100644 index 605c45d..0000000 Binary files a/libs/log4j-api-2.17.1.jar and /dev/null differ diff --git a/libs/log4j-core-2.17.1.jar b/libs/log4j-core-2.17.1.jar deleted file mode 100644 index bbead12..0000000 Binary files a/libs/log4j-core-2.17.1.jar and /dev/null differ diff --git a/libs/lombok-1.18.24.jar b/libs/lombok-1.18.24.jar deleted file mode 100644 index 3a985fe..0000000 Binary files a/libs/lombok-1.18.24.jar and /dev/null differ diff --git a/libs/mysql-connector-java-8.0.21.jar b/libs/mysql-connector-java-8.0.21.jar deleted file mode 100644 index 51e270c..0000000 Binary files a/libs/mysql-connector-java-8.0.21.jar and /dev/null differ diff --git a/libs/okhttp-3.4.1.jar b/libs/okhttp-3.4.1.jar deleted file mode 100644 index e31f248..0000000 Binary files a/libs/okhttp-3.4.1.jar and /dev/null differ diff --git a/libs/okio-1.9.0.jar b/libs/okio-1.9.0.jar deleted file mode 100644 index 3c42b93..0000000 Binary files a/libs/okio-1.9.0.jar and /dev/null differ diff --git a/libs/open-api-1.0-SNAPSHOT.jar b/libs/open-api-1.0-SNAPSHOT.jar deleted file mode 100644 index 7d0559f..0000000 Binary files a/libs/open-api-1.0-SNAPSHOT.jar and /dev/null differ diff --git a/libs/open-api-jdk1_8-1.0.2-SNAPSHOT.jar b/libs/open-api-jdk1_8-1.0.2-SNAPSHOT.jar deleted file mode 100644 index ab375e1..0000000 Binary files a/libs/open-api-jdk1_8-1.0.2-SNAPSHOT.jar and /dev/null differ diff --git a/libs/open-api-sdk-2.0-2021-05-28.jar b/libs/open-api-sdk-2.0-2021-05-28.jar deleted file mode 100644 index 7f6b8a3..0000000 Binary files a/libs/open-api-sdk-2.0-2021-05-28.jar and /dev/null differ diff --git a/libs/osp-sdk.jar b/libs/osp-sdk.jar deleted file mode 100644 index 1b8ec90..0000000 Binary files a/libs/osp-sdk.jar and /dev/null differ diff --git a/libs/poi-3.17.jar b/libs/poi-3.17.jar deleted file mode 100644 index 353ce76..0000000 Binary files a/libs/poi-3.17.jar and /dev/null differ diff --git a/libs/poi-ooxml-3.17.jar b/libs/poi-ooxml-3.17.jar deleted file mode 100644 index 68086e8..0000000 Binary files a/libs/poi-ooxml-3.17.jar and /dev/null differ diff --git a/libs/poi-ooxml-schemas-3.17.jar b/libs/poi-ooxml-schemas-3.17.jar deleted file mode 100644 index 2e9b3e7..0000000 Binary files a/libs/poi-ooxml-schemas-3.17.jar and /dev/null differ diff --git a/libs/pop-sdk-1.10.97-all.jar b/libs/pop-sdk-1.10.97-all.jar deleted file mode 100644 index db30401..0000000 Binary files a/libs/pop-sdk-1.10.97-all.jar and /dev/null differ diff --git a/libs/slf4j-api-1.6.1.jar b/libs/slf4j-api-1.6.1.jar deleted file mode 100644 index 42e0ad0..0000000 Binary files a/libs/slf4j-api-1.6.1.jar and /dev/null differ diff --git a/libs/slf4j-simple-1.6.1.jar b/libs/slf4j-simple-1.6.1.jar deleted file mode 100644 index d894d96..0000000 Binary files a/libs/slf4j-simple-1.6.1.jar and /dev/null differ diff --git a/libs/spymemcached-2.12.3.jar b/libs/spymemcached-2.12.3.jar deleted file mode 100644 index 5635944..0000000 Binary files a/libs/spymemcached-2.12.3.jar and /dev/null differ diff --git a/libs/taobao-sdk-java-auto_1617699564157-20210406.jar b/libs/taobao-sdk-java-auto_1617699564157-20210406.jar deleted file mode 100644 index 2d9f8a2..0000000 Binary files a/libs/taobao-sdk-java-auto_1617699564157-20210406.jar and /dev/null differ diff --git a/libs/vop-sdk.jar b/libs/vop-sdk.jar deleted file mode 100644 index 61c271d..0000000 Binary files a/libs/vop-sdk.jar and /dev/null differ diff --git a/libs/xmlbeans-2.6.0.jar b/libs/xmlbeans-2.6.0.jar deleted file mode 100644 index d1b6627..0000000 Binary files a/libs/xmlbeans-2.6.0.jar and /dev/null differ diff --git a/libs/xom-1.1.jar b/libs/xom-1.1.jar deleted file mode 100644 index 3d1fcc8..0000000 Binary files a/libs/xom-1.1.jar and /dev/null differ diff --git a/libs/xstream-1.4.3.jar b/libs/xstream-1.4.3.jar deleted file mode 100644 index 815ed03..0000000 Binary files a/libs/xstream-1.4.3.jar and /dev/null differ diff --git a/libs/yz_SDK.jar b/libs/yz_SDK.jar deleted file mode 100644 index 5d07de1..0000000 Binary files a/libs/yz_SDK.jar and /dev/null differ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..5d067e6 --- /dev/null +++ b/pom.xml @@ -0,0 +1,423 @@ + + + 4.0.0 + + 1.8 + 1.8 + + com.rwuii + emp-sync-service + 8.56.5-RELEASES + + + + org.apache.james + apache-mime4j + 0.6 + + + + commons-beanutils + commons-beanutils + 1.8.3 + + + + + + commons-codec + commons-codec + 1.15 + + + + org.apache.commons + commons-collections4 + 4.1 + + + + commons-collections + commons-collections + 3.2.1 + + + + commons-httpclient + commons-httpclient + 3.1 + + + + org.apache.commons + commons-lang3 + 3.1 + + + + commons-lang + commons-lang + 2.5 + + + + commons-logging + commons-logging + 1.2 + + + + commons-pool + commons-pool + 1.5.6 + + + + com.alibaba + druid + 1.2.3 + + + + net.sf.ezmorph + ezmorph + 1.0.6 + + + + com.alibaba + fastjson + 2.0.3 + + + + com.jinritemai + sdk-java + 0.0.1-RELEASES + + + + com.google.code.gson + gson + 2.8.5 + + + + com.gome + gome-sdk + 0.0.1-RELEASES + + + + + org.apache.commons + commons-lang3 + 3.12.0 + + + + com.alibaba + fastjson + 2.0.3 + + + + com.google.code.gson + gson + 2.8.5 + + + org.apache.httpcomponents + httpclient + 4.5.13 + + + + org.apache.httpcomponents + httpcore + 4.4.15 + + + + org.apache.httpcomponents + httpmime + 4.5.13 + + + + org.apache.logging.log4j + log4j-api + 2.17.1 + + + + org.apache.logging.log4j + log4j-core + 2.17.1 + + + + mysql + mysql-connector-java + 8.0.29 + + + + com.JD + JD-hufu + 0.0.1-RELEASES + + + + + com.ibm.icu + icu4j + 59.1 + + + + + org.codehaus.jackson + jackson-core-asl + 1.9.13 + + + + + org.codehaus.jackson + jackson-mapper-asl + 1.9.13 + + + + + com.github.fangjinuo.jakarta-oro + jakarta-oro + 2.0.8 + + + + + org.jdom + jdom2 + 2.0.6.1 + + + + org.json + json + 20160810 + + + + + net.sf.json-lib + json-lib + 2.2.3-RELEASES + + + + junit + junit + 4.13.2 + compile + + + + com.pajk + justice-core + 2.1.2-RELEASES + + + + + net.sourceforge.jexcelapi + jxl + 2.6.12 + + + + com.kuaishou + kuaishou-merchant-open-sdk + 1.0.84-release_open_kwaishop_sdk-BETA-RELEASES + + + + com.ruwii + logs + 2.7.3.RELEASE + + + com.xiaohongshu + xiaohongshu-sdk + 0.0.1-RELEASES + + + + org.projectlombok + lombok + 1.18.24 + + + + com.squareup.okhttp3 + okhttp + 3.4.1 + + + + com.squareup.okio + okio + 1.9.0 + + + + com.coo8 + open-api + 1.0-RELEASES + + + com.yit + open-api-jdk1_8 + 1.0.2-RELEASES + + + + com.jd.open.api + open-api-sdk + 2.0-RELEASES + + + + org.apache.poi + poi + 3.17 + + + + + org.apache.poi + poi-ooxml + 3.17 + + + + com.doudian + doudian-sdk + 0.0.1-RELEASES + + + + + + com.vip.web + java-sdk-lib + 1.0.1-RELEASES + + + + com.pdd + pdd-sdk + 1.10.97-RELEASES + + + + + org.slf4j + slf4j-api + 1.6.1 + + + + + org.slf4j + slf4j-simple + 1.6.1 + test + + + + + net.spy + spymemcached + 2.12.3 + + + + com.taobao + taobao-sdk + 0.0.1-RELEASES + + + + com.vop + vop-sdk + 0.0.1-RELEASES + + + + + org.apache.xmlbeans + xmlbeans + 2.6.0 + + + + com.xom + xom-sdk + 0.0.1-RELEASES + + + + + com.thoughtworks.xstream + xstream + 1.4.3 + + + + com.yz + yz-sdk + 0.0.1-RELEASES + + + + + + + + + + maven-compiler-plugin + + + maven-assembly-plugin + + + jar-with-dependencies + + false + + + true + + + com.since.emp.service.ReplenishOrder + + + + + + make-assembly + package + + single + + + + + + + \ No newline at end of file diff --git a/src/com/since/emp/service/ReplenishOrder.java b/src/com/since/emp/service/ReplenishOrder.java deleted file mode 100644 index 7ca0956..0000000 --- a/src/com/since/emp/service/ReplenishOrder.java +++ /dev/null @@ -1 +0,0 @@ -package com.since.emp.service; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; import com.since.emp.newplatform.service.*; import com.since.emp.service.csv.CsvFileManageThread; import com.since.emp.service.csv.constants.Constants; import org.apache.commons.lang.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import com.alibaba.druid.pool.DruidPooledConnection; import com.google.gson.Gson; import com.since.emp.base.Config; import com.since.emp.base.DbPoolConnection; import com.since.emp.base.ImportExcelDataInfo; import com.since.emp.base.ImportParams; import com.since.emp.base.IniReader; import com.since.emp.base.OrderInfo; import com.since.emp.base.RecatchConfig; import com.since.emp.base.ReplenishInfo; import com.since.emp.base.ShopMessage; import com.since.emp.base.TradeInfo; import com.since.emp.base.constant.ProvinceConstant; import com.since.emp.base.thread.ScheduledThreadPool; import com.since.emp.base.thread.ThreadPool; import com.since.emp.exception.NoShopException; import com.since.emp.exception.TemplateException; import com.since.emp.util.ParseAddressUtil; public class ReplenishOrder extends OrderSyncs { private static final Logger logger = LogManager.getLogger(ReplenishOrder.class); private static final String EXCEL_XLS = "xls"; private static final String EXCEL_XLSX = "xlsx"; private static String config_filename = "config_all.ini"; private static String storageUpdateTime;// 库存同步更新间隔时间(分钟) private static String coverage;// 抓单统一回退时间,若有值,则统一按此时间,若无值,则按数据库设置的初始化时间 private static String import_file_path;// 导入文件路径 private static String stopStartTime;// 定时同步停止同步的起始时间 private static String stopEndTime;// 定时同步停止同步的结束时间 private static String accessKeyId;// 京东虎符鼎外APPKEY private static String secretKey;// 京东虎符鼎外APPSERCET private static String endpoint;// 京东虎符调用地址 private static String customerId;// 京东虎符客户编号 private static ThreadPoolExecutor threadPool;// 弃用executors创建线程池,改为ThreadPoolExecutors创建 private static ScheduledThreadPoolExecutor scheduledThreadPool; private static boolean readDataFlag = true;// 数据库待处理补录任务是否读取完毕标志 /** * main * * @param args */ public static void main(String[] args) { recatchConfig = new RecatchConfig(); provinceDic(); // 读取文件配置 if (initFileConfig() == false) { logger.info("[ 初始化 ] 文件读取配置失败时间->{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); return; } logger.info("[ 初始化 ] 文件读取配置成功时间->{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); // 从数据库读取各app及店铺参数 try { getConfigFromDB(); } catch (Exception e) { logger.error("[ 初始化 ] 数据库读取配置失败时间->{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); logger.error(ReplenishOrder.class, e); return; } logger.info("[ 初始化 ] 数据库读取配置成功时间->{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); if (storageUpdateTime == null || "".equals(storageUpdateTime)) { logger.info("[ 初始化 ] storageUpdateTime为空,请确认已填写!时间->{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); } storageUpdate = new StorageUpdate(config.plats, storageUpdateTime, stopStartTime, stopEndTime); storageUpdate.start(); // 数据处理类启动 dataParse = new DataParse(); dataParse.start(); submitLog = new SubmitLog(); submitLog.start(); /** * 启动补抓及导入线程 */ // threadPool = ThreadPool.getInstance(); scheduledThreadPool = ScheduledThreadPool.getInstance(); ImportTradesTread it = new ReplenishOrder().new ImportTradesTread(); scheduledThreadPool.scheduleAtFixedRate(it, 0, 10000, TimeUnit.MILLISECONDS); } /** * 补抓单及导入订单定时任务 * * @author Lewis */ private class ImportTradesTread extends Thread { @Override public void run() { try { threadPool = ThreadPool.getInstance(); if (readDataFlag) { readDataFlag = false; DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; PreparedStatement ps = null; ResultSet rs = null; ArrayList importList = new ArrayList(); String replenish_code = ""; try { conn = dbpc.getConnection(); /** * 分别布置在阿里和京东服务器,阿里负责处理除京东外的所有平台,京东服务器只负责京东的单个补抓和按时间补抓 */ String sql = ""; // if (config.plats.size() == 1) { sql = "select a.code,a.shop_code,a.platform_num,a.begin_time,a.end_time," + "a.status,a.in_path,b.platform_code,a.company_code,a.obm_company_code,a.type,c.once_max_replenish_order_count " + "from tb_replenish_order a left join tb_shop b on a.shop_code=b.code left join tb_company c on a.company_code = c.code where a.status=1"; ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while (rs.next()) { String shop_code = rs.getString("shop_code") == null ? "" : rs.getString("shop_code"); String code = rs.getString("code"); String platform_code = rs.getString("platform_code") == null ? "" : rs.getString("platform_code"); String platform_num = rs.getString("platform_num") == null ? "" : rs.getString("platform_num"); String begin_time = rs.getString("begin_time") == null ? "" : rs.getString("begin_time"); String end_time = rs.getString("end_time") == null ? "" : rs.getString("end_time"); String in_path = rs.getString("in_path") == null ? "" : rs.getString("in_path"); String company_code = rs.getString("company_code") == null ? "" : rs.getString("company_code"); String obm_company_code = rs.getString("obm_company_code") == null ? "" : rs.getString("obm_company_code"); /** * 将status为1的全部改为2 */ int type = rs.getInt("type"); int once_max_replenish_order_count = rs.getInt("once_max_replenish_order_count"); sql = "update tb_replenish_order set status = 2 where code=" + code; ps = conn.prepareStatement(sql); int result_num = ps.executeUpdate(); if (result_num == 0) { continue; } /** * 更新成功的条目加入集合 */ ImportParams ip = new ImportParams(); ip.code = code; ip.shop_code = shop_code; ip.platform_num = platform_num.trim(); ip.begin_time = begin_time; ip.end_time = end_time; ip.in_path = in_path; ip.platform_code = platform_code; ip.company_code = company_code; ip.obm_company_code = obm_company_code; ip.type = type; ip.once_max_replenish_order_count = once_max_replenish_order_count; importList.add(ip); } readDataFlag = true;// 等所有状态为1的条目更新过之后,就可以允许再次查询了 for (int i = 0; i < importList.size(); i++) { ImportParams ip = importList.get(i); replenish_code = ip.code; if (!"".equals(ip.platform_num) || (!"".equals(ip.begin_time) && !"".equals(ip.end_time))) { RecatchConfig recatchConfig = new RecatchConfig(); recatchConfig.shop_code = ip.shop_code; recatchConfig.starTime = ip.begin_time; recatchConfig.endTime = ip.end_time; recatchConfig.orderId = ip.platform_num; recatchConfig.platform_code = ip.platform_code; recatchConfig.type = ip.type; recatchConfig.once_max_replenish_order_count = ip.once_max_replenish_order_count; if (!"".equals(ip.platform_num)) { recatchConfig.type = 1; } if (!"".equals(ip.begin_time) && !"".equals(ip.end_time)) { recatchConfig.type = ip.type; } recatchConfig.replenish_code = ip.code; if ("001".equals(recatchConfig.platform_code) || "012".equals(recatchConfig.platform_code)) { recatchConfig.platform_code = "002"; } PlatConfig pc1 = new PlatConfig(); pc1 = getConfigFromDB(conn, ps, recatchConfig); if (pc1 == null) { sql = "update tb_replenish_order set result = ?,status=3 where code=" + ip.code; ps = conn.prepareStatement(sql); ps.setString(1, "店铺授权或抓单开关未开启"); ps.executeUpdate(); continue; } if (!"".equals(ip.platform_num) && ("002".equals(ip.platform_code) || "003".equals(ip.platform_code)) && !StringUtils.isNumeric(ip.platform_num)) { sql = "update tb_replenish_order set result = ?,status=3 where code=" + ip.code; ps = conn.prepareStatement(sql); ps.setString(1, "订单号格式错误,应为纯数字"); ps.executeUpdate(); continue; } RecatchOrders ro = new RecatchOrders(pc1, recatchConfig, replenish_code); threadPool.execute(ro); } /** * 如果路径不为空,则为导入操作 csv文件启动csv处理类 */ if (StringUtils.isBlank(ip.in_path)) { return; } if (ip.in_path.endsWith(Constants.CSV_FILE_SUFFIX)) { logger.info("开始解析csv文件..."); CsvFileManageThread thread = new CsvFileManageThread(import_file_path,ip); threadPool.execute(thread); } else if (ip.in_path.endsWith(EXCEL_XLS) || ip.in_path.endsWith(EXCEL_XLSX)) { ImportByExcelThread ibet = new ImportByExcelThread(ip); threadPool.execute(ibet); } } } catch (Exception e) { logger.error(ReplenishOrder.class, e); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } rs = null; } if (ps != null) { try { ps.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } ps = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } conn = null; } dbpc = null; } } } catch (Throwable e) { logger.error(ReplenishOrder.class, e); } } private class ImportByExcelThread extends Thread { XSSFWorkbook workbook; ImportParams ip; public ImportByExcelThread(ImportParams ip) { this.ip = ip; } @Override public void run() { importByExcel(); } public synchronized void importByExcel() { // String replenish_code = ip.code; FileInputStream is = null; ImportExcelDataInfo standardMode2ReadExcel = null; ImportExcelDataInfo simpleMode2ReadExcel = null; ImportExcelDataInfo ddMode2ReadExcel = null; ArrayList list = null; ArrayList tradeList; int templateStatus = 0;// 建议模式:1,标准模式:2,滴滴:3 try { File excelFile = new File(import_file_path + ip.in_path); // 创建文件对象 // // 创建文件对象 logger.info("开始导入文件,文件路径:{}", import_file_path + ip.in_path); is = new FileInputStream(excelFile); // 文件流 checkExcelVaild(excelFile); workbook = new XSSFWorkbook(is); String out_path = ip.in_path.trim().replace(".xlsx", "_error.xlsx"); logger.info("错误文件的输出路径:{}", import_file_path + out_path); /** * 将文件复制一份 */ copyFile(new File(import_file_path + ip.in_path), new File(import_file_path + out_path)); /** * 设置当前excel中sheet的下标:0开始 */ Sheet sheet = workbook.getSheetAt(0); // 遍历第一个Sheet // 总行数 int rowLength = sheet.getLastRowNum() + 1; // 工作表的行 Row row = sheet.getRow(0); // 总列数,取第二行的数据 int colLength = sheet.getRow(2).getLastCellNum() + 1; // 得到指定的单元格 Cell cell = row.getCell(0); // 获取0,0坐标的单元格,得到模板的模式 String templateType = cell.getStringCellValue().trim(); if ("简易".equals(templateType)) { templateStatus = 1; simpleMode2ReadExcel = simpleMode2ReadExcel(sheet, row, rowLength, colLength, cell, out_path, ip); list = simpleMode2ReadExcel.getList(); tradeList = simpleMode2ReadExcel.getTradeList(); if (simpleMode2ReadExcel.getErrorRow() > 0) { throw new Exception(); } } else if ("".equals(templateType)) { templateStatus = 2; standardMode2ReadExcel = standardMode2ReadExcel(sheet, row, rowLength, colLength, cell, out_path, ip); list = standardMode2ReadExcel.getList(); tradeList = standardMode2ReadExcel.getTradeList(); if (standardMode2ReadExcel.getErrorRow() > 0) { throw new Exception(); } } else if ("滴滴".equals(templateType)) { templateStatus = 3; ddMode2ReadExcel = ddMode2ReadExcel(sheet, row, rowLength, colLength, cell, out_path, ip); list = ddMode2ReadExcel.getList(); tradeList = ddMode2ReadExcel.getTradeList(); if (ddMode2ReadExcel.getErrorRow() > 0) { throw new Exception(); } } else { throw new TemplateException("没有在第一行的第一个单元格设置类型"); } /** * 读取文件,倒序从表格的底部开始删除没有问题的行 */ int error_count = 0; XSSFWorkbook xw = null; FileInputStream fis = null; XSSFSheet xs = null; FileOutputStream fos = null; try { fis = new FileInputStream(import_file_path + out_path); xw = new XSSFWorkbook(fis); xs = xw.getSheetAt(0); boolean original_falg = false; for (int l = list.size() - 1; l >= 0; l--) { ReplenishInfo ri = list.get(l); if (!ri.error_flag && !original_falg) { removeRow(xs, ri.row_num); } else { error_count++; original_falg = !ri.original_trade; if (!"".equals(ri.error_msg)) { xs.getRow(ri.row_num).createCell(colLength + 1); xs.getRow(ri.row_num).getCell(colLength + 1).setCellValue(ri.error_msg); } } } fos = new FileOutputStream(import_file_path + out_path); xw.write(fos); } catch (Exception e) { e.printStackTrace(); } finally { if (xw != null) { xw.close(); } xw = null; if (fis != null) { fis.close(); } fis = null; if (fos != null) { fos.close(); } fos = null; } int tradeListSize = tradeList.size(); if (tradeListSize == 0) { if (error_count == 0) { if (rowLength <= 3) { OrderSyncs.updateReplenishResult(ip.code, "失败", "文件为空"); } else { OrderSyncs.updateReplenishResult(ip.code, "成功", ""); } } else { OrderSyncs.updateReplenishResult(ip.code, "失败", out_path); } } for (int j = 0; j < tradeListSize; j++) { TradeInfo trade = tradeList.get(j); // 补充设置订单的导入模式 if (templateStatus == 1) { trade.templateStatus = 1; } if (templateStatus == 2) { trade.templateStatus = 2; } if (templateStatus == 3) { trade.templateStatus = 3; } trade.out_path = import_file_path + out_path; trade.export_file_path = import_file_path + ip.in_path; OrderSyncs.dataParse.tradeQueue.add(trade); if (j == tradeListSize - 1) { if (error_count == 0) { OrderSyncs.updateReplenishResult(ip.code, "成功", ""); } else { OrderSyncs.updateReplenishResult(ip.code, "失败", out_path); } } } } catch (NoShopException e) { OrderSyncs.updateReplenishResult(ip.code, e.getMessage(), ""); logger.error(ReplenishOrder.class, e); } catch (TemplateException e) { OrderSyncs.updateReplenishResult(ip.code, e.getMessage(), ""); logger.error(ReplenishOrder.class, e); } catch (FileNotFoundException e) { OrderSyncs.updateReplenishResult(ip.code, "没有找到提交的表格文件,请联系ERP供应商", ""); logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(this, e); switch (templateStatus) { case 1: OrderSyncs.updateReplenishResult(ip.code, "订单表第[" + simpleMode2ReadExcel.getErrorRow() + "]行的数据[" + standardMode2ReadExcel.getErrorTitle() + "]数据异常,请检查后重试!", ""); break; case 2: OrderSyncs.updateReplenishResult(ip.code, "订单表第[" + standardMode2ReadExcel.getErrorRow() + "]行的数据[" + standardMode2ReadExcel.getErrorTitle() + "]数据异常,请检查后重试!", ""); break; case 3: OrderSyncs.updateReplenishResult(ip.code, "订单表第[" + ddMode2ReadExcel.getErrorRow() + "]行的数据[" + standardMode2ReadExcel.getErrorTitle() + "]数据异常,请检查后重试!", ""); break; default: break; } } finally { if (is != null) { try { is.close(); } catch (IOException e) { logger.error(this, e); } } if (workbook != null) { try { workbook.close(); } catch (IOException e) { logger.error(this, e); } } } } } /** * @Description: 解析标准模式的订单模板 * @Title: standardMode2ReadExcel * @author Lewis * @param sheet * @param row * @param rowLength * @param colLength * @param cell * @param out_path * @param ip * @return 封装的对象 */ private ImportExcelDataInfo standardMode2ReadExcel(Sheet sheet, Row row, int rowLength, int colLength, Cell cell, String out_path, ImportParams ip) { ImportExcelDataInfo importExcelDataInfo = new ImportExcelDataInfo(); TradeInfo tradeInfo = null; ArrayList list = new ArrayList(); boolean file_error_flag = false;// 文件中是否有错误 ArrayList tradeList = new ArrayList(); NumberFormat nf = NumberFormat.getInstance(); String errorTitle = ""; // 记录错误行号 int errorRow = 0; try { for (int k = 3; k < rowLength; k++) { row = sheet.getRow(k); errorRow = k + 1; if (null == row) { continue; } /** * 第一行如果没有shop_code,那么属于错误数据,直到有shop_code才能开始写入, * 如果前一行已经有了shop_code,后面没有,那么属于商品子条目 */ // 开始判断当前行 if (null == row.getCell(1) || "BLANK".equals(row.getCell(1).getCellTypeEnum().toString())) { /** * 当前订单为新订单但是没有店铺编号 */ if ("EffectiveValue".equals(checkCellValue(row, 3)) || "EffectiveValue".equals(checkCellValue(row, 4)) || "EffectiveValue".equals(checkCellValue(row, 5)) || "EffectiveValue".equals(checkCellValue(row, 6)) || "EffectiveValue".equals(checkCellValue(row, 7)) || "EffectiveValue".equals(checkCellValue(row, 9)) || "EffectiveValue".equals(checkCellValue(row, 12)) || "EffectiveValue".equals(checkCellValue(row, 13)) || "EffectiveValue".equals(checkCellValue(row, 14)) || "EffectiveValue".equals(checkCellValue(row, 15)) || "EffectiveValue".equals(checkCellValue(row, 17)) || "EffectiveValue".equals(checkCellValue(row, 31))) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "有必填项为空,如果该行是空的,请删除"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; continue; } /** * 当前订单为新订单但是没有店铺编码 */ if (tradeInfo == null || file_error_flag) { ReplenishInfo ri = new ReplenishInfo(); if (tradeInfo == null) { ri.original_trade = true; ri.error_msg = "订单没有店铺编码"; } ri.row_num = k; ri.error_flag = true; list.add(ri); continue; } /** * 没有平台商家编码 当前订单为新订单 将上一条订单信息提交 * */ if (row.getCell(34) == null || "BLANK".equals(row.getCell(34).getCellTypeEnum().toString())) { /** * TODO * * 订单提交到集合处理 * * */ ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "有必填项为空,如果该行是空的,请删除"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; continue; } tradeInfo.orders = Arrays.copyOf(tradeInfo.orders, tradeInfo.orders.length + 1); tradeInfo.orders[tradeInfo.orders.length - 1] = new OrderInfo(); tradeInfo.orders[tradeInfo.orders.length - 1].discount_fee = "0"; tradeInfo.orders[tradeInfo.orders.length - 1].adjust_fee = "0"; boolean breakFlag = false; for (int j = 0; j < colLength; j++) { cell = row.getCell(j); // Row row2 = sheet.getRow(2); // Cell cell2 = row2.getCell(j); // errorTitle = cell2.getStringCellValue(); switch (j) { case 34: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code = row .getCell(j).getStringCellValue().trim(); if ("".equals( tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "平台商家处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code = nf .format(row.getCell(j).getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "平台商家编码格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有平台商家编码"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } break; case 35: tradeInfo.orders[tradeInfo.orders.length - 1].title = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].title = row.getCell(j) .getStringCellValue().trim(); } } break; case 36: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].price = nf .format(row.getCell(j).getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[tradeInfo.orders.length - 1].price = row.getCell(j) .getStringCellValue().trim(); if (!StringUtils .isNumeric(tradeInfo.orders[tradeInfo.orders.length - 1].price)) { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有商品金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } break; case 37: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].num = (int) row.getCell(j) .getNumericCellValue(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品数量格式"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有商品数量"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } tradeInfo.orders[tradeInfo.orders.length - 1].total_fee = String .valueOf(Double.valueOf(tradeInfo.orders[tradeInfo.orders.length - 1].price) * tradeInfo.orders[tradeInfo.orders.length - 1].num); break; case 38: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = nf .format(row.getCell(j).getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = row.getCell(j) .getStringCellValue().trim(); if (!StringUtils.isNumeric( tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } tradeInfo.orders[tradeInfo.orders.length - 1].payment = tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有商品金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } break; default: break; } // 如果上面表格内容有异常值则退出本次循环 if (breakFlag) { break; } if (j == colLength - 1) { addList(list, k, false); } } } else { /** * TODO bug 若订单第一行信息正确 但是在接下来的商品信息有误时会将上一条有问题的订单添加至队列 删除信息时会将正确的订单信息行删除 * * * 如果该行的店铺编码不为空,上一个订单已经读取完毕,当前读取的是一条新的订单信息,将上一个订单放入集合 * * * 有多种商品的订单 || 只有一种商品的订单 */ if (tradeInfo != null) { tradeList.add(tradeInfo); } tradeInfo = new TradeInfo(); file_error_flag = false; tradeInfo.orders = new OrderInfo[1]; tradeInfo.orders[0] = new OrderInfo(); tradeInfo.orders[0].discount_fee = "0"; tradeInfo.orders[0].total_fee = "0"; tradeInfo.orders[0].adjust_fee = "0"; tradeInfo.orders[0].sku_id = ""; tradeInfo.post_fee = "0"; tradeInfo.trade_type2 = 2; tradeInfo.row_num = k; tradeInfo.export_file_path = import_file_path; tradeInfo.out_path = out_path; tradeInfo.replenish_code = ip.code; // 循环结束标志 boolean breakFlag = false; sign_row: for (int j = 1; j < colLength; j++) { cell = row.getCell(j); // Row row2 = sheet.getRow(2); // Cell cell2 = row2.getCell(j); // errorTitle = cell2.getStringCellValue(); switch (j) { case 1: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.shop_code = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.shop_code = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.shop_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码格式错误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有店铺编码"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } // Druid连接池管理数据库连接 DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = dbpc.getConnection(); String sql = "select a.order_sync_lock_flag,a.order_sync_lock_keyword,a.storage_code,a.platform_code,a.delivery_mode_id,a.company_code,b.type from tb_shop a,tb_company b where a.code=? and a.company_code=b.code"; ps = conn.prepareStatement(sql); ps.setString(1, tradeInfo.shop_code); rs = ps.executeQuery(); if (rs.next()) { tradeInfo.company_code = rs.getString("company_code"); if (!ip.company_code.equals(tradeInfo.company_code) && !ip.obm_company_code.equals(tradeInfo.company_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码不存在或不属于该公司"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break sign_row; } tradeInfo.delivery_mode_id = rs.getInt("delivery_mode_id"); tradeInfo.storage_code = rs.getString("storage_code"); tradeInfo.company_type = rs.getInt("type"); tradeInfo.obm_company_code = ""; tradeInfo.platform_code = rs.getString("platform_code"); tradeInfo.shopMessage = new ShopMessage(); int orderSyncLockFlag = rs.getInt("order_sync_lock_flag"); String orderSyncLocKeyword = rs.getString("order_sync_lock_keyword") == null ? "" : rs.getString("order_sync_lock_keyword"); tradeInfo.shopMessage.setOrder_sync_lock_flag(orderSyncLockFlag); tradeInfo.shopMessage.setOrder_sync_lock_keyword(orderSyncLocKeyword); if ("001".equals(tradeInfo.platform_code) || "012".equals(tradeInfo.platform_code)) { tradeInfo.platform_code = "002"; } if ("002".equals(tradeInfo.platform_code)) { tradeInfo.trade_type = "taobao_trade_TradeBuyerPay"; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码不存在"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } catch (Exception e) { logger.error(ReplenishOrder.class, e); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } rs = null; } if (ps != null) { try { ps.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } ps = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } conn = null; } dbpc = null; } break; case 2: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tid = nf.format(cell.getNumericCellValue()).replace(",", "").trim(); } else { tradeInfo.tid = cell.getStringCellValue().trim(); } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有平台订单号"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 3: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.product_fee = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { tradeInfo.product_fee = cell.getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.product_fee)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单总金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有订单总金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 4: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.num = (int) cell.getNumericCellValue(); } else { if (StringUtils.isNumeric(cell.getStringCellValue())) { tradeInfo.num = Integer.valueOf(cell.getStringCellValue().trim()); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单数量不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有订单商品总数"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 5: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.money = nf.format(cell.getNumericCellValue()).replace(",", "").trim(); } else { tradeInfo.money = cell.getStringCellValue(); if (!StringUtils.isNumeric(tradeInfo.money)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单实收金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } tradeInfo.pay_money = tradeInfo.money; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有实收金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 6: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.discount_fee = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { tradeInfo.discount_fee = cell.getStringCellValue(); if (!StringUtils.isNumeric(tradeInfo.discount_fee)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单优惠金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } tradeInfo.adjust_fee = "0"; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有优惠金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 7: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.pay_time = sdf .format(cell.getDateCellValue()); } else if ("STRING".equals(cell.getCellTypeEnum().toString())){ try { String payTime = cell.getStringCellValue().trim(); sdf.parse(payTime); tradeInfo.pay_time = payTime; } catch (Exception e) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有付款时间"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 8: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.created = sdf .format(cell.getDateCellValue()); } else if ("STRING".equals(cell.getCellTypeEnum().toString())){ try { String payTime = cell.getStringCellValue().trim(); sdf.parse(payTime); tradeInfo.pay_time = payTime; } catch (Exception e) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "创建时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { tradeInfo.created = tradeInfo.pay_time; } break; case 9: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_name)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人姓名"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 10: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_phone = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_phone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_phone = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { tradeInfo.receiver_phone = ""; } break; case 11: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString()) && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_mobile)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人手机处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人手机格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } if (null == tradeInfo.receiver_mobile) { tradeInfo.receiver_mobile = ""; } if (!checkMobileNumber(tradeInfo.receiver_mobile) && !"".equals(tradeInfo.receiver_mobile)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人手机格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 tradeInfo.receiver_mobile = ""; } if ("".equals(tradeInfo.receiver_phone) && "".equals(tradeInfo.receiver_mobile)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人手机和电话不能同时为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } if ("".equals(tradeInfo.receiver_phone)) { tradeInfo.receiver_phone = null; } if ("".equals(tradeInfo.receiver_mobile)) { tradeInfo.receiver_mobile = null; } break; case 12: tradeInfo.receiver_country = "中国"; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_state = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_state)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货省份处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } tradeInfo.receiver_state = tradeInfo.receiver_state.trim(); int unknowPrivinceCount = 0; boolean errorPrivinceFlag = false; for (Entry privinceEntry : ProvinceConstant.privince .entrySet()) { String privinceName = privinceEntry.getKey(); if (privinceName.indexOf(tradeInfo.receiver_state) > -1) { if (privinceName.equals(tradeInfo.receiver_state)) { break; } else { errorPrivinceFlag = true; ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货省份请写入标准格式:" + privinceName; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 统计省份未匹配的次数 unknowPrivinceCount++; } } // 省份书写不完整 if (errorPrivinceFlag) { break; } if (unknowPrivinceCount == ProvinceConstant.privince.size()) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "请选择标准格式的省级名称:\"北京\",\"上海\",\"天津\",\"重庆\",\"辽宁省\",\"湖北省\",\"山西省\",\"福建省\",\"青海省\",\"江西省\",\"河南省\",\"浙江省\",\"吉林省\",\"安徽省\",\"海南省\",\"四川省\",\"黑龙江省\",\"云南省\",\"贵州省\",\"江苏省\",\"陕西省\",\"广东省\",\"河北省\",\"湖南省\",\"甘肃省\",\"山东省\",\"西藏自治区\",\"广西壮族自治区\",\"宁夏回族自治区\",\"新疆维吾尔自治区\",\"内蒙古自治区\",\"香港特别行政区\",\"澳门特别行政区\",\"台湾\",\"海外\""; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人所在省份格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人所在省份"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 13: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_city = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_city)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货城市处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人所在城市格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人城市"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } break; case 14: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_district = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_district)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货区县处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人区/县格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人区/县"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 15: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_address = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_address)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货详细地址处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人详细地址格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } tradeInfo.receiver_address = tradeInfo.receiver_state + " " + tradeInfo.receiver_city + " " + tradeInfo.receiver_district + " " + tradeInfo.receiver_address; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人详细地址"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } break; case 16: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_zip = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人邮编格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } } else { tradeInfo.receiver_zip = ""; } break; case 17: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.post_fee = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "运费格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "运费为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 18: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_type = (int) cell.getNumericCellValue(); if (tradeInfo.invoice_type == 0) { tradeInfo.invoice_content = ""; tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.tax_id = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; } else { if (tradeInfo.invoice_type != 5 && tradeInfo.invoice_type != 6 && tradeInfo.invoice_type != 7) { tradeInfo.invoice_type = 0; tradeInfo.invoice_content = ""; tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.tax_id = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; } } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票类型格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } } else { tradeInfo.invoice_type = 0; tradeInfo.invoice_content = ""; tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.tax_id = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; } break; case 27: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.status = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.status)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单状态处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单状态格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有订单状态"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 28: tradeInfo.title = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.title = cell.getStringCellValue().trim(); } } break; case 29: tradeInfo.type = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.type = row.getCell(j).getStringCellValue().trim(); } } break; case 30: tradeInfo.buyer_message = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.buyer_message = cell.getStringCellValue().trim(); } } break; case 31: tradeInfo.seller_memo = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.seller_memo = cell.getStringCellValue().trim(); } } break; case 32: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.test_flag = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.test_flag)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "是否测试选项处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } if (!"是".equals(tradeInfo.test_flag) && !"否".equals(tradeInfo.test_flag)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "是否测试选项输入有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "是否测试选项输入有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "是否测试选项为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 34: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.orders[0].platform_seller_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = nf.format(cell.getNumericCellValue()) .replace(",", ""); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 35: tradeInfo.orders[0].title = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].title = cell.getStringCellValue().trim(); } } break; case 36: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].price = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[0].price = cell.getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.orders[0].price)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 37: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].num = (int) cell.getNumericCellValue(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } tradeInfo.orders[0].total_fee = String .valueOf(Double.valueOf(tradeInfo.orders[0].price) * tradeInfo.orders[0].num); break; case 38: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = nf .format(cell.getNumericCellValue()).replace(",", ""); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = cell .getStringCellValue().trim(); if (!StringUtils.isNumeric( tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } tradeInfo.orders[tradeInfo.orders.length - 1].payment = tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; default: break; } // 有异常值退出循环 if (breakFlag) { break; } if (tradeInfo.invoice_type == 5 || tradeInfo.invoice_type == 6) { tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; boolean invoiceBreakFlag = false; switch (j) { case 19: tradeInfo.invoice_content = ""; tradeInfo.tax_id = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_title = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_title)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 20: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tax_id = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.tax_id)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "纳税人识别号处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tax_id = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "纳税人识别号格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 21: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_content = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_content)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 26: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_money = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.invoice_money = cell.getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.invoice_money)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } break; default: break; } if (invoiceBreakFlag) { break; } } if (tradeInfo.invoice_type == 7) { // 异常值退出标志 boolean invoiceBreakFlag = false; switch (j) { case 19: tradeInfo.invoice_content = ""; tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.tax_id = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_title = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_title)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; invoiceBreakFlag = true; break; } } break; case 20: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tax_id = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.tax_id)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "纳税人识别号处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tax_id = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "纳税人识别号格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 21: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_content = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_content)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票信息处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票信息格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; invoiceBreakFlag = true; break; } } break; case 22: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_email = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_email)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收邮箱处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } if (!checkEmail(tradeInfo.invoice_email)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收邮箱格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_email = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); if (!checkEmail(tradeInfo.invoice_email)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收邮箱格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收邮箱格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 23: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_phone = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_phone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收手机处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } if (!checkMobileNumber(tradeInfo.invoice_phone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收手机格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_phone = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); if (!checkMobileNumber(tradeInfo.invoice_phone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收手机格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收手机格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 24: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.address_telephone = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.address_telephone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "增值税发票地址、电话信息处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "增值税发票地址、电话信息格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 25: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.bank_of_deposit_account_number = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.bank_of_deposit_account_number)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "增值税发票开户行及账号信息处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "增值税发票开户行及账号信息格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 26: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_money = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.invoice_money = cell.getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.invoice_money)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } break; default: break; } if (invoiceBreakFlag) { break; } } if (j == colLength - 1) { // 记录没有错误的 list = addList(list, k, true); } } } /** * TODO 当前为最后一行订单数据 添加至队列 */ if (tradeInfo != null && tradeInfo.pay_time != null && k == rowLength - 1) { tradeList.add(tradeInfo); } } } catch (Exception e) { importExcelDataInfo.setErrorRow(errorRow); importExcelDataInfo.setErrorTitle(errorTitle); logger.error(this, e); } importExcelDataInfo.setList(list); importExcelDataInfo.setTradeList(tradeList); return importExcelDataInfo; } /** * @Description: 解析简易模式的订单模板 * @Title: standardMode2ReadExcel * @author Lewis * @param sheet * @param row * @param rowLength * @param colLength * @param cell * @param out_path * @param ip * @return 封装的对象 */ private ImportExcelDataInfo simpleMode2ReadExcel(Sheet sheet, Row row, int rowLength, int colLength, Cell cell, String out_path, ImportParams ip) throws Exception { ImportExcelDataInfo importExcelDataInfo = new ImportExcelDataInfo(); TradeInfo tradeInfo = null; ArrayList list = new ArrayList(); boolean file_error_flag = false;// 文件中是否有错误 ArrayList tradeList = new ArrayList(); NumberFormat nf = NumberFormat.getInstance(); String errorTitle = ""; // 记录错误行号 int errorRow = 0; try { for (int k = 2; k < rowLength; k++) { row = sheet.getRow(k); errorRow = k + 1; if (null == row) { continue; } // TradeInfo tradeInfo = null; /** * 第一行如果没有shop_code,那么属于错误数据,直到有shop_code才能开始写入, * 如果前一行已经有了shop_code,后面没有,那么属于商品子条目 */ // 开始判断当前行 if (null == row.getCell(1) || "BLANK".equals(row.getCell(1).getCellTypeEnum().toString())) { /** * 当前订单为新订单但是没有店铺编号 */ if ("EffectiveValue".equals(checkCellValue(row, 2)) || "EffectiveValue".equals(checkCellValue(row, 4)) || "EffectiveValue".equals(checkCellValue(row, 5)) || "EffectiveValue".equals(checkCellValue(row, 6)) || "EffectiveValue".equals(checkCellValue(row, 7))) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "有必填项为空,如果该行是空的,请删除"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; continue; } /** * 当前订单为新订单但是没有店铺编码 */ if (tradeInfo == null || file_error_flag) { ReplenishInfo ri = new ReplenishInfo(); if (tradeInfo == null) { ri.original_trade = true; ri.error_msg = "订单没有店铺编码"; } ri.row_num = k; ri.error_flag = true; list.add(ri); continue; } /** * 没有平台商家编码 当前订单为新订单 将上一条订单信息提交 * */ if (row.getCell(9) == null || "BLANK".equals(row.getCell(9).getCellTypeEnum().toString())) { /** * TODO * * 订单提交到集合处理 * * */ if (tradeInfo != null) { tradeList.add(tradeInfo); } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "有必填项为空,如果该行是空的,请删除"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; continue; } tradeInfo.orders = Arrays.copyOf(tradeInfo.orders, tradeInfo.orders.length + 1); tradeInfo.orders[tradeInfo.orders.length - 1] = new OrderInfo(); tradeInfo.orders[tradeInfo.orders.length - 1].discount_fee = "0"; tradeInfo.orders[tradeInfo.orders.length - 1].adjust_fee = "0"; boolean breakFlag = false; for (int j = 0; j < colLength; j++) { cell = row.getCell(j); switch (j) { case 9: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code = row .getCell(j).getStringCellValue().trim(); tradeInfo.orders[tradeInfo.orders.length - 1].title = ""; if ("".equals( tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "平台商家处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code = nf .format(row.getCell(j).getNumericCellValue()).replace(",", "").trim(); tradeInfo.orders[tradeInfo.orders.length - 1].title = ""; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "平台商家编码格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有平台商家编码"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } break; case 10: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].num = (int) row.getCell(j) .getNumericCellValue(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品数量格式"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有商品数量"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } break; case 11: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = nf.format(row.getCell(j).getNumericCellValue()) .replace(",", "").trim(); // tradeInfo.orders[tradeInfo.orders.length // - 1].price = String.valueOf(new BigDecimal(tradeInfo.orders[tradeInfo.orders.length // - 1].divide_order_fee).divide(new BigDecimal(tradeInfo.orders[tradeInfo.orders.length - 1].num))); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = row.getCell(j).getStringCellValue().trim(); if (!StringUtils .isNumeric(tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee)) { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有商品金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } // tradeInfo.orders[tradeInfo.orders.length // - 1].payment = tradeInfo.orders[tradeInfo.orders.length - 1].total_fee = String // .valueOf(Double // .valueOf(tradeInfo.orders[tradeInfo.orders.length - 1].price) // * tradeInfo.orders[tradeInfo.orders.length - 1].num); break; default: break; } // 如果上面表格内容有异常值则退出本次循环 if (breakFlag) { break; } if (j == colLength - 1) { addList(list, k, false); } } } else { /** * TODO bug 若订单第一行信息正确 但是在接下来的商品信息有误时会将上一条有问题的订单添加至队列 删除信息时会将正确的订单信息行删除 * * * 如果该行的店铺编码不为空,上一个订单已经读取完毕,当前读取的是一条新的订单信息,将上一个订单放入集合 * * * 有多种商品的订单 || 只有一种商品的订单 */ if (tradeInfo != null) { tradeList.add(tradeInfo); } tradeInfo = new TradeInfo(); file_error_flag = false; tradeInfo.orders = new OrderInfo[1]; tradeInfo.orders[0] = new OrderInfo(); tradeInfo.orders[0].discount_fee = "0"; tradeInfo.orders[0].total_fee = "0"; tradeInfo.orders[0].adjust_fee = "0"; tradeInfo.orders[0].sku_id = ""; tradeInfo.post_fee = "0"; tradeInfo.trade_type2 = 2; tradeInfo.row_num = k; tradeInfo.export_file_path = import_file_path; tradeInfo.out_path = out_path; tradeInfo.replenish_code = ip.code; // 循环结束标志 boolean breakFlag = false; sign_row: for (int j = 1; j < colLength; j++) { cell = row.getCell(j); switch (j) { case 1: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.shop_code = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.shop_code = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.shop_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码格式错误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有店铺编码"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } // Druid连接池管理数据库连接 DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = dbpc.getConnection(); String sql = "select a.order_sync_lock_flag,a.order_sync_lock_keyword,a.storage_code,a.platform_code,a.delivery_mode_id,a.company_code,b.type from tb_shop a,tb_company b where a.code=? and a.company_code=b.code"; ps = conn.prepareStatement(sql); ps.setString(1, tradeInfo.shop_code); rs = ps.executeQuery(); if (rs.next()) { tradeInfo.company_code = rs.getString("company_code"); if (!ip.company_code.equals(tradeInfo.company_code) && !ip.obm_company_code.equals(tradeInfo.company_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码不存在或不属于该公司"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break sign_row; } tradeInfo.delivery_mode_id = rs.getInt("delivery_mode_id"); tradeInfo.storage_code = rs.getString("storage_code"); tradeInfo.company_type = rs.getInt("type"); tradeInfo.obm_company_code = ""; tradeInfo.platform_code = rs.getString("platform_code"); tradeInfo.shopMessage = new ShopMessage(); int orderSyncLockFlag = rs.getInt("order_sync_lock_flag"); String orderSyncLocKeyword = rs.getString("order_sync_lock_keyword") == null ? "" : rs.getString("order_sync_lock_keyword"); tradeInfo.shopMessage.setOrder_sync_lock_flag(orderSyncLockFlag); tradeInfo.shopMessage.setOrder_sync_lock_keyword(orderSyncLocKeyword); if ("001".equals(tradeInfo.platform_code) || "012".equals(tradeInfo.platform_code)) { tradeInfo.platform_code = "002"; } if ("002".equals(tradeInfo.platform_code)) { tradeInfo.trade_type = "taobao_trade_TradeBuyerPay"; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码不存在"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } catch (Exception e) { logger.error(ReplenishOrder.class, e); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } rs = null; } if (ps != null) { try { ps.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } ps = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } conn = null; } dbpc = null; } break; case 2: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tid = nf.format(cell.getNumericCellValue()).replace(",", "").trim(); } else { tradeInfo.tid = cell.getStringCellValue().trim(); } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有平台订单号"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 3: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.pay_time = sdf .format(cell.getDateCellValue()); } else if ("STRING".equals(cell.getCellTypeEnum().toString())){ try { String payTime = cell.getStringCellValue().trim(); sdf.parse(payTime); tradeInfo.pay_time = payTime; } catch (Exception e) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } }else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有付款时间"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 4: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_name)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人姓名"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 5: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = tradeInfo.receiver_phone = cell.getStringCellValue() .trim(); if ("".equals(tradeInfo.receiver_phone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = tradeInfo.receiver_phone = nf .format(cell.getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人电话号码"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 6: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_address = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_address)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货详细地址处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } Map addressMap = ParseAddressUtil .getTextRecognitionInfo(tradeInfo.receiver_address); if (addressMap.size() == 4) { tradeInfo.receiver_country = "中国"; tradeInfo.receiver_state = addressMap.get("province"); tradeInfo.receiver_city = addressMap.get("city"); tradeInfo.receiver_district = addressMap.get("county"); } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "根据详细地址解析省市区失败"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人详细地址格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人详细地址"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 7: tradeInfo.buyer_message = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.buyer_message = cell.getStringCellValue().trim(); } } break; case 8: tradeInfo.seller_memo = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.seller_memo = cell.getStringCellValue().trim(); } } break; case 9: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = cell.getStringCellValue().trim(); tradeInfo.orders[0].title = ""; if ("".equals(tradeInfo.orders[0].platform_seller_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = nf.format(cell.getNumericCellValue()) .replace(",", ""); tradeInfo.orders[0].title = ""; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 10: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].num = (int) cell.getNumericCellValue(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 11: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = nf .format(cell.getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = cell .getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.orders[0].divide_order_fee)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } // tradeInfo.orders[0].payment = tradeInfo.orders[0].total_fee = String // .valueOf(Double.valueOf(tradeInfo.orders[0].price) * tradeInfo.orders[0].num); break; default: break; } // 有异常值退出循环 if (breakFlag) { break; } if (j == colLength - 1) { // 记录没有错误的 list = addList(list, k, true); } } } /** * TODO 当前为最后一行订单数据 添加至队列 */ if (tradeInfo != null && tradeInfo.pay_time != null && k == rowLength - 1) { tradeList.add(tradeInfo); } } } catch (Exception e) { importExcelDataInfo.setErrorRow(errorRow); importExcelDataInfo.setErrorTitle(errorTitle); logger.error(this, e); } importExcelDataInfo.setList(list); // 补齐tradeList中的tradeInfo的订单信息 for (int i = 0; i < tradeList.size(); i++) { TradeInfo fullTradeInfo = tradeList.get(i); OrderInfo[] orders = fullTradeInfo.orders; for (OrderInfo fullOrderInfo : orders) { BigDecimal bigDecimal1 = new BigDecimal(fullOrderInfo.divide_order_fee); fullOrderInfo.price = String.valueOf(new BigDecimal(fullOrderInfo.divide_order_fee).divide(new BigDecimal(fullOrderInfo.num),BigDecimal.ROUND_HALF_UP)); fullOrderInfo.payment = fullOrderInfo.total_fee = fullOrderInfo.divide_order_fee; BigDecimal bigDecimal2 = new BigDecimal( (fullTradeInfo.product_fee == null || "".equals(fullTradeInfo.product_fee)) ? "0" : fullTradeInfo.product_fee); fullTradeInfo.pay_money = fullTradeInfo.money = fullTradeInfo.product_fee = bigDecimal1 .add(bigDecimal2).toString(); fullTradeInfo.num = fullTradeInfo.num + fullOrderInfo.num; } fullTradeInfo.discount_fee = "0"; fullTradeInfo.adjust_fee = "0"; fullTradeInfo.receiver_zip = ""; fullTradeInfo.post_fee = "0"; fullTradeInfo.invoice_type = 0; fullTradeInfo.invoice_content = ""; fullTradeInfo.invoice_phone = ""; fullTradeInfo.invoice_email = ""; fullTradeInfo.tax_id = ""; fullTradeInfo.address_telephone = ""; fullTradeInfo.bank_of_deposit_account_number = ""; fullTradeInfo.created = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); fullTradeInfo.status = "未发货"; fullTradeInfo.title = ""; fullTradeInfo.type = "fixed"; fullTradeInfo.test_flag = "否"; } importExcelDataInfo.setTradeList(tradeList); return importExcelDataInfo; } /** * @Description: 解析滴滴模式的订单模板 * @Title: standardMode2ReadExcel * @author Lewis * @param sheet * @param row * @param rowLength * @param colLength * @param cell * @param out_path * @param ip * @return 封装的对象 * @throws NoShopException */ private ImportExcelDataInfo ddMode2ReadExcel(Sheet sheet, Row row, int rowLength, int colLength, Cell cell, String out_path, ImportParams ip) throws Exception { ImportExcelDataInfo importExcelDataInfo = new ImportExcelDataInfo(); ArrayList list = new ArrayList(); boolean file_error_flag = false;// 文件中是否有错误 ArrayList tradeList = new ArrayList(); NumberFormat nf = NumberFormat.getInstance(); String errorTitle = ""; // 记录错误行号 int errorRow = 0; try { for (int k = 2; k < rowLength; k++) { TradeInfo tradeInfo = new TradeInfo(); tradeInfo = getImportShopMessage(tradeInfo, ip); row = sheet.getRow(k); errorRow = k + 1; if (null == row) { continue; } file_error_flag = false; tradeInfo.orders = new OrderInfo[1]; tradeInfo.orders[0] = new OrderInfo(); boolean breakFlag = false; for (int j = 0; j < colLength; j++) { cell = row.getCell(j); switch (j) { case 0: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = cell.getStringCellValue().trim(); } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品id格式错误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有设置商品id"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 1: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tid = nf.format(cell.getNumericCellValue()).replace(",", "").trim(); } else { tradeInfo.tid = cell.getStringCellValue().trim(); } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有平台订单号"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 2: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.pay_time = sdf .format(cell.getDateCellValue()); } else if ("STRING".equals(cell.getCellTypeEnum().toString())){ try { String payTime = cell.getStringCellValue().trim(); sdf.parse(payTime); tradeInfo.pay_time = payTime; } catch (Exception e) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有付款时间"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 3: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].title = cell.getStringCellValue().trim(); } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].title = nf.format(cell.getNumericCellValue()).replace(",", ""); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品标题格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { tradeInfo.orders[0].title = ""; } break; case 6: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { if (isDouble(cell.getStringCellValue())) { tradeInfo.orders[0].payment = tradeInfo.orders[0].total_fee = cell .getStringCellValue().trim(); } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].payment = tradeInfo.orders[0].total_fee = nf .format(cell.getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[0].payment = tradeInfo.orders[0].total_fee = cell .getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.orders[0].price)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 7: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.num = tradeInfo.orders[0].num = (int) cell.getNumericCellValue(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 9: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_name)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人姓名"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 10: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = tradeInfo.receiver_phone = cell.getStringCellValue() .trim(); if ("".equals(tradeInfo.receiver_mobile)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = tradeInfo.receiver_phone = nf .format(cell.getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人电话"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 11: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_address = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_address)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货详细地址处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } Map addressMap = ParseAddressUtil .getTextRecognitionInfo(tradeInfo.receiver_address); if (addressMap.size() == 4) { tradeInfo.receiver_country = "中国"; tradeInfo.receiver_state = addressMap.get("province"); tradeInfo.receiver_city = addressMap.get("city"); tradeInfo.receiver_district = addressMap.get("county"); } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "根据详细地址解析省市区失败"; ri.row_num = k; ri.error_flag = true; file_error_flag = true; tradeInfo = null; breakFlag = true; list.add(ri); } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人详细地址格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人详细地址"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } break; case 17: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.status = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.status)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单状态处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单状态格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有订单状态"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; default: break; } // 有异常值退出循环 if (breakFlag) { break; } if (j == colLength - 1) { // 记录没有错误的 list = addList(list, k, true); } } if (tradeInfo != null) { // tradeInfo.orders[0].divide_order_fee = tradeInfo.orders[0].price = String.valueOf(Double.valueOf(tradeInfo.orders[0].payment) / tradeInfo.orders[0].num); tradeInfo.orders[0].divide_order_fee = tradeInfo.orders[0].price = String.valueOf( new BigDecimal(Double.valueOf(tradeInfo.orders[0].payment) / tradeInfo.orders[0].num) .setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); tradeInfo.orders[0].discount_fee = "0"; tradeInfo.orders[0].total_fee = "0"; tradeInfo.orders[0].adjust_fee = "0"; tradeInfo.orders[0].sku_id = ""; tradeInfo.post_fee = "0"; tradeInfo.trade_type2 = 2; tradeInfo.row_num = k; tradeInfo.export_file_path = import_file_path; tradeInfo.out_path = out_path; tradeInfo.replenish_code = ip.code; tradeInfo.pay_money = tradeInfo.money = tradeInfo.product_fee = tradeInfo.orders[0].payment; tradeInfo.discount_fee = "0"; tradeInfo.adjust_fee = "0"; tradeInfo.receiver_zip = ""; tradeInfo.post_fee = "0"; tradeInfo.invoice_type = 0; tradeInfo.invoice_content = ""; tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.tax_id = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; tradeInfo.created = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); tradeInfo.title = "fixed"; tradeInfo.type = "fixed"; tradeInfo.test_flag = "否"; tradeList.add(tradeInfo); } } } catch (NoShopException e) { throw e; } catch (Exception e) { importExcelDataInfo.setErrorRow(errorRow); importExcelDataInfo.setErrorTitle(errorTitle); logger.error(this, e); } importExcelDataInfo.setList(list); importExcelDataInfo.setTradeList(tradeList); return importExcelDataInfo; } public TradeInfo getImportShopMessage(TradeInfo tradeInfo, ImportParams ip) throws Exception { /* * 读取企业的店铺信息 */ // Druid连接池管理数据库连接 DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = dbpc.getConnection(); String sql = "select a.order_sync_lock_flag,a.order_sync_lock_keyword,a.storage_code,a.platform_code,a.delivery_mode_id,a.company_code,b.type,a.code as shopCode " + "from tb_shop a,tb_company b " + "where b.code=? and a.company_code=b.code AND a.is_default_order_in =2"; ps = conn.prepareStatement(sql); if (null != ip.company_code) { ps.setString(1, ip.company_code); } else { ps.setString(1, ip.obm_company_code); } rs = ps.executeQuery(); if (rs.next()) { tradeInfo.company_code = rs.getString("company_code"); tradeInfo.shop_code = rs.getString("shopCode"); tradeInfo.delivery_mode_id = rs.getInt("delivery_mode_id"); tradeInfo.storage_code = rs.getString("storage_code"); tradeInfo.company_type = rs.getInt("type"); tradeInfo.obm_company_code = ""; tradeInfo.platform_code = rs.getString("platform_code"); tradeInfo.shopMessage = new ShopMessage(); int orderSyncLockFlag = rs.getInt("order_sync_lock_flag"); String orderSyncLocKeyword = rs.getString("order_sync_lock_keyword") == null ? "" : rs.getString("order_sync_lock_keyword"); tradeInfo.shopMessage.setOrder_sync_lock_flag(orderSyncLockFlag); tradeInfo.shopMessage.setOrder_sync_lock_keyword(orderSyncLocKeyword); if ("001".equals(tradeInfo.platform_code) || "012".equals(tradeInfo.platform_code)) { tradeInfo.platform_code = "002"; } if ("002".equals(tradeInfo.platform_code)) { tradeInfo.trade_type = "taobao_trade_TradeBuyerPay"; } } else { throw new NoShopException("没有找到订单所属的店铺信息"); } return tradeInfo; } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } rs = null; } if (ps != null) { try { ps.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } ps = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } conn = null; } dbpc = null; } } /** * 根据时间或者订单号补抓启动线程 * * @author Lewis */ private class RecatchOrders extends Thread { PlatConfig pc1; RecatchConfig recatchConfig; String replenish_code; public RecatchOrders(PlatConfig pc1, RecatchConfig recatchConfig, String replenish_code) { this.pc1 = pc1; this.recatchConfig = recatchConfig; this.replenish_code = replenish_code; } @Override public void run() { // Druid连接池管理数据库连接 DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; PreparedStatement ps = null; // ResultSet rs = null; try { conn = dbpc.getConnection(); boolean flag2 = false; AppConfig appConfig = pc1.apps.get(0); if ("002".equals(recatchConfig.platform_code)) { ApiTmall apiTmall = new ApiTmall(pc1.api_url, pc1.tmc_url, appConfig.key, appConfig.secret, pc1.apps.get(0).shops, recatchConfig); apiTmall.start(); flag2 = true; } else if ("006".equals(recatchConfig.platform_code)) { // apiGome = new ApiGome(pc1, recatchConfig); apiGomeNew = new ApiGomeNew(pc1, recatchConfig); flag2 = true; } else if ("005".equals(recatchConfig.platform_code)) { // apiDangdang = new ApiDangdang(pc1, recatchConfig); apiDangDangNew = new ApiDangDangNew(pc1, recatchConfig); flag2 = true; } else if ("003".equals(recatchConfig.platform_code)) { apiJingdong = new ApiJingdongNew(pc1, recatchConfig, accessKeyId, secretKey, endpoint, customerId); flag2 = true; } else if ("011".equals(recatchConfig.platform_code)) { // apiYouzan = new ApiYouzan(pc1, recatchConfig); apiYouZanNew = new ApiYouZanNew(pc1, recatchConfig); flag2 = true; } else if ("014".equals(recatchConfig.platform_code)) { // apiPinduoduo = new ApiPinduoduo(pc1, recatchConfig); // apiPinDuoDuoNew = new ApiPinDuoDuoNew(pc1, recatchConfig); ApiPinDuoDuoThirdEdition ApiPinDuoDuoThirdEdition = new ApiPinDuoDuoThirdEdition(pc1, recatchConfig); flag2 = true; } else if ("015".equals(recatchConfig.platform_code)) { apiVip = new ApiVip(pc1, recatchConfig); flag2 = true; } else if ("017".equals(recatchConfig.platform_code)) { logger.info("【初始化】017平台, app:" + appConfig.key + "启动"); // apiWeimob = new ApiWeimob(pc1, recatchConfig); apiWeiMobNew = new ApiWeiMobNew(pc1, recatchConfig); flag2 = true; } else if ("018".equals(recatchConfig.platform_code)) { logger.info("【初始化】018平台, app:" + appConfig.key + "启动"); apiPingan = new ApiPingan(pc1, recatchConfig); flag2 = true; } else if ("019".equals(recatchConfig.platform_code)) { logger.info("【初始化】019平台, app:" + appConfig.key + "启动"); apiMia = new ApiMia(pc1, recatchConfig); flag2 = true; } else if ("020".equals(recatchConfig.platform_code)) { logger.info("【初始化】020平台, app:" + appConfig.key + "启动"); // apiYitiao = new ApiYitiao(pc1, recatchConfig); apiYiTiaoNew = new ApiYiTiaoNew(pc1, recatchConfig); flag2 = true; } else if ("021".equals(recatchConfig.platform_code)) { logger.info("【初始化】021平台, app:" + appConfig.key + "启动"); // apiXiaoHongShu = new ApiXiaoHongShu(pc1, recatchConfig); apiXiaoHongShuNewThirdEdition = new ApiXiaoHongShuNewThirdEdition(pc1, recatchConfig); flag2 = true; } else if ("022".equals(recatchConfig.platform_code)) { logger.info("【初始化】022平台, app:" + appConfig.key + "启动"); apiMiHeMall = new ApiMiHeMall(pc1, recatchConfig); flag2 = true; } else if ("023".equals(recatchConfig.platform_code)) { logger.info("【初始化】023平台, app:" + appConfig.key + "启动"); apiDouDian = new ApiDouDian(pc1, recatchConfig); flag2 = true; }else if ("024".equals(recatchConfig.platform_code)) { logger.info("【初始化】024平台, app:" + appConfig.key + "启动"); apiKtt = new ApiKtt(pc1, recatchConfig); flag2 = true; }else if ("025".equals(recatchConfig.platform_code)) { logger.info("【初始化】025平台, app:" + appConfig.key + "启动"); apiKuaiShou = new ApiKuaiShou(pc1, recatchConfig); flag2 = true; }else if ("026".equals(recatchConfig.platform_code)) { logger.info("【初始化】026平台, app:" + appConfig.key + "启动"); apiQunJieLong= new ApiQunJieLong(pc1, recatchConfig); flag2 = true; } else if ("027".equals(recatchConfig.platform_code)) { apiWeiDianFirst = new ApiWeiDianFirst(pc1, recatchConfig); flag2 = true; } if (!flag2) { String sql = "update tb_replenish_order set result = ?,status=3 where code=" + replenish_code; ps = conn.prepareStatement(sql); ps.setString(1, "该第三方平台暂未开启补抓功能,请联系软维ERP"); ps.executeUpdate(); } } catch (Exception e) { logger.error(this, e); } finally { if (ps != null) { try { ps.close(); } catch (SQLException e) { logger.error(this, e); } catch (Exception e) { logger.error(this, e); } ps = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(this, e); } catch (Exception e) { logger.error(this, e); } conn = null; } dbpc = null; } } } /** * getConfigFromDB 从数据库读取配置 * * @throws Exception */ private PlatConfig getConfigFromDB(DruidPooledConnection conn, PreparedStatement ps, RecatchConfig recatchConfig) { boolean found = true; PlatConfig platConfig = new PlatConfig(); platConfig.apps = Collections.synchronizedList(new ArrayList()); AppConfig appConfig = new AppConfig(); ShopConfig shopConfig = new ShopConfig(); try { if (recatchConfig.type == 3 || recatchConfig.type == 1 || recatchConfig.type == 4) { String sql = "select a.platform_code,c.code as app_code,c.key as app_key,a.delivery_mode_id,a.delivery_area_setting,a.order_sync_lock_flag,a.order_sync_lock_keyword," + "c.secret as app_secret,a.company_code as shop_company_code,a.code as shop_code," + "a.platform_account as shop_name,a.session_key as shop_session_key,a.storage_code,d.type as company_type " + " from tb_shop a,tb_platform_app c,tb_company d where " + " a.del_flag = 1 and order_sync_flag=2 and a.company_code=d.code and a.app_code = c.code and c.del_flag = 1" + " and a.code = '" + recatchConfig.shop_code + "'"; ResultSet rs = ps.executeQuery(sql); while (rs.next()) { // 构造店铺 String platform_code = rs.getString("platform_code"); String realPlatformCode = platform_code; recatchConfig.platform_code = platform_code; if ("001".equals(recatchConfig.platform_code) || "012".equals(recatchConfig.platform_code)) { recatchConfig.platform_code = "002"; } recatchConfig.platform_account = rs.getString("shop_name"); for (int i = 0; i < config.plats.size(); i++) { PlatConfig pc = new PlatConfig(); pc = config.plats.get(i); if (pc.plat_name.equals(realPlatformCode)) { shopConfig = new ShopConfig(); shopConfig.realPlatformCode = realPlatformCode; shopConfig.platformCode = platform_code; shopConfig.code = rs.getString("shop_code"); shopConfig.name = rs.getString("shop_name"); shopConfig.session_key = rs.getString("shop_session_key"); shopConfig.company_code = rs.getString("shop_company_code"); shopConfig.storage_code = rs.getString("storage_code"); shopConfig.company_type = rs.getInt("company_type"); shopConfig.order_sync_lock_flag = rs.getInt("order_sync_lock_flag"); shopConfig.order_sync_lock_keyword = rs.getString("order_sync_lock_keyword") == null ? "" : rs.getString("order_sync_lock_keyword"); appConfig.secret = rs.getString("app_secret"); appConfig.key = rs.getString("app_key"); if ((rs.getString("delivery_mode_id") == null)) { shopConfig.delivery_mode_id = 2; } else { shopConfig.delivery_mode_id = rs.getInt("delivery_mode_id"); } shopConfig.delivery_area_setting = rs.getString("delivery_area_setting") == null ? "" : rs.getString("delivery_area_setting"); found = false; if ("001".equals(realPlatformCode) || "012".equals(realPlatformCode)) { for (int j = 0; j ()); platConfig.apps.get(0).shops.add(shopConfig); } } } if (found) { logger.info("店铺编号未查到,请核对编号是否正确!"); return null; } return platConfig; } logger.info("补抓单程序配置中平台单号和店铺单号不能都为空!"); return null; } catch (Exception e) { logger.error(ReOrderSync.class, e); return null; } } public ArrayList addList(ArrayList list, int k, boolean original_trade) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = original_trade; ri.error_msg = ""; ri.row_num = k; list.add(ri); return list; } /** * 根据行号删除一行 * * @param sheet a Excel sheet * @param rowIndex a 0 based index of removing row */ public void removeRow(XSSFSheet sheet, int rowIndex) { int lastRowNum = sheet.getLastRowNum(); if (rowIndex >= 0 && rowIndex < lastRowNum) // 将行号为rowIndex+1一直到行号为lastRowNum的单元格全部上移一行,以便删除rowIndex行 sheet.shiftRows(rowIndex + 1, lastRowNum, -1); if (rowIndex == lastRowNum) { XSSFRow removingRow = sheet.getRow(rowIndex); if (removingRow != null) sheet.removeRow(removingRow); } } } /** * 校验邮箱是否符合格式 * * @param email * @return */ public static boolean checkEmail(String email) { boolean flag = false; try { String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; Pattern regex = Pattern.compile(check); Matcher matcher = regex.matcher(email); flag = matcher.matches(); } catch (Exception e) { flag = false; } return flag; } /** * 校验手机号是否符合格式 * * @param mobileNumber * @return */ public static boolean checkMobileNumber(String mobileNumber) { boolean flag = false; try { // Pattern regex = // Pattern.compile("^(((13[0-9])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8})|(0\\d{2}-\\d{8})|(0\\d{3}-\\d{7})$"); Pattern regex = Pattern.compile("^1[3456789]\\d{9}$"); Matcher matcher = regex.matcher(mobileNumber); flag = matcher.matches(); } catch (Exception e) { e.printStackTrace(); flag = false; } return flag; } /** * 判断文件是否是excel * * @throws Exception */ public static void checkExcelVaild(File file) throws Exception { if (!file.exists()) { throw new Exception("文件不存在"); } if (!(file.isFile() && (file.getName().endsWith(EXCEL_XLS) || file.getName().endsWith(EXCEL_XLSX)))) { throw new Exception("文件不是Excel"); } } /** * 判断Excel的版本,获取Workbook * * @param in * @param file * @return * @throws IOException */ public static Workbook getWorkbok(InputStream in, File file) throws Exception { Workbook wb = null; if (file.getName().endsWith(EXCEL_XLS)) { // Excel 2003 wb = new HSSFWorkbook(in); } else if (file.getName().endsWith(EXCEL_XLSX)) { // Excel 2007/2010 wb = new XSSFWorkbook(in); } return wb; } /** * initConfig 初始化配置 */ private static boolean initFileConfig() { boolean res = false; try { IniReader iniReader = new IniReader(config_filename); config = new Config(); config.db_host = iniReader.getValue("mysql", "host"); config.db_port = iniReader.getValue("mysql", "port"); config.db_name = iniReader.getValue("mysql", "name"); config.db_user = iniReader.getValue("mysql", "user"); config.db_password = iniReader.getValue("mysql", "password"); storageUpdateTime = iniReader.getValue("storageUpdateTime", "interval"); coverage = iniReader.getValue("coverTime", "coverage"); import_file_path = iniReader.getValue("path", "import_file_path"); stopStartTime = iniReader.getValue("storageUpdateTime", "stopStartTime"); stopEndTime = iniReader.getValue("storageUpdateTime", "stopEndTime"); accessKeyId = iniReader.getValue("hufu", "accessKeyId"); secretKey = iniReader.getValue("hufu", "secretKey"); endpoint = iniReader.getValue("hufu", "endpoint"); customerId = iniReader.getValue("hufu", "customerId"); // 读入所有平台参数 config.globe_plats = iniReader.getValue("globe", "plats"); String[] plat_array = config.globe_plats.split(","); config.plats = Collections.synchronizedList(new ArrayList()); for (int i = 0; i < plat_array.length; i++) { PlatConfig pc = new PlatConfig(); pc.plat_name = pc.plat_code = plat_array[i]; pc.api_url = iniReader.getValue(plat_array[i], "api_url"); pc.agent_api_ip = iniReader.getValue(plat_array[i], "agent_api_ip"); pc.tmc_url = iniReader.getValue(plat_array[i], "tmc_url"); pc.apps = Collections.synchronizedList(new ArrayList()); pc.updateTokenList = Collections.synchronizedList(new ArrayList()); config.plats.add(pc); } res = true; } catch (IOException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } return res; } /** * getConfigFromDB 从数据库读取配置 */ private static boolean getConfigFromDB() { boolean res = false; // Druid连接池管理数据库连接 DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; Statement statement = null; ResultSet rs = null; try { conn = dbpc.getConnection(); if (config.plats.size() < 1) { return false; } statement = conn.createStatement(); StringBuffer sql = new StringBuffer() .append("select c.platform_code,c.code as app_code,c.key as app_key,a.pay_percent," + "c.secret as app_secret,a.company_code as shop_company_code," + "a.code as shop_code," + "a.delivery_mode_id,a.delivery_area_setting,a.refresh_token,a.expires_time,b.expire_time as endTime," + "a.platform_code as platformCode,a.del_flag,a.auth_flag,a.order_sync_flag,a.init_time,a.order_sync_modify_time," + "a.platform_account as shop_name,a.session_key as shop_session_key,a.storage_code,e.type as company_type " + "from tb_shop a, tb_platform_app c,tb_company_role_relation b,tb_role d,tb_company e " + "where a.del_flag = 1 and a.app_code = c.code and c.del_flag = 1 and a.company_code=b.company_code and b.role_code=d.code and d.type=1 " + "and a.app_code = c.code and a.company_code=e.code and a.platform_code in ("); for (int i = 0; i < config.plats.size(); i++) { PlatConfig pConfig = new PlatConfig(); pConfig = config.plats.get(i); if (i < config.plats.size() - 1) { sql.append(pConfig.plat_code + ","); } else { sql.append(pConfig.plat_code + ")"); } } sql.append(" order by order_sync_modify_time asc"); rs = statement.executeQuery(sql.toString()); while (rs.next()) { // 先判断app是否存在 String app_code = rs.getString("app_code"); String platformCode = rs.getString("platformCode"); String endTime = rs.getString("endTime"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long endTimeLong = sdf.parse(endTime).getTime(); long timeNow = System.currentTimeMillis(); if (timeNow - endTimeLong >= 7 * 24 * 60 * 60 * 1000) { continue; } if ("001".equals(platformCode) || "012".equals(platformCode)) { platformCode = "002"; } Boolean found = false; for (int i = 0; i < config.plats.size(); i++) { PlatConfig pc = new PlatConfig(); pc = config.plats.get(i); if (pc.plat_code.equals(platformCode)) { pc.order_sync_modify_time = rs.getString("order_sync_modify_time"); // 构造店铺 shopConfig = new ShopConfig(); shopConfig.code = rs.getString("shop_code"); shopConfig.name = rs.getString("shop_name"); shopConfig.session_key = rs.getString("shop_session_key"); shopConfig.company_code = rs.getString("shop_company_code"); shopConfig.pay_percent = rs.getDouble("pay_percent"); shopConfig.del_flag = rs.getInt("del_flag"); shopConfig.auth_flag = rs.getInt("auth_flag"); shopConfig.order_sync_flag = rs.getInt("order_sync_flag"); shopConfig.company_type = rs.getInt("company_type"); if ("".equals(coverage) || coverage == null) { shopConfig.init_time = rs.getInt("init_time"); } else { Pattern pattern = Pattern.compile("[0-9]*"); Matcher isNum = pattern.matcher(coverage); if (!isNum.matches()) { shopConfig.init_time = rs.getInt("init_time"); } else { shopConfig.init_time = Integer.valueOf(coverage) * 60; } } String storage_code = rs.getString("storage_code"); if (storage_code == null) { shopConfig.storage_code = ""; } else { shopConfig.storage_code = rs.getString("storage_code"); } if ((rs.getString("delivery_mode_id") == null)) { shopConfig.delivery_mode_id = 2; } else { shopConfig.delivery_mode_id = rs.getInt("delivery_mode_id"); } shopConfig.delivery_area_setting = rs.getString("delivery_area_setting") == null ? "" : rs.getString("delivery_area_setting"); shopConfig.platformCode = platformCode; if ((shopConfig.del_flag == 1) && (shopConfig.auth_flag == 2) && (shopConfig.order_sync_flag == 2)) { for (int j = 0; j < pc.apps.size(); j++) { AppConfig app_config = pc.apps.get(j); if (app_code.equals(app_config.code)) { // 找到app可以直接添加店铺 app_config.shops.add(shopConfig); logger.info("只添加店铺[ {} ] | [ {} ] 时间->{}", shopConfig.code, shopConfig.name, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); found = true; break; } } if (!found) { // 未找到app,需要同步添加app和店铺 AppConfig appConfig = new AppConfig(); appConfig.code = rs.getString("app_code"); appConfig.key = rs.getString("app_key"); appConfig.secret = rs.getString("app_secret"); appConfig.shops = Collections.synchronizedList(new ArrayList()); appConfig.shops.add(shopConfig); pc.apps.add(appConfig); } } // 获取自动更新sessionkey的所需信息 int del_flag = shopConfig.del_flag; int auth_flag = shopConfig.auth_flag; String refresh_token = rs.getString("refresh_token"); String expires_time = rs.getString("expires_time"); if (del_flag == 1 && auth_flag == 2 && (refresh_token != null && !"".equals(refresh_token) && (expires_time != null && !"".equals(expires_time)))) { UpdateMessage um = new UpdateMessage(); um.app_key = rs.getString("app_key"); um.app_secret = rs.getString("app_secret"); um.refresh_token = refresh_token; um.expires_time = expires_time; um.shop_name = rs.getString("shop_name"); um.shop_code = rs.getString("shop_code"); pc.updateTokenList.add(um); } break; } } } res = true; } catch (Exception e) { logger.error(ReplenishOrder.class, e); logger.info("{}时间->{}", e.toString(), new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } rs = null; } if (statement != null) { try { statement.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } statement = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } conn = null; } dbpc = null; } return res; } public static boolean isDouble(String str) { Pattern pattern = Pattern.compile("[0-9]+[.]{0,1}[0-9]*[dD]{0,1}"); Matcher isNum = pattern.matcher(str); if (!isNum.matches()) { return false; } return true; } /** * * @title: checkCell * @description: 检查单元格是否有值 * @param row 行 * @param cellNumber 列号 * @return string NullValue/EffectiveValue 单元格为空值/单元格中有效值 */ public static String checkCellValue(Row row, int cellNumber) { try { Cell cell = row.getCell(cellNumber); if (null != cell && "BLANK".equals(cell.getCellTypeEnum().toString())) {// 单元格有过操作 值为空字符串 return "NullValue"; } else if (null != cell && !"BLANK".equals(cell.getCellTypeEnum().toString())) { return "EffectiveValue"; } else if (null == cell || "BLANK".equals(cell.getCellTypeEnum().toString())) { return "NullValue"; } } catch (Exception e) { logger.error("", e); if (e instanceof NullPointerException) { return "NullValue"; } } logger.error("补录订单发生了未知的异常,请检查源文件。"); return "Unknown"; } } \ No newline at end of file diff --git a/src/com/since/emp/analysis/AnalysisDataParse.java b/src/main/java/com/since/emp/analysis/AnalysisDataParse.java similarity index 100% rename from src/com/since/emp/analysis/AnalysisDataParse.java rename to src/main/java/com/since/emp/analysis/AnalysisDataParse.java diff --git a/src/com/since/emp/analysis/HandlerRecord.java b/src/main/java/com/since/emp/analysis/HandlerRecord.java similarity index 100% rename from src/com/since/emp/analysis/HandlerRecord.java rename to src/main/java/com/since/emp/analysis/HandlerRecord.java diff --git a/src/com/since/emp/analysis/ProjectRecord.java b/src/main/java/com/since/emp/analysis/ProjectRecord.java similarity index 100% rename from src/com/since/emp/analysis/ProjectRecord.java rename to src/main/java/com/since/emp/analysis/ProjectRecord.java diff --git a/src/com/since/emp/analysis/StOrderSync_lxy.java b/src/main/java/com/since/emp/analysis/StOrderSync_lxy.java similarity index 100% rename from src/com/since/emp/analysis/StOrderSync_lxy.java rename to src/main/java/com/since/emp/analysis/StOrderSync_lxy.java diff --git a/src/com/since/emp/base/AgentStorage.java b/src/main/java/com/since/emp/base/AgentStorage.java similarity index 100% rename from src/com/since/emp/base/AgentStorage.java rename to src/main/java/com/since/emp/base/AgentStorage.java diff --git a/src/com/since/emp/base/Basket.java b/src/main/java/com/since/emp/base/Basket.java similarity index 100% rename from src/com/since/emp/base/Basket.java rename to src/main/java/com/since/emp/base/Basket.java diff --git a/src/com/since/emp/base/Commodity.java b/src/main/java/com/since/emp/base/Commodity.java similarity index 100% rename from src/com/since/emp/base/Commodity.java rename to src/main/java/com/since/emp/base/Commodity.java diff --git a/src/com/since/emp/base/Config.java b/src/main/java/com/since/emp/base/Config.java similarity index 100% rename from src/com/since/emp/base/Config.java rename to src/main/java/com/since/emp/base/Config.java diff --git a/src/com/since/emp/base/DbPoolConnection.java b/src/main/java/com/since/emp/base/DbPoolConnection.java similarity index 100% rename from src/com/since/emp/base/DbPoolConnection.java rename to src/main/java/com/since/emp/base/DbPoolConnection.java diff --git a/src/com/since/emp/base/DbPoolConnection_MiHe.java b/src/main/java/com/since/emp/base/DbPoolConnection_MiHe.java similarity index 100% rename from src/com/since/emp/base/DbPoolConnection_MiHe.java rename to src/main/java/com/since/emp/base/DbPoolConnection_MiHe.java diff --git a/src/com/since/emp/base/DbUtil.java b/src/main/java/com/since/emp/base/DbUtil.java similarity index 100% rename from src/com/since/emp/base/DbUtil.java rename to src/main/java/com/since/emp/base/DbUtil.java diff --git a/src/com/since/emp/base/DeliveryArea.java b/src/main/java/com/since/emp/base/DeliveryArea.java similarity index 100% rename from src/com/since/emp/base/DeliveryArea.java rename to src/main/java/com/since/emp/base/DeliveryArea.java diff --git a/src/com/since/emp/base/DrpOrderInfo.java b/src/main/java/com/since/emp/base/DrpOrderInfo.java similarity index 100% rename from src/com/since/emp/base/DrpOrderInfo.java rename to src/main/java/com/since/emp/base/DrpOrderInfo.java diff --git a/src/com/since/emp/base/DrpParams.java b/src/main/java/com/since/emp/base/DrpParams.java similarity index 100% rename from src/com/since/emp/base/DrpParams.java rename to src/main/java/com/since/emp/base/DrpParams.java diff --git a/src/com/since/emp/base/DrpTradeInfo.java b/src/main/java/com/since/emp/base/DrpTradeInfo.java similarity index 100% rename from src/com/since/emp/base/DrpTradeInfo.java rename to src/main/java/com/since/emp/base/DrpTradeInfo.java diff --git a/src/com/since/emp/base/EntrustOrder.java b/src/main/java/com/since/emp/base/EntrustOrder.java similarity index 100% rename from src/com/since/emp/base/EntrustOrder.java rename to src/main/java/com/since/emp/base/EntrustOrder.java diff --git a/src/com/since/emp/base/FenxiaoInfo.java b/src/main/java/com/since/emp/base/FenxiaoInfo.java similarity index 100% rename from src/com/since/emp/base/FenxiaoInfo.java rename to src/main/java/com/since/emp/base/FenxiaoInfo.java diff --git a/src/com/since/emp/base/GiftNum.java b/src/main/java/com/since/emp/base/GiftNum.java similarity index 100% rename from src/com/since/emp/base/GiftNum.java rename to src/main/java/com/since/emp/base/GiftNum.java diff --git a/src/com/since/emp/base/HttpRequestCode.java b/src/main/java/com/since/emp/base/HttpRequestCode.java similarity index 100% rename from src/com/since/emp/base/HttpRequestCode.java rename to src/main/java/com/since/emp/base/HttpRequestCode.java diff --git a/src/com/since/emp/base/ImportExcelDataInfo.java b/src/main/java/com/since/emp/base/ImportExcelDataInfo.java similarity index 100% rename from src/com/since/emp/base/ImportExcelDataInfo.java rename to src/main/java/com/since/emp/base/ImportExcelDataInfo.java diff --git a/src/com/since/emp/base/ImportParams.java b/src/main/java/com/since/emp/base/ImportParams.java similarity index 100% rename from src/com/since/emp/base/ImportParams.java rename to src/main/java/com/since/emp/base/ImportParams.java diff --git a/src/com/since/emp/base/IniReader.java b/src/main/java/com/since/emp/base/IniReader.java similarity index 100% rename from src/com/since/emp/base/IniReader.java rename to src/main/java/com/since/emp/base/IniReader.java diff --git a/src/com/since/emp/base/Item.java b/src/main/java/com/since/emp/base/Item.java similarity index 100% rename from src/com/since/emp/base/Item.java rename to src/main/java/com/since/emp/base/Item.java diff --git a/src/com/since/emp/base/MsgInfo.java b/src/main/java/com/since/emp/base/MsgInfo.java similarity index 100% rename from src/com/since/emp/base/MsgInfo.java rename to src/main/java/com/since/emp/base/MsgInfo.java diff --git a/src/com/since/emp/base/OrderInfo.java b/src/main/java/com/since/emp/base/OrderInfo.java similarity index 100% rename from src/com/since/emp/base/OrderInfo.java rename to src/main/java/com/since/emp/base/OrderInfo.java diff --git a/src/com/since/emp/base/RecatchConfig.java b/src/main/java/com/since/emp/base/RecatchConfig.java similarity index 100% rename from src/com/since/emp/base/RecatchConfig.java rename to src/main/java/com/since/emp/base/RecatchConfig.java diff --git a/src/com/since/emp/base/RefundInfo.java b/src/main/java/com/since/emp/base/RefundInfo.java similarity index 100% rename from src/com/since/emp/base/RefundInfo.java rename to src/main/java/com/since/emp/base/RefundInfo.java diff --git a/src/com/since/emp/base/RefundMsgInfo.java b/src/main/java/com/since/emp/base/RefundMsgInfo.java similarity index 100% rename from src/com/since/emp/base/RefundMsgInfo.java rename to src/main/java/com/since/emp/base/RefundMsgInfo.java diff --git a/src/com/since/emp/base/RefundOrder.java b/src/main/java/com/since/emp/base/RefundOrder.java similarity index 100% rename from src/com/since/emp/base/RefundOrder.java rename to src/main/java/com/since/emp/base/RefundOrder.java diff --git a/src/com/since/emp/base/ReplenishInfo.java b/src/main/java/com/since/emp/base/ReplenishInfo.java similarity index 100% rename from src/com/since/emp/base/ReplenishInfo.java rename to src/main/java/com/since/emp/base/ReplenishInfo.java diff --git a/src/com/since/emp/base/Rule.java b/src/main/java/com/since/emp/base/Rule.java similarity index 100% rename from src/com/since/emp/base/Rule.java rename to src/main/java/com/since/emp/base/Rule.java diff --git a/src/com/since/emp/base/ShopCommodityConfig.java b/src/main/java/com/since/emp/base/ShopCommodityConfig.java similarity index 100% rename from src/com/since/emp/base/ShopCommodityConfig.java rename to src/main/java/com/since/emp/base/ShopCommodityConfig.java diff --git a/src/com/since/emp/base/ShopMessage.java b/src/main/java/com/since/emp/base/ShopMessage.java similarity index 100% rename from src/com/since/emp/base/ShopMessage.java rename to src/main/java/com/since/emp/base/ShopMessage.java diff --git a/src/com/since/emp/base/ShopOrderInfo.java b/src/main/java/com/since/emp/base/ShopOrderInfo.java similarity index 100% rename from src/com/since/emp/base/ShopOrderInfo.java rename to src/main/java/com/since/emp/base/ShopOrderInfo.java diff --git a/src/com/since/emp/base/TradeInfo.java b/src/main/java/com/since/emp/base/TradeInfo.java similarity index 99% rename from src/com/since/emp/base/TradeInfo.java rename to src/main/java/com/since/emp/base/TradeInfo.java index 8807059..eaa639a 100644 --- a/src/com/since/emp/base/TradeInfo.java +++ b/src/main/java/com/since/emp/base/TradeInfo.java @@ -7,7 +7,6 @@ package com.since.emp.base; import lombok.Data; -import org.json.JSONArray; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -15,7 +14,6 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; /** diff --git a/src/com/since/emp/base/TraderateInfo.java b/src/main/java/com/since/emp/base/TraderateInfo.java similarity index 100% rename from src/com/since/emp/base/TraderateInfo.java rename to src/main/java/com/since/emp/base/TraderateInfo.java diff --git a/src/com/since/emp/base/YchClient.java b/src/main/java/com/since/emp/base/YchClient.java similarity index 99% rename from src/com/since/emp/base/YchClient.java rename to src/main/java/com/since/emp/base/YchClient.java index f3ca8c5..dae45b4 100644 --- a/src/com/since/emp/base/YchClient.java +++ b/src/main/java/com/since/emp/base/YchClient.java @@ -27,8 +27,6 @@ import javax.net.ssl.X509TrustManager; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import com.since.emp.service.OrderSyncs; - /** * @className:YchClient * @description:御城河客户端 diff --git a/src/com/since/emp/base/aftersale/ChangLogisticsAddressInfo.java b/src/main/java/com/since/emp/base/aftersale/ChangLogisticsAddressInfo.java similarity index 100% rename from src/com/since/emp/base/aftersale/ChangLogisticsAddressInfo.java rename to src/main/java/com/since/emp/base/aftersale/ChangLogisticsAddressInfo.java diff --git a/src/com/since/emp/base/aftersale/ChangLogisticsAddressOrder.java b/src/main/java/com/since/emp/base/aftersale/ChangLogisticsAddressOrder.java similarity index 100% rename from src/com/since/emp/base/aftersale/ChangLogisticsAddressOrder.java rename to src/main/java/com/since/emp/base/aftersale/ChangLogisticsAddressOrder.java diff --git a/src/com/since/emp/base/aftersale/RefundColseEntity.java b/src/main/java/com/since/emp/base/aftersale/RefundColseEntity.java similarity index 100% rename from src/com/since/emp/base/aftersale/RefundColseEntity.java rename to src/main/java/com/since/emp/base/aftersale/RefundColseEntity.java diff --git a/src/com/since/emp/base/aftersale/TbDeliveryOrder.java b/src/main/java/com/since/emp/base/aftersale/TbDeliveryOrder.java similarity index 100% rename from src/com/since/emp/base/aftersale/TbDeliveryOrder.java rename to src/main/java/com/since/emp/base/aftersale/TbDeliveryOrder.java diff --git a/src/com/since/emp/base/aftersale/TbFinanceOrder.java b/src/main/java/com/since/emp/base/aftersale/TbFinanceOrder.java similarity index 100% rename from src/com/since/emp/base/aftersale/TbFinanceOrder.java rename to src/main/java/com/since/emp/base/aftersale/TbFinanceOrder.java diff --git a/src/com/since/emp/base/aftersale/TbInvoice.java b/src/main/java/com/since/emp/base/aftersale/TbInvoice.java similarity index 100% rename from src/com/since/emp/base/aftersale/TbInvoice.java rename to src/main/java/com/since/emp/base/aftersale/TbInvoice.java diff --git a/src/com/since/emp/base/aftersale/TbSaleOrder.java b/src/main/java/com/since/emp/base/aftersale/TbSaleOrder.java similarity index 100% rename from src/com/since/emp/base/aftersale/TbSaleOrder.java rename to src/main/java/com/since/emp/base/aftersale/TbSaleOrder.java diff --git a/src/com/since/emp/base/aftersale/TbSaleOrderItems.java b/src/main/java/com/since/emp/base/aftersale/TbSaleOrderItems.java similarity index 100% rename from src/com/since/emp/base/aftersale/TbSaleOrderItems.java rename to src/main/java/com/since/emp/base/aftersale/TbSaleOrderItems.java diff --git a/src/com/since/emp/base/aftersale/TbSubSaleOrder.java b/src/main/java/com/since/emp/base/aftersale/TbSubSaleOrder.java similarity index 100% rename from src/com/since/emp/base/aftersale/TbSubSaleOrder.java rename to src/main/java/com/since/emp/base/aftersale/TbSubSaleOrder.java diff --git a/src/com/since/emp/base/aftersale/TbSubSaleOrderItems.java b/src/main/java/com/since/emp/base/aftersale/TbSubSaleOrderItems.java similarity index 100% rename from src/com/since/emp/base/aftersale/TbSubSaleOrderItems.java rename to src/main/java/com/since/emp/base/aftersale/TbSubSaleOrderItems.java diff --git a/src/com/since/emp/base/constant/LoggerRecordConstant.java b/src/main/java/com/since/emp/base/constant/LoggerRecordConstant.java similarity index 100% rename from src/com/since/emp/base/constant/LoggerRecordConstant.java rename to src/main/java/com/since/emp/base/constant/LoggerRecordConstant.java diff --git a/src/com/since/emp/base/constant/ProvinceConstant.java b/src/main/java/com/since/emp/base/constant/ProvinceConstant.java similarity index 100% rename from src/com/since/emp/base/constant/ProvinceConstant.java rename to src/main/java/com/since/emp/base/constant/ProvinceConstant.java diff --git a/src/com/since/emp/base/doudian/CipherInfo.java b/src/main/java/com/since/emp/base/doudian/CipherInfo.java similarity index 100% rename from src/com/since/emp/base/doudian/CipherInfo.java rename to src/main/java/com/since/emp/base/doudian/CipherInfo.java diff --git a/src/com/since/emp/base/doudian/CipherInfos.java b/src/main/java/com/since/emp/base/doudian/CipherInfos.java similarity index 100% rename from src/com/since/emp/base/doudian/CipherInfos.java rename to src/main/java/com/since/emp/base/doudian/CipherInfos.java diff --git a/src/com/since/emp/base/doudian/DdEncryptBO.java b/src/main/java/com/since/emp/base/doudian/DdEncryptBO.java similarity index 100% rename from src/com/since/emp/base/doudian/DdEncryptBO.java rename to src/main/java/com/since/emp/base/doudian/DdEncryptBO.java diff --git a/src/com/since/emp/base/mia/MiaAftersaleRequestParams.java b/src/main/java/com/since/emp/base/mia/MiaAftersaleRequestParams.java similarity index 100% rename from src/com/since/emp/base/mia/MiaAftersaleRequestParams.java rename to src/main/java/com/since/emp/base/mia/MiaAftersaleRequestParams.java diff --git a/src/com/since/emp/base/mia/MiaCommonRequestParams.java b/src/main/java/com/since/emp/base/mia/MiaCommonRequestParams.java similarity index 100% rename from src/com/since/emp/base/mia/MiaCommonRequestParams.java rename to src/main/java/com/since/emp/base/mia/MiaCommonRequestParams.java diff --git a/src/com/since/emp/base/mia/MiaOrdersRequestParams.java b/src/main/java/com/since/emp/base/mia/MiaOrdersRequestParams.java similarity index 100% rename from src/com/since/emp/base/mia/MiaOrdersRequestParams.java rename to src/main/java/com/since/emp/base/mia/MiaOrdersRequestParams.java diff --git a/src/com/since/emp/base/thread/CustomRejectedExecutionHandler.java b/src/main/java/com/since/emp/base/thread/CustomRejectedExecutionHandler.java similarity index 100% rename from src/com/since/emp/base/thread/CustomRejectedExecutionHandler.java rename to src/main/java/com/since/emp/base/thread/CustomRejectedExecutionHandler.java diff --git a/src/com/since/emp/base/thread/CustomThreadFactory.java b/src/main/java/com/since/emp/base/thread/CustomThreadFactory.java similarity index 100% rename from src/com/since/emp/base/thread/CustomThreadFactory.java rename to src/main/java/com/since/emp/base/thread/CustomThreadFactory.java diff --git a/src/com/since/emp/base/thread/ScheduledThreadPool.java b/src/main/java/com/since/emp/base/thread/ScheduledThreadPool.java similarity index 95% rename from src/com/since/emp/base/thread/ScheduledThreadPool.java rename to src/main/java/com/since/emp/base/thread/ScheduledThreadPool.java index 1bf37fe..815a5d3 100644 --- a/src/com/since/emp/base/thread/ScheduledThreadPool.java +++ b/src/main/java/com/since/emp/base/thread/ScheduledThreadPool.java @@ -5,8 +5,6 @@ import java.util.concurrent.ScheduledThreadPoolExecutor; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import com.since.emp.service.StorageUpdate; - /** * @author Sunshine * @date 2019/10/12 13:20 diff --git a/src/com/since/emp/base/thread/ThreadPool.java b/src/main/java/com/since/emp/base/thread/ThreadPool.java similarity index 100% rename from src/com/since/emp/base/thread/ThreadPool.java rename to src/main/java/com/since/emp/base/thread/ThreadPool.java diff --git a/src/com/since/emp/base/weimob/MerchantOrderListQueryByCreateTimeParameter.java b/src/main/java/com/since/emp/base/weimob/MerchantOrderListQueryByCreateTimeParameter.java similarity index 100% rename from src/com/since/emp/base/weimob/MerchantOrderListQueryByCreateTimeParameter.java rename to src/main/java/com/since/emp/base/weimob/MerchantOrderListQueryByCreateTimeParameter.java diff --git a/src/com/since/emp/base/weimob/MerchantOrderListQueryByPaymentTimeParameter.java b/src/main/java/com/since/emp/base/weimob/MerchantOrderListQueryByPaymentTimeParameter.java similarity index 100% rename from src/com/since/emp/base/weimob/MerchantOrderListQueryByPaymentTimeParameter.java rename to src/main/java/com/since/emp/base/weimob/MerchantOrderListQueryByPaymentTimeParameter.java diff --git a/src/com/since/emp/base/weimob/MerchantOrderListQueryByUpdateTimeParameter.java b/src/main/java/com/since/emp/base/weimob/MerchantOrderListQueryByUpdateTimeParameter.java similarity index 100% rename from src/com/since/emp/base/weimob/MerchantOrderListQueryByUpdateTimeParameter.java rename to src/main/java/com/since/emp/base/weimob/MerchantOrderListQueryByUpdateTimeParameter.java diff --git a/src/com/since/emp/base/weimob/WeimobOrderRequestByCreateTimeParams.java b/src/main/java/com/since/emp/base/weimob/WeimobOrderRequestByCreateTimeParams.java similarity index 100% rename from src/com/since/emp/base/weimob/WeimobOrderRequestByCreateTimeParams.java rename to src/main/java/com/since/emp/base/weimob/WeimobOrderRequestByCreateTimeParams.java diff --git a/src/com/since/emp/base/weimob/WeimobOrderRequestByPaymentTimeParams.java b/src/main/java/com/since/emp/base/weimob/WeimobOrderRequestByPaymentTimeParams.java similarity index 100% rename from src/com/since/emp/base/weimob/WeimobOrderRequestByPaymentTimeParams.java rename to src/main/java/com/since/emp/base/weimob/WeimobOrderRequestByPaymentTimeParams.java diff --git a/src/com/since/emp/base/weimob/WeimobOrderRequestByUpdateTimeParams.java b/src/main/java/com/since/emp/base/weimob/WeimobOrderRequestByUpdateTimeParams.java similarity index 100% rename from src/com/since/emp/base/weimob/WeimobOrderRequestByUpdateTimeParams.java rename to src/main/java/com/since/emp/base/weimob/WeimobOrderRequestByUpdateTimeParams.java diff --git a/src/com/since/emp/constant/CheckNewOrderQueue.java b/src/main/java/com/since/emp/constant/CheckNewOrderQueue.java similarity index 100% rename from src/com/since/emp/constant/CheckNewOrderQueue.java rename to src/main/java/com/since/emp/constant/CheckNewOrderQueue.java diff --git a/src/com/since/emp/exception/NoShopException.java b/src/main/java/com/since/emp/exception/NoShopException.java similarity index 100% rename from src/com/since/emp/exception/NoShopException.java rename to src/main/java/com/since/emp/exception/NoShopException.java diff --git a/src/com/since/emp/exception/TemplateException.java b/src/main/java/com/since/emp/exception/TemplateException.java similarity index 100% rename from src/com/since/emp/exception/TemplateException.java rename to src/main/java/com/since/emp/exception/TemplateException.java diff --git a/src/com/since/emp/exception/WeiDianException.java b/src/main/java/com/since/emp/exception/WeiDianException.java similarity index 100% rename from src/com/since/emp/exception/WeiDianException.java rename to src/main/java/com/since/emp/exception/WeiDianException.java diff --git a/src/com/since/emp/exception/XiaoHongShuOrderException.java b/src/main/java/com/since/emp/exception/XiaoHongShuOrderException.java similarity index 100% rename from src/com/since/emp/exception/XiaoHongShuOrderException.java rename to src/main/java/com/since/emp/exception/XiaoHongShuOrderException.java diff --git a/src/com/since/emp/newplatform/service/ApiDangDangNew.java b/src/main/java/com/since/emp/newplatform/service/ApiDangDangNew.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiDangDangNew.java rename to src/main/java/com/since/emp/newplatform/service/ApiDangDangNew.java diff --git a/src/com/since/emp/newplatform/service/ApiDouDianNew_Deprecated.java b/src/main/java/com/since/emp/newplatform/service/ApiDouDianNew_Deprecated.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiDouDianNew_Deprecated.java rename to src/main/java/com/since/emp/newplatform/service/ApiDouDianNew_Deprecated.java diff --git a/src/com/since/emp/newplatform/service/ApiGomeNew.java b/src/main/java/com/since/emp/newplatform/service/ApiGomeNew.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiGomeNew.java rename to src/main/java/com/since/emp/newplatform/service/ApiGomeNew.java diff --git a/src/com/since/emp/newplatform/service/ApiJingdongNew.java b/src/main/java/com/since/emp/newplatform/service/ApiJingdongNew.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiJingdongNew.java rename to src/main/java/com/since/emp/newplatform/service/ApiJingdongNew.java diff --git a/src/com/since/emp/newplatform/service/ApiKtt.java b/src/main/java/com/since/emp/newplatform/service/ApiKtt.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiKtt.java rename to src/main/java/com/since/emp/newplatform/service/ApiKtt.java diff --git a/src/com/since/emp/newplatform/service/ApiKuaiShou.java b/src/main/java/com/since/emp/newplatform/service/ApiKuaiShou.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiKuaiShou.java rename to src/main/java/com/since/emp/newplatform/service/ApiKuaiShou.java diff --git a/src/com/since/emp/newplatform/service/ApiPinDuoDuoThirdEdition.java b/src/main/java/com/since/emp/newplatform/service/ApiPinDuoDuoThirdEdition.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiPinDuoDuoThirdEdition.java rename to src/main/java/com/since/emp/newplatform/service/ApiPinDuoDuoThirdEdition.java diff --git a/src/com/since/emp/newplatform/service/ApiWeiDianFirst.java b/src/main/java/com/since/emp/newplatform/service/ApiWeiDianFirst.java similarity index 99% rename from src/com/since/emp/newplatform/service/ApiWeiDianFirst.java rename to src/main/java/com/since/emp/newplatform/service/ApiWeiDianFirst.java index b42cb3c..09012d3 100644 --- a/src/com/since/emp/newplatform/service/ApiWeiDianFirst.java +++ b/src/main/java/com/since/emp/newplatform/service/ApiWeiDianFirst.java @@ -2,7 +2,6 @@ package com.since.emp.newplatform.service; import com.alibaba.druid.pool.DruidPooledConnection; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -11,14 +10,11 @@ import com.since.emp.base.constant.LoggerRecordConstant; import com.since.emp.base.thread.ScheduledThreadPool; import com.since.emp.base.thread.ThreadPool; import com.since.emp.exception.WeiDianException; -import com.since.emp.exception.XiaoHongShuOrderException; import com.since.emp.service.OrderSyncs; import com.since.emp.util.CloseUtil; import java.net.URLEncoder; -import com.xiaohongshu.fls.opensdk.client.PackageClient; -import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; diff --git a/src/com/since/emp/newplatform/service/ApiWeiMobNew.java b/src/main/java/com/since/emp/newplatform/service/ApiWeiMobNew.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiWeiMobNew.java rename to src/main/java/com/since/emp/newplatform/service/ApiWeiMobNew.java diff --git a/src/com/since/emp/newplatform/service/ApiXiaoHongShuNew.java b/src/main/java/com/since/emp/newplatform/service/ApiXiaoHongShuNew.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiXiaoHongShuNew.java rename to src/main/java/com/since/emp/newplatform/service/ApiXiaoHongShuNew.java diff --git a/src/com/since/emp/newplatform/service/ApiXiaoHongShuNewThirdEdition.java b/src/main/java/com/since/emp/newplatform/service/ApiXiaoHongShuNewThirdEdition.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiXiaoHongShuNewThirdEdition.java rename to src/main/java/com/since/emp/newplatform/service/ApiXiaoHongShuNewThirdEdition.java diff --git a/src/com/since/emp/newplatform/service/ApiYiTiaoNew.java b/src/main/java/com/since/emp/newplatform/service/ApiYiTiaoNew.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiYiTiaoNew.java rename to src/main/java/com/since/emp/newplatform/service/ApiYiTiaoNew.java diff --git a/src/com/since/emp/newplatform/service/ApiYouZanNew.java b/src/main/java/com/since/emp/newplatform/service/ApiYouZanNew.java similarity index 100% rename from src/com/since/emp/newplatform/service/ApiYouZanNew.java rename to src/main/java/com/since/emp/newplatform/service/ApiYouZanNew.java diff --git a/src/com/since/emp/newplatform/service/GetOrderDetailThread.java b/src/main/java/com/since/emp/newplatform/service/GetOrderDetailThread.java similarity index 100% rename from src/com/since/emp/newplatform/service/GetOrderDetailThread.java rename to src/main/java/com/since/emp/newplatform/service/GetOrderDetailThread.java diff --git a/src/com/since/emp/newplatform/service/GetOrderThread.java b/src/main/java/com/since/emp/newplatform/service/GetOrderThread.java similarity index 100% rename from src/com/since/emp/newplatform/service/GetOrderThread.java rename to src/main/java/com/since/emp/newplatform/service/GetOrderThread.java diff --git a/src/com/since/emp/newplatform/service/RecatchOrderThread.java b/src/main/java/com/since/emp/newplatform/service/RecatchOrderThread.java similarity index 100% rename from src/com/since/emp/newplatform/service/RecatchOrderThread.java rename to src/main/java/com/since/emp/newplatform/service/RecatchOrderThread.java diff --git a/src/com/since/emp/newplatform/service/RefundOrderThread.java b/src/main/java/com/since/emp/newplatform/service/RefundOrderThread.java similarity index 100% rename from src/com/since/emp/newplatform/service/RefundOrderThread.java rename to src/main/java/com/since/emp/newplatform/service/RefundOrderThread.java diff --git a/src/com/since/emp/newplatform/service/Transform.java b/src/main/java/com/since/emp/newplatform/service/Transform.java similarity index 100% rename from src/com/since/emp/newplatform/service/Transform.java rename to src/main/java/com/since/emp/newplatform/service/Transform.java diff --git a/src/com/since/emp/newplatform/service/UpdateAccessToken.java b/src/main/java/com/since/emp/newplatform/service/UpdateAccessToken.java similarity index 100% rename from src/com/since/emp/newplatform/service/UpdateAccessToken.java rename to src/main/java/com/since/emp/newplatform/service/UpdateAccessToken.java diff --git a/src/com/since/emp/service/ApiDouDian.java b/src/main/java/com/since/emp/service/ApiDouDian.java similarity index 99% rename from src/com/since/emp/service/ApiDouDian.java rename to src/main/java/com/since/emp/service/ApiDouDian.java index 5168acd..bf17006 100644 --- a/src/com/since/emp/service/ApiDouDian.java +++ b/src/main/java/com/since/emp/service/ApiDouDian.java @@ -3,7 +3,6 @@ package com.since.emp.service; import java.math.BigDecimal; import java.sql.SQLException; import java.sql.Statement; -import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -14,8 +13,6 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.SortedMap; -import java.util.TreeMap; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -34,7 +31,6 @@ import com.doudian.open.api.afterSale_List.data.AftersaleInfo; import com.doudian.open.api.afterSale_List.data.ItemsItem; import com.doudian.open.api.afterSale_List.data.TextPart; import com.doudian.open.api.afterSale_List.param.AfterSaleListParam; -import com.doudian.open.api.token.AccessTokenData; import com.doudian.open.core.AccessToken; import com.doudian.open.core.AccessTokenBuilder; import com.doudian.open.core.GlobalConfig; @@ -64,7 +60,6 @@ import com.since.emp.test.vo.CombineStatusVO; import com.since.emp.test.vo.DouDianOrderListQueryVO; import com.since.emp.test.vo.DouDianSignVO; import com.since.emp.test.vo.OrderDetialVO; -import com.since.emp.test.vo.RefundVO; import com.since.emp.util.ConvertUtil; import com.since.emp.util.DouDianSignUtil; import com.since.emp.util.HttpRequest; diff --git a/src/com/since/emp/service/ApiMiHeMall.java b/src/main/java/com/since/emp/service/ApiMiHeMall.java similarity index 100% rename from src/com/since/emp/service/ApiMiHeMall.java rename to src/main/java/com/since/emp/service/ApiMiHeMall.java diff --git a/src/com/since/emp/service/ApiMia.java b/src/main/java/com/since/emp/service/ApiMia.java similarity index 100% rename from src/com/since/emp/service/ApiMia.java rename to src/main/java/com/since/emp/service/ApiMia.java diff --git a/src/com/since/emp/service/ApiPinDuoDuoNew.java b/src/main/java/com/since/emp/service/ApiPinDuoDuoNew.java similarity index 100% rename from src/com/since/emp/service/ApiPinDuoDuoNew.java rename to src/main/java/com/since/emp/service/ApiPinDuoDuoNew.java diff --git a/src/com/since/emp/service/ApiPingan.java b/src/main/java/com/since/emp/service/ApiPingan.java similarity index 100% rename from src/com/since/emp/service/ApiPingan.java rename to src/main/java/com/since/emp/service/ApiPingan.java diff --git a/src/com/since/emp/service/ApiQunJieLong.java b/src/main/java/com/since/emp/service/ApiQunJieLong.java similarity index 100% rename from src/com/since/emp/service/ApiQunJieLong.java rename to src/main/java/com/since/emp/service/ApiQunJieLong.java diff --git a/src/com/since/emp/service/ApiTmall.java b/src/main/java/com/since/emp/service/ApiTmall.java similarity index 100% rename from src/com/since/emp/service/ApiTmall.java rename to src/main/java/com/since/emp/service/ApiTmall.java diff --git a/src/com/since/emp/service/ApiVip.java b/src/main/java/com/since/emp/service/ApiVip.java similarity index 100% rename from src/com/since/emp/service/ApiVip.java rename to src/main/java/com/since/emp/service/ApiVip.java diff --git a/src/com/since/emp/service/DataParse.java b/src/main/java/com/since/emp/service/DataParse.java similarity index 99% rename from src/com/since/emp/service/DataParse.java rename to src/main/java/com/since/emp/service/DataParse.java index 17f2231..1998592 100644 --- a/src/com/since/emp/service/DataParse.java +++ b/src/main/java/com/since/emp/service/DataParse.java @@ -2,7 +2,6 @@ package com.since.emp.service; import java.io.*; import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.sql.Connection; @@ -25,13 +24,9 @@ import com.since.emp.service.csv.BaseFileField; import com.since.emp.service.csv.EasyFileField; import com.since.emp.service.csv.StandardFileField; import com.since.emp.service.csv.constants.Constants; -import com.since.emp.service.csv.constants.CsvDataTypeEnum; import com.since.emp.util.*; -import org.apache.commons.lang.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.apache.poi.xssf.usermodel.XSSFSheet; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.json.JSONObject; import com.alibaba.druid.pool.DruidPooledConnection; @@ -71,8 +66,6 @@ import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import net.spy.memcached.MemcachedClient; -import javax.sound.sampled.Line; - /** * DataParse 数据解析 * diff --git a/src/com/since/emp/service/OrderSync.java b/src/main/java/com/since/emp/service/OrderSync.java similarity index 100% rename from src/com/since/emp/service/OrderSync.java rename to src/main/java/com/since/emp/service/OrderSync.java diff --git a/src/com/since/emp/service/OrderSyncs.java b/src/main/java/com/since/emp/service/OrderSyncs.java similarity index 100% rename from src/com/since/emp/service/OrderSyncs.java rename to src/main/java/com/since/emp/service/OrderSyncs.java diff --git a/src/com/since/emp/service/ReOrderSync.java b/src/main/java/com/since/emp/service/ReOrderSync.java similarity index 100% rename from src/com/since/emp/service/ReOrderSync.java rename to src/main/java/com/since/emp/service/ReOrderSync.java diff --git a/src/com/since/emp/service/RefundOrderHandler.java b/src/main/java/com/since/emp/service/RefundOrderHandler.java similarity index 100% rename from src/com/since/emp/service/RefundOrderHandler.java rename to src/main/java/com/since/emp/service/RefundOrderHandler.java diff --git a/src/main/java/com/since/emp/service/ReplenishOrder.java b/src/main/java/com/since/emp/service/ReplenishOrder.java new file mode 100644 index 0000000..f60a588 --- /dev/null +++ b/src/main/java/com/since/emp/service/ReplenishOrder.java @@ -0,0 +1 @@ +package com.since.emp.service; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; import com.since.emp.newplatform.service.*; import com.since.emp.service.csv.CsvFileManageThread; import com.since.emp.service.csv.constants.Constants; import org.apache.commons.lang.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import com.alibaba.druid.pool.DruidPooledConnection; import com.since.emp.base.Config; import com.since.emp.base.DbPoolConnection; import com.since.emp.base.ImportExcelDataInfo; import com.since.emp.base.ImportParams; import com.since.emp.base.IniReader; import com.since.emp.base.OrderInfo; import com.since.emp.base.RecatchConfig; import com.since.emp.base.ReplenishInfo; import com.since.emp.base.ShopMessage; import com.since.emp.base.TradeInfo; import com.since.emp.base.constant.ProvinceConstant; import com.since.emp.base.thread.ScheduledThreadPool; import com.since.emp.base.thread.ThreadPool; import com.since.emp.exception.NoShopException; import com.since.emp.exception.TemplateException; import com.since.emp.util.ParseAddressUtil; public class ReplenishOrder extends OrderSyncs { private static final Logger logger = LogManager.getLogger(ReplenishOrder.class); private static final String EXCEL_XLS = "xls"; private static final String EXCEL_XLSX = "xlsx"; private static String config_filename = "config_all.ini"; private static String storageUpdateTime;// 库存同步更新间隔时间(分钟) private static String coverage;// 抓单统一回退时间,若有值,则统一按此时间,若无值,则按数据库设置的初始化时间 private static String import_file_path;// 导入文件路径 private static String stopStartTime;// 定时同步停止同步的起始时间 private static String stopEndTime;// 定时同步停止同步的结束时间 private static String accessKeyId;// 京东虎符鼎外APPKEY private static String secretKey;// 京东虎符鼎外APPSERCET private static String endpoint;// 京东虎符调用地址 private static String customerId;// 京东虎符客户编号 private static ThreadPoolExecutor threadPool;// 弃用executors创建线程池,改为ThreadPoolExecutors创建 private static ScheduledThreadPoolExecutor scheduledThreadPool; private static boolean readDataFlag = true;// 数据库待处理补录任务是否读取完毕标志 /** * main * * @param args */ public static void main(String[] args) { recatchConfig = new RecatchConfig(); provinceDic(); // 读取文件配置 if (initFileConfig() == false) { logger.info("[ 初始化 ] 文件读取配置失败时间->{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); return; } logger.info("[ 初始化 ] 文件读取配置成功时间->{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); // 从数据库读取各app及店铺参数 try { getConfigFromDB(); } catch (Exception e) { logger.error("[ 初始化 ] 数据库读取配置失败时间->{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); logger.error(ReplenishOrder.class, e); return; } logger.info("[ 初始化 ] 数据库读取配置成功时间->{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); if (storageUpdateTime == null || "".equals(storageUpdateTime)) { logger.info("[ 初始化 ] storageUpdateTime为空,请确认已填写!时间->{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); } storageUpdate = new StorageUpdate(config.plats, storageUpdateTime, stopStartTime, stopEndTime); storageUpdate.start(); // 数据处理类启动 dataParse = new DataParse(); dataParse.start(); submitLog = new SubmitLog(); submitLog.start(); /** * 启动补抓及导入线程 */ // threadPool = ThreadPool.getInstance(); scheduledThreadPool = ScheduledThreadPool.getInstance(); ImportTradesTread it = new ReplenishOrder().new ImportTradesTread(); scheduledThreadPool.scheduleAtFixedRate(it, 0, 10000, TimeUnit.MILLISECONDS); } /** * 补抓单及导入订单定时任务 * * @author Lewis */ private class ImportTradesTread extends Thread { @Override public void run() { try { threadPool = ThreadPool.getInstance(); if (readDataFlag) { readDataFlag = false; DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; PreparedStatement ps = null; ResultSet rs = null; ArrayList importList = new ArrayList(); String replenish_code = ""; try { conn = dbpc.getConnection(); /** * 分别布置在阿里和京东服务器,阿里负责处理除京东外的所有平台,京东服务器只负责京东的单个补抓和按时间补抓 */ String sql = ""; // if (config.plats.size() == 1) { sql = "select a.code,a.shop_code,a.platform_num,a.begin_time,a.end_time," + "a.status,a.in_path,b.platform_code,a.company_code,a.obm_company_code,a.type,c.once_max_replenish_order_count " + "from tb_replenish_order a left join tb_shop b on a.shop_code=b.code left join tb_company c on a.company_code = c.code where a.status=1"; ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while (rs.next()) { String shop_code = rs.getString("shop_code") == null ? "" : rs.getString("shop_code"); String code = rs.getString("code"); String platform_code = rs.getString("platform_code") == null ? "" : rs.getString("platform_code"); String platform_num = rs.getString("platform_num") == null ? "" : rs.getString("platform_num"); String begin_time = rs.getString("begin_time") == null ? "" : rs.getString("begin_time"); String end_time = rs.getString("end_time") == null ? "" : rs.getString("end_time"); String in_path = rs.getString("in_path") == null ? "" : rs.getString("in_path"); String company_code = rs.getString("company_code") == null ? "" : rs.getString("company_code"); String obm_company_code = rs.getString("obm_company_code") == null ? "" : rs.getString("obm_company_code"); /** * 将status为1的全部改为2 */ int type = rs.getInt("type"); int once_max_replenish_order_count = rs.getInt("once_max_replenish_order_count"); sql = "update tb_replenish_order set status = 2 where code=" + code; ps = conn.prepareStatement(sql); int result_num = ps.executeUpdate(); if (result_num == 0) { continue; } /** * 更新成功的条目加入集合 */ ImportParams ip = new ImportParams(); ip.code = code; ip.shop_code = shop_code; ip.platform_num = platform_num.trim(); ip.begin_time = begin_time; ip.end_time = end_time; ip.in_path = in_path; ip.platform_code = platform_code; ip.company_code = company_code; ip.obm_company_code = obm_company_code; ip.type = type; ip.once_max_replenish_order_count = once_max_replenish_order_count; importList.add(ip); } readDataFlag = true;// 等所有状态为1的条目更新过之后,就可以允许再次查询了 for (int i = 0; i < importList.size(); i++) { ImportParams ip = importList.get(i); replenish_code = ip.code; if (!"".equals(ip.platform_num) || (!"".equals(ip.begin_time) && !"".equals(ip.end_time))) { RecatchConfig recatchConfig = new RecatchConfig(); recatchConfig.shop_code = ip.shop_code; recatchConfig.starTime = ip.begin_time; recatchConfig.endTime = ip.end_time; recatchConfig.orderId = ip.platform_num; recatchConfig.platform_code = ip.platform_code; recatchConfig.type = ip.type; recatchConfig.once_max_replenish_order_count = ip.once_max_replenish_order_count; if (!"".equals(ip.platform_num)) { recatchConfig.type = 1; } if (!"".equals(ip.begin_time) && !"".equals(ip.end_time)) { recatchConfig.type = ip.type; } recatchConfig.replenish_code = ip.code; if ("001".equals(recatchConfig.platform_code) || "012".equals(recatchConfig.platform_code)) { recatchConfig.platform_code = "002"; } PlatConfig pc1 = new PlatConfig(); pc1 = getConfigFromDB(conn, ps, recatchConfig); if (pc1 == null) { sql = "update tb_replenish_order set result = ?,status=3 where code=" + ip.code; ps = conn.prepareStatement(sql); ps.setString(1, "店铺授权或抓单开关未开启"); ps.executeUpdate(); continue; } if (!"".equals(ip.platform_num) && ("002".equals(ip.platform_code) || "003".equals(ip.platform_code)) && !StringUtils.isNumeric(ip.platform_num)) { sql = "update tb_replenish_order set result = ?,status=3 where code=" + ip.code; ps = conn.prepareStatement(sql); ps.setString(1, "订单号格式错误,应为纯数字"); ps.executeUpdate(); continue; } RecatchOrders ro = new RecatchOrders(pc1, recatchConfig, replenish_code); threadPool.execute(ro); } /** * 如果路径不为空,则为导入操作 csv文件启动csv处理类 */ if (StringUtils.isBlank(ip.in_path)) { return; } if (ip.in_path.endsWith(Constants.CSV_FILE_SUFFIX)) { logger.info("开始解析csv文件..."); CsvFileManageThread thread = new CsvFileManageThread(import_file_path,ip); threadPool.execute(thread); } else if (ip.in_path.endsWith(EXCEL_XLS) || ip.in_path.endsWith(EXCEL_XLSX)) { ImportByExcelThread ibet = new ImportByExcelThread(ip); threadPool.execute(ibet); } } } catch (Exception e) { logger.error(ReplenishOrder.class, e); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } rs = null; } if (ps != null) { try { ps.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } ps = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } conn = null; } dbpc = null; } } } catch (Throwable e) { logger.error(ReplenishOrder.class, e); } } private class ImportByExcelThread extends Thread { XSSFWorkbook workbook; ImportParams ip; public ImportByExcelThread(ImportParams ip) { this.ip = ip; } @Override public void run() { importByExcel(); } public synchronized void importByExcel() { // String replenish_code = ip.code; FileInputStream is = null; ImportExcelDataInfo standardMode2ReadExcel = null; ImportExcelDataInfo simpleMode2ReadExcel = null; ImportExcelDataInfo ddMode2ReadExcel = null; ArrayList list = null; ArrayList tradeList; int templateStatus = 0;// 建议模式:1,标准模式:2,滴滴:3 try { File excelFile = new File(import_file_path + ip.in_path); // 创建文件对象 // // 创建文件对象 logger.info("开始导入文件,文件路径:{}", import_file_path + ip.in_path); is = new FileInputStream(excelFile); // 文件流 checkExcelVaild(excelFile); workbook = new XSSFWorkbook(is); String out_path = ip.in_path.trim().replace(".xlsx", "_error.xlsx"); logger.info("错误文件的输出路径:{}", import_file_path + out_path); /** * 将文件复制一份 */ copyFile(new File(import_file_path + ip.in_path), new File(import_file_path + out_path)); /** * 设置当前excel中sheet的下标:0开始 */ Sheet sheet = workbook.getSheetAt(0); // 遍历第一个Sheet // 总行数 int rowLength = sheet.getLastRowNum() + 1; // 工作表的行 Row row = sheet.getRow(0); // 总列数,取第二行的数据 int colLength = sheet.getRow(2).getLastCellNum() + 1; // 得到指定的单元格 Cell cell = row.getCell(0); // 获取0,0坐标的单元格,得到模板的模式 String templateType = cell.getStringCellValue().trim(); if ("简易".equals(templateType)) { templateStatus = 1; simpleMode2ReadExcel = simpleMode2ReadExcel(sheet, row, rowLength, colLength, cell, out_path, ip); list = simpleMode2ReadExcel.getList(); tradeList = simpleMode2ReadExcel.getTradeList(); if (simpleMode2ReadExcel.getErrorRow() > 0) { throw new Exception(); } } else if ("".equals(templateType)) { templateStatus = 2; standardMode2ReadExcel = standardMode2ReadExcel(sheet, row, rowLength, colLength, cell, out_path, ip); list = standardMode2ReadExcel.getList(); tradeList = standardMode2ReadExcel.getTradeList(); if (standardMode2ReadExcel.getErrorRow() > 0) { throw new Exception(); } } else if ("滴滴".equals(templateType)) { templateStatus = 3; ddMode2ReadExcel = ddMode2ReadExcel(sheet, row, rowLength, colLength, cell, out_path, ip); list = ddMode2ReadExcel.getList(); tradeList = ddMode2ReadExcel.getTradeList(); if (ddMode2ReadExcel.getErrorRow() > 0) { throw new Exception(); } } else { throw new TemplateException("没有在第一行的第一个单元格设置类型"); } /** * 读取文件,倒序从表格的底部开始删除没有问题的行 */ int error_count = 0; XSSFWorkbook xw = null; FileInputStream fis = null; XSSFSheet xs = null; FileOutputStream fos = null; try { fis = new FileInputStream(import_file_path + out_path); xw = new XSSFWorkbook(fis); xs = xw.getSheetAt(0); boolean original_falg = false; for (int l = list.size() - 1; l >= 0; l--) { ReplenishInfo ri = list.get(l); if (!ri.error_flag && !original_falg) { removeRow(xs, ri.row_num); } else { error_count++; original_falg = !ri.original_trade; if (!"".equals(ri.error_msg)) { xs.getRow(ri.row_num).createCell(colLength + 1); xs.getRow(ri.row_num).getCell(colLength + 1).setCellValue(ri.error_msg); } } } fos = new FileOutputStream(import_file_path + out_path); xw.write(fos); } catch (Exception e) { e.printStackTrace(); } finally { if (xw != null) { xw.close(); } xw = null; if (fis != null) { fis.close(); } fis = null; if (fos != null) { fos.close(); } fos = null; } int tradeListSize = tradeList.size(); if (tradeListSize == 0) { if (error_count == 0) { if (rowLength <= 3) { OrderSyncs.updateReplenishResult(ip.code, "失败", "文件为空"); } else { OrderSyncs.updateReplenishResult(ip.code, "成功", ""); } } else { OrderSyncs.updateReplenishResult(ip.code, "失败", out_path); } } for (int j = 0; j < tradeListSize; j++) { TradeInfo trade = tradeList.get(j); // 补充设置订单的导入模式 if (templateStatus == 1) { trade.templateStatus = 1; } if (templateStatus == 2) { trade.templateStatus = 2; } if (templateStatus == 3) { trade.templateStatus = 3; } trade.out_path = import_file_path + out_path; trade.export_file_path = import_file_path + ip.in_path; OrderSyncs.dataParse.tradeQueue.add(trade); if (j == tradeListSize - 1) { if (error_count == 0) { OrderSyncs.updateReplenishResult(ip.code, "成功", ""); } else { OrderSyncs.updateReplenishResult(ip.code, "失败", out_path); } } } } catch (NoShopException e) { OrderSyncs.updateReplenishResult(ip.code, e.getMessage(), ""); logger.error(ReplenishOrder.class, e); } catch (TemplateException e) { OrderSyncs.updateReplenishResult(ip.code, e.getMessage(), ""); logger.error(ReplenishOrder.class, e); } catch (FileNotFoundException e) { OrderSyncs.updateReplenishResult(ip.code, "没有找到提交的表格文件,请联系ERP供应商", ""); logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(this, e); switch (templateStatus) { case 1: OrderSyncs.updateReplenishResult(ip.code, "订单表第[" + simpleMode2ReadExcel.getErrorRow() + "]行的数据[" + standardMode2ReadExcel.getErrorTitle() + "]数据异常,请检查后重试!", ""); break; case 2: OrderSyncs.updateReplenishResult(ip.code, "订单表第[" + standardMode2ReadExcel.getErrorRow() + "]行的数据[" + standardMode2ReadExcel.getErrorTitle() + "]数据异常,请检查后重试!", ""); break; case 3: OrderSyncs.updateReplenishResult(ip.code, "订单表第[" + ddMode2ReadExcel.getErrorRow() + "]行的数据[" + standardMode2ReadExcel.getErrorTitle() + "]数据异常,请检查后重试!", ""); break; default: break; } } finally { if (is != null) { try { is.close(); } catch (IOException e) { logger.error(this, e); } } if (workbook != null) { try { workbook.close(); } catch (IOException e) { logger.error(this, e); } } } } } /** * @Description: 解析标准模式的订单模板 * @Title: standardMode2ReadExcel * @author Lewis * @param sheet * @param row * @param rowLength * @param colLength * @param cell * @param out_path * @param ip * @return 封装的对象 */ private ImportExcelDataInfo standardMode2ReadExcel(Sheet sheet, Row row, int rowLength, int colLength, Cell cell, String out_path, ImportParams ip) { ImportExcelDataInfo importExcelDataInfo = new ImportExcelDataInfo(); TradeInfo tradeInfo = null; ArrayList list = new ArrayList(); boolean file_error_flag = false;// 文件中是否有错误 ArrayList tradeList = new ArrayList(); NumberFormat nf = NumberFormat.getInstance(); String errorTitle = ""; // 记录错误行号 int errorRow = 0; try { for (int k = 3; k < rowLength; k++) { row = sheet.getRow(k); errorRow = k + 1; if (null == row) { continue; } /** * 第一行如果没有shop_code,那么属于错误数据,直到有shop_code才能开始写入, * 如果前一行已经有了shop_code,后面没有,那么属于商品子条目 */ // 开始判断当前行 if (null == row.getCell(1) || "BLANK".equals(row.getCell(1).getCellTypeEnum().toString())) { /** * 当前订单为新订单但是没有店铺编号 */ if ("EffectiveValue".equals(checkCellValue(row, 3)) || "EffectiveValue".equals(checkCellValue(row, 4)) || "EffectiveValue".equals(checkCellValue(row, 5)) || "EffectiveValue".equals(checkCellValue(row, 6)) || "EffectiveValue".equals(checkCellValue(row, 7)) || "EffectiveValue".equals(checkCellValue(row, 9)) || "EffectiveValue".equals(checkCellValue(row, 12)) || "EffectiveValue".equals(checkCellValue(row, 13)) || "EffectiveValue".equals(checkCellValue(row, 14)) || "EffectiveValue".equals(checkCellValue(row, 15)) || "EffectiveValue".equals(checkCellValue(row, 17)) || "EffectiveValue".equals(checkCellValue(row, 31))) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "有必填项为空,如果该行是空的,请删除"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; continue; } /** * 当前订单为新订单但是没有店铺编码 */ if (tradeInfo == null || file_error_flag) { ReplenishInfo ri = new ReplenishInfo(); if (tradeInfo == null) { ri.original_trade = true; ri.error_msg = "订单没有店铺编码"; } ri.row_num = k; ri.error_flag = true; list.add(ri); continue; } /** * 没有平台商家编码 当前订单为新订单 将上一条订单信息提交 * */ if (row.getCell(34) == null || "BLANK".equals(row.getCell(34).getCellTypeEnum().toString())) { /** * TODO * * 订单提交到集合处理 * * */ ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "有必填项为空,如果该行是空的,请删除"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; continue; } tradeInfo.orders = Arrays.copyOf(tradeInfo.orders, tradeInfo.orders.length + 1); tradeInfo.orders[tradeInfo.orders.length - 1] = new OrderInfo(); tradeInfo.orders[tradeInfo.orders.length - 1].discount_fee = "0"; tradeInfo.orders[tradeInfo.orders.length - 1].adjust_fee = "0"; boolean breakFlag = false; for (int j = 0; j < colLength; j++) { cell = row.getCell(j); // Row row2 = sheet.getRow(2); // Cell cell2 = row2.getCell(j); // errorTitle = cell2.getStringCellValue(); switch (j) { case 34: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code = row .getCell(j).getStringCellValue().trim(); if ("".equals( tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "平台商家处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code = nf .format(row.getCell(j).getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "平台商家编码格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有平台商家编码"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } break; case 35: tradeInfo.orders[tradeInfo.orders.length - 1].title = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].title = row.getCell(j) .getStringCellValue().trim(); } } break; case 36: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].price = nf .format(row.getCell(j).getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[tradeInfo.orders.length - 1].price = row.getCell(j) .getStringCellValue().trim(); if (!StringUtils .isNumeric(tradeInfo.orders[tradeInfo.orders.length - 1].price)) { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有商品金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } break; case 37: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].num = (int) row.getCell(j) .getNumericCellValue(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品数量格式"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有商品数量"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } tradeInfo.orders[tradeInfo.orders.length - 1].total_fee = String .valueOf(Double.valueOf(tradeInfo.orders[tradeInfo.orders.length - 1].price) * tradeInfo.orders[tradeInfo.orders.length - 1].num); break; case 38: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = nf .format(row.getCell(j).getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = row.getCell(j) .getStringCellValue().trim(); if (!StringUtils.isNumeric( tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } tradeInfo.orders[tradeInfo.orders.length - 1].payment = tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有商品金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } break; default: break; } // 如果上面表格内容有异常值则退出本次循环 if (breakFlag) { break; } if (j == colLength - 1) { addList(list, k, false); } } } else { /** * TODO bug 若订单第一行信息正确 但是在接下来的商品信息有误时会将上一条有问题的订单添加至队列 删除信息时会将正确的订单信息行删除 * * * 如果该行的店铺编码不为空,上一个订单已经读取完毕,当前读取的是一条新的订单信息,将上一个订单放入集合 * * * 有多种商品的订单 || 只有一种商品的订单 */ if (tradeInfo != null) { tradeList.add(tradeInfo); } tradeInfo = new TradeInfo(); file_error_flag = false; tradeInfo.orders = new OrderInfo[1]; tradeInfo.orders[0] = new OrderInfo(); tradeInfo.orders[0].discount_fee = "0"; tradeInfo.orders[0].total_fee = "0"; tradeInfo.orders[0].adjust_fee = "0"; tradeInfo.orders[0].sku_id = ""; tradeInfo.post_fee = "0"; tradeInfo.trade_type2 = 2; tradeInfo.row_num = k; tradeInfo.export_file_path = import_file_path; tradeInfo.out_path = out_path; tradeInfo.replenish_code = ip.code; // 循环结束标志 boolean breakFlag = false; sign_row: for (int j = 1; j < colLength; j++) { cell = row.getCell(j); // Row row2 = sheet.getRow(2); // Cell cell2 = row2.getCell(j); // errorTitle = cell2.getStringCellValue(); switch (j) { case 1: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.shop_code = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.shop_code = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.shop_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码格式错误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有店铺编码"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } // Druid连接池管理数据库连接 DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = dbpc.getConnection(); String sql = "select a.order_sync_lock_flag,a.order_sync_lock_keyword,a.storage_code,a.platform_code,a.delivery_mode_id,a.company_code,b.type from tb_shop a,tb_company b where a.code=? and a.company_code=b.code"; ps = conn.prepareStatement(sql); ps.setString(1, tradeInfo.shop_code); rs = ps.executeQuery(); if (rs.next()) { tradeInfo.company_code = rs.getString("company_code"); if (!ip.company_code.equals(tradeInfo.company_code) && !ip.obm_company_code.equals(tradeInfo.company_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码不存在或不属于该公司"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break sign_row; } tradeInfo.delivery_mode_id = rs.getInt("delivery_mode_id"); tradeInfo.storage_code = rs.getString("storage_code"); tradeInfo.company_type = rs.getInt("type"); tradeInfo.obm_company_code = ""; tradeInfo.platform_code = rs.getString("platform_code"); tradeInfo.shopMessage = new ShopMessage(); int orderSyncLockFlag = rs.getInt("order_sync_lock_flag"); String orderSyncLocKeyword = rs.getString("order_sync_lock_keyword") == null ? "" : rs.getString("order_sync_lock_keyword"); tradeInfo.shopMessage.setOrder_sync_lock_flag(orderSyncLockFlag); tradeInfo.shopMessage.setOrder_sync_lock_keyword(orderSyncLocKeyword); if ("001".equals(tradeInfo.platform_code) || "012".equals(tradeInfo.platform_code)) { tradeInfo.platform_code = "002"; } if ("002".equals(tradeInfo.platform_code)) { tradeInfo.trade_type = "taobao_trade_TradeBuyerPay"; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码不存在"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } catch (Exception e) { logger.error(ReplenishOrder.class, e); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } rs = null; } if (ps != null) { try { ps.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } ps = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } conn = null; } dbpc = null; } break; case 2: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tid = nf.format(cell.getNumericCellValue()).replace(",", "").trim(); } else { tradeInfo.tid = cell.getStringCellValue().trim(); } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有平台订单号"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 3: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.product_fee = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { tradeInfo.product_fee = cell.getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.product_fee)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单总金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有订单总金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 4: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.num = (int) cell.getNumericCellValue(); } else { if (StringUtils.isNumeric(cell.getStringCellValue())) { tradeInfo.num = Integer.valueOf(cell.getStringCellValue().trim()); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单数量不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有订单商品总数"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 5: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.money = nf.format(cell.getNumericCellValue()).replace(",", "").trim(); } else { tradeInfo.money = cell.getStringCellValue(); if (!StringUtils.isNumeric(tradeInfo.money)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单实收金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } tradeInfo.pay_money = tradeInfo.money; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有实收金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 6: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.discount_fee = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { tradeInfo.discount_fee = cell.getStringCellValue(); if (!StringUtils.isNumeric(tradeInfo.discount_fee)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单优惠金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } tradeInfo.adjust_fee = "0"; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有优惠金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 7: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.pay_time = sdf .format(cell.getDateCellValue()); } else if ("STRING".equals(cell.getCellTypeEnum().toString())){ try { String payTime = cell.getStringCellValue().trim(); sdf.parse(payTime); tradeInfo.pay_time = payTime; } catch (Exception e) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有付款时间"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 8: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.created = sdf .format(cell.getDateCellValue()); } else if ("STRING".equals(cell.getCellTypeEnum().toString())){ try { String payTime = cell.getStringCellValue().trim(); sdf.parse(payTime); tradeInfo.pay_time = payTime; } catch (Exception e) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "创建时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { tradeInfo.created = tradeInfo.pay_time; } break; case 9: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_name)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人姓名"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 10: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_phone = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_phone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_phone = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { tradeInfo.receiver_phone = ""; } break; case 11: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString()) && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_mobile)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人手机处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人手机格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } if (null == tradeInfo.receiver_mobile) { tradeInfo.receiver_mobile = ""; } if (!checkMobileNumber(tradeInfo.receiver_mobile) && !"".equals(tradeInfo.receiver_mobile)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人手机格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 tradeInfo.receiver_mobile = ""; } if ("".equals(tradeInfo.receiver_phone) && "".equals(tradeInfo.receiver_mobile)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人手机和电话不能同时为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } if ("".equals(tradeInfo.receiver_phone)) { tradeInfo.receiver_phone = null; } if ("".equals(tradeInfo.receiver_mobile)) { tradeInfo.receiver_mobile = null; } break; case 12: tradeInfo.receiver_country = "中国"; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_state = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_state)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货省份处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } tradeInfo.receiver_state = tradeInfo.receiver_state.trim(); int unknowPrivinceCount = 0; boolean errorPrivinceFlag = false; for (Entry privinceEntry : ProvinceConstant.privince .entrySet()) { String privinceName = privinceEntry.getKey(); if (privinceName.indexOf(tradeInfo.receiver_state) > -1) { if (privinceName.equals(tradeInfo.receiver_state)) { break; } else { errorPrivinceFlag = true; ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货省份请写入标准格式:" + privinceName; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 统计省份未匹配的次数 unknowPrivinceCount++; } } // 省份书写不完整 if (errorPrivinceFlag) { break; } if (unknowPrivinceCount == ProvinceConstant.privince.size()) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "请选择标准格式的省级名称:\"北京\",\"上海\",\"天津\",\"重庆\",\"辽宁省\",\"湖北省\",\"山西省\",\"福建省\",\"青海省\",\"江西省\",\"河南省\",\"浙江省\",\"吉林省\",\"安徽省\",\"海南省\",\"四川省\",\"黑龙江省\",\"云南省\",\"贵州省\",\"江苏省\",\"陕西省\",\"广东省\",\"河北省\",\"湖南省\",\"甘肃省\",\"山东省\",\"西藏自治区\",\"广西壮族自治区\",\"宁夏回族自治区\",\"新疆维吾尔自治区\",\"内蒙古自治区\",\"香港特别行政区\",\"澳门特别行政区\",\"台湾\",\"海外\""; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人所在省份格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人所在省份"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 13: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_city = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_city)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货城市处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人所在城市格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人城市"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } break; case 14: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_district = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_district)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货区县处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人区/县格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人区/县"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 15: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_address = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_address)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货详细地址处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人详细地址格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } tradeInfo.receiver_address = tradeInfo.receiver_state + " " + tradeInfo.receiver_city + " " + tradeInfo.receiver_district + " " + tradeInfo.receiver_address; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人详细地址"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } break; case 16: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_zip = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人邮编格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } } else { tradeInfo.receiver_zip = ""; } break; case 17: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.post_fee = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "运费格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "运费为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 18: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_type = (int) cell.getNumericCellValue(); if (tradeInfo.invoice_type == 0) { tradeInfo.invoice_content = ""; tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.tax_id = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; } else { if (tradeInfo.invoice_type != 5 && tradeInfo.invoice_type != 6 && tradeInfo.invoice_type != 7) { tradeInfo.invoice_type = 0; tradeInfo.invoice_content = ""; tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.tax_id = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; } } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票类型格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } } else { tradeInfo.invoice_type = 0; tradeInfo.invoice_content = ""; tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.tax_id = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; } break; case 27: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.status = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.status)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单状态处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单状态格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有订单状态"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 28: tradeInfo.title = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.title = cell.getStringCellValue().trim(); } } break; case 29: tradeInfo.type = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.type = row.getCell(j).getStringCellValue().trim(); } } break; case 30: tradeInfo.buyer_message = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.buyer_message = cell.getStringCellValue().trim(); } } break; case 31: tradeInfo.seller_memo = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.seller_memo = cell.getStringCellValue().trim(); } } break; case 32: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.test_flag = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.test_flag)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "是否测试选项处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } if (!"是".equals(tradeInfo.test_flag) && !"否".equals(tradeInfo.test_flag)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "是否测试选项输入有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "是否测试选项输入有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "是否测试选项为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 34: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.orders[0].platform_seller_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = nf.format(cell.getNumericCellValue()) .replace(",", ""); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 35: tradeInfo.orders[0].title = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].title = cell.getStringCellValue().trim(); } } break; case 36: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].price = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[0].price = cell.getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.orders[0].price)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 37: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].num = (int) cell.getNumericCellValue(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } tradeInfo.orders[0].total_fee = String .valueOf(Double.valueOf(tradeInfo.orders[0].price) * tradeInfo.orders[0].num); break; case 38: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = nf .format(cell.getNumericCellValue()).replace(",", ""); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = cell .getStringCellValue().trim(); if (!StringUtils.isNumeric( tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } tradeInfo.orders[tradeInfo.orders.length - 1].payment = tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; default: break; } // 有异常值退出循环 if (breakFlag) { break; } if (tradeInfo.invoice_type == 5 || tradeInfo.invoice_type == 6) { tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; boolean invoiceBreakFlag = false; switch (j) { case 19: tradeInfo.invoice_content = ""; tradeInfo.tax_id = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_title = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_title)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 20: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tax_id = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.tax_id)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "纳税人识别号处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tax_id = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "纳税人识别号格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 21: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_content = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_content)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 26: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_money = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.invoice_money = cell.getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.invoice_money)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } break; default: break; } if (invoiceBreakFlag) { break; } } if (tradeInfo.invoice_type == 7) { // 异常值退出标志 boolean invoiceBreakFlag = false; switch (j) { case 19: tradeInfo.invoice_content = ""; tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.tax_id = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_title = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_title)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票抬头格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; invoiceBreakFlag = true; break; } } break; case 20: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tax_id = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.tax_id)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "纳税人识别号处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tax_id = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "纳税人识别号格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 21: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_content = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_content)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票信息处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票信息格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; invoiceBreakFlag = true; break; } } break; case 22: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_email = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_email)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收邮箱处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } if (!checkEmail(tradeInfo.invoice_email)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收邮箱格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_email = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); if (!checkEmail(tradeInfo.invoice_email)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收邮箱格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收邮箱格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 23: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_phone = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.invoice_phone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收手机处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } if (!checkMobileNumber(tradeInfo.invoice_phone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收手机格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_phone = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); if (!checkMobileNumber(tradeInfo.invoice_phone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收手机格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "发票接收手机格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 24: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.address_telephone = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.address_telephone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "增值税发票地址、电话信息处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "增值税发票地址、电话信息格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 25: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.bank_of_deposit_account_number = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.bank_of_deposit_account_number)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "增值税发票开户行及账号信息处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "增值税发票开户行及账号信息格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } break; case 26: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.invoice_money = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.invoice_money = cell.getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.invoice_money)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "开票金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; invoiceBreakFlag = true; break; } break; default: break; } if (invoiceBreakFlag) { break; } } if (j == colLength - 1) { // 记录没有错误的 list = addList(list, k, true); } } } /** * TODO 当前为最后一行订单数据 添加至队列 */ if (tradeInfo != null && tradeInfo.pay_time != null && k == rowLength - 1) { tradeList.add(tradeInfo); } } } catch (Exception e) { importExcelDataInfo.setErrorRow(errorRow); importExcelDataInfo.setErrorTitle(errorTitle); logger.error(this, e); } importExcelDataInfo.setList(list); importExcelDataInfo.setTradeList(tradeList); return importExcelDataInfo; } /** * @Description: 解析简易模式的订单模板 * @Title: standardMode2ReadExcel * @author Lewis * @param sheet * @param row * @param rowLength * @param colLength * @param cell * @param out_path * @param ip * @return 封装的对象 */ private ImportExcelDataInfo simpleMode2ReadExcel(Sheet sheet, Row row, int rowLength, int colLength, Cell cell, String out_path, ImportParams ip) throws Exception { ImportExcelDataInfo importExcelDataInfo = new ImportExcelDataInfo(); TradeInfo tradeInfo = null; ArrayList list = new ArrayList(); boolean file_error_flag = false;// 文件中是否有错误 ArrayList tradeList = new ArrayList(); NumberFormat nf = NumberFormat.getInstance(); String errorTitle = ""; // 记录错误行号 int errorRow = 0; try { for (int k = 2; k < rowLength; k++) { row = sheet.getRow(k); errorRow = k + 1; if (null == row) { continue; } // TradeInfo tradeInfo = null; /** * 第一行如果没有shop_code,那么属于错误数据,直到有shop_code才能开始写入, * 如果前一行已经有了shop_code,后面没有,那么属于商品子条目 */ // 开始判断当前行 if (null == row.getCell(1) || "BLANK".equals(row.getCell(1).getCellTypeEnum().toString())) { /** * 当前订单为新订单但是没有店铺编号 */ if ("EffectiveValue".equals(checkCellValue(row, 2)) || "EffectiveValue".equals(checkCellValue(row, 4)) || "EffectiveValue".equals(checkCellValue(row, 5)) || "EffectiveValue".equals(checkCellValue(row, 6)) || "EffectiveValue".equals(checkCellValue(row, 7))) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "有必填项为空,如果该行是空的,请删除"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; continue; } /** * 当前订单为新订单但是没有店铺编码 */ if (tradeInfo == null || file_error_flag) { ReplenishInfo ri = new ReplenishInfo(); if (tradeInfo == null) { ri.original_trade = true; ri.error_msg = "订单没有店铺编码"; } ri.row_num = k; ri.error_flag = true; list.add(ri); continue; } /** * 没有平台商家编码 当前订单为新订单 将上一条订单信息提交 * */ if (row.getCell(9) == null || "BLANK".equals(row.getCell(9).getCellTypeEnum().toString())) { /** * TODO * * 订单提交到集合处理 * * */ if (tradeInfo != null) { tradeList.add(tradeInfo); } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "有必填项为空,如果该行是空的,请删除"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; continue; } tradeInfo.orders = Arrays.copyOf(tradeInfo.orders, tradeInfo.orders.length + 1); tradeInfo.orders[tradeInfo.orders.length - 1] = new OrderInfo(); tradeInfo.orders[tradeInfo.orders.length - 1].discount_fee = "0"; tradeInfo.orders[tradeInfo.orders.length - 1].adjust_fee = "0"; boolean breakFlag = false; for (int j = 0; j < colLength; j++) { cell = row.getCell(j); switch (j) { case 9: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code = row .getCell(j).getStringCellValue().trim(); tradeInfo.orders[tradeInfo.orders.length - 1].title = ""; if ("".equals( tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "平台商家处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].platform_seller_code = nf .format(row.getCell(j).getNumericCellValue()).replace(",", "").trim(); tradeInfo.orders[tradeInfo.orders.length - 1].title = ""; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "平台商家编码格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有平台商家编码"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } break; case 10: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].num = (int) row.getCell(j) .getNumericCellValue(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品数量格式"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有商品数量"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } break; case 11: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = nf.format(row.getCell(j).getNumericCellValue()) .replace(",", "").trim(); // tradeInfo.orders[tradeInfo.orders.length // - 1].price = String.valueOf(new BigDecimal(tradeInfo.orders[tradeInfo.orders.length // - 1].divide_order_fee).divide(new BigDecimal(tradeInfo.orders[tradeInfo.orders.length - 1].num))); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = row.getCell(j).getStringCellValue().trim(); if (!StringUtils .isNumeric(tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee)) { ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.error_msg = "没有商品金额"; ri.row_num = k; ri.error_flag = true; list.add(ri); tradeInfo = null; breakFlag = true; break; } // tradeInfo.orders[tradeInfo.orders.length // - 1].payment = tradeInfo.orders[tradeInfo.orders.length - 1].total_fee = String // .valueOf(Double // .valueOf(tradeInfo.orders[tradeInfo.orders.length - 1].price) // * tradeInfo.orders[tradeInfo.orders.length - 1].num); break; default: break; } // 如果上面表格内容有异常值则退出本次循环 if (breakFlag) { break; } if (j == colLength - 1) { addList(list, k, false); } } } else { /** * TODO bug 若订单第一行信息正确 但是在接下来的商品信息有误时会将上一条有问题的订单添加至队列 删除信息时会将正确的订单信息行删除 * * * 如果该行的店铺编码不为空,上一个订单已经读取完毕,当前读取的是一条新的订单信息,将上一个订单放入集合 * * * 有多种商品的订单 || 只有一种商品的订单 */ if (tradeInfo != null) { tradeList.add(tradeInfo); } tradeInfo = new TradeInfo(); file_error_flag = false; tradeInfo.orders = new OrderInfo[1]; tradeInfo.orders[0] = new OrderInfo(); tradeInfo.orders[0].discount_fee = "0"; tradeInfo.orders[0].total_fee = "0"; tradeInfo.orders[0].adjust_fee = "0"; tradeInfo.orders[0].sku_id = ""; tradeInfo.post_fee = "0"; tradeInfo.trade_type2 = 2; tradeInfo.row_num = k; tradeInfo.export_file_path = import_file_path; tradeInfo.out_path = out_path; tradeInfo.replenish_code = ip.code; // 循环结束标志 boolean breakFlag = false; sign_row: for (int j = 1; j < colLength; j++) { cell = row.getCell(j); switch (j) { case 1: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.shop_code = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.shop_code = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.shop_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码格式错误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有店铺编码"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } // Druid连接池管理数据库连接 DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = dbpc.getConnection(); String sql = "select a.order_sync_lock_flag,a.order_sync_lock_keyword,a.storage_code,a.platform_code,a.delivery_mode_id,a.company_code,b.type from tb_shop a,tb_company b where a.code=? and a.company_code=b.code"; ps = conn.prepareStatement(sql); ps.setString(1, tradeInfo.shop_code); rs = ps.executeQuery(); if (rs.next()) { tradeInfo.company_code = rs.getString("company_code"); if (!ip.company_code.equals(tradeInfo.company_code) && !ip.obm_company_code.equals(tradeInfo.company_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码不存在或不属于该公司"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break sign_row; } tradeInfo.delivery_mode_id = rs.getInt("delivery_mode_id"); tradeInfo.storage_code = rs.getString("storage_code"); tradeInfo.company_type = rs.getInt("type"); tradeInfo.obm_company_code = ""; tradeInfo.platform_code = rs.getString("platform_code"); tradeInfo.shopMessage = new ShopMessage(); int orderSyncLockFlag = rs.getInt("order_sync_lock_flag"); String orderSyncLocKeyword = rs.getString("order_sync_lock_keyword") == null ? "" : rs.getString("order_sync_lock_keyword"); tradeInfo.shopMessage.setOrder_sync_lock_flag(orderSyncLockFlag); tradeInfo.shopMessage.setOrder_sync_lock_keyword(orderSyncLocKeyword); if ("001".equals(tradeInfo.platform_code) || "012".equals(tradeInfo.platform_code)) { tradeInfo.platform_code = "002"; } if ("002".equals(tradeInfo.platform_code)) { tradeInfo.trade_type = "taobao_trade_TradeBuyerPay"; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "店铺编码不存在"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } catch (Exception e) { logger.error(ReplenishOrder.class, e); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } rs = null; } if (ps != null) { try { ps.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } ps = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } conn = null; } dbpc = null; } break; case 2: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tid = nf.format(cell.getNumericCellValue()).replace(",", "").trim(); } else { tradeInfo.tid = cell.getStringCellValue().trim(); } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有平台订单号"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 3: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.pay_time = sdf .format(cell.getDateCellValue()); } else if ("STRING".equals(cell.getCellTypeEnum().toString())){ try { String payTime = cell.getStringCellValue().trim(); sdf.parse(payTime); tradeInfo.pay_time = payTime; } catch (Exception e) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } }else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有付款时间"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 4: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_name)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人姓名"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 5: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = tradeInfo.receiver_phone = cell.getStringCellValue() .trim(); if ("".equals(tradeInfo.receiver_phone)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = tradeInfo.receiver_phone = nf .format(cell.getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人电话号码"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 6: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_address = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_address)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货详细地址处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } Map addressMap = ParseAddressUtil .getTextRecognitionInfo(tradeInfo.receiver_address); if (addressMap.size() == 4) { tradeInfo.receiver_country = "中国"; tradeInfo.receiver_state = addressMap.get("province"); tradeInfo.receiver_city = addressMap.get("city"); tradeInfo.receiver_district = addressMap.get("county"); } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "根据详细地址解析省市区失败"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人详细地址格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人详细地址"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 7: tradeInfo.buyer_message = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.buyer_message = cell.getStringCellValue().trim(); } } break; case 8: tradeInfo.seller_memo = ""; if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.seller_memo = cell.getStringCellValue().trim(); } } break; case 9: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = cell.getStringCellValue().trim(); tradeInfo.orders[0].title = ""; if ("".equals(tradeInfo.orders[0].platform_seller_code)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = nf.format(cell.getNumericCellValue()) .replace(",", ""); tradeInfo.orders[0].title = ""; } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品编码为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 10: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].num = (int) cell.getNumericCellValue(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 11: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = nf .format(cell.getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[tradeInfo.orders.length - 1].divide_order_fee = cell .getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.orders[0].divide_order_fee)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } // tradeInfo.orders[0].payment = tradeInfo.orders[0].total_fee = String // .valueOf(Double.valueOf(tradeInfo.orders[0].price) * tradeInfo.orders[0].num); break; default: break; } // 有异常值退出循环 if (breakFlag) { break; } if (j == colLength - 1) { // 记录没有错误的 list = addList(list, k, true); } } } /** * TODO 当前为最后一行订单数据 添加至队列 */ if (tradeInfo != null && tradeInfo.pay_time != null && k == rowLength - 1) { tradeList.add(tradeInfo); } } } catch (Exception e) { importExcelDataInfo.setErrorRow(errorRow); importExcelDataInfo.setErrorTitle(errorTitle); logger.error(this, e); } importExcelDataInfo.setList(list); // 补齐tradeList中的tradeInfo的订单信息 for (int i = 0; i < tradeList.size(); i++) { TradeInfo fullTradeInfo = tradeList.get(i); OrderInfo[] orders = fullTradeInfo.orders; for (OrderInfo fullOrderInfo : orders) { BigDecimal bigDecimal1 = new BigDecimal(fullOrderInfo.divide_order_fee); fullOrderInfo.price = String.valueOf(new BigDecimal(fullOrderInfo.divide_order_fee).divide(new BigDecimal(fullOrderInfo.num),BigDecimal.ROUND_HALF_UP)); fullOrderInfo.payment = fullOrderInfo.total_fee = fullOrderInfo.divide_order_fee; BigDecimal bigDecimal2 = new BigDecimal( (fullTradeInfo.product_fee == null || "".equals(fullTradeInfo.product_fee)) ? "0" : fullTradeInfo.product_fee); fullTradeInfo.pay_money = fullTradeInfo.money = fullTradeInfo.product_fee = bigDecimal1 .add(bigDecimal2).toString(); fullTradeInfo.num = fullTradeInfo.num + fullOrderInfo.num; } fullTradeInfo.discount_fee = "0"; fullTradeInfo.adjust_fee = "0"; fullTradeInfo.receiver_zip = ""; fullTradeInfo.post_fee = "0"; fullTradeInfo.invoice_type = 0; fullTradeInfo.invoice_content = ""; fullTradeInfo.invoice_phone = ""; fullTradeInfo.invoice_email = ""; fullTradeInfo.tax_id = ""; fullTradeInfo.address_telephone = ""; fullTradeInfo.bank_of_deposit_account_number = ""; fullTradeInfo.created = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); fullTradeInfo.status = "未发货"; fullTradeInfo.title = ""; fullTradeInfo.type = "fixed"; fullTradeInfo.test_flag = "否"; } importExcelDataInfo.setTradeList(tradeList); return importExcelDataInfo; } /** * @Description: 解析滴滴模式的订单模板 * @Title: standardMode2ReadExcel * @author Lewis * @param sheet * @param row * @param rowLength * @param colLength * @param cell * @param out_path * @param ip * @return 封装的对象 * @throws NoShopException */ private ImportExcelDataInfo ddMode2ReadExcel(Sheet sheet, Row row, int rowLength, int colLength, Cell cell, String out_path, ImportParams ip) throws Exception { ImportExcelDataInfo importExcelDataInfo = new ImportExcelDataInfo(); ArrayList list = new ArrayList(); boolean file_error_flag = false;// 文件中是否有错误 ArrayList tradeList = new ArrayList(); NumberFormat nf = NumberFormat.getInstance(); String errorTitle = ""; // 记录错误行号 int errorRow = 0; try { for (int k = 2; k < rowLength; k++) { TradeInfo tradeInfo = new TradeInfo(); tradeInfo = getImportShopMessage(tradeInfo, ip); row = sheet.getRow(k); errorRow = k + 1; if (null == row) { continue; } file_error_flag = false; tradeInfo.orders = new OrderInfo[1]; tradeInfo.orders[0] = new OrderInfo(); boolean breakFlag = false; for (int j = 0; j < colLength; j++) { cell = row.getCell(j); switch (j) { case 0: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = nf.format(cell.getNumericCellValue()) .replace(",", "").trim(); } else if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].platform_seller_code = cell.getStringCellValue().trim(); } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品id格式错误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有设置商品id"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 1: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.tid = nf.format(cell.getNumericCellValue()).replace(",", "").trim(); } else { tradeInfo.tid = cell.getStringCellValue().trim(); } } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有平台订单号"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 2: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.pay_time = sdf .format(cell.getDateCellValue()); } else if ("STRING".equals(cell.getCellTypeEnum().toString())){ try { String payTime = cell.getStringCellValue().trim(); sdf.parse(payTime); tradeInfo.pay_time = payTime; } catch (Exception e) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "付款时间格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有付款时间"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 3: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].title = cell.getStringCellValue().trim(); } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].title = nf.format(cell.getNumericCellValue()).replace(",", ""); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品标题格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { tradeInfo.orders[0].title = ""; } break; case 6: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { if (isDouble(cell.getStringCellValue())) { tradeInfo.orders[0].payment = tradeInfo.orders[0].total_fee = cell .getStringCellValue().trim(); } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.orders[0].payment = tradeInfo.orders[0].total_fee = nf .format(cell.getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 tradeInfo.orders[0].payment = tradeInfo.orders[0].total_fee = cell .getStringCellValue().trim(); if (!StringUtils.isNumeric(tradeInfo.orders[0].price)) { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额不是数字"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品金额格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 7: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.num = tradeInfo.orders[0].num = (int) cell.getNumericCellValue(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "商品数量为空"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 9: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_name)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_name = nf.format(cell.getNumericCellValue()).replace(",", "") .trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人姓名格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人姓名"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 10: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = tradeInfo.receiver_phone = cell.getStringCellValue() .trim(); if ("".equals(tradeInfo.receiver_mobile)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else if ("NUMERIC".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_mobile = tradeInfo.receiver_phone = nf .format(cell.getNumericCellValue()).replace(",", "").trim(); } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人电话格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人电话"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; case 11: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.receiver_address = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.receiver_address)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货详细地址处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } Map addressMap = ParseAddressUtil .getTextRecognitionInfo(tradeInfo.receiver_address); if (addressMap.size() == 4) { tradeInfo.receiver_country = "中国"; tradeInfo.receiver_state = addressMap.get("province"); tradeInfo.receiver_city = addressMap.get("city"); tradeInfo.receiver_district = addressMap.get("county"); } else { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "根据详细地址解析省市区失败"; ri.row_num = k; ri.error_flag = true; file_error_flag = true; tradeInfo = null; breakFlag = true; list.add(ri); } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "收货人详细地址格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有收货人详细地址"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; breakFlag = true; break; } break; case 17: if (cell != null && !"BLANK".equals(cell.getCellTypeEnum().toString())) { if ("STRING".equals(cell.getCellTypeEnum().toString())) { tradeInfo.status = cell.getStringCellValue().trim(); if ("".equals(tradeInfo.status)) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单状态处有空格"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "订单状态格式有误"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } } else { // 提交任务补抓单程序的结果 ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = true; ri.error_msg = "没有订单状态"; ri.row_num = k; ri.error_flag = true; list.add(ri); file_error_flag = true; tradeInfo = null; breakFlag = true; break; } break; default: break; } // 有异常值退出循环 if (breakFlag) { break; } if (j == colLength - 1) { // 记录没有错误的 list = addList(list, k, true); } } if (tradeInfo != null) { // tradeInfo.orders[0].divide_order_fee = tradeInfo.orders[0].price = String.valueOf(Double.valueOf(tradeInfo.orders[0].payment) / tradeInfo.orders[0].num); tradeInfo.orders[0].divide_order_fee = tradeInfo.orders[0].price = String.valueOf( new BigDecimal(Double.valueOf(tradeInfo.orders[0].payment) / tradeInfo.orders[0].num) .setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); tradeInfo.orders[0].discount_fee = "0"; tradeInfo.orders[0].total_fee = "0"; tradeInfo.orders[0].adjust_fee = "0"; tradeInfo.orders[0].sku_id = ""; tradeInfo.post_fee = "0"; tradeInfo.trade_type2 = 2; tradeInfo.row_num = k; tradeInfo.export_file_path = import_file_path; tradeInfo.out_path = out_path; tradeInfo.replenish_code = ip.code; tradeInfo.pay_money = tradeInfo.money = tradeInfo.product_fee = tradeInfo.orders[0].payment; tradeInfo.discount_fee = "0"; tradeInfo.adjust_fee = "0"; tradeInfo.receiver_zip = ""; tradeInfo.post_fee = "0"; tradeInfo.invoice_type = 0; tradeInfo.invoice_content = ""; tradeInfo.invoice_phone = ""; tradeInfo.invoice_email = ""; tradeInfo.tax_id = ""; tradeInfo.address_telephone = ""; tradeInfo.bank_of_deposit_account_number = ""; tradeInfo.created = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); tradeInfo.title = "fixed"; tradeInfo.type = "fixed"; tradeInfo.test_flag = "否"; tradeList.add(tradeInfo); } } } catch (NoShopException e) { throw e; } catch (Exception e) { importExcelDataInfo.setErrorRow(errorRow); importExcelDataInfo.setErrorTitle(errorTitle); logger.error(this, e); } importExcelDataInfo.setList(list); importExcelDataInfo.setTradeList(tradeList); return importExcelDataInfo; } public TradeInfo getImportShopMessage(TradeInfo tradeInfo, ImportParams ip) throws Exception { /* * 读取企业的店铺信息 */ // Druid连接池管理数据库连接 DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = dbpc.getConnection(); String sql = "select a.order_sync_lock_flag,a.order_sync_lock_keyword,a.storage_code,a.platform_code,a.delivery_mode_id,a.company_code,b.type,a.code as shopCode " + "from tb_shop a,tb_company b " + "where b.code=? and a.company_code=b.code AND a.is_default_order_in =2"; ps = conn.prepareStatement(sql); if (null != ip.company_code) { ps.setString(1, ip.company_code); } else { ps.setString(1, ip.obm_company_code); } rs = ps.executeQuery(); if (rs.next()) { tradeInfo.company_code = rs.getString("company_code"); tradeInfo.shop_code = rs.getString("shopCode"); tradeInfo.delivery_mode_id = rs.getInt("delivery_mode_id"); tradeInfo.storage_code = rs.getString("storage_code"); tradeInfo.company_type = rs.getInt("type"); tradeInfo.obm_company_code = ""; tradeInfo.platform_code = rs.getString("platform_code"); tradeInfo.shopMessage = new ShopMessage(); int orderSyncLockFlag = rs.getInt("order_sync_lock_flag"); String orderSyncLocKeyword = rs.getString("order_sync_lock_keyword") == null ? "" : rs.getString("order_sync_lock_keyword"); tradeInfo.shopMessage.setOrder_sync_lock_flag(orderSyncLockFlag); tradeInfo.shopMessage.setOrder_sync_lock_keyword(orderSyncLocKeyword); if ("001".equals(tradeInfo.platform_code) || "012".equals(tradeInfo.platform_code)) { tradeInfo.platform_code = "002"; } if ("002".equals(tradeInfo.platform_code)) { tradeInfo.trade_type = "taobao_trade_TradeBuyerPay"; } } else { throw new NoShopException("没有找到订单所属的店铺信息"); } return tradeInfo; } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } rs = null; } if (ps != null) { try { ps.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } ps = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } conn = null; } dbpc = null; } } /** * 根据时间或者订单号补抓启动线程 * * @author Lewis */ private class RecatchOrders extends Thread { PlatConfig pc1; RecatchConfig recatchConfig; String replenish_code; public RecatchOrders(PlatConfig pc1, RecatchConfig recatchConfig, String replenish_code) { this.pc1 = pc1; this.recatchConfig = recatchConfig; this.replenish_code = replenish_code; } @Override public void run() { // Druid连接池管理数据库连接 DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; PreparedStatement ps = null; // ResultSet rs = null; try { conn = dbpc.getConnection(); boolean flag2 = false; AppConfig appConfig = pc1.apps.get(0); if ("002".equals(recatchConfig.platform_code)) { ApiTmall apiTmall = new ApiTmall(pc1.api_url, pc1.tmc_url, appConfig.key, appConfig.secret, pc1.apps.get(0).shops, recatchConfig); apiTmall.start(); flag2 = true; } else if ("006".equals(recatchConfig.platform_code)) { // apiGome = new ApiGome(pc1, recatchConfig); apiGomeNew = new ApiGomeNew(pc1, recatchConfig); flag2 = true; } else if ("005".equals(recatchConfig.platform_code)) { // apiDangdang = new ApiDangdang(pc1, recatchConfig); apiDangDangNew = new ApiDangDangNew(pc1, recatchConfig); flag2 = true; } else if ("003".equals(recatchConfig.platform_code)) { apiJingdong = new ApiJingdongNew(pc1, recatchConfig, accessKeyId, secretKey, endpoint, customerId); flag2 = true; } else if ("011".equals(recatchConfig.platform_code)) { // apiYouzan = new ApiYouzan(pc1, recatchConfig); apiYouZanNew = new ApiYouZanNew(pc1, recatchConfig); flag2 = true; } else if ("014".equals(recatchConfig.platform_code)) { // apiPinduoduo = new ApiPinduoduo(pc1, recatchConfig); // apiPinDuoDuoNew = new ApiPinDuoDuoNew(pc1, recatchConfig); ApiPinDuoDuoThirdEdition ApiPinDuoDuoThirdEdition = new ApiPinDuoDuoThirdEdition(pc1, recatchConfig); flag2 = true; } else if ("015".equals(recatchConfig.platform_code)) { apiVip = new ApiVip(pc1, recatchConfig); flag2 = true; } else if ("017".equals(recatchConfig.platform_code)) { logger.info("【初始化】017平台, app:" + appConfig.key + "启动"); // apiWeimob = new ApiWeimob(pc1, recatchConfig); apiWeiMobNew = new ApiWeiMobNew(pc1, recatchConfig); flag2 = true; } else if ("018".equals(recatchConfig.platform_code)) { logger.info("【初始化】018平台, app:" + appConfig.key + "启动"); apiPingan = new ApiPingan(pc1, recatchConfig); flag2 = true; } else if ("019".equals(recatchConfig.platform_code)) { logger.info("【初始化】019平台, app:" + appConfig.key + "启动"); apiMia = new ApiMia(pc1, recatchConfig); flag2 = true; } else if ("020".equals(recatchConfig.platform_code)) { logger.info("【初始化】020平台, app:" + appConfig.key + "启动"); // apiYitiao = new ApiYitiao(pc1, recatchConfig); apiYiTiaoNew = new ApiYiTiaoNew(pc1, recatchConfig); flag2 = true; } else if ("021".equals(recatchConfig.platform_code)) { logger.info("【初始化】021平台, app:" + appConfig.key + "启动"); // apiXiaoHongShu = new ApiXiaoHongShu(pc1, recatchConfig); apiXiaoHongShuNewThirdEdition = new ApiXiaoHongShuNewThirdEdition(pc1, recatchConfig); flag2 = true; } else if ("022".equals(recatchConfig.platform_code)) { logger.info("【初始化】022平台, app:" + appConfig.key + "启动"); apiMiHeMall = new ApiMiHeMall(pc1, recatchConfig); flag2 = true; } else if ("023".equals(recatchConfig.platform_code)) { logger.info("【初始化】023平台, app:" + appConfig.key + "启动"); apiDouDian = new ApiDouDian(pc1, recatchConfig); flag2 = true; }else if ("024".equals(recatchConfig.platform_code)) { logger.info("【初始化】024平台, app:" + appConfig.key + "启动"); apiKtt = new ApiKtt(pc1, recatchConfig); flag2 = true; }else if ("025".equals(recatchConfig.platform_code)) { logger.info("【初始化】025平台, app:" + appConfig.key + "启动"); apiKuaiShou = new ApiKuaiShou(pc1, recatchConfig); flag2 = true; }else if ("026".equals(recatchConfig.platform_code)) { logger.info("【初始化】026平台, app:" + appConfig.key + "启动"); apiQunJieLong= new ApiQunJieLong(pc1, recatchConfig); flag2 = true; } else if ("027".equals(recatchConfig.platform_code)) { apiWeiDianFirst = new ApiWeiDianFirst(pc1, recatchConfig); flag2 = true; } if (!flag2) { String sql = "update tb_replenish_order set result = ?,status=3 where code=" + replenish_code; ps = conn.prepareStatement(sql); ps.setString(1, "该第三方平台暂未开启补抓功能,请联系软维ERP"); ps.executeUpdate(); } } catch (Exception e) { logger.error(this, e); } finally { if (ps != null) { try { ps.close(); } catch (SQLException e) { logger.error(this, e); } catch (Exception e) { logger.error(this, e); } ps = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(this, e); } catch (Exception e) { logger.error(this, e); } conn = null; } dbpc = null; } } } /** * getConfigFromDB 从数据库读取配置 * * @throws Exception */ private PlatConfig getConfigFromDB(DruidPooledConnection conn, PreparedStatement ps, RecatchConfig recatchConfig) { boolean found = true; PlatConfig platConfig = new PlatConfig(); platConfig.apps = Collections.synchronizedList(new ArrayList()); AppConfig appConfig = new AppConfig(); ShopConfig shopConfig = new ShopConfig(); try { if (recatchConfig.type == 3 || recatchConfig.type == 1 || recatchConfig.type == 4) { String sql = "select a.platform_code,c.code as app_code,c.key as app_key,a.delivery_mode_id,a.delivery_area_setting,a.order_sync_lock_flag,a.order_sync_lock_keyword," + "c.secret as app_secret,a.company_code as shop_company_code,a.code as shop_code," + "a.platform_account as shop_name,a.session_key as shop_session_key,a.storage_code,d.type as company_type " + " from tb_shop a,tb_platform_app c,tb_company d where " + " a.del_flag = 1 and order_sync_flag=2 and a.company_code=d.code and a.app_code = c.code and c.del_flag = 1" + " and a.code = '" + recatchConfig.shop_code + "'"; ResultSet rs = ps.executeQuery(sql); while (rs.next()) { // 构造店铺 String platform_code = rs.getString("platform_code"); String realPlatformCode = platform_code; recatchConfig.platform_code = platform_code; if ("001".equals(recatchConfig.platform_code) || "012".equals(recatchConfig.platform_code)) { recatchConfig.platform_code = "002"; } recatchConfig.platform_account = rs.getString("shop_name"); for (int i = 0; i < config.plats.size(); i++) { PlatConfig pc = new PlatConfig(); pc = config.plats.get(i); if (pc.plat_name.equals(realPlatformCode)) { shopConfig = new ShopConfig(); shopConfig.realPlatformCode = realPlatformCode; shopConfig.platformCode = platform_code; shopConfig.code = rs.getString("shop_code"); shopConfig.name = rs.getString("shop_name"); shopConfig.session_key = rs.getString("shop_session_key"); shopConfig.company_code = rs.getString("shop_company_code"); shopConfig.storage_code = rs.getString("storage_code"); shopConfig.company_type = rs.getInt("company_type"); shopConfig.order_sync_lock_flag = rs.getInt("order_sync_lock_flag"); shopConfig.order_sync_lock_keyword = rs.getString("order_sync_lock_keyword") == null ? "" : rs.getString("order_sync_lock_keyword"); appConfig.secret = rs.getString("app_secret"); appConfig.key = rs.getString("app_key"); if ((rs.getString("delivery_mode_id") == null)) { shopConfig.delivery_mode_id = 2; } else { shopConfig.delivery_mode_id = rs.getInt("delivery_mode_id"); } shopConfig.delivery_area_setting = rs.getString("delivery_area_setting") == null ? "" : rs.getString("delivery_area_setting"); found = false; if ("001".equals(realPlatformCode) || "012".equals(realPlatformCode)) { for (int j = 0; j ()); platConfig.apps.get(0).shops.add(shopConfig); } } } if (found) { logger.info("店铺编号未查到,请核对编号是否正确!"); return null; } return platConfig; } logger.info("补抓单程序配置中平台单号和店铺单号不能都为空!"); return null; } catch (Exception e) { logger.error(ReOrderSync.class, e); return null; } } public ArrayList addList(ArrayList list, int k, boolean original_trade) { ReplenishInfo ri = new ReplenishInfo(); ri.original_trade = original_trade; ri.error_msg = ""; ri.row_num = k; list.add(ri); return list; } /** * 根据行号删除一行 * * @param sheet a Excel sheet * @param rowIndex a 0 based index of removing row */ public void removeRow(XSSFSheet sheet, int rowIndex) { int lastRowNum = sheet.getLastRowNum(); if (rowIndex >= 0 && rowIndex < lastRowNum) // 将行号为rowIndex+1一直到行号为lastRowNum的单元格全部上移一行,以便删除rowIndex行 sheet.shiftRows(rowIndex + 1, lastRowNum, -1); if (rowIndex == lastRowNum) { XSSFRow removingRow = sheet.getRow(rowIndex); if (removingRow != null) sheet.removeRow(removingRow); } } } /** * 校验邮箱是否符合格式 * * @param email * @return */ public static boolean checkEmail(String email) { boolean flag = false; try { String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; Pattern regex = Pattern.compile(check); Matcher matcher = regex.matcher(email); flag = matcher.matches(); } catch (Exception e) { flag = false; } return flag; } /** * 校验手机号是否符合格式 * * @param mobileNumber * @return */ public static boolean checkMobileNumber(String mobileNumber) { boolean flag = false; try { // Pattern regex = // Pattern.compile("^(((13[0-9])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8})|(0\\d{2}-\\d{8})|(0\\d{3}-\\d{7})$"); Pattern regex = Pattern.compile("^1[3456789]\\d{9}$"); Matcher matcher = regex.matcher(mobileNumber); flag = matcher.matches(); } catch (Exception e) { e.printStackTrace(); flag = false; } return flag; } /** * 判断文件是否是excel * * @throws Exception */ public static void checkExcelVaild(File file) throws Exception { if (!file.exists()) { throw new Exception("文件不存在"); } if (!(file.isFile() && (file.getName().endsWith(EXCEL_XLS) || file.getName().endsWith(EXCEL_XLSX)))) { throw new Exception("文件不是Excel"); } } /** * 判断Excel的版本,获取Workbook * * @param in * @param file * @return * @throws IOException */ public static Workbook getWorkbok(InputStream in, File file) throws Exception { Workbook wb = null; if (file.getName().endsWith(EXCEL_XLS)) { // Excel 2003 wb = new HSSFWorkbook(in); } else if (file.getName().endsWith(EXCEL_XLSX)) { // Excel 2007/2010 wb = new XSSFWorkbook(in); } return wb; } /** * initConfig 初始化配置 */ private static boolean initFileConfig() { boolean res = false; try { IniReader iniReader = new IniReader(config_filename); config = new Config(); config.db_host = iniReader.getValue("mysql", "host"); config.db_port = iniReader.getValue("mysql", "port"); config.db_name = iniReader.getValue("mysql", "name"); config.db_user = iniReader.getValue("mysql", "user"); config.db_password = iniReader.getValue("mysql", "password"); storageUpdateTime = iniReader.getValue("storageUpdateTime", "interval"); coverage = iniReader.getValue("coverTime", "coverage"); import_file_path = iniReader.getValue("path", "import_file_path"); stopStartTime = iniReader.getValue("storageUpdateTime", "stopStartTime"); stopEndTime = iniReader.getValue("storageUpdateTime", "stopEndTime"); accessKeyId = iniReader.getValue("hufu", "accessKeyId"); secretKey = iniReader.getValue("hufu", "secretKey"); endpoint = iniReader.getValue("hufu", "endpoint"); customerId = iniReader.getValue("hufu", "customerId"); // 读入所有平台参数 config.globe_plats = iniReader.getValue("globe", "plats"); String[] plat_array = config.globe_plats.split(","); config.plats = Collections.synchronizedList(new ArrayList()); for (int i = 0; i < plat_array.length; i++) { PlatConfig pc = new PlatConfig(); pc.plat_name = pc.plat_code = plat_array[i]; pc.api_url = iniReader.getValue(plat_array[i], "api_url"); pc.agent_api_ip = iniReader.getValue(plat_array[i], "agent_api_ip"); pc.tmc_url = iniReader.getValue(plat_array[i], "tmc_url"); pc.apps = Collections.synchronizedList(new ArrayList()); pc.updateTokenList = Collections.synchronizedList(new ArrayList()); config.plats.add(pc); } res = true; } catch (IOException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } return res; } /** * getConfigFromDB 从数据库读取配置 */ private static boolean getConfigFromDB() { boolean res = false; // Druid连接池管理数据库连接 DbPoolConnection dbpc = DbPoolConnection.getInstance(); DruidPooledConnection conn = null; Statement statement = null; ResultSet rs = null; try { conn = dbpc.getConnection(); if (config.plats.size() < 1) { return false; } statement = conn.createStatement(); StringBuffer sql = new StringBuffer() .append("select c.platform_code,c.code as app_code,c.key as app_key,a.pay_percent," + "c.secret as app_secret,a.company_code as shop_company_code," + "a.code as shop_code," + "a.delivery_mode_id,a.delivery_area_setting,a.refresh_token,a.expires_time,b.expire_time as endTime," + "a.platform_code as platformCode,a.del_flag,a.auth_flag,a.order_sync_flag,a.init_time,a.order_sync_modify_time," + "a.platform_account as shop_name,a.session_key as shop_session_key,a.storage_code,e.type as company_type " + "from tb_shop a, tb_platform_app c,tb_company_role_relation b,tb_role d,tb_company e " + "where a.del_flag = 1 and a.app_code = c.code and c.del_flag = 1 and a.company_code=b.company_code and b.role_code=d.code and d.type=1 " + "and a.app_code = c.code and a.company_code=e.code and a.platform_code in ("); for (int i = 0; i < config.plats.size(); i++) { PlatConfig pConfig = new PlatConfig(); pConfig = config.plats.get(i); if (i < config.plats.size() - 1) { sql.append(pConfig.plat_code + ","); } else { sql.append(pConfig.plat_code + ")"); } } sql.append(" order by order_sync_modify_time asc"); rs = statement.executeQuery(sql.toString()); while (rs.next()) { // 先判断app是否存在 String app_code = rs.getString("app_code"); String platformCode = rs.getString("platformCode"); String endTime = rs.getString("endTime"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long endTimeLong = sdf.parse(endTime).getTime(); long timeNow = System.currentTimeMillis(); if (timeNow - endTimeLong >= 7 * 24 * 60 * 60 * 1000) { continue; } if ("001".equals(platformCode) || "012".equals(platformCode)) { platformCode = "002"; } Boolean found = false; for (int i = 0; i < config.plats.size(); i++) { PlatConfig pc = new PlatConfig(); pc = config.plats.get(i); if (pc.plat_code.equals(platformCode)) { pc.order_sync_modify_time = rs.getString("order_sync_modify_time"); // 构造店铺 shopConfig = new ShopConfig(); shopConfig.code = rs.getString("shop_code"); shopConfig.name = rs.getString("shop_name"); shopConfig.session_key = rs.getString("shop_session_key"); shopConfig.company_code = rs.getString("shop_company_code"); shopConfig.pay_percent = rs.getDouble("pay_percent"); shopConfig.del_flag = rs.getInt("del_flag"); shopConfig.auth_flag = rs.getInt("auth_flag"); shopConfig.order_sync_flag = rs.getInt("order_sync_flag"); shopConfig.company_type = rs.getInt("company_type"); if ("".equals(coverage) || coverage == null) { shopConfig.init_time = rs.getInt("init_time"); } else { Pattern pattern = Pattern.compile("[0-9]*"); Matcher isNum = pattern.matcher(coverage); if (!isNum.matches()) { shopConfig.init_time = rs.getInt("init_time"); } else { shopConfig.init_time = Integer.valueOf(coverage) * 60; } } String storage_code = rs.getString("storage_code"); if (storage_code == null) { shopConfig.storage_code = ""; } else { shopConfig.storage_code = rs.getString("storage_code"); } if ((rs.getString("delivery_mode_id") == null)) { shopConfig.delivery_mode_id = 2; } else { shopConfig.delivery_mode_id = rs.getInt("delivery_mode_id"); } shopConfig.delivery_area_setting = rs.getString("delivery_area_setting") == null ? "" : rs.getString("delivery_area_setting"); shopConfig.platformCode = platformCode; if ((shopConfig.del_flag == 1) && (shopConfig.auth_flag == 2) && (shopConfig.order_sync_flag == 2)) { for (int j = 0; j < pc.apps.size(); j++) { AppConfig app_config = pc.apps.get(j); if (app_code.equals(app_config.code)) { // 找到app可以直接添加店铺 app_config.shops.add(shopConfig); logger.info("只添加店铺[ {} ] | [ {} ] 时间->{}", shopConfig.code, shopConfig.name, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); found = true; break; } } if (!found) { // 未找到app,需要同步添加app和店铺 AppConfig appConfig = new AppConfig(); appConfig.code = rs.getString("app_code"); appConfig.key = rs.getString("app_key"); appConfig.secret = rs.getString("app_secret"); appConfig.shops = Collections.synchronizedList(new ArrayList()); appConfig.shops.add(shopConfig); pc.apps.add(appConfig); } } // 获取自动更新sessionkey的所需信息 int del_flag = shopConfig.del_flag; int auth_flag = shopConfig.auth_flag; String refresh_token = rs.getString("refresh_token"); String expires_time = rs.getString("expires_time"); if (del_flag == 1 && auth_flag == 2 && (refresh_token != null && !"".equals(refresh_token) && (expires_time != null && !"".equals(expires_time)))) { UpdateMessage um = new UpdateMessage(); um.app_key = rs.getString("app_key"); um.app_secret = rs.getString("app_secret"); um.refresh_token = refresh_token; um.expires_time = expires_time; um.shop_name = rs.getString("shop_name"); um.shop_code = rs.getString("shop_code"); pc.updateTokenList.add(um); } break; } } } res = true; } catch (Exception e) { logger.error(ReplenishOrder.class, e); logger.info("{}时间->{}", e.toString(), new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } catch (Exception e) { logger.error(ReplenishOrder.class, e); } rs = null; } if (statement != null) { try { statement.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } statement = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error(ReplenishOrder.class, e); } conn = null; } dbpc = null; } return res; } public static boolean isDouble(String str) { Pattern pattern = Pattern.compile("[0-9]+[.]{0,1}[0-9]*[dD]{0,1}"); Matcher isNum = pattern.matcher(str); if (!isNum.matches()) { return false; } return true; } /** * * @title: checkCell * @description: 检查单元格是否有值 * @param row 行 * @param cellNumber 列号 * @return string NullValue/EffectiveValue 单元格为空值/单元格中有效值 */ public static String checkCellValue(Row row, int cellNumber) { try { Cell cell = row.getCell(cellNumber); if (null != cell && "BLANK".equals(cell.getCellTypeEnum().toString())) {// 单元格有过操作 值为空字符串 return "NullValue"; } else if (null != cell && !"BLANK".equals(cell.getCellTypeEnum().toString())) { return "EffectiveValue"; } else if (null == cell || "BLANK".equals(cell.getCellTypeEnum().toString())) { return "NullValue"; } } catch (Exception e) { logger.error("", e); if (e instanceof NullPointerException) { return "NullValue"; } } logger.error("补录订单发生了未知的异常,请检查源文件。"); return "Unknown"; } } \ No newline at end of file diff --git a/src/com/since/emp/service/StorageUpdate.java b/src/main/java/com/since/emp/service/StorageUpdate.java similarity index 100% rename from src/com/since/emp/service/StorageUpdate.java rename to src/main/java/com/since/emp/service/StorageUpdate.java diff --git a/src/com/since/emp/service/SubmitLog.java b/src/main/java/com/since/emp/service/SubmitLog.java similarity index 100% rename from src/com/since/emp/service/SubmitLog.java rename to src/main/java/com/since/emp/service/SubmitLog.java diff --git a/src/com/since/emp/service/csv/BaseFileField.java b/src/main/java/com/since/emp/service/csv/BaseFileField.java similarity index 100% rename from src/com/since/emp/service/csv/BaseFileField.java rename to src/main/java/com/since/emp/service/csv/BaseFileField.java diff --git a/src/com/since/emp/service/csv/CsvFileManageThread.java b/src/main/java/com/since/emp/service/csv/CsvFileManageThread.java similarity index 99% rename from src/com/since/emp/service/csv/CsvFileManageThread.java rename to src/main/java/com/since/emp/service/csv/CsvFileManageThread.java index 68e186b..f0486ce 100644 --- a/src/com/since/emp/service/csv/CsvFileManageThread.java +++ b/src/main/java/com/since/emp/service/csv/CsvFileManageThread.java @@ -20,7 +20,6 @@ import org.apache.logging.log4j.Logger; import java.io.*; import java.math.BigDecimal; import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.*; diff --git a/src/com/since/emp/service/csv/EasyFileField.java b/src/main/java/com/since/emp/service/csv/EasyFileField.java similarity index 99% rename from src/com/since/emp/service/csv/EasyFileField.java rename to src/main/java/com/since/emp/service/csv/EasyFileField.java index 719f0f3..9c91e04 100644 --- a/src/com/since/emp/service/csv/EasyFileField.java +++ b/src/main/java/com/since/emp/service/csv/EasyFileField.java @@ -1,11 +1,9 @@ package com.since.emp.service.csv; -import com.since.emp.base.ImportParams; import com.since.emp.base.OrderInfo; import com.since.emp.base.TradeInfo; import com.since.emp.service.csv.constants.Constants; import com.since.emp.service.csv.constants.EasyFileFieldEnum; -import com.since.emp.service.csv.constants.StandardFileFieldEnum; import com.since.emp.test.AddressTest; import com.since.emp.util.CloseUtil; import com.since.emp.util.ParseAddressUtil; @@ -15,7 +13,6 @@ import java.io.*; import java.lang.reflect.Field; import java.math.BigDecimal; import java.nio.charset.Charset; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; diff --git a/src/com/since/emp/service/csv/StandardFileField.java b/src/main/java/com/since/emp/service/csv/StandardFileField.java similarity index 99% rename from src/com/since/emp/service/csv/StandardFileField.java rename to src/main/java/com/since/emp/service/csv/StandardFileField.java index 8eec500..a8da915 100644 --- a/src/com/since/emp/service/csv/StandardFileField.java +++ b/src/main/java/com/since/emp/service/csv/StandardFileField.java @@ -14,8 +14,6 @@ import java.io.OutputStreamWriter; import java.lang.reflect.Field; import java.math.BigDecimal; import java.nio.charset.Charset; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; diff --git a/src/com/since/emp/service/csv/constants/AddressTypeEnum.java b/src/main/java/com/since/emp/service/csv/constants/AddressTypeEnum.java similarity index 100% rename from src/com/since/emp/service/csv/constants/AddressTypeEnum.java rename to src/main/java/com/since/emp/service/csv/constants/AddressTypeEnum.java diff --git a/src/com/since/emp/service/csv/constants/BaseFileFieldEnum.java b/src/main/java/com/since/emp/service/csv/constants/BaseFileFieldEnum.java similarity index 100% rename from src/com/since/emp/service/csv/constants/BaseFileFieldEnum.java rename to src/main/java/com/since/emp/service/csv/constants/BaseFileFieldEnum.java diff --git a/src/com/since/emp/service/csv/constants/Constants.java b/src/main/java/com/since/emp/service/csv/constants/Constants.java similarity index 100% rename from src/com/since/emp/service/csv/constants/Constants.java rename to src/main/java/com/since/emp/service/csv/constants/Constants.java diff --git a/src/com/since/emp/service/csv/constants/CsvDataTypeEnum.java b/src/main/java/com/since/emp/service/csv/constants/CsvDataTypeEnum.java similarity index 100% rename from src/com/since/emp/service/csv/constants/CsvDataTypeEnum.java rename to src/main/java/com/since/emp/service/csv/constants/CsvDataTypeEnum.java diff --git a/src/com/since/emp/service/csv/constants/EasyFileFieldEnum.java b/src/main/java/com/since/emp/service/csv/constants/EasyFileFieldEnum.java similarity index 100% rename from src/com/since/emp/service/csv/constants/EasyFileFieldEnum.java rename to src/main/java/com/since/emp/service/csv/constants/EasyFileFieldEnum.java diff --git a/src/com/since/emp/service/csv/constants/OrderIsTestEnum.java b/src/main/java/com/since/emp/service/csv/constants/OrderIsTestEnum.java similarity index 100% rename from src/com/since/emp/service/csv/constants/OrderIsTestEnum.java rename to src/main/java/com/since/emp/service/csv/constants/OrderIsTestEnum.java diff --git a/src/com/since/emp/service/csv/constants/OrderStatusEnum.java b/src/main/java/com/since/emp/service/csv/constants/OrderStatusEnum.java similarity index 100% rename from src/com/since/emp/service/csv/constants/OrderStatusEnum.java rename to src/main/java/com/since/emp/service/csv/constants/OrderStatusEnum.java diff --git a/src/com/since/emp/service/csv/constants/StandardFileFieldEnum.java b/src/main/java/com/since/emp/service/csv/constants/StandardFileFieldEnum.java similarity index 100% rename from src/com/since/emp/service/csv/constants/StandardFileFieldEnum.java rename to src/main/java/com/since/emp/service/csv/constants/StandardFileFieldEnum.java diff --git a/src/com/since/emp/service/queue/order/CheckTradeQueueThread.java b/src/main/java/com/since/emp/service/queue/order/CheckTradeQueueThread.java similarity index 100% rename from src/com/since/emp/service/queue/order/CheckTradeQueueThread.java rename to src/main/java/com/since/emp/service/queue/order/CheckTradeQueueThread.java diff --git a/src/com/since/emp/service_bak/ApiDangdang_bak.java b/src/main/java/com/since/emp/service_bak/ApiDangdang_bak.java similarity index 100% rename from src/com/since/emp/service_bak/ApiDangdang_bak.java rename to src/main/java/com/since/emp/service_bak/ApiDangdang_bak.java diff --git a/src/com/since/emp/service_bak/ApiGome_bak.java b/src/main/java/com/since/emp/service_bak/ApiGome_bak.java similarity index 100% rename from src/com/since/emp/service_bak/ApiGome_bak.java rename to src/main/java/com/since/emp/service_bak/ApiGome_bak.java diff --git a/src/com/since/emp/service_bak/ApiJingdong_bak.java b/src/main/java/com/since/emp/service_bak/ApiJingdong_bak.java similarity index 100% rename from src/com/since/emp/service_bak/ApiJingdong_bak.java rename to src/main/java/com/since/emp/service_bak/ApiJingdong_bak.java diff --git a/src/com/since/emp/service_bak/ApiPinduoduo_bak.java b/src/main/java/com/since/emp/service_bak/ApiPinduoduo_bak.java similarity index 100% rename from src/com/since/emp/service_bak/ApiPinduoduo_bak.java rename to src/main/java/com/since/emp/service_bak/ApiPinduoduo_bak.java diff --git a/src/com/since/emp/service_bak/ApiWeimob_bak.java b/src/main/java/com/since/emp/service_bak/ApiWeimob_bak.java similarity index 100% rename from src/com/since/emp/service_bak/ApiWeimob_bak.java rename to src/main/java/com/since/emp/service_bak/ApiWeimob_bak.java diff --git a/src/com/since/emp/service_bak/ApiXiaoHongShu_bak.java b/src/main/java/com/since/emp/service_bak/ApiXiaoHongShu_bak.java similarity index 100% rename from src/com/since/emp/service_bak/ApiXiaoHongShu_bak.java rename to src/main/java/com/since/emp/service_bak/ApiXiaoHongShu_bak.java diff --git a/src/com/since/emp/service_bak/ApiYitiao_bak.java b/src/main/java/com/since/emp/service_bak/ApiYitiao_bak.java similarity index 100% rename from src/com/since/emp/service_bak/ApiYitiao_bak.java rename to src/main/java/com/since/emp/service_bak/ApiYitiao_bak.java diff --git a/src/com/since/emp/service_bak/ApiYouzan_bak.java b/src/main/java/com/since/emp/service_bak/ApiYouzan_bak.java similarity index 100% rename from src/com/since/emp/service_bak/ApiYouzan_bak.java rename to src/main/java/com/since/emp/service_bak/ApiYouzan_bak.java diff --git a/src/com/since/emp/taobao/MsgServiceClient.java b/src/main/java/com/since/emp/taobao/MsgServiceClient.java similarity index 100% rename from src/com/since/emp/taobao/MsgServiceClient.java rename to src/main/java/com/since/emp/taobao/MsgServiceClient.java diff --git a/src/com/since/emp/taobao/MsgServiceServer.java b/src/main/java/com/since/emp/taobao/MsgServiceServer.java similarity index 100% rename from src/com/since/emp/taobao/MsgServiceServer.java rename to src/main/java/com/since/emp/taobao/MsgServiceServer.java diff --git a/src/com/since/emp/taobao/Permit.java b/src/main/java/com/since/emp/taobao/Permit.java similarity index 100% rename from src/com/since/emp/taobao/Permit.java rename to src/main/java/com/since/emp/taobao/Permit.java diff --git a/src/com/since/emp/taobao/tb_mq.java b/src/main/java/com/since/emp/taobao/tb_mq.java similarity index 100% rename from src/com/since/emp/taobao/tb_mq.java rename to src/main/java/com/since/emp/taobao/tb_mq.java diff --git a/src/com/since/emp/test/AddressTest.java b/src/main/java/com/since/emp/test/AddressTest.java similarity index 99% rename from src/com/since/emp/test/AddressTest.java rename to src/main/java/com/since/emp/test/AddressTest.java index aa704e8..13c001c 100644 --- a/src/com/since/emp/test/AddressTest.java +++ b/src/main/java/com/since/emp/test/AddressTest.java @@ -4,7 +4,6 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; diff --git a/src/com/since/emp/test/AmazonTest.java b/src/main/java/com/since/emp/test/AmazonTest.java similarity index 97% rename from src/com/since/emp/test/AmazonTest.java rename to src/main/java/com/since/emp/test/AmazonTest.java index a899766..18c8d4d 100644 --- a/src/com/since/emp/test/AmazonTest.java +++ b/src/main/java/com/since/emp/test/AmazonTest.java @@ -7,7 +7,6 @@ import java.util.Random; import org.apache.commons.httpclient.HttpException; -import com.since.emp.service.OrderSyncs.ShopConfig; //Test public class AmazonTest { public static void main(String[] args) throws HttpException, IOException { diff --git a/src/com/since/emp/test/AnalysisData.java b/src/main/java/com/since/emp/test/AnalysisData.java similarity index 96% rename from src/com/since/emp/test/AnalysisData.java rename to src/main/java/com/since/emp/test/AnalysisData.java index f7a1a50..13f522e 100644 --- a/src/com/since/emp/test/AnalysisData.java +++ b/src/main/java/com/since/emp/test/AnalysisData.java @@ -8,19 +8,13 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; -import javax.xml.stream.events.EndDocument; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.Logger; -import com.alibaba.druid.pool.DruidPooledConnection; -import com.since.emp.base.DbPoolConnection; import com.since.emp.base.DbUtil; -import com.since.emp.service.OrderSync; import com.since.emp.service.OrderSyncs; import jxl.Sheet; diff --git a/src/com/since/emp/test/ApiQunJieLongTest.java b/src/main/java/com/since/emp/test/ApiQunJieLongTest.java similarity index 100% rename from src/com/since/emp/test/ApiQunJieLongTest.java rename to src/main/java/com/since/emp/test/ApiQunJieLongTest.java diff --git a/src/com/since/emp/test/DangdangDemo.java b/src/main/java/com/since/emp/test/DangdangDemo.java similarity index 100% rename from src/com/since/emp/test/DangdangDemo.java rename to src/main/java/com/since/emp/test/DangdangDemo.java diff --git a/src/com/since/emp/test/DbPoolTest.java b/src/main/java/com/since/emp/test/DbPoolTest.java similarity index 100% rename from src/com/since/emp/test/DbPoolTest.java rename to src/main/java/com/since/emp/test/DbPoolTest.java diff --git a/src/com/since/emp/test/Demo1_simple.java b/src/main/java/com/since/emp/test/Demo1_simple.java similarity index 100% rename from src/com/since/emp/test/Demo1_simple.java rename to src/main/java/com/since/emp/test/Demo1_simple.java diff --git a/src/com/since/emp/test/Demo2.java b/src/main/java/com/since/emp/test/Demo2.java similarity index 100% rename from src/com/since/emp/test/Demo2.java rename to src/main/java/com/since/emp/test/Demo2.java diff --git a/src/com/since/emp/test/DoudianTestDemo.java b/src/main/java/com/since/emp/test/DoudianTestDemo.java similarity index 99% rename from src/com/since/emp/test/DoudianTestDemo.java rename to src/main/java/com/since/emp/test/DoudianTestDemo.java index 74695a4..d4edc4c 100644 --- a/src/com/since/emp/test/DoudianTestDemo.java +++ b/src/main/java/com/since/emp/test/DoudianTestDemo.java @@ -7,7 +7,6 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Optional; import org.apache.logging.log4j.core.Logger; diff --git a/src/com/since/emp/test/ExcelCopy.java b/src/main/java/com/since/emp/test/ExcelCopy.java similarity index 100% rename from src/com/since/emp/test/ExcelCopy.java rename to src/main/java/com/since/emp/test/ExcelCopy.java diff --git a/src/com/since/emp/test/ExcelSimple.java b/src/main/java/com/since/emp/test/ExcelSimple.java similarity index 100% rename from src/com/since/emp/test/ExcelSimple.java rename to src/main/java/com/since/emp/test/ExcelSimple.java diff --git a/src/com/since/emp/test/HttpClientDemo.java b/src/main/java/com/since/emp/test/HttpClientDemo.java similarity index 95% rename from src/com/since/emp/test/HttpClientDemo.java rename to src/main/java/com/since/emp/test/HttpClientDemo.java index b0142a1..12cfaee 100644 --- a/src/com/since/emp/test/HttpClientDemo.java +++ b/src/main/java/com/since/emp/test/HttpClientDemo.java @@ -1,21 +1,7 @@ package com.since.emp.test; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; - -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.methods.GetMethod; -import org.apache.commons.httpclient.util.URIUtil; import org.json.JSONArray; -import com.google.gson.Gson; -import com.since.emp.service.OrderSyncs; -import com.since.emp.util.MD5Util; - public class HttpClientDemo { public static void main(String[] args) {// /* diff --git a/src/com/since/emp/test/JingdongDemo.java b/src/main/java/com/since/emp/test/JingdongDemo.java similarity index 96% rename from src/com/since/emp/test/JingdongDemo.java rename to src/main/java/com/since/emp/test/JingdongDemo.java index 8e3dea7..578f37a 100644 --- a/src/com/since/emp/test/JingdongDemo.java +++ b/src/main/java/com/since/emp/test/JingdongDemo.java @@ -5,18 +5,7 @@ import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import com.google.gson.GsonBuilder; -import com.jd.open.api.sdk.DefaultJdClient; -import com.jd.open.api.sdk.JdClient; -import com.jd.open.api.sdk.domain.ydy.PullDataService.request.pullData.PullDataReqDTO; -import com.jd.open.api.sdk.domain.ydy.PullDataService.request.pullData.WayBillInfo; -import com.jd.open.api.sdk.request.ydy.PrintingPrintDataPullDataRequest; -import com.jd.open.api.sdk.response.ydy.PrintingPrintDataPullDataResponse; import com.jdcloud.sdk.apim.auth.CredentialsProvider; import com.jdcloud.sdk.apim.auth.StaticCredentialsProvider; import com.jdcloud.sdk.apim.client.Environment; diff --git a/src/com/since/emp/test/KuaiShouTest.java b/src/main/java/com/since/emp/test/KuaiShouTest.java similarity index 100% rename from src/com/since/emp/test/KuaiShouTest.java rename to src/main/java/com/since/emp/test/KuaiShouTest.java diff --git a/src/com/since/emp/test/MemcachedTest.java b/src/main/java/com/since/emp/test/MemcachedTest.java similarity index 100% rename from src/com/since/emp/test/MemcachedTest.java rename to src/main/java/com/since/emp/test/MemcachedTest.java diff --git a/src/com/since/emp/test/MiaTest.java b/src/main/java/com/since/emp/test/MiaTest.java similarity index 93% rename from src/com/since/emp/test/MiaTest.java rename to src/main/java/com/since/emp/test/MiaTest.java index 59d82a7..9245c68 100644 --- a/src/com/since/emp/test/MiaTest.java +++ b/src/main/java/com/since/emp/test/MiaTest.java @@ -1,23 +1,10 @@ package com.since.emp.test; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.NameValuePair; -import org.apache.commons.httpclient.methods.PostMethod; -import org.apache.commons.httpclient.util.URIUtil; - -import com.google.gson.Gson; -import com.since.emp.base.mia.MiaAftersaleRequestParams; -import com.since.emp.base.mia.MiaCommonRequestParams; import com.since.emp.util.HttpRequest; -import net.sf.json.JSONObject; - public class MiaTest { public static void main(String[] args) { try { diff --git a/src/com/since/emp/test/PLGTest.java b/src/main/java/com/since/emp/test/PLGTest.java similarity index 98% rename from src/com/since/emp/test/PLGTest.java rename to src/main/java/com/since/emp/test/PLGTest.java index f037cb3..5be4a17 100644 --- a/src/com/since/emp/test/PLGTest.java +++ b/src/main/java/com/since/emp/test/PLGTest.java @@ -6,7 +6,6 @@ import java.util.HashMap; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; -import com.since.emp.service.DataParse; import com.since.emp.util.HttpRequest; import com.since.emp.util.MD5Util; diff --git a/src/com/since/emp/test/POIDemo.java b/src/main/java/com/since/emp/test/POIDemo.java similarity index 100% rename from src/com/since/emp/test/POIDemo.java rename to src/main/java/com/since/emp/test/POIDemo.java diff --git a/src/com/since/emp/test/PinduoduoTest.java b/src/main/java/com/since/emp/test/PinduoduoTest.java similarity index 100% rename from src/com/since/emp/test/PinduoduoTest.java rename to src/main/java/com/since/emp/test/PinduoduoTest.java diff --git a/src/com/since/emp/test/PingAnDemo.java b/src/main/java/com/since/emp/test/PingAnDemo.java similarity index 100% rename from src/com/since/emp/test/PingAnDemo.java rename to src/main/java/com/since/emp/test/PingAnDemo.java diff --git a/src/com/since/emp/test/PopClientDemo.java b/src/main/java/com/since/emp/test/PopClientDemo.java similarity index 100% rename from src/com/since/emp/test/PopClientDemo.java rename to src/main/java/com/since/emp/test/PopClientDemo.java diff --git a/src/com/since/emp/test/PressureTest.java b/src/main/java/com/since/emp/test/PressureTest.java similarity index 98% rename from src/com/since/emp/test/PressureTest.java rename to src/main/java/com/since/emp/test/PressureTest.java index f9cac82..18284b0 100644 --- a/src/com/since/emp/test/PressureTest.java +++ b/src/main/java/com/since/emp/test/PressureTest.java @@ -1,20 +1,14 @@ package com.since.emp.test; -import java.io.File; -import java.io.FileInputStream; import java.io.IOException; -import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.Logger; import org.apache.logging.log4j.core.config.ConfigurationSource; -import org.apache.logging.log4j.core.config.Configurator; import com.alibaba.druid.pool.DruidPooledConnection; import com.since.emp.base.Config; @@ -23,9 +17,7 @@ import com.since.emp.base.IniReader; import com.since.emp.base.OrderInfo; import com.since.emp.base.TradeInfo; import com.since.emp.service.DataParse; -import com.since.emp.service.OrderSync; import com.since.emp.service.OrderSyncs; -import com.since.emp.service.ReOrderSync; import com.since.emp.service.StorageUpdate; public class PressureTest extends OrderSyncs { diff --git a/src/com/since/emp/test/ReadLog.java b/src/main/java/com/since/emp/test/ReadLog.java similarity index 100% rename from src/com/since/emp/test/ReadLog.java rename to src/main/java/com/since/emp/test/ReadLog.java diff --git a/src/com/since/emp/test/RefundInfoTest.java b/src/main/java/com/since/emp/test/RefundInfoTest.java similarity index 96% rename from src/com/since/emp/test/RefundInfoTest.java rename to src/main/java/com/since/emp/test/RefundInfoTest.java index 0a60cc3..8bc1b6f 100644 --- a/src/com/since/emp/test/RefundInfoTest.java +++ b/src/main/java/com/since/emp/test/RefundInfoTest.java @@ -13,17 +13,11 @@ import com.alibaba.druid.pool.DruidPooledConnection; import com.since.emp.base.Config; import com.since.emp.base.DbPoolConnection; import com.since.emp.base.IniReader; -import com.since.emp.base.OrderInfo; import com.since.emp.base.RefundInfo; -import com.since.emp.base.ShopMessage; -import com.since.emp.base.TradeInfo; import com.since.emp.service.DataParse; import com.since.emp.service.OrderSyncs; import com.since.emp.service.RefundOrderHandler; import com.since.emp.service.StorageUpdate; -import com.since.emp.service.OrderSyncs.AppConfig; -import com.since.emp.service.OrderSyncs.PlatConfig; -import com.since.emp.service.OrderSyncs.ShopConfig; public class RefundInfoTest extends OrderSyncs{ diff --git a/src/com/since/emp/test/RuwiiMall_Simple.java b/src/main/java/com/since/emp/test/RuwiiMall_Simple.java similarity index 98% rename from src/com/since/emp/test/RuwiiMall_Simple.java rename to src/main/java/com/since/emp/test/RuwiiMall_Simple.java index 7776f1f..55ccbcd 100644 --- a/src/com/since/emp/test/RuwiiMall_Simple.java +++ b/src/main/java/com/since/emp/test/RuwiiMall_Simple.java @@ -7,7 +7,6 @@ import java.sql.ResultSet; import java.util.Arrays; import java.util.HashMap; import java.util.Map; -import java.util.Map.Entry; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.Logger; @@ -17,7 +16,6 @@ import org.apache.logging.log4j.core.config.Configurator; import com.alibaba.druid.pool.DruidPooledConnection; import com.since.emp.base.DbPoolConnection_MiHe; import com.since.emp.base.TradeInfo; -import com.since.emp.service.OrderSync; import com.since.emp.service.OrderSyncs; import com.since.emp.base.OrderInfo; diff --git a/src/com/since/emp/test/ScheduledThreadPoolExecutorTest.java b/src/main/java/com/since/emp/test/ScheduledThreadPoolExecutorTest.java similarity index 98% rename from src/com/since/emp/test/ScheduledThreadPoolExecutorTest.java rename to src/main/java/com/since/emp/test/ScheduledThreadPoolExecutorTest.java index 45766f1..1067939 100644 --- a/src/com/since/emp/test/ScheduledThreadPoolExecutorTest.java +++ b/src/main/java/com/since/emp/test/ScheduledThreadPoolExecutorTest.java @@ -1,6 +1,5 @@ package com.since.emp.test; -import java.util.Vector; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; diff --git a/src/com/since/emp/test/ScheduledThreadPoolTest.java b/src/main/java/com/since/emp/test/ScheduledThreadPoolTest.java similarity index 100% rename from src/com/since/emp/test/ScheduledThreadPoolTest.java rename to src/main/java/com/since/emp/test/ScheduledThreadPoolTest.java diff --git a/src/com/since/emp/test/StOrderSync.java b/src/main/java/com/since/emp/test/StOrderSync.java similarity index 100% rename from src/com/since/emp/test/StOrderSync.java rename to src/main/java/com/since/emp/test/StOrderSync.java diff --git a/src/com/since/emp/test/StOrderSync2.java b/src/main/java/com/since/emp/test/StOrderSync2.java similarity index 99% rename from src/com/since/emp/test/StOrderSync2.java rename to src/main/java/com/since/emp/test/StOrderSync2.java index f77257a..7d5a701 100644 --- a/src/com/since/emp/test/StOrderSync2.java +++ b/src/main/java/com/since/emp/test/StOrderSync2.java @@ -1,7 +1,5 @@ package com.since.emp.test; -import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.sql.ResultSet; import java.sql.SQLException; @@ -12,8 +10,6 @@ import java.util.Date; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.Logger; -import org.apache.logging.log4j.core.config.ConfigurationSource; -import org.apache.logging.log4j.core.config.Configurator; import com.alibaba.druid.pool.DruidPooledConnection; import com.since.emp.base.Config; @@ -23,7 +19,6 @@ import com.since.emp.base.IniReader; import com.since.emp.base.OrderInfo; import com.since.emp.base.TradeInfo; import com.since.emp.service.DataParse; -import com.since.emp.service.OrderSync; import com.since.emp.service.OrderSyncs; import com.since.emp.service.StorageUpdate; diff --git a/src/com/since/emp/test/StOrderSync_lx.java b/src/main/java/com/since/emp/test/StOrderSync_lx.java similarity index 100% rename from src/com/since/emp/test/StOrderSync_lx.java rename to src/main/java/com/since/emp/test/StOrderSync_lx.java diff --git a/src/com/since/emp/test/SubmitLogSimple.java b/src/main/java/com/since/emp/test/SubmitLogSimple.java similarity index 100% rename from src/com/since/emp/test/SubmitLogSimple.java rename to src/main/java/com/since/emp/test/SubmitLogSimple.java diff --git a/src/com/since/emp/test/TaobaoTest.java b/src/main/java/com/since/emp/test/TaobaoTest.java similarity index 95% rename from src/com/since/emp/test/TaobaoTest.java rename to src/main/java/com/since/emp/test/TaobaoTest.java index eafdd1a..2d6ecc3 100644 --- a/src/com/since/emp/test/TaobaoTest.java +++ b/src/main/java/com/since/emp/test/TaobaoTest.java @@ -11,14 +11,9 @@ import org.apache.logging.log4j.core.config.Configurator; import com.since.emp.service.OrderSync; import com.taobao.api.DefaultTaobaoClient; import com.taobao.api.TaobaoClient; -import com.taobao.api.internal.util.StringUtils; import com.taobao.api.request.ItemPromotionRuleGetRequest; -import com.taobao.api.request.RefundGetRequest; -import com.taobao.api.request.RefundsReceiveGetRequest; import com.taobao.api.request.SkusCustomGetRequest; import com.taobao.api.response.ItemPromotionRuleGetResponse; -import com.taobao.api.response.RefundGetResponse; -import com.taobao.api.response.RefundsReceiveGetResponse; import com.taobao.api.response.SkusCustomGetResponse; public class TaobaoTest { diff --git a/src/com/since/emp/test/Test.java b/src/main/java/com/since/emp/test/Test.java similarity index 93% rename from src/com/since/emp/test/Test.java rename to src/main/java/com/since/emp/test/Test.java index 34f346b..47bb876 100644 --- a/src/com/since/emp/test/Test.java +++ b/src/main/java/com/since/emp/test/Test.java @@ -11,48 +11,20 @@ import java.net.URL; import java.net.URLConnection; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; -import org.apache.commons.httpclient.URIException; -import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.util.URIUtil; -import org.apache.http.HttpEntity; -import org.apache.http.entity.StringEntity; -import org.apache.http.util.EntityUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.Logger; import org.apache.logging.log4j.core.config.ConfigurationSource; import org.apache.logging.log4j.core.config.Configurator; -import org.json.JSONObject; -import com.coo8.api.Coo8Client; -import com.coo8.api.DefaultCoo8Client; -import com.coo8.api.request.order.OrdersGetRequest; -import com.coo8.api.response.order.OrdersGetResponse; import com.since.emp.service.OrderSync; -import com.since.emp.service.OrderSyncs; import com.since.emp.service.OrderSyncs.AppConfig; -import com.taobao.api.ApiException; -import com.taobao.api.DefaultTaobaoClient; -import com.taobao.api.TaobaoClient; -import com.taobao.api.request.FenxiaoOrdersGetRequest; -import com.taobao.api.request.SkusCustomGetRequest; -import com.taobao.api.response.FenxiaoOrdersGetResponse; -import com.taobao.api.response.SkusCustomGetResponse; - -import net.sf.json.JSON; -import net.sf.json.xml.XMLSerializer; public class Test { private static Logger logger; diff --git a/src/com/since/emp/test/Test2.java b/src/main/java/com/since/emp/test/Test2.java similarity index 92% rename from src/com/since/emp/test/Test2.java rename to src/main/java/com/since/emp/test/Test2.java index 6813c2a..8be6061 100644 --- a/src/com/since/emp/test/Test2.java +++ b/src/main/java/com/since/emp/test/Test2.java @@ -1,7 +1,5 @@ package com.since.emp.test; -import java.util.Vector; - import org.junit.Test; import com.since.emp.util.HttpRequest; diff --git a/src/com/since/emp/test/ThreadPoolTest.java b/src/main/java/com/since/emp/test/ThreadPoolTest.java similarity index 100% rename from src/com/since/emp/test/ThreadPoolTest.java rename to src/main/java/com/since/emp/test/ThreadPoolTest.java diff --git a/src/com/since/emp/test/VipTest.java b/src/main/java/com/since/emp/test/VipTest.java similarity index 100% rename from src/com/since/emp/test/VipTest.java rename to src/main/java/com/since/emp/test/VipTest.java diff --git a/src/com/since/emp/test/WeimobDemo.java b/src/main/java/com/since/emp/test/WeimobDemo.java similarity index 99% rename from src/com/since/emp/test/WeimobDemo.java rename to src/main/java/com/since/emp/test/WeimobDemo.java index 8d7bb62..7942b70 100644 --- a/src/com/since/emp/test/WeimobDemo.java +++ b/src/main/java/com/since/emp/test/WeimobDemo.java @@ -3,8 +3,6 @@ package com.since.emp.test; import java.text.SimpleDateFormat; import java.util.ArrayList; -import org.json.JSONArray; - import com.google.gson.Gson; import com.since.emp.base.HttpRequestCode; import com.since.emp.base.weimob.MerchantOrderListQueryByCreateTimeParameter; diff --git a/src/com/since/emp/test/XiaoHongShuTest2.java b/src/main/java/com/since/emp/test/XiaoHongShuTest2.java similarity index 100% rename from src/com/since/emp/test/XiaoHongShuTest2.java rename to src/main/java/com/since/emp/test/XiaoHongShuTest2.java diff --git a/src/com/since/emp/test/XiaoHongShu_Simple.java b/src/main/java/com/since/emp/test/XiaoHongShu_Simple.java similarity index 100% rename from src/com/since/emp/test/XiaoHongShu_Simple.java rename to src/main/java/com/since/emp/test/XiaoHongShu_Simple.java diff --git a/src/com/since/emp/test/YitiaoTest.java b/src/main/java/com/since/emp/test/YitiaoTest.java similarity index 99% rename from src/com/since/emp/test/YitiaoTest.java rename to src/main/java/com/since/emp/test/YitiaoTest.java index ce6c354..1881218 100644 --- a/src/com/since/emp/test/YitiaoTest.java +++ b/src/main/java/com/since/emp/test/YitiaoTest.java @@ -16,7 +16,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.Logger; import org.apache.logging.log4j.core.config.ConfigurationSource; import org.apache.logging.log4j.core.config.Configurator; -import org.json.JSONObject; import com.alibaba.druid.pool.DruidPooledConnection; import com.alibaba.fastjson.JSON; diff --git a/src/com/since/emp/test/YouzanDemo.java b/src/main/java/com/since/emp/test/YouzanDemo.java similarity index 100% rename from src/com/since/emp/test/YouzanDemo.java rename to src/main/java/com/since/emp/test/YouzanDemo.java diff --git a/src/com/since/emp/test/dto/PddOpenKmsDecryptBatchRequest.java b/src/main/java/com/since/emp/test/dto/PddOpenKmsDecryptBatchRequest.java similarity index 100% rename from src/com/since/emp/test/dto/PddOpenKmsDecryptBatchRequest.java rename to src/main/java/com/since/emp/test/dto/PddOpenKmsDecryptBatchRequest.java diff --git a/src/com/since/emp/test/vo/CityVo.java b/src/main/java/com/since/emp/test/vo/CityVo.java similarity index 100% rename from src/com/since/emp/test/vo/CityVo.java rename to src/main/java/com/since/emp/test/vo/CityVo.java diff --git a/src/com/since/emp/test/vo/CombineStatusVO.java b/src/main/java/com/since/emp/test/vo/CombineStatusVO.java similarity index 100% rename from src/com/since/emp/test/vo/CombineStatusVO.java rename to src/main/java/com/since/emp/test/vo/CombineStatusVO.java diff --git a/src/com/since/emp/test/vo/DouDianOrderListQueryVO.java b/src/main/java/com/since/emp/test/vo/DouDianOrderListQueryVO.java similarity index 100% rename from src/com/since/emp/test/vo/DouDianOrderListQueryVO.java rename to src/main/java/com/since/emp/test/vo/DouDianOrderListQueryVO.java diff --git a/src/com/since/emp/test/vo/DouDianSignVO.java b/src/main/java/com/since/emp/test/vo/DouDianSignVO.java similarity index 100% rename from src/com/since/emp/test/vo/DouDianSignVO.java rename to src/main/java/com/since/emp/test/vo/DouDianSignVO.java diff --git a/src/com/since/emp/test/vo/NumFreeChangInfo.java b/src/main/java/com/since/emp/test/vo/NumFreeChangInfo.java similarity index 100% rename from src/com/since/emp/test/vo/NumFreeChangInfo.java rename to src/main/java/com/since/emp/test/vo/NumFreeChangInfo.java diff --git a/src/com/since/emp/test/vo/OrderDetialVO.java b/src/main/java/com/since/emp/test/vo/OrderDetialVO.java similarity index 100% rename from src/com/since/emp/test/vo/OrderDetialVO.java rename to src/main/java/com/since/emp/test/vo/OrderDetialVO.java diff --git a/src/com/since/emp/test/vo/PageParamVo.java b/src/main/java/com/since/emp/test/vo/PageParamVo.java similarity index 100% rename from src/com/since/emp/test/vo/PageParamVo.java rename to src/main/java/com/since/emp/test/vo/PageParamVo.java diff --git a/src/com/since/emp/test/vo/ProvinceVo.java b/src/main/java/com/since/emp/test/vo/ProvinceVo.java similarity index 100% rename from src/com/since/emp/test/vo/ProvinceVo.java rename to src/main/java/com/since/emp/test/vo/ProvinceVo.java diff --git a/src/com/since/emp/test/vo/RefundVO.java b/src/main/java/com/since/emp/test/vo/RefundVO.java similarity index 100% rename from src/com/since/emp/test/vo/RefundVO.java rename to src/main/java/com/since/emp/test/vo/RefundVO.java diff --git a/src/com/since/emp/util/Base64Util.java b/src/main/java/com/since/emp/util/Base64Util.java similarity index 100% rename from src/com/since/emp/util/Base64Util.java rename to src/main/java/com/since/emp/util/Base64Util.java diff --git a/src/com/since/emp/util/CloseUtil.java b/src/main/java/com/since/emp/util/CloseUtil.java similarity index 100% rename from src/com/since/emp/util/CloseUtil.java rename to src/main/java/com/since/emp/util/CloseUtil.java diff --git a/src/com/since/emp/util/ConvertUtil.java b/src/main/java/com/since/emp/util/ConvertUtil.java similarity index 100% rename from src/com/since/emp/util/ConvertUtil.java rename to src/main/java/com/since/emp/util/ConvertUtil.java diff --git a/src/com/since/emp/util/DouDianSignUtil.java b/src/main/java/com/since/emp/util/DouDianSignUtil.java similarity index 99% rename from src/com/since/emp/util/DouDianSignUtil.java rename to src/main/java/com/since/emp/util/DouDianSignUtil.java index 807c305..706de11 100644 --- a/src/com/since/emp/util/DouDianSignUtil.java +++ b/src/main/java/com/since/emp/util/DouDianSignUtil.java @@ -21,7 +21,6 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.Feature; -import com.google.gson.GsonBuilder; public class DouDianSignUtil { diff --git a/src/com/since/emp/util/EmojiFilterUtil.java b/src/main/java/com/since/emp/util/EmojiFilterUtil.java similarity index 100% rename from src/com/since/emp/util/EmojiFilterUtil.java rename to src/main/java/com/since/emp/util/EmojiFilterUtil.java diff --git a/src/com/since/emp/util/ExcelCopyUtil.java b/src/main/java/com/since/emp/util/ExcelCopyUtil.java similarity index 100% rename from src/com/since/emp/util/ExcelCopyUtil.java rename to src/main/java/com/since/emp/util/ExcelCopyUtil.java diff --git a/src/com/since/emp/util/HttpRequest.java b/src/main/java/com/since/emp/util/HttpRequest.java similarity index 100% rename from src/com/since/emp/util/HttpRequest.java rename to src/main/java/com/since/emp/util/HttpRequest.java diff --git a/src/com/since/emp/util/JsonUtil.java b/src/main/java/com/since/emp/util/JsonUtil.java similarity index 100% rename from src/com/since/emp/util/JsonUtil.java rename to src/main/java/com/since/emp/util/JsonUtil.java diff --git a/src/com/since/emp/util/MD5Util.java b/src/main/java/com/since/emp/util/MD5Util.java similarity index 100% rename from src/com/since/emp/util/MD5Util.java rename to src/main/java/com/since/emp/util/MD5Util.java diff --git a/src/com/since/emp/util/ParseAddressUtil.java b/src/main/java/com/since/emp/util/ParseAddressUtil.java similarity index 100% rename from src/com/since/emp/util/ParseAddressUtil.java rename to src/main/java/com/since/emp/util/ParseAddressUtil.java diff --git a/src/com/since/emp/util/ProvinceLevelMunicipalityConstants.java b/src/main/java/com/since/emp/util/ProvinceLevelMunicipalityConstants.java similarity index 100% rename from src/com/since/emp/util/ProvinceLevelMunicipalityConstants.java rename to src/main/java/com/since/emp/util/ProvinceLevelMunicipalityConstants.java diff --git a/src/com/since/emp/util/SecurityUtil.java b/src/main/java/com/since/emp/util/SecurityUtil.java similarity index 100% rename from src/com/since/emp/util/SecurityUtil.java rename to src/main/java/com/since/emp/util/SecurityUtil.java diff --git a/src/com/since/emp/util/SqlUtil.java b/src/main/java/com/since/emp/util/SqlUtil.java similarity index 99% rename from src/com/since/emp/util/SqlUtil.java rename to src/main/java/com/since/emp/util/SqlUtil.java index 17f8a05..eb3c96b 100644 --- a/src/com/since/emp/util/SqlUtil.java +++ b/src/main/java/com/since/emp/util/SqlUtil.java @@ -2,11 +2,9 @@ package com.since.emp.util; import com.alibaba.druid.pool.DruidPooledConnection; import com.since.emp.base.*; -import com.since.emp.service.OrderSyncs; import com.since.emp.service.csv.constants.Constants; import org.apache.commons.lang.StringUtils; -import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.HashSet; diff --git a/src/com/since/emp/util/TimeUtil.java b/src/main/java/com/since/emp/util/TimeUtil.java similarity index 100% rename from src/com/since/emp/util/TimeUtil.java rename to src/main/java/com/since/emp/util/TimeUtil.java