|
@@ -135,6 +135,63 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
|
return dataList;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<QueryDoctorScheduleListResponseData> getDoctorScheduleList(QueryDoctorScheduleListRequest request) throws Exception {
|
|
|
+ int hospitalId = Checker.getIntegerValue(request.getHospitalId());
|
|
|
+ String deptCode = Checker.getStringValue(request.getDeptCode());
|
|
|
+ String doctorCode = Checker.getStringValue(request.getDoctorCode());
|
|
|
+ String serviceDate = Checker.getStringValue(request.getServiceDate());
|
|
|
+ Integer period = Checker.getIntegerValue(request.getPeriod());
|
|
|
+ if (StringHelper.isNullOrWhiteSpace(deptCode)) {
|
|
|
+ throw new AppMessageException("科室不存在");
|
|
|
+ }
|
|
|
+ if (StringHelper.isNullOrWhiteSpace(doctorCode)) {
|
|
|
+ throw new AppMessageException("医生不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<QueryDoctorScheduleListResponseData> dataList = new LinkedList<>();
|
|
|
+
|
|
|
+ if (!StringHelper.isNullOrWhiteSpace(serviceDate)) {
|
|
|
+ Date date = DateUtil.parseDate(serviceDate, "yyyy-MM-dd");
|
|
|
+ if (date == null) {
|
|
|
+ throw new AppMessageException("invalid serviceDate");
|
|
|
+ }
|
|
|
+ //查询医生某一天的排班分时信息
|
|
|
+ if (period == null) {
|
|
|
+ throw new AppMessageException("请选择时段");
|
|
|
+ }
|
|
|
+ if (DatePeriodEnum.valueOf(period) == null) {
|
|
|
+ throw new AppMessageException("时段不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ String strDate = DateUtil.formatDate(date, "yyyy-MM-dd");
|
|
|
+ QueryDoctorScheduleListResponseData map = getScheduleTimeInfoResponse(deptCode, doctorCode, strDate, period, hospitalId);
|
|
|
+
|
|
|
+ if (map != null) {
|
|
|
+ dataList.add(map);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //取医生8天排班的分时信息
|
|
|
+ int[] periods = {DatePeriodEnum.MORNING.getValue(), DatePeriodEnum.AFTERNOON.getValue()};
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+
|
|
|
+ for (int offset = 0; offset < 8; offset++) {
|
|
|
+ calendar.add(Calendar.DATE, 1);
|
|
|
+ String strDate = DateUtil.formatDate(calendar.getTime(), "yyyy-MM-dd");
|
|
|
+
|
|
|
+ for (int p : periods) {
|
|
|
+ QueryDoctorScheduleListResponseData map = getScheduleTimeInfoResponse(deptCode, doctorCode, strDate, p, hospitalId);
|
|
|
+
|
|
|
+ if (map != null) {
|
|
|
+ dataList.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return dataList;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public PageVO<QueryDepDoctorListResponseData> queryDepDoctorList(QueryDepDoctorListRequest request) throws Exception {
|
|
|
int hospitalId = BizUtil.getCurrentHospitalId();
|
|
@@ -381,7 +438,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
|
if (hospitalId <= 0) {
|
|
|
hospitalId = BizUtil.getHospitalIdByTerminalId(BizUtil.getCurrentTerminalWrapped());
|
|
|
}
|
|
|
- List<Map<String, Object>> dataList = new LinkedList<>();
|
|
|
+ List<QueryDoctorScheduleListResponseData> dataList = new LinkedList<>();
|
|
|
if (!StringHelper.isNullOrWhiteSpace(serviceDate)) {
|
|
|
Date date = DateUtil.parseDate(serviceDate, "yyyy-MM-dd");
|
|
|
if (date == null) {
|
|
@@ -395,7 +452,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
|
throw new AppMessageException("时段不存在");
|
|
|
}
|
|
|
String strDate = DateUtil.formatDate(date, "yyyy-MM-dd");
|
|
|
- Map<String, Object> map = getScheduleTimeInfoResponse(deptCode, doctorCode, strDate, period, hospitalId);
|
|
|
+ QueryDoctorScheduleListResponseData map = getScheduleTimeInfoResponse(deptCode, doctorCode, strDate, period, hospitalId);
|
|
|
if (map != null) {
|
|
|
dataList.add(map);
|
|
|
}
|
|
@@ -409,7 +466,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
|
String strDate = DateUtil.formatDate(calendar.getTime(), "yyyy-MM-dd");
|
|
|
|
|
|
for (int p : periods) {
|
|
|
- Map<String, Object> map = getScheduleTimeInfoResponse(deptCode, doctorCode, strDate, p, hospitalId);
|
|
|
+ QueryDoctorScheduleListResponseData map = getScheduleTimeInfoResponse(deptCode, doctorCode, strDate, p, hospitalId);
|
|
|
|
|
|
if (map != null) {
|
|
|
dataList.add(map);
|
|
@@ -432,8 +489,8 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
|
int doctorId = 0;
|
|
|
|
|
|
if (dataList.size() > 0) {
|
|
|
- Map<String, Object> map = dataList.get(0);
|
|
|
- String strDate = map.get("serviceDate").toString();
|
|
|
+ QueryDoctorScheduleListResponseData map = dataList.get(0);
|
|
|
+ String strDate = map.getServiceDate();
|
|
|
GetScheduleListRequest getScheduleListRequest = GetScheduleListRequest.newBuilder()
|
|
|
.setDeptCode(deptCode)
|
|
|
.setDoctorCode(doctorCode)
|
|
@@ -538,9 +595,9 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
|
* @param period
|
|
|
* @return
|
|
|
*/
|
|
|
- private Map<String, Object> getScheduleTimeInfoResponse(String deptCode, String doctorCode, String serviceDate,
|
|
|
+ private QueryDoctorScheduleListResponseData getScheduleTimeInfoResponse(String deptCode, String doctorCode, String serviceDate,
|
|
|
int period, int hospitalId) {
|
|
|
- List<Map<String, Object>> lst = new LinkedList<>();
|
|
|
+ List<ScheduleInfo> lst = new LinkedList<>();
|
|
|
|
|
|
GetScheduleTimeInfoRequest getScheduleTimeInfoRequest = GetScheduleTimeInfoRequest.newBuilder()
|
|
|
.setDeptCode(deptCode)
|
|
@@ -577,25 +634,25 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("scheduleItemCode", scheduleTimeInfo.getScheduleItemCode());
|
|
|
- map.put("startTime", scheduleTimeInfo.getStartTime());
|
|
|
- map.put("endTime", scheduleTimeInfo.getEndTime());
|
|
|
- map.put("availableTotalNum", scheduleTimeInfo.getAvailableTotalNum());
|
|
|
- map.put("availableLeftNum", left);
|
|
|
- map.put("availableFlag", flag);
|
|
|
- map.put("availableNumStr", scheduleTimeInfo.getAvailableNumStr());
|
|
|
+ ScheduleInfo map = new ScheduleInfo();
|
|
|
+ map.setScheduleItemCode(scheduleTimeInfo.getScheduleItemCode());
|
|
|
+ map.setStartTime(scheduleTimeInfo.getStartTime());
|
|
|
+ map.setEndTime(scheduleTimeInfo.getEndTime());
|
|
|
+ map.setAvailableTotalNum(scheduleTimeInfo.getAvailableTotalNum());
|
|
|
+ map.setAvailableLeftNum(left);
|
|
|
+ map.setAvailableFlag(flag);
|
|
|
+ map.setAvailableNumStr(scheduleTimeInfo.getAvailableNumStr());
|
|
|
|
|
|
lst.add(map);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (lst.size() > 0) {
|
|
|
- Map<String, Object> dateMap = new HashMap<>();
|
|
|
- dateMap.put("serviceDate", serviceDate);
|
|
|
- dateMap.put("period", period);
|
|
|
- dateMap.put("datePeriod", DatePeriodEnum.valueOf(period).getDisplayName());
|
|
|
- dateMap.put("schedule", lst);
|
|
|
+ QueryDoctorScheduleListResponseData dateMap = new QueryDoctorScheduleListResponseData();
|
|
|
+ dateMap.setServiceDate(serviceDate);
|
|
|
+ dateMap.setPeriod(period);
|
|
|
+ dateMap.setDatePeriod(DatePeriodEnum.valueOf(period).getDisplayName());
|
|
|
+ dateMap.setSchedule(lst);
|
|
|
|
|
|
return dateMap;
|
|
|
}
|