소스 검색

用车类型统计

lamphua 7 달 전
부모
커밋
2f834d5d01

+ 36
- 17
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcCarController.java 파일 보기

4
 import java.text.ParseException;
4
 import java.text.ParseException;
5
 import java.text.SimpleDateFormat;
5
 import java.text.SimpleDateFormat;
6
 import java.util.*;
6
 import java.util.*;
7
-import java.util.stream.Collectors;
8
 import javax.servlet.http.HttpServletResponse;
7
 import javax.servlet.http.HttpServletResponse;
9
 
8
 
10
 import com.alibaba.fastjson2.JSONArray;
9
 import com.alibaba.fastjson2.JSONArray;
11
 import com.alibaba.fastjson2.JSONObject;
10
 import com.alibaba.fastjson2.JSONObject;
12
 import com.ruoyi.common.utils.DateUtils;
11
 import com.ruoyi.common.utils.DateUtils;
13
 import com.ruoyi.oa.domain.CmcCarApproval;
12
 import com.ruoyi.oa.domain.CmcCarApproval;
14
-import com.ruoyi.oa.domain.CmcProject;
15
 import com.ruoyi.oa.service.ICmcCarApprovalService;
13
 import com.ruoyi.oa.service.ICmcCarApprovalService;
16
-import com.ruoyi.system.service.ISysUserService;
17
 import org.springframework.beans.factory.annotation.Autowired;
14
 import org.springframework.beans.factory.annotation.Autowired;
18
 
15
 
19
 import org.springframework.web.bind.annotation.GetMapping;
16
 import org.springframework.web.bind.annotation.GetMapping;
92
         JSONObject yearObject = new JSONObject();
89
         JSONObject yearObject = new JSONObject();
93
         JSONArray statusArray = new JSONArray();
90
         JSONArray statusArray = new JSONArray();
94
         JSONObject statusObject = new JSONObject();
91
         JSONObject statusObject = new JSONObject();
92
+        JSONArray usageArray = new JSONArray();
93
+        JSONObject usageObject = new JSONObject();
95
         JSONArray approvalArray = new JSONArray();
94
         JSONArray approvalArray = new JSONArray();
96
-        JSONObject approvalObject = new JSONObject();
97
         CmcCar cmcCar = new CmcCar();
95
         CmcCar cmcCar = new CmcCar();
98
         cmcCar.setStatus("0");
96
         cmcCar.setStatus("0");
99
         statusObject.put("已派出", cmcCarService.selectCmcCarList(cmcCar).size());
97
         statusObject.put("已派出", cmcCarService.selectCmcCarList(cmcCar).size());
113
                 cmcCarApproval.setApplyDate(new SimpleDateFormat("yyyy").parse(String.valueOf(i)));
111
                 cmcCarApproval.setApplyDate(new SimpleDateFormat("yyyy").parse(String.valueOf(i)));
114
                 List<CmcCarApproval> yearList = cmcCarApprovalService.selectCmcCarApprovalList(cmcCarApproval);
112
                 List<CmcCarApproval> yearList = cmcCarApprovalService.selectCmcCarApprovalList(cmcCarApproval);
115
                 yearObject.put(String.valueOf(i), yearList.size());
113
                 yearObject.put(String.valueOf(i), yearList.size());
114
+                getCarUsageStatistic(cmcCarApproval, usageObject);
116
             }
115
             }
117
             cmcCarApproval.setApplyDate(null);
116
             cmcCarApproval.setApplyDate(null);
118
         }
117
         }
121
             //输入年份派车次数
120
             //输入年份派车次数
122
             yearObject.put(new SimpleDateFormat("yyyy").format(cmcCarApproval.getApplyDate()), cmcCarApprovalService.selectCmcCarApprovalList(cmcCarApproval).size());
121
             yearObject.put(new SimpleDateFormat("yyyy").format(cmcCarApproval.getApplyDate()), cmcCarApprovalService.selectCmcCarApprovalList(cmcCarApproval).size());
123
         }
122
         }
124
-        getCarApprovalStatistic(cmcCarApproval, approvalObject);
123
+        getCarUsageStatistic(cmcCarApproval, usageObject);
124
+        getCarApprovalStatistic(cmcCarApproval, approvalArray);
125
         yearArray.add(yearObject);
125
         yearArray.add(yearObject);
126
         statusArray.add(statusObject);
126
         statusArray.add(statusObject);
127
-        approvalArray.add(approvalObject);
127
+        usageArray.add(usageObject);
128
         jsonObject.put("year", yearArray);
128
         jsonObject.put("year", yearArray);
