李书文 2 years ago
parent
commit
c75a177a53

+ 0 - 1
src/main/java/com/lsw/controller/BaseController.java

@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONArray;
 import com.jfinal.core.Controller;
 import com.jfinal.json.FastJson;
 import com.jfinal.kit.Kv;
-import com.jfinal.kit.StrKit;
 import com.jfinal.plugin.activerecord.Record;
 
 import java.util.Iterator;

+ 0 - 3
src/main/java/com/lsw/controller/BigScreenController.java

@@ -1,13 +1,10 @@
 package com.lsw.controller;
 
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.jfinal.kit.JsonKit;
 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.List;
 import java.util.stream.Collectors;

+ 6 - 1
src/main/java/com/lsw/controller/ReportController.java

@@ -42,10 +42,15 @@ public class ReportController extends BaseController {
             }
 
         }
-        if (op.equals("data") || op.equals("change")) {
+        if (op.equals("data") || op.equals("change")||op.equals("forms")||op.equals("finish")) {
             List<Record> prouname = Db.template("prouname").find();
             set("prouname", JsonKit.toJson(prouname));
         }
+        if (op.equals("forms")) {
+            List<Record> prouname = Db.template("prouname").find();
+
+            set("prouname", JsonKit.toJson(prouname));
+        }
         set("department", JsonKit.toJson(list));
         render(op + ".html");
     }

+ 35 - 7
src/main/resources/report.sql

@@ -1,12 +1,24 @@
 ###报表所有sql语句
 ###完成率
 #sql("finish")
