|
|
@@ -1,15 +1,20 @@
|
|
|
package com.uas.util;
|
|
|
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
+import org.dom4j.Document;
|
|
|
+import org.dom4j.Element;
|
|
|
+import org.dom4j.io.SAXReader;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.io.*;
|
|
|
+import java.sql.Connection;
|
|
|
import java.sql.ResultSet;
|
|
|
import java.sql.SQLException;
|
|
|
import java.sql.Statement;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.UUID;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+import static com.uas.util.BaseUtil.getInsertSqlbyMaps;
|
|
|
|
|
|
/**
|
|
|
* @author koul
|
|
|
@@ -118,4 +123,89 @@ public class FileUtil {
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 解析xml文件,生成数据
|
|
|
+ * @param file xml文件
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ public static boolean getDataAndSqlByXml(Connection con , File file,String sob){
|
|
|
+ boolean bool = false;
|
|
|
+ List<String> sqls = new ArrayList<String>();
|
|
|
+ InputStream in = null;
|
|
|
+ try {
|
|
|
+ in = new FileInputStream(file);
|
|
|
+ } catch (FileNotFoundException e1) {
|
|
|
+ e1.printStackTrace();
|
|
|
+ }
|
|
|
+ SAXReader reader = new SAXReader();
|
|
|
+ Document doc = null;
|
|
|
+ try {
|
|
|
+ doc = reader.read(in);
|
|
|
+ in.close();
|
|
|
+ } catch (Exception e1) {
|
|
|
+ e1.printStackTrace();
|
|
|
+ }
|
|
|
+ Element root = doc.getRootElement();
|
|
|
+ List<Element> e = root.elements();
|
|
|
+ List<Map<String, Object>> maps = new ArrayList<>();
|
|
|
+ Object DocumentDateTime =null;
|
|
|
+ Object DocumentNumber = null;
|
|
|
+ for(Element el:e){
|
|
|
+ String name = el.getName();
|
|
|
+ if(name=="Header"){
|
|
|
+ List<Element> elements = el.elements();
|
|
|
+ for (Element ee:elements) {
|
|
|
+ String name1 = ee.getName();
|
|
|
+ if(name1=="DocumentNumber"){
|
|
|
+ DocumentNumber=ee.getData();
|
|
|
+ }else if(name1=="DocumentDateTime"){
|
|
|
+ DocumentDateTime=ee.getData();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(name=="Detail"){
|
|
|
+ List<Element> elements = el.elements();
|
|
|
+ for (Element ee:elements) {
|
|
|
+ List<Element> elements1 = ee.elements();
|
|
|
+ String name1 = ee.getName();
|
|
|
+ if (name1=="Item") {
|
|
|
+ Map<String, Object> detailMap = new HashMap<>();
|
|
|
+ for (Element eel : elements1) {
|
|
|
+ String name2 = eel.getName();
|
|
|
+ if (name2 == "LineNo") {
|
|
|
+ detailMap.put("sq_lineno",eel.getData());
|
|
|
+ } else if (name2 == "WhouseCode") {
|
|
|
+ detailMap.put("sq_whousecode",eel.getData());
|
|
|
+ } else if (name2 == "WhouseName") {
|
|
|
+ detailMap.put("sq_whousename",eel.getData());
|
|
|
+ } else if (name2 == "ProdCode") {
|
|
|
+ detailMap.put("sq_prodcode",eel.getData());
|
|
|
+ } else if (name2 == "PrDetail") {
|
|
|
+ detailMap.put("sq_prdetail",eel.getData());
|
|
|
+ } else if (name2 == "Spec") {
|
|
|
+ detailMap.put("sq_spec",eel.getData());
|
|
|
+ } else if (name2 == "Brand") {
|
|
|
+ detailMap.put("sq_brand",eel.getData());
|
|
|
+ } else if (name2 == "StcockQty") {
|
|
|
+ detailMap.put("sq_stcockqty",eel.getData());
|
|
|
+ } else if (name2 == "Unit") {
|
|
|
+ detailMap.put("sq_unit",eel.getData());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ detailMap.put("sq_code",DocumentNumber);
|
|
|
+ detailMap.put("sq_date",BaseUtil.timeStamp2Date(Long.parseLong(DocumentDateTime.toString()),""));
|
|
|
+ detailMap.put("sq_indate",BaseUtil.timeStamp2Date(System.currentTimeMillis(),""));
|
|
|
+ maps.add(detailMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (maps!=null&&maps.size()>0){
|
|
|
+ sqls = getInsertSqlbyMaps(maps, sob+".StcockQty","sq_id",sob+".STCOCKQTY_SEQ.nextval");
|
|
|
+ bool = JdbcUtil.executeSqls(con, sqls);
|
|
|
+ }
|
|
|
+ return bool;
|
|
|
+ }
|
|
|
}
|