From 2a25da330ecd3251286ded7213bf217536577594 Mon Sep 17 00:00:00 2001 From: mzh820631607 Date: Mon, 26 Oct 2020 17:46:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=98=E5=B7=A5=E5=AF=BC=E5=85=A5=E5=AF=BC?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 +- .../tms/common/utils/ExcelImportHelper.java | 67 +++++++++++++---- .../tms/common/utils/poi/ExcelExportUtil.java | 16 +++- .../com/msdw/tms/dao/SystemSetttingDao.java | 10 ++- .../java/com/msdw/tms/dao/UserInfoDao.java | 6 +- .../com/msdw/tms/entity/vo/StaffExportVo.java | 2 + .../java/com/msdw/tms/entity/vo/StaffVo.java | 6 ++ .../service/impl/QuestionsServiceImpl.java | 1 - .../impl/SystemSettingServiceImpl.java | 70 ++++++++++++------ .../员工信息导入失败模板.xlsx | Bin 9335 -> 9381 bytes .../员工信息导入模板.xlsx | Bin 9308 -> 9431 bytes src/main/resources/mapper/tms/StudentDao.xml | 2 +- .../resources/mapper/tms/SystemSetting.xml | 48 +++++++++--- src/main/resources/mapper/tms/UserInfoDao.xml | 14 +++- src/test/java/com/msdw/tms/Test.java | 8 ++ 15 files changed, 201 insertions(+), 56 deletions(-) create mode 100644 src/test/java/com/msdw/tms/Test.java diff --git a/pom.xml b/pom.xml index e3e712f..d1e2781 100644 --- a/pom.xml +++ b/pom.xml @@ -213,7 +213,12 @@ lombok 1.18.12 - + + + com.alibaba + easyexcel + 2.1.1 + diff --git a/src/main/java/com/msdw/tms/common/utils/ExcelImportHelper.java b/src/main/java/com/msdw/tms/common/utils/ExcelImportHelper.java index 2897b6e..8e5ec3f 100644 --- a/src/main/java/com/msdw/tms/common/utils/ExcelImportHelper.java +++ b/src/main/java/com/msdw/tms/common/utils/ExcelImportHelper.java @@ -88,7 +88,7 @@ public class ExcelImportHelper { return list; } /** - * 读取学生管理 + * 读取员工管理 * @param file * @return */ @@ -109,6 +109,10 @@ public class ExcelImportHelper { Cell phone; Cell email; + Cell staffGradeName; + Cell staffProfessionalArchitectureName; + Cell staffGradeNameTwo; + Cell staffProfessionalArchitectureNameTwo; if (row != null) { staff = new StaffVo(); row.getCell(0).setCellType(CellType.STRING); @@ -119,27 +123,56 @@ public class ExcelImportHelper { Cell role = row.getCell(2); row.getCell(3).setCellType(CellType.STRING); Cell workNumber = row.getCell(3); - row.getCell(4).setCellType(CellType.STRING); - Cell staffGradeName = row.getCell(4); - row.getCell(5).setCellType(CellType.STRING); - Cell staffProfessionalArchitectureName = row.getCell(5); +// row.getCell(4).setCellType(CellType.STRING); +// Cell staffGradeName = row.getCell(4); + if (row.getCell(4)!=null){ + row.getCell(4).setCellType(CellType.STRING); + staffGradeName = row.getCell(4); + }else { + staffGradeName = row.createCell(4); + } + if (row.getCell(5)!=null){ + row.getCell(5).setCellType(CellType.STRING); + staffProfessionalArchitectureName = row.getCell(5); + }else { + staffProfessionalArchitectureName = row.createCell(5); + } if (row.getCell(6)!=null){ row.getCell(6).setCellType(CellType.STRING); - phone = row.getCell(6); + staffGradeNameTwo = row.getCell(6); }else { - phone = row.createCell(6); + staffGradeNameTwo = row.createCell(6); } if (row.getCell(7)!=null){ row.getCell(7).setCellType(CellType.STRING); - email = row.getCell(7); + staffProfessionalArchitectureNameTwo = row.getCell(7); }else { - email = row.createCell(7); + staffProfessionalArchitectureNameTwo = row.createCell(7); } - row.getCell(8).setCellType(CellType.STRING); - Cell schoolAppellationName = row.getCell(8); - row.getCell(9).setCellType(CellType.STRING); - Cell failureMsg = row.getCell(9); + +// row.getCell(5).setCellType(CellType.STRING); +// Cell staffProfessionalArchitectureName = row.getCell(5); +// row.getCell(6).setCellType(CellType.STRING); +// Cell staffGradeNameTwo = row.getCell(6); +// row.getCell(7).setCellType(CellType.STRING); +// Cell staffProfessionalArchitectureNameTwo = row.getCell(7); + if (row.getCell(8)!=null){ + row.getCell(8).setCellType(CellType.STRING); + phone = row.getCell(8); + }else { + phone = row.createCell(8); + } + if (row.getCell(9)!=null){ + row.getCell(9).setCellType(CellType.STRING); + email = row.getCell(9); + }else { + email = row.createCell(9); + } + row.getCell(10).setCellType(CellType.STRING); + Cell schoolAppellationName = row.getCell(10); +// row.getCell(11).setCellType(CellType.STRING); +// Cell failureMsg = row.getCell(11); String roleValue = role.getStringCellValue(); @@ -161,10 +194,14 @@ public class ExcelImportHelper { staff.setAccount(account.getStringCellValue()); // 学生学号 staff.setWorkNumber(workNumber.getStringCellValue()); - //专业名称 + //管理员的专业名称 staff.setStaffGradeName(staffGradeName.getStringCellValue()); - //组织架构名称 + //管理员的组织架构名称 staff.setStaffProfessionalArchitectureName(staffProfessionalArchitectureName.getStringCellValue()); + //老师的专业名称 + staff.setStaffGradeNameTwo(staffGradeNameTwo.getStringCellValue()); + //老师的组织架构名称 + staff.setStaffProfessionalArchitectureNameTwo(staffProfessionalArchitectureNameTwo.getStringCellValue()); //电话 staff.setPhone(phone.getStringCellValue()); //邮箱 diff --git a/src/main/java/com/msdw/tms/common/utils/poi/ExcelExportUtil.java b/src/main/java/com/msdw/tms/common/utils/poi/ExcelExportUtil.java index ffe4899..e43d0fb 100644 --- a/src/main/java/com/msdw/tms/common/utils/poi/ExcelExportUtil.java +++ b/src/main/java/com/msdw/tms/common/utils/poi/ExcelExportUtil.java @@ -44,8 +44,9 @@ public class ExcelExportUtil { XSSFWorkbook workbook = new XSSFWorkbook(is); //2.读取工作表 Sheet sheet = workbook.getSheetAt(0); + Row row1 = sheet.getRow(styleIndex); //3.提取公共的样式 - CellStyle[] styles = getTemplateStyles(sheet.getRow(styleIndex)); + CellStyle[] styles = getTemplateStyles(row1); //4.根据数据创建每一行和每一个单元格的数据2 AtomicInteger datasAi = new AtomicInteger(rowIndex); //数字 for (T t : objs) { @@ -77,8 +78,19 @@ public class ExcelExportUtil { CellStyle[] getTemplateStyles(Row row) { CellStyle[] styles = new CellStyle[row.getLastCellNum()]; for (int i = 0; i < row.getLastCellNum(); i++) { - styles[i] = row.getCell(i).getCellStyle(); + if (row.getCell(i)==null){ + styles[i] = row.createCell(i).getCellStyle(); + }else{ + styles[i] = row.getCell(i).getCellStyle(); + } } return styles; } +// CellStyle[] getTemplateStyles(Row row) { +// CellStyle[] styles = new CellStyle[row.getLastCellNum()]; +// for (int i = 0; i < row.getLastCellNum(); i++) { +// styles[i] = row.getCell(i).getCellStyle(); +// } +// return styles; +// } } diff --git a/src/main/java/com/msdw/tms/dao/SystemSetttingDao.java b/src/main/java/com/msdw/tms/dao/SystemSetttingDao.java index 084daba..88b747a 100644 --- a/src/main/java/com/msdw/tms/dao/SystemSetttingDao.java +++ b/src/main/java/com/msdw/tms/dao/SystemSetttingDao.java @@ -40,9 +40,17 @@ public interface SystemSetttingDao { List queryStaffInfo(Integer userId); - boolean addStaff(StaffEntity staffEntity,Integer userId); + boolean addStaffUpdata(StaffEntity staffEntity); boolean deleteStaffOnly(Integer userId); boolean updateStaffOnly(StaffVo staffVo); + + boolean addStaffManager(StaffVo staff); + + boolean addStaffTeacher(StaffVo staff); + + Integer queryDepartmentNameGrade(String staffGradeName,Integer organizationId); + + Integer queryDepartmentNameOrganization(String staffProfessionalArchitectureName,Integer schoolId); } diff --git a/src/main/java/com/msdw/tms/dao/UserInfoDao.java b/src/main/java/com/msdw/tms/dao/UserInfoDao.java index 3de1095..44b9409 100644 --- a/src/main/java/com/msdw/tms/dao/UserInfoDao.java +++ b/src/main/java/com/msdw/tms/dao/UserInfoDao.java @@ -38,7 +38,11 @@ public interface UserInfoDao extends BaseMapper { List queryPhone(String phone); - List queryAccount(String account); +// List queryAccount(String account); + + List queryAccount(String account); + + StaffVo queryAccountUpdate(Integer userId); boolean setNUM(Integer userId); diff --git a/src/main/java/com/msdw/tms/entity/vo/StaffExportVo.java b/src/main/java/com/msdw/tms/entity/vo/StaffExportVo.java index 4f364e4..0e383dd 100644 --- a/src/main/java/com/msdw/tms/entity/vo/StaffExportVo.java +++ b/src/main/java/com/msdw/tms/entity/vo/StaffExportVo.java @@ -2,10 +2,12 @@ package com.msdw.tms.entity.vo; import com.msdw.tms.common.utils.poi.ExcelAttribute; import lombok.Data; +import lombok.ToString; import lombok.experimental.Accessors; @Data @Accessors(chain = true) +@ToString public class StaffExportVo { //序列号 diff --git a/src/main/java/com/msdw/tms/entity/vo/StaffVo.java b/src/main/java/com/msdw/tms/entity/vo/StaffVo.java index e9f58e5..4da7cd6 100644 --- a/src/main/java/com/msdw/tms/entity/vo/StaffVo.java +++ b/src/main/java/com/msdw/tms/entity/vo/StaffVo.java @@ -1,5 +1,6 @@ package com.msdw.tms.entity.vo; +import com.msdw.tms.common.utils.poi.ExcelAttribute; import com.msdw.tms.entity.StaffEntity; import com.msdw.tms.entity.UserInfoEntity; import lombok.Data; @@ -54,6 +55,11 @@ public class StaffVo extends UserInfoEntity { private List staff; + //老师专业组织名称 + private String staffGradeNameTwo; + + //老师组织架构名称 + private String staffProfessionalArchitectureNameTwo; //----------------------------------部门 diff --git a/src/main/java/com/msdw/tms/service/impl/QuestionsServiceImpl.java b/src/main/java/com/msdw/tms/service/impl/QuestionsServiceImpl.java index f121590..2fafc67 100644 --- a/src/main/java/com/msdw/tms/service/impl/QuestionsServiceImpl.java +++ b/src/main/java/com/msdw/tms/service/impl/QuestionsServiceImpl.java @@ -632,7 +632,6 @@ public class QuestionsServiceImpl extends ServiceImpl resultA = userInfoDao.queryAccount(account); + List resultA = userInfoDao.queryAccount(account); // List resultW = systemSetttingDao.queryWorkNumber(workNumber); if(resultA.size()>0){ return R.error(400,"账号不能重复"); @@ -124,29 +125,35 @@ public class SystemSettingServiceImpl implements SystemSetttingService { String workNumber = staffVo.getWorkNumber(); List staff = staffVo.getStaff();//获取员工数据 - List result = userInfoDao.queryAccount(account); - String roleIds = result.get(0); + StaffVo result = userInfoDao.queryAccountUpdate(staffVo.getUserId()); +// String roleIds = result.get(0).getRoleId(); +// StaffVo staffVo1 = result.get(0); + String roleIds = result.getRoleId(); String[] splitOld = staffVo.getRoleId().split(","); String[] splitNew = roleIds.split(","); - if (splitOld.length==splitNew.length){ - for (int i = 0;i<=splitNew.length;i++){ + if (splitOld.length==splitNew.length&&splitNew.length<2){ + for (int i = 0;isplitOld.length){ boolean a = systemSetttingDao.updateStaff(staff.get(0)); - boolean b = systemSetttingDao.addStaff(staff.get(1),staffVo.getUserId()); + StaffEntity staffEntity = staff.get(1); + staffEntity.setUserId(staffVo.getUserId()); + boolean b = systemSetttingDao.addStaffUpdata(staffEntity); if (!a|!b){throw new RuntimeException();} - }else{ + }else if (splitNew.length resultA = userInfoDao.queryAccount(account); + List resultA = userInfoDao.queryAccount(account); List resultW = systemSetttingDao.queryWorkNumber(workNumber); if (phone!=null&&phone!=""){ List resultP = userInfoDao.queryPhone(phone); @@ -225,7 +232,7 @@ public class SystemSettingServiceImpl implements SystemSetttingService { int size = staffs.size(); Long ii = 1L; try { - for (int i = 0;i resultW = systemSetttingDao.queryWorkNumber(workNumber); - List resultA = userInfoDao.queryAccount(account); + List resultA = userInfoDao.queryAccount(account); List resultU = userInfoDao.queryUserInfo(staffVo); if (resultU.size()>0){//重复的数据 StaffExportVo vo = new StaffExportVo(); vo.setFailureMsg("用户信息已存在"); ++ii; - vo.setIndex(ii).setUserName(staff.getUserName()).setAccount(staff.getAccount()).setRole(staff.getRole()).setWorkNumber(staff.getWorkNumber()).setStaffGradeName(staff.getStaffGradeName()).setStaffProfessionalArchitectureName(staff.getStaffProfessionalArchitectureName()).setPhone(staff.getPhone()).setEmail(staff.getEmail()).setSchoolAppellationName(staff.getSchoolAppellationName()); + vo.setIndex(ii).setUserName(staffVo.getUserName()).setAccount(staffVo.getAccount()).setRole(staffVo.getRole()).setWorkNumber(staffVo.getWorkNumber()).setStaffGradeName(staffVo.getStaffGradeName()).setStaffProfessionalArchitectureName(staffVo.getStaffProfessionalArchitectureName()).setStaffGradeNameTwo(staffVo.getStaffGradeNameTwo()).setStaffProfessionalArchitectureNameTwo(staffVo.getStaffProfessionalArchitectureNameTwo()).setPhone(staffVo.getPhone()).setEmail(staffVo.getEmail()).setSchoolAppellationName(staffVo.getSchoolAppellationName()); staffs.remove(i); i--; + failVo1.add(vo); + continue; } if (resultW.size()>0){ StaffExportVo vo = new StaffExportVo(); vo.setFailureMsg("重复的工号"); ++ii; - vo.setIndex(ii).setUserName(staff.getUserName()).setAccount(staff.getAccount()).setRole(staff.getRole()).setWorkNumber(staff.getWorkNumber()).setStaffGradeName(staff.getStaffGradeName()).setStaffProfessionalArchitectureName(staff.getStaffProfessionalArchitectureName()).setPhone(staff.getPhone()).setEmail(staff.getEmail()).setSchoolAppellationName(staff.getSchoolAppellationName()); + vo.setIndex(ii).setUserName(staffVo.getUserName()).setAccount(staffVo.getAccount()).setRole(staffVo.getRole()).setWorkNumber(staffVo.getWorkNumber()).setStaffGradeName(staffVo.getStaffGradeName()).setStaffProfessionalArchitectureName(staffVo.getStaffProfessionalArchitectureName()).setStaffGradeNameTwo(staffVo.getStaffGradeNameTwo()).setStaffProfessionalArchitectureNameTwo(staffVo.getStaffProfessionalArchitectureNameTwo()).setPhone(staffVo.getPhone()).setEmail(staffVo.getEmail()).setSchoolAppellationName(staffVo.getSchoolAppellationName()); staffs.remove(i); i--; + failVo1.add(vo); continue; }else if (resultA.size()>0){ StaffExportVo vo = new StaffExportVo(); vo.setFailureMsg("重复的账号"); ++ii; - vo.setIndex(ii).setUserName(staff.getUserName()).setAccount(staff.getAccount()).setRole(staff.getRole()).setWorkNumber(staff.getWorkNumber()).setStaffGradeName(staff.getStaffGradeName()).setStaffProfessionalArchitectureName(staff.getStaffProfessionalArchitectureName()).setPhone(staff.getPhone()).setEmail(staff.getEmail()).setSchoolAppellationName(staff.getSchoolAppellationName()); + vo.setIndex(ii).setUserName(staffVo.getUserName()).setAccount(staffVo.getAccount()).setRole(staffVo.getRole()).setWorkNumber(staffVo.getWorkNumber()).setStaffGradeName(staffVo.getStaffGradeName()).setStaffProfessionalArchitectureName(staffVo.getStaffProfessionalArchitectureName()).setStaffGradeNameTwo(staffVo.getStaffGradeNameTwo()).setStaffProfessionalArchitectureNameTwo(staffVo.getStaffProfessionalArchitectureNameTwo()).setPhone(staffVo.getPhone()).setEmail(staffVo.getEmail()).setSchoolAppellationName(staffVo.getSchoolAppellationName()); staffs.remove(i); i--; + failVo1.add(vo); continue; }else if (phone!=null&&phone!=""){ List resultP = userInfoDao.queryPhone(phone); @@ -266,24 +277,36 @@ public class SystemSettingServiceImpl implements SystemSetttingService { StaffExportVo vo = new StaffExportVo(); vo.setFailureMsg("重复的手机号码"); ++ii; - vo.setIndex(ii).setUserName(staff.getUserName()).setAccount(staff.getAccount()).setRole(staff.getRole()).setWorkNumber(staff.getWorkNumber()).setStaffGradeName(staff.getStaffGradeName()).setStaffProfessionalArchitectureName(staff.getStaffProfessionalArchitectureName()).setPhone(staff.getPhone()).setEmail(staff.getEmail()).setSchoolAppellationName(staff.getSchoolAppellationName()); + vo.setIndex(ii).setUserName(staffVo.getUserName()).setAccount(staffVo.getAccount()).setRole(staffVo.getRole()).setWorkNumber(staffVo.getWorkNumber()).setStaffGradeName(staffVo.getStaffGradeName()).setStaffProfessionalArchitectureName(staffVo.getStaffProfessionalArchitectureName()).setStaffGradeNameTwo(staffVo.getStaffGradeNameTwo()).setStaffProfessionalArchitectureNameTwo(staffVo.getStaffProfessionalArchitectureNameTwo()).setPhone(staffVo.getPhone()).setEmail(staffVo.getEmail()).setSchoolAppellationName(staffVo.getSchoolAppellationName()); staffs.remove(i); i--; + failVo1.add(vo); continue; } } ++ii; if (!staffs.isEmpty()&&staffs.size()>0){ - staffVo.setPassword(ConstantUtils.INITIAL_PASSWORD); + staffVo.setPassword(ConstantUtils.INITIAL_PASSWORD).setUniqueIdentificationAccount(String.valueOf(System.currentTimeMillis())); userInfoDao.addUserinfo(staffVo); staff.setPlatformId(ConstantUtils.PLATFORMID).setUserId(staffVo.getUserId()); - boolean b = systemSetttingDao.addStaff(staff); - if(!b){ - throw new RuntimeException(); - } + String[] split = staffVo.getRoleId().split(","); + for (String str : split){ + if (Integer.parseInt(str)==2){ + Integer gradeId = systemSetttingDao.queryDepartmentNameGrade(staffVo.getStaffGradeName(),ConstantUtils.Keda_schoolId); + Integer organizationId = systemSetttingDao.queryDepartmentNameOrganization(staffVo.getStaffProfessionalArchitectureName(),ConstantUtils.Keda_schoolId); + staffVo.setStaffGradeId(gradeId).setStaffProfessionalArchitectureId(organizationId); + boolean b = systemSetttingDao.addStaffManager(staffVo); + if(!b){throw new RuntimeException();} + }else if (Integer.parseInt(str)==3){ + Integer organizationId = systemSetttingDao.queryDepartmentNameOrganization(staffVo.getStaffProfessionalArchitectureNameTwo(),ConstantUtils.Keda_schoolId); + Integer gradeId = systemSetttingDao.queryDepartmentNameGrade(staffVo.getStaffGradeNameTwo(),organizationId); + staffVo.setStaffGradeId(gradeId).setStaffProfessionalArchitectureId(organizationId); + boolean b = systemSetttingDao.addStaffTeacher(staffVo); + if(!b){throw new RuntimeException();} + } + } } - } }catch (RuntimeException e){ e.printStackTrace(); @@ -326,7 +349,10 @@ public class SystemSettingServiceImpl implements SystemSetttingService { //2.加载模板流数据 org.springframework.core.io.Resource resource = new ClassPathResource("excel-template/员工信息导入失败模板.xlsx"); +// org.springframework.core.io.Resource resource = new FileSystemResource("E:/JavaworkSpace2/msdw_tms/src/main/resources/excel-template/员工信息导入失败模板.xlsx"); InputStream inputStream = resource.getInputStream(); +// InputStream inputStream = new FileInputStream("E:/JavaworkSpace2/msdw_tms/src/main/resources/excel-template/员工信息导入失败模板.xlsx"); + //3、通过工具类下载文件 new ExcelExportUtil(StaffExportVo.class, Constant.ROW_INDEX, Constant.STYLE_INDEX). diff --git a/src/main/resources/excel-template/员工信息导入失败模板.xlsx b/src/main/resources/excel-template/员工信息导入失败模板.xlsx index 04bf779b78430a2319e026eaa1cfb9b48057e832..d6cb0bc88a3feddb8d7468ef239f72e65d6c4664 100644 GIT binary patch delta 4996 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 delta 4934 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 diff --git a/src/main/resources/excel-template/员工信息导入模板.xlsx b/src/main/resources/excel-template/员工信息导入模板.xlsx index 6acd2c62482b51eccee84907f68121b2fddace53..e4d75dbc7912b88af8ae01e98bedde5725661a48 100644 GIT binary patch delta 4743 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 I=RcAE0kbuE?f?J) diff --git a/src/main/resources/mapper/tms/StudentDao.xml b/src/main/resources/mapper/tms/StudentDao.xml index 48d33a5..82024eb 100644 --- a/src/main/resources/mapper/tms/StudentDao.xml +++ b/src/main/resources/mapper/tms/StudentDao.xml @@ -12,7 +12,7 @@ u.logInNumber, u.schoolAppellationId, u.disableAccount, - lastLoginTime, + u.lastLoginTime, s.roleId, s.workNumber, s.isdel , diff --git a/src/main/resources/mapper/tms/SystemSetting.xml b/src/main/resources/mapper/tms/SystemSetting.xml index 23ed521..d71c596 100644 --- a/src/main/resources/mapper/tms/SystemSetting.xml +++ b/src/main/resources/mapper/tms/SystemSetting.xml @@ -22,14 +22,29 @@ VALUES (#{userId},#{schoolId},#{workNumber},#{staffGradeId},#{staffProfessionalArchitectureId},#{staffGradeName},#{staffProfessionalArchitectureName},#{platformId},#{roleId}) + + INSERT INTO staff (userId,schoolId,workNumber,staffGradeId,staffProfessionalArchitectureId,staffGradeName,staffProfessionalArchitectureName,platformId,roleId) + VALUES + (#{userId},#{schoolId},#{workNumber},#{staffGradeId},#{staffProfessionalArchitectureId},#{staffGradeName},#{staffProfessionalArchitectureName},#{platformId},2) + + + INSERT INTO staff (userId,schoolId,workNumber,staffGradeId,staffProfessionalArchitectureId,staffGradeName,staffProfessionalArchitectureName,platformId,roleId) + VALUES + (#{userId},#{schoolId},#{workNumber},#{staffGradeId},#{staffProfessionalArchitectureId},#{staffGradeNameTwo},#{staffProfessionalArchitectureNameTwo},#{platformId},3) + + + INSERT INTO staff (userId,schoolId,workNumber,staffGradeId,staffProfessionalArchitectureId,staffGradeName,staffProfessionalArchitectureName,platformId,roleId) + VALUES + (#{userId},#{schoolId},#{workNumber},#{staffGradeId},#{staffProfessionalArchitectureId},#{staffGradeName},#{staffProfessionalArchitectureName},#{platformId},#{roleId}) + UPDATE staff - =#{workNumber} - staffProfessionalArchitectureId=#{staffProfessionalArchitectureId} - staffProfessionalArchitectureName=#{staffProfessionalArchitectureName} - staffGradeId=#{staffGradeId} - staffGradeName=#{staffGradeName} + workNumber=#{workNumber}, + staffProfessionalArchitectureId=#{staffProfessionalArchitectureId}, + staffProfessionalArchitectureName=#{staffProfessionalArchitectureName}, + staffGradeId=#{staffGradeId}, + staffGradeName=#{staffGradeName}, roleId=#{roleId} WHERE @@ -53,11 +68,11 @@ UPDATE staff - =#{workNumber} - staffProfessionalArchitectureId=#{staffProfessionalArchitectureId} - staffProfessionalArchitectureName=#{staffProfessionalArchitectureName} - staffGradeId=#{staffGradeId} - staffGradeName=#{staffGradeName} + =#{workNumber}, + staffProfessionalArchitectureId=#{staffProfessionalArchitectureId}, + staffProfessionalArchitectureName=#{staffProfessionalArchitectureName}, + staffGradeId=#{staffGradeId}, + staffGradeName=#{staffGradeName}, roleId=#{roleId} WHERE @@ -77,6 +92,7 @@ u.logInNumber, u.lastLoginTime, u.schoolId, + s.staffId, s.workNumber, s.staffProfessionalArchitectureId, s.staffProfessionalArchitectureName, @@ -87,9 +103,14 @@ LEFT JOIN staff s ON u.userId = s.userId WHERE s.schoolId = #{schoolId} + AND + u.isdel=0 + AND + s.isdel=0 AND (u.userName LIKE CONCAT('%',#{searchContent},'%') OR s.workNumber LIKE CONCAT('%',#{searchContent},'%')) AND FIND_IN_SET(staffGradeId,#{staffGradeIds}) AND FIND_IN_SET(staffProfessionalArchitectureId,#{staffProfessionalArchitectureIds}) + GROUP BY s.userId ORDER BY u.lastLoginTime DESC,creationTime DESC + + + \ No newline at end of file diff --git a/src/main/resources/mapper/tms/UserInfoDao.xml b/src/main/resources/mapper/tms/UserInfoDao.xml index 4d628ee..9ffced5 100644 --- a/src/main/resources/mapper/tms/UserInfoDao.xml +++ b/src/main/resources/mapper/tms/UserInfoDao.xml @@ -81,7 +81,7 @@ - SELECT roleId FROM @@ -99,6 +99,16 @@ and isdel = 0 +