|
@@ -1,426 +1,426 @@
|
|
-package thyyxxk.wxservice_server.controller.api;
|
|
|
|
-
|
|
|
|
-import com.alibaba.fastjson.JSONArray;
|
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
-import org.springframework.http.HttpEntity;
|
|
|
|
-import org.springframework.http.HttpHeaders;
|
|
|
|
-import org.springframework.http.MediaType;
|
|
|
|
-import org.springframework.web.bind.annotation.*;
|
|
|
|
-import org.springframework.web.client.RestTemplate;
|
|
|
|
-import thyyxxk.wxservice_server.config.auth.PassToken;
|
|
|
|
-import thyyxxk.wxservice_server.config.exception.ExceptionEnum;
|
|
|
|
-import thyyxxk.wxservice_server.config.properties.ApiAddr;
|
|
|
|
-import thyyxxk.wxservice_server.dao.api.PowersiPluginDao;
|
|
|
|
-import thyyxxk.wxservice_server.entity.ResultVo;
|
|
|
|
-import thyyxxk.wxservice_server.entity.assessment.PushQuestionnaireVisit;
|
|
|
|
-import thyyxxk.wxservice_server.entity.medinsmobilepay.InsuinfoRequest;
|
|
|
|
-import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.OrdState;
|
|
|
|
-import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.CommonRequest;
|
|
|
|
-import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.OrderQueryRequest;
|
|
|
|
-import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.PowersiMipSetlinfo;
|
|
|
|
-import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.RevokeSettleRequest;
|
|
|
|
-import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.BillInfo;
|
|
|
|
-import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.CommonResponse;
|
|
|
|
-import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.Upload6201;
|
|
|
|
-import thyyxxk.wxservice_server.factory.thmz.ThmzService;
|
|
|
|
-import thyyxxk.wxservice_server.factory.thmz.model.QueryReceiptRequest;
|
|
|
|
-import thyyxxk.wxservice_server.factory.thmz.model.SaveMzPayRequest;
|
|
|
|
-import thyyxxk.wxservice_server.service.IdCardAnalyzeService;
|
|
|
|
-import thyyxxk.wxservice_server.service.PushWxMessageService;
|
|
|
|
-import thyyxxk.wxservice_server.utils.*;
|
|
|
|
-import thyyxxk.wxservice_server.utils.mip.DataHandler;
|
|
|
|
-
|
|
|
|
-import java.io.IOException;
|
|
|
|
-import java.math.BigDecimal;
|
|
|
|
-import java.util.*;
|
|
|
|
-
|
|
|
|
-@Slf4j
|
|
|
|
-@RestController
|
|
|
|
-@RequestMapping("/api/mobilePayPlugin")
|
|
|
|
-public class PowersiMiPayPlugin {
|
|
|
|
- private final PowersiPluginDao dao;
|
|
|
|
- private final IdCardAnalyzeService idCardAnalyzeService;
|
|
|
|
- private final ThmzService thmzService;
|
|
|
|
- private final PushWxMessageService messageService;
|
|
|
|
- private final RestTemplate template;
|
|
|
|
- private final String hisMipApi;
|
|
|
|
-
|
|
|
|
- private final DataHandler dataHandler = DataHandler.newInstance();
|
|
|
|
-
|
|
|
|
- @Autowired
|
|
|
|
- public PowersiMiPayPlugin(PowersiPluginDao dao, IdCardAnalyzeService idCardAnalyzeService, ThmzService thmzService, PushWxMessageService messageService, RestTemplate template, ApiAddr apiAddr) throws IOException {
|
|
|
|
- this.dao = dao;
|
|
|
|
- this.idCardAnalyzeService = idCardAnalyzeService;
|
|
|
|
- this.thmzService = thmzService;
|
|
|
|
- this.messageService = messageService;
|
|
|
|
- this.template = template;
|
|
|
|
- this.hisMipApi = apiAddr.getHisMipApi();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PostMapping("/lockOrder")
|
|
|
|
- public ResultVo<String> lockOrder(@RequestBody InsuinfoRequest request) {
|
|
|
|
- String openid = TokenUtil.getInstance().getUserOpenid();
|
|
|
|
- dao.lockOrder(request.getHisOrdNum(), openid,1);
|
|
|
|
- return ResultVoUtil.success(openid);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PostMapping("/lockYbOrder")
|
|
|
|
- public ResultVo<String> lockYbOrder(@RequestBody InsuinfoRequest request) {
|
|
|
|
- String openid = TokenUtil.getInstance().getUserOpenid();
|
|
|
|
- dao.lockYbOrder(request.getHisOrdNum(), openid,1);
|
|
|
|
- return ResultVoUtil.success(openid);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PostMapping("/unlockOrder")
|
|
|
|
- public ResultVo<String> unlockOrder(@RequestBody InsuinfoRequest request) {
|
|
|
|
- dao.unlockOrder(request.getHisOrdNum(), null);
|
|
|
|
- return ResultVoUtil.success("操作成功。");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private JSONObject decryptRequest(JSONObject body) throws Exception {
|
|
|
|
- body.put("code", 0);
|
|
|
|
- JSONObject decrypt = dataHandler.processRspData(body.toJSONString());
|
|
|
|
- return decrypt.getJSONObject("data");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PassToken
|
|
|
|
- @PostMapping("/patientInquiry")
|
|
|
|
- public CommonResponse patientInquiry(@RequestBody JSONObject body) throws Exception {
|
|
|
|
- JSONObject request = decryptRequest(body);
|
|
|
|
- List<String> patNos = dao.selectPatientCount(request.getString("idNo"));
|
|
|
|
- if (patNos.isEmpty()) {
|
|
|
|
- return new CommonResponse("未查询到建档信息。");
|
|
|
|
- }
|
|
|
|
- return new CommonResponse();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PassToken
|
|
|
|
- @PostMapping("/patientCreate")
|
|
|
|
- public CommonResponse patientCreate(@RequestBody JSONObject body) throws Exception {
|
|
|
|
- JSONObject request = decryptRequest(body);
|
|
|
|
- return idCardAnalyzeService.createCardFromPowersiPlugin(request);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PassToken
|
|
|
|
- @PostMapping("/billListInquiry")
|
|
|
|
- public JSONObject billListInquiry(@RequestBody JSONObject body) throws Exception {
|
|
|
|
- JSONObject request = decryptRequest(body);
|
|
|
|
- List<String> patNoList = dao.selectPatientCount(request.getString("idNo"));
|
|
|
|
- if (patNoList.isEmpty()) {
|
|
|
|
- JSONObject res = new JSONObject();
|
|
|
|
- res.put("code", -1);
|
|
|
|
- res.put("success", false);
|
|
|
|
- res.put("message", "没有患者的建档信息。");
|
|
|
|
- return res;
|
|
|
|
- }
|
|
|
|
- List<BillInfo> list = new ArrayList<>();
|
|
|
|
- for (String patNo : patNoList) {
|
|
|
|
- QueryReceiptRequest receiptRequest =
|
|
|
|
- QueryReceiptRequest.builder().patCardNo(patNo).build();
|
|
|
|
- ResultVo<List<Map<String, Object>>> vo =
|
|
|
|
- thmzService.getMzChargeDetailForUnPaid(receiptRequest);
|
|
|
|
- if (vo.getCode() != ExceptionEnum.SUCCESS.getCode()) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- List<Map<String, Object>> feeList = vo.getData();
|
|
|
|
- for (Map<String, Object> billItem : feeList) {
|
|
|
|
- BillInfo billInfo = new BillInfo(billItem);
|
|
|
|
- if (billInfo.getVipFlag() != 0) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- billInfo.setIdNo(request.getString("idNo"));
|
|
|
|
- billInfo.setIdType(request.getString("idType"));
|
|
|
|
- billInfo.setDeptId(dao.selectDeptId(billInfo.getDeptName()));
|
|
|
|
- list.add(billInfo);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if (list.isEmpty()) {
|
|
|
|
- JSONObject res = new JSONObject();
|
|
|
|
- res.put("code", -1);
|
|
|
|
- res.put("success", false);
|
|
|
|
- res.put("message", "没有患者的待缴费信息。");
|
|
|
|
- return res;
|
|
|
|
- }
|
|
|
|
- String listRef = JSONArray.toJSONString(list);
|
|
|
|
- JSONObject temp = new JSONObject();
|
|
|
|
- temp.put("billInfo", JSONArray.parseArray(listRef));
|
|
|
|
- String raw = dataHandler.buildReqData(temp);
|
|
|
|
- JSONObject response = JSONObject.parseObject(raw);
|
|
|
|
- response.put("code", 0);
|
|
|
|
- response.put("success", true);
|
|
|
|
- response.put("message", "OK");
|
|
|
|
- return response;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PassToken
|
|
|
|
- @PostMapping("/billDetailInquiry")
|
|
|
|
- public JSONObject billDetailInquiry(@RequestBody JSONObject body) throws Exception {
|
|
|
|
- JSONObject request = decryptRequest(body);
|
|
|
|
- String bizId = request.getString("bizId");
|
|
|
|
- bizId = null == bizId ? "" : bizId;
|
|
|
|
- String[] arr = bizId.split("_");
|
|
|
|
- if (arr.length != 3) {
|
|
|
|
- JSONObject res = new JSONObject();
|
|
|
|
- res.put("code", -1);
|
|
|
|
- res.put("success", false);
|
|
|
|
- res.put("message", "bizId[" + bizId + "]不正确!");
|
|
|
|
- return res;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- request.put("patNo", arr[0]);
|
|
|
|
- request.put("times", Integer.parseInt(arr[1]));
|
|
|
|
- Upload6201 upload6201 = template.postForObject(hisMipApi + "/getUpload6201", request, Upload6201.class);
|
|
|
|
- if (null == upload6201) {
|
|
|
|
- JSONObject res = new JSONObject();
|
|
|
|
- res.put("code", -1);
|
|
|
|
- res.put("success", false);
|
|
|
|
- res.put("message", "网络异常,请稍后再试。");
|
|
|
|
- return res;
|
|
|
|
- }
|
|
|
|
- upload6201.setIdNo(request.getString("idNo"));
|
|
|
|
- upload6201.setIdType(request.getString("idType"));
|
|
|
|
- upload6201.setUserName(request.getString("userName"));
|
|
|
|
-
|
|
|
|
- String raw = dataHandler.buildReqData(JSONObject.toJSONString(upload6201));
|
|
|
|
- JSONObject response = JSONObject.parseObject(raw);
|
|
|
|
- response.put("code", 0);
|
|
|
|
- response.put("success", true);
|
|
|
|
- response.put("message", "OK");
|
|
|
|
- return response;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PassToken
|
|
|
|
- @PostMapping("/settleNotify")
|
|
|
|
- public CommonResponse settleNotify(@RequestBody JSONObject body) throws Exception {
|
|
|
|
- JSONObject request = decryptRequest(body);
|
|
|
|
- PowersiMipSetlinfo setlinfo = dao.selectById(request.getString("platformOrderId"));
|
|
|
|
- if (null == setlinfo) {
|
|
|
|
- setlinfo = JSONObject.parseObject(request.toJSONString(), PowersiMipSetlinfo.class);
|
|
|
|
- JSONObject hiExtData = request.getJSONObject("hiExtData");
|
|
|
|
- if (null != hiExtData) {
|
|
|
|
- JSONObject clrObj = hiExtData.getJSONObject("setlinfo");
|
|
|
|
- if (null != clrObj) {
|
|
|
|
- String clrOptins = clrObj.getString("clrOptins");
|
|
|
|
- String clrType = clrObj.getString("clrType");
|
|
|
|
- setlinfo.setClrOptins(clrOptins);
|
|
|
|
- setlinfo.setClrType(clrType);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- int insert = dao.insert(setlinfo);
|
|
|
|
- if (insert == 1) {
|
|
|
|
- saveMzOrder(setlinfo);
|
|
|
|
- return new CommonResponse();
|
|
|
|
- }
|
|
|
|
- return new CommonResponse("HIS业务处理失败。");
|
|
|
|
- }
|
|
|
|
- if (setlinfo.getMzSaved() == 0) {
|
|
|
|
- saveMzOrder(setlinfo);
|
|
|
|
- return new CommonResponse();
|
|
|
|
- }
|
|
|
|
- return new CommonResponse();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private void saveMzOrder(PowersiMipSetlinfo setlinfo) {
|
|
|
|
- SaveMzPayRequest saveMzPayRequest = new SaveMzPayRequest.Builder()
|
|
|
|
- .payTime(DateUtil.formatDatetime(setlinfo.getTraceTime()))
|
|
|
|
- .patCardNo(setlinfo.getMedOrgOrd().split("_")[0])
|
|
|
|
- .agtOrdNum(setlinfo.getThirdOrderId())
|
|
|
|
- .payAmt(setlinfo.getFeeSumamt())
|
|
|
|
- .fundpayAmt(setlinfo.getFundPay())
|
|
|
|
- .acctpayAmt(setlinfo.getPsnAcctPay())
|
|
|
|
- .couponAmt(BigDecimal.ZERO)
|
|
|
|
- .cashpayAmt(setlinfo.getOwnpayAmt())
|
|
|
|
- .hisOrdNum(setlinfo.getMedOrgOrd())
|
|
|
|
- .psOrdNum(setlinfo.getPlatformOrderId())
|
|
|
|
- .isNormalClinic(true).build();
|
|
|
|
- ResultVo<String> res = thmzService.saveMzPay(saveMzPayRequest);
|
|
|
|
- if (res.getCode() == ExceptionEnum.SUCCESS.getCode()) {
|
|
|
|
- dao.updateMzSaved(setlinfo.getPlatformOrderId());
|
|
|
|
- }
|
|
|
|
- pushMessage(setlinfo.getMedOrgOrd(), setlinfo.getUserName());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private void pushMessage(String hisOrdNum, String userName) {
|
|
|
|
- String[] arr = hisOrdNum.split("_");
|
|
|
|
- int times = Integer.parseInt(arr[1]);
|
|
|
|
- PushQuestionnaireVisit visit = dao.getVisit(arr[0], times, hisOrdNum);
|
|
|
|
- String visitId = hisOrdNum.replaceAll("_", "AND") + "AND" + visit.getDoctorCode() + "AND" + visit.getDeptCode();
|
|
|
|
- String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxbde6b16acad84204&redirect_uri=" +
|
|
|
|
- "https://staticweb.hnthyy.cn/wxserver/redirect/page2?to=doctorGradeByPush_" + visitId +
|
|
|
|
- "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
|
|
|
|
-
|
|
|
|
- String msgContent = "{\"touser\":\"" + visit.getOpenid() + "\",\"data\":" +
|
|
|
|
- "{\"keyword1\":{\"color\":\"#173177\",\"value\":\"" + userName + "\"}," +
|
|
|
|
- "\"keyword2\":{\"color\":\"#173177\",\"value\":\"沭阳铭和医院\"}," +
|
|
|
|
- "\"keyword3\":{\"color\":\"#173177\",\"value\":\"" + visit.getDeptName() + "\"}," +
|
|
|
|
- "\"keyword4\":{\"color\":\"#173177\",\"value\":\"" + visit.getDoctorName() + "\"}," +
|
|
|
|
- "\"keyword5\":{\"color\":\"#173177\",\"value\":\"" + visit.getVisitDate() + "\"}," +
|
|
|
|
- "\"remark\":{\"color\":\"#FF0000\",\"value\":\"特邀请您对医生服务作出评价。\"}," +
|
|
|
|
- "\"first\":{\"color\":\"#FF0000\",\"value\":\"您曾在我院进行诊疗。\"}}," +
|
|
|
|
- "\"template_id\":\"G4YAN56RmDjEPpNyP5fpCdr5TghyqspDeWlWaD5Eg2o\"," +
|
|
|
|
- "\"url\":\"" + url + "\"}";
|
|
|
|
- JSONObject message = JSONObject.parseObject(msgContent);
|
|
|
|
- messageService.pushMessage2(message);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PassToken
|
|
|
|
- @GetMapping("/isMipOrder")
|
|
|
|
- public ResultVo<String> isMipOrder(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
|
|
|
|
- PowersiMipSetlinfo setlinfo = getSetlinfo(hisOrdNum, null);
|
|
|
|
- if (null == setlinfo) {
|
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
|
|
|
|
- }
|
|
|
|
- return ResultVoUtil.success(setlinfo.getPlatformOrderId());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PassToken
|
|
|
|
- @GetMapping("/settleQuery")
|
|
|
|
- public JSONObject settleQuery(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
|
|
|
|
- String patientId = hisOrdNum.split("_")[0];
|
|
|
|
- OrderQueryRequest request = dao.getMzPatient(patientId);
|
|
|
|
- request.setMedOrgOrd(hisOrdNum);
|
|
|
|
-
|
|
|
|
- JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(request));
|
|
|
|
- String body = dataHandler.buildReqData(raw);
|
|
|
|
- String url = "http://webhis.thyy.cn:8077/powersiMipSettleQuery";
|
|
|
|
- HttpHeaders headers = new HttpHeaders();
|
|
|
|
- headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
- HttpEntity<String> entity = new HttpEntity<>(body, headers);
|
|
|
|
- String encRes = template.postForObject(url, entity, String.class);
|
|
|
|
- return dataHandler.processRspData(encRes);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PassToken
|
|
|
|
- @PostMapping("/downloadBillData")
|
|
|
|
- public void powersiMipDownloadBillData() {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PassToken
|
|
|
|
- @PostMapping("/revokeMipSettle")
|
|
|
|
- public ResultVo<String> revokeMipSettle(@RequestBody CommonRequest request) throws Exception {
|
|
|
|
- PowersiMipSetlinfo setlinfo = getRefundableSetl(request.getHisOrdNum());
|
|
|
|
- if (null == setlinfo) {
|
|
|
|
- setlinfo = getSetlinfo(request.getHisOrdNum(), OrdState.REFUND_SUCCEED);
|
|
|
|
- if (null != setlinfo) {
|
|
|
|
- return ResultVoUtil.success("医保移动支付退款成功");
|
|
|
|
- }
|
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "没有可以退款的结算交易。");
|
|
|
|
- }
|
|
|
|
- Date now = new Date();
|
|
|
|
- RevokeSettleRequest refd = new RevokeSettleRequest();
|
|
|
|
- if (StringUtil.notBlank(request.getRefdType())) {
|
|
|
|
- refd.setRefdType(request.getRefdType());
|
|
|
|
- }
|
|
|
|
- refd.setMedOrgOrd(request.getHisOrdNum());
|
|
|
|
- refd.setMedRefdId(SnowFlakeId.instance().nextId());
|
|
|
|
- refd.setRefdTime(DateUtil.formatDatetime(now));
|
|
|
|
- refd.setTotlRefdAmt(setlinfo.getFeeSumamt());
|
|
|
|
- refd.setPsnAcctRefdAmt(setlinfo.getPsnAcctPay());
|
|
|
|
- refd.setFundRefdAmt(setlinfo.getFundPay());
|
|
|
|
- refd.setCashRefdAmt(setlinfo.getOwnpayAmt());
|
|
|
|
- refd.setRefdReason(request.getRefundReason());
|
|
|
|
- refd.setEcToken(request.getEcToken());
|
|
|
|
- refd.setPlatformOrderId(setlinfo.getPlatformOrderId());
|
|
|
|
- dao.updateMedRedfId(refd.getMedRefdId(), refd.getMedOrgOrd());
|
|
|
|
- JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(refd));
|
|
|
|
- String body = dataHandler.buildReqData(raw);
|
|
|
|
- String url = "http://webhis.thyy.cn:8077/powersiMipRefund";
|
|
|
|
- HttpHeaders headers = new HttpHeaders();
|
|
|
|
- headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
- HttpEntity<String> entity = new HttpEntity<>(body, headers);
|
|
|
|
- String encRes = template.postForObject(url, entity, String.class);
|
|
|
|
- JSONObject decRes = dataHandler.processRspData(encRes);
|
|
|
|
- Integer code = decRes.getInteger("code");
|
|
|
|
- if (null != code && code == 0) {
|
|
|
|
- JSONObject data = decRes.getJSONObject("data");
|
|
|
|
- OrdState state = OrdState.get(data.getString("refStatus"));
|
|
|
|
- if (null == state) {
|
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
|
|
|
|
- }
|
|
|
|
- String refId = data.getString("platformRefdId");
|
|
|
|
- dao.updateRevokeInfo(request.getStaffId(), now, refId, setlinfo.getMedOrgOrd(), state);
|
|
|
|
- if (state == OrdState.REFUND_SUCCEED) {
|
|
|
|
- return ResultVoUtil.success("医保移动支付退款成功");
|
|
|
|
- }
|
|
|
|
- if (state == OrdState.REFUND_PROCEEDING) {
|
|
|
|
- return ResultVoUtil.success("医保移动支付退款进行中,请稍后查询退款结果。");
|
|
|
|
- }
|
|
|
|
- if (state == OrdState.REFUND_ABNORMAL) {
|
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保移动支付退款异常,请稍后查询退款结果。");
|
|
|
|
- }
|
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, data.getString("failMsg"));
|
|
|
|
- }
|
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, decRes.getString("message"));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private PowersiMipSetlinfo getRefundableSetl(String id) {
|
|
|
|
- PowersiMipSetlinfo setlinfo = getSetlinfo(id, OrdState.SETTLED);
|
|
|
|
- if (null == setlinfo) {
|
|
|
|
- setlinfo = getSetlinfo(id, OrdState.REFUND_FAILED);
|
|
|
|
- if (null == setlinfo) {
|
|
|
|
- setlinfo = getSetlinfo(id, OrdState.REFUND_ABNORMAL);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return setlinfo;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private PowersiMipSetlinfo getSetlinfo(String id, OrdState state) {
|
|
|
|
- QueryWrapper<PowersiMipSetlinfo> wrapper = new QueryWrapper<>();
|
|
|
|
- wrapper.eq("med_org_ord", id);
|
|
|
|
- if (null == state) {
|
|
|
|
- List<PowersiMipSetlinfo> list = dao.selectList(wrapper);
|
|
|
|
- if (list == null || list.isEmpty()) {
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
- return list.get(0);
|
|
|
|
- }
|
|
|
|
- wrapper.eq("ord_state", state);
|
|
|
|
- return dao.selectOne(wrapper);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @PassToken
|
|
|
|
- @GetMapping("/queryRefundState")
|
|
|
|
- public ResultVo<String> queryRefundState(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
|
|
|
|
- QueryWrapper<PowersiMipSetlinfo> wrapper = new QueryWrapper<>();
|
|
|
|
- wrapper.eq("med_org_ord", hisOrdNum);
|
|
|
|
- PowersiMipSetlinfo setlinfo = dao.selectOne(wrapper);
|
|
|
|
- if (null == setlinfo) {
|
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
|
|
|
|
- }
|
|
|
|
- if (setlinfo.getOrdState() == OrdState.REFUND_SUCCEED) {
|
|
|
|
- return ResultVoUtil.success(OrdState.REFUND_SUCCEED.toString());
|
|
|
|
- }
|
|
|
|
- JSONObject params = new JSONObject();
|
|
|
|
- if (StringUtil.notBlank(setlinfo.getPlatformRefdId())) {
|
|
|
|
- params.put("platformRefdId", setlinfo.getPlatformRefdId());
|
|
|
|
- } else {
|
|
|
|
- params.put("medRefdId", setlinfo.getMedRefdId());
|
|
|
|
- }
|
|
|
|
- params.put("orgCodg", "H43010500370");
|
|
|
|
- JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(params));
|
|
|
|
- String body = dataHandler.buildReqData(raw);
|
|
|
|
- String url = "http://webhis.thyy.cn:8077/powersiMipRefundQuery";
|
|
|
|
- HttpHeaders headers = new HttpHeaders();
|
|
|
|
- headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
- HttpEntity<String> entity = new HttpEntity<>(body, headers);
|
|
|
|
- String encRes = template.postForObject(url, entity, String.class);
|
|
|
|
- JSONObject decRes = dataHandler.processRspData(encRes);
|
|
|
|
- Integer code = decRes.getInteger("code");
|
|
|
|
- if (null != code && code == 0) {
|
|
|
|
- JSONObject data = decRes.getJSONObject("data");
|
|
|
|
- data.remove("hiExtData");
|
|
|
|
- OrdState state = OrdState.get(data.getString("refdStatus"));
|
|
|
|
- if (null == state) {
|
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
|
|
|
|
- }
|
|
|
|
- String refId = data.getString("platformRefdId");
|
|
|
|
- dao.updateRefundState(refId, state, hisOrdNum);
|
|
|
|
- return ResultVoUtil.success(state.toString());
|
|
|
|
- }
|
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, decRes.getString("message"));
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
|
|
+//package thyyxxk.wxservice_server.controller.api;
|
|
|
|
+//
|
|
|
|
+//import com.alibaba.fastjson.JSONArray;
|
|
|
|
+//import com.alibaba.fastjson.JSONObject;
|
|
|
|
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+//import lombok.extern.slf4j.Slf4j;
|
|
|
|
+//import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+//import org.springframework.http.HttpEntity;
|
|
|
|
+//import org.springframework.http.HttpHeaders;
|
|
|
|
+//import org.springframework.http.MediaType;
|
|
|
|
+//import org.springframework.web.bind.annotation.*;
|
|
|
|
+//import org.springframework.web.client.RestTemplate;
|
|
|
|
+//import thyyxxk.wxservice_server.config.auth.PassToken;
|
|
|
|
+//import thyyxxk.wxservice_server.config.exception.ExceptionEnum;
|
|
|
|
+//import thyyxxk.wxservice_server.config.properties.ApiAddr;
|
|
|
|
+//import thyyxxk.wxservice_server.dao.api.PowersiPluginDao;
|
|
|
|
+//import thyyxxk.wxservice_server.entity.ResultVo;
|
|
|
|
+//import thyyxxk.wxservice_server.entity.assessment.PushQuestionnaireVisit;
|
|
|
|
+//import thyyxxk.wxservice_server.entity.medinsmobilepay.InsuinfoRequest;
|
|
|
|
+//import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.OrdState;
|
|
|
|
+//import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.CommonRequest;
|
|
|
|
+//import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.OrderQueryRequest;
|
|
|
|
+//import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.PowersiMipSetlinfo;
|
|
|
|
+//import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.request.RevokeSettleRequest;
|
|
|
|
+//import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.BillInfo;
|
|
|
|
+//import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.CommonResponse;
|
|
|
|
+//import thyyxxk.wxservice_server.entity.medinsmobilepay.frompowersiplugin.response.Upload6201;
|
|
|
|
+//import thyyxxk.wxservice_server.factory.thmz.ThmzService;
|
|
|
|
+//import thyyxxk.wxservice_server.factory.thmz.model.QueryReceiptRequest;
|
|
|
|
+//import thyyxxk.wxservice_server.factory.thmz.model.SaveMzPayRequest;
|
|
|
|
+//import thyyxxk.wxservice_server.service.IdCardAnalyzeService;
|
|
|
|
+//import thyyxxk.wxservice_server.service.PushWxMessageService;
|
|
|
|
+//import thyyxxk.wxservice_server.utils.*;
|
|
|
|
+//import thyyxxk.wxservice_server.utils.mip.DataHandler;
|
|
|
|
+//
|
|
|
|
+//import java.io.IOException;
|
|
|
|
+//import java.math.BigDecimal;
|
|
|
|
+//import java.util.*;
|
|
|
|
+//
|
|
|
|
+//@Slf4j
|
|
|
|
+//@RestController
|
|
|
|
+//@RequestMapping("/api/mobilePayPlugin")
|
|
|
|
+//public class PowersiMiPayPlugin {
|
|
|
|
+// private final PowersiPluginDao dao;
|
|
|
|
+// private final IdCardAnalyzeService idCardAnalyzeService;
|
|
|
|
+// private final ThmzService thmzService;
|
|
|
|
+// private final PushWxMessageService messageService;
|
|
|
|
+// private final RestTemplate template;
|
|
|
|
+// private final String hisMipApi;
|
|
|
|
+//
|
|
|
|
+// private final DataHandler dataHandler = DataHandler.newInstance();
|
|
|
|
+//
|
|
|
|
+// @Autowired
|
|
|
|
+// public PowersiMiPayPlugin(PowersiPluginDao dao, IdCardAnalyzeService idCardAnalyzeService, ThmzService thmzService, PushWxMessageService messageService, RestTemplate template, ApiAddr apiAddr) throws IOException {
|
|
|
|
+// this.dao = dao;
|
|
|
|
+// this.idCardAnalyzeService = idCardAnalyzeService;
|
|
|
|
+// this.thmzService = thmzService;
|
|
|
|
+// this.messageService = messageService;
|
|
|
|
+// this.template = template;
|
|
|
|
+// this.hisMipApi = apiAddr.getHisMipApi();
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PostMapping("/lockOrder")
|
|
|
|
+// public ResultVo<String> lockOrder(@RequestBody InsuinfoRequest request) {
|
|
|
|
+// String openid = TokenUtil.getInstance().getUserOpenid();
|
|
|
|
+// dao.lockOrder(request.getHisOrdNum(), openid,1);
|
|
|
|
+// return ResultVoUtil.success(openid);
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PostMapping("/lockYbOrder")
|
|
|
|
+// public ResultVo<String> lockYbOrder(@RequestBody InsuinfoRequest request) {
|
|
|
|
+// String openid = TokenUtil.getInstance().getUserOpenid();
|
|
|
|
+// dao.lockYbOrder(request.getHisOrdNum(), openid,1);
|
|
|
|
+// return ResultVoUtil.success(openid);
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PostMapping("/unlockOrder")
|
|
|
|
+// public ResultVo<String> unlockOrder(@RequestBody InsuinfoRequest request) {
|
|
|
|
+// dao.unlockOrder(request.getHisOrdNum(), null);
|
|
|
|
+// return ResultVoUtil.success("操作成功。");
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// private JSONObject decryptRequest(JSONObject body) throws Exception {
|
|
|
|
+// body.put("code", 0);
|
|
|
|
+// JSONObject decrypt = dataHandler.processRspData(body.toJSONString());
|
|
|
|
+// return decrypt.getJSONObject("data");
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PassToken
|
|
|
|
+// @PostMapping("/patientInquiry")
|
|
|
|
+// public CommonResponse patientInquiry(@RequestBody JSONObject body) throws Exception {
|
|
|
|
+// JSONObject request = decryptRequest(body);
|
|
|
|
+// List<String> patNos = dao.selectPatientCount(request.getString("idNo"));
|
|
|
|
+// if (patNos.isEmpty()) {
|
|
|
|
+// return new CommonResponse("未查询到建档信息。");
|
|
|
|
+// }
|
|
|
|
+// return new CommonResponse();
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PassToken
|
|
|
|
+// @PostMapping("/patientCreate")
|
|
|
|
+// public CommonResponse patientCreate(@RequestBody JSONObject body) throws Exception {
|
|
|
|
+// JSONObject request = decryptRequest(body);
|
|
|
|
+// return idCardAnalyzeService.createCardFromPowersiPlugin(request);
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PassToken
|
|
|
|
+// @PostMapping("/billListInquiry")
|
|
|
|
+// public JSONObject billListInquiry(@RequestBody JSONObject body) throws Exception {
|
|
|
|
+// JSONObject request = decryptRequest(body);
|
|
|
|
+// List<String> patNoList = dao.selectPatientCount(request.getString("idNo"));
|
|
|
|
+// if (patNoList.isEmpty()) {
|
|
|
|
+// JSONObject res = new JSONObject();
|
|
|
|
+// res.put("code", -1);
|
|
|
|
+// res.put("success", false);
|
|
|
|
+// res.put("message", "没有患者的建档信息。");
|
|
|
|
+// return res;
|
|
|
|
+// }
|
|
|
|
+// List<BillInfo> list = new ArrayList<>();
|
|
|
|
+// for (String patNo : patNoList) {
|
|
|
|
+// QueryReceiptRequest receiptRequest =
|
|
|
|
+// QueryReceiptRequest.builder().patCardNo(patNo).build();
|
|
|
|
+// ResultVo<List<Map<String, Object>>> vo =
|
|
|
|
+// thmzService.getMzChargeDetailForUnPaid(receiptRequest);
|
|
|
|
+// if (vo.getCode() != ExceptionEnum.SUCCESS.getCode()) {
|
|
|
|
+// continue;
|
|
|
|
+// }
|
|
|
|
+// List<Map<String, Object>> feeList = vo.getData();
|
|
|
|
+// for (Map<String, Object> billItem : feeList) {
|
|
|
|
+// BillInfo billInfo = new BillInfo(billItem);
|
|
|
|
+// if (billInfo.getVipFlag() != 0) {
|
|
|
|
+// continue;
|
|
|
|
+// }
|
|
|
|
+// billInfo.setIdNo(request.getString("idNo"));
|
|
|
|
+// billInfo.setIdType(request.getString("idType"));
|
|
|
|
+// billInfo.setDeptId(dao.selectDeptId(billInfo.getDeptName()));
|
|
|
|
+// list.add(billInfo);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// if (list.isEmpty()) {
|
|
|
|
+// JSONObject res = new JSONObject();
|
|
|
|
+// res.put("code", -1);
|
|
|
|
+// res.put("success", false);
|
|
|
|
+// res.put("message", "没有患者的待缴费信息。");
|
|
|
|
+// return res;
|
|
|
|
+// }
|
|
|
|
+// String listRef = JSONArray.toJSONString(list);
|
|
|
|
+// JSONObject temp = new JSONObject();
|
|
|
|
+// temp.put("billInfo", JSONArray.parseArray(listRef));
|
|
|
|
+// String raw = dataHandler.buildReqData(temp);
|
|
|
|
+// JSONObject response = JSONObject.parseObject(raw);
|
|
|
|
+// response.put("code", 0);
|
|
|
|
+// response.put("success", true);
|
|
|
|
+// response.put("message", "OK");
|
|
|
|
+// return response;
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PassToken
|
|
|
|
+// @PostMapping("/billDetailInquiry")
|
|
|
|
+// public JSONObject billDetailInquiry(@RequestBody JSONObject body) throws Exception {
|
|
|
|
+// JSONObject request = decryptRequest(body);
|
|
|
|
+// String bizId = request.getString("bizId");
|
|
|
|
+// bizId = null == bizId ? "" : bizId;
|
|
|
|
+// String[] arr = bizId.split("_");
|
|
|
|
+// if (arr.length != 3) {
|
|
|
|
+// JSONObject res = new JSONObject();
|
|
|
|
+// res.put("code", -1);
|
|
|
|
+// res.put("success", false);
|
|
|
|
+// res.put("message", "bizId[" + bizId + "]不正确!");
|
|
|
|
+// return res;
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// request.put("patNo", arr[0]);
|
|
|
|
+// request.put("times", Integer.parseInt(arr[1]));
|
|
|
|
+// Upload6201 upload6201 = template.postForObject(hisMipApi + "/getUpload6201", request, Upload6201.class);
|
|
|
|
+// if (null == upload6201) {
|
|
|
|
+// JSONObject res = new JSONObject();
|
|
|
|
+// res.put("code", -1);
|
|
|
|
+// res.put("success", false);
|
|
|
|
+// res.put("message", "网络异常,请稍后再试。");
|
|
|
|
+// return res;
|
|
|
|
+// }
|
|
|
|
+// upload6201.setIdNo(request.getString("idNo"));
|
|
|
|
+// upload6201.setIdType(request.getString("idType"));
|
|
|
|
+// upload6201.setUserName(request.getString("userName"));
|
|
|
|
+//
|
|
|
|
+// String raw = dataHandler.buildReqData(JSONObject.toJSONString(upload6201));
|
|
|
|
+// JSONObject response = JSONObject.parseObject(raw);
|
|
|
|
+// response.put("code", 0);
|
|
|
|
+// response.put("success", true);
|
|
|
|
+// response.put("message", "OK");
|
|
|
|
+// return response;
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PassToken
|
|
|
|
+// @PostMapping("/settleNotify")
|
|
|
|
+// public CommonResponse settleNotify(@RequestBody JSONObject body) throws Exception {
|
|
|
|
+// JSONObject request = decryptRequest(body);
|
|
|
|
+// PowersiMipSetlinfo setlinfo = dao.selectById(request.getString("platformOrderId"));
|
|
|
|
+// if (null == setlinfo) {
|
|
|
|
+// setlinfo = JSONObject.parseObject(request.toJSONString(), PowersiMipSetlinfo.class);
|
|
|
|
+// JSONObject hiExtData = request.getJSONObject("hiExtData");
|
|
|
|
+// if (null != hiExtData) {
|
|
|
|
+// JSONObject clrObj = hiExtData.getJSONObject("setlinfo");
|
|
|
|
+// if (null != clrObj) {
|
|
|
|
+// String clrOptins = clrObj.getString("clrOptins");
|
|
|
|
+// String clrType = clrObj.getString("clrType");
|
|
|
|
+// setlinfo.setClrOptins(clrOptins);
|
|
|
|
+// setlinfo.setClrType(clrType);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// int insert = dao.insert(setlinfo);
|
|
|
|
+// if (insert == 1) {
|
|
|
|
+// saveMzOrder(setlinfo);
|
|
|
|
+// return new CommonResponse();
|
|
|
|
+// }
|
|
|
|
+// return new CommonResponse("HIS业务处理失败。");
|
|
|
|
+// }
|
|
|
|
+// if (setlinfo.getMzSaved() == 0) {
|
|
|
|
+// saveMzOrder(setlinfo);
|
|
|
|
+// return new CommonResponse();
|
|
|
|
+// }
|
|
|
|
+// return new CommonResponse();
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// private void saveMzOrder(PowersiMipSetlinfo setlinfo) {
|
|
|
|
+// SaveMzPayRequest saveMzPayRequest = new SaveMzPayRequest.Builder()
|
|
|
|
+// .payTime(DateUtil.formatDatetime(setlinfo.getTraceTime()))
|
|
|
|
+// .patCardNo(setlinfo.getMedOrgOrd().split("_")[0])
|
|
|
|
+// .agtOrdNum(setlinfo.getThirdOrderId())
|
|
|
|
+// .payAmt(setlinfo.getFeeSumamt())
|
|
|
|
+// .fundpayAmt(setlinfo.getFundPay())
|
|
|
|
+// .acctpayAmt(setlinfo.getPsnAcctPay())
|
|
|
|
+// .couponAmt(BigDecimal.ZERO)
|
|
|
|
+// .cashpayAmt(setlinfo.getOwnpayAmt())
|
|
|
|
+// .hisOrdNum(setlinfo.getMedOrgOrd())
|
|
|
|
+// .psOrdNum(setlinfo.getPlatformOrderId())
|
|
|
|
+// .isNormalClinic(true).build();
|
|
|
|
+// ResultVo<String> res = thmzService.saveMzPay(saveMzPayRequest);
|
|
|
|
+// if (res.getCode() == ExceptionEnum.SUCCESS.getCode()) {
|
|
|
|
+// dao.updateMzSaved(setlinfo.getPlatformOrderId());
|
|
|
|
+// }
|
|
|
|
+// pushMessage(setlinfo.getMedOrgOrd(), setlinfo.getUserName());
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// private void pushMessage(String hisOrdNum, String userName) {
|
|
|
|
+// String[] arr = hisOrdNum.split("_");
|
|
|
|
+// int times = Integer.parseInt(arr[1]);
|
|
|
|
+// PushQuestionnaireVisit visit = dao.getVisit(arr[0], times, hisOrdNum);
|
|
|
|
+// String visitId = hisOrdNum.replaceAll("_", "AND") + "AND" + visit.getDoctorCode() + "AND" + visit.getDeptCode();
|
|
|
|
+// String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxbde6b16acad84204&redirect_uri=" +
|
|
|
|
+// "https://staticweb.hnthyy.cn/wxserver/redirect/page2?to=doctorGradeByPush_" + visitId +
|
|
|
|
+// "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
|
|
|
|
+//
|
|
|
|
+// String msgContent = "{\"touser\":\"" + visit.getOpenid() + "\",\"data\":" +
|
|
|
|
+// "{\"keyword1\":{\"color\":\"#173177\",\"value\":\"" + userName + "\"}," +
|
|
|
|
+// "\"keyword2\":{\"color\":\"#173177\",\"value\":\"沭阳铭和医院\"}," +
|
|
|
|
+// "\"keyword3\":{\"color\":\"#173177\",\"value\":\"" + visit.getDeptName() + "\"}," +
|
|
|
|
+// "\"keyword4\":{\"color\":\"#173177\",\"value\":\"" + visit.getDoctorName() + "\"}," +
|
|
|
|
+// "\"keyword5\":{\"color\":\"#173177\",\"value\":\"" + visit.getVisitDate() + "\"}," +
|
|
|
|
+// "\"remark\":{\"color\":\"#FF0000\",\"value\":\"特邀请您对医生服务作出评价。\"}," +
|
|
|
|
+// "\"first\":{\"color\":\"#FF0000\",\"value\":\"您曾在我院进行诊疗。\"}}," +
|
|
|
|
+// "\"template_id\":\"G4YAN56RmDjEPpNyP5fpCdr5TghyqspDeWlWaD5Eg2o\"," +
|
|
|
|
+// "\"url\":\"" + url + "\"}";
|
|
|
|
+// JSONObject message = JSONObject.parseObject(msgContent);
|
|
|
|
+// messageService.pushMessage2(message);
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PassToken
|
|
|
|
+// @GetMapping("/isMipOrder")
|
|
|
|
+// public ResultVo<String> isMipOrder(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
|
|
|
|
+// PowersiMipSetlinfo setlinfo = getSetlinfo(hisOrdNum, null);
|
|
|
|
+// if (null == setlinfo) {
|
|
|
|
+// return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
|
|
|
|
+// }
|
|
|
|
+// return ResultVoUtil.success(setlinfo.getPlatformOrderId());
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PassToken
|
|
|
|
+// @GetMapping("/settleQuery")
|
|
|
|
+// public JSONObject settleQuery(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
|
|
|
|
+// String patientId = hisOrdNum.split("_")[0];
|
|
|
|
+// OrderQueryRequest request = dao.getMzPatient(patientId);
|
|
|
|
+// request.setMedOrgOrd(hisOrdNum);
|
|
|
|
+//
|
|
|
|
+// JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(request));
|
|
|
|
+// String body = dataHandler.buildReqData(raw);
|
|
|
|
+// String url = "http://webhis.thyy.cn:8077/powersiMipSettleQuery";
|
|
|
|
+// HttpHeaders headers = new HttpHeaders();
|
|
|
|
+// headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
+// HttpEntity<String> entity = new HttpEntity<>(body, headers);
|
|
|
|
+// String encRes = template.postForObject(url, entity, String.class);
|
|
|
|
+// return dataHandler.processRspData(encRes);
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PassToken
|
|
|
|
+// @PostMapping("/downloadBillData")
|
|
|
|
+// public void powersiMipDownloadBillData() {
|
|
|
|
+//
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PassToken
|
|
|
|
+// @PostMapping("/revokeMipSettle")
|
|
|
|
+// public ResultVo<String> revokeMipSettle(@RequestBody CommonRequest request) throws Exception {
|
|
|
|
+// PowersiMipSetlinfo setlinfo = getRefundableSetl(request.getHisOrdNum());
|
|
|
|
+// if (null == setlinfo) {
|
|
|
|
+// setlinfo = getSetlinfo(request.getHisOrdNum(), OrdState.REFUND_SUCCEED);
|
|
|
|
+// if (null != setlinfo) {
|
|
|
|
+// return ResultVoUtil.success("医保移动支付退款成功");
|
|
|
|
+// }
|
|
|
|
+// return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "没有可以退款的结算交易。");
|
|
|
|
+// }
|
|
|
|
+// Date now = new Date();
|
|
|
|
+// RevokeSettleRequest refd = new RevokeSettleRequest();
|
|
|
|
+// if (StringUtil.notBlank(request.getRefdType())) {
|
|
|
|
+// refd.setRefdType(request.getRefdType());
|
|
|
|
+// }
|
|
|
|
+// refd.setMedOrgOrd(request.getHisOrdNum());
|
|
|
|
+// refd.setMedRefdId(SnowFlakeId.instance().nextId());
|
|
|
|
+// refd.setRefdTime(DateUtil.formatDatetime(now));
|
|
|
|
+// refd.setTotlRefdAmt(setlinfo.getFeeSumamt());
|
|
|
|
+// refd.setPsnAcctRefdAmt(setlinfo.getPsnAcctPay());
|
|
|
|
+// refd.setFundRefdAmt(setlinfo.getFundPay());
|
|
|
|
+// refd.setCashRefdAmt(setlinfo.getOwnpayAmt());
|
|
|
|
+// refd.setRefdReason(request.getRefundReason());
|
|
|
|
+// refd.setEcToken(request.getEcToken());
|
|
|
|
+// refd.setPlatformOrderId(setlinfo.getPlatformOrderId());
|
|
|
|
+// dao.updateMedRedfId(refd.getMedRefdId(), refd.getMedOrgOrd());
|
|
|
|
+// JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(refd));
|
|
|
|
+// String body = dataHandler.buildReqData(raw);
|
|
|
|
+// String url = "http://webhis.thyy.cn:8077/powersiMipRefund";
|
|
|
|
+// HttpHeaders headers = new HttpHeaders();
|
|
|
|
+// headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
+// HttpEntity<String> entity = new HttpEntity<>(body, headers);
|
|
|
|
+// String encRes = template.postForObject(url, entity, String.class);
|
|
|
|
+// JSONObject decRes = dataHandler.processRspData(encRes);
|
|
|
|
+// Integer code = decRes.getInteger("code");
|
|
|
|
+// if (null != code && code == 0) {
|
|
|
|
+// JSONObject data = decRes.getJSONObject("data");
|
|
|
|
+// OrdState state = OrdState.get(data.getString("refStatus"));
|
|
|
|
+// if (null == state) {
|
|
|
|
+// return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
|
|
|
|
+// }
|
|
|
|
+// String refId = data.getString("platformRefdId");
|
|
|
|
+// dao.updateRevokeInfo(request.getStaffId(), now, refId, setlinfo.getMedOrgOrd(), state);
|
|
|
|
+// if (state == OrdState.REFUND_SUCCEED) {
|
|
|
|
+// return ResultVoUtil.success("医保移动支付退款成功");
|
|
|
|
+// }
|
|
|
|
+// if (state == OrdState.REFUND_PROCEEDING) {
|
|
|
|
+// return ResultVoUtil.success("医保移动支付退款进行中,请稍后查询退款结果。");
|
|
|
|
+// }
|
|
|
|
+// if (state == OrdState.REFUND_ABNORMAL) {
|
|
|
|
+// return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保移动支付退款异常,请稍后查询退款结果。");
|
|
|
|
+// }
|
|
|
|
+// return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, data.getString("failMsg"));
|
|
|
|
+// }
|
|
|
|
+// return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, decRes.getString("message"));
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// private PowersiMipSetlinfo getRefundableSetl(String id) {
|
|
|
|
+// PowersiMipSetlinfo setlinfo = getSetlinfo(id, OrdState.SETTLED);
|
|
|
|
+// if (null == setlinfo) {
|
|
|
|
+// setlinfo = getSetlinfo(id, OrdState.REFUND_FAILED);
|
|
|
|
+// if (null == setlinfo) {
|
|
|
|
+// setlinfo = getSetlinfo(id, OrdState.REFUND_ABNORMAL);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// return setlinfo;
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// private PowersiMipSetlinfo getSetlinfo(String id, OrdState state) {
|
|
|
|
+// QueryWrapper<PowersiMipSetlinfo> wrapper = new QueryWrapper<>();
|
|
|
|
+// wrapper.eq("med_org_ord", id);
|
|
|
|
+// if (null == state) {
|
|
|
|
+// List<PowersiMipSetlinfo> list = dao.selectList(wrapper);
|
|
|
|
+// if (list == null || list.isEmpty()) {
|
|
|
|
+// return null;
|
|
|
|
+// }
|
|
|
|
+// return list.get(0);
|
|
|
|
+// }
|
|
|
|
+// wrapper.eq("ord_state", state);
|
|
|
|
+// return dao.selectOne(wrapper);
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @PassToken
|
|
|
|
+// @GetMapping("/queryRefundState")
|
|
|
|
+// public ResultVo<String> queryRefundState(@RequestParam("hisOrdNum") String hisOrdNum) throws Exception {
|
|
|
|
+// QueryWrapper<PowersiMipSetlinfo> wrapper = new QueryWrapper<>();
|
|
|
|
+// wrapper.eq("med_org_ord", hisOrdNum);
|
|
|
|
+// PowersiMipSetlinfo setlinfo = dao.selectOne(wrapper);
|
|
|
|
+// if (null == setlinfo) {
|
|
|
|
+// return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
|
|
|
|
+// }
|
|
|
|
+// if (setlinfo.getOrdState() == OrdState.REFUND_SUCCEED) {
|
|
|
|
+// return ResultVoUtil.success(OrdState.REFUND_SUCCEED.toString());
|
|
|
|
+// }
|
|
|
|
+// JSONObject params = new JSONObject();
|
|
|
|
+// if (StringUtil.notBlank(setlinfo.getPlatformRefdId())) {
|
|
|
|
+// params.put("platformRefdId", setlinfo.getPlatformRefdId());
|
|
|
|
+// } else {
|
|
|
|
+// params.put("medRefdId", setlinfo.getMedRefdId());
|
|
|
|
+// }
|
|
|
|
+// params.put("orgCodg", "H43010500370");
|
|
|
|
+// JSONObject raw = JSONObject.parseObject(JSONObject.toJSONString(params));
|
|
|
|
+// String body = dataHandler.buildReqData(raw);
|
|
|
|
+// String url = "http://webhis.thyy.cn:8077/powersiMipRefundQuery";
|
|
|
|
+// HttpHeaders headers = new HttpHeaders();
|
|
|
|
+// headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
+// HttpEntity<String> entity = new HttpEntity<>(body, headers);
|
|
|
|
+// String encRes = template.postForObject(url, entity, String.class);
|
|
|
|
+// JSONObject decRes = dataHandler.processRspData(encRes);
|
|
|
|
+// Integer code = decRes.getInteger("code");
|
|
|
|
+// if (null != code && code == 0) {
|
|
|
|
+// JSONObject data = decRes.getJSONObject("data");
|
|
|
|
+// data.remove("hiExtData");
|
|
|
|
+// OrdState state = OrdState.get(data.getString("refdStatus"));
|
|
|
|
+// if (null == state) {
|
|
|
|
+// return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
|
|
|
|
+// }
|
|
|
|
+// String refId = data.getString("platformRefdId");
|
|
|
|
+// dao.updateRefundState(refId, state, hisOrdNum);
|
|
|
|
+// return ResultVoUtil.success(state.toString());
|
|
|
|
+// }
|
|
|
|
+// return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, decRes.getString("message"));
|
|
|
|
+// }
|
|
|
|
+//}
|