Browse Source

合同统计

lamphua 7 months ago
parent
commit
b1154bd3b6

+ 25
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcContractController.java View File

1
 package com.ruoyi.web.controller.oa;
1
 package com.ruoyi.web.controller.oa;
2
 
2
 
3
+import java.text.ParseException;
4
+import java.text.SimpleDateFormat;
5
+import java.util.Calendar;
3
 import java.util.Date;
6
 import java.util.Date;
4
 import java.util.List;
7
 import java.util.List;
5
 import javax.servlet.http.HttpServletResponse;
8
 import javax.servlet.http.HttpServletResponse;
6
 
9
 
10
+import com.alibaba.fastjson2.JSONArray;
11
+import com.alibaba.fastjson2.JSONObject;
7
 import com.ruoyi.oa.domain.CmcPartyA;
12
 import com.ruoyi.oa.domain.CmcPartyA;
13
+import com.ruoyi.oa.domain.CmcProject;
8
 import com.ruoyi.oa.service.ICmcPartyAService;
14
 import com.ruoyi.oa.service.ICmcPartyAService;
9
 import org.springframework.beans.factory.annotation.Autowired;
15
 import org.springframework.beans.factory.annotation.Autowired;
10
 import org.springframework.web.bind.annotation.GetMapping;
16
 import org.springframework.web.bind.annotation.GetMapping;
51
         return getDataTable(list);
57
         return getDataTable(list);
52
     }
58
     }
53
 
59
 
60
+    /**
61
+     * 获取cmc合同统计信息
62
+     */
63
+    @GetMapping("/statistic")
64
+    public AjaxResult getContractStatistic(CmcContract cmcContract) throws ParseException {
65
+        JSONObject jsonObject = new JSONObject();
66
+        JSONArray yearArray = new JSONArray();
67
+        JSONObject yearObject = new JSONObject();
68
+        //每年合同数量
69
+        for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
70
+            cmcContract.setSignDate(new SimpleDateFormat("yyyy").parse(String.valueOf(i)));
71
+            List<CmcContract> yearList = cmcContractService.selectCmcContractList(cmcContract);
72
+            yearObject.put(String.valueOf(i), yearList.size());
73
+        }
74
+        yearArray.add(yearObject);
75
+        jsonObject.put("year", yearArray);
76
+        return success(jsonObject);
77
+    }
78
+
54
     /**
79
     /**
55
      * 导出cmc合同评审列表
80
      * 导出cmc合同评审列表
56
      */
81
      */

+ 27
- 40
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcProjectController.java View File

8
 import com.alibaba.fastjson2.JSONArray;
8
 import com.alibaba.fastjson2.JSONArray;
9
 import com.alibaba.fastjson2.JSONObject;
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;
12
 import com.ruoyi.common.utils.StringUtils;
11
 import com.ruoyi.common.utils.StringUtils;
13
 import com.ruoyi.oa.domain.CmcManageDept;
12
 import com.ruoyi.oa.domain.CmcManageDept;
14
 import com.ruoyi.oa.service.ICmcManageDeptService;
13
 import com.ruoyi.oa.service.ICmcManageDeptService;
17
 import com.ruoyi.system.service.ISysDeptService;
16
 import com.ruoyi.system.service.ISysDeptService;
18
 import com.ruoyi.system.service.ISysUserService;
17
 import com.ruoyi.system.service.ISysUserService;
19
 import com.ruoyi.web.controller.qyweixin.MessageController;
18
 import com.ruoyi.web.controller.qyweixin.MessageController;
20
-import com.ruoyi.web.controller.system.SysPostController;
21
 import org.springframework.beans.factory.annotation.Autowired;
19
 import org.springframework.beans.factory.annotation.Autowired;
22
 import org.springframework.web.bind.annotation.*;
20
 import org.springframework.web.bind.annotation.*;
23
 import com.ruoyi.common.annotation.Log;
21
 import com.ruoyi.common.annotation.Log;
135
         JSONObject jsonObject = new JSONObject();
133
         JSONObject jsonObject = new JSONObject();
136
         JSONArray yearArray = new JSONArray();
134
         JSONArray yearArray = new JSONArray();
137
         JSONObject yearObject = new JSONObject();
135
         JSONObject yearObject = new JSONObject();
