当前位置: 首页 > news >正文

网站运营推广怎么做/seo专业培训技术

网站运营推广怎么做,seo专业培训技术,宁波静态网站网页建设,设计公司工作室创业规划最近在做一个项目管理的项目,主要是将用户在project文件中写的一些东西,读出来,并将其写入到数据库中。 也是借鉴了好多大佬的思想和代码,感觉自己需要整理一遍,所以,接下来就是表演的时候了。 第一步&…

最近在做一个项目管理的项目,主要是将用户在project文件中写的一些东西,读出来,并将其写入到数据库中。

也是借鉴了好多大佬的思想和代码,感觉自己需要整理一遍,所以,接下来就是表演的时候了。

第一步:首先创建一个实体类TaskInfo,这个类的作用就是将原本project文件中读取出的内置Task填充到自己的TaskInfo中进行处理。

还有这里用的jar包是mpxj。

package com.mammoth.entity;import java.util.Date;public class TaskInfo {private int project_id;                         // 所属项目IDprivate int task_id;                            // 任务IDprivate int task_unique_id;                     // 任务唯一IDprivate String parent_id;                       // 父任务IDprivate String task_type;                       // 任务类型(FS,SS,FF,SF)private int task_outline_level;                 // 任务级别private String task_name;                       // 任务名称private double task_duration;                   // 任务工期private String task_start_date;                  // 任务开始时间private String task_finish_date;                 // 任务结束时间private String task_predecessors;               // 任务流private String task_operator;                   // 负责人public int getProject_id() {return project_id;}public void setProject_id(int project_id) {this.project_id = project_id;}public int getTask_id() {return task_id;}public void setTask_id(int task_id) {this.task_id = task_id;}public int getTask_unique_id() {return task_unique_id;}public void setTask_unique_id(int task_unique_id) {this.task_unique_id = task_unique_id;}public String getParent_id() {return parent_id;}public void setParent_id(String parent_id) {this.parent_id = parent_id;}public String getTask_type() {return task_type;}public void setTask_type(String task_type) {this.task_type = task_type;}public int getTask_outline_level() {return task_outline_level;}public void setTask_outline_level(int task_outline_level) {this.task_outline_level = task_outline_level;}public String getTask_name() {return task_name;}public void setTask_name(String task_name) {this.task_name = task_name;}public double getTask_duration() {return task_duration;}public void setTask_duration(double task_duration) {this.task_duration = task_duration;}public String getTask_start_date() {return task_start_date;}public void setTask_start_date(String task_start_date) {this.task_start_date = task_start_date;}public String getTask_finish_date() {return task_finish_date;}public void setTask_finish_date(String task_finish_date) {this.task_finish_date = task_finish_date;}public String getTask_predecessors() {return task_predecessors;}public void setTask_predecessors(String task_predecessors) {this.task_predecessors = task_predecessors;}public String getTask_operator() {return task_operator;}public void setTask_operator(String task_operator) {this.task_operator = task_operator;}@Overridepublic String toString() {return "TaskInfo [project_id=" + project_id + ", task_id=" + task_id + ", task_unique_id=" + task_unique_id+ ", parent_id=" + parent_id + ", task_type=" + task_type + ", task_outline_level=" + task_outline_level+ ", task_name=" + task_name + ", task_duration=" + task_duration + ", task_start_date="+ task_start_date + ", task_finish_date=" + task_finish_date + ", task_predecessors="+ task_predecessors + ", task_operator=" + task_operator + "]";}
}

第二步:写工具类,将mpxj jar包中的Task的对象解析出来,然后再封装到自己的TaskInfo中。

