package com.vci.rmip.code.client.codeapply.Apply410; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.vci.base.ui.swing.components.table.AbstractVCIJTableDataProvider; import com.vci.base.ui.swing.components.table.VCIJTableNode; import com.vci.rmip.code.client.codeapply.Apply410.object.BaseModel; import com.vci.rmip.code.client.codeapply.Apply410.object.Page; import com.vci.rmip.code.client.codeapply.Apply410.object.R; import com.vci.rmip.code.client.codeapply.Apply410.utils.HttpUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.vci.base.ui.swing.VCIOptionPane; import com.vci.ubcs.code.vo.webserviceModel.coderule.CodeShowFieldConfigVO; import com.vci.ubcs.code.vo.webserviceModel.coderule.CodeSrchCondConfigVO; import com.vci.rmip.code.client.codeapply.Apply410.object.UIFormRefer; import com.vci.rmip.code.client.codeapply.Apply410.utils.ConfigUtils; import com.vci.ubcs.starter.web.util.VciBaseUtil; import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils; import org.apache.commons.collections4.CollectionUtils; import java.util.*; import java.util.stream.Collectors; public class CodeDataMainPanelDataProvider extends AbstractVCIJTableDataProvider { private CodeDataMainPanel ownerPanel; private String[] specialColumns = {}; private String url= ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController"); private String[] fields = {}; public CodeDataMainPanelDataProvider(CodeDataMainPanel ownerPanel) { this.ownerPanel=ownerPanel; } @Override public String[] getSpecialColumns() { LinkedList nameList = new LinkedList<>(); LinkedList fieldList = new LinkedList<>(); List colsList=ownerPanel.getUiFormRefer().getCodeShowFieldConfigVOS(); colsList.stream().forEach(columns->{ String title= columns.getTitle(); String field=columns.getField(); nameList.add(title); fieldList.add(field); }); specialColumns = nameList.toArray(new String[]{}); fields = fieldList.toArray(new String[]{}); return specialColumns; } @Override public int getTotal() { return total; } @Override public VCIJTableNode getNewRowNode(BaseModel model) { Map dataMap= model.getData(); Map defaultDataMap= VciBaseUtil.objectToMapString(model); defaultDataMap.putAll(dataMap); VCIJTableNode res = new VCIJTableNode(model); int i=dataColumnStartIndex; for (String field:fields){ String data=defaultDataMap.getOrDefault(field,""); res.setPropertyValue(getColumns()[i++], data); } return res; } @Override public BaseModel[] getDatas(int pageIndex, int pageSize) { /**系统只加载代码项 如果libName不为空,直接获取对应的代码项**/ Map condtionMap=new HashMap<>(); Page iPage= new Page() {}; try{ UIFormRefer uiFormRefer= this.ownerPanel.getUiFormRefer(); condtionMap.put("referType", StringUtils.isBlank(uiFormRefer.getReferType())?"":uiFormRefer.getReferType()); condtionMap.put("page",pageIndex+""); condtionMap.put("limit",pageSize+""); List codeSrchCondConfigVOS=uiFormRefer.getCodeSrchCondConfigVOS(); JSONObject jsonObject=new JSONObject(); if(!CollectionUtils.isEmpty(codeSrchCondConfigVOS)){ codeSrchCondConfigVOS.stream().forEach(codeSrchCondConfigVO -> { String field=codeSrchCondConfigVO.getFilterField(); String value=codeSrchCondConfigVO.getFilterValue(); String filterType= codeSrchCondConfigVO.getFilterType(); condtionMap.put("conditionMap["+field+"]",value); }); } Map customCondtionMap=ownerPanel.getCustomCondtionMap(); if(customCondtionMap!=null&&customCondtionMap.size()>0){ customCondtionMap.forEach((field, value) -> { condtionMap.put("conditionMap["+field+"]",value); }); } Map headerMap=new HashMap<>(); headerMap.put("Blade-Auth",this.ownerPanel.getTokenUserObject().getAccess_token()); R r= HttpUtil.sendGet(url+"/defaultReferDataGrid",condtionMap,headerMap); if(r.isSuccess()){ Object object= r.getData(); if(object!=null) { ObjectMapper objectMapper = new ObjectMapper(); iPage = objectMapper.readValue(object.toString(), Page.class); } }else{ VCIOptionPane.showMessage(this.ownerPanel,r.getMsg()); } } catch (JsonProcessingException e) { e.printStackTrace(); } this.total= new Long(iPage.getTotal()).intValue(); List dataList= iPage.getRecords(); BaseModel [] baseModels=new BaseModel[]{}; if(!CollectionUtils.isEmpty(dataList)) { List hostInfos = (List) dataList.stream().map(entity -> JSONUtil.toBean(JSONUtil.parseObj(entity), BaseModel.class)).collect(Collectors.toList()); baseModels = hostInfos.toArray(new BaseModel[]{}); } return baseModels; } }