Browse Source

归档数修改,结算统计

lamphua 7 months ago
parent
commit
049d711d19

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

11
 import com.alibaba.fastjson2.JSONObject;
11
 import com.alibaba.fastjson2.JSONObject;
12
 import com.ruoyi.common.core.domain.entity.SysUser;
12
 import com.ruoyi.common.core.domain.entity.SysUser;
13
 import com.ruoyi.common.utils.StringUtils;
13
 import com.ruoyi.common.utils.StringUtils;
14
+import com.ruoyi.file.domain.FilesAchievement;
15
+import com.ruoyi.file.service.IFilesAchievementService;
14
 import com.ruoyi.oa.domain.CmcArchive;
16
 import com.ruoyi.oa.domain.CmcArchive;
15
 import com.ruoyi.oa.domain.CmcManageDept;
17
 import com.ruoyi.oa.domain.CmcManageDept;
16
 import com.ruoyi.oa.domain.CmcSettle;
18
 import com.ruoyi.oa.domain.CmcSettle;
62
     @Autowired
64
     @Autowired
63
     private ICmcSettleService cmcSettleService;
65
     private ICmcSettleService cmcSettleService;
64
 
66
 
67
+    @Autowired
68
+    private IFilesAchievementService filesAchievementService;
69
+
65
     /**
70
     /**
66
      * 查询cmc项目列表
71
      * 查询cmc项目列表
67
      */
72
      */
177
                 completeObject.put(cmcProject.getProjectNumber(), completeList.size());
182
                 completeObject.put(cmcProject.getProjectNumber(), completeList.size());
178
                 cmcProject.setIsComplete(null);
183
                 cmcProject.setIsComplete(null);
179
                 //已归档
184
                 //已归档
185
+                List<String> projectNumberList = new ArrayList<>();
180
                 CmcArchive cmcArchive = new CmcArchive();
186
                 CmcArchive cmcArchive = new CmcArchive();
181
                 cmcArchive.setProjectNumber(String.valueOf(i));
187
                 cmcArchive.setProjectNumber(String.valueOf(i));
182
                 cmcArchive.setArchiveTime(new SimpleDateFormat("yyyy").parse("2000-01-01"));
188
                 cmcArchive.setArchiveTime(new SimpleDateFormat("yyyy").parse("2000-01-01"));
183
                 List<CmcArchive> archiveList = cmcArchiveService.selectCmcArchiveList(cmcArchive);
189
                 List<CmcArchive> archiveList = cmcArchiveService.selectCmcArchiveList(cmcArchive);
184
-                archiveObject.put(String.valueOf(i), archiveList.size());
190
+                for (CmcArchive archive : archiveList) {
191
+                    projectNumberList.add(archive.getProjectNumber());
192
+                }
193
+                FilesAchievement filesAchievement = new FilesAchievement();
194
+                filesAchievement.setProjectNumber(String.valueOf(i));
195
+                List<FilesAchievement> achievementList = filesAchievementService.selectProjectAchievementList(filesAchievement);
196
+                for (FilesAchievement achievement : achievementList) {
197
+                    projectNumberList.add(achievement.getProjectNumber());
198
+                }
199
+                archiveObject.put(String.valueOf(i), projectNumberList.stream().distinct().count());
185
                 //已结算
200
                 //已结算
186
                 CmcSettle cmcSettle = new CmcSettle();
201
                 CmcSettle cmcSettle = new CmcSettle();
187
                 cmcSettle.setProjectNumber(String.valueOf(i));
202
                 cmcSettle.setProjectNumber(String.valueOf(i));
204
             completeObject.put(cmcProject.getProjectNumber(), completeList.size());
219
             completeObject.put(cmcProject.getProjectNumber(), completeList.size());
205
             cmcProject.setIsComplete(null);
220
             cmcProject.setIsComplete(null);
206
             //已归档
221
             //已归档
222
+            List<String> projectNumberList = new ArrayList<>();
207
             CmcArchive cmcArchive = new CmcArchive();
223
             CmcArchive cmcArchive = new CmcArchive();
208
             cmcArchive.setProjectNumber(cmcProject.getProjectNumber());
224
             cmcArchive.setProjectNumber(cmcProject.getProjectNumber());
209
             cmcArchive.setArchiveTime(new SimpleDateFormat("yyyy").parse("2000-01-01"));
225
             cmcArchive.setArchiveTime(new SimpleDateFormat("yyyy").parse("2000-01-01"));
210
             List<CmcArchive> archiveList = cmcArchiveService.selectCmcArchiveList(cmcArchive);
226
             List<CmcArchive> archiveList = cmcArchiveService.selectCmcArchiveList(cmcArchive);
211
-            archiveObject.put(cmcProject.getProjectNumber(), archiveList.size());
227
+            for (CmcArchive archive : archiveList) {
228
+                projectNumberList.add(archive.getProjectNumber());
229
+            }
230
+            FilesAchievement filesAchievement = new FilesAchievement();
231
+            filesAchievement.setProjectNumber(cmcProject.getProjectNumber());
232
+            List<FilesAchievement> achievementList = filesAchievementService.selectProjectAchievementList(filesAchievement);
233
+            for (FilesAchievement achievement : achievementList) {
234
+                projectNumberList.add(achievement.getProjectNumber());
235
+            }
236
+            archiveObject.put(cmcProject.getProjectNumber(), projectNumberList.stream().distinct().count());
212
             //已结算
