教培功能bug修复

dev
zhangyanli 2024-03-27 15:52:48 +08:00
parent c1acfc513f
commit ba5c9534ad
35 changed files with 382 additions and 692 deletions

11
pom.xml
View File

@ -377,7 +377,12 @@
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-mock</artifactId>
<version>2.0.8</version>
<scope>compile</scope>
</dependency>
<!-- 上传文件依赖 -->
<dependency>
<groupId>commons-fileupload</groupId>
@ -483,7 +488,7 @@
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
<version>3.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-examples -->
<dependency>
@ -501,7 +506,7 @@
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
<version>3.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
<dependency>

View File

@ -126,9 +126,7 @@ public class AppUsersCacheController extends BaseController {
pd = this.getPageData();
PageData faceBase64 = new PageData();
// PageData oldStudent = usersService.findStuById(pd);
if (pd.get("USERAVATARURL") != null && !pd.getString("USERAVATARURL").equals("")) {
String USERAVATARURL64 = ImageAnd64Binary.zipBase64(pd.getString("USERAVATARURL"));
try {
FaceUtil.compareFace(pd.getString("USERAVATARURL"), pd.getString("USERAVATARURL"));
} catch (Exception e) {
@ -136,7 +134,11 @@ public class AppUsersCacheController extends BaseController {
map.put("msg", "人脸图像不符合要求 请重新上传!");
return map;
}
faceBase64.put("BASE", USERAVATARURL64);
MultipartFile FFILE = ImageUtil.base64ToMultipartFile(pd.getString("USERAVATARPREFIX") + pd.getString("USERAVATARURL"));
String ffile = DateUtil.getDays();
String fileName = this.get32UUID() + FFILE.getOriginalFilename().substring(FFILE.getOriginalFilename().lastIndexOf("."));
smb.sshSftp(FFILE, fileName, Const.FILEPATHUSERFACE + ffile);
faceBase64.put("COVERPATH", Const.FILEPATHUSERFACE + ffile + "/" + fileName);
} else {
map.put("result", "error");
map.put("msg", "未上传人脸识别照片,请先认证人脸!");
@ -144,7 +146,7 @@ public class AppUsersCacheController extends BaseController {
}
initPageDataUtil.initSaveApp(faceBase64, pd.getString("USER_ID"));
faceBase64.put("BASE_FACTORY_ID", this.get32UUID());
faceBase64.put("TABLE_NAME", "SYS_USER");
faceBase64.put("TABLE_NAME", "SYS_USERINFO");
faceBase64.put("COLUMN_NAME", "USER_ID");
faceBase64.put("USERAVATARPREFIX", pd.getString("USERAVATARPREFIX"));
faceBase64.put("FOREIGN_KEY", pd.get("USER_ID"));
@ -152,9 +154,8 @@ public class AppUsersCacheController extends BaseController {
baseFactoryMapper.deleteByForeign(faceBase64);
baseFactoryMapper.save(faceBase64);
initPageDataUtil.initEditApp(pd, pd.getString("USER_ID"));
pd.put("AUTHENTICATION", "1");
usersCacheService.editAuthentication(pd);
userInfoService.editAuthentication(pd);
PageData user = new PageData();
user.put("USER_ID", pd.get("USER_ID"));
@ -163,8 +164,7 @@ public class AppUsersCacheController extends BaseController {
String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
smb.sshSftp(file, fileName, Const.FILEPATHFACE + ffile);
user.put("PORTRAIT", Const.FILEPATHFACE + ffile + "/" + fileName);
initPageDataUtil.initEditApp(user, pd.getString("USER_ID"));
usersCacheService.editUser(user);
userInfoService.editUserInfo(user);
map.put("result", errInfo);
return map;
}
@ -185,12 +185,13 @@ public class AppUsersCacheController extends BaseController {
pd.put("TYPE", "1");
pd.put("FOREIGN_KEY", pd.get("USER_ID"));
PageData user = baseFactoryMapper.findByKeyType(pd);
if (user == null || user.get("BASE") == null || user.get("BASE") == "") {
if (user == null || user.get("COVERPATH") == null || user.get("COVERPATH") == "") {
map.put("result", "error");
map.put("msg", "用户未录入人脸信息,无法验证");
return map;
}
String USERAVATARURL = ImageAnd64Binary.upZip(user.getString("BASE"));
MultipartFile coverpath = ImageUtil.getMultipartFile(Const.HTTPFILEURL + user.getString("COVERPATH"));
String USERAVATARURL = Base64Util.getBase64String(coverpath);
try {
String confidence = FaceUtil.compareFace(pd.getString("USERAVATARURL"), USERAVATARURL);
@ -209,7 +210,6 @@ public class AppUsersCacheController extends BaseController {
smb.sshSftp(file, fileName, Const.FILEPATHFACE + student.get("CORPINFO_ID") + "/" + ffile);
PageData faceImg = new PageData();
faceImg.put("FACEIMGLOG_ID", this.get32UUID());
faceImg.put("ENTERPRISE_ID", student.get("ENTERPRISE_ID"));
faceImg.put("CORPINFO_ID", student.get("CORPINFO_ID"));
faceImg.put("STUDENT_ID", student.get("STUDENT_ID"));
faceImg.put("USER_ID", pd.get("USER_ID"));

View File

@ -172,7 +172,6 @@ public class ArchivesPostManController extends BaseController {
PageData pd = new PageData();
pd = this.getPageData();
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); //机构
pd.put("ENTERPRISE_ID", pd.get("ID")); //企业
List<PageData> varList = archivespostmanService.listAll(pd); //列出ArchivesPostMan列表
map.put("varList", varList);
map.put("result", errInfo);
@ -340,7 +339,7 @@ public class ArchivesPostManController extends BaseController {
@SuppressWarnings("unchecked")
@ResponseBody
@Transactional
public Object readExcel(@RequestParam(value = "excel", required = false) MultipartFile file) throws Exception {
public Object readExcel(@RequestParam(value = "FFILE", required = false) MultipartFile file) throws Exception {
Map<String, String> map = new HashMap<String, String>();
String errInfo = "success";
StringBuffer errorStr = new StringBuffer();
@ -438,8 +437,7 @@ public class ArchivesPostManController extends BaseController {
pageData.put("EFFECTIVE_DATE", effective_date);
pageData.put("RETRAINING", retraining);
pageData.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); //机构
pageData.put("ENTERPRISE_ID", pd.get("ID")); //企业
pageData.put("YEAR", pd.getString("YEAR"));
pageData.put("YEAR", pd.getString("year"));
pageData.put("ISDELETE", "0");
pageData.put("CREATOR", Jurisdiction.getName());// 账号类型
pageData.put("CREATTIME", DateUtil.date2Str(new Date()));

View File

@ -131,10 +131,6 @@ public class ArchivesStudentController extends BaseController {
PageData pd = new PageData();
pd = this.getPageData();
PageData stu = archivesstudentService.getStuInfo(pd);
pd = archivesstudentService.findById(pd); //根据ID读取
if (pd != null) {
stu.putAll(pd);
}
map.put("pd", stu);
map.put("result", errInfo);
return map;

View File

@ -102,13 +102,8 @@ public class ClassController extends BaseController {
int classNum = 0;
PageData data = new PageData();
//注意数据权限。企业看企业数据,机构看机构数据
// pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
// data.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
// if ("0".equals(Jurisdiction.getIS_MAIN())){
// pd.put("USER_ID", Jurisdiction.getUSER_ID());
// data.put("USER_ID", Jurisdiction.getUSER_ID());
// }
classNum = classService.getClassNum(data);
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
classNum = classService.getClassNum(pd);
String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件
if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim());
@ -150,9 +145,6 @@ public class ClassController extends BaseController {
pd = this.getPageData();
PageData data = new PageData();
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
if ("0".equals(Jurisdiction.getIS_MAIN())){
pd.put("USER_ID", Jurisdiction.getUSER_ID());
}
String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件
if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim());
page.setPd(pd);

View File

@ -11,6 +11,7 @@ import fr.opensagres.xdocreport.template.IContext;
import fr.opensagres.xdocreport.template.TemplateEngineKind;
import fr.opensagres.xdocreport.template.formatter.FieldsMetadata;
import fr.opensagres.xdocreport.template.formatter.NullImageBehaviour;
import org.apache.tools.ant.Project;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@ -343,61 +344,63 @@ public class StudentController extends BaseController {
Map<String, Object> objMap = new LinkedHashMap<>();
List<Map<String, Object>> list = new ArrayList<>();
// List<PageData> list = new ArrayList<>();
if (varList.size() > 0) {
int num = 1;
for (PageData student : varList) {
StudentMessageExcel excelObj = new StudentMessageExcel();
excelObj.setUSER_ID_CARD(student.getString("USER_ID_CARD"));
excelObj.setNAME(student.getString("NAME"));
excelObj.setSEX("1".equals(student.getString("SEX")) ? "男" : "女");
excelObj.setPHONE(student.getString("PHONE"));
excelObj.setDEPARTMENT_NAME(student.getString("DEPARTMENT_NAME"));
excelObj.setPOST_NAME(student.getString("POST_NAME"));
excelObj.setALL_CLASSHOUR(student.getString("ALL_CLASSHOUR"));
excelObj.setCOMPLETE_CLASSHOUR(student.getString("COMPLETE_CLASSHOUR"));
excelObj.setPASSED("0".equals(student.getString("STAGEEXAMSTATE")) ? "不考试" : student.getString("PASSED"));
excelObj.setEXAMSCORE(student.getString("EXAMSCORE"));
objMap = new LinkedHashMap<>();
objMap.put("NUMBER", num);
objMap.put("USER_ID_CARD",student.getString("USER_ID_CARD"));
objMap.put("NAME",student.getString("NAME"));
objMap.put("SEX", "1".equals(student.getString("SEX")) ? "男" : "女");
objMap.put("PHONE",student.getString("PHONE"));
objMap.put("DEPARTMENT_NAME",student.getString("DEPARTMENT_NAME"));
objMap.put("POST_NAME",student.getString("POST_NAME"));
objMap.put("ALL_CLASSHOUR",student.getString("ALL_CLASSHOUR"));
objMap.put("COMPLETE_CLASSHOUR",student.getString("COMPLETE_CLASSHOUR"));
objMap.put("PASSED","0".equals(student.getString("STAGEEXAMSTATE")) ? "不考试" : student.getString("PASSED"));
objMap.put("EXAMSCORE",student.getString("EXAMSCORE"));
switch (student.getString("STUDYSTATE")) {
case "1":
excelObj.setSTUDYSTATE("学习中");
objMap.put("STUDYSTATE","学习中");
break;
case "2":
excelObj.setSTUDYSTATE("已学完");
objMap.put("STUDYSTATE","已学完");
break;
case "3":
excelObj.setSTUDYSTATE("已完成");
objMap.put("STUDYSTATE","已完成");
break;
case "4":
excelObj.setSTUDYSTATE("未完成");
objMap.put("STUDYSTATE","未完成");
break;
case "5":
excelObj.setSTUDYSTATE("待评估");
objMap.put("STUDYSTATE","待评估");
break;
case "6":
excelObj.setSTUDYSTATE("评估未合格");
objMap.put("STUDYSTATE","评估未合格");
break;
case "0":
excelObj.setSTUDYSTATE("未学习");
objMap.put("STUDYSTATE","未学习");
break;
}
excelObj.setCLASS_NAME(student.getString("CLASS_NAME"));
// if (Tools.notEmpty(pd.getString("USER_SIGN_FILE_PATH"))) {
// File USER_SIGN = new File(PathUtil.getProjectpath() + Const.FILEPATHFILE + pd.getString("USER_SIGN_FILE_PATH"));
// excelObj.setUSER_SIGN_FILE(USER_SIGN);
// }
File USER_SIGN = new File("D:\\图片\\11111.png");
excelObj.setUSER_SIGN_FILE(USER_SIGN);
if (Tools.notEmpty(pd.getString("PORTRAIT"))) {
File PORTRAIT = new File(PathUtil.getProjectpath() + Const.FILEPATHFILE + pd.getString("PORTRAIT"));
excelObj.setPORTRAIT(PORTRAIT);
objMap.put("CLASS_NAME",student.getString("CLASS_NAME"));
if (Tools.notEmpty(student.getString("SIGNATURE_PATH"))) {
objMap.put("IMAGE1", student.getString("SIGNATURE_PATH"));
}else {
objMap.put("IMAGE1", null);
}
if (Tools.notEmpty(student.getString("PORTRAIT"))) {
objMap.put("IMAGE2", student.getString("PORTRAIT"));
}else {
objMap.put("IMAGE2", null);
}
objMap = ImageExcelUtil.javaBean2Map(excelObj);
list.add(objMap);
num++;
}
}
Object[] objects = objMap.keySet().toArray();
String[] titles = new String[objects.length];
Map<String, String> titleName = new LinkedHashMap<>();
titleName.put("NUMBER", "序号");
titleName.put("USER_ID_CARD", "身份证号");
titleName.put("NAME", "姓名");
titleName.put("SEX", "性别");
@ -410,29 +413,13 @@ public class StudentController extends BaseController {
titleName.put("EXAMSCORE", "考试分数");
titleName.put("STUDYSTATE", "学习状态");
titleName.put("CLASS_NAME", "班级名称");
titleName.put("USER_SIGN_FILE", "用户签字");
titleName.put("PORTRAIT", "人像照片");
titleName.put("IMAGE1", "用户签字");
titleName.put("IMAGE2", "人像照片");
for (int i = 0; i < titles.length; i++) {
String key = objects[i].toString();
titles[i] = titleName.get(key);
}
// List<String> titles = new ArrayList<>();
// titles.add("身份证号");
// titles.add("姓名");
// titles.add("性别");
// titles.add("手机号");
// titles.add("部门");
// titles.add("工种");
// titles.add("要求总学时");
// titles.add("已完成学时");
// titles.add("是否考试通过");
// titles.add("考试分数");
// titles.add("学习状态");
// titles.add("班级名称");
// titles.add("用户签字");
// titles.add("人像照片");
String fileName = "学员学习记录";
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment; filename=" + fileName);

View File

@ -59,30 +59,6 @@ public class DepartmentController extends BaseController {
String corpinfoId = Jurisdiction.getCORPINFO_ID();
PageData corpPage = new PageData();
corpPage.put("CORPINFO_ID", corpinfoId);
PageData corpInfo = corpInfoService.findById(corpPage);
// {"deptName":"0226-wx","enterpriseId":4,"staffId":"","deptPhone":"","deptAddress":"","remark":"","deptDuty":""}
corpPage.put("enterpriseName",corpInfo.getString("CORP_NAME"));
if (Tools.isEmpty(corpInfo.getString("enterpriseId"))) {
JSONObject body = PLSUtil.GeneralPost("/deploy/enterprise/addDepEnterprise", corpPage, corpinfoId);
if (body != null) {
if (!"200".equals(body.getString("code"))) {
return ReturnMap.error("人员定位系统中部门新增失败");
}
corpPage.put("enterpriseId", body.getString("data"));
corpInfo.put("enterpriseId", body.getString("data"));
corpInfoService.updateEnterpriseId(corpPage);
}
}
PageData dept = new PageData();
dept.put("deptName", pd.getString("NAME"));
dept.put("enterpriseId", corpInfo.get("enterpriseId"));
JSONObject body = PLSUtil.GeneralPost("/deploy/dept", dept, corpinfoId);
if (body != null) {
if (!"200".equals(body.getString("code"))) {
return ReturnMap.error("人员定位系统中部门新增失败");
}
pd.put("deptId", body.getString("data"));
}
pd.put("DEPARTMENT_ID", this.get32UUID()); //主键
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); //企业
departmentService.save(pd);
@ -167,15 +143,6 @@ public class DepartmentController extends BaseController {
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
PageData sfDeptID = new PageData();
sfDeptID.put("deptId", pd.get("deptId"));
sfDeptID.put("deptName", pd.get("NAME"));
JSONObject body = PLSUtil.GeneralPut("/deploy/dept", sfDeptID, Jurisdiction.getCORPINFO_ID());
if (body != null) {
if (!"200".equals(body.getString("code"))) {
return ReturnMap.error("人员定位系统中部门新增失败");
}
}
departmentService.edit(pd);
// 删除旧的监管单位
PageData pd2 = new PageData();

View File

@ -1,180 +0,0 @@
package com.zcloud.entity;
import java.io.File;
import java.io.Serializable;
public class StudentMessageExcel implements Serializable{
/**
*ID
*/
private static final long serialVersionUID = 1L;
/**
*
*/
private String USER_ID_CARD;
/**
*
*/
private String NAME;
/**
*
*/
private String SEX;
/**
*
*/
private String PHONE;
/**
*
*/
private String DEPARTMENT_NAME;
/**
*
*/
private String POST_NAME;
/**
*
*/
private String ALL_CLASSHOUR;
/**
*
*/
private String COMPLETE_CLASSHOUR;
/**
*
*/
private String PASSED;
/**
*
*/
private String EXAMSCORE;
/**
*
*/
private String STUDYSTATE;
/**
*
*/
private String CLASS_NAME;
/**
*
*/
private File USER_SIGN_FILE;
/**
*
*/
private File PORTRAIT;
public String getUSER_ID_CARD() {
return USER_ID_CARD;
}
public void setUSER_ID_CARD(String USER_ID_CARD) {
this.USER_ID_CARD = USER_ID_CARD;
}
public String getNAME() {
return NAME;
}
public void setNAME(String NAME) {
this.NAME = NAME;
}
public String getSEX() {
return SEX;
}
public void setSEX(String SEX) {
this.SEX = SEX;
}
public String getPHONE() {
return PHONE;
}
public void setPHONE(String PHONE) {
this.PHONE = PHONE;
}
public String getDEPARTMENT_NAME() {
return DEPARTMENT_NAME;
}
public void setDEPARTMENT_NAME(String DEPARTMENT_NAME) {
this.DEPARTMENT_NAME = DEPARTMENT_NAME;
}
public String getPOST_NAME() {
return POST_NAME;
}
public void setPOST_NAME(String POST_NAME) {
this.POST_NAME = POST_NAME;
}
public String getALL_CLASSHOUR() {
return ALL_CLASSHOUR;
}
public void setALL_CLASSHOUR(String ALL_CLASSHOUR) {
this.ALL_CLASSHOUR = ALL_CLASSHOUR;
}
public String getCOMPLETE_CLASSHOUR() {
return COMPLETE_CLASSHOUR;
}
public void setCOMPLETE_CLASSHOUR(String COMPLETE_CLASSHOUR) {
this.COMPLETE_CLASSHOUR = COMPLETE_CLASSHOUR;
}
public String getPASSED() {
return PASSED;
}
public void setPASSED(String PASSED) {
this.PASSED = PASSED;
}
public String getEXAMSCORE() {
return EXAMSCORE;
}
public void setEXAMSCORE(String EXAMSCORE) {
this.EXAMSCORE = EXAMSCORE;
}
public String getSTUDYSTATE() {
return STUDYSTATE;
}
public void setSTUDYSTATE(String STUDYSTATE) {
this.STUDYSTATE = STUDYSTATE;
}
public String getCLASS_NAME() {
return CLASS_NAME;
}
public void setCLASS_NAME(String CLASS_NAME) {
this.CLASS_NAME = CLASS_NAME;
}
public File getUSER_SIGN_FILE() {
return USER_SIGN_FILE;
}
public void setUSER_SIGN_FILE(File USER_SIGN_FILE) {
this.USER_SIGN_FILE = USER_SIGN_FILE;
}
public File getPORTRAIT() {
return PORTRAIT;
}
public void setPORTRAIT(File PORTRAIT) {
this.PORTRAIT = PORTRAIT;
}
}

View File

@ -85,5 +85,14 @@ public interface UserInfoMapper{
* @throws Exception
*/
void editPractitioner(PageData pd);
void editAuthentication(PageData pd);
/**
*
*
* @param pd
* @throws Exception
*/
void editUserInfo(PageData pd);
}

View File

@ -605,10 +605,6 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
List<PageData> allSign = classMapper.findByIdForSign(student); //考核记录下边的签字信息
USERNAME = student.getString("STUDENT_NAME");
PageData regstu = archivesStudentMapper.getStuInfo(pageData);
PageData arpd = archivesStudentMapper.findById(pageData); //根据ID读取
if (arpd != null) {
regstu.putAll(arpd);
}
if (checkArchivesList.toString().contains("人员登记表")) {
regstu.put("projectPath", projectPath);
File pdf = archivesStudentService.registertable(regstu); //人员登记返回PDF文件
@ -740,10 +736,6 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
String projectPath = pd.getString("projectPath");
ArrayList<File> files = new ArrayList<>(); //最外层
PageData stu = archivesStudentMapper.getStuInfo(pd);
PageData arpd = archivesStudentMapper.findById(pd); //根据ID读取
if (arpd != null) {
stu.putAll(arpd);
}
String now = DateUtil.getSdfTimesSSS();
File file = new File(projectPath + Const.FILEPATHWORDTEMPLATE + "registerform.docx");
InputStream mbwj = new FileInputStream(file);
@ -767,7 +759,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
context.put("value13", Tools.notEmpty(stu.getString("ENTRY_DATE")) ? stu.getString("ENTRY_DATE") : ""); // 进入本单位时间
context.put("value14", Tools.notEmpty(stu.getString("DEPARTMENT_NAME")) ? stu.getString("DEPARTMENT_NAME") : ""); // 入职部门
context.put("value15", Tools.notEmpty(stu.getString("POST_NAME")) ? stu.getString("POST_NAME") : ""); // 岗位名称
context.put("value15", Tools.notEmpty(stu.getString("TYPE_OF_WORK_NAME")) ? stu.getString("TYPE_OF_WORK_NAME") : ""); // 岗位名称
context.put("value16", Tools.notEmpty(stu.getString("PREVIOUS_POST_DATE")) ? stu.getString("PREVIOUS_POST_DATE") : ""); // 之前从事本岗位时间
context.put("value17", Tools.notEmpty(stu.getString("WORK_EXPERIENCE")) ? stu.getString("WORK_EXPERIENCE") : ""); // 主要工作经历
context.put("value18", Tools.notEmpty(stu.getString("CERTIFICATES")) ? stu.getString("CERTIFICATES") : ""); // 有关的岗位证书等情况
@ -840,11 +832,6 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
PageData studentpd = new PageData();
studentpd.put("STUDENT_ID", user.getString("STUDENT_ID"));
PageData stu = archivesStudentMapper.getStuInfo(studentpd);//学员数据
pd.put("USER_ID", stu.getString("USER_ID"));
studentpd = archivesStudentMapper.findById(pd); //根据ID读取
if (studentpd != null) {
stu.putAll(studentpd);
}
stu.put("projectPath", projectPath);
if (checkArchivesList.toString().contains("人员登记表")) {
File pdf = this.registertable(stu);
@ -3020,7 +3007,7 @@ public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileService {
context.put("value13", Tools.notEmpty(stu.getString("ENTRY_DATE")) ? stu.getString("ENTRY_DATE") : ""); // 进入本单位时间
context.put("value14", Tools.notEmpty(stu.getString("DEPARTMENT_NAME")) ? stu.getString("DEPARTMENT_NAME") : ""); // 入职部门
context.put("value15", Tools.notEmpty(stu.getString("POST_NAME")) ? stu.getString("POST_NAME") : ""); // 岗位名称
context.put("value15", Tools.notEmpty(stu.getString("TYPE_OF_WORK_NAME")) ? stu.getString("TYPE_OF_WORK_NAME") : ""); // 岗位名称
context.put("value16", Tools.notEmpty(stu.getString("PREVIOUS_POST_DATE")) ? stu.getString("PREVIOUS_POST_DATE") : ""); // 之前从事本岗位时间
context.put("value17", Tools.notEmpty(stu.getString("WORK_EXPERIENCE")) ? stu.getString("WORK_EXPERIENCE") : ""); // 主要工作经历
context.put("value18", Tools.notEmpty(stu.getString("CERTIFICATES")) ? stu.getString("CERTIFICATES") : ""); // 有关的岗位证书等情况

View File

@ -144,7 +144,7 @@ public class ArchivesStudentServiceImpl implements ArchivesStudentService {
context.put("value13", Tools.notEmpty(stu.getString("ENTRY_DATE")) ? stu.getString("ENTRY_DATE") : ""); // 进入本单位时间
context.put("value14", Tools.notEmpty(stu.getString("DEPARTMENT_NAME")) ? stu.getString("DEPARTMENT_NAME") : ""); // 入职部门
context.put("value15", Tools.notEmpty(stu.getString("POST_NAME")) ? stu.getString("POST_NAME") : ""); // 岗位名称
context.put("value15", Tools.notEmpty(stu.getString("TYPE_OF_WORK_NAME")) ? stu.getString("TYPE_OF_WORK_NAME") : ""); // 岗位名称
context.put("value16", Tools.notEmpty(stu.getString("PREVIOUS_POST_DATE")) ? stu.getString("PREVIOUS_POST_DATE") : ""); // 之前从事本岗位时间
context.put("value17", Tools.notEmpty(stu.getString("WORK_EXPERIENCE")) ? stu.getString("WORK_EXPERIENCE") : ""); // 主要工作经历
context.put("value18", Tools.notEmpty(stu.getString("CERTIFICATES")) ? stu.getString("CERTIFICATES") : ""); // 有关的岗位证书等情况

View File

@ -81,14 +81,6 @@ public interface StrengthenStageExamPaperInputService {
*/
public void deleteAll(String[] ArrayDATA_IDS) throws Exception;
/**
*
*
* @param pd
* @return
* @throws Exception
*/
public List<PageData> getSaveStage(PageData pd) throws Exception;
/**
*

View File

@ -168,7 +168,6 @@ public class CourseStudyVideoRecordServiceImpl implements CourseStudyVideoRecord
initPageDataUtil.initSaveApp(entity, entity.getString("USER_ID"));
entity.put("CORPINFO_ID", student.get("CORPINFO_ID"));
entity.put("STUDENT_ID", student.get("STUDENT_ID"));
entity.put("ENTERPRISE_ID", student.get("ENTERPRISE_ID"));
coursestudyvideorecordMapper.save(entity);
} else {

View File

@ -228,7 +228,7 @@ public class StageExamServiceImpl implements StageExamService {
record.put("STAGEEXAM_ID", entity.getString("STAGEEXAM_ID"));
record.put("PAPER_ID", entity.getString("STAGEEXAMPAPERINPUT_ID"));
record.put("CLASS_ID", entity.getString("CLASS_ID"));
record.put("TUDENT_ID", student.getString("STUDENT_ID"));
record.put("STUDENT_ID", student.getString("STUDENT_ID"));
record.put("CORPINFO_ID", student.getString("CORPINFO_ID")); //企业ID
initPageDataUtil.initSaveApp(record, entity.getString("USER_ID"));
for (PageData x : list) {
@ -299,7 +299,7 @@ public class StageExamServiceImpl implements StageExamService {
PageData stuEndTime = new PageData();
stuEndTime.put("STUDENT_ID", student.getString("STUDENT_ID"));
stuEndTime.put("STUDY_END_TIME", nowDate);
initPageDataUtil.initEdit(stuEndTime);
initPageDataUtil.initEditApp(stuEndTime,entity.getString("USER_ID"));
studentMapper.edit(stuEndTime);
scores.put("STAGEEXAMSTATE", '2'); //考试状态
scores.put("STUDYSTATE", '2'); // 学习状态

View File

@ -136,8 +136,8 @@ public class StageexampaperInputServiceImpl implements StageexampaperInputServic
//试题类型(单选题、多选题、判断题、填空题)
// 批量添加自动生成试卷
if (Tools.notEmpty(pd.getString("addType"))) {
String[] COURSEWAREIDS = (String[]) pd.get("COURSEWAREIDS");
questionPd.put("COURSEWAREIDS", COURSEWAREIDS);
String[] COURSEWAREIDS = pd.get("COURSEWAREIDS").toString().split(",");
questionPd.put("COURSEWAREIDS", Arrays.asList(COURSEWAREIDS));
} else {
JSONArray coursewareids = JSON.parseArray(pd.get("COURSEWAREIDS").toString());
questionPd.put("COURSEWAREIDS", Arrays.asList(coursewareids.toArray()));

View File

@ -117,58 +117,6 @@ public class StrengthenStageExamPaperInputServiceImpl implements StrengthenStage
stageexampaperinputMapper.deleteAll(ArrayDATA_IDS);
}
public List<PageData> getSaveStage(PageData pd) throws Exception {
List<PageData> valList = new ArrayList<>();
for (int i = 1; i <= 4; i++) {
String xitiType = "";
Double QUESTIONSCORE = 0.0;
if (1 == i) {
xitiType = "DANYUANTICOUNT";
QUESTIONSCORE = Double.parseDouble(pd.getString("DANXUANTINUMBER"));
} else if (2 == i) {
xitiType = "DUOXUANTICOUNT";
QUESTIONSCORE = Double.parseDouble(pd.getString("DUOXUANTINUMBER"));
} else if (3 == i) {
xitiType = "PANDUITICOUNT";
QUESTIONSCORE = Double.parseDouble(pd.getString("PANDUITINUMBER"));
} else if (4 == i) {
xitiType = "TIANKONGTICOUNT";
QUESTIONSCORE = Double.parseDouble(pd.getString("TIANKONGTINUMBER"));
}
PageData questionPd = new PageData();
questionPd.put("QUESTIONTYPE", i);
//试题类型(单选题、多选题、判断题、填空题)
// 批量添加自动生成试卷
if (Tools.notEmpty(pd.getString("addType"))) {
questionPd.put("COURSEWAREIDS", (String[]) pd.get("COURSEWAREIDS"));
} else {
JSONArray coursewareids = JSON.parseArray(pd.get("COURSEWAREIDS").toString());
questionPd.put("COURSEWAREIDS", Arrays.asList(coursewareids.toArray()));
}
//课件id
List<PageData> questionAllList = questionService.listAllByType(questionPd); // 获取该类型的习题数据
Integer danxuanNmber = Integer.parseInt(pd.getString(xitiType)); //选择该类型数据的个数
if (danxuanNmber > questionAllList.size()) {
System.out.println("课程习题总数少于考试试题数,无法生成试卷试题");
return null;
}
List<Integer> tempList = new ArrayList<Integer>(); //索引
for (int j = 0; j < danxuanNmber; j++) {
int random = new Random().nextInt(questionAllList.size());
if (!tempList.contains(random)) {
tempList.add(random);
PageData quMap = questionAllList.get(random);
quMap.put("SCORE", QUESTIONSCORE); //添加分数
valList.add(quMap);
} else {
j--;
}
}
}
return valList;
}
/**
*
*

View File

@ -79,5 +79,10 @@ public interface UserInfoService{
* @param pd
*/
void editPractitioner(PageData pd)throws Exception;
void editAuthentication(PageData pd) throws Exception;
void editUserInfo(PageData user) throws Exception;
}

View File

@ -137,5 +137,17 @@ public class UserInfoServiceImpl implements UserInfoService {
userinfoMapper.editPractitioner(pd);
}
public void editAuthentication(PageData pd) throws Exception {
userinfoMapper.editAuthentication(pd);
}
/**
*
*
* @param pd
* @throws Exception
*/
public void editUserInfo(PageData pd) throws Exception {
userinfoMapper.editUserInfo(pd);
}
}

View File

@ -1,82 +0,0 @@
package com.zcloud.util;
import com.zcloud.entity.PageData;
import com.zcloud.service.eduStudy.ClassService;
import com.zcloud.service.eduStudy.StageStudentRelationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Component
public class ClassScheduled {
@Autowired
private ClassService classService;
@Autowired
private StageStudentRelationService stageStudentRelationService;
// @Scheduled(cron = "0 30 0 * * ?") // 每天晚上12:30执行
@Scheduled(cron ="0 0/5 * * * ?") // 测试 每5分钟执行一次
public void scheduled() {
try {
PageData pd = new PageData();
String[] STATEARRAY = new String[]{"4", "5"};
pd.put("STATEARRAY", STATEARRAY);
// 查询所有班级列表
List<PageData> classList = classService.listAllScheduled(pd);
if (classList != null && classList.size() > 0) {
for (PageData classInfo : classList) {
if (classInfo != null
&& classInfo.get("TRAINTYPE") != null && Tools.notEmpty(classInfo.get("TRAINTYPE").toString())
&& classInfo.get("START_TIME") != null
&& classInfo.get("END_TIME") != null) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startTime = formatter.parse(classInfo.getString("START_TIME"));
Date endTime = formatter.parse(classInfo.getString("END_TIME"));
Date now = new Date();
if (startTime.before(now) && now.before(endTime)) {
classInfo.put("STATE", "5");
} else if (endTime.before(now)) {
classInfo.put("STATE", "6");
pd.put("CLASS_ID", classInfo.getString("CLASS_ID"));
int count = stageStudentRelationService.getCountByCla(pd);
PageData studyState = new PageData();
if (count > 0) {
studyState.put("STUDYSTATE", "6");
studyState.put("WHERESTUDYSTATE", new String[]{"5"});
studyState.put("OPERATOR", "1"); //修改人
studyState.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
studyState.put("CLASS_ID", classInfo.get("CLASS_ID"));
stageStudentRelationService.updateClassStateSch(studyState);
}
studyState.put("STUDYSTATE", "4");
studyState.put("WHERESTUDYSTATE", new String[]{"0", "1"});
studyState.put("OPERATOR", "1"); //修改人
studyState.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
studyState.put("CLASS_ID", classInfo.get("CLASS_ID"));
stageStudentRelationService.updateClassStateSch(studyState);
PageData stageExamState = new PageData();
stageExamState.put("STAGEEXAMSTATE", "4");
stageExamState.put("WHERESTAGEEXAMSTATE", new String[]{"1"});
stageExamState.put("OPERATOR", "1"); //修改人
stageExamState.put("CLASS_ID", classInfo.get("CLASS_ID"));
stageExamState.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
stageStudentRelationService.updateClassStateSch(stageExamState);
}
classInfo.put("OPERATOR", "1"); //修改人
classInfo.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
classService.editState(classInfo);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -31,6 +31,7 @@ public class Const {
public static final String BIFILEPATHFILE = "/TrafficFile/uploadFiles/Bfile/"; //文件上传路径
public static final String FILEPATHIMG = "/TrafficFile/uploadFiles/imgs/"; //图片上传路径
public static final String FILEPATHIMGSPECIAL = "/TrafficFile/uploadFiles/imgs/special/"; //图片上传路径(特种装备)
public static final String FILEPATHUSERFACE = "/TrafficFile/uploadFiles/userFace/"; //图片上传路径(人脸)
public static final String FILEPATHDZJM = "/TrafficFile/uploadFiles/dzjm/"; //图片上传路径
public static final String FILEPATHYHTP = "/TrafficFile/uploadFiles/yhtp/"; //图片上传路径
public static final String FILEPATHFXSST = "/TrafficFile/uploadFiles/fxsst/"; //图片上传路径 风险四色图

View File

@ -119,7 +119,7 @@ public class ImageAnd64Binary {
ByteArrayOutputStream out = new ByteArrayOutputStream();
// 创建一个 ByteArrayInputStream使用 buf 作为其缓冲区数组
ByteArrayInputStream in = new ByteArrayInputStream( zipBase64 .getBytes( "ISO-8859-1" ) );
ByteArrayInputStream in = new ByteArrayInputStream( zipBase64.getBytes( "ISO-8859-1" ) );
// 使用默认缓冲区大小创建新的输入流
GZIPInputStream gzip = new GZIPInputStream( in );

View File

@ -43,6 +43,7 @@ public class ImageExcelUtil {
OutputStream out = null;
BufferedImage bufferImg = null;
HSSFWorkbook wb = null;
List<File> fileList = new ArrayList<File>();
try {
//创建工作sheet
@ -88,12 +89,14 @@ public class ImageExcelUtil {
cellRow = row.createCell(cellColumn);
cellRow.setCellStyle(style);
//如果行数据中有图片时候的处理
if ("USER_SIGN_FILE".equals(value) || "PORTRAIT".equals(value)) {
File file = (File) stringObjectMap.get(value);
if (file == null) {
if ("IMAGE1".equals(value) || "IMAGE2".equals(value)) {
if (stringObjectMap.get(value) == null) {
cellRow.setCellValue("");
cellColumn++;
continue;
} else {
String filePath = saveFile(Const.HTTPFILEURL + stringObjectMap.get(value).toString(), path);
File file = new File(filePath);
row.setHeightInPoints(50);
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
cellRow = row.createCell(cellColumn);
@ -101,16 +104,17 @@ public class ImageExcelUtil {
sheet.setColumnWidth(cellColumn, 5000);
log.error("图片路径" + file);
bufferImg = ImageIO.read(file);
ImageIO.write(bufferImg, "jpg", byteArrayOut);
anchor = new HSSFClientAnchor(0, 0, 1023, 255, (short) cellColumn, i, (short) cellColumn, i);
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
cellColumn++;
ImageIO.write(bufferImg, "png", byteArrayOut);
anchor = new HSSFClientAnchor(0, 0, 800, 255, (short) cellColumn, i, (short) cellColumn, i);
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
fileList.add(file);
}
}
if (stringObjectMap.get(value) != null) {
cellRow.setCellValue(stringObjectMap.get(value).toString());
} else {
cellRow.setCellValue("");
if (stringObjectMap.get(value) != null) {
cellRow.setCellValue(stringObjectMap.get(value).toString());
} else {
cellRow.setCellValue("");
}
}
cellColumn++;
}
@ -129,12 +133,9 @@ public class ImageExcelUtil {
if (out != null) {
try {
out.close();
//执行删除生成的图片 TODO
// File file = new File("E:\\data\\nginxd\\sportsApplets");//输入要删除文件目录的绝对路径
// File file = new File("/data/nginxd/sportsApplets/excelDeleteImage/");//输入要删除文件目录的绝对路径
File file = new File(path);//输入要删除文件目录的绝对路径
deleteFile(file);//由于是保存网络图片到本地服务区所以画完图片到excel就要删除文件
for (File file : fileList) {
file.delete(); //由于是保存网络图片到本地服务区所以画完图片到excel就要删除文件
}
} catch (IOException e) {
e.printStackTrace();
}
@ -143,36 +144,6 @@ public class ImageExcelUtil {
}
}
/**
* excel
*
* @param file
* @date 2021/01/11
*/
public static void deleteFile(File file) {
//判断文件不为null或文件目录存在
if (file == null || !file.exists()) {
log.error("文件删除失败,请检查文件路径是否正确");
return;
}
//取得这个目录下的所有子文件对象
File[] files = file.listFiles();
//遍历该目录下的文件对象
for (File f : files) {
//打印文件名
String name = file.getName();
log.error("删除的文件名" + name);
//判断子目录是否存在子目录,如果是文件则删除
if (f.isDirectory()) {
deleteFile(f);
} else {
f.delete();
}
}
//删除空文件夹 for循环已经把上一层节点的目录清空。
file.delete();
}
/**
*
*
@ -207,8 +178,6 @@ public class ImageExcelUtil {
// 读取到的数据长度
int len;
// 输出的文件流
// String path = "E:\\data\\nginxd\\sportsApplets";
// String path = "/data/nginxd/sportsApplets/excelDeleteImage/";
sf = new File(path);
if (!sf.exists()) {
sf.mkdirs();
@ -236,50 +205,6 @@ public class ImageExcelUtil {
return sf.getPath() + "/" + filename;
}
/**
* java-map getClassfile
*
* @param javaBean
* @return Map
* @throws Exception
* @date 2021/01/11
*/
public static Map<String, Object> javaBean2Map(Object javaBean) throws Exception {
Map<String, Object> map = new LinkedHashMap<>();
//反射的实现方式:第一种
/*Class<Student> studentClass = Student.class;
studentClass.getClass();*/
//第二种实现方式
Method[] methods = javaBean.getClass().getMethods(); // 获取所有方法
//第三种实现方式
/*Class.forName("类路径");*/
String fileName = null;
File file = null;
for (Method method : methods) {
if (method.getName().startsWith("get")) {
String field = method.getName(); // 拼接属性名
if (field.contains("getClass")) {
continue;
}
field = field.substring(field.indexOf("get") + 3);
Object value = method.invoke(javaBean, (Object[]) null); // 执行方法
if (field.equals("USER_SIGN_FILE") || field.equals("PORTRAIT")) {
fileName = field;
file = (File) value;
continue;
}
if (fileName != null) {
map.put(fileName, file);
fileName = null;
} else {
map.put(field, value);
}
}
}
return map;
}
/**
*
*

View File

@ -0,0 +1,148 @@
package com.zcloud.util;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.StrUtil;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.*;
import java.net.URL;
import java.nio.file.Files;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ImageUtil {
/**
*
*/
private static final String separator = "/";
public static MultipartFile base64ToMultipartFile(String baseImg) {
//定义一个正则表达式的筛选规则,为了获取图片的类型
String rgex = "data:image/(.*?);base64";
if (StrUtil.isBlank(baseImg)) {
return null;
}
String type = getSubUtilSimple(baseImg, rgex);
//去除base64图片的前缀
baseImg = baseImg.replaceFirst("data:(.+?);base64,", "");
byte[] imageByte;
String fileName = "";
//把图片转换成二进制
imageByte = Base64.decode(baseImg.replaceAll(" ", "+"));
//随机生成图片的名字,同时根据类型结尾
fileName = UUID.randomUUID().toString() + "." + type;
InputStream inputStream = new ByteArrayInputStream(imageByte);
MockMultipartFile mockMultipartFile = null;
try {
mockMultipartFile = new MockMultipartFile(fileName, fileName, "", inputStream);
} catch (IOException e) {
e.printStackTrace();
}
return mockMultipartFile;
}
public static String getSubUtilSimple(String soap, String rgex) {
Pattern pattern = Pattern.compile(rgex);
Matcher m = pattern.matcher(soap);
while (m.find()) {
return m.group(1);
}
return "";
}
/**
* url
* @param url
* @return
* @throws Exception
*/
public static File getFile(String url) throws Exception {
//对本地文件命名
String fileName = url.substring(url.lastIndexOf("."),url.length());
File file = null;
URL urlfile;
InputStream inStream = null;
OutputStream os = null;
try {
file = File.createTempFile("fwj_url", fileName);
//下载
urlfile = new URL(url);
inStream = urlfile.openStream();
os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = inStream.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != os) {
os.close();
}
if (null != inStream) {
inStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return file;
}
/**
* urlmultipartFile
* @param url
* @return
*/
public static MultipartFile getMultipartFile(String url) {
FileInputStream inputStream = null;
OutputStream outputStream = null;
try {
File file = getFile(url);
System.out.println(file.toPath());
FileItem fileItem = new DiskFileItem("formFieldName",//form表单文件控件的名字随便起
Files.probeContentType(file.toPath()),//文件类型
false, //是否是表单字段
file.getName(),//原始文件名
(int) file.length(),//Interger的最大值可以存储两部1G的电影
file.getParentFile());//文件会在哪个目录创建
//为DiskFileItem的OutputStream赋值
inputStream = new FileInputStream(file);
outputStream = fileItem.getOutputStream();
IOUtils.copy(inputStream, outputStream);
return new CommonsMultipartFile(fileItem);
} catch (Exception e) {
System.out.println("文件类型转换失败" + e.getMessage());
return null;
} finally {
try {
if (null != inputStream) {
inputStream.close();
}
if (null != outputStream) {
outputStream.close();
}
} catch (IOException e) {
System.out.println(">>文件流关闭失败" + e.getMessage());
}
}
}
}

View File

@ -5,6 +5,7 @@ import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import java.io.File;
import java.io.FileInputStream;
@ -49,7 +50,7 @@ public class ObjectExcelRead {
HSSFCell cell = row.getCell(Short.parseShort(j + ""));
String cellValue = null;
if (null != cell) {
switch (cell.getCellType().getCode()) { // 判断excel单元格内容的格式并对其进行转换以便插入数据库
switch (cell.getCellType()) { // 判断excel单元格内容的格式并对其进行转换以便插入数据库
case 0:
BigDecimal bigDecimal = new BigDecimal(cell.getNumericCellValue());
@ -117,7 +118,7 @@ public class ObjectExcelRead {
HSSFCell cell = row.getCell(Short.parseShort(j + ""));
String cellValue = null;
if (null != cell) {
switch (cell.getCellType().getCode()) { // 判断excel单元格内容的格式并对其进行转换以便插入数据库
switch (cell.getCellType()) { // 判断excel单元格内容的格式并对其进行转换以便插入数据库
case 0:
BigDecimal bigDecimal = new BigDecimal(cell.getNumericCellValue());
cellValue = bigDecimal.toPlainString();
@ -163,22 +164,32 @@ public class ObjectExcelRead {
*/
public static int getExcelRealRow(HSSFSheet sheet) {
boolean flag = false;
int rowCount = 0;
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
HSSFRow row = sheet.getRow(i); //行
if(row == null){
break;
}
HSSFCell cell = row.getCell(0);
if(null != cell){
rowCount ++;
for (int i = 1; i <= sheet.getLastRowNum(); ) {
HSSFRow r = sheet.getRow(i);
if (r == null) {
// 如果是空行(即没有任何数据、格式),直接把它以下的数据往上移动
sheet.shiftRows(i + 1, sheet.getLastRowNum(), -1);
continue;
}else{
break;
}
flag = false;
for (Cell c : r) {
if (Tools.notEmpty(c.getStringCellValue())) {
flag = true;
break;
}
}
if (flag) {
i++;
continue;
} else {
// 如果是空白行(即可能没有数据,但是有一定格式)
if (i == sheet.getLastRowNum())// 如果到了最后一行直接将那一行remove掉
sheet.removeRow(r);
else//如果还没到最后一行,则数据往上移一行
sheet.shiftRows(i + 1, sheet.getLastRowNum(), -1);
}
}
return rowCount;
return sheet.getLastRowNum();
}
}

View File

@ -35,6 +35,13 @@
f.AUTHENTICATION,
f.PORTRAIT,
f.ID_PHOTO,
f.PREVIOUS_POST_DATE,
f.WORK_EXPERIENCE,
f.CERTIFICATES,
f.PUNISH,
f.HEALTH,
f.UNIVERSITY,
f.RESIDENCE,
f.USER_ID
</sql>
@ -61,6 +68,13 @@
AUTHENTICATION,
PORTRAIT,
ID_PHOTO,
PREVIOUS_POST_DATE,
WORK_EXPERIENCE,
CERTIFICATES,
PUNISH,
HEALTH,
UNIVERSITY,
RESIDENCE,
USER_ID
</sql>
@ -87,6 +101,13 @@
#{AUTHENTICATION},
#{PORTRAIT},
#{ID_PHOTO},
#{PREVIOUS_POST_DATE},
#{WORK_EXPERIENCE},
#{CERTIFICATES},
#{PUNISH},
#{HEALTH},
#{UNIVERSITY},
#{RESIDENCE},
#{USER_ID}
</sql>
@ -293,4 +314,27 @@
where
USER_ID = #{USER_ID}
</update>
<update id="editAuthentication" parameterType="pd">
update
<include refid="tableName"></include>
set
AUTHENTICATION = #{AUTHENTICATION}
where
USER_ID = #{USER_ID}
and AUTHENTICATION = '0'
</update>
<!-- 修改 -->
<update id="editUserInfo" parameterType="pd">
update
<include refid="tableName"></include>
set
<if test="PORTRAIT != null and PORTRAIT != ''">
PORTRAIT = #{PORTRAIT},
</if>
USER_ID = #{USER_ID}
where
USER_ID = #{USER_ID}
</update>
</mapper>

View File

@ -406,6 +406,7 @@
IFNULL(s.COMPLETE_CLASSHOUR, 0) COMPLETE_CLASSHOUR,
c.START_TIME,
c.END_TIME,
c.CODE,
f.PERSONNEL_TYPE,
f.POST_ID,
f.CLASS_ID,

View File

@ -205,13 +205,29 @@
else '未知' end as SEX_NAME,
cl.NAME as DEGREE_OF_EDUCATION_NAME,
d.NAME AS DUTIES_NAME,
tw.NAME AS TYPE_OF_WORK_NAME,
po.NAME AS POLITICAL_OUTLOOK_NAME,
na.NAME AS NATION_NAME,
ui.ID_PHOTO,
ui.PORTRAIT,
ui.DATE_OF_BIRTH,
ui.ENTRY_DATE,
ui.WORKING_DATE,
ui.PREVIOUS_POST_DATE,
ui.WORK_EXPERIENCE,
ui.CERTIFICATES,
ui.PUNISH,
ui.HEALTH,
ui.UNIVERSITY,
ui.RESIDENCE,
ci.CORP_NAME
FROM BUS_STUDENT s
left join sys_userinfo ui on ui.user_id = s.user_id
LEFT JOIN SYS_DICTIONARIES cl on cl.DICTIONARIES_ID = s.DEGREE_OF_EDUCATION
LEFT JOIN SYS_DICTIONARIES d on d.DICTIONARIES_ID = s.DUTIES
LEFT JOIN SYS_DICTIONARIES cl on cl.DICTIONARIES_ID = ui.DEGREE_OF_EDUCATION
LEFT JOIN SYS_DICTIONARIES d on d.DICTIONARIES_ID = ui.DUTIES
LEFT JOIN SYS_DICTIONARIES po on po.DICTIONARIES_ID = ui.POLITICAL_OUTLOOK
LEFT JOIN SYS_DICTIONARIES na on na.DICTIONARIES_ID = ui.NATION
LEFT JOIN SYS_POST tw on tw.POST_ID = ui.TYPE_OF_WORK
LEFT JOIN BUS_CORP_INFO ci on ci.CORPINFO_ID = s.CORPINFO_ID and ci.ISDELETE = '0'
where s.STUDENT_ID = #{STUDENT_ID}
</select>

View File

@ -423,7 +423,10 @@
<if test="pd.PRINCIPAL_PHONE != null and pd.PRINCIPAL_PHONE != ''"><!-- 关键词检索 -->
and ( f.PRINCIPAL_PHONE LIKE CONCAT(CONCAT('%', #{pd.PRINCIPAL_PHONE}),'%') )
</if>
<if test="pd.POSTTYPE != null and pd.POSTTYPE != ''"><!-- 培训行业类型 -->
<if test="pd.TRAINTYPE != null and pd.TRAINTYPE != ''"><!-- 培训类型 -->
and f.TRAINTYPE = #{pd.TRAINTYPE}
</if>
<if test="pd.POSTTYPE != null and pd.POSTTYPE != ''"><!-- 岗位类型 -->
and f.POSTTYPE = #{pd.POSTTYPE}
</if>
@ -593,17 +596,10 @@
select count(*)
from
bus_class c
left join bus_enterprise e on c.ENTERPRISE_ID = e.ENTERPRISE_ID
where c.ISDELETE = 0 and c.STATE != '1'
<if test="USER_ID != null and USER_ID != ''"><!-- 培训类型 -->
AND e.CREATOR = #{USER_ID}
</if>
<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>
</select>
<!-- 批量删除 -->

View File

@ -224,6 +224,7 @@
f.INDUSTRY_END_ID,
f.INDUSTRY_ALL_TYPE,
f.CURRICULUM_ID_REMOTE,
f.CREATTIME,
<if test="pd.CLASS_ID != null and pd.CLASS_ID != ''">
IF(cc.CLASSCURRICULUM_ID IS NULL,'0','1') ISUSE,
</if>

View File

@ -193,99 +193,16 @@
and f.CORPINFO_ID = #{CORPINFO_ID}
</select>
<!-- 列表
STUDYCOUNT 联系次数
COURSEEXAMRECORDCOUNT 课考使用次数
STAGEEXAMRECORDCOUNT 阶考使用次数
COURSEEXAMCOUNT 课考关联数
STAGEEXAMCOUNT 阶考关联数 -->
<select id="datalistPage" parameterType="page" resultType="pd">
<choose>
<when test="pd.COURSEWARETYPE != null and pd.COURSEWARETYPE != '' and pd.COURSEWARETYPE == 1">
select
v.COURSEWARENAME COURSEWARENAME,
IFNULL(COUNT(DISTINCT g.COURSESTUDYRECORD_ID),0) STUDYCOUNT,
IFNULL(COUNT(DISTINCT h.COURSEEXAMRECORD_ID),0) COURSEEXAMRECORDCOUNT,
IFNULL(COUNT(DISTINCT i.STAGEEXAMRECORD_ID),0) STAGEEXAMRECORDCOUNT,
IFNULL(COUNT(DISTINCT j.CURRICULUMID),0) COURSEEXAMCOUNT,
IFNULL(COUNT(DISTINCT k.STAGEEXAMPAPER_ID),0) STAGEEXAMCOUNT,
<include refid="Field"></include>
from
<include refid="tableName"></include>
f
left join BUS_VIDEOCOURSEWARE v on f.COURSEWAREID = v.VIDEOCOURSEWARE_ID and v.ISDELETE = '0'
LEFT JOIN BUS_COURSESTUDYRECORD g on g.QUESTION_ID = f.QUESTION_ID AND g.ISDELETE = '0'
LEFT JOIN BUS_COURSEEXAMRECORD h on h.QUESTION_ID = f.QUESTION_ID AND h.ISDELETE = '0'
LEFT JOIN BUS_STAGEEXAMRECORD i on i.QUESTION_ID = f.QUESTION_ID AND i.ISDELETE = '0'
LEFT JOIN BUS_COURSEMIDDLE j on j.QUESTIONID = f.QUESTION_ID AND j.ISDELETE = '0'
LEFT JOIN BUS_STAGEEXAMPAPERQUESTION k on k.QUESTION_ID = f.QUESTION_ID AND k.ISDELETE = '0'
where f.ISDELETE = '0' and f.CORPINFO_ID = #{pd.CORPINFO_ID}
and f.COURSEWARETYPE = #{pd.COURSEWARETYPE} and f.COURSEWAREID = #{pd.COURSEWAREID}
</when>
<when test="pd.COURSEWARETYPE != null and pd.COURSEWARETYPE != '' and pd.COURSEWARETYPE == 2">
select
d.COURSEWARENAME COURSEWARENAME,
IFNULL(COUNT(DISTINCT g.COURSESTUDYRECORD_ID),0) STUDYCOUNT,
IFNULL(COUNT(DISTINCT h.COURSEEXAMRECORD_ID),0) COURSEEXAMRECORDCOUNT,
IFNULL(COUNT(DISTINCT i.STAGEEXAMRECORD_ID),0) STAGEEXAMRECORDCOUNT,
IFNULL(COUNT(DISTINCT j.CURRICULUMID),0) COURSEEXAMCOUNT,
IFNULL(COUNT(DISTINCT k.STAGEEXAMPAPER_ID),0) STAGEEXAMCOUNT,
<include refid="Field"></include>
from
<include refid="tableName"></include>
f
left join BUS_DATACOURSEWARE d on f.COURSEWAREID = d.DATACOURSEWARE_ID and d.ISDELETE = '0'
LEFT JOIN BUS_COURSESTUDYRECORD g on g.QUESTION_ID = f.QUESTION_ID AND g.ISDELETE = '0'
LEFT JOIN BUS_COURSEEXAMRECORD h on h.QUESTION_ID = f.QUESTION_ID AND h.ISDELETE = '0'
LEFT JOIN BUS_STAGEEXAMRECORD i on i.QUESTION_ID = f.QUESTION_ID AND i.ISDELETE = '0'
LEFT JOIN BUS_COURSEMIDDLE j on j.QUESTIONID = f.QUESTION_ID AND j.ISDELETE = '0'
LEFT JOIN BUS_STAGEEXAMPAPERQUESTION k on k.QUESTION_ID = f.QUESTION_ID AND k.ISDELETE = '0'
where f.ISDELETE = '0' and f.CORPINFO_ID = #{pd.CORPINFO_ID}
and f.COURSEWARETYPE = #{pd.COURSEWARETYPE} and f.COURSEWAREID = #{pd.COURSEWAREID}
</when>
<otherwise>
SELECT f.*,
IFNULL(COUNT(DISTINCT g.COURSESTUDYRECORD_ID),0) STUDYCOUNT,
IFNULL(COUNT(DISTINCT h.COURSEEXAMRECORD_ID),0) COURSEEXAMRECORDCOUNT,
IFNULL(COUNT(DISTINCT i.STAGEEXAMRECORD_ID),0) STAGEEXAMRECORDCOUNT,
IFNULL(COUNT(DISTINCT j.CURRICULUMID),0) COURSEEXAMCOUNT,
IFNULL(COUNT(DISTINCT k.STAGEEXAMPAPER_ID),0) STAGEEXAMCOUNT FROM (
select
v.COURSEWARENAME COURSEWARENAME,
<include refid="Field"></include>
from
<include refid="tableName"></include>
f
left join BUS_VIDEOCOURSEWARE v on f.COURSEWAREID = v.VIDEOCOURSEWARE_ID and v.ISDELETE = '0'
where f.ISDELETE = '0' and f.COURSEWARETYPE='1' and f.CORPINFO_ID = #{pd.CORPINFO_ID}
UNION ALL
select
d.COURSEWARENAME COURSEWARENAME,
<include refid="Field"></include>
from
<include refid="tableName"></include>
f
left join BUS_DATACOURSEWARE d on f.COURSEWAREID = d.DATACOURSEWARE_ID and d.ISDELETE = '0'
where f.ISDELETE = '0' and f.COURSEWARETYPE='2' and f.CORPINFO_ID = #{pd.CORPINFO_ID}
) f
LEFT JOIN BUS_COURSESTUDYRECORD g on g.QUESTION_ID = f.QUESTION_ID AND g.ISDELETE = '0'
LEFT JOIN BUS_COURSEEXAMRECORD h on h.QUESTION_ID = f.QUESTION_ID AND h.ISDELETE = '0'
LEFT JOIN BUS_STAGEEXAMRECORD i on i.QUESTION_ID = f.QUESTION_ID AND i.ISDELETE = '0'
LEFT JOIN BUS_COURSEMIDDLE j on j.QUESTIONID = f.QUESTION_ID AND j.ISDELETE = '0'
LEFT JOIN BUS_STAGEEXAMPAPERQUESTION k on k.QUESTION_ID = f.QUESTION_ID AND k.ISDELETE = '0'
WHERE 1=1
</otherwise>
</choose>
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and f.QUESTIONDRY LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
<!-- 根据需求自己加检索条件
(
f.QUESTIONDRY LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
or
字段2 LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
)
-->
</if>
select
v.COURSEWARENAME COURSEWARENAME,
<include refid="Field"></include>
from
<include refid="tableName"></include>
f
left join BUS_VIDEOCOURSEWARE v on f.COURSEWAREID = v.VIDEOCOURSEWARE_ID and v.ISDELETE = '0'
where f.ISDELETE = '0'
and f.COURSEWAREID = #{pd.COURSEWAREID}
GROUP BY f.QUESTION_ID ORDER BY f.QUESTIONNUMBER+0 ASC
</select>

View File

@ -626,7 +626,7 @@
f
INNER JOIN bus_class t ON t.CLASS_ID = f.CLASS_ID AND t.ISDELETE = '0'
LEFT JOIN BUS_STUDENT s on s.CLASS_ID = f.CLASS_ID and s.USER_ID = f.USER_ID and s.ISDELETE = '0'
LEFT JOIN BUS_POST_PAPER ppa on ppa.CLASS_ID = f.CLASS_ID and ppa.POST_ID = s.POST_ID and f.ISDELETE = '0'
LEFT JOIN BUS_POST_PAPER ppa on ppa.CLASS_ID = f.CLASS_ID and ppa.POST_ID = s.POST_ID and ppa.ISDELETE = '0'
LEFT JOIN BUS_STAGEEXAMPAPER_INPUT p ON p.STAGEEXAMPAPERINPUT_ID = ppa.STAGEEXAMPAPERINPUT_ID AND p.ISDELETE =
'0'
LEFT JOIN BUS_POST_TYPE pt on pt.POSTTYPE_ID = t.POSTTYPE

View File

@ -636,7 +636,7 @@
f
INNER JOIN bus_class t ON t.CLASS_ID = f.CLASS_ID AND t.ISDELETE = '0'
LEFT JOIN BUS_STUDENT s on s.CLASS_ID = f.CLASS_ID and s.USER_ID = f.USER_ID and s.ISDELETE = '0'
LEFT JOIN BUS_POST_PAPER ppa on ppa.CLASS_ID = f.CLASS_ID and ppa.POST_ID = s.POST_ID and f.ISDELETE = '0'
LEFT JOIN BUS_POST_PAPER ppa on ppa.CLASS_ID = f.CLASS_ID and ppa.POST_ID = s.POST_ID and ppa.ISDELETE = '0'
LEFT JOIN bus_strengthenstageexampaper_input p ON p.STRENGTHEN_STAGEEXAMPAPER_INPUT_ID =
ppa.STRENGTHEN_STAGEEXAMPAPER_INPUT_ID AND p.ISDELETE =
'0'

View File

@ -498,6 +498,9 @@
<if test="pd.STUDENT_NAME != null and pd.STUDENT_NAME != ''"><!-- 关键词检索 -->
and ( f.NAME LIKE CONCAT(CONCAT('%', #{pd.STUDENT_NAME}),'%') )
</if>
<if test="pd.USER_ID_CARD != null and pd.USER_ID_CARD != ''"><!-- 关键词检索 -->
and su.USER_ID_CARD = #{pd.USER_ID_CARD}
</if>
<if test="pd.CODE != null and pd.CODE != ''"><!-- 关键词检索 -->
AND c.CODE = #{pd.CODE}
</if>
@ -545,11 +548,7 @@
from
<include refid="tableName"></include>
f LEFT JOIN bus_class c on f.CLASS_ID = c.CLASS_ID
left join bus_enterprise e on c.ENTERPRISE_ID = e.ENTERPRISE_ID
where f.ISDELETE = '0' and c.STATE != '1'
<if test="USER_ID != null and USER_ID != ''"><!-- 培训类型 -->
AND e.CREATOR = #{USER_ID}
</if>
<if test="CORPINFO_ID != null and CORPINFO_ID != ''"><!-- 培训类型 -->
and f.CORPINFO_ID = #{CORPINFO_ID}
</if>
@ -1109,8 +1108,6 @@
f.NAME,
f.USER_ID_CARD,
dic1.NAME as DEGREE_OF_EDUCATION,
f.MAJOR,
f.DUTIES,
dep.NAME as DEPARTMENT_NAME,
post.NAME as POST_NAME,
c.INDUSTRY_ALL_NAME,
@ -1124,7 +1121,8 @@
ssti.EXAMSCORE as STRENGTHEN_EXAMSCORE,
sst.STRENGTHENEXAMSCORE,
sst.OPERATTIME as STRENGTHEN_OPERATTIME,
sst.STRENGTHEN_STAGEEXAMPAPER_INPUT_ID
sst.STRENGTHEN_STAGEEXAMPAPER_INPUT_ID,
CONCAT_WS(dic3.NAME ,'/' , dic4.NAME ) DUTIES
from
<include refid="tableName"></include> f
left join <include refid="dicTableName"></include> dic1 on f.DEGREE_OF_EDUCATION = dic1.DICTIONARIES_ID
@ -1135,6 +1133,9 @@
left join (select * from bus_stagestudentrelation where STAGEEXAMSTATE = '3') bsr on bsr.STUDENT_ID = f.STUDENT_ID
left join bus_strengthenstudentrelation sst on sst.STUDENT_ID = f.STUDENT_ID
left join bus_strengthenstageexampaper_input ssti on sst.STRENGTHEN_STAGEEXAMPAPER_INPUT_ID = ssti.STRENGTHEN_STAGEEXAMPAPER_INPUT_ID
left join sys_userinfo ui on ui.user_id = f.user_id
left join <include refid="dicTableName"></include> dic3 on ui.DUTIES = dic3.DICTIONARIES_ID
left join <include refid="dicTableName"></include> dic4 on ui.TITLE = dic4.DICTIONARIES_ID
where
f.STUDENT_ID = #{STUDENT_ID}
</select>
@ -1272,6 +1273,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
WHERE f.ISDELETE = '0'
AND c.ISDELETE = '0'
AND ssr.ISDELETE = '0'
@ -1285,6 +1287,9 @@
<if test="STUDENT_NAME != null and STUDENT_NAME != ''"><!-- 关键词检索 -->
and ( f.NAME LIKE CONCAT(CONCAT('%', #{STUDENT_NAME}),'%') )
</if>
<if test="USER_ID_CARD != null and USER_ID_CARD != ''"><!-- 关键词检索 -->
AND su.USER_ID_CARD = #{USER_ID_CARD}
</if>
<if test="CODE != null and CODE != ''"><!-- 关键词检索 -->
AND c.CODE = #{CODE}
</if>

View File

@ -28,8 +28,8 @@
f.OPERATOR,
f.OPERATTIME,
f.TYPE,
f.USERAVATARPREFIX
f.USERAVATARPREFIX,
f.COVERPATH
</sql>
@ -47,7 +47,8 @@
OPERATOR,
OPERATTIME,
TYPE,
USERAVATARPREFIX
USERAVATARPREFIX,
COVERPATH
</sql>
@ -65,7 +66,8 @@
#{OPERATOR},
#{OPERATTIME},
#{TYPE},
#{USERAVATARPREFIX}
#{USERAVATARPREFIX},
#{COVERPATH}
</sql>
<!-- 新增-->

View File

@ -486,18 +486,6 @@
<if test="ISDELETE != null and ISDELETE != ''">
ISDELETE = #{ISDELETE},
</if>
<if test="CREATOR != null and CREATOR != ''">
CREATOR = #{CREATOR},
</if>
<if test="CREATTIME != null and CREATTIME != ''">
CREATTIME = #{CREATTIME},
</if>
<if test="OPERATOR != null and OPERATOR != ''">
OPERATOR = #{OPERATOR},
</if>
<if test="OPERATTIME != null and OPERATTIME != ''">
OPERATTIME = #{OPERATTIME},
</if>
<if test="USER_ID_CARD != null and USER_ID_CARD != ''">
USER_ID_CARD = #{USER_ID_CARD},
</if>