|
@@ -709,6 +709,112 @@ public class MzyReqrecController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新挂号信息 宿迁健康通专用
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @UserLoginToken
|
|
|
+ @RequestMapping(value = "/updateReqrecSQJKT", method = {RequestMethod.POST})
|
|
|
+ public Map<String, Object> updateReqrecSQJKT(@RequestBody MzyReqrec mzyReqrec, HttpServletRequest httpServletRequest) {
|
|
|
+ Map<String, Object> resultMap = new HashMap<>();
|
|
|
+ try {
|
|
|
+ if (mzyReqrec == null) {
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "更新挂号信息参数不能为空");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(mzyReqrec.getPatientId())) {
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "病人id不能为空");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ if (mzyReqrec.getTimes() == null) {
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "病人挂号次数不能为空");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ if (mzyReqrec.getRefundType() == null) {
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "退费类型不能为空");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ User tokenUser = TokenUtil.getUser(httpServletRequest);
|
|
|
+ if (tokenUser == null) {
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "查询窗口号失败,用户Token不存在");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+// mzyReqrec.setOpId(tokenUser.getUserIdCode());
|
|
|
+ //这里491 ,用淮海员工号
|
|
|
+ mzyReqrec.setOpId("491");
|
|
|
+
|
|
|
+
|
|
|
+ MzyReqrec dbMzyReqrec = mzyReqrecService.queryMzyReqrecByPatientIdAndTimes(mzyReqrec.getPatientId(), mzyReqrec.getTimes(), "mzy_reqrec");
|
|
|
+ if (dbMzyReqrec == null) {
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "需要退号的挂号记录不存在");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ Windows windowsDb = null;
|
|
|
+ boolean isPos = YesNoEnum.YES.code.equals(mzyReqrec.getRefundType()) && Arrays.asList(Constants.BYJZ, Constants.YLK, Constants.JHZF).contains(dbMzyReqrec.getPaymode());
|
|
|
+ if (isPos) {
|
|
|
+ String ipAddress = HttpUtil.getIPAddress(httpServletRequest);
|
|
|
+ windowsDb = windowsService.queryLastWindowsIpAddress(ipAddress);
|
|
|
+ if (windowsDb == null || StringUtils.isBlank(windowsDb.getMisPosRouterCode())) {
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "您暂未配置只能POS机的【路由识别码】,请配置完后重试!");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ BigDecimal amt = dbMzyReqrec.getTotalAmount();
|
|
|
+ //String lsOrderNo = dbMzyReqrec.getPatientId() + "_" + dbMzyReqrec.getTimes();
|
|
|
+ String lsOrderNo = dbMzyReqrec.getPsordnum() + "_" + dbMzyReqrec.getTotalAmountStr();
|
|
|
+ //这里491 ,用淮海员工号
|
|
|
+ int num = mzyReqrecService.modifyMzyReqrec(mzyReqrec, "491");
|
|
|
+ if (YesNoEnum.YES.code.equals(mzyReqrec.getCancelMark())) {
|
|
|
+ if (isPos && StringUtils.isNotBlank(windowsDb.getMisPosRouterCode())) {
|
|
|
+ JSONObject jsonObject = transactionService.refund(windowsDb.getMisPosRouterCode(), amt, lsOrderNo, null, dbMzyReqrec.getPaymode(), dbMzyReqrec.getParChannel(), dbMzyReqrec.getPsordnum(), dbMzyReqrec.getTransDate(), dbMzyReqrec.getAgtordnum());
|
|
|
+ if (jsonObject == null) {
|
|
|
+ resultMap.put("code", -2);
|
|
|
+ resultMap.put("message", "挂号记录已退,但是患者智能POS退款失败,请去财务工具查询并退款!");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ String resCode = (String) jsonObject.get("resCode");
|
|
|
+ if (!"00".equals(resCode)) {
|
|
|
+ resultMap.put("code", -2);
|
|
|
+ resultMap.put("message", "挂号记录已退,但是患者智能POS退款失败,错误信息为:" + jsonObject.get("resMsg") + "请去财务工具查询并退款!");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!(YesNoEnum.YES.code.equals(mzyReqrec.getRefundType()) &&Arrays.asList(Constants.BYJZ, Constants.YLK, Constants.JHZF,Constants.DJZ,Constants.YH_HD,Constants.GCP,Constants.DY_TG).contains(dbMzyReqrec.getPaymode()))) {
|
|
|
+ dbMzyReqrec.setPaymode(Constants.CASH);
|
|
|
+ }
|
|
|
+ ZdChequeType zdChequeType = zdChequeTypeService.queryChequeTypeByCode(dbMzyReqrec.getPaymode());
|
|
|
+ dbMzyReqrec.setPaymode(zdChequeType == null ? dbMzyReqrec.getPaymode() : zdChequeType.getName());
|
|
|
+ resultMap.put("data", dbMzyReqrec);
|
|
|
+ }
|
|
|
+ if (num == 1) {
|
|
|
+ resultMap.put("code", 0);
|
|
|
+ resultMap.put("message", "更新挂号信息成功");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "更新挂号信息失败");
|
|
|
+ return resultMap;
|
|
|
+ } catch (MzException e) {
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", e.getMessage());
|
|
|
+ return resultMap;
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "更新挂号信息失败,系统出错,请联系管理员");
|
|
|
+ log.error("更新挂号信息失败,系统异常,错误信息{}", e);
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 打印当前挂号的发票信息
|