- select count(0)as count, case  when e.STATELABEL = '结束' then '结束' else '未结束' end AS tag  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=#para(DOMAINID) and t_department.ID in (select  ID from t_department start with ID=#para(ID) connect by prior ID=superior)
- and e.created between to_date(#para(begin),'yyyy-mm-dd hh24:mi:ss') and to_date(#para(end),'yyyy-mm-dd hh24:mi:ss')
- and e.STATELABEL is not null group by  case  when e.STATELABEL = '结束'  then '结束' else '未结束' end
+select count(0)as count, case  when e.STATELABEL = '结束' then '结束' else '未结束' end AS tag  from tlk_examine e
+where e.DOMAINID=#para(DOMAINID) and author_dept_index like #para(ID,"like")
+and e.created between to_date(#para(begin),'yyyy-mm-dd hh24:mi:ss') and to_date(#para(end),'yyyy-mm-dd hh24:mi:ss')
+and e.STATELABEL is not null
+
+#if(ITEM_TEST_DEPT)
+and e.ITEM_TEST_DEPT like #para(ITEM_TEST_DEPT,"like")
+#end
+
+#if(ITEM_DEPT)
+and e.ITEM_DEPT like #para(ITEM_DEPT,"like")
+#end
+
+#if(ITEM_PRODUCT)
+and e.ITEM_PRODUCT=#para(ITEM_PRODUCT)
+#end
+
+group by  case  when e.STATELABEL = '结束'  then '结束' else '未结束' end
 #end
 
 ###试验类型统计列表
@@ -23,6 +35,18 @@ and e.STATELABEL = '结束'
 and e.STATELABEL != '结束'
 #end
 
+#if(ITEM_TEST_DEPT)
+and e.ITEM_TEST_DEPT like #para(ITEM_TEST_DEPT,"like")
+#end
+
+#if(ITEM_DEPT)
+and e.ITEM_DEPT like #para(ITEM_DEPT,"like")
+#end
+
+#if(ITEM_PRODUCT)
+and e.ITEM_PRODUCT=#para(ITEM_PRODUCT)
+#end
+
 
 #end
 
@@ -242,6 +266,10 @@ FROM
 WHERE
  D.item_upbh IS NULL
 
+ #if(item_pro)
+    AND D.item_pro=#para(item_pro)
+ #end
+
  #if(item_name)
     AND D.item_name=#para(item_name)
  #end
@@ -253,7 +281,7 @@ WHERE
   #if(item_version)
     AND D.item_version=#para(item_version)
  #end
-
+ORDER BY D.CREATED DESC
 #end
 
 ###样机最新状态 获取key值通过key值去查询样机数据

+ 1 - 10
src/main/webapp/WEB-INF/view/big-screen/index.html

@@ -35,16 +35,6 @@
                                 <el-option v-for="(item,index) in prouname" :key="index" :value="item.ITEM_DIC_PROUNAME" :label="item.ITEM_DIC_PROUNAME"></el-option>
                             </el-select>
                         </div>
-<!--                        <el-form :inline="true" label-width="auto" class="inline">
-                            <el-form-item prop="state">
-                                <el-cascader ref="cs" v-model="param.value" :options="options" placeholder="部门"  class="els" :props="props" @change="handleChange" :show-all-levels="false"  clearable></el-cascader>
-                            </el-form-item>
-                            <el-form-item>
-                                <el-select placeholder="产品线" v-model="param.item_product" class="els" @change="change($event,'cs')" clearable>
-                                    <el-option v-for="(item,index) in prouname" :key="index" :value="item.ITEM_DIC_PROUNAME" :label="item.ITEM_DIC_PROUNAME"></el-option>
-                                </el-select>
-                            </el-form-item>
-                        </el-form>-->
                         <div class="serig">
                             <span class="sec" :class="{active:cs_index==index}" v-for="(item, index) in date" :key="index" @click="change_date('cs',item.value,cs_index=index,)">{{item.name}}</span>
                         </div>
@@ -388,6 +378,7 @@
             }]
         },
         mounted() {
+            start_time();
             this.finish_s();//实验完成率
             this.yj();//样机改装信息
             this.no_examine();//待完成试验

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

@@ -93,7 +93,11 @@
                         <span class="sy" title="上移" @click="move('#(a.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(a.ID)','down')">&#xe636;</span>
                     </div>
+                    #if(look)
+                    <div class="lk">#(a.ITEM_NAME)</div>
+                    #else
                     <input value="#(a.ITEM_NAME)" name="#(a.ITEM_NAME)" id="#(a.ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(a.ID)')">&#xe6df;</span>
                 </td>
             </tr>
@@ -104,18 +108,30 @@
                         <span class="sy" title="上移" @click="move('#(b.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(b.ID)','down')">&#xe636;</span>
                     </div>
+                    #if(look)
+                    <div class="lk">#(b.ITEM_NAME)</div>
+                    #else
                     <input value="#(b.ITEM_NAME)" name="#(b.ITEM_NAME)" id="#(b.ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(b.ID)')">&#xe6df;</span>
                 </td>
                 <td colspan="2">
                     #if(b.child.size()>0)
+                    #if(look)
+                    <div class="lk">#(b.child[0].ITEM_NAME)</div>
+                    #else
                     <input value="#(b.child[0].ITEM_NAME)" name="#(b.child[0].ITEM_NAME)" id="#(b.child[0].ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(b.child[0].ID)')">&#xe6df;</span>
                     #end
                 </td>
                 <td>
                     #if(b.child.size()>1)
+                    #if(look)
+                    <div class="lk">#(b.child[1].ITEM_NAME)</div>
+                    #else
                     <input value="#(b.child[1].ITEM_NAME)" name="#(b.child[1].ITEM_NAME)" id="#(b.child[1].ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(b.child[1].ID)')">&#xe6df;</span>
                     #end
                 </td>
@@ -132,7 +148,11 @@
                         <span class="sy" title="上移" @click="move('#(a.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(a.ID)','down')">&#xe636;</span>
                     </div>
+                    #if(look)
+                    <div class="lk">#(a.ITEM_NAME)</div>
+                    #else
                     <input value="#(a.ITEM_NAME)" name="#(a.ITEM_NAME)" id="#(a.ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(a.ID)')">&#xe6df;</span>
                 </td>
             </tr>
@@ -147,7 +167,11 @@
                         <span class="sy" title="上移" @click="move('#(b.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(b.ID)','down')">&#xe636;</span>
                     </div>
+                    #if(look)
+                    <div class="lk">#(b.ITEM_NAME)</div>
+                    #else
                     <input value="#(b.ITEM_NAME)" name="#(b.ITEM_NAME)" id="#(b.ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(b.ID)')">&#xe6df;</span>
                 </td>
             </tr>
@@ -158,7 +182,11 @@
                         <span class="sy" title="上移" @click="move('#(c.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(c.ID)','down')">&#xe636;</span>
                     </div>
+                    #if(look)
+                    <div class="lk">#(c.ITEM_NAME)</div>
+                    #else
                     <input value="#(c.ITEM_NAME)" name="#(c.ITEM_NAME)" id="#(c.ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(c.ID)')">&#xe6df;</span>
                 </td>
             </tr>
@@ -169,18 +197,30 @@
                         <span class="sy" title="上移" @click="move('#(d.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(d.ID)','down')">&#xe636;</span>
                     </div>
+                    #if(look)
+                    <div class="lk">#(d.ITEM_NAME)</div>
+                    #else
                     <input value="#(d.ITEM_NAME)" name="#(d.ITEM_NAME)" id="#(d.ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(d.ID)')">&#xe6df;</span>
                 </td>
                 <td colspan="1">
                     #if(d.child.size()>0)
+                    #if(look)
+                    <div class="lk">#(d.child[0].ITEM_NAME)</div>
+                    #else
                     <input value="#(d.child[0].ITEM_NAME)" name="#(d.child[0].ITEM_NAME)" id="#(d.child[0].ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(d.child[0].ID)')">&#xe6df;</span>
                     #end
                 </td>
                 <td>
                     #if(d.child.size()>1)
+                    #if(look)
+                    <div class="lk">#(d.child[1].ITEM_NAME)</div>
+                    #else
                     <input value="#(d.child[1].ITEM_NAME)" name="#(d.child[1].ITEM_NAME)" id="#(d.child[1].ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(d.child[1].ID)')">&#xe6df;</span>
                     #end
                 </td>
@@ -195,7 +235,11 @@
                         <span class="sy" title="上移" @click="move('#(b.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(b.ID)','down')">&#xe636;</span>
                     </div>
+                    #if(look)
+                    <div class="lk">#(b.ITEM_NAME)</div>
+                    #else
                     <input value="#(b.ITEM_NAME)" name="#(b.ITEM_NAME)" id="#(b.ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(b.ID)')">&#xe6df;</span>
                 </td>
             </tr>
@@ -206,18 +250,30 @@
                         <span class="sy" title="上移" @click="move('#(b.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(b.ID)','down')">&#xe636;</span>
                     </div>
+                    #if(look)
+                    <div class="lk">#(c.ITEM_NAME)</div>
+                    #else
                     <input value="#(c.ITEM_NAME)" name="#(c.ITEM_NAME)" id="#(c.ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(c.ID)')">&#xe6df;</span>
                 </td>
                 <td colspan="2">
                     #if(c.child.size()>0)
+                    #if(look)
+                    <div class="lk">#(c.child[0].ITEM_NAME)</div>
+                    #else
                     <input value="#(c.child[0].ITEM_NAME)" name="#(c.child[0].ITEM_NAME)" id="#(c.child[0].ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(c.child[0].ID)')">&#xe6df;</span>
                     #end
                 </td>
                 <td>
                     #if(c.child.size()>1)
+                    #if(look)
+                    <div class="lk">#(c.child[1].ITEM_NAME)</div>
+                    #else
                     <input value="#(c.child[1].ITEM_NAME)" name="#(c.child[1].ITEM_NAME)" id="#(c.child[1].ID)" @blur="blur($event)">
+                    #end
                     <span class="jly" title="修改记录" @click="record('#(c.child[1].ID)')">&#xe6df;</span>
                     #end
                 </td>

+ 31 - 3
src/main/webapp/WEB-INF/view/report/finish.html

@@ -3,16 +3,32 @@
 <body>
 <div id="app" v-cloak>
     <el-form :inline="true" label-width="auto">
-        <el-form-item label="实验部门" prop="state">
+        <el-form-item label="实验部门">
             <el-cascader
+                    style="width: 170px"
                     v-model="param.value"
                     :options="options"
                     :props="props"
                     @change="handleChange"
+                    :show-all-levels="false">
+            </el-cascader>
+        </el-form-item>
+        <el-form-item label="试验部门">
+            <el-cascader
+                    style="width: 170px"
+                    v-model="param.value3"
+                    :options="options"
+                    :props="props2"
+                    @change="handleChange3"
                     :show-all-levels="false"
                     clearable>
             </el-cascader>
         </el-form-item>
+        <el-form-item label="产品线选择">
+            <el-select placeholder="请选择" v-model="param.ITEM_PRODUCT" style="width: 170px" clearable>
+                <el-option v-for="(item,index) in prouname" :key="index" :value="item.ITEM_DIC_PROUNAME"  :label="item.ITEM_DIC_PROUNAME"></el-option>
+            </el-select>
+        </el-form-item>
         <el-form-item label="时间范围">
             <el-date-picker
                     v-model="param.created"
@@ -30,7 +46,7 @@
         <div style="float:right;">耗时: {{param.time}}</div>
     </el-form>
     <div id="echart" class="bar"></div>
-    <el-dialog :title="param.name" width="80%" :visible.sync="dialogVisible" top="2%" append-to-body>
+    <el-dialog :title="param.name+'('+tableData.length+')'" width="80%" :visible.sync="dialogVisible" top="2%" append-to-body>
         <el-table :data="tableData" style="width: 100%;">
             <el-table-column prop="ITEM_WT_NUM" label="委托单号"></el-table-column>
             <el-table-column prop="ITEM_TITLE" align="center" label="标题"></el-table-column>
@@ -74,7 +90,13 @@
                 label: 'NAME',
                 checkStrictly: true
             },
