Jelajahi Sumber

修改报表的统计逻辑

yanliming 2 minggu lalu
induk
melakukan
58a79651ab

+ 2 - 2
common/src/main/java/com/jpsoft/employment/modules/base/dao/FundIncomeInfoDAO.java

@@ -31,11 +31,11 @@ public interface FundIncomeInfoDAO {
 
     int countByYear(@Param("currentDate") String currentDate, @Param("templateId") String templateId);
 
-    BigDecimal sumBySerialNumber(@Param("serialNumber") String serialNumber, @Param("curMonth") String curMonth, @Param("templateId") String templateId);
+    BigDecimal sumBySerialNumber(@Param("serialNumberStr") String serialNumberStr,@Param("serialNumber") String serialNumber,@Param("curMonth") String curMonth, @Param("templateId") String templateId);
 
     BigDecimal sumByTemplateOptionId(@Param("templateOptionId") String templateOptionId, @Param("startDate") String startDate, @Param("endDate") String endDate);
 
-    Map<String, BigDecimal> sumBudgetRevenue(@Param("serialNumber") String serialNumber, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("templateId") String templateId);
+    Map<String, BigDecimal> sumBudgetRevenue(@Param("serialNumberStr") String serialNumberStr,@Param("serialNumber") String serialNumber, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("templateId") String templateId);
 
     Map<String, BigDecimal> sumBudgetRevenue2(@Param("serialNumber") String serialNumber, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("templateId") String templateId,@Param("serialNumberStr") String serialNumberStr);
 

+ 2 - 2
common/src/main/java/com/jpsoft/employment/modules/base/service/FundIncomeInfoService.java

@@ -16,9 +16,9 @@ public interface FundIncomeInfoService {
 	int generateData(String templateId,String subject) throws ParseException;
 	int delete(String id);
 	List<FundIncomeInfo> list();
-	BigDecimal sumBySerialNumber(String serialNumber,String curMonth,String templateId);
+	BigDecimal sumBySerialNumber(String serialNumberStr,String serialNumber,String curMonth,String templateId);
 	BigDecimal sumByTemplateOptionId(String templateOptionId,String startDate,String endDate);
-	Map<String,BigDecimal> sumBudgetRevenue(String serialNumber,String startDate,String endDate,String templateId);
+	Map<String,BigDecimal> sumBudgetRevenue(String serialNumberStr,String serialNumber,String startDate,String endDate,String templateId);
 	Map<String,BigDecimal> sumBudgetRevenue2(String serialNumber,String startDate,String endDate,String templateId,String serialNumberStr);
 	List<Map<String, BigDecimal>> findBudgetRevenue(String serialNumber,String startDate,String endDate,String templateId);
 	FundIncomeInfo findOneByTemplateOptionId(String templateOptionId,String startDate,String endDate);

+ 4 - 4
common/src/main/java/com/jpsoft/employment/modules/base/service/impl/FundIncomeInfoServiceImpl.java

@@ -383,8 +383,8 @@ public class FundIncomeInfoServiceImpl implements FundIncomeInfoService {
 
 
     @Override
-    public BigDecimal sumBySerialNumber(String serialNumber, String curMonth, String templateId) {
-        return fundIncomeInfoDAO.sumBySerialNumber(serialNumber, curMonth, templateId);
+    public BigDecimal sumBySerialNumber(String serialNumberStr,String serialNumber, String curMonth, String templateId) {
+        return fundIncomeInfoDAO.sumBySerialNumber(serialNumberStr,serialNumber, curMonth, templateId);
     }
 
 
@@ -395,8 +395,8 @@ public class FundIncomeInfoServiceImpl implements FundIncomeInfoService {
 
 
     @Override
-    public Map<String, BigDecimal> sumBudgetRevenue(String serialNumber, String startDate, String endDate, String templateId) {
-        return fundIncomeInfoDAO.sumBudgetRevenue(serialNumber, startDate, endDate, templateId);
+    public Map<String, BigDecimal> sumBudgetRevenue(String serialNumberStr,String serialNumber, String startDate, String endDate, String templateId) {
+        return fundIncomeInfoDAO.sumBudgetRevenue(serialNumberStr, serialNumber,startDate, endDate, templateId);
     }
 
     @Override

+ 4 - 4
common/src/main/resources/mapper/base/FundIncomeInfo.xml

@@ -201,8 +201,8 @@
 		]]>
 		<where>
 			del_flag=false
-			<if test="serialNumber != null">
-				and serial_number like #{serialNumber}
+			<if test="serialNumberStr != null">
+				and (serial_number = #{serialNumber} or serial_number like #{serialNumberStr})
 			</if>
 			<![CDATA[
 				and year_<=#{curMonth}
@@ -244,8 +244,8 @@
 		]]>
 			<where>
 				del_flag=false
-				<if test="serialNumber != null">
-					and serial_number like #{serialNumber}
+				<if test="serialNumberStr != null">
+					and (serial_number = #{serialNumber} or serial_number like #{serialNumberStr})
 				</if>
 				<![CDATA[
 					and year_>=#{startDate}

+ 10 - 10
web/src/main/java/com/jpsoft/employment/modules/base/controller/FundIncomeInfoController.java

@@ -389,7 +389,7 @@ public class FundIncomeInfoController {
                 if (fundIncomeInfo.getIsSum() != null) {
                     if (fundIncomeInfo.getIsSum()) {
                         String serialNumber = fundIncomeInfo.getSerialNumber();
-                        Map<String, BigDecimal> sumMap = fundIncomeInfoService.sumBudgetRevenue(serialNumber + ".%", startDate, endDate, templateId);
+                        Map<String, BigDecimal> sumMap = fundIncomeInfoService.sumBudgetRevenue(serialNumber + ".%",serialNumber, startDate, endDate, templateId);
 
                         if (sumMap != null) {
                             budgetRevenue = sumMap.get("sumBudget");
@@ -494,7 +494,7 @@ public class FundIncomeInfoController {
                 map.put("bak", fundIncomeInfo.getBak());
                 map.put("year", year);
 
-                BigDecimal total = fundIncomeInfoService.sumBySerialNumber(fundIncomeInfo.getSerialNumber(), curMonth, templateId);
+                BigDecimal total = fundIncomeInfoService.sumBySerialNumber(fundIncomeInfo.getSerialNumber(),fundIncomeInfo.getSerialNumber(), curMonth, templateId);
 
                 map.put("total", total);
 
@@ -820,7 +820,7 @@ public class FundIncomeInfoController {
                 map.put("name", templateInfo.getTitle() + "(汇总)");
                 map.put("isSum", true);
 
-                Map<String, BigDecimal> sumMap = fundIncomeInfoService.sumBudgetRevenue(null, startDate, endDate, templateInfo.getId());
+                Map<String, BigDecimal> sumMap = fundIncomeInfoService.sumBudgetRevenue(null,null, startDate, endDate, templateInfo.getId());
 
                 //BigDecimal curMonthReceived = fundExpensesInfoService.sumByTemplateOptionId(item.getId(), startDate, endDate);
 
@@ -852,7 +852,7 @@ public class FundIncomeInfoController {
                 curBudgetRevenueTotal = curBudgetRevenueTotal.add(sumCurBudgetRevenue);
 
 
-                BigDecimal actualTotalRevenue = fundIncomeInfoService.sumBySerialNumber(null, curMonth, templateInfo.getId());
+                BigDecimal actualTotalRevenue = fundIncomeInfoService.sumBySerialNumber(null,null, curMonth, templateInfo.getId());
 
                 //实际总收入
                 map.put("actualTotalRevenue", actualTotalRevenue);
@@ -1003,7 +1003,7 @@ public class FundIncomeInfoController {
             map.put("isSum2", item.getIsSum());
             map.put("serialNum", item.getSerialNum());
 
-            Map<String, BigDecimal> sumMap = fundIncomeInfoService.sumBudgetRevenue(item.getSerialNum() + "%", startDate, endDate, item.getTemplateId());
+            Map<String, BigDecimal> sumMap = fundIncomeInfoService.sumBudgetRevenue(item.getSerialNum() + "%",item.getSerialNum(), startDate, endDate, item.getTemplateId());
 
             //BigDecimal curMonthReceived = fundExpensesInfoService.sumByTemplateOptionId(item.getId(), startDate, endDate);
 
@@ -1030,7 +1030,7 @@ public class FundIncomeInfoController {
             }
             map.put("curBudgetRevenue", sumCurBudgetRevenue);
 
-            BigDecimal actualTotalRevenue = fundIncomeInfoService.sumBySerialNumber(item.getSerialNum() + "%", curMonth, item.getTemplateId());
+            BigDecimal actualTotalRevenue = fundIncomeInfoService.sumBySerialNumber(item.getSerialNum() + ".%",item.getSerialNum(), curMonth, item.getTemplateId());
 
             //实际总收入
             map.put("actualTotalRevenue", actualTotalRevenue);
@@ -1149,7 +1149,7 @@ public class FundIncomeInfoController {
             map.put("isSum2", item.getIsSum());
             map.put("serialNum", item.getSerialNum());
 
-            Map<String, BigDecimal> sumMap = fundIncomeInfoService.sumBudgetRevenue(item.getSerialNum() + "%", startDate, endDate, item.getTemplateId());
+            Map<String, BigDecimal> sumMap = fundIncomeInfoService.sumBudgetRevenue(item.getSerialNum() + ".%",item.getSerialNum(), startDate, endDate, item.getTemplateId());
 
             //BigDecimal curMonthReceived = fundExpensesInfoService.sumByTemplateOptionId(item.getId(), startDate, endDate);
 
@@ -1176,7 +1176,7 @@ public class FundIncomeInfoController {
             }
             map.put("curBudgetRevenue", sumCurBudgetRevenue);
 
-            BigDecimal actualTotalRevenue = fundIncomeInfoService.sumBySerialNumber(item.getSerialNum() + "%", curMonth, item.getTemplateId());
+            BigDecimal actualTotalRevenue = fundIncomeInfoService.sumBySerialNumber(item.getSerialNum() + ".%",item.getSerialNum(), curMonth, item.getTemplateId());
 
             //实际总收入
             map.put("actualTotalRevenue", actualTotalRevenue);
@@ -1328,7 +1328,7 @@ public class FundIncomeInfoController {
             } else {
                 //为子项数据
 
-                Map<String, BigDecimal> sumMap = fundIncomeInfoService.sumBudgetRevenue(item.getSerialNum(), startDate, endDate, item.getTemplateId());
+                Map<String, BigDecimal> sumMap = fundIncomeInfoService.sumBudgetRevenue(item.getSerialNum(),item.getSerialNum(), startDate, endDate, item.getTemplateId());
 
                 BigDecimal curMonthReceived = fundIncomeInfoService.sumByTemplateOptionId(item.getId(), startDate, endDate);
 
@@ -1352,7 +1352,7 @@ public class FundIncomeInfoController {
                 }
                 map.put("curBudgetRevenue", sumCurBudgetRevenue);
 
-                BigDecimal actualTotalRevenue = fundIncomeInfoService.sumBySerialNumber(item.getSerialNum(), curMonth, item.getTemplateId());
+                BigDecimal actualTotalRevenue = fundIncomeInfoService.sumBySerialNumber(item.getSerialNum(),item.getSerialNum(), curMonth, item.getTemplateId());
 
                 //实际总收入
                 map.put("actualTotalRevenue", actualTotalRevenue);