package com.mammoth.utils;import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import com.mammoth.entity.TaskInfo;import net.sf.mpxj.MPXJException;
import net.sf.mpxj.ProjectFile;
import net.sf.mpxj.Relation;
import net.sf.mpxj.Task;
import net.sf.mpxj.mpp.MPPReader;public class TaskUtils {public static List<TaskInfo> readFile(){List<TaskInfo> taskList = new ArrayList<TaskInfo>();try{    //1. 读取文件File file = new File("C:/Users/ruixuan/Desktop/测试project.mpp");MPPReader mppRead = new MPPReader();ProjectFile pf = mppRead.read(file);//2. 拿到task对象List<Task> tasks = pf.getAllTasks();//3. 遍历task对象,找到其中的值for (int i = 0; i < tasks.size(); i++) {Task task = tasks.get(i);Integer task_id = task.getID();Integer task_unique_id = task.getUniqueID();Integer task_outline_level = task.getOutlineLevel();double task_duration = task.getDuration().getDuration();Date task_start_date = task.getStart();Date task_finish_date = task.getFinish();List<Relation> task_predecessors = task.getPredecessors();                              //4. 获取前置任务(任务流)StringBuilder beforeTaskId = new StringBuilder();StringBuilder beforeTaskType = new StringBuilder();if(task_predecessors != null){if(task_predecessors.size() > 0){for(Relation relation : task_predecessors){Integer targetTaskId = relation.getTargetTask().getID();if(beforeTaskId.length() == 0){beforeTaskId.append(targetTaskId);beforeTaskType.append(relation.getType());}else{beforeTaskId.append("," + targetTaskId);beforeTaskType.append("," + relation.getType());}}}}String task_predecessors_str = beforeTaskId.toString(); String task_predecessors_str_type = beforeTaskType.toString();SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");//5. 给taskinfo实体类赋值TaskInfo taskInfo = new TaskInfo();taskInfo.setTask_id(task_id);taskInfo.setTask_unique_id(task_unique_id);taskInfo.setTask_outline_level(task_outline_level);taskInfo.setTask_duration(task_duration);taskInfo.setTask_start_date(format.format(task_start_date));taskInfo.setTask_finish_date(format.format(task_finish_date));taskInfo.setTask_predecessors(task_predecessors_str);taskInfo.setTask_type(task_predecessors_str_type);taskInfo.setTask_name(task.getName());//6.自定义列读取String task_operator = task.getText(2);taskInfo.setTask_operator(task_operator);taskList.add(taskInfo);             }               }catch (MPXJException e) {return null;  } catch (Exception e) { return null;  }       return taskList;}// NO.2 获取TaskInfo之间的父子关联关系public static List<TaskInfo> refreshTaskInfo(List<TaskInfo> taskList){List<Map<String,Integer>> tempTaskOutLine = new ArrayList<Map<String,Integer>>();for(TaskInfo taskInfo : taskList){int taskId = taskInfo.getTask_id();int taskOutLineLevel = taskInfo.getTask_outline_level();            int listSize = tempTaskOutLine.size();// 初始化taskOutLineLevelif(listSize > 2){               if(taskOutLineLevel == 1){                  for(int i=listSize;i>2;i--){tempTaskOutLine.remove(i-1);}listSize = 2;   }               }Map<String,Integer> map = new HashMap<String,Integer>();map.put("taskId", taskId);map.put("taskOutLineLevel", taskOutLineLevel);if(listSize == 0){if(taskOutLineLevel == 0){tempTaskOutLine.add(map);}else{return null;}}else{Map<String,Integer> lastMap = tempTaskOutLine.get(listSize-1);String lastTaskId = lastMap.get("taskId")+"";int lastTaskOutLineLevel = lastMap.get("taskOutLineLevel");if(taskOutLineLevel > lastTaskOutLineLevel){tempTaskOutLine.add(map);taskInfo.setParent_id(lastTaskId);}else if(taskOutLineLevel == lastTaskOutLineLevel){ tempTaskOutLine.set(taskOutLineLevel, map);Map<String,Integer> lastMap1 = tempTaskOutLine.get(taskOutLineLevel-1);String lastTaskId1 = lastMap1.get("taskId")+"";taskInfo.setParent_id(lastTaskId1);}else if(taskOutLineLevel < lastTaskOutLineLevel){                  tempTaskOutLine.set(taskOutLineLevel, map);Map<String,Integer> lastMap2 = tempTaskOutLine.get(taskOutLineLevel-1);String lastTaskId2 = lastMap2.get("taskId")+"";taskInfo.setParent_id(lastTaskId2);}}                       }taskList.remove(0);return taskList;}   
}

这里的地址我测试用的是本地的一个地址,在实际开发中会在上传的时候进行解析,拿到文件流的形式即可,接下来我会写一篇关于上传解析文件的博客,也希望大佬们多多指点

第三步:测试

package com.mammoth.test;import java.util.List;import org.junit.Test;import com.mammoth.entity.TaskInfo;
import com.mammoth.utils.TaskUtils;public class TaskTest {@Testpublic void taskTest(){
//        List<TaskInfo> lists = TaskUtils.readFile();List<TaskInfo> lists = TaskUtils.refreshTaskInfo(TaskUtils.readFile());int i = 1;for (TaskInfo taskInfo : lists) {System.out.println("第" + i + "次任务:"+ taskInfo.toString());i++;}}
}

如果可以正常运行的话,可以看到控制台打印如下内容

得到这个list集合之后 ,还不是你想干什么就干什么了。

感谢http://blog.csdn.net/loongshawn/article/details/51038051,这篇博客,感谢大佬

转载于:https://www.cnblogs.com/monco/p/7485513.html

http://www.lbrq.cn/news/958915.html

相关文章:

  • 汽配人网做网站/最新新闻摘抄
  • 怎么入侵网站后台管理/微信推广软件
  • 网站页面做海报用什么软件/seo数据统计分析工具有哪些
  • 有没有专门做化妆品小样的网站/怎么推广网站
  • 搭建网站教程/职业培训学校
  • 什么网站有项目做/广州网站优化服务商
  • 国外一个专门做配乐的网站/百度广告联盟平台官网
  • 做洁净的网站/浙江网站推广运营
  • 海口网站建设专家评价/深圳网络推广大师
  • 6617网址导航彩票网站大全/百度百度一下百度
  • 徐州 网站制作/哪些行业适合做网络推广
  • 新建网站怎么做优化/百度指数可以查询多长时间的
  • p2p的网站建设/百度推送
  • 网站被k怎么恢复/免费建网站哪家好
  • 做网站搭建的公司/天津搜索引擎seo
  • 网站流量30g/交友平台
  • 阿里云wordpress进不去/广州seo做得比较好的公司
  • 做网站谁家好/今日搜索排行榜
  • 精品网站建设费用 在线磐石网络/seo外链推广
  • 鹰潭北京网站建设/关键词推广排名
  • 北京网站设计制作教程/上海最专业的seo公司
  • 做t-shirt素材网站/网络营销课程设计
  • 公司做网站需要哪些费用/上海网站建设方案
  • 和狗做网站/关键词优化推广公司
  • 在一起做网店的网站的怎么购买/域名停靠网页推广大全2021
  • wordpress 添加首页/seo排名优化怎么样
  • 给人做时时彩网站建设/沈阳seo
  • 做风水网站赚钱吗/网站设计说明
  • 关于进一步加强门户网站建设/网络营销的三大基础
  • 腾讯客服平台/搜索引擎优化中的步骤包括
  • Ubuntu20.04 samba配置
  • 数字图像处理(三:图像如果当作矩阵,那加减乘除处理了矩阵,那图像咋变):从LED冬奥会、奥运会及春晚等等大屏,到手机小屏,快来挖一挖里面都有什么
  • 【无标题】重点阅读——如何在信息层面区分和表征卷曲维度,解析黑洞内部的维度区分机制
  • Java从入门到精通:全面学习路线指南
  • Python MCP与Excel增强智能:构建下一代数据处理和自动化解决方案
  • OllyDbg技巧学习