lvzhikai пре 5 година
родитељ
комит
d9c9592efd

+ 1 - 1
src/main/java/com/chinaitop/depot/agent/quality/controller/AgentQualityController.java

@@ -105,7 +105,7 @@ public class AgentQualityController {
105 105
         }
106 106
         qualityCheck.setHistoryStatus(0);//0:最新数据  1:历史数据
107 107
         //查询出未封仓的质量管理信息 封仓状态:0:未封仓,1:已封仓
108
-        qualityCheck.setSealStatus("0");
108
+        //qualityCheck.setSealStatus("0");
109 109
         if (pageNum!=null && pageSize!=null) {
110 110
             PageHelper.startPage(pageNum, pageSize);
111 111
         }

+ 13 - 3
src/main/java/com/chinaitop/depot/agent/temperature/controller/AgentTemperatureController.java

@@ -81,10 +81,16 @@ public class AgentTemperatureController {
81 81
             map.put("startTime", startTime + " 00:00:00");
82 82
             map.put("endTime", endTime + " 23:59:59");
83 83
         }
84
+        PageHelper.clearPage();
84 85
 
85
-        PageHelper.startPage(pageNum, pageSize);
86
-        List<Map<String, Object>> list = agentTemperatureService.getAgentTemperatureList(map);
87
-        PageInfo<Map<String, Object>> pageInfo = new PageInfo<Map<String, Object>>(list);
86
+        List<Map<String, Object>> dataList = this.getDataByMap(map);
87
+        if(dataList.size() == 0){
88
+            PageInfo<Map<String,Object>> pageInfo = new PageInfo<Map<String,Object>>(dataList);
89
+            return pageInfo;
90
+        }
91
+
92
+        List<Map<String, Object>> list = agentTemperatureService.getAgentTemperatureList(dataList,map);
93
+        PageInfo<Map<String,Object>> pageInfo = ParameterUtil.list2PageInfo(list,pageNum,pageSize);
88 94
         return pageInfo;
89 95
     }
90 96
 
@@ -248,4 +254,8 @@ public class AgentTemperatureController {
248 254
         return map;
249 255
     }
250 256
 
257
+    public List<Map<String, Object>> getDataByMap(Map<String, Object> map) {
258
+        List<Map<String, Object>> dataList = agentTemperatureService.getDataByExample(map);
259
+        return dataList;
260
+    }
251 261
 }

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

