瀏覽代碼

报表数据优化

hurugang 5 年之前
父節點
當前提交
df9a5f070e

+ 1 - 16
src/main/java/cn/hnthyy/thmz/controller/IndexController.java

@@ -62,13 +62,10 @@ public class IndexController {
             mzyReqrec.setVisitedMark(YesNoEnum.YES.code);
             list = mzyReqrecService.countAndAmountMzyReqrec(mzyReqrecPageDto);
             Integer haveClinicalNum = 0;
-            Double amountHaveClinicalD = 0D;
             if (list != null && list.size()>0) {
                 Map<String, Object> map = list.get(0);
                 haveClinicalNum = (Integer) map.get("count");
-                amountHaveClinicalD = (Double) map.get("amount");
             }
-            amount = amount.add(amountHaveClinicalD == null ? BigDecimal.ZERO : BigDecimal.valueOf(amountHaveClinicalD));
             resultMap.put("code", 0);
             resultMap.put("message", "查询首页统计数据成功");
             resultMap.put("registrationNum", registrationNum == null ? 0 : registrationNum);
@@ -115,28 +112,16 @@ public class IndexController {
                 return resultMap;
             }
             mzyReqrecPageDto.setMzyReqrec(new MzyReqrec());
-            mzyReqrecPageDto.getMzyReqrec().setCancelMark(YesNoEnum.NO.code);
             List<Map<String, Object>> list = mzyReqrecService.countAndAmountMzyReqrec(mzyReqrecPageDto);
             Map<String,Map<String,Object>> fullMap = new HashMap<>();
             if (list != null && list.size()>0) {
                 for (Map<String, Object> map:list){
                     String requestDay = (String) map.get("request_day");
                     map.put("ghAmount",map.get("amount"));
+                    map.put("thAmount",map.get("thAmount"));
                     fullMap.put(requestDay,map);
                 }
             }
-            mzyReqrecPageDto.getMzyReqrec().setCancelMark(YesNoEnum.YES.code);
-            list = mzyReqrecService.countAndAmountMzyReqrec(mzyReqrecPageDto);
-            if (list != null && list.size()>0) {
-                for (Map<String, Object> map:list){
-                    String requestDay = (String) map.get("request_day");
-                    Map<String, Object> temp= fullMap.get(requestDay);
-                    if(temp==null){
-                        fullMap.put(requestDay,map);
-                    }
-                    temp.put("thAmount",map.get("amount"));
-                }
-            }
             list= mzDepositFileService.countAndAmount(mzyReqrecPageDto.getBeginTime(),mzyReqrecPageDto.getEndTime(),PayMarkEnum.CHARGED.code);
             if (list != null && list.size()>0) {
                 for (Map<String, Object> map:list){

+ 12 - 11
src/main/java/cn/hnthyy/thmz/mapper/his/MzyReqrecMapper.java

@@ -74,10 +74,10 @@ public interface MzyReqrecMapper {
             " and cancel_mark =#{mzyReqrec.cancelMark,jdbcType=CHAR}",
             "</when>",
             "<when test='beginTime!=null'>",
-            " and request_day &gt;=#{beginTime,jdbcType=TIMESTAMP}",
+            " and op_day &gt;=#{beginTime,jdbcType=TIMESTAMP}",
             "</when>",
             "<when test='endTime!=null'>",
-            " and request_day &lt;=#{endTime,jdbcType=TIMESTAMP}",
+            " and op_day &lt;=#{endTime,jdbcType=TIMESTAMP}",
             "</when>",
             "</script>"})
     Integer countMzyReqrec(MzyReqrecPageDto mzyReqrecPageDto);
@@ -126,10 +126,10 @@ public interface MzyReqrecMapper {
             " and cancel_mark =#{mzyReqrec.cancelMark,jdbcType=CHAR}",
             "</when>",
             "<when test='beginTime!=null'>",
-            " and request_day &gt;=#{beginTime,jdbcType=TIMESTAMP}",
+            " and op_day &gt;=#{beginTime,jdbcType=TIMESTAMP}",
             "</when>",
             "<when test='endTime!=null'>",
-            " and request_day &lt;=#{endTime,jdbcType=TIMESTAMP}",
+            " and op_day &lt;=#{endTime,jdbcType=TIMESTAMP}",
             "</when>",
             ") as A WHERE RowNumber >#{pageSize}*#{pageIndex} order by RowNumber asc",
             "</script>"})
@@ -240,20 +240,21 @@ public interface MzyReqrecMapper {
      * @return
      */
     @Select({"<script>",
-            "select CONVERT(varchar(100), request_day, 23) request_day,count(*) count ,sum(req_fee+clinic_fee+oth_fee+bl_fee+ck_fee) amount from mzy_reqrec  where  times>0 ",
-            "<when test='mzyReqrec.cancelMark!=null'>",
-            " and cancel_mark =#{mzyReqrec.cancelMark,jdbcType=CHAR} ",
-            "</when>",
+            "select CONVERT(varchar(100), op_day, 23) request_day," +
+                    "count ( case when times <![CDATA[>]]> 0 then 1 else null end ) -count ( case when  times  <![CDATA[<]]> 0 then 1 else null end ) count ," +
+                    "sum(req_fee+clinic_fee+oth_fee+bl_fee+ck_fee) amount," +
+                    "count ( case when  times  <![CDATA[<]]> 0 then 1 else null end ) thcount," +
+                    "abs(sum ( case when times  <![CDATA[<]]> 0  then req_fee + oth_fee + clinic_fee + isnull ( brochure_fee , 0 ) + isnull ( bl_fee , 0 ) + isnull ( ck_fee , 0 ) else 0 end )) thAmount from mzy_reqrec  where  (paymode <![CDATA[<>]]> 'hospital_z' or paymode is null)  ",
             "<when test='beginTime!=null'>",
-            " and request_day &gt;=#{beginTime,jdbcType=TIMESTAMP} ",
+            " and op_day &gt;=#{beginTime,jdbcType=TIMESTAMP} ",
             "</when>",
             "<when test='endTime!=null'>",
-            " and request_day &lt;=#{endTime,jdbcType=TIMESTAMP} ",
+            " and op_day &lt;=#{endTime,jdbcType=TIMESTAMP} ",
             "</when>",
             "<when test='mzyReqrec.visitedMark!=null and mzyReqrec.visitedMark == 1'>",
             " and visit_date is not null ",
             "</when>",
-            " group by CONVERT(varchar(100), request_day, 23) ",
+            " group by CONVERT(varchar(100), op_day, 23) ",
             "</script>"})
     List<Map<String, Object>> countAndAmountMzyReqrec(MzyReqrecPageDto mzyReqrecPageDto);