Joburgess 5 年之前
父节点
当前提交
bd9e52b6b3

+ 7 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamTeacherSalaryController.java

@@ -5,6 +5,7 @@ import com.keao.edu.common.entity.HttpResponseResult;
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.user.dto.BaseUserInfoDto;
 import com.keao.edu.user.dto.ExamTeacherSalaryDto;
+import com.keao.edu.user.dto.ExamTeacherSalaryStaticsInfo;
 import com.keao.edu.user.dto.TeacherDto;
 import com.keao.edu.user.entity.ExamTeacherSalary;
 import com.keao.edu.user.page.ExamTeacherSalaryQueryInfo;
@@ -83,4 +84,10 @@ public class ExamTeacherSalaryController extends BaseController {
         return succeed(examTeacherSalaryService.getUnRelatedWithExamTeachers(queryInfo));
     }
 
+    @ApiOperation("获取考级项目关联教师统计信息")
+    @GetMapping(value = "/getExamTeacherSalaryStaticsInfo")
+    public HttpResponseResult<ExamTeacherSalaryStaticsInfo> getExamTeacherSalaryStaticsInfo(Integer examId){
+        return succeed(examTeacherSalaryService.getExamTeacherSalaryStaticsInfo(examId));
+    }
+
 }

+ 5 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExaminationBasicController.java

@@ -16,6 +16,8 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Objects;
+
 /**
  * @Author Joburgess
  * @Date 2020.06.18
@@ -49,6 +51,9 @@ public class ExaminationBasicController extends BaseController {
     public HttpResponseResult<ExaminationBasic> addExaminationBasic(@RequestBody ExaminationBasic examinationBasic){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         Employee employee = employeeService.get(sysUser.getId());
+        if(Objects.isNull(employee)){
+            return failed("用户信息异常");
+        }
         examinationBasic.setCreatorId(sysUser.getId());
         examinationBasic.setOrganId(employee.getOrganId());
         return succeed(examinationBasicService.addExaminationBasic(examinationBasic));

+ 10 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamTeacherSalaryDao.java

@@ -4,6 +4,7 @@ package com.keao.edu.user.dao;
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.user.dto.BaseUserInfoDto;
 import com.keao.edu.user.dto.ExamTeacherSalaryDto;
+import com.keao.edu.user.dto.ExamTeacherSalaryStaticsInfo;
 import com.keao.edu.user.dto.TeacherDto;
 import com.keao.edu.user.entity.ExamTeacherSalary;
 import org.apache.ibatis.annotations.Param;
@@ -58,4 +59,13 @@ public interface ExamTeacherSalaryDao extends BaseDAO<Long, ExamTeacherSalary> {
      */
     List<TeacherDto> queryUnRelatedWithExamTeachers(Map<String, Object> params);
     int countUnRelatedWithExamTeachers(Map<String, Object> params);
+
+    /**
+     * @describe 统计考级项目教师信息
+     * @author Joburgess
+     * @date 2020.07.08
+     * @param examId:
+     * @return com.keao.edu.user.dto.ExamTeacherSalaryStaticsInfo
+     */
+    ExamTeacherSalaryStaticsInfo getExamTeacherSalaryStaticsInfo(@Param("examId") Integer examId);
 }

+ 34 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamTeacherSalaryStaticsInfo.java

@@ -0,0 +1,34 @@
+package com.keao.edu.user.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.07.08
+ */
+public class ExamTeacherSalaryStaticsInfo {
+
+    @ApiModelProperty(value = "教师数量")
+    private Integer teacherNum;
+
+    @ApiModelProperty(value = "预计支出金额")
+    private BigDecimal expectExpenseAmount;
+
+    public Integer getTeacherNum() {
+        return teacherNum;
+    }
+
+    public void setTeacherNum(Integer teacherNum) {
+        this.teacherNum = teacherNum;
+    }
+
+    public BigDecimal getExpectExpenseAmount() {
+        return expectExpenseAmount;
+    }
+
+    public void setExpectExpenseAmount(BigDecimal expectExpenseAmount) {
+        this.expectExpenseAmount = expectExpenseAmount;
+    }
+}

+ 12 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamTeacherSalaryQueryInfo.java

@@ -1,6 +1,7 @@
 package com.keao.edu.user.page;
 
 import com.keao.edu.common.page.QueryInfo;
