微信后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
7.0 KiB

package com.ynxbd.common.action;
import com.ynxbd.common.action.base.BaseAction;
import com.ynxbd.common.bean.his.HisReRegister;
import com.ynxbd.common.bean.his.HisTreat;
import com.ynxbd.common.dao.his.HisTreatDao;
import com.ynxbd.common.helper.common.AesHelper;
import com.ynxbd.common.result.JsonResult;
import com.ynxbd.common.result.Result;
import com.ynxbd.common.result.ResultEnum;
import com.ynxbd.common.result.ServiceException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Namespace("/treat")
public class TreatAction extends BaseAction {
@Action("getTreatList")
public Result getTreatList(String patientId, String deptCode) {
log.info("[就诊记录]查询 patientId={}, deptCode={}", patientId, deptCode);
if (patientId == null || deptCode == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
List<HisTreat> treatList = new HisTreatDao().getTreatList(patientId, deptCode);
return Result.success(treatList);
}
/**
* 就诊记录创建
*
* @param treatNum 门诊号
* @param deptCode 医师科室代码
* @param doctCode 医师代码
* @param registCode 号别代码
* @param regFee 挂号费
* @param clinicFee 诊查费
* @param transNo 交易流水号
* @param payMoney 支付金额
* @param payDate 支付日期
* @param payTime 支付时间
* @param payWay 支付方式
* @param payDeviceID 支付终端编号
* @param bankTransNo 银行流水号(或"微信支付订单号"、"微信医保支付订单号")
* @param openId 患者关注医院微信公众号的openId
*/
@Action("createTreatRecord")
public Result createTreatRecord(String treatNum, String deptCode, String doctCode, String registCode, String regFee, String clinicFee, String transNo, String payMoney, String payDate, String payTime, String payWay, String payDeviceID, String bankTransNo, String openId) {
log.info("[就诊记录]创建 treatNum={}", treatNum);
try {
if (treatNum == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
HisTreat treat = new HisTreatDao().createTreat(treatNum, deptCode, doctCode, registCode, regFee, clinicFee, transNo, payMoney, payDate, payTime, payWay, payDeviceID, bankTransNo, openId);
return Result.success(treat);
} catch (ServiceException e) {
return Result.error(e);
}
}
/**
* [问诊]查询咨询费用信息
*
* @param inquiryCode 收费项目代码
*/
@Action("getInquiryFee")
public Result getInquiryFee(String inquiryCode) {
log.info("[问诊]查询咨询费用信息 inquiryCode={}", inquiryCode);
try {
return Result.success(new HisTreatDao().getInquiryFee(inquiryCode));
} catch (Exception e) {
return Result.error(e);
}
}
/**
* [问诊]查询复诊挂号费
*
* @param clinicCode 号别
*/
@Action("getReRegister")
public Result getReRegister(String clinicCode) {
log.info("[问诊]查询复诊挂号费 clinicCode={}", clinicCode);
try {
return Result.success(new HisTreatDao().getReRegister(clinicCode));
} catch (Exception e) {
return Result.error(e);
}
}
@Action("getInfoByTreatNum")
public Result getInfoByTreatNum(String treatNum) {
try {
if (treatNum == null) {
return Result.error(ResultEnum.PARAM_IS_BLANK);
}
treatNum = AesHelper.deCode(treatNum);
if (ObjectUtils.isEmpty(treatNum)) {
return Result.error(ResultEnum.PARAM_IS_INVALID);
}
log.info("[就诊记录]查询信息 treatNum={}", treatNum);
List<HisTreat> daatList = new HisTreatDao().getInfoByTreatNum(treatNum);
return Result.success(daatList);
} catch (ServiceException e) {
return Result.error(e);
}
}
@Action("getDoctCaSign")
public Result getDoctCaSign(String doctCode) {
try {
if (ObjectUtils.isEmpty(doctCode)) {
return Result.error(ResultEnum.PARAM_IS_INVALID);
}
log.info("[电子签名]查询 doctCode={}", doctCode);
String caSign = new HisTreatDao().getDoctCaSign(doctCode);
Map<String, Object> dataMap = new HashMap<>();
if (caSign != null) {
dataMap.put("caSign", AesHelper.enCode(caSign));
}
return Result.success(dataMap);
} catch (ServiceException e) {
return Result.error(e);
}
}
@Action("createInquiry")
public Result createInquiry(String patientId, String patientName, String payMoney, String payDate, String payTime, String transNo, String payDeviceId, String bankTransNo, String deptCode, String doctCode, String feeCode, String payWay, String ID, String begTime, String endTime, String IDCardNo, String remark, String doctTitleCode, String hospitalArea, String treatNum, String firstTreatNum, String openId) {
log.info("[互联网医院]创建问诊记录,patientId-{},patientName-{},payMoney-{},payDate-{},payTime-{},transNo-{},payDeviceId-{},bankTransNo-{},deptCode-{},doctCode-{},feeCode-{},payWay-{},ID-{},begTime-{},endTime-{},IDCardNo-{},remark-{},doctTitleCode-{},hospitalArea-{},treatNum-{},firstTreatNum-{},openId-{}", patientId, patientName, payMoney, payDate, payTime, transNo, payDeviceId, bankTransNo, deptCode, doctCode, feeCode, payWay, ID, begTime, endTime, IDCardNo, remark, doctTitleCode, hospitalArea, treatNum, firstTreatNum, openId);
if (patientId == null || patientName == null || payMoney == null || payDate == null || payTime == null || transNo == null || deptCode == null || doctCode == null || feeCode == null || payWay == null || ID == null || begTime == null || endTime == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
JsonResult result = new HisTreatDao().createInquiry(patientId, patientName, payMoney, payDate, payTime, transNo, payDeviceId, bankTransNo, deptCode, doctCode, feeCode, payWay, ID, begTime, endTime, IDCardNo, remark, doctTitleCode, hospitalArea, treatNum, firstTreatNum, openId);
if (!result.success()) {
return Result.error(result.getMessage());
}
Map<String, String> response = new HashMap<>();
response.put("invoiceTransNo", result.getDataMapString("InvoiceTransNo"));
response.put("hisTransNo", result.getDataMapString("HISTransNo"));
return Result.success(response);
}
}