您的位置:首页 > 大数据

大数据接入平台项目-前台知识点记录

2017-09-14 18:04 267 查看
1,部分表单内容序列化为json处理

2,data-options的使用

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<%@ page language="java" pageEncoding="UTF-8"%>

<%@ include file="/page/common/include/head_start.jsp" %>

<%@ include file="/page/common/include/jquery-easyui.jsp" %>

<jsp:include page="/page/common/include/head_title.jsp" flush="true">
<jsp:param name="pageTitle" value="数据接入流程测试" />

</jsp:include>

<%@ include file="/page/common/include/head_end.jsp" %>

<body class="easyui-layout">
<div data-options="region:'west',title:'任务配置'" style="width: 100%;">

<div >
<form id="jobConfigForm" method="post" style="margin-top: 15px;margin-left: 15px;margin-right: 15px;">
<div style="margin-bottom: 10px">
<input class="easyui-textbox" id="appName" name="appName" style="width: 298px;" data-options="label:'应用名称:',value:'${appName}',required:true"> 
</div>
<div style="margin-bottom: 10px">
<select id="channel" class="easyui-combobox" name="channel" style="width:298px;"
data-options="label:'通道类型:',required:true,editable:false,
valueField: 'id',    

        textField: 'text',

        value:['${channel}'],

        data:[{
id: 'local',
text: '本地'
},{
id: 'cluster',
text: '集群'
}]">
</select> 
</div>
</form>
</div>

<div id="inPluginForm" method="post" style="margin-top: 15px;margin-left: 5px;margin-right: 10px;">
<form id="inStrategyForm" style="margin-bottom: 10px;">
<div id="inStrategyDiv" class="easyui-panel" title="策略配置区域" 
data-options="collapsible:true" 
style="margin-bottom: 10px; background-color: #F4F4F4;">
<div style="margin-left:3px;margin-bottom: 10px">
<label style="font-size: 22px;">策略配置区域:</label>
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="singleOfJvmTaskNumber" style="width: 350px;" data-options="label:'单JVM最大线程组数量:',labelWidth:145,required:true,value:'${taskStrategyProperty.singleOfJvmTaskNumber }'">
<label>对任务类型为Schedule的无效</label>
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="assignNum" style="width: 350px;" data-options="label:'机器数量:',labelWidth:145,required:true,value:'${taskStrategyProperty.assignNum }'">
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input name="ips" class="easyui-combobox" 
style="width: 350px; height: 27px;" 
data-options="label:'ip地址(逗号分隔):',labelWidth:145,required:true,multiple:true,editable:false,valueField:'id',textField:'text',value:[
<c:forEach var="ip" items="${taskStrategyProperty.IPList}">
'${ip}',
</c:forEach>
],
url:'<%=basePath%>/jobConf/getIpList'
" />
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="whereCondition" style="width: 350px;" data-options="label:'where后条件:',labelWidth:145,required:true,value:'${taskStrategyProperty.whereConditionStr}'">
</div>
</div>
</form>
<form id="inTaskConfigForm" style="margin-bottom: 10px;" >
<div id="inTaskConfigDiv" class="easyui-panel" title="TASK配置区域" data-options="collapsible:true"
 style="margin-bottom: 10px; background-color: #F4F4F4;" 
 >
<div style="margin-left:3px;margin-bottom: 10px">
<label style="font-size: 22px;">TASK配置区域:</label>
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="taskName" style="width: 350px;" data-options="label:'任务名称:',labelWidth:145,required:true,value:'${taskConfigProperty.taskName }'"> 
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="dealBeanName" style="width: 350px;" data-options="label:'任务处理的SpringBean:',labelWidth:145,required:true,value:'jobTask',readonly:true">
<label>只读,不可修改</label>
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="heartBeatRate" style="width: 350px;" data-options="label:'心跳频率(秒):',labelWidth:145,required:true,value:'${taskConfigProperty.heartBeatRate }'">
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="judgeDeadInterval" style="width: 350px;" data-options="label:'假定服务死亡间隔(秒):',labelWidth:145,required:true,value:'${taskConfigProperty.judgeDeadInterval }'">
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="threadNumber" style="width: 350px;" data-options="label:'线程数:',labelWidth:145,required:true,value:'${taskConfigPropert
4000
y.threadNumber }'">
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<select class="easyui-combobox" name="processorType" style="width:350px;" data-options="label:'处理模式:',labelWidth:145,required:true,value:'${taskConfigProperty.processorType }',editable:false">   
   <option value="SLEEP">SLEEP</option>   
   <option value="NOTSLEEP">NOTSLEEP</option>   
