Main.java 2.83 KB
package com.taover.bazhuayun.analysis.script.goodscollect;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.poi.excel.ExcelUtil;

public class Main {
	public static void main(String[] args) {
		try {
			analysisGoodsName();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void analysisGoodsName() throws Exception {
		String[] goodsNamePatternArr = new String[]{"商品名称","商品标题","货品名称","商品名称","商品信息","品名","商品名","商品简称","产品名称","物品名称","货品摘要","发货信息","商家SPU编码"};
		String[] goodsSkuNameParrternArr = new String[]{"商品规格名","规格","商品规格","规格名称","商品型号"};
		String dataDirPath = "C:\\Users\\Administrator\\Desktop\\悟空家数据\\25-27";
		String groupInfoFilePath = dataDirPath + File.separator + "仓库群文件.xlsx";
		String goodsDataFileDirPath = dataDirPath + File.separator + "订单数据";
		String logFilePath = dataDirPath + File.separator + "异常文件信息.log";
		String resultDataFilePath = dataDirPath + File.separator + "程序商品识别结果.xls";

		//加载基础数据,文件来源
		GroupInfoExcelData groupInfoData = new GroupInfoExcelData();
		groupInfoData.load(groupInfoFilePath);

		//读取文件列表,交由解析器处理
		GoodsDataFileParser parser = new GoodsDataFileParser(goodsNamePatternArr, goodsSkuNameParrternArr, groupInfoData);
		parser.setFileNameIgnorePreffix("【异常物流信息】-");
		parser.parse(groupInfoData, new File(goodsDataFileDirPath).listFiles());

		//结果写入结果文件
		ExcelUtil.getWriter(new File(resultDataFilePath)).write(transListBeanTo2List(parser.getResult())).flush();

		//执行信息写入日志文件
		FileUtil.writeString(parser.getLogString(), logFilePath, CharsetUtil.CHARSET_UTF_8);
	}

	private static List<List<Object>> transListBeanTo2List(List<GoodsInfoRow> result) {
		List<List<Object>> data = new ArrayList<List<Object>>();
		
		//加入HEADER
		List<Object> header = new ArrayList<Object>();
		header.add("原表名称");
		header.add("商品名称");
		header.add("原表规格");
		header.add("自选规格");
		header.add("仓库群名称");
		header.add("发文件的人");
		header.add("来源文件");
		data.add(header);
		
		//加入BODY
		for(int i=0; i<result.size(); ++i) {
			GoodsInfoRow row = result.get(i);
			List<Object> item = new ArrayList<Object>();
			item.add(row.getOriginGoodsName());
			item.add(row.getCommonGoodsName());
			item.add(row.getOriginGoodsSkuName());
			item.add(row.getCommonGoodsSkuName());
			item.add(row.getGroupNickname());
			item.add(row.getSenderNickname());
			item.add(row.getFileName());
			data.add(item);
		}
		
		return data;
	}
}