Bladeren bron

fix 修改挂号接口

DYH2020 2 jaren geleden
bovenliggende
commit
6ddb7d34a4

+ 28 - 88
onemini-hospital-empty/src/main/java/com/ywt/alipaympapi/service/impl/IsvRegisterServiceImpl.java

@@ -369,85 +369,11 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
         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
     public OrderConfirmResponseData orderConfirm(OrderConfirmRequest request) throws Exception {
         log.info("IsvRegisterServiceImpl#orderConfirm--OrderConfirmRequest:{}", JsonSerializer.toJson(request));
-        int userId = ContextHelper.getCurrentUserIdWrapped();//用户唯一识别号
+        int userId = ContextHelper.getCurrentUserIdWrapped();
         int hospitalId = BizUtil.getCurrentHospitalId();
         String deptCode = request.getDeptCode();
         String deptName = request.getDeptName();
@@ -461,6 +387,9 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
         String endTime = request.getEndTime();
         int medicalCardId = request.getMedicalCardId();
         String scheduleItemCode = request.getScheduleItemCode();
+        int deptId = request.getDeptId();
+        String lockQueueNo = request.getLockQueueNo();
+        String availableNumStr = request.getAvailableNumStr();
 
         if (hospitalId < 1) {
             throw new AppMessageException("医院不存在");
@@ -474,6 +403,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
         if (StringHelper.isNullOrWhiteSpace(registeredDate)) {
             throw new AppMessageException("请选择挂号日期");
         }
+
         Date date = DateUtil.parseDate(registeredDate, "yyyy-MM-dd");
         if (date == null) {
             throw new AppMessageException("预约日期格式不正确");
@@ -494,10 +424,18 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
         if (StringHelper.isNullOrWhiteSpace(scheduleItemCode)) {
             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 paymentChannel = total > 0
+                ? PaymentChannelEnum.ALI_PAY.getValue()
+                : PaymentChannelEnum.FREE.getValue();
         int source;
-        int terminal = ContextHelper.getCurrentTerminalWrapped();
+        int terminal = BizUtil.getCurrentTerminalWrapped();
         switch (TerminalEnum.valueOf(terminal)) {
             case TAI_HE_OFFICIAL:
                 source = TerminalEnum.TAI_HE_OFFICIAL.getValue();
@@ -509,17 +447,15 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
                 source = TerminalEnum.TaiheWxOfficial.getValue();
                 break;
         }
-        int paymentChannel = total > 0 ? PaymentChannelEnum.ALI_PAY.getValue() : PaymentChannelEnum.FREE.getValue();
 
-        CreateTaiheRegisteredOrderRequest req = CreateTaiheRegisteredOrderRequest.newBuilder()
-                .setHospitalId(hospitalId)
+        CreateRegisteredRequest req = CreateRegisteredRequest.newBuilder()
                 .setDeptCode(deptCode)
                 .setDeptName(deptName)
                 .setDoctorCode(doctorCode)
                 .setDoctorName(doctorName)
                 .setTotal(total)
-                .setRegisteredFee((int) (registeredFee * 100))
-                .setMedicalFee((int) (medicalFee * 100))
+                .setRegisteredFee(registeredFeeInt)
+                .setMedicalFee(medicalFeeInt)
                 .setRegisteredDate(date.getTime())
                 .setStartTime(startTime)
                 .setEndTime(endTime)
@@ -528,12 +464,17 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
                 .setScheduleItemCode(scheduleItemCode)
                 .setPaymentChannel(paymentChannel)
                 .setSource(source)
+                .setPeriod(period)
+                .setDoctorTitle("")
+                .setDeptId(Checker.getIntegerValue(deptId))
+                .setLockQueueNo(lockQueueNo)
+                .setAvailableNumStr(availableNumStr)
+                .setHospitalId(hospitalId)
                 .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)) {
             //非互联网医院名医诊区挂号
@@ -542,7 +483,6 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
             responseData.setOrderType(res.getOrderType());
             responseData.setAmount(String.format("%.2f", (registeredFee + medicalFee)));
             responseData.setStatus(res.getStatus());
-
             return responseData;
         }
         return null;
@@ -886,7 +826,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
     }
 
 
-    private int getStatus (String statusName) {
+    private int getStatus(String statusName) {
         if ("已完成".equals(statusName)) {
             return 1;
         }

+ 4 - 0
onemini-hospital-sdk/src/main/java/com/ywt/request/register/OrderConfirmRequest.java

@@ -34,6 +34,10 @@ public class OrderConfirmRequest implements IsvRequest<OrderConfirmResponseData>
     private String endTime;     // 预约结束时间:HH:MI
     private int medicalCardId;  // 就诊人Id
     private String scheduleItemCode;    // 门诊排班项记录标识
+    private int deptId;         // 科室ID
+    private String lockQueueNo; // 锁住的挂号编号
+    private String availableNumStr; // 可用的编号
+
 
     @Override
     public String serviceName() {