-            options: #(department)
+            props2: {
+                value: 'NAME',
+                label: 'NAME',
+                checkStrictly: true
+            },
+            options: #(department),
+            prouname: #(prouname)
         },
         mounted() {
             this.getData();
@@ -92,6 +114,12 @@
             handleChange(value) {
                 this.param.ID = value[value.length - 1]
             },
+            handleChange2(value) {
+                this.param.ITEM_DEPT = value[value.length - 1];
+            },
+            handleChange3(value) {
+                this.param.ITEM_TEST_DEPT = value[value.length - 1];
+            },
             search() {
                 this.param.begin = this.param.created[0];
                 this.param.end = this.param.created[1];

+ 54 - 10
src/main/webapp/WEB-INF/view/report/forms.html

@@ -8,19 +8,17 @@
     .iframe1{width: 100%;height: 400px;border: 0px;}
     .iframe2{width: 100%;height: 710px;border: 0px;}
     .table{width: 100%;height:340px!important; position: relative;overflow-y: auto;}
+    .el-table--enable-row-transition .el-table__body td.el-table__cell{cursor: pointer;}
 </style>
 <body>
 <div id="app" v-cloak>
     <div class="row">
         <el-form :inline="true" label-width="auto">
-            <el-form-item label="样机名称">
+<!--            <el-form-item label="样机名称">
                 <el-input placeholder="请输入样机名称" v-model="param.ITEM_NAME" clearable></el-input>
-            </el-form-item>
-            <el-form-item label="样机序列号" clearable>
-                <el-input placeholder="请输入样机序列号" v-model="param.ITEM_XL_NUM" clearable></el-input>
-            </el-form-item>
-            <el-form-item>
-                <el-button type="primary" icon="el-icon-search" @click="search()">搜索</el-button>
+            </el-form-item>-->
+            <el-form-item label="选择样机" clearable>
+                <el-input placeholder="请选择样机名称" v-model="param.name" @click.native="dialogVisible = true" :readonly="true" style="cursor: pointer;" clearable/>
             </el-form-item>
         </el-form>
         <div class="sm6">
@@ -78,6 +76,36 @@
             </div>
         </div>
     </div>
+    <!--样机选择-->
+    <el-dialog title="选择样机" width="87%" :visible.sync="dialogVisible" top="2%" :close-on-click-modal="false" append-to-body>
+        <el-form :inline="true" label-width="auto" style="margin-top: -20px">
+            <el-form-item label="选择产品线">
+                <el-select placeholder="请选择" v-model="param.item_pro" @change="change()" style="width: 170px" clearable>
+                    <el-option v-for="(item,index) in prouname" :key="index" :value="item.ITEM_DIC_PROUNAME"  :label="item.ITEM_DIC_PROUNAME"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="样机名称">
+                <el-input placeholder="请输入样机名称" v-model="param.item_name" style="width: 170px" clearable/>
+            </el-form-item>
+            <el-form-item label="序列号">
+                <el-input placeholder="请输入序列号" v-model="param.item_xl_num" style="width: 170px" clearable/>
+            </el-form-item>
+            <el-form-item label="版本号">
+                <el-input placeholder="请输入版本号" v-model="param.item_version" style="width: 170px" clearable/>
+            </el-form-item>
+            <el-form-item>
+                <el-button type="primary" icon="el-icon-search" @click="search()">搜索</el-button>
+            </el-form-item>
+        </el-form>
+        <el-table :data="tableData3" style="width: 100%;" @row-click="click">
+            <el-table-column prop="ITEM_NAME" label="样机名称"></el-table-column>
+            <el-table-column prop="ITEM_XL_NUM" align="center" label="序列号"></el-table-column>
+            <el-table-column prop="ITEM_VERSION" align="center" label="版本号"></el-table-column>
+            <template slot="empty">
+                <el-empty></el-empty>
+            </template>
+        </el-table>
+    </el-dialog>
 </div>
 </body>
 <script src="#(path)/static/js/jquery.min.js"></script>
@@ -86,9 +114,11 @@
 <script src="#(path)/static/js/common.js"></script>
 <script src="#(path)/static/js/element-ui.js"></script>
 <script>
+    let prouname=#(prouname);
     let vm = new Vue({
         el: "#app",
         data: {
+            dialogVisible:false,
             loading: false,
             loading2: false,
             param: {
@@ -100,15 +130,16 @@
             },
             key: true, //解决el-table 表体数据发生变化时,未重新渲染问题
             tableData: [], //委托单
-            tableData2: [] //委托单联动
+            tableData2: [], //委托单联动
+            tableData3:[],//样机名称列表
+            prouname:prouname
         },
         mounted() {
             //this.getData();
         },
         methods: {
             search() {
-                this.param.name=this.param.ITEM_NAME;
-                this.getData();
+                this.change();
             },
             getData() {
                 vm.loading = true;
@@ -127,6 +158,19 @@
                     vm.$forceUpdate();
                 })
             },
+            //根据产品线选择样机
+            change(){
+                sendAjax("#(path)/report/prou", this.param, res => {
+                    cancelLoding();
+                    vm.tableData3 = res.data;
+                })
+            },
+            //点击样机列表
+            click(row){
+                vm.param.name=row.ITEM_NAME;
+                vm.dialogVisible=false;
+                this.getData();
+            },
             //委托单联动
             select(row) {
                 vm.loading2 = true;

+ 4 - 2
src/main/webapp/static/js/common.js

@@ -148,8 +148,7 @@ var chart_option = function() {
         }
     }
 }
-var t = null;
-t = setTimeout(time, 1000);
+let t = null;
 function time() {
     clearTimeout(t);
     dt = new Date();
@@ -161,4 +160,7 @@ function time() {
     var s = dt.getSeconds();
     document.getElementById("showTime").innerHTML = y + "年" + mt + "月" + day + "-" + h + "时" + m + "分" + s + "秒";
     t = setTimeout(time, 1000);
+}
+function start_time (){
+    t = setTimeout(time, 1000);
 }