瀏覽代碼

任务关联流程模板前端相关修改

demon 8 年之前
父節點
當前提交
d319d1567d

+ 4 - 4
hos-broker/src/main/java/com/yihu/hos/controllers/ESBCamelController.java

@ -120,12 +120,12 @@ public class ESBCamelController {
    }
    @RequestMapping(value = "/genCamelFile", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT)
    @RequestMapping(value = "/genCamelFile", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
    @ResponseBody
    @ApiOperation(value = "生成新的camel文件", produces = "application/json", notes = "生成新的camel文件")
    public Result genCamelFile(
            @ApiParam(name = "routeId", value = "routeId", required = true)
            @RequestParam(value = "routeId") String routeId,
            @ApiParam(name = "routeId", value = "routeId", required = false)
            @RequestParam(value = "routeId",required = false) String routeId,
            @ApiParam(name = "pageName", value = "包名", required = true)
            @RequestParam(value = "pageName") String pageName,
            @ApiParam(name = "oldClassName", value = "旧类名", required = true)
@ -133,7 +133,7 @@ public class ESBCamelController {
            @ApiParam(name = "newClassName", value = "新类名", required = true)
            @RequestParam(value = "newClassName") String newClassName,
            @ApiParam(name = "newCron", value = "新cron表达式", required = true)
            @RequestParam(value = "routeId") String newCron) {
            @RequestParam(value = "newCron") String newCron) {
        return esbCamelService.genNewClassfile(routeId, pageName, oldClassName, newClassName, newCron);
    }

+ 29 - 1
hos-camel/src/main/java/compiler/JavaCompilerUtil.java

@ -125,9 +125,37 @@ public class JavaCompilerUtil {
    }
    public static void testCompiler(String path,String packageName,String className) throws IOException {
        String javaPath = path+ "/%s/%s.java";
        String classPath = JavaCompilerUtil.class.getProtectionDomain().getCodeSource().getLocation().getPath() ;
        JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
        // 建立DiagnosticCollector对象
        DiagnosticCollector diagnostics = new DiagnosticCollector();
        StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
        // 建立源文件对象,每个文件被保存在一个从JavaFileObject继承的类中
        Iterable compilationUnits = fileManager.getJavaFileObjects(String.format(javaPath, packageName, className));
        // options命令行选项
        // 指定的路径一定要存在,javac不会自己创建文件夹
        Iterable<String> options = Arrays.asList(  "-d", path);
        JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, options, null, compilationUnits);
        // 编译源程序
        boolean success = task.call();
        if (!success){
            List diagnostics1 = diagnostics.getDiagnostics();
            for (int i=0;i<diagnostics1.size();i++){
                System.out.println(diagnostics1.get(i).toString());
            }
        }
        fileManager.close();
        System.out.println((success) ? "编译成功" : "编译失败");
    }
    public static void main(String[] args) {
        try {
            compiler("/crawler/route", "QuartzRoute","QuartzRoute001","xx000xx");
//            compiler("/crawler/route", "QuartzRoute","QuartzRoute001","xx000xx");
            testCompiler("D:/", "/crawler/route", "QuartzRoute");
        } catch (IOException e) {
            e.printStackTrace();
        }

+ 10 - 0
src/main/java/com/yihu/hos/datacollect/model/RsJobConfig.java

@ -24,12 +24,22 @@ public class RsJobConfig implements java.io.Serializable {
	private Date repeatEndTime;
	private Integer delayTime;
	private Integer flowId;
	private Integer flowTempId;
	// Constructors
	/** default constructor */
	public RsJobConfig() {
	}
	public Integer getFlowTempId() {
		return flowTempId;
	}
	public void setFlowTempId(Integer flowTempId) {
		this.flowTempId = flowTempId;
	}
	public Integer getFlowId() {
		return flowId;
	}

+ 6 - 15
src/main/java/com/yihu/hos/datacollect/service/DatacollectManager.java

@ -5,7 +5,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.hos.common.Services;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.datacollect.dao.intf.IDatacollectDao;
import com.yihu.hos.datacollect.model.*;
import com.yihu.hos.datacollect.service.intf.IDatacollectManager;
@ -13,6 +12,8 @@ import com.yihu.hos.resource.model.RsDatasourceDataset;
import com.yihu.hos.resource.service.IStdService;
import com.yihu.hos.standard.model.adapter.AdapterDatasetModel;
import com.yihu.hos.standard.model.standard.StdDataSetModel;
import com.yihu.hos.system.service.FlowManager;
import com.yihu.hos.system.service.intf.IFlowManage;
import com.yihu.hos.web.framework.model.ActionResult;
import com.yihu.hos.web.framework.model.DataGridResult;
import com.yihu.hos.web.framework.model.DictItem;
@ -26,7 +27,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -39,6 +39,9 @@ public class DatacollectManager implements IDatacollectManager {
    @Resource(name = Services.StdService)
    private IStdService stdManager;
    @Resource(name = FlowManager.BEAN_ID)
    private IFlowManage flowManage;
    @Autowired
    private ObjectMapper objectMapper;
@ -222,6 +225,7 @@ public class DatacollectManager implements IDatacollectManager {
    @Transactional
    public ActionResult addJob(RsJobConfig obj, String cron, String jobDataset) throws Exception {
        datacollectDao.saveEntity(obj);
        boolean succ = flowManage.genCamelFile(obj.getFlowTempId(),cron);
        saveJobDataset(obj.getId(), jobDataset);
        //quartz新增任务
@ -532,18 +536,5 @@ public class DatacollectManager implements IDatacollectManager {
    }
    /**
     * TODO 调用broker接口生成camel相关文件
     * @param jobId
     * @param newCron
     * @throws Exception
     */
    private void genCamelFile(String jobId, String newCron) throws Exception {
        String url = "http://192.168.131.11:8080/esb/genCamelFile";
        Map<String,String> params = new HashMap<>();
        String result = HttpClientKit.post(url, params).getBody();
    }
}

+ 32 - 6
src/main/java/com/yihu/hos/system/controller/FlowController.java

@ -9,6 +9,7 @@ import com.yihu.hos.system.service.FlowManager;
import com.yihu.hos.system.service.intf.IFlowManage;
import com.yihu.hos.web.framework.model.Result;
import com.yihu.hos.web.framework.util.controller.BaseController;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
@ -20,7 +21,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
@ -40,6 +40,9 @@ public class FlowController extends BaseController {
    @Resource(name = FlowManager.BEAN_ID)
    private IFlowManage flowManage;
    @Value("${esb.camelFile}")
    private String camelFile;
    /**
     *  流程管理管理界面
     *
@ -186,12 +189,36 @@ public class FlowController extends BaseController {
    /**
     * 文件上传
     * @param file
     * @param session
     * @param request
     * @return
     */
    @RequestMapping(value = "/upload", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
    @ResponseBody
    public Object upload(@RequestParam MultipartFile file,HttpSession session
    public Object upload(@RequestParam MultipartFile file,HttpServletRequest request
    ) {
        //TODO 文件地址设置
        String packageName = request.getParameter("packageName");
        String className =  request.getParameter("className");
        StringBuilder basePath = new StringBuilder(camelFile + File.separator );;
        if (packageName!=null){
            String packagePath[] = packageName.split("\\.");
            for (int i=0;i<packagePath.length;i++){
                basePath.append(packagePath[i]).append(File.separator);
            }
        }
        String path = flowManage.uploadFile(file, basePath.toString());
        if (StringUtils.isEmpty(path)){
            return Result.error("上传失败");
        }else {
            return Result.success(basePath.toString()+ File.separator +path);
        }
    }
    @RequestMapping(value = "/uploadImg", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
    @ResponseBody
    public Object uploadImg(@RequestParam MultipartFile file,HttpServletRequest request
    ) {
        //TODO 文件地址设置
        String basePath = this.getServletContext().getRealPath(File.separator) + File.separator + "upload";
@ -205,11 +232,10 @@ public class FlowController extends BaseController {
    }
    @RequestMapping(value = "/flowList", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
    @RequestMapping(value = "/flowTempList", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
    @ResponseBody
    public Result flowList(String type) {
    public Result flowTempList(String type) {
        try {
            Result result = flowManage.getFlowList(type);
            return result;
        } catch (Exception ex) {

+ 9 - 0
src/main/java/com/yihu/hos/system/dao/FlowClassDao.java

@ -30,6 +30,15 @@ public class FlowClassDao extends SQLGeneralDAO implements IFlowClassDao {
        return new ArrayList<>();
    }
    @Override
    public List<SystemServiceFlowClass> getFlowClass(Integer flowId, String type) throws Exception {
        List<SystemServiceFlowClass> flowClasses = (List<SystemServiceFlowClass>) super.hibernateTemplate.find("from SystemServiceFlowClass s where s.flowId=? and type=? ", flowId,type);
        if (flowClasses != null && flowClasses.size() > 0) {
            return flowClasses;
        }
        return new ArrayList<>();
    }
    @Override
    public boolean deleteFlowClassByFlowId(Integer flowId) {
        try {

+ 9 - 0
src/main/java/com/yihu/hos/system/dao/FlowTempDao.java

@ -29,6 +29,15 @@ public class FlowTempDao extends SQLGeneralDAO implements IFlowTempDao {
        return new ArrayList<>();
    }
    @Override
    public List<SystemServiceFlowTemp> getFlowTemps(Integer flowId, String type) throws Exception {
        List<SystemServiceFlowTemp> flowTemps = (List<SystemServiceFlowTemp>) super.hibernateTemplate.find("from SystemServiceFlowTemp s where s.flowId=? and type=? ", flowId,type);
        if (flowTemps != null && flowTemps.size() > 0) {
            return flowTemps;
        }
        return new ArrayList<>();
    }
    @Override
    public boolean deleteFlowTempByFlowId(Integer flowId) {
        try {

+ 1 - 0
src/main/java/com/yihu/hos/system/dao/intf/IFlowClassDao.java

@ -12,6 +12,7 @@ import java.util.List;
 */
public interface IFlowClassDao extends XSQLGeneralDAO {
    List<SystemServiceFlowClass> getFlowClassByFlowId(Integer flowId) throws Exception;
    List<SystemServiceFlowClass> getFlowClass(Integer flowId,String type) throws Exception;
    boolean deleteFlowClassByFlowId(Integer flowId);
    List<Integer> getFlowClassIds(Integer flowId);
}

+ 2 - 0
src/main/java/com/yihu/hos/system/dao/intf/IFlowTempDao.java

@ -12,6 +12,8 @@ import java.util.List;
 */
public interface IFlowTempDao extends XSQLGeneralDAO {
    List<SystemServiceFlowTemp> getFlowTempByFlowId(Integer flowId) throws Exception;
    List<SystemServiceFlowTemp> getFlowTemps(Integer flowId,String type) throws Exception;
    boolean deleteFlowTempByFlowId(Integer flowId);
}

+ 84 - 9
src/main/java/com/yihu/hos/system/service/FlowManager.java

@ -2,6 +2,7 @@ package com.yihu.hos.system.service;
import com.yihu.hos.common.constants.Constants;
import com.yihu.hos.core.file.FileUtil;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.services.ServiceFlowEventService;
import com.yihu.hos.system.dao.FlowClassDao;
import com.yihu.hos.system.dao.FlowTempDao;
@ -12,20 +13,19 @@ import com.yihu.hos.system.model.SystemServiceFlow;
import com.yihu.hos.system.model.SystemServiceFlowClass;
import com.yihu.hos.system.model.SystemServiceFlowTemp;
import com.yihu.hos.system.service.intf.IFlowManage;
import com.yihu.hos.web.framework.model.ActionResult;
import com.yihu.hos.web.framework.model.DictItem;
import com.yihu.hos.web.framework.model.DictionaryResult;
import com.yihu.hos.web.framework.model.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * 系统流程管理业务类
@ -39,6 +39,9 @@ public class FlowManager implements IFlowManage {
    public static final String BEAN_ID = "flowManager";
    @Value("${esb.genCamelUrl}")
    private String genCamelUrl;
    @Resource(name = "flowDao")
    private IFlowDao flowDao;
@ -191,13 +194,23 @@ public class FlowManager implements IFlowManage {
        return flowTempDao.getFlowTempByFlowId(id);
    }
    //TODO
    @Override
    public boolean genFlewByflowTempId(Integer flowTempId) throws Exception {
        SystemServiceFlow flow = getFlowById(flowTempId);
        //生成新的route类
        //添加新processor记录
        return false;
    }
    @Override
    public String uploadFile(MultipartFile file, String baseSavePath) {
        String fileName =  file.getOriginalFilename();
        boolean succ = false;
        try {
            succ = FileUtil.writeFile(baseSavePath +"/"+ fileName, file.getBytes(), "utf-8");
            succ = FileUtil.writeFile(baseSavePath + File.separator + fileName, file.getBytes(), "utf-8");
            if (succ){
                return  fileName;
            }
@ -258,9 +271,9 @@ public class FlowManager implements IFlowManage {
     * @throws Exception
     */
    @Override
    public  DictionaryResult getFlowList(String type) throws Exception {
    public  ActionResult getFlowList(String type) throws Exception {
        List<SystemServiceFlow> flowList = flowDao.getFlowList(type);
        DictionaryResult re = new DictionaryResult("FLOW_LIST");
        ActionResult re = new ActionResult();
        if(flowList!=null&&flowList.size()>0)
        {
            List<DictItem> dictList = new ArrayList<>();
@ -271,9 +284,71 @@ public class FlowManager implements IFlowManage {
                dict.setExtend("");
                dictList.add(dict);
            }
            re.setDetailModelList(dictList);
            re.setData(dictList);
        }
        return re;
    }
    /**
     * TODO 调用broker接口生成camel相关文件
     * @param flowId
     * @param newCron
     * @throws Exception
     */
    public boolean genCamelFile(Integer flowId, String newCron) throws Exception {
        Long timestamp = System.currentTimeMillis();
        List<SystemServiceFlowTemp> flowClassRouters = flowTempDao.getFlowTemps(flowId, Constants.FLOW_TYPE_ROUTE);
        List<SystemServiceFlowTemp> flowClassProces = flowTempDao.getFlowTemps(flowId, Constants.FLOW_TYPE_PROCESSOR);
        SystemServiceFlow oldFlow = getFlowById(flowId);
        if (!flowClassRouters.isEmpty()){
            Map<String,String> params = new HashMap<>();
            SystemServiceFlowTemp flowTemp =flowClassRouters.get(0);
            String newClassName = flowTemp.getClassName()+timestamp;
            String newClassPath = flowTemp.getClassPath().replaceAll(flowTemp.getClassName()+".java",newClassName+".class");
            params.put("pageName", flowTemp.getPackageName());
            params.put("oldClassName", flowTemp.getClassName());
            params.put("newClassName",newClassName);//原文件名加当前时间戳
            params.put("newCron",newCron);
            String result = HttpClientKit.post(genCamelUrl, params).getBody();
            //成功生成文件后,添加flow和flowclass记录
            //生成新流程
            SystemServiceFlow newFlow = new SystemServiceFlow();
            newFlow.setName(oldFlow.getName()+timestamp);
            newFlow.setCode(oldFlow.getCode()+timestamp);
            newFlow.setChart(oldFlow.getChart());
            newFlow.setValid(1);
            newFlow.setCreateDate(new Date());
            newFlow.setFileType(Constants.CLASS);
            flowDao.saveEntity(newFlow);
            SystemServiceFlowClass newFlowClass = new SystemServiceFlowClass();
            newFlowClass.setPackageName(flowTemp.getPackageName());
            newFlowClass.setClassName(newClassName);
            newFlowClass.setClassPath(newClassPath);
            newFlowClass.setFlowId(newFlow.getId());
            newFlowClass.setType(Constants.FLOW_TYPE_ROUTE);
            flowClassDao.saveEntity(newFlowClass);
            //新增processor记录
            for (SystemServiceFlowTemp process:flowClassProces){
                SystemServiceFlowClass processClass = new SystemServiceFlowClass();
                processClass.setPackageName(process.getPackageName());
                processClass.setClassName(process.getClassName());
                processClass.setClassPath(process.getClassPath());
                processClass.setFlowId(newFlow.getId());
                processClass.setType(Constants.FLOW_TYPE_PROCESSOR);
                flowClassDao.saveEntity(processClass);
            }
            return true;
        }
        return false;
    }
}

+ 7 - 0
src/main/java/com/yihu/hos/system/service/intf/IFlowManage.java

@ -44,5 +44,12 @@ public interface IFlowManage extends IBaseManager {
    List<SystemServiceFlowTemp> getFlowTempByFlowId(Integer id) throws Exception;
    /**
     * 根据流程模板Id生成新流程
     * @param flowTempId
     * @return
     */
    boolean genFlewByflowTempId(Integer flowTempId) throws Exception;
    boolean genCamelFile(Integer flowId, String newCron) throws Exception;
}

+ 6 - 2
src/main/resources/application.yml

@ -33,7 +33,9 @@ spring:
    user: admin
    password: admin
    pooled: false
esb:
  genCamelUrl: http://192.168.131.11:8099/esb/genCamelFile
  camelFile: E:/
---
spring:
  profiles: test
@ -50,7 +52,9 @@ spring:
    user: admin
    password: admin
    pooled: false
esb:
  genCamelUrl: http://192.168.131.11:8099/esb/genCamelFile
  camelFile: usr/local/esb/
#  data:
#    mongodb:
#      host: 172.19.103.86

+ 5 - 0
src/main/resources/resource/RsJobConfig.hbm.xml

@ -76,5 +76,10 @@
                <comment>流程ID</comment>
            </column>
        </property>
        <property name="flowTempId" type="java.lang.Integer">
            <column name="flow_temp_id">
                <comment>流程模板ID</comment>
            </column>
        </property>
    </class>
</hibernate-mapping>

+ 2 - 1
src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJob.jsp

@ -70,7 +70,8 @@
        <div class="m-form-group">
            <label id="lbJobContent">类名:</label>
            <div class="m-form-control">
                <input type="text" id="jobContentClass">
                <input type="text" name="flowTempId" id="jobContentClass">
                <input type="hidden" name="flowId" id="flowId" >
                <input type="text"  class="l-textbox" id="txtJobContent" style="display: none"/>
            </div>
        </div>

+ 55 - 19
src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJobJs.jsp

@ -5,6 +5,8 @@
<script>
    var editorJob={
        flowTempId:0,
        flowArrays:[],
        beforeServeTime:false,
        archiveUpload:"com.yihu.ehr.job.service.ArchiveUploadJob",
        crawlerFlowUpload:"com.yihu.ehr.job.service.CrawlerFlowUploadJob",
@ -21,6 +23,7 @@
        init: function ()
        {
            var me = this;
            me.getFlowList();
            //表单向导
            $("#div_form").show().steps({
                //transitionEffect: "fade",
@ -88,7 +91,6 @@
                        }
                        if(me.needRender)
                        {
                            alert(1);
                            me.$listDataset.setData($("#txtJobDataset").val());
                            me.$listDataset.reRender();
                        }
@ -96,6 +98,9 @@
                    else if(to==3)
                    {
                        me.setAchiveUploadType();
                    }else{
                        liger.get("jobContentClass").selectValue(flowTempId);
                    }
                },
                onFinishing:function(c,a){
@ -126,13 +131,20 @@
            $("a[href='#cancel']").addClass("l-button-no");
            //业务类型
            $('#jobContentClass').ligerComboBox({
                dict:true,
                dictName:'JOB_CONTENT_CLASS',
                onChange:function(){
                    me.needRender = true;
                }
            });
//            $('#jobContentClass').ligerComboBox({
//                dict:true,
//                dictName:'JOB_CONTENT_CLASS',
//                onChange:function(){
//                    me.needRender = true;
//                }
//            });
            $("#jobContentClass").ligerComboBox({data : editorJob.flowArrays,
                cancelable:false,
                onSuccess:function(data){
                }});
            $('input[name="jobContentType"]').ligerRadio();
            $(document).on('click','input[name="jobContentType"]',function(){
@ -347,6 +359,8 @@
            if(modelString!=undefined && modelString!=null && modelString.length>0)
            {
                me.actionUrl = "${contextRoot}/datacollect/updateJob";
                flowTempId = "${model.flowTempId}";
                liger.get("jobContentClass").selectValue(flowTempId);
                var model ={
                    id:'${model.id}',
                    jobName: '${model.jobName}',
@ -357,6 +371,8 @@
                    schemeId: '${model.schemeId}',
                    schemeVersion: '${model.schemeVersion}',
                    valid: '${model.valid}',
                    flowId: '${model.flowId}',
                    flowTempId: '${model.flowTempId}',
                    cronExpression: '${cronExpression}',
                    jobNextTime: '${model.jobNextTime}',
                    repeatStartTime:'${model.repeatStartTime}',
@ -401,7 +417,7 @@
                }
                $('#txtSchemeId').val(model.schemeId);
                $('#txtSchemeVersion').val(model.schemeVersion);
                
                $('#txtCronExpression').val(model.cronExpression);
                $('#txtValid').val(model.valid);
                $("#dateNextTime").ligerDateEditor('setValue',model.jobNextTime);
@ -415,14 +431,8 @@
        getData:function(){
            var me = this;
            var type = $('input[name="jobContentType"]').ligerRadio('getValue');
            var content = "";
            if(type == "0")
            {
                content = $("#txtJobContent").val();
            }
            else{
                content = $("#jobContentClass").ligerComboBox("getValue");
            }
            var content = $("#jobContentClass").ligerComboBox("getValue");
            if($('#jobContentClass').ligerComboBox("getValue")==me.crawlerFlowUpload) {//任务编排上传类,不需要选择数据集,直接设值
                $("#txtJobDataset").val(JSON.stringify(me.$crawlerFlowDataset.getData()));
@ -441,6 +451,8 @@
                cronExpression: $('#txtCronExpression').val(),
                jobNextTime: $("#dateNextTime").ligerDateEditor('getValue'),
                jobDataset: $('#txtJobDataset').val(),
                flowTempId: $('#jobContentClass').ligerDateEditor('getValue'),
                flowId: $('#flowId').val(),
                repeatStartTime: $("#repeatStartTime").ligerDateEditor('getValue'),
                repeatEndTime: $("#repeatEndTime").ligerDateEditor('getValue'),
                delayTime: $('#txtDelayTime').val(),
@ -450,7 +462,7 @@
        },
        //改变为档案上传接口,执行方式修改时触发,清空数据
        setAchiveUploadType:function(jobType){
            
            var me = this;
            if(jobType==undefined)
            {
@ -506,7 +518,7 @@
        //设置数据集条件
        setCondition:function(rowIndex)
        {
            
            var me = this;
            //获取选中行
            var row = me.$listDataset.getRow(rowIndex);
@ -926,6 +938,30 @@
            });
        },
        getFlowList:function(){
            $.ajax({ //获取表的字段列表
                type: "POST",
                url : "${contextRoot}/flow/flowTempList",
                dataType : "json",
                data:{type:'java'},
                cache:false,
                async:false,
                success :function(data){
                    if(data.successFlg) {
                        editorJob.flowArrays=data.data;
                    }
                    else{
                        alert("获取流程列表错误");
                    }
                },
                error :function(data){
                    editorJob.beforeServeTime=true;
                    $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
                }
            });
        },
    }
    $(function () {

+ 1 - 1
src/main/webapp/WEB-INF/ehr/jsp/system/flow/editorFlow.jsp

@ -42,7 +42,7 @@
        <div class="m-form-group">
            <label><span class="red">*&nbsp;</span>流程图:</label>
            <div class="m-form-control">
                <form id="formIcon" action="${contextRoot}/flow/upload" method="post" enctype="multipart/form-data">
                <form id="formIcon" action="${contextRoot}/flow/uploadImg" method="post" enctype="multipart/form-data">
                    <input type="text" id="iconUrl" name="chart" class="l-textbox btnIconGrayUp" style="width: 144px;"  placeholder="点击选择图片" readonly="readonly" data-id="">
                    <div style="float: right;">
                        <div  class="l-button l-button-no formIcon" data-id="formIcon">

+ 16 - 16
src/main/webapp/WEB-INF/ehr/jsp/system/flow/editorFlowJs.jsp

@ -84,7 +84,6 @@
            if(!type || type==''){
                type = "route";
            }
            liger.get("type"+index).selectValue(type);
            if("class"==fileType){
                me.flowClassData[me.$mun]= {
@ -119,13 +118,13 @@
                }
                var index =newMaxFormIndex();
                debugger
                for (var i = index; i > 0; i--) {
                    me.bindFlowClass(i);
                }
                var data = $("#div_info_form").ligerAutoForm("getData");
                delete data.file;
                debugger
                var dataList;
                if("java"==fileType){
                    data.flowTempArray = me.flowClassData;
@ -174,7 +173,8 @@
            $(".m-form-group").on("click","#btnAddClass",function () {
                var index =newMaxFormIndex();
                    index++
                var html = '<div class="flows"  dataIndex="'+index+'" id="paramGroup'+index+'">';
                var html = '<div class="flows"  dataIndex="'+index+'" id="paramGroup'+index+'">' +
                        '<form id="form'+index+'" action="${contextRoot}/flow/upload" method="post" enctype="multipart/form-data">';
                html += '<div class="m-form-group" dataIndex="'+index+'"  ><label>类别 : </label><div class="m-form-control ">'  +
                        '<div class="l-text"><input type="text" id="type'+index+'" class="l-text-field required" name="type"></div>'+
@ -188,14 +188,13 @@
                        '<input type="text" id="className'+index+'"  class="l-textbox"/></div></div>';
                html += ' <div class="m-form-group"><label>源代码'+index+' : </label><div class="m-form-control">' +
                        '<form id="form'+index+'" action="${contextRoot}/flow/upload" method="post" enctype="multipart/form-data">';
                html += ' <div class="m-form-group"><label>源代码'+index+' : </label><div class="m-form-control">';
                html += ' <input name="isUpdate" type="text" id="isUpdate'+index+'"   class="isUpdate" hidden="hidden"/>';
                html += ' <input type="text"  id="classPath'+index+'" name="classPath" class="l-textbox btnGrayUp" style="width: 144px;"  placeholder="点击选择源代码文件" readonly="readonly" data-id="">'+
                        ' <div style="float: right;">'+
                        ' <div  class="l-button l-button-no btnGrayDo'+index+'" data-id="'+index+'">'+
                        ' <span style="background-color: rgb(240, 240, 240);">导入</span> </div>'+
                        '<label class="say'+index+'" style="display: inline-block;width: 70px;"></label>'+
                        '<label id="say'+index+'"  class="say'+index+'" style="display: inline-block;width: 70px;"></label>'+
                        '</div><input type="file" name="file" style="display: none" id="file'+index+'" /></form>'+
                        '</div></div>';
                html += '<div class="m-form-group"><div class="m-form-control"><a class="m-btn-cancle" href="javascrip:void()" style="display:block;" onclick="$(\'#paramGroup'+index+'\').remove()"></a></div></div>';
@ -313,31 +312,32 @@
            var index = 1;
            var flowStr = '${flowClass}';
            if (flowStr != "") {
                flowStr = flowStr.replace(/\\/g,"\\\\");
                var flowJson = $.parseJSON(flowStr);
                $.each(flowJson, function(i, data){
                    var html = '<div class="flows"  dataIndex="'+index+'" id="paramGroup'+index+'">';
                    var html = '<div class="flows"  dataIndex="'+index+'" id="paramGroup'+index+'">'+
                            '<form id="form'+index+'" action="${contextRoot}/flow/upload" method="post" enctype="multipart/form-data">';
                    html += '<div class="m-form-group" dataIndex="'+index+'"  ><label>类别 :</label><div class="m-form-control "> '  +
                            '<div class="l-text"><input type="text" id="type'+index+'" value="'+data.type+'" class="l-text-field required" name="type"></div>'+
                            '</div></div>';
                    html += '<div class="m-form-group" style="border:1px solid #e1e1e1"><label>包名'+index+' : </label><div class="m-form-control"  controlType="textbox" id="packName'+index+'_div" style="margin-left:0px;">'  +
                            '<input type="text" id="packageName'+index+'" value="'+data.packageName+'" class="l-textbox"/></div></div>';
                            '<input type="text" name="packageName" id="packageName'+index+'" value="'+data.packageName+'" class="l-textbox"/></div></div>';
                    html += '<div class="m-form-group"   dataIndex="'+index+'" id="paramGroup'+index+'"><label>'+
                            '类名'+index+' : </label><div class="m-form-control"  controlType="textbox" id="className'+index+'_div" style="margin-left:0px;">'  +
                            '<input type="text" id="className'+index+'" value="'+data.className+'"  class="l-textbox"/></div></div>';
                            '<input type="text" name="className" id="className'+index+'" value="'+data.className+'"  class="l-textbox"/></div></div>';
                    html += ' <div class="m-form-group"><label>源代码'+index+' : </label><div class="m-form-control">' +
                            '<form id="form'+index+'" action="${contextRoot}/flow/upload" method="post" enctype="multipart/form-data">';
                    html += ' <div class="m-form-group"><label>源代码'+index+' : </label><div class="m-form-control">' ;
                    html += ' <input type="text" name="isUpdate" id="isUpdate'+index+'" class="isUpdate" hidden="hidden"/>';
                    html += ' <input type="text"  id="classPath'+index+'" value="'+data.classPath+'"   name="classPath" class="l-textbox btnGrayUp" style="width: 144px;"  placeholder="点击选择源代码文件" readonly="readonly" data-id="">'+
                            ' <div style="float: right;">'+
                            ' <div  class="l-button l-button-no btnGrayDo'+index+'" data-id="'+index+'">'+
                            ' <span style="background-color: rgb(240, 240, 240);">导入</span> </div>'+
                            '<label class="say'+index+'" style="display: inline-block;width: 70px;"></label>'+
                            '<label  id="say'+index+'"  class="say'+index+'" style="display: inline-block;width: 70px;"></label>'+
                            '</div><input type="file" name="file" style="display: none" id="file'+index+'" /></form>'+
                            '</div></div>';
                    html += ' <input name="id" value="'+data.id+'" id="classId'+index+'" hidden="hidden"/>';
@ -381,7 +381,7 @@
            var formObj=$(formId);//要提交的表单
            var Obj=$(".btnGrayDo"+index);
            var upObj=formObj.closest("input").find(".btnGrayUp");//浏览的按钮
            var formsay=formObj.find(".say"+index);//提示文字
            var formsay=$("#say"+index);//提示文字
            if(formObj.closest("div").find("input[type=text]").val().length!=0){//判断是否选择了文件
                formsay.attr("class","say true").html("上传中");
                formObj.ajaxForm({
@ -389,9 +389,9 @@
                    success:  function processJson(data){
                        if(data.successFlg){
                            formsay.attr("class","say true").html("上传成功");
                            formObj.find("input[type=text]").attr("data-id","/upload/"+data.message)//设置已上传的文件的ID
                            var inputVal=formObj.closest("div").find("input[type=text]");
                            inputVal.val("/upload/"+data.message);
                            formObj.find("input[type=text]").filter(".btnGrayUp").attr("data-id",data.message)//设置已上传的文件的ID
                            var inputVal=formObj.closest("div").find("input[type=text]").filter(".btnGrayUp");
                            inputVal.val(data.message);
                            formObj.closest("div").find("span").html("重新导入<i></i>");
                            var isUpdate=formObj.find(".isUpdate");//是否有上传过
                            isUpdate.val("1");//上传过