zouxuan 5 năm trước cách đây
mục cha
commit
8d9490f56a

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto;
+import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
 import com.ym.mec.biz.dal.dto.VipGroupSalaryDto;
 import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import com.ym.mec.common.dal.BaseDAO;
@@ -142,4 +143,17 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 */
 	List<Map<String, BigDecimal>> countTeacherOnlineOfflineSalaryByClass(@Param("classGroupId") Integer classGroupId);
 
+	/**
+	 * count教师薪酬
+	 * @param params
+	 * @return
+	 */
+	int countSalaries(Map<String, Object> params);
+
+	/**
+	 * query教师薪酬
+	 * @param params
+	 * @return
+	 */
+	List<TeacherSalaryDto> querySalaries(Map<String, Object> params);
 }

+ 92 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherSalaryDto.java

@@ -0,0 +1,92 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class TeacherSalaryDto{
+
+    @ApiModelProperty(value = "用户名",required = false)
+    private String username;
+
+    private String phone;
+
+    private CourseSchedule.CourseScheduleType type;
+
+    private String name;
+
+    private BigDecimal actualSalary;
+
+    private BigDecimal subsidy;
+
+    private Date settlementTime;
+
+    private TeachTypeEnum teacherRole;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public CourseSchedule.CourseScheduleType getType() {
+        return type;
+    }
+
+    public void setType(CourseSchedule.CourseScheduleType type) {
+        this.type = type;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public BigDecimal getActualSalary() {
+        return actualSalary;
+    }
+
+    public void setActualSalary(BigDecimal actualSalary) {
+        this.actualSalary = actualSalary;
+    }
+
+    public BigDecimal getSubsidy() {
+        return subsidy;
+    }
+
+    public void setSubsidy(BigDecimal subsidy) {
+        this.subsidy = subsidy;
+    }
+
+    public Date getSettlementTime() {
+        return settlementTime;
+    }
+
+    public void setSettlementTime(Date settlementTime) {
+        this.settlementTime = settlementTime;
+    }
+
+    public TeachTypeEnum getTeacherRole() {
+        return teacherRole;
+    }
+
+    public void setTeacherRole(TeachTypeEnum teacherRole) {
+        this.teacherRole = teacherRole;
+    }
+}

+ 64 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseScheduleTeacherSalaryQueryInfo.java

@@ -0,0 +1,64 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class CourseScheduleTeacherSalaryQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "分部编号",required = false)
+    private Integer organId;
+
+    @ApiModelProperty(value = "结算开始时间",required = false)
+    private Date startTime;
+
+    @ApiModelProperty(value = "结算结束时间",required = false)
+    private Date endTime;
+
+    @ApiModelProperty(value = "教师编号",required = false)
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "课程类型",required = false)
+    private String courseScheduleType;
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getCourseScheduleType() {
+        return courseScheduleType;
+    }
+
+    public void setCourseScheduleType(String courseScheduleType) {
+        this.courseScheduleType = courseScheduleType;
+    }
+}

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleTeacherSalaryService.java

@@ -1,8 +1,11 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import com.ym.mec.biz.dal.entity.VipGroup;
+import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.math.BigDecimal;
@@ -51,4 +54,10 @@ public interface CourseScheduleTeacherSalaryService extends BaseService<Long, Co
      */
     void musicGroupTeacherSalarySettlement();
 
