LIJU 1 bulan lalu
induk
melakukan
4e91293ba5

+ 120 - 0
src/main/java/cn/hnthyy/thmz/controller/mz/MzyReqrecController.java

@@ -208,6 +208,126 @@ public class MzyReqrecController {
         }
     }
 
+
+    /**
+     * 保存挂号信息  宿迁健康通专用
+     *
+     * @return
+     */
+    @UserLoginToken
+    @RequestMapping(value = "/saveMzyReqrecSQJKT", method = {RequestMethod.POST})
+    public Map<String, Object> saveMzyReqrecSQJKT(@RequestBody MzyReqrecPageDto mzyReqrecPageDto, HttpServletRequest httpServletRequest) {
+        Map<String, Object> resultMap = new HashMap<>();
+        try {
+            if (mzyReqrecPageDto == null || mzyReqrecPageDto.getMzyReqrec() == null) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "挂号参数不能为空");
+                return resultMap;
+            }
+            MzyReqrec mzyReqrec = mzyReqrecPageDto.getMzyReqrec();
+            if (StringUtils.isBlank(mzyReqrec.getPatientId())) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "病人id不能为空");
+                return resultMap;
+            }
+            if (StringUtils.isBlank(mzyReqrec.getAmpm())) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "挂号时间段不能为空");
+                return resultMap;
+            }
+            if (StringUtils.isBlank(mzyReqrec.getUnitCode())) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "科室编码不能为空");
+                return resultMap;
+            }
+            if (StringUtils.isBlank(mzyReqrec.getChargeType())) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "号别不能为空");
+                return resultMap;
+            }
+            if (mzyReqrecPageDto.getMzyRequestId() == null) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "门诊号表主键不能为空");
+                return resultMap;
+            }
+            if (PayMarkEnum.CHARGED.code.equals(mzyReqrecPageDto.getPayMark())) {
+                if (StringUtils.isBlank(mzyReqrec.getPaymode())) {
+                    resultMap.put("code", -1);
+                    resultMap.put("message", "付款方式不能为空");
+                    return resultMap;
+                }
+                if (mzyReqrecPageDto.getTotalFee() == null) {
+                    resultMap.put("resultCode", -1);
+                    resultMap.put("message", "实缴费用不能为空");
+                    return resultMap;
+                }
+                if (StringUtils.isBlank(mzyReqrecPageDto.getResponceType())) {
+                    resultMap.put("code", -1);
+                    resultMap.put("message", "病人性质不能为空");
+                    return resultMap;
+                }
+                if (Constants.JHZF.equals(mzyReqrec.getPaymode()) || Constants.YLK.equals(mzyReqrec.getPaymode())) {
+                    if (StringUtils.isBlank(mzyReqrec.getPsordnum())) {
+                        resultMap.put("code", -1);
+                        resultMap.put("message", "银联刷卡或者聚合支付流水号为空!");
+                        return resultMap;
+                    }
+                    if (StringUtils.isBlank(mzyReqrec.getParChannel())) {
+                        resultMap.put("code", -1);
+                        resultMap.put("message", "银联刷卡或者聚合支付回传支付渠道为空!");
+                        return resultMap;
+                    }
+                    if (Constants.JHZF.equals(mzyReqrec.getPaymode()) && StringUtils.isBlank(mzyReqrec.getAgtordnum())) {
+                        resultMap.put("code", -1);
+                        resultMap.put("message", "银联刷卡或者聚合支付条形码流水号为空!");
+                        return resultMap;
+                    }
+                    if (StringUtils.isBlank(mzyReqrec.getTransDate())) {
+                        resultMap.put("code", -1);
+                        resultMap.put("message", "银联刷卡或者聚合支付交易日期为空!");
+                        return resultMap;
+                    }
+                }
+            }
+            MzZdWorkTime mzZdWorkTime = mzZdWorkTimeService.queryMzZdWorkTimeByCode(mzyReqrec.getAmpm());
+            if (mzZdWorkTime == null) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "号段不存在");
+                return resultMap;
+            }
+            String toDayStr = DateUtil.paseToString(new Date(), "yyyy-MM-dd");
+            if (toDayStr.equals(mzyReqrec.getRequestDayStr()) && checkWorkTime(resultMap, mzZdWorkTime)) {
+                return resultMap;
+            }
+            User tokenUser = TokenUtil.getUser(httpServletRequest);
+            //这里491 ,用淮海员工号
+            mzyReqrec.setOpId("491");
+            mzyReqrec.setWebId("491");
+            String ipAddress = HttpUtil.getIPAddress(httpServletRequest);
+            int num = mzyReqrecService.saveMzyReqrec(mzyReqrecPageDto, ipAddress);
+            //这段代码是为了在挂号成功且已缴费的情况下,自动为患者开具电子发票
+//            if(dictDataService.queryFpVersion() == 1){
+//                if(PayMarkEnum.CHARGED.code.equals(mzyReqrecPageDto.getPayMark())){
+//                    ZdChequeType zdChequeType = zdChequeTypeService.queryChequeTypeByCode(mzyReqrec.getPaymode());
+//                    if (zdChequeType != null && zdChequeType.getPrintFlag() != null && zdChequeType.getPrintFlag() == 1) {
+//                        MzReceiptSerial mzReceiptSerial = new MzReceiptSerial(mzyReqrecPageDto.getMzyReqrec().getPatientId(),num);
+//                        mzReceiptSerial.setOperatorId(tokenUser.getUserName());
+//                        dictDataService.getBswServer().asnyMzInvoice(mzReceiptSerial,true,1);
+//                    }
+//                }
+//            }
+            resultMap.put("code", 0);
+            resultMap.put("times", num);
+            resultMap.put("message", "保存挂号信息成功");
+            return resultMap;
+        } catch (Exception e) {
+            resultMap.put("code", -1);
+            resultMap.put("message", StringUtils.isBlank(e.getMessage()) ? "挂号失败,系统出错,请联系管理员" : e.getMessage());
+            log.error(StrUtil.format("挂号失败,系统异常,错误信息{}", e.getMessage()),e);
+            return resultMap;
+        }
+    }
+
     /**
      * 校验挂号时段的选择是否合理
      *