package com.ynxbd.common.action; import com.alibaba.fastjson.JSONObject; import com.ynxbd.common.action.base.BaseAction; import com.ynxbd.common.action.pay.PEnum; import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.bean.pay.PayCasebook; import com.ynxbd.common.bean.xbd.MRHistory; import com.ynxbd.common.bean.xbd.MedicalRecord; import com.ynxbd.common.dao.CasebookDao; import com.ynxbd.common.helper.common.CodeHelper; import com.ynxbd.common.helper.common.ImageHelper; import com.ynxbd.common.helper.common.JsonHelper; import com.ynxbd.common.helper.xbd.XBDHttpHelper; import com.ynxbd.common.helper.xbd.XBDEnum; import com.ynxbd.common.helper.xbd.XBDHelper; import com.ynxbd.common.result.Result; import com.ynxbd.common.result.ResultEnum; import com.ynxbd.common.service.CasebookService; import com.ynxbd.common.service.PayService; import lombok.extern.slf4j.Slf4j; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; /** * @author 李进才 * @ClassName XBDAction * @Description description * @date 2023/3/30 16:50 */ @Slf4j @Namespace("/xbd") public class XBDAction extends BaseAction { /** * 获取智能云胶片的地址 * @param info patientId * @return 路径 */ @Action("cloudFilm") public Result cloudFilm (String info){ return Result.success(XBDHelper.outTeamDao.getCloudFilmPath(info)); } /** * 获取该病人已归档可以翻拍的病历 * @param patientId 病人id * @return 可以翻拍的病历列表 */ @Action("getMedicalRecordList") public Result getMedicalRecordList(String patientId){ String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetBA.Name,params->{ params.put("patientID",patientId); params.put("flagFP",0); params.put("flagSH",1); }); return Result.success(JsonHelper.parseArray(jsonString, MedicalRecord.class)); } /** * 获取该病人需要翻拍病历干啥的列表(用途)->直接绑定翻拍的病历类型 * @return 用途列表 */ @Action("getMRTemplateList") public Result getMRTemplateList(){ String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetTemplate.Name); return Result.success(JsonHelper.parseArray(jsonString)); } /** * 新增预约 * @param zyNum 住院号 * @param applyName 申请人姓名 * @param useToNo 模版ID * @param useToName 模版名称 * @param getWay 0:自提 1:邮寄 * @param address 地址 * @param phone 联系电话 * @param ptImg1 身份证正面 * @param ptImg2 身份证反面 * @param applyImg 住院证明照片 * @return 成功行数 */ @Action("addMRReserve") public Result addMRReserve(String openId,String patientId, String zyNum, String applyName, String useToNo, String useToName, int getWay, String address, String phone, String ptImg1, String ptImg2, String applyImg) { try{ log.info("[病历复印]patientId-{},zyNum-{},applyName-{},useToNo-{},useToName-{},getWay-{},address-{},phone-{}",patientId,zyNum,applyName,useToNo,useToName,getWay,address,phone); String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_SetAppointment.Name,params -> { params.put("ZYNum", zyNum); params.put("ApplyName", applyName); params.put("UseToNo", useToNo); params.put("UseToName", useToName); params.put("GetWay", getWay); params.put("Address", address); params.put("Phone", phone); params.put("ptImg1", ptImg1); params.put("ptImg2", ptImg2); params.put("applyImg", applyImg); }); PayCasebook payCasebook = new PayCasebook(); payCasebook.setZyNum(zyNum); payCasebook.setApplyName(applyName); payCasebook.setUseToNo(useToNo); payCasebook.setUseToName(useToName); payCasebook.setGetWay(getWay); payCasebook.setAddress(address); payCasebook.setPhone(phone); if(!new CasebookService().addApply(payCasebook,openId,patientId)){ log.info("[病历复印]下单信息存储失败 patientId={},openId-{},patientId-{}", patientId,openId,patientId); return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST); } return Result.success(JsonHelper.parseObject(jsonString)); } catch (Exception e) { log.error("[病历复印申请]预约失败,error-{}",e.toString()); return Result.error(ResultEnum.ERROR); } } /** * 获取该病人的病历翻拍历史 * @param patientId 病人Id * @return 历史记录 */ @Action("getMRHistory") public Result getMRHistory(String patientId){ String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetHistoryAppointment.Name,params->{ params.put("patientID",patientId); params.put("BorrowNo",-1); }); return Result.success(JsonHelper.parseArray(jsonString, MRHistory.class)); } /** * 病案复印唤起支付 * @param payCode wx:微信 * @param openid 患者openId * @param patientId 患者patientId * @param treatNum 住院号 * @param totalFee 总费用 * @param applyId 申请单Id * @return 支付回调参数 */ @Action("caseBookPay") public Result caseBookPay( String payCode, String openid, String patientId, String treatNum, String totalFee,String applyId){ log.info("[病案复印] 唤起支付, payCode-{},openid-{},patientId-{},treatNum-{},totalFee-{}",payCode,openid,patientId,treatNum,totalFee); MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); if (merchantEnum == null) { // 支付方式异常 return Result.error(ResultEnum.PAY_TYPE_ERROR); } String ip = request.getRemoteAddr(); return new CasebookService().placeOrder(merchantEnum,ip,openid,patientId,treatNum,totalFee,applyId); } // /** // * 病人修改病历的地址 // * @param id 申请单号 // * @param getWay 收货方式(0.自提 1.邮寄 2.电子版) // * @param address 地址 // * @return 是否修改成功 // */ // @Action("changeMRAddress") // public Result changeMRAddress(Integer id,String getWay,String address) { // String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_ChangeAddress.Name,params-> { // params.put("Id",id); // params.put("getWay",getWay); // params.put("address",address); // }); // return Result.success(JsonHelper.parseObject(jsonString)); // } // // /** // * 停止未通过审核的病历预约 // * @param id 申请单号 // * @param delNote 删除理由 // * @return 是否成功 // */ // @Action("stopMRReserve") // public Result stopMRReserve(Integer id,String delNote){ // String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_StopAppointment.Name,params-> { // params.put("Id",id); // params.put("delNote",delNote); // }); // return Result.success(JsonHelper.parseObject(jsonString)); // } }