Joburgess vor 5 Jahren
Ursprung
Commit
eb6e600bb5

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

@@ -14,6 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Objects;
+
 /**
  * @Author Joburgess
  * @Date 2020.06.23
@@ -33,7 +35,9 @@ public class ExamRegistrationController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('examRegistration/list')")
     public HttpResponseResult<PageInfo<ExamRegistration>> list(ExamRegistrationQueryInfo queryInfo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        queryInfo.setOrganId(sysUser.getId());
+        if(Objects.isNull(queryInfo.getOrganId())){
+            queryInfo.setOrganId(sysUser.getId());
+        }
         return succeed(examRegistrationService.queryExamRegistrationStudents(queryInfo));
     }
 

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

@@ -15,6 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * 合作单位服务
  */
@@ -67,4 +69,12 @@ public class OrganizationController extends BaseController {
 		organizationService.delete(id);
 		return succeed();
 	}
+
+	@ApiOperation(value = "获取当前分部及其所有子合作单位")
+	@GetMapping(value = "getChildOrgans")
+	@PreAuthorize("@pcs.hasPermissions('organization/getChildOrgans')")
+	public HttpResponseResult<List<Organization>> getChildOrgans(){
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		return succeed(organizationService.getChildOrgans(sysUser.getId()));
+	}
 }

+ 9 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamOrganizationRelationDao.java

