Browse Source

Merge branch 'master' of http://116.63.33.55/git/industry-data-platform into master

lhy 1 year ago
parent
commit
f7400f46dd
18 changed files with 103 additions and 50 deletions
  1. 5 7
      industry-admin/src/views/collector/index.vue
  2. 6 3
      industry-admin/src/views/report/runConfig/index.vue
  3. 5 5
      industry-admin/src/views/report/runConfig/reportAuth.vue
  4. 24 3
      industry-admin/src/views/report/tableTemplate/index.vue
  5. 1 1
      industry-admin/src/views/source/itemGroup/itemChoose.vue
  6. 1 1
      industry-admin/src/views/system/staff/index.vue
  7. 3 3
      industry-system/industry-da/src/main/java/com/example/opc_da/controller/ReportTableController.java
  8. 13 0
      industry-system/industry-da/src/main/java/com/example/opc_da/service/impl/CollectorServiceImpl.java
  9. 1 1
      industry-system/industry-da/src/main/java/com/example/opc_da/service/impl/ItemGroupServiceImpl.java
  10. 1 0
      industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/EventMaReportTableValidate.java
  11. 9 0
      industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/EventReportTableValidate.java
  12. 3 3
      industry-system/industry-da/src/main/resources/application-test.yml
  13. 1 1
      industry-system/industry-da/src/main/resources/mapper/CollectorDao.xml
  14. 1 0
      industry-system/industry-da/src/main/resources/mapper/ReportTableDao.xml
  15. 2 0
      industry-system/industry-da/src/main/resources/static/reportSheet/js/index.js
  16. 2 2
      industry-system/industry-da/src/main/resources/static/reportSheet/js/src/model/chart-right-window.js
  17. 7 2
      industry-system/industry-da/src/main/resources/static/reportSheet/js/src/model/right-menu.js
  18. 18 18
      industry-system/industry-da/src/main/resources/static/reportSheet/js/util/constants.js

+ 5 - 7
industry-admin/src/views/collector/index.vue

@@ -193,19 +193,15 @@
 
         <el-table :data="itemTableData" height="250" border style="width: 100%">
           <el-table-column label="序号" type="index" width="70" align="left" />
-          <el-table-column key="itemGroupId" label="数据组" align="left" prop="itemGroupId" show-overflow-tooltip>
-            <template slot-scope="scope">
-              <span v-for="item in itemGroupSelect" :key="item.id"
-                >{{ item.groupName }}</span>
-            </template>
+          <el-table-column key="group_name" label="数据组" align="left" prop="group_name" show-overflow-tooltip>
           </el-table-column>
           <el-table-column key="interval" label="采集间隔" align="left" prop="interval" show-overflow-tooltip />
           <el-table-column key="unit" label="单位" align="left" prop="unit" show-overflow-tooltip />
           <el-table-column label="操作" align="left" width="250" class-name="small-padding fixed-width">
             <template slot-scope="scope">
-              <el-button size="mini" type="text" icon="el-icon-edit" @click="editItem(scope.row)">修改
+              <el-button v-show="scope.row.isupdate==1" size="mini" type="text" icon="el-icon-edit" @click="editItem(scope.row)">修改
               </el-button>
-              <el-button size="mini" type="text" icon="el-icon-delete" @click="delItem(scope.row)">删除
+              <el-button v-show="scope.row.isupdate==1" size="mini" type="text" icon="el-icon-delete" @click="delItem(scope.row)">删除
               </el-button>
             </template>
           </el-table-column>
