package com.dragoninfo.dcuc.authweb.restcontroller.resource; import com.dragoninfo.dcuc.authweb.util.VersionUtils; import com.dragoninfo.dcuc.coder.facace.ICodeInfoFacade; import com.dragoninfo.dcuc.duceap.facade.IDuceapCodeFacade; import com.dragoninfo.dcuc.duceap.facade.IDuceapTableFacade; import com.dragonsoft.duceap.base.entity.metadata.CodeDicDTO; import com.dragonsoft.duceap.base.entity.metadata.CodeRecord; import com.dragonsoft.duceap.base.entity.metadata.MdDbTable; import com.dragonsoft.duceap.commons.util.string.StringUtils; import com.dragonsoft.duceap.core.entity.response.ResponseResult; import com.dragonsoft.duceap.core.search.Searchable; import com.dragonsoft.duceap.core.search.enums.SearchOperator; import com.dragonsoft.duceap.web.controller.BaseController; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Created by Administrator on 2017/2/17. */ @Controller @RequestMapping(value = "/duacm/codeSon/"+VersionUtils.VERSION_UID) public class MdDynCodeDicSonController extends BaseController { @Autowired private ICodeInfoFacade iCodeInfoFacade; @Autowired private IDuceapCodeFacade iDuceapCodeFacade; @Autowired private IDuceapTableFacade iDuceapTableFacade; @RequestMapping(value = "searchColumn") @ResponseBody public List searchColumn(String codeDicId, String columnName, String columnValue) { List codeList = new ArrayList<>(); CodeDicDTO codeDic = iDuceapCodeFacade.get(codeDicId); if (StringUtils.isEmpty(columnName) || StringUtils.isEmpty(columnValue)) return codeList; Searchable searchable = Searchable.newSearchable(); searchable.addSearchFilter(columnName, SearchOperator.eq, columnValue); searchable.addSearchFilter("codeId", SearchOperator.eq, codeDicId); List> list = iCodeInfoFacade.pageCodeDicData(searchable.toSearchDTO()); for (Map map : list) { CodeRecord codeRecord = new CodeRecord(); String name = codeDic.getNameField(); String code = codeDic.getCodeField(); codeRecord.setValue((String) map.get(code)); codeRecord.setLabel((String) map.get(name)); codeList.add(codeRecord); } return codeList; } @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "表码ID", required = true , example = "40288a8b699fc2500169a33b20540000")}) @RequestMapping(value = "previewData/{id}") public String previewData(@PathVariable("id") String id, Model model) { try { CodeDicDTO codeDic = null; if (StringUtils.isBlank(id)) { throw new Exception("未选择表码"); } else { codeDic = iDuceapCodeFacade.get(id); } MdDbTable mdDbTable = iDuceapTableFacade.get(codeDic.getDatasourceId(), codeDic.getEntityName()); if (mdDbTable == null) throw new Exception("表码表不存在"); model.addAttribute("CODE", codeDic.getCodeField()); model.addAttribute("VALUE", codeDic.getNameField()); model.addAttribute("loadType", codeDic.getLoadType()); model.addAttribute("columns", mdDbTable.getColumns()); model.addAttribute("model", id); return "resourceManagement/codeDic/codeDicPreviewData"; } catch (Exception e) { logger.error("数据预览失败", e); ResponseResult.fail("数据预览失败"); } return null; } @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "表码ID", required = true , example = "40288a8b699fc2500169a33b20540000")}) @RequestMapping(value = "data/{id}") @ResponseBody public List> Data(@PathVariable("id") String id, String code, String name) { CodeDicDTO codeDic = null; codeDic = iDuceapCodeFacade.get(id); Searchable searchable = Searchable.newSearchable(); searchable.setPage(0, 10000); if (StringUtils.isNotEmpty(code)) { searchable.addSearchFilter(codeDic.getCodeField(), SearchOperator.like, code); } if (StringUtils.isNotEmpty(name)) { searchable.addSearchFilter(codeDic.getNameField(), SearchOperator.like, name); } searchable.addSearchFilter("codeId", SearchOperator.eq, id); List> list = iCodeInfoFacade.pageCodeDicData(searchable.toSearchDTO()); return list; } }