10 Commits f04d11a791 ... 199d76870a

Author SHA1 Message Date
  lgl 199d76870a Merge remote-tracking branch 'origin/master' 5 months ago
  lgl 00e3e2dc48 年度预算-已执行情况v2.0 历史数据处理 5 months ago
  lgl dae30faf1d 年度预算-已执行情况v2.0 历史数据处理 5 months ago
  lgl 47af36cd05 Merge branch 'master' into dev-lgl 5 months ago
  lgl 1d2c818938 年度预算-已执行情况计算总和优化 5 months ago
  lgl da92c99b26 年度预算-已执行情况bug 5 months ago
  lgl 7b383e570a 年度预算-本年度已申请金额 和 本年度已申请金额 总和计算 5 months ago
  lgl bb3151f9f6 年度预算-年度预算详情编码配置 5 months ago
  lgl 08009c42b3 Merge branch 'master' into dev-lgl 5 months ago
  lgl d85e5f96c9 年度预算-已知情情况 bug 5 months ago

+ 33 - 0
src/main/java/com/liang/common/config/SFTYProperties.java

@@ -1,18 +1,51 @@
1
 package com.liang.common.config;
1
 package com.liang.common.config;
2
 
2
 
3
 
3
 
4
+import com.liang.common.constants.CommonConstant;
5
+import com.liang.common.utils.SpringUtil;
6
+import com.liang.dao.BaseProjectbudgetDao;
7
+import com.liang.vo.dto.Ndysbm;
4
 import lombok.Data;
8
 import lombok.Data;
5
 import lombok.NoArgsConstructor;
9
 import lombok.NoArgsConstructor;
10
+import lombok.extern.slf4j.Slf4j;
6
 import org.springframework.boot.context.properties.ConfigurationProperties;
11
 import org.springframework.boot.context.properties.ConfigurationProperties;
7
 import org.springframework.stereotype.Component;
12
 import org.springframework.stereotype.Component;
8
 
13
 
14
+import java.util.HashMap;
15
+import java.util.List;
16
+import java.util.Map;
17
+import java.util.stream.Collectors;
18
+
9
 import static com.liang.common.config.SFTYProperties.PREFIX;
19
 import static com.liang.common.config.SFTYProperties.PREFIX;
10
 
20
 
11
 @Component
21
 @Component
12
 @ConfigurationProperties(PREFIX)
22
 @ConfigurationProperties(PREFIX)
13
 @Data
23
 @Data
14
 @NoArgsConstructor
24
 @NoArgsConstructor
