Merge remote-tracking branch 'origin/dev' into dev

dev
WenShiJun 2024-03-13 18:03:48 +08:00
commit 5b3891263a
86 changed files with 12257 additions and 1065 deletions

View File

@ -163,6 +163,7 @@ public class CorpInfoController extends BaseController {
@LogAnno(menuType= "双重预防",menuServer= "企业管理",instructionsOperate = "企业信息",instructionsType = "修改")
public Object edit(
@RequestParam(value="imgFiles",required=false) MultipartFile[] imgFiles,
@RequestParam(value="OFFICIAL_SEAL_PATH",required=false) MultipartFile OFFICIAL_SEAL_PATH,
@RequestParam(value="fourFiles",required=false) MultipartFile[] fourFiles) throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
String errInfo = "success";
@ -183,6 +184,9 @@ public class CorpInfoController extends BaseController {
}
}
}
if (OFFICIAL_SEAL_PATH != null) {
pd.put("OFFICIAL_SEAL_PATH", smb.saveFile(OFFICIAL_SEAL_PATH, pd.getString("CORPINFO_ID")));
}
corpinfoService.edit(pd);
PageData img = new PageData();
img.put("FOREIGN_KEY", pd.get("CORPINFO_ID"));
@ -201,19 +205,6 @@ public class CorpInfoController extends BaseController {
Tools.isEmpty(pd.getString("TRAINTYPE")) ? "" : pd.getString("TRAINTYPE"));
map.put("pd",pd);
map.put("result", errInfo);
// PageData dept = new PageData();
// dept.put("NAME", pd.get("CORP_NAME"));
// dept.put("OLDNAME", pd.get("OLD_CORP_NAME"));
// dept.put("PARENT_ID", '0');
// dept.put("CORPINFO_ID", pd.get("CORPINFO_ID")); //企业ID
// departmentService.editCornDept(dept);
// PageData user = new PageData();
// user.put("OLDUSERNAME", pd.get("OLD_CORP_NAME")); //用户名
// user.put("USERNAME", pd.get("CORP_NAME")); //用户名
// user.put("NAME", pd.get("CORP_NAME")); //用户名
// user.put("CORPINFO_ID", pd.get("CORPINFO_ID")); //企业ID
// user.put("PASSWORD", new SimpleHash("SHA-1", pd.getString("CORP_NAME"), "666666").toString()); //密码加密
// usersService.updateCornUser(user);
return map;
}
@RequestMapping(value="/editIsReceive")

View File

@ -1,46 +0,0 @@
package com.zcloud.controller.eduApp;
import com.zcloud.controller.base.BaseController;
import com.zcloud.service.eduOem.OemManageService;
import com.zcloud.entity.PageData;
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 java.util.HashMap;
import java.util.Map;
/**
* oem
* luoxiaobao
* 2023-03-14
* www.zcloudchina.com
*/
@Controller
@RequestMapping("/app/oemmanage")
public class AppOemManageController extends BaseController {
@Autowired
private OemManageService oemmanageService;
/**
*
*
* @param
* @throws Exception
*/
@RequestMapping(value = "/getOemInfo")
@ResponseBody
public Object findByAppDomainName() throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
pd = oemmanageService.findByAppDomainName(pd);
map.put("pd", pd);
map.put("result", errInfo);
return map;
}
}

View File

