|
|
@@ -54,6 +54,7 @@ import thyyxxk.webserver.entity.medicalinsurance.setllistupldTemp.UpldCollection
|
|
|
import thyyxxk.webserver.entity.querydata.AutoUploadBill;
|
|
|
import thyyxxk.webserver.entity.querydata.JieSuanDanChaXun;
|
|
|
import thyyxxk.webserver.entity.querydata.SiSetlinfoTemp;
|
|
|
+import thyyxxk.webserver.entity.querydata.TSetlDeptConf;
|
|
|
import thyyxxk.webserver.entity.vo.DrgGroupTestVO;
|
|
|
import thyyxxk.webserver.entity.vo.quality.DiseInfoListVO;
|
|
|
import thyyxxk.webserver.entity.vo.quality.OprtInfoListVO;
|
|
|
@@ -102,12 +103,14 @@ public class SetlListUpldService {
|
|
|
private final RedisLikeService redisLikeService;
|
|
|
private DrgWebServices drgWebServices;
|
|
|
private AutoUploadBillService autoUploadBillService;
|
|
|
+ private TSetlDeptConfService tSetlDeptConfService;
|
|
|
|
|
|
public SetlListUpldService(ExecService exec, SiQueryDao queryDao, UpIdCollectionDao upIdCollectionDao,
|
|
|
DismissDao dismissDao, PublicServer publicServer, SendWxInfoService sendWxInfoService,
|
|
|
SiLogDao logDao, CaseFrontSheetMainService caseFrontSheetMainService,
|
|
|
RedisLikeService redisLikeService, DrgWebServices drgWebServices,
|
|
|
- AutoUploadBillService autoUploadBillService
|
|
|
+ AutoUploadBillService autoUploadBillService,
|
|
|
+ TSetlDeptConfService tSetlDeptConfService
|
|
|
) {
|
|
|
this.exec = exec;
|
|
|
this.queryDao = queryDao;
|
|
|
@@ -120,6 +123,7 @@ public class SetlListUpldService {
|
|
|
this.redisLikeService = redisLikeService;
|
|
|
this.drgWebServices = drgWebServices;
|
|
|
this.autoUploadBillService = autoUploadBillService;
|
|
|
+ this.tSetlDeptConfService = tSetlDeptConfService;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -150,7 +154,8 @@ public class SetlListUpldService {
|
|
|
JSONObject jsonObject = exec.makeTradeHeaderWithInsureArea(SiFunction.UPLOAD_SI_SETTLE_INFO, upldCollection.getData().getSetlinfo().getInsuplc());
|
|
|
jsonObject.replace("input", input);
|
|
|
// 这里是上传
|
|
|
- JSONObject result = exec.executeTrade(jsonObject, SiFunction.UPLOAD_SI_SETTLE_INFO);
|
|
|
+ //JSONObject result = exec.executeTrade(jsonObject, SiFunction.UPLOAD_SI_SETTLE_INFO);
|
|
|
+ JSONObject result = null;
|
|
|
|
|
|
log.info("医保结算信息上传 \n操作人:{}\n参数:{} \n结果:{}", TokenUtil.getTokenUserId(), jsonObject, result);
|
|
|
if (null == result) {
|
|
|
@@ -178,13 +183,6 @@ public class SetlListUpldService {
|
|
|
}
|
|
|
|
|
|
private void checkUploadCondition(String patNo, ResultVo<UpldCollection> upldCollection,Integer times) {
|
|
|
- boolean shiFouQianShouBingAn = dao.shiFouQianShou(patNo, times) > 0;
|
|
|
- if (!patNo.startsWith("JT")) {
|
|
|
- if (!shiFouQianShouBingAn) {
|
|
|
- throw new BizException(ExceptionEnum.LOGICAL_ERROR, "该病案没有签收,请病案室签收后上传。");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
if (upldCollection.getCode() != 200) {
|
|
|
throw new BizException(ExceptionEnum.INTERNAL_SERVER_ERROR, upldCollection.getMessage());
|
|
|
}
|
|
|
@@ -669,7 +667,8 @@ public class SetlListUpldService {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请选择需要上传的患者。");
|
|
|
}
|
|
|
boolean checkFlag = isCheckFlag();
|
|
|
- if(checkFlag){
|
|
|
+ boolean checkAuditFlag = isCheckAuditFlag();
|
|
|
+ if(checkAuditFlag){
|
|
|
List<String> visitIds = param.stream().map(obj -> obj.getPatNo() + obj.getTimes()).collect(Collectors.toList());
|
|
|
List<Integer> auditFlags = dao.listSetlModifyReq(visitIds);
|
|
|
if (ListUtil.notBlank(auditFlags)) {
|
|
|
@@ -682,6 +681,8 @@ public class SetlListUpldService {
|
|
|
}
|
|
|
}
|
|
|
List<AutoUploadBill> autoUploadBills = new ArrayList<>();
|
|
|
+ String userId = TokenUtil.getTokenUserId();
|
|
|
+ String userName = publicServer.huoQuYuanGongXinXi(userId).getName();
|
|
|
for (int i = 0; i < param.size(); i++) {
|
|
|
SiSetlinfoTemp siPatInfo = param.get(i);
|
|
|
AutoUploadBill autoUploadBill = new AutoUploadBill();
|
|
|
@@ -692,10 +693,12 @@ public class SetlListUpldService {
|
|
|
autoUploadBill.setUploadDate(new Date());
|
|
|
autoUploadBill.setSetlTime(siPatInfo.getSetlTime());
|
|
|
autoUploadBill.setCreatedDate(new Date());
|
|
|
+ autoUploadBill.setUploadCode(userId);
|
|
|
+ autoUploadBill.setUploadName(userName);
|
|
|
try {
|
|
|
ResultVo<String> resultVo = upldSetlList(siPatInfo.getPatNo(), siPatInfo.getTimes(), siPatInfo.getLedgerSn(),checkFlag);
|
|
|
autoUploadBill.setLogText(resultVo.getMessage());
|
|
|
- autoUploadBill.setFlag(resultVo.getCode() == 200?AutoUploadBill.FLAG.UPLOAD_SUCCESS.getCode():AutoUploadBill.FLAG.UPLOAD_FAIL.getCode());
|
|
|
+ autoUploadBill.setFlag(resultVo.getCode() == 200 ? AutoUploadBill.FLAG.UPLOAD_SUCCESS.getCode():AutoUploadBill.FLAG.UPLOAD_FAIL.getCode());
|
|
|
upldSetlErrorMessage(siPatInfo.getPatNo(), siPatInfo.getTimes(), siPatInfo.getLedgerSn(), resultVo.getMessage(), resultVo.getCode() == 200 ? 0 : 1, i + 1, param.size(), siPatInfo.getOutDeptName(), siPatInfo.getPsnName(), siPatInfo.getReferPhysicianName());
|
|
|
} catch (Exception e) {
|
|
|
log.error("批量上传结算单错误:{}", e);
|
|
|
@@ -714,6 +717,11 @@ public class SetlListUpldService {
|
|
|
return "1".equals(checkUploadFlag)? true : false;
|
|
|
}
|
|
|
|
|
|
+ public boolean isCheckAuditFlag() {
|
|
|
+ String checkUploadFlag = dao.getDictValueByDictName("1.4", "check_audit_flag");
|
|
|
+ return "1".equals(checkUploadFlag)? true : false;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 全部上传
|
|
|
*
|
|
|
@@ -728,7 +736,8 @@ public class SetlListUpldService {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有要上传的信息。");
|
|
|
}
|
|
|
boolean checkFlag = isCheckFlag();
|
|
|
- if(checkFlag){
|
|
|
+ boolean checkAuditFlag = isCheckAuditFlag();
|
|
|
+ if(checkAuditFlag){
|
|
|
// 只有全部为审核通过的数据才能上传
|
|
|
boolean isAllAuditPass = list.stream().allMatch(obj -> obj.getAuditFlag() != null && obj.getAuditFlag() == 1);
|
|
|
if (!isAllAuditPass) {
|
|
|
@@ -1340,9 +1349,15 @@ public class SetlListUpldService {
|
|
|
dao.setlModBat(param.getBatjBa4(), "batj_ba4_modify");
|
|
|
}
|
|
|
dao.shenBao(param.getOperation(), param.getDecType(), param.getInpatientNo(), param.getAdmissTimes());
|
|
|
+ if(!"1".equals(param.getSaveAuditPassFlag())){
|
|
|
+ tSetlDeptConfService.asynSendAuditMessge(param.getDisDept(),param.getName(),param.getInpatientNo());
|
|
|
+ }
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "保存成功。");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//发起审核 返回日志
|
|
|
public SetlAuditLog sendReq(Integer auditFlag ,Integer auditType,ZyInactpatient param){
|
|
|
//发起审核
|
|
|
@@ -1629,7 +1644,7 @@ public class SetlListUpldService {
|
|
|
if (ListUtil.isBlank(list)) {
|
|
|
throw new BizException(ExceptionEnum.INTERNAL_SERVER_ERROR, "没有查到数据");
|
|
|
}
|
|
|
- String[] title = {"住院号", "住院次数", "上传类型","上传结果标识","上传时间", "日志", "患者结算时间"};
|
|
|
+ String[] title = {"住院号", "住院次数", "上传类型","上传人","上传结果标识","上传时间", "日志", "患者结算时间"};
|
|
|
String[][] content = new String[list.size()][];
|
|
|
for (int i = 0, len = list.size(); i < len; i++) {
|
|
|
content[i] = new String[title.length];
|
|
|
@@ -1637,10 +1652,11 @@ public class SetlListUpldService {
|
|
|
content[i][0] = pojo.getPatNo();
|
|
|
content[i][1] = pojo.getTimes().toString();
|
|
|
content[i][2] = pojo.getTypeFlag()==AutoUploadBill.TypeFlag.AUTO_UPLOAD.getCode() ? AutoUploadBill.TypeFlag.AUTO_UPLOAD.getName():AutoUploadBill.TypeFlag.SD_UPLOAD.getName();
|
|
|
- content[i][3] = pojo.getFlag()==AutoUploadBill.FLAG.UPLOAD_SUCCESS.getCode() ? AutoUploadBill.FLAG.UPLOAD_SUCCESS.getName():AutoUploadBill.FLAG.UPLOAD_FAIL.getName();
|
|
|
- content[i][4] = DateUtil.formatDatetime(pojo.getCreatedDate());
|
|
|
- content[i][5] = pojo.getLogText();
|
|
|
- content[i][6] = DateUtil.formatDatetime(pojo.getSetlTime(), DateUtil.DEFAULT_PATTERN);
|
|
|
+ content[i][3] = StringUtil.isBlank(pojo.getUploadName())?"":pojo.getUploadName();
|
|
|
+ content[i][4] = pojo.getFlag()==AutoUploadBill.FLAG.UPLOAD_SUCCESS.getCode() ? AutoUploadBill.FLAG.UPLOAD_SUCCESS.getName():AutoUploadBill.FLAG.UPLOAD_FAIL.getName();
|
|
|
+ content[i][5] = DateUtil.formatDatetime(pojo.getCreatedDate());
|
|
|
+ content[i][6] = pojo.getLogText();
|
|
|
+ content[i][7] = DateUtil.formatDatetime(pojo.getSetlTime(), DateUtil.DEFAULT_PATTERN);
|
|
|
}
|
|
|
ExcelUtil.exportExcel(response, title, content);
|
|
|
}
|
|
|
@@ -2095,4 +2111,33 @@ public class SetlListUpldService {
|
|
|
ResultVo<Map<String, List<CodeName>>> mapResultVo = caseFrontSheetMainService.sheetVerification(sheetOverview);
|
|
|
return mapResultVo;
|
|
|
}
|
|
|
+ /**
|
|
|
+ * @description:查询科室配置信息
|
|
|
+ * @author: lihong
|
|
|
+ * @date: 2023/1/9 15:46
|
|
|
+ * @param: query
|
|
|
+ * @return: java.lang.Object
|
|
|
+ **/
|
|
|
+ public List<String> querySetlDeptConfInfo(TSetlDeptConf query) {
|
|
|
+ List<String> result = new ArrayList<>();
|
|
|
+ List<TSetlDeptConf> tSetlDeptConfs = tSetlDeptConfService.querySetlDeptConfInfo(query);
|
|
|
+ if(ListUtil.notBlank(tSetlDeptConfs)){
|
|
|
+ result = tSetlDeptConfs.stream().map(obj -> obj.getDeptCode()).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * @description:保存科室配置数据
|
|
|
+ * @author: lihong
|
|
|
+ * @date: 2023/1/9 16:09
|
|
|
+ * @param: data
|
|
|
+ **/
|
|
|
+ public void saveSetlDeptConfInfo(List<TSetlDeptConf> data) {
|
|
|
+ AssertUtil.isnotBlank(data, "保存的数据不能为空");
|
|
|
+ AssertUtil.isnotBlank(data.get(0).getCode(), "人员编码不能为空");
|
|
|
+ QueryWrapper delWrapper = new QueryWrapper();
|
|
|
+ delWrapper.eq("code",data.get(0).getCode());
|
|
|
+ tSetlDeptConfService.remove(delWrapper);
|
|
|
+ tSetlDeptConfService.batchSaveData(data);
|
|
|
+ }
|
|
|
}
|