|
@@ -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病人缴费时调用
|
|
|
*
|