Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

ly před 1 rokem
rodič
revize
2c5422cd89

+ 4 - 0
src/main/java/com/liang/controller/PrjAnnualbudgetController.java

@@ -14,6 +14,7 @@ import org.springframework.data.domain.Page;
14 14
 import org.springframework.data.domain.PageRequest;
15 15
 import org.springframework.http.ResponseEntity;
16 16
 import org.springframework.stereotype.Controller;
17
+import org.springframework.transaction.annotation.Transactional;
17 18
 import org.springframework.ui.Model;
18 19
 import org.springframework.web.bind.annotation.*;
19 20
 
@@ -425,6 +426,7 @@ public class PrjAnnualbudgetController extends BaseController {
425 426
      */
426 427
     @ResponseBody
427 428
     @RequestMapping(value = "/doAdd", method = RequestMethod.POST)
429
+    @Transactional(rollbackFor = Exception.class)
428 430
     public BaseResult doAdd(PrjAnnualbudget annualbudget) {
429 431
         annualbudget.setSpzt("未提交");
430 432
         int num = prjAnnualbudgetService.insert(annualbudget);
@@ -432,6 +434,8 @@ public class PrjAnnualbudgetController extends BaseController {
432 434
             //经费预算项插入
433 435
             prjAnnualbudgetdetailService.insertBatchByXm(annualbudget.getRws(), annualbudget.getId());
434 436
             prjProjectService.updatePrj_AnnualBudgetDetail(annualbudget.getRws());
437
+            //更新 系统计算执行 和 实际已执行
438
+            prjAnnualbudgetService.updateSJYZXAndXTJSYZX(annualbudget.getRws());
435 439
             return BaseResult.success("保存成功!", annualbudget);
436 440
         } else if (num == -1) {
437 441
             return BaseResult.failure("该项目 " + annualbudget.getNf() + " 年度预算已存在!");

+ 4 - 0
src/main/java/com/liang/controller/StaBudgetapprovalController.java

@@ -138,6 +138,7 @@ public class StaBudgetapprovalController extends BaseController {
138 138
                            @RequestParam(required = false, defaultValue = "", value = "dkyfzr") String dkyfzr,
139 139
                            @RequestParam(required = false, defaultValue = "", value = "nf") String nf,
140 140
                            @RequestParam(required = false, defaultValue = "", value = "sortName") String sortName,
141
+                           @RequestParam(required = false, defaultValue = "", value = "fylb") String fylb,
141 142
                            @RequestParam(required = false, defaultValue = "", value = "sortOrder") String sortOrder) {
142 143
         SysUserInfo userInfo = getSysUserInfo();
143 144
         List<String> postName = sysUserInfoService.getPostNameByUserId(userInfo.getUserId());
@@ -162,6 +163,7 @@ public class StaBudgetapprovalController extends BaseController {
162 163
         paraMap.put("ssbmmc", ssbmmc);
163 164
         paraMap.put("dkyfzr", dkyfzr);
164 165
         paraMap.put("nf", nf);
166
+        paraMap.put("fylb", fylb);
165 167
 
166 168
         if(!userInfo.getAccount().equals("admin")){
167 169
             if(!"过".equals(post)){
@@ -750,6 +752,7 @@ public class StaBudgetapprovalController extends BaseController {
750 752
                                     @RequestParam(required = false, defaultValue = "", value = "xmlx") String xmlx,
751 753
                                     @RequestParam(required = false, defaultValue = "", value = "sfbyj") String sfbyj,
752 754
                                     @RequestParam(required = false, defaultValue = "", value = "xmmc") String xmmc,
755
+                                    @RequestParam(required = false, defaultValue = "", value = "fylb") String fylb,
753 756
                                     @RequestParam(required = false, defaultValue = "", value = "ssbmmc") String ssbmmc,
754 757
                                     @RequestParam(required = false, defaultValue = "", value = "nf") String nf,
755 758
                                     @RequestParam(required = false, defaultValue = "", value = "spzt") String spzt,
@@ -777,6 +780,7 @@ public class StaBudgetapprovalController extends BaseController {
777 780
         paraMap.put("dkyfzr", dkyfzr);
778 781
         paraMap.put("sqsj1", sqsj1);
779 782
         paraMap.put("sqsj2", sqsj2);
783
+        paraMap.put("fylb", fylb);
780 784
 
781 785
         List<StaBudgetapproval> list = staBudgetapprovalService.getAllApplyList(paraMap);
782 786
 

+ 14 - 0
src/main/java/com/liang/controller/StaReimbursementController.java

@@ -6,6 +6,9 @@ import com.liang.common.JsonTool;
6 6
 import com.liang.common.base.BaseController;
7 7
 import com.liang.common.base.BaseResult;
8 8
 import com.liang.common.utils.ExcelPoiUtil;
9
+import com.liang.common.utils.StringUtils;
10
+import com.liang.dao.PrjAnnualbudgetDao;
11
+import com.liang.dao.StaReimbursementDao;
9 12
 import com.liang.entity.*;
10 13
 import com.liang.service.*;
11 14
 //import com.liang.vo.service.*;
@@ -22,6 +25,7 @@ import org.springframework.web.bind.annotation.*;
22 25
 
23 26
 import javax.annotation.Resource;
24 27
 import javax.servlet.http.HttpServletResponse;
28
+import java.math.BigDecimal;
25 29
 import java.util.*;
26 30
 
27 31
 /**
@@ -389,6 +393,11 @@ public class StaReimbursementController extends BaseController {
389 393
         return "reimburse/add_approve";
390 394
     }
391 395
 
396
+    @Resource
397
+    private PrjAnnualbudgetDao prjAnnualbudgetDao;
398
+    @Resource
399
+    private StaReimbursementDao staReimbursementDao;
400
+
392 401
     /**
393 402
      * 更新审批状态
394 403
      *
@@ -399,6 +408,11 @@ public class StaReimbursementController extends BaseController {
399 408
     public BaseResult updateSpzt(@RequestBody String strData) {
400 409
         StaReimbursement fybz = JsonTool.parseObject(strData, StaReimbursement.class);
401 410
         int num = staReimbursementService.updateSpzt(fybz);
411
+//        if (StringUtils.isNotBlank(fybz.getSpzt()) && "审批结束".equals(fybz.getSpzt())) {
412
+//            Integer rwsId = staReimbursementDao.getRwsIdByBzId(fybz.getId());
413
+////            BigDecimal nysSum = prjAnnualbudgetDao.getNYSSum(fybz.getId(), rwsId);
414
+//            prjAnnualbudgetDao.updateSJYZXByBZID(fybz.getId(),null);
415
+//        }
402 416
         if (num > 0) {
403 417
             return BaseResult.success("保存成功!");
404 418
         } else {

+ 14 - 1
src/main/java/com/liang/dao/PrjAnnualbudgetDao.java

@@ -1,9 +1,10 @@
1 1
 package com.liang.dao;
2 2
 
3 3
 import com.liang.entity.PrjAnnualbudget;
4
-import com.liang.entity.PrjProject;
5 4
 import org.apache.ibatis.annotations.Param;
6 5
 import org.springframework.data.domain.Pageable;
6
+
7
+import java.math.BigDecimal;
7 8
 import java.util.List;
8 9
 import java.util.Map;
9 10
 
@@ -127,5 +128,17 @@ public interface PrjAnnualbudgetDao {
127 128
      * @return 实例对象
128 129
      */
129 130
     int updateSpzt(PrjAnnualbudget annualbudget);
131
+
132
+    List<PrjAnnualbudget> listByRws(Integer rws);
133
+
134
+    void updateXTJSYZX(Integer rws);
135
+
136
+    void updateSJYZX(Integer rws);
137
+
138
+    void updateSJYZXByBZID(@Param("bzId") Integer bzId, @Param("nysSum") BigDecimal nysSum);
139
+
140
+    BigDecimal getNYSSum(@Param("id") Integer id, @Param("rwsId") Integer rwsId);
141
+
142
+    void updateSJYZXSum(Integer rws);
130 143
 }
131 144
 

+ 2 - 0
src/main/java/com/liang/dao/StaReimbursementDao.java

@@ -125,5 +125,7 @@ public interface StaReimbursementDao {
125 125
      * @return 影响行数
126 126
      */
127 127
     int updateBZJE(StaReimbursement staReimbursement);
128
+
129
+    Integer getRwsIdByBzId(Integer bzID);
128 130
 }
129 131
 

+ 2 - 0
src/main/java/com/liang/service/PrjAnnualbudgetService.java

@@ -104,4 +104,6 @@ public interface PrjAnnualbudgetService {
104 104
      * @return 实例对象
105 105
      */
106 106
     int updateSpzt(PrjAnnualbudget annualbudget);
107
+
108
+    void updateSJYZXAndXTJSYZX(Integer rws);
107 109
 }

+ 27 - 1
src/main/java/com/liang/service/impl/PrjAnnualbudgetServiceImpl.java

@@ -5,6 +5,9 @@ import com.liang.dao.PrjAnnualbudgetdetailDao;
5 5
 import com.liang.entity.PrjAnnualbudget;
6 6
 import com.liang.entity.PrjProject;
7 7
 import com.liang.service.PrjAnnualbudgetService;
8
+import com.liang.service.PrjProjectService;
9
+import io.jsonwebtoken.lang.Collections;
10
+import org.apache.commons.collections4.CollectionUtils;
8 11
 import org.springframework.stereotype.Service;
9 12
 import org.springframework.data.domain.Page;
10 13
 import org.springframework.data.domain.PageImpl;
@@ -52,7 +55,7 @@ public class PrjAnnualbudgetServiceImpl implements PrjAnnualbudgetService {
52 55
      * 分页查询
53 56
      *
54 57
      * @param prjAnnualbudget 筛选条件
55
-     * @param pageRequest      分页对象
58
+     * @param pageRequest     分页对象
56 59
      * @return 查询结果
57 60
      */
58 61
     @Override
@@ -71,6 +74,7 @@ public class PrjAnnualbudgetServiceImpl implements PrjAnnualbudgetService {
71 74
     public int insert(PrjAnnualbudget prjAnnualbudget) {
72 75
         return this.prjAnnualbudgetDao.insert(prjAnnualbudget);
73 76
     }
77
+
74 78
     /**
75 79
      * 撤销审批状态
76 80
      *
@@ -124,4 +128,26 @@ public class PrjAnnualbudgetServiceImpl implements PrjAnnualbudgetService {
124 128
     public int updateSpzt(PrjAnnualbudget annualbudget) {
125 129
         return this.prjAnnualbudgetDao.updateSpzt(annualbudget);
126 130
     }
131
+
132
+    @Resource
133
+    PrjProjectService prjProjectService;
134
+
135
+    /**
136
+     * 更新 系统计算执行 和 实际已执行
137
+     *
138
+     * @param rws
139
+     */
140
+    @Override
141
+    public void updateSJYZXAndXTJSYZX(Integer rws) {
142
+        List<PrjAnnualbudget> prjAnnualbudgets = prjAnnualbudgetDao.listByRws(rws);
143
+        //第一年的年度预算不需要更新
144
+        if (!Collections.isEmpty(prjAnnualbudgets)) {
145
+            //更新 系统计算已执行
146
+            prjAnnualbudgetDao.updateXTJSYZX(rws);
147
+            //更新 历史年度预算的实际已执行
148
+            prjAnnualbudgetDao.updateSJYZX(rws);
149
+            //更新已执行总计
150
+            prjAnnualbudgetDao.updateSJYZXSum(rws);
151
+        }
152
+    }
127 153
 }

+ 228 - 80
src/main/resources/mapper/PrjAnnualbudgetDao.xml

@@ -23,64 +23,56 @@
23 23
 
24 24
     <!--查询单个-->
25 25
     <select id="queryById" resultMap="PrjAnnualbudgetMap">
26
-        SELECT DISTINCT
27
-            a.*,
28
-            t.XMLXMC,
29
-            r.XM AS XMFZRXM,
30
-            d.dept_name AS SSBMMC,
31
-            u.name AS SQRXM,
32
-            bd.XMZYS,
33
-            p.DKYFZR,
34
-            bd.YSJE,
35
-            (
36
-                SELECT
37
-                    STUFF(
38
-                            (
39
-                                SELECT
40
-                                    ',' + XM
41
-                                FROM
42
-                                    (
43
-                                        SELECT
44
-                                            xm
45
-                                        FROM
46
-                                            base_Person
47
-                                        WHERE
48
-                                                id IN (
49
-                                                SELECT
50
-                                                    dkyfzrid
51
-                                                FROM
52
-                                                    (
53
-                                                        SELECT DISTINCT
54
-                                                            zwmc,
55
-                                                            SUBSTRING(dkyfzr, number, CHARINDEX(',', dkyfzr + ',', number) - number) AS dkyfzrid
56
-                                                        FROM
57
-                                                            prj_Project WITH (nolock),
58
-                                                master..spt_values WITH (nolock)
59
-                                                        WHERE
60
-                                                            number >= 1
61
-                                                          AND len(DKYFZR) > number
62
-                                                          AND SUBSTRING(',' + DKYFZR, number, 1) = ','
63
-                                                          AND ID = p.ID
64
-                                                    ) t
65
-                                            )
66
-                                    ) B FOR xml path('')
67
-                        ),
26
+        SELECT DISTINCT a.*,
27
+                        t.XMLXMC,
28
+                        r.XM        AS XMFZRXM,
29
+                        d.dept_name AS SSBMMC,
30
+                        u.name      AS SQRXM,
31
+                        bd.XMZYS,
32
+                        p.DKYFZR,
33
+                        bd.YSJE,
34
+                        (
35
+                            SELECT STUFF(
36
+                                           (
37
+                                               SELECT ',' + XM
38
+                                               FROM (
39
+                                                        SELECT xm
40
+                                                        FROM base_Person
41
+                                                        WHERE id IN (
42
+                                                            SELECT dkyfzrid
43
+                                                            FROM (
44
+                                                                     SELECT DISTINCT zwmc,
45
+                                                                                     SUBSTRING(dkyfzr, number,
46
+                                                                                               CHARINDEX(',', dkyfzr + ',', number) -
47
+                                                                                               number) AS dkyfzrid
48
+                                                                     FROM prj_Project WITH (nolock),
49
+                                                master..spt_values
50
+                                                                     WITH (nolock)
51
+                                                                     WHERE
52
+                                                                         number >= 1
53
+                                                                       AND len(DKYFZR)
54
+                                                                         > number
55
+                                                                       AND SUBSTRING (',' + DKYFZR
56
+                                                                         , number
57
+                                                                         , 1) = ','
58
+                                                                       AND ID = p.ID
59
+                                                                 ) t
60
+                                                        )
61
+                                                    ) B FOR xml path ('') ),
68 62
                 1,
69 63
                 1,
70 64
                 ''
71 65
             )
72
-            ) AS DKYFZRXM
73
-        FROM
74
-            prj_AnnualBudget a
75
-                LEFT JOIN base_ProjectType t ON t.XMLX = a.XMLX
76
-                LEFT JOIN base_Person r ON r.ID = a.XMFZR
77
-                LEFT JOIN sys_dept_info d ON d.dept_id = a.SSBM
78
-                LEFT JOIN sys_user_info u ON u.user_id = a.SQR
79
-                LEFT JOIN prj_Project p ON p.ID = a.RWS
80
-                LEFT JOIN prj_AnnualBudgetDetail bd ON bd.NYS = a.ID AND bd.FJ = ''
66
+                        )           AS DKYFZRXM
67
+        FROM prj_AnnualBudget a
68
+                 LEFT JOIN base_ProjectType t ON t.XMLX = a.XMLX
69
+                 LEFT JOIN base_Person r ON r.ID = a.XMFZR
70
+                 LEFT JOIN sys_dept_info d ON d.dept_id = a.SSBM
71
+                 LEFT JOIN sys_user_info u ON u.user_id = a.SQR
72
+                 LEFT JOIN prj_Project p ON p.ID = a.RWS
73
+                 LEFT JOIN prj_AnnualBudgetDetail bd ON bd.NYS = a.ID AND bd.FJ = ''
81 74
 --                 LEFT JOIN sta_BudgetApproval b ON b.erpbh = a.erpbh  -- 添加 sta_BudgetApproval 表的左关联条件
82
-        WHERE
83
-            a.ID = #{id}
75
+        WHERE a.ID = #{id}
84 76
 --           AND a.nf = b.nf;  -- 添加 where 条件,确保 a.nf 和 b.nf 匹配
85 77
 
86 78
     </select>
@@ -103,16 +95,18 @@
103 95
     <!--根据rwsID查询记录-->
104 96
     <select id="queryByRws" resultMap="PrjAnnualbudgetMap">
105 97
         select TOP 1 a.*, u.name as SQRXM
106
-        from prj_AnnualBudget a left join
98
+        from prj_AnnualBudget a
99
+                 left join
107 100
              sys_user_info u on u.user_id = a.SQR
108
-             INNER  JOIN sta_BudgetApproval s ON a.RWS = s.XMID
109
-        where RWS = #{rws} AND a.NF = s.NF
101
+                 INNER JOIN sta_BudgetApproval s ON a.RWS = s.XMID
102
+        where RWS = #{rws}
103
+          AND a.NF = s.NF
110 104
     </select>
111 105
 
112 106
     <!--查询指定行数据-->
113 107
     <select id="queryAllByLimit" resultMap="PrjAnnualbudgetMap">
114 108
         select
115
-          ID, RWS, NF, SQR, SQSJ, SPZT, KYFYXX, SM, RWSMC, MC, XMMC, ERPBH, XMLX, XMFZR, SSBM, XMZXQ
109
+        ID, RWS, NF, SQR, SQSJ, SPZT, KYFYXX, SM, RWSMC, MC, XMMC, ERPBH, XMLX, XMFZR, SSBM, XMZXQ
116 110
         from prj_AnnualBudget
117 111
         <where>
118 112
             <if test="id != null">
@@ -225,24 +219,73 @@
225 219
 
226 220
     <!--新增所有列-->
227 221
     <insert id="insert" keyProperty="id" useGeneratedKeys="true">
228
-        if not exists (select ID from prj_AnnualBudget where RWS = #{rws} and NF = #{nf})
229
-            insert into prj_AnnualBudget(RWS, NF, SQR, SQSJ, SPZT, KYFYXX, SM, RWSMC, MC, XMMC, ERPBH, XMLX, XMFZR, SSBM, XMZXQ)
230
-            values (#{rws}, #{nf}, #{sqr}, #{sqsj}, #{spzt}, #{kyfyxx}, #{sm}, #{rwsmc}, #{mc}, #{xmmc}, #{erpbh}, #{xmlx}, #{xmfzr}, #{ssbm}, #{xmzxq})
222
+        if
223
+        not exists (select ID from prj_AnnualBudget where RWS =
224
+        #{rws}
225
+        and
226
+        NF
227
+        =
228
+        #{nf}
229
+        )
230
+        insert
231
+        into
232
+        prj_AnnualBudget
233
+        (
234
+        RWS,
235
+        NF,
236
+        SQR,
237
+        SQSJ,
238
+        SPZT,
239
+        KYFYXX,
240
+        SM,
241
+        RWSMC,
242
+        MC,
243
+        XMMC,
244
+        ERPBH,
245
+        XMLX,
246
+        XMFZR,
247
+        SSBM,
248
+        XMZXQ
249
+        )
250
+        values
251
+        (
252
+        #{rws},
253
+        #{nf},
254
+        #{sqr},
255
+        #{sqsj},
256
+        #{spzt},
257
+        #{kyfyxx},
258
+        #{sm},
259
+        #{rwsmc},
260
+        #{mc},
261
+        #{xmmc},
262
+        #{erpbh},
263
+        #{xmlx},
264
+        #{xmfzr},
265
+        #{ssbm},
266
+        #{xmzxq}
267
+        )
231 268
     </insert>
232 269
 
233 270
     <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
234
-        insert into prj_AnnualBudget(RWS, NF, SQR, SQSJ, SPZT, KYFYXX, SM, RWSMC, MC, XMMC, ERPBH, XMLX, XMFZR, SSBM, XMZXQ)
271
+        insert into prj_AnnualBudget(RWS, NF, SQR, SQSJ, SPZT, KYFYXX, SM, RWSMC, MC, XMMC, ERPBH, XMLX, XMFZR, SSBM,
272
+        XMZXQ)
235 273
         values
236 274
         <foreach collection="entities" item="entity" separator=",">
237
-        (#{entity.rws}, #{entity.nf}, #{entity.sqr}, #{entity.sqsj}, #{entity.spzt}, #{entity.kyfyxx}, #{entity.sm}, #{entity.rwsmc}, #{entity.mc}, #{entity.xmmc}, #{entity.erpbh}, #{entity.xmlx}, #{entity.xmfzr}, #{entity.ssbm}, #{entity.xmzxq})
275
+            (#{entity.rws}, #{entity.nf}, #{entity.sqr}, #{entity.sqsj}, #{entity.spzt}, #{entity.kyfyxx}, #{entity.sm},
276
+            #{entity.rwsmc}, #{entity.mc}, #{entity.xmmc}, #{entity.erpbh}, #{entity.xmlx}, #{entity.xmfzr},
277
+            #{entity.ssbm}, #{entity.xmzxq})
238 278
         </foreach>
239 279
     </insert>
240 280
 
241 281
     <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
242
-        insert into prj_AnnualBudget(RWS, NF, SQR, SQSJ, SPZT, KYFYXX, SM, RWSMC, MC, XMMC, ERPBH, XMLX, XMFZR, SSBM, XMZXQ)
282
+        insert into prj_AnnualBudget(RWS, NF, SQR, SQSJ, SPZT, KYFYXX, SM, RWSMC, MC, XMMC, ERPBH, XMLX, XMFZR, SSBM,
283
+        XMZXQ)
243 284
         values
244 285
         <foreach collection="entities" item="entity" separator=",">
245
-            (#{entity.rws}, #{entity.nf}, #{entity.sqr}, #{entity.sqsj}, #{entity.spzt}, #{entity.kyfyxx}, #{entity.sm}, #{entity.rwsmc}, #{entity.mc}, #{entity.xmmc}, #{entity.erpbh}, #{entity.xmlx}, #{entity.xmfzr}, #{entity.ssbm}, #{entity.xmzxq})
286
+            (#{entity.rws}, #{entity.nf}, #{entity.sqr}, #{entity.sqsj}, #{entity.spzt}, #{entity.kyfyxx}, #{entity.sm},
287
+            #{entity.rwsmc}, #{entity.mc}, #{entity.xmmc}, #{entity.erpbh}, #{entity.xmlx}, #{entity.xmfzr},
288
+            #{entity.ssbm}, #{entity.xmzxq})
246 289
         </foreach>
247 290
         on duplicate key update
248 291
         RWS = values(RWS),
@@ -264,29 +307,42 @@
264 307
 
265 308
     <!--通过主键修改数据-->
266 309
     <update id="update">
267
-        if not exists (select ID from prj_AnnualBudget where ID != #{id} and RWS = #{rws} and NF = #{nf})
268
-            update prj_AnnualBudget
269
-            set NF = #{nf},
270
-                SQSJ = #{sqsj},
271
-                SM = #{sm},
272
-                XMZXQ = #{xmzxq}
273
-            where ID = #{id}
310
+        if
311
+        not exists (select ID from prj_AnnualBudget where ID !=
312
+        #{id}
313
+        and
314
+        RWS
315
+        =
316
+        #{rws}
317
+        and
318
+        NF
319
+        =
320
+        #{nf}
321
+        )
322
+        update prj_AnnualBudget
323
+        set NF    = #{nf},
324
+            SQSJ  = #{sqsj},
325
+            SM    = #{sm},
326
+            XMZXQ = #{xmzxq}
327
+        where ID = #{id}
274 328
     </update>
275 329
 
276 330
     <!--通过主键删除-->
277 331
     <delete id="deleteById">
278
-        delete from prj_AnnualBudget where ID = #{id}
332
+        delete
333
+        from prj_AnnualBudget
334
+        where ID = #{id}
279 335
     </delete>
280 336
 
281 337
     <!--获取年度预算列表-->
282 338
     <select id="getNdysList" resultMap="PrjAnnualbudgetMap" parameterType="map">
283 339
         select a.*, t.XMLXMC, r.XM as XMFZRXM, d.dept_name as SSBMMC, u.name as SQRXM, bd.XMZYS
284 340
         from prj_AnnualBudget a
285
-            left join base_ProjectType t on t.XMLX = a.XMLX
286
-            left join base_Person r on r.ID = a.XMFZR
287
-            left join sys_user_info u on u.user_id = a.SQR
288
-            left join sys_dept_info d on d.dept_id = a.SSBM
289
-            left join prj_AnnualBudgetDetail bd on bd.NYS = a.ID and bd.FJ = ''
341
+        left join base_ProjectType t on t.XMLX = a.XMLX
342
+        left join base_Person r on r.ID = a.XMFZR
343
+        left join sys_user_info u on u.user_id = a.SQR
344
+        left join sys_dept_info d on d.dept_id = a.SSBM
345
+        left join prj_AnnualBudgetDetail bd on bd.NYS = a.ID and bd.FJ = ''
290 346
         where 1 = 1
291 347
         <if test="userId != null and userId != ''">
292 348
             and (a.SQR = #{userId} or #{userId} in (select SHR from prj_ApproveRecord where XMID = a.ID))
@@ -344,7 +400,7 @@
344 400
     <delete id="batchDelete" parameterType="java.util.ArrayList">
345 401
         delete from prj_AnnualBudget
346 402
         where ID in
347
-        <foreach item="item" index="index" collection="idList" open = "(" separator = "," close = ")">
403
+        <foreach item="item" index="index" collection="idList" open="(" separator="," close=")">
348 404
             #{item}
349 405
         </foreach>
350 406
     </delete>
@@ -361,14 +417,106 @@
361 417
         set SPZT = #{spzt}
362 418
         where ID = #{id}
363 419
     </update>
420
+    <update id="updateXTJSYZX">
421
+        update A
422
+        set A.XTJSYZX = B.xtjsyzx from prj_AnnualBudgetDetail A
423
+        inner join (SELECT
424
+         fymc, sum(ysje) xtjsyzx
425
+         from  prj_AnnualBudgetDetail
426
+         where nys in  (SELECT ID from prj_AnnualBudget where RWS = #{rws})
427
+            group by fymc) B
428
+        on A.FYMC = B.fymc
429
+        where
430
+            NYS = ( SELECT top 1 ID from prj_AnnualBudget where RWS = #{rws} order by nf desc)
431
+    </update>
432
+    <update id="updateSJYZX">
433
+        update A
434
+        set A.sjyzx = B.BZJE from prj_AnnualBudgetDetail A
435
+        inner join (SELECT	sum(BZJE) BZJE ,pa.fymc
436
+	        from(SELECT	id ,fylb
437
+	  	from sta_BudgetApproval
438
+		where	nys in (
439
+			select	id
440
+			from prj_AnnualBudget
441
+			where rws = #{rws})) sb
442
+	left join sta_Reimbursement sa on sa.fysq = sb.id
443
+	LEFT join prj_AnnualBudgetDetail pa on pa.id = sb.fylb
444
+	group by pa.fymc ) B
445
+        on A.FYMC = B.fymc
446
+        where
447
+            NYS = (
448
+            SELECT top 1 ID from
449
+            prj_AnnualBudget
450
+            where RWS = #{rws} order by nf desc )
451
+    </update>
452
+    <update id="updateSJYZXByBZID">
453
+        update A
454
+        set A.sjyzx = (B.BZJE + isnull(A.sjyzx, 0) + isnull(#{nysSum}, 0)) from prj_AnnualBudgetDetail A
455
+        inner join (
456
+        select pa.fymc , sr.bzje, pa.id  from sta_Reimbursement sr
457
+        left join  sta_BudgetApproval sb  on sb.id = sr.FYSQ
458
+        left join prj_AnnualBudgetDetail pa on pa.id = sb.fylb
459
+        where sr.id = #{bzId}
460
+            ) B
461
+        on A.FYMC = B.fymc
462
+        where
463
+            a.id=b.id
464
+    </update>
465
+    <update id="updateSJYZXSum">
466
+        update A
467
+        set A.sjyzx = B.BZJE from prj_AnnualBudgetDetail A
468
+        inner join (SELECT	sum(BZJE) BZJE ,pa.fymc
469
+	        from(SELECT	id ,fylb
470
+	  	from sta_BudgetApproval
471
+		where	nys in (
472
+			select	id
473
+			from prj_AnnualBudget
474
+			where rws = #{rws})) sb
475
+            left join sta_Reimbursement sa on sa.fysq = sb.id
476
+            LEFT join prj_AnnualBudgetDetail pa on pa.id = sb.fylb
477
+            group by pa.fymc ) B
478
+        on A.FYMC = B.fymc
479
+        where
480
+            NYS = (
481
+            SELECT top 1 ID from
482
+            prj_AnnualBudget
483
+            where RWS = #{rws} order by nf desc )
484
+    </update>
364 485
 
365 486
     <!--已申请费用的预算-->
366 487
     <select id="getFysqBudgetList">
367 488
         select b.*
368 489
         from sta_BudgetApproval b
369
-        left join prj_AnnualBudget a on a.ID = b.NYS
370
-        left join prj_AnnualBudgetDetail d on d.NYS = a.ID
490
+                 left join prj_AnnualBudget a on a.ID = b.NYS
491
+                 left join prj_AnnualBudgetDetail d on d.NYS = a.ID
371 492
         where 1 = 1
372 493
     </select>
494
+    <select id="listByRws" resultType="com.liang.entity.PrjAnnualbudget">
495
+        select *
496
+        from prj_AnnualBudget
497
+        where rws = #{rws}
498
+    </select>
499
+    <select id="getNYSSum" resultType="java.math.BigDecimal">
500
+        SELECT sum(pan.sjyzx) sjyzx
501
+        FROM (
502
+                 select sb.nys,
503
+                        pab.fymc
504
+                 from sta_Reimbursement sr
505
+                          left join sta_BudgetApproval sb on sb.id = sr.FYSQ
506
+                          left join prj_AnnualBudgetDetail pab on pab.id = sb.fylb
507
+                 where sr.id = #{id}
508
+             ) b
509
+                 left join prj_AnnualBudgetDetail pan on b.fymc = pan.fymc
510
+
511
+        where pan.nys in (
512
+            SELECT id
513
+            from prj_AnnualBudget pann
514
+            where rws = #{rwsId}
515
+              AND pann.id &lt; (select sb.nys
516
+                                from sta_Reimbursement sr
517
+                                         left join sta_BudgetApproval sb on sb.id = sr.FYSQ
518
+                                where sr.id = #{id})
519
+        )
520
+    </select>
373 521
 </mapper>
374 522
 

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

@@ -454,7 +454,7 @@
454 454
         update prj_AnnualBudgetDetail
455 455
         set RWSYS = #{WWYJZCF},
456 456
             XMZYS = #{WWYJZCF}
457
-        where NYS = (SELECT ID from prj_AnnualBudget where RWS = #{id})
457
+        where NYS in (SELECT ID from prj_AnnualBudget where RWS = #{id} and spzt != '审批结束' )
458 458
           and FYMC = '1.外委研究支出费'
459 459
 
460 460
     </update>
@@ -462,13 +462,13 @@
462 462
         update prj_AnnualBudgetDetail
463 463
         set XMZYS = #{rwsys},
464 464
             rwsys = #{rwsys}
465
-        where NYS = (SELECT ID from prj_AnnualBudget where RWS = #{id})
465
+        where NYS in (SELECT ID from prj_AnnualBudget where RWS = #{id} and spzt != '审批结束' )
466 466
           and FYMC = '总计'
467 467
     </update>
468 468
     <update id="updateNDYS">
469 469
         update prj_AnnualBudgetDetail
470 470
         set YSJE = null
471
-        where NYS = (SELECT ID from prj_AnnualBudget where RWS = #{id})
471
+        where NYS in (SELECT ID from prj_AnnualBudget where RWS = #{id} and spzt != '审批结束' )
472 472
           and FYMC != '1.外委研究支出费' and FYMC != '总计'
473 473
 
474 474
     </update>
@@ -476,9 +476,9 @@
476 476
         update prj_AnnualBudgetDetail
477 477
         set XMZYS = (SELECT sum(RWSYS)
478 478
                      from prj_AnnualBudgetDetail
479
-                     where NYS = (SELECT ID from prj_AnnualBudget where RWS = #{id})
479
+                     where NYS = (SELECT ID from prj_AnnualBudget where RWS = #{id} and spzt != '审批结束' )
480 480
                        and (FYMC = '1.外委研究支出费' or FYMC = '2.仪器设备租赁费' or FYMC = '3.外协测试试验与加工费'))
481
-        where NYS = (SELECT ID from prj_AnnualBudget where RWS = #{id})
481
+        where NYS = (SELECT ID from prj_AnnualBudget where RWS = #{id} and spzt != '审批结束' )
482 482
           and FYMC = '(三)外委支出费'
483 483
     </update>
484 484
 

+ 82 - 43
src/main/resources/mapper/StaBudgetapprovalDao.xml

@@ -47,7 +47,8 @@
47 47
     <select id="queryByBH" resultMap="StaBudgetapprovalMap">
48 48
         select *
49 49
         from sta_BudgetApproval
50
-        where BH like #{bh}+'%' order by ID desc
50
+        where BH like #{bh} + '%'
51
+        order by ID desc
51 52
     </select>
52 53
 
53 54
     <!--查询指定行数据-->
@@ -255,30 +256,42 @@
255 256
 
256 257
     <!--新增-->
257 258
     <insert id="insert" keyProperty="id" useGeneratedKeys="true">
258
-        insert into sta_BudgetApproval(SQMC, XMMC, XMID, BH, NF, FYLB, SQJE, SQSM, FJ, SQRXM, SQR, SQSJ, ERPBH, KYBG, XMLX, XMFZR, SSBM, SFBYJ, SFBZ, SPZT, NYS, BZ)
259
-        values (#{sqmc}, #{xmmc}, #{xmid}, #{bh}, #{nf}, #{fylb}, #{sqje}, #{sqsm}, #{fj}, #{sqrxm}, #{sqr}, GETDATE(), #{erpbh}, #{kybg}, #{xmlx}, #{xmfzr}, #{ssbm}, 0, 0, '未提交', #{nys}, #{bz})
259
+        insert into sta_BudgetApproval(SQMC, XMMC, XMID, BH, NF, FYLB, SQJE, SQSM, FJ, SQRXM, SQR, SQSJ, ERPBH, KYBG,
260
+                                       XMLX, XMFZR, SSBM, SFBYJ, SFBZ, SPZT, NYS, BZ)
261
+        values (#{sqmc}, #{xmmc}, #{xmid}, #{bh}, #{nf}, #{fylb}, #{sqje}, #{sqsm}, #{fj}, #{sqrxm}, #{sqr}, GETDATE(),
262
+                #{erpbh}, #{kybg}, #{xmlx}, #{xmfzr}, #{ssbm}, 0, 0, '未提交', #{nys}, #{bz})
260 263
     </insert>
261 264
     <insert id="insertImprest" keyProperty="id" useGeneratedKeys="true">
262
-        insert into sta_BudgetApproval(SQMC, BH,SQSM , NF, SQJE, SQRXM, SQR, SQSJ, SFBYJ, SFBZ, SPZT)
263
-        values (#{sqmc}, #{bh}, #{sqsm},#{nf}, #{sqje}, #{sqrxm}, #{sqr}, #{sqsj}, 1, 0, '未提交')
265
+        insert into sta_BudgetApproval(SQMC, BH, SQSM, NF, SQJE, SQRXM, SQR, SQSJ, SFBYJ, SFBZ, SPZT)
266
+        values (#{sqmc}, #{bh}, #{sqsm}, #{nf}, #{sqje}, #{sqrxm}, #{sqr}, #{sqsj}, 1, 0, '未提交')
264 267
     </insert>
265 268
 
266 269
     <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
267
-        insert into sta_BudgetApproval(XMMC, XMID, BH, SQSM, SQJE, FYLB, BBM, FJ, SHZT, NF, SQR, SQRXM, SQSJ, SQMC, SPZT, KYFYXX, BZJE, BXPZ, BZJE2, SFBYJ, KYBG, ERPBH, XMLX, XMFZR, SSBM, SFBZ, SMWJ, BHSJE, SF, NYS, BZ)
270
+        insert into sta_BudgetApproval(XMMC, XMID, BH, SQSM, SQJE, FYLB, BBM, FJ, SHZT, NF, SQR, SQRXM, SQSJ, SQMC,
271
+        SPZT, KYFYXX, BZJE, BXPZ, BZJE2, SFBYJ, KYBG, ERPBH, XMLX, XMFZR, SSBM, SFBZ, SMWJ, BHSJE, SF, NYS, BZ)
268 272
         values
269 273
         <foreach collection="entities" item="entity" separator=",">
270
-            (#{entity.xmmc}, #{entity.xmid}, #{entity.bh}, #{entity.sqsm}, #{entity.sqje}, #{entity.fylb}, #{entity.bbm}, #{entity.fj}, #{entity.shzt}, #{entity.nf}, #{entity.sqrxm}, #{entity.sqr}, #{entity.sqsj}, #{entity.sqmc},
271
-            #{entity.spzt}, #{entity.kyfyxx}, #{entity.bzje}, #{entity.bxpz}, #{entity.bzje2}, #{entity.sfbyj}, #{entity.kybg}, #{entity.erpbh}, #{entity.xmlx}, #{entity.xmfzr}, #{entity.ssbm}, #{entity.sfbz}, #{entity.smwj},
274
+            (#{entity.xmmc}, #{entity.xmid}, #{entity.bh}, #{entity.sqsm}, #{entity.sqje}, #{entity.fylb},
275
+            #{entity.bbm}, #{entity.fj}, #{entity.shzt}, #{entity.nf}, #{entity.sqrxm}, #{entity.sqr}, #{entity.sqsj},
276
+            #{entity.sqmc},
277
+            #{entity.spzt}, #{entity.kyfyxx}, #{entity.bzje}, #{entity.bxpz}, #{entity.bzje2}, #{entity.sfbyj},
278
+            #{entity.kybg}, #{entity.erpbh}, #{entity.xmlx}, #{entity.xmfzr}, #{entity.ssbm}, #{entity.sfbz},
279
+            #{entity.smwj},
272 280
             #{entity.bhsje}, #{entity.sf}, #{entity.nys}, #{entity.bz})
273 281
         </foreach>
274 282
     </insert>
275 283
 
276 284
     <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
277
-        insert into sta_BudgetApproval(XMMC, XMID, BH, SQSM, SQJE, FYLB, BBM, FJ, SHZT, NF, SQR, SQRXM, SQSJ, SQMC, SPZT, KYFYXX, BZJE, BXPZ, BZJE2, SFBYJ, KYBG, ERPBH, XMLX, XMFZR, SSBM, SFBZ, SMWJ, BHSJE, SF, NYS, BZ)
285
+        insert into sta_BudgetApproval(XMMC, XMID, BH, SQSM, SQJE, FYLB, BBM, FJ, SHZT, NF, SQR, SQRXM, SQSJ, SQMC,
286
+        SPZT, KYFYXX, BZJE, BXPZ, BZJE2, SFBYJ, KYBG, ERPBH, XMLX, XMFZR, SSBM, SFBZ, SMWJ, BHSJE, SF, NYS, BZ)
278 287
         values
279 288
         <foreach collection="entities" item="entity" separator=",">
280
-            (#{entity.xmmc}, #{entity.xmid}, #{entity.bh}, #{entity.sqsm}, #{entity.sqje}, #{entity.fylb}, #{entity.bbm}, #{entity.fj}, #{entity.shzt}, #{entity.nf}, #{entity.sqrxm}, #{entity.sqr}, #{entity.sqsj}, #{entity.sqmc},
281
-            #{entity.spzt}, #{entity.kyfyxx}, #{entity.bzje}, #{entity.bxpz}, #{entity.bzje2}, #{entity.sfbyj}, #{entity.kybg}, #{entity.erpbh}, #{entity.xmlx}, #{entity.xmfzr}, #{entity.ssbm}, #{entity.sfbz}, #{entity.smwj},
289
+            (#{entity.xmmc}, #{entity.xmid}, #{entity.bh}, #{entity.sqsm}, #{entity.sqje}, #{entity.fylb},
290
+            #{entity.bbm}, #{entity.fj}, #{entity.shzt}, #{entity.nf}, #{entity.sqrxm}, #{entity.sqr}, #{entity.sqsj},
291
+            #{entity.sqmc},
292
+            #{entity.spzt}, #{entity.kyfyxx}, #{entity.bzje}, #{entity.bxpz}, #{entity.bzje2}, #{entity.sfbyj},
293
+            #{entity.kybg}, #{entity.erpbh}, #{entity.xmlx}, #{entity.xmfzr}, #{entity.ssbm}, #{entity.sfbz},
294
+            #{entity.smwj},
282 295
             #{entity.bhsje}, #{entity.sf}, ##{entity.nys}, #{entity.bz})
283 296
         </foreach>
284 297
         on duplicate key update
@@ -318,13 +331,13 @@
318 331
     <update id="update">
319 332
         update sta_BudgetApproval
320 333
         set SQJE = #{sqje},
321
-            FJ = #{fj},
322
-            BZ = #{bz},
334
+            FJ   = #{fj},
335
+            BZ   = #{bz},
323 336
             SQMC = #{sqmc},
324 337
             SQSM = #{sqsm}
325 338
         where ID = #{id}
326 339
     </update>
327
-<!--    修改方法-->
340
+    <!--    修改方法-->
328 341
     <!--通过主键修改基础数据-->
329 342
     <update id="updateImprest">
330 343
         update sta_BudgetApproval
@@ -334,35 +347,37 @@
334 347
             SQSM = #{sqsm}
335 348
         where ID = #{id}
336 349
     </update>
337
-<!--    修改方法-->
350
+    <!--    修改方法-->
338 351
     <!--备用金关联项目-->
339 352
     <update id="ImprestConnect">
340 353
         update sta_BudgetApproval
341
-        set XMMC = #{xmmc},
342
-            XMID = #{xmid},
343
-            FYLB = #{fylb},
344
-            FJ = #{fj},
354
+        set XMMC  = #{xmmc},
355
+            XMID  = #{xmid},
356
+            FYLB  = #{fylb},
357
+            FJ    = #{fj},
345 358
             ERPBH = #{erpbh},
346
-            XMLX = #{xmlx},
359
+            XMLX  = #{xmlx},
347 360
             XMFZR = #{xmfzr},
348
-            SSBM = #{ssbm},
349
-            NYS = #{nys},
350
-            BZ = #{bz}
361
+            SSBM  = #{ssbm},
362
+            NYS   = #{nys},
363
+            BZ    = #{bz}
351 364
         where ID = #{id}
352 365
     </update>
353 366
     <!--通过主键修改其它数据-->
354 367
     <update id="updateOthers">
355 368
         update sta_BudgetApproval
356 369
         set ERPBH = #{erpbh},
357
-            XMLX = #{xmlx},
370
+            XMLX  = #{xmlx},
358 371
             XMFZR = #{xmfzr},
359
-            SSBM = #{ssbm}
372
+            SSBM  = #{ssbm}
360 373
         where ID = #{id}
361 374
     </update>
362 375
 
363 376
     <!--通过主键删除-->
364 377
     <delete id="deleteById">
365
-        delete from sta_BudgetApproval where ID = #{id}
378
+        delete
379
+        from sta_BudgetApproval
380
+        where ID = #{id}
366 381
     </delete>
367 382
 
368 383
     <!--获取费用申请列表-->
@@ -372,7 +387,7 @@
372 387
         where id in (select dkyfzrid from
373 388
         (select DISTINCT zwmc,SUBSTRING(dkyfzr, number,CHARINDEX(',',dkyfzr+',',number)-number) as dkyfzrid
374 389
         from prj_Project WITH(nolock) ,master..spt_values with(nolock) where number >= 1 and len(DKYFZR) > number
375
-        and SUBSTRING(','+DKYFZR,number,1)=',' and  ID = b.XMID) t)) B  for xml path('')),1,1,'')) as DKYFZRXM
390
+        and SUBSTRING(','+DKYFZR,number,1)=',' and ID = b.XMID) t)) B for xml path('')),1,1,'')) as DKYFZRXM
376 391
         from sta_BudgetApproval b
377 392
         left join base_ProjectType t on t.XMLX = b.XMLX
378 393
         left join prj_Project p on p.ID = b.XMID
@@ -380,13 +395,16 @@
380 395
         left join prj_AnnualBudgetDetail g on g.ID = b.FYLB
381 396
         left join base_Person r on r.ID = b.XMFZR
382 397
         where b.SFBYJ = 0
383
-        --           and b.SPZT != '审批结束'
398
+        -- and b.SPZT != '审批结束'
384 399
         <if test="userId != null and userId != ''">
385 400
             and (b.SQR = #{userId} or #{userId} in (select SHR from prj_ApproveRecord where XMID = b.ID))
386 401
         </if>
387 402
         <if test="sqmc != null and sqmc != ''">
388 403
             and b.SQMC like '%'+#{sqmc}+'%'
389 404
         </if>
405
+        <if test="fylb != null and fylb != ''">
406
+            and g.FYMC like '%'+#{fylb}+'%'
407
+        </if>
390 408
         <if test="spzt != null and spzt != ''">
391 409
             and b.SPZT = #{spzt}
392 410
         </if>
@@ -493,7 +511,7 @@
493 511
         where id in (select dkyfzrid from
494 512
         (select DISTINCT zwmc,SUBSTRING(dkyfzr, number,CHARINDEX(',',dkyfzr+',',number)-number) as dkyfzrid
495 513
         from prj_Project WITH(nolock) ,master..spt_values with(nolock) where number >= 1 and len(DKYFZR) > number
496
-        and SUBSTRING(','+DKYFZR,number,1)=',' and  ID = b.XMID) t)) B  for xml path('')),1,1,'')) as DKYFZRXM
514
+        and SUBSTRING(','+DKYFZR,number,1)=',' and ID = b.XMID) t)) B for xml path('')),1,1,'')) as DKYFZRXM
497 515
         from sta_BudgetApproval b
498 516
         left join base_ProjectType t on t.XMLX = b.XMLX
499 517
         left join prj_Project p on p.ID = b.XMID
@@ -555,7 +573,7 @@
555 573
         where id in (select dkyfzrid from
556 574
         (select DISTINCT zwmc,SUBSTRING(dkyfzr, number,CHARINDEX(',',dkyfzr+',',number)-number) as dkyfzrid
557 575
         from prj_Project WITH(nolock) ,master..spt_values with(nolock) where number >= 1 and len(DKYFZR) > number
558
-        and SUBSTRING(','+DKYFZR,number,1)=',' and  ID = b.XMID) t)) B  for xml path('')),1,1,'')) as DKYFZRXM
576
+        and SUBSTRING(','+DKYFZR,number,1)=',' and ID = b.XMID) t)) B for xml path('')),1,1,'')) as DKYFZRXM
559 577
         from sta_BudgetApproval b
560 578
         left join base_ProjectType t on t.XMLX = b.XMLX
561 579
         left join prj_Project p on p.ID = b.XMID
@@ -578,6 +596,9 @@
578 596
         <if test="xmmc != null and xmmc != ''">
579 597
             and b.XMMC like '%'+#{xmmc}+'%'
580 598
         </if>
599
+        <if test="fylb != null and fylb != ''">
600
+            and g.FYMC like '%'+#{fylb}+'%'
601
+        </if>
581 602
         <if test="ssbmmc != null and ssbmmc != ''">
582 603
             and d.dept_name like '%'+#{ssbm}+'%'
583 604
         </if>
@@ -618,7 +639,7 @@
618 639
         WHEN b.SPZT = '作废' THEN 999
619 640
         END
620 641
         ASC,
621
-            b.SQSJ DESC
642
+        b.SQSJ DESC
622 643
     </select>
623 644
 
624 645
 
@@ -630,7 +651,7 @@
630 651
         where id in (select dkyfzrid from
631 652
         (select DISTINCT zwmc,SUBSTRING(dkyfzr, number,CHARINDEX(',',dkyfzr+',',number)-number) as dkyfzrid
632 653
         from prj_Project WITH(nolock) ,master..spt_values with(nolock) where number >= 1 and len(DKYFZR) > number
633
-        and SUBSTRING(','+DKYFZR,number,1)=',' and  ID = b.XMID) t)) B  for xml path('')),1,1,'')) as DKYFZRXM
654
+        and SUBSTRING(','+DKYFZR,number,1)=',' and ID = b.XMID) t)) B for xml path('')),1,1,'')) as DKYFZRXM
634 655
         from sta_BudgetApproval b
635 656
         left join base_ProjectType t on t.XMLX = b.XMLX
636 657
         left join prj_Project p on p.ID = b.XMID
@@ -684,7 +705,7 @@
684 705
     <delete id="batchDelete" parameterType="java.util.ArrayList">
685 706
         delete from sta_BudgetApproval
686 707
         where ID in
687
-        <foreach item="item" index="index" collection="idList" open = "(" separator = "," close = ")">
708
+        <foreach item="item" index="index" collection="idList" open="(" separator="," close=")">
688 709
             #{item}
689 710
         </foreach>
690 711
     </delete>
@@ -698,20 +719,38 @@
698 719
     <!--通过主键修改审批状态-->
699 720
     <update id="updateSpzt">
700 721
         update sta_BudgetApproval
701
-        set SPZT = #{spzt}, BH=#{bh}
722
+        set SPZT = #{spzt},
723
+            BH=#{bh}
702 724
         where ID = #{id}
703 725
     </update>
704 726
 
705 727
     <!--获取费用申请信息-->
706
-                 <select id="getFysqById" resultMap="StaBudgetapprovalMap">
707
-        select b.*, t.XMLXMC, d.dept_name as SSBMMC, g.FYMC as FYLBMC, r.XM as XMFZRXM,
708
-               (select MC from base_ProjectBudget g1 where g1.BM = g.FJ) as FJMC,
709
-               case when b.SFBYJ = 1 then '是' else '否' end as SFBYJMC, case when b.SFBZ = 1 then '是' else '否' end as SFBZMC,
710
-               (SELECT STUFF((SELECT ','+XM from (select xm from base_Person
711
-                                                  where id in (select dkyfzrid from
712
-                                                      (select DISTINCT zwmc,SUBSTRING(dkyfzr, number,CHARINDEX(',',dkyfzr+',',number)-number) as dkyfzrid
713
-                                                       from prj_Project WITH(nolock) ,master..spt_values with(nolock) where number >= 1 and len(DKYFZR) > number
714
-                                                                                                                        and SUBSTRING(','+DKYFZR,number,1)=',' and  ID = b.XMID) t)) B  for xml path('')),1,1,'')) as DKYFZRXM
728
+    <select id="getFysqById" resultMap="StaBudgetapprovalMap">
729
+        select b.*,
730
+               t.XMLXMC,
731
+               d.dept_name                                                                                  as SSBMMC,
732
+               g.FYMC                                                                                       as FYLBMC,
733
+               r.XM                                                                                         as XMFZRXM,
734
+               (select MC from base_ProjectBudget g1 where g1.BM = g.FJ)                                    as FJMC,
735
+               case when b.SFBYJ = 1 then '是' else '否' end                                                  as SFBYJMC,
736
+               case when b.SFBZ = 1 then '是' else '否' end                                                   as SFBZMC,
737
+               (SELECT STUFF((SELECT ',' + XM
738
+                              from (select xm
739
+                                    from base_Person
740
+                                    where id in (select dkyfzrid
741
+                                                 from (select DISTINCT zwmc,
742
+                                                                       SUBSTRING(dkyfzr, number,
743
+                                                                                 CHARINDEX(',', dkyfzr + ',', number) -
744
+                                                                                 number) as dkyfzrid
745
+                                                       from prj_Project WITH(nolock) ,master..spt_values
746
+                                                       with (nolock)
747
+                                                       where number >= 1
748
+                                                         and len(DKYFZR)
749
+                                                           > number
750
+                                                         and SUBSTRING (','+DKYFZR
751
+                                                           , number
752
+                                                           , 1)=','
753
+                                                         and ID = b.XMID) t)) B for xml path ('')),1,1,'')) as DKYFZRXM
715 754
         from sta_BudgetApproval b
716 755
                  left join base_ProjectType t on t.XMLX = b.XMLX
717 756
                  left join prj_Project p on p.ID = b.XMID

+ 8 - 2
src/main/resources/mapper/StaReimbursementDao.xml

@@ -14,7 +14,7 @@
14 14
         <result property="cjsj" column="CJSJ" jdbcType="TIMESTAMP"/>
15 15
         <result property="mc" column="MC" jdbcType="VARCHAR"/>
16 16
         <result property="spzt" column="SPZT" jdbcType="VARCHAR"/>
17
-        <result property="sfbyj" column="SFBYJ" jdbcType="VARCHAR" />
17
+        <result property="sfbyj" column="SFBYJ" jdbcType="VARCHAR"/>
18 18
     </resultMap>
19 19
 
20 20
     <!--id查询单个-->
@@ -153,7 +153,7 @@
153 153
     <!--通过主键修改数据-->
154 154
     <update id="update">
155 155
         update sta_Reimbursement
156
-        set MC = #{mc},
156
+        set MC    = #{mc},
157 157
             BXPZ  = #{bxpz},
158 158
             BZJE  = #{bzje},
159 159
             SL    = #{sl},
@@ -215,6 +215,12 @@
215 215
         ASC,
216 216
         CJSJ DESC
217 217
     </select>
218
+    <select id="getRwsIdByBzId" resultType="java.lang.Integer">
219
+        SELECT sb.XMID
220
+        from sta_Reimbursement sr
221
+                 left join sta_BudgetApproval sb on sb.id = sr.fysq
222
+        where sr.id = #{bzID}
223
+    </select>
218 224
 
219 225
     <!--批量删除报账-->
220 226
     <delete id="batchDelete" parameterType="java.util.ArrayList">

+ 1 - 0
src/main/resources/templates/annualbudget/update_annualbudget.html

@@ -362,6 +362,7 @@
362 362
             var value = obj.value,
363 363
                 item = obj.data,
364 364
                 colName = obj.field;
365
+            console.log(obj);
365 366
             if(item.children == undefined)
366 367
             {
367 368
                 //当前行预算

+ 118 - 25
src/main/resources/templates/annualbudget/view_annualbudget.html

@@ -28,44 +28,53 @@
28 28
                         <div class="layui-form-item layui-inline" style="width: 100%">
29 29
                             <label class="layui-form-label" style="width: 70px">名称</label>
30 30
                             <div class="layui-input-inline" style="width: 855px">
31
-                                <input type="hidden" id="id" name="id" class="layui-input" th:value="${annualbudget.id}">
32
-                                <input type="text" id="mc" name="mc" class="layui-input" th:value="${annualbudget.mc}" readonly>
31
+                                <input type="hidden" id="id" name="id" class="layui-input"
32
+                                       th:value="${annualbudget.id}">
33
+                                <input type="text" id="mc" name="mc" class="layui-input" th:value="${annualbudget.mc}"
34
+                                       readonly>
33 35
                             </div>
34 36
                         </div>
35 37
                         <div class="layui-form-item layui-inline" style="width: 100%">
36 38
                             <label class="layui-form-label" style="width: 70px">任务书</label>
37 39
                             <div class="layui-input-inline" style="width: 855px">
38
-                                <input type="hidden" id="rws" name="rws" class="layui-input" th:value="${annualbudget.rws}">
39
-                                <input type="text" id="rwsmc" name="rwsmc" class="layui-input" th:value="${annualbudget.rwsmc}" readonly>
40
+                                <input type="hidden" id="rws" name="rws" class="layui-input"
41
+                                       th:value="${annualbudget.rws}">
42
+                                <input type="text" id="rwsmc" name="rwsmc" class="layui-input"
43
+                                       th:value="${annualbudget.rwsmc}" readonly>
40 44
                             </div>
41 45
                         </div>
42 46
                         <div class="layui-form-item layui-inline" style="width: 100%">
43 47
                             <label class="layui-form-label" style="width: 70px">项目执行期</label>
44 48
                             <div class="layui-input-inline" style="width: 855px">
45
-                                <input type="text" id="xmzxq" name="xmzxq" class="layui-input" autocomplete="off" th:value="${annualbudget.xmzxq}" readonly>
49
+                                <input type="text" id="xmzxq" name="xmzxq" class="layui-input" autocomplete="off"
50
+                                       th:value="${annualbudget.xmzxq}" readonly>
46 51
                             </div>
47 52
                         </div>
48 53
                         <div class="layui-form-item layui-inline" style="width: 100%">
49 54
                             <label class="layui-form-label required" style="width: 70px">年份</label>
50 55
                             <div class="layui-input-inline" style="width: 855px">
51 56
                                 <input type="number" id="nf" name="nf" value="2023" lay-verify="required"
52
-                                       lay-reqtext="年份不能为空" class="layui-input" autocomplete="off" th:value="${annualbudget.nf}" readonly>
57
+                                       lay-reqtext="年份不能为空" class="layui-input" autocomplete="off"
58
+                                       th:value="${annualbudget.nf}" readonly>
53 59
                             </div>
54 60
                         </div>
55 61
                         <div class="layui-form-item layui-inline" style="width: 100%">
56 62
                             <label class="layui-form-label" style="width: 70px">说明</label>
57 63
                             <div class="layui-input-inline" style="width: 855px">
58
-                                <textarea id="sm" name="sm"  class="layui-textarea" style="width: 100%;height: 150px" th:text="${annualbudget.sm}" readonly></textarea>
64
+                                <textarea id="sm" name="sm" class="layui-textarea" style="width: 100%;height: 150px"
65
+                                          th:text="${annualbudget.sm}" readonly></textarea>
59 66
                             </div>
60 67
                         </div>
61 68
                         <div class="layui-form-item layui-inline" style="width: 100%">
62 69
                             <label class="layui-form-label" style="width: 70px">申请人</label>
63 70
                             <div class="layui-input-inline" style="width: 380px">
64
-                                <input type="text" name="sqrxm" class="layui-input" th:value="${annualbudget.sqrxm}" readonly>
71
+                                <input type="text" name="sqrxm" class="layui-input" th:value="${annualbudget.sqrxm}"
72
+                                       readonly>
65 73
                             </div>
66 74
                             <label class="layui-form-label" style="width: 65px">申请时间</label>
67 75
                             <div class="layui-input-inline" style="width: 370px">
68
-                                <input type="text" id="sqsj" name="sqsj" class="layui-input" th:value="${annualbudget.sqsj}" readonly>
76
+                                <input type="text" id="sqsj" name="sqsj" class="layui-input"
77
+                                       th:value="${annualbudget.sqsj}" readonly>
69 78
                             </div>
70 79
                         </div>
71 80
                         <!--                        <div class="layui-form-item layui-inline" style="width: 100%">-->
@@ -77,27 +86,32 @@
77 86
                         <div class="layui-form-item layui-inline" style="width: 100%">
78 87
                             <label class="layui-form-label" style="width: 70px">可研报告</label>
79 88
                             <div class="layui-input-inline" style="width: 855px">
80
-                                <input type="text" id="xmmc" name="xmmc" class="layui-input" th:value="${annualbudget.xmmc}" readonly>
89
+                                <input type="text" id="xmmc" name="xmmc" class="layui-input"
90
+                                       th:value="${annualbudget.xmmc}" readonly>
81 91
                             </div>
82 92
                         </div>
83 93
                         <div class="layui-form-item layui-inline" style="width: 100%">
84 94
                             <label class="layui-form-label" style="width: 70px">ERP编号</label>
85 95
                             <div class="layui-input-inline" style="width: 380px">
86
-                                <input type="text" id="erpbh" name="erpbh" class="layui-input" th:value="${annualbudget.erpbh}" readonly>
96
+                                <input type="text" id="erpbh" name="erpbh" class="layui-input"
97
+                                       th:value="${annualbudget.erpbh}" readonly>
87 98
                             </div>
88 99
                             <label class="layui-form-label" style="width: 65px">项目类型</label>
89 100
                             <div class="layui-input-inline" style="width: 370px">
90
-                                <input type="text" id="xmlxmc" name="xmlxmc" class="layui-input" th:value="${annualbudget.xmlxmc}" readonly>
101
+                                <input type="text" id="xmlxmc" name="xmlxmc" class="layui-input"
102
+                                       th:value="${annualbudget.xmlxmc}" readonly>
91 103
                             </div>
92 104
                         </div>
93 105
                         <div class="layui-form-item layui-inline" style="width: 100%">
94 106
                             <label class="layui-form-label" style="width: 90px">电科院负责人</label>
95 107
                             <div class="layui-input-inline" style="width: 370px">
96
-                                <input type="text" id="xmfzrxm" name="xmfzrxm" class="layui-input" th:value="${annualbudget.xmfzrxm}" readonly>
108
+                                <input type="text" id="xmfzrxm" name="xmfzrxm" class="layui-input"
109
+                                       th:value="${annualbudget.xmfzrxm}" readonly>
97 110
                             </div>
98 111
                             <label class="layui-form-label" style="width: 65px">所属部门</label>
99 112
                             <div class="layui-input-inline" style="width: 370px">
100
-                                <input type="text" id="ssbmmc" name="ssbmmc" class="layui-input" th:value="${annualbudget.ssbmmc}" readonly>
113
+                                <input type="text" id="ssbmmc" name="ssbmmc" class="layui-input"
114
+                                       th:value="${annualbudget.ssbmmc}" readonly>
101 115
                             </div>
102 116
                         </div>
103 117
 
@@ -120,19 +134,23 @@
120 134
                     <div class="layui-form layuimini-form">
121 135
                         <div class="layui-form-item" style="margin-bottom: -10px">
122 136
                             <div class="layui-inline">
123
-                                <label class="layui-form-label " style="width: fit-content; margin-bottom: -10px">单位:万元</label>
137
+                                <label class="layui-form-label "
138
+                                       style="width: fit-content; margin-bottom: -10px">单位:万元</label>
124 139
                                 <label class="layui-form-label" style="width: 100px"></label>
125 140
                             </div>
126 141
                             <div class="layui-inline">
127
-                                <label class="layui-form-label" style="width: 120px; margin-left: -10px">[[${ysmc}]]</label>
142
+                                <label class="layui-form-label"
143
+                                       style="width: 120px; margin-left: -10px">[[${ysmc}]]</label>
128 144
                                 <div class="layui-input-inline" style="width: 100px">
129
-                                    <input type="text" id="rwsys" name="rwsys" class="layui-input" th:value="${rwsys}" readonly>
145
+                                    <input type="text" id="rwsys" name="rwsys" class="layui-input" th:value="${rwsys}"
146
+                                           readonly>
130 147
                                 </div>
131 148
                             </div>
132 149
                             <div class="layui-inline">
133 150
                                 <label class="layui-form-label" style="width: 60px; margin-left: -15px">年度经费</label>
134 151
                                 <div class="layui-input-inline" style="width: 100px">
135
-                                    <input type="text" id="ndczje" name="ndczje" class="layui-input" th:value="${ndczje}" readonly>
152
+                                    <input type="text" id="ndczje" name="ndczje" class="layui-input"
153
+                                           th:value="${ndczje}" readonly>
136 154
                                 </div>
137 155
                             </div>
138 156
                             <div class="layui-inline">
@@ -177,10 +195,10 @@
177 195
 
178 196
         var rwsId = $("#rws").val(),
179 197
             ysId = $("#id").val();
180
-        var zjfy=0;
198
+        var zjfy = 0;
181 199
 
182 200
         // 监听查看任务书按钮
183
-        $("button[lay-filter='viewRwsBtn']").click(function(){
201
+        $("button[lay-filter='viewRwsBtn']").click(function () {
184 202
             parent.layer.open({
185 203
                 title: '查看项目任务书',
186 204
                 type: 2,
@@ -205,9 +223,9 @@
205 223
             dataType: "json",
206 224
             success: function (result) {
207 225
                 dataBudget = result;
208
-                for (let i = 0; i <dataBudget.length ; i++) {
209
-                    if(dataBudget[i].fymc.indexOf('总计')>-1){
210
-                        zjfy=i;
226
+                for (let i = 0; i < dataBudget.length; i++) {
227
+                    if (dataBudget[i].fymc.indexOf('总计') > -1) {
228
+                        zjfy = i;
211 229
                     }
212 230
                 }
213 231
                 $("#ndbyj").val(dataBudget[zjfy].byj);
@@ -226,7 +244,15 @@
226 244
                 dataBudget1 = result;
227 245
             }
228 246
         });
229
-
247
+        console.log(dataBudget1);
248
+        let fjArray = []
249
+        fjArray = Array.from(dataBudget1,({fj}) => fj)
250
+        console.log('fjArray'+fjArray);
251
+        for (var j = 0; j < dataBudget1.length; j++){
252
+            if (!fjArray.includes(dataBudget1[j].bm)) {
253
+                setFjBudget(dataBudget1[j].fj);
254
+            }
255
+        }
230 256
         treeTable.render({
231 257
             elem: '#currentTableId',
232 258
             data: dataBudget1,
@@ -261,13 +287,80 @@
261 287
                     // {field: 'byjybz', width: '11%', title: '备用金已报账'}
262 288
                 ]
263 289
             ],
290
+            done: function () {
291
+            }
264 292
         });
265 293
 
266 294
         // 监听取消按钮
267
-        $("button[lay-filter='cancleBtn']").click(function(){
295
+        $("button[lay-filter='cancleBtn']").click(function () {
268 296
             var iframeIndex = parent.layer.getFrameIndex(window.name);
269 297
             parent.layer.close(iframeIndex);
270 298
         });
299
+
300
+        //父级预算
301
+        function setFjBudget(fj) {
302
+            if (fj != null && fj != '') {
303
+                var xmzys = 0, xmz = 0, byj = 0, xtjsyzx = 0, sjyzx = 0;
304
+                //子节点的值相加
305
+                for (var j = 0; j < dataBudget1.length; j++) {
306
+                    if (fj == dataBudget1[j].fj) {
307
+                        // var t = parseFloat(dataBudget[j].xmzys);
308
+                        // if (!isNaN(t))
309
+                        //     xmzys += t;
310
+                        var t1 = parseFloat(dataBudget1[j].xmz);
311
+                        if (!isNaN(t1))
312
+                            xmz += t1;
313
+                        var t2 = parseFloat(dataBudget1[j].byj);
314
+                        if (!isNaN(t2))
315
+                            byj += t2;
316
+                        var t3 = parseFloat(dataBudget1[j].xtjsyzx);
317
+                        if (!isNaN(t3))
318
+                            xtjsyzx += t3;
319
+                        var t4 = parseFloat(dataBudget1[j].sjyzx);
320
+                        if (!isNaN(t4))
321
+                            sjyzx += t4;
322
+                    }
323
+                }
324
+                console.log(sjyzx);
325
+                //更新父节点的值
326
+                for (var j = 0; j < dataBudget1.length; j++) {
327
+                    if (fj == dataBudget1[j].bm) {
328
+                        // if (xmzys == 0)
329
+                        //     dataBudget[j].xmzys = '';
330
+                        // else
331
+                        //     dataBudget[j].xmzys = xmzys.toFixed(2);
332
+                        if (xmz == 0)
333
+                            dataBudget1[j].xmz = '';
334
+                        else
335
+                            dataBudget1[j].xmz = xmz.toFixed(2);
336
+                        if (xtjsyzx == 0)
337
+                            dataBudget1[j].xtjsyzx = '';
338
+                        else
339
+                            dataBudget1[j].xtjsyzx = xtjsyzx.toFixed(2);
340
+                        if (sjyzx == 0)
341
+                            dataBudget1[j].sjyzx = '';
342
+                        else
343
+                            dataBudget1[j].sjyzx = sjyzx.toFixed(2);
344
+                        // if (byj > 0)
345
+                        //     dataBudget[j].byj = byj.toFixed(2);
346
+                        // else if(dataBudget[j].fj != '')
347
+                        //     dataBudget[j].byj = '';
348
+
349
+                        // console.log(dataBudget[j].fj);
350
+                        // console.log(dataBudget[j].byj);
351
+
352
+                        var ysje = xmz + byj;
353
+                        if (ysje == 0)
354
+                            dataBudget1[j].ysje = "";
355
+                        else
356
+                            dataBudget1[j].ysje = ysje.toFixed(2);
357
+
358
+                        setFjBudget(dataBudget1[j].fj);
359
+                        break;
360
+                    }
361
+                }
362
+            }
363
+        }
271 364
     });
272 365
 </script>
273 366
 </body>

+ 1 - 1
src/main/resources/templates/payapply/add.html

@@ -33,7 +33,7 @@
33 33
         <div class="layui-form-item layui-inline" style="width: 100%">
34 34
             <label class="layui-form-label required" style="width: 60px">合同</label>
35 35
             <div class="layui-input-inline" style="width: 380px">
36
-                <select name="ht" id="ht" lay-filter="ht" lay-verify="required" lay-reqtext="合同不能为空">
36
+                <select name="ht" id="ht" lay-filter="ht" lay-verify="required" lay-reqtext="合同不能为空" lay-search=“”>
37 37
                     <option value="">-- 请选择 --</option>
38 38
                     <option th:each="item:${htList}" th:text="${item.htmc}" th:value="${item.id}"></option>
39 39
                 </select>

+ 7 - 0
src/main/resources/templates/stabudgetapproval/list_apply.html

@@ -23,6 +23,13 @@
23 23
 
24 24
                             </div>
25 25
                         </div>
26
+                        <div class="layui-inline">
27
+                            <label class="layui-form-label" style="width: 60px">费用类别</label>
28
+                            <div class="layui-input-inline" style="width: 405px">
29
+                                <input type="text" id="fylb" name="fylb" autocomplete="off" class="layui-input">
30
+
31
+                            </div>
32
+                        </div>
26 33
                         <div class="layui-inline">
27 34
                             <label class="layui-form-label" style="width: 60px; margin-left: -10px">审批状态</label>
28 35
                             <div class="layui-input-inline" style="width: 180px">

+ 6 - 0
src/main/resources/templates/stafeemanage/list_allapply.html

@@ -23,6 +23,12 @@
23 23
                                 <input type="text" id="xmmc" name="xmmc" autocomplete="off" class="layui-input">
24 24
                             </div>
25 25
                         </div>
26
+                        <div class="layui-inline">
27
+                            <label class="layui-form-label" style="width: 60px">费用类别</label>
28
+                            <div class="layui-input-inline" style="width: 200px">
29
+                                <input type="text" id="fylb" name="fylb" autocomplete="off" class="layui-input">
30
+                            </div>
31
+                        </div>
26 32
                         <div class="layui-inline">
27 33
                             <label class="layui-form-label" style="width: 30px">编号</label>
28 34
                             <div class="layui-input-inline" style="width: 150px">