</select>  
<label>SLEEP 和 NOTSLEEP</label>
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="eachFetchDataNum" style="width: 350px;" data-options="label:'每次获取数据量:',labelWidth:145,required:true,value:'${taskConfigProperty.eachFetchDataNum }'">
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="executeNumber" style="width: 350px;" data-options="label:'每次执行数量:',labelWidth:145,required:true,value:'${taskConfigProperty.executeNumber }'">
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="permitRunStartTime" style="width: 350px;" data-options="label:'执行开始时间:',labelWidth:145,required:true,value:'${taskConfigProperty.permitRunStartTime }'">
</div>
<div style="margin-left:3px;margin-bottom: 10px">
<input class="easyui-textbox" name="singleOfItemsNumber" style="width: 350px;" data-options="label:'单线程组最大任务项:',labelWidth:145,required:true,value:'${taskConfigProperty.singleOfItemsNumber }'">
<label>0或者空表示不限制</label>
</div>
</div>
</form>

</div>
</div>
<div data-options="region:'south'" style="height:60px;">
<div style="text-align: center;margin-top: 22px;">
<a id="btn" href="javascript:void(0);" onclick="saveJobConf();" class="easyui-linkbutton" 
data-options="iconCls:'icon-save',width:'93px'">
保存
</a>
</div>
</div>

<!-- dialog -->
<div id="relateDataset">
</div>
<div id="relateColumn">
</div>
<div id="whereConditionDialog">
</div>