25
+@Slf4j
15
 public class SFTYProperties {
26
 public class SFTYProperties {
27
+    static Map<String, Map<String, String>> NDYSBM = new HashMap<>();
28
+
29
+    static {
30
+        BaseProjectbudgetDao baseProjectbudgetDao = SpringUtil.getBean("baseProjectbudgetDao");
31
+
32
+        List<Ndysbm> ndysbms = baseProjectbudgetDao.getNDYSBM();
33
+        Map<String, List<Ndysbm>> collect = ndysbms.stream().collect(Collectors.groupingBy(Ndysbm::getXmlx));
34
+        collect.forEach((k, v) -> {
35
+            Map<String, String> bm = new HashMap<>();
36
+            v.forEach(item -> {
37
+                bm.put(item.getMc(), item.getBm());
38
+            });
39
+            NDYSBM.put(k, bm);
40
+        });
41
+        log.info("============NDYSBM 初始化成功 :{}================", NDYSBM);
42
+    }
43
+
44
+    public static String getNDYSBM(String xmlx,String bmmc) {
45
+        Map<String, String> map = NDYSBM.get(xmlx);
46
+        return map.get(bmmc);
47
+    }
48
+
16
     public static final String PREFIX = "sfty";
49
     public static final String PREFIX = "sfty";
17
 
50
 
18
     private String uploadFilePath;
51
     private String uploadFilePath;

+ 13 - 0
src/main/java/com/liang/common/constants/CommonConstant.java

@@ -16,4 +16,17 @@ public class CommonConstant {
16
     public static final String WTJFH = "未提交(返回)";
16
     public static final String WTJFH = "未提交(返回)";
17
     public static final String WTJ = "未提交";
17
     public static final String WTJ = "未提交";
18
     public static final String SPJS = "审批结束";
18
     public static final String SPJS = "审批结束";
19
+    /**
20
+     * 模板项目预算
21
+     */
22
+
23
+    public static final String ZJ = "总计";
24
+    public static final String ZJF = "(一)直接费";
25
+    public static final String RGF = "1.人工费";
26
+    public static final String SBF = "1.设备费";
27
+    public static final String SBSYF = "2.设备使用费";
28
+    public static final String YWF = "3.业务费";
29
+    public static final String CDSYF = "4.场地使用费";
30
+    public static final String WWZCF = "(三)外委支出费";
31
+
19
 }
32
 }

+ 78 - 16
src/main/java/com/liang/controller/PrjAnnualbudgetController.java

@@ -8,6 +8,8 @@ import com.github.pagehelper.PageInfo;
8
 import com.liang.common.JsonTool;
8
 import com.liang.common.JsonTool;
9
 import com.liang.common.base.BaseController;
9
 import com.liang.common.base.BaseController;
10
 import com.liang.common.base.BaseResult;
10
 import com.liang.common.base.BaseResult;
11
+import com.liang.common.config.SFTYProperties;
12
+import com.liang.common.constants.CommonConstant;
11
 import com.liang.common.enums.PostInfoEnum;
13
 import com.liang.common.enums.PostInfoEnum;
12
 import com.liang.common.enums.ProjectTypeEnnum;
14
 import com.liang.common.enums.ProjectTypeEnnum;
13
 import com.liang.common.utils.ExcelPoiUtil;
15
 import com.liang.common.utils.ExcelPoiUtil;
@@ -19,6 +21,7 @@ import com.liang.service.*;
19
 import com.liang.vo.PrjAnnualbudgetNfVo;
21
 import com.liang.vo.PrjAnnualbudgetNfVo;
20
 import com.liang.vo.PrjAnnualbudgetYzxqkVo;
22
 import com.liang.vo.PrjAnnualbudgetYzxqkVo;
21
 import io.swagger.annotations.ApiOperation;
23
 import io.swagger.annotations.ApiOperation;
24
+import lombok.extern.slf4j.Slf4j;
22
 import org.springframework.data.domain.Page;
25
 import org.springframework.data.domain.Page;
23
 import org.springframework.data.domain.PageRequest;
26
 import org.springframework.data.domain.PageRequest;
24
 import org.springframework.http.ResponseEntity;
27
 import org.springframework.http.ResponseEntity;
@@ -41,6 +44,7 @@ import java.util.stream.Collectors;
41
  * @since 2023-05-17 08:56:49
44
  * @since 2023-05-17 08:56:49
42
  */
45
  */
43
 @Controller
46
 @Controller
47
+@Slf4j
44
 @RequestMapping("prjAnnualbudget")
48
 @RequestMapping("prjAnnualbudget")
45
 public class PrjAnnualbudgetController extends BaseController {
49
 public class PrjAnnualbudgetController extends BaseController {
46
     /**
50
     /**
@@ -304,7 +308,7 @@ public class PrjAnnualbudgetController extends BaseController {
304
 
308
 
305
                 Set<String> nf = yzxqkVos.stream().map(PrjAnnualbudgetYzxqkVo::getNf).collect(Collectors.toSet());
309
                 Set<String> nf = yzxqkVos.stream().map(PrjAnnualbudgetYzxqkVo::getNf).collect(Collectors.toSet());
306
                 //后端对已执行情况的父级求和
310
                 //后端对已执行情况的父级求和
307
-                sumYzxqk(readValue, nf);
311
+                sumYzxqk(readValue, nf, yzxqkVos.get(0).getXmlx());
308
                 nf.forEach(nfItem -> {
312
                 nf.forEach(nfItem -> {
309
                     readValue.stream().forEach(item -> {
313
                     readValue.stream().forEach(item -> {
310
                         Double ysje = allBudgetDetails.stream().filter(allBudgetDetailItem -> allBudgetDetailItem.getFymc().equals(item.get("fymc")) && nfItem.equals(String.valueOf(allBudgetDetailItem.getNf()))).collect(Collectors.toList()).get(0).getYsje();
314
                         Double ysje = allBudgetDetails.stream().filter(allBudgetDetailItem -> allBudgetDetailItem.getFymc().equals(item.get("fymc")) && nfItem.equals(String.valueOf(allBudgetDetailItem.getNf()))).collect(Collectors.toList()).get(0).getYsje();
@@ -326,29 +330,87 @@ public class PrjAnnualbudgetController extends BaseController {
326
 
330
 
327
     }
331
     }
328
 
332
 
329
-    private void sumYzxqk(List<Map<String, Object>> readValue, Set<String> nf) {
333
+    private void sumYzxqk(List<Map<String, Object>> readValue, Set<String> nf, String xmlx) {
330
         for (String n : nf) {
334
         for (String n : nf) {
335
+            String rgfbm = SFTYProperties.getNDYSBM(xmlx, CommonConstant.RGF);
331
             //更新人工费
336
             //更新人工费
332
-            BigDecimal rgf = readValue.stream().filter(item -> "32".equals(item.get("fj")) && Tools.notEmpty(item.get("yzxqk" + n))).map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
333
-            readValue.stream().filter(item -> "32".equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, rgf.setScale(2, 4)));
337
+            if (Tools.notEmpty(rgfbm)) {
338
+                List<Map<String, Object>> rgfs = readValue.stream().filter(item -> {
339
+                    return Tools.notEmpty(rgfbm) && rgfbm.equals(item.get("fj")) && item.get("yzxqk" + n) != null;
340
+                }).collect(Collectors.toList());
341
+                if (Tools.notEmpty(rgfs)) {
342
+                    BigDecimal rgf = rgfs.stream().map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
343
+                    readValue.stream().filter(item -> rgfbm.equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, rgf.setScale(2, 4)));
344
+                }
345
+            }
346
+            //更新设备费
347
+            String sbfbm = SFTYProperties.getNDYSBM(xmlx, CommonConstant.SBF);
348
+            if (Tools.notEmpty(sbfbm)) {
349
+                List<Map<String, Object>> sbfs = readValue.stream().filter(item -> {
350
+                    return Tools.notEmpty(sbfbm) && sbfbm.equals(item.get("fj")) && item.get("yzxqk" + n) != null;
351
+                }).collect(Collectors.toList());
352
+                if (Tools.notEmpty(sbfs)) {
353
+                    BigDecimal sbf = sbfs.stream().map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
354
+                    readValue.stream().filter(item -> sbfbm.equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, sbf.setScale(2, 4)));
355
+                }
356
+            }
334
             //更新设备使用费
357
             //更新设备使用费
335
-            BigDecimal sbsyf = readValue.stream().filter(item -> "36".equals(item.get("fj")) && Tools.notEmpty(item.get("yzxqk" + n))).map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
336
-            readValue.stream().filter(item -> "36".equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(sbsyf)));
358
+            String sbsyfbm = SFTYProperties.getNDYSBM(xmlx, CommonConstant.SBSYF);
359
+            if (Tools.notEmpty(sbsyfbm)) {
360
+                List<Map<String, Object>> sbsyfs = readValue.stream().filter(item -> sbsyfbm.equals(item.get("fj")) && item.get("yzxqk" + n) != null).collect(Collectors.toList());
361
+                if (Tools.notEmpty(sbsyfs)) {
362
+                    BigDecimal sbsyf = sbsyfs.stream().map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
363
+                    readValue.stream().filter(item -> sbsyfbm.equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(sbsyf)));
364
+                }
365
+            }
337
             //更新业务费
366
             //更新业务费
338
-            BigDecimal ywf = readValue.stream().filter(item -> "39".equals(item.get("fj")) && Tools.notEmpty(item.get("yzxqk" + n))).map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
339
-            readValue.stream().filter(item -> "39".equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(ywf)));
367
+            String ywfbm = SFTYProperties.getNDYSBM(xmlx, CommonConstant.YWF);
368
+            if (Tools.notEmpty(ywfbm)) {
369
+                List<Map<String, Object>> yfws = readValue.stream().filter(item -> ywfbm.equals(item.get("fj")) && item.get("yzxqk" + n) != null).collect(Collectors.toList());
370
+                if (Tools.notEmpty(yfws)) {
371
+                    BigDecimal ywf = yfws.stream().map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
372
+                    readValue.stream().filter(item -> ywfbm.equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(ywf)));
373
+                }
374
+            }
340
             //更新场地使用费
375
             //更新场地使用费
341
-            BigDecimal cdsyf = readValue.stream().filter(item -> "43".equals(item.get("fj")) && Tools.notEmpty(item.get("yzxqk" + n))).map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
342
-            readValue.stream().filter(item -> "43".equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(cdsyf)));
376
+            String cdsyfbm = SFTYProperties.getNDYSBM(xmlx, CommonConstant.CDSYF);
377
+            if (Tools.notEmpty(cdsyfbm)) {
378
+                List<Map<String, Object>> cdsyfs = readValue.stream().filter(item -> cdsyfbm.equals(item.get("fj")) && item.get("yzxqk" + n) != null).collect(Collectors.toList());
379
+                if (Tools.notEmpty(cdsyfs)) {
380
+                    BigDecimal cdsyf = cdsyfs.stream().map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
381
+                    readValue.stream().filter(item -> cdsyfbm.equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(cdsyf)));
382
+                }
383
+            }
384
+
343
             //更新外委支出费
385
             //更新外委支出费
344
-            BigDecimal wwzcf = readValue.stream().filter(item -> "48".equals(item.get("fj")) && Tools.notEmpty(item.get("yzxqk" + n))).map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
345
-            readValue.stream().filter(item -> "48".equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(wwzcf)));
386
+            String wwzcfbm = SFTYProperties.getNDYSBM(xmlx, CommonConstant.WWZCF);
387
+            if (Tools.notEmpty(wwzcfbm)) {
388
+                List<Map<String, Object>> wwzcfs = readValue.stream().filter(item -> wwzcfbm.equals(item.get("fj")) && item.get("yzxqk" + n) != null).collect(Collectors.toList());
389
+                if (Tools.notEmpty(wwzcfs)) {
390
+                    BigDecimal wwzcf = wwzcfs.stream().map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
391
+                    readValue.stream().filter(item -> wwzcfbm.equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(wwzcf)));
392
+                }
393
+            }
394
+
346
             //更新直接费
395
             //更新直接费
347
-            BigDecimal zjf = readValue.stream().filter(item -> "31".equals(item.get("fj")) && Tools.notEmpty(item.get("yzxqk" + n))).map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
348
-            readValue.stream().filter(item -> "31".equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(zjf)));
396
+            String zjfbm = SFTYProperties.getNDYSBM(xmlx, CommonConstant.ZJF);
397
+            if (Tools.notEmpty(zjfbm)) {
398
+                List<Map<String, Object>> zjfs = readValue.stream().filter(item -> zjfbm.equals(item.get("fj")) && item.get("yzxqk" + n) != null).collect(Collectors.toList());
399
+                if (Tools.notEmpty(zjfs)) {
400
+                    BigDecimal zjf = zjfs.stream().map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
401
+                    readValue.stream().filter(item -> zjfbm.equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(zjf)));
402
+                }
403
+            }
349
             //更新总计
404
             //更新总计
350
-            BigDecimal zj = readValue.stream().filter(item -> "30".equals(item.get("fj")) && Tools.notEmpty(item.get("yzxqk" + n))).map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
351
-            readValue.stream().filter(item -> "30".equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(zj)));
405
+            String zjbm = SFTYProperties.getNDYSBM(xmlx, CommonConstant.ZJ);
406
+            if (Tools.notEmpty(zjbm)) {
407
+                List<Map<String, Object>> zjs = readValue.stream().filter(item -> zjbm.equals(item.get("fj")) && item.get("yzxqk" + n) != null).collect(Collectors.toList());
408
+                if (Tools.notEmpty(zjs)) {
409
+                    BigDecimal zj = zjs.stream().map(item -> new BigDecimal(String.valueOf(item.get("yzxqk" + n)))).reduce(BigDecimal.ZERO, BigDecimal::add);
410
+                    readValue.stream().filter(item -> zjbm.equals(item.get("bm"))).forEach(item -> item.put("yzxqk" + n, String.valueOf(zj)));
411
+                }
412
+            }
413
+
352
         }
414
         }
353
     }
415
     }
354
 
416
 

+ 4 - 0
src/main/java/com/liang/dao/BaseProjectbudgetDao.java

@@ -1,6 +1,7 @@
1
 package com.liang.dao;
1
 package com.liang.dao;
2
 
2
 
3
 import com.liang.entity.BaseProjectbudget;
3
 import com.liang.entity.BaseProjectbudget;
4
+import com.liang.vo.dto.Ndysbm;
4
 import org.apache.ibatis.annotations.Param;
5
 import org.apache.ibatis.annotations.Param;
5
 import org.springframework.data.domain.Pageable;
6
 import org.springframework.data.domain.Pageable;
6
 
7
 
@@ -109,5 +110,8 @@ public interface BaseProjectbudgetDao {
109
      * @return
110
      * @return
110
      */
111
      */
111
     List<BaseProjectbudget> getBudgetListByXmlx(String xmlx);
112
     List<BaseProjectbudget> getBudgetListByXmlx(String xmlx);
113
+
114
+    List<Ndysbm> getNDYSBM();
115
+
112
 }
116
 }
113
 
117
 

+ 6 - 0
src/main/java/com/liang/dao/PrjAnnualbudgetDao.java

@@ -155,5 +155,11 @@ public interface PrjAnnualbudgetDao {
155
     void updateSJYZXByNysId(@Param("rwsId") Integer rwsId, @Param("nf") String nf, @Param("nysId") Integer nysId);
155
     void updateSJYZXByNysId(@Param("rwsId") Integer rwsId, @Param("nf") String nf, @Param("nysId") Integer nysId);
156
 
156
 
157
     void updateSJYZXSumByNysId(@Param("rwsId") Integer rwsId, @Param("nf") String nf, @Param("nysId") Integer nysId);
157
     void updateSJYZXSumByNysId(@Param("rwsId") Integer rwsId, @Param("nf") String nf, @Param("nysId") Integer nysId);
158
+
159
+    void updateZFXMFYMC(@Param("nysId") Integer nysId, @Param("rwsId") Integer rwsId);
160
+
161
+    void updateSXGSKJXMFYMC(@Param("nysId") Integer nysId, @Param("rwsId") Integer rwsId);
162
+
163
+    void updateGWGSKJXMFYMC(@Param("nysId") Integer nysId, @Param("rwsId") Integer rwsId);
158
 }
164
 }
