lamphua пре 7 месеци
родитељ
комит
69fcd555a6

+ 110
- 5
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcProjectController.java Прегледај датотеку

1
 package com.ruoyi.web.controller.oa;
1
 package com.ruoyi.web.controller.oa;
2
 
2
 
3
 import java.io.IOException;
3
 import java.io.IOException;
4
-import java.util.ArrayList;
5
-import java.util.Arrays;
6
-import java.util.Date;
7
-import java.util.List;
4
+import java.util.*;
5
+import java.util.stream.Collectors;
8
 import javax.servlet.http.HttpServletResponse;
6
 import javax.servlet.http.HttpServletResponse;
9
 
7
 
8
+import com.alibaba.fastjson2.JSONArray;
9
+import com.alibaba.fastjson2.JSONObject;
10
 import com.ruoyi.common.core.domain.entity.SysUser;
10
 import com.ruoyi.common.core.domain.entity.SysUser;
11
+import com.ruoyi.common.utils.DateUtils;
11
 import com.ruoyi.common.utils.StringUtils;
12
 import com.ruoyi.common.utils.StringUtils;
12
 import com.ruoyi.oa.domain.CmcManageDept;
13
 import com.ruoyi.oa.domain.CmcManageDept;
13
 import com.ruoyi.oa.service.ICmcManageDeptService;
14
 import com.ruoyi.oa.service.ICmcManageDeptService;
114
     }
115
     }
115
 
116
 
116
     /**
117
     /**
117
-     * 获取cmc项目详细信息
118
+     * 项目自动编号
118
      */
119
      */
119
     @GetMapping("/projectNumber")
120
     @GetMapping("/projectNumber")
120
     public AjaxResult getProjectNumberByYear(CmcProject cmcProject)
121
     public AjaxResult getProjectNumberByYear(CmcProject cmcProject)
125
         return success(projectNumber);
126
         return success(projectNumber);
126
     }
127
     }
127
 
128
 
