Ver Fonte

Merge remote-tracking branch 'origin/master'

Joburgess há 4 anos atrás
pai
commit
ab784ad137

+ 3 - 1
cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsInformationServiceImpl.java

@@ -84,15 +84,17 @@ public class SysNewsInformationServiceImpl extends BaseServiceImpl<Long, SysNews
 		boolean isNewer = false;
 		Date date = new Date();
 		Date startDate = queryInfo.getDate();
+		Date endDate = null;
 		if (startDate == null) {
 			try {
 				String startDateStr = "2020-05-01";
 				startDate = sdf.parse(startDateStr);
+				endDate = sdf.parse("2021-02-01");
 			} catch (ParseException e) {
 				throw new RuntimeException(e);
 			}
 		}
-		if (queryInfo.getTenantId() == 1 && date.after(startDate)) {
+		if (queryInfo.getTenantId() == 1 && date.after(startDate) && date.before(endDate)) {
 			if (user != null && "18696158274".equals(user.getPhone()) == false) {
 				isNewer = webFeignService.isPurchasedPracticeCourse(user.getId()) == false;
 				SysNewsInformation info = new SysNewsInformation();

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/InspectionItemPlanDao.java

@@ -25,4 +25,11 @@ public interface InspectionItemPlanDao extends BaseDAO<Long, InspectionItemPlan>
      * @return
      */
     InspectionItemPlan getPlanInfo(@Param("id") Long id);
+
+    /**
+     * 获取事项时间段内乐团的计划数
+     *
+     * @return
+     */
+    int getMusicGroupItemPlanCount(@Param("itemId") Long itemId, @Param("musicGroupId") String musicGroupId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendancesDto.java

@@ -29,6 +29,9 @@ public class TeacherAttendancesDto {
     @ApiModelProperty(value = "课程编号",required = false)
     private Long courseScheduleId;
 
+    @ApiModelProperty(value = "考勤编号",required = false)
+    private Long teacherAttendanceId;
+
     @ApiModelProperty(value = "课程名",required = false)
     private String courseScheduleName;
 
@@ -73,6 +76,14 @@ public class TeacherAttendancesDto {
     @ApiModelProperty(value = "申述处理状态",required = false)
     private ComplaintsStatusEnum complaintsStatus;
 
+    public Long getTeacherAttendanceId() {
+        return teacherAttendanceId;
+    }
+
+    public void setTeacherAttendanceId(Long teacherAttendanceId) {
+        this.teacherAttendanceId = teacherAttendanceId;
+    }
+
     public ComplaintsStatusEnum getComplaintsStatus() {
         return complaintsStatus;
     }

+ 29 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1747,7 +1747,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (musicGroup == null) {
             throw new BizException("乐团不存在");
         }
-        if (classGroup4MixDtos.get(0).getCourseTimes().compareTo(0) <= 0) {
+        if(classGroup4MixDtos.get(0).getOnlyCreateClassGroup() == null){
+            classGroup4MixDtos.get(0).setOnlyCreateClassGroup(false);
+        }
+        if (!classGroup4MixDtos.get(0).getOnlyCreateClassGroup() && classGroup4MixDtos.get(0).getCourseTimes().compareTo(0) <= 0) {
             throw new BizException("排课次数必须大于0");
         }
 
@@ -1840,6 +1843,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
         classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
 
+        //单建班级不排课
+        if (classGroup4MixDtos.get(0).getOnlyCreateClassGroup()) {
+            //创建IM群组
+            addImGroup(classGroup, userIds, teacherIds);
+            return classGroup;
+        }
+
         List<Integer> allTeacherIds = classGroupTeacherMapperList.stream()
                 .map(ClassGroupTeacherMapper::getUserId)
                 .collect(Collectors.toList());
@@ -2273,6 +2283,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 });
             }
         }
+        //1、更新班级关联老师信息
+        List<ClassGroupTeacherMapper> newClassGroupTeacherMapperList = classGroup4MixDtos.get(0).getClassGroupTeacherMapperList();
+
+        Set<Integer> noRepeatTeacherIds = newClassGroupTeacherMapperList.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toSet());
+        if (noRepeatTeacherIds.size() != newClassGroupTeacherMapperList.size()) {
+            throw new BizException("主教与助教存在冲突");
+        }
         if (Objects.nonNull(classGroup4MixDtos.get(0).getCourseAddType()) && classGroup4MixDtos.get(0).getCourseAddType().equals("onlyUpdateTeacher")) {
             List<Integer> classGroupIds = new ArrayList<>();
             classGroupIds.add(classGroupId);
@@ -2301,14 +2318,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         String subjectNames = subjectList.stream().map(Subject::getName).collect(Collectors.joining("/"));
 
-        //1、更新班级关联老师信息
-        List<ClassGroupTeacherMapper> newClassGroupTeacherMapperList = classGroup4MixDtos.get(0).getClassGroupTeacherMapperList();
-
-        Set<Integer> noRepeatTeacherIds = newClassGroupTeacherMapperList.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toSet());
-        if (noRepeatTeacherIds.size() != newClassGroupTeacherMapperList.size()) {
-            throw new BizException("主教与助教存在冲突");
-        }
-
         Integer teacherId = null;
         for (ClassGroupTeacherMapper groupTeacherMapper : newClassGroupTeacherMapperList) {
             groupTeacherMapper.setGroupType(classGroup.getGroupType());
@@ -2472,7 +2481,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (musicGroup == null) {
             throw new BizException("乐团不存在");
         }
-        if (classGroup4MixDtos.get(0).getCourseTimes().compareTo(0) <= 0) {
+        if(classGroup4MixDtos.get(0).getOnlyCreateClassGroup() == null){
+            classGroup4MixDtos.get(0).setOnlyCreateClassGroup(false);
+        }
+        if (!classGroup4MixDtos.get(0).getOnlyCreateClassGroup() && classGroup4MixDtos.get(0).getCourseTimes().compareTo(0) <= 0) {
             throw new BizException("排课次数必须大于0");
         }
         Integer schoolId = musicGroup.getSchoolId();
@@ -2542,6 +2554,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
         classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
 
+        //单建班级不排课
+        if (classGroup4MixDtos.get(0).getOnlyCreateClassGroup()) {
+            //创建IM群组
+            addImGroup(classGroup, userIds, teacherIds);
+            return classGroup;
+        }
+
         List<Integer> allTeacherIds = classGroupTeacherMapperList.stream()
                 .map(ClassGroupTeacherMapper::getUserId)
                 .collect(Collectors.toList());

+ 8 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionItemPlanServiceImpl.java

@@ -87,6 +87,13 @@ public class InspectionItemPlanServiceImpl extends BaseServiceImpl<Long, Inspect
         if (itemEndTime.before(inspectionItemPlan.getPlanEnd())) {
             throw new BizException("日程时间不能晚于工作周期结束时间");
         }
+        //事项计划同一乐团同一天不能重复
+        Date dayStartTime = DateUtil.trunc(inspectionItemPlan.getPlanStart());
+        Date dayEndTime = DateUtil.trunc(inspectionItemPlan.getPlanStart());
+        int dayMusicGroupItemPlanCount = inspectionItemPlanDao.getMusicGroupItemPlanCount(inspectionItemPlan.getItemId(), inspectionItemPlan.getMusicGroupId(), dayStartTime, dayEndTime);
+        if(dayMusicGroupItemPlanCount > 0){
+            throw new BizException("该乐团当天已有巡查安排,请核查");
+        }
         //获取乐团教学点的GPS信息
         MusicGroup musicGroup = musicGroupDao.get(inspectionItemPlan.getMusicGroupId());
         School school = schoolDao.get(musicGroup.getSchoolId());
@@ -154,7 +161,7 @@ public class InspectionItemPlanServiceImpl extends BaseServiceImpl<Long, Inspect
         Date nowDate = new Date();
         Date startTime = DateUtil.getFirstDayOfMonth(nowDate);
         Date endTime = DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(nowDate));
-        List<InspectionItemPlan> startPlans = inspectionItemPlanDao.getStartPlan(startTime,endTime);
+        List<InspectionItemPlan> startPlans = inspectionItemPlanDao.getStartPlan(startTime, endTime);
         Set<Integer> userIds = startPlans.stream().map(InspectionItemPlan::getUserId).collect(Collectors.toSet());
         //发送推送信息
         Map<Integer, String> userMap = new HashMap<>();

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -427,7 +427,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 							null,0,"6?sealClassId=" + courseScheduleId + "&subjectName=" + name ,"STUDENT",courseSchedule.getName());
 				}
 			}