+import com.keao.edu.user.enums.TeacherSettlementTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 /**
@@ -15,6 +16,9 @@ public class ExamTeacherSalaryQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "教师编号")
     private Integer teacherId;
 
+    @ApiModelProperty(value = "结算类型(按天/人)")
+    private TeacherSettlementTypeEnum settlementType;
+
     public Integer getExamId() {
         return examId;
     }
@@ -30,4 +34,12 @@ public class ExamTeacherSalaryQueryInfo extends QueryInfo {
     public void setTeacherId(Integer teacherId) {
         this.teacherId = teacherId;
     }
+
+    public TeacherSettlementTypeEnum getSettlementType() {
+        return settlementType;
+    }
+
+    public void setSettlementType(TeacherSettlementTypeEnum settlementType) {
+        this.settlementType = settlementType;
+    }
 }

+ 10 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamTeacherSalaryService.java

@@ -4,6 +4,7 @@ import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.BaseService;
 import com.keao.edu.user.dto.BaseUserInfoDto;
 import com.keao.edu.user.dto.ExamTeacherSalaryDto;
+import com.keao.edu.user.dto.ExamTeacherSalaryStaticsInfo;
 import com.keao.edu.user.dto.TeacherDto;
 import com.keao.edu.user.entity.ExamTeacherSalary;
 import com.keao.edu.user.page.ExamTeacherSalaryQueryInfo;
@@ -66,4 +67,13 @@ public interface ExamTeacherSalaryService extends BaseService<Long, ExamTeacherS
      * @return java.util.List<com.keao.edu.user.entity.Teacher>
      */
     PageInfo<TeacherDto> getUnRelatedWithExamTeachers(ExamTeacherSalaryQueryInfo queryInfo);
+
+    /**
+     * @describe 获取考级项目关联教师统计信息
+     * @author Joburgess
+     * @date 2020.07.08
+     * @param examId:
+     * @return com.keao.edu.user.dto.ExamTeacherSalaryStaticsInfo
+     */
+    ExamTeacherSalaryStaticsInfo getExamTeacherSalaryStaticsInfo(Integer examId);
 }

+ 13 - 5
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamTeacherSalaryServiceImpl.java

@@ -8,10 +8,7 @@ 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.dao.*;
-import com.keao.edu.user.dto.BaseUserInfoDto;
-import com.keao.edu.user.dto.ExamTeacherSalaryDto;
-import com.keao.edu.user.dto.ExaminationBasicDto;
-import com.keao.edu.user.dto.TeacherDto;
+import com.keao.edu.user.dto.*;
 import com.keao.edu.user.entity.ExamTeacherSalary;
 import com.keao.edu.user.entity.Teacher;
 import com.keao.edu.user.page.ExamTeacherSalaryQueryInfo;
@@ -103,7 +100,10 @@ public class ExamTeacherSalaryServiceImpl extends BaseServiceImpl<Long, ExamTeac
 			dataList = examTeacherSalaryDao.queryExamTeacherSalary(params);
 			List<Integer> examIds = dataList.stream().map(ExamTeacherSalaryDto::getExaminationBasicId).collect(Collectors.toList());
 			List<ExaminationBasicDto> exams = examinationBasicDao.getExams(examIds);
-			
+			Map<Integer, ExaminationBasicDto> idExamMap = exams.stream().collect(Collectors.toMap(ExaminationBasicDto::getId, e -> e));
+			for (ExamTeacherSalaryDto examTeacherSalaryDto : dataList) {
+				examTeacherSalaryDto.setExaminationBasic(idExamMap.get(examTeacherSalaryDto.getExaminationBasicId()));
+			}
 		}
 		pageInfo.setRows(dataList);
 		return pageInfo;
@@ -210,4 +210,12 @@ public class ExamTeacherSalaryServiceImpl extends BaseServiceImpl<Long, ExamTeac
 		pageInfo.setRows(dataList);
 		return pageInfo;
 	}
+
+	@Override
+	public ExamTeacherSalaryStaticsInfo getExamTeacherSalaryStaticsInfo(Integer examId) {
+		if(Objects.isNull(examId)){
+			throw new BizException("请指定考级项目");
+		}
+		return examTeacherSalaryDao.getExamTeacherSalaryStaticsInfo(examId);
+	}
 }

+ 16 - 3
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamTeacherSalaryMapper.xml

@@ -154,15 +154,18 @@
 	<sql id="queryExamTeacherSalaryCondition">
 		<where>
 			<if test="examId!=null">
-				ets.examination_basic_id_ = #{examId}
+				AND ets.examination_basic_id_ = #{examId}
 			</if>
 			<if test="teacherId!=null">
-				ets.teacher_id_=#{teacherId}
+				AND ets.teacher_id_=#{teacherId}
+			</if>
+			<if test="settlementType!=null">
+				AND ets.settlement_type_ = #{ts.settlementType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
 			</if>
 		</where>
 	</sql>
 
-	<select id="queryExamTeacherSalary" resultMap="ExamTeacherSalary" parameterType="map">
+	<select id="queryExamTeacherSalary" resultMap="ExamTeacherSalaryDto" parameterType="map">
 		SELECT ets.*,su.real_name_ teacher_real_name_
 		FROM exam_teacher_salary ets
 		LEFT JOIN sys_user su ON ets.teacher_id_=su.id_
@@ -222,5 +225,15 @@
 			LEFT JOIN sys_user su ON t.user_id_ = su.id_
 		<include refid="queryUnRelatedWithExamTeachersCondition"/>
 	</select>
+    <select id="getExamTeacherSalaryStaticsInfo"
+            resultType="com.keao.edu.user.dto.ExamTeacherSalaryStaticsInfo">
+		SELECT
+			COUNT(DISTINCT teacher_id_)  teacherNum,
+			SUM(total_settlement_fee_) expectExpenseAmount
+		FROM
+			exam_teacher_salary
+		WHERE
+			examination_basic_id_ =1
+	</select>
 
 </mapper>