zouxuan 5 lat temu
rodzic
commit
4d17f84fb5
16 zmienionych plików z 206 dodań i 16 usunięć
  1. 8 0
      edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/service/SysUserService.java
  2. 9 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/EmployeeDao.java
  3. 11 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dto/ExamCertificationDto.java
  4. 11 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/entity/Employee.java
  5. 7 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/OrganizationService.java
  6. 0 3
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/EmployeeServiceImpl.java
  7. 1 1
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java
  8. 19 7
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/OrganizationServiceImpl.java
  9. 4 1
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/TeacherServiceImpl.java
  10. 12 1
      edu-user/edu-user-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  11. 2 1
      edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamCertificationMapper.xml
  12. 51 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExcelInController.java
  13. 55 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExportController.java
  14. 8 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/OrganizationController.java
  15. 6 0
      edu-user/edu-user-server/src/main/resources/columnMapper.ini
  16. 2 2
      edu-util/src/main/java/com/keao/edu/util/excel/POIUtil.java

+ 8 - 0
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/service/SysUserService.java

@@ -118,4 +118,12 @@ public interface SysUserService extends BaseService<Integer, SysUser> {
 	 * @return
 	 */
     Integer queryUserOrganId(String clientId, Integer userId);
+
+	/**
+	 * 获取用户organId
+	 * @param clientId
+	 * @param userId
+	 * @return
+	 */
+    Integer queryEmployee(String clientId, Integer userId);
 }

+ 9 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/EmployeeDao.java

@@ -2,6 +2,15 @@ package com.keao.edu.user.dao;
 
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.user.entity.Employee;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface EmployeeDao extends BaseDAO<Integer, Employee> {
+
+    /**
+     * 批量锁定员工
+     * @param organIds
+     */
+    void batchLock(@Param("organIds") List<Integer> organIds);
 }

+ 11 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dto/ExamCertificationDto.java

