Prechádzať zdrojové kódy

feature: 挂号订单列表与详情

wuyongyi 2 rokov pred
rodič
commit
664c17d145

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

@@ -18,9 +18,7 @@ import com.ywt.gapi.order.CreateTaiheRegisteredOrderResponse;
 import com.ywt.gapi.order.OrderServiceGrpc;
 import com.ywt.gapi.system.Dept;
 import com.ywt.gapi.system.*;
-import com.ywt.gapi.taihe.register.CancelRegisteredRequest;
-import com.ywt.gapi.taihe.register.CancelRegisteredResponse;
-import com.ywt.gapi.taihe.register.TaiheRegisterServiceGrpc;
+import com.ywt.gapi.taihe.register.*;
 import com.ywt.gapi.third.taihe.*;
 import com.ywt.gapi.user.*;
 import com.ywt.model.BaseResponse;
@@ -30,6 +28,7 @@ import com.ywt.request.queue.QueryQueueListRequest;
 import com.ywt.request.register.*;
 import com.ywt.response.queue.QueryQueueListResponse;
 import com.ywt.response.register.*;
+import com.ywt.response.report.QueryReportListResponseData;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -43,6 +42,7 @@ import java.util.stream.IntStream;
 @Service
 @Slf4j
 public class IsvRegisterServiceImpl implements IsvRegisterService {
+
     @Autowired
     private TaiheRegisterServiceGrpc.TaiheRegisterServiceBlockingStub taiheRegisterServiceBlockingStub;
     @Autowired
@@ -129,7 +129,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
         String doctorCode = "";
         String serviceDate = "";
         String serviceCode = "";
-        Map<String, Object> dataMap = getScheduleListCommon(hospitalId, deptCode, doctorCode, serviceCode, serviceDate,-1, -1);
+        Map<String, Object> dataMap = getScheduleListCommon(hospitalId, deptCode, doctorCode, serviceCode, serviceDate, -1, -1);
         List<QueryDepOrderSourceRemainResponseData> dataList = new ArrayList<>();
         if (!Checker.isNone(dataMap.get("hasSchedulingList"))) {
             dataList = (List<QueryDepOrderSourceRemainResponseData>) dataMap.get("hasSchedulingList");
@@ -201,7 +201,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
         String doctorCode = Checker.getStringValue(request.getDoctorCode());
         String serviceDate = Checker.getStringValue(request.getDate());
         String serviceCode = Checker.getStringValue(request.getServiceCode());
-        Map<String, Object> dataMap = getScheduleListCommon(hospitalId, deptCode, doctorCode, serviceCode, serviceDate,-1, -1);
+        Map<String, Object> dataMap = getScheduleListCommon(hospitalId, deptCode, doctorCode, serviceCode, serviceDate, -1, -1);
         List<QueryDepDoctorListResponseData> dataList = new ArrayList<>();
         if (!Checker.isNone(dataMap.get("groupByDoctorList"))) {
             dataList = (List<QueryDepDoctorListResponseData>) dataMap.get("groupByDoctorList");
@@ -275,7 +275,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
         String endDate = DateUtil.formatDate(calendar.getTime(), "yyyy-MM-dd"); //日期
 
         // 如果传了具体的日期,那之查这一天的
-        if (!Checker.isNone(serviceDate)){
+        if (!Checker.isNone(serviceDate)) {
             startDate = serviceDate;
             endDate = serviceDate;
         }
@@ -363,7 +363,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
             //号源截止时间段
             os.setEndTime("");
             //挂号费用
-            os.setCost(BizUtil.cent2Yuan(s.getFee())+"");
+            os.setCost(BizUtil.cent2Yuan(s.getFee()) + "");
             //剩余数量
             os.setRemain(Checker.getIntegerValue(s.getAvailableLeftNum()));
             //true:确认挂号时支付,false:就诊时支付
@@ -398,7 +398,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
     private List<QueryDepOrderSourceRemainResponseData> checkHasSchedulingGroupByDate(List<Schedule> scheduleList, int startOffset, int endOffset) {
         List<QueryDepOrderSourceRemainResponseData> remainResponseList = new ArrayList<>();
         if (endOffset > startOffset && !Checker.isNone(scheduleList)) {
-            for (int offset = startOffset; offset < endOffset; offset++ ){
+            for (int offset = startOffset; offset < endOffset; offset++) {
                 Calendar c = Calendar.getInstance();
                 if (offset > 0) {
                     c.add(Calendar.DATE, offset);
@@ -407,7 +407,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
                 List<Schedule> itemScheduleList = scheduleList.stream().filter(s -> strDate.equals(s.getServiceDate())).collect(Collectors.toList());
                 QueryDepOrderSourceRemainResponseData data = new QueryDepOrderSourceRemainResponseData();
                 int remain = 0;    //当期日期是否有排班
-                if (!Checker.isNone(itemScheduleList)){
+                if (!Checker.isNone(itemScheduleList)) {
                     remain = itemScheduleList.stream().mapToInt(Schedule::getAvailableLeftNum).sum();
                 }
                 data.setDate(strDate);
@@ -600,7 +600,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
      * @return
      */
     private QueryDoctorScheduleListResponseData getScheduleTimeInfoResponse(String deptCode, String doctorCode, String serviceDate,
-                                                            int period, int hospitalId) {
+                                                                            int period, int hospitalId) {
         List<ScheduleInfo> lst = new LinkedList<>();
 
         GetScheduleTimeInfoRequest getScheduleTimeInfoRequest = GetScheduleTimeInfoRequest.newBuilder()
@@ -770,13 +770,87 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
     }
 
     @Override
-    public QueryOrderDetailResponseData queryOrderDetail(QueryOrderDetailRequest request) {
-        return null;
+    public QueryOrderDetailResponseData queryOrderDetail(QueryOrderDetailRequest request) throws Exception {
+        if (Checker.isNone(request.getOrderId())) {
+            throw new AppMessageException("没有挂号详情");
+
+        }
+        int orderId = Integer.parseInt(request.getOrderId());
+        int userId = ContextHelper.getCurrentUserIdWrapped();
+        int pageIndex = 1;
+        int pageSize = 1000;
+        GetCommonOrderListRequest req = GetCommonOrderListRequest.newBuilder()
+                .setPageIndex(pageIndex)
+                .setPageSize(pageSize)
+                .setUserId(userId)
+                .build();
+        GetCommonOrderListResponse res = taiheRegisterServiceBlockingStub.getCommonOrderList(req);
+        if (res.getCode() == ResultCode.SUCCEED_VALUE) {
+            for (CommonOrder item : res.getOrderList()) {
+                if(orderId == item.getOrderId()){
+                    String deptCode = item.getDeptCode();
+                    double amount = item.getAmount() / 100d;
+                    QueryOrderDetailResponseData data = new QueryOrderDetailResponseData();
+                    data.setOrderId(Integer.toString(orderId));
+                    data.setOrderNo(item.getOrderNo());
+                    data.setUserName(item.getPatientName());
+                    data.setDoctorName(item.getDoctorName());
+                    data.setDepName(item.getDeptName());
+                    data.setDistrictName(item.getHospitalName());
+                    String amountStr = String.format("%.2f", amount);
+                    data.setAmount(amountStr);
+                    data.setStatus(getStatus(item.getStatusName()));
+                    data.setCreateTime(Checker.getStringValue(item.getStartTime()));
+                    data.setEndTime(Checker.getStringValue(item.getEndTime()));
+                    return data;
+                }
+            }
+        }
+        throw new AppMessageException("没有挂号详情");
     }
 
     @Override
-    public PageVO<QueryOrderListResponseData> queryOrderList(QueryOrderListRequest request) {
-        return null;
+    public PageVO<QueryOrderListResponseData> queryOrderList(QueryOrderListRequest request) throws Exception {
+        if (request.getPageIndex() < 1) {
+            throw new AppMessageException("页码错误");
+
+        }
+        if (request.getPageSize() < 1) {
+            throw new AppMessageException("页大小错误");
+        }
+        List<QueryOrderListResponseData> list = new ArrayList<>();
+        int total = 0;
+        int userId = ContextHelper.getCurrentUserIdWrapped();
+        GetCommonOrderListRequest req = GetCommonOrderListRequest.newBuilder()
+                .setPageIndex(request.getPageIndex())
+                .setPageSize(request.getPageSize())
+                .setUserId(userId)
+                .build();
+        GetCommonOrderListResponse res = taiheRegisterServiceBlockingStub.getCommonOrderList(req);
+        if (res.getCode() == ResultCode.SUCCEED_VALUE) {
+            total = res.getOrderList().size();
+            for (CommonOrder item : res.getOrderList()) {
+                String deptCode = item.getDeptCode();
+                double amount = item.getAmount() / 100d;
+                QueryOrderListResponseData data = new QueryOrderListResponseData();
+                int orderId = Checker.getIntegerValue(item.getOrderId());
+                data.setOrderId(Integer.toString(orderId));
+                data.setOrderNo(item.getOrderNo());
+                data.setUserName(item.getPatientName());
+                data.setDoctorName(item.getDoctorName());
+                data.setDepName(item.getDeptName());
+                data.setDistrictName(item.getHospitalName());
+                String amountStr = String.format("%.2f", amount);
+                data.setAmount(amountStr);
+                data.setStatus(getStatus(item.getStatusName()));
+                data.setCreateTime(Checker.getStringValue(item.getStartTime()));
+                data.setEndTime(Checker.getStringValue(item.getEndTime()));
+                list.add(data);
+            }
+        }
+        Pagination pagination = new Pagination(request.getPageIndex(), total, total);
+        PageVO<QueryOrderListResponseData> resp = new PageVO<>(pagination, list);
+        return resp;
     }
 
     @Override
@@ -801,7 +875,8 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
     }
 
     @Override
-    public List<QueryHospitalDistrictListResponseData> queryHospitalDistrictList(QueryHospitalDistrictListRequest request) throws Exception {
+    public List<QueryHospitalDistrictListResponseData> queryHospitalDistrictList(QueryHospitalDistrictListRequest
+                                                                                         request) throws Exception {
         int hospitalId = BizUtil.getCurrentHospitalId();
         List<Integer> hospitalIds = new ArrayList<>();
         hospitalIds.add(hospitalId);
@@ -1013,4 +1088,21 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
         PageVO<QueryDoctorListResponseData> res = new PageVO<>(pagination, doctorList);
         return res;
     }
+
+
+    private int getStatus (String statusName) {
+        if ("已完成".equals(statusName)) {
+            return 1;
+        }
+        if ("待支付".equals(statusName)) {
+            return 0;
+        }
+        if ("已取消".equals(statusName)) {
+            return 9;
+        }
+        if ("待就诊".equals(statusName)) {
+            return 2;
+        }
+        return 0;
+    }
 }

+ 18 - 5
onemini-hospital-sdk/src/main/java/com/ywt/alipaympapi/controller/AppointmentController.java

@@ -54,10 +54,16 @@ public class AppointmentController {
      */
     @PostMapping("isvRequest.order.orderList")
     public ResponseVO<PageVO<QueryOrderListResponseData>> queryOrderList(QueryOrderListRequest request) {
-        PageVO<QueryOrderListResponseData> data = isvRegisterService.queryOrderList(request);
-
+        try {
+            PageVO<QueryOrderListResponseData> data = isvRegisterService.queryOrderList(request);
+            return ResponseVO.success(data);
+        } catch (AppMessageException e) {
+            return ResponseVO.fail(Code.RESP_CODE_PARAM_ERROR, e.getMessage());
+        } catch (Exception e) {
+            log.error("AppointmentController#order.orderList(request = {}):\n {}", request, e.getMessage(), e);
+            return ResponseVO.fail(Code.RESP_CODE_APP_EXCEPTION, e.getMessage());
+        }
 
-        return ResponseVO.success(data);
 
     }
 
@@ -69,8 +75,15 @@ public class AppointmentController {
      */
     @PostMapping("isvRequest.order.orderDetail")
     public ResponseVO<QueryOrderDetailResponseData> queryOrderDetail(QueryOrderDetailRequest request) {
+        try {
+            return ResponseVO.success(isvRegisterService.queryOrderDetail(request));
+        }catch (AppMessageException e) {
+            return ResponseVO.fail(Code.RESP_CODE_PARAM_ERROR, e.getMessage());
+        } catch (Exception e) {
+            log.error("AppointmentController#.order.orderDetail(request = {}):\n {}", request, e.getMessage(), e);
+            return ResponseVO.fail(Code.RESP_CODE_APP_EXCEPTION, e.getMessage());
+        }
 
-        return ResponseVO.success(isvRegisterService.queryOrderDetail(request));
     }
 
     /**
@@ -80,7 +93,7 @@ public class AppointmentController {
      * @return
      */
     @PostMapping("isvRequest.order.cancelOrder")
-    public ResponseVO<CancelOrderResponseData> cancelOrder(CancelOrderRequest request){
+    public ResponseVO<CancelOrderResponseData> cancelOrder(CancelOrderRequest request) {
         try {
             return ResponseVO.success(isvRegisterService.cancelOrder(request));
         } catch (AppMessageException e) {

+ 3 - 2
onemini-hospital-sdk/src/main/java/com/ywt/alipaympapi/service/IsvRegisterService.java

@@ -1,6 +1,7 @@
 package com.ywt.alipaympapi.service;
 
 
+import com.ywt.core.exception.AppMessageException;
 import com.ywt.model.PageVO;
 import com.ywt.request.queue.QueryQueueListRequest;
 import com.ywt.request.register.*;
@@ -67,7 +68,7 @@ public interface IsvRegisterService {
      * @param request
      * @return 查询结果
      **/
-    QueryOrderDetailResponseData queryOrderDetail(QueryOrderDetailRequest request);
+    QueryOrderDetailResponseData queryOrderDetail(QueryOrderDetailRequest request) throws AppMessageException, Exception;
 
     /**
      * 预约单列表查询
@@ -75,7 +76,7 @@ public interface IsvRegisterService {
      * @param request
      * @return 查询结果
      **/
-    PageVO<QueryOrderListResponseData> queryOrderList(QueryOrderListRequest request);
+    PageVO<QueryOrderListResponseData> queryOrderList(QueryOrderListRequest request) throws AppMessageException, Exception;
 
     /**
      * 取消预约