Browse Source

完成率

xiaoshushu 2 years ago
parent
commit
9e33ebe1fc

+ 12 - 13
com.lsw.iml

@@ -20,20 +20,19 @@
       <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
       <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
-    <orderEntry type="inheritedJdk" />
+    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Maven: com.jfinal:jfinal:3.2" level="project" />
-    <orderEntry type="library" name="Maven: cglib:cglib-nodep:3.2.5" level="project" />
-    <orderEntry type="library" name="Maven: com.jfinal:jetty-server:8.1.8" level="project" />
-    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-xml:8.1.8.v20121106" level="project" />
-    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:8.1.8.v20121106" level="project" />
-    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:8.1.8.v20121106" level="project" />
-    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:8.1.8.v20121106" level="project" />
-    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:8.1.8.v20121106" level="project" />
-    <orderEntry type="library" name="Maven: org.eclipse.jetty.orbit:javax.servlet:3.0.0.v201112011016" level="project" />
-    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:8.1.8.v20121106" level="project" />
-    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:8.1.8.v20121106" level="project" />
-    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:8.1.8.v20121106" level="project" />
+    <orderEntry type="library" name="Maven: com.jfinal:jfinal:4.9.15" level="project" />
+    <orderEntry type="library" name="Maven: com.jfinal:jetty-server:2019.3" level="project" />
+    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-webapp:9.4.12.v20180830" level="project" />
+    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-xml:9.4.12.v20180830" level="project" />
+    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.4.12.v20180830" level="project" />
+    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.4.12.v20180830" level="project" />
+    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.4.12.v20180830" level="project" />
+    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.4.12.v20180830" level="project" />
+    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.4.12.v20180830" level="project" />
+    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.4.12.v20180830" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.76" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba:druid:1.0.18" level="project" />
     <orderEntry type="module-library">

+ 1 - 0
src/main/java/com/lsw/Application.java

@@ -3,6 +3,7 @@ package com.lsw;
 import com.jfinal.config.*;
 import com.jfinal.core.JFinal;
 import com.jfinal.ext.handler.ContextPathHandler;
+import com.jfinal.kit.PathKit;
 import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
 import com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory;
 import com.jfinal.plugin.activerecord.dialect.OracleDialect;

+ 27 - 7
src/main/java/com/lsw/controller/ReportController.java

@@ -1,23 +1,43 @@
 package com.lsw.controller;
 
 import com.jfinal.core.Controller;
+import com.jfinal.kit.Kv;
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
 import com.lsw.utils.StringUtil;
+import com.lsw.utils.TimeUtil;
 
+import java.util.ArrayList;
 import java.util.List;
 
 public class ReportController extends Controller {
 
     public void index() {
+        String op = getPara("op", "finish");
+        String ID = getPara("ID", "ZMMMGm5mnGCE4WvWFeI");//部门ID
+        set("begin", TimeUtil.getDay("firstDay"));
+        set("end", TimeUtil.getDay("lastDay"));
+        set("DOMAINID", getPara("DOMAINID", "uumsxrgm1KEEqSZIoHs"));
+        set("ID", ID);
+        List<Record> list = new ArrayList<>();
+        List<Record> department_list = Db.template("department", Kv.by("ID", ID)).find();
+        for (Record r : department_list) {
+            if (r.get("ID").equals(ID)) {
+                list.add(new Record().set("value", ID).set("label", r.getStr("NAME")));
+            }
+        }
+        render(op + ".html");
+    }
+
+    public void getData() {
         long start = System.currentTimeMillis();
+        Kv kv = Kv.create();
+        kv.set("DOMAINID", getPara("DOMAINID"));
+        kv.set("ID", getPara("ID"));
+        kv.set("begin", getPara("begin", TimeUtil.getDay("firstDay")));
+        kv.set("end", getPara("end", TimeUtil.getDay("lastDay")));
+        List<Record> list = Db.template("finish", kv).find();
         long end = System.currentTimeMillis();
-
-        List<Record>list= Db.template("asd").find();
-        System.out.println("asd:"+list.toString());
-        setAttr("time", StringUtil.mul((end - start), (float) 0.001) + "s");
-        render("index.html");
+        renderJson(Kv.by("data", list).set("time", StringUtil.mul((end - start), (float) 0.001) + "s"));
     }
-
-
 }

+ 22 - 0
src/main/java/com/lsw/utils/TimeUtil.java

@@ -315,6 +315,27 @@ public class TimeUtil {
         return finalDate;
     }
 