@@ -4,6 +4,9 @@ import io.swagger.annotations.ApiModelProperty;
 
 public class ExamCertificationDto{
 
+    @ApiModelProperty(value = "项目名")
+    private String baseExamName;
+
     @ApiModelProperty(value = "报名编号")
     private Long examRegistrationId;
 
@@ -43,6 +46,14 @@ public class ExamCertificationDto{
     @ApiModelProperty(value = "考试内容")
     private String songJson;
 
+    public String getBaseExamName() {
+        return baseExamName;
+    }
+
+    public void setBaseExamName(String baseExamName) {
+        this.baseExamName = baseExamName;
+    }
+
     public Integer getConfirmStatus() {
         return confirmStatus;
     }

+ 11 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/entity/Employee.java

@@ -69,6 +69,9 @@ public class Employee {
 	@ApiModelProperty(value = "是否删除0否1是",required = false)
 	private boolean delFlag;
 
+	@ApiModelProperty(value = "是否锁定0否1是",required = false)
+	private Integer lockFlag;
+
 	@ApiModelProperty(value = "员工信息",required = false)
 	private SysUser sysUser;
 
@@ -78,6 +81,14 @@ public class Employee {
 
 	private String employeeType;
 
+	public Integer getLockFlag() {
+		return lockFlag;
+	}
+
+	public void setLockFlag(Integer lockFlag) {
+		this.lockFlag = lockFlag;
+	}
+
 	public String getEmployeeType() {
 		return employeeType;
 	}

+ 7 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/OrganizationService.java

@@ -58,4 +58,11 @@ public interface OrganizationService extends BaseService<Integer, Organization>
     Organization getOrganization(Integer id);
 
     Organization findByUserId(Integer id);
+
+    /**
+     * 启用/停用合作单位
+     * @param organId
+     * @param lockFlag
+     */
+    void lock(Integer organId, Integer lockFlag);
 }

+ 0 - 3
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/EmployeeServiceImpl.java

@@ -63,9 +63,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
 			}
 			Employee employee1 = employeeDao.get(user.getId());
 			if(employee1 == null){
-				if(StringUtils.isEmpty(user.getPassword())){
-					sysUser.setPassword(new BCryptPasswordEncoder().encode("123456"));
-				}
 				employee.setUserId(user.getId());
 				employee.setEmployeeType("EMPLOYEE");
 				employeeDao.insert(employee);

+ 1 - 1
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java

@@ -616,7 +616,7 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		examRoomStudentRelationDao.update(examRoomStudentRelation);
 		HashMap<Integer, String> map = new HashMap<>(1);
 		map.put(examRoomStudentRelation.getStudentId(),examRoomStudentRelation.getStudentId().toString());
-		String url = "3?examRegistrationId=" + nextExamRoomStudentRelationId;
+		String url = "3?examRegistrationId=" + examRoomStudentRelation.getExamRegistrationId();
 		sysMessageService.batchSendMessage(MessageTypeEnum.EXAM_STARTED_PUSH,map,null,null,url,JiguangPushPlugin.PLUGIN_NAME);
 
 		//状态变更为呼叫中

+ 19 - 7
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/OrganizationServiceImpl.java

@@ -25,10 +25,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -82,9 +79,6 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 			}
 			Organization organization = organDao.findByUserId(user.getId());
 			if(organization == null){
-				if(StringUtils.isEmpty(user.getPassword())){
-					sysUser.setPassword(new BCryptPasswordEncoder().encode("123456"));
-				}
 				organ.setUserId(user.getId());
 				organDao.insert(organ);
 				organ.setParentOrganIdTag(currentOrganization.getParentOrganIdTag() + "," + organ.getId());
@@ -323,4 +317,22 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	public Organization findByUserId(Integer userId) {
 		return organDao.findByUserId(userId);
 	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void lock(Integer organId, Integer lockFlag) {
+		Organization organization = organDao.get(organId);
+		SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
+		if(queryUserInfo.getId().equals(organization.getUserId())){
+			throw new BizException("操作失败:不支持此操作");
+		}
+		if(lockFlag == 1){
+			List<Integer> organIds = getNextLevelOrganIds(organId, true);
+			employeeDao.batchLock(organIds);
+		}else {
+			Employee employee = employeeDao.get(organization.getUserId());
+			employee.setLockFlag(lockFlag);
+			employeeDao.update(employee);
+		}
+	}
 }

+ 4 - 1
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/TeacherServiceImpl.java

@@ -20,6 +20,7 @@ import com.keao.edu.user.service.TeacherService;
 import com.keao.edu.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -85,7 +86,9 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher> implem
 			return id;
 		}
 		sysUser.setUserType("TEACHER");
-
+		if(StringUtils.isEmpty(user.getPassword())){
+			sysUser.setPassword(new BCryptPasswordEncoder().encode("123456"));
+		}
 		sysUserDao.insert(sysUser);
 		Integer userId = sysUser.getId();
 		teacher.setUserId(userId);

+ 12 - 1
edu-user/edu-user-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -22,6 +22,7 @@
 		<result column="contact_address_" property="contactAddress" />
 		<result column="postal_code_" property="postalCode" />
 		<result column="role_name_" property="roleName" />
+		<result column="lock_flag_" property="lockFlag" />
 		<result column="del_flag_" property="delFlag" />
 		<result column="tenant_id_" property="tenantId" />
 		<result column="employee_type_" property="employeeType" />
@@ -56,6 +57,9 @@
             <if test="employeeType != null">
 				employee_type_ = #{employeeType},
             </if>
+            <if test="lockFlag != null">
+				lock_flag_ = #{lockFlag},
+            </if>
             <if test="graduateSchool != null">
                 graduate_school_ = #{graduateSchool},
             </if>
@@ -108,7 +112,14 @@
 	<update id="delete" >
 		UPDATE employee SET del_flag_ = 1,update_time_ = NOW() WHERE user_id_ = #{userId}
 	</update>
-	<sql id="employeeQueryPage">
+    <update id="batchLock">
+		UPDATE employee SET lock_flag_ = 1 WHERE user_id_ IN (SELECT user_id_ FROM organization WHERE id_ IN
+		<foreach collection="organIds" separator="," open="(" close=")" item="item">
+			#{item}
+		</foreach>
+		)
+	</update>
+    <sql id="employeeQueryPage">
 		<where>
 				e.del_flag_ = 0 AND e.user_id_ != #{userId} AND e.employee_type_ = 'EMPLOYEE'
 			<if test="search != null and search != ''">

+ 2 - 1
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamCertificationMapper.xml

@@ -137,9 +137,10 @@
 		<result column="student_id_" property="studentId" />
 		<result column="level_" property="level" />
 		<result column="address_" property="examAddress" />
+		<result column="name_" property="baseExamName" />
 	</resultMap>
 	<select id="queryExamCertificationDtoPage" resultMap="ExamCertificationDtoMap">
-		SELECT ec.exam_registration_id_,ec.exam_start_time_,ec.card_no_,ec.subject_id_,ec.level_,ec.exam_address_
+		SELECT ec.exam_registration_id_,ec.exam_start_time_,ec.card_no_,ec.subject_id_,ec.level_,ec.exam_address_,eb.name_
 		FROM exam_room_student_relation ersr
 		LEFT JOIN exam_certification ec ON ec.exam_registration_id_ = ersr.exam_registration_id_
 		LEFT JOIN examination_basic eb ON eb.id_ = ersr.examination_basic_id_

+ 51 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExcelInController.java

@@ -0,0 +1,51 @@
+package com.keao.edu.user.controller;
+
+
+import com.keao.edu.auth.api.entity.SysUser;
+import com.keao.edu.common.controller.BaseController;
+import com.keao.edu.util.collection.MapUtil;
+import com.keao.edu.util.excel.POIUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.beans.IntrospectionException;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+@RequestMapping
+@Api(tags = "数据导入服务")
+@RestController
+public class ExcelInController extends BaseController {
+
+    @ApiOperation(value = "导入")
+    @PostMapping("/queryTeacherAttendances")
+    public void ImportTeacherAttendances(@RequestParam("file") MultipartFile file) throws IOException {
+        Map<String, List<Map<String, Object>>> stringListMap = POIUtil.importExcel(file.getInputStream(), 2,file.getOriginalFilename());
+        Set<String> strings = stringListMap.keySet();
+        List<SysUser> sysUserList = new ArrayList<>();
+        strings.forEach(e->{
+            List<Map<String, Object>> maps = stringListMap.get(e);
+            maps.forEach(m->{
+                try {
+                    sysUserList.add(MapUtil.mapToJavaBean(SysUser.class, m));
+                } catch (IllegalAccessException e1) {
+                    e1.printStackTrace();
+                } catch (IntrospectionException e1) {
+                    e1.printStackTrace();
+                } catch (InstantiationException e1) {
+                    e1.printStackTrace();
+                }
+            });
+        });
+    }
+}

+ 55 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExportController.java

@@ -0,0 +1,55 @@
+package com.keao.edu.user.controller;
+
+
+import com.keao.edu.common.controller.BaseController;
+import com.keao.edu.common.page.QueryInfo;
+import com.keao.edu.util.date.DateUtil;
+import com.keao.edu.util.excel.POIUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Date;
+
+@RequestMapping
+@Api(tags = "数据导出服务")
+@RestController
+public class ExportController extends BaseController {
+
+    @ApiOperation(value = "导出")
+    @PostMapping("export/queryTeacherAttendances")
+    @PreAuthorize("@pcs.hasPermissions('export/queryTeacherAttendances')")
+    public void exportTeacherAttendances(HttpServletResponse response, QueryInfo queryInfo) throws IOException {
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "老师编号", "老师姓名", "课程编号", "课程名称", "上课日期",
+                    "课程开始时间", "课程结束时间", "课程类型", "签到时间", "签到状态", "签退时间", "签退状态", "备注"}, new String[]{
+                    "organName", "teacherId", "teacherName", "courseScheduleId", "courseScheduleName", "classDate",
+                    "startClassTime", "endClassTime", "courseScheduleType.msg", "signInTime", "signInStatus.msg", "signOutTime", "signOutStatus.msg",
+                    "remark"}, null);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
+            response.flushBuffer();
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+}

+ 8 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/OrganizationController.java

@@ -75,6 +75,14 @@ public class OrganizationController extends BaseController {
 		return succeed();
 	}
 
+	@ApiOperation(value = "启用/停用合作单位")
+	@PostMapping(value = "lock")
+    @PreAuthorize("@pcs.hasPermissions('organization/lock')")
+	public HttpResponseResult lock(Integer id,Integer lockFlag) {
+		organizationService.lock(id,lockFlag);
+		return succeed();
+	}
+
 	@ApiOperation(value = "获取当前分部及其所有子合作单位")
 	@GetMapping(value = "getChildOrgans")
 	@PreAuthorize("@pcs.hasPermissions('organization/getChildOrgans')")

+ 6 - 0
edu-user/edu-user-server/src/main/resources/columnMapper.ini

@@ -0,0 +1,6 @@
+曲目名称=songName
+曲目作者=songAuthor
+所属声部=subjectList
+曲目级别=levelList
+曲目类别(练习曲or演奏曲)=type
+曲谱=fileUrlList

+ 2 - 2
edu-util/src/main/java/com/keao/edu/util/excel/POIUtil.java

@@ -452,10 +452,10 @@ public class POIUtil {
 		Workbook workbook = null;
 
 		try {
-			if (".xlsx".equals(extName.toLowerCase())) {
+			if (extName.endsWith(".xlsx")) {
 				// 支持excel2007 xlsx格式
 				workbook = new XSSFWorkbook(inputStream);
-			} else if (".xls".equals(extName)) {
+			} else if (extName.endsWith(".xls")) {
 				// 支持excel2003以前 xls格式
 				workbook = new HSSFWorkbook(inputStream);
 			} else {