138
-        if (cmcProject.getProjectNumber() == null) {
136
+        JSONArray sourceArray = new JSONArray();
137
+        JSONObject sourceObject = new JSONObject();
138
+        JSONArray typeArray = new JSONArray();
139
+        JSONObject typeObject = new JSONObject();
140
+        JSONArray deptArray = new JSONArray();
141
+        JSONObject deptObject = new JSONObject();
142
+        //整体
143
+        if (cmcProject.getProjectNumber() == null && cmcProject.getProjectSource() == null && cmcProject.getProjectType() == null && cmcProject.getUndertakingDept() == null) {
139
             //每年项目数量
144
             //每年项目数量
140
             for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
145
             for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
141
                 cmcProject.setProjectNumber(String.valueOf(i));
146
                 cmcProject.setProjectNumber(String.valueOf(i));
142
                 List<CmcProject> yearList = cmcProjectService.selectCmcProjectList(cmcProject);
147
                 List<CmcProject> yearList = cmcProjectService.selectCmcProjectList(cmcProject);
143
                 yearObject.put(String.valueOf(i), yearList.size());
148
                 yearObject.put(String.valueOf(i), yearList.size());
144
             }
149
             }
145
-            //输入年份院内外项目数量
146
-            JSONArray sourceArray = new JSONArray();
147
-            JSONObject sourceObject = new JSONObject();
150
+            //院内外项目数量
148
             cmcProject.setProjectNumber(null);
151
             cmcProject.setProjectNumber(null);
149
             cmcProject.setProjectSource("1");
152
             cmcProject.setProjectSource("1");
150
             sourceObject.put("市场", cmcProjectService.selectCmcProjectList(cmcProject).size());
153
             sourceObject.put("市场", cmcProjectService.selectCmcProjectList(cmcProject).size());
151
             cmcProject.setProjectSource("0");
154
             cmcProject.setProjectSource("0");
152
             sourceObject.put("院内", cmcProjectService.selectCmcProjectList(cmcProject).size());
155
             sourceObject.put("院内", cmcProjectService.selectCmcProjectList(cmcProject).size());
153
-            sourceArray.add(sourceObject);
154
-            jsonObject.put("source", sourceArray);
155
-            //输入年份各类型项目数量
156
+            //各类型项目数量
156
             cmcProject.setProjectSource(null);
157
             cmcProject.setProjectSource(null);
157
             Map<Object, List<CmcProject>> typeGroup = cmcProjectService.selectCmcProjectList(cmcProject).stream().collect(Collectors.groupingBy(item -> Optional.ofNullable(item.getProjectType())));
158
             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
             Set<Map.Entry<Object, List<CmcProject>>> typeEntries = typeGroup.entrySet();
159
-            JSONArray typeArray = new JSONArray();
160
-            JSONObject typeObject = new JSONObject();
161
             typeEntries.forEach(item -> {
160
             typeEntries.forEach(item -> {
162
                 if (item.getKey() != Optional.empty()) {
161
                 if (item.getKey() != Optional.empty()) {
163
                     String str = item.getKey().toString();
162
                     String str = item.getKey().toString();
164
                     typeObject.put(str.substring(str.indexOf("[") + 1, str.indexOf("]")), item.getValue().size());
163
                     typeObject.put(str.substring(str.indexOf("[") + 1, str.indexOf("]")), item.getValue().size());
165
                 }
164
                 }
166
             });
165
             });
167
-            typeArray.add(typeObject);
168
-            jsonObject.put("type", typeArray);
169
-            //输入年份各承担部门项目数量
170
-            JSONArray deptArray = new JSONArray();
171
-            JSONObject deptObject = new JSONObject();
166
+            //各承担部门项目数量
172
             for (int i = 107; i <= 115; i++) {
167
             for (int i = 107; i <= 115; i++) {
173
                 cmcProject.setUndertakingDept(String.valueOf(i));
168
                 cmcProject.setUndertakingDept(String.valueOf(i));
174
                 List<CmcProject> deptList = new ArrayList<>();
169
                 List<CmcProject> deptList = new ArrayList<>();
178
                     deptList = cmcProjectService.selectCmcInvestProjectList(cmcProject);
173
                     deptList = cmcProjectService.selectCmcInvestProjectList(cmcProject);
179
                 deptObject.put(deptService.selectDeptById((long)i).getDeptName(), deptList.size());
174
                 deptObject.put(deptService.selectDeptById((long)i).getDeptName(), deptList.size());
180
             }
175
             }
181
-            deptArray.add(deptObject);
182
-            jsonObject.put("dept", deptArray);
183
         }
176
         }
