新增科室添加和医生添加接口

master_pay
王绍全 4 days ago
parent e3c066143e
commit 6e1998c1b5
  1. 3
      src/main/java/com/ynxbd/common/TestA.java
  2. 3
      src/main/java/com/ynxbd/common/action/pay/MedicalAction.java
  3. 6
      src/main/java/com/ynxbd/common/action/pay/PayAction.java
  4. 112
      src/main/java/com/ynxbd/common/action/xk/XKAction.java
  5. 31
      src/main/java/com/ynxbd/common/dao/his/HisSysDictDao.java
  6. 3
      src/main/java/com/ynxbd/common/his/HisEnum.java

@ -137,8 +137,7 @@ public class TestA {
public static void main(String[] args) {
System.out.println(new BigDecimal("0.101").movePointRight(2).intValueExact());
System.out.println(new BigDecimal("0.100").movePointRight(2).toString());
// System.out.println(DateHelper.dateFormatDate("20260831100304", DateHelper.DateEnum.yyyyMMddHHmmss, DateHelper.DateEnum.yyyy_MM_dd_HH_mm_ss));
// XKChargeOrRefund info = new XKChargeOrRefund();
// info.setVisitNo("111");

@ -467,9 +467,10 @@ public class MedicalAction extends BaseAction {
// 成功返回
Result.respXml(MedRespHelper.respOk(WxMedConfig.PAY_KEY));
String outTradeNo = notifyInfo.getHospOutTradeNo();
String openid = notifyInfo.getOpenid();
String bankTransNo = notifyInfo.getMedTransId();
String outTradeNo = notifyInfo.getHospOutTradeNo();
String payInfo = notifyInfo.getInfo();
BigDecimal totalFee = notifyInfo.getTotalFee();
String payDate = notifyInfo.getPayDate();

@ -12,11 +12,13 @@ import com.ynxbd.common.config.interceptor.AesDecode;
import com.ynxbd.common.dao.SelfHelpDao;
import com.ynxbd.common.dao.his.HisRecipeDao;
import com.ynxbd.common.dao.sys.SysUserDao;
import com.ynxbd.common.helper.common.*;
import com.ynxbd.common.helper.common.ErrorHelper;
import com.ynxbd.common.helper.common.HttpHelper;
import com.ynxbd.common.helper.common.JwtHelper;
import com.ynxbd.common.helper.common.QRCodeHelper;
import com.ynxbd.common.helper.rsa.RSAHelper;
import com.ynxbd.common.helper.xbd.XbdConfigHelper;
import com.ynxbd.common.his.HisConfig;
import com.ynxbd.common.his.HisFactory;
import com.ynxbd.common.result.JsonResult;
import com.ynxbd.common.result.Result;
import com.ynxbd.common.result.ResultEnum;

@ -1,23 +1,35 @@
package com.ynxbd.common.action.xk;
import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.ynxbd.common.action.base.BaseAction;
import com.ynxbd.common.action.pay.PEnum;
import com.ynxbd.common.bean.Dept;
import com.ynxbd.common.bean.enums.MerchantEnum;
import com.ynxbd.common.bean.his.HisTreat;
import com.ynxbd.common.bean.pay.Order;
import com.ynxbd.common.config.interceptor.AesDecode;
import com.ynxbd.common.dao.his.HisSysDictDao;
import com.ynxbd.common.dao.his.HisTreatDao;
import com.ynxbd.common.dao.his.HisXKDao;
import com.ynxbd.common.helper.common.AesMicroHelper;
import com.ynxbd.common.helper.common.JsonHelper;
import com.ynxbd.common.helper.common.ParamHelper;
import com.ynxbd.common.his.HisFactory;
import com.ynxbd.common.result.JsonResult;
import com.ynxbd.common.result.Result;
import com.ynxbd.common.result.ResultEnum;
import com.ynxbd.common.service.PayService;
import com.ynxbd.common.service.RxService;
import com.ynxbd.wx.config.WeChatConfig;
import com.ynxbd.wx.wxfactory.AesWxHelper;
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.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -153,6 +165,35 @@ public class XKAction extends BaseAction {
}
}
/**
* [问诊]挂号退费
*/
@Action("refundRegOLOrder")
public Result refundRegOLOrder(String payCode, String outTradeNo, String totalFee, String bankTransNo, String openid, String patientId, String refundDesc) {
MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) {
return Result.error(ResultEnum.PAY_TYPE_NOT_SUPPORT);
}
bankTransNo = AesMicroHelper.decode(bankTransNo);
outTradeNo = AesMicroHelper.decode(outTradeNo);
totalFee = AesMicroHelper.decode(totalFee);
openid = AesMicroHelper.decode(openid);
log.info("[问诊]挂号退费 outTradeNo={}, bankTransNo={}, totalFee={}, openid={}, patientId={}", outTradeNo, bankTransNo, totalFee, openid, patientId);
if (outTradeNo == null || bankTransNo == null || openid == null || totalFee == null) {
return Result.error(ResultEnum.PARAM_IS_BLANK);
}
BigDecimal orderTotalFee = new BigDecimal(totalFee);
String outRefundNo = HisFactory.getOutRefundNo(bankTransNo, PEnum.OL_REG);
Order orderRefund = PayService.refund(merchantEnum, outTradeNo, outRefundNo, orderTotalFee, orderTotalFee, refundDesc, new Date(), openid, patientId, null);
if (orderRefund.isSuccess()) {
return Result.success(AesMicroHelper.encode(outRefundNo));
}
return Result.error(orderRefund.getErrorMsg());
}
/**
* [问诊]查询问诊挂号-咨询费用[未使用]
*
@ -200,4 +241,73 @@ public class XKAction extends BaseAction {
// return Result.success(response);
return Result.success();
}
@Action("addDept")
public Result addDept(String callNo, String data) {
log.info("[科室]添加 callNo={}, data={}", callNo, data);
if (ObjectUtils.isEmpty(callNo) || ObjectUtils.isEmpty(data)) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
JSONObject dept = JsonHelper.parseObject(data);
if (dept == null) {
return Result.error(ResultEnum.PARAM_IS_INVALID);
}
String deptName = dept.getString("deptName");
String deptClassCode = dept.getString("deptClassCode");
String deptClassName = dept.getString("deptClassName");
log.info("[科室]添加 deptName={}, deptClassCode={}, deptClassName={}", deptName, deptClassCode, deptClassName);
if (StrUtil.hasBlank(deptName, deptClassCode, deptClassName)) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
JsonResult jsonResult = new HisSysDictDao().addDept(deptName, deptClassCode, deptClassName);
if (!jsonResult.success()) {
return Result.error(jsonResult.getMessage());
}
return Result.success();
}
@Action("addDoctor")
public Result addDoctor(String callNo, String data) {
log.info("[医生]添加 callNo={}, data={}", callNo, data);
data = AesWxHelper.decode(data);
if (ObjectUtils.isEmpty(callNo) || ObjectUtils.isEmpty(data)) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
JSONObject doctor = JsonHelper.parseObject(data);
if (doctor == null) {
return Result.error(ResultEnum.PARAM_IS_INVALID);
}
String deptCode = doctor.getString("deptCode");
String doctType = doctor.getString("doctType");
String doctName = doctor.getString("doctName");
String idCardNo = doctor.getString("idCardNo");
String birthdate = doctor.getString("birthdate");
String gender = doctor.getString("gender");
String certCode = doctor.getString("certCode");
String titleCode = doctor.getString("titleCode");
log.info("[医生]添加 deptCode={}, doctType={}, doctName={}, idCardNo={}, gender={}, certCode={}, titleCode={}",
deptCode, doctType, doctName, ParamHelper.hideIdCardNo(idCardNo), gender, certCode, titleCode);
if (StrUtil.hasBlank(deptCode, doctType, doctName, idCardNo, gender, certCode, titleCode)) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
if (ObjectUtils.isEmpty(birthdate)) {
birthdate = IdcardUtil.getBirthByIdCard(idCardNo);
if (ObjectUtils.isEmpty(birthdate)) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
}
JsonResult jsonResult = new HisSysDictDao().addDoctor(deptCode, doctType, doctName, idCardNo, birthdate, gender, certCode, titleCode);
if (!jsonResult.success()) {
return Result.error(jsonResult.getMessage());
}
return Result.success();
}
}

@ -0,0 +1,31 @@
package com.ynxbd.common.dao.his;
import com.ynxbd.common.his.HisEnum;
import com.ynxbd.common.his.HisFactory;
import com.ynxbd.common.result.JsonResult;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class HisSysDictDao {
public JsonResult addDept(String deptName, String deptClassCode, String deptClassName) {
return HisFactory.His().getJsonResult(HisEnum.AP_ADD_DEPT, params -> {
params.put("deptName", deptName);
params.put("deptClassCode", deptClassCode);
params.put("deptClassName", deptClassName);
});
}
public JsonResult addDoctor(String deptCode, String doctType, String doctName, String idCardNo, String birthdate, String gender, String certCode, String titleCode) {
return HisFactory.His().getJsonResult(HisEnum.AP_ADD_DOCTOR, params -> {
params.put("deptCode", deptCode); //
params.put("doctType", doctType); // 1:护士; 2:医生; 3:非医技人员,4:药师
params.put("doctName", doctName); //
params.put("idCardNo", idCardNo); //
params.put("birthdate", birthdate); // 出生日期:yyyyMMdd
params.put("gender", gender); // 性别
params.put("certCode", certCode); // 执业证书编号
params.put("titleCode", titleCode); // 职称资格证编号
});
}
}

@ -3,6 +3,9 @@ package com.ynxbd.common.his;
public enum HisEnum {
AP_Query_Hospital("查询医院列表", "1", "AP_Query_Hospital", true),
AP_ADD_DEPT("新增科室", "19001", "UniversalInterface", true),
AP_ADD_DOCTOR("新增医生", "19002", "UniversalInterface", true),
AP_Query_Patient("[患者]获取用户绑定信息", "1001", "AP_Query_Patient", true),
AP_Binding_Card("[患者]身份证绑定", "1002", "AP_Binding_Card", true),
AP_UnBinding_Card("[患者]身份证解绑", "1003", "AP_UnBinding_Card", true),

Loading…
Cancel
Save