|
@@ -262,9 +262,10 @@ public class SiZyService {
|
|
|
preSetlmt.setAcctUsedFlag(YesOrNo.NO.getCodeStr());
|
|
|
preSetlmt.setMidSetlFlag(YesOrNo.NO.getCodeStr());
|
|
|
preSetlmt.setMdtrtareaAdmvs(SiUtil.getInstitutionArea(preSetlmt.getInsuplcAdmdvs()));
|
|
|
+ preSetlmt.setDscgTime(dao.selectActOrderDisDate(p.getInpatientNo(), p.getAdmissTimes()));
|
|
|
|
|
|
JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.HOSPITALIZATION_PRE_SETTLEMENT, preSetlmt.getInsuplcAdmdvs());
|
|
|
- String ref = JSONObject.toJSONString(preSetlmt);
|
|
|
+ String ref = JSONObject.toJSONStringWithDateFormat(preSetlmt, "yyyy-MM-dd");
|
|
|
input.getJSONObject("input").put("data", JSONObject.parseObject(ref));
|
|
|
JSONObject result = exec.executeTrade(input, SiFunction.HOSPITALIZATION_PRE_SETTLEMENT);
|
|
|
log.info("预结算:\n参数:{},\n结果:{}", input, result);
|
|
@@ -468,10 +469,18 @@ public class SiZyService {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保中心报错:" + result.getString("message"));
|
|
|
}
|
|
|
if (infcode == 0) {
|
|
|
+ if (p.getStopHere()) {
|
|
|
+ return ResultVoUtil.success("出院办理成功。");
|
|
|
+ }
|
|
|
p.setDismissDate(dscginfo.getEndtime());
|
|
|
return inpatientSettlement(p);
|
|
|
}
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, result.getString(ERROR_MESSAGE));
|
|
|
+ String errMsg = result.getString(ERROR_MESSAGE);
|
|
|
+ if (null != errMsg && errMsg.contains("该人员已经是出院状态")) {
|
|
|
+ p.setDismissDate(dscginfo.getEndtime());
|
|
|
+ return inpatientSettlement(p);
|
|
|
+ }
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, errMsg);
|
|
|
}
|
|
|
|
|
|
public ResultVo<String> revokeDischarge(ZyPatientInfo p) {
|