129
-        jsonObject.put("status",statusArray);
130
-        jsonObject.put("approval",approvalArray);
129
+        jsonObject.put("status", statusArray);
130
+        jsonObject.put("usage", usageArray);
131
+        jsonObject.put("approval", approvalArray);
132
+        jsonObject.getJSONArray("approval").sort((a,b)->((JSONObject)b).getIntValue("count") - ((JSONObject)a).getIntValue("count"));
131
         return success(jsonObject);
133
         return success(jsonObject);
132
     }
134
     }
133
 
135
 
191
     }
193
     }
192
 
194
 
193
     //各车辆派出次数
195
     //各车辆派出次数
194
-    public void getCarApprovalStatistic(CmcCarApproval cmcCarApproval, JSONObject approvalObject) {
195
-        //类型太多,循环效率不高-直接用Java特性进行分组统计
196
-        Map<Object, Long> typeGroup = cmcCarApprovalService.selectCmcCarApprovalList(cmcCarApproval).stream().collect(Collectors.groupingBy(item -> Optional.ofNullable(item.getCars()), Collectors.counting()));
197
-        List<Map.Entry<Object, Long>> typeList = new ArrayList<>(typeGroup.entrySet());
198
-        typeList.sort(Map.Entry.comparingByValue());
199
-        typeList.forEach((item) -> {
200
-            if (item.getKey() != Optional.empty())
201
-                approvalObject.put(item.toString().substring(item.toString().indexOf("[") + 1, item.toString().indexOf("]")), item.getValue());
202
-        });
196
+    public void getCarApprovalStatistic(CmcCarApproval cmcCarApproval, JSONArray approvalArray) {
197
+        for (CmcCar cmcCar : cmcCarService.selectCmcCarList(new CmcCar())) {
198
+            cmcCarApproval.setCars(cmcCar.getCarId().toString());
199
+            int count = cmcCarApprovalService.selectCmcCarApprovalList(cmcCarApproval).size();
200
+            if (count > 0) {
201
+                JSONObject approvalObject = new JSONObject();
202
+                approvalObject.put("name", cmcCar.getLicensePlate());
203
+                approvalObject.put("count", count);
204
+                approvalArray.add(approvalObject);
205
+            }
206
+        }
207
+    }
208
+
209
+    //各车辆派出次数
210
+    public void getCarUsageStatistic(CmcCarApproval cmcCarApproval, JSONObject usageObject) {
211
+        cmcCarApproval.setCarUsage("0");
212
+        usageObject.put("项目用车", cmcCarApprovalService.selectCmcCarApprovalList(cmcCarApproval).size());
213
+        cmcCarApproval.setCarUsage("1");
214
+        usageObject.put("非项目用车", cmcCarApprovalService.selectCmcCarApprovalList(cmcCarApproval).size());
215
+        cmcCarApproval.setCarUsage("2");
216
+        usageObject.put("工会用车", cmcCarApprovalService.selectCmcCarApprovalList(cmcCarApproval).size());
217
+        cmcCarApproval.setCarUsage("3");
218
+        usageObject.put("党委用车", cmcCarApprovalService.selectCmcCarApprovalList(cmcCarApproval).size());
219
+        cmcCarApproval.setCarUsage("4");
220
+        usageObject.put("团委用车", cmcCarApprovalService.selectCmcCarApprovalList(cmcCarApproval).size());
221
+        cmcCarApproval.setCarUsage(null);
203
     }
222
     }
204
 
223
 
205
 }
224
 }

+ 23
- 17
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcDeviceController.java 파일 보기

4
 import java.text.ParseException;
4
 import java.text.ParseException;
5
 import java.text.SimpleDateFormat;
5
 import java.text.SimpleDateFormat;
6
 import java.util.*;
6
 import java.util.*;
7
-import java.util.stream.Collectors;
8
 import javax.servlet.http.HttpServletResponse;
7
 import javax.servlet.http.HttpServletResponse;
9
 
8
 
10
 import com.alibaba.fastjson2.JSONArray;
9
 import com.alibaba.fastjson2.JSONArray;
11
 import com.alibaba.fastjson2.JSONObject;
10
 import com.alibaba.fastjson2.JSONObject;
12
 import com.ruoyi.common.utils.DateUtils;
11
 import com.ruoyi.common.utils.DateUtils;
13
-import com.ruoyi.oa.domain.CmcDeviceApproval;
12
+import com.ruoyi.oa.domain.CmcCarApproval;
14
 import com.ruoyi.oa.domain.CmcDevice;
13
 import com.ruoyi.oa.domain.CmcDevice;
14
+import com.ruoyi.oa.domain.CmcDeviceApproval;
15
 import com.ruoyi.oa.service.ICmcDeviceApprovalService;
15
 import com.ruoyi.oa.service.ICmcDeviceApprovalService;
16
 import org.springframework.beans.factory.annotation.Autowired;
16
 import org.springframework.beans.factory.annotation.Autowired;