184
-        else {
177
+        //年度
178
+        else if (cmcProject.getProjectNumber() != null && cmcProject.getProjectSource() == null && cmcProject.getProjectType() == null && cmcProject.getUndertakingDept() == null) {
185
             //输入年份项目数量
179
             //输入年份项目数量
186
             yearObject.put(cmcProject.getProjectNumber(), cmcProjectService.selectCmcProjectList(cmcProject).size());
180
             yearObject.put(cmcProject.getProjectNumber(), cmcProjectService.selectCmcProjectList(cmcProject).size());
187
             //输入年份院内外项目数量
181
             //输入年份院内外项目数量
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);
182
+            cmcProject.setProjectSource("1");
183
+            sourceObject.put("市场", cmcProjectService.selectCmcProjectList(cmcProject).size());
184
+            cmcProject.setProjectSource("0");
185
+            sourceObject.put("院内", cmcProjectService.selectCmcProjectList(cmcProject).size());
197
             //输入年份各类型项目数量
186
             //输入年份各类型项目数量
198
-            JSONArray typeArray = new JSONArray();
199
-            JSONObject typeObject = new JSONObject();
187
+            cmcProject.setProjectSource(null);
200
             Map<Object, List<CmcProject>> typeGroup = cmcProjectService.selectCmcProjectList(cmcProject).stream().collect(Collectors.groupingBy(item -> Optional.ofNullable(item.getProjectType())));
188
             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();
189
             Set<Map.Entry<Object, List<CmcProject>>> typeEntries = typeGroup.entrySet();
202
             typeEntries.forEach(item -> {
190
             typeEntries.forEach(item -> {
205
                     typeObject.put(str.substring(str.indexOf("[") + 1, str.indexOf("]")), item.getValue().size());
193
                     typeObject.put(str.substring(str.indexOf("[") + 1, str.indexOf("]")), item.getValue().size());
206
                 }
194
                 }
207
             });
195
             });
208
-            typeArray.add(typeObject);
209
-            jsonObject.put("type", typeArray);
210
             //输入年份各承担部门项目数量
196
             //输入年份各承担部门项目数量
211
-            JSONArray deptArray = new JSONArray();
212
-            JSONObject deptObject = new JSONObject();
213
-            project.setProjectNumber(cmcProject.getProjectNumber());
214
             for (int i = 107; i <= 115; i++) {
197
             for (int i = 107; i <= 115; i++) {
215
-                project.setUndertakingDept(String.valueOf(i));
198
+                cmcProject.setUndertakingDept(String.valueOf(i));
216
                 List<CmcProject> deptList = new ArrayList<>();
199
                 List<CmcProject> deptList = new ArrayList<>();
217
                 if (i != 113)
200
                 if (i != 113)
218
-                    deptList = cmcProjectService.selectCmcProjectList(project);
201
+                    deptList = cmcProjectService.selectCmcProjectList(cmcProject);
219
                 else
202
                 else
220
-                    deptList = cmcProjectService.selectCmcInvestProjectList(project);
203
+                    deptList = cmcProjectService.selectCmcInvestProjectList(cmcProject);
221
                 deptObject.put(deptService.selectDeptById((long)i).getDeptName(), deptList.size());
204
                 deptObject.put(deptService.selectDeptById((long)i).getDeptName(), deptList.size());
222
             }
205
             }
223
-            deptArray.add(deptObject);
224
-            jsonObject.put("dept", deptArray);
225
         }
206
         }
226
         yearArray.add(yearObject);
207
         yearArray.add(yearObject);
208
+        sourceArray.add(sourceObject);
209
+        deptArray.add(deptObject);
210
+        typeArray.add(typeObject);
227
         jsonObject.put("year", yearArray);
211
         jsonObject.put("year", yearArray);
212
+        jsonObject.put("source", sourceArray);
213
+        jsonObject.put("dept", deptArray);
214
+        jsonObject.put("type", typeArray);
228
         return success(jsonObject);
215
         return success(jsonObject);
229
     }
216
     }
230
 
217
 

+ 1
- 1
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcContractMapper.xml View File

91
             <if test="contractDocument != null  and contractDocument != ''"> and c.contract_document = #{contractDocument}</if>
91
             <if test="contractDocument != null  and contractDocument != ''"> and c.contract_document = #{contractDocument}</if>
92
             <if test="drafter != null "> and c.drafter = #{drafter}</if>
92
             <if test="drafter != null "> and c.drafter = #{drafter}</if>
93
             <if test="draftTime != null "> and c.draft_time = #{draftTime}</if>
93
             <if test="draftTime != null "> and c.draft_time = #{draftTime}</if>
94
-            <if test="signDate != null "> and c.sign_date = #{signDate}</if>
94
+            <if test="signDate != null "> and YEAR(c.sign_date) = YEAR(#{signDate})</if>
95
             <if test="signRemark != null  and signRemark != ''"> and c.sign_remark = #{signRemark}</if>
95
             <if test="signRemark != null  and signRemark != ''"> and c.sign_remark = #{signRemark}</if>
96
             <if test="signScan != null  and signScan != ''"> and c.sign_scan = #{signScan}</if>
96
             <if test="signScan != null  and signScan != ''"> and c.sign_scan = #{signScan}</if>
97
             <if test="commentType != null  and commentType != ''"> and c.comment_type = #{commentType}</if>
97
             <if test="commentType != null  and commentType != ''"> and c.comment_type = #{commentType}</if>

Loading…
Cancel
Save