-		}else if(StringUtils.isNotEmpty(teacherAttendance.getSignInDeviceNo())){
+		}else if(StringUtils.isEmpty(teacherAttendance.getSignInDeviceNo())){
 			teacherAttendance.setSignInDeviceNo(deviceNum);
 			teacherAttendanceDao.update(teacherAttendance);
 		}

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -290,6 +290,7 @@
         <result column="student_num_" property="studentNum"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
+        <result column="group_type_" property="groupType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="del_flag_" property="delFlag"/>
         <result column="expect_student_num_" property="expectStudentNum"/>

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -628,7 +628,7 @@
 	</select>
 	<select id="queryInspectionItemPlan" resultType="java.lang.Long">
 		SELECT DISTINCT iip.id_ FROM inspection_item_plan iip
-		WHERE iip.status_ = 0 AND iip.memo_ =''
+		WHERE iip.status_ = 0 AND iip.memo_ = '' AND DATE_FORMAT(iip.plan_start_,'%Y-%m-%d') &lt; DATE_FORMAT(NOW(),'%Y-%m-%d')
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(iip.organ_id_,#{organIdsStr})
 		</if>

+ 13 - 1
mec-biz/src/main/resources/config/mybatis/InspectionItemPlanMapper.xml

@@ -184,7 +184,8 @@
         FROM inspection_item_plan
         WHERE plan_start_ >= #{startTime}
           AND plan_start_ <= #{endTime}
-        ]]></select>
+        ]]>
+    </select>
 
     <select id="getPlanInfo" resultMap="InspectionItemPlan">
         SELECT iip.*, su.real_name_ realName, o.name_ organName, co.name_ cooperationName, mg.name_ musicGroupName
