|
@@ -26,7 +26,9 @@ import com.xjrsoft.module.courseTable.entity.CourseTable;
|
|
|
import com.xjrsoft.module.courseTable.service.ICourseTableService;
|
|
|
import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
|
|
|
import com.xjrsoft.module.organization.entity.Department;
|
|
|
+import com.xjrsoft.module.organization.entity.Role;
|
|
|
import com.xjrsoft.module.organization.entity.User;
|
|
|
+import com.xjrsoft.module.organization.entity.UserRoleRelation;
|
|
|
import com.xjrsoft.module.organization.service.IDepartmentService;
|
|
|
import com.xjrsoft.module.organization.service.IUserService;
|
|
|
import com.xjrsoft.module.organization.service.IWeChatService;
|
|
@@ -138,10 +140,10 @@ public class JianyuekbScheduleTask {
|
|
|
|
|
|
public void doExecute() {
|
|
|
String active = SpringUtil.getActiveProfile();
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ if(!"prod".equals(active)){
|
|
|
+ log.info("非正式环境,无法执行获取课表数据");
|
|
|
+ return;
|
|
|
+ }
|
|
|
String sql = "SELECT * FROM course_receive_msg WHERE delete_mark = 0 AND is_callback IS NULL";
|
|
|
List<Map<String, Object>> receiveMsgs = SqlRunnerAdapter.db().selectList(sql);
|
|
|
if (receiveMsgs.isEmpty()) {
|
|
@@ -176,7 +178,7 @@ public class JianyuekbScheduleTask {
|
|
|
LocalDate today = LocalDate.now();
|
|
|
|
|
|
DataUtil dataUtil = new DataUtil();
|
|
|
- Set<String> ongoing = redisUtil.get(taskKey, new TypeReference<Set<String>>() {
|
|
|
+ Set<String> ongoing = redisUtil.get(taskKey, new TypeReference<>() {
|
|
|
});
|
|
|
if (ongoing == null) {
|
|
|
ongoing = new HashSet<>();
|
|
@@ -185,7 +187,6 @@ public class JianyuekbScheduleTask {
|
|
|
Map<String, Map<String, String>> dataMap = initDataMap();
|
|
|
for (Map<String, Object> receiveMsg : receiveMsgs) {
|
|
|
String eduYearSerialNo = receiveMsg.get("edu_year_serial_no").toString();
|
|
|
- Long courseReceiveMsgId = Long.parseLong(receiveMsg.get("id").toString());
|
|
|
if (ongoing.contains(eduYearSerialNo)) {
|
|
|
continue;
|
|
|
}
|
|
@@ -239,7 +240,7 @@ public class JianyuekbScheduleTask {
|
|
|
|
|
|
ongoing.remove(eduYearSerialNo);
|
|
|
redisUtil.set(taskKey, ongoing);
|
|
|
- insertCourse(allScheduleInfo, dataMap, dataUtil, courseReceiveMsgId, startDateStr, endDateStr);
|
|
|
+ insertCourse(allScheduleInfo, dataMap, dataUtil, receiveMsg, startDateStr, endDateStr);
|
|
|
|
|
|
restoreCourseAdjust(processIds);
|
|
|
|
|
@@ -253,7 +254,7 @@ public class JianyuekbScheduleTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- void insertCourse(JsonArray scheduleInfo, Map<String, Map<String, String>> dataMap, DataUtil dataUtil, Long courseReceiveMsgId, String startDate, String endDate) {
|
|
|
+ void insertCourse(JsonArray scheduleInfo, Map<String, Map<String, String>> dataMap, DataUtil dataUtil, Map<String, Object> receiveMsg, String startDate, String endDate) {
|
|
|
|
|
|
String tableName = "base_grade";
|
|
|
|
|
@@ -274,27 +275,34 @@ public class JianyuekbScheduleTask {
|
|
|
Map<String, String> classroomMap = dataMap.get(tableName);
|
|
|
|
|
|
Set<String> techerIds = dataUtil.insertCourseTableEntiy(scheduleInfo, classroomMap, courseMap, semesterMap,
|
|
|
- teacherMap, classMap, courseReceiveMsgId, startDate, endDate);
|
|
|
- sendMsg(techerIds, courseReceiveMsgId);
|
|
|
+ teacherMap, classMap, receiveMsg.get("id").toString(), startDate, endDate);
|
|
|
+ sendMsg(techerIds, receiveMsg);
|
|
|
dataUtil.insertClassTime(scheduleInfo);
|
|
|
}
|
|
|
|
|
|
- void sendMsg(Set<String> techerIds, Long courseReceiveMsgId) {
|
|
|
- ActiveSpan.tag("params[ JianyuekbScheduleTaskSendMsg ]", "sendMsg");
|
|
|
+ void sendMsg(Set<String> techerIds, Map<String, Object> receiveMsg) {
|
|
|
try {
|
|
|
- CourseReceiveMsg receiveMsg = receiveMsgService.getById(courseReceiveMsgId);
|
|
|
JianyueData jianyueData = jianyueDataService.getOne(
|
|
|
new QueryWrapper<JianyueData>().lambda()
|
|
|
- .eq(JianyueData::getJianyueId, receiveMsg.getEduYearSerialNo())
|
|
|
+ .eq(JianyueData::getJianyueId, receiveMsg.get("edu_year_serial_no").toString())
|
|
|
);
|
|
|
String[] sourceId = jianyueData.getSourceId().split("_");
|
|
|
Department department = departmentService.getById(sourceId[0]);
|
|
|
|
|
|
BaseGrade grade = gradeService.getById(sourceId[1]);
|
|
|
-
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
List<User> userList = userService.listByIds(new ArrayList<>(techerIds));
|
|
|
+ List<User> userList1 = userService.list(
|
|
|
+ new MPJLambdaWrapper<User>()
|
|
|
+ .distinct()
|
|
|
+ .select(User::getId)
|
|
|
+ .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
|
|
|
+ .innerJoin(UserRoleRelation.class, UserRoleRelation::getUserId, User::getId)
|
|
|
+ .innerJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
|
|
|
+ .eq(Role::getCode, "KEBIAOGX")
|
|
|
+ );
|
|
|
+ userList.addAll(userList1);
|
|
|
+
|
|
|
for (User user : userList) {
|
|
|
WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
|
|
|
weChatSendMessageDto.setTemplateId(noticeTeacherTemplate);
|
|
@@ -313,7 +321,7 @@ public class JianyuekbScheduleTask {
|
|
|
paramJson.put("thing6", thing6);
|
|
|
|
|
|
JSONObject time3 = new JSONObject();
|
|
|
- time3.put("value", sdf.format(receiveMsg.getCreateDate()));
|
|
|
+ time3.put("value", receiveMsg.get("create_date").toString());
|
|
|
paramJson.put("time3", time3);
|
|
|
|
|
|
weChatSendMessageDto.setContent(paramJson);
|