@@ -538,6 +534,8 @@ export default {
           const itemData = JSON.parse(data.itemJson || '[]')
           this.itemTableData = itemData.map(item => {
             return {
+              group_name:item.group_name,
+              isupdate:item.isupdate,
               itemGroupId: item.itemGroupId,
               interval: item.itemInterval,
               unit: item.itemUnit

+ 6 - 3
industry-admin/src/views/report/runConfig/index.vue

@@ -143,6 +143,9 @@ export default {
                     style: '',
                     icon: 'el-icon-setting',
                     methodName: "runRecordEvent",
+                  hidden: row => {
+                    return row.reportTableType != 0
+                  }
                 },
                 {
                     btnName: '配置',
@@ -180,9 +183,9 @@ export default {
                     style: '',
                     icon: 'el-icon-user',
                     methodName: "reportAuthEvent",
-                    hidden: row => {
-                        return row.runState === 0
-                    }
+                    // hidden: row => {
+                    //     return row.runState === 0
+                    // }
                 },
                 {
                     btnName: '分享详情',

+ 5 - 5
industry-admin/src/views/report/runConfig/reportAuth.vue

@@ -2,10 +2,10 @@
     <el-dialog :title="title" width="50%" center custom-class="dialog-max" top="5vh" :before-close="dialogClose"
         :visible.sync="visible" :append-to-body="true" @open="dialogOpen" @close="dialogClose">
         <el-transfer v-model="hasUserGroupList" :data="userGroupList" :props="userGroupProp"></el-transfer>
-        <span slot="footer">
-            <el-button type="primary" @click="tableAssignUserEvent" style="margin-top: 20px">确定</el-button>
-            <el-button @click="dialogClose" style="margin-top: 20px">取消</el-button>
-        </span>
+        <div slot="footer" style="text-align: right">
+            <el-button size="mini" type="primary" @click="tableAssignUserEvent" style="margin-top: 20px">确定</el-button>
+            <el-button size="mini" @click="dialogClose" style="margin-top: 20px">取消</el-button>
+        </div>
     </el-dialog>
 </template>
 
@@ -76,4 +76,4 @@ export default {
 .el-transfer-panel {
     width: 320px;
 }
-</style>
+</style>

+ 24 - 3
industry-admin/src/views/report/tableTemplate/index.vue

@@ -2,14 +2,16 @@
     <div>
         <div class="sy-content">
           <split-pane
-            :min-percent='15'
-            :default-percent='15'
+            :min-percent='leftpercent'
+            :default-percent='leftpercent'
             split="vertical">
             <template slot="paneL">
+
               <el-tree :data="treeData"
                        :props="defaultProps"
                        node-key="id"
                        default-expand-all
+                       v-if="hideLeft==1"
                        :expand-on-click-node="false"
                        @node-contextmenu="rightReportNodeEvent"
                        @node-click="templateNameClick" class="lefttree1">
@@ -30,7 +32,7 @@
                                 <span :title="data.templateName" style="margin-left: 2px;font-size: 14px;">{{
                                     data.templateName
                                   }}</span>
-                                <span v-if="data.id == -1" style="position: absolute; right: 0;">
+                                <span v-if="data.id == -1" style="position: absolute; right: 10px;">
                                   <el-button type="text" size="mini" title="新建报表" @click="addReportEvent"
                                              icon="el-icon-document-add"></el-button>
                                   <el-button type="text" size="mini" style="margin-left: 5px" title="导入报表"
@@ -40,6 +42,9 @@
                                 </span>
                     </span>
               </el-tree>
+              <span style="position: absolute; right: 10px;top:300px">
+                <el-button type="text" size="mini" title="" @click="splitClickEvent" :icon="iconstr"></el-button>
+              </span>
             </template>
             <template slot="paneR">
               <iframe @load="load" id="myIframe" :src="iframeSrc"
@@ -114,6 +119,9 @@ export default {
             isLoadingStatus: false,
             //reportId: null,
             reportId: 0,
+            hideLeft:1,
+            leftpercent:15,
+            iconstr:'el-icon-caret-left',
             type: '',
             iframeSrc: process.env.VUE_APP_BASE_API + '/reportSheet/index.html',
             // iframeSrc: 'http://localhost:83/#/tableTemplate/templateDetail?id=18',
@@ -224,6 +232,19 @@ export default {
           this.type = ''
           this.load()
         },
+        splitClickEvent(){
+          this.hideLeft = !this.hideLeft;
+          if(this.leftpercent==0){
+            this.leftpercent=15
+          }else{
+            this.leftpercent=0
+          };
+          if(this.iconstr=="el-icon-caret-left"){
+            this.iconstr = 'el-icon-caret-right'
+          }else{
+            this.iconstr = 'el-icon-caret-left'
+          }
+        },
         importReportEvent(){
           this.$refs.importFileNode.dispatchEvent(new MouseEvent('click'))
         },

+ 1 - 1
industry-admin/src/views/source/itemGroup/itemChoose.vue

@@ -12,7 +12,7 @@
                     <el-input type="textarea" v-model="itemGroupForm.groupDescribe" placeholder="请输入备注"
                         maxlength="100"></el-input>
                 </el-form-item>
-                <el-divider content-position="left">请选择数据源1</el-divider>
+                <el-divider content-position="left">请选择数据源</el-divider>
                 <div class="cy-line">
                     <el-form-item prop="dataSourceId">
                         <el-select v-model="itemGroupForm.dataSourceId" filterable placeholder="请选择数据源"

+ 1 - 1
industry-admin/src/views/system/staff/index.vue

@@ -5,7 +5,7 @@
                 <el-tree v-if="treeData.length !== 0" :data="treeData" :props="defaultProps" node-key="id"
                     default-expand-all @node-click="handleNodeClick">
                     <span class="custom-tree-node" slot-scope="{ node, data }">
-                        <i class="el-icon-folder" style="color: #DFBA49; margin-right: 5px;"></i>
+<!--                        <i class="el-icon-folder" style="color: #DFBA49; margin-right: 5px;"></i>-->
                         <span style="font-size: 15px;">{{ node.label }}</span>
                     </span>
                 </el-tree>

+ 3 - 3
industry-system/industry-da/src/main/java/com/example/opc_da/controller/ReportTableController.java

@@ -129,7 +129,7 @@ public class ReportTableController {
     @GetMapping("/getAllTableTemplate")
 //    @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.TABLETEMPLATE, OperationEnum = OperationEnum.SELECT)
     public Result getAllTableTemplate(Integer page, Integer limit, String userId, String templateName, Integer templateType) {
-        return reportTableService.getAllTableTemplate(page, limit, userId, templateName, templateType);
+        return reportTableService.getAllTableTemplate(page, 100000, userId, templateName, templateType);
     }
 
     /**
@@ -305,8 +305,8 @@ public class ReportTableController {
     @GetMapping("/queryTableNum")
 //    @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.REPORTTABLE, OperationEnum = OperationEnum.SELECT)
     public Result queryTableNum() {
-        return Result.ok(0);
-//        return reportTableService.queryTableNum();
+        //return Result.ok(0);
+        return reportTableService.queryTableNum();
     }
 
     /**

+ 13 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/service/impl/CollectorServiceImpl.java

@@ -12,7 +12,9 @@ import com.example.opc_common.util.Result;
 import com.example.opc_da.dao.CollectorDao;
 import com.example.opc_da.dao.InFluxDBDao;
 import com.example.opc_da.service.CollectorService;
+import com.example.opc_da.util.UserUtil;
 import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -33,6 +35,9 @@ public class CollectorServiceImpl implements CollectorService {
     @Value("${telegraf.client.port}")
     private String clientPort;
 
+    @Autowired
+    private UserUtil userUtil;
+
     @Override
     public Integer getCountByIp(String ip) {
         return collectorDao.getCountByIp(ip);
@@ -62,6 +67,14 @@ public class CollectorServiceImpl implements CollectorService {
     public Collector getCollectorInfo(Integer id) {
         Collector collector = collectorDao.getCollectorInfo(id);
         List<Map<String, Object>> list = collectorDao.getItemGroupByClientId(id);
+        String currentUserId = userUtil.getCurrentUserId();
+        for(int i=0;i<list.size();i++){
+            if(list.get(i).get("user_id").equals(currentUserId)){
+                list.get(i).put("isupdate",1);
+            }else{
+                list.get(i).put("isupdate",0);
+            }
+        }
         if (Blank.notBlank(list)) {
             collector.setItemJson(JSONUtil.parseArray(list).toJSONString(0));
         }

+ 1 - 1
industry-system/industry-da/src/main/java/com/example/opc_da/service/impl/ItemGroupServiceImpl.java

@@ -354,7 +354,7 @@ public class ItemGroupServiceImpl implements ItemGroupService {
 
     @Override
     public Result getAllItemGroups() {
-        return Result.ok(itemGroupDao.getAllItemGroup1(userUtil.getCurrentUserId(), null));
+        return Result.ok(itemGroupDao.getAllItemGroup1(null, null));
     }
 
     @Override

+ 1 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/EventMaReportTableValidate.java

@@ -38,6 +38,7 @@ public class EventMaReportTableValidate extends EventReportTableValidate {
             JSONArray sheetData = sheet.getJSONArray("data");
             echoSheetAll(sheetData, null);
             sheet.put("data", sheetData);
+            reportTableDataJson.put("sheet", sheet);
             return reportTable.setReportTableData(reportTableDataJson.toJSONString());
         } else {
             throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "运行状态异常");

+ 9 - 0
industry-system/industry-da/src/main/java/com/example/opc_da/validate/reportTable/EventReportTableValidate.java

@@ -40,6 +40,10 @@ public abstract class EventReportTableValidate implements ReportTableValidate {
                             JSONObject rowColData = rowColJson.getJSONObject("data");
                             String itemId = rowColData.getString("itemId");
                             if (Blank.isNotEmpty(itemId)) {
+                                if(CollUtil.isEmpty(itemDataMap)){
+                                    rowCol.put("v", null);
+                                    rowCol.put("m", null);
+                                };
                                 List<Item> itemList = itemDataMap.get(itemId);
                                 if (CollUtil.isNotEmpty(itemList)) {
                                     String value = itemList.get(0).getValue();
@@ -53,11 +57,16 @@ public abstract class EventReportTableValidate implements ReportTableValidate {
                             }
                             //如果类型为时间,则存入时间
                         } else if (type.equals("datatime")) {
+                            if(CollUtil.isEmpty(itemDataMap)){
+                                rowCol.put("v", null);
+                                rowCol.put("m", null);
+                            };
                             List<Item> itemList = itemDataMap.entrySet()
                                     .stream()
                                     .findFirst()
                                     .map(Map.Entry::getValue)
                                     .orElse(new ArrayList<>());
+
                             if (CollUtil.isNotEmpty(itemList)) {
                                 String time = itemList.get(0).getTime();
                                 rowCol.put("v", time);

+ 3 - 3
industry-system/industry-da/src/main/resources/application-test.yml

@@ -14,10 +14,10 @@ spring:
       max-request-size: 500MB
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://192.168.1.253:3306/in_data_db?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
+    url: jdbc:mysql://localhost:3306/in_data_db?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
     username: root
-    #password: root
-    password: jd@2021
+    password: root
+    #password: jd@2021
     hikari:
       # 设置是否自动提交事务,默认为true
       auto-commit: true

+ 1 - 1
industry-system/industry-da/src/main/resources/mapper/CollectorDao.xml

@@ -57,7 +57,7 @@
 
     <!--查询采集数据组-->
     <select id="getItemGroupByClientId" resultType="java.util.Map">
-        select item_group_id itemGroupId, item_interval itemInterval, item_unit itemUnit from f_telegraf_client_item where client_id = #{clientId}
+        select it.item_group_id itemGroupId, it.item_interval itemInterval, it.item_unit itemUnit,g.group_name,g.user_id from f_telegraf_client_item it left outer join t_item_group g on g.id=it.item_group_id where it.client_id = #{clientId}
     </select>
 
     <select id="getCollectorInfoPageCount" resultType="java.lang.Integer">

+ 1 - 0
industry-system/industry-da/src/main/resources/mapper/ReportTableDao.xml

@@ -467,6 +467,7 @@
     <select id="queryTableNum" resultType="java.lang.Integer">
         SELECT COUNT(*)
         FROM t_report_table
+        where report_table_type not in(3,4)
     </select>
 
     <select id="getAllAutoReportTable" resultType="com.example.opc_common.entity.ReportTable">

+ 2 - 0
industry-system/industry-da/src/main/resources/static/reportSheet/js/index.js

@@ -32,6 +32,7 @@ const indexFn = {
 			luckysheet.destroy()
 			layui.api.getTableTemplateById(data.reportId).then(json => {
 				const templateData = JSON.parse(json.data.templateData)
+				//console.log(templateData)
 				layui.rightMenu.data.chart = templateData.chart
 				layui.sheetTypew.templateReportId = data.reportId
 				layui.sheetTypew.templateReportVersion = json.data.version
@@ -42,6 +43,7 @@ const indexFn = {
 				let s_data = $.extend(true, {}, templateData.sheet)
 				delete s_data.chart
 				data.data = [s_data]
+				//console.log(data)
 				layui.sheetUtil.init(templateData.sheet.data, 'edit', data)
 			})
 		} else {

+ 2 - 2
industry-system/industry-da/src/main/resources/static/reportSheet/js/src/model/chart-right-window.js

@@ -1119,8 +1119,8 @@ layui.define(['layer', 'form', 'jquery', 'element', 'laydate', 'colorpicker', 's
 				html = `
 					<div class="cr-form-label">时间类型:</div>
 					<div class="layui-form-item">
-						<input type="radio" name="isChartDataType" value="1" title="实时值" lay-filter="isChartDataType" checked>
-						<input type="radio" name="isChartDataType" value="2" title="历史值" lay-filter="isChartDataType"> 
+						<input type="radio" name="isChartDataType" value="1" title="实时值" lay-filter="isChartDataType">
+						<input type="radio" name="isChartDataType" value="2" title="历史值" lay-filter="isChartDataType" checked> 
 					</div>
 					<div class="chart-hand-history-view">
 						<div class="cr-form-label">取值类型:</div>

+ 7 - 2
industry-system/industry-da/src/main/resources/static/reportSheet/js/src/model/right-menu.js

@@ -499,8 +499,13 @@ layui.define(['layer', 'util', 'jquery', 'form', 'sheetTypew', 'chartRightw', 'i
 					}, function(idx) {
 						luckysheet.destroy()
 						layui.api.getSysTableTemplateById(data.templateId).then(json => {
-							console.log(JSON.parse(json.data.templateData).data)
-							layui.sheetUtil.init(JSON.parse(json.data.templateData).data)
+							//console.log(JSON.parse(json.data.templateData).data)
+							const templateData = JSON.parse(json.data.templateData)
+							let s_data = $.extend(true, {}, templateData.sheet)
+							delete s_data.chart
+							data.data = [s_data]
+							//layui.sheetUtil.init(JSON.parse(json.data.templateData).data)
+							layui.sheetUtil.init(templateData.sheet.data,'edit', data)
 							layer.close(idx)
 							layer.close(index)
 						})

+ 18 - 18
industry-system/industry-da/src/main/resources/static/reportSheet/js/util/constants.js

@@ -60,11 +60,11 @@ const chartOption = {
 		legend: {
 			show: false,
 			data: [{
-				name: '数据一'
+				name: '点位一'
 			}, {
-				name: '数据二'
+				name: '点位二'
 			}, {
-				name: '数据三'
+				name: '点位三'
 			}]
 		},
 		grid: {
@@ -75,7 +75,7 @@ const chartOption = {
 		},
 		xAxis: {
 			type: 'category',
-			data: ['数据一', '数据二', '数据三'],
+			data: ['点位一', '点位二', '点位三'],
 			axisLabel: {
 				interval: 0
 			}
@@ -104,11 +104,11 @@ const chartOption = {
 		legend: {
 			show: false,
 			data: [{
-				name: '数据一'
+				name: '点位一'
 			}, {
-				name: '数据二'
+				name: '点位二'
 			}, {
-				name: '数据三'
+				name: '点位三'
 			}]
 		},
 		grid: {
@@ -119,7 +119,7 @@ const chartOption = {
 		},
 		xAxis: {
 			type: 'category',
-			data: ['数据一', '数据二', '数据三'],
+			data: ['点位一', '点位二', '点位三'],
 			axisLabel: {
 				interval: 0
 			}
@@ -148,25 +148,25 @@ const chartOption = {
 		legend: {
 			show: false,
 			data: [{
-				name: '数据一'
+				name: '点位一'
 			}, {
-				name: '数据二'
+				name: '点位二'
 			}, {
-				name: '数据三'
+				name: '点位三'
 			}]
 		},
 		series: [{
 			data: [{
 					value: 1048,
-					name: '数据一'
+					name: '点位一'
 				},
 				{
 					value: 735,
-					name: '数据二'
+					name: '点位二'
 				},
 				{
 					value: 580,
-					name: '数据三'
+					name: '点位三'
 				},
 			],
 			label: {
@@ -185,13 +185,13 @@ const chartOption = {
 
 const chartDefaultFrom = {
 	items: [{
-		title: '数据一'
+		title: '点位一'
 	}, {
-		title: '数据二'
+		title: '点位二'
 	}, {
-		title: '数据三'
+		title: '点位三'
 	}],
-	nameData: ['数据一', '数据二', '数据三'],
+	nameData: ['点位一', '点位二', '点位三'],
 	dataForm: {
 		valueType: 1,
 		valueTakingMode: 1,