159
 
165
 

+ 20 - 11
src/main/java/com/liang/service/impl/PrjAnnualbudgetServiceImpl.java

@@ -1,6 +1,8 @@
1
 package com.liang.service.impl;
1
 package com.liang.service.impl;
2
 
2
 
3
 import com.liang.common.base.BaseResult;
3
 import com.liang.common.base.BaseResult;
4
+import com.liang.common.enums.ProjectTypeEnnum;
5
+import com.liang.common.exception.CustomException;
4
 import com.liang.dao.PrjAnnualbudgetDao;
6
 import com.liang.dao.PrjAnnualbudgetDao;
5
 import com.liang.dao.PrjAnnualbudgetdetailDao;
7
 import com.liang.dao.PrjAnnualbudgetdetailDao;
6
 import com.liang.entity.PrjAnnualbudget;
8
 import com.liang.entity.PrjAnnualbudget;
@@ -157,20 +159,27 @@ public class PrjAnnualbudgetServiceImpl implements PrjAnnualbudgetService {
157
             prjAnnualbudgetDao.updateSJYZXSum(rws);
159
             prjAnnualbudgetDao.updateSJYZXSum(rws);
158
         }
160
         }
159
     }
161
     }
162
+
160
     @GetMapping("/updateSJYZXAndXTJSYZX/{rwsId}/{nysId}")
