dangsn
2023-08-02 54f35ae7866dac5c497372b68d03309c7eae9424
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanelDataProvider.java
@@ -1,27 +1,123 @@
package com.vci.ubcs.codeapply;
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 org.apache.poi.ss.formula.functions.T;
import com.vci.ubcs.codeapply.object.BaseModel;
import com.vci.ubcs.codeapply.object.Page;
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.ubcs.codeapply.object.R;
import com.vci.ubcs.codeapply.object.UIFormRefer;
import com.vci.ubcs.codeapply.utils.ConfigUtils;
import com.vci.ubcs.codeapply.utils.HttpUtil;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
public class CodeDataMainPanelDataProvider extends AbstractVCIJTableDataProvider<T> {
import java.util.*;
import java.util.stream.Collectors;
public class CodeDataMainPanelDataProvider extends AbstractVCIJTableDataProvider<BaseModel> {
   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() {
      return new String[0];
      LinkedList<String> nameList = new LinkedList<>();
      LinkedList<String> fieldList = new LinkedList<>();
      List<CodeShowFieldConfigVO> 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 0;
      return total;
   }
   @Override
   public VCIJTableNode<T> getNewRowNode(T t) {
      return null;
   public VCIJTableNode<BaseModel> getNewRowNode(BaseModel model) {
      Map<String,String> dataMap= model.getData();
      Map<String, String> defaultDataMap= VciBaseUtil.objectToMapString(model);
      defaultDataMap.putAll(dataMap);
      VCIJTableNode<BaseModel> res = new VCIJTableNode<BaseModel>(model);
      int i=dataColumnStartIndex;
      for (String field:fields){
         String data=defaultDataMap.getOrDefault(field,"");
         res.setPropertyValue(getColumns()[i++], data);
      }
      return res;
   }
   @Override
   public T[] getDatas(int i, int i1) {
      return new T[0];
   public BaseModel[] getDatas(int pageIndex, int pageSize) {
      /**系统只加载代码项  如果libName不为空,直接获取对应的代码项**/
      Map<String,String> condtionMap=new HashMap<>();
      Page<BaseModel> iPage= new Page<BaseModel>() {};
      try{
         UIFormRefer uiFormRefer=   this.ownerPanel.getUiFormRefer();
         condtionMap.put("referType", StringUtils.isBlank(uiFormRefer.getReferType())?"":uiFormRefer.getReferType());
         condtionMap.put("page",pageIndex+"");
         condtionMap.put("limit",pageSize+"");
         List<CodeSrchCondConfigVO> 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<String, String> customCondtionMap=ownerPanel.getCustomCondtionMap();
         if(customCondtionMap!=null&&customCondtionMap.size()>0){
            customCondtionMap.forEach((field, value) -> {
               condtionMap.put("conditionMap["+field+"]",value);
            });
         }
         Map<String,String>  headers=new HashMap<>();
         R r= HttpUtil.sendGet(url+"/defaultReferDataGrid",condtionMap,new HashMap<>());
         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<BaseModel> hostInfos = (List<BaseModel>) dataList.stream().map(entity -> JSONUtil.toBean(JSONUtil.parseObj(entity), BaseModel.class)).collect(Collectors.toList());
         baseModels = hostInfos.toArray(new BaseModel[]{});
      }
      return baseModels;
   }
}