Ver código fonte

Merge branch 'master' of https://gogs.ywtinfo.com/guochengfeng/alipay-mp-service

Walker 2 anos atrás
pai
commit
5db8a8c3e2

+ 26 - 3
onemini-hospital-empty/src/main/java/com/ywt/alipaympapi/models/enums/RegisteredStatusEnum.java

@@ -9,10 +9,12 @@ public enum RegisteredStatusEnum {
     Paid("待支付", 1),
     Cancel("已取消", 1 << 1),
     Took("已取号", 1 << 2),    //相当于 已支付
-    //    Refunded("已退款", 1 << 3),
-    Back("已退号", 1<< 4);//相当于 已退款
+    Refunded("已退款", 1 << 3),
+    UNKNOWN("", 0);
+//    Back("已退号", 1<< 4),//相当于 已退款
+//    Settlement("已结算", 1 << 7);
 
-    RegisteredStatusEnum(String displayName, int value){
+    RegisteredStatusEnum(String displayName, int value) {
         this.displayName = displayName;
         this.value = value;
     }
@@ -28,4 +30,25 @@ public enum RegisteredStatusEnum {
     public int getValue() {
         return value;
     }
+
+
+    public static RegisteredStatusEnum valueOf(int value) {
+        // todo 如果有已退款,优先显示已退款
+        if ((value & Refunded.getValue()) > 0) {
+            return Refunded;
+        }
+        if ((value & Paid.getValue()) > 0 && value < 2 * Paid.value) {
+            return Paid;
+        } else if ((value & Cancel.getValue()) > 0 && value < 2 * Cancel.value) {
+            return Cancel;
+        } else if ((value & Took.getValue()) > 0 && value < 2 * Took.value) {
+            return Took;
+        } else if ((value & Refunded.getValue()) > 0 && value < 2 * Refunded.value) {
+            return Refunded;
+        }
+        return UNKNOWN;
+    }
 }
+
+
+

+ 5 - 3
onemini-hospital-empty/src/main/java/com/ywt/alipaympapi/service/impl/IsvPayServiceImpl.java

@@ -124,7 +124,7 @@ public class IsvPayServiceImpl implements IsvPayService {
         }
         if (request.getStatus() == TYPE_UNPAID_ZFB) {
             PayDetailResponseData da = new PayDetailResponseData();
-            da.setDepName(Checker.getStringValue(request.getDeptName()));
+            da.setDeptName(Checker.getStringValue(request.getDeptName()));
             if(!Checker.isNone(request.getAge()) && request.getAge() > 0){
                 da.setAge(request.getAge());
             }
@@ -136,6 +136,7 @@ public class IsvPayServiceImpl implements IsvPayService {
             da.setPrescribeDate(Checker.getStringValue(request.getPrescribeDate()));
             da.setTotal(request.getTotal());
             da.setUserName(Checker.getStringValue(request.getName()));
+            da.setName(Checker.getStringValue(request.getName()));
             da.setHisOrderNo(Checker.getStringValue(request.getHisOrderNo()));
             da.setAmount(Checker.getStringValue(request.getAmount()));
             da.setCreateTime(Checker.getStringValue(request.getPrescribeDate()));
@@ -412,7 +413,7 @@ public class IsvPayServiceImpl implements IsvPayService {
         int userId = ContextHelper.getCurrentUserIdWrapped();
         int hospitalId = BizUtil.getCurrentHospitalId();
         int terminal = ContextHelper.getCurrentTerminalWrapped();
-        String invoiceNo = prePayConfirm(request.getHisPatientId(), request.getHisClinicCode(), request.getHisOrderNo(), hospitalId, terminal);
+        String invoiceNo = prePayConfirm(request.getHisPatientId(), request.getHisClinicCode(), request.getHisOrderNo(), hospitalId, request.getTotal());
         Date pDate = DateUtil.parseDate(request.getPrescribeDate(), "yyyy-MM-dd HH:mm:ss");
         int sex = 1;
         if (request.getSex().equals("女")) {
@@ -517,8 +518,9 @@ public class IsvPayServiceImpl implements IsvPayService {
                 String invoiceNo = p.getInvoiceNo();
                 return invoiceNo;
             }
+            throw new AppMessageException("预结算:HIS 返回列表数据为空");
         }
-        throw new AppMessageException("预结算:HIS 返回列表数据为空");
+        throw new AppMessageException(response.getMsg());
     }
 
     private void autoCancelPrevOrder(String hisOrderNo) throws AppMessageException {

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

@@ -520,6 +520,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
                 data.setUserName(item.getPatientName());
                 data.setDoctorName(item.getDoctorName());
                 data.setDepName(item.getDeptName());
+                data.setDeptCode(item.getDeptCode());
                 data.setDistrictName(item.getHospitalName());
                 String amountStr = String.format("%.2f", amount);
                 data.setAmount(amountStr);
@@ -528,10 +529,13 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
                 // 预约单状态 (0-待支付, 1-预约成功, 2-叫号中,7-已就诊,8-预期未就诊,9-取消预约)
                 int orderStatus = item.getRegisteredStatus();
                 String statusName = "";
-                if ((item.getRegisteredStatus() & RegisteredStatusEnum.Cancel.getValue()) == RegisteredStatusEnum.Cancel.getValue() ||
-                        (item.getRegisteredStatus() & RegisteredStatusEnum.Back.getValue()) == RegisteredStatusEnum.Back.getValue()) {
+                if ((item.getRegisteredStatus() & RegisteredStatusEnum.Cancel.getValue()) == RegisteredStatusEnum.Cancel.getValue()
+                      ) {
                     statusName = "取消预约";
                     orderStatus = 9;
+                } else if (item.getRegisteredStatus() == RegisteredStatusEnum.Refunded.getValue()) {
+                    statusName = "已退款";
+                    orderStatus = 9;
                 } else if (item.getPaymentStatus() == PaymentStatusEnum.Pending.getValue()) {
                     statusName = "待支付";
                     orderStatus = 0;
@@ -602,6 +606,7 @@ public class IsvRegisterServiceImpl implements IsvRegisterService {
                 data.setUserName(item.getPatientName());
                 data.setDoctorName(item.getDoctorName());
                 data.setDepName(item.getDeptName());
+                data.setDeptCode(item.getDeptCode());
                 data.setDistrictName(item.getHospitalName());
                 data.setTimeRange(item.getStartTime()+"~"+item.getEndTime());
                 String amountStr = String.format("%.2f", amount);

+ 1 - 1
onemini-hospital-empty/src/main/java/com/ywt/alipaympapi/service/impl/NucleicServiceImpl.java

@@ -113,7 +113,7 @@ public class NucleicServiceImpl implements NucleicService {
             throw new AppMessageException("医生不存在");
         }
         Date date = new Date();
-        int deptId = 667;
+        int deptId = 668;
         if (request.getDeptCode().equals("500")) {
             deptId = 670;
         }

+ 2 - 1
onemini-hospital-sdk/src/main/java/com/ywt/response/pay/PayDetailResponseData.java

@@ -10,7 +10,7 @@ import java.util.List;
  **/
 @Data
 public class PayDetailResponseData implements IsvResponseData {
-    private String depName;//科室名称
+    private String deptName;//科室名称
     private String outTradeNo;//商家订单号(区别于支付宝订单号)
     private String tradeNo;//支付宝订单号
     private Integer type;//订单类型标识,现阶段主要是挂号费和充值订单;1-挂号费订单 2-充值订单
@@ -42,4 +42,5 @@ public class PayDetailResponseData implements IsvResponseData {
     private int total;
     private String hisClinicCode;
     private String hisPatientId;
+    private String name;
 }

+ 1 - 0
onemini-hospital-sdk/src/main/java/com/ywt/response/register/QueryOrderDetailResponseData.java

@@ -33,4 +33,5 @@ public class QueryOrderDetailResponseData implements IsvResponseData {
     private String expireTime;//支付过期时间
     private String systemTime;//系统时间
     private String registeredDate;//预约时间
+    private String deptCode;
 }

+ 1 - 0
onemini-hospital-sdk/src/main/java/com/ywt/response/register/QueryOrderListResponseData.java

@@ -31,4 +31,5 @@ public class QueryOrderListResponseData implements IsvResponseData {
     private String type;//挂号类型:专家号/普通号,expert:专家号,normal:普通号
     private String expireTime;//支付过期时间
     private String systemTime;//系统时间
+    private String deptCode;
 }