129
+    /**
130
+     * 获取cmc项目统计信息
131
+     */
132
+    @GetMapping("/statistic")
133
+    public AjaxResult getProjectStatistic(CmcProject cmcProject)
134
+    {
135
+        JSONObject jsonObject = new JSONObject();
136
+        JSONArray yearArray = new JSONArray();
137
+        JSONObject yearObject = new JSONObject();
138
+        if (cmcProject.getProjectNumber() == null) {
139
+            //每年项目数量
140
+            for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
141
+                cmcProject.setProjectNumber(String.valueOf(i));
142
+                List<CmcProject> yearList = cmcProjectService.selectCmcProjectList(cmcProject);
143
+                yearObject.put(String.valueOf(i), yearList.size());
144
+            }
145
+            //输入年份院内外项目数量
146
+            JSONArray sourceArray = new JSONArray();
147
+            JSONObject sourceObject = new JSONObject();
148
+            cmcProject.setProjectNumber(null);
149
+            cmcProject.setProjectSource("1");
150
+            sourceObject.put("市场", cmcProjectService.selectCmcProjectList(cmcProject).size());
151
+            cmcProject.setProjectSource("0");
152
+            sourceObject.put("院内", cmcProjectService.selectCmcProjectList(cmcProject).size());
153
+            sourceArray.add(sourceObject);
154
+            jsonObject.put("source", sourceArray);
155
+            //输入年份各类型项目数量
156
+            cmcProject.setProjectSource(null);
157
+            Map<Object, List<CmcProject>> typeGroup = cmcProjectService.selectCmcProjectList(cmcProject).stream().collect(Collectors.groupingBy(item -> Optional.ofNullable(item.getProjectType())));
158
+            Set<Map.Entry<Object, List<CmcProject>>> typeEntries = typeGroup.entrySet();
159
+            JSONArray typeArray = new JSONArray();
160
+            JSONObject typeObject = new JSONObject();
161
+            typeEntries.forEach(item -> {
162
+                if (item.getKey() != Optional.empty()) {
163
+                    String str = item.getKey().toString();
164
+                    typeObject.put(str.substring(str.indexOf("[") + 1, str.indexOf("]")), item.getValue().size());
165
+                }
166
+            });
167
+            typeArray.add(typeObject);
168
+            jsonObject.put("type", typeArray);
169
+            //输入年份各承担部门项目数量
170
+            JSONArray deptArray = new JSONArray();
171
+            JSONObject deptObject = new JSONObject();
172
+            for (int i = 107; i <= 115; i++) {
173
+                cmcProject.setUndertakingDept(String.valueOf(i));
174
+                List<CmcProject> deptList = new ArrayList<>();
175
+                if (i != 113)
176
+                    deptList = cmcProjectService.selectCmcProjectList(cmcProject);
177
+                else
178
+                    deptList = cmcProjectService.selectCmcInvestProjectList(cmcProject);
179
+                deptObject.put(deptService.selectDeptById((long)i).getDeptName(), deptList.size());
180
+            }
181
+            deptArray.add(deptObject);
182
+            jsonObject.put("dept", deptArray);
183
+        }
184
+        else {
185
+            //输入年份项目数量
186
+            yearObject.put(cmcProject.getProjectNumber(), cmcProjectService.selectCmcProjectList(cmcProject).size());
187
+            //输入年份院内外项目数量
188
+            JSONArray sourceArray = new JSONArray();
189
+            JSONObject sourceObject = new JSONObject();
190
+            CmcProject project = new CmcProject();
191
+            project.setProjectNumber(cmcProject.getProjectNumber() + "W");
192
+            sourceObject.put("市场", cmcProjectService.selectCmcProjectList(project).size());
193
+            project.setProjectNumber(cmcProject.getProjectNumber() + "C");
194
+            sourceObject.put("院内", cmcProjectService.selectCmcProjectList(project).size());
195
+            sourceArray.add(sourceObject);
196
+            jsonObject.put("source", sourceArray);
197
+            //输入年份各类型项目数量
198
+            JSONArray typeArray = new JSONArray();
199
+            JSONObject typeObject = new JSONObject();
200
+            Map<Object, List<CmcProject>> typeGroup = cmcProjectService.selectCmcProjectList(cmcProject).stream().collect(Collectors.groupingBy(item -> Optional.ofNullable(item.getProjectType())));
201
+            Set<Map.Entry<Object, List<CmcProject>>> typeEntries = typeGroup.entrySet();
202
+            typeEntries.forEach(item -> {
203
+                if (item.getKey() != Optional.empty()) {
204
+                    String str = item.getKey().toString();
205
+                    typeObject.put(str.substring(str.indexOf("[") + 1, str.indexOf("]")), item.getValue().size());
206
+                }
207
+            });
208
+            typeArray.add(typeObject);
209
+            jsonObject.put("type", typeArray);
210
+            //输入年份各承担部门项目数量
211
+            JSONArray deptArray = new JSONArray();
212
+            JSONObject deptObject = new JSONObject();
213
+            project.setProjectNumber(cmcProject.getProjectNumber());
214
+            for (int i = 107; i <= 115; i++) {
215
+                project.setUndertakingDept(String.valueOf(i));
216
+                List<CmcProject> deptList = new ArrayList<>();
217
+                if (i != 113)
218
+                    deptList = cmcProjectService.selectCmcProjectList(project);
219
+                else
220
+                    deptList = cmcProjectService.selectCmcInvestProjectList(project);
221
+                deptObject.put(deptService.selectDeptById((long)i).getDeptName(), deptList.size());
222
+            }
223
+            deptArray.add(deptObject);
224
+            jsonObject.put("dept", deptArray);
225
+        }
226
+        yearArray.add(yearObject);
227
+        jsonObject.put("year", yearArray);
228
+        return success(jsonObject);
229
+    }
230
+
128
     /**
231
     /**
129
      * 新增cmc项目
232
      * 新增cmc项目
130
      */
233
      */
230
         }
333
         }
231
         return userList;
334
         return userList;
232
     }
335
     }
336
+
337
+
233
 }
338
 }

Loading…
Откажи
Сачувај