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 | +} | ... | ... |