- public Response updateEms(EmsRestData ems) {
- //TODO
- return Response.ok().build();
- }
-
- public Response queryEmsList() {
- //TODO
- ArrayList<EmsRestData> emsList = new ArrayList<EmsRestData>();
- return Response.ok(emsList).build();
- }
-
- public Response queryEmsById(String emsId) {
- EmsRestData ems = new EmsRestData();
- //TODO
- return Response.ok(ems).build();
- }
-
- public Response delEms(String emsId) {
- //TODO
- return Response.noContent().build();
- }
+ public Response delEms(String emsId) {
+ EsrEmsDetail esrEmsDetail = queryEsrEmsDetail(emsId);
+ String resourceVersion = esrEmsDetail.getResourceVersion();
+ try {
+ externalSystemProxy.deleteEms(emsId, resourceVersion);
+ return Response.noContent().build();
+ } catch (ExtsysException e) {
+ LOG.error("Delete EMS from A&AI failed! EMS ID: " + emsId + "resouce-version:" + resourceVersion, e);
+ throw ExceptionUtil.buildExceptionResponse(e.getMessage());
+ }
+ }
+
+ private EmsRegisterInfo queryEmsDetail(String emsId) {
+ EmsRegisterInfo emsRegisterInfo = new EmsRegisterInfo();
+ EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
+ try {
+ String esrEmsStr = externalSystemProxy.queryEmsDetail(emsId);
+ LOG.info("Response from AAI by query EMS: " + esrEmsStr);
+ esrEmsDetail = new Gson().fromJson(esrEmsStr, EsrEmsDetail.class);
+ emsRegisterInfo = emsManagerUtil.EsrEms2EmsRegisterInfo(esrEmsDetail);
+ } catch (ExtsysException e) {
+ LOG.error("Query EMS detail failed! EMS ID: " + emsId, e);
+ }
+ return emsRegisterInfo;
+ }
+
+ private List<EmsRegisterInfo> getEmsDetailList(EsrEmsList esrEms) {
+ List<EmsRegisterInfo> emsInfoList = new ArrayList<>();
+ for (int i = 0; i < esrEms.getEsrEms().size(); i++) {
+ String emsId = esrEms.getEsrEms().get(i).getEmsId();
+ EmsRegisterInfo emsInfo = queryEmsDetail(emsId);
+ if (emsInfo != null) {
+ emsInfoList.add(emsInfo);
+ }
+ }
+ return emsInfoList;
+ }
+
+ private EsrEmsDetail queryEsrEmsDetail(String emsId) {
+ EsrEmsDetail esrEmsDetail = new EsrEmsDetail();
+ try {
+ String esrEmsStr = externalSystemProxy.queryEmsDetail(emsId);
+ LOG.info("Response from AAI by query EMS: " + esrEmsStr);
+ esrEmsDetail = new Gson().fromJson(esrEmsStr, EsrEmsDetail.class);
+ } catch (ExtsysException e) {
+ LOG.error("Query EMS detail failed! EMS ID: " + emsId, e);
+ }
+ return esrEmsDetail;
+ }
+
+ private EsrEmsDetail getNewEsrEmsDetail(EmsRegisterInfo emsRegisterInfo, String emsId) {
+ EsrEmsDetail oriEsrEmsDetail = queryEsrEmsDetail(emsId);
+ EsrEmsDetail esrEmsDetail = emsManagerUtil.emsRegisterInfo2EsrEms(emsRegisterInfo);
+ String emsResourceVersion = oriEsrEmsDetail.getResourceVersion();
+ esrEmsDetail.setResourceVersion(emsResourceVersion);
+ esrEmsDetail.setEmsId(emsId);
+ List<EsrSystemInfo> newEsrSysInfoList = esrEmsDetail.getEsrSystemInfoList().getEsrSystemInfo();
+ List<EsrSystemInfo> oriEsrSysInfoList = oriEsrEmsDetail.getEsrSystemInfoList().getEsrSystemInfo();
+ for (int i = 0; i < oriEsrSysInfoList.size(); i++) {
+ EsrSystemInfo originalEsrSystemInfo = oriEsrSysInfoList.get(i);
+ for (int j = 0; j < newEsrSysInfoList.size(); j++) {
+ EsrSystemInfo newEsrSystemInfo = newEsrSysInfoList.get(j);
+ if (originalEsrSystemInfo.getSystemType().equals(newEsrSystemInfo.getSystemType())) {
+ esrEmsDetail.getEsrSystemInfoList().getEsrSystemInfo().get(j)
+ .setResouceVersion(originalEsrSystemInfo.getResouceVersion());
+ esrEmsDetail.getEsrSystemInfoList().getEsrSystemInfo().get(j)
+ .setEsrSystemInfoId(originalEsrSystemInfo.getEsrSystemInfoId());
+ break;
+ }
+ }
+ }
+ return esrEmsDetail;
+ }