|
|
@@ -29,6 +29,7 @@ import thyyxxk.webserver.entity.medicalinsurance.setllistupldTemp.*;
|
|
|
import thyyxxk.webserver.entity.querydata.JieSuanDanChaXun;
|
|
|
import thyyxxk.webserver.entity.querydata.SiSetlinfoTemp;
|
|
|
import thyyxxk.webserver.service.PublicServer;
|
|
|
+import thyyxxk.webserver.service.wxapi.SendWxInfoService;
|
|
|
import thyyxxk.webserver.utils.*;
|
|
|
import thyyxxk.webserver.websocket.WebSocketServer;
|
|
|
|
|
|
@@ -55,13 +56,15 @@ public class SetlListUpldService {
|
|
|
private final DismissDao dismissDao;
|
|
|
|
|
|
private final PublicServer publicServer;
|
|
|
+ private final SendWxInfoService sendWxInfoService;
|
|
|
|
|
|
- public SetlListUpldService(ExecService exec, SiQueryDao queryDao, UpIdCollectionDao upIdCollectionDao, DismissDao dismissDao, PublicServer publicServer) {
|
|
|
+ public SetlListUpldService(ExecService exec, SiQueryDao queryDao, UpIdCollectionDao upIdCollectionDao, DismissDao dismissDao, PublicServer publicServer, SendWxInfoService sendWxInfoService) {
|
|
|
this.exec = exec;
|
|
|
this.queryDao = queryDao;
|
|
|
this.dao = upIdCollectionDao;
|
|
|
this.dismissDao = dismissDao;
|
|
|
this.publicServer = publicServer;
|
|
|
+ this.sendWxInfoService = sendWxInfoService;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -678,14 +681,13 @@ public class SetlListUpldService {
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public ResultVo<String> setlModifyReq(ZyInactpatient param) {
|
|
|
-// log.info("申请入参:{}", JSONObject.toJSONStringWithDateFormat(param, DateUtil.DEFAULT_PATTERN));
|
|
|
param.setLedgerSn(publicServer.getLedgerSn(param.getInpatientNo(), param.getAdmissTimes()));
|
|
|
Set<String> zhenDuanBianMa = new HashSet<>();
|
|
|
Set<String> shouShuBianMa = new HashSet<>();
|
|
|
-
|
|
|
- log.info("诊断:{}", JSON.toJSONString(param.getYbZyDisDiag()));
|
|
|
-
|
|
|
for (YbZyDisDiag item : param.getYbZyDisDiag()) {
|
|
|
+ if (item.getDisDiagNo() == null || item.getDisDiagNo() <= 0) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "诊断排序不能为空,且最小值为 1 。");
|
|
|
+ }
|
|
|
zhenDuanBianMa.add(item.getDisDiag());
|
|
|
if (item.getNewData()) {
|
|
|
item.setInpatientNo(param.getInpatientNo());
|
|
|
@@ -704,12 +706,13 @@ public class SetlListUpldService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- int ssxh = 0;
|
|
|
for (BatjBa4 item : param.getBatjBa4()) {
|
|
|
+ if (item.getSsxh() == null || item.getSsxh() <= 0) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "手术排序不能为空,且最小值为 1。");
|
|
|
+ }
|
|
|
shouShuBianMa.add(item.getSsbm());
|
|
|
item.setZyh(param.getInpatientNo());
|
|
|
item.setZycs(param.getAdmissTimes());
|
|
|
- item.setSsxh(ssxh += 1);
|
|
|
if (!item.getNewData()) {
|
|
|
if (item.getSsrq() == null) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "手术日期不能为空。");
|
|
|
@@ -731,22 +734,24 @@ public class SetlListUpldService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ param.getYbZyDisDiag().sort(Comparator.comparingInt(YbZyDisDiag::getDisDiagNo));
|
|
|
+ param.getBatjBa4().sort(Comparator.comparingInt(BatjBa4::getSsxh));
|
|
|
if (param.getYbZyDisDiag().size() != zhenDuanBianMa.size()) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "不可以有相同的诊断。");
|
|
|
}
|
|
|
if (param.getBatjBa4().size() != shouShuBianMa.size()) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "不可以有相同的手术编码。");
|
|
|
}
|
|
|
-// dao.delReq(param.getInpatientNo(), param.getAdmissTimes());
|
|
|
-// dao.setlModifyReq(param.getInpatientNo(), param.getAdmissTimes(),
|
|
|
-// param.getOpIdCode(), param.getOpIdName(), param.getReqRemark());
|
|
|
-// if (ListUtil.notBlank(param.getYbZyDisDiag())) {
|
|
|
-// dao.setlModDis(param.getYbZyDisDiag(), "zy_dis_diag_yb_modify");
|
|
|
-// }
|
|
|
-// if (ListUtil.notBlank(param.getBatjBa4())) {
|
|
|
-// dao.setlModBat(param.getBatjBa4(), "batj_ba4_modify");
|
|
|
-// }
|
|
|
-// dao.shenBao(param.getOperation(), param.getDecType(), param.getInpatientNo(), param.getAdmissTimes());
|
|
|
+ dao.delReq(param.getInpatientNo(), param.getAdmissTimes());
|
|
|
+ dao.setlModifyReq(param.getInpatientNo(), param.getAdmissTimes(),
|
|
|
+ TokenUtil.getTokenUserId(), param.getOpIdName(), param.getReqRemark());
|
|
|
+ if (ListUtil.notBlank(param.getYbZyDisDiag())) {
|
|
|
+ dao.setlModDis(param.getYbZyDisDiag(), "zy_dis_diag_yb_modify");
|
|
|
+ }
|
|
|
+ if (ListUtil.notBlank(param.getBatjBa4())) {
|
|
|
+ dao.setlModBat(param.getBatjBa4(), "batj_ba4_modify");
|
|
|
+ }
|
|
|
+ dao.shenBao(param.getOperation(), param.getDecType(), param.getInpatientNo(), param.getAdmissTimes());
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "申请成功,请等待医保科审核。");
|
|
|
}
|
|
|
|
|
|
@@ -773,6 +778,9 @@ public class SetlListUpldService {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "驳回信息不能为空。");
|
|
|
}
|
|
|
dao.upAuditFlag(id, auditFlag);
|
|
|
+ sendWxInfoService.sendCorpWxMsg(dao.yuanGongGongHao(req.getReqOpId()),
|
|
|
+ String.format("医保结算单上传:申请已驳回 患者姓名:【%s】, 住院号:【%s】, 原因:【%s】,审核人:【%s】",
|
|
|
+ req.getPatName(), req.getPatNo(), remark, auditName));
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "审核已驳回 (╯﹏╰)b");
|
|
|
}
|
|
|
|