@@ -37,6 +37,7 @@ public interface BusinessAgentTemperatureMapper {
37 37
     int updateByPrimaryKey(BusinessAgentTemperature record);
38 38
 
39 39
     List<Map<String,Object>> getDataByExample(Map<String,Object> map);
40
+    List<Map<String,Object>> getTestDataList(Map<String,Object> map);
40 41
 
41 42
     List<BusinessAgentTemperature> getById(@Param("id") String id);
42 43
 

+ 31 - 83
src/main/java/com/chinaitop/depot/agent/temperature/mapper/BusinessAgentTemperatureMapper.xml

@@ -126,7 +126,7 @@
126 126
     </if>
127 127
   </select>
128 128
   <select id="selectByPrimaryKey" resultMap="ResultMapWithBLOBs" parameterType="java.lang.Integer" >
129
-    select 
129
+    select
130 130
     <include refid="Base_Column_List" />
131 131
     ,
132 132
     <include refid="Blob_Column_List" />
@@ -588,72 +588,46 @@
588 588
   </update>
589 589
 
590 590
   <select id="getDataByExample" parameterType="java.util.Map" resultType="java.util.HashMap">
591
-    SELECT
592
-    temperAll.*
593
-    FROM
594
-    (
595 591
     SELECT DISTINCT
596
-    temper.id id,
597
-    temper.org_id orgId,
598 592
     depot.depot_id agentOrgId,
599 593
     depot.depot_id agentStoreOrgId,
600
-    '1' sign,
601 594
     agent.agent_name agentName,
602 595
     depot.agent_depot_name agentDepotName,
596
+    depot.updatetime,
603 597
     store.storehouse_name storehouseName,
604
-    temper.lspz lspz,
605
-    temper.detection_time detectionTime,
606
-    temper.house_temperature houseTemperature,
607
-    temper.house_humidity houseHumidity,
608
-    temper.max max,
609
-    temper.min min,
610
-    temper.avg avg,
611 598
     store.storehouse_type storehouseType,
612 599
     store.design_capacity designCapacity,
613
-    temper.enter_time enterTime,
614
-    temper.nature nature,
615
-    temper.level level,
616
-    temper.actual_amount actualAmount,
617
-    temper.harvest_year harvestYear,
618
-    temper.gas_temperature gasTemperature,
619
-    temper.gas_humidity gasHumidity,
620
-    temper.keeper keeper,
621
-    temper.updatetime updatetime
600
+    store.storehouse_code storehouseCode,
601
+    store.storehouse_id storehouseId,
602
+    keeper.name keeper
622 603
     FROM
623
-    business_agent_temperature temper
624
-    LEFT JOIN business_agent agent ON agent.id = temper.agent_id
604
+    business_agent_depot depot
605
+    LEFT JOIN business_agent agent ON depot.agent_id = agent.id
625 606
     AND agent.org_id = #{orgId,jdbcType=INTEGER}
626
-    LEFT JOIN business_agent_depot depot ON depot.id = temper.agent_depot_id
627
-    AND depot.org_id = #{orgId,jdbcType=INTEGER}
628
-    LEFT JOIN basic_storehouse store ON store.storehouse_id = temper.storehouse_id
629
-    AND store.library_type = 1
630
-    AND store.org_id = #{orgId,jdbcType=INTEGER}
631
-    WHERE temper.org_id = #{orgId,jdbcType=INTEGER}
607
+    INNER JOIN business_agent_storehouse agentStore ON depot.id = agentStore.agent_depot_id
608
+    INNER JOIN basic_storehouse store ON store.storehouse_id = agentStore.storehouse_id
609
+    AND store.del_flag = 1
610
+    LEFT JOIN basic_keeper_house keepHouse ON keepHouse.house_Id = agentStore.storehouse_id
611
+    AND depot.depot_id = keepHouse.org_id
612
+    LEFT JOIN basic_keeper keeper ON keeper.id = keepHouse.keeper_Id
613
+    WHERE depot.org_id = #{orgId,jdbcType=INTEGER}
614
+    AND depot.del_flag = 1
632 615
     <if test="agentId != null">
633
-      AND temper.agent_id = #{agentId,jdbcType=INTEGER}
616
+      AND agent.id = #{agentId,jdbcType=INTEGER}
634 617
     </if>
635 618
     <if test="agentDepotId != null">
636
-      AND temper.agent_depot_id = #{agentDepotId,jdbcType=INTEGER}
619
+      AND depot.id = #{agentDepotId,jdbcType=INTEGER}
637 620
     </if>
638 621
     <if test="storehouseId != null">
639
-      AND temper.storehouse_id = #{storehouseId,jdbcType=INTEGER}
640
-    </if>
641
-    <if test="startTime != null and endTime != null">
642
-      AND temper.detection_time BETWEEN #{startTime} AND #{endTime}
643
-    </if>
644
-    <if test="temperId != null">
645
-      AND temper.id = #{temperId,jdbcType=INTEGER}
622
+      AND store.storehouse_id = #{storehouseId,jdbcType=INTEGER}
646 623
     </if>
647
-    UNION ALL
624
+    order by depot.depot_id
625
+  </select>
626
+
627
+  <select id="getTestDataList" parameterType="java.util.Map" resultType="java.util.HashMap">
648 628
     SELECT DISTINCT
649 629
     tt.id id,
650 630
     tt.org_id orgId,
651
-    depot.depot_id agentOrgId,
652
-    depot.depot_id agentStoreOrgId,
653
-    '0' sign,
654
-    agent.agent_name agentName,
655
-    depot.agent_depot_name agentDepotName,
656
-    store.storehouse_name storehouseName,
657 631
     tt.storehouse lspz,
658 632
     tt.time detectionTime,
659 633
     tt.inTemp houseTemperature,
@@ -661,8 +635,6 @@
661 635
     tt.max max,
662 636
     tt.min min,
663 637
     tt.avg avg,
664
-    store.storehouse_type storehouseType,
665
-    store.design_capacity designCapacity,
666 638
     tt.storehouse enterTime,
667 639
     tt.storehouse nature,
668 640
     tt.storehouse level,
@@ -670,45 +642,21 @@
670 642
     tt.storehouse harvestYear,
671 643
     tt.outTemp gasTemperature,
672 644
     tt.outH gasHumidity,
673
-    keeper.name keeper,
674 645
     tt.updatetime updatetime
675 646
     FROM
676
-    business_agent_depot depot
677
-    LEFT JOIN business_agent agent ON depot.agent_id = agent.id
678
-    AND agent.org_id = #{orgId,jdbcType=INTEGER}
679
-    INNER JOIN business_agent_storehouse agentStore ON depot.id = agentStore.agent_depot_id
680
-    INNER JOIN basic_storehouse store ON store.storehouse_id = agentStore.storehouse_id
681
-    AND store.del_flag = 1
682
-    LEFT JOIN basic_keeper_house keepHouse ON keepHouse.house_Id = agentStore.storehouse_id
683
-    AND depot.depot_id = keepHouse.org_id
684
-    LEFT JOIN basic_keeper keeper ON keeper.id = keepHouse.keeper_Id
685
-    LEFT JOIN (SELECT A.id,A.storehouse,A.org_id,A.time,A.updatetime,A.iLq_yq,A.inTemp, A.inH,A.max, A.min, A.avg,A.t_points ,A.outTemp,A.outH FROM t_testdata A INNER JOIN (
686
-    SELECT storehouse,MAX(updatetime) updatetime,inTemp, inH, max, min, avg ,outTemp,outH
687
-    FROM t_testdata GROUP BY storehouse,DATE_FORMAT(updatetime, '%Y-%m-%d')
688
-    ) B ON A.storehouse = B.storehouse AND A.updatetime = B.updatetime) tt ON depot.depot_id = tt.org_id
689
-    AND tt.storehouse = store.storehouse_code
647
+    t_testdata tt
648
+    WHERE tt.iLq_yq = '0'
649
+    AND tt.org_id = #{depotId,jdbcType=VARCHAR}
650
+    AND tt.storehouse in
651
+    <foreach collection="houseCode" item="listItem" open="(" close=")" separator="," >
652
+      #{listItem}
653
+    </foreach>
690 654
     AND tt.org_id != #{orgId,jdbcType=INTEGER}
691
-    AND tt.updatetime >= depot.updatetime
692
-    WHERE
693
-    tt.iLq_yq = '0'
694
-    AND depot.org_id = #{orgId,jdbcType=INTEGER}
695
-    AND depot.del_flag = 1
696
-    <if test="agentId != null">
697
-      AND agent.id = #{agentId,jdbcType=INTEGER}
698
-    </if>
699
-    <if test="agentDepotId != null">
700
-      AND depot.id = #{agentDepotId,jdbcType=INTEGER}
701
-    </if>
702
-    <if test="storehouseId != null">
703
-      AND store.storehouse_id = #{storehouseId,jdbcType=INTEGER}
704
-    </if>
705 655
     <if test="startTime != null and endTime != null">
706 656
       AND tt.time BETWEEN #{startTime} AND #{endTime}
707 657
     </if>
708
-    ) temperAll
709
-    WHERE temperAll.orgId IS NOT NULL AND temperAll.id IS NOT NULL
710
-    ORDER BY
711
-    temperAll.updatetime DESC
658
+    order by tt.updatetime desc
659
+    LIMIT 100
712 660
   </select>
713 661
 
714 662
   <select id="getById" resultMap="ResultMapWithBLOBs" parameterType="java.lang.String">

+ 3 - 1
src/main/java/com/chinaitop/depot/agent/temperature/service/agentTemperatureService.java

@@ -13,7 +13,7 @@ public interface agentTemperatureService {
13 13
      * @param map
14 14
      * @return
15 15
      */
16
-    List<Map<String, Object>> getAgentTemperatureList(Map<String, Object> map);
16
+    List<Map<String, Object>> getAgentTemperatureList(List<Map<String, Object>> dataList,Map<String, Object> map);
17 17
 
18 18
     void add(BusinessAgentTemperature user);
19 19
 
@@ -41,4 +41,6 @@ public interface agentTemperatureService {
41 41
      * @return map
42 42
      */
43 43
     Map<String,Object> getAgentStoreInfoMap(Integer orgId);
44
+
45
+    List<Map<String, Object>> getDataByExample(Map<String, Object> map);
44 46
 }

+ 96 - 2
src/main/java/com/chinaitop/depot/agent/temperature/service/impl/AgentTemperatureServiceImpl.java

@@ -1,12 +1,16 @@
1 1
 package com.chinaitop.depot.agent.temperature.service.impl;
2 2
 
3
+import com.alibaba.fastjson.JSON;
4
+import com.alibaba.fastjson.JSONArray;
3 5
 import com.alibaba.fastjson.JSONObject;
4 6
 import com.chinaitop.depot.agent.basic.mapper.BusinessAgentMapper;
7
+import com.chinaitop.depot.agent.crk.model.BusinessAgentQc;
5 8
 import com.chinaitop.depot.agent.temperature.mapper.BusinessAgentTemperatureMapper;
6 9
 import com.chinaitop.depot.agent.temperature.model.BusinessAgentTemperature;
7 10
 import com.chinaitop.depot.agent.temperature.model.BusinessAgentTemperatureExample;
8 11
 import com.chinaitop.depot.agent.temperature.model.TPoints;
9 12
 import com.chinaitop.depot.agent.temperature.service.agentTemperatureService;
13
+import com.chinaitop.utils.HTTPUtils;
10 14
 import com.chinaitop.utils.ParameterUtil;
11 15
 import com.google.common.collect.Lists;
12 16
 import com.google.common.collect.Maps;
@@ -33,8 +37,94 @@ public class AgentTemperatureServiceImpl implements agentTemperatureService {
33 37
      * @return
34 38
      */
35 39
     @Override
36
-    public List<Map<String, Object>> getAgentTemperatureList(Map<String, Object> map) {
37
-        return businessAgentTemperatureMapper.getDataByExample(map);
40
+    public List<Map<String, Object>> getAgentTemperatureList(List<Map<String, Object>> dataList,Map<String, Object> map) {
41
+        List<String> houseCode = new ArrayList<>();
42
+        String depotId = "";
43
+        String updatetime = "";
44
+        Integer idNum = 0;
45
+        List<Map<String, Object>> AllList = new ArrayList<Map<String, Object>>();
46
+        String houseIds = "";
47
+        for (int i = 0; i <= dataList.size(); i++) {
48
+            //如果是最后一次循环则直接查询数据,不往下走
49
+            if(i == dataList.size()){
50
+                map.put("depotId",depotId);
51
+                map.put("updatetime",updatetime);
52
+                map.put("houseCode",houseCode);
53
+                List<Map<String, Object>> testList = businessAgentTemperatureMapper.getTestDataList(map);
54
+                Map<String, Object> modelMap = new HashMap<String, Object>();
55
+                if(ParameterUtil.isnotnull(testList) && testList.size() != 0){
56
+                    for (Map<String, Object> testData:testList) {
57
+                        modelMap = testData;
58
+                        modelMap.put("agentOrgId",dataList.get(i-1).get("agentOrgId"));
59
+                        modelMap.put("agentStoreOrgId",dataList.get(i-1).get("agentStoreOrgId"));
60
+                        modelMap.put("agentName",dataList.get(i-1).get("agentName"));
61
+                        modelMap.put("agentDepotName",dataList.get(i-1).get("agentDepotName"));
62
+                        modelMap.put("designCapacity",dataList.get(i-1).get("designCapacity"));
63
+                        modelMap.put("storehouseName",dataList.get(i-1).get("storehouseName"));
64
+                        modelMap.put("storehouseId",dataList.get(i-1).get("storehouseId"));
65
+                        modelMap.put("keeper",dataList.get(i-1).get("keeper"));
66
+                        AllList.add(modelMap);
67
+                        if(AllList.size() == 100){
68
+                            break;
69
+                        }
70
+                    }
71
+                }
72
+                break;
73
+            }
74
+            houseIds += dataList.get(i).get("storehouseId") + ",";
75
+            if(idNum == 0){//判断算是否是一个库的仓房编号
76
+                depotId = dataList.get(i).get("agentOrgId").toString();
77
+                updatetime = dataList.get(i).get("updatetime").toString();
78
+                houseCode.add(dataList.get(i).get("storehouseCode").toString());
79
+                idNum++;
80
+            }else if(ParameterUtil.isequal(depotId,dataList.get(i).get("agentOrgId").toString())){//如果是一个库的则组成字符串
81
+                houseCode.add(dataList.get(i).get("storehouseCode").toString());
82
+            }else{//不是一个库的还原idNum值,以便下回循环,然后把这个库的100条温度数据查出来加入list集合,继续循环查下一个库
83
+                idNum = 0;
84
+                map.put("depotId",depotId);
85
+                map.put("updatetime",updatetime);
86
+                map.put("houseCode",houseCode);
87
+                List<Map<String, Object>> testList = businessAgentTemperatureMapper.getTestDataList(map);
88
+                Map<String, Object> modelMap = new HashMap<String, Object>();
89
+                if(ParameterUtil.isnotnull(testList) && testList.size() != 0){
90
+                    for (Map<String, Object> testData:testList) {
91
+                        modelMap = testData;
92
+                        modelMap.put("agentOrgId",dataList.get(i-1).get("agentOrgId"));
93
+                        modelMap.put("agentStoreOrgId",dataList.get(i-1).get("agentStoreOrgId"));
94
+                        modelMap.put("agentName",dataList.get(i-1).get("agentName"));
95
+                        modelMap.put("agentDepotName",dataList.get(i-1).get("agentDepotName"));
96
+                        modelMap.put("designCapacity",dataList.get(i-1).get("designCapacity"));
97
+                        modelMap.put("storehouseName",dataList.get(i-1).get("storehouseName"));
98
+                        modelMap.put("storehouseId",dataList.get(i-1).get("storehouseId"));
99
+                        modelMap.put("keeper",dataList.get(i-1).get("keeper"));
100
+                        AllList.add(modelMap);
101
+                        if(AllList.size() == 100){
102
+                            break;
103
+                        }
104
+                    }
105
+                }
106
+            }
107
+            if(AllList.size() == 100){
108
+                break;
109
+            }
110
+        }
111
+
112
+        String url = "http://localhost:9026/agile/kcsw/getDateByHouseIds";
113
+        Map<String, Object> dataMap = new HashMap<String, Object>();
114
+        dataMap.put("houseIds",houseIds.substring(0,houseIds.length()-1));
115
+        String strResult = HTTPUtils.doPost(url,dataMap);
116
+        JSONArray json = JSONArray.parseArray(strResult);
117
+        if(ParameterUtil.isnotnull(json) && json.size() != 0){
118
+            for (int i = 0; i < AllList.size(); i++) {
119
+                for (int j = 0; j < json.size(); j++) {
120
+                    JSONObject job = json.getJSONObject(j);
121
+                    if(ParameterUtil.isequal(AllList.get(i).get("storehouseId").toString(),job.get("ch").toString())){
122
+                        AllList.get(i).put("lspz",Integer.parseInt(job.get("pz").toString()));
123
+                    }
124
+                }
125
+            }
126
+        }
127
+        return AllList;
38 128
     }
39 129
 
40 130
     @Override
@@ -263,4 +353,8 @@ public class AgentTemperatureServiceImpl implements agentTemperatureService {
263 353
         return reMap;
264 354
     }
265 355
 
356
+    @Override
357
+    public List<Map<String, Object>> getDataByExample(Map<String, Object> map) {
358
+        return businessAgentTemperatureMapper.getDataByExample(map);
359
+    }
266 360
 }

+ 45 - 3
src/main/java/com/chinaitop/utils/ParameterUtil.java

@@ -2,6 +2,8 @@ package com.chinaitop.utils;
2 2
 
3 3
 import com.fasterxml.jackson.databind.JavaType;
4 4
 import com.fasterxml.jackson.databind.ObjectMapper;
5
+import com.github.pagehelper.PageHelper;
6
+import com.github.pagehelper.PageInfo;
5 7
 import org.slf4j.Logger;
6 8
 import org.slf4j.LoggerFactory;
7 9
 
@@ -23,7 +25,7 @@ public class ParameterUtil {
23 25
         System.out.println("获取当前时间"+temp_str);
24 26
         return temp_str;
25 27
     }
26
-    
28
+
27 29
     public static String getDateYMDHMS(Date date) {
28 30
     	String str = "";
29 31
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
@@ -31,7 +33,7 @@ public class ParameterUtil {
31 33
         System.out.println("获取当前时间"+str);
32 34
         return str;
33 35
     }
34
-    
36
+
35 37
     public static String getSysDate(){
36 38
         String temp_str="";
37 39
         Date dt = new Date();
@@ -115,7 +117,7 @@ public class ParameterUtil {
115 117
     public static boolean isnotnull(Object name){
116 118
         return (null!=name&&!"".equals(name) && !"null".equals(name) && "null" != name);
117 119
     }
118
-    
120
+
119 121
     //判断字段值是为空,为空返回ture
120 122
     public static boolean isnull(Object name){
121 123
         return (null==name || "".equals(name) || "null".equals(name) || "null" == name);
@@ -277,4 +279,44 @@ public class ParameterUtil {
277 279
         // 返回
278 280
         return sbf.toString();
279 281
     }
282
+
283
+    public static <T> PageInfo<T> list2PageInfo(List<T> arrayList, Integer pageNum, Integer pageSize) {
284
+        //实现list分页
285
+        PageHelper.startPage(pageNum, pageSize);
286
+        int pageStart = pageNum == 1 ? 0 : (pageNum - 1) * pageSize;
287
+        int pageEnd = arrayList.size() < pageSize * pageNum ? arrayList.size() : pageSize * pageNum;
288
+        List<T> pageResult = new LinkedList<T>();
289
+        if (arrayList.size() > pageStart) {
290
+            pageResult = arrayList.subList(pageStart, pageEnd);
291
+        }
292
+        PageInfo<T> pageInfo = new PageInfo<T>(pageResult);
293
+        //获取PageInfo其他参数
294
+        pageInfo.setTotal(arrayList.size());
295
+        int endRow = pageInfo.getEndRow() == 0 ? 0 : (pageNum - 1) * pageSize + pageInfo.getEndRow() + 1;
296
+        pageInfo.setEndRow(endRow);
297
+        boolean hasNextPage = arrayList.size() <= pageSize * pageNum ? false : true;
298
+        pageInfo.setHasNextPage(hasNextPage);
299
+        boolean hasPreviousPage = pageNum == 1 ? false : true;
300
+        pageInfo.setHasPreviousPage(hasPreviousPage);
301
+        pageInfo.setIsFirstPage(!hasPreviousPage);
302
+        boolean isLastPage = (arrayList.size() > pageSize * (pageNum - 1) && arrayList.size() <= pageSize * pageNum) ? true : false;
303
+        pageInfo.setIsLastPage(isLastPage);
304
+        int pages = arrayList.size() % pageSize == 0 ? arrayList.size() / pageSize : (arrayList.size() / pageSize) + 1;
305
+        pageInfo.setNavigateLastPage(pages);
306
+        int[] navigatePageNums = new int[pages];
307
+        for (int i = 1; i < pages; i++) {
308
+            navigatePageNums[i - 1] = i;
309
+        }
310
+        pageInfo.setNavigatepageNums(navigatePageNums);
311
+        int nextPage = pageNum < pages ? pageNum + 1 : 0;
312
+        pageInfo.setNextPage(nextPage);
313
+        pageInfo.setPageNum(pageNum);
314
+        pageInfo.setPageSize(pageSize);
315
+        pageInfo.setPages(pages);
316
+        pageInfo.setPrePage(pageNum - 1);
317
+        pageInfo.setSize(pageInfo.getList().size());
318
+        int starRow = arrayList.size() < pageSize * pageNum ? 1 + pageSize * (pageNum - 1) : 0;
319
+        pageInfo.setStartRow(starRow);
320
+        return pageInfo;
321
+    }
280 322
 }