17
 import org.springframework.web.bind.annotation.GetMapping;
17
 import org.springframework.web.bind.annotation.GetMapping;
100
         JSONArray statusArray = new JSONArray();
100
         JSONArray statusArray = new JSONArray();
101
         JSONObject statusObject = new JSONObject();
101
         JSONObject statusObject = new JSONObject();
102
         JSONArray approvalArray = new JSONArray();
102
         JSONArray approvalArray = new JSONArray();
103
-        JSONObject approvalObject = new JSONObject();
104
         CmcDevice cmcDevice = new CmcDevice();
103
         CmcDevice cmcDevice = new CmcDevice();
105
         cmcDevice.setStatus("0");
104
         cmcDevice.setStatus("0");
106
         statusObject.put("被领用", cmcDeviceService.selectCmcDeviceList(cmcDevice).size());
105
         statusObject.put("被领用", cmcDeviceService.selectCmcDeviceList(cmcDevice).size());
128
             //输入年份派车次数
127
             //输入年份派车次数
129
             yearObject.put(new SimpleDateFormat("yyyy").format(cmcDeviceApproval.getApplyDate()), cmcDeviceApprovalService.selectCmcDeviceApprovalList(cmcDeviceApproval).size());
128
             yearObject.put(new SimpleDateFormat("yyyy").format(cmcDeviceApproval.getApplyDate()), cmcDeviceApprovalService.selectCmcDeviceApprovalList(cmcDeviceApproval).size());
130
         }
129
         }
131
-        getDeviceApprovalStatistic(cmcDeviceApproval, approvalObject);
130
+        getDeviceApprovalStatistic(cmcDeviceApproval, approvalArray);
132
         yearArray.add(yearObject);
131
         yearArray.add(yearObject);
133
         statusArray.add(statusObject);
132
         statusArray.add(statusObject);
134
-        approvalArray.add(approvalObject);
135
         jsonObject.put("year", yearArray);
133
         jsonObject.put("year", yearArray);
136
-        jsonObject.put("status",statusArray);
137
-        jsonObject.put("approval",approvalArray);
134
+        jsonObject.put("status", statusArray);
135
+        jsonObject.put("approval", approvalArray);
136
+        jsonObject.getJSONArray("approval").sort((a,b)->((JSONObject)b).getIntValue("count") - ((JSONObject)a).getIntValue("count"));
138
         return success(jsonObject);
137
         return success(jsonObject);
139
     }
138
     }
140
 
139
 
225
     }
224
     }
226
 
225
 
227
     //各设备领用次数
226
     //各设备领用次数
228
-    public void getDeviceApprovalStatistic(CmcDeviceApproval cmcDeviceApproval, JSONObject approvalObject) {
229
-        //类型太多,循环效率不高-直接用Java特性进行分组统计
230
-        Map<Object, Long> typeGroup = cmcDeviceApprovalService.selectCmcDeviceApprovalList(cmcDeviceApproval).stream().collect(Collectors.groupingBy(item -> Optional.ofNullable(item.getDevices()), Collectors.counting()));
231
-        List<Map.Entry<Object, Long>> typeList = new ArrayList<>(typeGroup.entrySet());
232
-        typeList.sort(Map.Entry.comparingByValue());
233
-        typeList.forEach((item) -> {
234
-            if (item.getKey() != Optional.empty())
235
-                approvalObject.put(item.toString().substring(item.toString().indexOf("[") + 1, item.toString().indexOf("]")), item.getValue());
236
-        });
227
+    public void getDeviceApprovalStatistic(CmcDeviceApproval cmcDeviceApproval, JSONArray approvalArray) {
228
+
229
+        for (CmcDevice cmcDevice : cmcDeviceService.selectCmcDeviceList(new CmcDevice())) {
230
+            cmcDeviceApproval.setDevices(cmcDevice.getDeviceId().toString());
231
+            int count = cmcDeviceApprovalService.selectCmcDeviceApprovalList(cmcDeviceApproval).size();
232
+            StringBuilder deviceNames = new StringBuilder();
233
+            deviceNames.append(cmcDevice.getName()).append("【").append(cmcDevice.getBrand() != null ? cmcDevice.getBrand() : "")
234
+                    .append(cmcDevice.getSeries() != null ? "-" + cmcDevice.getSeries() + "】" : "")
235
+                    .append(cmcDevice.getCode() != null ? "(设备编号:" + cmcDevice.getCode() + ")" : "").append(",");
236
+            if (count > 0) {
237
+                JSONObject approvalObject = new JSONObject();
238
+                approvalObject.put("name", deviceNames);
239
+                approvalObject.put("count", count);
240
+                approvalArray.add(approvalObject);
241
+            }
242
+        }
237
     }
243
     }
238
 
244
 
239
-}
245
+}

Loading…
취소
저장