shiyj
2019-08-31 7d8c79cd05aa3f729ded1e66563129c18734eb3c
新增功能调试第一版
1个文件已删除
10 文件已重命名
6个文件已修改
1个文件已添加
861 ■■■■ 已修改文件
JobService/src/main/java/com/java110/job/Api/HcFtpToFileSystemConfigAction.java 218 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/controller/JobController.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/dao/IHccFtpFileDAO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/dao/impl/HcFtpFileDAOImpl.java 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/dao/impl/PrvncFtpFileDAOImpl.java 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/smo/DownloadFileFromFtpToTable.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/smo/HcFtpToFileSystemQuartz.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/smo/IHcFtpFileBMO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/smo/IHcFtpFileSMO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/smo/impl/PrvncFtpFileBMOImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/smo/impl/PrvncFtpFileSMOImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/task/HcFtpToFileSystemJob.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/util/FTPClientTemplate.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/resources/static/css/HcFtpToFileSystemConfigList.css 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/resources/static/js/HcFtpToFileSystemConfigList.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/resources/templates/HcFtpToFileSystemConfigList.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/job/IHcFtpFileDAO.xml 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JobService/src/main/java/com/java110/job/Api/HcFtpToFileSystemConfigAction.java
File was renamed from JobService/src/main/java/com/java110/job/Api/PrvncFtpToFileSystemConfigAction.java
@@ -3,17 +3,17 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.common.util.SpringBeanInvoker;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.job.common.CustomizedPropertyPlaceholderConfigurer;
import com.java110.job.dao.IPrvncFtpFileDAO;
import com.java110.job.task.PrvncFtpToFileSystemJob;
import com.java110.job.dao.IHccFtpFileDAO;
import com.java110.job.task.HcFtpToFileSystemJob;
import org.apache.commons.validator.GenericValidator;
import org.apache.commons.validator.util.ValidatorUtils;
import org.quartz.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.text.DateFormat;
@@ -22,58 +22,57 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 将ftp上的文件保存到支持的文件系统
 *
 *
 * @author wuxw7 add by 20170103
 *
 *            shiyj update by 2019.08.29
 *
 */
