在前后端分离的项目中, 一般不使用 freemarker (用它,做不到前后端分离)
后端使用模板引擎去套模板,当年使用最广泛的就是jsp,freemarker等等,同时内嵌一些后端提供的模板变量和一些逻辑操作。
然后前后端集成对接,遇到问题,前台返工,后台返工。
Configuration module, there is arranged, in response to a front end
My information - Preview your resume, because window.open
{
"successful": true,
"errorCode": null,
"errorMessage": null,
"data": {
"htmlTemplate": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n <title>PDF模版</title>\n<style type=\"text/css\">\n\n body,\n html {\n font-family: \"Microsoft YaHei\";\n }\n\n .main_template_resume {}\n\n .template_resume_header {\n min-height: 126px;\n }\n\n .model_resume_header {\n text-align: left;\n height: 25px;\n }\n\n /*.model_resume_title_line {*/\n /* background-color: #FFB403;*/\n /* height: 2px;*/\n /*}*/\n\n .model_resume_title {\n font-size: 18px;\n font-weight: bold;\n color: rgba(255, 255, 255, 1);\n background-color: #FFB403;\n padding: 1px 10px;\n padding: 0 10 0 0;\n }\n\n .model_resume_content {\n padding: 20px 10px 0px;\n padding: 20 0 10 0;\n }\n\n .model_resume_table {\n border-collapse: collapse;\n table-layout: fixed;\n word-break: break-all;\n font-size: 10px;\n width: 100%;\n text-align: center;\n }\n\n .model_resume_table table td,\n .model_resume_table table th {\n text-align: center;\n text-align: center;\n word-break: break-all;\n word-wrap: break-word;\n width: 100px;\n }\n\n .model_resume_table table th {\n font-size: 12px;\n font-weight: bold;\n color: rgba(51, 51, 51, 1);\n padding: 10 0 4 0;\n padding: 10px 0 4px 0;\n\n }\n\n .model_resume_table table td {\n padding: 10 0 4 0;\n padding: 10px 0 4px 0;\n }\n\n .model_resume_row table td {\n font-size: 12px;\n font-weight: 500;\n color: #4D4D4D;\n border-width: 0 0 1 0;\n border-style: solid;\n border-color: #EBEBEB;\n border-bottom: 1px solid #EBEBEB;\n padding: 10 0 4 0;\n padding: 10px 0 4px 0;\n border-top: none;\n border-right: none;\n border-left: none;\n }\n.model_resume_table_fist{\n\n padding: 0 0 20 0;\n padding: 0 0 20px 0;\n}\n .model_resume_table table,.model_resume_table-ware table {\n width: 100%;\n\n }\n .model_resume_table-ware table td{\n width: 100px;\n }\n .model_resume_table-ware table td{\n padding: 5 4 5 4;\n padding: 5px 4px;\n text-align: left;\n }\n .model_table_label {\n font-size: 12px;\n font-weight: 500;\n color: #4D4D4D;\n }\n\n .model_table_val {\n font-size: 12px;\n font-weight: 500;\n color: rgba(51, 51, 51, 1);\n }\n\n .headermodel_resume_row {\n\n }\n .headermodel_resume_row th{\n background: #EBECF0 ;\n }\n .template_resume_header {\n background-color: #FFB403;\n }\n\n .template_resume_header table .template_resume_header_img {\n width: 110px;\n padding: 0 0 0 40px;\n padding: 0 0 0 40;\n\n\n\n }\n .template_resume_header table{\n\n }\n .template_resume_header table .template_resume_header_img img{\n\n height: 120px;\n }\n\n .template_resume_header table .template_resume_header_img div {\n width: 90px;\n height: 124px;\n padding: 2px;\n background-color: white;\n\n\n }\n\n .template_resume_header table .template_resume_header_right {\n width: 500px;\n width: calc(100% - 170px);\n text-align: left;\n }\n\n .template_resume_header_name {\n font-size: 28px;\n font-weight: bold;\n color: rgba(255, 255, 255, 1);\n padding: 8 0 0 0;\n }\n\n .template_resume_header_row {\n font-size: 14px;\n font-weight: 500;\n color: rgba(255, 255, 255, 1);\n padding: 15px 0 0 0;\n padding: 15 0 0 0;\n width: 450px;\n }\n\n .template_resume_info {\n padding: 20 0 0 0;\n padding: 20px 0 0 0;\n }\n .model_resume_title_line_header{\n height: 5px;\n background-color: #FFB403;\n\n }\n .model_resume_title_line_white{\n height: 5px;\n background-color: white;\n }\n\n</style>\n</head>\n\n<body>\n<div class=\"main_template_resume\">\n\n\n</div>\n<div style=\"width: 100%;\">\n <div class=\"model_resume_title_line_header\">\n </div>\n <div class=\"model_resume_title_line_white\"></div>\n <div class=\"template_resume_header\" style=\"\">\n\n <table>\n <tr>\n <td class=\"template_resume_header_img\">\n <div>\n <img src=\"http://hrms.crc.com.cn/hrp/static/emplPhoto/21186000/v0M8G4n7_1571241906166.jpg_148x207.jpg\"/>\n </div>\n </td>\n <td class=\"template_resume_header_right\">\n <div class=\"template_resume_header_name\">王欣乐</div>\n <div class=\"template_resume_header_row\">\n <span>集团总部\n /\n IT产品服务部</span></div>\n <div class=\"template_resume_header_row\"><span> IT产品服务部助理软件工程师\n\n /\n\n 助理经理</span></div>\n </td>\n </tr>\n </table>\n\n\n </div>\n\n\n <div class=\"info_001 template_resume_info\">\n <div class=\"model_resume_content\">\n <div class=\"model_resume_table-ware\">\n\n <table cellspacing=\"0\">\n <tr >\n <td colspan=\"3\" style=\"padding: 0 0 20 0;padding: 0 0 20px 0\">\n <img src=\"http://hrms.crc.com.cn/hrp/static/resume/personalinfo1.png\"/>\n </td>\n </tr>\n <tr>\n <td>\n <div >\n <span class=\"model_table_label\" >员工ID:</span>\n\n <span class=\"model_table_val\">21187634</span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >英文名:</span>\n\n <span class=\"model_table_val\"></span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >性别:</span>\n\n <span class=\"model_table_val\">男</span>\n\n\n\n </div>\n </td>\n </tr>\n <tr>\n <td>\n <div >\n <span class=\"model_table_label\" >出生日期:</span>\n\n <span class=\"model_table_val\">1991-10-21</span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >国籍/地区:</span>\n\n <span class=\"model_table_val\">中国大陆</span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >籍贯:</span>\n\n <span class=\"model_table_val\">陕西省渭南市</span>\n\n\n\n </div>\n </td>\n </tr>\n <tr>\n <td>\n <div >\n <span class=\"model_table_label\" >民族:</span>\n\n <span class=\"model_table_val\">汉族</span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >政治面貌:</span>\n\n <span class=\"model_table_val\">群众</span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >特长信息:</span>\n\n <span class=\"model_table_val\"></span>\n\n\n\n </div>\n </td>\n </tr>\n <tr>\n </tr>\n\n </table>\n </div>\n </div>\n </div>\n <div class=\"info_002\">\n\n <div class=\"model_resume_content\">\n <div class=\"model_resume_table-ware\" style=\"padding:0 0 0 0;padding:0 0 10px 0\">\n <table cellspacing=\"0\">\n <tr >\n <td colspan=\"2\" style=\"padding: 0 0 20 0;padding: 0 0 20px 0\">\n <img src=\"http://hrms.crc.com.cn/hrp/static/resume/workexperience1.png\"/>\n </td>\n </tr>\n <tr>\n <td><span class=\"model_table_label\">加入华润日期:</span><span class=\"model_table_val\">2019-10-16</span>\n </td>\n <td><span class=\"model_table_label\">加入集团部室/利润中心日期:</span><span class=\"model_table_val\">2019-10-16</span></td>\n </tr>\n <tr>\n <td><span class=\"model_table_label\">加入本单位日期:</span><span class=\"model_table_val\">2019-10-16</span>\n </td>\n <td><span class=\"model_table_label\">转正日期:</span><span class=\"model_table_val\"></span></td>\n </tr>\n </table>\n </div>\n <div class=\"model_resume_table model_resume_row\">\n\n <table cellspacing=\"0\">\n <tr class=\"headermodel_resume_row\">\n <th>主/兼岗</th>\n <th>生效日期</th>\n <th>操作</th>\n <th>原因</th>\n <th>职务</th>\n <th>职级</th>\n <th>部门</th>\n <th>业务单位</th>\n </tr>\n <tr>\n <td> 主岗</td>\n <td> 2019-10-16</td>\n <td> 雇用</td>\n <td> 一般正常雇用</td>\n <td> 助理软件工程师</td>\n <td> 助理经理</td>\n <td> IT产品服务部</td>\n <td> 集团总部</td>\n </tr>\n </table>\n </div>\n </div>\n </div>\n <div class=\"info_003\">\n <div class=\"model_resume_content\">\n <div class=\"model_resume_table model_resume_row\">\n <table cellspacing=\"0\">\n <tr >\n <th colspan=\"5\" style=\"padding: 0 0 20 0;padding: 0 0 20px 0\">\n <img src=\"http://hrms.crc.com.cn/hrp/static/resume/wrong_workexperience1.png\"/>\n </th>\n </tr>\n <tr class=\"headermodel_resume_row\">\n <th>开始日期</th>\n <th>结束日期</th>\n <th>原单位</th>\n <th>工作所在地</th>\n <th>最后职务</th>\n </tr>\n <tr>\n <td> 2019-07-22</td>\n <td> 2019-10-15</td>\n <td> 北京航星永智科技有限公司</td>\n <td> 中国大陆 陕西 西安市</td>\n <td> java开发工程师</td>\n </tr>\n <tr>\n <td> 2019-02-17</td>\n <td> 2019-07-19</td>\n <td> 大唐移动通信有限公司</td>\n <td> 中国大陆 陕西 西安市</td>\n <td> java开发工程师</td>\n </tr>\n <tr>\n <td> 2017-02-16</td>\n <td> 2019-01-08</td>\n <td> 上海汇纳科技股份有限公司</td>\n <td> 中国大陆 陕西 西安</td>\n <td> java开发工程师</td>\n </tr>\n </table>\n </div>\n </div>\n </div>\n\n <div class=\"info_006\">\n <div class=\"model_resume_content\">\n <div class=\"model_resume_table-ware\" >\n <table cellspacing=\"0\">\n <tr >\n <th colspan=\"2\" class=\"model_resume_table_fist_th\" style=\"padding: 0 0 20 0;padding: 0 0 20px 0\">\n <img src=\"http://hrms.crc.com.cn/hrp/static/resume/contactdetails1.png\"/>\n </th>\n </tr>\n <tr>\n <td><span class=\"model_table_label\">移动电话:</span><span class=\"model_table_val\">17719770519</span>\n </td>\n\n <td><span class=\"model_table_label\">公司邮箱:</span><span class=\"model_table_val\">[email protected]</span>\n </td>\n\n </tr>\n <tr>\n <td><span class=\"model_table_label\">办公电话:</span><span class=\"model_table_val\"></span>\n </td>\n\n <td><span class=\"model_table_label\">家庭地址:</span><span class=\"model_table_val\"></span>\n </td>\n\n </tr>\n <tr>\n </tr>\n </table>\n </div>\n\n </div>\n </div>\n <div class=\"info_009\">\n <div class=\"model_resume_content\">\n <div class=\"model_resume_table model_resume_row\">\n <table cellspacing=\"0\">\n <tr >\n <th colspan=\"11\" style=\"padding: 0 0 20 0;padding: 0 0 20px 0\">\n <img src=\"http://hrms.crc.com.cn/hrp/static/resume/eduinfo1.png\"/>\n </th>\n </tr>\n <tr class=\"headermodel_resume_row\">\n <th>开始日期</th>\n <th>结束日期</th>\n <th>学历</th>\n <th>学位</th>\n <th>最高学历</th>\n <th>第一学历</th>\n <th>教育形式</th>\n <th>国家/地区</th>\n <th>学校</th>\n <th>第一专业</th>\n <th>第二专业</th>\n </tr>\n <tr>\n <td> 2010-09-01</td>\n <td> 2014-07-30</td>\n <td> 大学本科</td>\n <td> 学士</td>\n <td> √</td>\n <td> √</td>\n <td> 全日制</td>\n <td> 中国大陆</td>\n <td> 西安石油大学</td>\n <td> 机械设计制造及其自动化</td>\n <td> </td>\n </tr>\n </table>\n </div>\n </div>\n </div>\n</div>\n</body>\n</html>",
"infoBlockList": [{
"crcOrder": "0",
"crcInfoBlock": "000",
"crcInfoblockDescr": "头部信息"
}, {
"crcOrder": "1",
"crcInfoBlock": "001",
"crcInfoblockDescr": "个人基本信息"
}, {
"crcOrder": "2",
"crcInfoBlock": "crcExprHeader",
"crcInfoblockDescr": "华润工作经历头部"
}, {
"crcOrder": "3",
"crcInfoBlock": "002",
"crcInfoblockDescr": "华润工作经历"
}, {
"crcOrder": "4",
"crcInfoBlock": "003",
"crcInfoblockDescr": "非华润工作经历"
}, {
"crcOrder": "5",
"crcInfoBlock": "006",
"crcInfoblockDescr": "联系信息"
}, {
"crcOrder": "6",
"crcInfoBlock": "009",
"crcInfoblockDescr": "教育信息"
}]
}
}
@Override
public Map getResumeHtmlTemplate(Map map) throws Exception {
TemplateInfo templateInfo = this.getResume(map);
if(null == templateInfo || CollectionUtils.isEmpty(templateInfo.getCrcTemplateDetails())){
throw new BaseException("无简历数据");
}
Map dataMap = new LinkedHashMap();
dataMap.put("data",JSONObject.parseObject(JSONObject.toJSONString(templateInfo.getCrcTemplateDetails().get(0))));
String templateFileName = "resumeTemplate.ftl";
String htmlTemplate = digitalSignServiceImpl.freeMarkerRender(dataMap,templateFileName);//根据freemarker模板渲染html文件(即将数据渲染到模板里, 并返回html字符串,最终展示在 v-html的组件里),且返回html内容(Template Configuration就是freemarker包下的类)
//重新组装报文
List<Map> infoBlockList = new ArrayList<>();
templateInfo.getCrcTemplateDetails().get(0).getInfoBlocks().stream().forEach(infoBlock -> {
Map infoBlockMap = new LinkedHashMap();
infoBlockMap.put("crcOrder",infoBlock.getCrcOrder());
infoBlockMap.put("crcInfoBlock",infoBlock.getCrcInfoBlock());
infoBlockMap.put("crcInfoblockDescr",infoBlock.getCrcInfoblockDescr());
infoBlockList.add(infoBlockMap);
});
Map resultMap = new LinkedHashMap();
resultMap.put("htmlTemplate",htmlTemplate);//这里就是返回给前端data中的数, htmlTemplate就是freemark静态化以后的产生的html字符串(已经将数据渲染到模板里了)
resultMap.put("infoBlockList",infoBlockList);//返回给前段的data
return resultMap;
}
/**
* freemarker 配置
*/
private static Configuration freemarkerCfg = null;
/**
* freemarker渲染html
* @param dataMap {"data":"实体类的json 在模板页面可以直接 ${ data.name} 使用"}
* @param templateFileName
* @return
*/
@Override
public String freeMarkerRender(Map dataMap, String templateFileName) throws Exception {
Writer out = new StringWriter();
try {
// 获取模板,并设置编码方式
this.setFreemarkerCfg();
Template template = freemarkerCfg.getTemplate(templateFileName,"UTF-8");
//将合并后的数据和模板写入到流中,这里使用的字符流
template.process(dataMap, out);//dataMap即查询数据库得到的map转为json {"data":"实体类的json 在模板页面可以直接 ${ data.name} 使用"}
out.flush();
return out.toString();
} catch (Exception e) {
logger.error("处理freemarker渲染html失败",e);
throw e;
} finally {
try {
out.close();
} catch (Exception e) {
logger.error("处理freemarker渲染html,关闭流失败",e);
throw e;
}
}
}
/**
* 设置freemarkerCfg
*/
private void setFreemarkerCfg() {
//freemarker的模板目录
freemarkerCfg = new Configuration(Configuration.VERSION_2_3_28);
try {
//freemarkerCfg.setDirectoryForTemplateLoading(new ClassPathResource("template").getFile());
//freemarkerCfg.setDirectoryForTemplateLoading(new File("D:/template"));
freemarkerCfg.setClassForTemplateLoading(this.getClass(),"/template");
} catch (Exception e) {
logger.error("处理freemarker的模板目录错误",e);
}
}
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n <title>PDF模版</title>\n<style type=\"text/css\">\n\n body,\n html {\n font-family: \"Microsoft YaHei\";\n }\n\n .main_template_resume {}\n\n .template_resume_header {\n min-height: 126px;\n }\n\n .model_resume_header {\n text-align: left;\n height: 25px;\n }\n\n /*.model_resume_title_line {*/\n /* background-color: #FFB403;*/\n /* height: 2px;*/\n /*}*/\n\n .model_resume_title {\n font-size: 18px;\n font-weight: bold;\n color: rgba(255, 255, 255, 1);\n background-color: #FFB403;\n padding: 1px 10px;\n padding: 0 10 0 0;\n }\n\n .model_resume_content {\n padding: 20px 10px 0px;\n padding: 20 0 10 0;\n }\n\n .model_resume_table {\n border-collapse: collapse;\n table-layout: fixed;\n word-break: break-all;\n font-size: 10px;\n width: 100%;\n text-align: center;\n }\n\n .model_resume_table table td,\n .model_resume_table table th {\n text-align: center;\n text-align: center;\n word-break: break-all;\n word-wrap: break-word;\n width: 100px;\n }\n\n .model_resume_table table th {\n font-size: 12px;\n font-weight: bold;\n color: rgba(51, 51, 51, 1);\n padding: 10 0 4 0;\n padding: 10px 0 4px 0;\n\n }\n\n .model_resume_table table td {\n padding: 10 0 4 0;\n padding: 10px 0 4px 0;\n }\n\n .model_resume_row table td {\n font-size: 12px;\n font-weight: 500;\n color: #4D4D4D;\n border-width: 0 0 1 0;\n border-style: solid;\n border-color: #EBEBEB;\n border-bottom: 1px solid #EBEBEB;\n padding: 10 0 4 0;\n padding: 10px 0 4px 0;\n border-top: none;\n border-right: none;\n border-left: none;\n }\n.model_resume_table_fist{\n\n padding: 0 0 20 0;\n padding: 0 0 20px 0;\n}\n .model_resume_table table,.model_resume_table-ware table {\n width: 100%;\n\n }\n .model_resume_table-ware table td{\n width: 100px;\n }\n .model_resume_table-ware table td{\n padding: 5 4 5 4;\n padding: 5px 4px;\n text-align: left;\n }\n .model_table_label {\n font-size: 12px;\n font-weight: 500;\n color: #4D4D4D;\n }\n\n .model_table_val {\n font-size: 12px;\n font-weight: 500;\n color: rgba(51, 51, 51, 1);\n }\n\n .headermodel_resume_row {\n\n }\n .headermodel_resume_row th{\n background: #EBECF0 ;\n }\n .template_resume_header {\n background-color: #FFB403;\n }\n\n .template_resume_header table .template_resume_header_img {\n width: 110px;\n padding: 0 0 0 40px;\n padding: 0 0 0 40;\n\n\n\n }\n .template_resume_header table{\n\n }\n .template_resume_header table .template_resume_header_img img{\n\n height: 120px;\n }\n\n .template_resume_header table .template_resume_header_img div {\n width: 90px;\n height: 124px;\n padding: 2px;\n background-color: white;\n\n\n }\n\n .template_resume_header table .template_resume_header_right {\n width: 500px;\n width: calc(100% - 170px);\n text-align: left;\n }\n\n .template_resume_header_name {\n font-size: 28px;\n font-weight: bold;\n color: rgba(255, 255, 255, 1);\n padding: 8 0 0 0;\n }\n\n .template_resume_header_row {\n font-size: 14px;\n font-weight: 500;\n color: rgba(255, 255, 255, 1);\n padding: 15px 0 0 0;\n padding: 15 0 0 0;\n width: 450px;\n }\n\n .template_resume_info {\n padding: 20 0 0 0;\n padding: 20px 0 0 0;\n }\n .model_resume_title_line_header{\n height: 5px;\n background-color: #FFB403;\n\n }\n .model_resume_title_line_white{\n height: 5px;\n background-color: white;\n }\n\n</style>\n</head>\n\n<body>\n<div class=\"main_template_resume\">\n\n\n</div>\n<div style=\"width: 100%;\">\n <div class=\"model_resume_title_line_header\">\n </div>\n <div class=\"model_resume_title_line_white\"></div>\n <div class=\"template_resume_header\" style=\"\">\n\n <table>\n <tr>\n <td class=\"template_resume_header_img\">\n <div>\n <img src=\"http://hrms.crc.com.cn/hrp/static/emplPhoto/21186000/v0M8G4n7_1571241906166.jpg_148x207.jpg\"/>\n </div>\n </td>\n <td class=\"template_resume_header_right\">\n <div class=\"template_resume_header_name\">王欣乐</div>\n <div class=\"template_resume_header_row\">\n <span>集团总部\n /\n IT产品服务部</span></div>\n <div class=\"template_resume_header_row\"><span> IT产品服务部助理软件工程师\n\n /\n\n 助理经理</span></div>\n </td>\n </tr>\n </table>\n\n\n </div>\n\n\n <div class=\"info_001 template_resume_info\">\n <div class=\"model_resume_content\">\n <div class=\"model_resume_table-ware\">\n\n <table cellspacing=\"0\">\n <tr >\n <td colspan=\"3\" style=\"padding: 0 0 20 0;padding: 0 0 20px 0\">\n <img src=\"http://hrms.crc.com.cn/hrp/static/resume/personalinfo1.png\"/>\n </td>\n </tr>\n <tr>\n <td>\n <div >\n <span class=\"model_table_label\" >员工ID:</span>\n\n <span class=\"model_table_val\">21187634</span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >英文名:</span>\n\n <span class=\"model_table_val\"></span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >性别:</span>\n\n <span class=\"model_table_val\">男</span>\n\n\n\n </div>\n </td>\n </tr>\n <tr>\n <td>\n <div >\n <span class=\"model_table_label\" >出生日期:</span>\n\n <span class=\"model_table_val\">1991-10-21</span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >国籍/地区:</span>\n\n <span class=\"model_table_val\">中国大陆</span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >籍贯:</span>\n\n <span class=\"model_table_val\">陕西省渭南市</span>\n\n\n\n </div>\n </td>\n </tr>\n <tr>\n <td>\n <div >\n <span class=\"model_table_label\" >民族:</span>\n\n <span class=\"model_table_val\">汉族</span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >政治面貌:</span>\n\n <span class=\"model_table_val\">群众</span>\n\n\n\n </div>\n </td>\n <td>\n <div >\n <span class=\"model_table_label\" >特长信息:</span>\n\n <span class=\"model_table_val\"></span>\n\n\n\n </div>\n </td>\n </tr>\n <tr>\n </tr>\n\n </table>\n </div>\n </div>\n </div>\n <div class=\"info_002\">\n\n <div class=\"model_resume_content\">\n <div class=\"model_resume_table-ware\" style=\"padding:0 0 0 0;padding:0 0 10px 0\">\n <table cellspacing=\"0\">\n <tr >\n <td colspan=\"2\" style=\"padding: 0 0 20 0;padding: 0 0 20px 0\">\n <img src=\"http://hrms.crc.com.cn/hrp/static/resume/workexperience1.png\"/>\n </td>\n </tr>\n <tr>\n <td><span class=\"model_table_label\">加入华润日期:</span><span class=\"model_table_val\">2019-10-16</span>\n </td>\n <td><span class=\"model_table_label\">加入集团部室/利润中心日期:</span><span class=\"model_table_val\">2019-10-16</span></td>\n </tr>\n <tr>\n <td><span class=\"model_table_label\">加入本单位日期:</span><span class=\"model_table_val\">2019-10-16</span>\n </td>\n <td><span class=\"model_table_label\">转正日期:</span><span class=\"model_table_val\"></span></td>\n </tr>\n </table>\n </div>\n <div class=\"model_resume_table model_resume_row\">\n\n <table cellspacing=\"0\">\n <tr class=\"headermodel_resume_row\">\n <th>主/兼岗</th>\n <th>生效日期</th>\n <th>操作</th>\n <th>原因</th>\n <th>职务</th>\n <th>职级</th>\n <th>部门</th>\n <th>业务单位</th>\n </tr>\n <tr>\n <td> 主岗</td>\n <td> 2019-10-16</td>\n <td> 雇用</td>\n <td> 一般正常雇用</td>\n <td> 助理软件工程师</td>\n <td> 助理经理</td>\n <td> IT产品服务部</td>\n <td> 集团总部</td>\n </tr>\n </table>\n </div>\n </div>\n </div>\n <div class=\"info_003\">\n <div class=\"model_resume_content\">\n <div class=\"model_resume_table model_resume_row\">\n <table cellspacing=\"0\">\n <tr >\n <th colspan=\"5\" style=\"padding: 0 0 20 0;padding: 0 0 20px 0\">\n <img src=\"http://hrms.crc.com.cn/hrp/static/resume/wrong_workexperience1.png\"/>\n </th>\n </tr>\n <tr class=\"headermodel_resume_row\">\n <th>开始日期</th>\n <th>结束日期</th>\n <th>原单位</th>\n <th>工作所在地</th>\n <th>最后职务</th>\n </tr>\n <tr>\n <td> 2019-07-22</td>\n <td> 2019-10-15</td>\n <td> 北京航星永智科技有限公司</td>\n <td> 中国大陆 陕西 西安市</td>\n <td> java开发工程师</td>\n </tr>\n <tr>\n <td> 2019-02-17</td>\n <td> 2019-07-19</td>\n <td> 大唐移动通信有限公司</td>\n <td> 中国大陆 陕西 西安市</td>\n <td> java开发工程师</td>\n </tr>\n <tr>\n <td> 2017-02-16</td>\n <td> 2019-01-08</td>\n <td> 上海汇纳科技股份有限公司</td>\n <td> 中国大陆 陕西 西安</td>\n <td> java开发工程师</td>\n </tr>\n </table>\n </div>\n </div>\n </div>\n\n <div class=\"info_006\">\n <div class=\"model_resume_content\">\n <div class=\"model_resume_table-ware\" >\n <table cellspacing=\"0\">\n <tr >\n <th colspan=\"2\" class=\"model_resume_table_fist_th\" style=\"padding: 0 0 20 0;padding: 0 0 20px 0\">\n <img src=\"http://hrms.crc.com.cn/hrp/static/resume/contactdetails1.png\"/>\n </th>\n </tr>\n <tr>\n <td><span class=\"model_table_label\">移动电话:</span><span class=\"model_table_val\">17719770519</span>\n </td>\n\n <td><span class=\"model_table_label\">公司邮箱:</span><span class=\"model_table_val\">[email protected]</span>\n </td>\n\n </tr>\n <tr>\n <td><span class=\"model_table_label\">办公电话:</span><span class=\"model_table_val\"></span>\n </td>\n\n <td><span class=\"model_table_label\">家庭地址:</span><span class=\"model_table_val\"></span>\n </td>\n\n </tr>\n <tr>\n </tr>\n </table>\n </div>\n\n </div>\n </div>\n <div class=\"info_009\">\n <div class=\"model_resume_content\">\n <div class=\"model_resume_table model_resume_row\">\n <table cellspacing=\"0\">\n <tr >\n <th colspan=\"11\" style=\"padding: 0 0 20 0;padding: 0 0 20px 0\">\n <img src=\"http://hrms.crc.com.cn/hrp/static/resume/eduinfo1.png\"/>\n </th>\n </tr>\n <tr class=\"headermodel_resume_row\">\n <th>开始日期</th>\n <th>结束日期</th>\n <th>学历</th>\n <th>学位</th>\n <th>最高学历</th>\n <th>第一学历</th>\n <th>教育形式</th>\n <th>国家/地区</th>\n <th>学校</th>\n <th>第一专业</th>\n <th>第二专业</th>\n </tr>\n <tr>\n <td> 2010-09-01</td>\n <td> 2014-07-30</td>\n <td> 大学本科</td>\n <td> 学士</td>\n <td> √</td>\n <td> √</td>\n <td> 全日制</td>\n <td> 中国大陆</td>\n <td> 西安石油大学</td>\n <td> 机械设计制造及其自动化</td>\n <td> </td>\n </tr>\n </table>\n </div>\n </div>\n </div>\n</div>\n</body>\n</html>",