163
     @GetMapping("/updateSJYZXAndXTJSYZX/{rwsId}/{nysId}")
161
     @Transactional(rollbackFor = Exception.class)
164
     @Transactional(rollbackFor = Exception.class)
162
-    public BaseResult updateSJYZXAndXTJSYZX(@PathVariable("rwsId")Integer rwsId, @PathVariable("nysId")Integer nysId) {
163
-        List<PrjAnnualbudget> prjAnnualbudgets = prjAnnualbudgetDao.listByRws(rwsId);
164
-        //第一年的年度预算不需要更新
165
-        if (!Collections.isEmpty(prjAnnualbudgets) && !prjAnnualbudgets.get(0).getId().equals(nysId)) {
166
-            PrjAnnualbudget annualbudget = prjAnnualbudgets.stream().filter(item -> item.getId().equals(nysId)).collect(Collectors.toList()).get(0);
167
-            //更新 系统计算已执行
168
-            prjAnnualbudgetDao.updateXTJSYZXByNysId(rwsId,annualbudget.getNf(),annualbudget.getId());
169
-            //更新 历史年度预算的实际已执行
170
-            prjAnnualbudgetDao.updateSJYZXByNysId(rwsId,annualbudget.getNf(),annualbudget.getId());
171
-            //更新已执行总计
172
-//            prjAnnualbudgetDao.updateSJYZXSumByNysId(rwsId,annualbudget.getNf(),annualbudget.getId());
165
+    public BaseResult updateSJYZXAndXTJSYZX(@PathVariable("rwsId") Integer rwsId, @PathVariable("nysId") Integer nysId) {
166
+        PrjAnnualbudget prjAnnualbudget = prjAnnualbudgetDao.queryById(nysId);
167
+        try {
168
+            if (ProjectTypeEnnum.ZFLXM.getCode().equals(prjAnnualbudget.getXmlx())) {
169
+                //政府项目
170
+                //更新费用名称
171
+                prjAnnualbudgetDao.updateZFXMFYMC(nysId, rwsId);
172
+            } else if (ProjectTypeEnnum.SXGSKJXM.getCode().equals(prjAnnualbudget.getXmlx())) {
173
+                //陕西公司科技项目
174
+                prjAnnualbudgetDao.updateSXGSKJXMFYMC(nysId, rwsId);
175
+            } else if (ProjectTypeEnnum.GWGSKJXM.getCode().equals(prjAnnualbudget.getXmlx())) {
176
+                //国网公司科技项目
177
+                prjAnnualbudgetDao.updateGWGSKJXMFYMC(nysId, rwsId);
178
+            }
179
+        } catch (Exception e) {
180
+            throw new CustomException("已执行数据同步失败");
173
         }
181
         }
182
+
174
         return BaseResult.success("已执行数据同步成功");
183
         return BaseResult.success("已执行数据同步成功");
175
     }
184
     }
