MdDynCodeDicSonController.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package com.dragoninfo.dcuc.authweb.restcontroller.resource;
  2. import com.dragoninfo.dcuc.authweb.util.VersionUtils;
  3. import com.dragoninfo.dcuc.coder.facace.ICodeInfoFacade;
  4. import com.dragoninfo.dcuc.duceap.facade.IDuceapCodeFacade;
  5. import com.dragoninfo.dcuc.duceap.facade.IDuceapTableFacade;
  6. import com.dragonsoft.duceap.base.entity.metadata.CodeDicDTO;
  7. import com.dragonsoft.duceap.base.entity.metadata.CodeRecord;
  8. import com.dragonsoft.duceap.base.entity.metadata.MdDbTable;
  9. import com.dragonsoft.duceap.commons.util.string.StringUtils;
  10. import com.dragonsoft.duceap.core.entity.response.ResponseResult;
  11. import com.dragonsoft.duceap.core.search.Searchable;
  12. import com.dragonsoft.duceap.core.search.enums.SearchOperator;
  13. import com.dragonsoft.duceap.web.controller.BaseController;
  14. import io.swagger.annotations.ApiImplicitParam;
  15. import io.swagger.annotations.ApiImplicitParams;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Controller;
  18. import org.springframework.ui.Model;
  19. import org.springframework.web.bind.annotation.PathVariable;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.ResponseBody;
  22. import java.util.ArrayList;
  23. import java.util.List;
  24. import java.util.Map;
  25. /**
  26. * Created by Administrator on 2017/2/17.
  27. */
  28. @Controller
  29. @RequestMapping(value = "/duacm/codeSon/"+VersionUtils.VERSION_UID)
  30. public class MdDynCodeDicSonController extends BaseController {
  31. @Autowired
  32. private ICodeInfoFacade iCodeInfoFacade;
  33. @Autowired
  34. private IDuceapCodeFacade iDuceapCodeFacade;
  35. @Autowired
  36. private IDuceapTableFacade iDuceapTableFacade;
  37. @RequestMapping(value = "searchColumn")
  38. @ResponseBody
  39. public List<CodeRecord> searchColumn(String codeDicId, String columnName, String columnValue) {
  40. List<CodeRecord> codeList = new ArrayList<>();
  41. CodeDicDTO codeDic = iDuceapCodeFacade.get(codeDicId);
  42. if (StringUtils.isEmpty(columnName) || StringUtils.isEmpty(columnValue))
  43. return codeList;
  44. Searchable searchable = Searchable.newSearchable();
  45. searchable.addSearchFilter(columnName, SearchOperator.eq, columnValue);
  46. searchable.addSearchFilter("codeId", SearchOperator.eq, codeDicId);
  47. List<Map<String, Object>> list = iCodeInfoFacade.pageCodeDicData(searchable.toSearchDTO());
  48. for (Map map : list) {
  49. CodeRecord codeRecord = new CodeRecord();
  50. String name = codeDic.getNameField();
  51. String code = codeDic.getCodeField();
  52. codeRecord.setValue((String) map.get(code));
  53. codeRecord.setLabel((String) map.get(name));
  54. codeList.add(codeRecord);
  55. }
  56. return codeList;
  57. }
  58. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "表码ID", required = true
  59. , example = "40288a8b699fc2500169a33b20540000")})
  60. @RequestMapping(value = "previewData/{id}")
  61. public String previewData(@PathVariable("id") String id, Model model) {
  62. try {
  63. CodeDicDTO codeDic = null;
  64. if (StringUtils.isBlank(id)) {
  65. throw new Exception("未选择表码");
  66. } else {
  67. codeDic = iDuceapCodeFacade.get(id);
  68. }
  69. MdDbTable mdDbTable = iDuceapTableFacade.get(codeDic.getDatasourceId(), codeDic.getEntityName());
  70. if (mdDbTable == null)
  71. throw new Exception("表码表不存在");
  72. model.addAttribute("CODE", codeDic.getCodeField());
  73. model.addAttribute("VALUE", codeDic.getNameField());
  74. model.addAttribute("loadType", codeDic.getLoadType());
  75. model.addAttribute("columns", mdDbTable.getColumns());
  76. model.addAttribute("model", id);
  77. return "resourceManagement/codeDic/codeDicPreviewData";
  78. } catch (Exception e) {
  79. logger.error("数据预览失败", e);
  80. ResponseResult.fail("数据预览失败");
  81. }
  82. return null;
  83. }
  84. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "表码ID", required = true
  85. , example = "40288a8b699fc2500169a33b20540000")})
  86. @RequestMapping(value = "data/{id}")
  87. @ResponseBody
  88. public List<Map<String, Object>> Data(@PathVariable("id") String id, String code, String name) {
  89. CodeDicDTO codeDic = null;
  90. codeDic = iDuceapCodeFacade.get(id);
  91. Searchable searchable = Searchable.newSearchable();
  92. searchable.setPage(0, 10000);
  93. if (StringUtils.isNotEmpty(code)) {
  94. searchable.addSearchFilter(codeDic.getCodeField(), SearchOperator.like, code);
  95. }
  96. if (StringUtils.isNotEmpty(name)) {
  97. searchable.addSearchFilter(codeDic.getNameField(), SearchOperator.like, name);
  98. }
  99. searchable.addSearchFilter("codeId", SearchOperator.eq, id);
  100. List<Map<String, Object>> list = iCodeInfoFacade.pageCodeDicData(searchable.toSearchDTO());
  101. return list;
  102. }
  103. }