李书文 2 년 전
부모
커밋
8a87548ef9

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

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

+ 25 - 13
src/main/resources/report.sql

@@ -65,27 +65,31 @@ and e.ITEM_PRODUCT=#para(ITEM_PRODUCT)
  select round(sum((cast(PROCESSTIME as date)-cast(ACTIONTIME as date))*86400)/60) interval,FLOWNAME from T_RELATIONHIS e
  left outer join t_user on t_user.ID=auditor
  left outer join t_department on t_user.defaultdepartment=t_department.ID
- where  t_department.ID=#para(ID)
+ where t_department.ID in (select  ID from t_department start with ID=#para(ID) connect by prior ID=superior)
  and e.PROCESSTIME between to_date(#para(begin),'yyyy-mm-dd hh24:mi:ss') and to_date(#para(end),'yyyy-mm-dd hh24:mi:ss')
  group by  FLOWNAME
 #end
 
 ###试验类型统计
 #sql("type")
- select  #para(DOMAINID) AS DOMAINID,nvl(item_experiment_type,'其他')as item_experiment_type,count(*) as item_invalue from tlk_entrustment
- left outer join t_user on t_user.ID=author
- left outer join t_department on t_user.defaultdepartment=t_department.ID
- where  t_department.ID in (select  ID from t_department start with ID=#para(ID) connect by prior ID=superior)
+ select nvl(item_experiment_type,'其他')as item_experiment_type,count(*) as item_invalue from tlk_examine
+ where DOMAINID=#para(DOMAINID) and author_dept_index like #para(ID,"like")
  and created between to_date(#para(begin),'yyyy-mm-dd hh24:mi:ss') and to_date(#para(end),'yyyy-mm-dd hh24:mi:ss')
+#if(ITEM_TEST_DEPT)
+ and ITEM_TEST_DEPT like #para(ITEM_TEST_DEPT,"like")
+#end
+
+#if(ITEM_PRODUCT)
+ and ITEM_PRODUCT=#para(ITEM_PRODUCT)
+#end
+
  group by item_experiment_type
 #end
 
 ###试验类型统计列表
 #sql("type_list")
- select  t_user.name,t.ID,t.ITEM_WT_NUM,t.ITEM_TITLE,nvl(t.item_experiment_type,'其他')as item_experiment_type from tlk_entrustment t
- left outer join t_user on t_user.ID=author
- left outer join t_department on t_user.defaultdepartment=t_department.ID
- where  t_department.ID in (select  ID from t_department start with ID=#para(ID) connect by prior ID=superior)
+ select  t.ID,t.ITEM_WT_NUM,t.ITEM_TITLE,nvl(t.item_experiment_type,'其他')as item_experiment_type from tlk_examine t
+ where DOMAINID=#para(DOMAINID) and author_dept_index like #para(ID,"like")
  and created between to_date(#para(begin),'yyyy-mm-dd hh24:mi:ss') and to_date(#para(end),'yyyy-mm-dd hh24:mi:ss')
  #if(name&&name!='其他')
  and item_experiment_type=#para(name)
@@ -127,8 +131,12 @@ FROM
 	LEFT JOIN tlk_dic_prou p ON y.item_product = p.item_dic_prouname
 WHERE
 	1 = 1
-	AND y.created BETWEEN to_date(#para(begin), 'yyyy-mm-dd hh24:mi:ss' )
-	AND to_date(#para(end), 'yyyy-mm-dd hh24:mi:ss' )
+    AND y.DOMAINID=#para(DOMAINID) and y.author_dept_index like #para(ID,"like")
+	AND y.created BETWEEN to_date(#para(begin), 'yyyy-mm-dd hh24:mi:ss' )AND to_date(#para(end), 'yyyy-mm-dd hh24:mi:ss' )
+    #if(ITEM_TEST_DEPT)
+    and y.ITEM_TEST_DEPT like #para(ITEM_TEST_DEPT,"like")
+    #end
+
 GROUP BY
 	item_product
 #end
@@ -142,8 +150,12 @@ FROM
 	LEFT JOIN tlk_dic_prou p ON y.item_product = p.item_dic_prouname
 WHERE
 	1 = 1
-	AND y.created BETWEEN to_date(#para(begin), 'yyyy-mm-dd hh24:mi:ss' )
-	AND to_date(#para(end), 'yyyy-mm-dd hh24:mi:ss' )
+     AND y.DOMAINID=#para(DOMAINID) and y.author_dept_index like #para(ID,"like")
+	 AND y.created BETWEEN to_date(#para(begin), 'yyyy-mm-dd hh24:mi:ss' )AND to_date(#para(end), 'yyyy-mm-dd hh24:mi:ss' )
+
+    #if(ITEM_TEST_DEPT)
+    and y.ITEM_TEST_DEPT like #para(ITEM_TEST_DEPT,"like")
+    #end
 
 	 #if(name&&name!='其他')
       AND y.item_product =#para(name)

+ 55 - 6
src/main/webapp/WEB-INF/view/report/data.html

@@ -1,28 +1,31 @@
 #set(title="数据查询与统计")
 #@header()
+<style>
+ .el-table--enable-row-transition .el-table__body td.el-table__cell{cursor: pointer;}
+</style>
 <body>
 <div id="app" v-cloak>
     <el-form :inline="true" label-width="auto">
         <el-form-item label="实验部门" prop="state">
             <el-cascader
+                    style="width: 150px"
                     v-model="param.value"
                     :options="options"
                     :props="props"
                     @change="handleChange"
-                    :show-all-levels="false"
-                    clearable>
+                    :show-all-levels="false">
             </el-cascader>
         </el-form-item>
         <el-form-item label="产品线选择">
-            <el-select placeholder="请选择" v-model="param.item_pro_type">
+            <el-select placeholder="请选择" v-model="param.item_pro_type" style="width: 150px" 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_test_name" clearable />
+            <el-input placeholder="请输入实验名称" v-model="param.item_test_name" style="width: 150px" clearable />
         </el-form-item>
-        <el-form-item label="样机型号">
-            <el-input placeholder="请输入样机型号" v-model="param.item_pro_num" clearable />
+        <el-form-item label="选择样机" clearable>
+            <el-input placeholder="请选择样机名称" v-model="param.item_pro_num" @click.native="dialogVisible2 = true" :readonly="true" style="width: 150px" clearable/>
         </el-form-item>
         <el-form-item label="时间范围">
             <el-date-picker
@@ -53,6 +56,36 @@
             <el-table-column prop="CREATED" align="center" label="创建时间"></el-table-column>
         </el-table>
     </el-dialog>
+    <!--样机选择-->
+    <el-dialog title="选择样机" width="87%" :visible.sync="dialogVisible2" 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>
@@ -67,7 +100,9 @@
         el: "#app",
         data: {
             dialogVisible: false,
+            dialogVisible2:false,
             tableData: [],
+            tableData3:[],
             param: {
                 DOMAINID: '#(DOMAINID)',
                 ID: '#(ID)',
@@ -109,6 +144,20 @@
                     vm.tableData = res.data;
                 })
             },
+            //根据产品线选择样机
+            change(){
+                this.param.item_pro=this.param.item_pro_type;
+                sendAjax("#(path)/report/prou", this.param, res => {
+                    cancelLoding();
+                    vm.tableData3 = res.data;
+                })
+            },
+            //点击样机列表
+            click(row){
+                vm.param.item_pro_num=row.ITEM_NAME;
+                vm.dialogVisible2=false;
+                this.getData();
+            },
             initEcharts(data) {
                 let legend = [];
                 let series = [];

+ 1 - 4
src/main/webapp/WEB-INF/view/report/forms.html

@@ -14,11 +14,8 @@
 <div id="app" v-cloak>
     <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.name" @click.native="dialogVisible = true" :readonly="true" style="cursor: pointer;" clearable/>
+                <el-input placeholder="请选择样机名称" v-model="param.name" @click.native="dialogVisible = true" :readonly="true" clearable/>
             </el-form-item>
         </el-form>
         <div class="sm6">

+ 1 - 1
src/main/webapp/WEB-INF/view/report/model.html

@@ -30,7 +30,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-button type="primary"><a :href="'#(path)/report?op=time&time_name='+param.name" style="color: white">查看时间线</a></el-button>
         <el-table :data="tableData" style="width: 100%;margin-top: 10px">
             <el-table-column prop="ITEM_XL_NUM" label="出厂编号"></el-table-column>

+ 20 - 2
src/main/webapp/WEB-INF/view/report/product.html

@@ -3,7 +3,7 @@
 <body>
 <div id="app" v-cloak>
     <el-form :inline="true" label-width="auto">
-        <el-form-item label="实验部门" prop="state" style="display: none">
+        <el-form-item label="需求部门" prop="state">
             <el-cascader
                     v-model="param.value"
                     :options="options"
@@ -13,6 +13,16 @@
                     clearable>
             </el-cascader>
         </el-form-item>
+        <el-form-item label="试验部门">
+            <el-cascader
+                    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-date-picker
                     v-model="param.created"
@@ -30,7 +40,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,6 +84,11 @@
                 label: 'NAME',
                 checkStrictly: true
             },
+            props2: {
+                value: 'NAME',
+                label: 'NAME',
+                checkStrictly: true
+            },
             options: #(department)
         },
         mounted() {
@@ -92,6 +107,9 @@
             handleChange(value) {
                 this.param.ID = 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];

+ 28 - 3
src/main/webapp/WEB-INF/view/report/type.html

@@ -3,7 +3,7 @@
 <body>
 <div id="app" v-cloak>
     <el-form :inline="true" label-width="auto">
-        <el-form-item label="实验部门" prop="state">
+        <el-form-item label="需求部门" prop="state">
             <el-cascader
                     v-model="param.value"
                     :options="options"
@@ -13,6 +13,22 @@
                     clearable>
             </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_TITLE" label="名称"></el-table-column>
             <el-table-column prop="ITEM_EXPERIMENT_TYPE" align="center" label="类型"></el-table-column>
@@ -71,7 +87,13 @@
                 label: 'NAME',
                 checkStrictly: true
             },
-            options: #(department)
+            props2: {
+                value: 'NAME',
+                label: 'NAME',
+                checkStrictly: true
+            },
+            options: #(department),
+            prouname: #(prouname)
         },
         mounted() {
             this.getData();
@@ -89,6 +111,9 @@
             handleChange(value) {
                 this.param.ID = 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];