Quellcode durchsuchen

归档数修改,结算统计

lamphua vor 7 Monaten
Ursprung
Commit
049d711d19

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

@@ -11,6 +11,8 @@ import com.alibaba.fastjson2.JSONArray;
11 11
 import com.alibaba.fastjson2.JSONObject;
12 12
 import com.ruoyi.common.core.domain.entity.SysUser;
13 13
 import com.ruoyi.common.utils.StringUtils;
14
+import com.ruoyi.file.domain.FilesAchievement;
15
+import com.ruoyi.file.service.IFilesAchievementService;
14 16
 import com.ruoyi.oa.domain.CmcArchive;
15 17
 import com.ruoyi.oa.domain.CmcManageDept;
16 18
 import com.ruoyi.oa.domain.CmcSettle;
@@ -62,6 +64,9 @@ public class CmcProjectController extends BaseController
62 64
     @Autowired
63 65
     private ICmcSettleService cmcSettleService;
64 66
 
67
+    @Autowired
68
+    private IFilesAchievementService filesAchievementService;
69
+
65 70
     /**
66 71
      * 查询cmc项目列表
67 72
      */
@@ -177,11 +182,21 @@ public class CmcProjectController extends BaseController
177 182
                 completeObject.put(cmcProject.getProjectNumber(), completeList.size());
178 183
                 cmcProject.setIsComplete(null);
179 184
                 //已归档
185
+                List<String> projectNumberList = new ArrayList<>();
180 186
                 CmcArchive cmcArchive = new CmcArchive();
181 187
                 cmcArchive.setProjectNumber(String.valueOf(i));
182 188
                 cmcArchive.setArchiveTime(new SimpleDateFormat("yyyy").parse("2000-01-01"));
183 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 201
                 CmcSettle cmcSettle = new CmcSettle();
187 202
                 cmcSettle.setProjectNumber(String.valueOf(i));
@@ -204,11 +219,21 @@ public class CmcProjectController extends BaseController
204 219
             completeObject.put(cmcProject.getProjectNumber(), completeList.size());
205 220
             cmcProject.setIsComplete(null);
206 221
             //已归档
222
+            List<String> projectNumberList = new ArrayList<>();
207 223
             CmcArchive cmcArchive = new CmcArchive();
208 224
             cmcArchive.setProjectNumber(cmcProject.getProjectNumber());
209 225
             cmcArchive.setArchiveTime(new SimpleDateFormat("yyyy").parse("2000-01-01"));
210 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 238
             CmcSettle cmcSettle = new CmcSettle();
214 239
             cmcSettle.setProjectNumber(cmcProject.getProjectNumber());

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

@@ -1,7 +1,17 @@
1 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 7
 import java.util.List;
4 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 15
 import org.springframework.beans.factory.annotation.Autowired;
6 16
 import org.springframework.web.bind.annotation.GetMapping;
7 17
 import org.springframework.web.bind.annotation.PostMapping;
@@ -15,7 +25,6 @@ import com.ruoyi.common.annotation.Log;
15 25
 import com.ruoyi.common.core.controller.BaseController;
16 26
 import com.ruoyi.common.core.domain.AjaxResult;
17 27
 import com.ruoyi.common.enums.BusinessType;
18
-import com.ruoyi.oa.domain.CmcSettle;
19 28
 import com.ruoyi.oa.service.ICmcSettleService;
20 29
 import com.ruoyi.common.utils.poi.ExcelUtil;
21 30
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -33,6 +42,9 @@ public class CmcSettleController extends BaseController
33 42
     @Autowired
34 43
     private ICmcSettleService cmcSettleService;
35 44
 
45
+    @Autowired
46
+    private ICmcSettleSummaryService cmcSettleSummaryService;
47
+
36 48
     /**
37 49
      * 查询cmc结算审批列表
38 50
      */
@@ -65,6 +77,61 @@ public class CmcSettleController extends BaseController
65 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 136
      * 新增cmc结算审批
70 137
      */

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

@@ -28,6 +28,14 @@ public interface FilesAchievementMapper
28 28
      */
29 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 Datei anzeigen

@@ -28,6 +28,14 @@ public interface IFilesAchievementService
28 28
      */
29 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 Datei anzeigen

@@ -44,6 +44,18 @@ public class FilesAchievementServiceImpl implements IFilesAchievementService
44 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 Datei anzeigen

@@ -70,7 +70,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
70 70
         </where>
71 71
         order by p.project_number desc
72 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 83
     <select id="selectFilesAchievementById" parameterType="String" resultMap="FilesAchievementResult">
75 84
         <include refid="selectFilesAchievementAllVo"/>
76 85
         where a.id = #{id}

Laden…
Abbrechen
Speichern