@@ -195,4 +196,15 @@
                  LEFT JOIN music_group mg ON mg.id_ = iip.music_group_id_
         WHERE iip.id_ = #{id}
     </select>
+
+    <select id="getMusicGroupItemPlanCount" resultType="int">
+        <![CDATA[
+        SELECT COUNT(*)
+        FROM inspection_item_plan
+        WHERE music_group_id_ = #{musicGroupId}
+          AND item_id_ = #{itemId}
+          AND plan_start_ >= #{startTime}
+          AND plan_start_ <= #{endTime}
+        ]]>
+    </select>
 </mapper>

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

@@ -227,6 +227,7 @@
 
     <resultMap id="TeacherAttendancesDto" type="com.ym.mec.biz.dal.dto.TeacherAttendancesDto">
         <result column="class_date_" property="classDate"/>
+        <result column="teacher_attendance_id_" property="teacherAttendanceId"/>
         <result column="start_class_time_" property="startClassTime"/>
         <result column="end_class_time_" property="endClassTime"/>
         <result column="course_schedule_type_" property="courseScheduleType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
@@ -339,7 +340,7 @@
         cs.class_date_,cs.start_class_time_,cs.end_class_time_,cs.type_ course_schedule_type_,
         IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) sign_in_status_,
         IF(ta.sign_out_status_ IS NULL,3,ta.sign_out_status_) sign_out_status_,
-        ta.sign_in_time_,ta.sign_out_time_,ta.remark_,o.name_ organ_name_,t.job_nature_,ta.complaints_status_
+        ta.sign_in_time_,ta.sign_out_time_,ta.remark_,o.name_ organ_name_,t.job_nature_,ta.complaints_status_,ta.id_ teacher_attendance_id_
         FROM course_schedule_teacher_salary csts
         LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
         LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = csts.course_schedule_id_ AND ta.teacher_id_ = csts.user_id_

