|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+"use strict";
|
|
|
2
|
+angular.module('app.intelligent').controller("humitureDetection3DCtrl", function ($scope, $state, $rootScope, $uibModalInstance, items, temperatureRecordService, APP_CONFIG, $filter, $uibModal) {
|
|
|
3
|
+ $scope.orgId = $rootScope.depotInfo.orgId;
|
|
|
4
|
+ $scope.id = items.id;
|
|
|
5
|
+ $scope.vCfCode = items.vCfCode; // 仓房编码
|
|
|
6
|
+ $scope.time = items.time; // 检测时间
|
|
|
7
|
+ $scope.intemp = items.intemp; // 仓内温
|
|
|
8
|
+ $scope.inh = items.inh; // 仓内湿
|
|
|
9
|
+ $scope.outtemp = items.outtemp; // 仓外温
|
|
|
10
|
+ $scope.outh = items.outh; // 仓外湿
|
|
|
11
|
+ $scope.max = items.max; // 最高粮温
|
|
|
12
|
+ $scope.min = items.min; // 最低粮温
|
|
|
13
|
+ $scope.avg = items.avg; // 平均粮温 'yyyy-MM-dd HH:mm:ss'
|
|
|
14
|
+ $scope.tableTime = $filter('date')(new Date(), 'yyyy-MM-dd HH:mm:ss'); // 制表时间
|
|
|
15
|
+
|
|
|
16
|
+ // 获取层数及每层数据
|
|
|
17
|
+ $scope.layerAvgTempData = function () {
|
|
|
18
|
+ temperatureRecordService.findByHouseAndTime(items.vCfCode, items.time, items.id).then(function (data) {
|
|
|
19
|
+ // console.log(data.data,'data.data1111')
|
|
|
20
|
+ $scope.layerData = data.data.reverse();
|
|
|
21
|
+ })
|
|
|
22
|
+ };
|
|
|
23
|
+ $scope.layerAvgTempData();
|
|
|
24
|
+
|
|
|
25
|
+ // 合并列计算
|
|
|
26
|
+ $scope.calculateMethod = function () {
|
|
|
27
|
+ /**
|
|
|
28
|
+ * 1.静态-定长
|
|
|
29
|
+ * 仓名-平均温: td_type_1=8
|
|
|
30
|
+ * 处理意见和备注: td_type_2=4
|
|
|
31
|
+ * 检验员: td_type_3=6
|
|
|
32
|
+ * 2.动态-变长
|
|
|
33
|
+ * 层均温: td_type_4=N*2
|
|
|
34
|
+ * 层温表格: td_type_5=N
|
|
|
35
|
+ */
|
|
|
36
|
+ var td_type_1 = 8;
|
|
|
37
|
+ var td_type_2 = 4;
|
|
|
38
|
+ var td_type_3 = 6;
|
|
|
39
|
+ var td_type_4 = 1;
|
|
|
40
|
+ $scope.td_type_4_true = false;
|
|
|
41
|
+ var td_type_5 = 1;
|
|
|
42
|
+ // 放行标志
|
|
|
43
|
+ $scope.td_type_5_avg_true = false;
|
|
|
44
|
+ $scope.td_type_5_avg_p_true = false;
|
|
|
45
|
+ var td_type_5_d = 0;
|
|
|
46
|
+ // 仓温仓湿
|
|
|
47
|
+ $.ajax({
|
|
|
48
|
+ type: "GET",
|
|
|
49
|
+ dataType: "json",
|
|
|
50
|
+ // async:true; //异步
|
|
|
51
|
+ async: false, //同步
|
|
|
52
|
+ url: APP_CONFIG.intelligentUrl + '/intelligents/temperatureRecord/findByHouseAndTime',
|
|
|
53
|
+ data: {
|
|
|
54
|
+ vDatatime: items.time == undefined ? "" : items.time,
|
|
|
55
|
+ vCfCode: items.vCfCode == undefined ? "" : items.vCfCode,
|
|
|
56
|
+ lqId: items.id
|
|
|
57
|
+ },
|
|
|
58
|
+ success: function (data) {
|
|
|
59
|
+ td_type_4 = data.data.length * 2; // 层数
|
|
|
60
|
+ // console.log("层数: " + data.data.length);
|
|
|
61
|
+ }
|
|
|
62
|
+ });
|
|
|
63
|
+ // 行/列
|
|
|
64
|
+ $.ajax({
|
|
|
65
|
+ type: "GET",
|
|
|
66
|
+ dataType: "json",
|
|
|
67
|
+ // async:true; //异步
|
|
|
68
|
+ async: false, //同步
|
|
|
69
|
+ url: APP_CONFIG.intelligentUrl + '/intelligents/temperatureRecord/findByHouseAndTimes',
|
|
|
70
|
+ data: {
|
|
|
71
|
+ vDatatime: items.time == undefined ? "" : items.time,
|
|
|
72
|
+ vCfCode: items.vCfCode == undefined ? "" : items.vCfCode,
|
|
|
73
|
+ lqId: items.id
|
|
|
74
|
+ },
|
|
|
75
|
+ success: function (data) {
|
|
|
76
|
+ td_type_5 = Object.keys(data.data[0]).length; // 温度表格单行大小
|
|
|
77
|
+ td_type_5_d = data.data.length; // 温度表格总大小
|
|
|
78
|
+ /*console.log("表格总大小: " + data.data.length);
|
|
|
79
|
+ console.log("单行大小: " + Object.keys(data.data[0]).length);*/
|
|
|
80
|
+ }
|
|
|
81
|
+ });
|
|
|
82
|
+ // 获取最长列(td)
|
|
|
83
|
+ var max = Math.max(td_type_1, td_type_2, td_type_3, td_type_4, td_type_5);
|
|
|
84
|
+ // console.log("max: " + max);
|
|
|
85
|
+ // 计算合并列
|
|
|
86
|
+ if (max > td_type_1) {
|
|
|
87
|
+ // +2 分配给两个td
|
|
|
88
|
+ $scope.td_type_1 = (max - td_type_1) + 2;
|
|
|
89
|
+ }
|
|
|
90
|
+ if (max > td_type_2) {
|
|
|
91
|
+ $scope.td_type_2 = (max - td_type_2) + 2;
|
|
|
92
|
+ }
|
|
|
93
|
+ if (max > td_type_3) {
|
|
|
94
|
+ // +3 分配给3个td
|
|
|
95
|
+ $scope.td_type_3 = (max - td_type_3) + 3;
|
|
|
96
|
+ }
|
|
|
97
|
+ if (max > td_type_4) {
|
|
|
98
|
+ $scope.td_type_4 = max - td_type_4;
|
|
|
99
|
+ $scope.td_type_4_true = true;
|
|
|
100
|
+ }
|
|
|
101
|
+ // 温度表格合并计算
|
|
|
102
|
+ $scope.td_type_5_avg = 1;
|
|
|
103
|
+ $scope.td_type_5_avg_p = 1;
|
|
|
104
|
+ if (max > td_type_5) {
|
|
|
105
|
+ // 温度表格平均分配到层以外的其他列(td)
|
|
|
106
|
+ var td_type_5_t = max - td_type_5; // 获取比最大小几
|
|
|
107
|
+ // 判断是否可以每人得到一个
|
|
|
108
|
+ var td_type_5_r = td_type_5_t % td_type_5; // 取余
|
|
|
109
|
+ if (td_type_5_t > td_type_5) { // 没人大于一个就分
|
|
|
110
|
+ if (td_type_5_r == 0) { // 整除
|
|
|
111
|
+ $scope.td_type_5_avg = td_type_5_t / td_type_5 + 1; // 平均分,加1把自己算上
|
|
|
112
|
+ // 放行标志
|
|
|
113
|
+ $scope.td_type_5_avg_true = true;
|
|
|
114
|
+ // console.log('整除avg: ' + $scope.td_type_5_avg);
|
|
|
115
|
+ } else { // 不能整除
|
|
|
116
|
+ var td_type_5_d = td_type_5_t - td_type_5_r; // 减掉多余
|
|
|
117
|
+ $scope.td_type_5_avg = td_type_5_d / (td_type_5 - 1) + 1; // 减掉多余的在平均分(平均-1),少分一份
|
|
|
118
|
+ $scope.td_type_5_avg_p = $scope.td_type_5_avg + td_type_5_r + 1; // 余数给一个人加上plus
|
|
|
119
|
+ // 放行标志
|
|
|
120
|
+ $scope.td_type_5_avg_true = true;
|
|
|
121
|
+ $scope.td_type_5_avg_p_true = true;
|
|
|
122
|
+ /*console.log('不能整除avg: ' + $scope.td_type_5_avg);
|
|
|
123
|
+ console.log('不能整除avg_p: ' + $scope.td_type_5_avg_p);*/
|
|
|
124
|
+ }
|
|
|
125
|
+ } else { // 不够分,直接plus
|
|
|
126
|
+ $scope.td_type_5_avg_p = td_type_5_r + 1; // 加的1为自己
|
|
|
127
|
+ // 放行标志
|
|
|
128
|
+ $scope.td_type_5_avg_p_true = true;
|
|
|
129
|
+ // console.log('不够avg: ' + $scope.td_type_5_avg_p);
|
|
|
130
|
+ }
|
|
|
131
|
+ }
|
|
|
132
|
+ /**
|
|
|
133
|
+ * 检测员,保管员,主管科长
|
|
|
134
|
+ * @type {number}
|
|
|
135
|
+ */
|
|
|
136
|
+ // 声明合并变量
|
|
|
137
|
+ var td_type_3_t = $scope.td_type_3 % 3; // 计算临时变量,并获取余数
|
|
|
138
|
+ var td_type_3_s = 1; // 将余数分配,主管科长
|
|
|
139
|
+ var td_type_3_avg = 1; // 可平均分配变量
|
|
|
140
|
+ var td_type_3_r = 1; // 去除余数,可平均分配值变量
|
|
|
141
|
+ if (td_type_3_t == 0) { // 可平均分配
|
|
|
142
|
+ var avg_avg_avg = $scope.td_type_3 / 3;
|
|
|
143
|
+ $scope.td_type_avg_1 = avg_avg_avg; // 检测员
|
|
|
144
|
+ $scope.td_type_avg_2 = avg_avg_avg; // 保管员
|
|
|
145
|
+ $scope.td_type_avg_3 = avg_avg_avg; // 主管科长
|
|
|
146
|
+ } else { // 不可平均分配
|
|
|
147
|
+ td_type_3_r = $scope.td_type_3 - td_type_3_t; // 获取可平均分配值
|
|
|
148
|
+ td_type_3_avg = td_type_3_r / 3; // 检测员,保管员可平均分配值
|
|
|
149
|
+ td_type_3_s = td_type_3_avg + td_type_3_t;// 主管科长(余数+平均)
|
|
|
150
|
+
|
|
|
151
|
+ $scope.td_type_avg_1 = td_type_3_avg; // 检测员可平均分配值
|
|
|
152
|
+ $scope.td_type_avg_2 = td_type_3_avg; // 保管员可平均分配值
|
|
|
153
|
+ $scope.td_type_avg_3 = td_type_3_s; // 主管科长(余数+平均)
|
|
|
154
|
+ }
|
|
|
155
|
+ };
|
|
|
156
|
+ $scope.calculateMethod();
|
|
|
157
|
+
|
|
|
158
|
+
|
|
|
159
|
+ // 获取该行数据
|
|
|
160
|
+ $scope.getListData = function (item) {
|
|
|
161
|
+ console.log(item, '获取该行数据');
|
|
|
162
|
+ // console.log(item.id, '获取该行数据id');
|
|
|
163
|
+ $scope.layernumber = item.layernumber;
|
|
|
164
|
+ // var number = item.layernumber
|
|
|
165
|
+ // 根据每行id拿到每层全部数据
|
|
|
166
|
+ // 点温表格
|
|
|
167
|
+ temperatureRecordService.findByTempTable(items.id).then(function (data) {
|
|
|
168
|
+ var detailList = data.data;
|
|
|
169
|
+
|
|
|
170
|
+ var trNum = 0;
|
|
|
171
|
+ /**
|
|
|
172
|
+ * $scope.td_type_5_avg_true = true;
|
|
|
173
|
+ $scope.td_type_5_avg_p_true = true;
|
|
|
174
|
+ $scope.td_type_5_avg $scope.td_type_5_avg_p
|
|
|
175
|
+ */
|
|
|
176
|
+ // 高低温报警
|
|
|
177
|
+ var tallTemp = $rootScope.warningValueList[$scope.vCfCode] == undefined
|
|
|
178
|
+ ? 100 : $rootScope.warningValueList[$scope.vCfCode].high == undefined
|
|
|
179
|
+ ? 100 : $rootScope.warningValueList[$scope.vCfCode].high; // 一般不超过3000℃
|
|
|
180
|
+ var lowTemp = $rootScope.warningValueList[$scope.vCfCode] == undefined
|
|
|
181
|
+ ? -274 : $rootScope.warningValueList[$scope.vCfCode].low == undefined
|
|
|
182
|
+ ? -274 : $rootScope.warningValueList[$scope.vCfCode].low; // 绝对0度为-273.15℃
|
|
|
183
|
+ /*console.log('tallTemp: ' + tallTemp);
|
|
|
184
|
+ console.log('lowTemp: ' + lowTemp);*/
|
|
|
185
|
+ // 层
|
|
|
186
|
+ // for (var key_z in detailList) {
|
|
|
187
|
+ // var key_z = 1;
|
|
|
188
|
+ // 天津库要求1层为最底层最大层数.
|
|
|
189
|
+ // console.log($scope.layernumber, '$scope.layernumber')
|
|
|
190
|
+ // 行
|
|
|
191
|
+ for (var key_x in detailList[$scope.layernumber]) {
|
|
|
192
|
+ // console.log(key_x,"key_x");
|
|
|
193
|
+ // 列
|
|
|
194
|
+ for (var key_y in detailList[$scope.layernumber][key_x]) {
|
|
|
195
|
+ // console.log(key_y,"key_y")
|
|
|
196
|
+ // key_y = 100 / (key_y+1) + '%';
|
|
|
197
|
+ // console.log(key_y)
|
|
|
198
|
+ // 判断只在第一行上方添加列
|
|
|
199
|
+
|
|
|
200
|
+ // 温度
|
|
|
201
|
+ for (var obj in detailList[$scope.layernumber][key_x][key_y]) {
|
|
|
202
|
+ var temp = detailList[$scope.layernumber][key_x][key_y][obj].temp;
|
|
|
203
|
+ // 过滤高低温设备异常报警
|
|
|
204
|
+
|
|
|
205
|
+ if (temp == 250) { // 250设备异常
|
|
|
206
|
+ $("#t_body tr").eq(trNum + 1).append(
|
|
|
207
|
+ "<td colspan='" + $scope.td_type_5_avg + "' style=\"border-style: none;text-align: center;color: red;\">"
|
|
|
208
|
+ + '-100' + "</td>"
|
|
|
209
|
+ );
|
|
|
210
|
+ } else {
|
|
|
211
|
+ if (temp >= tallTemp) { // 高温报警
|
|
|
212
|
+ $("#t_body tr").eq(trNum + 1).append(
|
|
|
213
|
+ "<td colspan='" + $scope.td_type_5_avg + "' style=\"border-style: none;text-align: center;color: red;\">"
|
|
|
214
|
+ + "<acronym title=\"粮温高限报警为: " + tallTemp + "℃\">"
|
|
|
215
|
+ + temp + "</td>"
|
|
|
216
|
+ );
|
|
|
217
|
+ } else if (temp <= lowTemp) { // 低温报警
|
|
|
218
|
+ $("#t_body tr").eq(trNum + 1).append(
|
|
|
219
|
+ "<td colspan='" + $scope.td_type_5_avg + "' style=\"border-style: none;text-align: center;color: blue;\">"
|
|
|
220
|
+ + "<acronym title=\"粮温低限报警为: " + lowTemp + "℃\">"
|
|
|
221
|
+ + temp + "</td>"
|
|
|
222
|
+ );
|
|
|
223
|
+ } else { // 正常值
|
|
|
224
|
+ if(temp ==item.lmax){
|
|
|
225
|
+ $("#t_body tr").eq(trNum + 1).append(
|
|
|
226
|
+ "<td colspan='" + $scope.td_type_5_avg + "' style=\"border-style: none;text-align: center;background-color:#ff9931;color:#fff;\">"
|
|
|
227
|
+ + temp + "</td>"
|
|
|
228
|
+ );
|
|
|
229
|
+ }
|
|
|
230
|
+ else if(temp ==item.lmin){
|
|
|
231
|
+ $("#t_body tr").eq(trNum + 1).append(
|
|
|
232
|
+ "<td colspan='" + $scope.td_type_5_avg + "' style=\"border-style: none;text-align: center;background-color:#199ec6;color:#fff;\">"
|
|
|
233
|
+ + temp + "</td>"
|
|
|
234
|
+ );
|
|
|
235
|
+ }else{
|
|
|
236
|
+ $("#t_body tr").eq(trNum + 1).append(
|
|
|
237
|
+ "<td colspan='" + $scope.td_type_5_avg + "' style=\"border-style: none;text-align: center;\">"
|
|
|
238
|
+ + temp + "</td>"
|
|
|
239
|
+ );
|
|
|
240
|
+ }
|
|
|
241
|
+
|
|
|
242
|
+ }
|
|
|
243
|
+ }
|
|
|
244
|
+ }
|
|
|
245
|
+ }
|
|
|
246
|
+ $("#t_body").append("<tr></tr>");
|
|
|
247
|
+ trNum++;
|
|
|
248
|
+ }
|
|
|
249
|
+ $("#t_body").append("<tr></tr>");
|
|
|
250
|
+ trNum++;
|
|
|
251
|
+ // 去除多余tr
|
|
|
252
|
+ $("#t_body").find("tr:last").remove();
|
|
|
253
|
+ /*// 去除多余tr
|
|
|
254
|
+ var max = $("#t_body tr:last").index();//获取最后一行的索引值
|
|
|
255
|
+ //获取比上面索引值小三的行,删除就行
|
|
|
256
|
+ var get = max - 4;//注意这里是减四
|
|
|
257
|
+ $("#t_body tr:gt(" + get + ")").remove();*/
|
|
|
258
|
+ });
|
|
|
259
|
+ // });
|
|
|
260
|
+
|
|
|
261
|
+ // 初始参数
|
|
|
262
|
+ var params = [];
|
|
|
263
|
+ params.layerAllData = $scope.layerAllData;
|
|
|
264
|
+ params.list = item;
|
|
|
265
|
+ // params.number = item.layernumber
|
|
|
266
|
+ $uibModal.open({
|
|
|
267
|
+ size: 'lg',
|
|
|
268
|
+
|
|
|
269
|
+ templateUrl: 'app/intelligent/grainDetection/views/humitureDetection3D-list.html',
|
|
|
270
|
+ controller: 'humitureDetection3D-listCtrl',
|
|
|
271
|
+ resolve: {
|
|
|
272
|
+ // 传入参数
|
|
|
273
|
+ items: function () {
|
|
|
274
|
+ // 这个值会被模态框的控制器获取到
|
|
|
275
|
+ return params;
|
|
|
276
|
+ }
|
|
|
277
|
+ }
|
|
|
278
|
+ });
|
|
|
279
|
+ };
|
|
|
280
|
+
|
|
|
281
|
+ //关闭弹窗
|
|
|
282
|
+ $scope.cancel = function () {
|
|
|
283
|
+ $uibModalInstance.close();
|
|
|
284
|
+ };
|
|
|
285
|
+
|
|
|
286
|
+});
|