Sfoglia il codice sorgente

代储点bug修改

lvzhikai 5 anni fa
parent
commit
43fe4eb150

+ 25 - 1
src/main/java/com/chinaitop/depot/agent/temperature/controller/AgentTemperatureController.java

@@ -8,6 +8,7 @@ import java.util.Map;
8 8
 import javax.annotation.Resource;
9 9
 import javax.servlet.http.HttpServletRequest;
10 10
 
11
+import com.chinaitop.depot.agent.temperature.model.TempMetadata;
11 12
 import org.apache.commons.lang.StringUtils;
12 13
 import org.springframework.http.MediaType;
13 14
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -66,7 +67,7 @@ public class AgentTemperatureController {
66 67
             @ApiImplicitParam(name = "orgid", value = "组织id", paramType = "query")
67 68
     })
68 69
     public PageInfo<Map<String, Object>> getAgentTemperatureList(Integer pageNum, Integer pageSize, Integer agentId, Integer agentDepotId,
69
-                                                                 Integer storehouseId, String startTime, String endTime, String temperId, String orgid) {
70
+                                                                 String storehouseId, String startTime, String endTime, String temperId, String orgid) {
70 71
         Map<String, Object> map = new HashMap<>();
71 72
         map.put("orgId", orgid);
72 73
         if (ParameterUtil.isnotnull(agentId)) {
@@ -254,4 +255,27 @@ public class AgentTemperatureController {
254 255
         return map;
255 256
     }
256 257
 
258
+    /**
259
+     * 根据id获取带标杆号温度表格
260
+     * @param id
261
+     * @return
262
+     */
263
+    @RequestMapping(value = "/findByTempTable", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
264
+    @ApiOperation(value = "根据id查询粮情点温,带标杆号.", notes = "根据id查询检测记录包括层,行,列各个节点的值")
265
+    @ApiImplicitParams({
266
+            @ApiImplicitParam(name = "id", value = "粮情id", paramType = "query"),
267
+            @ApiImplicitParam(name = "sign", value = "1是第三方库,0是本系统库", paramType = "query")
268
+    })
269
+    public Map<Integer, List<TempMetadata>> findByTempTable(String id,String sign) {
270
+        Map<Integer, List<TempMetadata>> tempTable = null;
271
+        Map<String, Object> map = new HashMap<>();
272
+        map.put("id", id);
273
+        map.put("sign", sign);
274
+        try {
275
+            tempTable = agentTemperatureService.findByTempTable(map);
276
+        } catch (Exception e) {
277
+            e.printStackTrace();
278
+        }
279
+        return tempTable;
280
+    }
257 281
 }

+ 6 - 0
src/main/java/com/chinaitop/depot/agent/temperature/mapper/BusinessAgentTemperatureMapper.java

@@ -54,4 +54,10 @@ public interface BusinessAgentTemperatureMapper {
54 54
      * @return map
55 55
      */
56 56
     List<Map<String,Object>> getAgentStoreInfoMap(Integer orgId);
57
+
58
+    /**
59
+     * 根据仓号和检测时间获取带标杆号温度表格
60
+     * @param map
61
+     */
62
+    String findByTempTable(Map<String,Object> map);
57 63
 }

+ 22 - 0
src/main/java/com/chinaitop/depot/agent/temperature/mapper/BusinessAgentTemperatureMapper.xml

@@ -749,4 +749,26 @@
749 749
     GROUP BY
750 750
       t2.storehouse_code
751 751
   </select>
752
+
753
+  <select id="findByTempTable" resultType="java.lang.String" parameterType="java.util.Map">
754
+    SELECT
755
+    t_points
756
+    FROM
757
+    business_agent_temperature
758
+    <where>
759
+      <if test="id != null">
760
+        id = #{id} AND '1' = #{sign}
761
+      </if>
762
+    </where>
763
+    UNION ALL
764
+    SELECT
765
+    t_points
766
+    FROM
767
+    t_testdata
768
+    <where>
769
+      <if test="id != null">
770
+        id = #{id} AND '0' = #{sign}
771
+      </if>
772
+    </where>
773
+  </select>
752 774
 </mapper>

+ 59 - 0
src/main/java/com/chinaitop/depot/agent/temperature/model/TempMetadata.java

@@ -0,0 +1,59 @@
1
+package com.chinaitop.depot.agent.temperature.model;
2
+
3
+/**
4
+ * @author qingsong.han
5
+ * @description: 测温设备返回源数据(获取带标杆号温度表格)
6
+ * @create 2020-05-25 15:56
7
+ */
8
+public class TempMetadata {
9
+    // 温度
10
+    private float temp;
11
+    // 列号
12
+    private String x;
13
+    // 行号
14
+    private String y;
15
+    // 层号
16
+    private String z;
17
+    // 标杆号
18
+    private int marking;
19
+
20
+    public int getMarking() {
21
+        return marking;
22
+    }
23
+
24
+    public void setMarking(int marking) {
25
+        this.marking = marking;
26
+    }
27
+
28
+    public float getTemp() {
29
+        return temp;
30
+    }
31
+
32
+    public void setTemp(float temp) {
33
+        this.temp = temp;
34
+    }
35
+
36
+    public String getX() {
37
+        return x;
38
+    }
39
+
40
+    public void setX(String x) {
41
+        this.x = x;
42
+    }
43
+
44
+    public String getY() {
45
+        return y;
46
+    }
47
+
48
+    public void setY(String y) {
49
+        this.y = y;
50
+    }
51
+
52
+    public String getZ() {
53
+        return z;
54
+    }
55
+
56
+    public void setZ(String z) {
57
+        this.z = z;
58
+    }
59
+}

+ 8 - 0
src/main/java/com/chinaitop/depot/agent/temperature/service/agentTemperatureService.java

@@ -1,6 +1,7 @@
1 1
 package com.chinaitop.depot.agent.temperature.service;
2 2
 
3 3
 import com.chinaitop.depot.agent.temperature.model.BusinessAgentTemperature;
4
+import com.chinaitop.depot.agent.temperature.model.TempMetadata;
4 5
 
5 6
 import java.util.ArrayList;
6 7
 import java.util.List;
@@ -41,4 +42,11 @@ public interface agentTemperatureService {
41 42
      * @return map
42 43
      */
43 44
     Map<String,Object> getAgentStoreInfoMap(Integer orgId);
45
+
46
+    /**
47
+     * 根据id获取带标杆号温度表格
48
+     * @param map
49
+     * @return
50
+     */
51
+    Map<Integer,List<TempMetadata>> findByTempTable(Map<String,Object> map);
44 52
 }

+ 39 - 0
src/main/java/com/chinaitop/depot/agent/temperature/service/impl/AgentTemperatureServiceImpl.java

@@ -1,11 +1,13 @@
1 1
 package com.chinaitop.depot.agent.temperature.service.impl;
2 2
 
3
+import com.alibaba.fastjson.JSONArray;
3 4
 import com.alibaba.fastjson.JSONObject;
4 5
 import com.chinaitop.depot.agent.basic.mapper.BusinessAgentMapper;
5 6
 import com.chinaitop.depot.agent.temperature.mapper.BusinessAgentTemperatureMapper;
6 7
 import com.chinaitop.depot.agent.temperature.model.BusinessAgentTemperature;
7 8
 import com.chinaitop.depot.agent.temperature.model.BusinessAgentTemperatureExample;
8 9
 import com.chinaitop.depot.agent.temperature.model.TPoints;
10
+import com.chinaitop.depot.agent.temperature.model.TempMetadata;
9 11
 import com.chinaitop.depot.agent.temperature.service.agentTemperatureService;
10 12
 import com.chinaitop.utils.ParameterUtil;
11 13
 import com.google.common.collect.Lists;
@@ -263,4 +265,41 @@ public class AgentTemperatureServiceImpl implements agentTemperatureService {
263 265
         return reMap;
264 266
     }
265 267
 
268
+    /**
269
+     * 根据仓id获取带标杆号温度表格
270
+     *
271
+     * @param map
272
+     * @return
273
+     */
274
+    @Override
275
+    public Map<Integer, List<TempMetadata>> findByTempTable(Map<String,Object> map) {
276
+        // 根据id查询表格数据
277
+        String str = businessAgentTemperatureMapper.findByTempTable(map);
278
+        // json字符串数组转list对象
279
+        List<TempMetadata> tempMetadata = JSONArray.parseArray(str, TempMetadata.class);
280
+        // 先排序在分组
281
+        Map<Integer, List<TempMetadata>> collect2 = tempMetadata.stream()
282
+                .sorted(Comparator.comparing(t -> Integer.parseInt(t.getX())))
283
+                .collect(Collectors.groupingBy(t -> Integer.parseInt(t.getZ())));
284
+        // 创建list对象缓存数据
285
+        List<TempMetadata> lists = new LinkedList<>();
286
+        // 获取值
287
+        for (Map.Entry<Integer, List<TempMetadata>> values : collect2.entrySet()) {
288
+            // 初始标杆号
289
+            int bgh = 1;
290
+            // 获取标杆号对等数量对象值
291
+            List<TempMetadata> tempMetadataList = values.getValue();
292
+            for (TempMetadata metadata : tempMetadataList) {
293
+                // 添加标杆号
294
+                metadata.setMarking(bgh);
295
+                // 把所有值添加到list
296
+                lists.add(metadata);
297
+                bgh++;
298
+            }
299
+        }
300
+        // 用标杆号分组,获取到值(x:为列号,y:行号,z:为每行有多少个测温点).
301
+        Map<Integer, List<TempMetadata>> collect = lists.stream()
302
+                .collect(Collectors.groupingBy(t -> t.getMarking()));
303
+        return collect;
304
+    }
266 305
 }