Browse Source

挂号号序去除

hurugang 5 years ago
parent
commit
60876dca5e

+ 8 - 0
src/main/java/cn/hnthyy/thmz/Utils/DateUtil.java

@@ -171,4 +171,12 @@ public class DateUtil {
         return result;
     }
 
+    /**
+     * 判断是否是中午
+     * @param currentTime
+     * @return
+     */
+    public static int IsAfternoon(int currentTime) {
+        return currentTime - 12;
+    }
 }

+ 107 - 1
src/main/java/cn/hnthyy/thmz/controller/api/MedicalViewApiController.java

@@ -20,6 +20,7 @@ import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -49,7 +50,12 @@ public class MedicalViewApiController {
     private ZdMzClassService zdMzClassService;
     @Autowired
     private MzyRequestService mzyRequestService;
-
+    @Autowired
+    private ZdEmpTitleService zdEmpTitleService;
+    @Autowired
+    private MzyZdChargeTypeService mzyZdChargeTypeService;
+    @Autowired
+    private MzZdWorkTimeService mzZdWorkTimeService;
 
     //海慈身份证类型
     private static final String ID_CARD_TYPE = "11";
@@ -948,6 +954,106 @@ public class MedicalViewApiController {
 
 
 
+    /**
+     * 查询可以挂号的科室内医生信息
+     *
+     * @return
+     */
+    @RequestMapping(value = "/getDoctorByDateAndDept", method = {RequestMethod.GET})
+    public Map<String, Object> getDoctorByDateAndDept(@RequestParam("requestDay") String requestDay, @RequestParam("unitCode")String unitCode ) {
+        Map<String, Object> results = new HashMap<>();
+        try {
+            if(StringUtils.isBlank(requestDay)){
+                results.put("resultCode", -1);
+                results.put("resultMessage", "预约挂号时间不能为空");
+                return results;
+            }
+            if(StringUtils.isBlank(unitCode)){
+                results.put("resultCode", -1);
+                results.put("resultMessage", "科室编码不能为空");
+                return results;
+            }
+            List<String> ampms=null;
+            int flg = DateUtil.IsAfternoon(java.util.Calendar.getInstance().getTime().getHours());
+            if (flg >= 0){
+                ampms=Arrays.asList(Constants.AM);
+            }
+            MzZdWorkTime mzZdWorkTime=mzZdWorkTimeService.queryMzZdWorkTimeByCode(Constants.PM);
+            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("HH:mm");
+            //挂还开始时间取当前时间前15分钟
+            Date dateEndTime=simpleDateFormat.parse(mzZdWorkTime.getEndTime());
+            long tsEndTime =dateEndTime.getTime();
+            String realNowStr = simpleDateFormat.format(new Date());
+            Date realHour = simpleDateFormat.parse(realNowStr);
+            long realHourTs = realHour.getTime();
+            if(realHourTs>tsEndTime){
+                ampms=new ArrayList<>(ampms);
+                ampms.add(Constants.PM);
+            }
+            Date requestDayD = DateUtil.pase(requestDay,"yyyy-MM-dd");
+            List<Map<String,Object>> list=mzyRequestService.queryDoctorByDateAndDept(requestDayD,ampms,unitCode);
+            if (list == null || list.size() == 0) {
+                results.put("resultCode", -1);
+                results.put("resultMessage", "没有医生排班信息");
+                return results;
+            }
+            for(Map map :list){
+                BigDecimal fee = BigDecimal.ZERO;
+                String chargeType= (String) map.get("chargeType");
+                if(StringUtils.isNotBlank(chargeType)){
+                    MzyZdChargeType mzyZdChargeType=mzyZdChargeTypeService.queryByCode(chargeType);
+                    if(mzyZdChargeType!=null){
+                        map.put("chargeType",mzyZdChargeType.getName());
+                        if(mzyZdChargeType.getReqFee()==null){
+                            mzyZdChargeType.setReqFee(BigDecimal.ZERO);
+                        }
+                        if(mzyZdChargeType.getClinicFee()==null){
+                            mzyZdChargeType.setClinicFee(BigDecimal.ZERO);
+                        }
+                        if(mzyZdChargeType.getOthFee()==null){
+                            mzyZdChargeType.setOthFee(BigDecimal.ZERO);
+                        }
+                        fee=fee.add(mzyZdChargeType.getReqFee()).add(mzyZdChargeType.getClinicFee()).add(mzyZdChargeType.getOthFee());
+                    }
+                }
+                BigDecimal checkFee= (BigDecimal) map.get("checkFee");
+                if(checkFee==null){
+                    checkFee=BigDecimal.ZERO;
+                }
+                fee=fee.add(checkFee);
+                map.put("fee",fee);
+                map.remove("checkFee");
+                String doctorCode= (String) map.get("doctorCode");
+                if(StringUtils.isBlank(doctorCode)){
+                   continue;
+                }
+                Employee employee= employeeService.queryByUserCode(doctorCode);
+                if(employee==null){
+                    continue;
+                }
+                map.put("doctorName",employee.getEmployeeName());
+                if(StringUtils.isNotBlank(employee.getEmpTitCode())){
+                    ZdEmpTitle zdEmpTitle=zdEmpTitleService.queryByCode(employee.getEmpTitCode());
+                    if(zdEmpTitle==null){
+                        continue;
+                    }
+                    map.put("doctorTitle",zdEmpTitle.getName());
+                }
+            }
+            results.put("resultCode", 0);
+            results.put("resultMessage", "查询可以挂号的科室内医生信息成功");
+            results.put("data", list);
+            return results;
+        }catch (Exception e){
+            e.printStackTrace();
+            results.put("resultCode", -1);
+            results.put("resultMessage", "查询可以挂号的科室内医生信息失败");
+            return results;
+        }
+
+    }
+
+
 
 
 

+ 2 - 0
src/main/java/cn/hnthyy/thmz/entity/his/Employee.java

@@ -21,4 +21,6 @@ public class Employee {
     private String deptCode;
     //科室编码
     private String deptName;
+    //职称编码
+    private String empTitCode;
 }

+ 18 - 0
src/main/java/cn/hnthyy/thmz/entity/his/ZdEmpTitle.java

@@ -0,0 +1,18 @@
+package cn.hnthyy.thmz.entity.his;
+
+import lombok.Data;
+
+/**
+ * 职称表
+ */
+@Data
+public class ZdEmpTitle {
+    //职称编码
+    private String code;
+    //职称名称
+    private String name;
+    //拼音码
+    private String pyCode;
+    //五笔编码
+    private String wbCode;
+}

+ 7 - 7
src/main/java/cn/hnthyy/thmz/mapper/his/EmployeeMapper.java

@@ -13,7 +13,7 @@ public interface EmployeeMapper {
      * @param codeRs
      * @return
      */
-    @Select(" select top 1 rtrim(code) employeeCode,rtrim(name) employeeName,del_flag,rtrim(mark) mark from a_employee_mi  where  code_rs =#{codeRs}")
+    @Select(" select top 1 rtrim(code) employeeCode,rtrim(name) employeeName,del_flag,rtrim(mark) mark,emp_tit_code from a_employee_mi  where  code_rs =#{codeRs}")
     Employee selectByCodeRs(@Param("codeRs") String codeRs);
 
 
@@ -24,7 +24,7 @@ public interface EmployeeMapper {
      * @return
      */
     @Select({"<script>",
-            "select rtrim(code) employee_code,rtrim(name) employee_name,del_flag,rtrim(mark) mark,rtrim(dept_code) dept_code from a_employee_mi where (del_flag is null or del_flag =0 ) ",
+            "select rtrim(code) employee_code,rtrim(name) employee_name,del_flag,rtrim(mark) mark,rtrim(dept_code) dept_code,emp_tit_code from a_employee_mi where (del_flag is null or del_flag =0 ) ",
             "<when test='depts!=null'>",
             " and  dept_code in",
             "<foreach item='item' index='index' collection='depts' open='(' separator=',' close=')'>",
@@ -42,7 +42,7 @@ public interface EmployeeMapper {
      * @return
      */
     @Select({"<script>",
-            "select rtrim(code) employee_code,rtrim(name) employee_name,del_flag,rtrim(mark) mark from a_employee_mi where (del_flag is null or del_flag =0 )",
+            "select rtrim(code) employee_code,rtrim(name) employee_name,del_flag,rtrim(mark) mark,emp_tit_code from a_employee_mi where (del_flag is null or del_flag =0 )",
             "<when test='dept!=null'>",
             " and dept_code =#{dept}",
             "</when>",
@@ -56,7 +56,7 @@ public interface EmployeeMapper {
      * @param name
      * @return
      */
-    @Select(" select top 1 rtrim(code) employeeCode,rtrim(name) employeeName,del_flag,rtrim(mark) mark from a_employee_mi  where name =#{name} and (del_flag is null or del_flag =0 )")
+    @Select(" select top 1 rtrim(code) employeeCode,rtrim(name) employeeName,del_flag,rtrim(mark) mark,emp_tit_code from a_employee_mi  where name =#{name} and (del_flag is null or del_flag =0 )")
     Employee selectByUserName(@Param("name") String name);
 
 
@@ -66,7 +66,7 @@ public interface EmployeeMapper {
      * @param code
      * @return
      */
-    @Select(" select top 1 rtrim(code) employeeCode,rtrim(name) employeeName,del_flag,rtrim(mark) mark from a_employee_mi  where  code =#{code} and (del_flag is null or del_flag =0 )")
+    @Select(" select top 1 rtrim(code) employeeCode,rtrim(name) employeeName,del_flag,rtrim(mark) mark,emp_tit_code from a_employee_mi  where  code =#{code} and (del_flag is null or del_flag =0 )")
     Employee selectByUserCode(@Param("code") String code);
 
 
@@ -76,7 +76,7 @@ public interface EmployeeMapper {
      * @return
      */
     @Select({"<script>",
-            "select rtrim(code) employeeCode,rtrim(name) employeeName,del_flag,rtrim(mark) mark from a_employee_mi  where  code in",
+            "select rtrim(code) employeeCode,rtrim(name) employeeName,del_flag,rtrim(mark) mark,emp_tit_code from a_employee_mi  where  code in",
             "<foreach item='item' index='index' collection='codes' open='(' separator=',' close=')'>",
             "#{item}",
             "</foreach>",
@@ -88,6 +88,6 @@ public interface EmployeeMapper {
      * 查询所有医生
      * @return
      */
-    @Select("select rtrim(code) employeeCode,rtrim(name) employeeName,del_flag,rtrim(mark) mark from a_employee_mi where (del_flag is null or del_flag =0 ) ")
+    @Select("select rtrim(code) employeeCode,rtrim(name) employeeName,del_flag,rtrim(mark) mark,emp_tit_code from a_employee_mi where (del_flag is null or del_flag =0 ) ")
     List<Employee> selectAll();
 }

+ 20 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/MzyRequestMapper.java

@@ -216,4 +216,24 @@ public interface MzyRequestMapper {
     @Select("select CONVERT (varchar (100), request_day, 23) scheduleDate,sum(left_num) leftNum,sum(total_num) totalNum from mzy_request_new where unit_code =#{unitCode} and request_day >=#{beginDate,jdbcType=TIMESTAMP} and request_day <=#{endDate,jdbcType=TIMESTAMP}  group by request_day")
     List<Map<String,Object>> selectNumByDateAndDept(@Param("beginDate") Date beginDate, @Param("endDate") Date endDate, @Param("unitCode") String unitCode);
 
+
+
+    /**
+     * 查询可以挂号的科室内医生信息
+     * @param requestDay 挂号日期
+     * @param ampms 当上下午不为空时,查询不在入参数集合的所有的号源
+     * @param unitCode 科室编码
+     * @return
+     */
+    @Select({"<script>",
+            "select doctor_code doctorCode,charge_type chargeType,check_fee checkFee,sum(left_num) leftNum from mzy_request_new where unit_code=#{unitCode} and request_day=#{requestDay,jdbcType=TIMESTAMP}  and del_flag=0 " ,
+            "<when test='ampms!=null'>",
+            " and ampm  not in " ,
+            "<foreach item='item' index='index' collection='ampms' open='(' separator=',' close=')'>",
+            "#{item}",
+            "</foreach>",
+            "</when>",
+                    "  group by doctor_code,charge_type,check_fee",
+            "</script>"})
+    List<Map<String,Object>> selectDoctorByDateAndDept(@Param("requestDay") Date requestDay, @Param("ampms") List<String> ampms, @Param("unitCode") String unitCode);
 }

+ 15 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/ZdEmpTitleMapper.java

@@ -0,0 +1,15 @@
+package cn.hnthyy.thmz.mapper.his;
+
+import cn.hnthyy.thmz.entity.his.ZdEmpTitle;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+public interface ZdEmpTitleMapper {
+    /**
+     * 查询医生职称
+     * @param code
+     * @return
+     */
+    @Select("select rtrim(code) code,rtrim(name) name,rtrim(py_code) py_code,rtrim(d_code) wb_code from zd_emp_title where code = #{code,jdbcType=CHAR}")
+    ZdEmpTitle selectByCode(@Param("code") String code);
+}

+ 10 - 0
src/main/java/cn/hnthyy/thmz/service/his/MzyRequestService.java

@@ -125,4 +125,14 @@ public interface MzyRequestService {
      */
     List<Map<String,Object>> queryNumByDateAndDept(Date beginDate, Date endDate, String unitCode);
 
+
+    /**
+     * 查询可以挂号的科室内医生信息
+     * @param requestDay 挂号日期
+     * @param ampms 当上下午不为空时,查询不在入参数集合的所有的号源
+     * @param unitCode 科室编码
+     * @return
+     */
+    List<Map<String,Object>> queryDoctorByDateAndDept(Date requestDay, List<String> ampms, String unitCode);
+
 }

+ 12 - 0
src/main/java/cn/hnthyy/thmz/service/his/ZdEmpTitleService.java

@@ -0,0 +1,12 @@
+package cn.hnthyy.thmz.service.his;
+
+import cn.hnthyy.thmz.entity.his.ZdEmpTitle;
+
+public interface ZdEmpTitleService {
+    /**
+     * 查询医生职称
+     * @param code
+     * @return
+     */
+    ZdEmpTitle queryByCode(String code);
+}

+ 5 - 0
src/main/java/cn/hnthyy/thmz/service/impl/his/MzyRequestServiceImpl.java

@@ -186,4 +186,9 @@ public class MzyRequestServiceImpl implements MzyRequestService {
     public List<Map<String, Object>> queryNumByDateAndDept(Date beginDate, Date endDate, String unitCode) {
         return mzyRequestMapper.selectNumByDateAndDept(beginDate,endDate,unitCode);
     }
+
+    @Override
+    public List<Map<String, Object>> queryDoctorByDateAndDept(Date requestDay, List<String> ampms, String unitCode) {
+        return mzyRequestMapper.selectDoctorByDateAndDept(requestDay,ampms,unitCode);
+    }
 }

+ 18 - 0
src/main/java/cn/hnthyy/thmz/service/impl/his/ZdEmpTitleServiceImpl.java

@@ -0,0 +1,18 @@
+package cn.hnthyy.thmz.service.impl.his;
+
+import cn.hnthyy.thmz.entity.his.ZdEmpTitle;
+import cn.hnthyy.thmz.mapper.his.ZdEmpTitleMapper;
+import cn.hnthyy.thmz.service.his.ZdEmpTitleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ZdEmpTitleServiceImpl implements ZdEmpTitleService {
+    @SuppressWarnings("all")
+    @Autowired
+    private ZdEmpTitleMapper zdEmpTitleMapper;
+    @Override
+    public ZdEmpTitle queryByCode(String code) {
+        return zdEmpTitleMapper.selectByCode(code);
+    }
+}

+ 4 - 5
src/main/resources/static/js/registration.js

@@ -1705,11 +1705,10 @@ function prn1Print(patientId, times) {
                 LODOP.ADD_PRINT_TEXT("37mm", "6mm", "50mm", "3mm", "看诊医生:" + temp.doctorCode);
                 LODOP.ADD_PRINT_TEXT("37mm", "56mm", "50mm", "3mm", "号段:" + temp.ampm);
                 LODOP.ADD_PRINT_TEXT("42mm", "6mm", "50mm", "3mm", "号别:" + temp.chargeType);
-                LODOP.ADD_PRINT_TEXT("42mm", "56mm", "50mm", "3mm", "就诊号:" + temp.reqOrder);
-                LODOP.ADD_PRINT_TEXT("47mm", "6mm", "50mm", "3mm", "挂号费:" + temp.reqFee);
-                LODOP.ADD_PRINT_TEXT("47mm", "56mm", "50mm", "3mm", "诊查费:" + temp.clinicFee);
-                LODOP.ADD_PRINT_TEXT("52mm", "6mm", "50mm", "3mm", "其他:" + temp.othFee);
-                LODOP.ADD_PRINT_TEXT("52mm", "56mm", "50mm", "3mm", "工本费:" + temp.brochureFee);
+                LODOP.ADD_PRINT_TEXT("42mm", "56mm", "50mm", "3mm", "挂号费:" + temp.reqFee);
+                LODOP.ADD_PRINT_TEXT("47mm", "6mm", "50mm", "3mm", "诊查费:" + temp.clinicFee);
+                LODOP.ADD_PRINT_TEXT("47mm", "56mm", "50mm", "3mm", "其他:" + temp.othFee);
+                LODOP.ADD_PRINT_TEXT("52mm", "6mm", "50mm", "3mm", "工本费:" + temp.brochureFee);
                 LODOP.ADD_PRINT_TEXT("65mm", "21mm", "60mm", "3mm", res.totalFee + " 元");
                 LODOP.ADD_PRINT_TEXT("72mm", "19mm", "60mm", "3mm", res.totalFeeStr);
                 LODOP.ADD_PRINT_TEXT("79mm", "0mm", "15mm", "3mm", res.year);//年

+ 29 - 0
src/test/java/cn/hnthyy/thmz/HotelTimeTest.java

@@ -0,0 +1,29 @@
+package cn.hnthyy.thmz;
+
+import org.apache.commons.lang3.StringUtils;
+
+public class HotelTimeTest {
+    private int IsAfternoon(int currentTime) {
+        System.out.println(currentTime);
+        return currentTime - 12;
+    }
+
+    public static void main(String[] args) {
+        HotelTimeTest htt = new HotelTimeTest();
+        int flg = htt.IsAfternoon(java.util.Calendar.getInstance().getTime().getHours());
+        if (flg >= 0)
+            System.out.println("已经超过12点了");
+        else if (flg < 0)
+            System.out.println("还没有超过12点");
+
+
+        String s ="";
+        for (int i=0;i<20; i++){
+            if(StringUtils.isBlank(s)){
+                continue;
+            }
+            System.out.println(i);
+        }
+
+    }
+}