Commit 09729c59c2a3daf57a96f36167a65cc5d9ec0d33
1 parent
58e01837
Exists in
master
update some func
Showing
7 changed files
with
315 additions
and
83 deletions
Show diff stats
build.gradle
| ... | ... | @@ -22,12 +22,11 @@ dependencies { |
| 22 | 22 | compile( |
| 23 | 23 | "org.apache.poi:poi:3.16", |
| 24 | 24 | "org.apache.poi:poi-excelant:3.16", |
| 25 | - "log4j:log4j:1.2.17", | |
| 26 | - "commons-logging:commons-logging:1.2", | |
| 27 | 25 | "ch.ethz.ganymed:ganymed-ssh2:build210", |
| 28 | 26 | "org.apache.velocity:velocity:1.6.4", |
| 29 | 27 | "com.squareup.okhttp3:okhttp:3.14.1", |
| 30 | - "com.belerweb:pinyin4j:2.5.1" | |
| 28 | + "com.belerweb:pinyin4j:2.5.1", | |
| 29 | + "org.slf4j:slf4j-api:1.7.28" | |
| 31 | 30 | ) |
| 32 | 31 | } |
| 33 | 32 | |
| ... | ... | @@ -55,7 +54,7 @@ uploadArchives { |
| 55 | 54 | authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) |
| 56 | 55 | } |
| 57 | 56 | pom.project { |
| 58 | - version '1.0.5' | |
| 57 | + version '1.1.2' | |
| 59 | 58 | artifactId ARTIFACT_Id |
| 60 | 59 | groupId GROUP_ID |
| 61 | 60 | packaging TYPE | ... | ... |
src/main/java/com/taover/util/UtilExcel.java
| ... | ... | @@ -10,8 +10,6 @@ import java.util.HashMap; |
| 10 | 10 | import java.util.List; |
| 11 | 11 | import java.util.Map; |
| 12 | 12 | |
| 13 | -import org.apache.commons.logging.Log; | |
| 14 | -import org.apache.commons.logging.LogFactory; | |
| 15 | 13 | import org.apache.poi.hssf.usermodel.HSSFCell; |
| 16 | 14 | import org.apache.poi.hssf.usermodel.HSSFWorkbook; |
| 17 | 15 | import org.apache.poi.hssf.util.HSSFColor; |
| ... | ... | @@ -68,16 +66,8 @@ public class UtilExcel { |
| 68 | 66 | * @param data |
| 69 | 67 | * @param path |
| 70 | 68 | */ |
| 71 | - public static File saveExcelFromListString(String sheetName, List<String[]> data, String path){ | |
| 72 | - Log log = LogFactory.getLog(UtilExcel.class); | |
| 73 | - Workbook wb = null; | |
| 74 | - try { | |
| 75 | - wb = UtilExcel.getWorkbook(path, false); | |
| 76 | - } catch (Exception e1) { | |
| 77 | - e1.printStackTrace(); | |
| 78 | - log.error(e1.getStackTrace().toString()+"保存excel文件失败,失败原因不能获取Workbook对象!msg="+e1.getMessage()); | |
| 79 | - return null; | |
| 80 | - } | |
| 69 | + public static File saveExcelFromListString(String sheetName, List<String[]> data, String path) throws Exception{ | |
| 70 | + Workbook wb = UtilExcel.getWorkbook(path, false); | |
| 81 | 71 | //创建Excel工作簿对象 |
| 82 | 72 | Sheet sheet = wb.createSheet(sheetName);//创建Excel工作表对象 |
| 83 | 73 | for(int i=0; i<data.size(); ++i){ |
| ... | ... | @@ -124,16 +114,8 @@ public class UtilExcel { |
| 124 | 114 | * @param data |
| 125 | 115 | * @param path |
| 126 | 116 | */ |
| 127 | - public static void saveExcel(String sheetName, List<List<Object>> data, String path){ | |
| 128 | - Log log =LogFactory.getLog(UtilExcel.class); | |
| 129 | - Workbook wb = null; | |
| 130 | - try { | |
| 131 | - wb = UtilExcel.getWorkbook(path, false); | |
| 132 | - } catch (Exception e1) { | |
| 133 | - e1.printStackTrace(); | |
| 134 | - log.error(e1.getStackTrace().toString()+"保存excel文件失败,失败原因不能获取Workbook对象!msg="+e1.getMessage()); | |
| 135 | - return; | |
| 136 | - } | |
| 117 | + public static void saveExcel(String sheetName, List<List<Object>> data, String path) throws Exception{ | |
| 118 | + Workbook wb = UtilExcel.getWorkbook(path, false); | |
| 137 | 119 | //创建Excel工作簿对象 |
| 138 | 120 | Sheet sheet = wb.createSheet(sheetName);//创建Excel工作表对象 |
| 139 | 121 | for(int i=0; i<data.size(); ++i){ |
| ... | ... | @@ -183,16 +165,8 @@ public class UtilExcel { |
| 183 | 165 | * @param data |
| 184 | 166 | * @param path |
| 185 | 167 | */ |
| 186 | - public static void saveExcel(String sheetName, List<List<Object>> data, String path, List<Short> backColorList){ | |
| 187 | - Log log =LogFactory.getLog(UtilExcel.class); | |
| 188 | - Workbook wb = null; | |
| 189 | - try { | |
| 190 | - wb = UtilExcel.getWorkbook(path, false); | |
| 191 | - } catch (Exception e1) { | |
| 192 | - e1.printStackTrace(); | |
| 193 | - log.error(e1.getStackTrace().toString()+"保存excel文件失败,失败原因不能获取Workbook对象!msg="+e1.getMessage()); | |
| 194 | - return; | |
| 195 | - } | |
| 168 | + public static void saveExcel(String sheetName, List<List<Object>> data, String path, List<Short> backColorList) throws Exception{ | |
| 169 | + Workbook wb = UtilExcel.getWorkbook(path, false); | |
| 196 | 170 | Map<Short, CellStyle> cellStyleMap = new HashMap<Short, CellStyle>(); |
| 197 | 171 | Sheet sheet = wb.createSheet(sheetName);//创建Excel工作表对象 |
| 198 | 172 | for(int i=0; i<data.size(); ++i){ |
| ... | ... | @@ -250,27 +224,53 @@ public class UtilExcel { |
| 250 | 224 | } |
| 251 | 225 | |
| 252 | 226 | /** |
| 253 | - * 读取excel表 | |
| 227 | + * 读取excel表--当前激活的工作表 | |
| 254 | 228 | * @param path |
| 255 | 229 | */ |
| 256 | - public static List<List<Object>> readExcel(String filepath){ | |
| 230 | + public static List<List<Object>> readExcel(String filepath) throws Exception{ | |
| 257 | 231 | File file = new File(filepath); |
| 258 | 232 | List<List<Object>> result = new ArrayList<List<Object>>(); |
| 259 | 233 | if(!file.exists()){ |
| 260 | 234 | return result; |
| 261 | 235 | } |
| 262 | - Log log = LogFactory.getLog(UtilExcel.class); | |
| 263 | - Workbook wb = null; | |
| 264 | - try { | |
| 265 | - wb = UtilExcel.getWorkbook(filepath, true); | |
| 266 | - } catch (Exception e1) { | |
| 267 | - e1.printStackTrace(); | |
| 268 | - log.error(e1.getStackTrace().toString()+"保存excel文件失败,失败原因不能获取Workbook对象!msg="+e1.getMessage()); | |
| 269 | - return new ArrayList<List<Object>>(); | |
| 236 | + Workbook wb = UtilExcel.getWorkbook(filepath, true); | |
| 237 | + return readExcelBySheetIndex(filepath, wb.getActiveSheetIndex()); | |
| 238 | + } | |
| 239 | + | |
| 240 | + /** | |
| 241 | + * 读取excel表--所有工作表 | |
| 242 | + * @param path | |
| 243 | + */ | |
| 244 | + public static List<List<Object>> readExcelAllSheet(String filepath) throws Exception{ | |
| 245 | + File file = new File(filepath); | |
| 246 | + List<List<Object>> result = new ArrayList<List<Object>>(); | |
| 247 | + if(!file.exists()){ | |
| 248 | + return result; | |
| 249 | + } | |
| 250 | + Workbook wb = UtilExcel.getWorkbook(filepath, true); | |
| 251 | + int sheetNumber = wb.getNumberOfSheets(); | |
| 252 | + | |
| 253 | + for(int sheetIndex=0; sheetIndex<sheetNumber; ++sheetIndex){ | |
| 254 | + result.addAll(readExcelBySheetIndex(filepath, sheetIndex)); | |
| 255 | + } | |
| 256 | + | |
| 257 | + return result; | |
| 258 | + } | |
| 259 | + | |
| 260 | + /** | |
| 261 | + * 读取excel表--当前激活的工作表 | |
| 262 | + * @param path | |
| 263 | + */ | |
| 264 | + public static List<List<Object>> readExcelBySheetIndex(String filepath, int sheetIndex) throws Exception{ | |
| 265 | + File file = new File(filepath); | |
| 266 | + List<List<Object>> result = new ArrayList<List<Object>>(); | |
| 267 | + if(!file.exists()){ | |
| 268 | + return result; | |
| 270 | 269 | } |
| 270 | + Workbook wb = UtilExcel.getWorkbook(filepath, true); | |
| 271 | 271 | //创建Excel工作簿对象 |
| 272 | 272 | DecimalFormat df = new DecimalFormat("0"); |
| 273 | - Sheet sheet = wb.getSheetAt(wb.getActiveSheetIndex()); | |
| 273 | + Sheet sheet = wb.getSheetAt(sheetIndex); | |
| 274 | 274 | int start = sheet.getFirstRowNum(); |
| 275 | 275 | int end = sheet.getLastRowNum(); |
| 276 | 276 | if(end > UtilExcel.maxExcelRowNum){ |
| ... | ... | @@ -309,7 +309,13 @@ public class UtilExcel { |
| 309 | 309 | |
| 310 | 310 | public static void main(String args[]){ |
| 311 | 311 | String filepath = "C:\\Users\\root\\Desktop\\千丁-6.27.xlsx"; |
| 312 | - List<List<Object>> data = UtilExcel.readExcel(filepath); | |
| 312 | + List<List<Object>> data = null; | |
| 313 | + try { | |
| 314 | + data = UtilExcel.readExcel(filepath); | |
| 315 | + } catch (Exception e) { | |
| 316 | + // TODO Auto-generated catch block | |
| 317 | + e.printStackTrace(); | |
| 318 | + } | |
| 313 | 319 | List<Short> styleList = new ArrayList<Short>(); |
| 314 | 320 | for(int i=0; i<data.size(); ++i){ |
| 315 | 321 | if(i == 1)styleList.add(Short.valueOf(HSSFColor.RED.index)); |
| ... | ... | @@ -319,6 +325,11 @@ public class UtilExcel { |
| 319 | 325 | } |
| 320 | 326 | System.out.println(""); |
| 321 | 327 | } |
| 322 | - UtilExcel.saveExcel("测试", data, "D:\\12345.xlsx", styleList); | |
| 328 | + try { | |
| 329 | + UtilExcel.saveExcel("测试", data, "D:\\12345.xlsx", styleList); | |
| 330 | + } catch (Exception e) { | |
| 331 | + // TODO Auto-generated catch block | |
| 332 | + e.printStackTrace(); | |
| 333 | + } | |
| 323 | 334 | } |
| 324 | 335 | } | ... | ... |
src/main/java/com/taover/util/UtilLog.java
| ... | ... | @@ -5,12 +5,12 @@ import java.io.StringWriter; |
| 5 | 5 | import java.util.HashMap; |
| 6 | 6 | import java.util.Map; |
| 7 | 7 | |
| 8 | -import org.apache.commons.logging.Log; | |
| 9 | -import org.apache.commons.logging.LogFactory; | |
| 8 | +import org.slf4j.Logger; | |
| 9 | +import org.slf4j.LoggerFactory; | |
| 10 | 10 | |
| 11 | 11 | |
| 12 | 12 | public class UtilLog { |
| 13 | - private static Map<String, Log> logByClassName = new HashMap<String, Log>(); | |
| 13 | + private static Map<String, Logger> logByClassName = new HashMap<String, Logger>(); | |
| 14 | 14 | |
| 15 | 15 | /** |
| 16 | 16 | * 输出日志文本 |
| ... | ... | @@ -19,9 +19,9 @@ public class UtilLog { |
| 19 | 19 | */ |
| 20 | 20 | public static void infoForMessage(String message, Class infoClass){ |
| 21 | 21 | String className = infoClass.getName(); |
| 22 | - Log log = logByClassName.get(infoClass.getName()); | |
| 22 | + Logger log = logByClassName.get(infoClass.getName()); | |
| 23 | 23 | if(log == null){ |
| 24 | - log = LogFactory.getLog(infoClass); | |
| 24 | + log = LoggerFactory.getLogger(infoClass); | |
| 25 | 25 | if(log == null){ |
| 26 | 26 | return; |
| 27 | 27 | } |
| ... | ... | @@ -49,9 +49,9 @@ public class UtilLog { |
| 49 | 49 | */ |
| 50 | 50 | public static void errorForMessage(String message, Class infoClass){ |
| 51 | 51 | String className = infoClass.getName(); |
| 52 | - Log log = logByClassName.get(infoClass.getName()); | |
| 52 | + Logger log = logByClassName.get(infoClass.getName()); | |
| 53 | 53 | if(log == null){ |
| 54 | - log = LogFactory.getLog(infoClass); | |
| 54 | + log = LoggerFactory.getLogger(infoClass); | |
| 55 | 55 | if(log == null){ |
| 56 | 56 | return; |
| 57 | 57 | } | ... | ... |
src/main/java/com/taover/util/UtilObject.java
| ... | ... | @@ -298,6 +298,32 @@ public class UtilObject { |
| 298 | 298 | return result; |
| 299 | 299 | } |
| 300 | 300 | |
| 301 | + public static <E> E mapToObject(Map<String, Object> dataMap, Class<E> beanClass) throws Exception{ | |
| 302 | + if(beanClass == null){ | |
| 303 | + return null; | |
| 304 | + } | |
| 305 | + E result = beanClass.newInstance(); | |
| 306 | + Iterator<String> keyIter = dataMap.keySet().iterator(); | |
| 307 | + while(keyIter.hasNext()){ | |
| 308 | + String keyName = keyIter.next(); | |
| 309 | + String camelName = UtilString.camelName(keyName); | |
| 310 | + Object keyValue = dataMap.get(keyName); | |
| 311 | + | |
| 312 | + if(keyValue == null){ | |
| 313 | + continue; | |
| 314 | + } | |
| 315 | + | |
| 316 | + try { | |
| 317 | + Field keyField = beanClass.getDeclaredField(camelName); | |
| 318 | + keyField.setAccessible(true); | |
| 319 | + keyField.set(result, keyValue); | |
| 320 | + } catch (Exception e) { | |
| 321 | + e.printStackTrace(); | |
| 322 | + } | |
| 323 | + } | |
| 324 | + return result; | |
| 325 | + } | |
| 326 | + | |
| 301 | 327 | public static void main(String args[]){ |
| 302 | 328 | |
| 303 | 329 | class Temp2{ | ... | ... |
src/main/java/com/taover/util/UtilProperties.java
| ... | ... | @@ -8,12 +8,7 @@ import java.io.PrintWriter; |
| 8 | 8 | import java.io.StringWriter; |
| 9 | 9 | import java.util.Properties; |
| 10 | 10 | |
| 11 | -import org.apache.commons.logging.Log; | |
| 12 | -import org.apache.commons.logging.LogFactory; | |
| 13 | - | |
| 14 | 11 | public class UtilProperties { |
| 15 | - Log log = LogFactory.getLog(this.getClass()); | |
| 16 | - | |
| 17 | 12 | public static String getPropertiesContent(String fileName){ |
| 18 | 13 | InputStream inStream = UtilProperties.class.getClassLoader().getResourceAsStream("/conf/"+fileName); |
| 19 | 14 | try { | ... | ... |
src/main/java/com/taover/util/UtilTemplate.java
| 1 | 1 | package com.taover.util; |
| 2 | 2 | |
| 3 | -import java.io.PrintWriter; | |
| 4 | 3 | import java.io.StringWriter; |
| 5 | 4 | import java.util.Iterator; |
| 6 | 5 | import java.util.Map; |
| 7 | 6 | import java.util.Properties; |
| 8 | 7 | import java.util.Set; |
| 9 | 8 | |
| 10 | -import org.apache.commons.logging.Log; | |
| 11 | -import org.apache.commons.logging.LogFactory; | |
| 12 | 9 | import org.apache.velocity.Template; |
| 13 | 10 | import org.apache.velocity.VelocityContext; |
| 14 | 11 | import org.apache.velocity.app.VelocityEngine; |
| ... | ... | @@ -21,7 +18,7 @@ public class UtilTemplate { |
| 21 | 18 | * @param data |
| 22 | 19 | * @return |
| 23 | 20 | */ |
| 24 | - public static String renderTemplateClass(String templateClassPath, Map<String, Object> data){ | |
| 21 | + public static String renderTemplateClass(String templateClassPath, Map<String, Object> data) throws Exception{ | |
| 25 | 22 | //初始化 |
| 26 | 23 | VelocityEngine ve = new VelocityEngine(); |
| 27 | 24 | Properties p = new Properties(); |
| ... | ... | @@ -32,14 +29,7 @@ public class UtilTemplate { |
| 32 | 29 | p.put(VelocityEngine.OUTPUT_ENCODING, "UTF-8"); |
| 33 | 30 | p.put(VelocityEngine.ENCODING_DEFAULT, "UTF-8"); |
| 34 | 31 | p.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); |
| 35 | - try { | |
| 36 | - ve.init(p); | |
| 37 | - } catch (Exception e) { | |
| 38 | - StringWriter sw = new StringWriter(); | |
| 39 | - e.printStackTrace(new PrintWriter(sw, true)); | |
| 40 | - Log log = LogFactory.getLog(UtilTemplate.class); | |
| 41 | - log.error(sw.toString()); | |
| 42 | - } | |
| 32 | + ve.init(p); | |
| 43 | 33 | //取得VelocityContext对象 |
| 44 | 34 | VelocityContext context = new VelocityContext(); |
| 45 | 35 | //向context中放入要在模板中用到的数据对象 |
| ... | ... | @@ -57,16 +47,9 @@ public class UtilTemplate { |
| 57 | 47 | } |
| 58 | 48 | Template template; |
| 59 | 49 | StringWriter sw = new StringWriter(); |
| 60 | - try { | |
| 61 | - template = ve.getTemplate(templateClassPath, "UTF-8"); | |
| 62 | - //合并输出 | |
| 63 | - template.merge( context, sw); | |
| 64 | - } catch (Exception e) { | |
| 65 | - StringWriter swE = new StringWriter(); | |
| 66 | - e.printStackTrace(new PrintWriter(swE, true)); | |
| 67 | - Log log = LogFactory.getLog(UtilTemplate.class); | |
| 68 | - log.error(sw.toString()); | |
| 69 | - } | |
| 50 | + template = ve.getTemplate(templateClassPath, "UTF-8"); | |
| 51 | + //合并输出 | |
| 52 | + template.merge( context, sw); | |
| 70 | 53 | return sw.toString(); |
| 71 | 54 | } |
| 72 | 55 | } | ... | ... |
| ... | ... | @@ -0,0 +1,218 @@ |
| 1 | +import java.util.ArrayList; | |
| 2 | +import java.util.HashMap; | |
| 3 | +import java.util.Iterator; | |
| 4 | +import java.util.List; | |
| 5 | +import java.util.Map; | |
| 6 | + | |
| 7 | +import com.taover.util.UtilExcel; | |
| 8 | + | |
| 9 | +public class TempExcel { | |
| 10 | + public static void main(String[] args){ | |
| 11 | + dealExcel(); | |
| 12 | + } | |
| 13 | + | |
| 14 | + public static final String SEPARATE_CONSIGNEE_MOBILE = "__"; | |
| 15 | + public static final int EXCEL_TIANMAO_CONSIGNEE_INDEX = 14; | |
| 16 | + public static final int EXCEL_TIANMAO_MOBILE_INDEX = 18; | |
| 17 | + public static final int EXCEL_TIANMAO_ORDERDATE_INDEX = 20; | |
| 18 | + public static final int EXCEL_TIANMAO_GOODSNUMBER_INDEX = 26; | |
| 19 | + public static final int EXCEL_JD_CONSIGNEE_INDEX = 14; | |
| 20 | + public static final int EXCEL_JD_MOBILE_INDEX = 16; | |
| 21 | + public static final int EXCEL_JD_ORDERDATE_INDEX = 24; | |
| 22 | + public static final int EXCEL_JD_GOODSNUMBER_INDEX = 3; | |
| 23 | + | |
| 24 | + public static void dealExcel(){ | |
| 25 | + try { | |
| 26 | + List<List<Object>> tianmaoData = UtilExcel.readExcel("D:\\tempexcel\\tianmao.xlsx"); | |
| 27 | + List<List<Object>> jdData = UtilExcel.readExcel("D:\\tempexcel\\jd.xls"); | |
| 28 | + tianmaoData.remove(0); | |
| 29 | + jdData.remove(0); | |
| 30 | + | |
| 31 | + //按下单人及下单手机号分类 | |
| 32 | + Map<String, List<List<Object>>> separateData = new HashMap<String, List<List<Object>>>(); | |
| 33 | + for(int i=0; i<tianmaoData.size(); ++i){ | |
| 34 | + List<Object> tempData = tianmaoData.get(i); | |
| 35 | + injectMap(separateData, getNameAndMobileByTianmao(tempData), tempData); | |
| 36 | + } | |
| 37 | + for(int i=0; i<jdData.size(); ++i){ | |
| 38 | + List<Object> tempData = jdData.get(i); | |
| 39 | + injectMap(separateData, getNameAndMobileByJd(tempData), tempData); | |
| 40 | + } | |
| 41 | + | |
| 42 | + //分析下单分类 | |
| 43 | + List<SeparateAnalysisInfo> analysisData = new ArrayList<SeparateAnalysisInfo>(); | |
| 44 | + Iterator<String> keyIter = separateData.keySet().iterator(); | |
| 45 | + while(keyIter.hasNext()){ | |
| 46 | + String keyName = keyIter.next(); | |
| 47 | + List<List<Object>> keyData = separateData.get(keyName); | |
| 48 | + if(keyData.size() <= 1){ | |
| 49 | + continue; | |
| 50 | + } | |
| 51 | + | |
| 52 | + String[] keyNameSep = keyName.split(TempExcel.SEPARATE_CONSIGNEE_MOBILE); | |
| 53 | + if(keyNameSep.length == 4){ | |
| 54 | + SeparateAnalysisInfo anaInfo = new SeparateAnalysisInfo(keyNameSep[0], keyNameSep[1], keyData, Integer.valueOf(keyNameSep[2]), Integer.valueOf(keyNameSep[3])); | |
| 55 | + if(anaInfo.getDescList().size() > 1){ | |
| 56 | + analysisData.add(anaInfo); | |
| 57 | + } | |
| 58 | + } | |
| 59 | + } | |
| 60 | + | |
| 61 | + //打印信息,保存信息 | |
| 62 | + List<List<Object>> resultInfo = new ArrayList<List<Object>>(); | |
| 63 | + List<Object> blankRow = new ArrayList<Object>(); | |
| 64 | + for(int i=0; i<analysisData.size(); ++i){ | |
| 65 | + SeparateAnalysisInfo item = analysisData.get(i); | |
| 66 | + | |
| 67 | + //添加空白间距行 | |
| 68 | + resultInfo.add(blankRow); | |
| 69 | + resultInfo.add(blankRow); | |
| 70 | + | |
| 71 | + //用户信息列 | |
| 72 | + List<Object> userInfo = new ArrayList<Object>(); | |
| 73 | + userInfo.add("收货人:"+item.getConsignee()); | |
| 74 | + userInfo.add("电话号:"+item.getMobile()); | |
| 75 | + resultInfo.add(userInfo); | |
| 76 | + | |
| 77 | + //下单信息列 | |
| 78 | + List<Object> descInfo = new ArrayList<Object>(); | |
| 79 | + descInfo.add("下单简述"); | |
| 80 | + for(int j=0; j<item.getDescList().size(); ++j){ | |
| 81 | + descInfo.add(item.getDescList().get(j)); | |
| 82 | + } | |
| 83 | + resultInfo.add(descInfo); | |
| 84 | + | |
| 85 | + //订单详情 | |
| 86 | + resultInfo.addAll(item.getOrderData()); | |
| 87 | + } | |
| 88 | + UtilExcel.saveExcel("处理结果", resultInfo, "D:\\tempexcel\\resultinfo.xlsx"); | |
| 89 | + } catch (Exception e) { | |
| 90 | + e.printStackTrace(); | |
| 91 | + } | |
| 92 | + } | |
| 93 | + | |
| 94 | + public static void injectMap(Map<String, List<List<Object>>> separateData, String keyName, List<Object> keyValue){ | |
| 95 | + if(separateData.containsKey(keyName)){ | |
| 96 | + separateData.get(keyName).add(keyValue); | |
| 97 | + }else{ | |
| 98 | + List<List<Object>> tempData = new ArrayList<List<Object>>(); | |
| 99 | + tempData.add(keyValue); | |
| 100 | + separateData.put(keyName, tempData); | |
| 101 | + } | |
| 102 | + } | |
| 103 | + | |
| 104 | + public static String getNameAndMobileByTianmao(List<Object> data){ | |
| 105 | + String name = data.get(EXCEL_TIANMAO_CONSIGNEE_INDEX).toString(); | |
| 106 | + String mobile = data.get(EXCEL_TIANMAO_MOBILE_INDEX).toString(); | |
| 107 | + return name+SEPARATE_CONSIGNEE_MOBILE+mobile+SEPARATE_CONSIGNEE_MOBILE+EXCEL_TIANMAO_ORDERDATE_INDEX+SEPARATE_CONSIGNEE_MOBILE+EXCEL_TIANMAO_GOODSNUMBER_INDEX; | |
| 108 | + } | |
| 109 | + | |
| 110 | + public static String getNameAndMobileByJd(List<Object> data){ | |
| 111 | + String name = data.get(EXCEL_JD_CONSIGNEE_INDEX).toString(); | |
| 112 | + String mobile = data.get(EXCEL_JD_MOBILE_INDEX).toString(); | |
| 113 | + return name+SEPARATE_CONSIGNEE_MOBILE+mobile+SEPARATE_CONSIGNEE_MOBILE+EXCEL_TIANMAO_ORDERDATE_INDEX+SEPARATE_CONSIGNEE_MOBILE+EXCEL_TIANMAO_GOODSNUMBER_INDEX; | |
| 114 | + } | |
| 115 | +} | |
| 116 | + | |
| 117 | +class SeparateAnalysisInfo{ | |
| 118 | + private String consignee; | |
| 119 | + private String mobile; | |
| 120 | + private List<String> descList; | |
| 121 | + private List<List<Object>> orderData; | |
| 122 | + | |
| 123 | + public SeparateAnalysisInfo(String consignee, String mobile, List<List<Object>> data, int excelOrderDateIndex, int excelGoodsNumberIndex){ | |
| 124 | + this.consignee = consignee; | |
| 125 | + this.mobile = mobile; | |
| 126 | + this.orderData = data; | |
| 127 | + | |
| 128 | + for(int i=0; i<data.size(); ++i){ | |
| 129 | + List<Object> dataItem = data.get(i); | |
| 130 | + if(dataItem.get(excelOrderDateIndex) == null){ | |
| 131 | + System.out.println("没有下单日期信息:"+this.consignee+"__"+this.mobile); | |
| 132 | + continue; | |
| 133 | + } | |
| 134 | + if(dataItem.get(excelGoodsNumberIndex) == null){ | |
| 135 | + System.out.println("没有商品数量信息:"+this.consignee+"__"+this.mobile); | |
| 136 | + continue; | |
| 137 | + } | |
| 138 | + | |
| 139 | + String orderDate = dataItem.get(excelOrderDateIndex).toString(); | |
| 140 | + if(orderDate.contains("-")){ | |
| 141 | + orderDate = orderDate.substring(0, 10); | |
| 142 | + }else{ | |
| 143 | + String[] dateInfo = orderDate.split(" "); | |
| 144 | + if(dateInfo.length > 0){ | |
| 145 | + orderDate = dateInfo[0].replace("/", "-"); | |
| 146 | + } | |
| 147 | + } | |
| 148 | + String goodsNumber = dataItem.get(excelGoodsNumberIndex).toString(); | |
| 149 | + this.addDescListItem(orderDate, goodsNumber); | |
| 150 | + } | |
| 151 | + } | |
| 152 | + | |
| 153 | + public String getConsignee() { | |
| 154 | + return consignee; | |
| 155 | + } | |
| 156 | + public void setConsignee(String consignee) { | |
| 157 | + this.consignee = consignee; | |
| 158 | + } | |
| 159 | + public String getMobile() { | |
| 160 | + return mobile; | |
| 161 | + } | |
| 162 | + public void setMobile(String mobile) { | |
| 163 | + this.mobile = mobile; | |
| 164 | + } | |
| 165 | + public List<String> getDescList() { | |
| 166 | + return descList; | |
| 167 | + } | |
| 168 | + public void setDescList(List<String> descList) { | |
| 169 | + this.descList = descList; | |
| 170 | + } | |
| 171 | + | |
| 172 | + public void addDescListItem(String orderDate, String goodsNumber){ | |
| 173 | + if(this.descList == null){ | |
| 174 | + this.descList = new ArrayList<String>(); | |
| 175 | + } | |
| 176 | + String separateStr = "__"; | |
| 177 | + | |
| 178 | + //检查是否有重复日期的情况 | |
| 179 | + boolean existsDate = false; | |
| 180 | + for(int i=0; i<this.descList.size(); ++i){ | |
| 181 | + String tempDesc = this.descList.get(i); | |
| 182 | + if(tempDesc.startsWith(orderDate)){ | |
| 183 | + existsDate = true; | |
| 184 | + String[] tempData = tempDesc.split(separateStr); | |
| 185 | + if(tempData.length > 1){ | |
| 186 | + String[] tempDataGoods = tempData[1].split("件"); | |
| 187 | + if(tempDataGoods.length > 0){ | |
| 188 | + try{ | |
| 189 | + int totalNumber = Integer.valueOf(tempDataGoods[0]).intValue()+Integer.valueOf(goodsNumber).intValue(); | |
| 190 | + this.descList.set(i, orderDate+separateStr+totalNumber+"件"); | |
| 191 | + }catch(Exception e){ | |
| 192 | + e.printStackTrace(); | |
| 193 | + } | |
| 194 | + } | |
| 195 | + } | |
| 196 | + | |
| 197 | + break; | |
| 198 | + } | |
| 199 | + } | |
| 200 | + if(!existsDate){ | |
| 201 | + this.descList.add(orderDate+separateStr+goodsNumber+"件"); | |
| 202 | + } | |
| 203 | + } | |
| 204 | + | |
| 205 | + public List<List<Object>> getOrderData() { | |
| 206 | + return orderData; | |
| 207 | + } | |
| 208 | + public void setOrderData(List<List<Object>> orderData) { | |
| 209 | + this.orderData = orderData; | |
| 210 | + } | |
| 211 | + | |
| 212 | + public void addOrderDataItem(List<Object> orderData){ | |
| 213 | + if(this.orderData == null){ | |
| 214 | + this.orderData = new ArrayList<List<Object>>(); | |
| 215 | + } | |
| 216 | + this.orderData.add(orderData); | |
| 217 | + } | |
| 218 | +} | ... | ... |