RsDictionaryEntryEndPoint.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package com.yihu.ehr.resource.controller;
  2. import com.yihu.ehr.constants.ServiceApi;
  3. import com.yihu.ehr.constants.ApiVersion;
  4. import com.yihu.ehr.controller.EnvelopRestEndPoint;
  5. import com.yihu.ehr.model.resource.MRsDictionaryEntry;
  6. import com.yihu.ehr.resource.model.RsDictionaryEntry;
  7. import com.yihu.ehr.resource.service.RsDictionaryEntryService;
  8. import io.swagger.annotations.Api;
  9. import io.swagger.annotations.ApiOperation;
  10. import io.swagger.annotations.ApiParam;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.http.MediaType;
  13. import org.springframework.web.bind.annotation.*;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. import java.util.ArrayList;
  17. import java.util.List;
  18. /**
  19. * @author linaz
  20. * @created 2016.05.17 16:33
  21. */
  22. @RestController
  23. @RequestMapping(value = ApiVersion.Version1_0)
  24. @Api(value = "RsDictionaryEntry", description = "标准字典项", tags = {"资源服务-标准字典项"})
  25. public class RsDictionaryEntryEndPoint extends EnvelopRestEndPoint {
  26. @Autowired
  27. private RsDictionaryEntryService rsDictionaryEntryService;
  28. @RequestMapping(value = ServiceApi.Resources.DictEntries, method = RequestMethod.GET)
  29. @ApiOperation(value = "根据查询条件获取标准字典项列表", notes = "根据查询条件获取标准字典项列表")
  30. public List<MRsDictionaryEntry> searchRsDictionaryEntries(
  31. @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "id,name,secret,url,createTime")
  32. @RequestParam(value = "fields", required = false) String fields,
  33. @ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  34. @RequestParam(value = "filters", required = false) String filters,
  35. @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "+name,+createTime")
  36. @RequestParam(value = "sorts", required = false) String sorts,
  37. @ApiParam(name = "page", value = "页码", defaultValue = "1")
  38. @RequestParam(value = "page", required = false) int page,
  39. @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
  40. @RequestParam(value = "size", required = false) int size,
  41. HttpServletRequest request,
  42. HttpServletResponse response) throws Exception {
  43. List<RsDictionaryEntry> dictionaryEntries = rsDictionaryEntryService.search(fields, filters, sorts, page, size);
  44. pagedResponse(request, response, rsDictionaryEntryService.getCount(filters), page, size);
  45. return (List<MRsDictionaryEntry>) convertToModels(dictionaryEntries, new ArrayList<MRsDictionaryEntry>(dictionaryEntries.size()), MRsDictionaryEntry.class, fields);
  46. }
  47. @RequestMapping(value = ServiceApi.Resources.DictEntries, method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
  48. @ApiOperation(value = "创建标准字典项", notes = "创建标准字典项")
  49. public MRsDictionaryEntry createRsDictionaryEntry(
  50. @ApiParam(name = "json_data", value = "", defaultValue = "")
  51. @RequestBody String jsonData) throws Exception {
  52. RsDictionaryEntry dictionaryEntry = toEntity(jsonData, RsDictionaryEntry.class);
  53. String code = dictionaryEntry.getCode();
  54. String dictCode = dictionaryEntry.getDictCode();
  55. if(isExistence(dictCode,code)){
  56. throw new Exception("字典项代码不能重复");
  57. }
  58. rsDictionaryEntryService.insert(dictionaryEntry);
  59. return convertToModel(dictionaryEntry, MRsDictionaryEntry.class, null);
  60. }
  61. @RequestMapping(value =ServiceApi.Resources.DictEntries, method = RequestMethod.PUT)
  62. @ApiOperation(value = "修改标准字典项", notes = "修改标准字典项")
  63. public MRsDictionaryEntry updateRsDictionaryEntry(
  64. @ApiParam(name = "json_data", value = "")
  65. @RequestBody String jsonData) throws Exception {
  66. RsDictionaryEntry dictionaryEntry = toEntity(jsonData, RsDictionaryEntry.class);
  67. RsDictionaryEntry d = rsDictionaryEntryService.findById(dictionaryEntry.getId());
  68. String code = dictionaryEntry.getCode();
  69. String dictCode = dictionaryEntry.getDictCode();
  70. if(!d.getCode().equals(code) && isExistence(dictCode,code)){
  71. throw new Exception("字典代码不可修改");
  72. }
  73. rsDictionaryEntryService.save(dictionaryEntry);
  74. return convertToModel(dictionaryEntry, MRsDictionaryEntry.class, null);
  75. }
  76. @RequestMapping(value = ServiceApi.Resources.DictEntry, method = RequestMethod.DELETE)
  77. @ApiOperation(value = "删除标准字典项", notes = "删除标准字典项")
  78. public boolean deleteRsDictionaryEntry(
  79. @ApiParam(name = "id", value = "id", defaultValue = "")
  80. @PathVariable(value = "id") int id) throws Exception {
  81. rsDictionaryEntryService.delete(id);
  82. return true;
  83. }
  84. @RequestMapping(value = ServiceApi.Resources.DictEntry, method = RequestMethod.GET)
  85. @ApiOperation(value = "根据id获取获取标准字典")
  86. public MRsDictionaryEntry getRsDictionaryEntryById(
  87. @ApiParam(name = "id", value = "", defaultValue = "")
  88. @PathVariable(value = "id") int id) {
  89. RsDictionaryEntry dictionaryEntry = rsDictionaryEntryService.findById(id);
  90. return convertToModel(dictionaryEntry, MRsDictionaryEntry.class);
  91. }
  92. @RequestMapping(value = ServiceApi.Resources.DictEntriesByDictCode, method = RequestMethod.GET)
  93. @ApiOperation(value = "根据dict_code获取获取标准字典")
  94. public List<MRsDictionaryEntry> getRsDictionaryEntryByDictCode(
  95. @ApiParam(name = "dict_code", value = "", defaultValue = "")
  96. @RequestParam(value = "dict_code") String dict_code)
  97. {
  98. List<RsDictionaryEntry> dictionaryEntries = rsDictionaryEntryService.findByDictCode(dict_code);
  99. return (List<MRsDictionaryEntry>) convertToModels(dictionaryEntries, new ArrayList<>(dictionaryEntries.size()), MRsDictionaryEntry.class,null);
  100. }
  101. @RequestMapping(value = ServiceApi.Resources.DictEntriesExistence,method = RequestMethod.GET)
  102. @ApiOperation("根据过滤条件判断是否存在")
  103. public boolean isExistence(
  104. @ApiParam(name="filters",value="filters",defaultValue = "")
  105. @RequestParam(value="filters") String filters) throws Exception {
  106. List ls = rsDictionaryEntryService.search("",filters,"", 1, 1);
  107. return ls!=null && ls.size()>0;
  108. }
  109. public boolean isExistence(String dictCode,String code) {
  110. return rsDictionaryEntryService.findByFields(new String[]{"dictCode","code"},new String[]{dictCode,code}).size() != 0;
  111. }
  112. @RequestMapping(value = ServiceApi.Resources.NoPageDictEntries, method = RequestMethod.GET)
  113. @ApiOperation(value = "根据查询条件获取标准字典项列表_不分页", notes = "根据查询条件获取标准字典项列表_不分页")
  114. public List<MRsDictionaryEntry> searchNoPageRsDictEntries(
  115. @ApiParam(name = "filters", value = "过滤器,为空检索所有条件", defaultValue = "")
  116. @RequestParam(value = "filters", required = false) String filters) throws Exception {
  117. List<RsDictionaryEntry> dictionaryEntries = rsDictionaryEntryService.search(filters);
  118. return (List<MRsDictionaryEntry>) convertToModels(dictionaryEntries, new ArrayList<>(dictionaryEntries.size()), MRsDictionaryEntry.class, "");
  119. }
  120. }