|
@@ -8,6 +8,7 @@ import com.ywt.alipaympapi.core.utils.*;
|
|
|
import com.ywt.alipaympapi.face.IPayFace;
|
|
|
import com.ywt.alipaympapi.models.Constants;
|
|
|
import com.ywt.alipaympapi.models.enums.PaymentStatusEnum;
|
|
|
+import com.ywt.alipaympapi.models.enums.SexEnum;
|
|
|
import com.ywt.core.exception.AppMessageException;
|
|
|
import com.ywt.gapi.Result;
|
|
|
import com.ywt.gapi.ResultCode;
|
|
@@ -54,6 +55,11 @@ public class IsvPayServiceImpl implements IsvPayService {
|
|
|
public static final int TYPE_UNPAID_ZFB = 0;
|
|
|
private static final int TYPE_PAID_ZFB = 1;
|
|
|
|
|
|
+ private static final int TYPE_PAID = 2;
|
|
|
+ // No pagination for now
|
|
|
+ private static final int PAGE_INDEX = 1;
|
|
|
+ private static final int PAGE_SIZE = 99999;
|
|
|
+
|
|
|
|
|
|
@Autowired
|
|
|
private TaiheServiceGrpc.TaiheServiceBlockingStub taiheServiceBlockingStub;
|
|
@@ -161,7 +167,7 @@ public class IsvPayServiceImpl implements IsvPayService {
|
|
|
CheckUtil.ensureNotEmpty(hisPatientId, "HIS 病人 id 不能为空");
|
|
|
// 根据 his_patient_id 获取诊疗卡信息
|
|
|
String pName = "";
|
|
|
- Integer pAge = 0;
|
|
|
+ int pAge = 0;
|
|
|
String pGender = "";
|
|
|
String cardNum = "";
|
|
|
GetMedicalCardInfoByPatientIdRequest gResp = GetMedicalCardInfoByPatientIdRequest.newBuilder()
|
|
@@ -212,7 +218,45 @@ public class IsvPayServiceImpl implements IsvPayService {
|
|
|
da.setPayDate(Checker.getStringValue(request.getPayTime()));
|
|
|
da.setPrescribeDate(Checker.getStringValue(request.getPrescribeDate()));
|
|
|
break;
|
|
|
-
|
|
|
+ case Constants.TAIHE_HOSPITAL_ID:
|
|
|
+ // 太和从数据库读取数据
|
|
|
+ String hisOrderNo = request.getHisOrderNo();
|
|
|
+ CheckUtil.ensureNotEmpty(hisOrderNo, "hisOrderNo 不能为空");
|
|
|
+ GetOutpatientOrderDetailRequest req = GetOutpatientOrderDetailRequest.newBuilder()
|
|
|
+ .setHospitalId(BizUtil.getHospitalIdByTerminalId(BizUtil.getCurrentTerminalWrapped()))
|
|
|
+ .setHisOrderNo(hisOrderNo)
|
|
|
+ .build();
|
|
|
+ GetOutpatientOrderDetailResponse response = taiheOutpatientServiceBlockingStub.getOutpatientOrderDetail(req);
|
|
|
+ if (response.getCode() != ResultCode.SUCCEED_VALUE)
|
|
|
+ throw new AppMessageException(response.getMsg());
|
|
|
+ if (!Checker.isNone(response.getDetailList())) {
|
|
|
+ list = response.getDetailList().stream()
|
|
|
+ .map(i -> {
|
|
|
+ OrderItem it = new OrderItem();
|
|
|
+ it.setItemName(i.getItemName());
|
|
|
+ it.setAmount(String.format("%.2f", i.getItemPrice() / 100d));
|
|
|
+ it.setItemNum(String.valueOf(i.getItemNumber()));
|
|
|
+ return it;
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ da.setOrderItems(list);
|
|
|
+ da.setAge(Checker.getIntegerValue(response.getPatientAge()));
|
|
|
+ da.setUserName(Checker.getStringValue(response.getPatientName()));
|
|
|
+ da.setSex(SexEnum.getSexDisplayName(Checker.getIntegerValue(response.getPatientSex())));
|
|
|
+ da.setPayDate(request.getDate());
|
|
|
+ da.setOrderItems(list);
|
|
|
+// da.setCardNum(cardNum);
|
|
|
+ da.setOrderId("");
|
|
|
+ da.setTotal(request.getTotal());
|
|
|
+ da.setStatus(request.getStatus());
|
|
|
+ da.setAmount(request.getAmount());
|
|
|
+ da.setHisPatientId(request.getHisPatientId());
|
|
|
+ da.setDoctorName(Checker.getStringValue(request.getDoctorName()));
|
|
|
+ da.setDeptName(Checker.getStringValue(request.getDeptName()));
|
|
|
+ da.setPayDate(Checker.getStringValue(request.getPayTime()));
|
|
|
+ da.setPrescribeDate(Checker.getStringValue(request.getPrescribeDate()));
|
|
|
+ break;
|
|
|
}
|
|
|
return da;
|
|
|
}
|
|
@@ -409,6 +453,42 @@ public class IsvPayServiceImpl implements IsvPayService {
|
|
|
list.add(data);
|
|
|
}
|
|
|
break;
|
|
|
+ case Constants.TAIHE_HOSPITAL_ID:
|
|
|
+ // 太和已缴费列表读取数据库
|
|
|
+ GetOutpatientOrderListRequest req2 = GetOutpatientOrderListRequest.newBuilder()
|
|
|
+ .setType(TYPE_PAID)
|
|
|
+ .setHisPatientId(hisPatientId)
|
|
|
+ .setPageIndex(PAGE_INDEX)
|
|
|
+ .setPageSize(PAGE_SIZE)
|
|
|
+ .setUserId(userId)
|
|
|
+ .setHospitalId(hospitalId)
|
|
|
+ .build();
|
|
|
+ GetOutpatientOrderListResponse res = orderServiceBlockingStub.getOutpatientOrderList(req2);
|
|
|
+ Result result2 = res.getResult();
|
|
|
+ if (result2.getCode() != ResultCode.SUCCEED) throw new AppMessageException(result2.getInfo());
|
|
|
+ for (OutpatientOrder order : res.getOrderList()) {
|
|
|
+ PayHistoryResponseData data = new PayHistoryResponseData();
|
|
|
+ data.setStatus(status);
|
|
|
+ data.setTitle("");
|
|
|
+ data.setDeptName(order.getDeptName());
|
|
|
+ data.setPrescribeDate(DateUtil.convertTimestampToDateString(order.getPrescriptionDate()));
|
|
|
+ data.setName(resp.getPatientName());
|
|
|
+ data.setAmount(String.format("%.2f", order.getTotal() / 100d));
|
|
|
+ data.setTradeNo(""); //Todo
|
|
|
+ data.setOutTradeNo("");//Todo
|
|
|
+ data.setIdNum("");//Todo
|
|
|
+ data.setInvoiceNo(order.getInvoiceNo());
|
|
|
+ data.setHisPatientId(hisPatientId);
|
|
|
+// data.setPayTime(payItem.getPrescriptionDate());
|
|
|
+ data.setTotal(Checker.getIntegerValue(order.getTotal()));
|
|
|
+ data.setDoctorName(Checker.getStringValue(order.getDoctorName()));
|
|
|
+ data.setDoctorCode(Checker.getStringValue(order.getDoctorCode()));
|
|
|
+// data.setHisClinicCode(Checker.getStringValue(payItem.getClinicCode()));
|
|
|
+ data.setAge(Checker.getIntegerValue(pAge));
|
|
|
+ data.setType(0);
|
|
|
+ list.add(data);
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
break;
|
|
|
}
|