@ -97,7 +97,7 @@ public class ArchivesAllCorpWordController extends BaseController {
}
List<PageData> varList = archivespostmanService.listAll(pd); //列表
File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "personmanage-new.docx");
File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "personmanage.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -163,7 +163,7 @@ public class ArchivesAllCorpWordController extends BaseController {
pd.put("ENTERPRISE_ID", ID); //企业
}
List<PageData> varList = archivesteacherService.listAll(pd); //列表
File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "teacher-new.docx");
File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "teacher.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -221,7 +221,7 @@ public class ArchivesAllCorpWordController extends BaseController {
pd.put("ENTERPRISE_ID", ID); //企业
}
List<PageData> varList = archiveseduplanService.listAll(pd); //列出ArchivesEduPlan列表
File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "traningplan-new.docx");
File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "traningplan.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -294,7 +294,7 @@ public class ArchivesAllCorpWordController extends BaseController {
pd.put("ENTERPRISE_ID", ID); //企业
}
List<PageData> varList = archivesedumanagerService.listAll(pd); //列表
File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "edumanage-new.docx");
File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "edumanage.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -374,7 +374,7 @@ public class ArchivesAllCorpWordController extends BaseController {
pd.put("ENTERPRISE_ID", ID); //企业
}
List<PageData> varList = archivescapitalService.listAll(pd); //列出ArchivesEduPlan列表
File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "fundmanage-new.docx");
File file = new File(PathUtil.getProjectpath() + Const.FILEPATHWORDTEMPLATE + "fundmanage.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);

View File

@ -74,9 +74,6 @@ public class ArchivesController extends BaseController {
pd = this.getPageData();
List<PageData> varList = null;
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); //机构
if ("0".equals(Jurisdiction.getIS_MAIN())){
pd.put("USER_ID", Jurisdiction.getUSER_ID());
}
page.setPd(pd);
varList = archivesService.getClasseslistPage(page); //列出班级列表
map.put("varList", varList);
@ -85,26 +82,6 @@ public class ArchivesController extends BaseController {
return map;
}
/**
* ()
*
* @throws Exception
*/
@RequestMapping(value = "/getCorpList")
@ResponseBody
public Object getCorpList(Page page) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
page.setPd(pd);
List<PageData> varList = archivesService.getCorplistPage(page); //列出企业列表
map.put("varList", varList);
map.put("page", page);
map.put("result", errInfo);
return map;
}
/**
* @Description:
* @Author: dearLin

View File

@ -75,14 +75,11 @@ public class ClassController extends BaseController {
*/
@RequestMapping(value = "/getClassAllByCorOrEnt")
@ResponseBody
public Object getClassAllByCorOrEnt() {
public Object getClassAllByCorp() {
PageData pageData = this.getPageData();
// 2 3 是机构
pageData.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
if ("0".equals(Jurisdiction.getIS_MAIN())){
pageData.put("AUTHORITY", Jurisdiction.getUSER_ID());
}
List<PageData> varList = classService.getClassAllByCorOrEnt(pageData);
List<PageData> varList = classService.getClassAllByCorp(pageData);
pageData.put("varList", varList);
pageData.put("result", "success");
@ -266,66 +263,6 @@ public class ClassController extends BaseController {
code = "QYPX_";
}
}
// List<PageData> list = enterpriseService.getContractAll(pd);
// List<PageData> connectDateList = new ArrayList<>();
// if (list.size() > 1) {
// SimpleDateFormat formatDay = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// String start_date = list.get(0).getString("DEADLINE_START");
// String end_date = list.get(0).getString("DEADLINE_END");
// for (int i = 1; i < list.size(); i++) {
// String date1 = list.get(i).getString("DEADLINE_START");
// String date2 = list.get(i).getString("DEADLINE_END");
// // 判断两个时间段是否连接,如果连接则两个时间段拼接
// if (DateUtil.isContinuation(formatDay.parse(date1 + " 00:00:00"), formatDay.parse(end_date + " 00:00:00"))) {
// end_date = date2;
// //判断是否是最后时间段,如果最后一个时间段,则存一下
// if (i == list.size() - 1) {
// PageData datepd = new PageData();
// datepd.put("DEADLINE_START", start_date);
// datepd.put("DEADLINE_END", end_date);
// connectDateList.add(datepd);
// }
// } else {
// PageData datepd = new PageData();
// datepd.put("DEADLINE_START", start_date);
// datepd.put("DEADLINE_END", end_date);
// connectDateList.add(datepd);
// //判断是否是最后时间段,如果最后一个时间段没有存进去,则存一下
// if (i == list.size() - 1) {
// if (!end_date.equals(date2)) {
// PageData datepd_end = new PageData();
// datepd_end.put("DEADLINE_START", date1);
// datepd_end.put("DEADLINE_END", date2);
// connectDateList.add(datepd_end);
// }
// }
// start_date = date1;
// end_date = date2;
// }
// }
// } else {
// PageData datepd = new PageData();
// datepd.put("DEADLINE_START", list.get(0).getString("DEADLINE_START"));
// datepd.put("DEADLINE_END", list.get(0).getString("DEADLINE_END"));
// connectDateList.add(datepd);
// }
// boolean between = false;
// for (PageData data : connectDateList) {
// LocalDateTime date1 = LocalDateTime.parse(pd.get("START_TIME").toString() + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// LocalDateTime date2 = LocalDateTime.parse(pd.get("END_TIME").toString() + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// LocalDateTime date3 = LocalDateTime.parse(data.getString("DEADLINE_START") + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// LocalDateTime date4 = LocalDateTime.parse(data.getString("DEADLINE_END") + " 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// if (PaperTextValid.isDuplicateDatePeriod2(date1, date2, date3, date4)) {
// // 一旦有一个 包含了 那么就不会重新填写服务期限
// between = true;
// }
// }
// //培训日期要在服务日期内
// if (!between) {
// map.put("result", errInfo);
// map.put("message", "培训日期要在服务日期内,请重新填写检查培训日期或服务日期!");
// return map;
// }
pd.put("START_TIME", pd.get("START_TIME") + " 00:00:00");
pd.put("END_TIME", pd.get("END_TIME") + " 23:59:59");
pd.put("CODE", code + DateUtil.getSdfTimesSSS());
@ -680,14 +617,6 @@ public class ClassController extends BaseController {
}
// 给各学员增加stageStudent 表
List<PageData> stuList = studentService.listByClass(pd);
// 开班时,判断机构剩余人次是否充足
PageData peoplecount = corpInfoService.peoplecountlist(pd);
int surpluscount = (int) peoplecount.get("PEOPLECOUNT") - Integer.parseInt(peoplecount.get("TRAININGCOUNT").toString()) - stuList.size(); //充值总人次-使用人次-新增学员
if (surpluscount < 0) {
map.put("result", "error"); //返回结果
map.put("msg", "人次不足,请及时续费!");
return map;
}
List<PageData> paperList = postPaperService.listByClass(pd);
Map<String, String> paperMap = new HashMap<String, String>();
for (PageData paper : paperList) {

View File

@ -276,7 +276,6 @@ public class ClassCurriculumController extends BaseController {
initPageDataUtil.initSave(chapter);
chapter.put("CLASSCURRICULUMCHAPTER_ID", this.get32UUID());
chapter.put("CORPINFO_ID", pd.get("CORPINFO_ID"));
chapter.put("ENTERPRISE_ID", pd.get("ENTERPRISE_ID"));
chapter.put("CLASS_ID", pd.get("CLASS_ID"));
chapter.put("CLASSCURRICULUM_ID", pd.get("CLASSCURRICULUM_ID"));
classCurriculumChapterService.save(chapter);

View File

@ -152,7 +152,6 @@ public class CurriculumPostController extends BaseController {
PageData post = new PageData();
initPageDataUtil.initSave(post);
post.put("CORPINFO_ID", classCur.getString("CORPINFO_ID"));
post.put("ENTERPRISE_ID", classCur.getString("ENTERPRISE_ID"));
post.put("CLASS_ID", classCur.getString("CLASS_ID"));
post.put("CURRICULUM_ID", classCur.getString("CURRICULUM_ID"));
post.put("CLASSCURRICULUM_ID", classCur.getString("CLASSCURRICULUM_ID"));

View File

@ -141,7 +141,27 @@ public class PaperQuestionController extends BaseController {
map.put("result", errInfo);
return map;
}
/**
*
*
* @param page
* @throws Exception
*/
@RequestMapping(value = "/listAll")
// @RequiresPermissions( value = {"question:list" , "class:list"}, logical = Logical.OR)
@ResponseBody
public Object listAll(Page page) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件
if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim());
List<PageData> varList = paperQuestionService.listAll(pd); //列出Question列表
map.put("varList", varList);
map.put("result", errInfo);
return map;
}
/**
*
*

View File

@ -80,23 +80,17 @@ public class StudentController extends BaseController {
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
pd.put("USER_ID_CARD", pd.get("USER_ID_CARD").toString().replace("x", "X")); //身份证最后小写x转换成大写X
pd.put("FILE_NUMBER", fileNumberPrefix + DateUtil.getSdfTimesSSS());
if (pd.get("CLASS_ID") == null || Tools.isEmpty(pd.get("CLASS_ID").toString()) || pd.get("ENTERPRISE_ID") == null || Tools.isEmpty(pd.get("ENTERPRISE_ID").toString())) {
if (pd.get("CLASS_ID") == null || Tools.isEmpty(pd.get("CLASS_ID").toString())) {
map.put("result", "error"); //返回结果
map.put("msg", "数据不全,请联系管理员");
return map;
}
if (!IdcardUtils.validateCard(pd.getString("USER_ID_CARD"))) {
map.put("result", "error"); //返回结果
map.put("msg", "身份证号校验不通过,请核对信息");
return map;
}
// 查询班级信息
PageData classInfo = classService.findById(pd);
// state 不是1 的班级。只允许在 班级内已经有的 部门-工种 下添加学员。
// int fileNum = studentService.findByFileNumber(pd);
String importClassId = (String) pd.get("CLASS_ID");
String idCard = (String) pd.get("USER_ID_CARD");
PageData info = studentService.findByFileNumber(pd);
@ -112,28 +106,13 @@ public class StudentController extends BaseController {
map.put("msg", "档案编号已经存在。");
return map;
}
// if (!userCard.getString("CLASS_ID").equals(importClassId)) {
// map.put("result", "error"); //返回结果
// map.put("msg", "档案编号已经存在。");
// return map;
// }
}
}
// PageData ent = enterpriseService.findById(pd);
// if (ent == null || ent.get("ENTERPRISE_ID") == null) {
// map.put("result", "error"); //返回结果
// map.put("msg", "被培训企业不存在,请联系管理员");
// return map;
// }
pd.put("STUDENT_ID", this.get32UUID()); //主键
initPageDataUtil.initSave(pd); // 初始化新建时间等基本信息
pd.put("STUDENT_ID", this.get32UUID());
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
pd.put("USERNAME", pd.get("USER_ID_CARD"));
pd.put("ENTERPRISE_ID", pd.getString("ENTERPRISE_ID"));
pd.put("PERSONNELTYPE", "6");// 账号类型
pd.put("USERNAME", pd.get("USERNAME"));
pd.put("CERTIFICATETYPE", "4bed7fac8fe24ad4b5c0c69321fd5916");
pd.put("STATE", "1");
if (pd.get("POST_NAME") == null || StringUtils.isBlank(pd.getString("POST_NAME"))) {
@ -144,21 +123,6 @@ public class StudentController extends BaseController {
PageData _department = departmentService.findById(pd);
pd.put("DEPARTMENT_NAME", _department.getString("NAME"));
}
// 查询是否有此账号
PageData studentUser = usersService.findByIdCard(pd);
// PageData userCount = usersService.countUserByIdCrd(pageData);
// 此学员没有账号时,添加此账号
if (studentUser == null || studentUser.get("USER_ID") == null) {
studentUser = pd;
studentUser.put("USER_ID", this.get32UUID());
studentUser.put("PASSWORD", new SimpleHash("SHA-1", pd.get("USER_ID_CARD").toString(), "666666").toString()); //密码加密
studentUser.put("ROLE_ID", "ac93b53f01da44eeb9210d557b97a65e");
studentUser.put("STATUS", "0");
studentUser.put("AUTHENTICATION", "0");
studentUser.put("CULTURAL_LEVEL", pd.get("DEGREE_OF_EDUCATION"));
usersService.saveUser(studentUser);
}
pd.put("USER_ID", studentUser.get("USER_ID"));
pd.put("CLASS_ID", pd.get("CLASS_ID"));
// 查看本班级是否添加过这个学员,若添加过,则编辑,若没有,则新增
List<PageData> _student = studentService.findByIdCardInClass(pd);
@ -177,16 +141,6 @@ public class StudentController extends BaseController {
if (isClassStart) {
saveStageStudent(pd);
}
// 已开班,新增学员时校验培训人次
if (isClassStart) {
PageData peoplecount = corpInfoService.peoplecountlist(pd);
int surpluscount = (int) peoplecount.get("PEOPLECOUNT") - Integer.parseInt(peoplecount.get("TRAININGCOUNT").toString()) - 1; //充值总人次-使用人次-该新增学员
if (surpluscount < 0) {
map.put("result", "error"); //返回结果
map.put("msg", "人次不足,请及时续费!");
return map;
}
}
studentService.save(pd);
List<PageData> posts = classPostService.findInClass(pd);
if (posts == null || posts.size() <= 0) {
@ -194,7 +148,6 @@ public class StudentController extends BaseController {
classPost.put("CLASSPOST_ID", this.get32UUID());
initPageDataUtil.initSave(classPost);
classPost.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
classPost.put("ENTERPRISE_ID", pd.get("ENTERPRISE_ID"));
classPost.put("CLASS_ID", pd.get("CLASS_ID"));
classPost.put("DEPARTMENT_ID", pd.get("DEPARTMENT_ID"));
classPost.put("POST_ID", pd.get("POST_ID"));
@ -207,7 +160,6 @@ public class StudentController extends BaseController {
classPost.put("POST_NAME", post.getString("NAME"));
PageData department = departmentService.findById(classPost);
if (department == null || department.size() <= 0) {
// throw new RuntimeException("数据异常:[部门不存在,请联系管理员]");
map.put("result", "error"); //返回结果
map.put("msg", "部门不存在,请联系管理员!");
return map;
@ -221,23 +173,12 @@ public class StudentController extends BaseController {
map.put("msg", "开班后不能添加重复人员!");
return map;
}
// 已开班,新增学员时校验培训人次
if (isClassStart) {
PageData peoplecount = corpInfoService.peoplecountlist(pd);
int surpluscount = (int) peoplecount.get("PEOPLECOUNT") - Integer.parseInt(peoplecount.get("TRAININGCOUNT").toString()) - 1; //充值总人次-使用人次-该新增学员
if (surpluscount < 0) {
map.put("result", "error"); //返回结果
map.put("msg", "人次不足,请及时续费!");
return map;
}
}
List<PageData> posts = classPostService.findInClass(pd);
if (posts == null || posts.size() <= 0) {
PageData classPost = new PageData();
classPost.put("CLASSPOST_ID", this.get32UUID());
initPageDataUtil.initSave(classPost);
classPost.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
classPost.put("ENTERPRISE_ID", pd.get("ENTERPRISE_ID"));
classPost.put("CLASS_ID", pd.get("CLASS_ID"));
classPost.put("DEPARTMENT_ID", pd.get("DEPARTMENT_ID"));
classPost.put("POST_ID", pd.get("POST_ID"));
@ -398,9 +339,6 @@ public class StudentController extends BaseController {
String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件
if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim());
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
if ("0".equals(Jurisdiction.getIS_MAIN())){
pd.put("USER_ID", Jurisdiction.getUSER_ID());
}
page.setPd(pd);
List<PageData> varList = studentService.list(page); //列出PostPaper列表
map.put("varList", varList);

View File

@ -97,7 +97,6 @@ public class UsersController extends BaseController {
@RequestMapping("/list")
// @RequiresPermissions("user:list")
@ResponseBody
@LogAnno(menuType = "教育培训", menuServer = "签字信息管理", instructionsOperate = "签字信息管理", instructionsType = "用户列表")
public Object listUsers(Page page) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
String errInfo = "success";
@ -411,19 +410,6 @@ public class UsersController extends BaseController {
PageData pd = this.getPageData();
// if(pd.get("USERAVATARURL")!=null && !pd.getString("USERAVATARURL").equals("")){
// System.out.println("USERAVATARURL原长度"+pd.getString("USERAVATARURL").length());
// String USERAVATARURL64 = ImageAnd64Binary.zipBase64(pd.getString("USERAVATARURL"));
// System.out.println("USERAVATARURL压缩长度"+USERAVATARURL64.length());
//// try{
//// FaceUtil.compareFace(pd.getString("USERAVATARURL"),pd.getString("USERAVATARURL"));
//// }catch (Exception e){
//// map.put("result", "Error");
//// map.put("msg", "人脸图像不符合要求 请重新上传!");
//// return map;
//// }
// }
if ("input".equals(pd.getString("LEARNERCATEGORYSTATUS"))) {
pd.put("DICTTYPE", "APPLICABLE_PERSONNEL");
PageData lc = dictionariesCorpService.saveSelf(pd);
@ -448,6 +434,11 @@ public class UsersController extends BaseController {
if (Tools.isEmpty(pd.getString("CARDNO"))) {pd.put("CARDNO", null);}
usersService.editUser(pd); //执行修改
if ("true".equals(pd.getString("ISSTUDENT"))) {
if (!IdcardUtils.validateCard(pd.getString("USER_ID_CARD"))) {
map.put("result", "errInfo");
map.put("msg", "身份证号校验不通过,请核对信息");
return map;
}
if ("select".equals(pd.getString("letDutiesType"))) {
pd.put("DUTIES", pd.getString("DUTIES"));
} else {
@ -468,16 +459,9 @@ public class UsersController extends BaseController {
dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd);
pd.put("TITLE", dicPd.getString("DICTIONARIES_ID"));
}
if ("select".equals(pd.getString("letTypeOfWorkType"))) {
pd.put("TYPE_OF_WORK", pd.getString("TYPE_OF_WORK"));
} else {
PageData dicPd = new PageData();
dicPd.put("PARENT_ID", "55484e491a5e442d839c4595380713ec");
dicPd.put("BIANMA", "gongzhong");
dicPd.put("NAME", pd.getString("letTypeOfWorkValue"));
dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd);
pd.put("TYPE_OF_WORK", dicPd.getString("DICTIONARIES_ID"));
}
pd.put("TYPE_OF_WORK", pd.getString("POST_ID"));
pd.put("CERTIFICATETYPE", "4bed7fac8fe24ad4b5c0c69321fd5916");
pd.put("AUTHENTICATION", "0");
userInfoService.delete(pd);
userInfoService.save(pd);
}
@ -663,6 +647,27 @@ public class UsersController extends BaseController {
map.put("result", errInfo); //返回结果
return map;
}
/**
*
*
* @return
*/
@RequestMapping(value = "/hasUserIdCard")
@ResponseBody
@LogAnno(menuType = "双重预防", menuServer = "企业管理", instructionsOperate = "用户管理", instructionsType = "判断用户身份证号是否存在")
public Object hasUserIdCard() throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
pd = userInfoService.getUserCardId(pd);
if (pd != null) {
map.put("pd", pd);
}
map.put("result", errInfo); //返回结果
return map;
}
/**
*
@ -720,99 +725,6 @@ public class UsersController extends BaseController {
return map;
}
/**
*
*
* @return
* @throws Exception
*/
// @RequestMapping(value="/saveUser")
// // @RequiresPermissions("user:add")
// @ResponseBody
// @LogAnno(menuType= "双重预防",menuServer= "企业管理",instructionsOperate = "用户管理",instructionsType = "保存用户")
// public Object saveUser() throws Exception{
// Map<String,Object> map = new HashMap<String,Object>();
// String errInfo = "success";
// PageData pd = new PageData();
// pd = this.getPageData();
// // 默认周期初始值为1
// pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
//// pd.put("DURATION", "1"); //工作状态持续时间
// pd.put("WORKSTATUS", "1"); //工作状态
// pd.put("WORKPERIOD", "1"); //当前工作周期数
// pd.put("RIGHTS", "788664966448");
//
// if(pd.get("USERAVATARURL")!=null && !pd.getString("USERAVATARURL").equals("")){
//// System.out.println("USERAVATARURL原长度"+pd.getString("USERAVATARURL").length());
// String USERAVATARURL64 = ImageAnd64Binary.zipBase64(pd.getString("USERAVATARURL"));
//// System.out.println("USERAVATARURL压缩长度"+USERAVATARURL64.length());
// try{
// FaceUtil.compareFace(pd.getString("USERAVATARURL"),pd.getString("USERAVATARURL"));
// }catch (Exception e){
// map.put("result", "fail");
// map.put("msg", "人脸图像不符合要求 请重新上传!");
// return map;
// }
// }
// if ("input".equals(pd.getString("LEARNERCATEGORYSTATUS"))) {
// pd.put("DICTTYPE","APPLICABLE_PERSONNEL");
// PageData lc = dictionariesCorpService.saveSelf(pd);
// pd.put("LEARNERCATEGORY", lc.getString("DICTIONARIES_ID"));
// }
// pd.put("USER_ID", this.get32UUID()); //ID 主键
// pd.put("LAST_LOGIN", ""); //最后登录时间
// pd.put("IP", ""); //IP
// pd.put("STATUS", "0"); //状态
// pd.put("ISMAIN", "0"); //状态
// pd.put("SKIN", "pcoded-navbar navbar-image-3,navbar pcoded-header navbar-expand-lg navbar-light header-dark,"); //用户默认皮肤
// pd.put("PASSWORD", new SimpleHash("SHA-1", pd.getString("USERNAME"), pd.getString("PASSWORD")).toString()); //密码加密
//
//
// if(null == usersService.findByUsername(pd)){ //判断用户名是否存在
// usersService.saveUser(pd); //执行保存
// if("true".equals(pd.getString("ISSTUDENT"))) {
// if ("select".equals(pd.getString("letDutiesType"))) {
// pd.put("DUTIES", pd.getString("DUTIES"));
// } else {
// PageData dicPd = new PageData();
// dicPd.put("PARENT_ID", "09e36ac01e9540f8bc84eab1c1a78754");
// dicPd.put("BIANMA", "zhiwu");
// dicPd.put("NAME", pd.getString("DUTIESValue"));
// dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd);
// pd.put("DUTIES", dicPd.getString("DICTIONARIES_ID"));
// }
// if ("select".equals(pd.getString("letTitleType"))) {
// pd.put("TITLE", pd.getString("TITLE"));
// } else {
// PageData dicPd = new PageData();
// dicPd.put("PARENT_ID", "945a6b10e59946078b500f0fbafa8679");
// dicPd.put("BIANMA", "zhicheng");
// dicPd.put("NAME", pd.getString("letTitleValue"));
// dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd);
// pd.put("TITLE", dicPd.getString("DICTIONARIES_ID"));
// }
// if ("select".equals(pd.getString("letTypeOfWorkType"))) {
// pd.put("TYPE_OF_WORK", pd.getString("TYPE_OF_WORK"));
// } else {
// PageData dicPd = new PageData();
// dicPd.put("PARENT_ID", "55484e491a5e442d839c4595380713ec");
// dicPd.put("BIANMA", "gongzhong");
// dicPd.put("NAME", pd.getString("letTypeOfWorkValue"));
// dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd);
// pd.put("TYPE_OF_WORK", dicPd.getString("DICTIONARIES_ID"));
// }
// userInfoService.save(pd);
// }
// }else{
// map.put("result","failed");
// }
// FHLOG.save(Jurisdiction.getUsername(), "新增用户:"+pd.getString("USERNAME"));//记录日志
//
//
// map.put("result", errInfo); //返回结果
// map.put("USER_ID", pd.getString("USER_ID")); //返回结果
// return map;
// }
@RequestMapping(value = "/saveUser")
// @RequiresPermissions("user:add")
@ResponseBody

View File

@ -72,5 +72,6 @@ public interface UserInfoMapper{
*/
void editUserSignType(PageData pd);
PageData getUserCardId(PageData departPd);
}

View File

@ -53,15 +53,6 @@ public interface ArchivesMapper {
*/
List<PageData> getStudents(PageData pd);
/**
* ()
*
* @param page
* @throws Exception
*/
List<PageData> getCorplistPage(Page page);
/**
*
*

View File

@ -127,7 +127,7 @@ public interface ClassMapper {
void editNumberofexams(PageData pd);
List<PageData> getClassAllByCorOrEnt(PageData page);
List<PageData> getClassAllByCorp(PageData page);
/**
*

View File

@ -58,14 +58,6 @@ public interface ArchivesService {
List<PageData> getStudents(PageData pd) throws Exception;
/**
* ()
*
* @param page
* @throws Exception
*/
List<PageData> getCorplistPage(Page page) throws Exception;
/**
*
*

View File

@ -191,7 +191,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
pd.put("ENTERPRISE_ID", pd.get("ID")); //企业
// PageData ent = enterpriseMapper.findById(pd);
List<PageData> varList = archivesPostManMapper.listAll(pd); //列表
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "personmanage-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "personmanage.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -1088,7 +1088,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
PageData archInfo = archivesReviewMapper.findById(pd);
PageData curriculumInfo = curriculumMapper.findById(pd);
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "hs-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "hs.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -1257,7 +1257,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
classname = classInfo.getString("NAME");
curriculumName = curriculumInfo.getString("CURRICULUMNAME");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "hs-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "hs.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -1414,7 +1414,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
ArrayList<File> files = new ArrayList<>(); //最外层
List<PageData> data = trainingscheduleMapper.getData(pd);
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "px-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "px.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -1807,7 +1807,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
}
rpd.put("TEACHERS", stringBuilder.toString());
}
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "qz-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "qz.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -1924,7 +1924,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
}
rpd.put("TEACHERS", stringBuilder.toString());
}
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "qz-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "qz.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -1983,7 +1983,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
ArrayList<File> files = new ArrayList<>(); //最外层
PageData clazz = classMapper.findById(pd);
List<PageData> studentList = archivesMapper.getStudentsFace(pd);
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "imagedata-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "imagedata.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -2347,7 +2347,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
classhour += Double.parseDouble(c.get("CLASSHOUR").toString());
}
}
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "studentsumtable-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "studentsumtable.docx");
InputStream mbwj = new FileInputStream(file);
DecimalFormat classhourF = new DecimalFormat("0.0"); //保留一位小数
//注册xdocreport实例并加载FreeMarker模板引擎
@ -2466,7 +2466,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
CURRICULUMNAMES += c.getString("CURRICULUMNAME") + ";";
}
CURRICULUMNAMES = CURRICULUMNAMES.substring(0, CURRICULUMNAMES.length() - 1);
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "evaluationreport-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "evaluationreport.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -2556,7 +2556,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
ArrayList<File> files = new ArrayList<>(); //最外层
pd.put("ENTERPRISE_ID", pd.get("ID")); //企业
List<PageData> varList = archivesteacherMapper.listAll(pd); //列表
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "teacher-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "teacher.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -2626,7 +2626,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
ArrayList<File> files = new ArrayList<>(); //最外层
pd.put("ENTERPRISE_ID", pd.get("ID")); //企业
List<PageData> varList = archiveseduplanMapper.listAll(pd); //列出ArchivesEduPlan列表
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "traningplan-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "traningplan.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -2714,7 +2714,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
ArrayList<File> files = new ArrayList<>(); //最外层
pd.put("ENTERPRISE_ID", pd.get("ID")); //企业
List<PageData> varList = archivesedumanagerMapper.listAll(pd); //列表
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "edumanage-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "edumanage.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -2828,7 +2828,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
ArrayList<File> files = new ArrayList<>(); //最外层
pd.put("ENTERPRISE_ID", pd.get("ID")); //企业
List<PageData> varList = archivescapitalMapper.listAll(pd); //列出ArchivesEduPlan列表
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "fundmanage-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "fundmanage.docx");
InputStream mbwj = new FileInputStream(file);
// 注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -3149,7 +3149,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
}
List<PageData> varList = archivespostmanMapper.listAll(pd); //列表
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "personmanage-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "personmanage.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -3210,7 +3210,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
pd.put("ENTERPRISE_ID", ID); //企业
}
List<PageData> varList = archivesteacherMapper.listAll(pd); //列表
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "teacher-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "teacher.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -3266,7 +3266,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
pd.put("ENTERPRISE_ID", ID); //企业
}
List<PageData> varList = archiveseduplanMapper.listAll(pd); //列出ArchivesEduPlan列表
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "traningplan-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "traningplan.docx");
List<File> files = new ArrayList<>();
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
@ -3339,7 +3339,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
pd.put("ENTERPRISE_ID", ID); //企业
}
List<PageData> varList = archivesedumanagerMapper.listAll(pd); //列表
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "edumanage-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "edumanage.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -3439,7 +3439,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
pd.put("ENTERPRISE_ID", ID); //企业
}
List<PageData> varList = archivescapitalMapper.listAll(pd); //列出ArchivesEduPlan列表
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "fundmanage-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "fundmanage.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -3509,7 +3509,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
context.put("value4", Tools.notEmpty(awardUser.getString("SEX_NAME")) ? awardUser.getString("SEX_NAME") : ""); // 性别
context.put("value5", Tools.notEmpty(awardUser.getString("USER_ID_CARD")) ? awardUser.getString("USER_ID_CARD") : ""); // 身份证号
context.put("value6", Tools.notEmpty(awardUser.getString("DEGREE_OF_EDUCATION_NAME")) ? awardUser.getString("DEGREE_OF_EDUCATION_NAME") : ""); // 学历
context.put("value7", Tools.notEmpty(awardUser.getString("MAJOR")) ? awardUser.getString("MAJOR") : ""); // 专业
context.put("value7", Tools.notEmpty(awardUser.getString("MAJOR_NAME")) ? awardUser.getString("MAJOR_NAME") : ""); // 专业
context.put("value8", Tools.notEmpty(awardUser.getString("DUTIES_NAME")) ? awardUser.getString("DUTIES_NAME") : ""); // 职务/职称
context.put("value9", Tools.notEmpty(awardUser.getString("DEPARTMENT_NAME")) ? awardUser.getString("DEPARTMENT_NAME") : ""); // 部 门
context.put("value10", Tools.notEmpty(awardUser.getString("POST_NAME")) ? awardUser.getString("POST_NAME") : ""); // 工 种

View File

@ -77,11 +77,6 @@ public class ArchivesServiceImpl implements ArchivesService {
return archivesMapper.getStudents(pd);
}
@Override
public List<PageData> getCorplistPage(Page page) throws Exception {
return archivesMapper.getCorplistPage(page);
}
@Override
public List<PageData> getStudentsFace(PageData pd) throws Exception {
return archivesMapper.getStudentsFace(pd);
@ -214,7 +209,7 @@ public class ArchivesServiceImpl implements ArchivesService {
@Override
public String classHour(PageData student, PageData classInfo, List<PageData> coursewaresList, PageData corpinfo, PageData pd, String now) {
try {
File file = new File(student.getString("projectPath") + Const.FILEPATHWORDTEMPLATE + "classhour-new.docx");
File file = new File(student.getString("projectPath") + Const.FILEPATHWORDTEMPLATE + "classhour.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -361,7 +356,7 @@ public class ArchivesServiceImpl implements ArchivesService {
*/
public String curriculumword(PageData student, PageData classInfo, List<PageData> coursewaresList, PageData corpinfo, String now) throws Exception {
try {
File file = new File(student.getString("projectPath") + Const.FILEPATHWORDTEMPLATE + "curriculum-new.docx");
File file = new File(student.getString("projectPath") + Const.FILEPATHWORDTEMPLATE + "curriculum.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);
@ -422,7 +417,7 @@ public class ArchivesServiceImpl implements ArchivesService {
Configuration configuration = new Configuration(Configuration.getVersion());
Template template;
configuration.setDirectoryForTemplateLoading(new File(student.getString("projectPath") + Const.FILEPATHWORDTEMPLATE)); //课程材料导出word新的-------------------
template = configuration.getTemplate("practice-new.ftl");
template = configuration.getTemplate("practice.ftl");
Map<String, Object> context = new HashMap<String, Object>();
context = new HashMap<String, Object>();
context.put("practicevalue1", pd.getString("ENTERPRISE_NAME")); //机构名称
@ -859,7 +854,7 @@ public class ArchivesServiceImpl implements ArchivesService {
//创建要替换的文本变量,变量名需对应
context.put("value2", student.getString("STUDENT_NAME") != null ? student.getString("STUDENT_NAME") : student.getString("NAME")); //姓名
context.put("value3", student.getString("USER_ID_CARD")); //证件号码
context.put("value4", classInfo.getString("enterpriseName")); //培训单位名称
context.put("value4", classInfo.getString("CORP_NAME")); //培训单位名称
context.put("value5", classInfo.getString("CODE")); //班级编码
context.put("value6", classInfo.getString("NAME")); //班级名称
context.put("value7", (Tools.notEmpty(student.getString("STUDY_START_TIME")) ? student.getString("STUDY_START_TIME").substring(0, 10) : "") + "至" + (Tools.notEmpty(student.getString("STUDY_END_TIME")) ? student.getString("STUDY_END_TIME").substring(0, 10) : "")); //培训日期

View File

@ -1,96 +0,0 @@
package com.zcloud.service.eduOem;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import java.util.List;
/**
* oem
* luoxiaobao
* 2023-03-14
* www.zcloudchina.com
*/
public interface OemManageService {
/**
*
*
* @param pd
* @throws Exception
*/
public void save(PageData pd) throws Exception;
/**
*
*
* @param pd
* @throws Exception
*/
public void delete(PageData pd) throws Exception;
/**
*
*
* @param pd
* @throws Exception
*/
public void edit(PageData pd) throws Exception;
/**
*
*
* @param page
* @throws Exception
*/
public List<PageData> list(Page page) throws Exception;
/**
* ()
*
* @param pd
* @throws Exception
*/
public List<PageData> listAll(PageData pd) throws Exception;
/**
* id
*
* @param pd
* @throws Exception
*/
public PageData findById(PageData pd) throws Exception;
/**
*
*
* @param pd
* @throws Exception
*/
public PageData findByDomainName(PageData pd) throws Exception;
/**
*
*
* @param pd
* @throws Exception
*/
public int hasDomainName(PageData pd) throws Exception;
/**
*
*
* @param ArrayDATA_IDS
* @throws Exception
*/
public void deleteAll(String[] ArrayDATA_IDS) throws Exception;
/**
*
*
* @param pd
* @throws Exception
*/
public PageData findByAppDomainName(PageData pd) throws Exception;
}

View File

@ -1,126 +0,0 @@
package com.zcloud.service.eduOem.impl;
import com.zcloud.mapper.dsno3.eduOem.OemManageMapper;
import com.zcloud.service.eduOem.OemManageService;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* oem
* luoxiaobao
* 2023-03-14
* www.zcloudchina.com
*/
@Service
@Transactional //开启事物
public class OemManageServiceImpl implements OemManageService {
@Autowired
private OemManageMapper oemmanageMapper;
/**
*
*
* @param pd
* @throws Exception
*/
public void save(PageData pd) throws Exception {
oemmanageMapper.save(pd);
}
/**
*
*
* @param pd
* @throws Exception
*/
public void delete(PageData pd) throws Exception {
oemmanageMapper.delete(pd);
}
/**
*
*
* @param pd
* @throws Exception
*/
public void edit(PageData pd) throws Exception {
oemmanageMapper.edit(pd);
}
/**
*
*
* @param page
* @throws Exception
*/
public List<PageData> list(Page page) throws Exception {
return oemmanageMapper.datalistPage(page);
}
/**
* ()
*
* @param pd
* @throws Exception
*/
public List<PageData> listAll(PageData pd) throws Exception {
return oemmanageMapper.listAll(pd);
}
/**
* id
*
* @param pd
* @throws Exception
*/
public PageData findById(PageData pd) throws Exception {
return oemmanageMapper.findById(pd);
}
/**
*
*
* @param pd
* @throws Exception
*/
public PageData findByDomainName(PageData pd) throws Exception {
return oemmanageMapper.findByDomainName(pd);
}
/**
*
*
* @param pd
* @throws Exception
*/
public int hasDomainName(PageData pd) throws Exception {
return oemmanageMapper.hasDomainName(pd);
}
/**
*
*
* @param ArrayDATA_IDS
* @throws Exception
*/
public void deleteAll(String[] ArrayDATA_IDS) throws Exception {
oemmanageMapper.deleteAll(ArrayDATA_IDS);
}
/**
*
*
* @param pd
* @throws Exception
*/
public PageData findByAppDomainName(PageData pd) throws Exception {
return oemmanageMapper.findByAppDomainName(pd);
}
}

View File

@ -118,7 +118,7 @@ public interface ClassService {
void editNumberofexams(PageData pd);
List<PageData> getClassAllByCorOrEnt(PageData pageData);
List<PageData> getClassAllByCorp(PageData pageData);
List<PageData> listStrengthenByCorpName(Page page);

View File

@ -209,8 +209,8 @@ public class ClassServiceImpl implements ClassService {
}
@Override
public List<PageData> getClassAllByCorOrEnt(PageData pageData) {
return classMapper.getClassAllByCorOrEnt(pageData);
public List<PageData> getClassAllByCorp(PageData pageData) {
return classMapper.getClassAllByCorp(pageData);
}
/**

View File

@ -66,5 +66,6 @@ public interface UserInfoService{
void editUserSignType(PageData pd)throws Exception;
PageData getUserCardId(PageData departPd)throws Exception;
}

View File

@ -113,5 +113,13 @@ public class UserInfoServiceImpl implements UserInfoService {
userinfoMapper.editUserSignType(pd);
}
/**
* @param pd
* @throws Exception
*/
public PageData getUserCardId(PageData departPd)throws Exception {
return userinfoMapper.getUserCardId(departPd);
}
}

View File

@ -314,7 +314,9 @@ public class UsersServiceImpl implements UsersService {
throw new Exception("人脸图像不符合要求,请重新上传");
}
}
if (!IdcardUtils.validateCard(pd.getString("USER_ID_CARD"))) {
return ReturnMap.error("身份证号校验不通过,请核对信息");
}
if ("input".equals(pd.getString("LEARNERCATEGORYSTATUS"))) {
pd.put("DICTTYPE", "APPLICABLE_PERSONNEL");
PageData lc = dictionariesCorpService.saveSelf(pd);
@ -351,16 +353,9 @@ public class UsersServiceImpl implements UsersService {
dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd);
pd.put("TITLE", dicPd.getString("DICTIONARIES_ID"));
}
if ("select".equals(pd.getString("letTypeOfWorkType"))) {
pd.put("TYPE_OF_WORK", pd.getString("TYPE_OF_WORK"));
} else {
PageData dicPd = new PageData();
dicPd.put("PARENT_ID", "55484e491a5e442d839c4595380713ec");
dicPd.put("BIANMA", "gongzhong");
dicPd.put("NAME", pd.getString("letTypeOfWorkValue"));
dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd);
pd.put("TYPE_OF_WORK", dicPd.getString("DICTIONARIES_ID"));
}
pd.put("TYPE_OF_WORK", pd.getString("POST_ID"));
pd.put("CERTIFICATETYPE", "4bed7fac8fe24ad4b5c0c69321fd5916");
pd.put("AUTHENTICATION", "0");
userInfoService.save(pd);
}
PageData response = PLSUtil.saveUser(pd);
@ -374,9 +369,6 @@ public class UsersServiceImpl implements UsersService {
return ReturnMap.error(response.getString("msg"));
}
return ReturnMap.error("保存失败");
// PageData cardNumberPeople = PLSUtil.getCardNumberPeople(pd);
// pd.put("PLS_ID", cardNumberPeople.getString("psnId"));
// usersMapper.saveUser(pd);
}

View File

@ -22,30 +22,6 @@ import java.util.logging.Logger;
@Component
public class CaffeineUtil {
private static final Logger logger = Logger.getLogger(CaffeineUtil.class.getName());
@Resource
private DictionariesMapper dictionariesMapper;
@Bean(name = "caffeineCache")
public Cache<String, Object> caffeineCache() {
Cache<String, Object> build = Caffeine.newBuilder()
//8小时没有读写自动删除
.expireAfterAccess(8, TimeUnit.HOURS)
// 当垃圾收集器需要释放内存时驱逐
.softValues()
//最大容量1个超过会自动清理空间
.maximumSize(1)
.removalListener(((key, value, cause) -> {
//清理通知 key,value ==> 键值对 cause ==> 清理原因
System.out.printf("Key %s was removed (%s)%n", key, cause);
})).build();
// 加载一次
build.get("xzqh", x -> {
List<PageData> all = dictionariesMapper.getAll();
Map fileSort = AdministrativeUntil.getFileSort(all);
return fileSort;
});
return build;
}
/**
* @Description: token
@ -67,22 +43,4 @@ public class CaffeineUtil {
})).build();
return loginToken;
}
/**
* @Description:
* @Author: dearLin
* @Date: 2023/6/12/012 9:25
* @Param: [com.github.benmanes.caffeine.cache.Cache<java.lang.String, java.lang.Object>] [build]
* @Return: void
*/
@Async
public void loadOnce(Cache<String, Object> build) {
// 加载一次
build.get("xzqh", x -> {
List<PageData> all = dictionariesMapper.getAll();
Map fileSort = AdministrativeUntil.getFileSort(all);
return fileSort;
});
}
}

View File

@ -75,7 +75,7 @@ public class EvaluationReportAbsHandler extends AbsHandlerBatchExport {
CURRICULUMNAMES += c.getString("CURRICULUMNAME") + ';';
}
CURRICULUMNAMES = CURRICULUMNAMES.substring(0, CURRICULUMNAMES.length() - 1);
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "evaluationreport-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "evaluationreport.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);

View File

@ -78,7 +78,7 @@ public class HsAbsHandler extends AbsHandlerBatchExport {
PageData archInfo = archivesReviewService.findById(pd);
PageData curriculumInfo = curriculumService.findById(pd);
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "hs-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "hs.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);

View File

@ -57,7 +57,7 @@ public class ImageDataAbsHandler extends AbsHandlerBatchExport {
String className = pd.getString("CLASS_NAME");
PageData clazz = classService.findById(pd);
List<PageData> studentList = archivesService.getStudentsFace(pd);
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "imagedata-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "imagedata.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);

View File

@ -174,10 +174,10 @@ public class LearningRecordHandler extends AbsHandlerBatchExport {
String projectPath = pd.getString("projectPath");
File file;
if (baseInfo.getString("ISFACE").equals("1")) {
file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "learningRecord-new.docx");
file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "learningRecord.docx");
} else {
file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "learningRecordnoface-new.docx");
file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "learningRecordnoface.docx");
}
InputStream mbwj = Files.newInputStream(file.toPath());
//注册xdocreport实例并加载FreeMarker模板引擎

