Przeglądaj źródła

优化同步逻辑

ly 4 miesięcy temu
rodzic
commit
15106b7a13

+ 1 - 0
src/main/java/com/liang/dao/PrjAnnualbudgetdetailDao.java

@@ -117,6 +117,7 @@ public interface PrjAnnualbudgetdetailDao {
117 117
 
118 118
     BigDecimal selectWWYJZCF_SX(@Param("id") Integer id, @Param("DW") String DW);
119 119
 
120
+    BigDecimal getWw(@Param("id")Integer id,@Param("DW")String DW);
120 121
     BigDecimal selectXMZYS(Integer id);
121 122
 
122 123
     int updateXMZYS(@Param("id") Integer id, @Param("rwsys") BigDecimal rwsys);

+ 7 - 4
src/main/java/com/liang/service/impl/PrjProjectServiceImpl.java

@@ -264,8 +264,8 @@ public class PrjProjectServiceImpl implements PrjProjectService {
264 264
                 if (StringUtils.isNotBlank(DW)) {
265 265
                     // 更新除 总计与 外委研究支出费之外的 数据同步
266 266
                     int updateNum = prjAnnualbudgetdetailDao.updateRWSYS(rws, DW);
267
-                    // 更新外委
268
-                    int updateWw = prjAnnualbudgetdetailDao.updateWW(rws,DW);
267
+                   /* // 更新外委
268
+                    int updateWw = prjAnnualbudgetdetailDao.updateWW(rws,DW);*/
269 269
                     if ("s2".equals(prjProject.getXmlx())) {
270 270
                         //国网项目
271 271
                         WWYJZCF = prjAnnualbudgetdetailDao.selectWWYJZCF_GW(rws, DW);
@@ -276,8 +276,11 @@ public class PrjProjectServiceImpl implements PrjProjectService {
276 276
                     WWYJZCF = prjBudgetDao.queryYSJEByXMAndZJ(rws);
277 277
                 }
278 278
                 // 判断外委研究支出费中 外委研究支出费是否为空值
279
-                if (WWYJZCF != null){
280
-                    int numWWYJZCF = prjAnnualbudgetdetailDao.updateWWYJZCF(rws, WWYJZCF);
279
+                // 获取任务书外委预算额
280
+                BigDecimal ww = prjAnnualbudgetdetailDao.getWw(rws,DW);
281
+                if (WWYJZCF != null || ww != null){
282
+                    BigDecimal sum  = WWYJZCF.add(ww);
283
+                    int numWWYJZCF = prjAnnualbudgetdetailDao.updateWWYJZCF(rws, sum);
281 284
                     //更新外委支出总费
282 285
                     prjAnnualbudgetdetailDao.updateWWYJZCFSUM(rws);
283 286
                 }

+ 1 - 1
src/main/resources/mapper/PrjAnnualbudgetDao.xml

@@ -34,7 +34,7 @@
34 34
                         r.XM        AS XMFZRXM,
35 35
                         d.dept_name AS SSBMMC,
36 36
                         u.name      AS SQRXM,
37
-                        bd.XMZYS,
37
+                        COALESCE(bd.XMZYS,0.00) AS XMZYS,
38 38
                         p.DKYFZR,
39 39
                         bd.YSJE,
40 40
                         (

+ 13 - 4
src/main/resources/mapper/PrjAnnualbudgetdetailDao.xml

@@ -465,10 +465,10 @@
465 465
     <update id="updateWWYJZCF">
466 466
 
467 467
         update prj_AnnualBudgetDetail
468
-        set RWSYS = case when RWSYS is not null then RWSYS + CAST(#{WWYJZCF} AS DECIMAL(10, 2)) else CAST(#{WWYJZCF} AS DECIMAL(10, 2)) end,
469
-            XMZYS = case when XMZYS is not null then XMZYS + CAST(#{WWYJZCF} AS DECIMAL(10, 2)) else CAST(#{WWYJZCF} AS DECIMAL(10, 2)) end
468
+        set RWSYS = #{WWYJZCF},
469
+            XMZYS = #{WWYJZCF}
470 470
         where NYS in (SELECT ID from prj_AnnualBudget where RWS = #{id})
471
-          and FYMC = '(1)外委研究支出费';
471
+          and FYMC = '(1)外委研究支出费'
472 472
     </update>
473 473
     <update id="updateXMZYS">
474 474
         update prj_AnnualBudgetDetail
@@ -546,7 +546,7 @@
546 546
     <!--获取年度预算-->
547 547
     <select id="getBudgetList" resultMap="PrjAnnualbudgetdetailMap">
548 548
         select (select FYMC from prj_AnnualBudgetDetail where BM = b.FJ and NYS = b.NYS) as FJMC,
549
-               ID, b.FYMC, YSJE, YSQJE, NYS, BM, FJ, NF, PX, HJBM, BZ, DW1, DW2, DW3, DW4, DW5, DW6, DW7, DW8, DW9, DW10, SJYS1, SJYS2, SJYS3, SJYS4, SJYS5, SJYS6, SJYS7, SJYS8, SJYS9, SJYS10, XTJSYZX, XMZ,BYJ, ZRJE, RWSYS, XMZYS, YBZJE, ZCBYJ, KYYS, ZCJE, BYJYSQ, BYQYBZ, ZRBYJ, DNZYZF,
549
+               ID, b.FYMC, YSJE, YSQJE, NYS, BM, FJ, NF, PX, HJBM, BZ, DW1, DW2, DW3, DW4, DW5, DW6, DW7, DW8, DW9, DW10, SJYS1, SJYS2, SJYS3, SJYS4, SJYS5, SJYS6, SJYS7, SJYS8, SJYS9, SJYS10, XTJSYZX, XMZ,BYJ, ZRJE, RWSYS, COALESCE(XMZYS,0.00) AS XMZYS, YBZJE, ZCBYJ, KYYS, ZCJE, BYJYSQ, BYQYBZ, ZRBYJ, DNZYZF,
550 550
                a.bzje sjyzx,
551 551
                c.bndsqje,
552 552
                c.bndbzje
@@ -746,6 +746,15 @@
746 746
         a.FYMC,
747 747
         b.XMMC;
748 748
     </select>
749
+    <select id="getWw" resultType="java.math.BigDecimal">
750
+        SELECT
751
+            COALESCE(${DW},0.00) AS WW
752
+        FROM
753
+            prj_Budget
754
+        WHERE
755
+            XM = #{id}
756
+          AND MC = '(1)外委研究支出费'
757
+    </select>
749 758
 
750 759
 </mapper>
751 760