李书文 2 年之前
父节点
当前提交
91d93cec9e

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

@@ -27,6 +27,7 @@ public class IndexController extends Controller {
         String ITEM_VALUE = getPara("ITEM_VALUE");
         String bh = getPara("bh", "102");
         String user = getPara("user", "基栋");
+        set("look", getPara("look"));
         List<Record> all = new ArrayList<>();
         StringBuilder sb = new StringBuilder();
         sb.append("SELECT ID,ITEM_BH,ITEM_PX,ITEM_NAME,ITEM_UPBH,ITEM_TYPE FROM " + table);

+ 29 - 8
src/main/java/com/lsw/controller/ReportController.java

@@ -15,12 +15,11 @@ public class ReportController extends BaseController {
     public void index() {
         String op = getPara("op", "finish");
         String ID = getPara("ID", "ZMMMGm5mnGCE4WvWFeI");//部门ID
-
+        set("look", getPara("look"));
         set("ip", getPara("ip", "192.168.0.251"));
         set("DOMAINID", getPara("DOMAINID", "uumsxrgm1KEEqSZIoHs"));
         set("ID", ID); //部门ID
-        set("time_name",getPara("time_name","CLGF220叉装车"));
-
+        set("time_name", getPara("time_name", "CLGF220叉装车"));
 
         set("begin", "2021-06-01");//TimeUtil.getDay("firstDay")
         set("end", TimeUtil.getDay("lastDay"));//TimeUtil.getDay("lastDay")
@@ -43,7 +42,7 @@ public class ReportController extends BaseController {
             }
 
         }
-        if (op.equals("data")||op.equals("change")) {
+        if (op.equals("data") || op.equals("change")) {
             List<Record> prouname = Db.template("prouname").find();
             set("prouname", JsonKit.toJson(prouname));
         }
@@ -136,11 +135,11 @@ public class ReportController extends BaseController {
         long start = System.currentTimeMillis();
         List<Record> list = Db.template("time", getParam()).find();
         List<Record> times = Db.template("times", getParam()).find();
-        Kv kv=getParam();
+        Kv kv = getParam();
         for (Record record : list) {
-            record.set("times", times.stream().filter(r ->r.get("ITEM_VERSION").equals(record.getStr("ITEM_VERSION"))).collect(Collectors.toList()));
-            kv.set("item_key",record.getStr("ITEM_KEY"));
-            List<Record> list2 =Db.template("time_list", kv).find();
+            record.set("times", times.stream().filter(r -> r.get("ITEM_VERSION").equals(record.getStr("ITEM_VERSION"))).collect(Collectors.toList()));
+            kv.set("item_key", record.getStr("ITEM_KEY"));
+            List<Record> list2 = Db.template("time_list", kv).find();
             for (Record record2 : list2) {
                 record2.set("ITEM_VERSION", record.getStr("ITEM_VERSION"));
             }
@@ -157,6 +156,7 @@ public class ReportController extends BaseController {
         long end = System.currentTimeMillis();
         renderJson(Kv.by("data", list).set("time", StringUtil.mul((end - start), (float) 0.001) + "s"));
     }
+
     //样机选择
     public void prou() {
         long start = System.currentTimeMillis();
@@ -164,4 +164,25 @@ public class ReportController extends BaseController {
         long end = System.currentTimeMillis();
         renderJson(Kv.by("data", list).set("time", StringUtil.mul((end - start), (float) 0.001) + "s"));
     }
+
+    //样机报表
+    public void getYj() {
+        long start = System.currentTimeMillis();
+        //样机
+        Record yj = Db.template("getYj", getParam()).findFirst();
+        //委托单
+        List<Record> wtd = Db.template("getWtt", getParam()).find();
+        long end = System.currentTimeMillis();
+        Record r = new Record();
+        r.set("yj", yj);
+        r.set("wtd", wtd);
+        r.set("time", StringUtil.mul((end - start), (float) 0.001) + "s");
+        renderJson(r);
+    }
+
+    //委托单点击联动2
+    public void getWtd() {
+        List<Record> list = Db.template("getWttld", getParam()).find();
+        renderJson(Kv.by("data", list));
+    }
 }

+ 20 - 0
src/main/webapp/WEB-INF/view/common/header.html

@@ -14,6 +14,26 @@
         .el-dialog__header{font-weight: bold;}
         a{text-decoration: none}
         [v-cloak] {display: none;}
+        /*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
+        ::-webkit-scrollbar {
+            width: 7px;
+            height: 7px;
+            background-color: #f5f5f5;
+        }
+        /*定义滚动条轨道 内阴影+圆角*/
+        ::-webkit-scrollbar-track {
+            box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+            -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+            border-radius: 10px;
+            background-color: #f5f5f5;
+        }
+        /*定义滑块 内阴影+圆角*/
+        ::-webkit-scrollbar-thumb {
+            border-radius: 10px;
+            box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);
+            -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);
+            background-color: #c8c8c8;
+        }
     </style>
 </head>
 #end

+ 32 - 1
src/main/webapp/WEB-INF/view/index.html

@@ -12,13 +12,18 @@
     @font-face {
         font-family: 'iconfont';
     }
+    #if(look)
+    .bg {padding: 10px;overflow: hidden;}
+    input{border: 0px;padding-right: 13px;padding-left: 13px;max-width: 100px; background-color: white;box-shadow: none!important;outline: none;text-align: center;font-size: 15px}
+    #else
     .bg {padding: 50px 10%;overflow: hidden;}
+    input{border: 0px;padding-right: 13px;padding-left: 13px;max-width: 150px; background-color: white;box-shadow: none!important;outline: none;text-align: center;font-size: 15px}
+    #end
     table {margin: 0 auto;background-color: white;border-collapse: collapse;width: 100%;}
     td {padding: 15px;text-align: center;position: relative;}
     .bar{width: 100%;text-align: left;margin: 0 auto}
     button{margin-bottom: 10px;padding: 5px 20px;cursor: pointer;}
     .edit{float: right;font-size: 13px;margin-top: 10px}
-    input{border: 0px;padding-right: 13px;padding-left: 13px;max-width: 150px; background-color: white;box-shadow: none!important;outline: none;text-align: center;font-size: 15px}
     .jly {font-family: iconfont;position: absolute;cursor: pointer;right: 7px;color: #72767b;}
     .yd{position: absolute;left: 7px;color: #72767b;margin-top: -6px;}
     .sy{font-family: iconfont;cursor: pointer;left: 7px;display: block}
@@ -28,6 +33,26 @@
     .img{width: 50%;}
     .picker{float: left;margin-left: 40px;margin-top: -5px;}
     .el-input__inner{max-width: 300px!important;}
+    /*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
+    ::-webkit-scrollbar {
+        width: 7px;
+        height: 7px;
+        background-color: #f5f5f5;
+    }
+    /*定义滚动条轨道 内阴影+圆角*/
+    ::-webkit-scrollbar-track {
+        box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+        -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+        border-radius: 10px;
+        background-color: #f5f5f5;
+    }
+    /*定义滑块 内阴影+圆角*/
+    ::-webkit-scrollbar-thumb {
+        border-radius: 10px;
+        box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);
+        -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);
+        background-color: #c8c8c8;
+    }
 </style>
 <body>
 <div id="app">
@@ -237,6 +262,12 @@
             log_list:[]
         },
         mounted() {
+            if ('#(look)' =='true') {
+                $('input').attr('disabled','disabled');
+                $('.bar').css("display", "none");
+                $('.jly').css("display", "none");
+                $('.yd').css("display", "none");
+            }
         },
         methods: {
             change (date) {

+ 112 - 59
src/main/webapp/WEB-INF/view/report/forms.html

@@ -1,91 +1,144 @@
 #set(title="样机报表")
 #@header()
 <style>
-    .sm6{float: left;width: 70%;}
-    .sm4{float: left;width: 30%;height: 400px;overflow-y: scroll}
-    .items{padding: 8px;border-bottom: 1px solid #e9ebed;color: #545555}
-    .item{padding-top: 10px}
-    .s1{padding-right: 10px}
-    .bh{color: #2D93CA}
-    .before{color: #878787;padding-left: 10px}
-    .time{font-size: 14px;color: #878787}
-    .av{background-color: aliceblue;padding: 7px 0px 7px 7px;color: #545555}
-    .av span{padding-left: 10px}
+    .sm6{float: left;width: 73%;}
+    .sm4{float: left;width: 27%;}
+    .mains{padding: 5px;margin-top: -15px;}
+    .box{background-color: white;width: 100%;height: 350px;border-radius: 3px;margin-bottom: 10px;}
+    .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;}
 </style>
 <body>
 <div id="app" v-cloak>
-       <div class="row">
-           <div class="sm6">
-               <iframe src="#(path)/" style="width: 100%;height: 400px;"></iframe>
-           </div>
-           <div class="sm4">
-               <div v-for="(item, index) in list" :key="index" class="bg">
-                   <div v-for="(i, index) in item.times" class="av">
-                       {{item.ITEM_VERSION}}:
-                       {{i.ITEM_WT_NUM}}:
-                       {{i.ITEM_TITLE}}
-                       <span class="s1 bh">{{i.TYPE}}</span>
-                       <span class="s1 time">{{i.CREATED}}</span>
-                   </div>
-                   <div v-for="(a, index) in item.children" class="items">
-                       {{item.ITEM_VERSION}}: {{a.ITEM_PKY}} <span class="s1 before">原记录</span>
-                       <div v-for="(b, index) in a.ITEM_TLOG">
-                           <div v-if="b.ITEM_NAME" class="item">
-                               <span>{{item.ITEM_VERSION}}:</span>
-                               <span class="s1">{{a.ITEM_PKY}}{{b.ITEM_NAME}}</span>
-                               <span class="s1 bh">变更</span>
-                               <span class="s1 time">{{b.DAY}}</span>
-                           </div>
-                       </div>
-                   </div>
-               </div>
-           </div>
-       </div>
+    <div class="row">
+        <el-form :inline="true" label-width="auto">
+            <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>
+        <div class="sm6">
+            <div class="mains">
+                <!--样机-->
+                <div class="box" v-loading="loading" style="height: 400px">
+                    <iframe id="yj" :src="'#(path)/index?bh='+param.ITEM_KEY+ '&table=TLK_MYJCS&look=true'"  class="iframe1" v-if="param.ITEM_KEY"></iframe>
+                </div>
+             <div style="margin-top:20px;margin-left: -5px;margin-right: -5px">
+                 <div class="sm4">
+                     <div class="mains">
+                         <!--委托单-->
+                         <div class="box">
+                             <el-table :data="tableData" class="table" :key="key" v-loading="loading" @row-click="select" v-if="param.ITEM_KEY">
+                                 <el-table-column width="35" align="center">
+                                     <template slot-scope="scope">
+                                         <el-checkbox :checked="scope.row.check"></el-checkbox>
+                                     </template>
+                                 </el-table-column>
+                                 <el-table-column prop="ITEM_WT_NUM"  align="center" label="委托单号"></el-table-column>
+                                 <el-table-column prop="ITEM_NAME" align="center" label="样机名称"></el-table-column>
+                                 <template slot="empty">
+                                     <el-empty :image-size="100"></el-empty>
+                                 </template>
+                             </el-table>
+                         </div>
+                     </div>
+                 </div>
+                 <div class="sm6">
+                     <div class="mains">
+                         <!--委托单联动-->
+                         <div class="box">
+                             <el-table :data="tableData2"class="table"  v-loading="loading2" v-if="param.ITEM_WT_NUM">
+                                 <el-table-column prop="ITEM_TEST_NAME" align="center" label="检测项名称"></el-table-column>
+                                 <el-table-column prop="ITEM_PRO_NUM" align="center" label="样机名称"></el-table-column>
+                                 <el-table-column prop="ITEM_SJ_VALUE" align="center" label="设计参数"></el-table-column>
+                                 <el-table-column prop="ITEM_PRO_TYPE" align="center" label="产品线"></el-table-column>
+                                 <el-table-column prop="ITEM_VALUE" align="center" label="结果值"></el-table-column>
+                                 <template slot="empty">
+                                     <el-empty :image-size="100"></el-empty>
+                                 </template>
+                             </el-table>
+                         </div>
+                     </div>
+                 </div>
+             </div>
+            </div>
+        </div>
+        <div class="sm4">
+            <div class="mains">
+                <div class="box" style="height: 760px;">
+                    <iframe  :src="'#(path)/report?op=time&time_name='+param.name+ '&ITEM_XL_NUM='+param.ITEM_XL_NUM+' &look=true'"  class="iframe2" v-if="param.ITEM_KEY"></iframe>
+                </div>
+            </div>
+        </div>
+    </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.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 myChart = null;
     let vm = new Vue({
         el: "#app",
         data: {
-            dialogVisible: false,
-            list: [],
+            loading: false,
+            loading2: false,
             param: {
-                time_name:'#(time_name)',
+                ITEM_NAME: 'CLG923FCR',
+                ITEM_XL_NUM: '',
+                time_name: '#(time_name)',
                 DOMAINID: '#(DOMAINID)',
-                ID: '#(ID)',
-                value: ['#(value)'],
-                begin: '#(begin)',
-                end: '#(end)',
-                created: ['#(begin)', '#(end)'],
+                ID: '#(ID)'
             },
+            key: true, //解决el-table 表体数据发生变化时,未重新渲染问题
+            tableData: [], //委托单
+            tableData2: [] //委托单联动
         },
         mounted() {
-            this.getData();
+            //this.getData();
         },
         methods: {
-            handleChange(value) {
-                this.param.ID = value[value.length - 1]
-            },
             search() {
+                this.param.name=this.param.ITEM_NAME;
                 this.getData();
             },
             getData() {
-                sendAjax("#(path)/report/time", this.param, res => {
+                vm.loading = true;
+                sendAjax("#(path)/report/getYj", this.param, res => {
+                    cancelLoding();
+                    //vm.param.time = res.time;
+                    if( res.yj.ITEM_KEY){
+                        vm.param.ITEM_KEY = res.yj.ITEM_KEY;
+                    }
+                    vm.tableData = res.wtd;
+                    setTimeout(() => {
+                        vm.loading = false;
+                    }, 1000);
+                    vm.$forceUpdate();
+                })
+            },
+            //委托单联动
+            select(row) {
+                vm.loading2 = true;
+                this.tableData.forEach(item => {
+                    item.check = false;
+                });
+                row.check = true;
+                this.key = !this.key;
+                this.param.ITEM_WT_NUM=row.ITEM_WT_NUM;
+                this.param.ITEM_PRO_NUM=vm.param.ITEM_NAME;
+                sendAjax("#(path)/report/getWtd", this.param, res => {
                     cancelLoding();
-                    vm.param.time = res.time;
-                    vm.list=res.data;
-                    vm.list.forEach(item=>{
-                        item.children.forEach(item=>{
-                            item.ITEM_TLOG=JSON.parse(item.ITEM_TLOG);
-                        })
-                    })
+                    vm.tableData2 = res.data;
+                    vm.loading2 = false;
+                    vm.$forceUpdate();
                 })
             }
         }

+ 5 - 0
src/main/webapp/WEB-INF/view/report/time.html

@@ -1,6 +1,9 @@
 #set(title="时间线统计")
 #@header()
 <style>
+    #if(look)
+    body{background-color: white}
+    #end
     .bg{padding: 15px;background-color: white;}
     .items{padding: 8px;border-bottom: 1px solid #e9ebed;color: #545555}
     .item{padding-top: 10px}
@@ -13,6 +16,7 @@
 </style>
 <body>
 <div id="app" v-cloak>
+    #if(!look)
     <el-form :inline="true" label-width="auto">
         <el-form-item label="样机型号">
             <el-input placeholder="请输入样机型号" v-model="param.time_name" clearable :disabled="true" />
@@ -25,6 +29,7 @@
         </el-form-item>
         <div style="float:right;">耗时: {{param.time}}</div>
     </el-form>
+    #end
     <div >
         <el-divider>变更记录</el-divider>
         <div v-for="(item, index) in list" :key="index" class="bg">