176
 
185
 

+ 1 - 0
src/main/java/com/liang/vo/PrjAnnualbudgetYzxqkVo.java

@@ -18,4 +18,5 @@ public class PrjAnnualbudgetYzxqkVo {
18
     private String bzje;
18
     private String bzje;
19
     private String fymc;
19
     private String fymc;
20
     private String nf;
20
     private String nf;
21
+    private String xmlx;
21
 }
22
 }

+ 21 - 0
src/main/java/com/liang/vo/dto/Ndysbm.java

@@ -0,0 +1,21 @@
1
+package com.liang.vo.dto;
2
+
3
+import lombok.AllArgsConstructor;
4
+import lombok.Builder;
5
+import lombok.Data;
6
+import lombok.NoArgsConstructor;
7
+
8
+/**
9
+ * @author by lgl
10
+ * @date 2024/5/13.
11
+ */
12
+@Data
13
+@Builder
14
+@NoArgsConstructor
15
+@AllArgsConstructor
16
+public class Ndysbm {
17
+    private String mc;
18
+    private String bm;
19
+    private String xmlx;
20
+
21
+}

+ 14 - 0
src/main/resources/mapper/BaseProjectbudgetDao.xml

@@ -202,5 +202,19 @@
202
                  LEFT JOIN base_ProjectBudget AS b ON t.ID = b.XM
202
                  LEFT JOIN base_ProjectBudget AS b ON t.ID = b.XM
203
         where p.ID = #{xm}
203
         where p.ID = #{xm}
204
     </select>
204
     </select>
205
+    <select id="getNDYSBM" resultType="com.liang.vo.dto.Ndysbm">
206
+        SELECT bpb.mc,bpb.bm , bpt.XMLX
207
+        FROM
208
+            base_ProjectBudget bpb ,base_ProjectTemplate bpt
209
+        WHERE bpb.XM = bpt.ID
210
+          AND (bpb.MC = '总计'
211
+               OR bpb.MC = '(一)直接费'
212
+               OR bpb.MC = '1.人工费'
213
+               OR bpb.MC = '2.设备使用费'
214
+               OR bpb.MC = '3.业务费'
215
+               OR bpb.MC = '4.场地使用费'
216
+               OR bpb.MC = '(三)外委支出费')
217
+        order by xmlx
218
+    </select>
205
 </mapper>
219
 </mapper>
206
 
220
 

+ 98 - 0
src/main/resources/mapper/PrjAnnualbudgetDao.xml

@@ -529,6 +529,97 @@
529
         where
529
         where
530
             NYS = #{nysId}
530
             NYS = #{nysId}
531
     </update>
531
     </update>
