AdapterCenterEndPoint.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. package com.yihu.hos.standard.controller;
  2. import com.yihu.hos.config.JsonDateValueProcessor;
  3. import com.yihu.hos.core.constants.MicroServices;
  4. import com.yihu.hos.standard.model.adapter.*;
  5. import com.yihu.hos.standard.service.adapter.*;
  6. import com.yihu.hos.web.framework.model.standard.AdapterVersion;
  7. import com.yihu.hos.web.framework.util.controller.BaseController;
  8. import io.swagger.annotations.Api;
  9. import io.swagger.annotations.ApiOperation;
  10. import io.swagger.annotations.ApiParam;
  11. import net.sf.json.JSONArray;
  12. import net.sf.json.JsonConfig;
  13. import org.apache.commons.collections.CollectionUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.http.MediaType;
  16. import org.springframework.jdbc.core.JdbcTemplate;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RequestMethod;
  19. import org.springframework.web.bind.annotation.RequestParam;
  20. import org.springframework.web.bind.annotation.RestController;
  21. import javax.servlet.http.HttpServletRequest;
  22. import javax.servlet.http.HttpServletResponse;
  23. import java.io.IOException;
  24. import java.text.ParseException;
  25. import java.util.ArrayList;
  26. import java.util.Collection;
  27. import java.util.Date;
  28. import java.util.List;
  29. @RestController("AdapterCenterEndPoint")
  30. @RequestMapping(value = MicroServices.ApiVersion.Version1_0+"/adapterCenter")
  31. @Api(protocols = "https", description = "适配数据管理", tags = {"适配数据管理"})
  32. public class AdapterCenterEndPoint extends BaseController {
  33. @Autowired
  34. private AdapterSchemeService adapterSchemeService;
  35. @Autowired
  36. private AdapterSchemeVersionService adapterSchemeVersionService;
  37. @Autowired
  38. private AdapterDatasetService adapterDatasetService;
  39. @Autowired
  40. private AdapterMetadataService adapterMetadataService;
  41. @Autowired
  42. private AdapterDictService adapterDictService;
  43. @Autowired
  44. private AdapterDictEntryService adapterDictEntryService;
  45. @Autowired
  46. private JdbcTemplate jdbcTemplate;
  47. @RequestMapping(value="/schema/list", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  48. @ApiOperation(value = "获取版本号列表", produces = "application/json", notes = "获取版本号列表")
  49. public String getSchema(@ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  50. @RequestParam(value = "filters", required = false) String filters) throws ParseException {
  51. List<AdapterSchemeModel> schema = adapterSchemeService.search(null, filters, null, null, null);
  52. JSONArray json = JSONArray.fromObject(schema);
  53. return json.toString();
  54. }
  55. @RequestMapping(value="/version/list", method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  56. @ApiOperation(value = "获取版本号列表", produces = "application/json", notes = "获取版本号列表")
  57. public String getVersions(@ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  58. @RequestParam(value = "filters", required = false) String filters) throws ParseException {
  59. List versions = adapterSchemeVersionService.search(null, filters, null, null, null);
  60. JsonConfig config = new JsonConfig();
  61. config.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
  62. JSONArray json = JSONArray.fromObject(versions, config);
  63. return json.toString();
  64. }
  65. @RequestMapping(value="/dataset/list", method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  66. @ApiOperation(value = "获取适配数据集列表", produces = "application/json", notes = "获取适配数据集列表")
  67. public String getDatasetList(@ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  68. @RequestParam(value = "filters", required = false) String filters,
  69. @ApiParam(name = "version", value = "版本", defaultValue = "")
  70. @RequestParam(value = "version") String version) throws IOException {
  71. List<AdapterDatasetModel> list = adapterDatasetService.searchPage(AdapterDatasetModel.class, AdapterVersion.DataSetTablePrefix,version, filters, null, null, null,false);
  72. JSONArray json = JSONArray.fromObject(list);
  73. return json.toString();
  74. }
  75. @RequestMapping(value = "/metadata/list", method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  76. @ApiOperation(value = "获取适配数据元列表", produces = "application/json", notes = "获取适配数据元列表")
  77. public String getMetadataList(@ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  78. @RequestParam(value = "filters", required = false) String filters,
  79. @ApiParam(name = "version", value = "版本", defaultValue = "")
  80. @RequestParam(value = "version") String version) throws IOException {
  81. List<AdapterMetadataModel> list = adapterMetadataService.searchPage(AdapterMetadataModel.class, AdapterVersion.MetaDataTablePrefix,version, filters, null, null, null,false);
  82. JSONArray json = JSONArray.fromObject(list);
  83. return json.toString();
  84. }
  85. @RequestMapping(value = "/dict/list", method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  86. @ApiOperation(value = "获取标准字典列表", produces = "application/json", notes = "获取标准字典列表")
  87. public String getDictList(@ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  88. @RequestParam(value = "filters", required = false) String filters,
  89. @ApiParam(name = "version", value = "版本", defaultValue = "")
  90. @RequestParam(value = "version") String version) throws IOException {
  91. List<AdapterDictModel> list = adapterDictService.searchPage(AdapterDictModel.class, AdapterVersion.DictTablePrefix,version, filters, null, null, null,false);
  92. JSONArray json = JSONArray.fromObject(list);
  93. return json.toString();
  94. }
  95. @RequestMapping(value = "/dictItem/list", method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  96. @ApiOperation(value = "获取标准字典项列表", produces = "application/json", notes = "获取标准字典项列表")
  97. public String getDictItemList(@ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  98. @RequestParam(value = "filters", required = false) String filters,
  99. @ApiParam(name = "version", value = "版本", defaultValue = "")
  100. @RequestParam(value = "version") String version) throws IOException {
  101. List<AdapterDictEntryModel> list = adapterDictEntryService.searchPage(AdapterDictEntryModel.class, AdapterVersion.DictEntryTablePrefix,version, filters, null, null, null,false);
  102. JSONArray json = JSONArray.fromObject(list);
  103. return json.toString();
  104. }
  105. @RequestMapping(value="/dataset/pageList", method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  106. @ApiOperation(value = "分页获取适配数据集列表", produces = "application/json", notes = "分页获取适配数据集列表")
  107. public Collection<AdapterDatasetModel> datasetPageList(
  108. @ApiParam(name = "version", value = "版本", defaultValue = "")
  109. @RequestParam(value = "version") String version,
  110. @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "id,name,secret,url,createTime")
  111. @RequestParam(value = "fields", required = false) String fields,
  112. @ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  113. @RequestParam(value = "filters", required = false) String filters,
  114. @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime")
  115. @RequestParam(value = "sorts", required = false) String sorts,
  116. @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
  117. @RequestParam(value = "size", required = false) int size,
  118. @ApiParam(name = "page", value = "页码", defaultValue = "1")
  119. @RequestParam(value = "page", required = false) int page,
  120. HttpServletRequest request,
  121. HttpServletResponse response) throws Exception {
  122. List<AdapterDatasetModel> ls = adapterDatasetService.searchPage(AdapterDatasetModel.class, AdapterVersion.DataSetTablePrefix,version, filters,sorts , page, size,false);
  123. List all = adapterMetadataService.searchPage(AdapterMetadataModel.class, AdapterVersion.MetaDataTablePrefix,version, filters, sorts, null, null,false);
  124. long total = Long.valueOf(all.size());
  125. pagedResponse(request, response, total, page, size);
  126. return convertToModels(ls, new ArrayList<>(ls.size()), AdapterDatasetModel.class, fields);
  127. }
  128. @RequestMapping(value="/metadata/pageList", method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  129. @ApiOperation(value = "分页获取适配数据元列表", produces = "application/json", notes = "分页获取适配数据元列表")
  130. public Collection<AdapterMetadataModel> metadataPageList(
  131. @ApiParam(name = "version", value = "版本", defaultValue = "")
  132. @RequestParam(value = "version") String version,
  133. @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "id,name,secret,url,createTime")
  134. @RequestParam(value = "fields", required = false) String fields,
  135. @ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  136. @RequestParam(value = "filters", required = false) String filters,
  137. @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime")
  138. @RequestParam(value = "sorts", required = false) String sorts,
  139. @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
  140. @RequestParam(value = "size", required = false) int size,
  141. @ApiParam(name = "page", value = "页码", defaultValue = "1")
  142. @RequestParam(value = "page", required = false) int page,
  143. HttpServletRequest request,
  144. HttpServletResponse response) throws Exception {
  145. List<AdapterMetadataModel> ls = adapterMetadataService.searchPage(AdapterMetadataModel.class, AdapterVersion.MetaDataTablePrefix,version, filters,sorts , page, size,false);
  146. List all = adapterMetadataService.searchPage(AdapterMetadataModel.class, AdapterVersion.MetaDataTablePrefix,version, filters, sorts, null, null,false);
  147. long total = Long.valueOf(all.size());
  148. pagedResponse(request, response, total, page, size);
  149. return convertToModels(ls, new ArrayList<>(ls.size()), AdapterMetadataModel.class, fields);
  150. }
  151. @RequestMapping(value="/last/adapterVersion" ,method = RequestMethod.GET)
  152. @ApiOperation(value = "获取2家机构适配的最新版本号", notes = "获取2家机构适配的最新版本号")
  153. public String getLastAdapterVersion(
  154. @ApiParam(name = "originOrgCode", value = "源机构编码[eip的机构表]如,jkzl", defaultValue = "")
  155. @RequestParam(value = "originOrgCode") String originOrgCode,
  156. @ApiParam(name = "targetOrgCode", value = "目标机构编码[eip的机构表],如上传 江西省平台的机构编码", defaultValue = "")
  157. @RequestParam(value = "targetOrgCode") String targetOrgCode){
  158. String sql = String.format("select id from adapter_scheme where adapter_publisher_org_code='%s' and std_publisher_org_code='%s'",originOrgCode,targetOrgCode);
  159. List<Long> idList = jdbcTemplate.queryForList(sql,Long.class);
  160. String version = "";
  161. if(CollectionUtils.isNotEmpty(idList)){
  162. String ids = "";
  163. for(Long id:idList){
  164. ids+=","+id;
  165. }
  166. ids = ids.substring(1,ids.length());
  167. List<String> versions = jdbcTemplate.queryForList("select version from adapter_scheme_version where scheme_id in ("+ids+") and publish_status=1 order by publish_time desc",String.class);
  168. if(CollectionUtils.isNotEmpty(versions)){
  169. version = versions.get(0);
  170. }
  171. }
  172. return version;
  173. }
  174. }