+    /**
+     * 获取教师薪酬列表
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<TeacherSalaryDto> querySalaries(CourseScheduleTeacherSalaryQueryInfo queryInfo);
 }

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -1,11 +1,14 @@
 package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
@@ -467,4 +470,24 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         });
         sysUserCashAccountDetailDao.batchInsert(userCashAccountDetails);
     }
+
+    @Override
+    public PageInfo<TeacherSalaryDto> querySalaries(CourseScheduleTeacherSalaryQueryInfo queryInfo) {
+        PageInfo<TeacherSalaryDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<TeacherSalaryDto> dataList = null;
+        int count = courseScheduleTeacherSalaryDao.countSalaries(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = courseScheduleTeacherSalaryDao.querySalaries(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

+ 56 - 3
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -94,14 +94,67 @@
 		</foreach>
 	</delete>
 
+	<sql id="courseScheduleTeacherSalaryQueryPage">
+		<where>
+			csts.settlement_time_ IS NOT NULL AND csts.teacher_role_ IS NOT NULL AND cs.type_ IS NOT NULL
+			<if test="organId != null">
+				AND su.organ_id_ = #{organId}
+			</if>
+			<if test="search != null">
+				AND (su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+			</if>
+			<if test="startTime != null">
+				AND csts.settlement_time_ &gt;= DATE_FORMAT(#{startTime},'%Y-%m-%d')
+			</if>
+			<if test="endTime != null">
+				AND csts.settlement_time_ &lt;= DATE_FORMAT(#{endTime},'%Y-%m-%d')
+			</if>
+			<if test="courseScheduleType != null">
+				AND cs.type_ = #{courseScheduleType}
+			</if>
+			<if test="teacherId != null">
+				AND csts.user_id_ = #{teacherId}
+			</if>
+		</where>
+	</sql>
+
     <!-- 分页查询 -->
 	<select id="queryPage" resultMap="CourseScheduleTeacherSalary" parameterType="map">
-		SELECT * FROM course_schedule_teacher_salary ORDER BY id_ <include refid="global.limit"/>
+		SELECT * FROM course_schedule_teacher_salary
+		<include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM course_schedule_teacher_salary
+		SELECT COUNT(id_) FROM course_schedule_teacher_salary
+	</select>
+
+	<select id="countSalaries" resultType="java.lang.Integer">
+		SELECT COUNT(csts.id_) FROM course_schedule_teacher_salary csts
+		LEFT JOIN sys_user su ON su.id_ = csts.user_id_
+		LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_
+		<include refid="courseScheduleTeacherSalaryQueryPage"/>
+	</select>
+
+	<resultMap id="TeacherSalaryDtoMap" type="com.ym.mec.biz.dal.dto.TeacherSalaryDto">
+		<result property="username" column="username"/>
+		<result property="phone" column="phone_"/>
+		<result property="type" column="type_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+		<result property="name" column="name_"/>
+		<result property="actualSalary" column="actual_salary_"/>
+		<result property="subsidy" column="subsidy_"/>
+		<result property="settlementTime" column="settlement_time_"/>
+		<result property="teacherRole" column="teacher_role_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+	</resultMap>
+
+	<select id="querySalaries" resultMap="TeacherSalaryDtoMap">
+		SELECT su.username_,su.phone_,cs.type_,cs.name_,csts.actual_salary_,csts.subsidy_,csts.settlement_time_,csts.teacher_role_
+		FROM course_schedule_teacher_salary csts
+		LEFT JOIN sys_user su ON su.id_ = csts.user_id_
+		LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_
+		<include refid="courseScheduleTeacherSalaryQueryPage"/>
+		ORDER BY csts.settlement_time_ DESC
+		<include refid="global.limit"/>
 	</select>
 
 	<resultMap id="VipGroupSalaryDto" type="com.ym.mec.biz.dal.dto.VipGroupSalaryDto" extends="CourseScheduleTeacherSalary">
@@ -244,7 +297,7 @@
 		GROUP BY cs.teach_mode_
     </select>
 
-    <update id="batchUpdateWages" parameterType="map">
+	<update id="batchUpdateWages" parameterType="map">
 		UPDATE course_schedule_teacher_salary set
 			subsidy_ = #{subsidy},
 			expect_salary_ = #{salary},

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -427,7 +427,7 @@
         FROM student_attendance sa
         LEFT JOIN sys_user su ON sa.user_id_ = su.id_
         LEFT JOIN course_schedule cs ON sa.course_schedule_id_ = cs.id_
-        WHERE (cs.type_ = 'NORMAL' OR cs.type_ = 'MIX') AND sa.music_group_id_ = #{search}
+        WHERE sa.music_group_id_ = #{search}
         <include refid="global.limit"/>
     </select>
     <select id="countMusicGroupStudentsSign" resultType="java.lang.Integer">
@@ -435,7 +435,7 @@
         FROM student_attendance sa
         LEFT JOIN sys_user su ON sa.user_id_ = su.id_
         LEFT JOIN course_schedule cs ON sa.course_schedule_id_ = cs.id_
-        WHERE (cs.type_ = 'NORMAL' OR cs.type_ = 'MIX') AND sa.music_group_id_ = #{search}
+        WHERE sa.music_group_id_ = #{search}
     </select>
 
 </mapper>

+ 72 - 0
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleTeacherSalaryController.java

@@ -0,0 +1,72 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
+import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.util.collection.MapUtil;
+import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.excel.POIUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+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;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RequestMapping("courseScheduleTeacherSalary")
+@Api(tags = "教师薪酬服务")
+@RestController
+public class CourseScheduleTeacherSalaryController extends BaseController {
+
+    @Autowired
+    private CourseScheduleTeacherSalaryService courseScheduleTeacherSalaryService;
+
+    @ApiOperation(value = "分页导出教师薪酬列表")
+    @GetMapping("/export")
+    @PreAuthorize("@pcs.hasPermissions('courseScheduleTeacherSalary/export')")
+    public void export(CourseScheduleTeacherSalaryQueryInfo queryInfo, HttpServletResponse response) {
+        List<TeacherSalaryDto> teacherSalaries = courseScheduleTeacherSalaryService.querySalaries(queryInfo).getRows();
+        OutputStream ouputStream = null;
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[] { "用户名", "手机号", "课程类型", "实际薪水", "补助", "结算时间", "教师角色"}, new String[] {
+                    "username", "phone", "type.msg", "name", "actualSalary", "subsidy", "settlementTime", "teacherRole.msg"}, teacherSalaries);
+            response.setContentType("application/msexcel");
+            response.setHeader("Content-disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
+            ouputStream = response.getOutputStream();
+            workbook.write(ouputStream);
+            ouputStream.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+//            LOGGER.error("导出借款人列表出现异常", e);
+        } finally {
+            if (ouputStream != null) {
+                try {
+                    ouputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+//                    LOGGER.error("输出流关闭异常", e);
+                }
+            }
+        }
+    }
+
+    @ApiOperation(value = "分页查询教师薪酬列表")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('courseScheduleTeacherSalary/queryPage')")
+    public Object queryPage(CourseScheduleTeacherSalaryQueryInfo queryInfo) {
+        return succeed(courseScheduleTeacherSalaryService.querySalaries(queryInfo));
+    }
+}