+    public static String getDay(String obj) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date date = new Date();
+        Calendar calendar = new GregorianCalendar();
+        calendar.setTime(date);
+        if (obj.equals("firstDay")) {
+            //获得本月第一天
+            calendar.add(Calendar.MONTH, 0);
+            calendar.set(Calendar.DAY_OF_MONTH, 1);
+            String firstDay = sdf.format(calendar.getTime());
+            return firstDay;
+        }
+        if (obj.equals("lastDay")) {
+            //获得本月最后一天
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+            String lastDay = sdf.format(calendar.getTime());
+            return lastDay;
+        }
+        return "";
+    }
+
     /**
      * 判断是否是过去的日期
      *
@@ -341,5 +362,6 @@ public class TimeUtil {
     }
 
     public static void main(String[] args) {
+        System.out.println("asd:"+getDay("lastDay"));
     }
 }

+ 0 - 9
src/main/resources/sql/report.sql

@@ -1,9 +0,0 @@
-###完成率
-#sql("asd")
- select count(0), case  when e.STATELABEL = '结束' then '结束' else '未结束' end  from tlk_examine e
- left outer join t_user on t_user.ID=author
- left outer join t_department on t_user.defaultdepartment=t_department.ID
- where e.DOMAINID='uumsxrgm1KEEqSZIoHs' and t_department.ID in (select  ID from t_department start with ID='ZMMMGm5mnGCE4WvWFeI' connect by prior ID=superior)
- and e.created between to_date('2021-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2023-05-31 00:00:00','yyyy-mm-dd hh24:mi:ss')
- and e.STATELABEL is not null group by  case  when e.STATELABEL = '结束'  then '结束' else '未结束' end
-#end

+ 0 - 134
src/main/webapp/WEB-INF/view/report/index.html

@@ -1,134 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>实验完成率</title>
-    <link href="#(path)/static/js/element-ui.css" rel="stylesheet"/>
-    <style>
-         body {background-color: #f1f1f4;}
-		.bar{height:600px;margin-top: 50px;}
-        [v-cloak] {display: none;}
-    </style>
-</head>
-<body>
-<div id="app" v-cloak>
-    <el-form :inline="true" label-width="auto">
-        <el-form-item label="状态" prop="state">
-            <el-select placeholder="请选择实验部门" clearable>
-                <el-option label="矿山机械" :value="0"></el-option>
-                <el-option label="矿山机械" :value="0"></el-option>
-                <el-option label="矿山机械" :value="0"></el-option>
-                <el-option label="矿山机械" :value="0"></el-option>
-                <el-option label="矿山机械" :value="0"></el-option>
-            </el-select>
-        </el-form-item>
-        <el-form-item label="时间范围">
-            <el-date-picker
-                    v-model="created"
-                    style="width: 240px"
-                    value-format="yyyy-MM-dd"
-                    type="daterange"
-                    range-separator="-"
-                    start-placeholder="开始日期"
-                    end-placeholder="结束日期"
-            ></el-date-picker>
-        </el-form-item>
-        <el-form-item>
-            <el-button type="primary" icon="el-icon-search">搜索</el-button>
-            <el-button icon="el-icon-refresh">重置</el-button>
-        </el-form-item>
-    </el-form>
-    <div id="bar" class="bar"></div>
-</div>
-</body>
-<script src="#(path)/static/js/jquery.min.js"></script>
-<script src="#(path)/static/js/layer/layer.js"></script>
-<script src="#(path)/static/js/vue.min.js"></script>
-<script src="#(path)/static/js/common.js"></script>
-<script src="#(path)/static/js/echarts.min.js"></script>
-<script src="#(path)/static/js/element-ui.js"></script>
-<script>
-    let vm = new Vue({
-        el: "#app",
-        data: {
-            created:[]
-        },
-        mounted() {
-            this.initEcharts();
-        },
-        methods: {
-            initEcharts() {
-                let myChart = echarts.init(document.getElementById('bar'));
-                let option = {
-                    title: [{
-                        text: '实验完成率',
-                        left: 'center',
-                        top: 0,
-                        textStyle: {
-                            fontSize: '15',
-                        }
-
-                    }],
-                    tooltip: {
-                        trigger: 'item',
-                        formatter: "{a} <br/>{b}: {c} ({d}%)",
-                        position: function (p) { //其中p为当前鼠标的位置
-                            return [p[0] + 10, p[1] - 10];
-                        }
-                    },
-                    legend: {
-                        top: '76%',
-                        itemWidth: 10,
-                        itemHeight: 10,
-                        data: ['层级1', '层级2', '层级3', '层级4', '层级5', '层级6'],
-                        textStyle: {
-                            fontSize: '12',
-                        }
-                    },
-                    series: [{
-                        name: '兴趣分布',
-                        type: 'pie',
-                        center: ['50%', '42%'],
-                        radius: ['40%', '60%'],
-                        label: {
-                            show: true
-                        },
-                        labelLine: {
-                            show: true
-                        },
-                        data: [{
-                            value: 5,
-                            name: '层级1'
-                        },
-                            {
-                                value: 1,
-                                name: '层级2'
-                            },
-                            {
-                                value: 6,
-                                name: '层级3'
-                            },
-                            {
-                                value: 2,
-                                name: '层级4'
-                            },
-                            {
-                                value: 1,
-                                name: '层级5'
-                            },
-                            {
-                                value: 1,
-                                name: '层级6'
-                            },
-                        ]
-                    }]
-                };
-                myChart.setOption(option);
-                window.addEventListener("resize", function () {
-                    myChart.resize();
-                });
-            }
-        }
-    })
-</script>
-</html>