LIJU 1 month ago
parent
commit
1a6dedba7d

+ 112 - 0
src/main/java/cn/hnthyy/thmz/controller/mz/MzChargeDetailController.java

@@ -482,6 +482,118 @@ public class MzChargeDetailController {
     }
 
 
+    /**
+     * 收费 宿迁健康通专用
+     *
+     * @return
+     */
+    @UserLoginToken
+    @RequestMapping(value = "/chargeFeeSQJKT", method = {RequestMethod.POST})
+    public Map<String, Object> chargeFeeSQJKT(@RequestBody MzDepositFileVo mzDepositFileVo, HttpServletRequest httpServletRequest) {
+        Map<String, Object> resultMap = new HashMap<>();
+        try {
+            if (mzDepositFileVo == null) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "费用参数不能为空");
+                return resultMap;
+            }
+            if (StringUtils.isBlank(mzDepositFileVo.getPatientId())) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "病人编码不能为空");
+                return resultMap;
+            }
+            if (mzDepositFileVo.getTimes() == null) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "病人就诊次数不能为空");
+                return resultMap;
+            }
+            if (mzDepositFileVo.getReceiptNo() == null) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "病人结算次数不能为空");
+                return resultMap;
+            }
+            if (mzDepositFileVo.getMzDepositFiles() == null || mzDepositFileVo.getMzDepositFiles().size() == 0) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "费用方式不能为空");
+                return resultMap;
+            }
+            String token = TokenUtil.getToken(httpServletRequest);
+            if (StringUtils.isBlank(token)) {
+                resultMap.put("code", -1);
+                resultMap.put("message", "缴费失败,用户Token不存在");
+                return resultMap;
+            }
+            for(MzDepositFile mzDepositFile : mzDepositFileVo.getMzDepositFiles()){
+                if(Constants.DY_TG.equals(mzDepositFile.getChequeType())){
+                    if(StrUtil.isBlank(mzDepositFile.getDyTgNo())){
+                        resultMap.put("code", -1);
+                        resultMap.put("message", "付费方式为抖音团购,必须输入抖音团购码");
+                        return resultMap;
+                    }
+                    mzDepositFile.setContractId(Convert.toLong(mzDepositFile.getDyTgNo()));
+                }
+            }
+            DecodedJWT decodedJWT = TokenUtil.parseJWT(token);
+            User tokenUser = (User) JsonUtil.jsontoObject(decodedJWT.getSubject(), User.class);
+            List<MzReceiptSerial> mzReceiptSerials = mzReceiptSerialService.queryTallyReceiptSerialByIdAndTimes(mzDepositFileVo.getPatientId(), mzDepositFileVo.getTimes(), mzDepositFileVo.getReceiptNo());
+            MzDepositFile tempDepositFile = new MzDepositFile();
+            tempDepositFile.setPatientId(mzDepositFileVo.getPatientId());
+            tempDepositFile.setTimes(mzDepositFileVo.getTimes());
+            tempDepositFile.setPayMark(PayMarkEnum.CHARGED.code);
+            tempDepositFile.setReceiptNo(1);
+            List<MzDepositFile> mzDepositFiles = mzDepositFileService.queryMzDepositFileByTimesAndPayMark(tempDepositFile);
+            if (mzReceiptSerials != null && mzReceiptSerials.size() > 0) {
+                //本院记账退费重收操作
+//                for (MzDepositFile m : mzDepositFileVo.getMzDepositFiles()) {
+//                    if (Constants.BYJZ.equals(m.getChequeType())) {
+//                        resultMap.put("code", -1);
+//                        resultMap.put("message", "本院记账退费重收不能再选择记账收费方式");
+//                        return resultMap;
+//                    }
+//                }
+//                int receiptNo = mzChargeDetailService.chargeFeeForByjz(tokenUser.getUserIdCode(), mzDepositFileVo);
+                //这里491 ,用淮海员工号
+                int receiptNo = mzChargeDetailService.chargeFeeForByjz("491", mzDepositFileVo);
+                resultMap.put("receiptNo", receiptNo);
+            }
+            else  if(CollUtil.isNotEmpty(mzDepositFiles)){
+                if(mzDepositFiles.stream().anyMatch(item->Constants.ZZWX.equals(item.getChequeType()))){
+                    resultMap.put("code", -1);
+                    resultMap.put("message", "缴费失败,已经缴费,缴费方式为微信缴费,请不要重复缴费!");
+                    return resultMap;
+                }
+                //    修改收费人
+                mzChargeDetailService.updateOpId(HttpUtil.getIPAddress(httpServletRequest),"491",mzDepositFileVo);
+                resultMap.put("receiptNo", 1);
+            }
+            else {
+                String ipAddress = HttpUtil.getIPAddress(httpServletRequest);
+//                int receiptNo = mzChargeDetailService.chargeFee(tokenUser.getUserIdCode(), mzDepositFileVo, ipAddress);
+                //这里491 ,用淮海员工号
+                int receiptNo = mzChargeDetailService.chargeFee("491", mzDepositFileVo, ipAddress);
+                resultMap.put("receiptNo", receiptNo);
+            }
+            resultMap.put("code", 0);
+            resultMap.put("message", "缴费成功");
+            return resultMap;
+        } catch (MzException e) {
+            e.printStackTrace();
+            resultMap.put("code", -1);
+            resultMap.put("message", "缴费失败," + e.getMessage());
+            log.error("缴费失败,系统异常,错误信息【{}】", e);
+            return resultMap;
+        } catch (Exception e) {
+            e.printStackTrace();
+            resultMap.put("code", -1);
+            resultMap.put("message", "缴费失败,系统出错,请联系管理员");
+            log.error("缴费失败,系统异常" + e);
+            return resultMap;
+        }
+    }
+
+
+
+
     /**
      * 修改病人姓名  120病人缴费时调用
      *