Browse Source

病案统计添加按签收人的选项

lighter 1 year ago
parent
commit
2911d96b3b

+ 1 - 1
pom.xml

@@ -10,7 +10,7 @@
     </parent>
     <groupId>thyyxxk</groupId>
     <artifactId>web-server</artifactId>
-    <version>11.8.1</version>
+    <version>11.8.2</version>
     <name>web-server</name>
     <description>server for yibao-web</description>
     <properties>

+ 1 - 0
src/main/java/thyyxxk/webserver/controller/medicalinsurance/MarkMtFeesController.java

@@ -76,6 +76,7 @@ public class MarkMtFeesController {
         mz.setTimes(param.getTimes());
         mz.setStaffId(param.getStaffId());
         mz.setNeedRevokeRegistration(1);
+        mz.setRevokeRegistration(true);
         ResultVo<FundDetail> result = mzService.revokeOutpatientSettlement(mz);
         mzService.insertSiPatInfo(mz);
         return getStringObjectMap(param, result, "处方有修改,撤销门诊统筹结算与登记");

+ 7 - 1
src/main/java/thyyxxk/webserver/dao/his/inpatient/casefrontsheet/CaseFrontSheetAnalyzeDao.java

@@ -17,7 +17,13 @@ public interface CaseFrontSheetAnalyzeDao {
     List<TempDismissCount> selectDismissCount(@Param("start") String start,
                                               @Param("end") String end);
 
-    @Select("select a.bah as patNo,a.admiss_times as times, " +
+    @Select("select isnull(sign_staff,'NONE') as sign_staff, count(1) as dismissCount from t_case_frontsheet_main " +
+            "with(nolock) where dismiss_date>=#{start} and dismiss_date<=#{end} " +
+            "group by sign_staff")
+    List<TempDismissCount> selectDismissCount2(@Param("start") String start,
+                                              @Param("end") String end);
+
+    @Select("select a.bah as patNo,a.admiss_times as times,a.sign_staff, " +
             "a.name as name,gender=(case when a.sex='1' then N'男' else N'女' end), " +
             "a.age,a.admiss_date,a.dismiss_date as disDate, " +
             "inHospDays=admiss_days,a.total_cost as total_charge, " +

+ 1 - 0
src/main/java/thyyxxk/webserver/entity/casefrontsheet/TempDismissCount.java

@@ -6,5 +6,6 @@ import lombok.Data;
 public class TempDismissCount {
     private Integer fileStatus;
     private String deptCode;
+    private String signStaff;
     private Integer dismissCount;
 }

+ 5 - 0
src/main/java/thyyxxk/webserver/entity/casefrontsheet/request/CountType.java

@@ -11,6 +11,11 @@ public enum CountType {
      * */
     BY_DETAIL,
 
+    /**
+     * 按签收人计数
+     * */
+    BY_SIGN_STAFF,
+
     /**
      * 死亡患者计数
      * */

+ 2 - 0
src/main/java/thyyxxk/webserver/entity/casefrontsheet/response/DismissCount.java

@@ -11,6 +11,8 @@ public class DismissCount {
     private Integer signedCount;
     private Integer unsignCount;
 
+    private String signStaff;
+    private String signStaffName;
     private String patNo;
     private Integer times;
     private String name;

+ 1 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/outpatient/MzPatientInfo.java

@@ -36,6 +36,7 @@ public class MzPatientInfo {
     private String icdText;
     private Integer saved;
     private Integer needRevokeRegistration;
+    private Boolean revokeRegistration;
     private String mdtrtCertType;
     private String mdtrtCertNo;
     private String readCardResult;

+ 36 - 0
src/main/java/thyyxxk/webserver/service/inpatient/casefrontsheet/CaseFrontSheetAnalyzeService.java

@@ -61,12 +61,48 @@ public class CaseFrontSheetAnalyzeService {
             for (Map.Entry<String, DismissCount> entry : map.entrySet()) {
                 list.add(entry.getValue());
             }
+        } else if (param.getCountType() == CountType.BY_SIGN_STAFF) {
+            List<TempDismissCount> templist = dao.selectDismissCount2(dateRange[0], dateRange[1]);
+            Map<String, DismissCount> map = new HashMap<>();
+            int totalCount = 0;
+            for (TempDismissCount item : templist) {
+                totalCount += item.getDismissCount();
+                if (map.containsKey(item.getSignStaff())) {
+                    DismissCount count = map.get(item.getSignStaff());
+                    count.setDismissCount(count.getDismissCount() + item.getDismissCount());
+                } else {
+                    DismissCount dismissCount = new DismissCount();
+                    if (item.getSignStaff().equals("NONE")) {
+                        dismissCount.setSignStaffName("未签收");
+                    } else {
+                        dismissCount.setSignStaffName(redis.getEmployeeName(item.getSignStaff()));
+                    }
+                    dismissCount.setDismissCount(item.getDismissCount());
+                    map.put(item.getSignStaff(), dismissCount);
+                }
+            }
+            list = new ArrayList<>();
+            DismissCount unSign = map.remove("NONE");
+            if (null != unSign) {
+                list.add(unSign);
+            }
+            for (Map.Entry<String, DismissCount> entry : map.entrySet()) {
+                list.add(entry.getValue());
+            }
+            DismissCount total = new DismissCount();
+            total.setSignStaff("TOTAL");
+            total.setSignStaffName("合计");
+            total.setDismissCount(totalCount);
+            list.add(total);
         } else if (param.getCountType() == CountType.BY_DETAIL) {
             list = dao.selectDismissDetailCount(dateRange[0], dateRange[1], param.getDept());
             for (DismissCount item : list) {
                 if (StringUtil.equalsIgnoreNull(item.getZkWard(), item.getAdmissDept())) {
                     item.setZkWard(null);
                 }
+                String staffName = StringUtil.isBlank(item.getSignStaff()) ?
+                        "未签收" : redis.getEmployeeName(item.getSignStaff());
+                item.setSignStaff(staffName);
                 item.setBlfx(FilterUtil.filterCaseClassification(item.getBlfx()));
                 item.setFdcrb(FilterUtil.filterNotifiableInfectiousDiseases(item.getFdcrb()));
             }