237
             //已结算
213
             CmcSettle cmcSettle = new CmcSettle();
238
             CmcSettle cmcSettle = new CmcSettle();
214
             cmcSettle.setProjectNumber(cmcProject.getProjectNumber());
239
             cmcSettle.setProjectNumber(cmcProject.getProjectNumber());

+ 68
- 1
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcSettleController.java View File

1
 package com.ruoyi.web.controller.oa;
1
 package com.ruoyi.web.controller.oa;
2
 
2
 
3
+import java.math.BigDecimal;
4
+import java.text.ParseException;
5
+import java.text.SimpleDateFormat;
6
+import java.util.Calendar;
3
 import java.util.List;
7
 import java.util.List;
4
 import javax.servlet.http.HttpServletResponse;
8
 import javax.servlet.http.HttpServletResponse;
9
+
10
+import com.alibaba.fastjson2.JSONArray;
11
+import com.alibaba.fastjson2.JSONObject;
12
+import com.ruoyi.oa.domain.CmcSettle;
13
+import com.ruoyi.oa.domain.CmcSettleSummary;
14
+import com.ruoyi.oa.service.ICmcSettleSummaryService;
5
 import org.springframework.beans.factory.annotation.Autowired;
15
 import org.springframework.beans.factory.annotation.Autowired;
6
 import org.springframework.web.bind.annotation.GetMapping;
16
 import org.springframework.web.bind.annotation.GetMapping;
7
 import org.springframework.web.bind.annotation.PostMapping;
17
 import org.springframework.web.bind.annotation.PostMapping;
15
 import com.ruoyi.common.core.controller.BaseController;
25
 import com.ruoyi.common.core.controller.BaseController;
16
 import com.ruoyi.common.core.domain.AjaxResult;
26
 import com.ruoyi.common.core.domain.AjaxResult;
17
 import com.ruoyi.common.enums.BusinessType;
27
 import com.ruoyi.common.enums.BusinessType;
18
-import com.ruoyi.oa.domain.CmcSettle;
19
 import com.ruoyi.oa.service.ICmcSettleService;
28
 import com.ruoyi.oa.service.ICmcSettleService;
20
 import com.ruoyi.common.utils.poi.ExcelUtil;
29
 import com.ruoyi.common.utils.poi.ExcelUtil;
21
 import com.ruoyi.common.core.page.TableDataInfo;
30
 import com.ruoyi.common.core.page.TableDataInfo;
33
     @Autowired
42
     @Autowired
34
     private ICmcSettleService cmcSettleService;
43
     private ICmcSettleService cmcSettleService;
35
 
44
 
45
+    @Autowired
46
+    private ICmcSettleSummaryService cmcSettleSummaryService;
47
+
36
     /**
48
     /**
37
      * 查询cmc结算审批列表
49
      * 查询cmc结算审批列表
38
      */
50
      */
65
         return success(cmcSettleService.selectCmcSettleBySettleId(settleId));
77
         return success(cmcSettleService.selectCmcSettleBySettleId(settleId));
66
     }
78
     }
67
 
79
 
80
+    /**
81
+     * 获取cmc结算审批详细信息
82
+     */
83
+    @GetMapping("/statistic")
84
+    public AjaxResult getSettleStatistic(CmcSettle cmcSettle) throws ParseException {
85
+        JSONObject jsonObject = new JSONObject();
86
+        JSONArray yearArray = new JSONArray();
87
+        JSONObject yearObject = new JSONObject();
88
+        JSONArray amountArray = new JSONArray();
89
+        JSONObject amountObject = new JSONObject();
90
+        //每年结算金额
91
+        if (cmcSettle.getProjectNumber() == null) {
92
+            for (int i = 2019; i <= Calendar.getInstance().get(Calendar.YEAR); i++) {
93
+                cmcSettle.setProjectNumber(String.valueOf(i));
94
+                cmcSettle.setGmTime(new SimpleDateFormat("yyyy").parse("2000-01-01"));
95
+                List<CmcSettle> yearList = cmcSettleService.selectCmcSettleList(cmcSettle);
96
+                yearObject.put(String.valueOf(i), yearList.size());
97
+                BigDecimal amount = new BigDecimal(0);
98
+                for (CmcSettle settle : yearList) {
99
+                    CmcSettleSummary cmcSettleSummary = new CmcSettleSummary();
100
+                    cmcSettleSummary.setSettleId(settle.getSettleId());
101
+                    cmcSettleSummary.setContent("实际结算总金额");
102
+                    if (cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).size() > 0) {
103
+                        CmcSettleSummary settleSummary = cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).get(0);
104
+                        if (settleSummary.getAmount() != null)
105
+                            amount = amount.add(settleSummary.getAmount());
106
+                    }
107
+                }
108
+                amountObject.put(String.valueOf(i), amount);
109
+            }
110
+            cmcSettle.setGmTime(null);
111
+        }
112
+        else {
113
+            cmcSettle.setGmTime(new SimpleDateFormat("yyyy").parse("2000-01-01"));
114
+            yearObject.put(cmcSettle.getProjectNumber(), cmcSettleService.selectCmcSettleList(cmcSettle).size());
115
+            BigDecimal amount = new BigDecimal(0);
116
+            for (CmcSettle settle : cmcSettleService.selectCmcSettleList(cmcSettle)) {
117
+                CmcSettleSummary cmcSettleSummary = new CmcSettleSummary();
118
+                cmcSettleSummary.setSettleId(settle.getSettleId());
119
+                cmcSettleSummary.setContent("实际结算总金额");
120
+                if (cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).size() > 0) {
121
+                    CmcSettleSummary settleSummary = cmcSettleSummaryService.selectCmcSettleSummaryList(cmcSettleSummary).get(0);
122
+                    if (settleSummary.getAmount() != null)
123
+                        amount = amount.add(settleSummary.getAmount());
124
+                }
125
+            }
126
+            amountObject.put(new SimpleDateFormat("yyyy").format(cmcSettle.getGmTime()), amount);
127
+        }
128
+        yearArray.add(yearObject);
129
+        amountArray.add(amountObject);
130
+        jsonObject.put("year", yearArray);
131
+        jsonObject.put("amount", amountArray);
132
+        return success(jsonObject);
133
+    }
134
+
68
     /**
135
     /**
69
      * 新增cmc结算审批
136
      * 新增cmc结算审批
70
      */