@@ -21,6 +21,15 @@ public interface ExamOrganizationRelationDao extends BaseDAO<Long, ExamOrganizat
     int batchInsert(@Param("examOrganizationRelations") List<ExamOrganizationRelation> examOrganizationRelations);
 
     /**
+     * @describe 批量更新
+     * @author Joburgess
+     * @date 2020.06.29
+     * @param examOrganizationRelations:
+     * @return int
+     */
+    int batchUpdate(@Param("examOrganizationRelations") List<ExamOrganizationRelation> examOrganizationRelations);
+
+    /**
      * @describe 批量更新合作单位的链接发送状态
      * @author Joburgess
      * @date 2020.06.18

+ 10 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/OrganizationDao.java

@@ -19,7 +19,7 @@ public interface OrganizationDao extends BaseDAO<Integer, Organization> {
     List<Organization> getByTenant(@Param("tenantId") String tenantId);
 
     /**
-     * @describe 获取指定单位及其所有下级单位的编号
+     * @describe 获取指定单位所有下级单位的编号
      * @author Joburgess
      * @date 2020.06.28
      * @param parentOrganIdTag:
@@ -28,6 +28,15 @@ public interface OrganizationDao extends BaseDAO<Integer, Organization> {
     List<Integer> getChildOrganIds(@Param("parentOrganIdTag") String parentOrganIdTag);
 
     /**
+     * @describe 获取指定单位所有下级单位
+     * @author Joburgess
+     * @date 2020.06.28
+     * @param parentOrganIdTag:
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Organization> getChildOrgans(@Param("parentOrganIdTag") String parentOrganIdTag);
+
+    /**
      * @describe 获取下一级所有合作单位编号
      * @author Joburgess
      * @date 2020.06.28

+ 9 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/OrganizationService.java

@@ -31,6 +31,15 @@ public interface OrganizationService extends BaseService<Integer, Organization>
     List<Integer> getChildOrganIds(Integer organId, boolean includeSelf);
 
     /**
+     * @describe 获取当前分部及其所有子合作单位
+     * @author Joburgess
+     * @date 2020.06.29
+     * @param organId:
+     * @return java.util.List<com.keao.edu.user.entity.Organization>
+     */
+    List<Organization> getChildOrgans(Integer organId);
+
+    /**
      * @describe 获取下一级所有合作单位编号
      * @author Joburgess
      * @date 2020.06.28

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

@@ -10,11 +10,13 @@ import com.keao.edu.user.dao.ExamOrganizationRelationDao;
 import com.keao.edu.user.dao.ExaminationBasicDao;
 import com.keao.edu.user.entity.ExamOrganizationRelation;
 import com.keao.edu.user.entity.ExaminationBasic;
+import com.keao.edu.user.entity.Organization;
 import com.keao.edu.user.enums.ExamStatusEnum;
 import com.keao.edu.user.enums.YesOrNoEnum;
 import com.keao.edu.user.page.ExamOrganizationRelationQueryInfo;
 import com.keao.edu.user.service.ExamOrganizationRelationService;
 import com.keao.edu.user.service.OrganizationService;
+import com.keao.edu.user.service.ShortUrlService;
 import com.keao.edu.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.formula.functions.T;
@@ -37,6 +39,8 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 	private ExaminationBasicDao examinationBasicDao;
 	@Autowired
 	private OrganizationService organizationService;
+	@Autowired
+	private ShortUrlService shortUrlService;
 
 	@Override
 	public BaseDAO<Long, ExamOrganizationRelation> getDAO() {
@@ -82,8 +86,17 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 		if(Objects.isNull(examOrganizationRelation.getOrganId())){
 			throw new BizException("请指定合作单位");
 		}
+		Organization organization = organizationService.get(examOrganizationRelation.getOrganId());
+		if(Objects.isNull(organization)){
+			throw new BizException("合作单位不存在");
+		}
 		examOrganizationRelation.setTenantId(TenantContextHolder.getTenantId().toString());
-		examOrganizationRelation.setShareProfitAmount(BigDecimal.ZERO);
+		if(Objects.isNull(examOrganizationRelation.getSettlementType())){
+			examOrganizationRelation.setSettlementType(organization.getSettlementType());
+		}
+		if(Objects.isNull(organization.getShareProfitAmount())){
+			examOrganizationRelation.setShareProfitAmount(organization.getShareProfitAmount());
+		}
 		examOrganizationRelation.setTotalRegistrationStudentNum(BigDecimal.ZERO.intValue());
 		examOrganizationRelation.setTotalPaymentAmount(BigDecimal.ZERO);
 		Set<Integer> organIds = examOrganizationRelationDao.getOrganIdsWithExam(examOrganizationRelation.getExaminationBasicId());
@@ -103,32 +116,27 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 		if(StringUtils.isBlank(organIdStrs)){
 			throw new BizException("请指定合作单位");
 		}
-		Set<Integer> existOrganizationIds = examOrganizationRelationDao.getOrganIdsWithExam(examId);
+		List<ExamOrganizationRelation> examOrgans = examOrganizationRelationDao.getWithExam(examId);
+		Set<Integer> existOrganizationIds = examOrgans.stream().map(ExamOrganizationRelation::getOrganId).collect(Collectors.toSet());
 		List<Integer> organIds = Arrays.asList(organIdStrs.split(",")).stream().map(e -> Integer.valueOf(e)).collect(Collectors.toList());
-		List<Integer> updateSendFlagOrganizationIds=new ArrayList<>();
-		List<ExamOrganizationRelation> examOrganizationRelations=new ArrayList<>();
 		for (Integer organId : organIds) {
-			if(existOrganizationIds.contains(organId)){
-				updateSendFlagOrganizationIds.add(organId);
-				continue;
+			if(!existOrganizationIds.contains(organId)){
+				throw new BizException("存在未关联到考级项目的合作单位");
 			}
-			ExamOrganizationRelation examOrganizationRelation=new ExamOrganizationRelation();
-			examOrganizationRelation.setExaminationBasicId(examId);
-			examOrganizationRelation.setOrganId(organId);
-			examOrganizationRelation.setSendUrlFlag(YesOrNoEnum.YES);
-			examOrganizationRelation.setTenantId(TenantContextHolder.getTenantId().toString());
-			examOrganizationRelations.add(examOrganizationRelation);
 		}
+
 		ExaminationBasic examinationBasic = examinationBasicDao.get(examId.longValue());
 		if(Objects.isNull(examinationBasic)){
 			throw new BizException("考级项目不存在");
 		}
-		if(!CollectionUtils.isEmpty(updateSendFlagOrganizationIds)){
-			examOrganizationRelationDao.batchUpdateSendUrlFlag(examId, updateSendFlagOrganizationIds, YesOrNoEnum.YES);
-		}
-		if(!CollectionUtils.isEmpty(examOrganizationRelations)){
-			examOrganizationRelationDao.batchInsert(examOrganizationRelations);
+
+		for (ExamOrganizationRelation examOrgan : examOrgans) {
+			examOrgan.setUrl(shortUrlService.createShortUrl(""));
+			examOrgan.setSendUrlFlag(YesOrNoEnum.YES);
 		}
+
+		examOrganizationRelationDao.batchUpdate(examOrgans);
+
 		if(examinationBasic.getStatus().equals(ExamStatusEnum.SETTING)){
 			examinationBasic.setStatus(ExamStatusEnum.NOT_START);
 			examinationBasicDao.update(examinationBasic);

+ 13 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/OrganizationServiceImpl.java

@@ -148,6 +148,19 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	}
 
 	@Override
+	public List<Organization> getChildOrgans(Integer organId) {
+		Organization organization = organDao.get(organId);
+		if(Objects.isNull(organization)){
+			throw new BizException("当前声部不存在");
+		}
+		List<Organization> selfAndChildOrgans = organDao.getChildOrgans(organization.getParentOrganIdTag());
+		if(null == selfAndChildOrgans){
+			selfAndChildOrgans= Collections.EMPTY_LIST;
+		}
+		return selfAndChildOrgans;
+	}
+
+	@Override
 	public List<Integer> getNextLevelOrganIds(Integer organId, boolean includeSelf) {
 		Organization organization = organDao.get(organId);
 		if(Objects.isNull(organization)){

+ 45 - 10
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamOrganizationRelationMapper.xml

@@ -90,6 +90,46 @@
 				update_time_ = NOW()
 		</set> WHERE id_ = #{id}
 	</update>
+
+	<update id="batchUpdate" parameterType="com.keao.edu.user.entity.ExamOrganizationRelation">
+		<foreach collection="examOrganizationRelations" item="eo" separator=";">
+			UPDATE exam_organization_relation
+			<set>
+				<if test="eo.examinationBasicId != null">
+					examination_basic_id_ = #{eo.examinationBasicId},
+				</if>
+				<if test="eo.sendUrlFlag != null">
+					send_url_flag_ = #{eo.sendUrlFlag,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
+				</if>
+				<if test="eo.isAllowArrangeExam != null">
+					is_allow_arrange_exam_ = #{eo.isAllowArrangeExam,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
+				</if>
+				<if test="eo.url != null">
+					url_ = #{eo.url},
+				</if>
+				<if test="eo.tenantId != null">
+					tenant_id_ = #{eo.tenantId},
+				</if>
+				<if test="eo.shareProfitAmount != null">
+					share_profit_amount_ = #{eo.shareProfitAmount},
+				</if>
+				<if test="eo.totalRegistrationStudentNum != null">
+					total_registration_student_num_ = #{eo.totalRegistrationStudentNum},
+				</if>
+				<if test="eo.totalPaymentAmount != null">
+					total_payment_amount_ = #{eo.totalPaymentAmount},
+				</if>
+				<if test="eo.organId != null">
+					organ_id_ = #{eo.organId},
+				</if>
+				<if test="eo.settlementType != null">
+					settlement_type_ = #{eo.settlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
+				</if>
+				update_time_ = NOW()
+			</set> WHERE id_ = #{eo.id}
+		</foreach>
+	</update>
+
 	<update id="batchUpdateSendUrlFlag">
 		UPDATE exam_organization_relation SET send_url_flag_=#{sendUrlFlag,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
 		WHERE examination_basic_id_=#{examId} AND organ_id_ IN
@@ -106,6 +146,7 @@
 	<sql id="queryCondition">
 		<where>
 			ear.tenant_id_=#{tenantId}
+			AND ear.examination_basic_id_=#{examId}
 			AND ear.organ_id_ IN
 			<foreach collection="organIds" item="organId" separator="," open="(" close=")">
 				#{organId}
@@ -124,22 +165,16 @@
 		SELECT
 			ear.*,
 			a.name_ organ_name_
-		FROM organization a
-		LEFT JOIN exam_organization_relation ear ON ear.organ_id_=a.id_
-		<if test="examId!=null">
-			AND ear.examination_basic_id_=#{examId}
-		</if>
+		FROM exam_organization_relation ear
+		LEFT JOIN organization a ON ear.organ_id_=a.id_
 		<include refid="queryCondition"/>
 		ORDER BY id_ <include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM organization a
-		LEFT JOIN exam_organization_relation ear ON ear.organ_id_=a.id_
-		<if test="examId!=null">
-			AND ear.examination_basic_id_=#{examId}
-		</if>
+		SELECT COUNT(*) FROM exam_organization_relation ear
+		LEFT JOIN organization a ON ear.organ_id_=a.id_
 		<include refid="queryCondition"/>
 	</select>
 

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

@@ -145,7 +145,7 @@
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM exam_registration
+		SELECT COUNT(*) FROM exam_registration er
 		<include refid="queryCondition"/>
 	</select>
     <select id="countWithoutExamRoomStudentNum" resultType="int">

+ 6 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/OrganizationMapper.xml

@@ -120,9 +120,15 @@
 	<select id="getByTenant" resultMap="Organization">
 		SELECT * FROM organization WHERE tenant_id_ = #{tenantId} ORDER BY id_
 	</select>
+
 	<select id="getChildOrganIds" resultType="int">
 		SELECT id_ FROM organization WHERE parent_organ_id_tag_ LIKE CONCAT(#{parentOrganIdTag}, '%');
 	</select>
+
+	<select id="getChildOrgans" resultMap="Organization">
+		SELECT * FROM organization WHERE parent_organ_id_tag_ LIKE CONCAT(#{parentOrganIdTag}, '%');
+	</select>
+
 	<select id="getNextLevelOrganIds" resultType="int">
 		SELECT id_ FROM organization WHERE parent_organ_id_ =#{organId};
 	</select>