|
@@ -369,85 +369,11 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 得到分时排班信息
|
|
|
|
- *
|
|
|
|
- * @param deptCode
|
|
|
|
- * @param doctorCode
|
|
|
|
- * @param serviceDate
|
|
|
|
- * @param period
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- private QueryDoctorScheduleListResponseData getScheduleTimeInfoResponse(String deptCode, String doctorCode, String serviceDate,
|
|
|
|
- int period, int hospitalId) {
|
|
|
|
- List<ScheduleInfo> lst = new LinkedList<>();
|
|
|
|
-
|
|
|
|
- GetScheduleTimeInfoRequest getScheduleTimeInfoRequest = GetScheduleTimeInfoRequest.newBuilder()
|
|
|
|
- .setDeptCode(deptCode)
|
|
|
|
- .setDoctorCode(doctorCode)
|
|
|
|
- .setServiceDate(serviceDate)
|
|
|
|
- .setDatePeriod(period)
|
|
|
|
- .setHospitalId(hospitalId)
|
|
|
|
- .build();
|
|
|
|
- GetScheduleTimeInfoResponse getScheduleTimeInfoResponse = taiheServiceBlockingStub.getScheduleTimeInfo(getScheduleTimeInfoRequest);
|
|
|
|
-
|
|
|
|
- if (getScheduleTimeInfoResponse.getCode() == ResultCode.SUCCEED_VALUE) {
|
|
|
|
- List<ScheduleTimeInfo> scheduleTimeInfoList = getScheduleTimeInfoResponse.getScheduleTimeInfosList();
|
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
|
- String strDate = DateUtil.formatDate(calendar.getTime(), "yyyy-MM-dd");
|
|
|
|
- String strTime = DateUtil.formatDate(calendar.getTime(), "HHmm");
|
|
|
|
- int time = Integer.parseInt(strTime);
|
|
|
|
-
|
|
|
|
- String strEndTime;
|
|
|
|
- String flag;
|
|
|
|
- int tmp;
|
|
|
|
- int left;
|
|
|
|
-
|
|
|
|
- for (ScheduleTimeInfo scheduleTimeInfo : scheduleTimeInfoList) {
|
|
|
|
- flag = scheduleTimeInfo.getAvailableFlag();
|
|
|
|
- left = scheduleTimeInfo.getAvailableLeftNum();
|
|
|
|
-
|
|
|
|
- if (strDate.equals(serviceDate) && !StringHelper.isNullOrWhiteSpace(scheduleTimeInfo.getEndTime())) {
|
|
|
|
- strEndTime = scheduleTimeInfo.getEndTime();
|
|
|
|
- tmp = Integer.parseInt(strEndTime.replace(":", ""));
|
|
|
|
-
|
|
|
|
- if (tmp < time) {
|
|
|
|
- left = 0;
|
|
|
|
- flag = "N";
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- 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) {
|
|
|
|
- QueryDoctorScheduleListResponseData dateMap = new QueryDoctorScheduleListResponseData();
|
|
|
|
- dateMap.setServiceDate(serviceDate);
|
|
|
|
- dateMap.setPeriod(period);
|
|
|
|
- dateMap.setDatePeriod(DatePeriodEnum.valueOf(period).getDisplayName());
|
|
|
|
- dateMap.setSchedule(lst);
|
|
|
|
-
|
|
|
|
- return dateMap;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
// 挂号确认
|
|
// 挂号确认
|
|
@Override
|
|
@Override
|
|
public OrderConfirmResponseData orderConfirm(OrderConfirmRequest request) throws Exception {
|
|
public OrderConfirmResponseData orderConfirm(OrderConfirmRequest request) throws Exception {
|
|
log.info("IsvRegisterServiceImpl#orderConfirm--OrderConfirmRequest:{}", JsonSerializer.toJson(request));
|
|
log.info("IsvRegisterServiceImpl#orderConfirm--OrderConfirmRequest:{}", JsonSerializer.toJson(request));
|
|
- int userId = ContextHelper.getCurrentUserIdWrapped();//用户唯一识别号
|
|
|
|
|
|
+ int userId = ContextHelper.getCurrentUserIdWrapped();
|
|
int hospitalId = BizUtil.getCurrentHospitalId();
|
|
int hospitalId = BizUtil.getCurrentHospitalId();
|
|
String deptCode = request.getDeptCode();
|
|
String deptCode = request.getDeptCode();
|
|
String deptName = request.getDeptName();
|
|
String deptName = request.getDeptName();
|
|
@@ -461,6 +387,9 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
String endTime = request.getEndTime();
|
|
String endTime = request.getEndTime();
|
|
int medicalCardId = request.getMedicalCardId();
|
|
int medicalCardId = request.getMedicalCardId();
|
|
String scheduleItemCode = request.getScheduleItemCode();
|
|
String scheduleItemCode = request.getScheduleItemCode();
|
|
|
|
+ int deptId = request.getDeptId();
|
|
|
|
+ String lockQueueNo = request.getLockQueueNo();
|
|
|
|
+ String availableNumStr = request.getAvailableNumStr();
|
|
|
|
|
|
if (hospitalId < 1) {
|
|
if (hospitalId < 1) {
|
|
throw new AppMessageException("医院不存在");
|
|
throw new AppMessageException("医院不存在");
|
|
@@ -474,6 +403,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
if (StringHelper.isNullOrWhiteSpace(registeredDate)) {
|
|
if (StringHelper.isNullOrWhiteSpace(registeredDate)) {
|
|
throw new AppMessageException("请选择挂号日期");
|
|
throw new AppMessageException("请选择挂号日期");
|
|
}
|
|
}
|
|
|
|
+
|
|
Date date = DateUtil.parseDate(registeredDate, "yyyy-MM-dd");
|
|
Date date = DateUtil.parseDate(registeredDate, "yyyy-MM-dd");
|
|
if (date == null) {
|
|
if (date == null) {
|
|
throw new AppMessageException("预约日期格式不正确");
|
|
throw new AppMessageException("预约日期格式不正确");
|
|
@@ -494,10 +424,18 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
if (StringHelper.isNullOrWhiteSpace(scheduleItemCode)) {
|
|
if (StringHelper.isNullOrWhiteSpace(scheduleItemCode)) {
|
|
throw new AppMessageException("门诊排班项记录标识不能为空");
|
|
throw new AppMessageException("门诊排班项记录标识不能为空");
|
|
}
|
|
}
|
|
|
|
+ if (userId == 0) {
|
|
|
|
+ throw new AppMessageException("请先登录");
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ int registeredFeeInt = (int) (registeredFee * 100);
|
|
|
|
+ int medicalFeeInt = (int) (medicalFee * 100);
|
|
int total = (int) ((registeredFee + medicalFee) * 100);
|
|
int total = (int) ((registeredFee + medicalFee) * 100);
|
|
|
|
+ int paymentChannel = total > 0
|
|
|
|
+ ? PaymentChannelEnum.ALI_PAY.getValue()
|
|
|
|
+ : PaymentChannelEnum.FREE.getValue();
|
|
int source;
|
|
int source;
|
|
- int terminal = ContextHelper.getCurrentTerminalWrapped();
|
|
|
|
|
|
+ int terminal = BizUtil.getCurrentTerminalWrapped();
|
|
switch (TerminalEnum.valueOf(terminal)) {
|
|
switch (TerminalEnum.valueOf(terminal)) {
|
|
case TAI_HE_OFFICIAL:
|
|
case TAI_HE_OFFICIAL:
|
|
source = TerminalEnum.TAI_HE_OFFICIAL.getValue();
|
|
source = TerminalEnum.TAI_HE_OFFICIAL.getValue();
|
|
@@ -509,17 +447,15 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
source = TerminalEnum.TaiheWxOfficial.getValue();
|
|
source = TerminalEnum.TaiheWxOfficial.getValue();
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- int paymentChannel = total > 0 ? PaymentChannelEnum.ALI_PAY.getValue() : PaymentChannelEnum.FREE.getValue();
|
|
|
|
|
|
|
|
- CreateTaiheRegisteredOrderRequest req = CreateTaiheRegisteredOrderRequest.newBuilder()
|
|
|
|
- .setHospitalId(hospitalId)
|
|
|
|
|
|
+ CreateRegisteredRequest req = CreateRegisteredRequest.newBuilder()
|
|
.setDeptCode(deptCode)
|
|
.setDeptCode(deptCode)
|
|
.setDeptName(deptName)
|
|
.setDeptName(deptName)
|
|
.setDoctorCode(doctorCode)
|
|
.setDoctorCode(doctorCode)
|
|
.setDoctorName(doctorName)
|
|
.setDoctorName(doctorName)
|
|
.setTotal(total)
|
|
.setTotal(total)
|
|
- .setRegisteredFee((int) (registeredFee * 100))
|
|
|
|
- .setMedicalFee((int) (medicalFee * 100))
|
|
|
|
|
|
+ .setRegisteredFee(registeredFeeInt)
|
|
|
|
+ .setMedicalFee(medicalFeeInt)
|
|
.setRegisteredDate(date.getTime())
|
|
.setRegisteredDate(date.getTime())
|
|
.setStartTime(startTime)
|
|
.setStartTime(startTime)
|
|
.setEndTime(endTime)
|
|
.setEndTime(endTime)
|
|
@@ -528,12 +464,17 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
.setScheduleItemCode(scheduleItemCode)
|
|
.setScheduleItemCode(scheduleItemCode)
|
|
.setPaymentChannel(paymentChannel)
|
|
.setPaymentChannel(paymentChannel)
|
|
.setSource(source)
|
|
.setSource(source)
|
|
|
|
+ .setPeriod(period)
|
|
|
|
+ .setDoctorTitle("")
|
|
|
|
+ .setDeptId(Checker.getIntegerValue(deptId))
|
|
|
|
+ .setLockQueueNo(lockQueueNo)
|
|
|
|
+ .setAvailableNumStr(availableNumStr)
|
|
|
|
+ .setHospitalId(hospitalId)
|
|
.build();
|
|
.build();
|
|
- CreateTaiheRegisteredOrderResponse res = orderServiceBlockingStub.createTaiheRegisteredOrder(req);
|
|
|
|
- Result result = res.getResult();
|
|
|
|
-
|
|
|
|
- if (result.getCode() != ResultCode.SUCCEED) {
|
|
|
|
- throw new AppMessageException(result.getInfo()); //预约失败
|
|
|
|
|
|
+ CreateRegisteredResponse res = taiheRegisterServiceBlockingStub.createRegistered(req);
|
|
|
|
+ if (res.getCode() != ResultCode.SUCCEED_VALUE) {
|
|
|
|
+ //预约失败
|
|
|
|
+ throw new AppMessageException(res.getMsg());
|
|
}
|
|
}
|
|
if (!systemSrv.checkIsNetDept(deptCode, hospitalId)) {
|
|
if (!systemSrv.checkIsNetDept(deptCode, hospitalId)) {
|
|
//非互联网医院名医诊区挂号
|
|
//非互联网医院名医诊区挂号
|
|
@@ -542,7 +483,6 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
responseData.setOrderType(res.getOrderType());
|
|
responseData.setOrderType(res.getOrderType());
|
|
responseData.setAmount(String.format("%.2f", (registeredFee + medicalFee)));
|
|
responseData.setAmount(String.format("%.2f", (registeredFee + medicalFee)));
|
|
responseData.setStatus(res.getStatus());
|
|
responseData.setStatus(res.getStatus());
|
|
-
|
|
|
|
return responseData;
|
|
return responseData;
|
|
}
|
|
}
|
|
return null;
|
|
return null;
|
|
@@ -886,7 +826,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- private int getStatus (String statusName) {
|
|
|
|
|
|
+ private int getStatus(String statusName) {
|
|
if ("已完成".equals(statusName)) {
|
|
if ("已完成".equals(statusName)) {
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|