+ 2 - 5
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -295,6 +295,7 @@ public class RoomServiceImpl implements RoomService {
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
     @Override
     public void joinRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
+        log.info("joinRoomSuccess: roomId={}, userId={}, deviceNum={}", roomId,userId,deviceNum);
         RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
         if(roomMember == null){
             roomMember = saveRoomMember(roomId,userId);
@@ -314,7 +315,6 @@ public class RoomServiceImpl implements RoomService {
             redisTemplate.delete(leaveSuccessKey);
         }
         redisTemplate.opsForValue().setIfAbsent(joinSuccessKey,roomId,2l,TimeUnit.SECONDS);
-        log.info("joinRoomSuccess : roomId={}, userId={}", roomId, userId);
 
         RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
         CourseSchedule schedule = courseScheduleDao.getLock(Long.parseLong(roomId.substring(1)));
@@ -433,6 +433,7 @@ public class RoomServiceImpl implements RoomService {
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
     @Override
     public void leaveRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
+        log.info("leaveRoomSuccess: roomId={}, userId={},deviceNum={}", roomId,userId,deviceNum);
         RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
         String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
         Integer firstCourseId = Integer.parseInt(roomId.substring(1));
@@ -466,8 +467,6 @@ public class RoomServiceImpl implements RoomService {
             redisTemplate.delete(joinSuccessKey);
         }
         redisTemplate.opsForValue().setIfAbsent(leaveSuccessKey,roomId,2,TimeUnit.SECONDS);
-        //记录
-        log.info("leaveRoomSuccess: roomId={}, userId={}", roomId,userId);
         RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
 
         if(roleEnum == RoleTeacher){
@@ -483,7 +482,6 @@ public class RoomServiceImpl implements RoomService {
             userDao.deleteByUid(userId);
             return;
         }
-
         if (roleEnum != RoleStudent && isUserDisplay(room, userId)) {
             updateDisplay(roomId, userId, "", 0);
         }
@@ -494,7 +492,6 @@ public class RoomServiceImpl implements RoomService {
             imHelper.dismiss(userId, roomId);
             log.info("leaveRoomSuccess dismiss the room: {},userId: {}", roomId,userId);
         } else {
-//            imHelper.quit(new String[]{userId}, roomId);
             roomMemberDao.deleteUserByRidAndUid(roomId, userId);
             MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, roleEnum.getValue());
             msg.setUserName(roomMember.getName());

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

@@ -135,6 +135,45 @@ public class ExportController extends BaseController {
     private SellOrderDao sellOrderDao;
     @Autowired
     private VipGroupActivityService vipGroupActivityService;
+    @Autowired
+    private GoodsService goodsService;
+
+    @ApiOperation(value = "商品列表导出")
+    @PostMapping("export/goods")
+    @PreAuthorize("@pcs.hasPermissions('export/goods')")
+    public void exportGoods(HttpServletResponse response, GoodsQueryInfo queryInfo) throws IOException {
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
+        List<Goods> rows = goodsService.queryPage(queryInfo).getRows();
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"商品编号", "货号", "品牌", "商品名称",
+                    "是否组合商品", "学员是否展示", "教务端是否展示", "乐团是否展示", "是否库存预警",
+                    "商品类型", "商品分类", "具体型号", "内部库存", "税务库存", "库存类型", "市场价(元)",
+                    "零售价(元)", "商品团购价(元)", "商品描述", "商品详情", "是否上下架"}, new String[]{
+                    "id", "sn", "brand", "name",
+                    "complementGoodsIdList == null || complementGoodsIdList == '' ? '否':'是'", "clientShow.msg", "educationalShow.msg", "musicGroupShow.msg", "stockWarning.msg",
+                    "type.desc", "goodsCategoryName", "specification", "stockCount", "taxStockCount", "stockType.msg", "marketPrice",
+                    "discountPrice", "groupPurchasePrice", "brief", "desc", "status.msg"}, rows);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attac:wq" +
+                    "hment;filename=goods-" + DateUtil.getDate(new Date()) + ".xls");
+            response.flushBuffer();
+            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 = "VIP活动导出")
     @PostMapping("export/vipGroupActivity")

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/controller/InspectionItemPlanController.java

@@ -13,6 +13,7 @@ import com.ym.mec.biz.service.InspectionItemPlanService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -84,6 +85,12 @@ public class InspectionItemPlanController extends BaseController {
                 }
             }
         }
+        if (queryInfo.getStartTime() != null) {
+            queryInfo.setStartTime(DateUtil.trunc(queryInfo.getStartTime()));
+        }
+        if (queryInfo.getEndTime() != null) {
+            queryInfo.setEndTime(DateUtil.getLastTimeWithDay(queryInfo.getEndTime()));
+        }
         if (queryInfo.getItemId() != null) {
             queryInfo.setUserId(sysUser.getId());
         }