|
@ -4,8 +4,8 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
|
|
|
import com.yihu.ehr.framework.constrant.Constants;
|
|
|
import com.yihu.ehr.framework.constrant.ErrorCode;
|
|
|
import com.yihu.ehr.framework.exception.ApiException;
|
|
|
import com.yihu.ehr.framework.model.DetailModelResult;
|
|
|
import com.yihu.ehr.framework.model.Result;
|
|
|
import com.yihu.ehr.framework.util.operator.CollectionUtil;
|
|
|
import com.yihu.ehr.framework.util.operator.StringUtil;
|
|
|
import com.yihu.ehr.standard.model.adapter.AdapterSchemeModel;
|
|
@ -32,7 +32,19 @@ public class AdapterSchemeService extends SQLGeneralDAO {
|
|
|
|
|
|
public static final String BEAN_ID = "AdapterSchemeService";
|
|
|
|
|
|
public AdapterSchemeModel add(String scheme) {
|
|
|
public DetailModelResult getEntityList(String query, String order, Integer limit, Integer offset) {
|
|
|
try {
|
|
|
List list = getEntityList(AdapterSchemeModel.class, query, order, limit, offset);
|
|
|
DetailModelResult detailModelResult = DetailModelResult.success("获取适配列表成功");
|
|
|
detailModelResult.setDetailModelList(list);
|
|
|
return detailModelResult;
|
|
|
} catch (Exception e) {
|
|
|
DetailModelResult detailModelResult = DetailModelResult.error("获取适配列表失败");
|
|
|
return detailModelResult;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public Result add(String scheme) {
|
|
|
Boolean existFlg = false;
|
|
|
try {
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
@ -42,15 +54,16 @@ public class AdapterSchemeService extends SQLGeneralDAO {
|
|
|
model.setStatus(0);
|
|
|
saveEntity(model);
|
|
|
}
|
|
|
|
|
|
model.setSuccessFlg(true);
|
|
|
model.setMessage("保存适配方案成功");
|
|
|
return model;
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
if (existFlg) {
|
|
|
throw new ApiException(ErrorCode.ExistSchemeName);
|
|
|
return Result.error("已存在相同适配方案名");
|
|
|
} else {
|
|
|
throw new ApiException(ErrorCode.SaveSchemeFailed);
|
|
|
return Result.error("保存适配方案失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
@ -65,22 +78,22 @@ public class AdapterSchemeService extends SQLGeneralDAO {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
public void delete(Integer schemeId) {
|
|
|
public Result delete(Integer schemeId) {
|
|
|
Boolean existFlg = false;
|
|
|
try {
|
|
|
AdapterSchemeModel model = getEntity(AdapterSchemeModel.class, schemeId);
|
|
|
existFlg = existSchemeVersionValid(schemeId);
|
|
|
if (!existFlg) {
|
|
|
deleteEntity(model);
|
|
|
return;
|
|
|
return Result.success("删除适配方案成功");
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
if (existFlg) {
|
|
|
throw new ApiException(ErrorCode.ExistSchemeVersion);
|
|
|
return Result.error("已存在适配方案版本");
|
|
|
} else {
|
|
|
throw new ApiException(ErrorCode.DeleteSchemeFailed);
|
|
|
return Result.error("删除适配方案成功失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
@ -96,7 +109,7 @@ public class AdapterSchemeService extends SQLGeneralDAO {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
public AdapterSchemeModel update(String scheme) {
|
|
|
public Result update(String scheme) {
|
|
|
Boolean existFlg = false;
|
|
|
try {
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
@ -104,143 +117,154 @@ public class AdapterSchemeService extends SQLGeneralDAO {
|
|
|
existFlg = schemeNameValidate(model.getId(), model.getName());
|
|
|
if (!existFlg) {
|
|
|
updateEntity(model);
|
|
|
model.setSuccessFlg(true);
|
|
|
model.setMessage("修改适配方案成功");
|
|
|
return model;
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
if (existFlg) {
|
|
|
throw new ApiException(ErrorCode.ExistSchemeName);
|
|
|
return Result.error("已存在适配方案名称");
|
|
|
} else {
|
|
|
throw new ApiException(ErrorCode.UpdateSchemeFailed);
|
|
|
return Result.error("修改适配方案失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public AdapterSchemeModel get(Integer schemeId) {
|
|
|
public Result get(Integer schemeId) {
|
|
|
try {
|
|
|
AdapterSchemeModel model = getEntity(AdapterSchemeModel.class, schemeId);
|
|
|
model.setSuccessFlg(true);
|
|
|
model.setMessage("获取适配成功");
|
|
|
return model;
|
|
|
} catch (Exception e) {
|
|
|
throw new ApiException(ErrorCode.GetSchemeFailed);
|
|
|
return Result.error("获取适配成功");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<SchemeResultDetailModel> getSchemeList(String condition) {
|
|
|
String name = Constants.EMPTY;
|
|
|
if (!StringUtil.isEmpty(condition)) {
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
try {
|
|
|
JsonNode jsonNode = objectMapper.readTree(condition);
|
|
|
if (jsonNode.get("name") != null) {
|
|
|
name = jsonNode.get("name").asText();
|
|
|
public DetailModelResult getSchemeList(String condition) {
|
|
|
try {
|
|
|
String name = Constants.EMPTY;
|
|
|
if (!StringUtil.isEmpty(condition)) {
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
try {
|
|
|
JsonNode jsonNode = objectMapper.readTree(condition);
|
|
|
if (jsonNode.get("name") != null) {
|
|
|
name = jsonNode.get("name").asText();
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
String schemeHql = "FROM AdapterSchemeModel";
|
|
|
Query query = getCurrentSession().createQuery(schemeHql);
|
|
|
List<AdapterSchemeModel> adapterSchemeModelList = query.list();
|
|
|
List<Integer> schemeIdList = new ArrayList<>();
|
|
|
List<Integer> stdIdList = new ArrayList<>();
|
|
|
List<String> versionList = new ArrayList<>();
|
|
|
Map<Integer, AdapterSchemeVersionModel> schemeVersionMap = new HashMap<>();
|
|
|
Map<Integer, StandardModel> stdMap = new HashMap<>();
|
|
|
Map<String, StandardVersionModel> stdVersionMap = new HashMap<>();
|
|
|
String schemeHql = "FROM AdapterSchemeModel";
|
|
|
Query query = getCurrentSession().createQuery(schemeHql);
|
|
|
List<AdapterSchemeModel> adapterSchemeModelList = query.list();
|
|
|
List<Integer> schemeIdList = new ArrayList<>();
|
|
|
List<Integer> stdIdList = new ArrayList<>();
|
|
|
List<String> versionList = new ArrayList<>();
|
|
|
Map<Integer, AdapterSchemeVersionModel> schemeVersionMap = new HashMap<>();
|
|
|
Map<Integer, StandardModel> stdMap = new HashMap<>();
|
|
|
Map<String, StandardVersionModel> stdVersionMap = new HashMap<>();
|
|
|
|
|
|
for (AdapterSchemeModel adapterSchemeModel : adapterSchemeModelList) {
|
|
|
schemeIdList.add(adapterSchemeModel.getId());
|
|
|
stdIdList.add(adapterSchemeModel.getStdId());
|
|
|
stdIdList.add(adapterSchemeModel.getAdapterStdId());
|
|
|
versionList.add(adapterSchemeModel.getStdVersion());
|
|
|
versionList.add(adapterSchemeModel.getAdapterStdVersion());
|
|
|
}
|
|
|
if (CollectionUtil.isEmpty(schemeIdList)) {
|
|
|
schemeIdList.add(null);
|
|
|
}
|
|
|
if (CollectionUtil.isEmpty(stdIdList)) {
|
|
|
stdIdList.add(null);
|
|
|
}
|
|
|
if (CollectionUtil.isEmpty(versionList)) {
|
|
|
versionList.add(Constants.EMPTY);
|
|
|
}
|
|
|
for (AdapterSchemeModel adapterSchemeModel : adapterSchemeModelList) {
|
|
|
schemeIdList.add(adapterSchemeModel.getId());
|
|
|
stdIdList.add(adapterSchemeModel.getStdId());
|
|
|
stdIdList.add(adapterSchemeModel.getAdapterStdId());
|
|
|
versionList.add(adapterSchemeModel.getStdVersion());
|
|
|
versionList.add(adapterSchemeModel.getAdapterStdVersion());
|
|
|
}
|
|
|
if (CollectionUtil.isEmpty(schemeIdList)) {
|
|
|
schemeIdList.add(null);
|
|
|
}
|
|
|
if (CollectionUtil.isEmpty(stdIdList)) {
|
|
|
stdIdList.add(null);
|
|
|
}
|
|
|
if (CollectionUtil.isEmpty(versionList)) {
|
|
|
versionList.add(Constants.EMPTY);
|
|
|
}
|
|
|
|
|
|
String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE schemeId IN :schemeIdList";
|
|
|
query = getCurrentSession().createQuery(adapterVersionHql);
|
|
|
query.setParameterList("schemeIdList", schemeIdList);
|
|
|
List<AdapterSchemeVersionModel> versionModelList = query.list();
|
|
|
for (AdapterSchemeVersionModel model : versionModelList) {
|
|
|
schemeVersionMap.put(model.getId(), model);
|
|
|
}
|
|
|
String adapterVersionHql = "FROM AdapterSchemeVersionModel WHERE schemeId IN :schemeIdList";
|
|
|
query = getCurrentSession().createQuery(adapterVersionHql);
|
|
|
query.setParameterList("schemeIdList", schemeIdList);
|
|
|
List<AdapterSchemeVersionModel> versionModelList = query.list();
|
|
|
for (AdapterSchemeVersionModel model : versionModelList) {
|
|
|
schemeVersionMap.put(model.getId(), model);
|
|
|
}
|
|
|
|
|
|
String standardHql = "FROM StandardModel WHERE id IN :stdIdList";
|
|
|
query = getCurrentSession().createQuery(standardHql);
|
|
|
query.setParameterList("stdIdList", stdIdList);
|
|
|
List<StandardModel> stdModelList = query.list();
|
|
|
for (StandardModel model : stdModelList) {
|
|
|
stdMap.put(model.getId(), model);
|
|
|
}
|
|
|
String standardHql = "FROM StandardModel WHERE id IN :stdIdList";
|
|
|
query = getCurrentSession().createQuery(standardHql);
|
|
|
query.setParameterList("stdIdList", stdIdList);
|
|
|
List<StandardModel> stdModelList = query.list();
|
|
|
for (StandardModel model : stdModelList) {
|
|
|
stdMap.put(model.getId(), model);
|
|
|
}
|
|
|
|
|
|
String stdVersionHql = "FROM StandardVersionModel WHERE version IN :versionList";
|
|
|
query = getCurrentSession().createQuery(stdVersionHql);
|
|
|
query.setParameterList("versionList", versionList);
|
|
|
List<StandardVersionModel> stdVersionList = query.list();
|
|
|
for (StandardVersionModel model : stdVersionList) {
|
|
|
stdVersionMap.put(model.getVersion(), model);
|
|
|
}
|
|
|
String stdVersionHql = "FROM StandardVersionModel WHERE version IN :versionList";
|
|
|
query = getCurrentSession().createQuery(stdVersionHql);
|
|
|
query.setParameterList("versionList", versionList);
|
|
|
List<StandardVersionModel> stdVersionList = query.list();
|
|
|
for (StandardVersionModel model : stdVersionList) {
|
|
|
stdVersionMap.put(model.getVersion(), model);
|
|
|
}
|
|
|
|
|
|
List<SchemeResultDetailModel> resultDetailModelList = new ArrayList<>();
|
|
|
Map<String, SchemeResultDetailModel> resultDetailModelMap = new HashMap<>();
|
|
|
Map<String, SchemeResultDetailModel> resultDetailModelCheckMap = new HashMap<>();
|
|
|
Map<String, SchemeResultDetailModel> resultDetailModelAddMap = new HashMap<>();
|
|
|
List<SchemeResultDetailModel> resultDetailModelList = new ArrayList<>();
|
|
|
Map<String, SchemeResultDetailModel> resultDetailModelMap = new HashMap<>();
|
|
|
Map<String, SchemeResultDetailModel> resultDetailModelCheckMap = new HashMap<>();
|
|
|
Map<String, SchemeResultDetailModel> resultDetailModelAddMap = new HashMap<>();
|
|
|
|
|
|
for (AdapterSchemeModel schemeModel : adapterSchemeModelList) {
|
|
|
String id = "scheme" + schemeModel.getId();
|
|
|
SchemeResultDetailModel resultDetailModel = new SchemeResultDetailModel();
|
|
|
resultDetailModel.setId(id);
|
|
|
resultDetailModel.setPid("");
|
|
|
resultDetailModel.setType(0);
|
|
|
resultDetailModel.setName(schemeModel.getName());
|
|
|
resultDetailModel.setStdName(stdMap.get(schemeModel.getStdId()).getName());
|
|
|
resultDetailModel.setStdVersion(stdVersionMap.get(schemeModel.getStdVersion()).getVersion());
|
|
|
resultDetailModel.setStdVersionName(stdVersionMap.get(schemeModel.getStdVersion()).getName());
|
|
|
resultDetailModel.setPublisher(stdMap.get(schemeModel.getAdapterStdId()) == null ? "" : stdMap.get(schemeModel.getAdapterStdId()).getPublisher());
|
|
|
resultDetailModel.setAdapterName(stdMap.get(schemeModel.getAdapterStdId())==null?"":stdMap.get(schemeModel.getAdapterStdId()).getName());
|
|
|
if (stdVersionMap.get(schemeModel.getAdapterStdVersion()) != null) {
|
|
|
resultDetailModel.setAdapterVersionName(stdVersionMap.get(schemeModel.getAdapterStdVersion()).getName());
|
|
|
resultDetailModel.setAdapterStdVersion(stdVersionMap.get(schemeModel.getAdapterStdVersion()).getVersion());
|
|
|
}
|
|
|
if (StringUtil.isEmpty(name) || schemeModel.getName().contains(name)) {
|
|
|
resultDetailModelCheckMap.put(id, resultDetailModel);
|
|
|
resultDetailModelAddMap.put(id, resultDetailModel);
|
|
|
resultDetailModelList.add(resultDetailModel);
|
|
|
for (AdapterSchemeModel schemeModel : adapterSchemeModelList) {
|
|
|
String id = "scheme" + schemeModel.getId();
|
|
|
SchemeResultDetailModel resultDetailModel = new SchemeResultDetailModel();
|
|
|
resultDetailModel.setId(id);
|
|
|
resultDetailModel.setPid("");
|
|
|
resultDetailModel.setType(0);
|
|
|
resultDetailModel.setName(schemeModel.getName());
|
|
|
resultDetailModel.setStdName(stdMap.get(schemeModel.getStdId()).getName());
|
|
|
resultDetailModel.setStdVersion(stdVersionMap.get(schemeModel.getStdVersion()).getVersion());
|
|
|
resultDetailModel.setStdVersionName(stdVersionMap.get(schemeModel.getStdVersion()).getName());
|
|
|
resultDetailModel.setPublisher(stdMap.get(schemeModel.getAdapterStdId()) == null ? "" : stdMap.get(schemeModel.getAdapterStdId()).getPublisher());
|
|
|
resultDetailModel.setAdapterName(stdMap.get(schemeModel.getAdapterStdId())==null?"":stdMap.get(schemeModel.getAdapterStdId()).getName());
|
|
|
if (stdVersionMap.get(schemeModel.getAdapterStdVersion()) != null) {
|
|
|
resultDetailModel.setAdapterVersionName(stdVersionMap.get(schemeModel.getAdapterStdVersion()).getName());
|
|
|
resultDetailModel.setAdapterStdVersion(stdVersionMap.get(schemeModel.getAdapterStdVersion()).getVersion());
|
|
|
}
|
|
|
if (StringUtil.isEmpty(name) || schemeModel.getName().contains(name)) {
|
|
|
resultDetailModelCheckMap.put(id, resultDetailModel);
|
|
|
resultDetailModelAddMap.put(id, resultDetailModel);
|
|
|
resultDetailModelList.add(resultDetailModel);
|
|
|
}
|
|
|
resultDetailModelMap.put(id, resultDetailModel);
|
|
|
}
|
|
|
resultDetailModelMap.put(id, resultDetailModel);
|
|
|
}
|
|
|
|
|
|
for (AdapterSchemeVersionModel versionModel : versionModelList) {
|
|
|
String pid = "scheme" + versionModel.getSchemeId();
|
|
|
String id = "version" + versionModel.getId();
|
|
|
SchemeResultDetailModel resultDetailModel = new SchemeResultDetailModel();
|
|
|
resultDetailModel.setId(id);
|
|
|
resultDetailModel.setPid(pid);
|
|
|
resultDetailModel.setName(versionModel.getName());
|
|
|
resultDetailModel.setStatus(versionModel.getPublishStatus());
|
|
|
resultDetailModel.setDate(StringUtil.toString(versionModel.getPublishTime()));
|
|
|
resultDetailModel.setVersion(versionModel.getVersion());
|
|
|
resultDetailModel.setType(1);
|
|
|
if (resultDetailModelCheckMap.containsKey(pid)) {
|
|
|
resultDetailModelList.add(resultDetailModel);
|
|
|
} else if (StringUtil.isEmpty(name) || versionModel.getName().contains(name)) {
|
|
|
resultDetailModelList.add(resultDetailModel);
|
|
|
if (!resultDetailModelAddMap.containsKey(pid)) {
|
|
|
resultDetailModelAddMap.put(pid, resultDetailModelMap.get(resultDetailModel.getPid()));
|
|
|
resultDetailModelList.add(resultDetailModelMap.get(resultDetailModel.getPid()));
|
|
|
for (AdapterSchemeVersionModel versionModel : versionModelList) {
|
|
|
String pid = "scheme" + versionModel.getSchemeId();
|
|
|
String id = "version" + versionModel.getId();
|
|
|
SchemeResultDetailModel resultDetailModel = new SchemeResultDetailModel();
|
|
|
resultDetailModel.setId(id);
|
|
|
resultDetailModel.setPid(pid);
|
|
|
resultDetailModel.setName(versionModel.getName());
|
|
|
resultDetailModel.setStatus(versionModel.getPublishStatus());
|
|
|
resultDetailModel.setDate(StringUtil.toString(versionModel.getPublishTime()));
|
|
|
resultDetailModel.setVersion(versionModel.getVersion());
|
|
|
resultDetailModel.setType(1);
|
|
|
if (resultDetailModelCheckMap.containsKey(pid)) {
|
|
|
resultDetailModelList.add(resultDetailModel);
|
|
|
} else if (StringUtil.isEmpty(name) || versionModel.getName().contains(name)) {
|
|
|
resultDetailModelList.add(resultDetailModel);
|
|
|
if (!resultDetailModelAddMap.containsKey(pid)) {
|
|
|
resultDetailModelAddMap.put(pid, resultDetailModelMap.get(resultDetailModel.getPid()));
|
|
|
resultDetailModelList.add(resultDetailModelMap.get(resultDetailModel.getPid()));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
DetailModelResult detailModelResult = DetailModelResult.success("获取适配方案成功");
|
|
|
detailModelResult.setDetailModelList(resultDetailModelList);
|
|
|
return detailModelResult;
|
|
|
} catch (Exception e) {
|
|
|
return DetailModelResult.error("获取适配方案失败");
|
|
|
}
|
|
|
return resultDetailModelList;
|
|
|
|
|
|
}
|
|
|
|
|
|
public boolean existSchemeVersionValid(Integer schemeId) {
|