|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|