@RestController
public class PrvncFtpToFileSystemConfigAction{
@Service
public class HcFtpToFileSystemConfigAction {
    private static final Logger logger = LoggerFactory.getLogger(PrvncFtpToFileSystemConfigAction.class);
    private static final Logger logger = LoggerFactory.getLogger(HcFtpToFileSystemConfigAction.class);
    private static final String defaultCronExpression = "0 * * * * ?";// 每分钟执行一次
    private static final String prefixJobName = "PrvncFtpToSystem_"; // job
    private static final String prefixJobName = "HcFtpToSystem_"; // job
    // 名称前缀,防止和其他的job名称产生冲突
    private static final String RUNFLAG_START = "1";
    private static final String RUNFLAG_STOP = "0";
    @Autowired
    private IPrvncFtpFileDAO iprvncFtpFileDAO;
    private IHccFtpFileDAO iprvncFtpFileDAO;
    @Autowired
    private Scheduler scheduler;
    // 每页数据条数
    private static int pageSize = 20;
    public JSONObject resultMsg;
    @Autowired
    private Scheduler scheduler;
    /**
     *
     *
     */
    private static final long serialVersionUID = 1L;
    /**
     * 查询配置的需要下载任务的列表
     *
     *
     * @return
     */
    @RequestMapping(path = "/FtpToFileSystem/queryFtpItems" , method = RequestMethod.POST)
    public String queryFtpItems(@RequestBody String queryftpinfo,HttpServletRequest request) {
    public JSONObject queryFtpItems(HttpServletRequest request) {
        JSONObject queryftp = JSONObject.parseObject(queryftpinfo);
        String curPage = queryftp.getString("curPage");
        String curPage = request.getParameter("curPage");
        curPage = curPage == null || "".equals(curPage) ? "1" : curPage;
        // 查询在用状态时的下载任务列表
        Map info = new HashMap();
        info.put("curPage", curPage);
        info.put("pageSize", pageSize);
        Map resultInfo = getPrvncFtpFileDAO().queryFtpItems(info);
        info.put("curPage", (Integer.parseInt(curPage)-1)*pageSize);
        info.put("pageSize", pageSize*Integer.parseInt(curPage));
        Map resultInfo = iprvncFtpFileDAO.queryFtpItems(info);
        // 获取总数据数
        int dataCount = resultInfo.get("ITEMSCOUNT") == null ? 0 : Integer.parseInt(resultInfo.get("ITEMSCOUNT").toString());
@@ -99,29 +98,28 @@
                // 处理时间显示和界面显示传输类型
                Map ftpItemMap = ftpItems.get(itemIndex);
                ftpItemMap.put("U_OR_D_NAME", "task.tamplete.name." + ftpItemMap.get("U_OR_D"));// 暂且写死,最终还是读取配置
                ftpItemMap.put("U_OR_D_NAME", CustomizedPropertyPlaceholderConfigurer.getContextProperty("task.tamplete.name." + ftpItemMap.get("U_OR_D")));// 暂且写死,最终还是读取配置
                ftpItemMap.put("CREATE_DATE", df.format(ftpItemMap.get("CREATE_DATE")));// 暂且写死,最终还是读取配置
                rows.add(JSONObject.parseObject(JSONObject.toJSONString(ftpItems.get(itemIndex))));
            }
            data.put("rows", rows);
            resultMsg = data;
            return data.toString();
            return data;
        }
        data.put("rows", "[]");
        resultMsg = data;
        return data.toString();
        return data;
    }
    /**
     * 增加Ftp配置
     *
     *
     * @return
     */
    @RequestMapping(path = "/FtpToFileSystem/addFtpItem" , method = RequestMethod.POST)
    public String addFtpItem(@RequestBody String addFtpIteminfo,HttpServletRequest request) {
        JSONObject addFtpItem = JSONObject.parseObject(addFtpIteminfo);
    public JSONObject addFtpItem(HttpServletRequest request) {
        // 请求参数
        String ftpItemJson = addFtpItem.getString("ftpItemJson");
        String ftpItemJson = request.getParameter("ftpItemJson");
        JSONObject ftpItemJsonObj = null;
        try {
            // 校验格式是否正确
@@ -129,29 +127,34 @@
        } catch (Exception e) {
            logger.error("传入参数格式不正确:" + ftpItemJson, e);
            resultMsg = createResultMsg("1999", "传入参数格式不正确:" + ftpItemJson, "");
            return "addFtpItem";
            return resultMsg;
        }
        // 将ftpItemJson装为Map保存操作
        Map paramIn = JSONObject.parseObject(ftpItemJsonObj.getJSONObject("taskInfo").toJSONString(), Map.class);
        // 数据规范性校验
        Object dealClassObj = null;
        // 在prvncCrm.properties 文件中获取对应处理类
        Object dealClassObj = CustomizedPropertyPlaceholderConfigurer.getContextProperty("task.deal.class." + paramIn.get("uOrD"));
        if ("DT".equals(paramIn.get("uOrD").toString())) {
             dealClassObj = CustomizedPropertyPlaceholderConfigurer.getContextProperty("com.java110.job.smo.DownloadFileFromFtpToTable");
        }else{
            resultMsg = this.createResultMsg("1999", "对应模板不存在,请联系管理员", "");
            return resultMsg;
        }
        // Object dealClassObj = "provInner.DownloadFileFromFtpToTFS";
        if (dealClassObj == null) {
            resultMsg = this.createResultMsg("1999", "对应模板不存在,请联系管理员", "");
            return "addFtpItem";
            return resultMsg;
        }
        String dealClass = dealClassObj.toString();
        long taskId = getPrvncFtpFileDAO().newCreateTaskId();
        long taskId = Long.parseLong(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_HCJOBId));
        // 保存数据
        paramIn.put("taskId", taskId);
        paramIn.put("dealClass", dealClass);
        int addFtpItemFlag = getPrvncFtpFileDAO().addFtpItem(paramIn);
        int addFtpItemFlag = iprvncFtpFileDAO.addFtpItem(paramIn);
        if (addFtpItemFlag > 0) {
            // #taskId#,#itemSpecId#,#value#
@@ -166,28 +169,27 @@
                taskAttrMap.put("value", taskAttr.get("value"));
                taskAttrsList.add(taskAttrMap);
            }
            int addFtpItemAttrFlag = getPrvncFtpFileDAO().addFtpItemAttrs(taskAttrsList);
            int addFtpItemAttrFlag = iprvncFtpFileDAO.addFtpItemAttrs(taskAttrsList);
            if (addFtpItemAttrFlag > 0) {
                resultMsg = this.createResultMsg("0000", "成功", ftpItemJson);
            } else {
                resultMsg = this.createResultMsg("1999", "保存属性失败", "");
            }
            return resultMsg.toString();
            return resultMsg;
        }
        resultMsg = this.createResultMsg("1999", "保存数据失败", "");
        return resultMsg.toString();
        return resultMsg;
    }
    /**
     * 编辑Ftp配置,编辑时将会修改所有的ftpItem 信息,所以传递是所有字段需要传递全
     *
     *
     * @return
     */
    @RequestMapping(path = "/FtpToFileSystem/editFtpItem",method = RequestMethod.POST)
    public String editFtpItem(@RequestBody String editFtpItem,HttpServletRequest request) {
        JSONObject editftpitem =  JSONObject.parseObject(editFtpItem);
    public String editFtpItem(HttpServletRequest request) {
        // 请求参数为{"taskId":"12","taskName":"经办人照片同步处理","ftpUserName":"weblogic",.....}
        String ftpItemJson = editftpitem.getString("ftpItemJson");
        String ftpItemJson = request.getParameter("ftpItemJson");
        JSONObject ftpItemJsonObj = null;
        try {
            // 校验格式是否正确
@@ -213,14 +215,14 @@
        paramIn.put("dealClass", dealClass);
        // 根据taskId 查询记录是否存在,如果不存在直接返回失败
        Map ftpItem = getPrvncFtpFileDAO().queryFtpItemByTaskId(paramIn);
        Map ftpItem = iprvncFtpFileDAO.queryFtpItemByTaskId(paramIn);
        // 判断是否有对应的数据
        if (ftpItem != null && ftpItem.containsKey("TASKID")) {
            // 更新数据
            int updateFtpItemFlag = getPrvncFtpFileDAO().updateFtpItemByTaskId(paramIn);
            int updateFtpItemFlag = iprvncFtpFileDAO.updateFtpItemByTaskId(paramIn);
            if (updateFtpItemFlag > 0) {
                // 首先先删除
                getPrvncFtpFileDAO().deleteFtpItemAttrsbyTaskId(paramIn);
                iprvncFtpFileDAO.deleteFtpItemAttrsbyTaskId(paramIn);
                // 保存属性信息
                JSONArray taskAttrs = ftpItemJsonObj.getJSONArray("taskAttrs");
                List<Map> taskAttrsList = new ArrayList<Map>();
@@ -232,7 +234,7 @@
                    taskAttrMap.put("value", taskAttr.get("value"));
                    taskAttrsList.add(taskAttrMap);
                }
                int addFtpItemAttrFlag = getPrvncFtpFileDAO().addFtpItemAttrs(taskAttrsList);
                int addFtpItemAttrFlag = iprvncFtpFileDAO.addFtpItemAttrs(taskAttrsList);
                if (addFtpItemAttrFlag > 0) {
                    resultMsg = this.createResultMsg("0000", "成功", ftpItemJson);
                } else {
@@ -249,15 +251,13 @@
    /**
     * 删除ftp配置
     *
     *
     * @return
     */
    @RequestMapping(path = "/FtpToFileSystem/deleteFtpItem",method = RequestMethod.POST)
    public String deleteFtpItem(@RequestBody String deleteFtpItemInfo,HttpServletRequest request) {
    public String deleteFtpItem(HttpServletRequest request) {
        JSONObject delteftpinfo = JSONObject.parseObject(deleteFtpItemInfo);
        // 请求参数为{"tasks":[{"taskId":1},{"taskId":2}],"state":"DELETE"}
        String ftpItemJson = delteftpinfo.getString("ftpItemJson");
        String ftpItemJson = request.getParameter("ftpItemJson");
        if (logger.isDebugEnabled()) {
            logger.debug("---【PrvncFtpToFileSystemConfigAction.deleteFtpItem】入参为:" + ftpItemJson, ftpItemJson);
        }
@@ -302,7 +302,7 @@
        Map paramInfo = new HashMap();
        paramInfo.put("taskIds", taskIds.split(","));
        // 更新数据
        int updateFtpItemFlag = getPrvncFtpFileDAO().deleteFtpItemByTaskId(paramInfo);
        int updateFtpItemFlag = iprvncFtpFileDAO.deleteFtpItemByTaskId(paramInfo);
        if (updateFtpItemFlag > 0) {
            resultMsg = this.createResultMsg("0000", "成功", ftpItemJson);
            return "deleteFtpItem";
@@ -315,15 +315,14 @@
    /**
     * 根据taskId 获取 ftp配置信息
     *
     *
     * @return
     */
    public String queryFtpItemByTaskId(HttpServletRequest request) {
    @RequestMapping(path = "/FtpToFileSystem/queryFtpItemByTaskId" , method = RequestMethod.POST)
    public String queryFtpItemByTaskId(@RequestBody String queryFtpItemByTaskId,HttpServletRequest request) {
        JSONObject queryFtpItemByTask = JSONObject.parseObject(queryFtpItemByTaskId);
        // 请求参数
        String ftpItemJson = queryFtpItemByTask.getString("ftpItemJson");
        // 请求参数为{"taskId":"12"}
        String ftpItemJson = request.getParameter("ftpItemJson");
        if (logger.isDebugEnabled()) {
            logger.debug("---【PrvncFtpToFileSystemConfigAction.queryFtpItemByTaskId】入参为:" + ftpItemJson, ftpItemJson);
        }
@@ -341,7 +340,7 @@
        Map paramIn = JSONObject.parseObject(ftpItemJson, Map.class);
        // 根据taskId 查询记录是否存在,如果不存在直接返回失败
        Map ftpItem = getPrvncFtpFileDAO().queryFtpItemByTaskId(paramIn);
        Map ftpItem = iprvncFtpFileDAO.queryFtpItemByTaskId(paramIn);
        // 判断是否有对应的数据
        if (ftpItem != null && ftpItem.containsKey("TASKID")) {
            // 更新数据
@@ -355,16 +354,14 @@
    /**
     * 查询任务模板 ftpItemJson:{'uOrD':'U'}
     *
     *
     * @return
     */
    public String questTaskTample(HttpServletRequest request) {
    @RequestMapping(path = "/FtpToFileSystem/questTaskTample" , method = RequestMethod.POST)
    public String questTaskTample(@RequestBody String questTaskTample,HttpServletRequest request) {
        JSONObject questtasktample = JSONObject.parseObject(questTaskTample);
        // 请求参数
        String ftpItemJson = questtasktample.getString("ftpItemJson");
        // 请求参数为{"taskId":"12"}
        String ftpItemJson = request.getParameter("ftpItemJson");
        if (logger.isDebugEnabled()) {
            logger.debug("---【PrvncFtpToFileSystemConfigAction.queryFtpItemByTaskId】入参为:" + ftpItemJson, ftpItemJson);
        }
@@ -383,7 +380,7 @@
        Map info = new HashMap();
        info.put("domain", tample);
        List<Map> itemSpecs = getPrvncFtpFileDAO().queryItemSpec(info);
        List<Map> itemSpecs = iprvncFtpFileDAO.queryItemSpec(info);
        String taskItems = JSONObject.toJSONString(itemSpecs);
        resultMsg = this.createResultMsg("0000", "成功", "{\"U_OR_D\":\"" + tample + "\",\"TASK_ITEMS\":" + taskItems + "}");
@@ -392,16 +389,13 @@
    /**
     * 根据TaskId 获取任务属性
     *
     *
     * @return
     */
    @RequestMapping(path = "/FtpToFileSystem/queryTaskAttrs" , method = RequestMethod.POST)
    public String queryTaskAttrs(@RequestBody String queryTaskAttrsInfo,HttpServletRequest request) {
        JSONObject querytaskattrs = JSONObject.parseObject(queryTaskAttrsInfo);
    public String queryTaskAttrs(HttpServletRequest request) {
        // 请求参数为{"taskId":"12"}
        String ftpItemJson = querytaskattrs.getString("ftpItemJson");
        String ftpItemJson = request.getParameter("ftpItemJson");
        if (logger.isDebugEnabled()) {
            logger.debug("---【PrvncFtpToFileSystemConfigAction.queryTaskAttrs】入参为:" + ftpItemJson, ftpItemJson);
        }
@@ -420,7 +414,7 @@
        Map info = new HashMap();
        info.put("taskId", taskId);
        List<Map> itemAttrs = getPrvncFtpFileDAO().queryFtpItemAttrsByTaskId(info);
        List<Map> itemAttrs = iprvncFtpFileDAO.queryFtpItemAttrsByTaskId(info);
        String itemsAttrs = JSONObject.toJSONString(itemAttrs);
        resultMsg = this.createResultMsg("0000", "成功", "{\"TASK_ATTRS\":" + itemsAttrs + "}");
@@ -429,15 +423,13 @@
    /**
     * 启动侦听(多节点启动)
     *
     *
     * @return
     */
    @RequestMapping(path = "/FtpToFileSystem/startJob",method = RequestMethod.POST)
    public String startJob(@RequestBody String startInfo , HttpServletRequest request) {
    public String startJob(HttpServletRequest request) {
        JSONObject startinfo = JSONObject.parseObject(startInfo);
        // 请求参数为{"tasks":[{"taskId":1},{"taskId":2}],"state":"START"}
        String ftpItemJson = startinfo.getString("ftpItemJson");
        String ftpItemJson = request.getParameter("ftpItemJson");
        if (logger.isDebugEnabled()) {
            logger.debug("---【PrvncFtpToFileSystemConfigAction.startJob】入参为:" + ftpItemJson, ftpItemJson);
        }
@@ -482,8 +474,10 @@
        info.put("taskIds", taskIds.split(","));
        List<Map> doFtpItems = getPrvncFtpFileDAO().queryFtpItemsByTaskIds(info);
        List<Map> doFtpItems = iprvncFtpFileDAO.queryFtpItemsByTaskIds(info);
        // 获取Spring调度器
        Scheduler scheduler = (Scheduler) SpringBeanInvoker.getBean("schedulerFactoryBean");
        int linstenCount = 0;
        int updateTaskStateFailCount = 0;
        try {
@@ -504,19 +498,21 @@
                String jobName = prefixJobName + taskId;
                String triggerName = prefixJobName + taskId;
                //设置任务名称
                JobKey jobKey = new JobKey(jobName);
                JobDetail jobDetail = scheduler.getJobDetail(jobKey);
                // 说明这个没有启动,则需要重新启动,如果启动着不做处理
                JobDetail jobDetail = scheduler.getJobDetail(jobKey);                // 说明这个没有启动,则需要重新启动,如果启动着不做处理
                if (jobDetail == null) {
                    // 任务名称
                    String taskCfgName = (String) doFtpItem.get("TASKNAME");
                    //构建job信息
                    JobDetail warnJob = JobBuilder.newJob(PrvncFtpToFileSystemJob.class).withIdentity(jobName,PrvncFtpToFileSystemJob.JOB_GROUP_NAME).withDescription("任务启动").build();
                    // job.getJobDataMap().put("params", param.toString());
                    warnJob.getJobDataMap().put(PrvncFtpToFileSystemJob.JOB_DATA_CONFIG_NAME, taskCfgName);
                    JobDetail warnJob = JobBuilder.newJob(HcFtpToFileSystemJob.class).withIdentity(jobName, HcFtpToFileSystemJob.JOB_GROUP_NAME).withDescription("任务启动").build();
                    warnJob.getJobDataMap().put(PrvncFtpToFileSystemJob.JOB_DATA_TASK_ID, taskId);
                    warnJob.getJobDataMap().put(HcFtpToFileSystemJob.JOB_DATA_CONFIG_NAME, taskCfgName);
                    warnJob.getJobDataMap().put(HcFtpToFileSystemJob.JOB_DATA_TASK_ID, taskId);
                    // 触发时间点
                    CronTrigger warnTrigger = TriggerBuilder.newTrigger().withIdentity(triggerName, triggerName).withSchedule(cronScheduleBuilder).build();
@@ -532,7 +528,7 @@
                    updateTaskInfo.put("taskId", taskId);
                    updateTaskInfo.put("runFlag", RUNFLAG_START);
                    // 这里更新状态没有成功的,只是在后台打印日志,再前台不进行展示
                    int updateTaskStateFlag = getPrvncFtpFileDAO().updateFtpItemByTaskId(updateTaskInfo);
                    int updateTaskStateFlag = iprvncFtpFileDAO.updateFtpItemByTaskId(updateTaskInfo);
                    if (updateTaskStateFlag < 1) {
                        logger.error("---侦听【" + taskId + "】启动成功,但是更新任务状态失败,请关注!!!", info);
                        updateTaskStateFailCount++;
@@ -561,15 +557,13 @@
    /**
     * 停止侦听
     *
     *
     * @return
     */
    @RequestMapping(path = "/FtpToFileSystem/stopJob",method = RequestMethod.POST)
    public String stopJob(@RequestBody String stopjobInfo,HttpServletRequest request) {
    public String stopJob(HttpServletRequest request) {
        JSONObject stopjob = JSONObject.parseObject(stopjobInfo);
        // 请求参数为{"tasks":[{"taskId":1},{"taskId":2}],"state":"STOP"}
        String ftpItemJson = stopjob.getString("ftpItemJson");
        String ftpItemJson = request.getParameter("ftpItemJson");
        if (logger.isDebugEnabled()) {
            logger.debug("---【PrvncFtpToFileSystemConfigAction.stopJob】入参为:" + ftpItemJson, ftpItemJson);
        }
@@ -614,7 +608,10 @@
        info.put("taskIds", taskIds.split(","));
        List<Map> doFtpItems = getPrvncFtpFileDAO().queryFtpItemsByTaskIds(info);
        List<Map> doFtpItems = iprvncFtpFileDAO.queryFtpItemsByTaskIds(info);
        // 获取Spring调度器
        Scheduler scheduler = (Scheduler) SpringBeanInvoker.getBean("schedulerFactoryBean");
        int linstenCount = 0;
        int updateTaskStateFailCount = 0;
@@ -630,13 +627,14 @@
                String jobName = prefixJobName + taskId;
                String triggerName = prefixJobName + taskId;
                TriggerKey triggerKey = TriggerKey.triggerKey(jobName,PrvncFtpToFileSystemJob.JOB_GROUP_NAME);
                TriggerKey triggerKey = TriggerKey.triggerKey(jobName, HcFtpToFileSystemJob.JOB_GROUP_NAME);
                // 停止触发器
                scheduler.pauseTrigger(triggerKey);
                // 移除触发器
                scheduler.unscheduleJob(triggerKey);
                JobKey jobKey = new JobKey(jobName,PrvncFtpToFileSystemJob.JOB_GROUP_NAME);
                JobKey jobKey = new JobKey(jobName, HcFtpToFileSystemJob.JOB_GROUP_NAME);
                // 删除任务
                scheduler.deleteJob(jobKey);
                // 修改数据状态,将任务数据状态改为运行状态
@@ -646,7 +644,7 @@
                updateTaskInfo.put("taskId", taskId);
                updateTaskInfo.put("runFlag", RUNFLAG_STOP);
                // 这里更新状态没有成功的,只是在后台打印日志,再前台不进行展示
                int updateTaskStateFlag = getPrvncFtpFileDAO().updateFtpItemByTaskId(updateTaskInfo);
                int updateTaskStateFlag = iprvncFtpFileDAO.updateFtpItemByTaskId(updateTaskInfo);
                if (updateTaskStateFlag < 1) {
                    logger.error("---侦听【" + taskId + "】停止成功,但是更新任务状态失败,请关注!!!", info);
                    updateTaskStateFailCount++;
@@ -674,13 +672,12 @@
    /**
     * 根据任务名称或任务ID模糊查询
     *
     *
     * @return
     */
    @RequestMapping(path = "/FtpToFileSystem/searchTaskByNameOrId" , method = RequestMethod.POST)
    public String searchTaskByNameOrId(@RequestBody String searchTaskByNameOrIdInfo,HttpServletRequest request) {
        JSONObject searchTaskByNameOrIdObj = JSONObject.parseObject(searchTaskByNameOrIdInfo);
        String ftpItemJson = searchTaskByNameOrIdObj.getString("ftpItemJson");
    public String searchTaskByNameOrId(HttpServletRequest request) {
        String ftpItemJson = request.getParameter("ftpItemJson");
        JSONObject ftpItemJsonObj = null;
        try {
            // 校验格式是否正确
@@ -708,7 +705,7 @@
        if (GenericValidator.isInt(taskNameOrTaskId) || GenericValidator.isLong(taskNameOrTaskId)) {
            // 根据taskId 查询记录
            paramIn.put("taskId", taskNameOrTaskId);
            Map ftpItem = getPrvncFtpFileDAO().queryFtpItemByTaskId(paramIn);
            Map ftpItem = iprvncFtpFileDAO.queryFtpItemByTaskId(paramIn);
            if (ftpItem != null && ftpItem.containsKey("FTP_ITEM_ATTRS")) {
                ftpItem.remove("FTP_ITEM_ATTRS");// 前台暂时用不到,所以这里将属性移除
@@ -716,7 +713,7 @@
                ftpItems.add(ftpItem);
            }
        } else {
            ftpItems = getPrvncFtpFileDAO().searchFtpItemByTaskName(paramIn);
            ftpItems = iprvncFtpFileDAO.searchFtpItemByTaskName(paramIn);
        }
        JSONArray rows = new JSONArray();
@@ -737,7 +734,7 @@
    /**
     * 创建公用输出
     *
     *
     * @return
     */
    private JSONObject createResultMsg(String resultCode, String resultMsg, String resultInfo) {
@@ -746,13 +743,6 @@
        data.put("RESULT_MSG", resultMsg);
        data.put("RESULT_INFO", resultInfo);
        return data;
    }
    public IPrvncFtpFileDAO getPrvncFtpFileDAO() {
        if (this.iprvncFtpFileDAO == null) {
            this.iprvncFtpFileDAO = ((IPrvncFtpFileDAO) SpringBeanInvoker.getBean("provInner.PrvncFtpFileDAO"));
        }
        return iprvncFtpFileDAO;
    }
}
JobService/src/main/java/com/java110/job/controller/JobController.java
@@ -1,24 +1,32 @@
package com.java110.job.controller;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.base.controller.BaseController;
import com.java110.job.Api.HcFtpToFileSystemConfigAction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
/**
 * 首页登陆控制类
 * 首页控制类
 * 20190813
 * 师延俊
 */
@Controller
@RequestMapping(path = "/HcFtpToFileSystemConfigList")
public class JobController extends BaseController {
    private static final Logger logger = LoggerFactory.getLogger(JobController.class);
    @Autowired
    HcFtpToFileSystemConfigAction ftpToFileSystemConfigAction;
    /**
@@ -26,11 +34,34 @@
     *
     * @return 页面名称
     */
    @RequestMapping(path = "/FtpToFileSystemConfigList")
    @RequestMapping(path = "/")
    public ModelAndView flow() {
        logger.debug("请求流程 {},{}", new StringBuffer("prvncFtpToFileSystem"), new Date());
        return new ModelAndView("prvncFtpToFileSystemConfigList");
        logger.debug("请求流程 {},{}", new StringBuffer("首页我进来了"), new Date());
        return new ModelAndView("HcFtpToFileSystemConfigList");
    }
    /**
     * 页面载入时加载
     * @return
     */
    @RequestMapping(path = "/queryFtpItems")
    @ResponseBody
    public String queryFtpItems(HttpServletRequest request) {
        logger.debug("请求流程 {},{}", new StringBuffer("queryFtpItems  我看到请求了"), new Date());
        JSONObject JSON = ftpToFileSystemConfigAction.queryFtpItems(request);
        return JSON.toJSONString();
    }
    /**
     *  点击保存按钮时
     * @return
     */
    @RequestMapping(path = "/addFtpItem")
    @ResponseBody
    public String addFtpItem(HttpServletRequest request) {
        logger.debug("请求流程 {},{}", new StringBuffer("addFtpItem  我看到请求了"), new Date());
        JSONObject JSON = ftpToFileSystemConfigAction.addFtpItem(request);
        return JSON.toJSONString();
    }
}
JobService/src/main/java/com/java110/job/dao/IHccFtpFileDAO.java
File was renamed from JobService/src/main/java/com/java110/job/dao/IPrvncFtpFileDAO.java
@@ -5,7 +5,7 @@
import java.util.List;
import java.util.Map;
public interface IPrvncFtpFileDAO {
public interface IHccFtpFileDAO {
    /**
JobService/src/main/java/com/java110/job/dao/impl/HcFtpFileDAOImpl.java
New file
@@ -0,0 +1,223 @@
package com.java110.job.dao.impl;
import com.java110.core.base.dao.BaseServiceDao;
import com.java110.job.dao.IHccFtpFileDAO;
import com.java110.job.model.FtpTaskLog;
import com.java110.job.model.FtpTaskLogDetail;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service("IPrvncFtpFileDAO")
@Transactional
public class HcFtpFileDAOImpl extends BaseServiceDao implements IHccFtpFileDAO {
    public long saveTaskRunLog(FtpTaskLog loginfo){
        // TODO Auto-generated method stub
        return sqlSessionTemplate.insert("IPrvncFtpFileDAO.saveTaskRunLog",loginfo);
    }
    public void updateTaskRunLog(FtpTaskLog loginfo){
        // TODO Auto-generated method stub
        sqlSessionTemplate.update("IPrvncFtpFileDAO.updateTaskRunLog",loginfo);
    }
    public int saveTaskRunDetailLog(FtpTaskLogDetail logdetail){
        // TODO Auto-generated method stub
        return sqlSessionTemplate.insert("IPrvncFtpFileDAO.saveTaskRunDetailLog",logdetail);
    }
    @Override
    public List execConfigSql(String dbsql){
        return  sqlSessionTemplate.selectList("IPrvncFtpFileDAO.execConfigSql", dbsql);
    }
    /**
     * 查询文件下载在文件系统的配置任务列表
     * @param info
     * @return
     */
    public Map queryFtpItems(Map info){
        Map resultInfo = new HashMap();
        //1.0查询总数
        Integer allCNT = (Integer) sqlSessionTemplate.selectOne("IPrvncFtpFileDAO.queryFtpItemsCount", info);
        resultInfo.put("ITEMSCOUNT", allCNT);
        List datas = sqlSessionTemplate.selectList("IPrvncFtpFileDAO.queryFtpItems",info);
        resultInfo.put("DATA", datas);
        return resultInfo;
    }
    /**
     * 创建taskId
     * @return
     */
    public long newCreateTaskId(){
        Long tastId = (Long) sqlSessionTemplate.selectOne("IPrvncFtpFileDAO.newCreateTaskId");
        return tastId;
    }
    /**
     * 保存文件下载配置
     * @param info
     * @return
     */
    public int addFtpItem(Map info){
//        return  Integer.parseInt(sqlSessionTemplate.insert("IPrvncFtpFileDAO.addFtpItem", info).toString());
        sqlSessionTemplate.insert("IPrvncFtpFileDAO.addFtpItem", info);
        return 1;
    }
    /**
     * 根据TaskId 查询ftp配置信息
     * @param info
     * @return
     */
    public Map queryFtpItemByTaskId(Map info){
        Object data = sqlSessionTemplate.selectOne("IPrvncFtpFileDAO.queryFtpItemByTaskId", info);
        Map ftpItem = null ;
        if(data != null){
            ftpItem = (Map)data;
            //查ftpitem属性
            List<Map> ftpItemAttrs = sqlSessionTemplate.selectList("IPrvncFtpFileDAO.queryFtpItemAttrsByTaskId",info);
            ftpItem.put("FTP_ITEM_ATTRS", ftpItemAttrs);
        }
        return ftpItem;
    }
    /**
     * 根据任务名称搜素
     * @param info
     * @return
     */
    public List<Map> searchFtpItemByTaskName(Map info){
        return sqlSessionTemplate.selectList("IPrvncFtpFileDAO.searchFtpItemByTaskName",info);
    }
    /**
     * 修改ftp配置信息
     * @param info
     * @return
     */
    public int updateFtpItemByTaskId(Map info){
        return sqlSessionTemplate.update("IPrvncFtpFileDAO.updateFtpItemByTaskId", info);
    }
    /**
     * 删除ftp配置信息
     * @param info
     * @return
     */
    public int deleteFtpItemByTaskId(Map info){
        return sqlSessionTemplate.update("IPrvncFtpFileDAO.deleteFtpItemByTaskId", info);
    }
    /**
     * 根据taskids 获取将要操作的ftp配置信息
     * @param info
     * @return
     */
    public List<Map> queryFtpItemsByTaskIds(Map info){
        return sqlSessionTemplate.selectList("IPrvncFtpFileDAO.queryFtpItemsByTaskIds",info);
    }
    /**
     * 查询FTPItem的属性信息
     * @param info
     * @return
     */
    public List<Map> queryFtpItemAttrsByTaskId(Map info){
        return sqlSessionTemplate.selectList("IPrvncFtpFileDAO.queryFtpItemAttrsByTaskId",info);
    }
    /**
     * 删除属性
     * @param info
     * @return
     */
    public int deleteFtpItemAttrsbyTaskId(Map info){
        return sqlSessionTemplate.delete("IPrvncFtpFileDAO.deleteFtpItemAttrsbyTaskId", info);
    }
    @Override
    public List<Map> queryTableColInfo(String tablename, String colnames) {
        // TODO Auto-generated method stub
        Map para=new HashMap();
        if(tablename.indexOf(".")>0){
            String username=tablename.substring(0,tablename.indexOf("."));
            tablename=tablename.substring(tablename.indexOf(".")+1);
            para.put("username", username.toUpperCase());
        }
        para.put("tablename", tablename.toUpperCase());
        para.put("colnames", "'"+colnames.toUpperCase().replaceAll(",", "','")+"'");
        return sqlSessionTemplate.selectList("IPrvncFtpFileDAO.queryTableColInfo",para);
    }
    /**
     * 保存FTPItem的属性信息
     * @return
     */
    public int addFtpItemAttrs(List<Map> infos){
        for(Map info :infos){
            sqlSessionTemplate.insert("IPrvncFtpFileDAO.addFtpItemAttrs",info);
        }
        return 1;
    }
    /**
     * 查询没有下载过的文件名
     * @param info
     * @return
     */
    public List<Map> queryFileNamesWithOutFtpLog(Map info){
        return sqlSessionTemplate.selectList("IPrvncFtpFileDAO.queryFileNamesWithOutFtpLog",info);
    }
    /**
     * 查询ItemSpec
     * @param info
     * @return
     */
    public List<Map> queryItemSpec(Map info){
        return sqlSessionTemplate.selectList("IPrvncFtpFileDAO.queryItemSpec",info);
    }
    /**
     * 修改ftp配置信息(状态)
     * @param info
     * @return
     */
    public int updateFtpItemRunState(Map info){
        return sqlSessionTemplate.update("IPrvncFtpFileDAO.updateFtpItemRunState", info);
    }
    /**
     * 保存下载文件名称
     * @param info
     * @return
     */
    public int addDownloadFileName(Map info){
//        return  Integer.parseInt(getSqlMapClientTemplate().insert("IPrvncFtpFileDAO.addDownloadFileName", info).toString());
        return  sqlSessionTemplate.insert("IPrvncFtpFileDAO.addDownloadFileName", info);
    }
    /**
     * 执行存过,处理任务执行前后的事情
     */
    public void saveDbFunction(String function){
        Map para=new HashMap();
        para.put("functionname", function);
        sqlSessionTemplate.selectOne("IPrvncFtpFileDAO.calltaskfunction",para);
    }
    /**
     * 执行存过(带参数),处理任务执行前后的事情
     */
    public void saveDbFunctionWithParam(Map info){
        sqlSessionTemplate.selectOne("IPrvncFtpFileDAO.calltaskfunctionwithparam",info);
    }
    public void insertFileData2Table(String insertSQL){
        // TODO Auto-generated method stub
        sqlSessionTemplate.update("IPrvncFtpFileDAO.insertFileData2Table",insertSQL);
    }
}
JobService/src/main/java/com/java110/job/dao/impl/PrvncFtpFileDAOImpl.java
File was deleted
JobService/src/main/java/com/java110/job/smo/DownloadFileFromFtpToTable.java
@@ -22,7 +22,7 @@
 * @author wuxw7 2016-01-04
 * 
 */
public class DownloadFileFromFtpToTable extends PrvncFtpToFileSystemQuartz {
public class DownloadFileFromFtpToTable extends HcFtpToFileSystemQuartz {
    private static final String ITEM_SPEC_CD_10011 = "10011";// FTP地址
    private static final String ITEM_SPEC_CD_10012 = "10012";// FTP端口号
JobService/src/main/java/com/java110/job/smo/HcFtpToFileSystemQuartz.java
File was renamed from JobService/src/main/java/com/java110/job/smo/PrvncFtpToFileSystemQuartz.java
@@ -2,7 +2,7 @@
import com.java110.common.constant.RuleDomain;
import com.java110.common.util.DateUtil;
import com.java110.common.util.StringUtil;
import com.java110.job.dao.IPrvncFtpFileDAO;
import com.java110.job.dao.IHccFtpFileDAO;
import com.java110.job.model.FtpTaskLog;
import com.java110.job.model.FtpTaskLogDetail;
@@ -24,13 +24,13 @@
 * @author wuxw7 add by 2016-01-03
 * 
 */
public abstract class PrvncFtpToFileSystemQuartz {
public abstract class HcFtpToFileSystemQuartz {
    protected static final Logger logger = LoggerFactory.getLogger(PrvncFtpToFileSystemQuartz.class);
    protected static final Logger logger = LoggerFactory.getLogger(HcFtpToFileSystemQuartz.class);
    @Autowired
    private IPrvncFtpFileDAO iprvncFtpFileDAO;
    private IHccFtpFileDAO iprvncFtpFileDAO;
    @Autowired
    private IPrvncFtpFileSMO iprvncFtpFileSMO;
    private IHcFtpFileSMO iprvncFtpFileSMO;
    /*private IPrvncDumpSMO prvncDumpSMO;*/
    // 运行状态,R:正在执行 T:等待运行 TD1:文件下载失败 TD2:文件内容保存失败 TU1:数据文件生成失败 TU2:数据文件上传失败
@@ -349,19 +349,19 @@
    }
    public IPrvncFtpFileDAO getPrvncFtpFileDAO() {
    public IHccFtpFileDAO getPrvncFtpFileDAO() {
        return iprvncFtpFileDAO;
    }
    public void setPrvncFtpFileDAO(IPrvncFtpFileDAO prvncFtpFileDAO) {
    public void setPrvncFtpFileDAO(IHccFtpFileDAO prvncFtpFileDAO) {
        this.iprvncFtpFileDAO = prvncFtpFileDAO;
    }
    public IPrvncFtpFileSMO getPrvncFtpFileSMO() {
    public IHcFtpFileSMO getPrvncFtpFileSMO() {
        return iprvncFtpFileSMO;
    }
    public void setPrvncFtpFileSMO(IPrvncFtpFileSMO prvncFtpFileSMO) {
    public void setPrvncFtpFileSMO(IHcFtpFileSMO prvncFtpFileSMO) {
        this.iprvncFtpFileSMO = prvncFtpFileSMO;
    }
JobService/src/main/java/com/java110/job/smo/IHcFtpFileBMO.java
File was renamed from JobService/src/main/java/com/java110/job/smo/IPrvncFtpFileBMO.java
@@ -3,7 +3,7 @@
import com.java110.job.model.*;
import java.util.Map;
public interface IPrvncFtpFileBMO {
public interface IHcFtpFileBMO {
    /**
     * 保存执行任务的日志,任务的执行状态
JobService/src/main/java/com/java110/job/smo/IHcFtpFileSMO.java
File was renamed from JobService/src/main/java/com/java110/job/smo/IPrvncFtpFileSMO.java
@@ -10,7 +10,7 @@
 * @author 师延俊
 * @version
 */  
public interface IPrvncFtpFileSMO {
public interface IHcFtpFileSMO {
    /**
     * 保存执行任务的日志,任务的执行状态
JobService/src/main/java/com/java110/job/smo/impl/PrvncFtpFileBMOImpl.java
@@ -1,8 +1,8 @@
package com.java110.job.smo.impl;
import com.java110.job.dao.IPrvncFtpFileDAO;
import com.java110.job.dao.IHccFtpFileDAO;
import com.java110.job.model.*;
import com.java110.job.smo.IPrvncFtpFileBMO;
import com.java110.job.smo.IHcFtpFileBMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -10,9 +10,9 @@
import java.util.Map;
@Service("prvncFtpFileBMOImpl")
@Transactional
public class PrvncFtpFileBMOImpl implements IPrvncFtpFileBMO {
public class PrvncFtpFileBMOImpl implements IHcFtpFileBMO {
    @Autowired
    private IPrvncFtpFileDAO iprvncFtpFileDAO;
    private IHccFtpFileDAO iprvncFtpFileDAO;
    @Override
    public long saveTaskRunLog(FtpTaskLog loginfo) {
JobService/src/main/java/com/java110/job/smo/impl/PrvncFtpFileSMOImpl.java
@@ -1,8 +1,8 @@
package com.java110.job.smo.impl;
import com.java110.job.model.*;
import com.java110.job.smo.IPrvncFtpFileBMO;
import com.java110.job.smo.IPrvncFtpFileSMO;
import com.java110.job.smo.IHcFtpFileBMO;
import com.java110.job.smo.IHcFtpFileSMO;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -12,11 +12,11 @@
import java.util.Map;
@Service("prvncFtpFileSMOImpl")
@Transactional
public class PrvncFtpFileSMOImpl implements IPrvncFtpFileSMO {
public class PrvncFtpFileSMOImpl implements IHcFtpFileSMO {
    /** logger */  
    protected final Logger log= Logger.getLogger(getClass());
    @Autowired
    private IPrvncFtpFileBMO iPrvncFtpFileBMO;
    private IHcFtpFileBMO iPrvncFtpFileBMO;
    @Override
    public long saveTaskRunLog(FtpTaskLog loginfo) {
JobService/src/main/java/com/java110/job/task/HcFtpToFileSystemJob.java
File was renamed from JobService/src/main/java/com/java110/job/task/PrvncFtpToFileSystemJob.java
@@ -1,8 +1,8 @@
package com.java110.job.task;
import com.java110.common.util.SpringBeanInvoker;
import com.java110.job.dao.IPrvncFtpFileDAO;
import com.java110.job.smo.PrvncFtpToFileSystemQuartz;
import com.java110.job.dao.IHccFtpFileDAO;
import com.java110.job.smo.HcFtpToFileSystemQuartz;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@@ -21,17 +21,17 @@
 *
 */
public class PrvncFtpToFileSystemJob implements Job {
public class HcFtpToFileSystemJob implements Job {
    private static final Logger logger = LoggerFactory.getLogger(PrvncFtpToFileSystemJob.class);
    private static final Logger logger = LoggerFactory.getLogger(HcFtpToFileSystemJob.class);
    public static String JOB_DATA_CONFIG_NAME = "ftpToFileSystemTaskName";
    public static String JOB_DATA_TASK_ID = "ftpToFileSystemTaskID";
    public static String JOB_GROUP_NAME = "ftpToFileSystemJobGroup"; // 任务的 分组名称
    @Autowired
    private IPrvncFtpFileDAO prvncFtpFileDAO;
    private IHccFtpFileDAO prvncFtpFileDAO;
    @Autowired
    private PrvncFtpToFileSystemQuartz prvncDumpQuartz;
    private HcFtpToFileSystemQuartz prvncDumpQuartz;
    protected void executeInternal(JobExecutionContext context) {
        try {
@@ -56,7 +56,7 @@
            }
            String dealClass = ftpItemConfigInfo.get("DEAL_CLASS").toString();
            prvncDumpQuartz = (PrvncFtpToFileSystemQuartz) SpringBeanInvoker.getBean(dealClass);
            prvncDumpQuartz = (HcFtpToFileSystemQuartz) SpringBeanInvoker.getBean(dealClass);
            prvncDumpQuartz.startFtpTask(ftpItemConfigInfo);
        } catch (Throwable ex) {
            logger.error("执行任务失败:", ex);
@@ -81,9 +81,9 @@
        return ftpItem;
    }
    public IPrvncFtpFileDAO getPrvncFtpFileDAO() {
    public IHccFtpFileDAO getPrvncFtpFileDAO() {
        if (this.prvncFtpFileDAO == null) {
            this.prvncFtpFileDAO = ((IPrvncFtpFileDAO) SpringBeanInvoker
            this.prvncFtpFileDAO = ((IHccFtpFileDAO) SpringBeanInvoker
                    .getBean("provInner.PrvncFtpFileDAO"));
        }
        return prvncFtpFileDAO;
JobService/src/main/java/com/java110/job/util/FTPClientTemplate.java
@@ -1,9 +1,9 @@
package com.java110.job.util;
import com.java110.common.util.SpringBeanInvoker;
import com.java110.job.dao.IPrvncFtpFileDAO;
import com.java110.job.dao.IHccFtpFileDAO;
import com.java110.job.model.FtpTaskLogDetail;
import com.java110.job.smo.IPrvncFtpFileSMO;
import com.java110.job.smo.IHcFtpFileSMO;
import org.apache.commons.net.PrintCommandListener;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
@@ -48,9 +48,9 @@
    private String transferflag;                                            //传输类型
    private Map threadpara;                                                //线程执行参数
    @Autowired
    private IPrvncFtpFileDAO prvncFtpFileDAO;
    private IHccFtpFileDAO prvncFtpFileDAO;
    @Autowired
    private IPrvncFtpFileSMO prvncFtpFileSMO;
    private IHcFtpFileSMO prvncFtpFileSMO;
    public static String SPECIAL_SINGLESPLIT_a="+*|";                                        //字符串分隔符特殊字符需要用加"\\"来转译
    //传输类型(“U"是上传      upload     ”D“是下载   download)
    public static class TransferType{
@@ -104,8 +104,8 @@
        init();
    }
    private void init(){
        this.prvncFtpFileDAO = ((IPrvncFtpFileDAO) SpringBeanInvoker.getBean("provInner.PrvncFtpFileDAO"));
        this.prvncFtpFileSMO=((IPrvncFtpFileSMO) SpringBeanInvoker.getBean("provInner.PrvncFtpFileSMO"));
        this.prvncFtpFileDAO = ((IHccFtpFileDAO) SpringBeanInvoker.getBean("provInner.PrvncFtpFileDAO"));
        this.prvncFtpFileSMO=((IHcFtpFileSMO) SpringBeanInvoker.getBean("provInner.PrvncFtpFileSMO"));
    }
    public Map call() throws Exception {
        Map result=null;
JobService/src/main/resources/static/css/HcFtpToFileSystemConfigList.css
JobService/src/main/resources/static/js/HcFtpToFileSystemConfigList.js
File was renamed from JobService/src/main/resources/static/js/prvncFtpToFileSystemConfigList.js
@@ -1,6 +1,6 @@
$(document).ready(function(){
  // 开始加载数据(任务数据)
    //loadTaskData();
    loadTaskData();
});
/**
 * 加载任务数据(分页查询)
@@ -8,7 +8,7 @@
function loadTaskDataPage(curPage){
    $.ajax({
          type: 'POST',
          url: '../FtpToFileSystem_queryFtpItems.action',
          url: '/FtpToFileSystemConfigList/queryFtpItems',
          data: {
            curPage:curPage
          },
@@ -505,6 +505,9 @@
    }
    var taskTample = obj.value;
    if ('U' == taskTample){
        return "改功能未开放请等待!!!!!!!!!!!!!!";
    }
    var requestParam = "{'uOrD':'"+taskTample+"'}";
    // 请求处理
@@ -584,7 +587,7 @@
    var uOrDNew = $('#uOrD'+doType).val();
    var fileNameNew = $('#fileName'+doType).val();
    var taskId = -1;
    var url = "../FtpToFileSystem_addFtpItem.action";// 新增时的URL
    var url = "/FtpToFileSystemConfigList/addFtpItem";// 新增时的URL
    if(doType == 'Edit'){
        url = '../FtpToFileSystem_editFtpItem.action';// 编辑时的URL
        taskId = $('#taskId'+doType).val();
JobService/src/main/resources/templates/HcFtpToFileSystemConfigList.html
File was renamed from JobService/src/main/resources/templates/prvncFtpToFileSystemConfigList.html
@@ -4,7 +4,7 @@
        <title>通用FTP数据文件与TFS传接</title>
        <!--    <link rel="stylesheet" href="../ftpcss/bootstrap-combined.min.css"/>-->
        <link rel="stylesheet" type="text/css" href="../css/bootstrap.min.css" />
        <link rel="stylesheet" type="text/css" href="../css/prvncFtpToFileSystemConfigList.css" />
        <link rel="stylesheet" type="text/css" href="../css/HcFtpToFileSystemConfigList.css" />
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
@@ -267,9 +267,6 @@
                                <div class="col-md-8">
                                    <select class="form-control" name="uOrDNew" id="uOrDNew"
                                        onchange="queryTaskAttr(this,'New')">
                                        <option value="D">
                                            FTP文件保存至TFS
                                        </option>
                                        <option value="U">
                                            TFS文件保存至FTP
                                        </option>
@@ -541,6 +538,6 @@
        <script type="text/javascript" src="../js/bootstrap.min.js"></script>
        <script type="text/javascript" src="../js/bootstrap-paginator.js"></script>
        <script type="text/javascript"
            src="../js/prvncFtpToFileSystemConfigList.js"></script>
            src="../js/HcFtpToFileSystemConfigList.js"></script>
    </body>
</html>
java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java
@@ -82,6 +82,8 @@
    public static final String CODE_PREFIX_demoId="90";
    public static final String CODE_PREFIX_noticeId="96";
    public static final String CODE_PREFIX_HCJOBId="96";
    //BUSINESSTYPE
    public static final String CODE_PREFIX_id="99";
    public static final String CODE_PREFIX_service_id="98";
java110-db/src/main/resources/mapper/job/IHcFtpFileDAO.xml
File was renamed from java110-db/src/main/resources/mapper/job/PrvncFtpFileDAO.xml
@@ -2,7 +2,7 @@
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="prvncFtpFileDAOImpl">
<mapper namespace="IHcFtpFileDAO">
    <insert id="insertFileData2Table" parameterType="String">
        $value$         
    </insert>
@@ -20,9 +20,41 @@
            { call ${functionname}(?,?)}
        </select>
-->
    <insert id="saveTaskRunLog"
    >
        <selectKey keyProperty="logid" resultType="long">
            <![CDATA[
            SELECT seq_cep_ftptasklog.NEXTVAL  AS logid from dual
            ]]>
        </selectKey>
        insert into
        HC_FTP_TASKLOG(logid,taskid,u_or_d,create_date,state,serverfilename,localfilename,filelength)
        values(#logid#,#taskid#,#uord#,sysdate,#state#,#serverfilename#,#localfilename#,#filelength#)
    </insert>
    <update id="updateTaskRunLog"
    >
        update HC_FTP_TASKLOG set update_date=sysdate
        <if test="state !=null and state != ''">,state = #{state}
        </if>
        where logid=#logid#
    </update>
    <insert id="saveTaskRunDetailLog">
        <selectKey keyProperty="id" resultType="long">
            <![CDATA[
            SELECT seq_cep_ftptasklogdetail.NEXTVAL  AS id from dual
            ]]>
        </selectKey>
        insert into
        HC_FTP_TASKLOG_DETAIL(id,logid,taskid,create_date,state,tnum,begin,end,data,havedown,remark,SERVERFILENAME,LOCALFILENAME)
        values(#id#,#logid#,#taskid#,sysdate,#state#,#tnum#,#begin#,#end#,#data#,#havedown#,#remark#,#serverfilename#,#localfilename#)
    </insert>
            <insert id="addFtpItem" parameterType="Map">
                insert into saop_ftp_task(taskid,
                insert into HC_FTP_TASK(taskid,
                taskname,
                file_name,
                u_or_d,
@@ -57,7 +89,7 @@
            <select id="queryTaskDetailInfo" parameterType="long"
                resultType="Map">
                select * from CEP_FTP_TASKDETAIL
                select * from HC_FTP_TASKLOG_DETAIL
                where detailid=#{value}
            </select>
            <select id="queryFtpUserInfo" parameterType="long" resultType="Map">
@@ -79,7 +111,7 @@
            <select id="queryFtpItemsCount" parameterType="Map"
                resultType="Integer">
                SELECT count(1)
                FROM SAOP_FTP_TASK A
                FROM HC_FTP_TASK A
                WHERE A.STATE = 'A'
            </select>
@@ -87,7 +119,7 @@
            <select id="queryFtpItems" parameterType="Map" resultType="Map">
            <![CDATA[
                select * from (
                SELECT rownum as rn,A.TASKID,
                 SELECT @rownum :=@rownum+1 as rn,A.TASKID,
                       A.TASKNAME,
                       A.FILE_NAME,
                       A.U_OR_D,
@@ -104,16 +136,16 @@
                       A.AFTERFUNCTION,
                       A.DEAL_CLASS,
                       A.CREATE_DATE
                  FROM SAOP_FTP_TASK A
                  FROM HC_FTP_TASK A
                 WHERE A.STATE = 'A') A1
                 where  A1.rn > ((TO_NUMBER(#{curPage}) -1) * TO_NUMBER(#{pageSize})) AND A1.rn <= (TO_NUMBER(#{curPage}) * TO_NUMBER(#{pageSize}))
                 where  1 = 1 limit #{curPage},#{pageSize}
            ]]>
            </select>
            <select id="newCreateTaskId" resultType="long">
           <!-- <select id="newCreateTaskId" resultType="long">
                    <![CDATA[
                    SELECT seq_cep_taskid.NEXTVAL  AS taskId from dual
                    ]]>
            </select>
            </select>-->
            <!-- 根据taskId 查询FtpItem 信息 -->
            <select id="queryFtpItemByTaskId" parameterType="Map"
@@ -135,7 +167,7 @@
                A.AFTERFUNCTION,
                A.DEAL_CLASS,
                A.CREATE_DATE
                FROM SAOP_FTP_TASK A
                FROM HC_FTP_TASK A
                WHERE A.STATE = 'A'
                and A.TASKID = #{taskId}
            </select>
@@ -160,7 +192,7 @@
                A.AFTERFUNCTION,
                A.DEAL_CLASS,
                A.CREATE_DATE
                FROM SAOP_FTP_TASK A
                FROM HC_FTP_TASK A
                WHERE A.STATE = 'A'
                and A.TASKNAME like '%' || #{taskName} || '%'
                and rownum < 1000
@@ -168,7 +200,7 @@
            </select>
            <!-- 修改ftp配置信息 -->
            <update id="updateFtpItemByTaskId" parameterType="Map">
                update saop_ftp_task sft
                update HC_FTP_TASK sft
                set update_date = sysdate
                <if test="taskName !=null and taskName != ''">,sft.taskname = #{taskName}
                </if>
@@ -200,7 +232,7 @@
            <!-- 修改ftp配置信息 -->
            <update id="updateFtpItemRunState" parameterType="Map">
                update
                saop_ftp_task sft
                HC_FTP_TASK sft
                set update_date = sysdate,sft.run_state= #{runState}
                where sft.run_state = #{oldRunState}
            </update>
@@ -208,7 +240,7 @@
            <!-- 删除ftp配置信息 -->
            <update id="deleteFtpItemByTaskId" parameterType="Map">
                update
                saop_ftp_task sft
                HC_FTP_TASK sft
                set sft.state = 'R'
                where sft.state = 'A'
                and sft.taskid in
@@ -236,7 +268,7 @@
                A.AFTERFLAG,
                A.AFTERFUNCTION,
                A.DEAL_CLASS
                FROM SAOP_FTP_TASK A
                FROM HC_FTP_TASK A
                WHERE A.STATE = 'A'
                AND A.TASKID in
                <foreach open="(" close=")"
@@ -248,13 +280,13 @@
            <select id="queryFtpItemAttrsByTaskId" parameterType="Map"
                resultType="Map">
                SELECT A.TASKID, A.ITEM_SPEC_ID, A.VALUE
                FROM SAOP_FTP_TASK_ATTR A
                FROM HC_FTP_TASK_ATTR A
                WHERE A.TASKID = #{taskId}
            </select>
            <!-- 保存FTPItem的属性信息 -->
            <insert id="addFtpItemAttrs" parameterType="Map">
                insert into
                SAOP_FTP_TASK_ATTR(taskid,item_spec_id,value)
                HC_FTP_TASK_ATTR(taskid,item_spec_id,value)
                values(#{taskId},#{itemSpecId},#{value})
            </insert>
            <!-- 查询没有下载过的文件名 -->
@@ -289,7 +321,7 @@
            <select id="queryItemSpec" parameterType="Map" resultType="Map">
                select a.item_spec_cd, a.domain, a.name, a.describe, a.create_date
                select a.item_spec_cd, a.domain, a.name, a.describes, a.create_date
                from saop_ftp_item_spec a
                where a.status_cd = '0'
                <if test="domain != null and domain !='' "> and a.domain = #{domain}</if>