Groovy - 大数据表格共享配置

一、搜索配置

数据共享搜索列中配置了搜索列,相应的数据共享接口中也需要支持根据配置的字段搜索,配置实体时,支持搜索入参code必须是searchKeys,且接口应该是需要支持分页(入参必须是 current、pageSize)的。current 是当前页  ,pageSize 是每页显示条数

类似这样的配置:

共享数据的实体和对应的数据共享 API 需要包含 searchKeys 入参,表单会自动将搜索框中的内容以 searchKeys 的值再次查询实体数据。

数据共享接口只支持配置一个检索字段的参数即searchKeys ,如果需要根据多个字段检索,需要业务系统侧处理下入参,根据逗号分割参数再传给各个字段,参数的顺序即(\"卫生所,北京\")是根据数据共享搜索列中的配置顺序(全称,地址)传递的:

二、大表格获取怎么获取表单字段的值 

 # 获取表单内的数据 :

"enterpriseName": "fel:form.value('self.QYMC121')",
"enterpriseCode": "fel:form.value('self.TYSHXYDM250')", 

 #获取表格某行某字段(0 是哪一行 xx哪一个字段)
 ${self.CSDBG_0317}.pageData.data.0.xx

 

三、如何使分页生效? 

1.实体返回的数据必须含表格的分页配置:

\"pagination\":{\"total\":3174,\"current\":1,\"pageSize\":10}

完整返回如下:

{
  "success": true,
  "data": {
    "bizCode": "",
    "entityCode": "xzqhxx",
    "checkResult": null,
    "entityList": [
      {
        "properties": [
          {
            "propCode": "projectlist",
            "propValue": "{\"c_old_qhmc\":\"北京\",\"code\":\"110000\",\"c_old_dmid\":\"00002132\",\"c_old_qhid\":\"00000071\",\"levelrelationname\":\"\",\"suffix\":\"市\",\"c_old_dmmc\":\"北京\",\"parentid\":\"\",\"rowid\":1,\"c_flag\":\"1\",\"levelrelation\":\"\",\"namesimple\":\"bj\",\"c_id\":\"10000001\",\"c_ncpc\":\"\",\"townparentname\":\"\",\"cityparentid\":\"\",\"provinceparentid\":\"\",\"pre\":\"京\",\"c_cq\":\"0\",\"level\":\"00550001\",\"provinceparentname\":\"\",\"townparentid\":\"\",\"gisid\":\"0\",\"cityparentname\":\"\",\"administrativeid\":10000001,\"name\":\"北京\",\"countyparentid\":\"\",\"countyparentname\":\"\"}",
            "valueType": "java.lang.String"
          }
        ]
      }
    ]
  },
  "pagination":{
    "total":3174,
    "current":1,
    "pageSize":10
  },
  "errorCode": null,
  "errorMsg": null,
  "extraData": null,
  "traceId": null,
  "env": null,
  "other": null
}

2.实体接口配置示例:

3.实体接口测试返回示例 :

 四、例子

 页面源码示例:

 "_request": [
      {
        "requestId": "jzsgqyfzrzsjy",
        "tablePropertyId": "self.JZSGQYZYFZRXMFZRZZAQSCGLRYZSXX",
        "params": {
          "entityCode": "jzsgqyfzrzsjy",
          "scriptId": "1032023102761521",
          "bizCode": "1111",
          "enterpriseName": "fel:form.value('self.QYMC121')",
          "enterpriseCode": "fel:form.value('self.TYSHXYDM250')",
          "current": "1",
          "pageSize": "100",
          "searchKeys": "fel:form.value('searchKeys')"
        },
        "target": {
          "SFZH81": {
            "mapToColumn": "idno"
          },
          "ZSBH77": {
            "mapToColumn": "cerno"
          },
          "FZRQ8": {
            "mapToColumn": "sendDate"
          },
          "YXRQ43": {
            "mapToColumn": "validDate"
          },
          "RYLX": {
            "mapToColumn": "cerType"
          },
          "XM07": {
            "mapToColumn": "name"
          },
          "XB2": {
            "mapToColumn": "sex"
          },
          "DWMC386": {
            "mapToColumn": "enterpriseName"
          },
          "ID": {
            "mapToColumn": "id"
          }
        }
      }
    ],

脚本示例一:

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSON;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.ArrayList;
import com.alibaba.gov.common.form.model.TextValueModel;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

List returnListMap = new ArrayList(); 

for (int i = 0; i < originalTable.size(); i++) {
Map staffinfo = originalTable.get(i);
//时间处理
  def sendDate = staffinfo.get("sendDate").toString()
  def validDate = staffinfo.get("validDate").toString()
  if(sendDate!=null){
	SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
	try {
		staffinfo.put("sendDate",dateFormat.parse(sendDate));
	} catch (ParseException e) {
	}
  }
  
  if(validDate!=null){
	SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
	try {
		staffinfo.put("validDate",dateFormat2.parse(validDate));
	} catch (ParseException e) {
	}
  }
//单选框
def sex = staffinfo.get("sex").toString();
def sex_val = "2"
if(sex == "男"){
  sex_val = "1"
}
staffinfo.put("sex",new TextValueModel(sex,sex_val));
//性别男女文本
staffinfo.put("sex_txt",sex);

//是否激活
  def haveAct = staffinfo.get("haveAct").toString();
  if(haveAct=="1"){
	staffinfo.put("haveAct","是");
  }else{
	staffinfo.put("haveAct","否");
  }

returnListMap.add(staffinfo);
}


return returnListMap;

脚本示例二(实体返回的数据不是列表是处理):

import groovy.json.JsonSlurper;

return new JsonSlurper().parseText(originalTable.get(0).projectlist)
//projectlist 实体返回的key

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_37131747

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值