You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

3040 lines
142 KiB

  1. using Dapper;
  2. using Learun.DataBase.Repository;
  3. using Learun.Util;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.Diagnostics;
  8. using System.Linq;
  9. using System.Net.Http;
  10. using System.Runtime.InteropServices;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. using Learun.Application.Base.SystemModule;
  14. using Learun.Application.Organization;
  15. using Newtonsoft.Json;
  16. using static Learun.Application.TwoDevelopment.EducationalAdministration.ArrangeExamTermService;
  17. namespace Learun.Application.TwoDevelopment.EducationalAdministration
  18. {
  19. /// <summary>
  20. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  21. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  22. /// 创 建:超级管理员
  23. /// 日 期:2019-02-27 11:05
  24. /// 描 述:排课
  25. /// </summary>
  26. public class ArrangeLessonTermService : RepositoryFactory
  27. {
  28. private static readonly HttpClient Client;
  29. static ArrangeLessonTermService()
  30. {
  31. Client = new HttpClient();
  32. }
  33. #region 构造函数和属性
  34. private string fieldSql;
  35. public ArrangeLessonTermService()
  36. {
  37. fieldSql = @"
  38. t.ALTId,
  39. t.LessonDate,
  40. t.AcademicYearNo,
  41. t.Semester,
  42. t.DeptNo,
  43. t.MajorNo,
  44. t.LessonNo,
  45. t.LessonName,
  46. t.TeachClassNo,
  47. t.TeachClassSn,
  48. t.EmpNo,
  49. t.EmpName,
  50. t.LessonSortNo,
  51. t.StuSortNo,
  52. t.JoinLessonNum,
  53. t.RelatedClassNo,
  54. t.ClassroomNo,
  55. t.LessonTime,
  56. t.Remark,
  57. t.CheckMark,
  58. t.RecordMark
  59. ";
  60. }
  61. #endregion
  62. #region 获取数据
  63. /// <summary>
  64. /// 获取列表数据
  65. /// <summary>
  66. /// <returns></returns>
  67. public IEnumerable<ArrangeLessonTermEntity> GetList(string queryJson)
  68. {
  69. try
  70. {
  71. //参考写法
  72. //var queryParam = queryJson.ToJObject();
  73. // 虚拟参数
  74. //var dp = new DynamicParameters(new { });
  75. //dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
  76. var strSql = new StringBuilder();
  77. strSql.Append("SELECT ");
  78. strSql.Append(fieldSql);
  79. strSql.Append(" FROM ArrangeLessonTerm t ");
  80. return this.BaseRepository("CollegeMIS").FindList<ArrangeLessonTermEntity>(strSql.ToString());
  81. }
  82. catch (Exception ex)
  83. {
  84. if (ex is ExceptionEx)
  85. {
  86. throw;
  87. }
  88. else
  89. {
  90. throw ExceptionEx.ThrowServiceException(ex);
  91. }
  92. }
  93. }
  94. internal IEnumerable<ArrangeLessonTermEntity> GetListByEmpNo(List<string> empNos)
  95. {
  96. try
  97. {
  98. return this.BaseRepository("CollegeMIS").FindList<ArrangeLessonTermEntity>(a => empNos.Contains(a.EmpNo)).ToList();
  99. }
  100. catch (Exception ex)
  101. {
  102. if (ex is ExceptionEx)
  103. {
  104. throw;
  105. }
  106. else
  107. {
  108. throw ExceptionEx.ThrowServiceException(ex);
  109. }
  110. }
  111. }
  112. /// <summary>
  113. /// 获取列表分页数据
  114. /// <param name="pagination">分页参数</param>
  115. /// <summary>
  116. /// <returns></returns>
  117. public IEnumerable<ArrangeLessonTermEntity> GetPageList(Pagination pagination, string queryJson)
  118. {
  119. try
  120. {
  121. var strSql = new StringBuilder();
  122. strSql.Append("SELECT ");
  123. strSql.Append(fieldSql);
  124. strSql.Append(" FROM ArrangeLessonTerm t ");
  125. return this.BaseRepository("CollegeMIS").FindList<ArrangeLessonTermEntity>(strSql.ToString(), pagination);
  126. }
  127. catch (Exception ex)
  128. {
  129. if (ex is ExceptionEx)
  130. {
  131. throw;
  132. }
  133. else
  134. {
  135. throw ExceptionEx.ThrowServiceException(ex);
  136. }
  137. }
  138. }
  139. /// <summary>
  140. /// 获取实体数据
  141. /// <param name="keyValue">主键</param>
  142. /// <summary>
  143. /// <returns></returns>
  144. public ArrangeLessonTermEntity GetEntity(string keyValue)
  145. {
  146. try
  147. {
  148. return this.BaseRepository("CollegeMIS").FindEntity<ArrangeLessonTermEntity>(keyValue);
  149. }
  150. catch (Exception ex)
  151. {
  152. if (ex is ExceptionEx)
  153. {
  154. throw;
  155. }
  156. else
  157. {
  158. throw ExceptionEx.ThrowServiceException(ex);
  159. }
  160. }
  161. }
  162. #endregion
  163. #region 提交数据
  164. /// <summary>
  165. /// 删除实体数据
  166. /// <param name="keyValue">主键</param>
  167. /// <summary>
  168. /// <returns></returns>
  169. public void DeleteEntity(string keyValue)
  170. {
  171. try
  172. {
  173. this.BaseRepository("CollegeMIS").Delete<ArrangeLessonTermEntity>(t => t.ALTId == keyValue);
  174. }
  175. catch (Exception ex)
  176. {
  177. if (ex is ExceptionEx)
  178. {
  179. throw;
  180. }
  181. else
  182. {
  183. throw ExceptionEx.ThrowServiceException(ex);
  184. }
  185. }
  186. }
  187. /// <summary>
  188. /// 删除课程
  189. /// </summary>
  190. /// <param name="keyValue"></param>
  191. public void DeleteLessonTerm(string keyValue, string WeekTime)
  192. {
  193. var db = this.BaseRepository("CollegeMIS");
  194. try
  195. {
  196. db.BeginTrans();
  197. var entity = db.FindEntity<ArrangeLessonTermEntity>(keyValue);
  198. //周次
  199. var weekTimeAry = WeekTime.Split(',');
  200. foreach (var weekTime in weekTimeAry)
  201. {
  202. var weektime = Convert.ToInt32(weekTime);
  203. var lessonDate = GetLessonDate(weektime, Convert.ToInt32(entity.LessonTime.Split('-')[0]));
  204. var model =
  205. db.FindEntity<ArrangeLessonTermEntity>(x =>
  206. x.LessonDate == lessonDate && x.LessonTime == entity.LessonTime);
  207. if (model != null)
  208. {
  209. //更改课程表标记
  210. model.CheckMark = "0";
  211. model.Modify(keyValue);
  212. db.Update(model);
  213. //新增修改记录表
  214. ArgLessonTermUpdRecordEntity record = new ArgLessonTermUpdRecordEntity();
  215. record.Create();
  216. record.ALTId = model.ALTId;
  217. record.LessonNoOld = model.LessonNo;
  218. record.LessonNoNew = "";
  219. record.EmpNoOld = model.EmpNo;
  220. record.EmpNoNew = "";
  221. record.ClassroomNoOld = model.ClassroomNo;
  222. record.ClassroomNoNew = "";
  223. record.Remark = "删除";
  224. db.Insert(record);
  225. }
  226. }
  227. db.Commit();
  228. }
  229. catch (Exception ex)
  230. {
  231. db.Rollback();
  232. if (ex is ExceptionEx)
  233. {
  234. throw;
  235. }
  236. else
  237. {
  238. throw ExceptionEx.ThrowServiceException(ex);
  239. }
  240. }
  241. }
  242. /// <summary>
  243. /// 修改课程
  244. /// </summary>
  245. /// <param name="keyValue"></param>
  246. public string UpdateLessonTerm(string keyValue, UpdateLessonTermEntity model)
  247. {
  248. var db = this.BaseRepository("CollegeMIS");
  249. try
  250. {
  251. db.BeginTrans();
  252. //当前修改的课程数据
  253. var ArrangeLessonTerm = db.FindEntity<ArrangeLessonTermEntity>(keyValue);
  254. var LessonTimeOld = ArrangeLessonTerm?.LessonTime;
  255. //周次
  256. var weekTimeAry = model.WeekTimeSelect.Split(',');
  257. foreach (var weekTime in weekTimeAry)
  258. {
  259. //第几周
  260. var weektime = Convert.ToInt32(weekTime);
  261. //原先星期几
  262. var LessonTimeOld_week = Convert.ToInt32(LessonTimeOld?.Split('-')[0]);
  263. //需要修改周次的开课时间
  264. var lessonDate = GetLessonDate(weektime, LessonTimeOld_week);
  265. //最后调整到
  266. var lessonDateNew = GetLessonDate(weektime, model.WeekSelect);
  267. #region old
  268. //var lessonDate = GetLessonDate(weektime, model.WeekSelect);
  269. //var lessiontime = model.WeekSelect + "-" + model.NodeSelect;
  270. //var entity =
  271. // db.FindEntity<ArrangeLessonTermEntity>(x =>
  272. // x.LessonDate == lessonDate && x.LessonTime == lessiontime);
  273. //if (entity == null)
  274. //{
  275. // //不存在 新增
  276. // var classInfo = db.FindEntity<ClassInfoEntity>(x => x.ClassNo == model.TeachClassNo);
  277. // entity = new ArrangeLessonTermEntity();
  278. // entity.Create();
  279. // entity.LessonDate = lessonDate;
  280. // entity.AcademicYearNo = semesterAndYear.AcademicYearShort;
  281. // entity.Semester = semesterAndYear.Semester;
  282. // entity.LessonDate = lessonDate;
  283. // entity.DeptNo = classInfo?.DeptNo;
  284. // entity.MajorNo = classInfo?.MajorNo;
  285. // entity.LessonNo = model.LessonNo;
  286. // entity.LessonName = model.LessonName;
  287. // entity.EmpNo = model.EmpNo;
  288. // entity.EmpName = model.EmpName;
  289. // entity.TeachClassNo = model.TeachClassNo;
  290. // entity.ClassroomNo = model.ClassroomNo;
  291. // entity.LessonTime = lessiontime;
  292. // entity.CheckMark = "1";
  293. // entity.F_SchoolId = LoginUserInfo.Get().companyId;
  294. // db.Insert(entity);
  295. // //新增修改记录表
  296. // ArgLessonTermUpdRecordEntity record = new ArgLessonTermUpdRecordEntity();
  297. // record.Create();
  298. // record.ALTId = entity.ALTId;
  299. // record.LessonNoOld = "";
  300. // record.LessonNoNew = model.LessonNo;
  301. // record.EmpNoOld = "";
  302. // record.EmpNoNew = model.EmpNo;
  303. // record.ClassroomNoOld = "";
  304. // record.ClassroomNoNew = model.ClassroomNo;
  305. // record.Remark = "新增";
  306. // db.Insert(record);
  307. //}
  308. //else
  309. //{
  310. // //新增修改记录表
  311. // ArgLessonTermUpdRecordEntity record = new ArgLessonTermUpdRecordEntity();
  312. // record.Create();
  313. // record.ALTId = entity.ALTId;
  314. // record.LessonNoOld = entity.LessonNo;
  315. // record.LessonNoNew = model.LessonNo;
  316. // record.EmpNoOld = entity.EmpNo;
  317. // record.EmpNoNew = model.EmpNo;
  318. // record.ClassroomNoOld = entity.ClassroomNo;
  319. // record.ClassroomNoNew = model.ClassroomNo;
  320. // record.Remark = "修改";
  321. // db.Insert(record);
  322. // //存在 修改
  323. // entity.TeachClassNo = model.TeachClassNo;
  324. // entity.LessonNo = model.LessonNo;
  325. // entity.LessonName = model.LessonName;
  326. // entity.EmpNo = model.EmpNo;
  327. // entity.EmpName = model.EmpName;
  328. // entity.ClassroomNo = model.ClassroomNo;
  329. // db.Update(entity);
  330. //}
  331. #endregion
  332. var entity =
  333. db.FindEntity<ArrangeLessonTermEntity>(x =>
  334. x.LessonDate == lessonDate && x.LessonTime == LessonTimeOld);
  335. //当前星期-节次
  336. var lessiontimeNow = model.WeekSelect + "-" + model.NodeSelect;
  337. if (LessonTimeOld_week == 0)
  338. //if (entity == null)
  339. {
  340. //不存在则新增
  341. var startdate = DateTime.Today;
  342. var startDate = Common.CalculateFirstDateOfWeek(startdate).ToString("yyyy-MM-dd");
  343. var semesterAndYear = Common.GetSemesterAndYear(startDate);
  344. var classInfo = db.FindEntity<ClassInfoEntity>(x => x.ClassNo == model.TeachClassNo);
  345. entity = new ArrangeLessonTermEntity();
  346. entity.Create();
  347. entity.LessonDate = lessonDateNew;
  348. entity.AcademicYearNo = semesterAndYear.AcademicYearShort;
  349. entity.Semester = semesterAndYear.Semester;
  350. entity.DeptNo = classInfo?.DeptNo;
  351. entity.MajorNo = classInfo?.MajorNo;
  352. entity.LessonNo = model.LessonNo;
  353. entity.LessonName = model.LessonName;
  354. entity.EmpNo = model.EmpNo;
  355. entity.EmpName = model.EmpName;
  356. entity.TeachClassNo = model.TeachClassNo;
  357. entity.ClassroomNo = model.ClassroomNo;
  358. entity.LessonTime = lessiontimeNow;
  359. entity.CheckMark = "1";
  360. entity.F_SchoolId = LoginUserInfo.Get().companyId;
  361. db.Insert(entity);
  362. //新增修改记录表
  363. ArgLessonTermUpdRecordEntity record = new ArgLessonTermUpdRecordEntity();
  364. record.Create();
  365. record.ALTId = entity.ALTId;
  366. record.LessonDateNew = lessonDateNew;
  367. record.LessonNoOld = "";
  368. record.LessonNoNew = model.LessonNo;
  369. record.EmpNoOld = "";
  370. record.EmpNoNew = model.EmpNo;
  371. record.ClassroomNoOld = "";
  372. record.ClassroomNoNew = model.ClassroomNo;
  373. record.LessonTimeNew = lessiontimeNow;
  374. record.Remark = "新增";
  375. db.Insert(record);
  376. }
  377. else
  378. {
  379. //直接修改
  380. //判断是否冲突(新时间是否存在课程)
  381. if (db.FindList<ArrangeLessonTermEntity>(x =>
  382. x.LessonDate == lessonDateNew && x.LessonTime == lessiontimeNow && x.CheckMark == "1" && x.ALTId != keyValue).Count() > 0)
  383. {
  384. return "第" + weektime + "周当前课程冲突!";
  385. }
  386. //新增修改记录表
  387. ArgLessonTermUpdRecordEntity record = new ArgLessonTermUpdRecordEntity();
  388. record.Create();
  389. record.ALTId = entity.ALTId;
  390. record.LessonDateOld = entity.LessonDate;
  391. record.LessonDateNew = lessonDateNew;
  392. record.LessonNoOld = entity.LessonNo;
  393. record.LessonNoNew = model.LessonNo;
  394. record.EmpNoOld = entity.EmpNo;
  395. record.EmpNoNew = model.EmpNo;
  396. record.ClassroomNoOld = entity.ClassroomNo;
  397. record.ClassroomNoNew = model.ClassroomNo;
  398. record.LessonTimeOld = entity.LessonTime;
  399. record.LessonTimeNew = lessiontimeNow;
  400. record.Remark = "修改";
  401. db.Insert(record);
  402. //存在 修改
  403. entity.LessonDate = lessonDateNew;
  404. entity.TeachClassNo = model.TeachClassNo;
  405. entity.LessonNo = model.LessonNo;
  406. entity.LessonName = model.LessonName;
  407. entity.EmpNo = model.EmpNo;
  408. entity.EmpName = model.EmpName;
  409. entity.ClassroomNo = model.ClassroomNo;
  410. entity.LessonTime = lessiontimeNow;
  411. db.Update(entity);
  412. }
  413. }
  414. db.Commit();
  415. return "";
  416. }
  417. catch (Exception ex)
  418. {
  419. db.Rollback();
  420. if (ex is ExceptionEx)
  421. {
  422. throw;
  423. }
  424. else
  425. {
  426. throw ExceptionEx.ThrowServiceException(ex);
  427. }
  428. }
  429. }
  430. /// <summary>
  431. /// 获取开课时间
  432. /// </summary>
  433. /// <param name="weektime">周次</param>
  434. /// <param name="WeekSelect">星期几</param>
  435. /// <returns></returns>
  436. private DateTime GetLessonDate(int weektime, int WeekSelect)
  437. {
  438. //开课时间
  439. DateTime lessonDate = DateTime.Now;
  440. //开始时间
  441. var startdate = DateTime.Today;
  442. var startDate = Common.CalculateFirstDateOfWeek(startdate).ToString("yyyy-MM-dd");
  443. var semesterAndYear = Common.GetSemesterAndYear(startDate);
  444. //学校日历
  445. var schoolCalendar = this.BaseRepository().FindEntity<SchoolCalendarEntity>(x =>
  446. x.AcademicYearNo == semesterAndYear.AcademicYearShort && x.Semester == semesterAndYear.Semester);
  447. if (weektime == 1)
  448. {
  449. //第一周
  450. lessonDate = Common.CalculateFirstDateOfWeek(schoolCalendar.StartTime.Value)
  451. .AddDays(WeekSelect - 1);
  452. }
  453. else
  454. {
  455. var start = Common.CalculateFirstDateOfWeek(schoolCalendar.StartTime.Value).AddDays((weektime - 1) * 14);
  456. lessonDate = start.AddDays(WeekSelect - 1);
  457. }
  458. return lessonDate;
  459. }
  460. /// <summary>
  461. /// 保存实体数据(新增、修改)
  462. /// <param name="keyValue">主键</param>
  463. /// <summary>
  464. /// <returns></returns>
  465. public void SaveEntity(string keyValue, ArrangeLessonTermEntity entity)
  466. {
  467. try
  468. {
  469. if (!string.IsNullOrEmpty(keyValue))
  470. {
  471. entity.Modify(keyValue);
  472. this.BaseRepository("CollegeMIS").Update(entity);
  473. }
  474. else
  475. {
  476. entity.Create();
  477. this.BaseRepository("CollegeMIS").Insert(entity);
  478. }
  479. }
  480. catch (Exception ex)
  481. {
  482. if (ex is ExceptionEx)
  483. {
  484. throw;
  485. }
  486. else
  487. {
  488. throw ExceptionEx.ThrowServiceException(ex);
  489. }
  490. }
  491. }
  492. internal bool GetAny()
  493. {
  494. try
  495. {
  496. var semesterAndYear = Common.GetSemesterAndYear();
  497. return this.BaseRepository("CollegeMIS").FindList<ArrangeLessonTermEntity>(a => a.AcademicYearNo == semesterAndYear.AcademicYearShort && a.Semester == semesterAndYear.Semester).Any();
  498. }
  499. catch (Exception ex)
  500. {
  501. if (ex is ExceptionEx)
  502. {
  503. throw;
  504. }
  505. else
  506. {
  507. throw ExceptionEx.ThrowServiceException(ex);
  508. }
  509. }
  510. }
  511. #endregion
  512. /// <summary>
  513. /// 获取相关课程考勤的学生信息
  514. /// </summary>
  515. /// <param name="year"></param>
  516. /// <param name="semester"></param>
  517. /// <param name="empno"></param>
  518. /// <param name="lessonNo"></param>
  519. /// <param name="teachClassNo"></param>
  520. /// <returns></returns>
  521. public IEnumerable<StuSelectLessonListEntity> AttendanceStudents(Pagination pagination, string queryJson)
  522. {
  523. try
  524. {
  525. var queryParam = queryJson.ToJObject();
  526. var strSql = new StringBuilder();
  527. strSql.Append("SELECT ");
  528. strSql.Append(@"
  529. a.[StuNo]
  530. ,a.[DeptNo]
  531. ,a.[MajorNo]
  532. ,a.[ClassNo]
  533. ,a.[StuName]
  534. ,a.[GenderNo]
  535. ,a.[AcademicYearNo]
  536. ,a.[Semester]
  537. ,a.[LessonNo]
  538. ,a.[LessonName]
  539. ,a.[TeachClassNo]
  540. ,a.[LessonSortNo]
  541. ,a.[Grade]
  542. ,a.[ConflictLessonNo]
  543. ,a.[EmpNo]
  544. ,a.[TeachPlanNo],b.ID as StuAttendanceNo,b.AttendOrNo,b.Sort,b.AttenCondition,b.AttenScore
  545. ");
  546. strSql.Append(" FROM StuSelectLessonList a left join StuAttendance b on a.AcademicYearNo=b.AcademicYearNo and a.StuNo=b.StuNo and a.Semester=b.Semester and a.EmpNo=b.EmpNo and a.LessonNo=b.LessonNo and a.TeachClassNo=b.TeachClassNo ");
  547. strSql.Append($" and b.LessonTime='{queryParam["lessonTime"]}'");
  548. strSql.Append(" WHERE 1=1 ");
  549. strSql.Append($"and a.AcademicYearNo='{ queryParam["year"]}' and a.Semester='{queryParam["semester"]}' and a.EmpNo='{queryParam["empno"]}' and a.LessonNo='{queryParam["lessonNo"]}' and a.TeachClassNo='{queryParam["teachClassNo"]}' ");
  550. return this.BaseRepository("CollegeMIS").FindList<StuSelectLessonListEntity>(strSql.ToString(), pagination);
  551. }
  552. catch (Exception ex)
  553. {
  554. if (ex is ExceptionEx)
  555. {
  556. throw;
  557. }
  558. else
  559. {
  560. throw ExceptionEx.ThrowServiceException(ex);
  561. }
  562. }
  563. }
  564. private string strAcademicYear;
  565. private string strSemester;
  566. /// <summary>
  567. /// 同步排课系统数据
  568. /// </summary>
  569. /// <returns></returns>
  570. public async Task<bool> AsyncArrangeLessonData()
  571. {
  572. bool result = false;
  573. try
  574. {
  575. var apiData = await Client.GetStringAsync(Config.GetValue("ArrangeLessonAPI"));
  576. if (!string.IsNullOrEmpty(apiData))
  577. {
  578. var data = JsonConvert.DeserializeObject<Root>(apiData);
  579. var dataList = data.entity.list;
  580. if (dataList.Any())
  581. {
  582. var oldArrangeLessonTermList = (await BaseRepository("CollegeMIS").FindListAsync<ArrangeLessonTermEntity>()).ToList();
  583. var insertDataList = new List<ArrangeLessonTermEntity>();
  584. var lessonData = (await BaseRepository("CollegeMIS").FindListAsync<LessonInfoEntity>()).ToList();
  585. var classData = (await BaseRepository("CollegeMIS").FindListAsync<ClassInfoEntity>()).ToList();
  586. foreach (var item in dataList)
  587. {
  588. var classinfo = classData.FirstOrDefault(m => m.ClassNo == item.paike.clazzId);
  589. var insertData = new ArrangeLessonTermEntity
  590. {
  591. ALTId = Guid.NewGuid().ToString(),
  592. LessonDate = DateTime.Parse(item.times),
  593. AcademicYearNo = item.schoolYear,
  594. Semester = item.paike.semester,
  595. //DeptNo = classinfo?.DeptNo,
  596. MajorNo = classinfo?.MajorNo,
  597. LessonNo = item.paike.curriculunId,
  598. LessonName = item.paike.curriculunName,
  599. TeachClassNo = item.paike.curriculunName + item.paike.clazzId,
  600. EmpNo = item.paike.teacherId,
  601. EmpName = item.paike.teacherName,
  602. LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.paike.curriculunId)?.LessonSortNo,
  603. ClassroomNo = item.paike.classRoomId,
  604. LessonTime = item.paike.week + item.paike.section,
  605. CheckMark = "1",
  606. F_SchoolId = item.schoolId
  607. };
  608. strAcademicYear = insertData.AcademicYearNo;
  609. strSemester = insertData.Semester;
  610. if (oldArrangeLessonTermList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester
  611. && m.LessonNo == insertData.LessonNo && m.LessonDate == insertData.LessonDate
  612. //&& m.DeptNo == insertData.DeptNo
  613. && m.MajorNo == insertData.MajorNo
  614. && m.TeachClassNo == insertData.TeachClassNo && m.EmpNo == insertData.EmpNo
  615. && m.ClassroomNo == insertData.ClassroomNo && m.LessonTime == insertData.LessonTime
  616. && m.F_SchoolId == insertData.F_SchoolId) == 0
  617. && insertDataList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo && m.Semester == insertData.Semester
  618. && m.LessonNo == insertData.LessonNo && m.LessonDate == insertData.LessonDate
  619. //&& m.DeptNo == insertData.DeptNo
  620. && m.MajorNo == insertData.MajorNo
  621. && m.TeachClassNo == insertData.TeachClassNo && m.EmpNo == insertData.EmpNo
  622. && m.ClassroomNo == insertData.ClassroomNo && m.LessonTime == insertData.LessonTime
  623. && m.F_SchoolId == insertData.F_SchoolId) == 0)
  624. {
  625. insertDataList.Add(insertData);
  626. }
  627. }
  628. var insertResult = await BaseRepository("CollegeMIS").InsertAsync(insertDataList);
  629. //TeachClass数据处理
  630. var arrangeLessonTermData = (await BaseRepository("CollegeMIS").FindListAsync<ArrangeLessonTermEntity>(@"select AcademicYearNo,Semester,majorno,lessonno,replace(teachclassno,lessonname,'') as teachclassno,empno from [dbo].[ArrangeLessonTerm]
  631. where (AcademicYearNo = '" + strAcademicYear + "') and semester='" + strSemester + @"'
  632. group by AcademicYearNo,Semester,majorno,lessonno,replace(teachclassno,lessonname,'') ,empno ")).ToList();
  633. var TeachClassData = (await BaseRepository("CollegeMIS").FindListAsync<TeachClassEntity>(@"SELECT *
  634. FROM TeachClass
  635. WHERE (AcademicYearNo = '" + strAcademicYear + "') and semester='" + strSemester + "' ")).ToList();
  636. var insertTeachClassDataList = new List<TeachClassEntity>();
  637. if (arrangeLessonTermData.Any())
  638. {
  639. foreach (var altitem in arrangeLessonTermData)
  640. {
  641. var insertTeachClassData = new TeachClassEntity()
  642. {
  643. AcademicYearNo = altitem.AcademicYearNo,
  644. Semester = altitem.Semester,
  645. //DeptNo = altitem.DeptNo,
  646. MajorNo = altitem.MajorNo,
  647. LessonNo = altitem.LessonNo,
  648. Grade = classData.FirstOrDefault(m => m.ClassNo == altitem.TeachClassNo)?.Grade,
  649. LessonSortNo = altitem.LessonSortNo,
  650. TeachClassNo = altitem.TeachClassNo,
  651. EmpNo = altitem.EmpNo,
  652. F_SchoolId = altitem.F_SchoolId
  653. };
  654. //非空判断
  655. if (TeachClassData.Count(m => m.AcademicYearNo == insertTeachClassData.AcademicYearNo &&
  656. m.Semester == insertTeachClassData.Semester && //m.DeptNo == insertTeachClassData.DeptNo &&
  657. m.MajorNo == insertTeachClassData.MajorNo && m.LessonNo == insertTeachClassData.LessonNo &&
  658. m.Grade == insertTeachClassData.Grade && m.LessonSortNo == insertTeachClassData.LessonSortNo &&
  659. m.TeachClassNo == insertTeachClassData.TeachClassNo && m.EmpNo == insertTeachClassData.EmpNo &&
  660. m.F_SchoolId == insertTeachClassData.F_SchoolId) == 0
  661. && insertTeachClassDataList.Count(m => m.AcademicYearNo == insertTeachClassData.AcademicYearNo &&
  662. m.Semester == insertTeachClassData.Semester && //m.DeptNo == insertTeachClassData.DeptNo &&
  663. m.MajorNo == insertTeachClassData.MajorNo && m.LessonNo == insertTeachClassData.LessonNo &&
  664. m.Grade == insertTeachClassData.Grade && m.LessonSortNo == insertTeachClassData.LessonSortNo &&
  665. m.TeachClassNo == insertTeachClassData.TeachClassNo && m.EmpNo == insertTeachClassData.EmpNo &&
  666. m.F_SchoolId == insertTeachClassData.F_SchoolId) == 0)
  667. {
  668. insertTeachClassDataList.Add(insertTeachClassData);
  669. }
  670. }
  671. await BaseRepository("CollegeMIS").InsertAsync(insertTeachClassDataList);
  672. }
  673. //继续openlessonplan同步
  674. await AsyncOpenLessonPlanData();
  675. if (insertResult > 0)
  676. {
  677. result = true;
  678. }
  679. }
  680. }
  681. }
  682. catch (Exception ex)
  683. {
  684. if (ex is ExceptionEx)
  685. {
  686. throw;
  687. }
  688. else
  689. {
  690. throw ExceptionEx.ThrowServiceException(ex);
  691. }
  692. }
  693. return result;
  694. }
  695. /// <summary>
  696. /// 同步专业开课计划数据,学生选课数据
  697. /// </summary>
  698. /// <returns></returns>
  699. public async Task<bool> AsyncOpenLessonPlanData()
  700. {
  701. bool result = false;
  702. try
  703. {
  704. var apiData = await Client.GetStringAsync(Config.GetValue("OpenLessonPlanAPI"));
  705. if (!string.IsNullOrEmpty(apiData))
  706. {
  707. var openLessonPlanData = await BaseRepository("CollegeMIS").FindListAsync<OpenLessonPlanEntity>();
  708. var data = JsonConvert.DeserializeObject<Root>(apiData);
  709. var dataList = data.entity.list;
  710. if (dataList.Any())
  711. {
  712. var insertDataList = new List<OpenLessonPlanEntity>();
  713. var majorData = (await BaseRepository("CollegeMIS").FindListAsync<CdMajorEntity>()).ToList();
  714. var lessonData = (await BaseRepository("CollegeMIS").FindListAsync<LessonInfoEntity>()).ToList();
  715. foreach (var item in dataList)
  716. {
  717. var insertData = new OpenLessonPlanEntity()
  718. {
  719. MakeDate = DateTime.Now,
  720. AcademicYearNo = item.schoolYear,
  721. Semester = item.semester.shangxia,
  722. DeptNo = majorData.Find(m => m.MajorNo == item.majorNumber).DeptNo,
  723. MajorNo = item.majorNumber,
  724. LessonNo = item.curriculumNumber,
  725. LessonName = item.curriculumName,
  726. PartCode = "",
  727. Grade = item.grade,
  728. LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.curriculumNumber)?.LessonSortNo,
  729. LessonSortDetailNo = lessonData.FirstOrDefault(m => m.LessonNo == item.curriculumNumber)?.LessonSortDetailNo,
  730. StartWeek = 1,
  731. EndWeek = !string.IsNullOrEmpty(item.semester.zhouci) ? Convert.ToInt32(item.semester.zhouci) : 1,
  732. CheckStyleNo = "1",
  733. ScoreRecordStyleNo = "1",
  734. TeachDeptNo = majorData.Find(m => m.MajorNo == item.majorNumber).DeptNo,
  735. StudyScore = lessonData.FirstOrDefault(m => m.LessonNo == item.curriculumNumber)?.StudyScore,
  736. AmendDate = DateTime.Now,
  737. ClassroomType = 1,
  738. ClassroomPracticeType = 99,
  739. CheckMarkDept = "1",
  740. CheckMark = "1",
  741. TestMark = 0,
  742. State = 0,
  743. F_SchoolId = item.schoolId
  744. };
  745. if (openLessonPlanData.Count(m => m.AcademicYearNo == insertData.AcademicYearNo &&
  746. m.Semester == insertData.Semester &&
  747. m.DeptNo == insertData.DeptNo &&
  748. m.MajorNo == insertData.MajorNo &&
  749. m.LessonNo == insertData.LessonNo &&
  750. m.Grade == insertData.Grade &&
  751. m.LessonSortNo == insertData.LessonSortNo &&
  752. m.LessonName == insertData.LessonName &&
  753. m.F_SchoolId == insertData.F_SchoolId) == 0 && insertDataList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo &&
  754. m.Semester == insertData.Semester &&
  755. m.DeptNo == insertData.DeptNo &&
  756. m.MajorNo == insertData.MajorNo &&
  757. m.LessonNo == insertData.LessonNo &&
  758. m.Grade == insertData.Grade &&
  759. m.LessonSortNo == insertData.LessonSortNo &&
  760. m.LessonName == insertData.LessonName &&
  761. m.F_SchoolId == insertData.F_SchoolId) == 0)
  762. {
  763. insertDataList.Add(insertData);
  764. }
  765. }
  766. var insertResult = await BaseRepository("CollegeMIS").InsertAsync(insertDataList);
  767. //学生选课数据
  768. var TeachClassData = (await BaseRepository("CollegeMIS").FindListAsync<TeachClassEntity>(@"SELECT *
  769. FROM TeachClass
  770. WHERE (AcademicYearNo = '" + strAcademicYear + "') and semester='" + strSemester + "' ")).ToList();
  771. var stuinfobasicData = (await BaseRepository("CollegeMIS").FindListAsync<StuInfoBasicEntity>()).ToList();
  772. var stuSelectLessonListEntityData = (await BaseRepository("CollegeMIS").FindListAsync<StuSelectLessonListEntity>()).ToList();
  773. var insertStuSelectLessonListDataList = new List<StuSelectLessonListEntity>();
  774. if (TeachClassData.Any())
  775. {
  776. foreach (var itemteachclass in TeachClassData)
  777. {
  778. var classstulist = stuinfobasicData.Where(m => m.ClassNo == itemteachclass.TeachClassNo)
  779. .ToList();
  780. foreach (var stu in classstulist)
  781. {
  782. var insertDatastuselect = new StuSelectLessonListEntity();
  783. insertDatastuselect.NoticeBookNo = stu.NoticeNo;
  784. insertDatastuselect.StuNo = stu.StuNo;
  785. insertDatastuselect.DeptNo = stu.DeptNo;
  786. insertDatastuselect.ClassNo = stu.ClassNo;
  787. insertDatastuselect.MajorNo = stu.MajorNo;
  788. insertDatastuselect.StuName = stu.StuName;
  789. insertDatastuselect.GenderNo = stu.GenderNo != null && stu.GenderNo.Value ? "1" : "0";
  790. insertDatastuselect.AcademicYearNo = itemteachclass.AcademicYearNo;
  791. insertDatastuselect.Semester = itemteachclass.Semester;
  792. insertDatastuselect.OpenLessonDeptNo = itemteachclass.DeptNo;
  793. insertDatastuselect.OpenLessonMajorNo = itemteachclass.MajorNo;
  794. insertDatastuselect.LessonNo = itemteachclass.LessonNo;
  795. insertDatastuselect.LessonName = lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo)?.LessonName;
  796. insertDatastuselect.PartCode = "";
  797. insertDatastuselect.OrdinaryScoreScale = 1;
  798. insertDatastuselect.TermInScoreScale = 1;
  799. insertDatastuselect.TermEndScoreScale = 1;
  800. insertDatastuselect.OtherScoreScale = 1;
  801. insertDatastuselect.TeachClassNo = stu.ClassNo;
  802. insertDatastuselect.LessonSortNo = "1";
  803. insertDatastuselect.StuSortNo = "02";
  804. insertDatastuselect.Grade = stu.Grade;
  805. insertDatastuselect.StudyScore = lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo).StudyScore == null ? 0 : lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo).StudyScore;
  806. insertDatastuselect.TotalStudyHour = lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo).TotalStudyHour == null ? 0 : lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo).TotalStudyHour;
  807. insertDatastuselect.IsInEffect = "1";
  808. insertDatastuselect.OpenLessonDeptNo = stu.DeptNo;
  809. insertDatastuselect.OpenLessonMajorNo = stu.MajorNo;
  810. insertDatastuselect.EmpNo = itemteachclass.EmpNo;
  811. insertDatastuselect.IsPitchOn = "1";
  812. insertDatastuselect.CheckMark = "0";
  813. insertDatastuselect.InsertTime = DateTime.Now;
  814. insertDatastuselect.F_SchoolId = itemteachclass.F_SchoolId;
  815. if (stuSelectLessonListEntityData.Count(m => m.StuNo == insertDatastuselect.StuNo &&
  816. m.AcademicYearNo == insertDatastuselect.AcademicYearNo &&
  817. m.Semester == insertDatastuselect.Semester &&
  818. m.DeptNo == insertDatastuselect.DeptNo &&
  819. m.MajorNo == insertDatastuselect.MajorNo &&
  820. m.LessonNo == insertDatastuselect.LessonNo &&
  821. m.Grade == insertDatastuselect.Grade &&
  822. m.OpenLessonDeptNo == insertDatastuselect.OpenLessonDeptNo &&
  823. m.OpenLessonMajorNo == insertDatastuselect.OpenLessonMajorNo &&
  824. m.EmpNo == insertDatastuselect.EmpNo && m.ClassNo == insertDatastuselect.ClassNo &&
  825. m.F_SchoolId == insertDatastuselect.F_SchoolId) == 0 &&
  826. insertStuSelectLessonListDataList.Count(m => m.StuNo == insertDatastuselect.StuNo &&
  827. m.AcademicYearNo == insertDatastuselect.AcademicYearNo &&
  828. m.Semester == insertDatastuselect.Semester &&
  829. m.DeptNo == insertDatastuselect.DeptNo &&
  830. m.MajorNo == insertDatastuselect.MajorNo &&
  831. m.LessonNo == insertDatastuselect.LessonNo &&
  832. m.Grade == insertDatastuselect.Grade &&
  833. m.OpenLessonDeptNo == insertDatastuselect.OpenLessonDeptNo &&
  834. m.OpenLessonMajorNo == insertDatastuselect.OpenLessonMajorNo &&
  835. m.EmpNo == insertDatastuselect.EmpNo && m.ClassNo == insertDatastuselect.ClassNo &&
  836. m.F_SchoolId == insertDatastuselect.F_SchoolId) == 0)
  837. {
  838. insertStuSelectLessonListDataList.Add(insertDatastuselect);
  839. }
  840. }
  841. }
  842. await BaseRepository("CollegeMIS").InsertAsync(insertStuSelectLessonListDataList);
  843. }
  844. if (insertResult > 0)
  845. {
  846. result = true;
  847. }
  848. }
  849. }
  850. }
  851. catch (Exception ex)
  852. {
  853. if (ex is ExceptionEx)
  854. {
  855. throw;
  856. }
  857. else
  858. {
  859. throw ExceptionEx.ThrowServiceException(ex);
  860. }
  861. }
  862. return result;
  863. }
  864. /// <summary>
  865. /// 清空当前学期排课数据
  866. /// </summary>
  867. /// <returns></returns>
  868. public async Task<bool> AsyncModifyArrangeLessonData()
  869. {
  870. bool result = false;
  871. try
  872. {
  873. var apiData = await Client.GetStringAsync(Config.GetValue("ModifyArrangeLessonAPI"));
  874. if (!string.IsNullOrEmpty(apiData))
  875. {
  876. var data = JsonConvert.DeserializeObject<Root>(apiData);
  877. if (data.success)
  878. {
  879. var semesterAndYear = Common.GetSemesterAndYear();
  880. var strAcademicYear = semesterAndYear.AcademicYearShort;
  881. var strSemester = semesterAndYear.Semester;
  882. var executeResult = await BaseRepository("CollegeMIS").ExecuteAsyncBySql(
  883. $"delete from ArrangeLessonTerm where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' ");
  884. await BaseRepository("CollegeMIS").ExecuteAsyncBySql(
  885. $"delete from TeachClass where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' ");
  886. await BaseRepository("CollegeMIS").ExecuteAsyncBySql(
  887. $"delete from OpenLessonPlan where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' ");
  888. await BaseRepository("CollegeMIS").ExecuteAsyncBySql(
  889. $"delete from StuSelectLessonList where AcademicYearNo='{strAcademicYear}' and Semester='{strSemester}' ");
  890. if (executeResult > 0)
  891. {
  892. result = true;
  893. }
  894. }
  895. }
  896. }
  897. catch (Exception ex)
  898. {
  899. if (ex is ExceptionEx)
  900. {
  901. throw;
  902. }
  903. else
  904. {
  905. throw ExceptionEx.ThrowServiceException(ex);
  906. }
  907. }
  908. return result;
  909. }
  910. /// <summary>
  911. /// 按条件同步排课数据
  912. /// </summary>
  913. /// <returns></returns>
  914. public async Task<bool> AsyncArrangeLessonDataByCondition(ArrangeLessonTermEntity entity)
  915. {
  916. bool result = false;
  917. try
  918. {
  919. var lessonData = (await BaseRepository("CollegeMIS").FindListAsync<LessonInfoEntity>()).ToList();
  920. var classData = (await BaseRepository("CollegeMIS").FindListAsync<ClassInfoEntity>()).ToList();
  921. var classroomData = (await BaseRepository("CollegeMIS").FindListAsync<ClassroomInfoEntity>()).ToList();
  922. if (entity.SyncType == "1")
  923. {
  924. var LessonList = BaseRepository("paikeDbString").FindList<paikeList>(
  925. @"SELECT a.week AS 'week', a.section AS 'section',a.timetext AS 'timetext',c.name AS 'classname',c.number AS 'classnumber',
  926. r.name AS 'roomname',r.number AS 'ClassroomNo',t.name AS 'teachername',t.number AS 'teacherNumber', cu.name AS 'curriculunName',
  927. cu.number AS 'curriculunNumber', s.year AS 'year', s.number AS 'semester'
  928. FROM tb_paike a
  929. LEFT JOIN tb_clazz c ON c.id= a.`clazzid`
  930. LEFT JOIN tb_classroom r ON r.id =a.`classroomid`
  931. LEFT JOIN tb_teacher t ON t.id =a.`teacherid`
  932. LEFT JOIN tb_curriculum cu ON cu.id=a.`curriculunid`
  933. LEFT JOIN tb_semester s ON s.id=a.`semester`
  934. WHERE 1=1 AND s.year = '" + entity.AcademicYearNo + "' AND s.number ='" + entity.Semester + "' AND c.number IS NOT NULL ");
  935. if (LessonList.Count() > 0)
  936. {
  937. var oldArrangeLessonTermList = (await BaseRepository("CollegeMIS").FindListAsync<ArrangeLessonTermEntity>()).ToList();
  938. var insertDataList = new List<ArrangeLessonTermEntity>();
  939. foreach (var item in LessonList)
  940. {
  941. var classinfo = classData.FirstOrDefault(m => m.ClassNo == item.classnumber);
  942. var timesArr = item.timetext.Split(',');
  943. foreach (var timesItem in timesArr)
  944. {
  945. var insertData = new ArrangeLessonTermEntity
  946. {
  947. ALTId = Guid.NewGuid().ToString(),
  948. LessonDate = DateTime.Parse(timesItem),
  949. AcademicYearNo = item.year,
  950. Semester = item.semester,
  951. DeptNo = classinfo?.DeptNo,
  952. MajorNo = classinfo?.MajorNo,
  953. LessonNo = item.curriculunNumber,
  954. LessonName = item.curriculunName,
  955. TeachClassNo = classinfo?.ClassNo,
  956. EmpNo = item.teacherNumber,
  957. EmpName = item.teachername,
  958. LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.curriculunNumber)
  959. ?.LessonSortNo,
  960. ClassroomNo = classroomData.FirstOrDefault(m => m.ClassroomNo == item.ClassroomNo)
  961. ?.ClassroomNo,
  962. LessonTime = item.week + "-" + item.section,
  963. CheckMark = "1",
  964. F_SchoolId = entity.F_SchoolId
  965. };
  966. if (oldArrangeLessonTermList.Count(m =>
  967. m.AcademicYearNo == insertData.AcademicYearNo && m.Semester ==
  968. insertData.Semester
  969. && m.LessonNo ==
  970. insertData.LessonNo &&
  971. m.LessonDate ==
  972. insertData.LessonDate
  973. && m.MajorNo == insertData.MajorNo
  974. && m.TeachClassNo ==
  975. insertData.TeachClassNo &&
  976. m.EmpNo == insertData.EmpNo
  977. && m.ClassroomNo ==
  978. insertData.ClassroomNo &&
  979. m.LessonTime ==
  980. insertData.LessonTime
  981. && m.F_SchoolId ==
  982. insertData.F_SchoolId) == 0
  983. && insertDataList.Count(m =>
  984. m.AcademicYearNo == insertData.AcademicYearNo && m.Semester ==
  985. insertData.Semester
  986. && m.LessonNo ==
  987. insertData.LessonNo &&
  988. m.LessonDate ==
  989. insertData.LessonDate
  990. && m.MajorNo == insertData.MajorNo
  991. && m.TeachClassNo ==
  992. insertData.TeachClassNo &&
  993. m.EmpNo == insertData.EmpNo
  994. && m.ClassroomNo ==
  995. insertData.ClassroomNo &&
  996. m.LessonTime ==
  997. insertData.LessonTime
  998. && m.F_SchoolId ==
  999. insertData.F_SchoolId) == 0)
  1000. {
  1001. insertDataList.Add(insertData);
  1002. }
  1003. }
  1004. }
  1005. await BaseRepository("CollegeMIS").InsertAsync(insertDataList);
  1006. }
  1007. }
  1008. else
  1009. {
  1010. //TeachClass数据处理 20211214改为直接读取mysql库
  1011. var teachclasslist = BaseRepository("paikeDbString").FindList<TeachClassEntity>(@"SELECT clazz.name AS 'clazzname',
  1012. clazz.number AS 'TeachClassNo',
  1013. curriculum.name AS 'curriculumname',
  1014. curriculum.number AS 'LessonNo',
  1015. semester.year AS 'AcademicYearNo',
  1016. semester.number AS 'Semester',
  1017. a.jointclass AS 'jointclass',
  1018. a.type AS 'LessonSortNo',
  1019. a.classhour AS 'classhour',
  1020. room.name AS 'roomname',
  1021. room.number AS 'roomnumber',
  1022. teacher.name AS 'teachername',
  1023. teacher.number AS 'EmpNo'
  1024. FROM tb_class_plan a
  1025. LEFT JOIN tb_clazz clazz ON clazz.id = a.clazzid
  1026. LEFT JOIN tb_semester semester ON semester.id = clazz.semester
  1027. LEFT JOIN tb_curriculum curriculum ON curriculum.id = a.curriculum
  1028. LEFT JOIN tb_classroom room ON room.id = a.classroom
  1029. LEFT JOIN tb_teacher teacher ON teacher.id = a.teacher
  1030. WHERE semester.year = '" + entity.AcademicYearNo
  1031. + "' AND semester.number = '"
  1032. + entity.Semester + "' and a.type='1' ");
  1033. var TeachClassData = (await BaseRepository("CollegeMIS").FindListAsync<TeachClassEntity>(@"SELECT *
  1034. FROM TeachClass
  1035. WHERE (AcademicYearNo = '" + entity.AcademicYearNo + "') and semester='" + entity.Semester + "' and F_SchoolId='" + entity.F_SchoolId + "' ")).ToList();
  1036. //待插入数据
  1037. var insertTeachClassDataList = new List<TeachClassEntity>();
  1038. foreach (var teachClassEntity in teachclasslist)
  1039. {
  1040. var classitemEntity = classData.FirstOrDefault(m => m.ClassNo == teachClassEntity.TeachClassNo);
  1041. var insertTeachClassData = new TeachClassEntity()
  1042. {
  1043. AcademicYearNo = teachClassEntity.AcademicYearNo,
  1044. Semester = teachClassEntity.Semester,
  1045. DeptNo = classitemEntity?.DeptNo,
  1046. MajorNo = classitemEntity?.MajorNo,
  1047. LessonNo = teachClassEntity.LessonNo,
  1048. Grade = classitemEntity?.Grade,
  1049. LessonSortNo = "1",
  1050. TeachClassNo = teachClassEntity.TeachClassNo,
  1051. EmpNo = teachClassEntity.EmpNo,
  1052. F_SchoolId = entity.F_SchoolId
  1053. };
  1054. //非空判断
  1055. if (TeachClassData.Count(m => m.AcademicYearNo == insertTeachClassData.AcademicYearNo &&
  1056. m.Semester == insertTeachClassData.Semester && m.DeptNo == insertTeachClassData.DeptNo &&
  1057. m.MajorNo == insertTeachClassData.MajorNo && m.LessonNo == insertTeachClassData.LessonNo &&
  1058. m.Grade == insertTeachClassData.Grade && m.LessonSortNo == insertTeachClassData.LessonSortNo &&
  1059. m.TeachClassNo == insertTeachClassData.TeachClassNo && m.EmpNo == insertTeachClassData.EmpNo &&
  1060. m.F_SchoolId == insertTeachClassData.F_SchoolId) == 0
  1061. && insertTeachClassDataList.Count(m => m.AcademicYearNo == insertTeachClassData.AcademicYearNo &&
  1062. m.Semester == insertTeachClassData.Semester && m.DeptNo == insertTeachClassData.DeptNo &&
  1063. m.MajorNo == insertTeachClassData.MajorNo && m.LessonNo == insertTeachClassData.LessonNo &&
  1064. m.Grade == insertTeachClassData.Grade && m.LessonSortNo == insertTeachClassData.LessonSortNo &&
  1065. m.TeachClassNo == insertTeachClassData.TeachClassNo && m.EmpNo == insertTeachClassData.EmpNo &&
  1066. m.F_SchoolId == insertTeachClassData.F_SchoolId) == 0)
  1067. {
  1068. insertTeachClassDataList.Add(insertTeachClassData);
  1069. }
  1070. }
  1071. await BaseRepository("CollegeMIS").InsertAsync(insertTeachClassDataList);
  1072. //继续openlessonplan同步
  1073. await AsyncOpenLessonPlanDataByCondition(entity);
  1074. }
  1075. result = true;
  1076. }
  1077. catch (Exception ex)
  1078. {
  1079. if (ex is ExceptionEx)
  1080. {
  1081. throw;
  1082. }
  1083. else
  1084. {
  1085. throw ExceptionEx.ThrowServiceException(ex);
  1086. }
  1087. }
  1088. return result;
  1089. }
  1090. /// <summary>
  1091. /// 按条件同步专业开课计划数据,学生选课数据
  1092. /// </summary>
  1093. /// <returns></returns>
  1094. public async Task<bool> AsyncOpenLessonPlanDataByCondition(ArrangeLessonTermEntity entity)
  1095. {
  1096. try
  1097. {
  1098. var TeachList = BaseRepository("paikeDbString").FindList<TeachClassEntity>(
  1099. @"select m.name AS 'MajorName', m.number AS 'MajorNo', tt.EmpNo AS 'EmpNo',
  1100. tt.EmpName AS 'EmpName', sc.name AS 'F_SchoolName', sc.sid AS 'F_SchoolId',
  1101. p.grade AS 'Grade', p.classhour AS 'classhour', curr.name AS 'LessonName', curr.number AS 'LessonNo',
  1102. s.year AS 'AcademicYearNo', s.number AS 'Semester' FROM tb_major_plan p
  1103. LEFT JOIN (
  1104. SELECT
  1105. t.teacher,
  1106. GROUP_CONCAT(DISTINCT c.`name`) AS 'EmpName',
  1107. GROUP_CONCAT(DISTINCT c.number) AS 'EmpNo'
  1108. FROM
  1109. tb_major_plan t
  1110. LEFT JOIN tb_teacher c ON FIND_IN_SET(c.id, t.teacher) > 0
  1111. GROUP BY
  1112. t.teacher
  1113. ) tt ON tt.teacher = p.teacher
  1114. LEFT JOIN tb_semester s ON s.id=p.`semester`
  1115. LEFT JOIN tb_school sc ON sc.`id`= p.`school`
  1116. LEFT JOIN tb_major m ON m.id=p.major
  1117. LEFT JOIN tb_course cour ON cour.id= p.`course`
  1118. LEFT JOIN tb_curriculum curr ON curr.id=cour.`course`
  1119. WHERE s.year = '" + entity.AcademicYearNo + "' AND s.number = '" + entity.Semester
  1120. + "' AND curr.`ification` ='1' ORDER BY p.`major` ");
  1121. var majorData = (await BaseRepository("CollegeMIS").FindListAsync<CdMajorEntity>()).ToList();
  1122. var lessonData = (await BaseRepository("CollegeMIS").FindListAsync<LessonInfoEntity>()).ToList();
  1123. if (TeachList.Count() > 0)
  1124. {
  1125. var openLessonPlanData = await BaseRepository("CollegeMIS").FindListAsync<OpenLessonPlanEntity>();
  1126. var now = DateTime.Now;
  1127. var insertDataList = new List<OpenLessonPlanEntity>();
  1128. foreach (var item in TeachList)
  1129. {
  1130. var TeachClass = item.EmpNo.Split(',');
  1131. foreach (var itemTeach in TeachClass)
  1132. {
  1133. var insertData = new OpenLessonPlanEntity()
  1134. {
  1135. TeachNo = itemTeach,
  1136. MakeDate = now,
  1137. AcademicYearNo = item.AcademicYearNo,
  1138. Semester = item.Semester,
  1139. DeptNo = majorData.FirstOrDefault(m => m.MajorNo ==item.MajorNo)?.DeptNo,
  1140. MajorNo = item.MajorNo,
  1141. LessonNo = item.LessonNo,
  1142. LessonName = item.LessonName,
  1143. PartCode = "",
  1144. Grade = item.Grade,
  1145. LessonSortNo = "1",
  1146. LessonSortDetailNo = lessonData
  1147. .FirstOrDefault(m => m.LessonNo == item.LessonSortDetailNo)?.LessonSortDetailNo,
  1148. StartWeek = item.StartWeek,
  1149. EndWeek = item.EndWeek,
  1150. WeekLessonHour = item.ClassHour,
  1151. CheckStyleNo = "1",
  1152. ScoreRecordStyleNo = "1",
  1153. TeachDeptNo = majorData.FirstOrDefault(m => m.MajorNo == item.MajorNo)?.DeptNo,
  1154. StudyScore = 0,
  1155. AmendDate = now,
  1156. ClassroomType = 1,
  1157. ClassroomPracticeType = 99,
  1158. CheckMarkDept = "1",
  1159. CheckMark = "1",
  1160. TestMark = 0,
  1161. F_SchoolId = item.F_SchoolId,
  1162. State = 0
  1163. };
  1164. if (openLessonPlanData.Count(m => m.AcademicYearNo == insertData.AcademicYearNo &&
  1165. m.Semester == insertData.Semester &&
  1166. m.MajorNo == insertData.MajorNo &&
  1167. m.LessonNo == insertData.LessonNo &&
  1168. m.Grade == insertData.Grade &&
  1169. m.LessonSortNo == insertData.LessonSortNo &&
  1170. m.LessonName == insertData.LessonName &&
  1171. m.F_SchoolId == insertData.F_SchoolId) == 0 &&
  1172. insertDataList.Count(m => m.AcademicYearNo == insertData.AcademicYearNo &&
  1173. m.Semester == insertData.Semester &&
  1174. m.MajorNo == insertData.MajorNo &&
  1175. m.LessonNo == insertData.LessonNo &&
  1176. m.Grade == insertData.Grade &&
  1177. m.LessonSortNo == insertData.LessonSortNo &&
  1178. m.LessonName == insertData.LessonName &&
  1179. m.F_SchoolId == insertData.F_SchoolId) == 0)
  1180. {
  1181. insertDataList.Add(insertData);
  1182. }
  1183. }
  1184. }
  1185. await BaseRepository("CollegeMIS").InsertAsync(insertDataList);
  1186. }
  1187. #region 学生选课数据
  1188. var TeachClassData = (await BaseRepository("CollegeMIS").FindListAsync<TeachClassEntity>(@"SELECT *
  1189. FROM TeachClass
  1190. WHERE (AcademicYearNo = '" + entity.AcademicYearNo + "') and semester='" + entity.Semester + "' and F_SchoolId='" + entity.F_SchoolId + "' ")).ToList();
  1191. var stuinfobasicData = (await BaseRepository("CollegeMIS").FindListAsync<StuInfoBasicEntity>()).ToList();
  1192. var stuSelectLessonListEntityData = (await BaseRepository("CollegeMIS").FindListAsync<StuSelectLessonListEntity>()).ToList();
  1193. var insertStuSelectLessonListDataList = new List<StuSelectLessonListEntity>();
  1194. if (TeachClassData.Any())
  1195. {
  1196. foreach (var itemteachclass in TeachClassData)
  1197. {
  1198. var classstulist = stuinfobasicData.Where(m => m.ClassNo == itemteachclass.TeachClassNo)
  1199. .ToList();
  1200. foreach (var stu in classstulist)
  1201. {
  1202. var insertDatastuselect = new StuSelectLessonListEntity();
  1203. insertDatastuselect.NoticeBookNo = stu.NoticeNo;
  1204. insertDatastuselect.StuNo = stu.StuNo;
  1205. insertDatastuselect.DeptNo = stu.DeptNo;
  1206. insertDatastuselect.ClassNo = stu.ClassNo;
  1207. insertDatastuselect.MajorNo = stu.MajorNo;
  1208. insertDatastuselect.StuName = stu.StuName;
  1209. insertDatastuselect.GenderNo = stu.GenderNo != null && stu.GenderNo.Value ? "1" : "0";
  1210. insertDatastuselect.AcademicYearNo = itemteachclass.AcademicYearNo;
  1211. insertDatastuselect.Semester = itemteachclass.Semester;
  1212. insertDatastuselect.OpenLessonDeptNo = stu.DeptNo;
  1213. insertDatastuselect.OpenLessonMajorNo = stu.MajorNo;
  1214. insertDatastuselect.LessonNo = itemteachclass.LessonNo;
  1215. insertDatastuselect.LessonName = lessonData.FirstOrDefault(m => m.LessonNo == itemteachclass.LessonNo)?.LessonName;
  1216. insertDatastuselect.PartCode = "";
  1217. insertDatastuselect.OrdinaryScoreScale = 1;
  1218. insertDatastuselect.TermInScoreScale = 1;
  1219. insertDatastuselect.TermEndScoreScale = 1;
  1220. insertDatastuselect.OtherScoreScale = 1;
  1221. insertDatastuselect.TeachClassNo = stu.ClassNo;
  1222. insertDatastuselect.LessonSortNo = "1";
  1223. insertDatastuselect.StuSortNo = "02";
  1224. insertDatastuselect.Grade = stu.Grade;
  1225. insertDatastuselect.StudyScore = 0;
  1226. insertDatastuselect.TotalStudyHour = 0;
  1227. insertDatastuselect.IsInEffect = "1";
  1228. insertDatastuselect.EmpNo = itemteachclass.EmpNo;
  1229. insertDatastuselect.IsPitchOn = "1";
  1230. insertDatastuselect.CheckMark = "1";
  1231. insertDatastuselect.InsertTime = DateTime.Now;
  1232. insertDatastuselect.F_SchoolId = itemteachclass.F_SchoolId;
  1233. if (stuSelectLessonListEntityData.Count(m => m.StuNo == insertDatastuselect.StuNo &&
  1234. m.AcademicYearNo == insertDatastuselect.AcademicYearNo &&
  1235. m.Semester == insertDatastuselect.Semester &&
  1236. m.DeptNo == insertDatastuselect.DeptNo &&
  1237. m.MajorNo == insertDatastuselect.MajorNo &&
  1238. m.LessonNo == insertDatastuselect.LessonNo &&
  1239. m.Grade == insertDatastuselect.Grade &&
  1240. m.OpenLessonDeptNo == insertDatastuselect.OpenLessonDeptNo &&
  1241. m.OpenLessonMajorNo == insertDatastuselect.OpenLessonMajorNo &&
  1242. m.EmpNo == insertDatastuselect.EmpNo && m.ClassNo == insertDatastuselect.ClassNo &&
  1243. m.F_SchoolId == insertDatastuselect.F_SchoolId) == 0 &&
  1244. insertStuSelectLessonListDataList.Count(m => m.StuNo == insertDatastuselect.StuNo &&
  1245. m.AcademicYearNo == insertDatastuselect.AcademicYearNo &&
  1246. m.Semester == insertDatastuselect.Semester &&
  1247. m.DeptNo == insertDatastuselect.DeptNo &&
  1248. m.MajorNo == insertDatastuselect.MajorNo &&
  1249. m.LessonNo == insertDatastuselect.LessonNo &&
  1250. m.Grade == insertDatastuselect.Grade &&
  1251. m.OpenLessonDeptNo == insertDatastuselect.OpenLessonDeptNo &&
  1252. m.OpenLessonMajorNo == insertDatastuselect.OpenLessonMajorNo &&
  1253. m.EmpNo == insertDatastuselect.EmpNo && m.ClassNo == insertDatastuselect.ClassNo &&
  1254. m.F_SchoolId == insertDatastuselect.F_SchoolId) == 0)
  1255. {
  1256. insertStuSelectLessonListDataList.Add(insertDatastuselect);
  1257. }
  1258. }
  1259. }
  1260. await BaseRepository("CollegeMIS").InsertAsync(insertStuSelectLessonListDataList);
  1261. }
  1262. #endregion
  1263. }
  1264. catch (Exception ex)
  1265. {
  1266. if (ex is ExceptionEx)
  1267. {
  1268. throw;
  1269. }
  1270. else
  1271. {
  1272. throw ExceptionEx.ThrowServiceException(ex);
  1273. }
  1274. }
  1275. return true;
  1276. }
  1277. /// <summary>
  1278. /// 按条件清空排课数据
  1279. /// </summary>
  1280. /// <returns></returns>
  1281. public async Task<bool> AsyncModifyArrangeLessonDataByCondition(ArrangeLessonTermEntity entity)
  1282. {
  1283. bool result = false;
  1284. try
  1285. {
  1286. HttpContent httpContent = new StringContent("{\"school\":\"" + entity.F_SchoolId + "\",\"year\":\"" + entity.AcademicYearNo + "\",\"number\":\"" + entity.Semester + "\"}");
  1287. httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
  1288. string apiData = await Client.PostAsync(Config.GetValue("ModifyArrangeLessonAPI"), httpContent).Result.Content.ReadAsStringAsync();
  1289. if (!string.IsNullOrEmpty(apiData))
  1290. {
  1291. var data = JsonConvert.DeserializeObject<Root>(apiData);
  1292. if (data.success)
  1293. {
  1294. var executeResult = await BaseRepository("CollegeMIS").ExecuteAsyncBySql(
  1295. $"delete from ArrangeLessonTerm where F_SchoolId='{entity.F_SchoolId}' and AcademicYearNo='{entity.AcademicYearNo}' and Semester='{entity.Semester}' ");
  1296. await BaseRepository("CollegeMIS").ExecuteAsyncBySql(
  1297. $"delete from TeachClass where F_SchoolId='{entity.F_SchoolId}' and AcademicYearNo='{entity.AcademicYearNo}' and Semester='{entity.Semester}' ");
  1298. await BaseRepository("CollegeMIS").ExecuteAsyncBySql(
  1299. $"delete from OpenLessonPlan where F_SchoolId='{entity.F_SchoolId}' and AcademicYearNo='{entity.AcademicYearNo}' and Semester='{entity.Semester}' ");
  1300. await BaseRepository("CollegeMIS").ExecuteAsyncBySql(
  1301. $"delete from StuSelectLessonList where F_SchoolId='{entity.F_SchoolId}' and AcademicYearNo='{entity.AcademicYearNo}' and Semester='{entity.Semester}' ");
  1302. if (executeResult > 0)
  1303. {
  1304. result = true;
  1305. }
  1306. }
  1307. }
  1308. }
  1309. catch (Exception ex)
  1310. {
  1311. if (ex is ExceptionEx)
  1312. {
  1313. throw;
  1314. }
  1315. else
  1316. {
  1317. throw ExceptionEx.ThrowServiceException(ex);
  1318. }
  1319. }
  1320. return result;
  1321. }
  1322. /// <summary>
  1323. /// 课程表
  1324. /// </summary>
  1325. /// <param name="userAccount">账号</param>
  1326. /// <param name="userType">用户类型 学生 教师</param>
  1327. /// <param name="startDate">查询开始时间</param>
  1328. /// <param name="endDate">查询截止时间</param>
  1329. /// <returns></returns>
  1330. public IEnumerable<TimeTable> GetTimeTable(string userAccount, string userType, string startDate, string endDate)
  1331. {
  1332. var semesterAndYear = Common.GetSemesterAndYear(startDate);
  1333. var strAcademicYear = semesterAndYear.AcademicYearShort;
  1334. var strSemester = semesterAndYear.Semester;
  1335. string sql;
  1336. if (userType == "学生")
  1337. {
  1338. sql = @"SELECT
  1339. b.LessonNo,b.AcademicYearNo as AcademicYear,b.LessonName,b.LessonTime,b.LessonDate,b.Empname EmpName,b.EmpNo,c.ClassroomName,b.Semester,b.ClassroomNo as ClassRoomNo,b.LessonSortNo,d.ClassName,e.EnName from StuSelectLessonList a
  1340. left join ArrangeLessonTerm b on b.TeachClassNo=RTRIM(a.LessonName) + RTRIM(a.PartCode) + RTRIM(a.TeachClassNo)
  1341. left join ClassroomInfo c on c.ClassroomNo=b.classroomNo
  1342. left join ClassInfo d on replace(b.TeachClassNo,b.LessonName,'')=d.ClassNo
  1343. left join LessonInfo e on a.LessonNo=e.LessonNo
  1344. where a.StuNo=@userAccount and a.AcademicYearNo=@strAcademicYear and a.Semester=@strSemester
  1345. and b.AcademicYearNo=@strAcademicYear and b.Semester=@strSemester
  1346. and b.LessonDate>=@startDate and b.LessonDate<=@endDate and b.CheckMark=1";
  1347. }
  1348. else
  1349. {
  1350. sql = @"select b.AcademicYearNo as AcademicYear,b.LessonNo,e.EnName,b.LessonName,b.LessonTime,b.LessonDate,b.EmpNo,b.Empname EmpName,replace(b.TeachClassNo,b.LessonName,'') TeachClassNo, c.ClassroomName,b.Semester,b.ClassroomNo as ClassRoomNo,b.LessonSortNo,d.ClassName from ArrangeLessonTerm b
  1351. left join ClassroomInfo c on c.ClassroomNo=b.classroomNo
  1352. left join ClassInfo d on replace(b.TeachClassNo,b.LessonName,'')=d.ClassNo
  1353. left join LessonInfo e on b.LessonNo=e.LessonNo
  1354. where b.EmpNo=@userAccount and b.AcademicYearNo=@strAcademicYear and b.Semester=@strSemester
  1355. and b.LessonDate>=@startDate and b.LessonDate<=@endDate and b.CheckMark=1";
  1356. }
  1357. try
  1358. {
  1359. var result = BaseRepository("CollegeMIS").FindList<TimeTable>(sql, new { userAccount, startDate, endDate, strAcademicYear, strSemester });
  1360. return result;
  1361. }
  1362. catch (Exception ex)
  1363. {
  1364. if (ex is ExceptionEx)
  1365. {
  1366. throw;
  1367. }
  1368. else
  1369. {
  1370. throw ExceptionEx.ThrowServiceException(ex);
  1371. }
  1372. }
  1373. }
  1374. public IEnumerable<CdMajorEntity> GetMajors(string academicYearNo, string semester)
  1375. {
  1376. try
  1377. {
  1378. //var data = BaseRepository("CollegeMIS").FindList<CdMajorEntity>(m => m.CheckMark == true);
  1379. //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false;
  1380. var aa = this.BaseRepository("CollegeMIS").FindEntity<ArrangeLessonSyncEntity>(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "3");
  1381. if (aa == null)
  1382. {
  1383. this.BaseRepository("CollegeMIS").ExecuteBySql("update CdMajor set SyncFlag='false' ");
  1384. }
  1385. //数据
  1386. var db = BaseRepository("CollegeMIS");
  1387. db.BeginTrans();
  1388. var data = db.FindList<CdMajorEntity>("select * from CdMajor where CheckMark=1 and ID not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1389. DateTime syncdate = DateTime.Now;
  1390. foreach (var item in data.Select(m => m.ID))
  1391. {
  1392. ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity();
  1393. alsEntity.Create();
  1394. alsEntity.AcademicYearNo = academicYearNo;
  1395. alsEntity.Semester = semester;
  1396. alsEntity.STypeId = "3";
  1397. alsEntity.SDate = syncdate;
  1398. alsEntity.STableId = item;
  1399. db.Insert(alsEntity);
  1400. }
  1401. db.Commit();
  1402. return data;
  1403. }
  1404. catch (Exception e)
  1405. {
  1406. Console.WriteLine(e);
  1407. throw;
  1408. }
  1409. }
  1410. public IEnumerable<CdMajorEntity> GetMajorsNotRecord(string academicYearNo, string semester)
  1411. {
  1412. try
  1413. {
  1414. //var data = BaseRepository("CollegeMIS").FindList<CdMajorEntity>(m => m.CheckMark == true);
  1415. var db = BaseRepository("CollegeMIS");
  1416. db.BeginTrans();
  1417. var data = db.FindList<CdMajorEntity>("select * from CdMajor where CheckMark=1 and ID not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1418. db.Commit();
  1419. return data;
  1420. }
  1421. catch (Exception e)
  1422. {
  1423. Console.WriteLine(e);
  1424. throw;
  1425. }
  1426. }
  1427. public IEnumerable<ClassroomInfoEntity> GetClassrooms(string academicYearNo, string semester)
  1428. {
  1429. try
  1430. {
  1431. //var data = BaseRepository("CollegeMIS").FindList<ClassroomInfoEntity>(m => m.CheckMark == true);
  1432. //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false;
  1433. var aa = this.BaseRepository("CollegeMIS").FindEntity<ArrangeLessonSyncEntity>(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "6");
  1434. if (aa == null)
  1435. {
  1436. this.BaseRepository("CollegeMIS").ExecuteBySql("update ClassroomInfo set SyncFlag='false' ");
  1437. }
  1438. //数据
  1439. var db = BaseRepository("CollegeMIS");
  1440. db.BeginTrans();
  1441. var data = db.FindList<ClassroomInfoEntity>("select * from ClassroomInfo where CheckMark=1 and ClassroomId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1442. DateTime syncdate = DateTime.Now;
  1443. foreach (var item in data.Select(m => m.ClassroomId))
  1444. {
  1445. ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity();
  1446. alsEntity.Create();
  1447. alsEntity.AcademicYearNo = academicYearNo;
  1448. alsEntity.Semester = semester;
  1449. alsEntity.STypeId = "6";
  1450. alsEntity.SDate = syncdate;
  1451. alsEntity.STableId = item;
  1452. db.Insert(alsEntity);
  1453. }
  1454. db.Commit();
  1455. return data;
  1456. }
  1457. catch (Exception e)
  1458. {
  1459. Console.WriteLine(e);
  1460. throw;
  1461. }
  1462. }
  1463. public IEnumerable<ClassroomInfoEntity> GetClassroomsNotRecord(string academicYearNo, string semester)
  1464. {
  1465. try
  1466. {
  1467. //var data = BaseRepository("CollegeMIS").FindList<ClassroomInfoEntity>(m => m.CheckMark == true);
  1468. var db = BaseRepository("CollegeMIS");
  1469. db.BeginTrans();
  1470. var data = db.FindList<ClassroomInfoEntity>("select * from ClassroomInfo where CheckMark=1 and ClassroomId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1471. db.Commit();
  1472. return data;
  1473. }
  1474. catch (Exception e)
  1475. {
  1476. Console.WriteLine(e);
  1477. throw;
  1478. }
  1479. }
  1480. public IEnumerable<CdClassTypeEntity> GetClassType()
  1481. {
  1482. try
  1483. {
  1484. var data = BaseRepository("CollegeMIS").FindList<CdClassTypeEntity>();
  1485. return data;
  1486. }
  1487. catch (Exception e)
  1488. {
  1489. Console.WriteLine(e);
  1490. throw;
  1491. }
  1492. }
  1493. public IEnumerable<LessonInfoEntity> GetLessons(string academicYearNo, string semester)
  1494. {
  1495. try
  1496. {
  1497. //var data = BaseRepository("CollegeMIS").FindList<LessonInfoEntity>(m => m.CheckMark == true);
  1498. //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false;
  1499. var aa = this.BaseRepository("CollegeMIS").FindEntity<ArrangeLessonSyncEntity>(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "5");
  1500. if (aa == null)
  1501. {
  1502. this.BaseRepository("CollegeMIS").ExecuteBySql("update LessonInfo set SyncFlag='false' ");
  1503. }
  1504. //数据
  1505. var db = BaseRepository("CollegeMIS");
  1506. db.BeginTrans();
  1507. var data = db.FindList<LessonInfoEntity>("select * from LessonInfo where CheckMark=1 and LessonId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1508. DateTime syncdate = DateTime.Now;
  1509. foreach (var item in data.Select(m => m.LessonId))
  1510. {
  1511. ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity();
  1512. alsEntity.Create();
  1513. alsEntity.AcademicYearNo = academicYearNo;
  1514. alsEntity.Semester = semester;
  1515. alsEntity.STypeId = "5";
  1516. alsEntity.SDate = syncdate;
  1517. alsEntity.STableId = item;
  1518. db.Insert(alsEntity);
  1519. }
  1520. db.Commit();
  1521. return data;
  1522. }
  1523. catch (Exception e)
  1524. {
  1525. Console.WriteLine(e);
  1526. throw;
  1527. }
  1528. }
  1529. public IEnumerable<LessonInfoEntity> GetLessonsNotRecord(string academicYearNo, string semester)
  1530. {
  1531. try
  1532. {
  1533. //var data = BaseRepository("CollegeMIS").FindList<LessonInfoEntity>(m => m.CheckMark == true);
  1534. var db = BaseRepository("CollegeMIS");
  1535. db.BeginTrans();
  1536. var data = db.FindList<LessonInfoEntity>("select * from LessonInfo where CheckMark=1 and LessonId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1537. db.Commit();
  1538. return data;
  1539. }
  1540. catch (Exception e)
  1541. {
  1542. Console.WriteLine(e);
  1543. throw;
  1544. }
  1545. }
  1546. public IEnumerable<CdLessonSortDetailEntity> GetLessonSortDetails()
  1547. {
  1548. try
  1549. {
  1550. var data = BaseRepository("CollegeMIS").FindList<CdLessonSortDetailEntity>();
  1551. return data;
  1552. }
  1553. catch (Exception e)
  1554. {
  1555. Console.WriteLine(e);
  1556. throw;
  1557. }
  1558. }
  1559. public IEnumerable<CdLessonSortEntity> GetLessonSorts()
  1560. {
  1561. try
  1562. {
  1563. var data = BaseRepository("CollegeMIS").FindList<CdLessonSortEntity>();
  1564. return data;
  1565. }
  1566. catch (Exception e)
  1567. {
  1568. Console.WriteLine(e);
  1569. throw;
  1570. }
  1571. }
  1572. public IEnumerable<EmpInfoEntity> GetTeachers(string academicYearNo, string semester)
  1573. {
  1574. try
  1575. {
  1576. //var data = BaseRepository("CollegeMIS").FindList<EmpInfoEntity>("select a.*,b.F_Password,b.F_Secretkey from dbo.EmpInfo a left join adms7ultimate2.dbo.LR_Base_User b on a.EmpNo=b.F_EnCode where a.CheckMark=1");
  1577. //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false;
  1578. var aa = this.BaseRepository("CollegeMIS").FindEntity<ArrangeLessonSyncEntity>(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "7");
  1579. if (aa == null)
  1580. {
  1581. this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set SyncFlag='false' ");
  1582. }
  1583. //数据
  1584. var db = BaseRepository("CollegeMIS");
  1585. var dbbase = BaseRepository();
  1586. db.BeginTrans();
  1587. var data = db.FindList<EmpInfoEntity>("select a.*,b.F_Password,b.F_Secretkey from dbo.EmpInfo a left join " + dbbase.getDbConnection().Database + ".dbo.LR_Base_User b on a.EmpNo=b.F_EnCode where a.CheckMark=1 and a.ishaslesson=1 and b.F_DeleteMark=0 and a.EmpId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1588. DateTime syncdate = DateTime.Now;
  1589. foreach (var item in data.Select(m => m.EmpId))
  1590. {
  1591. ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity();
  1592. alsEntity.Create();
  1593. alsEntity.AcademicYearNo = academicYearNo;
  1594. alsEntity.Semester = semester;
  1595. alsEntity.STypeId = "7";
  1596. alsEntity.SDate = syncdate;
  1597. alsEntity.STableId = item;
  1598. db.Insert(alsEntity);
  1599. }
  1600. db.Commit();
  1601. return data;
  1602. }
  1603. catch (Exception e)
  1604. {
  1605. Console.WriteLine(e);
  1606. throw;
  1607. }
  1608. }
  1609. public IEnumerable<EmpInfoEntity> GetTeachersNotRecord(string academicYearNo, string semester)
  1610. {
  1611. try
  1612. {
  1613. //var data = BaseRepository("CollegeMIS").FindList<EmpInfoEntity>("select a.*,b.F_Password,b.F_Secretkey from dbo.EmpInfo a left join adms7ultimate2.dbo.LR_Base_User b on a.EmpNo=b.F_EnCode where a.CheckMark=1");
  1614. var db = BaseRepository("CollegeMIS");
  1615. var dbbase = BaseRepository();
  1616. db.BeginTrans();
  1617. var data = db.FindList<EmpInfoEntity>("select a.*,b.F_Password,b.F_Secretkey from dbo.EmpInfo a left join " + dbbase.getDbConnection().Database + ".dbo.LR_Base_User b on a.EmpNo=b.F_EnCode where a.CheckMark=1 and a.ishaslesson=1 and b.F_DeleteMark=0 and a.EmpId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1618. db.Commit();
  1619. return data;
  1620. }
  1621. catch (Exception e)
  1622. {
  1623. Console.WriteLine(e);
  1624. throw;
  1625. }
  1626. }
  1627. public IEnumerable<ClassInfoEntity> GetClasses(string academicYearNo, string semester)
  1628. {
  1629. try
  1630. {
  1631. //var data = BaseRepository("CollegeMIS").FindList<ClassInfoEntity>(m => m.CheckMark == true);
  1632. //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false;
  1633. var aa = this.BaseRepository("CollegeMIS").FindEntity<ArrangeLessonSyncEntity>(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "4");
  1634. if (aa == null)
  1635. {
  1636. this.BaseRepository("CollegeMIS").ExecuteBySql("update ClassInfo set SyncFlag='false' ");
  1637. }
  1638. //数据
  1639. var db = BaseRepository("CollegeMIS");
  1640. db.BeginTrans();
  1641. var data = db.FindList<ClassInfoEntity>("select * from ClassInfo where CheckMark=1 and ClassId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1642. DateTime syncdate = DateTime.Now;
  1643. foreach (var item in data.Select(m => m.ClassId))
  1644. {
  1645. ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity();
  1646. alsEntity.Create();
  1647. alsEntity.AcademicYearNo = academicYearNo;
  1648. alsEntity.Semester = semester;
  1649. alsEntity.STypeId = "4";
  1650. alsEntity.SDate = syncdate;
  1651. alsEntity.STableId = item;
  1652. db.Insert(alsEntity);
  1653. }
  1654. db.Commit();
  1655. return data;
  1656. }
  1657. catch (Exception e)
  1658. {
  1659. Console.WriteLine(e);
  1660. throw;
  1661. }
  1662. }
  1663. public IEnumerable<ClassInfoEntity> GetClassesNotRecord(string academicYearNo, string semester)
  1664. {
  1665. try
  1666. {
  1667. //var data = BaseRepository("CollegeMIS").FindList<ClassInfoEntity>(m => m.CheckMark == true);
  1668. var db = BaseRepository("CollegeMIS");
  1669. db.BeginTrans();
  1670. var data = db.FindList<ClassInfoEntity>("select * from ClassInfo where CheckMark=1 and ClassId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1671. db.Commit();
  1672. return data;
  1673. }
  1674. catch (Exception e)
  1675. {
  1676. Console.WriteLine(e);
  1677. throw;
  1678. }
  1679. }
  1680. public IEnumerable<StuInfoBasicEntity> GetStus(string academicYearNo, string semester)
  1681. {
  1682. try
  1683. {
  1684. //var data = BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(@"select a.StuId,a.StuNo,a.DeptNo,a.MajorNo,a.Grade,a.ClassNo,a.StuName,a.GenderNo,a.Birthday,b.F_Password,b.F_Secretkey from dbo.StuInfoBasic a left join adms7ultimate2.dbo.LR_Base_User b on a.StuNo=b.F_EnCode where a.CheckMark='1'");
  1685. //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false;
  1686. var aa = this.BaseRepository("CollegeMIS").FindEntity<ArrangeLessonSyncEntity>(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "8");
  1687. if (aa == null)
  1688. {
  1689. this.BaseRepository("CollegeMIS").ExecuteBySql("update StuInfoBasic set SyncFlag='false' ");
  1690. }
  1691. //数据
  1692. var db = BaseRepository("CollegeMIS");
  1693. var dbbase = BaseRepository();
  1694. db.BeginTrans();
  1695. var data = db.FindList<StuInfoBasicEntity>("select a.*,b.F_Password,b.F_Secretkey from dbo.StuInfoBasic a left join " + dbbase.getDbConnection().Database + ".dbo.LR_Base_User b on a.StuNo=b.F_EnCode where a.CheckMark=1 and a.StuId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1696. DateTime syncdate = DateTime.Now;
  1697. foreach (var item in data.Select(m => m.StuId))
  1698. {
  1699. ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity();
  1700. alsEntity.Create();
  1701. alsEntity.AcademicYearNo = academicYearNo;
  1702. alsEntity.Semester = semester;
  1703. alsEntity.STypeId = "8";
  1704. alsEntity.SDate = syncdate;
  1705. alsEntity.STableId = item;
  1706. db.Insert(alsEntity);
  1707. }
  1708. db.Commit();
  1709. return data;
  1710. }
  1711. catch (Exception e)
  1712. {
  1713. Console.WriteLine(e);
  1714. throw;
  1715. }
  1716. }
  1717. public IEnumerable<StuInfoBasicEntity> GetStusNotRecord(string academicYearNo, string semester)
  1718. {
  1719. try
  1720. {
  1721. //var data = BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(@"select a.StuId,a.StuNo,a.DeptNo,a.MajorNo,a.Grade,a.ClassNo,a.StuName,a.GenderNo,a.Birthday,b.F_Password,b.F_Secretkey from dbo.StuInfoBasic a left join adms7ultimate2.dbo.LR_Base_User b on a.StuNo=b.F_EnCode where a.CheckMark='1'");
  1722. //数据
  1723. var db = BaseRepository("CollegeMIS");
  1724. var dbbase = BaseRepository();
  1725. db.BeginTrans();
  1726. var data = db.FindList<StuInfoBasicEntity>("select a.*,b.F_Password,b.F_Secretkey from dbo.StuInfoBasic a left join " + dbbase.getDbConnection().Database + ".dbo.LR_Base_User b on a.StuNo=b.F_EnCode where a.CheckMark=1 and a.StuId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1727. db.Commit();
  1728. return data;
  1729. }
  1730. catch (Exception e)
  1731. {
  1732. Console.WriteLine(e);
  1733. throw;
  1734. }
  1735. }
  1736. public IEnumerable<StuInfoBasicEntity> GetStudents()
  1737. {
  1738. try
  1739. {
  1740. var data = BaseRepository("CollegeMIS").FindList<StuInfoBasicEntity>(@"select a.StuId,a.StuNo,a.DeptNo,a.MajorNo,a.Grade,a.ClassNo,
  1741. a.StuName,GenderNo,a.Birthday,b.F_Password,b.F_Secretkey from
  1742. dbo.StuInfoBasic a left join adms7ultimate2.dbo.LR_Base_User b on a.StuNo=b.F_EnCode where a.CheckMark='1'");
  1743. return data;
  1744. }
  1745. catch (Exception e)
  1746. {
  1747. Console.WriteLine(e);
  1748. throw;
  1749. }
  1750. }
  1751. public IEnumerable<TeachClassEntity> GetClassLessons()
  1752. {
  1753. try
  1754. {
  1755. var data = BaseRepository("CollegeMIS").FindList<TeachClassEntity>(@"select AcademicYearNo,Semester,DeptNo,MajorNo,LessonNo,TeachClassNo,EmpNo,LessonSortNo from TeachClass
  1756. group by AcademicYearNo,Semester,DeptNo,MajorNo,LessonNo,TeachClassNo,EmpNo,LessonSortNo");
  1757. return data;
  1758. }
  1759. catch (Exception e)
  1760. {
  1761. Console.WriteLine(e);
  1762. throw;
  1763. }
  1764. }
  1765. /// <summary>
  1766. /// 课程表【教务】
  1767. /// </summary>
  1768. /// <param name="startDate">查询开始时间</param>
  1769. /// <param name="endDate">查询截止时间</param>
  1770. /// <param name="classNo">班级编号</param>
  1771. /// <param name="empNo">教师编号</param>
  1772. /// <returns></returns>
  1773. public IEnumerable<TimeTable> GetTimeTableInEducation(string startDate, string endDate, string classNo, string empNo, string schoolId)
  1774. {
  1775. var semesterAndYear = Common.GetSemesterAndYear(startDate);
  1776. var strAcademicYear = semesterAndYear.AcademicYearShort;
  1777. var strSemester = semesterAndYear.Semester;
  1778. string sql = @"select b.ALTId,b.F_SchoolId,b.DeptNo,b.MajorNo,b.AcademicYearNo as AcademicYear,b.LessonNo,b.LessonName,b.LessonTime,b.LessonDate,b.EmpNo,b.Empname EmpName,replace (b.TeachClassNo,b.LessonName,'') TeachClassNo, c.ClassroomName,b.Semester,b.ClassroomNo as ClassRoomNo,b.LessonSortNo,d.ClassName
  1779. from ArrangeLessonTerm b
  1780. left join ClassroomInfo c on c.ClassroomNo=b.classroomNo
  1781. left join ClassInfo d on replace(b.TeachClassNo,b.LessonName,'')=d.ClassNo
  1782. where b.AcademicYearNo=@strAcademicYear and b.Semester=@strSemester
  1783. and b.LessonDate>=@startDate and b.LessonDate<=@endDate
  1784. and b.CheckMark=1";
  1785. try
  1786. {
  1787. var result = BaseRepository("CollegeMIS").FindList<TimeTable>(sql, new { startDate, endDate, strAcademicYear, strSemester });
  1788. if (!string.IsNullOrEmpty(classNo))
  1789. {
  1790. result = result.Where(x => x.TeachClassNo == classNo);
  1791. }
  1792. if (!string.IsNullOrEmpty(empNo))
  1793. {
  1794. result = result.Where(x => x.EmpNo == empNo);
  1795. }
  1796. if (!string.IsNullOrEmpty(schoolId))
  1797. {
  1798. result = result.Where(x => x.F_SchoolId == schoolId);
  1799. }
  1800. return result;
  1801. }
  1802. catch (Exception ex)
  1803. {
  1804. if (ex is ExceptionEx)
  1805. {
  1806. throw;
  1807. }
  1808. else
  1809. {
  1810. throw ExceptionEx.ThrowServiceException(ex);
  1811. }
  1812. }
  1813. }
  1814. /// <summary>
  1815. /// 课程表【教务】--班级下拉框信息
  1816. /// </summary>
  1817. /// <returns></returns>
  1818. public IEnumerable<SelectModel> GetClassData(string schoolId)
  1819. {
  1820. try
  1821. {
  1822. //前三年-后三年
  1823. var preYear = DateTime.Now.AddYears(-3).Year;
  1824. var nextYear = DateTime.Now.AddYears(3).Year;
  1825. var yearList = new List<string>();
  1826. for (int i = preYear; i <= nextYear; i++)
  1827. {
  1828. yearList.Add(string.Format("'{0}-{1}'", i.ToString().Substring(2), (i + 1).ToString().Substring(2)));
  1829. }
  1830. var yearListStr = string.Join(",", yearList.ToArray());
  1831. var strSql = new StringBuilder();
  1832. strSql.Append("select distinct REPLACE(a.TeachClassNo,a.LessonName,'') as value,c.ClassName as text from ");
  1833. strSql.Append("ArrangeLessonTerm a inner join ClassInfo c on REPLACE(a.TeachClassNo,a.LessonName,'')=c.ClassNo ");
  1834. strSql.Append("where a.AcademicYearNo in (" + yearListStr + ") ");
  1835. if (!string.IsNullOrEmpty(schoolId))
  1836. {
  1837. strSql.Append(" and a.F_SchoolId = '" + schoolId + "' ");
  1838. }
  1839. var result = this.BaseRepository("CollegeMIS").FindList<SelectModel>(strSql.ToString()).OrderBy(x => x.value);
  1840. return result;
  1841. }
  1842. catch (Exception ex)
  1843. {
  1844. if (ex is ExceptionEx)
  1845. {
  1846. throw;
  1847. }
  1848. else
  1849. {
  1850. throw ExceptionEx.ThrowServiceException(ex);
  1851. }
  1852. }
  1853. }
  1854. /// <summary>
  1855. /// 课程表【教务】--教师下拉框信息
  1856. /// </summary>
  1857. /// <param name="startDate"></param>
  1858. /// <returns></returns>
  1859. public IEnumerable<SelectModel> GetTeacherData(string schoolId)
  1860. {
  1861. try
  1862. {
  1863. //前三年-后三年
  1864. var preYear = DateTime.Now.AddYears(-3).Year;
  1865. var nextYear = DateTime.Now.AddYears(3).Year;
  1866. var yearList = new List<string>();
  1867. for (int i = preYear; i <= nextYear; i++)
  1868. {
  1869. yearList.Add(string.Format("{0}-{1}", i.ToString().Substring(2), (i + 1).ToString().Substring(2)));
  1870. }
  1871. var aa = new List<SelectModel>();
  1872. //必修课
  1873. var teacherData = this.BaseRepository("CollegeMIS").FindList<ArrangeLessonTermEntity>(x => yearList.Contains(x.AcademicYearNo));
  1874. if (!string.IsNullOrEmpty(schoolId))
  1875. {
  1876. teacherData = teacherData.Where(x => x.F_SchoolId == schoolId);
  1877. }
  1878. var teacherDataModel = teacherData.Select(x => new { x.EmpNo, x.EmpName }).Distinct().ToList()
  1879. .Select(x => new SelectModel()
  1880. {
  1881. text = x.EmpName,
  1882. value = x.EmpNo
  1883. });
  1884. aa.AddRange(teacherDataModel);
  1885. //选修课
  1886. var teacherData2 = this.BaseRepository("CollegeMIS").FindList<ArrangeLessonTermOfElectiveEntity>(x => yearList.Contains(x.AcademicYearNo));
  1887. if (!string.IsNullOrEmpty(schoolId))
  1888. {
  1889. teacherData2 = teacherData2.Where(x => x.F_SchoolId == schoolId);
  1890. }
  1891. var teacherDataModel2 = teacherData2.Select(x => new { x.EmpNo, x.EmpName }).Distinct().ToList()
  1892. .Select(x => new SelectModel()
  1893. {
  1894. text = x.EmpName,
  1895. value = x.EmpNo
  1896. });
  1897. aa.AddRange(teacherDataModel2);
  1898. var aaaa = aa.Select(x => new { x.text, x.value }).Distinct().ToList();
  1899. var aaaaa = aaaa.Select(x => new SelectModel()
  1900. {
  1901. text = x.text,
  1902. value = x.value
  1903. }).OrderBy(x => x.value);
  1904. return aaaaa;
  1905. }
  1906. catch (Exception ex)
  1907. {
  1908. if (ex is ExceptionEx)
  1909. {
  1910. throw;
  1911. }
  1912. else
  1913. {
  1914. throw ExceptionEx.ThrowServiceException(ex);
  1915. }
  1916. }
  1917. }
  1918. public IEnumerable<CdDeptEntity> GetDepts(string academicYearNo, string semester)
  1919. {
  1920. try
  1921. {
  1922. //var data = BaseRepository("CollegeMIS").FindList<CdDeptEntity>();
  1923. //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false;
  1924. var aa = this.BaseRepository("CollegeMIS").FindEntity<ArrangeLessonSyncEntity>(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "2");
  1925. if (aa == null)
  1926. {
  1927. this.BaseRepository("CollegeMIS").ExecuteBySql("update CdDept set SyncFlag='false' ");
  1928. }
  1929. //数据
  1930. var db = BaseRepository("CollegeMIS");
  1931. db.BeginTrans();
  1932. var data = db.FindList<CdDeptEntity>("select * from CdDept where DeptId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1933. DateTime syncdate = DateTime.Now;
  1934. foreach (var item in data.Select(m => m.DeptId))
  1935. {
  1936. ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity();
  1937. alsEntity.Create();
  1938. alsEntity.AcademicYearNo = academicYearNo;
  1939. alsEntity.Semester = semester;
  1940. alsEntity.STypeId = "2";
  1941. alsEntity.SDate = syncdate;
  1942. alsEntity.STableId = item;
  1943. db.Insert(alsEntity);
  1944. }
  1945. db.Commit();
  1946. return data;
  1947. }
  1948. catch (Exception e)
  1949. {
  1950. Console.WriteLine(e);
  1951. throw;
  1952. }
  1953. }
  1954. public IEnumerable<CdDeptEntity> GetDeptsNotRecord(string academicYearNo, string semester)
  1955. {
  1956. try
  1957. {
  1958. //var data = BaseRepository("CollegeMIS").FindList<CdDeptEntity>();
  1959. var db = BaseRepository("CollegeMIS");
  1960. db.BeginTrans();
  1961. var data = db.FindList<CdDeptEntity>("select * from CdDept where DeptId not in (select STableId from ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1962. db.Commit();
  1963. return data;
  1964. }
  1965. catch (Exception e)
  1966. {
  1967. Console.WriteLine(e);
  1968. throw;
  1969. }
  1970. }
  1971. public IEnumerable<CompanyEntity> GetSchools(string academicYearNo, string semester)
  1972. {
  1973. try
  1974. {
  1975. //var data = BaseRepository().FindList<CompanyEntity>();
  1976. //根据学年学期判断排课同步数据表中是否有数据:若有,说明该学年学期同步过;若没有,修改基础表,false;
  1977. var aa = this.BaseRepository("CollegeMIS").FindEntity<ArrangeLessonSyncEntity>(x => x.AcademicYearNo == academicYearNo && x.Semester == semester && x.STypeId == "1");
  1978. if (aa == null)
  1979. {
  1980. this.BaseRepository().ExecuteBySql("update LR_Base_Company set SyncFlag='false' ");
  1981. }
  1982. //数据
  1983. var dbCollegeMIS = BaseRepository("CollegeMIS");
  1984. dbCollegeMIS.BeginTrans();
  1985. var data = BaseRepository().FindList<CompanyEntity>("select * from LR_Base_Company where F_CompanyId not in (select STableId from " + dbCollegeMIS.getDbConnection().Database + ".dbo.ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  1986. DateTime syncdate = DateTime.Now;
  1987. foreach (var item in data.Select(m => m.F_CompanyId))
  1988. {
  1989. ArrangeLessonSyncEntity alsEntity = new ArrangeLessonSyncEntity();
  1990. alsEntity.Create();
  1991. alsEntity.AcademicYearNo = academicYearNo;
  1992. alsEntity.Semester = semester;
  1993. alsEntity.STypeId = "1";
  1994. alsEntity.SDate = syncdate;
  1995. alsEntity.STableId = item;
  1996. dbCollegeMIS.Insert(alsEntity);
  1997. }
  1998. dbCollegeMIS.Commit();
  1999. return data;
  2000. }
  2001. catch (Exception e)
  2002. {
  2003. Console.WriteLine(e);
  2004. throw;
  2005. }
  2006. }
  2007. public IEnumerable<CompanyEntity> GetSchoolsNotRecord(string academicYearNo, string semester)
  2008. {
  2009. try
  2010. {
  2011. //var data = BaseRepository().FindList<CompanyEntity>();
  2012. var dbCollegeMIS = BaseRepository("CollegeMIS");
  2013. dbCollegeMIS.BeginTrans();
  2014. var data = BaseRepository().FindList<CompanyEntity>("select * from LR_Base_Company where F_CompanyId not in (select STableId from " + dbCollegeMIS.getDbConnection().Database + ".dbo.ArrangeLessonSync where AcademicYearNo='" + academicYearNo + "' and Semester='" + semester + "' )");
  2015. dbCollegeMIS.Commit();
  2016. return data;
  2017. }
  2018. catch (Exception e)
  2019. {
  2020. Console.WriteLine(e);
  2021. throw;
  2022. }
  2023. }
  2024. public IEnumerable<CdLessonTypeEntity> GetLessonTypes()
  2025. {
  2026. try
  2027. {
  2028. var data = BaseRepository("CollegeMIS").FindList<CdLessonTypeEntity>();
  2029. return data;
  2030. }
  2031. catch (Exception e)
  2032. {
  2033. Console.WriteLine(e);
  2034. throw;
  2035. }
  2036. }
  2037. public IEnumerable<ArrangeLessonTermEntity> GetPageListForTeacherWorkload(Pagination paginationobj, string queryJson)
  2038. {
  2039. try
  2040. {
  2041. var queryParam = queryJson.ToJObject();
  2042. var strSql = new StringBuilder();
  2043. strSql.Append("select count(ALTId)as lessoncount,EmpName,EmpNo,1 as coefficient from ArrangeLessonTerm ");
  2044. strSql.Append(" WHERE 1=1 ");
  2045. strSql.Append($"and AcademicYearNo='{ queryParam["AcademicYearNo"]}' and Semester='{queryParam["Semester"]}' group by EmpName,EmpNo order by EmpNo ");
  2046. return this.BaseRepository("CollegeMIS").FindList<ArrangeLessonTermEntity>(strSql.ToString());
  2047. }
  2048. catch (Exception ex)
  2049. {
  2050. if (ex is ExceptionEx)
  2051. {
  2052. throw;
  2053. }
  2054. else
  2055. {
  2056. throw ExceptionEx.ThrowServiceException(ex);
  2057. }
  2058. }
  2059. }
  2060. /// <summary>
  2061. /// 教学工作量
  2062. /// </summary>
  2063. /// <param name="paginationobj"></param>
  2064. /// <param name="queryJson"></param>
  2065. /// <returns></returns>
  2066. public IEnumerable<ArrangeLessonTermEntity> GetPageListForTeacherWorkloadByEmpNo(Pagination paginationobj, string queryJson, string empNo)
  2067. {
  2068. try
  2069. {
  2070. var queryParam = queryJson.ToJObject();
  2071. var strSql = new StringBuilder();
  2072. strSql.Append("select count(t.ALTId) as lessoncount,t.LessonNo,t.LessonName,1 as coefficient from ArrangeLessonTerm t ");
  2073. strSql.Append($" WHERE 1=1 and t.EmpNo='{empNo}' ");
  2074. strSql.Append(" group by t.LessonNo,t.LessonName ");
  2075. return this.BaseRepository("CollegeMIS").FindList<ArrangeLessonTermEntity>(strSql.ToString());
  2076. }
  2077. catch (Exception ex)
  2078. {
  2079. if (ex is ExceptionEx)
  2080. {
  2081. throw;
  2082. }
  2083. else
  2084. {
  2085. throw ExceptionEx.ThrowServiceException(ex);
  2086. }
  2087. }
  2088. }
  2089. /// <summary>
  2090. /// 教学调度【教务】--课程下拉框信息
  2091. /// </summary>
  2092. /// <returns></returns>
  2093. public IEnumerable<SelectModel> GetLessonDataInTerm(string queryJson)
  2094. {
  2095. try
  2096. {
  2097. return this.BaseRepository("CollegeMIS").FindList<SelectModel>("select distinct t.LessonNo as value,t.LessonName as text from ArrangeLessonTerm t where 1=1 ");
  2098. }
  2099. catch (Exception ex)
  2100. {
  2101. if (ex is ExceptionEx)
  2102. {
  2103. throw;
  2104. }
  2105. else
  2106. {
  2107. throw ExceptionEx.ThrowServiceException(ex);
  2108. }
  2109. }
  2110. }
  2111. /// <summary>
  2112. /// 获取本学期开课计划
  2113. /// </summary>
  2114. /// <param name="academicYearNo"></param>
  2115. /// <param name="semester"></param>
  2116. /// <returns></returns>
  2117. public IEnumerable<TimeTable> GetAllClassLesson(string academicYearNo, string semester)
  2118. {
  2119. try
  2120. {
  2121. return this.BaseRepository("CollegeMIS").FindList<TimeTable>(@"select b.F_SchoolId,b.DeptNo,b.MajorNo,b.AcademicYearNo as AcademicYear,b.Semester,b.LessonNo,
  2122. b.LessonName, b.LessonTime, b.EmpNo, b.Empname EmpName, replace(b.TeachClassNo, b.LessonName, '') TeachClassNo, c.ClassroomName, b.ClassroomNo as ClassRoomNo, d.ClassName
  2123. from ArrangeLessonTerm b
  2124. left
  2125. join ClassroomInfo c on c.ClassroomNo = b.classroomNo
  2126. left
  2127. join ClassInfo d on replace(b.TeachClassNo, b.LessonName, '') = d.ClassNo
  2128. where b.AcademicYearNo = '" + academicYearNo + "' and b.Semester = '" + semester + @"'
  2129. and b.CheckMark = 1
  2130. group by b.F_SchoolId, b.DeptNo, b.MajorNo, b.AcademicYearNo, b.Semester, b.LessonNo, b.LessonName, b.LessonTime, b.EmpNo, b.Empname, b.TeachClassNo, c.ClassroomName, b.ClassroomNo, d.ClassName
  2131. ");
  2132. }
  2133. catch (Exception ex)
  2134. {
  2135. if (ex is ExceptionEx)
  2136. {
  2137. throw;
  2138. }
  2139. else
  2140. {
  2141. throw ExceptionEx.ThrowServiceException(ex);
  2142. }
  2143. }
  2144. }
  2145. /// <summary>
  2146. /// 按条件重置基础数据同步状态
  2147. /// </summary>
  2148. /// <param name="entity"></param>
  2149. /// <returns></returns>
  2150. public bool InitAsyncDataByCondition(ArrangeLessonTermEntity entity)
  2151. {
  2152. bool result = true;
  2153. var db = BaseRepository("CollegeMIS").BeginTrans();
  2154. try
  2155. {
  2156. foreach (var tablename in entity.SyncBasicTable.Split(','))
  2157. {
  2158. if (tablename == "CdDept")
  2159. {
  2160. //清空同步记录表
  2161. db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" +
  2162. entity.AcademicYearNo + "' and Semester='" + entity.Semester +
  2163. "' and STypeId='2'");
  2164. }
  2165. if (tablename == "CdMajor")
  2166. {
  2167. //清空同步记录表
  2168. db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" +
  2169. entity.AcademicYearNo + "' and Semester='" + entity.Semester +
  2170. "' and STypeId='3'");
  2171. }
  2172. if (tablename == "ClassInfo")
  2173. {
  2174. //清空同步记录表
  2175. db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" +
  2176. entity.AcademicYearNo + "' and Semester='" + entity.Semester +
  2177. "' and STypeId='4'");
  2178. }
  2179. if (tablename == "ClassroomInfo")
  2180. {
  2181. //清空同步记录表
  2182. db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" +
  2183. entity.AcademicYearNo + "' and Semester='" + entity.Semester +
  2184. "' and STypeId='6'");
  2185. }
  2186. if (tablename == "LessonInfo")
  2187. {
  2188. //清空同步记录表
  2189. db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" +
  2190. entity.AcademicYearNo + "' and Semester='" + entity.Semester +
  2191. "' and STypeId='5'");
  2192. }
  2193. if (tablename == "EmpInfo")
  2194. {
  2195. //清空同步记录表
  2196. db.ExecuteBySql("delete from ArrangeLessonSync where AcademicYearNo='" +
  2197. entity.AcademicYearNo + "' and Semester='" + entity.Semester +
  2198. "' and STypeId='7'");
  2199. }
  2200. //重置基础数据表
  2201. db.ExecuteBySql("update " + tablename + " set SyncFlag=0");
  2202. }
  2203. db.Commit();
  2204. }
  2205. catch (Exception e)
  2206. {
  2207. result = false;
  2208. }
  2209. return result;
  2210. }
  2211. }
  2212. #region MyRegion
  2213. #region 编辑课程表
  2214. public class UpdateLessonTermEntity
  2215. {
  2216. public string TeachClassNo { get; set; }
  2217. public string LessonNo { get; set; }
  2218. public string LessonName { get; set; }
  2219. public string EmpNo { get; set; }
  2220. public string EmpName { get; set; }
  2221. public string ClassroomNo { get; set; }
  2222. //周次
  2223. public string WeekTimeSelect { get; set; }
  2224. //星期
  2225. public int WeekSelect { get; set; }
  2226. //节次
  2227. public int NodeSelect { get; set; }
  2228. }
  2229. #endregion
  2230. public class TimeTable
  2231. {
  2232. public string ALTId { get; set; }
  2233. public DateTime LessonDate { get; set; }
  2234. public string EnName { get; set; }
  2235. public string AcademicYear { get; set; }
  2236. public string LessonNo { get; set; }
  2237. public string LessonName { get; set; }
  2238. public string LessonTime { get; set; }
  2239. public string EmpNo { get; set; }
  2240. public string EmpName { get; set; }
  2241. public string TeachClassNo { get; set; }
  2242. public string ClassroomName { get; set; }
  2243. public string Semester { get; set; }
  2244. public string ClassRoomNo { get; set; }
  2245. public string LessonSortNo { get; set; }
  2246. public string ClassName { get; set; }
  2247. public string OLPEId { get; set; }
  2248. /// <summary>
  2249. /// 排考结构Id
  2250. /// </summary>
  2251. public string StructureId { get; set; }
  2252. public string LeaveType { get; set; }
  2253. public string IsCheck { get; set; }
  2254. /// <summary>
  2255. /// 校区Id
  2256. /// </summary>
  2257. public string F_SchoolId { get; set; }
  2258. public string DeptNo { get; set; }
  2259. public string MajorNo { get; set; }
  2260. }
  2261. public class Common
  2262. {
  2263. /// <summary>
  2264. /// 根据当前时间获取学年和学期
  2265. /// </summary>
  2266. /// <returns></returns>
  2267. public static (string AcademicYearShort, string AcademicYearLong, string Semester) GetSemesterAndYear(string startDate = "")
  2268. {
  2269. string AcademicYearShort = "";//短格式学年度
  2270. string AcademicYearLong = "";//长格式学年度
  2271. string Semester = "";//学期
  2272. DateTime dateParam = DateTime.Now;
  2273. if (!string.IsNullOrEmpty(startDate))
  2274. {
  2275. dateParam = DateTime.Parse(startDate);
  2276. }
  2277. if (dateParam.Month >= 8)
  2278. {
  2279. AcademicYearShort = dateParam.Year.ToString().Substring(2, 2) + "-";
  2280. AcademicYearShort += (dateParam.Year + 1).ToString().Substring(2, 2);
  2281. AcademicYearLong = dateParam.Year.ToString() + "-";
  2282. AcademicYearLong += (dateParam.Year + 1).ToString();
  2283. Semester = "1";
  2284. }
  2285. else
  2286. {
  2287. if (dateParam.Month >= 2)//根据当前时间获取学年和学期,注意跨年份
  2288. {
  2289. AcademicYearShort = (dateParam.Year - 1).ToString().Substring(2, 2) + "-";
  2290. AcademicYearShort += dateParam.Year.ToString().Substring(2, 2);
  2291. AcademicYearLong = (dateParam.Year - 1).ToString() + "-";
  2292. AcademicYearLong += dateParam.Year.ToString();
  2293. Semester = "2";
  2294. }
  2295. else
  2296. {
  2297. AcademicYearShort = (dateParam.Year - 1).ToString().Substring(2, 2) + "-";
  2298. AcademicYearShort += dateParam.Year.ToString().Substring(2, 2);
  2299. AcademicYearLong = (dateParam.Year - 1).ToString() + "-";
  2300. AcademicYearLong += dateParam.Year.ToString();
  2301. Semester = "1";
  2302. }
  2303. }
  2304. return (AcademicYearShort, AcademicYearLong, Semester);
  2305. }
  2306. /// <summary>
  2307. /// 计算周一的时间
  2308. /// </summary>
  2309. /// <param name="someDate"></param>
  2310. /// <returns></returns>
  2311. public static DateTime CalculateFirstDateOfWeek(DateTime someDate)
  2312. {
  2313. int i = someDate.DayOfWeek - DayOfWeek.Monday;
  2314. if (i == -1) i = 6;// i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。
  2315. TimeSpan ts = new TimeSpan(i, 0, 0, 0);
  2316. return someDate.Subtract(ts);
  2317. }
  2318. /// <summary>
  2319. /// 计算周日的时间
  2320. /// </summary>
  2321. /// <param name="someDate"></param>
  2322. /// <returns></returns>
  2323. public static DateTime CalculateLastDateOfWeek(DateTime someDate)
  2324. {
  2325. int i = someDate.DayOfWeek - DayOfWeek.Sunday;
  2326. if (i != 0) i = 7 - i;// 因为枚举原因,Sunday排在最前,相减间隔要被7减。
  2327. TimeSpan ts = new TimeSpan(i, 0, 0, 0);
  2328. return someDate.Add(ts);
  2329. }
  2330. }
  2331. #region 当期学期排课数据同步
  2332. public class Paike
  2333. {
  2334. public string id { get; set; }
  2335. /// <summary>
  2336. /// 20180101
  2337. /// </summary>
  2338. public string clazzId { get; set; }
  2339. /// <summary>
  2340. /// 18学前教育01班
  2341. /// </summary>
  2342. public string clazzName { get; set; }
  2343. /// <summary>
  2344. /// XCMY0016
  2345. /// </summary>
  2346. public string teacherId { get; set; }
  2347. /// <summary>
  2348. /// 薛雅馨
  2349. /// </summary>
  2350. public string teacherName { get; set; }
  2351. /// <summary>
  2352. /// 0103
  2353. /// </summary>
  2354. public string curriculunId { get; set; }
  2355. /// <summary>
  2356. /// 大学体育(学前系)(合)
  2357. /// </summary>
  2358. public string curriculunName { get; set; }
  2359. public string curriculuntype { get; set; }
  2360. /// <summary>
  2361. /// 1
  2362. /// </summary>
  2363. public string section { get; set; }
  2364. /// <summary>
  2365. /// 1
  2366. /// </summary>
  2367. public string week { get; set; }
  2368. /// <summary>
  2369. /// 08:00-09:00
  2370. /// </summary>
  2371. public string curriculunTime { get; set; }
  2372. /// <summary>
  2373. /// 1
  2374. /// </summary>
  2375. public string kebiaoType { get; set; }
  2376. /// <summary>
  2377. /// 1102
  2378. /// </summary>
  2379. public string classRoomId { get; set; }
  2380. /// <summary>
  2381. /// 1102教室
  2382. /// </summary>
  2383. public string classRoomName { get; set; }
  2384. /// <summary>
  2385. /// 1
  2386. /// </summary>
  2387. public string rankSchedule { get; set; }
  2388. /// <summary>
  2389. /// 0
  2390. /// </summary>
  2391. public string periodTime { get; set; }
  2392. /// <summary>
  2393. /// [{"date":"2019-03-04 08:00-09:00","endTime":"2019-03-04 09:00:00","startTime":"2019-03-04 08:00:00"},{"date":"2019-03-18 08:00-09:00","endTime":"2019-03-18 09:00:00","startTime":"2019-03-18 08:00:00"},{"date":"2019-04-01 08:00-09:00","endTime":"2019-04-01 09:00:00","startTime":"2019-04-01 08:00:00"},{"date":"2019-04-15 08:00-09:00","endTime":"2019-04-15 09:00:00","startTime":"2019-04-15 08:00:00"},{"date":"2019-04-29 08:00-09:00","endTime":"2019-04-29 09:00:00","startTime":"2019-04-29 08:00:00"},{"date":"2019-05-13 08:00-09:00","endTime":"2019-05-13 09:00:00","startTime":"2019-05-13 08:00:00"},{"date":"2019-05-27 08:00-09:00","endTime":"2019-05-27 09:00:00","startTime":"2019-05-27 08:00:00"},{"date":"2019-06-10 08:00-09:00","endTime":"2019-06-10 09:00:00","startTime":"2019-06-10 08:00:00"},{"date":"2019-06-24 08:00-09:00","endTime":"2019-06-24 09:00:00","startTime":"2019-06-24 08:00:00"},{"date":"2019-07-08 08:00-09:00","endTime":"2019-07-08 09:00:00","startTime":"2019-07-08 08:00:00"}]
  2394. /// </summary>
  2395. public string timeText { get; set; }
  2396. /// <summary>
  2397. /// 2
  2398. /// </summary>
  2399. public string semester { get; set; }
  2400. /// <summary>
  2401. /// Flag
  2402. /// </summary>
  2403. public bool flag { get; set; }
  2404. public string year { get; set; }
  2405. public string number { get; set; }
  2406. public string curriculunNumber { get; set; }
  2407. public string teacherNumber { get; set; }
  2408. public string classRoomNumber { get; set; }
  2409. }
  2410. public class StuScore
  2411. {
  2412. public string id { get; set; }
  2413. public string examname { get; set; }
  2414. public string stuno { get; set; }
  2415. public string stuname { get; set; }
  2416. public string classno { get; set; }
  2417. public string classname { get; set; }
  2418. public string teachclassno { get; set; }
  2419. public string termendscore { get; set; }
  2420. public string examtime { get; set; }
  2421. public string lessonno { get; set; }
  2422. public string lessonname { get; set; }
  2423. public string scoolYear { get; set; }
  2424. public string term { get; set; }
  2425. }
  2426. public class Major
  2427. {
  2428. /// <summary>
  2429. /// 01
  2430. /// </summary>
  2431. public string id { get; set; }
  2432. /// <summary>
  2433. /// 学前教育
  2434. /// </summary>
  2435. public string majorName { get; set; }
  2436. /// <summary>
  2437. /// 01
  2438. /// </summary>
  2439. public string majorNumber { get; set; }
  2440. /// <summary>
  2441. ///
  2442. /// </summary>
  2443. public string bz { get; set; }
  2444. }
  2445. public class semester
  2446. {
  2447. public DateTime? starttime { get; set; }
  2448. public DateTime? endtime { get; set; }
  2449. public string zhouci { get; set; }
  2450. public string shangxia { get; set; }
  2451. }
  2452. public class List
  2453. {
  2454. public StuScore stuscore { get; set; }
  2455. /// <summary>
  2456. /// Paike
  2457. /// </summary>
  2458. public Paike paike { get; set; }
  2459. /// <summary>
  2460. /// 2019-03-04 08:00-09:00
  2461. /// </summary>
  2462. public string times { get; set; }
  2463. /// <summary>
  2464. /// Major
  2465. /// </summary>
  2466. public Major major { get; set; }
  2467. /// <summary>
  2468. /// 18-19
  2469. /// </summary>
  2470. public string schoolYear { get; set; }
  2471. /// <summary>
  2472. /// 学期类
  2473. /// </summary>
  2474. public semester semester { get; set; }
  2475. /// <summary>
  2476. /// 第几级
  2477. /// </summary>
  2478. public string grade { get; set; }
  2479. /// <summary>
  2480. /// 专业编号
  2481. /// </summary>
  2482. public string majorNumber { get; set; }
  2483. /// <summary>
  2484. /// 课程名称
  2485. /// </summary>
  2486. public string curriculumName { get; set; }
  2487. /// <summary>
  2488. /// 课程编号
  2489. /// </summary>
  2490. public string curriculumNumber { get; set; }
  2491. /// <summary>
  2492. /// 选修必修
  2493. /// </summary>
  2494. public string isElective { get; set; }
  2495. /// <summary>
  2496. /// 周学时
  2497. /// </summary>
  2498. public string classhour { get; set; }
  2499. /// <summary>
  2500. /// 教师编号
  2501. /// </summary>
  2502. public string teacherId { get; set; }
  2503. /// <summary>
  2504. /// 教师姓名
  2505. /// </summary>
  2506. public string teacherName { get; set; }
  2507. /// <summary>
  2508. /// 学校主键
  2509. /// </summary>
  2510. public string schoolId { get; set; }
  2511. }
  2512. public class Entity
  2513. {
  2514. /// <summary>
  2515. /// true
  2516. /// </summary>
  2517. public string opflag { get; set; }
  2518. /// <summary>
  2519. /// 1000
  2520. /// </summary>
  2521. public string opCode { get; set; }
  2522. /// <summary>
  2523. /// OK!
  2524. /// </summary>
  2525. public string message { get; set; }
  2526. /// <summary>
  2527. /// List
  2528. /// </summary>
  2529. public List<List> list { get; set; }
  2530. public List<StuScore> stuScoreList { get; set; }
  2531. }
  2532. public class Root
  2533. {
  2534. /// <summary>
  2535. /// 操作成功
  2536. /// </summary>
  2537. public string message { get; set; }
  2538. /// <summary>
  2539. /// Success
  2540. /// </summary>
  2541. public bool success { get; set; }
  2542. /// <summary>
  2543. /// Entity
  2544. /// </summary>
  2545. public Entity entity { get; set; }
  2546. }
  2547. #endregion
  2548. #region 按条件同步排课数据
  2549. public class RootByCondition
  2550. {
  2551. /// <summary>
  2552. /// 操作成功
  2553. /// </summary>
  2554. public string message { get; set; }
  2555. /// <summary>
  2556. /// Success
  2557. /// </summary>
  2558. public bool success { get; set; }
  2559. /// <summary>
  2560. /// Entity
  2561. /// </summary>
  2562. public EntityByCondition entity { get; set; }
  2563. }
  2564. public class EntityByCondition
  2565. {
  2566. /// <summary>
  2567. /// true
  2568. /// </summary>
  2569. public string opflag { get; set; }
  2570. /// <summary>
  2571. /// 1000
  2572. /// </summary>
  2573. public string opCode { get; set; }
  2574. /// <summary>
  2575. /// OK!
  2576. /// </summary>
  2577. public string message { get; set; }
  2578. /// <summary>
  2579. /// List
  2580. /// </summary>ListByCondition
  2581. public List<ListByCondition> list { get; set; }
  2582. }
  2583. public class ListByCondition
  2584. {
  2585. public string year { get; set; }
  2586. public string number { get; set; }
  2587. public string curriculunNumber { get; set; }
  2588. public string curriculunName { get; set; }
  2589. /// <summary>
  2590. /// Paike
  2591. /// </summary>
  2592. public PaikeByCondition paike { get; set; }
  2593. /// <summary>
  2594. /// "2019-03-12,2019-03-26,2019-04-09,2019-04-23,2019-05-07,2019-05-21,2019-06-04,2019-06-18,2019-07-02,2019-07-16,2019-07-30,"
  2595. /// </summary>
  2596. public string timeText { get; set; }
  2597. /// <summary>
  2598. /// Major
  2599. /// </summary>
  2600. public MajorByCondition major { get; set; }
  2601. public string teacherNumber { get; set; }
  2602. public string teacherName { get; set; }
  2603. public string curriculunSid { get; set; }
  2604. public string classRoomSid { get; set; }
  2605. public string schoolSid { get; set; }
  2606. public object week { get; set; }
  2607. public string section { get; set; }
  2608. public string clazzSid { get; set; }
  2609. }
  2610. public class PaikeByCondition
  2611. {
  2612. public string id { get; set; }
  2613. /// <summary>
  2614. /// 班级Id
  2615. /// </summary>
  2616. public string clazzId { get; set; }
  2617. /// <summary>
  2618. /// 班级名称
  2619. /// </summary>
  2620. public string clazzName { get; set; }
  2621. /// <summary>
  2622. /// 班级编号
  2623. /// </summary>
  2624. public string clazzSid { get; set; }
  2625. /// <summary>
  2626. /// 年级
  2627. /// </summary>
  2628. public string grade { get; set; }
  2629. /// <summary>
  2630. /// 教师Id
  2631. /// </summary>
  2632. public string teacherId { get; set; }
  2633. /// <summary>
  2634. /// 教师名称
  2635. /// </summary>
  2636. public string teacherName { get; set; }
  2637. /// <summary>
  2638. /// 教师编号
  2639. /// </summary>
  2640. public string teacherSid { get; set; }
  2641. /// <summary>
  2642. /// 课程Id
  2643. /// </summary>
  2644. public string curriculunId { get; set; }
  2645. /// <summary>
  2646. /// 课程名称
  2647. /// </summary>
  2648. public string curriculunName { get; set; }
  2649. /// <summary>
  2650. /// 课程编号
  2651. /// </summary>
  2652. public string curriculunSid { get; set; }
  2653. /// <summary>
  2654. /// 第几节次
  2655. /// </summary>
  2656. public string section { get; set; }
  2657. /// <summary>
  2658. /// 星期几
  2659. /// </summary>
  2660. public string week { get; set; }
  2661. /// <summary>
  2662. /// 课表类型
  2663. /// </summary>
  2664. public string kebiaoType { get; set; }
  2665. /// 教室Id
  2666. /// </summary>
  2667. public string classRoomId { get; set; }
  2668. /// <summary>
  2669. /// 教室名称
  2670. /// </summary>
  2671. public string classRoomName { get; set; }
  2672. /// <summary>
  2673. /// 教室编号
  2674. /// </summary>
  2675. public string classRoomSid { get; set; }
  2676. /// <summary>
  2677. /// 排课安排
  2678. /// </summary>
  2679. public string rankSchedule { get; set; }
  2680. /// <summary>
  2681. /// "2019-03-12,2019-03-26,2019-04-09,2019-04-23,2019-05-07,2019-05-21,2019-06-04,2019-06-18,2019-07-02,2019-07-16,2019-07-30,"
  2682. /// </summary>
  2683. public string timeText { get; set; }
  2684. /// <summary>
  2685. /// 学年
  2686. /// </summary>
  2687. public string semester { get; set; }
  2688. /// <summary>
  2689. /// Flag
  2690. /// </summary>
  2691. public bool flag { get; set; }
  2692. }
  2693. public class MajorByCondition
  2694. {
  2695. /// <summary>
  2696. /// 专业Id
  2697. /// </summary>
  2698. public string id { get; set; }
  2699. /// <summary>
  2700. /// 专业名称
  2701. /// </summary>
  2702. public string name { get; set; }
  2703. /// <summary>
  2704. /// 专业编号
  2705. /// </summary>
  2706. public string number { get; set; }
  2707. /// <summary>
  2708. /// 系
  2709. /// </summary>
  2710. public DepartmentByCondition department { get; set; }
  2711. /// <summary>
  2712. /// 学年学期
  2713. /// </summary>
  2714. public SemesterByCondition semester { get; set; }
  2715. /// <summary>
  2716. /// 学校
  2717. /// </summary>
  2718. public SchoolByCondition school { get; set; }
  2719. public string sid { get; set; }
  2720. public string qsid { get; set; }
  2721. }
  2722. public class DepartmentByCondition
  2723. {
  2724. /// <summary>
  2725. /// 系Id
  2726. /// </summary>
  2727. public string id { get; set; }
  2728. /// <summary>
  2729. /// 系名称
  2730. /// </summary>
  2731. public string name { get; set; }
  2732. /// <summary>
  2733. /// 系编号【开课计划接口】
  2734. /// </summary>
  2735. public string number { get; set; }
  2736. }
  2737. public class SemesterByCondition
  2738. {
  2739. public string id { get; set; }
  2740. /// <summary>
  2741. /// 学年
  2742. /// </summary>
  2743. public string year { get; set; }
  2744. /// <summary>
  2745. /// 学期
  2746. /// </summary>
  2747. public string number { get; set; }
  2748. /// <summary>
  2749. /// 开始时间【开课计划接口】
  2750. /// </summary>
  2751. public DateTime starTime { get; set; }
  2752. /// <summary>
  2753. /// 结束时间【开课计划接口】
  2754. /// </summary>
  2755. public DateTime endTime { get; set; }
  2756. /// <summary>
  2757. /// 开始周次【开课计划接口】
  2758. /// </summary>
  2759. public int yesNo { get; set; }
  2760. /// <summary>
  2761. /// 结束周次【开课计划接口】
  2762. /// </summary>
  2763. public int week { get; set; }
  2764. }
  2765. public class SchoolByCondition
  2766. {
  2767. /// <summary>
  2768. /// 学校Id
  2769. /// </summary>
  2770. public string sid { get; set; }
  2771. /// <summary>
  2772. /// 学校名称
  2773. /// </summary>
  2774. public string name { get; set; }
  2775. }
  2776. public class RootOfPlanByCondition
  2777. {
  2778. /// <summary>
  2779. /// 操作成功
  2780. /// </summary>
  2781. public string message { get; set; }
  2782. /// <summary>
  2783. /// Success
  2784. /// </summary>
  2785. public bool success { get; set; }
  2786. /// <summary>
  2787. /// Entity
  2788. /// </summary>
  2789. public EntityOfPlanByCondition entity { get; set; }
  2790. }
  2791. public class EntityOfPlanByCondition
  2792. {
  2793. /// <summary>
  2794. /// true
  2795. /// </summary>
  2796. public string opflag { get; set; }
  2797. /// <summary>
  2798. /// 1000
  2799. /// </summary>
  2800. public string opCode { get; set; }
  2801. /// <summary>
  2802. /// OK!
  2803. /// </summary>
  2804. public string message { get; set; }
  2805. /// <summary>
  2806. /// List
  2807. /// </summary>
  2808. public List<ListOfPlanByCondition> list { get; set; }
  2809. }
  2810. public class ListOfPlanByCondition
  2811. {
  2812. public SchoolByCondition school { get; set; }
  2813. public SemesterByCondition semester { get; set; }
  2814. public DepartmentByCondition department { get; set; }
  2815. public MajorByCondition major { get; set; }
  2816. /// <summary>
  2817. /// 开课计划
  2818. /// </summary>
  2819. public CourseOfPlanByCondition course { get; set; }
  2820. public int? classhour { get; set; }
  2821. public int? credit { get; set; }
  2822. public string grade { get; set; }
  2823. }
  2824. public class CourseOfPlanByCondition
  2825. {
  2826. /// <summary>
  2827. /// 开课计划Id
  2828. /// </summary>
  2829. public string id { get; set; }
  2830. /// <summary>
  2831. /// 课程编号
  2832. /// </summary>
  2833. public string number { get; set; }
  2834. /// <summary>
  2835. /// 课程信息
  2836. /// </summary>
  2837. public CourseInfoOfPlanByCondition course { get; set; }
  2838. /// <summary>
  2839. /// 课程名称
  2840. /// </summary>
  2841. public string coursename { get; set; }
  2842. }
  2843. public class CourseInfoOfPlanByCondition
  2844. {
  2845. /// <summary>
  2846. /// 课程Id
  2847. /// </summary>
  2848. public string id { get; set; }
  2849. /// <summary>
  2850. /// 课程名称
  2851. /// </summary>
  2852. public string name { get; set; }
  2853. public string number { get; set; }
  2854. }
  2855. public class paikeList
  2856. {
  2857. public string week { get; set; }
  2858. public string section { get; set; }
  2859. public string timetext { get; set; }
  2860. public string classname { get; set; }
  2861. public string classnumber { get; set; }
  2862. public string roomname { get; set; }
  2863. public string ClassroomNo { get; set; }
  2864. public string teachername { get; set; }
  2865. public string teacherNumber { get; set; }
  2866. public string curriculunName { get; set; }
  2867. public string curriculunNumber { get; set; }
  2868. public string year { get; set; }
  2869. public string semester { get; set; }
  2870. public string schoolno { get; set; }
  2871. }
  2872. #endregion
  2873. #endregion
  2874. }