Browse Source

保存实际金额

DLC 1 month ago
parent
commit
2632d8db0e

+ 1 - 4
qcs-common/src/main/java/com/rongwei/bscommon/sys/dao/QcsMainCostDao.java

@@ -12,12 +12,9 @@ import java.util.Map;
 
 public interface QcsMainCostDao extends BaseDao<QcsMainCostDo> {
 
-    @Select("select SUM(AMOUNT) as AMOUNTSUM from qcs_main_detail where DELETED='0' and MAINID=#{costId}")
+    @Select("select SUM(case when ACTAMOUNT is null then AMOUNT else ACTAMOUNT end) as AMOUNTSUM from qcs_main_detail where DELETED='0' and MAINID=#{costId}")
     Map<String, Object> getAmountSum(@Param("costId") String costId);
 
-    @Select("select SUM(ACTAMOUNT) as ACTAMOUNTSUM from qcs_main_detail where DELETED='0' and MAINID=#{costId}")
-    Map<String, Object> getActAmountSum(@Param("costId") String costId);
-
     @Select("select * from qcs_loss_detail where DELETED='0' and MAINID=#{costId}")
     List<QcsLossDetailDo> getLossDetails(@Param("costId") String costId);
 

+ 16 - 6
qcs-common/src/main/java/com/rongwei/bscommon/sys/service/impl/QcsMainCostServiceImpl.java

@@ -138,7 +138,12 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
                 BigDecimal allCostTotal = BigDecimal.ZERO;
                 Date submitDate = new Date();
                 for (QcsLossDetailDo lossDetailDo : qcsLossDetailDos) {
-                    BigDecimal costTotal = sumCostTotal(lossDetailDo);
+                    BigDecimal costTotal;
+                    if (lossDetailDo.getActamount() != null) {
+                        costTotal = lossDetailDo.getActamount();
+                    } else {
+                        costTotal = sumCostTotal(lossDetailDo);
+                    }
                     if (costTotal.compareTo(BigDecimal.ZERO) > 0) {
                         lossDetailDo.setTotalcost(costTotal);
 
@@ -187,7 +192,12 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
             if (qcsMainCostDo4.getId().equals(costId) && qcsLossDetailDos.size() > 0) {
                 BigDecimal allCostTotal = BigDecimal.ZERO;
                 for (QcsLossDetailDo lossDetailDo : qcsLossDetailDos) {
-                    BigDecimal costTotal = sumCostTotal(lossDetailDo);
+                    BigDecimal costTotal;
+                    if (lossDetailDo.getActamount() != null) {
+                        costTotal = lossDetailDo.getActamount();
+                    } else {
+                        costTotal = sumCostTotal(lossDetailDo);
+                    }
                     Date submitDate = new Date();
                     if (costTotal.compareTo(BigDecimal.ZERO) > 0) {
                         lossDetailDo.setTotalcost(costTotal);
@@ -301,9 +311,9 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
         List<QcsMainCostDo> qcsMainCostDos = qcsMainCostDao.getMainCosts(qcsMainCostDo.getBaseid(), sdf.format(qcsMainCostDo.getYearmonth()));
         if (qcsMainCostDo.getStatus().equals("已提交")) {
-            detailMap = qcsMainCostDao.getActAmountSum(costId);
+            detailMap = qcsMainCostDao.getAmountSum(costId);
             if (detailMap != null) {
-                qcsMainCostDo.setCosttotal((BigDecimal) detailMap.get("ACTAMOUNTSUM"));
+                qcsMainCostDo.setCosttotal((BigDecimal) detailMap.get("AMOUNTSUM"));
                 qualitycosttotal = qualitycosttotal.add(qcsMainCostDo.getCosttotal());
             }
         }
@@ -311,9 +321,9 @@ public class QcsMainCostServiceImpl extends ServiceImpl<QcsMainCostDao, QcsMainC
         //鉴定成本2
         QcsMainCostDo qcsMainCostDo2 = qcsMainCostDos.stream().filter(m -> m.getCosttype().equals("2")).findAny().orElse(null);
         if (qcsMainCostDo2.getStatus().equals("已提交")) {
-            detailMap = qcsMainCostDao.getActAmountSum(qcsMainCostDo2.getId());
+            detailMap = qcsMainCostDao.getAmountSum(qcsMainCostDo2.getId());
             if (detailMap != null) {
-                qcsMainCostDo2.setCosttotal((BigDecimal) detailMap.get("ACTAMOUNTSUM"));
+                qcsMainCostDo2.setCosttotal((BigDecimal) detailMap.get("AMOUNTSUM"));
                 qualitycosttotal = qualitycosttotal.add(qcsMainCostDo2.getCosttotal());
             }
         }