SmartSemesterController.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561
  1. package com.template.controller;
  2. import com.baomidou.mybatisplus.core.conditions.Wrapper;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.template.annotation.DESRespondSecret;
  5. import com.template.api.SmartSemesterControllerAPI;
  6. import com.template.common.utils.TimeExchange;
  7. import com.template.common.utils.paramUtils;
  8. import com.template.model.evaluate.teacher.SmartEvaluateTdetail;
  9. import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
  10. import com.template.model.evaluate.teacher.SmartScoreManage;
  11. import com.template.model.pojo.SmartSemester;
  12. import com.template.model.pojo.SmartIdentity;
  13. import com.template.model.pojo.SmartSemester;
  14. import com.template.model.pojo.SmartTeaching;
  15. import com.template.model.result.CommonResult;
  16. import com.template.model.result.PageUtils;
  17. import com.template.model.vo.SemesterVo;
  18. import com.template.model.vo.UserSubjectVo;
  19. import com.template.services.*;
  20. import org.apache.commons.lang3.ObjectUtils;
  21. import org.apache.commons.lang3.StringUtils;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import org.springframework.validation.BindingResult;
  25. import org.springframework.web.bind.annotation.RequestMapping;
  26. import org.springframework.web.bind.annotation.RestController;
  27. import java.util.ArrayList;
  28. import java.util.Date;
  29. import java.util.List;
  30. import java.util.stream.Collectors;
  31. /**
  32. * <p>
  33. * 应用管理 前端控制器
  34. * </p>
  35. *
  36. * @author ceshi
  37. * @since 2024-03-07
  38. */
  39. @RestController
  40. //返回参数加密注解
  41. @DESRespondSecret
  42. public class SmartSemesterController implements SmartSemesterControllerAPI {
  43. @Autowired
  44. private SmartSemesterService smartSemesterService;
  45. @Autowired
  46. private SmartScoreManageService smartScoreManageService;
  47. @Autowired
  48. private SmartTeachingService smartTeachingService;
  49. @Autowired
  50. private SmartEvaluateTdetailService smartEvaluateTdetailService;
  51. @Autowired
  52. private SmartEvaluateTeacherService smartEvaluateTeacherService;
  53. /**
  54. * 新增学期
  55. *
  56. * @param smartApply 学期数据
  57. * @param bindingResult
  58. * @return
  59. */
  60. @Override
  61. @DESRespondSecret(validated = true)
  62. @Transactional(rollbackFor = {Exception.class})
  63. public CommonResult insertSmartSemester(SmartSemester smartApply, BindingResult bindingResult) throws Exception {
  64. if (bindingResult.hasErrors()) {
  65. String st = paramUtils.getParamError(bindingResult);
  66. return CommonResult.fail(st);
  67. }
  68. Date startTime = smartApply.getStartTime();
  69. Date endTime = smartApply.getEndTime();
  70. SmartSemester semester = smartSemesterService.querySemesterByName(smartApply.getName());
  71. if (semester != null) {
  72. return CommonResult.fail(smartApply.getName() + "学期数据在系统中已存在");
  73. }
  74. //一天里不能是多个学期
  75. List<SmartSemester> list = smartSemesterService.getSemesterTime(TimeExchange.DateToString(startTime, "yyyy-MM-dd HH:mm:ss"), TimeExchange.DateToString(endTime, "yyyy-MM-dd HH:mm:ss"));
  76. if (ObjectUtils.isNotEmpty(list) && list.size() > 0) {
  77. return CommonResult.fail("该时间段已包含其他学期");
  78. }
  79. try {
  80. int result = smartSemesterService.insertSmartSemester(smartApply);
  81. if (result <= 0) {
  82. //return CommonResult.fail("添加失败");
  83. throw new Exception("添加失败!");
  84. }
  85. //region 添加对应的默认教师评分项
  86. List<SmartScoreManage> scoreManages = new ArrayList<>();
  87. //region 德
  88. SmartScoreManage morals = new SmartScoreManage();
  89. morals.setTermId(result);
  90. morals.setTerm(smartApply.getName());
  91. morals.setScoreItem("德");
  92. morals.setParentId(0);
  93. morals.setScoreNum(12.0);
  94. scoreManages.add(morals);
  95. //endregion
  96. //region 能
  97. SmartScoreManage ability = new SmartScoreManage();
  98. ability.setTermId(result);
  99. ability.setTerm(smartApply.getName());
  100. ability.setScoreItem("能");
  101. ability.setParentId(0);
  102. ability.setScoreNum(28.0);
  103. scoreManages.add(ability);
  104. //endregion
  105. //region 勤
  106. SmartScoreManage diligent = new SmartScoreManage();
  107. diligent.setTermId(result);
  108. diligent.setTerm(smartApply.getName());
  109. diligent.setScoreItem("勤");
  110. diligent.setParentId(0);
  111. diligent.setScoreNum(6.0);
  112. scoreManages.add(diligent);
  113. //endregion
  114. //region 绩
  115. SmartScoreManage merit = new SmartScoreManage();
  116. merit.setTermId(result);
  117. merit.setTerm(smartApply.getName());
  118. merit.setScoreItem("绩");
  119. merit.setParentId(0);
  120. merit.setScoreNum(54.0);
  121. scoreManages.add(merit);
  122. //endregion
  123. boolean inserSManages = smartScoreManageService.saveBatch(scoreManages);
  124. if (!inserSManages) {
  125. //return CommonResult.fail("添加失败");
  126. throw new Exception("添加失败!");
  127. }
  128. List<SmartScoreManage> scoreManagesData = smartScoreManageService.queryDatasByTermId(result);
  129. List<SmartScoreManage> scoreManageDetails = new ArrayList<>();
  130. for (SmartScoreManage data : scoreManagesData) {
  131. switch (data.getScoreItem()) {
  132. case "德":
  133. SmartScoreManage one = new SmartScoreManage();
  134. one.setTermId(result);
  135. one.setTerm(smartApply.getName());
  136. one.setScoreItem("为人师表");
  137. one.setParentId(data.getId());
  138. one.setScoreNum(3.0);
  139. scoreManageDetails.add(one);
  140. SmartScoreManage two = new SmartScoreManage();
  141. two.setTermId(result);
  142. two.setTerm(smartApply.getName());
  143. two.setScoreItem("关爱学生");
  144. two.setParentId(data.getId());
  145. two.setScoreNum(3.0);
  146. scoreManageDetails.add(two);
  147. SmartScoreManage three = new SmartScoreManage();
  148. three.setTermId(result);
  149. three.setTerm(smartApply.getName());
  150. three.setScoreItem("爱岗敬业");
  151. three.setParentId(data.getId());
  152. three.setScoreNum(6.0);
  153. scoreManageDetails.add(three);
  154. break;
  155. case "能":
  156. SmartScoreManage none = new SmartScoreManage();
  157. none.setTermId(result);
  158. none.setTerm(smartApply.getName());
  159. none.setScoreItem("基础能力");
  160. none.setParentId(data.getId());
  161. none.setScoreNum(1.0);
  162. scoreManageDetails.add(none);
  163. SmartScoreManage ntwo = new SmartScoreManage();
  164. ntwo.setTermId(result);
  165. ntwo.setTerm(smartApply.getName());
  166. ntwo.setScoreItem("教学能力");
  167. ntwo.setParentId(data.getId());
  168. ntwo.setScoreNum(16.0);
  169. scoreManageDetails.add(ntwo);
  170. SmartScoreManage nthree = new SmartScoreManage();
  171. nthree.setTermId(result);
  172. nthree.setTerm(smartApply.getName());
  173. nthree.setScoreItem("学习能力");
  174. nthree.setParentId(data.getId());
  175. nthree.setScoreNum(7.0);
  176. scoreManageDetails.add(nthree);
  177. SmartScoreManage nfour = new SmartScoreManage();
  178. nfour.setTermId(result);
  179. nfour.setTerm(smartApply.getName());
  180. nfour.setScoreItem("创新能力");
  181. nfour.setParentId(data.getId());
  182. nfour.setScoreNum(4.0);
  183. scoreManageDetails.add(nfour);
  184. break;
  185. case "勤":
  186. SmartScoreManage qone = new SmartScoreManage();
  187. qone.setTermId(result);
  188. qone.setTerm(smartApply.getName());
  189. qone.setScoreItem("考勤");
  190. qone.setParentId(data.getId());
  191. qone.setScoreNum(6.0);
  192. scoreManageDetails.add(qone);
  193. break;
  194. case "绩":
  195. SmartScoreManage jone = new SmartScoreManage();
  196. jone.setTermId(result);
  197. jone.setTerm(smartApply.getName());
  198. jone.setScoreItem("工作量");
  199. jone.setParentId(data.getId());
  200. jone.setScoreNum(8.0);
  201. scoreManageDetails.add(jone);
  202. SmartScoreManage jtwo = new SmartScoreManage();
  203. jtwo.setTermId(result);
  204. jtwo.setTerm(smartApply.getName());
  205. jtwo.setScoreItem("教学成绩");
  206. jtwo.setParentId(data.getId());
  207. jtwo.setScoreNum(30.0);
  208. scoreManageDetails.add(jtwo);
  209. SmartScoreManage jthree = new SmartScoreManage();
  210. jthree.setTermId(result);
  211. jthree.setTerm(smartApply.getName());
  212. jthree.setScoreItem("教研成果");
  213. jthree.setParentId(data.getId());
  214. jthree.setScoreNum(10.0);
  215. scoreManageDetails.add(jthree);
  216. SmartScoreManage jfour = new SmartScoreManage();
  217. jfour.setTermId(result);
  218. jfour.setTerm(smartApply.getName());
  219. jfour.setScoreItem("专业成长");
  220. jfour.setParentId(data.getId());
  221. jfour.setScoreNum(6.0);
  222. scoreManageDetails.add(jfour);
  223. break;
  224. default:
  225. break;
  226. }
  227. }
  228. boolean inserSDetails = smartScoreManageService.saveBatch(scoreManageDetails);
  229. if (!inserSDetails) {
  230. //return CommonResult.fail("添加失败");
  231. throw new Exception("添加失败!");
  232. }
  233. //endregion
  234. //region 任课老师赋值
  235. List<UserSubjectVo> teachings = smartTeachingService.querySmartTeachings(null);
  236. if (teachings != null && teachings.size() > 0) {
  237. List<SmartEvaluateTeacher> sets = new ArrayList<>();
  238. for (UserSubjectVo usv : teachings) {
  239. if (usv.getUserName() != null) {
  240. SmartEvaluateTeacher set = new SmartEvaluateTeacher();
  241. set.setCardNo(usv.getCardNo());
  242. set.setName(usv.getUserName());
  243. set.setUserId(usv.getUserId());
  244. set.setGradeId(usv.getGradeId());
  245. set.setGradeName(usv.getGradeName());
  246. set.setTermId(smartApply.getId());
  247. set.setTerm(smartApply.getName());
  248. set.setSubjectId(usv.getSubjectId());
  249. set.setSubject(usv.getSubjectName());
  250. set.setClassId(usv.getClassId());
  251. set.setClassName(usv.getClassName());
  252. set.setTotalScore(0.0);
  253. set.setLowingScore(0.0);
  254. sets.add(set);
  255. }
  256. }
  257. if (sets != null && sets.size() > 0) {
  258. boolean teacherBatch = smartEvaluateTeacherService.saveBatch(sets);
  259. if (!teacherBatch) {
  260. throw new Exception("添加失败!");
  261. }
  262. }
  263. }
  264. //endregion
  265. } catch (Exception e) {
  266. throw new Exception("添加失败!");
  267. }
  268. return CommonResult.ok("添加成功");
  269. }
  270. @Override
  271. @Transactional(rollbackFor = {Exception.class})
  272. public CommonResult testSmartSemester(int id) throws Exception {
  273. SmartSemester smartApply = smartSemesterService.getSmartById(id);
  274. try {
  275. int result = smartApply.getId();
  276. //region 添加对应的默认教师评分项
  277. List<SmartScoreManage> scoreManages = new ArrayList<>();
  278. //region 德
  279. SmartScoreManage morals = new SmartScoreManage();
  280. morals.setTermId(result);
  281. morals.setTerm(smartApply.getName());
  282. morals.setScoreItem("德");
  283. morals.setParentId(0);
  284. morals.setScoreNum(12.0);
  285. scoreManages.add(morals);
  286. //endregion
  287. //region 能
  288. SmartScoreManage ability = new SmartScoreManage();
  289. ability.setTermId(result);
  290. ability.setTerm(smartApply.getName());
  291. ability.setScoreItem("能");
  292. ability.setParentId(0);
  293. ability.setScoreNum(28.0);
  294. scoreManages.add(ability);
  295. //endregion
  296. //region 勤
  297. SmartScoreManage diligent = new SmartScoreManage();
  298. diligent.setTermId(result);
  299. diligent.setTerm(smartApply.getName());
  300. diligent.setScoreItem("勤");
  301. diligent.setParentId(0);
  302. diligent.setScoreNum(6.0);
  303. scoreManages.add(diligent);
  304. //endregion
  305. //region 绩
  306. SmartScoreManage merit = new SmartScoreManage();
  307. merit.setTermId(result);
  308. merit.setTerm(smartApply.getName());
  309. merit.setScoreItem("绩");
  310. merit.setParentId(0);
  311. merit.setScoreNum(54.0);
  312. scoreManages.add(merit);
  313. //endregion
  314. boolean inserSManages = smartScoreManageService.saveBatch(scoreManages);
  315. if (!inserSManages) {
  316. //return CommonResult.fail("添加失败");
  317. throw new Exception("添加失败!");
  318. }
  319. List<SmartScoreManage> scoreManagesData = smartScoreManageService.queryDatasByTermId(result);
  320. List<SmartScoreManage> scoreManageDetails = new ArrayList<>();
  321. for (SmartScoreManage data : scoreManagesData) {
  322. switch (data.getScoreItem()) {
  323. case "德":
  324. SmartScoreManage one = new SmartScoreManage();
  325. one.setTermId(result);
  326. one.setTerm(smartApply.getName());
  327. one.setScoreItem("为人师表");
  328. one.setParentId(data.getId());
  329. one.setScoreNum(3.0);
  330. scoreManageDetails.add(one);
  331. SmartScoreManage two = new SmartScoreManage();
  332. two.setTermId(result);
  333. two.setTerm(smartApply.getName());
  334. two.setScoreItem("关爱学生");
  335. two.setParentId(data.getId());
  336. two.setScoreNum(3.0);
  337. scoreManageDetails.add(two);
  338. SmartScoreManage three = new SmartScoreManage();
  339. three.setTermId(result);
  340. three.setTerm(smartApply.getName());
  341. three.setScoreItem("爱岗敬业");
  342. three.setParentId(data.getId());
  343. three.setScoreNum(6.0);
  344. scoreManageDetails.add(three);
  345. break;
  346. case "能":
  347. SmartScoreManage none = new SmartScoreManage();
  348. none.setTermId(result);
  349. none.setTerm(smartApply.getName());
  350. none.setScoreItem("基础能力");
  351. none.setParentId(data.getId());
  352. none.setScoreNum(1.0);
  353. scoreManageDetails.add(none);
  354. SmartScoreManage ntwo = new SmartScoreManage();
  355. ntwo.setTermId(result);
  356. ntwo.setTerm(smartApply.getName());
  357. ntwo.setScoreItem("教学能力");
  358. ntwo.setParentId(data.getId());
  359. ntwo.setScoreNum(16.0);
  360. scoreManageDetails.add(ntwo);
  361. SmartScoreManage nthree = new SmartScoreManage();
  362. nthree.setTermId(result);
  363. nthree.setTerm(smartApply.getName());
  364. nthree.setScoreItem("学习能力");
  365. nthree.setParentId(data.getId());
  366. nthree.setScoreNum(7.0);
  367. scoreManageDetails.add(nthree);
  368. SmartScoreManage nfour = new SmartScoreManage();
  369. nfour.setTermId(result);
  370. nfour.setTerm(smartApply.getName());
  371. nfour.setScoreItem("创新能力");
  372. nfour.setParentId(data.getId());
  373. nfour.setScoreNum(4.0);
  374. scoreManageDetails.add(nfour);
  375. break;
  376. case "勤":
  377. SmartScoreManage qone = new SmartScoreManage();
  378. qone.setTermId(result);
  379. qone.setTerm(smartApply.getName());
  380. qone.setScoreItem("考勤");
  381. qone.setParentId(data.getId());
  382. qone.setScoreNum(6.0);
  383. scoreManageDetails.add(qone);
  384. break;
  385. case "绩":
  386. SmartScoreManage jone = new SmartScoreManage();
  387. jone.setTermId(result);
  388. jone.setTerm(smartApply.getName());
  389. jone.setScoreItem("工作量");
  390. jone.setParentId(data.getId());
  391. jone.setScoreNum(8.0);
  392. scoreManageDetails.add(jone);
  393. SmartScoreManage jtwo = new SmartScoreManage();
  394. jtwo.setTermId(result);
  395. jtwo.setTerm(smartApply.getName());
  396. jtwo.setScoreItem("教学成绩");
  397. jtwo.setParentId(data.getId());
  398. jtwo.setScoreNum(30.0);
  399. scoreManageDetails.add(jtwo);
  400. SmartScoreManage jthree = new SmartScoreManage();
  401. jthree.setTermId(result);
  402. jthree.setTerm(smartApply.getName());
  403. jthree.setScoreItem("教研成果");
  404. jthree.setParentId(data.getId());
  405. jthree.setScoreNum(10.0);
  406. scoreManageDetails.add(jthree);
  407. SmartScoreManage jfour = new SmartScoreManage();
  408. jfour.setTermId(result);
  409. jfour.setTerm(smartApply.getName());
  410. jfour.setScoreItem("专业成长");
  411. jfour.setParentId(data.getId());
  412. jfour.setScoreNum(6.0);
  413. scoreManageDetails.add(jfour);
  414. break;
  415. default:
  416. break;
  417. }
  418. }
  419. boolean inserSDetails = smartScoreManageService.saveBatch(scoreManageDetails);
  420. if (!inserSDetails) {
  421. //return CommonResult.fail("添加失败");
  422. throw new Exception("添加失败!");
  423. }
  424. //endregion
  425. //region 任课老师赋值
  426. List<UserSubjectVo> teachings = smartTeachingService.querySmartTeachings(null);
  427. if (teachings != null && teachings.size() > 0) {
  428. List<SmartEvaluateTeacher> sets = new ArrayList<>();
  429. for (UserSubjectVo usv : teachings) {
  430. if (usv.getUserName() != null) {
  431. SmartEvaluateTeacher set = new SmartEvaluateTeacher();
  432. set.setCardNo(usv.getCardNo());
  433. set.setName(usv.getUserName());
  434. set.setUserId(usv.getUserId());
  435. set.setGradeId(usv.getGradeId());
  436. set.setGradeName(usv.getGradeName());
  437. set.setTermId(smartApply.getId());
  438. set.setTerm(smartApply.getName());
  439. set.setSubjectId(usv.getSubjectId());
  440. set.setSubject(usv.getSubjectName());
  441. set.setClassId(usv.getClassId());
  442. set.setClassName(usv.getClassName());
  443. set.setTotalScore(0.0);
  444. set.setLowingScore(0.0);
  445. sets.add(set);
  446. }
  447. }
  448. if (sets != null && sets.size() > 0) {
  449. boolean teacherBatch = smartEvaluateTeacherService.saveBatch(sets);
  450. if (!teacherBatch) {
  451. throw new Exception("添加失败!");
  452. }
  453. }
  454. }
  455. //endregion
  456. } catch (Exception e) {
  457. throw new Exception("添加失败!");
  458. }
  459. return CommonResult.ok("添加成功");
  460. }
  461. /**
  462. * 更新学期
  463. *
  464. * @param sa 学期数据
  465. * @param bindingResult
  466. * @return
  467. */
  468. @Override
  469. @DESRespondSecret(validated = true)
  470. public CommonResult updateSmartSemesterById(SmartSemester sa, BindingResult bindingResult) {
  471. if (bindingResult.hasErrors()) {
  472. String st = paramUtils.getParamError(bindingResult);
  473. return CommonResult.fail(st);
  474. }
  475. Date startTime = sa.getStartTime();
  476. Date endTime = sa.getEndTime();
  477. // 一天里不能是多个学期
  478. List<SmartSemester> list = smartSemesterService.getSemesterTime(TimeExchange.DateToString(startTime,"yyyy-MM-dd HH:mm:ss") , TimeExchange.DateToString(endTime,"yyyy-MM-dd HH:mm:ss"));
  479. if (ObjectUtils.isNotEmpty(list) && list.size() > 0) {
  480. return CommonResult.fail("该时间段已包含其他学期");
  481. }
  482. int result = smartSemesterService.updateSmartSemester(sa);
  483. return result > 0 ? CommonResult.ok("修改成功") : CommonResult.fail("修改失败");
  484. }
  485. /**
  486. * 学期分页数据查询
  487. *
  488. * @param currentPage 当前页数
  489. * @param pageCount 一页数据条数
  490. * @param name 查询名称
  491. * @return
  492. */
  493. @Override
  494. @DESRespondSecret(validated = true)
  495. public CommonResult queryPageSmartSemesters(int currentPage, int pageCount, String name) {
  496. PageUtils<SmartSemester> result = smartSemesterService.queryPageSmartSemesters(currentPage, pageCount, name);
  497. return CommonResult.ok(result);
  498. }
  499. @Override
  500. @DESRespondSecret(validated = true)
  501. public CommonResult deleteSmartSemesterById(int id) {
  502. SmartSemester data = smartSemesterService.getSmartById(id);
  503. if (data == null) {
  504. return CommonResult.fail("当前数据不存在,删除失败!");
  505. }
  506. int result = smartSemesterService.deleteSmartSemesterById(id);
  507. return result > 0 ? CommonResult.ok("删除成功") : CommonResult.fail("删除失败");
  508. }
  509. @Override
  510. @DESRespondSecret(validated = true)
  511. public CommonResult getSmartSemester() {
  512. LambdaQueryWrapper<SmartSemester> wrapper = new LambdaQueryWrapper<>();
  513. wrapper.orderByDesc(SmartSemester::getStartTime);
  514. List<SmartSemester> list = smartSemesterService.list(wrapper);
  515. return CommonResult.ok(list);
  516. }
  517. }