View File

@ -137,7 +137,7 @@ public class SignAbsHandler extends AbsHandlerBatchExport {
}
rpd.put("TEACHERS", stringBuilder.toString());
}
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "qz-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "qz.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);

View File

@ -97,7 +97,7 @@ public class StudentSumTableAbsHandler extends AbsHandlerBatchExport {
classhour += Double.parseDouble(c.get("CLASSHOUR").toString());
}
}
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "studentsumtable-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "studentsumtable.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);

View File

@ -49,7 +49,7 @@ public class TrainingPlanAbsHandler extends AbsHandlerBatchExport {
public File batchExport(PageData pd, String now) throws Exception {
String projectPath = pd.getString("projectPath");
List<PageData> data = trainingscheduleService.getData(pd);
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "px-new.docx");
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "px.docx");
InputStream mbwj = new FileInputStream(file);
//注册xdocreport实例并加载FreeMarker模板引擎
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(mbwj, TemplateEngineKind.Freemarker);

View File

@ -94,12 +94,7 @@
f.VIPLEVEL,
f.USERS_NUM,
f.REGULARTYPE,
f.BUSINESS_LICENSE,
f.OFFICIAL_SEAL_PATH,
f.VIDEO_PATH,
f.VIDEO_NAME,
f.PEOPLECOUNT,
f.BALANCE_WARN_AMOUNT
f.OFFICIAL_SEAL_PATH
</sql>
<!-- 字段用于新增 -->
@ -155,12 +150,7 @@
SMALL_TYPE2,
USERS_NUM,
REGULARTYPE,
BUSINESS_LICENSE,
OFFICIAL_SEAL_PATH,
VIDEO_PATH,
VIDEO_NAME,
PEOPLECOUNT,
BALANCE_WARN_AMOUNT
OFFICIAL_SEAL_PATH
</sql>
<!-- 字段值 -->
@ -216,12 +206,7 @@
#{SMALL_TYPE2},
#{USERS_NUM},
#{REGULARTYPE},
#{BUSINESS_LICENSE},
#{OFFICIAL_SEAL_PATH},
#{VIDEO_PATH},
#{VIDEO_NAME},
#{PEOPLECOUNT},
#{BALANCE_WARN_AMOUNT}
#{OFFICIAL_SEAL_PATH}
</sql>
<!-- 新增-->
@ -331,11 +316,7 @@
LR_PERSONID=#{LR_PERSONID},
CORPINFO_ID = CORPINFO_ID,
USERS_NUM = #{USERS_NUM},
BUSINESS_LICENSE = #{BUSINESS_LICENSE},
OFFICIAL_SEAL_PATH = #{OFFICIAL_SEAL_PATH},
VIDEO_PATH = #{VIDEO_PATH},
VIDEO_NAME = #{VIDEO_NAME},
PEOPLECOUNT = #{PEOPLECOUNT}
OFFICIAL_SEAL_PATH = #{OFFICIAL_SEAL_PATH}
where
CORPINFO_ID = #{CORPINFO_ID}
</update>

View File

@ -248,4 +248,17 @@
where
USER_ID = #{USER_ID}
</update>
<!-- 列表(全部) -->
<select id="getUserCardId" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include> f
left join sys_user u on u.USER_ID = f.USER_ID
where u.CORPINFO_ID = #{CORPINFO_ID}
and f.USER_ID_CARD = #{USER_ID_CARD}
<if test="VERIFYUSER_ID != null and VERIFYUSER_ID != ''">
and f.USER_ID != #{VERIFYUSER_ID}
</if>
</select>
</mapper>

View File