532
+    <update id="updateZFXMFYMC">
533
+        update prj_AnnualBudgetDetail  set FYMC  = '(一)直接费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a15524497';
534
+        update prj_AnnualBudgetDetail  set FYMC  = '1、设备费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a155612437';
535
+        update prj_AnnualBudgetDetail  set FYMC  = '(1)购置设备费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a155639759';
536
+        update prj_AnnualBudgetDetail  set FYMC  = '(2)试制设备费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a155757605';
537
+        update prj_AnnualBudgetDetail  set FYMC  = '(3)设备改造与租赁费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a155830224';
538
+        update prj_AnnualBudgetDetail  set FYMC  = '2、材料费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a155903296';
539
+        update prj_AnnualBudgetDetail  set FYMC  = '3、测试实验加工费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a160001888';
540
+        update prj_AnnualBudgetDetail  set FYMC  = '4、燃料动力费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a160026901';
541
+        update prj_AnnualBudgetDetail  set FYMC  = '5、差旅费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a160047208';
542
+        update prj_AnnualBudgetDetail  set FYMC  = '6、会议费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a160100215';
543
+        update prj_AnnualBudgetDetail  set FYMC  = '7、国际合作与交流费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a160112278';
544
+        update prj_AnnualBudgetDetail  set FYMC  = '8、出版/文献/信息传播/知识产权事务费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a160131916';
545
+        update prj_AnnualBudgetDetail  set FYMC  = '9、劳务费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a160425416';
546
+        update prj_AnnualBudgetDetail  set FYMC  = '10、专家咨询费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a160458412';
547
+        update prj_AnnualBudgetDetail  set FYMC  = '11、其他支出' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a160517974';
548
+        update prj_AnnualBudgetDetail  set FYMC  = '(二)间接费用' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a160623545';
549
+        update prj_AnnualBudgetDetail  set FYMC  = '其中:绩效来源' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a160654304';
550
+        update prj_AnnualBudgetDetail  set FYMC  = '(三)外委支出费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100055750';
551
+        update prj_AnnualBudgetDetail  set FYMC  = '(1)外委支出费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a142751829';
552
+        update A
553
+        set  A.bm = B.bm, A.fj = B.fj
554
+            from prj_AnnualBudgetDetail A
555
+        inner join (
556
+         select bp.* from base_ProjectBudget bp ,prj_Project pp,base_ProjectTemplate bpt
557
+         where pp.xmlx = bpt.xmlx and bpt.id = bp.xm  and pp.id = #{rwsId}
558
+            ) B on A.FYMC = B.mc
559
+        where
560
+            NYS in ( SELECT id from prj_AnnualBudget where rws =  #{rwsId} );
561
+    </update>
562
+    <update id="updateSXGSKJXMFYMC">
563
+        UPDATE prj_AnnualBudgetDetail set bm = '7' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '6' and FYMC = '2.设备使用费' ;
564
+        UPDATE prj_AnnualBudgetDetail set bm = '8' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '7' and FYMC = '(1)仪器设备使用费' ;
565
+        UPDATE prj_AnnualBudgetDetail set bm = '9' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '8' and FYMC = '(2)软件使用费' ;
566
+        UPDATE prj_AnnualBudgetDetail set bm = '10' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '9' and FYMC = '3.业务费' ;
567
+        UPDATE prj_AnnualBudgetDetail set bm = '11' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '10' and FYMC = '(1)材料费' ;
568
+        UPDATE prj_AnnualBudgetDetail set bm = '12' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '11' and FYMC = '(2)资料、印刷及知识产权费' ;
569
+        UPDATE prj_AnnualBudgetDetail set bm = '13' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '12' and FYMC = '(3)会议、差旅及国际合作交流费' ;
570
+        UPDATE prj_AnnualBudgetDetail set bm = '14' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '17' and FYMC = '4.场地使用费' ;
571
+        UPDATE prj_AnnualBudgetDetail set bm = '15' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '18' and FYMC = '(1)场地物业费' ;
572
+        UPDATE prj_AnnualBudgetDetail set bm = '16' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '19' and FYMC = '(2)场地使用租金' ;
573
+        UPDATE prj_AnnualBudgetDetail set bm = '17' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '20' and FYMC = '5.专家咨询费' ;
574
+        UPDATE prj_AnnualBudgetDetail set bm = '18' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '21' and FYMC = '(二)间接费' ;
575
+        UPDATE prj_AnnualBudgetDetail set bm = '19' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '22' and FYMC = '(三)外委支出费' ;
576
+        UPDATE prj_AnnualBudgetDetail set bm = '20' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '23' and FYMC = '1.外委研究支出费' ;
577
+        UPDATE prj_AnnualBudgetDetail set bm = '21' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '24' and FYMC = '2.仪器设备租赁费' ;
578
+        UPDATE prj_AnnualBudgetDetail set bm = '22' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '25' and FYMC = '3.外协测试试验与加工费' ;
579
+        UPDATE prj_AnnualBudgetDetail set bm = '23' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = '26' and FYMC = '(四)税金' ;
580
+        update A
581
+        set  A.fymc = B.mc, A.fj = B.fj
582
+            from prj_AnnualBudgetDetail A
583
+        inner join (
584
+         select bp.* from base_ProjectBudget bp ,prj_Project pp,base_ProjectTemplate bpt
585
+         where pp.xmlx = bpt.xmlx and bpt.id = bp.xm  and pp.id = #{rwsId}
586
+            ) B on A.bm = B.bm
587
+        where
588
+            NYS in ( SELECT id from prj_AnnualBudget where rws =  #{rwsId} );
589
+    </update>
590
+    <update id="updateGWGSKJXMFYMC">
591
+        update prj_AnnualBudgetDetail  set FYMC  = '(一)直接费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100002972';
592
+        update prj_AnnualBudgetDetail  set FYMC  = '1.人工费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100100606';
593
+        update prj_AnnualBudgetDetail  set FYMC  = '(1)专职研究人员人工费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100252246';
594
+        update prj_AnnualBudgetDetail  set FYMC  = '(2)劳务外包人员人工费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a10025555';
595
+        update prj_AnnualBudgetDetail  set FYMC  = '(3)临时性研究人员人工费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a094823724';
596
+        update prj_AnnualBudgetDetail  set FYMC  = '2.设备使用费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100124784';
597
+        update prj_AnnualBudgetDetail  set FYMC  = '(1)仪器设备使用费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a10033260';
598
+        update prj_AnnualBudgetDetail  set FYMC  = '(2)软件使用费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100335414';
599
+        update prj_AnnualBudgetDetail  set FYMC  = '3.业务费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100142605';
600
+        update prj_AnnualBudgetDetail  set FYMC  = '(1)材料费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100402638';
601
+        update prj_AnnualBudgetDetail  set FYMC  = '(2)资料,印刷及知识产权费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100404901';
602
+        update prj_AnnualBudgetDetail  set FYMC  = '(3)会议,差旅及国际合作交流费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100406974';
603
+        update prj_AnnualBudgetDetail  set FYMC  = '4.场地使用费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100145230';
604
+        update prj_AnnualBudgetDetail  set FYMC  = '(1)场地物业费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100529887';
605
+        update prj_AnnualBudgetDetail  set FYMC  = '(2)场地使用租金' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a10053223';
606
+        update prj_AnnualBudgetDetail  set FYMC  = '5.专家咨询费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100237514';
607
+        update prj_AnnualBudgetDetail  set FYMC  = '(二)间接费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a10055632';
608
+        update prj_AnnualBudgetDetail  set FYMC  = '(三)外委支出费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100604109';
609
+        update prj_AnnualBudgetDetail  set FYMC  = '1.外委研究支出费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a10063271';
610
+        update prj_AnnualBudgetDetail  set FYMC  = '2.仪器设备租赁费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a1006345';
611
+        update prj_AnnualBudgetDetail  set FYMC  = '3.外协测试试验与加工费' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100635599';
612
+        update prj_AnnualBudgetDetail  set FYMC  = '(四)税金' where nys in (SELECT id from prj_AnnualBudget where rws = #{rwsId} ) and bm = 'a100606333';
613
+        update A
614
+        set  A.bm = B.bm, A.fj = B.fj
615
+            from prj_AnnualBudgetDetail A
616
+        inner join (
617
+         select bp.* from base_ProjectBudget bp ,prj_Project pp,base_ProjectTemplate bpt
618
+         where pp.xmlx = bpt.xmlx and bpt.id = bp.xm  and pp.id = #{rwsId}
619
+            ) B on A.FYMC = B.mc
620
+        where
621
+            NYS in ( SELECT id from prj_AnnualBudget where rws =  #{rwsId} );
622
+    </update>
532
 
623
 
533
     <!--已申请费用的预算-->
624
     <!--已申请费用的预算-->
534
     <select id="getFysqBudgetList">
625
     <select id="getFysqBudgetList">
@@ -575,5 +666,12 @@
575
         where RWS = #{rws}
666
         where RWS = #{rws}
576
           AND a.NF = #{nf}
667
           AND a.NF = #{nf}
577
     </select>
668
     </select>
669
+
670
+
671
+
672
+
673
+
674
+
675
+
578
 </mapper>
676
 </mapper>
579
 
677
 

+ 8 - 8
src/main/resources/mapper/PrjAnnualbudgetdetailDao.xml

@@ -14,8 +14,8 @@
14
         <result property="px" column="PX" jdbcType="VARCHAR"/>
14
         <result property="px" column="PX" jdbcType="VARCHAR"/>
15
         <result property="hjbm" column="HJBM" jdbcType="VARCHAR"/>
15
         <result property="hjbm" column="HJBM" jdbcType="VARCHAR"/>
16
         <result property="bz" column="BZ" jdbcType="VARCHAR"/>
16
         <result property="bz" column="BZ" jdbcType="VARCHAR"/>
17
-        <result property="bndsqje" column="bndbzje" jdbcType="NUMERIC"/>
18
-        <result property="bndsqje" column="bndbzje" jdbcType="NUMERIC"/>
17
+        <result property="bndsqje" column="bndsqje" jdbcType="NUMERIC"/>
18
+        <result property="bndbzje" column="bndbzje" jdbcType="NUMERIC"/>
19
         <result property="dw1" column="DW1" jdbcType="NUMERIC"/>
19
         <result property="dw1" column="DW1" jdbcType="NUMERIC"/>
20
         <result property="dw2" column="DW2" jdbcType="NUMERIC"/>
20
         <result property="dw2" column="DW2" jdbcType="NUMERIC"/>
21
         <result property="dw3" column="DW3" jdbcType="NUMERIC"/>
21
         <result property="dw3" column="DW3" jdbcType="NUMERIC"/>
@@ -625,11 +625,11 @@
625
         AND NYS=#{nys})
625
         AND NYS=#{nys})
626
     </select>
626
     </select>
627
     <select id="getYzxqk" resultType="com.liang.vo.PrjAnnualbudgetYzxqkVo">
627
     <select id="getYzxqk" resultType="com.liang.vo.PrjAnnualbudgetYzxqkVo">
628
-        SELECT convert(decimal(18,2),(sum(BZJE)/10000)) BZJE ,pa.fymc,sb.nf
629
-        from(SELECT	sb.id ,sb.fylb,pa.nf
630
-             from sta_BudgetApproval sb
631
-                 left join prj_AnnualBudget pa on pa.id = sb.nys
632
-             where	nys in (
628
+        SELECT convert(decimal(18,2),(sum(BZJE)/10000)) BZJE ,pa.fymc,sb.nf,sb.xmlx
629
+        from(SELECT	sb.id ,sb.fylb,pa.nf,pa.xmlx
630
+             from  prj_AnnualBudget pa
631
+                 left join sta_BudgetApproval sb on pa.id = sb.nys
632
+             where	pa.id in (
633
                  select	id
633
                  select	id
634
                  from prj_AnnualBudget
634
                  from prj_AnnualBudget
635
                  where rws = (select rws from prj_AnnualBudget where ID = #{nys})
635
                  where rws = (select rws from prj_AnnualBudget where ID = #{nys})
@@ -637,7 +637,7 @@
637
                  )) sb
637
                  )) sb
638
                 left join sta_Reimbursement sa on sa.fysq = sb.id
638
                 left join sta_Reimbursement sa on sa.fysq = sb.id
639
                 LEFT join prj_AnnualBudgetDetail pa on pa.id = sb.fylb
639
                 LEFT join prj_AnnualBudgetDetail pa on pa.id = sb.fylb
640
-        group by pa.fymc,sb.nf
640
+        group by pa.fymc,sb.nf,sb.xmlx
641
         order by sb.nf asc
641
         order by sb.nf asc
642
     </select>
642
     </select>
643
     <select id="getNf" resultType="com.liang.vo.PrjAnnualbudgetYzxqkVo">
643
     <select id="getNf" resultType="com.liang.vo.PrjAnnualbudgetYzxqkVo">

+ 16 - 1
src/main/resources/templates/annualbudget/view_annualbudget.html

@@ -315,7 +315,7 @@
315
         //父级预算
315
         //父级预算
316
         function setFjBudget(fj) {
316
         function setFjBudget(fj) {
317
             if (fj != null && fj != '') {
317
             if (fj != null && fj != '') {
318
-                var xmzys = 0, xmz = 0, byj = 0, xtjsyzx = 0, sjyzx = 0;
318
+                var xmzys = 0, xmz = 0, byj = 0, xtjsyzx = 0, sjyzx = 0, bndsqje = 0, bndbzje = 0;
319
                 //子节点的值相加
319
                 //子节点的值相加
320
                 for (var j = 0; j < dataBudget1.length; j++) {
320
                 for (var j = 0; j < dataBudget1.length; j++) {
321
                     if (fj == dataBudget1[j].fj) {
321
                     if (fj == dataBudget1[j].fj) {
@@ -331,6 +331,12 @@
331
                         var t4 = parseFloat(dataBudget1[j].sjyzx);
331
                         var t4 = parseFloat(dataBudget1[j].sjyzx);
332
                         if (!isNaN(t4))
332
                         if (!isNaN(t4))
333
                             sjyzx += t4;
333
                             sjyzx += t4;
334
+                        var t5 = parseFloat(dataBudget1[j].bndsqje);
335
+                        if (!isNaN(t5))
336
+                            bndsqje += t5;
337
+                        var t6 = parseFloat(dataBudget1[j].bndbzje);
338
+                        if (!isNaN(t6))
339
+                            bndbzje += t6;
334
                     }
340
                     }
335
                 }
341
                 }
336
                 //更新父节点的值
342
                 //更新父节点的值
@@ -355,6 +361,15 @@
355
                         else
361
                         else
356
                             dataBudget1[j].ysje = ysje.toFixed(2);
362
                             dataBudget1[j].ysje = ysje.toFixed(2);
357
 
363
 
364
+                        if (bndsqje == 0)
365
+                            dataBudget1[j].bndsqje = "";
366
+                        else
367
+                            dataBudget1[j].bndsqje = bndsqje.toFixed(2);
368
+
369
+                        if (bndbzje == 0)
370
+                            dataBudget1[j].bndbzje = "";
371
+                        else
372
+                            dataBudget1[j].bndbzje = bndbzje.toFixed(2);
358
                         setFjBudget(dataBudget1[j].fj);
373
                         setFjBudget(dataBudget1[j].fj);
359
                         break;
374
                         break;
360
                     }
375
                     }