李书文 2 gadi atpakaļ
vecāks
revīzija
17e4bbdeee
1 mainītis faili ar 79 papildinājumiem un 34 dzēšanām
  1. 79 34
      src/main/java/com/lsw/controller/IndexController.java

+ 79 - 34
src/main/java/com/lsw/controller/IndexController.java

@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONArray;
 import com.jfinal.aop.Before;
 import com.jfinal.core.Controller;
 import com.jfinal.kit.JsonKit;
-import com.jfinal.kit.Kv;
 import com.jfinal.kit.StrKit;
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
@@ -21,23 +20,15 @@ public class IndexController extends Controller {
 
     public void index() {
         long start = System.currentTimeMillis();
-        String table = getPara("table", "TLK_MYJCS");
+        String table = getPara("table", "TLK_YJCS");
         String ITEM_VALUE = getPara("ITEM_VALUE");
         String bh = getPara("bh", "102");
-        String type = getPara("type", "form");
         String user = getPara("user", "基栋");
         set("look", getPara("look"));
         List<Record> all = new ArrayList<>();
         StringBuilder sb = new StringBuilder();
-        Record v = Db.findFirst("SELECT ITEM_VERSION,ITEM_BH,ITEM_NAME FROM TLK_MYJCS WHERE ITEM_XL_NUM=? and ITEM_UPBH IS  NULL ORDER BY ITEM_VERSION DESC", bh);
         sb.append("SELECT ID,ITEM_BH,ITEM_PX,ITEM_NAME,ITEM_UPBH,ITEM_TYPE FROM " + table);
-        if (type.equals("form")) {
-            sb.append(" WHERE ITEM_KEY=?");
-        }
-        if (type.equals("json")) {
-            sb.append(" WHERE ITEM_XL_NUM=?");
-            sb.append(" AND ITEM_VERSION=?");
-        }
+        sb.append(" WHERE ITEM_KEY=?");
         sb.append(" AND ITEM_UPBH IS NOT NULL");
         if (StrKit.notBlank(ITEM_VALUE)) {
             sb.append(" AND ITEM_VALUE=?");
@@ -45,14 +36,9 @@ public class IndexController extends Controller {
             all = Db.find(sb.toString(), bh, ITEM_VALUE);
         } else {
             sb.append(" ORDER BY TO_NUMBER(ITEM_PX) ASC");
-            if (type.equals("json")) {
-                all = Db.find(sb.toString(), bh, v.getStr("ITEM_VERSION"));
-            } else {
-                all = Db.find(sb.toString(), bh);
-            }
-
+            all = Db.find(sb.toString(), bh);
         }
-        List<Record> list = all.stream().filter(r -> r.getStr("ITEM_UPBH").equals(type.equals("form") ? bh : v.getStr("ITEM_BH"))).collect(Collectors.toList());
+        List<Record> list = all.stream().filter(r -> r.getStr("ITEM_UPBH").equals(bh)).collect(Collectors.toList());
         for (Record record : list) {
             int rowspan = 0; //总的合并行
             record.set("type", 0);
@@ -96,26 +82,74 @@ public class IndexController extends Controller {
             }
             record.set("rowspan", rowspan);
         }
+        setAttr("list", list);
+        setAttr("table", table);
+        setAttr("user", user);
         long end = System.currentTimeMillis();
-        if (type.equals("form")) {
-            setAttr("list", list);
-            setAttr("table", table);
-            setAttr("user", user);
-            setAttr("time", mul((end - start), (float) 0.001) + "s");
-            render("index.html");
+        setAttr("time", mul((end - start), (float) 0.001) + "s");
+        render("index.html");
+    }
+
+    public void getData() {
+        long start = System.currentTimeMillis();
+        String bh = getPara("ONLYNUM");
+        Record re = new Record();
+        re.set("code", 200);
+        re.set("message", "ok");
+        if (StrKit.isBlank(bh)) {
+            List<Record> nums = Db.find("SELECT ITEM_VERSION,ITEM_BH,ITEM_XL_NUM,ITEM_NAME FROM TLK_MYJCS WHERE ITEM_UPBH IS  NULL AND ITEM_XL_NUM IS NOT NULL ORDER BY ITEM_VERSION DESC");
+            nums = removeDuplicate(nums);
+            for (Record num : nums) {
+                List<Record> all = Db.find("SELECT ID,ITEM_BH,ITEM_NAME,ITEM_UPBH FROM TLK_MYJCS WHERE ITEM_XL_NUM=? AND ITEM_VERSION=? AND ITEM_UPBH IS NOT NULL ORDER BY TO_NUMBER(ITEM_PX) ASC", num.getStr("ITEM_XL_NUM"), num.getStr("ITEM_VERSION"));
+                num.set("data", format(all, num.getStr("ITEM_BH")));
+            }
+            long end = System.currentTimeMillis();
+            re.set("time", mul((end - start), (float) 0.001) + "s");
+            re.set("data", nums);
+            renderJson(re);
         } else {
-            Record record = new Record();
-            record.set("code", 200);
-            record.set("msg", "请求成功");
-            record.set("time", mul((end - start), (float) 0.001) + "s");
+            Record num = Db.findFirst("SELECT ITEM_VERSION,ITEM_BH,ITEM_NAME,ITEM_XL_NUM FROM TLK_MYJCS WHERE ITEM_XL_NUM=? AND ITEM_UPBH IS NULL AND ITEM_XL_NUM IS NOT NULL ORDER BY ITEM_VERSION DESC", bh);
+            List<Record> all = Db.find("SELECT ID,ITEM_BH,ITEM_NAME,ITEM_UPBH FROM TLK_MYJCS WHERE ITEM_XL_NUM=? AND ITEM_VERSION=? AND ITEM_UPBH IS NOT NULL ORDER BY TO_NUMBER(ITEM_PX) ASC", num.getStr("ITEM_XL_NUM"), num.getStr("ITEM_VERSION"));
+            long end = System.currentTimeMillis();
+            re.set("time", mul((end - start), (float) 0.001) + "s");
             Record child = new Record();
-            child.set("ITEM_NAME", v.getStr("ITEM_NAME"));
-            child.set("ITEM_XL_NUM", bh);
-            child.set("ITEM_VERSION", v.getStr("ITEM_VERSION"));
-            child.set("data", list);
-            record.set("data", child);
-            renderJson(record);
+            child.set("ITEM_NAME", num.getStr("ITEM_NAME"));
+            child.set("ITEM_XL_NUM", num.getStr("ITEM_XL_NUM"));
+            child.set("ITEM_VERSION", num.getStr("ITEM_VERSION"));
+            child.set("data", format(all, num.getStr("ITEM_BH")));
+            re.set("data", child);
+            renderJson(re);
+        }
+
+    }
+
+    private List<Record> format(List<Record> all, String bh) {
+        List<Record> list = all.stream().filter(r -> r.getStr("ITEM_UPBH").equals(bh)).collect(Collectors.toList());
+        for (Record record : list) {
+            //二级
+            List<Record> list2 = all.stream().filter(r -> r.getStr("ITEM_UPBH").equals(record.getStr("ITEM_BH"))).collect(Collectors.toList());
+            record.set("child", list2);
+            for (Record record2 : list2) {
+                //三级
+                List<Record> list3 = all.stream().filter(r -> r.getStr("ITEM_UPBH").equals(record2.getStr("ITEM_BH"))).collect(Collectors.toList());
+                record2.set("child", list3);
+                for (Record record3 : list3) {
+                    //四级
+                    List<Record> list4 = all.stream().filter(r -> r.getStr("ITEM_UPBH").equals(record3.getStr("ITEM_BH"))).collect(Collectors.toList());
+                    for (Record record4 : list4) {
+                        //五级
+                        List<Record> list5 = all.stream().filter(r -> r.getStr("ITEM_UPBH").equals(record4.getStr("ITEM_BH"))).collect(Collectors.toList());
+                        if (list5.size() > 0) {
+                            record4.set("child", list5);
+                        }
+                    }
+                    if (list4.size() > 0) {
+                        record3.set("child", list4);
+                    }
+                }
+            }
         }
+        return list;
     }
 
     public void edit() {
@@ -212,4 +246,15 @@ public class IndexController extends Controller {
         BigDecimal b2 = new BigDecimal(Float.toString(v2));
         return b1.multiply(b2).doubleValue();
     }
+
+    private static List removeDuplicate(List<Record> list) {
+        for (int i = 0; i < list.size() - 1; i++) {
+            for (int j = list.size() - 1; j > i; j--) {
+                if (list.get(j).getStr("ITEM_XL_NUM").equals(list.get(i).getStr("ITEM_XL_NUM"))) {
+                    list.remove(j);
+                }
+            }
+        }
+        return list;
+    }
 }