DataUtil.java 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595
  1. package com.xjrsoft.module.schedule.util;
  2. import cn.hutool.core.util.StrUtil;
  3. import cn.hutool.db.Db;
  4. import com.google.gson.JsonArray;
  5. import com.google.gson.JsonElement;
  6. import com.google.gson.JsonObject;
  7. import com.google.gson.JsonParser;
  8. import com.xjrsoft.module.base.entity.BaseClass;
  9. import com.xjrsoft.module.base.entity.BaseCourseSubject;
  10. import com.xjrsoft.module.base.entity.BaseGrade;
  11. import com.xjrsoft.module.base.entity.BaseLabel;
  12. import com.xjrsoft.module.base.entity.BaseSemester;
  13. import com.xjrsoft.module.schedule.vo.ClassroomJianyuekbVo;
  14. import com.xjrsoft.module.schedule.vo.StudentJianyuekbVo;
  15. import com.xjrsoft.module.teacher.entity.XjrUser;
  16. import lombok.extern.slf4j.Slf4j;
  17. import java.sql.SQLException;
  18. import java.text.SimpleDateFormat;
  19. import java.util.ArrayList;
  20. import java.util.Date;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. import java.util.concurrent.CompletableFuture;
  25. /**
  26. * @author dzx
  27. * @date 2024/1/23
  28. */
  29. @Slf4j
  30. public class DataUtil {
  31. public Map<Long, String> insertClass(Db db, String tableName, Map<Long, String> gradeMap,
  32. Map<Long, String> teacherMap, String semesterSerialNo, Map<Long, String> ids, Map<Long, String> classroomMap) throws Exception {
  33. String sql = "SELECT * FROM " + tableName + " WHERE delete_mark = 0 and is_graduate = 1";
  34. List<BaseClass> dataList = db.query(sql, BaseClass.class);
  35. Map<Long, String> idMap = new HashMap<>();
  36. JsonParser jsonParser = new JsonParser();
  37. for (BaseClass baseClass : dataList) {
  38. String url = ScheduleUtil.apiUrl + "class/create";
  39. JsonObject paramJson = new JsonObject();
  40. paramJson.addProperty("teacherSerialNo", teacherMap.get(baseClass.getTeacherId()));
  41. paramJson.addProperty("name", baseClass.getName());
  42. paramJson.addProperty("semesterSerialNo", semesterSerialNo);
  43. paramJson.addProperty("eduYearSerialNo", gradeMap.get(baseClass.getGradeId()));
  44. paramJson.addProperty("extendId", baseClass.getId());
  45. paramJson.addProperty("classRoomSerialNo", classroomMap.get(baseClass.getClassroomId()));
  46. if(ids != null && ids.get(baseClass.getId()) != null){
  47. url = ScheduleUtil.apiUrl + "class/update";
  48. paramJson.addProperty("serialNo", ids.get(baseClass.getId()));
  49. long timestamp = System.currentTimeMillis();
  50. //生成签名
  51. String sign = ScheduleUtil.createSign(timestamp);
  52. String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
  53. continue;
  54. }
  55. //获取时间戳
  56. long timestamp = System.currentTimeMillis();
  57. //生成签名
  58. String sign = ScheduleUtil.createSign(timestamp);
  59. String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
  60. if(result == null){
  61. continue;
  62. }
  63. JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
  64. idMap.put(baseClass.getId(), resultJson.get("data").getAsString());
  65. }
  66. //插入记录表
  67. insertRecord(db, tableName, idMap);
  68. return idMap;
  69. }
  70. public Map<Long, String> insertClassRoom(Db db, String tableName, String schoolDistrictId, Map<Long, String> ids) throws Exception {
  71. String sql = "SELECT t1.name, t1.capacity AS people_count,t2.name AS location, t1.floor_num AS floor, t1.id AS extendId FROM " + tableName + " t1" +
  72. " INNER JOIN base_office_build t2 ON t1.office_build_id = t2.id" +
  73. " WHERE t1.delete_mark = 0 AND t2.delete_mark = 0";
  74. List<ClassroomJianyuekbVo> dataList = db.query(sql, ClassroomJianyuekbVo.class);
  75. String url = ScheduleUtil.apiUrl + "classroom/create";
  76. JsonParser jsonParser = new JsonParser();
  77. Map<Long, String> idMap = new HashMap<>();
  78. for (ClassroomJianyuekbVo classroom : dataList) {
  79. if(ids != null && ids.get(classroom.getExtendId()) != null){
  80. continue;
  81. }
  82. JsonObject paramJson = new JsonObject();
  83. paramJson.addProperty("schoolDistrictId", schoolDistrictId);
  84. paramJson.addProperty("name", classroom.getName());
  85. paramJson.addProperty("peopleCount", 50);
  86. paramJson.addProperty("location", classroom.getLocation());
  87. paramJson.addProperty("extendId", classroom.getExtendId());
  88. paramJson.addProperty("floor", classroom.getFloor());
  89. //获取时间戳
  90. long timestamp = System.currentTimeMillis();
  91. //生成签名
  92. String sign = ScheduleUtil.createSign(timestamp);
  93. String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
  94. if(result == null){
  95. continue;
  96. }
  97. JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
  98. idMap.put(classroom.getExtendId(), resultJson.get("data").getAsString());
  99. }
  100. //插入记录表
  101. insertRecord(db, tableName, idMap);
  102. return idMap;
  103. }
  104. public Map<Long, String> insertStudent(Db db, String tableName, Map<Long, String> gradeMap, Map<Long, String> ids) throws Exception {
  105. String sql = "SELECT t1.id AS registerNo, t2.name AS realName,t3.grade_id AS gradeSerialNo," +
  106. " t2.name AS alias,t2.gender,t2.id AS extendId FROM " + tableName + " t1" +
  107. " INNER JOIN xjr_user t2 ON t1.user_id = t2.id" +
  108. " INNER JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id" +
  109. " WHERE t1.delete_mark = 0 AND t2.delete_mark = 0" +
  110. " AND t1.student_id IS NOT NULL AND t1.student_id != ''" +
  111. " AND t3.archives_status = 'FB2901'";
  112. List<StudentJianyuekbVo> dataList = db.query(sql, StudentJianyuekbVo.class);
  113. String url = ScheduleUtil.apiUrl + "student/create";
  114. JsonParser jsonParser = new JsonParser();
  115. Map<Long, String> idMap = new HashMap<>();
  116. for (StudentJianyuekbVo student : dataList) {
  117. if(ids != null && ids.get(student.getExtendId()) != null){
  118. continue;
  119. }
  120. JsonObject paramJson = new JsonObject();
  121. paramJson.addProperty("registerNo", student.getRegisterNo());
  122. if("SB10001".equals(student.getGender())){
  123. paramJson.addProperty("gender", 1);
  124. }else if("SB10002".equals(student.getGender())){
  125. paramJson.addProperty("gender", 2);
  126. }
  127. paramJson.addProperty("realName", student.getRealName());
  128. paramJson.addProperty("alias", student.getAlias());
  129. paramJson.addProperty("extendId", student.getExtendId());
  130. paramJson.addProperty("gradeSerialNo", gradeMap.get(student.getGradeSerialNo()));
  131. //获取时间戳
  132. long timestamp = System.currentTimeMillis();
  133. //生成签名
  134. String sign = ScheduleUtil.createSign(timestamp);
  135. String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
  136. if(result == null){
  137. continue;
  138. }
  139. JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
  140. idMap.put(student.getExtendId(), resultJson.get("data").getAsString());
  141. }
  142. //插入记录表
  143. insertRecord(db, tableName, idMap);
  144. return idMap;
  145. }
  146. /**
  147. * 新增教职工
  148. * @param db
  149. * @param tableName
  150. * @return
  151. */
  152. public Map<Long, String> insertTeacher(Db db, String tableName, Map<Long, String> ids) throws Exception {
  153. String sql = "select t1.* from xjr_user t1" +
  154. " inner join xjr_user_role_relation t2 on t1.id = t2.user_id" +
  155. " inner join " + tableName + " t3 on t1.id = t3.user_id" +
  156. " where t1.delete_mark = 0 and t2.role_id = 2";
  157. List<XjrUser> xjrUsers = db.query(sql, XjrUser.class);
  158. String url = ScheduleUtil.apiUrl + "teacher/create";
  159. JsonParser jsonParser = new JsonParser();
  160. Map<Long, String> idMap = new HashMap<>();
  161. for (XjrUser user : xjrUsers) {
  162. if(ids != null && ids.get(user.getId()) != null){
  163. continue;
  164. }
  165. JsonObject paramJson = new JsonObject();
  166. paramJson.addProperty("jobNumber", user.getUserName());
  167. if("SB10001".equals(user.getGender())){
  168. paramJson.addProperty("gender", 1);
  169. }else if("SB10002".equals(user.getGender())){
  170. paramJson.addProperty("gender", 2);
  171. }
  172. paramJson.addProperty("name", user.getName());
  173. paramJson.addProperty("alias", user.getNickName());
  174. paramJson.addProperty("extendId", user.getId().toString());
  175. //获取时间戳
  176. long timestamp = System.currentTimeMillis();
  177. //生成签名
  178. String sign = ScheduleUtil.createSign(timestamp);
  179. String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
  180. if(result == null){
  181. continue;
  182. }
  183. JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
  184. idMap.put(user.getId(), resultJson.get("data").getAsString());
  185. }
  186. //插入记录表
  187. insertRecord(db, tableName, idMap);
  188. return idMap;
  189. }
  190. /**
  191. * 新增课程
  192. */
  193. public Map<Long, String> insertCourse(Db db, String tableName, Map<Long, String> ids, Map<Long, String> tagMap) throws Exception {
  194. String sql = "select * from " + tableName + " where delete_mark = 0";
  195. List<BaseCourseSubject> list = db.query(sql, BaseCourseSubject.class);
  196. String url = ScheduleUtil.apiUrl + "courseclass/Create";
  197. Map<Long, String> idMap = new HashMap<>();
  198. JsonParser jsonParser = new JsonParser();
  199. for (BaseCourseSubject courseSubject : list) {
  200. if(ids != null && ids.get(courseSubject.getId()) != null){
  201. continue;
  202. }
  203. JsonObject paramJson = new JsonObject();
  204. paramJson.addProperty("name", courseSubject.getName());
  205. paramJson.addProperty("code", courseSubject.getCode());
  206. paramJson.addProperty("extendId", courseSubject.getId().toString());
  207. if(tagMap.get(courseSubject.getBaseLabelId()) != null){
  208. JsonArray jsonArray = new JsonArray();
  209. jsonArray.add(tagMap.get(courseSubject.getBaseLabelId()));
  210. paramJson.add("tagSerialNos", jsonArray);
  211. }
  212. //获取时间戳
  213. long timestamp = System.currentTimeMillis();
  214. //生成签名
  215. String sign = ScheduleUtil.createSign(timestamp);
  216. String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
  217. if(result == null){
  218. continue;
  219. }
  220. JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
  221. idMap.put(courseSubject.getId(), resultJson.get("data").getAsString());
  222. }
  223. //插入记录表
  224. insertRecord(db, tableName, idMap);
  225. return idMap;
  226. }
  227. /**
  228. * 新增学期
  229. */
  230. public Map<Long, String> insertSemester(Db db, String tableName, Map<Long, String> ids) throws Exception {
  231. String sql = "select * from " + tableName + " where delete_mark = 0";
  232. List<BaseSemester> list = db.query(sql, BaseSemester.class);
  233. String url = ScheduleUtil.apiUrl + "semester/Create";
  234. Map<Long, String> idMap = new HashMap<>();
  235. JsonParser jsonParser = new JsonParser();
  236. SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
  237. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  238. String spring = "春";
  239. String autumn = "秋";
  240. for (BaseSemester semester : list) {
  241. if(ids != null && ids.get(semester.getId()) != null){
  242. continue;
  243. }
  244. JsonObject paramJson = new JsonObject();
  245. paramJson.addProperty("schoolYear", Integer.parseInt(sdfYear.format(semester.getStartDate())));
  246. Integer period = null;
  247. if(semester.getName().contains(spring)){
  248. period = 1;
  249. }else if(semester.getName().contains(autumn)){
  250. period = 2;
  251. }
  252. //获取时间戳
  253. long timestamp = System.currentTimeMillis();
  254. //生成签名
  255. String sign = ScheduleUtil.createSign(timestamp);
  256. paramJson.addProperty("period", period);
  257. paramJson.addProperty("startDate", sdf.format(semester.getStartDate()));
  258. paramJson.addProperty("endDate", sdf.format(semester.getEndDate()));
  259. paramJson.addProperty("extendId", semester.getId().toString());
  260. if(semester.getStartDate() != null && semester.getEndDate() != null && semester.getEndDate().getTime() > timestamp && semester.getStartDate().getTime() < timestamp){
  261. paramJson.addProperty("isCurrent", Boolean.TRUE);
  262. }else if(semester.getStartDate() != null && semester.getEndDate() != null && semester.getEndDate().getTime() > timestamp && semester.getStartDate().getTime() > timestamp){
  263. paramJson.addProperty("isCurrent", Boolean.TRUE);
  264. }else{
  265. paramJson.addProperty("isCurrent", Boolean.FALSE);
  266. }
  267. String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
  268. JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
  269. idMap.put(semester.getId(), resultJson.get("data").getAsString());
  270. }
  271. //插入记录表
  272. insertRecord(db, tableName, idMap);
  273. return idMap;
  274. }
  275. public Map<Long, String> insertCourseTag(Db db, String tableName, Map<Long, String> ids) throws Exception {
  276. String sql = "select * from " + tableName + " where delete_mark = 0" +
  277. " and id in (select distinct base_label_id from base_course_subject where delete_mark = 0)";
  278. List<BaseLabel> list = db.query(sql, BaseLabel.class);
  279. String url = ScheduleUtil.apiUrl + "courseclass/tag/create";
  280. JsonParser jsonParser = new JsonParser();
  281. Map<Long, String> idMap = new HashMap<>();
  282. for (BaseLabel department : list) {
  283. if(ids != null && ids.get(department.getId()) != null){
  284. continue;
  285. }
  286. JsonObject paramJson = new JsonObject();
  287. paramJson.addProperty("name", department.getName());
  288. //获取时间戳
  289. long timestamp = System.currentTimeMillis();
  290. //生成签名
  291. String sign = ScheduleUtil.createSign(timestamp);
  292. String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
  293. JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
  294. idMap.put(department.getId(), resultJson.get("data").getAsString());
  295. }
  296. //插入记录表
  297. insertRecord(db, tableName, idMap);
  298. return idMap;
  299. }
  300. /**
  301. * 插入年级
  302. * @param db 数据库链接
  303. * @param tableName 表名字
  304. * @param schoolDistrictId 校区id
  305. * @param ids 数据库id和jianyue的对应关系
  306. * @return 返回数据库和jianyue的对应关系
  307. */
  308. public Map<Long, String> insertGrade(Db db, String tableName, String schoolDistrictId, Map<Long, String> ids) throws Exception {
  309. String sql = "select * from " + tableName + " where delete_mark = 0 and status = 1";
  310. List<BaseGrade> list = db.query(sql, BaseGrade.class);
  311. String url = ScheduleUtil.apiUrl + "eduyear/create";
  312. JsonParser jsonParser = new JsonParser();
  313. Map<Long, String> idMap = new HashMap<>();
  314. for (BaseGrade baseGrade : list) {
  315. if(ids !=null && ids.get(baseGrade.getId()) != null){
  316. continue;
  317. }
  318. JsonObject paramJson = new JsonObject();
  319. paramJson.addProperty("schoolDistrictId", schoolDistrictId);
  320. paramJson.addProperty("period", 4);
  321. paramJson.addProperty("startYear", baseGrade.getTitle().replaceAll("年", ""));
  322. paramJson.addProperty("extendId", baseGrade.getId().toString());
  323. paramJson.addProperty("year", 3);
  324. //获取时间戳
  325. long timestamp = System.currentTimeMillis();
  326. //生成签名
  327. String sign = ScheduleUtil.createSign(timestamp);
  328. String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
  329. JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
  330. idMap.put(baseGrade.getId(), resultJson.get("data").getAsString());
  331. }
  332. //插入记录表
  333. insertRecord(db, tableName, idMap);
  334. return idMap;
  335. }
  336. /**
  337. * 查询校区id
  338. */
  339. public JsonArray getSchoolDistrictData() throws Exception {
  340. JsonParser jsonParser = new JsonParser();
  341. String url = ScheduleUtil.apiUrl + "SchoolDistrict/page";
  342. JsonObject jsonObject = new JsonObject();
  343. jsonObject.addProperty("pageSize", "15");
  344. jsonObject.addProperty("pageIndex", "1");
  345. //获取时间戳
  346. long timestamp = System.currentTimeMillis();
  347. //生成签名
  348. String sign = ScheduleUtil.createSign(timestamp);
  349. String result = ScheduleUtil.doPost(url, jsonObject.toString(), sign, timestamp);
  350. JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
  351. JsonArray jsonArray = resultJson.get("data").getAsJsonObject().get("dataList").getAsJsonArray();
  352. JsonArray resultArray = new JsonArray();
  353. for (JsonElement jsonElement : jsonArray) {
  354. JsonObject asJsonObject = jsonElement.getAsJsonObject();
  355. resultArray.add(asJsonObject.get("id").getAsString());
  356. }
  357. return resultArray;
  358. }
  359. /**
  360. * 查询当前学期的id
  361. * @return 返回当前学期的id
  362. */
  363. public String getCurrenSemeter() throws Exception {
  364. JsonParser jsonParser = new JsonParser();
  365. String url = ScheduleUtil.apiUrl + "Semester/Page";
  366. JsonObject jsonObject = new JsonObject();
  367. jsonObject.addProperty("pageSize", "15");
  368. jsonObject.addProperty("pageIndex", "1");
  369. //获取时间戳
  370. long timestamp = System.currentTimeMillis();
  371. //生成签名
  372. String sign = ScheduleUtil.createSign(timestamp);
  373. String result = ScheduleUtil.doPost(url, jsonObject.toString(), sign, timestamp);
  374. JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
  375. JsonArray jsonArray = resultJson.get("data").getAsJsonObject().get("dataList").getAsJsonArray();
  376. String currentSemeterId = null;
  377. for (JsonElement jsonElement : jsonArray) {
  378. JsonObject asJsonObject = jsonElement.getAsJsonObject();
  379. if(asJsonObject.get("isCurrent").getAsBoolean()){
  380. currentSemeterId = asJsonObject.get("serialNo").getAsString();
  381. }
  382. }
  383. return currentSemeterId;
  384. }
  385. public JsonArray getScheduleInfoByClass(Map<String, Long> classMap, Date startDate, Date endDate) throws Exception {
  386. JsonParser jsonParser = new JsonParser();
  387. String url = ScheduleUtil.apiUrl + "TimeTable/List";
  388. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  389. JsonArray dataMap = new JsonArray();
  390. for (String classId : classMap.keySet()) {
  391. //获取时间戳
  392. long timestamp = System.currentTimeMillis();
  393. //生成签名
  394. String sign = ScheduleUtil.createSign(timestamp);
  395. JsonObject jsonObject = new JsonObject();
  396. jsonObject.addProperty("classSerialNo", classId);
  397. jsonObject.addProperty("startDate", sdf.format(startDate));
  398. jsonObject.addProperty("endDate", sdf.format(endDate));
  399. String result = ScheduleUtil.doPost(url, jsonObject.toString(), sign, timestamp);
  400. JsonObject asJsonObject = jsonParser.parse(result).getAsJsonObject();
  401. dataMap.addAll(asJsonObject.get("data").getAsJsonArray());
  402. }
  403. return dataMap;
  404. }
  405. public JsonArray getScheduleInfoByGrade(String eduYearSerialNo, String startDate, String endDate) throws Exception {
  406. JsonParser jsonParser = new JsonParser();
  407. String url = ScheduleUtil.apiUrl + "TimeTable/List";
  408. //获取时间戳
  409. long timestamp = System.currentTimeMillis();
  410. //生成签名
  411. String sign = ScheduleUtil.createSign(timestamp);
  412. JsonObject jsonObject = new JsonObject();
  413. jsonObject.addProperty("eduYearSerialNo", eduYearSerialNo);
  414. jsonObject.addProperty("startDate", startDate);
  415. jsonObject.addProperty("endDate", endDate);
  416. String result = ScheduleUtil.doPost(url, jsonObject.toString(), sign, timestamp);
  417. JsonObject asJsonObject = jsonParser.parse(result).getAsJsonObject();
  418. return asJsonObject.get("data").getAsJsonArray();
  419. }
  420. /**
  421. *
  422. * @param db 数据库链接
  423. * @param data 接口数据
  424. * @param classroomMap 教室对应关系
  425. * @param coureseMap 课程对应关系
  426. * @param semesterMap 学期对应关系
  427. * @param teacherMap 教师对应关系
  428. */
  429. public void insertCourseTable(Db db, JsonArray data, Map<String, Long> classroomMap, Map<String, Long> coureseMap,
  430. Map<String, Long> semesterMap, Map<String, Long> teacherMap, Map<String, Long> classMap) throws SQLException {
  431. List<String> sqls = new ArrayList<>();
  432. // Map<Integer, String> week = ScheduleUtil.getWeek();
  433. Map<Integer, Integer> tmePeriod = ScheduleUtil.getTmePeriod();
  434. int count = 1;
  435. for (JsonElement jsonElement : data) {
  436. JsonObject asJsonObject = jsonElement.getAsJsonObject();
  437. long id = System.currentTimeMillis();
  438. JsonArray teachers = asJsonObject.get("teachers").getAsJsonArray();
  439. if(asJsonObject.get("courseClassId").isJsonNull() || coureseMap.get(asJsonObject.get("courseClassId").getAsString()) == null){
  440. continue;
  441. }
  442. String numberOfDayName = asJsonObject.get("numberOfDayName").getAsString();
  443. Integer timeNumber = 0;//节次
  444. if(!StrUtil.isEmpty(numberOfDayName)){
  445. timeNumber = Integer.parseInt(numberOfDayName.substring(numberOfDayName.length() - 1));
  446. }
  447. // String updateSql = "update course_table set status = 3 where class_id = " + classMap.get(asJsonObject.get("classSerialNo").getAsString())
  448. // + " and time_period = " + tmePeriod.get(asJsonObject.get("timeOption").getAsInt())
  449. // + " and time_number = " + timeNumber
  450. // + " and weeks = " + asJsonObject.get("dayOfWeek").getAsInt()
  451. // + " and course_id = " + coureseMap.get(asJsonObject.get("courseClassId").getAsString())
  452. // + " and schedule_date = '" + asJsonObject.get("scheduleDate").getAsString() + "'";
  453. String sql = "INSERT INTO course_table(id,base_semester_id,teacher_id,teacher_name,teacher_serial_no,course_id,course_name," +
  454. "class_id, class_name,weeks,weeks_cn,time_period,time_number,site_id,site_name,status," +
  455. "create_date,schedule_date,jianyue_id) select " + id + String.format("%04d", count) + ","
  456. + semesterMap.get(asJsonObject.get("semesterSerialNo").getAsString()) + ",";
  457. if(teachers.size() > 0){
  458. JsonObject teacherJson = teachers.get(0).getAsJsonObject();
  459. // updateSql += " and teacher_id = " + teacherMap.get(teacherJson.get("teacherSerialNo").getAsString());
  460. sql += (teacherMap.get(teacherJson.get("teacherSerialNo").getAsString())==null?0:teacherMap.get(teacherJson.get("teacherSerialNo").getAsString())) + ","
  461. + "'" + teacherJson.get("name").getAsString() + "',"
  462. + "'" + teacherJson.get("teacherSerialNo").getAsString() + "',";
  463. }else{
  464. sql += "0,'',null,";
  465. }
  466. sql += coureseMap.get(asJsonObject.get("courseClassId").getAsString()) + ","
  467. + "'" + asJsonObject.get("courseClassName").getAsString() + "',"
  468. + classMap.get(asJsonObject.get("classSerialNo").getAsString()) + ","
  469. + "'" + asJsonObject.get("className").getAsString() + "',"
  470. + asJsonObject.get("dayOfWeek").getAsInt() + ","
  471. + "'" + asJsonObject.get("dayOfWeekName").getAsString() + "',"
  472. + tmePeriod.get(asJsonObject.get("timeOption").getAsInt()) + ","
  473. + timeNumber + ","
  474. + (classroomMap.get(asJsonObject.get("classRoomSerialNo").getAsString()) == null ? 0 : classroomMap.get(asJsonObject.get("classRoomSerialNo").getAsString())) + ","
  475. + "'" + asJsonObject.get("classRoomName").getAsString() + "',1,now(),"
  476. + "'" + asJsonObject.get("scheduleDate").getAsString() + "',"
  477. + "'" + asJsonObject.get("id").getAsString() + "' FROM DUAL"
  478. + " WHERE NOT EXISTS(SELECT * FROM course_table WHERE jianyue_id = '" + asJsonObject.get("id").getAsString() +"' and status = 1)";
  479. // sqls.add(updateSql);
  480. sqls.add(sql);
  481. count ++;
  482. }
  483. db.executeBatch(sqls);
  484. }
  485. /**
  486. * 提取课时相关信息
  487. * @param db 数据库链接
  488. * @param data 数据
  489. *
  490. */
  491. public void insertClassTime(Db db, JsonArray data) throws SQLException {
  492. Map<String, JsonObject> infoMap = new HashMap<>();
  493. Map<Integer, Integer> tmePeriod = ScheduleUtil.getTmePeriod();
  494. for (JsonElement jsonElement : data) {
  495. JsonObject asJsonObject = jsonElement.getAsJsonObject();
  496. String numberOfDayName = asJsonObject.get("numberOfDayName").getAsString();
  497. JsonObject json = new JsonObject();
  498. json.add("startTime", asJsonObject.get("startTime"));
  499. json.add("endTime", asJsonObject.get("endTime"));
  500. json.addProperty("tmePeriod", tmePeriod.get(asJsonObject.get("timeOption").getAsInt()));
  501. json.add("numberOfDay", asJsonObject.get("numberOfDay"));
  502. infoMap.put(numberOfDayName, json);
  503. }
  504. List<String> sqls = new ArrayList<>();
  505. int count = 1;
  506. for (String number : infoMap.keySet()) {
  507. String substring1 = number.substring(number.length() - 1);
  508. JsonObject jsonObject = infoMap.get(number);
  509. long id = System.currentTimeMillis();
  510. String fullName = "第" +substring1 + "节课";
  511. String sql = "INSERT INTO class_time(id,time_period,number,full_name,short_name,create_date,summer_start_time"
  512. + ",summer_end_time,winter_start_time,winter_end_time) select " + id + String.format("%04d", count) + ","
  513. + jsonObject.get("tmePeriod").getAsInt() + ","
  514. + substring1 + ","
  515. + "'" + fullName + "',"
  516. + "'" + fullName + "',now(),"
  517. + "'" + jsonObject.get("startTime").getAsString() + "',"
  518. + "'" + jsonObject.get("endTime").getAsString() + "',"
  519. + "'" + jsonObject.get("startTime").getAsString() + "',"
  520. + "'" + jsonObject.get("endTime").getAsString() + "' FROM DUAL"
  521. + " WHERE NOT EXISTS(SELECT * FROM class_time WHERE time_period = "
  522. + jsonObject.get("tmePeriod").getAsInt()
  523. + " and number = " + substring1 + ")";
  524. sqls.add(sql);
  525. count ++;
  526. }
  527. db.executeBatch(sqls);
  528. }
  529. /**
  530. * 插入记录表
  531. * @param db 数据库链接工具
  532. * @param tableName 表名字
  533. * @param idsMap id对应关系
  534. */
  535. public void insertRecord(Db db, String tableName, Map<Long, String> idsMap) throws SQLException {
  536. if(idsMap.isEmpty()){
  537. return;
  538. }
  539. List<String> sqls = new ArrayList<>();
  540. for (Long sourceId : idsMap.keySet()) {
  541. String sql = "INSERT INTO jianyue_data(create_date,table_name,source_id,jianyue_id) value(now(),'"
  542. + tableName + "'," + sourceId + ",'" + idsMap.get(sourceId) + "')";
  543. sqls.add(sql);
  544. }
  545. db.executeBatch(sqls);
  546. }
  547. }