@ -171,17 +171,20 @@
<!-- 获取用户信息 -->
<select id="getUserInfo" parameterType="pd" resultType="pd">
select u.*,
case if(length(u.USER_ID_CARD) = 18, cast(substring(u.USER_ID_CARD, 17, 1) as UNSIGNED)%2,
if(length(u.USER_ID_CARD) = 15, cast(substring(u.USER_ID_CARD, 15, 1) as UNSIGNED)%2, 3))
select u.USER_ID,
u.USERNAME,
u.NAME,
case ui.SEX
when 1 then '男'
when 0 then '女'
else '未知' end as SEX_NAME,
end as SEX_NAME,
cl.NAME as DEGREE_OF_EDUCATION_NAME,
ci.NAME CORP_NAME
ci.CORP_NAME
from SYS_USER u
left join SYS_USERINFO ui on ui.USER_ID = u.USER_ID
left join bus_corp_info ci on ci.CORPINFO_ID = u.CORPINFO_ID
LEFT JOIN SYS_DICTIONARIES cl on cl.DICTIONARIES_ID = u.CULTURAL_LEVEL
LEFT JOIN SYS_DICTIONARIES cl on cl.DICTIONARIES_ID = ui.DEGREE_OF_EDUCATION
LEFT JOIN SYS_DICTIONARIES cl on cl.DICTIONARIES_ID = ui.MAJOR
where u.USER_ID = #{USER_ID}
</select>

View File

