Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 5 years ago
parent
commit
a2eabdc761
19 changed files with 114 additions and 19 deletions
  1. 4 2
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamManualLedgerController.java
  2. 1 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/StudentExamResultController.java
  3. 3 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRoomStudentRelationDao.java
  4. 2 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/StudentExamResultDao.java
  5. 2 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamManualLedgerService.java
  6. 19 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamManualLedgerServiceImpl.java
  7. 1 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamOrganizationRelationServiceImpl.java
  8. 26 2
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomServiceImpl.java
  9. 6 2
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java
  10. 2 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamTeacherSalaryServiceImpl.java
  11. 3 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExaminationBasicServiceImpl.java
  12. 10 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/OrganizationServiceImpl.java
  13. 3 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/StudentExamResultServiceImpl.java
  14. 7 2
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/TenantInfoServiceImpl.java
  15. 2 1
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamManualLedgerMapper.xml
  16. 1 1
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml
  17. 9 0
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRoomStudentRelationMapper.xml
  18. 12 5
      edu-user/edu-user-server/src/main/resources/config/mybatis/StudentExamResultMapper.xml
  19. 1 1
      edu-user/edu-user-server/src/main/resources/config/mybatis/SysUserMapper.xml

+ 4 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamManualLedgerController.java

@@ -57,11 +57,13 @@ public class ExamManualLedgerController extends BaseController {
     @ApiOperation("删除支出记录")
     @PostMapping(value = "/del")
     public HttpResponseResult del(Long id) {
-        return succeed(examManualLedgerService.delete(id));
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        examManualLedgerService.deleteExamManualLedger(sysUser.getId(),id);
+        return succeed();
     }
 
     @ApiOperation("获取考级项目支出统计信息")
-    @PostMapping(value = "/getExamManualLedgerStatistics")
+    @GetMapping(value = "/getExamManualLedgerStatistics")
     public HttpResponseResult<ExamManualLedgerStatisticsDto> getExamManualLedgerStatistics(Long examId){
         return succeed(examManualLedgerService.getExamManualLedgerStatistics(examId));
     }

+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/StudentExamResultController.java

@@ -59,7 +59,7 @@ public class StudentExamResultController extends BaseController {
     }
 
     @ApiOperation("考试结果统计信息")
-    @PostMapping(value = "/getStudentExamResultStatisticsInfo")
+    @GetMapping(value = "/getStudentExamResultStatisticsInfo")
     public HttpResponseResult<StudentExamResultStatisticsDto> getStudentExamResultStatisticsInfo(Integer examId){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         return succeed(studentExamResultService.getStudentExamResultStatisticsInfo(sysUser.getId(), examId));

+ 3 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRoomStudentRelationDao.java

@@ -33,6 +33,9 @@ public interface ExamRoomStudentRelationDao extends BaseDAO<Long, ExamRoomStuden
      */
     List<ExamRoomStudentRelation> findStudentsWithExamRoom(@Param("examRoomId") Long examRoomId);
 
+
+    List<ExamRoomStudentRelation> findStudentsWithExamRooms(@Param("examRoomIds") List<Long> examRoomIds);
+
     /**
      * @describe 删除指定教室的学员
      * @author Joburgess

+ 2 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/StudentExamResultDao.java

@@ -12,6 +12,8 @@ public interface StudentExamResultDao extends BaseDAO<Long, StudentExamResult> {
 
     int batchInsert(@Param("results") List<StudentExamResult> results);
 
+    int deleteWithRegists(@Param("registIds") List<Long> registIds);
+
     /**
      * @describe 查询考试结果
      * @author Joburgess

+ 2 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamManualLedgerService.java

@@ -13,6 +13,8 @@ public interface ExamManualLedgerService extends BaseService<Long, ExamManualLed
 
     PageInfo<ExamManualLedger> queryExamManualLedgers(ExamManualLedgerQueryInfo queryInfo);
 
+    void deleteExamManualLedger(Integer operatorId,Long id);
+
     /**
      * @describe 获取考级项目支出统计信息
      * @author Joburgess

+ 19 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamManualLedgerServiceImpl.java

@@ -78,6 +78,25 @@ public class ExamManualLedgerServiceImpl extends BaseServiceImpl<Long, ExamManua
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+	public void deleteExamManualLedger(Integer operatorId,Long id) {
+		if(Objects.isNull(id)){
+			throw new BizException("请指定需要删除的支出记录");
+		}
+		sysUserDao.lockUser(operatorId);
+		ExamManualLedger examManualLedger = examManualLedgerDao.get(id);
+		if(Objects.nonNull(examManualLedger.getOrganId())&&examManualLedger.getOrganId()>0){
+			ExamOrganizationRelation examOrganizationRelation = examOrganizationRelationDao.getExamOrganizationRelation(examManualLedger.getExaminationBasicId(), examManualLedger.getOrganId());
+			if(Objects.isNull(examOrganizationRelation)){
+				throw new BizException("合作单位信息异常");
+			}
+			examOrganizationRelation.setTotalTransAmount(examOrganizationRelation.getTotalTransAmount().subtract(examManualLedger.getAmount()));
+			examOrganizationRelationDao.update(examOrganizationRelation);
+		}
+		examManualLedgerDao.delete(id);
+	}
+
+	@Override
 	public ExamManualLedgerStatisticsDto getExamManualLedgerStatistics(Long examId) {
 		if(Objects.isNull(examId)){
 			throw new BizException("请指定考级项目");

+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamOrganizationRelationServiceImpl.java

@@ -83,7 +83,7 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 		Map<String, Object> params = new HashMap<String, Object>();
 		MapUtil.populateMap(params, queryInfo);
 
-		List<Integer> nextLevelOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
+		List<Integer> nextLevelOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), false);
 		params.put("organIds", nextLevelOrganIds);
 
 		List<ExamOrganizationRelationExtraDto> dataList = new ArrayList<>();

+ 26 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomServiceImpl.java

@@ -11,6 +11,7 @@ import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.user.api.entity.ExamRoom;
+import com.keao.edu.user.api.entity.ExamRoomStudentRelation;
 import com.keao.edu.user.api.enums.ExamModeEnum;
 import com.keao.edu.user.dao.*;
 import com.keao.edu.user.dto.ExamRoomDto;
@@ -19,6 +20,7 @@ import com.keao.edu.user.entity.ExamRegistration;
 import com.keao.edu.user.entity.ExaminationBasic;
 import com.keao.edu.user.page.ExamRoomQueryInfo;
 import com.keao.edu.user.service.ExamRoomService;
+import com.keao.edu.user.service.ExamTeacherSalaryService;
 import com.keao.edu.user.service.OrganizationService;
 import com.keao.edu.util.collection.MapUtil;
 import com.keao.edu.util.date.DateUtil;
@@ -27,6 +29,7 @@ import org.apache.commons.lang.time.DateUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.util.*;
@@ -47,6 +50,12 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 	private ExaminationBasicDao examinationBasicDao;
 	@Autowired
 	private SysUserDao sysUserDao;
+	@Autowired
+	private ExamTeacherSalaryService examTeacherSalaryService;
+	@Autowired
+	private ExamCertificationDao examCertificationDao;
+	@Autowired
+	private StudentExamResultDao studentExamResultDao;
 
 	@Override
 	public BaseDAO<Long, ExamRoom> getDAO() {
@@ -191,6 +200,8 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 		}
 		examRoomDao.batchInsert(examRooms);
 		examinationBasicDao.update(examinationBasic);
+
+		examTeacherSalaryService.teacherSalarySettlementWithExam(examinationBasic.getId());
 	}
 
 	@Override
@@ -221,13 +232,27 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void deleteExamRooms(String examRoomIdsStr) {
 		if(StringUtils.isBlank(examRoomIdsStr)){
 			return;
 		}
 		List<Long> examRoomIds = Arrays.asList(examRoomIdsStr.split(",")).stream().map(e -> Long.valueOf(e)).collect(Collectors.toList());
-		examRoomDao.batchDeleteExamRooms(examRoomIds);
+
+		ExamRoom examRoom = examRoomDao.get(examRoomIds.get(0));
+
+		List<ExamRoomStudentRelation> roomStudents = examRoomStudentRelationDao.findStudentsWithExamRooms(examRoomIds);
+		List<Long> registIds = roomStudents.stream().map(ExamRoomStudentRelation::getExamRegistrationId).collect(Collectors.toList());
+
 		examRoomStudentRelationDao.deleteWithExamRooms(examRoomIds);
+
+		examCertificationDao.deleteWithRegist(registIds);
+
+		studentExamResultDao.deleteWithRegists(registIds);
+
+		examTeacherSalaryService.teacherSalarySettlementWithExam(examRoom.getExaminationBasicId());
+
+		examRoomDao.batchDeleteExamRooms(examRoomIds);
 	}
 
 	@Override
@@ -237,7 +262,6 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 		if(withoutExamRoomStudentNum>0){
 			throw new BizException("存在未安排教室的学员");
 		}
-
 	}
 
 	@Override

+ 6 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java

@@ -238,11 +238,12 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 	public void deleteStudentFromRoom(Long examRoomId, String registIdsStr) {
 		if(Objects.isNull(examRoomId)){
 			throw new BizException("请指定教室");
 		}
-		ExamRoom examRoom = examRoomDao.get(examRoomId);
+		ExamRoom examRoom = examRoomDao.lockRoom(examRoomId);
 		if(Objects.isNull(examRoom)){
 			throw new BizException("教室不存在");
 		}
@@ -251,7 +252,10 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		}
 		List<Long> registIds = Arrays.asList(registIdsStr.split(",")).stream().map(e -> Long.valueOf(e)).collect(Collectors.toList());
 		examRoomStudentRelationDao.deleteStudentsFromExamRoom(examRoomId, registIds);
-		examCertificationDao.deleteWithRegist(registIds);
+		studentExamResultDao.deleteWithRegists(registIds);
+		int deleteNum = examCertificationDao.deleteWithRegist(registIds);
+		examRoom.setExamRoomStudentNum(examRoom.getExamRoomStudentNum()-deleteNum);
+		examRoomDao.update(examRoom);
 		examTeacherSalaryService.teacherSalarySettlementWithExam(examRoom.getExaminationBasicId());
 	}
 

+ 2 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamTeacherSalaryServiceImpl.java

@@ -17,6 +17,7 @@ import com.keao.edu.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
@@ -43,6 +44,7 @@ public class ExamTeacherSalaryServiceImpl extends BaseServiceImpl<Long, ExamTeac
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void teacherSalarySettlementWithExam(Long examId) {
 		List<ExamRoom> examRooms = examRoomDao.getWithExam(null, examId);
 		if(CollectionUtils.isEmpty(examRooms)){

+ 3 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExaminationBasicServiceImpl.java

@@ -218,6 +218,9 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         if(Objects.isNull(existsExam)){
             throw new BizException("考级项目不存在");
         }
+        if(ExamStatusEnum.SETTING.equals(existsExam.getStatus())){
+            throw new BizException("无法修改");
+        }
         if(ExamStatusEnum.RESULT_CONFIRM.equals(existsExam.getStatus())){
             throw new BizException("考级项目结果已确认");
         }

+ 10 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/OrganizationServiceImpl.java

@@ -56,6 +56,9 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		//获取当前用的organ
 		SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
 		Organization currentOrganization = organDao.findByUserId(queryUserInfo.getId());
+		if(currentOrganization.getLevel() == 3){
+			throw new BizException("无权限创建合作单位");
+		}
 		//获取父级的organ
 		if(organ.getIsAllowArrangeExam() == 1){
 			if(currentOrganization.getIsAllowArrangeExam() == 0){
@@ -165,6 +168,12 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		if(null == organization1){
 			throw new BizException("合作商信息不存在");
 		}
+		//获取父级的organ
+		if(organization.getIsAllowArrangeExam() == 1){
+			if(organization1.getIsAllowArrangeExam() == 0){
+				throw new BizException("无权创建可排考的合作单位");
+			}
+		}
 		sysUser.setId(organization1.getUserId());
 //		organization.setId(sysUser.getId());
 		if(StringUtils.isNotEmpty(sysUser.getPhone())){
@@ -211,7 +220,7 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 			selfAndChildOrganIds.remove(organization.getId());
 		}
 		if(CollectionUtils.isEmpty(selfAndChildOrganIds)){
-			return null;
+			selfAndChildOrganIds.add(0);
 		}
 		return selfAndChildOrganIds;
 	}

+ 3 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/StudentExamResultServiceImpl.java

@@ -100,6 +100,9 @@ public class StudentExamResultServiceImpl extends BaseServiceImpl<Long, StudentE
 
 	@Override
 	public StudentExamResultStatisticsDto getStudentExamResultStatisticsInfo(Integer organId, Integer examId) {
+		if(Objects.isNull(examId)){
+			throw new BizException("请指定考级项目");
+		}
 		List<Integer> childOrganIds = organizationService.getChildOrganIds(organId, true);
 		StudentExamResultStatisticsDto studentExamResultStatisticsInfo = studentExamResultDao.getStudentExamResultStatisticsInfo(childOrganIds, examId);
 		return studentExamResultStatisticsInfo;

+ 7 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/TenantInfoServiceImpl.java

@@ -104,8 +104,13 @@ public class TenantInfoServiceImpl extends BaseServiceImpl<Integer, TenantInfo>
 			throw new BizException("机构不存在");
 		}
 		SysUser sysUser = sysUserDao.queryByPhone(existTenantInfo.getContactPhone());
-		if(Objects.nonNull(sysUser) && !newTenantInfo.getContactPhone().equals(sysUser.getPhone())){
-			throw new BizException("手机号已被占用");
+		if(sysUser == null){
+			throw new BizException("用户信息异常");
+		}
+		if(!newTenantInfo.getContactPhone().equals(sysUser.getPhone())){
+			if (sysUserDao.queryByPhone(newTenantInfo.getContactPhone()) != null) {
+				throw new BizException("手机号已被占用");
+			}
 		}
 		Organization organization = organizationDao.findByUserId(sysUser.getId());
 		if(newTenantInfo.getRoleIds() != null){

+ 2 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamManualLedgerMapper.xml

@@ -121,6 +121,7 @@
 		FROM
 			exam_manual_ledger
 		WHERE
-			trans_direction_ = 'EXPENDITURE';
+			examination_basic_id_ = #{examId}
+			AND trans_direction_ = 'EXPENDITURE'
 	</select>
 </mapper>

+ 1 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml

@@ -194,7 +194,7 @@
 				</if>
 				update_time_ = NOW()
 			</set>
-			WHERE id_ = #{id}
+			WHERE id_ = #{regist.id}
 		</foreach>
 	</update>
 

+ 9 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRoomStudentRelationMapper.xml

@@ -170,6 +170,15 @@
 	<select id="findStudentsWithExamRoom" resultMap="ExamRoomStudentRelation">
 		SELECT id_, exam_registration_id_, examination_basic_id_, exam_room_id_, student_id_ FROM exam_room_student_relation WHERE exam_room_id_=#{examRoomId}
 	</select>
+
+	<select id="findStudentsWithExamRooms" resultMap="ExamRoomStudentRelation">
+		SELECT id_, exam_registration_id_, examination_basic_id_, exam_room_id_, student_id_
+		FROM exam_room_student_relation WHERE exam_room_id_ IN
+		<foreach collection="examRoomIds" item="examRoomId" separator="," open="(" close=")">
+			#{examRoomId}
+		</foreach>
+	</select>
+
 	<select id="getExamRoomStudentRelation" resultMap="ExamRoomStudentRelation">
 		SELECT * FROM exam_room_student_relation
 		WHERE examination_basic_id_ = #{basicId} AND exam_room_id_ = #{roomId} AND student_id_ = #{studentId} LIMIT 1

+ 12 - 5
edu-user/edu-user-server/src/main/resources/config/mybatis/StudentExamResultMapper.xml

@@ -100,8 +100,15 @@
 	<delete id="delete" >
 		DELETE FROM student_exam_result WHERE id_ = #{id} 
 	</delete>
-	
-	<!-- 分页查询 -->
+
+    <delete id="deleteWithRegists">
+		DELETE FROM student_exam_result WHERE exam_registration_id_ IN
+		<foreach collection="registIds" item="registId" separator="," open="(" close=")">
+			#{registId}
+		</foreach>
+	</delete>
+
+    <!-- 分页查询 -->
 	<select id="queryPage" resultMap="StudentExamResult" parameterType="map">
 		SELECT * FROM student_exam_result ORDER BY id_ <include refid="global.limit"/>
 	</select>
@@ -152,9 +159,9 @@
 			<if test="resultConfirm!=null and resultConfirm==0">
 				AND eb.status_='EXAM_END'
 			</if>
-			<!--<if test="resultConfirm==null">-->
-				<!--AND eb.status_ IN ('EXAM_END','RESULT_CONFIRM')-->
-			<!--</if>-->
+			<if test="resultConfirm==null">
+				AND eb.status_ IN ('EXAM_END','RESULT_CONFIRM')
+			</if>
 		</where>
 	</sql>
 

+ 1 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -197,7 +197,7 @@
     </insert>
     <insert id="batchAddEmployeeRoles">
         <foreach collection="userIds" item="userId" separator=";">
-            INSERT INTO sys_user_role(user_id_,role_id_) values VALUES (#{userId},#{roles})
+            INSERT INTO sys_user_role(user_id_,role_id_) VALUES (#{userId},#{roles})
         </foreach>
     </insert>