<script type="text/javascript">

 
//保存配置信息
function saveJobConf() {
//写插件id数组,全局缓存
var pluginIdArr = new Array();
var jobId="${jobId}";

var appName=$('#appName').textbox('getValue');
var channel=$('#channel').textbox('getValue');
var inPluginId="inPluginId";

var flag=true;
var inPluginInstanceId="inPluginInstanceId";
//获取读插件db数据源配置信息id
var inDbDatasourceId = "xxxxx";

/* *********************以下处理读插件配置信息开始*******************************************************

 */ var inPluginsJson="{\"pluginId\":\""+inPluginId+"\",\"pluginInstanceId\":\""+inPluginInstanceId+"\",\"pluginType\":\"pluginType\",\"pluginName\":\"pluginName\"";
//拼接读插件task任务属性
var inTaskConfigForm = $("#inTaskConfigForm").serializeArray();
var inTaskConfigFormJsonStr = JSON.stringify(inTaskConfigForm);

//读插件json追加task任务属性
inPluginsJson+=",\"taskConfigProperty\":"+inTaskConfigFormJsonStr;

//拼接读插件策略属性
var inStrategyForm = $("#inStrategyForm").serializeArray();
var inStrategyFormJsonStr = JSON.stringify(inStrategyForm);

//读插件json追加策略属性
inPluginsJson+=",\"taskStrategyProperty\":"+inStrategyFormJsonStr;

/* *********************拼接in的metaDataSet*******************************************************

 */ inPluginsJson+=",\"metaDataSet\":{";

//追加in的metaDataSet的dbDatasourceId
inPluginsJson+="\"dbDatasourceId\":\"dbDatasourceId\"";

//拼接读插件数据集和数据列

var inMetaJson="[";
inMetaJson+="{\"metaId\":\"metaId\",\"name\":\"name\",\"comment\":\"comment\",\"whereCondition\":\"whereCondition\"";

inMetaJson+=",\"listMetaColumn\":";
var inMetaColumn="[";
inMetaColumn+="{\"metaId\":\"metaId\",\"metaTableId\":\"metaTableId\",\"name\":\"name\",\"comment\":\"comment\",\"type\":\"type\",\"length\":0}";
inMetaColumn+="]";
inMetaJson+=inMetaColumn;
inMetaJson+="}";
if(!flag){
return false;
}
inMetaJson+="]";

//追加in的metaDataSet的listMetaTable
inPluginsJson+=",\"listMetaTable\":"+inMetaJson;
//结束
inPluginsJson+="}}";

$.ajax({
        type:'POST',
        url:'<%=basePath%>/jobConf/saveJobConf_new',
dataType:"json",
data:{inPluginsJson : inPluginsJson,
jobId : jobId,
appName : appName,
channel : channel,
editFlag : 'true'
},
        success:function(data){
       
if(data.message=='ok'){
       
$.messager.alert('提醒','保存成功','info');
       
<%--  location.href="<%=basePath%>/jobManage/toList_new"; --%>
       
}else{
       
$.messager.alert('提醒',data.message,'warning');
       
}
},
error : function() {
    alert("异常");
    }
   });


</script>

</body>
</html>

/***

* Method description : 属性转任务配置
*
* Author:        Administrator                
* Create Date:   2016年12月26日 下午3:54:03
* History:  2016年12月26日 下午3:54:03   Administrator   Created.
*
* @param taskConfigProperty
* @return
*
*/
public DefaultTaskConfig property2TaskConfig(List<EntityProperty> taskConfigProperty){
DefaultTaskConfig taskConfig = new DefaultTaskConfig();
if(taskConfigProperty != null && taskConfigProperty.size()>0){
for(EntityProperty taskConfigPro:taskConfigProperty){
if(StringUtil.isNotEmpty(taskConfigPro.getValue())){
if(taskConfigPro.getName().equals("configType")){
taskConfig.setConfigType(taskConfigPro.getValue());
}else if(taskConfigPro.getName().equals("taskName")){
taskConfig.setTaskName(taskConfigPro.getValue());
}else if(taskConfigPro.getName().equals("dealBeanName")){
taskConfig.setDealBeanName(taskConfigPro.getValue());
}else if(taskConfigPro.getName().equals("heartBeatRate")){
taskConfig.setHeartBeatRate(Long.parseLong(taskConfigPro.getValue()));
}else if(taskConfigPro.getName().equals("judgeDeadInterval")){
taskConfig.setJudgeDeadInterval(Long.parseLong(taskConfigPro.getValue()));
}else if(taskConfigPro.getName().equals("threadNumber")){
taskConfig.setThreadNumber(Integer.parseInt(taskConfigPro.getValue()));
}else if(taskConfigPro.getName().equals("processorType")){
taskConfig.setProcessorType(taskConfigPro.getValue());
}else if(taskConfigPro.getName().equals("eachFetchDataNum")){
taskConfig.setEachFetchDataNum(Integer.valueOf(taskConfigPro.getValue()));
}else if(taskConfigPro.getName().equals("executeNumber")){
taskConfig.setExecuteNumber(Integer.parseInt(taskConfigPro.getValue()));
}else if(taskConfigPro.getName().equals("sleepTimeNoData")){
taskConfig.setSleepTimeNoData(Integer.parseInt(taskConfigPro.getValue()));
}else if(taskConfigPro.getName().equals("permitRunStartTime")){
taskConfig.setPermitRunStartTime(taskConfigPro.getValue());
taskConfig.setPermitRunEndTime(taskConfigPro.getValue());
}else if(taskConfigPro.getName().equals("permitRunEndTime")){
//taskConfig.setPermitRunEndTime(taskConfigPro.getValue());
}else if(taskConfigPro.getName().equals("singleOfItemsNumber")){
taskConfig.setSingleOfItemsNumber(Integer.parseInt(taskConfigPro.getValue()));
}else if(taskConfigPro.getName().equals("taskParameter")){
taskConfig.setTaskParameter(taskConfigPro.getValue());
}else if(taskConfigPro.getName().equals("taskItems")){
taskConfig.setTaskItems(taskConfigPro.getValue().split(","));
}
}
}
}
return taskConfig;
}
/***

* Meth
e0ce
od description : DefaultTaskStrategyConfig转vo
*
* Author:        Administrator                
* Create Date:   2017年2月10日 下午3:02:17
* History:  2017年2月10日 下午3:02:17   Administrator   Created.
*
* @param strategyConfig
* @return
*
*/
public DefaultTaskStrategyConfigVo defaultTaskStrategyConfig2Vo(DefaultTaskStrategyConfig strategyConfig){
DefaultTaskStrategyConfigVo strategyConfigVo =  new DefaultTaskStrategyConfigVo();
if(strategyConfig!=null){
BeanUtils.copyProperties(strategyConfig, strategyConfigVo);
String ipListStr = "";
if(strategyConfig.getIPList()!=null && strategyConfig.getIPList().length>0){
for(String ip:strategyConfig.getIPList()){
if(ipListStr==""){
ipListStr+=ip;
}else{
ipListStr+=","+ip;
}
}
}
strategyConfigVo.setIpListStr(ipListStr);

String whereConditionStr="";
if(strategyConfig.getWhereCondition()!=null && strategyConfig.getWhereCondition().length>0){
for(String whereCondition:strategyConfig.getWhereCondition()){
if(whereConditionStr==""){
whereConditionStr+=whereCondition;
}else{
whereConditionStr+=","+whereCondition;
}
}
}
strategyConfigVo.setWhereConditionStr(whereConditionStr);
}
return strategyConfigVo;
}
/***

* Method description :DefaultTaskConfig转vo 
*
* Author:        Administrator                
* Create Date:   2017年2月10日 下午3:11:08
* History:  2017年2月10日 下午3:11:08   Administrator   Created.
*
* @param taskConfig
* @return
*
*/
public DefaultTaskConfigVo defaultTaskConfig2Vo(DefaultTaskConfig taskConfig){
DefaultTaskConfigVo taskConfigVo = new DefaultTaskConfigVo();
if(taskConfig!=null){
BeanUtils.copyProperties(taskConfig, taskConfigVo);
String taskItemsStr ="";
if(taskConfig.getTaskItems()!=null && taskConfig.getTaskItems().length>0){
for(String taskitem:taskConfig.getTaskItems()){
if(taskItemsStr==""){
taskItemsStr+=taskitem;
}else{
taskItemsStr+=","+taskitem;
}
}
}
taskConfigVo.setTaskItemsStr(taskItemsStr);
}
return taskConfigVo;
}
/***

* Method description : 属性转策略
*
* Author:        Administrator                
* Create Date:   2016年12月26日 下午4:26:21
* History:  2016年12月26日 下午4:26:21   Administrator   Created.
*
* @param taskConfigPropertys
* @return
*
*/
public DefaultTaskStrategyConfig property2Strategy(List<EntityProperty> taskStrategyProperty){
DefaultTaskStrategyConfig strategyConfig = new DefaultTaskStrategyConfig();
if(taskStrategyProperty!=null && taskStrategyProperty.size()>0){
String ips = "";
for(EntityProperty taskStrategy:taskStrategyProperty){
if(StringUtil.isNotEmpty(taskStrategy.getValue())){
if(taskStrategy.getName().equals("strategyName")){
strategyConfig.setStrategyName(taskStrategy.getValue());
}else if(taskStrategy.getName().equals("taskType")){
strategyConfig.setTaskType(taskStrategy.getValue());
}else if(taskStrategy.getName().equals("taskName")){
strategyConfig.setTaskName(taskStrategy.getValue());
}else if(taskStrategy.getName().equals("taskParameter")){
strategyConfig.setTaskParameter(taskStrategy.getValue());
}else if(taskStrategy.getName().equals("singleOfJvmTaskNumber")){
strategyConfig.setSingleOfJvmTaskNumber(Integer.parseInt(taskStrategy.getValue()));
}else if(taskStrategy.getName().equals("maxThreadNumber")){
strategyConfig.setMaxThreadNumber(Integer.parseInt(taskStrategy.getValue()));
}else if(taskStrategy.getName().equals("numOfSingleServer")){
strategyConfig.setNumOfSingleServer(Integer.parseInt(taskStrategy.getValue()));
}else if(taskStrategy.getName().equals("assignNum")){
strategyConfig.setAssignNum(Integer.parseInt(taskStrategy.getValue()));
}else if(taskStrategy.getName().equals("ips")){
if(StringUtil.isEmpty(ips)){
ips = taskStrategy.getValue();
}else{
ips += ","+taskStrategy.getValue();
}
strategyConfig.setIPList(ips.split(","));
}else if(taskStrategy.getName().equals("whereCondition")){
strategyConfig.setWhereCondition(taskStrategy.getValue().split(","));
}
}
}
}
return strategyConfig;
}

public List<EntityProperty> parseProperty(List<EntityProperty> listEp,String pluginInstanceId){
for(EntityProperty ep : listEp){
if(StringUtil.isEmpty(ep.getRequired())){
ep.setRequired("false");
}
if(StringUtil.isNotEmpty(ep.getValue())){
//ep.setValue(SString.getHTMLFormatString(ep.getValue()));
ep.setValue(ep.getValue().replaceAll("'", ""));
ep.setValue(ep.getValue().replaceAll("\\\\", "/"));
}
if(ep.getName().equalsIgnoreCase("pluginInstanceId")){
ep.setValue(pluginInstanceId);
}
}
return listEp;
}

@RequestMapping("/editJobConfig_new")
public String editJobConfig_new(HttpServletRequest request,Model model){
/***********************接收参数*********************************/
String jobId=request.getParameter("jobId");

//DefaultJobConfig defaultJobConfig = JSON.parseObject(bo.getJobConfJson(), DefaultJobConfig.class);

JobConfig bo = jobConfigService.getJobConfig_new(jobId);

String JobConfJson = bo.getJobConfJson();

JSONObject jo=JSONObject.fromObject(JobConfJson);

String taskConfigProperty = jo.getString("taskConfigProperty");
String taskStrategyProperty = jo.getString("taskStrategyProperty");

JSONArray taskConfigProperty3 = JSONArray.fromObject(taskConfigProperty); 
JSONArray taskStrategyProperty3 = JSONArray.fromObject(taskStrategyProperty); 

List<EntityProperty> taskConfigProperty2 = (List) JSONArray.toCollection(taskConfigProperty3, EntityProperty.class);
List<EntityProperty> taskStrategyProperty2 =(List) JSONArray.toCollection(taskStrategyProperty3, EntityProperty.class);
//List<EntityProperty> taskConfigProperty2 =JSONArray.toList(taskConfigProperty3,EntityProperty.class);
//List<EntityProperty> taskConfigProperty2 =(List<EntityProperty>) JSONUtil.string2Object(DefaultPluginConfigVo.class, taskConfigProperty);
//设置插件运行时实例
//设置任务

DefaultTaskConfig taskConfig=new DefaultTaskConfig();
if(taskConfigProperty2!=null && taskConfigProperty2.size()>0){
taskConfig=property2TaskConfig(taskConfigProperty2);
}
//设置策略
DefaultTaskStrategyConfig strategyConfig=new DefaultTaskStrategyConfig();
//读插件的任务

/* DefaultTaskConfig inTaskConfig = jobConfig.getPluginIN().getTaskConfig();
DefaultTaskConfigVo inTaskConfigVo = defaultTaskConfig2Vo(inTaskConfig);*/

if(taskStrategyProperty2!=null && taskStrategyProperty2.size()>0){
strategyConfig=property2Strategy(taskStrategyProperty2);
strategyConfig.setTaskName(taskConfig.getTaskName());
strategyConfig.setTaskType("Schedule");
strategyConfig.setTaskParameter("null");
}
DefaultTaskStrategyConfigVo inTaskStrategyVo = defaultTaskStrategyConfig2Vo(strategyConfig);

model.addAttribute("jobId", jobId);
model.addAttribute("appName", bo.getAppName());
model.addAttribute("channel", bo.getChannelType());
//model.addAttribute("JobConfJson", bo.getJobConfJson());
model.addAttribute("taskConfigProperty", taskConfig);
model.addAttribute("taskStrategyProperty", inTaskStrategyVo);
return "jobconf/showConfEdit_new";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