@ -172,42 +172,20 @@
ORDER BY CONVERT( f.NAME USING gbk )
</select>
<!-- 获取机构服务的企业(分页) -->
<select id="getCorplistPage" parameterType="page" resultType="pd">
SELECT
f.CORPINFO_ID as ID,c.NAME,c.NUMBER
FROM
bus_corp_enterprise_contact f
LEFT JOIN
bus_corp_info c ON c.CORPINFO_ID = f.CORPINFO_ID
WHERE
1=1
<if test="pd.NAME != null and pd.NAME != ''">
AND ( c.NAME LIKE CONCAT(CONCAT('%', #{pd.NAME}),'%') )
</if>
<if test="pd.NUMBER != null and pd.NUMBER != ''">
AND ( c.NUMBER LIKE CONCAT(CONCAT('%', #{pd.NUMBER}),'%') )
</if>
<if test="pd.ENTERPRISE_ID != null and pd.ENTERPRISE_ID != ''">
AND f.ENTERPRISE_ID = #{pd.ENTERPRISE_ID}
</if>
GROUP BY f.CORPINFO_ID
</select>
<!-- 列表(全部)学生人脸 -->
<select id="getStudentsFace" parameterType="pd" resultType="pd">
SELECT
f.NAME,
f.USER_ID_CARD,
f.PHONE,
u.PORTRAIT,
ui.PORTRAIT,
face.FACES
FROM
BUS_STUDENT f
LEFT JOIN
BUS_STAGESTUDENTRELATION s ON s.STUDENT_ID = f.STUDENT_ID
LEFT JOIN
SYS_USER u on u.USER_ID = f.USER_ID
SYS_USERINFO u on u.USER_ID = f.USER_ID
LEFT JOIN
(SELECT i.STUDENT_ID,GROUP_CONCAT(i.FILEPATH) FACES FROM bus_faceimglog i
LEFT JOIN bus_student bs on bs.STUDENT_ID = i.STUDENT_ID
@ -223,7 +201,26 @@
<!-- 查询机构内学员列表(分页) -->
<select id="getStudentslistPage" parameterType="page" resultType="pd">
SELECT
u.*,
u.USER_ID,
u.USER_NAME,
u.NAME,
ui.NATION,
ui.SEX,
ui.POLITICAL_OUTLOOK,
ui.DATE_OF_BIRTH,
ui.DEGREE_OF_EDUCATION,
ui.DUTIES,
ui.ENTRY_DATE,
ui.WORKING_DATE,
ui.INCUMBENCY,
ui.TITLE,
ui.PERSONNEL_TYPE,
ui.USER_ID_CARD,
ui.USER_SIGN_FILE_PATH,
ui.CERTIFICATETYPE,
ui.AUTHENTICATION,
ui.PORTRAIT,
ui.ID_PHOTO,
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
aapl.ARCHIVES_AWARD_PUN_LOG_ID,
asw.ARCHIVES_SPECIAL_WORK_ID,
@ -238,6 +235,8 @@
BUS_CLASS c ON c.CLASS_ID = s.CLASS_ID
LEFT JOIN
BUS_STAGESTUDENTRELATION r ON r.STUDENT_ID = s.STUDENT_ID
LEFT JOIN
SYS_USERINFO ui ON ui.USER_ID = u.USER_ID
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
LEFT JOIN
BUS_ARCHIVES_AWARD_PUN_LOG aapl on aapl.USER_ID = u.USER_ID and aapl.CORPINFO_ID = #{pd.CORPINFO_ID}
@ -298,15 +297,11 @@
s.USER_ID,
corp.CORPINFO_ID,
c.CLASS_ID,
-- COUNT(DISTINCT c.CLASS_ID) CLASS_COUNT,
c.NAME,
c.CODE,
c.START_TIME,
c.END_TIME,
c.STATE,
c.INDUSTRY_END_ID,
c.INDUSTRY_ALL_NAME,
c.INDUSTRY_ALL_TYPE,
c.TRAINTYPE,
c.EXAMINATION,
c.ISSTRENGTHEN,
@ -326,6 +321,8 @@
sr.STUDYSTATE,
IFNULL(ch.SUM_CLASSHOUR,0) SUM_CLASSHOUR,
corp.NAME as CORP_NAME,
corp.CORP_TYPE_NAME,
corp.CORP_TYPE4,
us1.SIGN_PICTURE RECORDOR_SIGN,
us2.SIGN_PICTURE ASSESSOR_SIGN,
us3.SIGN_PICTURE SAFETYDEPTOR_SIGN
@ -417,8 +414,8 @@
f.POST_NAME,
f.DUTIES,
f.MAJOR,
u.ID_PHOTO,
u.PORTRAIT,
ui.ID_PHOTO,
ui.PORTRAIT,
CONCAT_WS('-', IF(t.NAME = '', null, t.NAME), IF(iei.NAME = '', null, iei.NAME),
IF(p.NAME = '', null, p.NAME), IF(tlt.NAME = '', null, tlt.NAME)) TYPENAME,
cl.NAME as DEGREE_OF_EDUCATION_NAME
@ -430,10 +427,8 @@
LEFT JOIN BUS_TRAINING_TYPE t on t.TRAININGTYPE_ID = c.TRAINTYPE
LEFT JOIN BUS_INDUSTRY_TYPE iei on iei.INDUSTRYTYPE_ID = c.INDUSTRY_END_ID
LEFT JOIN BUS_TRAIN_LEVEL_TYPE tlt on tlt.TRAINLEVEL_ID = c.TRAINLEVEL
LEFT JOIN
SYS_USER u on u.USER_ID = f.USER_ID
LEFT JOIN
SYS_DICTIONARIES cl on cl.DICTIONARIES_ID = u.CULTURAL_LEVEL
LEFT JOIN SYS_USERINFO ui on ui.USER_ID = f.USER_ID
LEFT JOIN SYS_DICTIONARIES cl on cl.DICTIONARIES_ID = ui.DEGREE_OF_EDUCATION
WHERE f.STUDENT_ID = #{STUDENT_ID}
AND s.ISDELETE = '0'
AND c.ISDELETE = '0'

View File

@ -1,236 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.mapper.dsno3.eduOem.OemManageMapper">
<!--表名 -->
<sql id="tableName">
BUS_OEM_MANAGE
</sql>
<!--数据字典表名 -->
<sql id="dicTableName">
SYS_DICTIONARIES
</sql>
<!-- 字段 -->
<sql id="Field">
f
.
CORP_NAME
,
f.PC_LOGO_PATH,
f.APP_LOGO_PATH,
f.DOMAIN_NAME,
f.START_TIME,
f.END_TIME,
f.ENTERPRISE_MAXIMUM,
f.STUDENT_MAXIMUM,
f.CREATOR,
f.CREATTIME,
f.OPERATOR,
f.OPERATTIME,
f.ISDELETE,
f.CORPINFO_ID,
f.OEM_MANAGE_ID,
f.APP_DOMAIN_NAME
</sql>
<!-- 字段用于新增 -->
<sql id="Field2">
CORP_NAME
,
PC_LOGO_PATH,
APP_LOGO_PATH,
DOMAIN_NAME,
START_TIME,
END_TIME,
ENTERPRISE_MAXIMUM,
STUDENT_MAXIMUM,
CREATOR,
CREATTIME,
OPERATOR,
OPERATTIME,
ISDELETE,
CORPINFO_ID,
OEM_MANAGE_ID,
APP_DOMAIN_NAME
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{CORP_NAME}
,
#{PC_LOGO_PATH},
#{APP_LOGO_PATH},
#{DOMAIN_NAME},
#{START_TIME},
#{END_TIME},
#{ENTERPRISE_MAXIMUM},
#{STUDENT_MAXIMUM},
#{CREATOR},
#{CREATTIME},
#{OPERATOR},
#{OPERATTIME},
#{ISDELETE},
#{CORPINFO_ID},
#{OEM_MANAGE_ID},
#{APP_DOMAIN_NAME}
</sql>
<!-- 新增-->
<insert id="save" parameterType="pd">
insert into
<include refid="tableName"></include>
(
<include refid="Field2"></include>
) values (
<include refid="FieldValue"></include>
)
</insert>
<!-- 删除-->
<delete id="delete" parameterType="pd">
update
<include refid="tableName"></include>
set
ISDELETE = '1'
where
OEM_MANAGE_ID = #{OEM_MANAGE_ID}
</delete>
<!-- 修改 -->
<update id="edit" parameterType="pd">
UPDATE
<include refid="tableName"></include>
set
<if test="OEM_MANAGE_ID != null and OEM_MANAGE_ID != ''">
OEM_MANAGE_ID = #{OEM_MANAGE_ID},
</if>
<if test="CORP_NAME != null and CORP_NAME != ''">
CORP_NAME = #{CORP_NAME},
</if>
<if test="PC_LOGO_PATH != null and PC_LOGO_PATH != ''">
PC_LOGO_PATH = #{PC_LOGO_PATH},
</if>
<if test="APP_LOGO_PATH != null and APP_LOGO_PATH != ''">
APP_LOGO_PATH = #{APP_LOGO_PATH},
</if>
<if test="DOMAIN_NAME != null and DOMAIN_NAME != ''">
DOMAIN_NAME = #{DOMAIN_NAME},
</if>
<if test="START_TIME != null and START_TIME != ''">
START_TIME = #{START_TIME},
</if>
<if test="END_TIME != null and END_TIME != ''">
END_TIME = #{END_TIME},
</if>
<if test="ENTERPRISE_MAXIMUM != null and ENTERPRISE_MAXIMUM != ''">
ENTERPRISE_MAXIMUM = #{ENTERPRISE_MAXIMUM},
</if>
<if test="STUDENT_MAXIMUM != null and STUDENT_MAXIMUM != ''">
STUDENT_MAXIMUM = #{STUDENT_MAXIMUM},
</if>
<if test="OPERATOR != null and OPERATOR != ''">
OPERATOR = #{OPERATOR},
</if>
<if test="OPERATTIME != null and OPERATTIME != ''">
OPERATTIME = #{OPERATTIME},
</if>
<if test="CORPINFO_ID != null and CORPINFO_ID != ''">
CORPINFO_ID = #{CORPINFO_ID},
</if>
OEM_MANAGE_ID = OEM_MANAGE_ID
WHERE
OEM_MANAGE_ID = #{OEM_MANAGE_ID}
</update>
<!-- 域名查重 -->
<select id="hasDomainName" parameterType="pd" resultType="int">
SELECT
count(f.OEM_MANAGE_ID) num
FROM
<include refid="tableName"></include>
f
WHERE
f.ISDELETE = '0'
AND f.DOMAIN_NAME = #{DOMAIN_NAME}
<if test="OEM_MANAGE_ID != null and OEM_MANAGE_ID != ''">
AND f.OEM_MANAGE_ID != #{OEM_MANAGE_ID}
</if>
</select>
<!-- 通过ID获取数据 -->
<select id="findById" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
f
where
f.OEM_MANAGE_ID = #{OEM_MANAGE_ID}
</select>
<!-- 通过域名获取数据 -->
<select id="findByDomainName" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
f
where
f.DOMAIN_NAME = #{DOMAIN_NAME}
AND f.ISDELETE = '0'
</select>
<!-- 列表 -->
<select id="datalistPage" parameterType="page" resultType="pd">
SELECT
<include refid="Field"></include>
FROM
<include refid="tableName"></include>
f
WHERE f.ISDELETE = '0'
<if test="pd.CORP_NAME != null and pd.CORP_NAME != ''"><!-- 关键词检索 -->
and
(
f.CORP_NAME LIKE CONCAT(CONCAT('%', #{pd.CORP_NAME}),'%')
)
</if>
ORDER BY f.OPERATTIME DESC
</select>
<!-- 列表(全部) -->
<select id="listAll" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
f
</select>
<!-- 批量删除 -->
<delete id="deleteAll" parameterType="String">
update
<include refid="tableName"></include>
set
ISDELETE = '1'
where
OEM_MANAGE_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 通过手机域名获取数据 -->
<select id="findByAppDomainName" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
f
where
f.APP_DOMAIN_NAME = #{APP_DOMAIN_NAME}
AND f.ISDELETE = '0'
</select>
</mapper>

View File

@ -130,7 +130,6 @@
<include refid="tableName"></include>
set
CORPINFO_ID = #{CORPINFO_ID},
ENTERPRISE_ID = #{ENTERPRISE_ID},
CLASS_ID = #{CLASS_ID},
CURRICULUM_ID = #{CURRICULUM_ID},
CHAPTER_ID = #{CHAPTER_ID},
@ -176,7 +175,6 @@
<select id="classChapterlistPage" parameterType="page" resultType="pd">
SELECT
f.CORPINFO_ID,
f.ENTERPRISE_ID,
f.CLASS_ID,
cu.CURRICULUMNAME,
f.CURRICULUM_ID,
@ -333,7 +331,6 @@
<select id="getListByClass" resultType="com.zcloud.entity.PageData">
SELECT
f.CORPINFO_ID,
f.ENTERPRISE_ID,
f.CLASS_ID,
f.CURRICULUM_ID,
f.CREATOR,
@ -420,7 +417,6 @@
from
bus_class_curriculum_chapter c
LEFT JOIN bus_class cc ON c.CLASS_ID = cc.CLASS_ID
LEFT JOIN BUS_ENTERPRISE e ON e.ENTERPRISE_ID = cc.ENTERPRISE_ID
left join bus_videocourseware v on v.VIDEOCOURSEWARE_ID = c.VIDEOCOURSEWARE_ID
where c.ISDELETE = 0
and cc.state*1 > 1
@ -430,9 +426,6 @@
<if test="CORPINFO_ID != null and CORPINFO_ID != ''">
and c.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="ENTERPRISE_ID != null and ENTERPRISE_ID != ''">
and c.ENTERPRISE_ID = #{ENTERPRISE_ID}
</if>
<if test="YEAR != null and YEAR != ''">
and YEAR(c.CREATTIME)=#{YEAR}
</if>

View File

@ -107,7 +107,6 @@
<include refid="tableName"></include>
set
CORPINFO_ID = #{CORPINFO_ID},
ENTERPRISE_ID = #{ENTERPRISE_ID},
CLASS_ID = #{CLASS_ID},
CURRICULUM_ID = #{CURRICULUM_ID},
CLASSHOUR = #{CLASSHOUR},
@ -122,7 +121,6 @@
select
f.CLASSCURRICULUM_ID,
f.CORPINFO_ID,
f.ENTERPRISE_ID,
f.CLASS_ID,
f.CURRICULUM_ID,
f.CREATOR,

View File

@ -691,52 +691,18 @@
GROUP BY s.USER_ID
ORDER BY SUM_CLASSHOUR desc
</select>
<select id="getClassAllByCorOrEnt" resultType="com.zcloud.entity.PageData">
<if test="USER_ID != NULL and USER_ID != ''">
SELECT
<select id="getClassAllByCorp" resultType="com.zcloud.entity.PageData">
SELECT
c.CLASS_ID,
c.`NAME`
FROM
`bus_student` s
LEFT JOIN bus_class c on s.CLASS_ID = c.CLASS_ID
WHERE
s.USER_ID = #{USER_ID}
and c.STATE > 1
<if test="TRAINTYPE_ID != NULL and TRAINTYPE_ID != ''">
and c.TRAINTYPE != #{TRAINTYPE_ID}
</if>
GROUP BY s.CLASS_ID
ORDER BY c.`NAME`
from bus_class c
WHERE c.STATE > 1
and c.ISDELETE = 0
and c.CORPINFO_ID = #{CORPINFO_ID}
<if test="TRAINTYPE_ID != NULL and TRAINTYPE_ID != ''">
and c.TRAINTYPE != #{TRAINTYPE_ID}
</if>
<if test="CORPINFO_ID != NULL and CORPINFO_ID != ''">
SELECT c.CLASS_ID,
c.`NAME`
from bus_class c
left join bus_enterprise e on e.ENTERPRISE_ID = c.ENTERPRISE_ID
WHERE c.STATE > 1
and c.ISDELETE = 0
and c.CORPINFO_ID = #{CORPINFO_ID}
<if test="TRAINTYPE_ID != NULL and TRAINTYPE_ID != ''">
and c.TRAINTYPE != #{TRAINTYPE_ID}
</if>
<if test="AUTHORITY != null and AUTHORITY != ''"><!-- 培训类型 -->
AND e.CREATOR = #{AUTHORITY}
</if>
ORDER BY c.`NAME`
</if>
<if test="ENTERPRISE_ID != NULL and ENTERPRISE_ID != ''">
SELECT c.CLASS_ID,
c.`NAME`
from bus_class c
WHERE c.STATE > 1
and c.ISDELETE = 0
and c.ENTERPRISE_ID = #{ENTERPRISE_ID}
<if test="TRAINTYPE_ID != NULL and TRAINTYPE_ID != ''">
and c.TRAINTYPE != #{TRAINTYPE_ID}
</if>
ORDER BY c.`NAME`
</if>
ORDER BY c.`NAME`
</select>
<select id="listStrengthenByCorpNamelistPage" parameterType="page" resultType="pd">
SELECT

View File

@ -146,7 +146,6 @@
<include refid="tableName"></include>
set
CORPINFO_ID = #{CORPINFO_ID},
ENTERPRISE_ID = #{ENTERPRISE_ID},
CLASS_ID = #{CLASS_ID},
CURRICULUM_ID = #{CURRICULUM_ID},
DEPARTMENT_ID = #{DEPARTMENT_ID},

View File

@ -266,7 +266,7 @@
doe.NAME DEGREE_OF_EDUCATION_NAME,
pt.NAME PERSONNEL_TYPE_NAME,
m.NAME as MAJOR_NAME,
ci.NAME,
ci.NAME as CORP_NAME,
du.NAME as DUTIES_NAME,
ptf.NAME as POST_NAME
from
@ -277,7 +277,6 @@
left join sys_dictionaries m on m.DICTIONARIES_ID = f.MAJOR
left join sys_dictionaries du on du.DICTIONARIES_ID = f.DUTIES
left join sys_dictionaries pt on pt.DICTIONARIES_ID = f.PERSONNEL_TYPE
left join bus_enterprise e on e.ENTERPRISE_ID = f.ENTERPRISE_ID and e.ISDELETE = '0'
left join bus_corp_info ci on ci.CORPINFO_ID = f.CORPINFO_ID and ci.ISDELETE = '0'
left join sys_post ptf on ptf.POST_ID = f.POST_ID
where
@ -360,7 +359,7 @@
<include refid="Field"></include>,
ct.NAME CERTIFICATETYPE_NAME,
doe.NAME DEGREE_OF_EDUCATION_NAME,
u.AUTHENTICATION,
ui.AUTHENTICATION,
(
select
sum(c.CLASSHOUR)
@ -376,8 +375,7 @@
ssr.COMPLETE_CLASSHOUR,
ssr.STUDYSTATE,
ssr.STAGEEXAMSTATE,
IF(u.ID_PHOTO IS NULL or u.ID_PHOTO = "", 0, 1) HASUSERSIGN,
operator.NAME OPERATORNAME,
IF(ui.ID_PHOTO IS NULL or ui.ID_PHOTO = "", 0, 1) HASUSERSIGN,
c.NAME CLASS_NAME,
COUNT( DISTINCT ccc.VIDEOCOURSEWARE_ID) ALL_NUM,
IFNULL( max( CAST(ex.EXAMSCORE AS DECIMAL ( 10, 1 )) ), '无记录' ) EXAMSCORE,
@ -387,13 +385,11 @@
from
<include refid="tableName"></include>
f
LEFT JOIN SYS_USERINFO ui on ui.user_id = f.user_id
LEFT JOIN SYS_DICTIONARIES ct on ct.DICTIONARIES_ID = f.CERTIFICATETYPE
LEFT JOIN SYS_DICTIONARIES doe on doe.DICTIONARIES_ID = f.DEGREE_OF_EDUCATION
LEFT JOIN SYS_USER u on u.user_id = f.user_id
LEFT JOIN BUS_STAGESTUDENTRELATION ssr on ssr.STUDENT_ID = f.STUDENT_ID and ssr.ISDELETE = '0'
LEFT JOIN SYS_USER operator on operator.USER_ID = f.OPERATOR
LEFT JOIN BUS_CLASS c on c.CLASS_ID = f.CLASS_ID
LEFT JOIN BUS_ENTERPRISE e on c.ENTERPRISE_ID = e.ENTERPRISE_ID
LEFT JOIN bus_stageexam AS ex ON f.STUDENT_ID = ex.STUDENT_ID AND ex.ISDELETE = 0
LEFT JOIN bus_stageexampaper_input sei ON ex.STAGEEXAMPAPER_ID = sei.STAGEEXAMPAPERINPUT_ID
LEFT JOIN bus_curriculum_post clp ON f.CLASS_ID = clp.CLASS_ID and f.POST_ID = clp.POST_ID and clp.ISDELETE = 0
@ -481,7 +477,9 @@
c.END_TIME,
c.STATE,
IFNULL( max( CAST(ex.EXAMSCORE AS DECIMAL ( 10, 1 )) ), '无记录' ) EXAMSCORE,
GROUP_CONCAT(DISTINCT cn.CURRICULUMNAME) CURRICULUMNAME
GROUP_CONCAT(DISTINCT cn.CURRICULUMNAME) CURRICULUMNAME,
su.USER_SIGN_FILE_PATH,
su.PORTRAIT
FROM bus_student f
LEFT JOIN SYS_DICTIONARIES doe on doe.DICTIONARIES_ID = f.DEGREE_OF_EDUCATION
LEFT JOIN BUS_STAGESTUDENTRELATION ssr on ssr.STUDENT_ID = f.STUDENT_ID
@ -490,6 +488,7 @@
and f.DEPARTMENT_ID = clp.DEPARTMENT_ID
LEFT JOIN bus_curriculum cn ON clp.CURRICULUM_ID = cn.CURRICULUM_ID AND cn.ISDELETE = 0
LEFT JOIN bus_stageexam AS ex ON f.STUDENT_ID = ex.STUDENT_ID AND ex.ISDELETE = 0
LEFT JOIN sys_userinfo AS su ON f.USER_ID = su.USER_ID AND su.ISDELETE = 0
WHERE f.ISDELETE = '0'
AND c.ISDELETE = '0'
AND ssr.ISDELETE = '0'
@ -500,9 +499,6 @@
<if test="pd.STUDENT_NAME != null and pd.STUDENT_NAME != ''"><!-- 关键词检索 -->
and ( f.NAME LIKE CONCAT(CONCAT('%', #{pd.STUDENT_NAME}),'%') )
</if>
<if test="pd.ENTERPRISE_ID != null and pd.ENTERPRISE_ID != ''"><!-- 关键词检索 -->
AND f.ENTERPRISE_ID = #{pd.ENTERPRISE_ID}
</if>
<if test="pd.CODE != null and pd.CODE != ''"><!-- 关键词检索 -->
AND c.CODE = #{pd.CODE}
</if>
@ -668,7 +664,6 @@
left join sys_dictionaries s on s.DICTIONARIES_ID = f.SEX
left join sys_dictionaries ct on ct.DICTIONARIES_ID = f.CERTIFICATETYPE
left join sys_dictionaries doe on doe.DICTIONARIES_ID = f.DEGREE_OF_EDUCATION
left join bus_enterprise e on e.ENTERPRISE_ID = f.ENTERPRISE_ID and e.ISDELETE = '0'
where
<!--f.ISENABLE = '1'
and f.ISSTUDENT = 'true'-->
@ -956,7 +951,7 @@
from
<include refid="tableName"></include>
f
where f.FILE_NUMBER = #{FILE_NUMBER} and f.ISDELETE = '0' and f.ENTERPRISE_ID = #{ENTERPRISE_ID}
where f.FILE_NUMBER = #{FILE_NUMBER} and f.ISDELETE = '0' and f.CORPINFO_ID = #{CORPINFO_ID}
</select>
<select id="getByUserId" resultType="com.zcloud.entity.PageData">
select
@ -982,7 +977,7 @@
SELECT DISTINCT USER_ID_CARD,
GROUP_CONCAT(CLASS_ID) CLASS_ID
FROM bus_student
WHERE ENTERPRISE_ID = #{ENTERPRISE_ID}
WHERE CORPINFO_ID = #{CORPINFO_ID}
and FILE_NUMBER = #{FILE_NUMBER}
and ISDELETE = '0'
</select>
@ -1013,7 +1008,7 @@
<include refid="Field"></include>,
ct.NAME CERTIFICATETYPE_NAME,
doe.NAME DEGREE_OF_EDUCATION_NAME,
u.AUTHENTICATION,
ui.AUTHENTICATION,
(
select
sum(c.CLASSHOUR)
@ -1029,8 +1024,7 @@
ssr.COMPLETE_CLASSHOUR,
ssr.STUDYSTATE,
ssr.STAGEEXAMSTATE,
IF(u.ID_PHOTO IS NULL or u.ID_PHOTO = "", 0, 1) HASUSERSIGN,
operator.NAME OPERATORNAME,
IF(ui.ID_PHOTO IS NULL or ui.ID_PHOTO = "", 0, 1) HASUSERSIGN,
c.NAME CLASS_NAME,
COUNT( DISTINCT ccc.VIDEOCOURSEWARE_ID) ALL_NUM,
/*先将ex.EXAMSCORE varchar 转换成 数字 在进行MAX 否则比较大小会出问题*/
@ -1041,9 +1035,9 @@
from
<include refid="tableName"></include>
f
LEFT JOIN SYS_USERINFO ui on ui.user_id = f.user_id
LEFT JOIN SYS_DICTIONARIES ct on ct.DICTIONARIES_ID = f.CERTIFICATETYPE
LEFT JOIN SYS_DICTIONARIES doe on doe.DICTIONARIES_ID = f.DEGREE_OF_EDUCATION
LEFT JOIN SYS_USER u on u.user_id = f.user_id
LEFT JOIN BUS_STAGESTUDENTRELATION ssr on ssr.STUDENT_ID = f.STUDENT_ID and ssr.ISDELETE = '0'
LEFT JOIN SYS_USER operator on operator.USER_ID = f.OPERATOR
LEFT JOIN BUS_CLASS c on c.CLASS_ID = f.CLASS_ID
@ -1076,9 +1070,6 @@
<if test="pd.KEYWORDS!= null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and f.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
</if>
<if test="pd.ENTERPRISE_ID != null and pd.ENTERPRISE_ID != ''"><!-- 关键词检索 -->
and f.ENTERPRISE_ID = #{pd.ENTERPRISE_ID}
</if>
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''"><!-- 关键词检索 -->
and f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
@ -1092,9 +1083,6 @@
and f.CREATTIME &gt;= CONCAT(#{pd.START_TIME}, ' 00:00:00')
and f.CREATTIME &lt;= CONCAT(#{pd.END_TIME}, ' 23:59:59')
</if>
<if test="pd.POST_ID!= null and pd.POST_ID != ''"><!-- 关键词检索 -->
and f.POST_ID = #{pd.POST_ID}
</if>
<if test="pd.STUDYSTATE!= null and pd.STUDYSTATE != ''"><!-- 关键词检索 -->
and ssr.STUDYSTATE = #{pd.STUDYSTATE}
</if>
@ -1287,7 +1275,6 @@
and f.DEPARTMENT_ID = clp.DEPARTMENT_ID
LEFT JOIN bus_curriculum cn ON clp.CURRICULUM_ID = cn.CURRICULUM_ID AND cn.ISDELETE = 0
LEFT JOIN bus_stageexam AS ex ON f.STUDENT_ID = ex.STUDENT_ID AND ex.ISDELETE = 0
left join bus_enterprise e on c.ENTERPRISE_ID = e.ENTERPRISE_ID
WHERE f.ISDELETE = '0'
AND c.ISDELETE = '0'
AND ssr.ISDELETE = '0'
@ -1301,9 +1288,6 @@
<if test="STUDENT_NAME != null and STUDENT_NAME != ''"><!-- 关键词检索 -->
and ( f.NAME LIKE CONCAT(CONCAT('%', #{STUDENT_NAME}),'%') )
</if>
<if test="ENTERPRISE_ID != null and ENTERPRISE_ID != ''"><!-- 关键词检索 -->
AND f.ENTERPRISE_ID = #{ENTERPRISE_ID}
</if>
<if test="CODE != null and CODE != ''"><!-- 关键词检索 -->
AND c.CODE = #{CODE}
</if>
@ -1341,7 +1325,7 @@
<include refid="Field"></include>,
ct.NAME CERTIFICATETYPE_NAME,
doe.NAME DEGREE_OF_EDUCATION_NAME,
u.AUTHENTICATION,
ui.AUTHENTICATION,
(
select
sum(c.CLASSHOUR)
@ -1358,7 +1342,6 @@
ssr.STUDYSTATE,
ssr.STAGEEXAMSTATE,
IF(u.ID_PHOTO IS NULL or u.ID_PHOTO = "", 0, 1) HASUSERSIGN,
operator.NAME OPERATORNAME,
c.NAME CLASS_NAME,
c.STATE,
c.EXAMINATION,
@ -1373,8 +1356,8 @@
LEFT JOIN SYS_DICTIONARIES ct on ct.DICTIONARIES_ID = f.CERTIFICATETYPE
LEFT JOIN SYS_DICTIONARIES doe on doe.DICTIONARIES_ID = f.DEGREE_OF_EDUCATION
LEFT JOIN SYS_USER u on u.user_id = f.user_id
LEFT JOIN SYS_USERINFO ui on ui.user_id = f.user_id
LEFT JOIN BUS_STAGESTUDENTRELATION ssr on ssr.STUDENT_ID = f.STUDENT_ID and ssr.ISDELETE = '0'
LEFT JOIN SYS_USER operator on operator.USER_ID = f.OPERATOR
LEFT JOIN BUS_CLASS c on c.CLASS_ID = f.CLASS_ID
LEFT JOIN bus_stageexam AS ex ON f.STUDENT_ID = ex.STUDENT_ID AND ex.ISDELETE = 0
LEFT JOIN bus_stageexampaper_input sei ON ex.STAGEEXAMPAPER_ID = sei.STAGEEXAMPAPERINPUT_ID

View File

@ -0,0 +1,81 @@
安全生产教育培训动态评估报告
企业名称:<<${value1}>>
评估日期:<<${value3}>>
评估概述
本报告旨在对<<${value1}>>的安全生产培训进行动态评估,安全生产培训的目标是提高员工的安全意识和技能,促进工作场所的安全管理和事故预防。本报告将对培训的实施情况、培训效果、参与度、员工考试通过率、知识盲点以及可能的改进措施进行评估和分析。
评估内容
贵公司于<<${value2}>> -- <<${value3}>>进行了 <<${value4}>>,培训内容如下:
<<${value5}>>
考试结果
本次考试共<<${value6}>>人参加,合格人数<<${value7}>>人,未合格人数<<${value8}>>人,通过率<<${value9}>>%。具体情况如下:
评估结果和分析
基于评估结果和培训过程中的观察,我们对员工的知识盲点进行分析,指出可能存在的理解不足或需要加强的知识领域,主要知识盲点体现为:
<<${value10}>>
标签名称
错误率
<<${list1.value1}>>
<<${list1.value2}>>%
知识盲点对应课件为:
<<${value11}>>
评估建议
存在的知识盲点需要进一步加强和补充。我们建议您将重点放在弥补这些盲点上,通过进一步学习、参与讨论或与安全专家交流弥补知识盲区。
强化培训记录
强化培训考试记录
班级名称
培训时间
<<${value4}>>
<<${value2}>> - <<${value3}>>
培训人数
合格人数
<<${value12}>>
<<${value13}>>
合格学员名单
序号
姓名
身份证号
手机号
性别
效果评估成绩
<<${list2.value1}>>
<<${list2.value2}>>
<<${list2.value3}>>
<<${list2.value4}>>
<<${list2.value5}>>
<<${list2.value6}>>
未合格学员名单
序号
姓名
身份证号
手机号
性别
效果评估成绩
<<${list3.value1}>>
<<${list3.value2}>>
<<${list3.value3}>>
<<${list3.value4}>>
<<${list3.value5}>>
<<${list3.value6}>>

View File

@ -0,0 +1,23 @@
学时证明
姓名
<<${value2}>>
证件类型
<<${value3}>>
证件编号
<<${value4}>>
培训单位名称
<<${value5}>>
班级名称
<<${value6}>>
培训日期
<<${value7}>>
培训类型
<<${value8}>>
视频学习时长
<<${value9}>>
培训单位:(盖章) 日期:<<${value12}>>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
学时证明
姓名
<<${value2}>>
证件号码
<<${value3}>>
单位名称
<<${value4}>>
班级编码
<<${value5}>>
班级名称
<<${value6}>>
初次/末次学习时间
<<${value7}>>
培训科目
<<${value8}>>
累计学时
<<${value9}>>
盖章:(盖章)
日期:<<${value10}>>

View File

@ -0,0 +1,13 @@
培训内容
姓名:<<${value15}>> 身份证号:<<${value16}>>
班级名称
<<${value17}>>
序号
课程内容
课时
讲师
<<${list1.value1}>>
<<${list1.value2}>>
<<${list1.value3}>>
<<${list1.value4}>>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
课程名称
<<${value1}>>
序号
课程内容
课时
讲师
<<${list1.value1}>>
<<${list1.value2}>>
<<${list1.value3}>>
<<${list1.value4}>>

View File

@ -0,0 +1,30 @@
参考https://blog.csdn.net/libralee233/article/details/122358732
https://blog.csdn.net/weixin_44684303/article/details/128654324 (导出图片)
文字替换:<<${value}>>
姓名
<<${value1}>>
性别
<<${value2}>>
列表(不带图片)
姓名
性别
<<${list1.value1}>>
<<${list1.value2}>>
列表(带图片)
姓名
图片
图片2
<<@before-row[#list list2 as item]>><<@after-row[/#list]>><<${item.value1}>>

View File

@ -0,0 +1,14 @@
列表(合并单元格)
姓名
性别
合并列
图片
合并列图片
${demo.value1}
${demo.value2}

View File

@ -0,0 +1,826 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application progid="Word.Document"?>
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" w:macrosPresent="no" w:embeddedObjPresent="no"
w:ocxPresent="no" xml:space="preserve"
>
<o:DocumentProperties>
<o:Author>Administrator</o:Author>
<o:LastAuthor>Administrator</o:LastAuthor>
<o:Created>2023-03-10T01:32:00Z</o:Created>
<o:LastSaved>2023-03-10T02:34:43Z</o:LastSaved>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>0</o:Words>
<o:Characters>0</o:Characters>
<o:Lines>0</o:Lines>
<o:Paragraphs>0</o:Paragraphs>
<o:CharactersWithSpaces>0</o:CharactersWithSpaces>
<o:Version>14</o:Version>
</o:DocumentProperties>
<o:CustomDocumentProperties>
<o:KSOProductBuildVer dt:dt="string">2052-11.1.0.11544</o:KSOProductBuildVer>
<o:ICV dt:dt="string">8DE9D4DB0BA34EBB824E8FF70E8A456E</o:ICV>
</o:CustomDocumentProperties>
<w:fonts>
<w:defaultFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
<w:font w:name="Times New Roman">
<w:panose-1 w:val="02020603050405020304"/>
<w:charset w:val="00"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
w:csb-1="FFFF0000"/>
</w:font>
<w:font w:name="宋体">
<w:panose-1 w:val="02010600030101010101"/>
<w:charset w:val="86"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000006" w:usb-3="00000000" w:csb-0="00040001"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="Wingdings">
<w:panose-1 w:val="05000000000000000000"/>
<w:charset w:val="02"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="Arial">
<w:panose-1 w:val="020B0604020202020204"/>
<w:charset w:val="01"/>
<w:family w:val="SWiss"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
w:csb-1="FFFF0000"/>
</w:font>
<w:font w:name="黑体">
<w:panose-1 w:val="02010609060101010101"/>
<w:charset w:val="86"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="800002BF" w:usb-1="38CF7CFA" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="Courier New">
<w:panose-1 w:val="02070309020205020404"/>
<w:charset w:val="01"/>
<w:family w:val="Modern"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
w:csb-1="FFFF0000"/>
</w:font>
<w:font w:name="Symbol">
<w:panose-1 w:val="05050102010706020507"/>
<w:charset w:val="02"/>
<w:family w:val="Roman"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="Calibri">
<w:panose-1 w:val="020F0502020204030204"/>
<w:charset w:val="00"/>
<w:family w:val="SWiss"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="E4002EFF" w:usb-1="C000247B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="200001FF"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="微软雅黑">
<w:panose-1 w:val="020B0503020204020204"/>
<w:charset w:val="86"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="80000287" w:usb-1="2ACF3C50" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="0004001F"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="Tahoma">
<w:panose-1 w:val="020B0604030504040204"/>
<w:charset w:val="00"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="E1002EFF" w:usb-1="C000605B" w:usb-2="00000029" w:usb-3="00000000" w:csb-0="200101FF"
w:csb-1="20280000"/>
</w:font>
</w:fonts>
<w:styles>
<w:latentStyles w:defLockedState="off" w:latentStyleCount="260">
<w:lsdException w:name="Normal"/>
<w:lsdException w:name="heading 1"/>
<w:lsdException w:name="heading 2"/>
<w:lsdException w:name="heading 3"/>
<w:lsdException w:name="heading 4"/>
<w:lsdException w:name="heading 5"/>
<w:lsdException w:name="heading 6"/>
<w:lsdException w:name="heading 7"/>
<w:lsdException w:name="heading 8"/>
<w:lsdException w:name="heading 9"/>
<w:lsdException w:name="index 1"/>
<w:lsdException w:name="index 2"/>
<w:lsdException w:name="index 3"/>
<w:lsdException w:name="index 4"/>
<w:lsdException w:name="index 5"/>
<w:lsdException w:name="index 6"/>
<w:lsdException w:name="index 7"/>
<w:lsdException w:name="index 8"/>
<w:lsdException w:name="index 9"/>
<w:lsdException w:name="toc 1"/>
<w:lsdException w:name="toc 2"/>
<w:lsdException w:name="toc 3"/>
<w:lsdException w:name="toc 4"/>
<w:lsdException w:name="toc 5"/>
<w:lsdException w:name="toc 6"/>
<w:lsdException w:name="toc 7"/>
<w:lsdException w:name="toc 8"/>
<w:lsdException w:name="toc 9"/>
<w:lsdException w:name="Normal Indent"/>
<w:lsdException w:name="footnote text"/>
<w:lsdException w:name="annotation text"/>
<w:lsdException w:name="header"/>
<w:lsdException w:name="footer"/>
<w:lsdException w:name="index heading"/>
<w:lsdException w:name="caption"/>
<w:lsdException w:name="table of figures"/>
<w:lsdException w:name="envelope address"/>
<w:lsdException w:name="envelope return"/>
<w:lsdException w:name="footnote reference"/>
<w:lsdException w:name="annotation reference"/>
<w:lsdException w:name="line number"/>
<w:lsdException w:name="page number"/>
<w:lsdException w:name="endnote reference"/>
<w:lsdException w:name="endnote text"/>
<w:lsdException w:name="table of authorities"/>
<w:lsdException w:name="macro"/>
<w:lsdException w:name="toa heading"/>
<w:lsdException w:name="List"/>
<w:lsdException w:name="List Bullet"/>
<w:lsdException w:name="List Number"/>
<w:lsdException w:name="List 2"/>
<w:lsdException w:name="List 3"/>
<w:lsdException w:name="List 4"/>
<w:lsdException w:name="List 5"/>
<w:lsdException w:name="List Bullet 2"/>
<w:lsdException w:name="List Bullet 3"/>
<w:lsdException w:name="List Bullet 4"/>
<w:lsdException w:name="List Bullet 5"/>
<w:lsdException w:name="List Number 2"/>
<w:lsdException w:name="List Number 3"/>
<w:lsdException w:name="List Number 4"/>
<w:lsdException w:name="List Number 5"/>
<w:lsdException w:name="Title"/>
<w:lsdException w:name="Closing"/>
<w:lsdException w:name="Signature"/>
<w:lsdException w:name="Default Paragraph Font"/>
<w:lsdException w:name="Body Text"/>
<w:lsdException w:name="Body Text Indent"/>
<w:lsdException w:name="List Continue"/>
<w:lsdException w:name="List Continue 2"/>
<w:lsdException w:name="List Continue 3"/>
<w:lsdException w:name="List Continue 4"/>
<w:lsdException w:name="List Continue 5"/>
<w:lsdException w:name="Message Header"/>
<w:lsdException w:name="Subtitle"/>
<w:lsdException w:name="Salutation"/>
<w:lsdException w:name="Date"/>
<w:lsdException w:name="Body Text First Indent"/>
<w:lsdException w:name="Body Text First Indent 2"/>
<w:lsdException w:name="Note Heading"/>
<w:lsdException w:name="Body Text 2"/>
<w:lsdException w:name="Body Text 3"/>
<w:lsdException w:name="Body Text Indent 2"/>
<w:lsdException w:name="Body Text Indent 3"/>
<w:lsdException w:name="Block Text"/>
<w:lsdException w:name="Hyperlink"/>
<w:lsdException w:name="FollowedHyperlink"/>
<w:lsdException w:name="Strong"/>
<w:lsdException w:name="Emphasis"/>
<w:lsdException w:name="Document Map"/>
<w:lsdException w:name="Plain Text"/>
<w:lsdException w:name="E-mail Signature"/>
<w:lsdException w:name="Normal (Web)"/>
<w:lsdException w:name="HTML Acronym"/>
<w:lsdException w:name="HTML Address"/>
<w:lsdException w:name="HTML Cite"/>
<w:lsdException w:name="HTML Code"/>
<w:lsdException w:name="HTML Definition"/>
<w:lsdException w:name="HTML Keyboard"/>
<w:lsdException w:name="HTML Preformatted"/>
<w:lsdException w:name="HTML Sample"/>
<w:lsdException w:name="HTML Typewriter"/>
<w:lsdException w:name="HTML Variable"/>
<w:lsdException w:name="Normal Table"/>
<w:lsdException w:name="annotation subject"/>
<w:lsdException w:name="Table Simple 1"/>
<w:lsdException w:name="Table Simple 2"/>
<w:lsdException w:name="Table Simple 3"/>
<w:lsdException w:name="Table Classic 1"/>
<w:lsdException w:name="Table Classic 2"/>
<w:lsdException w:name="Table Classic 3"/>
<w:lsdException w:name="Table Classic 4"/>
<w:lsdException w:name="Table Colorful 1"/>
<w:lsdException w:name="Table Colorful 2"/>
<w:lsdException w:name="Table Colorful 3"/>
<w:lsdException w:name="Table Columns 1"/>
<w:lsdException w:name="Table Columns 2"/>
<w:lsdException w:name="Table Columns 3"/>
<w:lsdException w:name="Table Columns 4"/>
<w:lsdException w:name="Table Columns 5"/>
<w:lsdException w:name="Table Grid 1"/>
<w:lsdException w:name="Table Grid 2"/>
<w:lsdException w:name="Table Grid 3"/>
<w:lsdException w:name="Table Grid 4"/>
<w:lsdException w:name="Table Grid 5"/>
<w:lsdException w:name="Table Grid 6"/>
<w:lsdException w:name="Table Grid 7"/>
<w:lsdException w:name="Table Grid 8"/>
<w:lsdException w:name="Table List 1"/>
<w:lsdException w:name="Table List 2"/>
<w:lsdException w:name="Table List 3"/>
<w:lsdException w:name="Table List 4"/>
<w:lsdException w:name="Table List 5"/>
<w:lsdException w:name="Table List 6"/>
<w:lsdException w:name="Table List 7"/>
<w:lsdException w:name="Table List 8"/>
<w:lsdException w:name="Table 3D effects 1"/>
<w:lsdException w:name="Table 3D effects 2"/>
<w:lsdException w:name="Table 3D effects 3"/>
<w:lsdException w:name="Table Contemporary"/>
<w:lsdException w:name="Table Elegant"/>
<w:lsdException w:name="Table Professional"/>
<w:lsdException w:name="Table Subtle 1"/>
<w:lsdException w:name="Table Subtle 2"/>
<w:lsdException w:name="Table Web 1"/>
<w:lsdException w:name="Table Web 2"/>
<w:lsdException w:name="Table Web 3"/>
<w:lsdException w:name="Balloon Text"/>
<w:lsdException w:name="Table Grid"/>
<w:lsdException w:name="Table Theme"/>
<w:lsdException w:name="Light Shading"/>
<w:lsdException w:name="Light List"/>
<w:lsdException w:name="Light Grid"/>
<w:lsdException w:name="Medium Shading 1"/>
<w:lsdException w:name="Medium Shading 2"/>
<w:lsdException w:name="Medium List 1"/>
<w:lsdException w:name="Medium List 2"/>
<w:lsdException w:name="Medium Grid 1"/>
<w:lsdException w:name="Medium Grid 2"/>
<w:lsdException w:name="Medium Grid 3"/>
<w:lsdException w:name="Dark List"/>
<w:lsdException w:name="Colorful Shading"/>
<w:lsdException w:name="Colorful List"/>
<w:lsdException w:name="Colorful Grid"/>
<w:lsdException w:name="Light Shading Accent 1"/>
<w:lsdException w:name="Light List Accent 1"/>
<w:lsdException w:name="Light Grid Accent 1"/>
<w:lsdException w:name="Medium Shading 1 Accent 1"/>
<w:lsdException w:name="Medium Shading 2 Accent 1"/>
<w:lsdException w:name="Medium List 1 Accent 1"/>
<w:lsdException w:name="Medium List 2 Accent 1"/>
<w:lsdException w:name="Medium Grid 1 Accent 1"/>
<w:lsdException w:name="Medium Grid 2 Accent 1"/>
<w:lsdException w:name="Medium Grid 3 Accent 1"/>
<w:lsdException w:name="Dark List Accent 1"/>
<w:lsdException w:name="Colorful Shading Accent 1"/>
<w:lsdException w:name="Colorful List Accent 1"/>
<w:lsdException w:name="Colorful Grid Accent 1"/>
<w:lsdException w:name="Light Shading Accent 2"/>
<w:lsdException w:name="Light List Accent 2"/>
<w:lsdException w:name="Light Grid Accent 2"/>
<w:lsdException w:name="Medium Shading 1 Accent 2"/>
<w:lsdException w:name="Medium Shading 2 Accent 2"/>
<w:lsdException w:name="Medium List 1 Accent 2"/>
<w:lsdException w:name="Medium List 2 Accent 2"/>
<w:lsdException w:name="Medium Grid 1 Accent 2"/>
<w:lsdException w:name="Medium Grid 2 Accent 2"/>
<w:lsdException w:name="Medium Grid 3 Accent 2"/>
<w:lsdException w:name="Dark List Accent 2"/>
<w:lsdException w:name="Colorful Shading Accent 2"/>
<w:lsdException w:name="Colorful List Accent 2"/>
<w:lsdException w:name="Colorful Grid Accent 2"/>
<w:lsdException w:name="Light Shading Accent 3"/>
<w:lsdException w:name="Light List Accent 3"/>
<w:lsdException w:name="Light Grid Accent 3"/>
<w:lsdException w:name="Medium Shading 1 Accent 3"/>
<w:lsdException w:name="Medium Shading 2 Accent 3"/>
<w:lsdException w:name="Medium List 1 Accent 3"/>
<w:lsdException w:name="Medium List 2 Accent 3"/>
<w:lsdException w:name="Medium Grid 1 Accent 3"/>
<w:lsdException w:name="Medium Grid 2 Accent 3"/>
<w:lsdException w:name="Medium Grid 3 Accent 3"/>
<w:lsdException w:name="Dark List Accent 3"/>
<w:lsdException w:name="Colorful Shading Accent 3"/>
<w:lsdException w:name="Colorful List Accent 3"/>
<w:lsdException w:name="Colorful Grid Accent 3"/>
<w:lsdException w:name="Light Shading Accent 4"/>
<w:lsdException w:name="Light List Accent 4"/>
<w:lsdException w:name="Light Grid Accent 4"/>
<w:lsdException w:name="Medium Shading 1 Accent 4"/>
<w:lsdException w:name="Medium Shading 2 Accent 4"/>
<w:lsdException w:name="Medium List 1 Accent 4"/>
<w:lsdException w:name="Medium List 2 Accent 4"/>
<w:lsdException w:name="Medium Grid 1 Accent 4"/>
<w:lsdException w:name="Medium Grid 2 Accent 4"/>
<w:lsdException w:name="Medium Grid 3 Accent 4"/>
<w:lsdException w:name="Dark List Accent 4"/>
<w:lsdException w:name="Colorful Shading Accent 4"/>
<w:lsdException w:name="Colorful List Accent 4"/>
<w:lsdException w:name="Colorful Grid Accent 4"/>
<w:lsdException w:name="Light Shading Accent 5"/>
<w:lsdException w:name="Light List Accent 5"/>
<w:lsdException w:name="Light Grid Accent 5"/>
<w:lsdException w:name="Medium Shading 1 Accent 5"/>
<w:lsdException w:name="Medium Shading 2 Accent 5"/>
<w:lsdException w:name="Medium List 1 Accent 5"/>
<w:lsdException w:name="Medium List 2 Accent 5"/>
<w:lsdException w:name="Medium Grid 1 Accent 5"/>
<w:lsdException w:name="Medium Grid 2 Accent 5"/>
<w:lsdException w:name="Medium Grid 3 Accent 5"/>
<w:lsdException w:name="Dark List Accent 5"/>
<w:lsdException w:name="Colorful Shading Accent 5"/>
<w:lsdException w:name="Colorful List Accent 5"/>
<w:lsdException w:name="Colorful Grid Accent 5"/>
<w:lsdException w:name="Light Shading Accent 6"/>
<w:lsdException w:name="Light List Accent 6"/>
<w:lsdException w:name="Light Grid Accent 6"/>
<w:lsdException w:name="Medium Shading 1 Accent 6"/>
<w:lsdException w:name="Medium Shading 2 Accent 6"/>
<w:lsdException w:name="Medium List 1 Accent 6"/>
<w:lsdException w:name="Medium List 2 Accent 6"/>
<w:lsdException w:name="Medium Grid 1 Accent 6"/>
<w:lsdException w:name="Medium Grid 2 Accent 6"/>
<w:lsdException w:name="Medium Grid 3 Accent 6"/>
<w:lsdException w:name="Dark List Accent 6"/>
<w:lsdException w:name="Colorful Shading Accent 6"/>
<w:lsdException w:name="Colorful List Accent 6"/>
<w:lsdException w:name="Colorful Grid Accent 6"/>
</w:latentStyles>
<w:style w:type="paragraph" w:styleId="a1" w:default="on">
<w:name w:val="Normal"/>
<w:pPr>
<w:widowControl w:val="off"/>
<w:jc w:val="both"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Calibri" w:h-ansi="Calibri" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
<w:sz w:val="21"/>
<w:sz-cs w:val="22"/>
</w:rPr>
</w:style>
<w:style w:type="character" w:styleId="a4" w:default="on">
<w:name w:val="Default Paragraph Font"/>
<w:semiHidden/>
</w:style>
<w:style w:type="table" w:styleId="a2" w:default="on">
<w:name w:val="Normal Table"/>
<w:semiHidden/>
<w:tblPr>
<w:tblCellMar>
<w:top w:w="0" w:type="dxa"/>
<w:left w:w="108" w:type="dxa"/>
<w:bottom w:w="0" w:type="dxa"/>
<w:right w:w="108" w:type="dxa"/>
</w:tblCellMar>
</w:tblPr>
</w:style>
<w:style w:type="table" w:styleId="a3">
<w:name w:val="Table Grid"/>
<w:basedOn w:val="a2"/>
<w:pPr>
<w:pStyle w:val="a2"/>
<w:widowControl w:val="off"/>
<w:jc w:val="both"/>
</w:pPr>
<w:tblPr>
<w:tblBorders>
<w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
</w:tblBorders>
</w:tblPr>
</w:style>
</w:styles>
<w:bgPict>
<w:background/>
<v:background id="_x0000_s1025">
<v:fill on="f" focussize="0,0"/>
</v:background>
</w:bgPict>
<w:docPr>
<w:view w:val="print"/>
<w:zoom w:percent="100"/>
<w:characterSpacingControl w:val="CompressPunctuation"/>
<w:documentProtection w:enforcement="off"/>
<w:punctuationKerning/>
<w:bordersDontSurroundHeader/>
<w:bordersDontSurroundFooter/>
<w:defaultTabStop w:val="420"/>
<w:drawingGridVerticalSpacing w:val="156"/>
<w:displayHorizontalDrawingGridEvery w:val="0"/>
<w:displayVerticalDrawingGridEvery w:val="2"/>
<w:compat>
<w:adjustLineHeightInTable/>
<w:ulTrailSpace/>
<w:doNotExpandShiftReturn/>
<w:balanceSingleByteDoubleByteWidth/>
<w:useFELayout/>
<w:spaceForUL/>
<w:wrapTextWithPunct/>
<w:breakWrappedTables/>
<w:useAsianBreakRules/>
<w:dontGrowAutofit/>
<w:useFELayout/>
</w:compat>
</w:docPr>
<w:body>
<wx:sect>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:fareast="宋体" w:hint="default"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:t>列表(合并单元格)</w:t>
</w:r>
</w:p>
<w:tbl>
<w:tblPr>
<w:tblStyle w:val="a3"/>
<w:tblW w:w="0" w:type="auto"/>
<w:tblInd w:w="0" w:type="dxa"/>
<w:tblBorders>
<w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
</w:tblBorders>
<w:tblCellMar>
<w:top w:w="0" w:type="dxa"/>
<w:left w:w="108" w:type="dxa"/>
<w:bottom w:w="0" w:type="dxa"/>
<w:right w:w="108" w:type="dxa"/>
</w:tblCellMar>
</w:tblPr>
<w:tblGrid>
<w:gridCol w:w="1689"/>
<w:gridCol w:w="1689"/>
<w:gridCol w:w="1562"/>
<w:gridCol w:w="1703"/>
<w:gridCol w:w="1879"/>
</w:tblGrid>
<w:tr>
<w:tblPrEx>
<w:tblBorders>
<w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
</w:tblBorders>
<w:tblCellMar>
<w:top w:w="0" w:type="dxa"/>
<w:left w:w="108" w:type="dxa"/>
<w:bottom w:w="0" w:type="dxa"/>
<w:right w:w="108" w:type="dxa"/>
</w:tblCellMar>
</w:tblPrEx>
<w:trPr>
<w:trHeight w:val="287" w:h-rule="atLeast"/>
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="1704" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:fareast="宋体" w:hint="default"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:t>姓名</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1704" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:fareast="宋体" w:hint="default"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:t>性别</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1704" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:hint="default"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:t>合并列</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1704" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:hint="default"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:t>图片</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1704" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:hint="default"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:t>合并列图片</w:t>
</w:r>
</w:p>
</w:tc>
</w:tr>
<#list list1 as demo>
<w:tr>
<w:tblPrEx>
<w:tblBorders>
<w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
</w:tblBorders>
<w:tblCellMar>
<w:top w:w="0" w:type="dxa"/>
<w:left w:w="108" w:type="dxa"/>
<w:bottom w:w="0" w:type="dxa"/>
<w:right w:w="108" w:type="dxa"/>
</w:tblCellMar>
</w:tblPrEx>
<w:trPr/>
<w:tc>
<w:tcPr>
<w:tcW w:w="1704" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:fareast="宋体" w:hint="default"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:t>${demo.value1}</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1704" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:fareast="宋体" w:hint="fareast"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:t>${demo.value2}</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1704" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1704" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:hint="default"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
<aml:annotation aml:id="0" w:type="Word.Bookmark.Start" w:name="pic"/>
<w:r>
<w:rPr>
<w:rFonts w:hint="default"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:pict>
<w:binData w:name="wordml://1_${demo_index}.jpg">
${demo.picx}
</w:binData>
<v:shape id="_x0000_s1026" o:spt="75" alt="apic40827" type="#_x0000_t75"
style="height:41.6pt;width:74.1pt;" filled="f" o:preferrelative="t"
stroked="f" coordsize="21600,21600">
<v:path/>
<v:fill on="f" focussize="0,0"/>
<v:stroke on="f"/>
<v:imagedata src="wordml://1_${demo_index}.jpg" o:title=""/>
<o:lock v:ext="edit" aspectratio="t"/>
<w10:wrap type="none"/>
<w10:anchorlock/>
</v:shape>
</w:pict>
</w:r>
<aml:annotation aml:id="0" w:type="Word.Bookmark.End"/>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1704" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
<#if (demo_index??)&&(demo_index==0)>
<w:vmerge w:val="restart"/>
<#else>
<w:vmerge/>
</#if>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
<aml:annotation aml:id="1" w:type="Word.Bookmark.Start" w:name="pic1"/>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:vertAlign w:val="baseline"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:pict>
<w:binData w:name="wordml://2_${demo_index}.jpg">
${demo.picx}
</w:binData>
<v:shape id="_x0000_s1027" o:spt="75" alt="apic40824" type="#_x0000_t75"
style="height:158.9pt;width:83.15pt;" filled="f" o:preferrelative="t"
stroked="f" coordsize="21600,21600">
<v:path/>
<v:fill on="f" focussize="0,0"/>
<v:stroke on="f"/>
<v:imagedata src="wordml://2_${demo_index}.jpg" o:title=""/>
<o:lock v:ext="edit" aspectratio="t"/>
<w10:wrap type="none"/>
<w10:anchorlock/>
</v:shape>
</w:pict>
</w:r>
<aml:annotation aml:id="1" w:type="Word.Bookmark.End"/>
</w:p>
</w:tc>
</w:tr>
</#list>
</w:tbl>
<w:p>
<w:pPr>
<w:tabs>
<w:tab w:val="left" w:pos="3246"/>
</w:tabs>
<w:rPr>
<w:rFonts w:fareast="宋体" w:hint="default"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:tab/>
</w:r>
</w:p>
<w:p/>
<w:sectPr>
<w:pgSz w:w="11906" w:h="16838"/>
<w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="720" w:footer="720"
w:gutter="0"/>
<w:cols w:space="720"/>
<w:docGrid w:type="lines" w:line-pitch="312"/>
</w:sectPr>
</wx:sect>
</w:body>
</w:wordDocument>

View File

@ -0,0 +1,25 @@
安全培训教育管理台账
单位名称:<<${value1}>>
序号
培训时间
培训对象
培训类型
培训内容
参加人数
培训学时
培训地点
培训教师
考核方式
汇总考核情况
<<${list1.value1}>>
<<${list1.value2}>>
<<${list1.value3}>>
<<${list1.value4}>>
<<${list1.value5}>>
<<${list1.value6}>>
<<${list1.value7}>>
<<${list1.value8}>>
<<${list1.value9}>>
<<${list1.value10}>>
<<${list1.value11}>>
档案管理人员:<<${value2}>> 更新日期:<<${value3}>>

View File

@ -0,0 +1,20 @@
<<${value1}>>培训综合考评报告
培训班名称
<<${value3}>>
培训组织部门
<<${value4}>>
评估日期
<<${value5}>>
评估方式
<<${value6}>>
本次工作培训描述
<<${value7}>>
本次培训考评结论
<<${value8}>>
改进意见建议
<<${value9}>>
评估负责人
<<${value10}>>
参加评估人
<<${value11}>>

View File

@ -0,0 +1,17 @@
<<${value15}>>
(满分:<<${value16}>>分)
姓名:<<${value18}>>
分数:<<${value20}>>
考试时间:<<${value19}>>
签字:
<<[#list>><<[#if>>
<<${item.value1}>><<${item.value2}>>.<<${item.value3}>> (题目分值:<<${item.value4}>> 正确答案:<<${item.value10}>><<[#if>> 学员答案:<<${item.value9}>><<[/#if]>>
<<${item.value5}>>
<<${item.value6}>>
<<${item.value7}>>
<<${item.value8}>>
<<[#else]>>
<<${item.value1}>><<${item.value2}>>.<<${item.value3}>> (题目分值:<<${item.value4}>> 正确答案:<<${item.value10}>><<[#if>> 学员答案:<<${item.value9}>><<[/#if]>>
<<${item.value5}>> <<${item.value6}>>
<<[/#if]>><<[/#list]>>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
<<${value15}>>
姓名:<<${value18}>>
身份证号:<<${value17}>>
时间:<<${value19}>>分钟
总分:<<${value16}>>分
考试得分:<<${value20}>>分
一.单选题<<[#if>>(每题<<${value21}>>分)<<[/#if]>><<[#list>>
<<${item.value2}>>.<<${item.value3}>>
<<[#if>>学员答案:<<${item.value9}>> 正确答案:<<${item.value10}>> <<[/#if]>>
<<${item.value5}>>
<<${item.value6}>>
<<${item.value7}>>
<<${item.value8}>><<[/#list]>>
二.多选题<<[#if>>(每题<<${value22}>>分)<<[/#if]>><<[#list>>
<<${item.value2}>>.<<${item.value3}>>
<<[#if>>学员答案:<<${item.value9}>> 正确答案:<<${item.value10}>><<[/#if]>>
<<${item.value5}>> <<${item.value6}>><<[/#list]>>
三.判断题<<[#if>>(每题<<${value23}>>分)<<[/#if]>><<[#list>>
<<${item.value2}>>.<<${item.value3}>>
<<[#if>>学员答案:<<${item.value9}>> 正确答案:<<${item.value10}>><<[/#if]>>
<<${item.value5}>> <<${item.value6}>><<[/#list]>>

View File

@ -0,0 +1,15 @@
<<${value1}>>
(满分:<<${value2}>>分)
<<[#list>><<[#if>>
<<${item.value1}>><<${item.value2}>>.<<${item.value3}>> (题目分值:<<${item.value4}>> 正确答案:<<${item.value10}>>
<<${item.value5}>>
<<${item.value6}>>
<<${item.value7}>>
<<${item.value8}>>
<<[#else]>><<[#if>>
<<${item.value1}>><<${item.value2}>>.<<${item.value3}>> (题目分值:<<${item.value4}>> 正确答案:<<${item.value10}>>
<<${item.value5}>> <<${item.value6}>>
<<[#else]>>
<<${item.value1}>><<${item.value2}>>.<<${item.value3}>> (题目分值:<<${item.value4}>> 正确答案:<<${item.value10}>>
<<[/#if]>><<[/#if]>><<[/#list]>>

View File

@ -0,0 +1,39 @@
培训资金提取和使用情况管理台账
单位名称:<<${value1}>>
序号
日期
费用项目
余额
提取金额
项目类型
培训教材
教具费
师资费
试卷
印制费
外出
培训费
教学设备、课桌椅等购置维护费
培训
活动费
委托
培训费
其他与培训有关的直接支出
<<${list1.value1}>>
<<${list1.value2}>>
<<${list1.value3}>>
<<${list1.value13}>>
<<${list1.value4}>>
<<${list1.value5}>>
<<${list1.value6}>>
<<${list1.value7}>>
<<${list1.value8}>>
<<${list1.value9}>>
<<${list1.value10}>>
<<${list1.value11}>>
<<${list1.value12}>>
制表人:<<${value2}>> 编制日期:<<${value3}>> 审核人:<<${value4}>> 审核日期:<<${value5}>>
填表说明:1.将实际发生的费用金额记录在费用项目栏内。2.培训提取比例按职工工资1.5%,可按季或月提取。

View File

@ -0,0 +1,21 @@
档案编号:<<${value1}>>
生产经营单位从业人员安全培训档案
姓 名:<<${value2}>>
身份证号:<<${value3}>>
建档日期:<<${value4}>>
单位名称(公章):<<${value5}>>

View File

@ -0,0 +1,19 @@
学员学习档案
姓 名:<<${value1}>>
身份证号:<<${value2}>>
生成日期:<<${value3}>>
单位名称(盖章):

View File

@ -0,0 +1,40 @@
生产经营单位安全培训教材会审表
教材名称
<<${var0}>>
出版书号
<<${var9}>>
编写单位
<<${var1}>>
编写时间
<<${var2}>>
教材类型
<<${var6}>>
会审地点
<<${var11}>>
主持人
<<${var7}>>
会审时间
<<${var8}>>
安全培训教材会审情况
序号
审查人员
工作部门
职务/职称
审查意见
本人签字
<<${item.value6}>>
<<${item.value1}>>
<<${item.value2}>>
<<${item.value3}>>
<<${item.value4}>>
会审意见
<<${var10}>>
单位(盖章):
档案编号:<<${var4}>>
归档日期:<<${var5}>>

View File

@ -0,0 +1,20 @@
培训影像资料
班级名称:<<${value2}>>
序号
学员姓名
身份证号
手机
头像
认证照片
<<@before-row[#list list1 as item]>><<@after-row[/#list]>><<${item.value1}>>
<<${item.value2}>>
<<${item.value3}>>
<<${item.value4}>>
备注:仅限用于线上学习证明材料,其他使用无效

View File

@ -0,0 +1,10 @@
安全培训教材或课程讲义<<[#list>><<[#if>>
<<${item_curList.CURRICULUMNAME}>><<[#list>>
<<${item.NUM}>>.<<${item.CHAPTER_NAME}>>
课件描述:<<${item.COURSEWAREINTRODUCE}>><<[/#list]>>
<<[#else]>>
<<${item_curList.CURRICULUMNAME}>><<[#list>>
<<${item.NUM}>>.<<${item.CHAPTER_NAME}>><<[#list>>
<<${item_nodes_index+1}>>.<<${item_nodes.CHAPTER_NAME}>>
课件描述:<<${item_nodes.COURSEWAREINTRODUCE}>><<[/#list]>><<[/#list]>>
<<[/#if]>><<[/#list]>>

View File

@ -0,0 +1,22 @@
学习记录
班级名称
<<${baseInfo.CLASS_NAME}>>
要求课时
<<${baseInfo.SUM_CLASSHOUR}>>
已学课时
<<${baseInfo.COMPLETE_CLASSHOUR}>>
是否完成
<<${baseInfo.STUDYSTATE}>>
身份证号
<<${baseInfo.STUDYSTATE}>>
到课率
<<${baseInfo.ARRIVING}>>
课程考试正确率
<<${baseInfo.ACCURACY}>>
考试成绩
<<${baseInfo.STAGEEXAMSCORE}>>
是否合格
<<${baseInfo.EXAM_RESULT}>>
考试试卷名称
<<${baseInfo.EXAMNAME}>>
备注:仅限用于线上学习证明材料,其他使用无效。

View File

@ -0,0 +1,19 @@
学习记录
课程名称
<<${baseInfo.CURRICULUMNAME}>>
应学课时
<<${baseInfo.SUM_CLASSHOUR}>>
已学课时
<<${baseInfo.COMPLETE_CLASSHOUR}>>
是否完成
<<${baseInfo.STUDYSTATE}>>
完成率
<<${baseInfo.ARRIVING}>>
人脸验证记录
共有<<${baseInfo.FACELOG}>>次人脸认证记录。
<<[#if>><<@before-row[#list>>
随机照片<<${ddd}>> <<${ddd}>>
课件:<<${ddd}>>
<<@after-row[/#list]>><<[/#if]>>

View File

@ -0,0 +1,12 @@
学习记录
课程名称
<<${baseInfo.CURRICULUMNAME}>>
应学课时
<<${baseInfo.SUM_CLASSHOUR}>>
已学课时
<<${baseInfo.COMPLETE_CLASSHOUR}>>
是否完成
<<${baseInfo.STUDYSTATE}>>
完成率
<<${baseInfo.ARRIVING}>>

View File

@ -0,0 +1,22 @@
学习记录
班级名称
<<${baseInfo.CLASS_NAME}>>
要求课时
<<${baseInfo.SUM_CLASSHOUR}>>
已学课时
<<${baseInfo.COMPLETE_CLASSHOUR}>>
是否完成
<<${baseInfo.STUDYSTATE}>>
身份证号
<<${baseInfo.STUDYSTATE}>>
到课率
<<${baseInfo.ARRIVING}>>
课程考试正确率
<<${baseInfo.ACCURACY}>>
考试成绩
<<${baseInfo.STAGEEXAMSCORE}>>
是否合格
<<${baseInfo.EXAM_RESULT}>><<[#if>>
考试试卷名称
<<${baseInfo.EXAMNAME}>><<[/#if]>>
备注:仅限用于线上学习证明材料,其他使用无效。

View File

@ -0,0 +1,17 @@
三岗人员管理台账
单位名称:<<${value1}>>
序号
姓名
岗位/操作项目
电话
证书号
证书有效期限
复训日期
<<${item.value1}>>
<<${item.value2}>>
<<${item.value3}>>
<<${item.value4}>>
<<${item.value6}>>
<<${item.value7}>>
<<${item.value8}>>
档案管理人员:<<${value2}>> 更新日期:<<${value3}>>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,23 @@
<<${value1}>>培训计划
单位名称:<<${value1}>>
序号
培训人员类型
岗位(工种)
培训人数
培训时间
培训地点
(方式)
教学内容
课时
授课教师
<<${list1.value1}>>
<<${list1.value2}>>
<<${list1.value3}>>
<<${list1.value4}>>
<<${list1.value5}>>
<<${list1.value7}>>
<<${list1.value8}>>
<<${list1.value9}>>
<<${list1.value10}>>
编制单位:<<${value1}>> 编制日期:<<${value2}>>

View File

@ -0,0 +1,21 @@
安全培训教育记录及签字表
日期
<<${var0}>>
培训地点
<<${var1}>>
人数
<<${var2}>>
培训内容
<<${CLASS_NAME}>>
学时
<<${SUMCLASSHOUR}>>
培训教师
<<${var4}>>
受培训人
姓名
部门
签字
<<@before-row[#list>><<${var5}>><<@after-row[/#list]>>
<<${var5}>>

View File

@ -0,0 +1,55 @@
生产经营单位新入职从业人员登记表
生产经营单位名称(盖章):<<${value20}>>
档案编号:<<${value21}>>
姓 名
<<${value1}>>
性 别
<<${value2}>>
民 族
<<${value3}>>
政治面貌
<<${value4}>>
文化程度
<<${value5}>>
健康状况
<<${value6}>>
出生年月
<<${value7}>>
身份证号
<<${value8}>>
毕业院校及专业
<<${value9}>>
职务/职称
<<${value10}>>
户籍所在地
<<${value11}>>
参加工作时间
<<${value12}>>
进入本单位时间
<<${value13}>>
入职部门
<<${value14}>>
岗位名称
<<${value15}>>
之前从事本岗位时间
<<${value16}>>
主要工作经历
<<${value17}>>
入职前接受安全培训和考核以及取得安全培训有关的岗位证书等情况
<<${value18}>>
入职前受过何种有关安全生产的处罚以及是否受到刑事处罚
<<${value19}>>
入职统计表相关信息核定情况
入职人承诺:以上信息已经本人核实,信息真实、有效、完整,如有虚假或欺骗等行为,自愿承担相应的法律责任。
入职人(签字并按指纹):
承诺日期: 年 月 日
生产经营单位核查意见:
核查人员(签字):
核查日期: 年 月 日

View File

@ -0,0 +1,45 @@
生产经营单位从业人员专项安全培训考核记录
生产经营单位或安全生产管理机构名称:(盖章)${examinevalue1}
档案编号:${examinevalue2}
姓名
${examinevalue3}
性别
${examinevalue4}
身份证号
${examinevalue5}
学历
${examinevalue6}
专业
${examinevalue7}
职务/职称
${examinevalue8}
部门
${examinevalue9}
工种
${examinevalue10}
行业类别
${examinevalue11}
联系电话
${examinevalue12}
人员类型
安全培训及考核实施情况
序号
培训时间
培训地点
培训主要内容
学时
培训讲师
考试成绩
补考成绩
本人签字
${list2.value1}
${list2.value2}
${list2.value3}
${list2.value4}
1学时
${list2.value6}
${list2.value7}
${list2.value8}
记录人员(签字): 考核人员(签字): 安全生产管理机构负责人(签章): 归档日期:${examinevalue13}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,34 @@
生产经营单位从业人员安全生产奖惩记录
生产经营单位名称(盖章):<<${value1}>>
档案编号:<<${value2}>>
姓 名
<<${value3}>>
性 别
<<${value4}>>
身份证号
<<${value5}>>
学 历
<<${value6}>>
专 业
<<${value7}>>
职务/职称
<<${value8}>>
部 门
<<${value9}>>
工 种
<<${value10}>>
联系电话
<<${value11}>>
奖惩日期
<<${value12}>>
实施部门
<<${value13}>>
批准人
<<${value14}>>
奖惩事由
<<${value15}>>
奖惩内容
<<${value16}>>
奖惩落实情况
<<${value17}>>
记录人员(签字): 分管负责人(签字): 归档日期:<<${value18}>>

View File

@ -0,0 +1,56 @@
特种作业人员培训信息登记及证件真伪核查表
生产经营单位名称(盖章):<<${value1}>>
档案编号:<<${value2}>>
姓 名
<<${value3}>>
性 别
<<${value4}>>
身份证号
<<${value5}>>
学 历
<<${value6}>>
职务/职称
<<${value7}>>
户籍所在地
<<${value8}>>
作业类别
<<${value9}>>
操作项目
<<${value10}>>
联系电话
<<${value11}>>
证件类型
<<[#list>><<[#if>>☑<<[#else]>>□<<[/#if]>><<${item.NAME}>> <<[/#list]>>
在用的特种作业操作证有关培训考试及领证的有关信息
培训机构名称
<<${value13}>>
培训类型
<<[#list>><<[#if>>☑<<[#else]>>□<<[/#if]>><<${item.NAME}>> <<[/#list]>>
培训时间
<<${value15}>>
培训学时
<<${value16}>>
培训地点
<<${value17}>>
培训机构电话
<<${value18}>>
发证机关
<<${value19}>>
发证日期
<<${value20}>>
证件有效期
<<${value21}>>
是否按期复审
<<${value22}>>
生产经营单位对培训信息及证件真伪核查意见
核查意见:<<${value23}>>
核查人员(签字):
分管负责人或者安全生产管理机构负责人(签字):
核查日期:<<${value24}>>
应急管理部门协助生产经营单位核查情况(生产经营单位能够独立核查的,此栏不再填写)
(应急管理部门出具的核查意见附后)

View File

@ -0,0 +1,76 @@
安全生产教育培训动态评估报告
姓名:<<${value1}>>
身份证号:<<${value2}>>
评估日期:<<${value3}>>
评估概述
本报告旨在评估您在最近接受的安全培训中的个人效果,并提供课程考试结果以及指出可能存在的知识盲点。安全培训的目标是提高您在工作环境中的安全意识和行为,以减少事故和伤害的发生。本报告将对您的培训参与度、知识掌握程度、课程考试成绩以及可能存在的知识盲点进行评估。
学员基本情况
姓名
<<${value1}>>
性别
<<${value4}>>
身份证号
<<${value2}>>
学历
<<${value5}>>
专业
<<${value6}>>
职务/职称
<<${value7}>>
部门
<<${value8}>>
工种
<<${value9}>>
行业类别
<<${value10}>>
联系电话
<<${value11}>>
人员类型
<<${value24}>>
评估内容
您在<<${value12}>> - <<${value13}>>进行了<<${value14}>>,培训内容如下:
<<${value15}>>
您参加了培训后的课程考试,并取得了以下成绩:<<${value16}>>分
评估结果
根据我们的评估,您的个人培训效果如下:
您在培训期间表现出积极的参与度,完成了所有的培训课程和活动;
您对<<${value17}>>知识掌握得很好。在评估过程中,我们发现您可能存在以下知识盲点:<<${value18}>>
知识盲点对应课件为:
<<${value19}>>
评估建议
存在的知识盲点需要进一步加强和补充。我们建议您将重点放在弥补这些盲点上,通过进一步学习、参与讨论或与安全专家交流弥补知识盲区。
强化培训记录
强化培训考试记录
姓名:<<${value1}>>
试卷满分:<<${value21}>>
学员分数:<<${value23}>>
考试时间:<<${value22}>>
<<[#list>><<[#if>>
<<${item.value1}>><<${item.value2}>>.<<${item.value3}>> (题目分值:<<${item.value4}>> 正确答案:<<${item.value10}>><<[#if>> 学员答案:<<${item.value9}>><<[/#if]>>
<<${item.value5}>>
<<${item.value6}>>
<<${item.value7}>>
<<${item.value8}>>
<<[#else]>>
<<${item.value1}>><<${item.value2}>>.<<${item.value3}>> (题目分值:<<${item.value4}>> 正确答案:<<${item.value10}>><<[#if>> 学员答案:<<${item.value9}>><<[/#if]>>
<<${item.value5}>> <<${item.value6}>>
<<[/#if]>><<[/#list]>>

View File

@ -0,0 +1,31 @@
序号
姓名
性别
身份证
手机号
部门
工种
要求总学时
已完成学时
是否考试通过
考试分数
学习状态
班级名称
头像
签字
<<${list1.value1}>>
<<${list1.value2}>>
<<${list1.value3}>>
<<${list1.value4}>>
<<${list1.value5}>>
<<${list1.value6}>>
<<${list1.value7}>>
<<${list1.value8}>>
<<${list1.value9}>>
100.5

View File

@ -0,0 +1,18 @@
学员学习档案
姓 名:<<${value1}>>
证件号码:<<${value2}>>
联系电话: <<${value3}>>
班级编号:<<${value4}>>
班级名称:<<${value5}>>
培训日期:<<${value6}>>
学习方式:<<${value7}>>
课程形式:<<${value8}>>
培训学时:<<${value9}>>
培训科目:<<${value10}>>
单位名称: <<${value11}>>

View File

@ -0,0 +1,18 @@
学员学习档案
姓 名:<<${value1}>>
证件号码:<<${value2}>>
联系电话: <<${value3}>>
班级编号:<<${value4}>>
班级名称:<<${value5}>>
培训日期:<<${value6}>>
学习方式:<<${value7}>>
课程形式:<<${value8}>>
培训学时:<<${value9}>>
培训科目:<<${value10}>>
单位名称: <<${value11}>>

View File

@ -0,0 +1,44 @@
学员考核成绩统计表
平台名称:<<${value1}>>
报表日期:<<${value8}>>
公司名称
<<${value2}>>
培训时间
任务名称
<<${value4}>>
<<${value3}>>
应参加培训人数
实际参加培训人数
<<${value6}>>
<<${value7}>>
合格学员名单
序号
姓名
身份证
手机号
性别
完成学时
结业考试成绩
<<${list1.value1}>>
<<${list1.value2}>>
<<${list1.value3}>>
<<${list1.value4}>>
<<${list1.value5}>>
<<${list1.value6}>>
<<${list1.value7}>>
<<[#if>>未合格学员名单
序号
姓名
身份证
手机号
性别
完成学时
结业考试成绩
<<${list2.value1}>>
<<${list2.value2}>>
<<${list2.value3}>>
<<${list2.value4}>>
<<${list2.value5}>>
<<${list2.value6}>>
<<${list2.value7}>>
<<[/#if]>>

View File

@ -0,0 +1,21 @@
本单位师资管理台账
单位名称:<<${value1}>>
序号
姓名
从事本专业工作年限
专/兼职
证书编号
考核部门
考核日期
考核结果
备注
<<${list1.value1}>>
<<${list1.value2}>>
<<${list1.value3}>>
<<${list1.value4}>>
<<${list1.value5}>>
<<${list1.value6}>>
<<${list1.value7}>>
<<${list1.value8}>>
<<${list1.value9}>>
档案管理人员:<<${value2}>> 更新日期:<<${value3}>>

View File

@ -0,0 +1,17 @@
安全培训教育需求调查表
所属部门
<<${value1}>>
填表人
<<${value2}>>
填表时间
<<${value3}>>
培训需求:
<<${list1.value1}>>
对培训的意见或建议:
<<${list2.value1}>>
填表说明:培训主管部门进行安全培训教育需求调查,了解基层单位和从业人员的培训需求,在此基础上制定年度安全培训教育计划。

View File

@ -0,0 +1,20 @@
--------------------------------------------------------------------------------
<<${value}>>
--------------------------------------------------------------------------------
培训证明
姓 名
<<${value1}>>
性 别
<<${value2}>>
身份证号
<<${value3}>>
出生年月
<<${value4}>>
单位名称
<<${value5}>>
培训时间
<<${value6}>>
培训课程
<<${curList.value2}>>

View File

@ -0,0 +1,13 @@
--------------------------------------------------------------------------------
培训内容
课件名称
讲师姓名
<<${coursewaresList.value2}>>
<<${coursewaresList.value4}>>
机构名称(盖章):
<<${value1}>>

View File

@ -0,0 +1,27 @@
<<${value1}>>年度安全培训教育计划
单位名称:<<${value2}>>
序号
开始时间
结束时间
培训对象
培训内容
培训方式
考核方式
学时
培训地点
培训教师
经费保障
质量评估
<<${list1.value1}>>
<<${list1.value2}>>
<<${list1.value3}>>
<<${list1.value4}>>
<<${list1.value5}>>
<<${list1.value6}>>
<<${list1.value7}>>
<<${list1.value12}>>
<<${list1.value8}>>
<<${list1.value9}>>
<<${list1.value10}>>
<<${list1.value11}>>
编制人: 编制日期: 审核人: 审核日期: 批准人: 批准日期: