Forráskód Böngészése

增加挂号列表导出

hurugang 5 éve
szülő
commit
aa3f356a2c

+ 66 - 0
src/main/java/cn/hnthyy/thmz/Utils/ExcelUtil.java

@@ -1,8 +1,10 @@
 package cn.hnthyy.thmz.Utils;
 
+import cn.hnthyy.thmz.entity.his.MzyReqrec;
 import cn.hnthyy.thmz.entity.his.ZdUnitCode;
 import cn.hnthyy.thmz.enums.YesNoEnum;
 import cn.hnthyy.thmz.vo.ChargeFeeVo;
+import cn.hnthyy.thmz.vo.MzyReqrecVo;
 import cn.hnthyy.thmz.vo.ReqrecVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.time.DateFormatUtils;
@@ -88,6 +90,20 @@ public class ExcelUtil {
         exportExcel(request, response, data, YP_REPORT_COLUMNS_LENGTH,VERSION_2007);
     }
 
+    /**
+     * 将挂号列表对象转换为导出Excel
+     *
+     * @param request
+     * @param response
+     * @param mzyReqrecList
+     */
+    public static void exportExcelForReqrecList(HttpServletRequest request, HttpServletResponse response, List<MzyReqrecVo> mzyReqrecList) {
+        Map<String, Object> data = fomartReqrecList(mzyReqrecList);
+        exportExcel(request, response, data, YP_REPORT_COLUMNS_LENGTH,VERSION_2007);
+    }
+
+
+
     /**
      * 方法名:exportExcel
      * 功能:导出Excel
@@ -468,4 +484,54 @@ public class ExcelUtil {
         return data;
     }
 
+
+    /**
+     * 将门诊挂号列表对象转换为导出Excel  表格内容的格式
+     *
+     * @param mzyReqrecList
+     * @return
+     */
+    private static Map<String, Object> fomartReqrecList(List<MzyReqrecVo> mzyReqrecList) {
+        if (mzyReqrecList == null) {
+            return Collections.emptyMap();
+        }
+        Map<String, Object> data = new HashMap<>();
+        data.put(FILE_NAME_KEY, "门诊挂号统计.xls");
+        List<Map<String, Object>> heads = new ArrayList<>();
+        Map<String, Object> map0 = new HashMap<>();
+        String[] head0 = {"病人姓名", "诊疗卡号" ,"病人ID", "挂号科室", "挂号医生", "挂号时间", "挂号费", "诊查费", "其他收费","就诊状态"};
+        String[] headNum0 = {"0,0,0,0"};
+        map0.put(HEAD_ARR_KEY, head0);
+        map0.put(HEAD_NUM_KEY, headNum0);
+        heads.add(map0);
+        data.put(HEAD_KEY, heads);
+        List<String[]> arr = new ArrayList<>();
+        mzyReqrecList.forEach(mzyReqrecVo -> {
+            if (mzyReqrecVo != null) {
+                MzyReqrec mzyReqrec=mzyReqrecVo.getMzyReqrec();
+                String status = "挂号";
+                if(mzyReqrec.getCancelMark()==0){
+                    if(mzyReqrec.getVisitedMark()==1){
+                        status = "已诊";
+                    }
+                }else if (mzyReqrec.getCancelMark() == 1) {
+                    status = "退号";
+                }
+                String[] temp = {mzyReqrec.getName(),
+                        mzyReqrecVo.getMzPatientMi().getIcCardNo(),
+                        mzyReqrec.getPatientId(),
+                                mzyReqrec.getUnitCode(),
+                                mzyReqrec.getDoctorCode(),
+                                DateFormatUtils.format(mzyReqrec.getRequestDay(), "yyyy-MM-dd HH:mm:ss"),
+                                mzyReqrec.getReqFee()==null?"0":mzyReqrec.getReqFee().toString(),
+                                mzyReqrec.getClinicFee()==null?"0":mzyReqrec.getClinicFee().toString(),
+                                mzyReqrec.getOthFee()==null?"0":mzyReqrec.getOthFee().toString(),status
+                };
+                arr.add(temp);
+            }
+        });
+        data.put(DATA_KEY, arr);
+        return data;
+    }
+
 }

+ 56 - 4
src/main/java/cn/hnthyy/thmz/controller/MzyReqrecController.java

@@ -1,9 +1,6 @@
 package cn.hnthyy.thmz.controller;
 
-import cn.hnthyy.thmz.Utils.DateUtil;
-import cn.hnthyy.thmz.Utils.JsonUtil;
-import cn.hnthyy.thmz.Utils.NumberToCN;
-import cn.hnthyy.thmz.Utils.TokenUtil;
+import cn.hnthyy.thmz.Utils.*;
 import cn.hnthyy.thmz.comment.UserLoginToken;
 import cn.hnthyy.thmz.common.Constants;
 import cn.hnthyy.thmz.entity.MzException;
@@ -18,10 +15,12 @@ import cn.hnthyy.thmz.vo.ThmzmxsrParamsVo;
 import com.auth0.jwt.interfaces.DecodedJWT;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -176,6 +175,59 @@ public class MzyReqrecController {
     }
 
 
+    /**
+     * 导出挂号列表
+     * @return
+     */
+    @RequestMapping(value = "/exportListMzyReqrec", method = {RequestMethod.GET})
+    public Map<String, Object> exportListMzyReqrec(@RequestParam("name") String name,@RequestParam("unitCode") String unitCode,@RequestParam("doctorCode") String doctorCode,
+                                                   @RequestParam("phoneNo") String phoneNo,@RequestParam("serialNo") String serialNo, @RequestParam("beginTime") String beginTime,
+                                                   @RequestParam("endTime") String endTime , @RequestParam("visitedMark") String visitedMark, @RequestParam("cancelMark") String cancelMark, HttpServletRequest request, HttpServletResponse response) {
+        try {
+            MzyReqrecPageDto mzyReqrecPageDto = new MzyReqrecPageDto();
+            mzyReqrecPageDto.setMzyReqrec(new MzyReqrec());
+            MzyReqrec mzyReqrec=mzyReqrecPageDto.getMzyReqrec();
+            mzyReqrec.setName(name);
+            mzyReqrec.setUnitCode(unitCode);
+            mzyReqrec.setDoctorCode(doctorCode);
+            mzyReqrec.setSerialNo(StringUtils.isBlank(serialNo)?null:Integer.valueOf(serialNo));
+            mzyReqrec.setVisitedMark(StringUtils.isBlank(visitedMark)?null:Integer.valueOf(visitedMark));
+            mzyReqrec.setCancelMark(StringUtils.isBlank(cancelMark)?null:Integer.valueOf(cancelMark));
+            mzyReqrecPageDto.setPhoneNo(phoneNo);
+            mzyReqrecPageDto.setBeginTime(DateUtil.pase(beginTime, "yyyy-MM-dd HH:mm:ss"));
+            mzyReqrecPageDto.setEndTime(DateUtil.pase(endTime, "yyyy-MM-dd HH:mm:ss"));
+            if(StringUtils.isBlank(mzyReqrec.getName())){
+                mzyReqrec.setName(null);
+            }else {
+                mzyReqrec.setName("%"+mzyReqrec.getName()+"%");
+            }
+            if(StringUtils.isBlank(mzyReqrec.getUnitCode())){
+                mzyReqrec.setUnitCode(null);
+            }
+            if(StringUtils.isBlank(mzyReqrec.getDoctorCode())){
+                mzyReqrec.setDoctorCode(null);
+            }
+            if(StringUtils.isNotBlank(mzyReqrecPageDto.getPhoneNo())){
+                List<MzPatientMi> mzPatientMis=mzPatientMiService.queryByPhoneNo(mzyReqrecPageDto.getPhoneNo());
+                if(mzPatientMis==null || mzPatientMis.size()==0){
+                    return null;
+                }
+                List<String> patientIds = mzPatientMis.stream().filter(u -> StringUtils.isNotBlank(u.getPatientId())).map(u -> u.getPatientId()).collect(Collectors.toList());
+                mzyReqrecPageDto.setPatientIds(patientIds);
+            }
+            Integer count = mzyReqrecService.countMzyReqrec(mzyReqrecPageDto);
+            mzyReqrecPageDto.setPageSize(count);
+            ExcelUtil.exportExcelForReqrecList(request, response, getMzyReqrecVo(mzyReqrecService.queryMzyReqrecWithPage(mzyReqrecPageDto)));
+            return null;
+        }catch (Exception e){
+            log.error("导出挂号列表失败,系统异常,错误信息{}",e.getMessage());
+            return null;
+        }
+    }
+
+
+
+
     /**
      * 查询挂号列表
      * @return

+ 31 - 0
src/main/resources/static/js/registration_list.js

@@ -236,6 +236,11 @@ $(function () {
     //     CreatePrinterList();
     //     $("#editPrintModal").modal();
     // });
+
+    //初始化页面上面的按钮事件
+    $("#btn_excel").click(function (t) {
+        exportExcel();
+    });
 });
 
 
@@ -2097,4 +2102,30 @@ function isEmpty(obj) {
     } else {
         return false;
     }
+}
+
+
+
+
+/**
+ * 导出excel
+ */
+function exportExcel() {
+    var rePortRangeArr = getRePortRangeArr();
+    var regiListBtnGroup = getIndex("regi_List_btn_group");
+    var visitedMark="";
+    var cancelMark="";
+    if (regiListBtnGroup == 1) {
+        visitedMark=0;
+        cancelMark=0;
+    }else if (regiListBtnGroup == 2) {
+        visitedMark=1;
+        cancelMark=0;
+    }else if (regiListBtnGroup == 3) {
+
+        cancelMark=1;
+    }
+    window.location.href = "/thmz/exportListMzyReqrec?beginTime=" + rePortRangeArr[0] + "&endTime=" + rePortRangeArr[1]+"&name="+$("#userNameParam").val()
+        +"&unitCode="+$("#deptNoParam").val()+"&doctorCode="+$("#doctorParam").val()+"&phoneNo="+$("#phoneParam").val()+"&serialNo="+$("#serialNoParams").val()+"&visitedMark="
+        +visitedMark+"&cancelMark="+cancelMark;
 }

+ 9 - 0
src/main/resources/static/js/toll_administration.js

@@ -1134,6 +1134,15 @@ function initTallyDetailTable() {
                 formatter: function (value, row, index) {
                     return value.toFixed(2);
                 }
+            },
+            {
+                field: 'chargeDate',
+                title: '记账时间',
+                align: "center",
+                valign: 'middle',
+                formatter: function (value, row, index) {
+                    return format(value, "yyyy-MM-dd HH:mm:ss");
+                }
             }
         ],
         /**

+ 11 - 8
src/main/resources/templates/registration_list.html

@@ -88,7 +88,7 @@
                             <!--<select class="form-control selectpicker show-tick" required="required" id="sourceParam">-->
                             <!--</select>-->
                         <!--</div>-->
-                        <label class="control-label col-md-2 col-sm-2 col-xs-12" for="reportrange">挂号时间
+                        <label class="control-label col-md-1 col-sm-1 col-xs-12" for="reportrange">时间
                         </label>
                         <div class="col-md-4 col-sm-4 col-xs-12">
                             <div id="reportrange" class="pull-right"
@@ -97,17 +97,20 @@
                                 <span>December 30, 2014 - January 28, 2015</span> <b class="caret"></b>
                             </div>
                         </div>
-                        <div class="col-md-2 col-sm-2 col-xs-12">
-                            <button type="button"
-                                    style="margin-bottom: 10px !important;"
-                                    class="btn btn-primary" title="重置" onclick="clearParams();">
-                                <i class="fa fa-rotate-left"></i>
-                            </button>
+                        <div class="col-md-3 col-sm-3 col-xs-12" style="padding: 2px 4px;">
                             <button type="button"
-                                    style="margin-bottom: 10px !important;float: right;margin-right: -1px;"
+                                    style="margin-bottom: 10px !important;float: right;margin-right: 10px;"
                                     class="btn btn-primary" id="queryListButton" title="查询">
                                 <i class="fa fa-search"></i>
                             </button>
+                            <button type="button" style="margin-bottom: 10px !important;float: right;margin-right: 10px;"  id="btn_excel" class="btn btn-primary"
+                                    title="导出EXCEL"><i class="fa fa-file-excel-o"></i>
+                            </button>
+                            <button type="button"
+                                    style="margin-bottom: 10px !important;float: right;margin-right: 10px;"
+                                    class="btn btn-primary" title="重置" onclick="clearParams();">
+                                <i class="fa fa-rotate-left"></i>
+                            </button>
                         </div>
                     </div>
                 </div>