zouxuan 5 年之前
父节点
当前提交
4ff9a46bbb

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectPlanDao.java

@@ -7,6 +7,8 @@ import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 public interface MusicGroupSubjectPlanDao extends BaseDAO<Integer, MusicGroupSubjectPlan> {
     /**
@@ -63,4 +65,7 @@ public interface MusicGroupSubjectPlanDao extends BaseDAO<Integer, MusicGroupSub
      * @return
      */
     MusicGroupSubjectPlan findSubjectPlan(@Param("musicGroupId") String musicGroupId,@Param("subjectId") Integer subjectId);
+
+
+    List<Map<Integer, String>> findSubjectMap(@Param("subjectIds") Set<Integer> subjectIds,@Param("musicGroupId") String musicGroupId);
 }

+ 33 - 9
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentApplyDetailDto.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
+import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
@@ -29,15 +31,18 @@ public class StudentApplyDetailDto{
     private String currentClass;
 
     @ApiModelProperty(value = "性别",required = false)
-    private String gender;
+    private UserGenderEnum gender;
 
     /** 是否允许调剂 */
     @ApiModelProperty(value = "是否允许调剂",required = false)
-    private String isAllowAdjust;
+    private YesOrNoEnum isAllowAdjust;
 
     @ApiModelProperty(value = "报名专业名称",required = false)
     private String subjectName;
 
+    @ApiModelProperty(value = "报名专业名称",required = false)
+    private Integer actualSubjectId;
+
     @ApiModelProperty(value = "实际专业名称",required = false)
     private String actualSubjectName;
 
@@ -45,11 +50,30 @@ public class StudentApplyDetailDto{
     private String parentsPhone;
 
     @ApiModelProperty(value = "学员缴费状态",required = false)
-    private String paymentStatus;
+    private PaymentStatusEnum paymentStatus;
+
+    @ApiModelProperty(value = "乐器团购类型",required = false)
+    private KitGroupPurchaseTypeEnum kitGroupPurchaseTypeEnum;
 
     @ApiModelProperty(value = "备注",required = false)
     private String remark;
 
+    public KitGroupPurchaseTypeEnum getKitGroupPurchaseTypeEnum() {
+        return kitGroupPurchaseTypeEnum;
+    }
+
+    public void setKitGroupPurchaseTypeEnum(KitGroupPurchaseTypeEnum kitGroupPurchaseTypeEnum) {
+        this.kitGroupPurchaseTypeEnum = kitGroupPurchaseTypeEnum;
+    }
+
+    public Integer getActualSubjectId() {
+        return actualSubjectId;
+    }
+
+    public void setActualSubjectId(Integer actualSubjectId) {
+        this.actualSubjectId = actualSubjectId;
+    }
+
     public String getRemark() {
         return remark;
     }
@@ -122,27 +146,27 @@ public class StudentApplyDetailDto{
         this.parentsPhone = parentsPhone;
     }
 
-    public String getGender() {
+    public UserGenderEnum getGender() {
         return gender;
     }
 
-    public void setGender(String gender) {
+    public void setGender(UserGenderEnum gender) {
         this.gender = gender;
     }
 
-    public String getIsAllowAdjust() {
+    public YesOrNoEnum getIsAllowAdjust() {
         return isAllowAdjust;
     }
 
-    public void setIsAllowAdjust(String isAllowAdjust) {
+    public void setIsAllowAdjust(YesOrNoEnum isAllowAdjust) {
         this.isAllowAdjust = isAllowAdjust;
     }
 
-    public String getPaymentStatus() {
+    public PaymentStatusEnum getPaymentStatus() {
         return paymentStatus;
     }
 
-    public void setPaymentStatus(String paymentStatus) {
+    public void setPaymentStatus(PaymentStatusEnum paymentStatus) {
         this.paymentStatus = paymentStatus;
     }
 

+ 22 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java

@@ -6,15 +6,16 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.service.MusicGroupService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.ym.mec.biz.dal.dao.MusicGroupPurchaseListDao;
 import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
-import com.ym.mec.biz.dal.entity.Goods;
-import com.ym.mec.biz.dal.entity.MusicGroupPurchaseList;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.service.GoodsService;
 import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
@@ -30,6 +31,10 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
     @Autowired
     private GoodsService goodsService;
     @Autowired
+    private MusicGroupDao musicGroupDao;
+    @Autowired
+    private OrganizationDao organizationDao;
+    @Autowired
     private MusicGroupPurchaseListDao musicGroupPurchaseListDao;
 
     @Override
@@ -65,15 +70,20 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 			String[] goodSIdArr = goodsIdsStr.split(",");
 
 			List<Goods> goodies = goodsService.findGoodsByIds(goodsIdsStr);
-
-			for (Goods goods : goodies) {
-				goods.setSellCount(0);
-				for (String goodsIdStr : goodSIdArr) {
-					if (goods.getId().equals(Integer.parseInt(goodsIdStr))) {
-						goods.setSellCount(goods.getSellCount() + 1);
-					}
-				}
-			}
+//            MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+//            Organization organization = organizationDao.get(musicGroup.getOrganId());
+            goodies.forEach(e->{
+                e.setSellCount(0);
+                //当作乐团名称字段处理
+//                e.setMemo(musicGroup.getName());
+                //当作分部名称字段处理
+//                e.setBrief(organization.getName());
+                for (String goodsIdStr : goodSIdArr) {
+                    if (e.getId().equals(Integer.parseInt(goodsIdStr))) {
+                        e.setSellCount(e.getSellCount() + 1);
+                    }
+                }
+            });
 			return goodies;
 		}
 		return null;

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -108,6 +108,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = studentRegistrationDao.queryStudentDetailPage(params);
+            Set<Integer> subjectIds = dataList.stream().map(e -> e.getActualSubjectId()).collect(Collectors.toSet());
+            Map<Integer,String> subjectMap = MapUtil.convertIntegerMap(musicGroupSubjectPlanDao.findSubjectMap(subjectIds,queryInfo.getMusicGroupId()));
+            dataList.forEach(e->{
+                e.setKitGroupPurchaseTypeEnum(KitGroupPurchaseTypeEnum.valueOf(subjectMap.get(e.getActualSubjectId())));
+            });
         }
         if (count == 0) {
             dataList = new ArrayList<>();

+ 7 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml

@@ -144,4 +144,11 @@
     <select id="findSubjectPlan" resultMap="MusicGroupSubjectPlan">
         SELECT * FROM music_group_subject_plan WHERE music_group_id_ = #{musicGroupId} AND subject_id_ = #{subjectId} LIMIT 1
     </select>
+    <select id="findSubjectMap" resultType="java.util.Map">
+        SELECT subject_id_ 'key',kit_group_purchase_type_ 'value' FROM music_group_subject_plan mgsp
+        WHERE mgsp.music_group_id_ = #{musicGroupId} AND subject_id_ IN
+        <foreach collection="subjectIds" open="(" close=")" item="item" separator=",">
+            #{item}
+        </foreach>
+    </select>
 </mapper>

+ 5 - 4
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -251,14 +251,15 @@
     <resultMap type="com.ym.mec.biz.dal.dto.StudentApplyDetailDto" id="studentApplyDetail">
         <result column="current_grade_" property="currentGrade"/>
         <result column="current_class_" property="currentClass"/>
-        <result column="is_allow_adjust_" property="isAllowAdjust"/>
+        <result column="is_allow_adjust_" property="isAllowAdjust" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="parents_name_" property="parentsName"/>
         <result column="parents_phone_" property="parentsPhone"/>
         <result column="subject_name_" property="subjectName"/>
+        <result column="actual_subject_id_" property="actualSubjectId"/>
         <result column="username_" property="studentName"/>
         <result column="actual_subject_name_" property="actualSubjectName"/>
-        <result column="payment_status_" property="paymentStatus"/>
-        <result column="gender_" property="gender"/>
+        <result column="payment_status_" property="paymentStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="gender_" property="gender" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="user_id_" property="studentId"/>
         <result column="id_" property="id"/>
         <result column="remark_" property="remark"/>
@@ -266,7 +267,7 @@
     <select id="queryStudentDetailPage" resultMap="studentApplyDetail">
         SELECT sr.id_, sr.user_id_,su.username_ username_,sr.parents_name_,sr.current_class_,sr.current_grade_,
         su.gender_,sr.is_allow_adjust_, s.name_ subject_name_,ss.name_
-        actual_subject_name_,sr.parents_phone_,sr.payment_status_,sr.remark_
+        actual_subject_name_,sr.parents_phone_,sr.payment_status_,sr.remark_,sr.actual_subject_id_
         FROM student_registration sr
         LEFT JOIN sys_user su ON sr.user_id_ = su.id_
         LEFT JOIN `subject` s ON sr.subject_id_ = s.id_

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

@@ -1,31 +1,16 @@
 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
@@ -34,35 +19,6 @@ 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[] {
-                    "userId","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')")

+ 137 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -0,0 +1,137 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
+import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
+import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
+import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.excel.POIUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Date;
+import java.util.List;
+
+@RequestMapping
+@Api(tags = "数据导出服务")
+@Controller
+public class ExportController extends BaseController {
+
+    @Autowired
+    private StudentRegistrationService studentRegistrationService;
+    @Autowired
+    private StudentPaymentOrderDetailService studentPaymentOrderDetailService;
+    @Autowired
+    private CourseScheduleTeacherSalaryService courseScheduleTeacherSalaryService;
+
+    @ApiOperation(value = "导出乐器采购清单")
+    @GetMapping("order/musicalListExport")
+    @PreAuthorize("@pcs.hasPermissions('order/musicalListExport')")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
+    public void musicalListExport(HttpServletResponse response,String musicGroupId){
+        List<Goods> musicalList = studentPaymentOrderDetailService.getMusicalList(musicGroupId);
+        if(musicalList == null || musicalList.size() < 1){
+            throw new BizException("数据为空");
+        }
+        OutputStream outputStream = null;
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[] { "分部","乐团", "声部", "商品名称", "数量"}, new String[] {
+                    "brief","memo", "currentGrade", "currentClass", "gender", "isAllowAdjust.msg"}, musicalList);
+            response.setContentType("application/msexcel");
+            response.setHeader("Content-disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
+            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();
+                }
+            }
+        }
+    }
+
+    @ApiOperation(value = "乐团【报名中、缴费中】 学生详情列表导出")
+    @PostMapping(value = "studentRegistration/queryStudentApplyDetailExport")
+    @PreAuthorize("@pcs.hasPermissions('studentRegistration/queryStudentApplyDetailExport')")
+    public void queryStudentApplyDetailExport(StudentRegistrationQueryInfo queryInfo, HttpServletResponse response) {
+        List<StudentApplyDetailDto> studentApplyDetail = studentRegistrationService.queryStudentDetailPage(queryInfo).getRows();
+        if(studentApplyDetail == null || studentApplyDetail.size() < 1){
+            throw new BizException("数据为空");
+        }
+        OutputStream outputStream = null;
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[] { "学生姓名","家长姓名", "年级", "班级", "性别", "服从调剂","报名专业", "实际专业","联系电话", "学员缴费状态", "乐器购买方式"}, new String[] {
+                    "studentName","parentsName", "currentGrade", "currentClass", "gender", "isAllowAdjust.msg", "subjectName", "actualSubjectName", "parentsPhone","paymentStatus","kitGroupPurchaseTypeEnum.msg"}, studentApplyDetail);
+            response.setContentType("application/msexcel");
+            response.setHeader("Content-disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
+            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();
+                }
+            }
+        }
+    }
+
+    @ApiOperation(value = "分页导出教师薪酬列表")
+    @PostMapping("courseScheduleTeacherSalary/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[] {
+                    "userId","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();
+        } finally {
+            if (ouputStream != null) {
+                try {
+                    ouputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+}

+ 9 - 15
mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java

@@ -1,29 +1,23 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.dto.StudentAddDto;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-
-import java.io.IOException;
-import java.util.Date;
-
 import org.apache.commons.lang3.StringUtils;
 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.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import com.ym.mec.biz.dal.dto.StudentAddDto;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
-import com.ym.mec.biz.service.StudentRegistrationService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.HttpResponseResult;
+import java.io.IOException;
+import java.util.Date;
 
 @RequestMapping("studentRegistration")
 @Api(tags = "学生报名信息服务")