137
      */

+ 8
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/file/mapper/FilesAchievementMapper.java View File

28
      */
28
      */
29
     public List<FilesAchievement> selectFilesAchievementList(FilesAchievement filesAchievement);
29
     public List<FilesAchievement> selectFilesAchievementList(FilesAchievement filesAchievement);
30
 
30
 
31
+    /**
32
+     * 查询项目成果列表
33
+     *
34
+     * @param filesAchievement 成果表
35
+     * @return 成果表集合
36
+     */
37
+    public List<FilesAchievement> selectProjectAchievementList(FilesAchievement filesAchievement);
38
+
31
     /**
39
     /**
32
      * 新增成果表
40
      * 新增成果表
33
      * 
41
      * 

+ 8
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/file/service/IFilesAchievementService.java View File

28
      */
28
      */
29
     public List<FilesAchievement> selectFilesAchievementList(FilesAchievement filesAchievement);
29
     public List<FilesAchievement> selectFilesAchievementList(FilesAchievement filesAchievement);
30
 
30
 
31
+    /**
32
+     * 查询成果表列表
33
+     *
34
+     * @param filesAchievement 成果表
35
+     * @return 成果表集合
36
+     */
37
+    public List<FilesAchievement> selectProjectAchievementList(FilesAchievement filesAchievement);
38
+
31
     /**
39
     /**
32
      * 新增成果表
40
      * 新增成果表
33
      * 
41
      * 

+ 12
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/file/service/impl/FilesAchievementServiceImpl.java View File

44
         return filesAchievementMapper.selectFilesAchievementList(filesAchievement);
44
         return filesAchievementMapper.selectFilesAchievementList(filesAchievement);
45
     }
45
     }
46
 
46
 
47
+    /**
48
+     * 查询项目成果列表
49
+     *
50
+     * @param filesAchievement 成果表
51
+     * @return 成果表
52
+     */
53
+    @Override
54
+    public List<FilesAchievement> selectProjectAchievementList(FilesAchievement filesAchievement)
55
+    {
56
+        return filesAchievementMapper.selectProjectAchievementList(filesAchievement);
57
+    }
58
+
47
     /**
59
     /**
48
      * 新增成果表
60
      * 新增成果表
49
      * 
61
      * 

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

70
         </where>
70
         </where>
71
         order by p.project_number desc
71
         order by p.project_number desc
72
     </select>
72
     </select>
73
-    
73
+
74
+    <select id="selectProjectAchievementList" parameterType="FilesAchievement" resultMap="FilesAchievementResult">
75
+        select distinct p.project_number from files_achievement as f LEFT JOIN cmc_project as p on f.project_id = p.project_id
76
+        <where>
77
+            (p.project_number REGEXP '^[0-9]+W[0-9]' or p.project_number REGEXP '^[0-9]+C[0-9]') AND NOT (p.project_number REGEXP '[/\\*-]')
78
+            <if test="projectNumber != null  and projectNumber != ''"> and p.project_number like concat('%', #{projectNumber}, '%')</if>
79
+        </where>
80
+        group by p.project_number
81
+    </select>
82
+
74
     <select id="selectFilesAchievementById" parameterType="String" resultMap="FilesAchievementResult">
83
     <select id="selectFilesAchievementById" parameterType="String" resultMap="FilesAchievementResult">
75
         <include refid="selectFilesAchievementAllVo"/>
84
         <include refid="selectFilesAchievementAllVo"/>
76
         where a.id = #{id}
85
         where a.id = #{id}

Loading…
Cancel
Save