|
@@ -64,6 +64,39 @@ public class SiQueryService {
|
|
|
return ResultVoUtil.success(siPatInfo);
|
|
|
}
|
|
|
|
|
|
+ public ResultVo<String> fetchPsnNo(String socialNo, String admdvs) {
|
|
|
+ if (StringUtil.isBlank(socialNo)) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "患者的身份证不能为空,请补充!");
|
|
|
+ }
|
|
|
+ if (StringUtil.isBlank(admdvs)) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "患者的参保地区不能为空,请补充!");
|
|
|
+ }
|
|
|
+ JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.OBTAIN_BASIC_PERSON_INFO, admdvs);
|
|
|
+ JSONObject data = new JSONObject();
|
|
|
+ data.put("mdtrt_cert_type", MdtrtCertType.RESIDENT_IDENTITY_CARD.getCode());
|
|
|
+ data.put("psn_cert_type", "01");
|
|
|
+ data.put("mdtrt_cert_no", socialNo);
|
|
|
+ data.put("certno", socialNo);
|
|
|
+ input.getJSONObject("input").put("data", data);
|
|
|
+ JSONObject result = exec.executeTrade(input, SiFunction.OBTAIN_BASIC_PERSON_INFO);
|
|
|
+ log.info("【操作员:{}】,人员基本信息获取:\n参数:{},\n结果:{}", TokenUtil.getTokenUserId(), input, result);
|
|
|
+ if (null == result) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.NETWORK_ERROR);
|
|
|
+ }
|
|
|
+ if (null == result.getInteger(RESULT_CODE)) {
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "医保中心报错:" + result.getString("message"));
|
|
|
+ }
|
|
|
+ if (result.getIntValue(RESULT_CODE) == 0) {
|
|
|
+ JSONObject output = result.getJSONObject(OUTPUT);
|
|
|
+ JSONObject baseinfo = output.getJSONObject("baseinfo");
|
|
|
+ String psnNo = baseinfo.getString("psn_no");
|
|
|
+ if (StringUtil.notBlank(psnNo)) {
|
|
|
+ return ResultVoUtil.success(psnNo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "无法查询到患者的医保个人编码。");
|
|
|
+ }
|
|
|
+
|
|
|
public ResultVo<PsnBaseInfo> obtainBasicPersonInfo(QryPsnBsInfo qryPsnBsInfo) {
|
|
|
if (null == qryPsnBsInfo.getOnlyQry() && StringUtil.isBlank(qryPsnBsInfo.getMedType())) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "请选择患者的医疗类别!");
|
|
@@ -178,20 +211,7 @@ public class SiQueryService {
|
|
|
info.setCvlservFlagName("否");
|
|
|
}
|
|
|
}
|
|
|
- if (null != info.getInsuplcAdmdvs()) {
|
|
|
- String admdvsName = dao.selectRegionName(info.getInsuplcAdmdvs());
|
|
|
- if (null == admdvsName) {
|
|
|
- PureCodeName region = dao.selectAdmdvsNameAndParentName(info.getInsuplcAdmdvs());
|
|
|
- if (null == region) {
|
|
|
- region = dao.selectAdmdvsName(info.getInsuplcAdmdvs());
|
|
|
- if (null == region) {
|
|
|
- region = dao.selectAdmdvsNameAndParentName(info.getInsuplcAdmdvs().substring(0, 4) + "00");
|
|
|
- }
|
|
|
- }
|
|
|
- admdvsName = region.getName();
|
|
|
- }
|
|
|
- info.setInsuplcAdmdvsName(admdvsName);
|
|
|
- }
|
|
|
+ info.setInsuplcAdmdvsName(redis.getRegionName(info.getInsuplcAdmdvs()));
|
|
|
list.add(info);
|
|
|
}
|
|
|
psnBaseinfo.setInsuinfo(list);
|
|
@@ -765,8 +785,7 @@ public class SiQueryService {
|
|
|
}
|
|
|
|
|
|
public ResultVo<List<PsnFixMedin>> queryPersonnelAssignmentInfo(BscQryPrm q) {
|
|
|
- JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.QUERY_PERSONNEL_ASSIGNMENT_INFO,
|
|
|
- dao.selectAdmdvs(q.getPatNo(), q.getTimes()));
|
|
|
+ JSONObject input = exec.makeTradeHeaderWithInsureArea(SiFunction.QUERY_PERSONNEL_ASSIGNMENT_INFO, q.getAdmdvs());
|
|
|
JSONObject data = new JSONObject();
|
|
|
data.put("psn_no", q.getPsnNo());
|
|
|
data.put("biz_appy_type", q.getBizAppyType());
|
|
@@ -1558,7 +1577,14 @@ public class SiQueryService {
|
|
|
public ResultVo<List<SiSetlinfo>> selectSetldetailStatistics(SetlCondition condition) {
|
|
|
String begntime = condition.getMonth() + "-01 00:00:00.000";
|
|
|
String endtime = DateUtil.getMonthEndtime(condition.getMonth());
|
|
|
- String insuplcAdmdvs = condition.getInsuplcAdmdvs().substring(0, 4) + "%";
|
|
|
+ String insuplcAdmdvs;
|
|
|
+ if (condition.getAdmdvsType() == 5) {
|
|
|
+ insuplcAdmdvs = "430121";
|
|
|
+ } else if (condition.getAdmdvsType() == 6) {
|
|
|
+ insuplcAdmdvs = "430181";
|
|
|
+ } else {
|
|
|
+ insuplcAdmdvs = condition.getInsuplcAdmdvs().substring(0, 4) + "%";
|
|
|
+ }
|
|
|
String insutype = condition.getInsutype();
|
|
|
if (StringUtil.isBlank(insutype)) {
|
|
|
insutype = "%%";
|