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.
 
 
 
 
 
 

901 lines
33 KiB

  1. using Dapper;
  2. using Learun.DataBase.Repository;
  3. using Learun.Util;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Configuration;
  7. using System.Data;
  8. using System.Linq;
  9. using System.Text;
  10. using Learun.Application.Base.AuthorizeModule;
  11. using Learun.Application.Base.SystemModule;
  12. using Learun.Application.Organization;
  13. using Learun.Application.TwoDevelopment.PersonnelManagement;
  14. namespace Learun.Application.TwoDevelopment.EducationalAdministration
  15. {
  16. /// <summary>
  17. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  18. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  19. /// 创 建:超级管理员
  20. /// 日 期:2019-01-29 17:31
  21. /// 描 述:教师信息管理
  22. /// </summary>
  23. public class EmpInfoService : RepositoryFactory
  24. {
  25. private object Select;
  26. #region 获取数据
  27. /// <summary>
  28. /// 获取页面显示列表数据
  29. /// <summary>
  30. /// <param name="queryJson">查询参数</param>
  31. /// <returns></returns>
  32. public IEnumerable<EmpInfoEntity> GetPageList(Pagination pagination, string queryJson)
  33. {
  34. try
  35. {
  36. var strSql = new StringBuilder();
  37. strSql.Append("SELECT t.*,b.F_Order as DeptOrder ");
  38. strSql.Append(" FROM EmpInfo t left join " + BaseRepository().getDbConnection().Database + ".dbo.LR_Base_Department b on t.F_DepartmentId=b.F_DepartmentId ");
  39. strSql.Append(" WHERE 1=1 ");
  40. var queryParam = queryJson.ToJObject();
  41. // 虚拟参数
  42. var dp = new DynamicParameters(new { });
  43. if (!queryParam["EmpNo"].IsEmpty())
  44. {
  45. dp.Add("EmpNo", queryParam["EmpNo"].ToString(), DbType.String);
  46. strSql.Append(" AND t.EmpNo = @EmpNo ");
  47. }
  48. if (!queryParam["EmpName"].IsEmpty())
  49. {
  50. dp.Add("EmpName", "%" + queryParam["EmpName"].ToString() + "%", DbType.String);
  51. strSql.Append(" AND t.EmpName Like @EmpName ");
  52. }
  53. if (!queryParam["mobile"].IsEmpty())
  54. {
  55. dp.Add("mobile", "%" + queryParam["mobile"].ToString() + "%", DbType.String);
  56. strSql.Append(" AND t.mobile Like @mobile ");
  57. }
  58. if (!queryParam["DeptNo"].IsEmpty())
  59. {
  60. dp.Add("DeptNo", queryParam["DeptNo"].ToString(), DbType.String);
  61. strSql.Append(" AND t.DeptNo = @DeptNo ");
  62. }
  63. if (!queryParam["ProvinceNo"].IsEmpty())
  64. {
  65. dp.Add("ProvinceNo", queryParam["ProvinceNo"].ToString(), DbType.String);
  66. strSql.Append(" AND t.ProvinceNo = @ProvinceNo ");
  67. }
  68. if (!queryParam["RegionNo"].IsEmpty())
  69. {
  70. dp.Add("RegionNo", queryParam["RegionNo"].ToString(), DbType.String);
  71. strSql.Append(" AND t.RegionNo = @RegionNo ");
  72. }
  73. if (!queryParam["F_CompanyId"].IsEmpty())
  74. {
  75. dp.Add("F_CompanyId", queryParam["F_CompanyId"].ToString(), DbType.String);
  76. strSql.Append(" AND t.F_CompanyId = @F_CompanyId ");
  77. }
  78. if (!queryParam["F_DepartmentId"].IsEmpty())
  79. {
  80. dp.Add("F_DepartmentId", queryParam["F_DepartmentId"].ToString(), DbType.String);
  81. strSql.Append(" AND t.F_DepartmentId = @F_DepartmentId ");
  82. }
  83. if (!queryParam["BCdCultureDegree"].IsEmpty())
  84. {
  85. dp.Add("BCdCultureDegree", queryParam["BCdCultureDegree"].ToString(), DbType.String);
  86. strSql.Append(" AND t.BCdCultureDegree = @BCdCultureDegree ");
  87. }
  88. if (!queryParam["BCdPartyFace"].IsEmpty())
  89. {
  90. dp.Add("BCdPartyFace", queryParam["BCdPartyFace"].ToString(), DbType.String);
  91. strSql.Append(" AND t.BCdPartyFace = @BCdPartyFace ");
  92. }
  93. if (!queryParam["NationalityNo"].IsEmpty())//民族
  94. {
  95. dp.Add("NationalityNo", queryParam["NationalityNo"].ToString(), DbType.String);
  96. strSql.Append(" AND t.NationalityNo = @NationalityNo ");
  97. }
  98. if (!queryParam["PartyFaceNo"].IsEmpty())//政治面貌
  99. {
  100. dp.Add("PartyFaceNo", queryParam["PartyFaceNo"].ToString(), DbType.String);
  101. strSql.Append(" AND t.PartyFaceNo = @PartyFaceNo ");
  102. }
  103. if (!queryParam["GenderNo"].IsEmpty())//性别
  104. {
  105. dp.Add("GenderNo", queryParam["GenderNo"].ToString(), DbType.String);
  106. strSql.Append(" AND t.GenderNo = @GenderNo ");
  107. }
  108. if (!queryParam["DegreeNo"].IsEmpty())//学位
  109. {
  110. dp.Add("DegreeNo", queryParam["DegreeNo"].ToString(), DbType.String);
  111. strSql.Append(" AND t.DegreeNo = @DegreeNo ");
  112. }
  113. if (!queryParam["ProfessionalTitle"].IsEmpty())//职称
  114. {
  115. dp.Add("ProfessionalTitle", queryParam["ProfessionalTitle"].ToString(), DbType.String);
  116. strSql.Append(" AND t.ProfessionalTitle = @ProfessionalTitle ");
  117. }
  118. if (!queryParam["HighestRecord"].IsEmpty())//最高学历
  119. {
  120. dp.Add("HighestRecord", queryParam["HighestRecord"].ToString(), DbType.String);
  121. strSql.Append(" AND t.HighestRecord = @HighestRecord ");
  122. }
  123. if (!queryParam["CompilationCategory"].IsEmpty())//人员身份
  124. {
  125. dp.Add("CompilationCategory", queryParam["CompilationCategory"].ToString(), DbType.String);
  126. strSql.Append(" AND t.CompilationCategory = @CompilationCategory ");
  127. }
  128. if (!queryParam["CheckMark"].IsEmpty())//是否审核
  129. {
  130. dp.Add("CheckMark", queryParam["CheckMark"].ToString(), DbType.String);
  131. strSql.Append(" AND t.CheckMark = @CheckMark ");
  132. }
  133. if (!queryParam["IsInActiveStatus"].IsEmpty())//员工状态
  134. {
  135. dp.Add("IsInActiveStatus", queryParam["IsInActiveStatus"].ToString(), DbType.String);
  136. strSql.Append(" AND t.IsInActiveStatus = @IsInActiveStatus ");
  137. }
  138. var result = new List<EmpInfoEntity>();
  139. result = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(strSql.ToString(), dp, pagination).ToList();
  140. foreach (var item in result)
  141. {
  142. var certificate = this.BaseRepository().FindList<TeacherCertificateEntity>(x => x.TCName == item.EmpId);
  143. if (certificate.Any())
  144. {
  145. item.CertificateNames = string.Join(",", certificate.Select(x => x.TCType).ToArray());
  146. item.CertificateDates = string.Join(",", certificate.Select(x => x.TCTime).ToArray());
  147. }
  148. }
  149. return result;
  150. }
  151. catch (Exception ex)
  152. {
  153. if (ex is ExceptionEx)
  154. {
  155. throw;
  156. }
  157. else
  158. {
  159. throw ExceptionEx.ThrowServiceException(ex);
  160. }
  161. }
  162. }
  163. internal bool GetAny()
  164. {
  165. try
  166. {
  167. return this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>().ToList().Count() > 0 ? true : false; ;
  168. }
  169. catch (Exception ex)
  170. {
  171. if (ex is ExceptionEx)
  172. {
  173. throw;
  174. }
  175. else
  176. {
  177. throw ExceptionEx.ThrowServiceException(ex);
  178. }
  179. }
  180. }
  181. public IEnumerable<EmpInfoEntity> GetAllList()
  182. {
  183. try
  184. {
  185. return this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>();
  186. }
  187. catch (Exception ex)
  188. {
  189. if (ex is ExceptionEx)
  190. {
  191. throw;
  192. }
  193. else
  194. {
  195. throw ExceptionEx.ThrowServiceException(ex);
  196. }
  197. }
  198. }
  199. /// <summary>
  200. /// 获取页面显示列表数据
  201. /// <summary>
  202. /// <param name="queryJson">查询参数</param>
  203. /// <returns></returns>
  204. public IEnumerable<EmpInfoEntity> GetList(string queryJson)
  205. {
  206. try
  207. {
  208. var strSql = new StringBuilder();
  209. strSql.Append("SELECT ");
  210. strSql.Append(@"
  211. t.EmpId,
  212. t.EmpNo,
  213. t.EmpName,
  214. t.F_CompanyId,
  215. t.F_DepartmentId,
  216. t.DeptNo,
  217. t.GenderNo,
  218. t.Photo,
  219. t.Birthday,
  220. t.NationalityNo,
  221. t.PartyFaceNo,
  222. t.IdentityCardNo,
  223. t.CultureDegreeNo,
  224. t.DegreeNo,
  225. t.mobile,
  226. t.EMail
  227. ");
  228. strSql.Append(" FROM EmpInfo t ");
  229. strSql.Append(" WHERE 1=1 ");
  230. var queryParam = queryJson.ToJObject();
  231. // 虚拟参数
  232. var dp = new DynamicParameters(new { });
  233. return this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(strSql.ToString(), dp);
  234. }
  235. catch (Exception ex)
  236. {
  237. if (ex is ExceptionEx)
  238. {
  239. throw;
  240. }
  241. else
  242. {
  243. throw ExceptionEx.ThrowServiceException(ex);
  244. }
  245. }
  246. }
  247. /// <summary>
  248. /// 获取EmpInfo表实体数据
  249. /// <param name="keyValue">主键</param>
  250. /// <summary>
  251. /// <returns></returns>
  252. public EmpInfoEntity GetEmpInfoEntity(string keyValue)
  253. {
  254. try
  255. {
  256. return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(keyValue);
  257. }
  258. catch (Exception ex)
  259. {
  260. if (ex is ExceptionEx)
  261. {
  262. throw;
  263. }
  264. else
  265. {
  266. throw ExceptionEx.ThrowServiceException(ex);
  267. }
  268. }
  269. }
  270. public EmpInfoEntity GetEmpInfoEntityByNo(string keyValue)
  271. {
  272. try
  273. {
  274. return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(m => m.EmpNo == keyValue);
  275. }
  276. catch (Exception ex)
  277. {
  278. if (ex is ExceptionEx)
  279. {
  280. throw;
  281. }
  282. else
  283. {
  284. throw ExceptionEx.ThrowServiceException(ex);
  285. }
  286. }
  287. }
  288. public List<EmpInfoEntity> GetEmpInfoEntityByDepartment(string keyValue)
  289. {
  290. try
  291. {
  292. return this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(m => m.F_DepartmentId == keyValue).ToList();
  293. }
  294. catch (Exception ex)
  295. {
  296. if (ex is ExceptionEx)
  297. {
  298. throw;
  299. }
  300. else
  301. {
  302. throw ExceptionEx.ThrowServiceException(ex);
  303. }
  304. }
  305. }
  306. public EmpInfoEntity GetEmpInfoEntityById(string keyValue)
  307. {
  308. try
  309. {
  310. return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(m => m.EmpId == keyValue);
  311. }
  312. catch (Exception ex)
  313. {
  314. if (ex is ExceptionEx)
  315. {
  316. throw;
  317. }
  318. else
  319. {
  320. throw ExceptionEx.ThrowServiceException(ex);
  321. }
  322. }
  323. }
  324. public IEnumerable<EmpInfoEntity> GetEmpInfoEntitiesByName(string name)
  325. {
  326. try
  327. {
  328. return this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(x => x.EmpName == name);
  329. }
  330. catch (Exception ex)
  331. {
  332. if (ex is ExceptionEx)
  333. {
  334. throw;
  335. }
  336. else
  337. {
  338. throw ExceptionEx.ThrowServiceException(ex);
  339. }
  340. }
  341. }
  342. public EmpInfoEntity GetEmpInfoEntityByIdCard(string idcard)
  343. {
  344. try
  345. {
  346. return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(m => m.IdentityCardNo == idcard);
  347. }
  348. catch (Exception ex)
  349. {
  350. if (ex is ExceptionEx)
  351. {
  352. throw;
  353. }
  354. else
  355. {
  356. throw ExceptionEx.ThrowServiceException(ex);
  357. }
  358. }
  359. }
  360. /// <summary>
  361. /// 教师年龄比例
  362. /// </summary>
  363. /// <returns></returns>
  364. public EmpInfoEntity GetEmpInfoAgeRate()
  365. {
  366. try
  367. {
  368. var strSql = new StringBuilder();
  369. strSql.Append(@"select
  370. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 60 then 1 else 0 end) as age1,
  371. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 50 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 60 then 1 else 0 end) as age2,
  372. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 40 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 50 then 1 else 0 end) as age3,
  373. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 30 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 40 then 1 else 0 end) as age4,
  374. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 20 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 30 then 1 else 0 end) as age5
  375. from empinfo t where t.Birthday is not null");
  376. return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(strSql.ToString(), null);
  377. }
  378. catch (Exception ex)
  379. {
  380. if (ex is ExceptionEx)
  381. {
  382. throw;
  383. }
  384. else
  385. {
  386. throw ExceptionEx.ThrowServiceException(ex);
  387. }
  388. }
  389. }
  390. #endregion
  391. #region 提交数据
  392. /// <summary>
  393. /// 生成教师帐号
  394. /// </summary>
  395. public void GenerateAccout(string empId = null)
  396. {
  397. try
  398. {
  399. var teacherList = new List<EmpInfoEntity>();
  400. if (empId != null)
  401. {
  402. var listIds = empId.Split(',');
  403. teacherList = this.BaseRepository("CollegeMIS")
  404. .FindList<EmpInfoEntity>(a => listIds.Contains(a.EmpId) && a.CheckMark == true).ToList();
  405. }
  406. else
  407. {
  408. teacherList = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(a => a.CheckMark == true).ToList();
  409. }
  410. UserRelationIBLL userRelationIBLL = new UserRelationBLL();
  411. UserIBLL userIBLL = new UserBLL();
  412. var alluserlist = userIBLL.GetAllList().Where(m => m.F_Description == "教师");
  413. var roleId = Config.GetValue("GenerateTeachersRoleId");
  414. var defaultpwd = Config.GetValue("defaultpwd");
  415. //读取默认密码配置中已启用的密码
  416. var Sys_DefaultPwdConfigEntity = this.BaseRepository().FindEntity<Sys_DefaultPwdConfigEntity>(x => x.IsEnabled == true);
  417. if (Sys_DefaultPwdConfigEntity != null)
  418. {
  419. defaultpwd = Sys_DefaultPwdConfigEntity.Pwd;
  420. }
  421. var studentList = new List<UserEntity>();
  422. foreach (var tEntity in teacherList)
  423. {
  424. if (alluserlist.Count(m => m.F_Account == tEntity.EmpNo) > 0)
  425. {
  426. continue;
  427. }
  428. var annexesFileEntity = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_FolderId == tEntity.Photo);
  429. var url = "";
  430. if (annexesFileEntity != null)
  431. {
  432. url = annexesFileEntity.F_FilePath;
  433. url = "/Resource/" + url.Substring(url.IndexOf(annexesFileEntity.F_CreateUserId), url.Length - url.IndexOf(annexesFileEntity.F_CreateUserId));
  434. }
  435. UserEntity userbase = new UserEntity();
  436. userbase.F_Account = tEntity.EmpNo;
  437. userbase.N_Account = tEntity.EmpNo;
  438. userbase.F_RealName = tEntity.EmpName;
  439. userbase.F_EnCode = tEntity.EmpNo;
  440. userbase.F_Password = Md5Helper.Encrypt(defaultpwd, 32).ToLower();
  441. userbase.F_HeadIcon = string.IsNullOrEmpty(url) ? Config.GetValue("defaultheadimg") : url;
  442. userbase.F_Gender = tEntity.GenderNo.HasValue ? Convert.ToInt32(tEntity.GenderNo.Value) : 1;
  443. userbase.F_DeleteMark = 0;
  444. userbase.F_EnabledMark = 1;
  445. userbase.F_Mobile = tEntity.mobile;
  446. userbase.F_Description = "教师";
  447. userbase.F_CompanyId = tEntity.F_CompanyId;
  448. userbase.F_DepartmentId = tEntity.F_DepartmentId;
  449. userbase.F_IdentityCardNo = tEntity.IdentityCardNo;
  450. userbase.F_Order = tEntity.F_Order;
  451. userIBLL.SaveEntity(null, userbase);
  452. studentList.Add(userbase);
  453. }
  454. if (studentList.Any())
  455. {
  456. string s = studentList.Select(m => m.F_UserId).Aggregate((current, userEntity) => current + "," + userEntity);
  457. userRelationIBLL.SaveEntityList2(roleId, 1, s);
  458. }
  459. }
  460. catch (Exception ex)
  461. {
  462. if (ex is ExceptionEx)
  463. {
  464. throw;
  465. }
  466. else
  467. {
  468. throw ExceptionEx.ThrowServiceException(ex);
  469. }
  470. }
  471. }
  472. public void UpdateAccount(string empId = null)
  473. {
  474. try
  475. {
  476. UserIBLL userIBLL = new UserBLL();
  477. var teacherList = new List<EmpInfoEntity>();
  478. if (empId != null)
  479. {
  480. var listIds = empId.Split(',');
  481. teacherList = this.BaseRepository("CollegeMIS")
  482. .FindList<EmpInfoEntity>(a => listIds.Contains(a.EmpId)).ToList();
  483. }
  484. else
  485. {
  486. teacherList = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>().ToList();
  487. }
  488. var baseTeacherList = userIBLL.GetAllList().Where(m => m.F_Description == "教师");
  489. foreach (var baseTeacher in baseTeacherList)
  490. {
  491. var num = 0;
  492. var teacher = teacherList.FirstOrDefault(a => a.EmpNo == baseTeacher.F_Account);
  493. if (teacher != null)
  494. {
  495. if (baseTeacher.F_Gender != Convert.ToInt32(teacher.GenderNo))
  496. {
  497. baseTeacher.F_Gender = Convert.ToInt32(teacher.GenderNo);
  498. num++;
  499. }
  500. if (baseTeacher.F_Mobile != teacher.mobile)
  501. {
  502. baseTeacher.F_Mobile = teacher.mobile;
  503. num++;
  504. }
  505. if (baseTeacher.F_CompanyId != teacher.F_CompanyId)
  506. {
  507. baseTeacher.F_CompanyId = teacher.F_CompanyId;
  508. num++;
  509. }
  510. if (baseTeacher.F_DepartmentId != teacher.F_DepartmentId)
  511. {
  512. baseTeacher.F_DepartmentId = teacher.F_DepartmentId;
  513. num++;
  514. }
  515. if (baseTeacher.F_RealName != teacher.EmpName)
  516. {
  517. baseTeacher.F_RealName = teacher.EmpName;
  518. num++;
  519. }
  520. if (baseTeacher.F_IdentityCardNo != teacher.IdentityCardNo)
  521. {
  522. baseTeacher.F_IdentityCardNo = teacher.IdentityCardNo;
  523. num++;
  524. }
  525. if (num > 0)
  526. {
  527. userIBLL.UpdateEntity(baseTeacher);
  528. }
  529. }
  530. }
  531. }
  532. catch (Exception ex)
  533. {
  534. if (ex is ExceptionEx)
  535. {
  536. throw;
  537. }
  538. else
  539. {
  540. throw ExceptionEx.ThrowServiceException(ex);
  541. }
  542. }
  543. }
  544. public void Lock(string keyValue)
  545. {
  546. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  547. try
  548. {
  549. //单个启用
  550. //this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=1 where EmpId='" + keyValue + "'");
  551. //多个启用
  552. var keyValueArr = keyValue.Split(',');
  553. foreach (var item in keyValueArr)
  554. {
  555. db.ExecuteBySql("update EmpInfo set CheckMark=1 where EmpId='" + item + "'");
  556. }
  557. db.Commit();
  558. }
  559. catch (Exception ex)
  560. {
  561. db.Rollback();
  562. if (ex is ExceptionEx)
  563. {
  564. throw;
  565. }
  566. else
  567. {
  568. throw ExceptionEx.ThrowServiceException(ex);
  569. }
  570. }
  571. }
  572. public void UnLock(string keyValue)
  573. {
  574. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  575. try
  576. {
  577. //单个停用
  578. //this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=0 where EmpId='" + keyValue + "'");
  579. //多个停用
  580. var keyValueArr = keyValue.Split(',');
  581. foreach (var item in keyValueArr)
  582. {
  583. db.ExecuteBySql("update EmpInfo set CheckMark=0 where EmpId='" + item + "'");
  584. }
  585. db.Commit();
  586. }
  587. catch (Exception ex)
  588. {
  589. db.Rollback();
  590. if (ex is ExceptionEx)
  591. {
  592. throw;
  593. }
  594. else
  595. {
  596. throw ExceptionEx.ThrowServiceException(ex);
  597. }
  598. }
  599. }
  600. /// <summary>
  601. /// 审核全部
  602. /// </summary>
  603. public void CheckAll()
  604. {
  605. try
  606. {
  607. this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=1 ");
  608. }
  609. catch (Exception ex)
  610. {
  611. if (ex is ExceptionEx)
  612. {
  613. throw;
  614. }
  615. else
  616. {
  617. throw ExceptionEx.ThrowServiceException(ex);
  618. }
  619. }
  620. }
  621. /// <summary>
  622. /// 删除实体数据
  623. /// <param name="keyValue">主键</param>
  624. /// <summary>
  625. /// <returns></returns>
  626. public void DeleteEntity(string keyValue)
  627. {
  628. try
  629. {
  630. //单个删除
  631. //this.BaseRepository("CollegeMIS").Delete<EmpInfoEntity>(t => t.EmpId == keyValue);
  632. //多个删除
  633. var keyValueArr = keyValue.Split(',');
  634. foreach (var item in keyValueArr)
  635. {
  636. var empinfo = this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(t => t.EmpId == item);
  637. var userinfo = BaseRepository().FindEntity<UserEntity>(m => m.F_Account == empinfo.EmpNo);
  638. if (userinfo != null)
  639. {
  640. BaseRepository().Delete<UserRelationEntity>(m => m.F_UserId == userinfo.F_UserId);
  641. BaseRepository().Delete<UserEntity>(userinfo);
  642. }
  643. this.BaseRepository("CollegeMIS").Delete<EmpInfoEntity>(empinfo);
  644. }
  645. }
  646. catch (Exception ex)
  647. {
  648. if (ex is ExceptionEx)
  649. {
  650. throw;
  651. }
  652. else
  653. {
  654. throw ExceptionEx.ThrowServiceException(ex);
  655. }
  656. }
  657. }
  658. /// <summary>
  659. /// 保存实体数据(新增、修改)
  660. /// <param name="keyValue">主键</param>
  661. /// <summary>
  662. /// <returns></returns>
  663. public void SaveEntity(string keyValue, EmpInfoEntity entity)
  664. {
  665. try
  666. {
  667. UserIBLL userIBLL = new UserBLL();
  668. if (!string.IsNullOrEmpty(keyValue))
  669. {
  670. entity.Modify(keyValue);
  671. this.BaseRepository("CollegeMIS").Update(entity);
  672. var annexesFileEntity = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_FolderId == entity.Photo);
  673. var url = "";
  674. if (annexesFileEntity != null)
  675. {
  676. url = annexesFileEntity.F_FilePath;
  677. url = "/" + url.Substring(url.IndexOf("Resource"));
  678. }
  679. var baseUser = userIBLL.GetEntityByAccount(entity.EmpNo);
  680. if (baseUser != null)
  681. {
  682. baseUser.F_HeadIcon = url;
  683. baseUser.F_RealName = entity.EmpName;
  684. baseUser.F_IdentityCardNo = entity.IdentityCardNo;
  685. baseUser.F_Mobile = entity.mobile;
  686. userIBLL.SaveEntity(baseUser.F_UserId, baseUser);
  687. }
  688. }
  689. else
  690. {
  691. if (string.IsNullOrEmpty(entity.EmpId))
  692. {
  693. //生成编号
  694. var ruleName = ConfigurationManager.AppSettings["EmpNoRule"];//
  695. if (ruleName == "jy")
  696. {
  697. var strHead = DateTime.Now.ToString("yyyyMM");
  698. var SerialNum = 1;
  699. var empInfoEntities = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(a => a.EmpNo.Contains(strHead));
  700. if (empInfoEntities.Count() > 0)
  701. {
  702. var aa = empInfoEntities.Where(a => a.EmpNo.Length >= 8);
  703. var bb = aa.Select(a => a.EmpNo.Substring(a.EmpNo.Length - 2, 2));
  704. var cc = bb.Select(a => int.Parse(a));
  705. SerialNum = cc.Max() + 1;
  706. }
  707. entity.EmpNo = strHead + SerialNum.ToString().PadLeft(2, '0');
  708. }
  709. entity.Create();
  710. }
  711. this.BaseRepository("CollegeMIS").Insert(entity);
  712. }
  713. }
  714. catch (Exception ex)
  715. {
  716. if (ex is ExceptionEx)
  717. {
  718. throw;
  719. }
  720. else
  721. {
  722. throw ExceptionEx.ThrowServiceException(ex);
  723. }
  724. }
  725. }
  726. public void UpdatePhoto(string id, string photo)
  727. {
  728. BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set Photo='" + photo + "' where EmpId='" + id + "'");
  729. }
  730. /// <summary>
  731. /// 保存实体数据(新增、修改)
  732. /// <param name="keyValue">主键</param>
  733. /// <summary>
  734. /// <returns></returns>
  735. public void SaveEntity(UserInfo userInfo, string keyValue, EmpInfoEntity entity)
  736. {
  737. try
  738. {
  739. if (!string.IsNullOrEmpty(keyValue))
  740. {
  741. entity.Modify(keyValue, userInfo);
  742. this.BaseRepository("CollegeMIS").Update(entity);
  743. }
  744. else
  745. {
  746. entity.Create(userInfo);
  747. this.BaseRepository("CollegeMIS").Insert(entity);
  748. }
  749. }
  750. catch (Exception ex)
  751. {
  752. if (ex is ExceptionEx)
  753. {
  754. throw;
  755. }
  756. else
  757. {
  758. throw ExceptionEx.ThrowServiceException(ex);
  759. }
  760. }
  761. }
  762. /// <summary>
  763. /// 保存部门、系部
  764. /// <param name="keyValue">主键</param>
  765. /// <summary>
  766. /// <returns></returns>
  767. public void SaveEditEntity(string keyValue, EmpInfoEntity entity)
  768. {
  769. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  770. try
  771. {
  772. if (!string.IsNullOrEmpty(keyValue))
  773. {
  774. if (keyValue.IndexOf(',') == -1)
  775. {
  776. var model = db.FindEntity<EmpInfoEntity>(keyValue);
  777. if (model != null)
  778. {
  779. if (!string.IsNullOrEmpty(entity.F_CompanyId))
  780. {
  781. model.F_CompanyId = entity.F_CompanyId;
  782. }
  783. if (!string.IsNullOrEmpty(entity.F_DepartmentId))
  784. {
  785. model.F_DepartmentId = entity.F_DepartmentId;
  786. }
  787. if (!string.IsNullOrEmpty(entity.DeptNo))
  788. {
  789. model.DeptNo = entity.DeptNo;
  790. }
  791. db.Update(model);
  792. }
  793. }
  794. else
  795. {
  796. foreach (var item in keyValue.Split(','))
  797. {
  798. var model = db.FindEntity<EmpInfoEntity>(item);
  799. if (model != null)
  800. {
  801. if (!string.IsNullOrEmpty(entity.F_CompanyId))
  802. {
  803. model.F_CompanyId = entity.F_CompanyId;
  804. }
  805. if (!string.IsNullOrEmpty(entity.F_DepartmentId))
  806. {
  807. model.F_DepartmentId = entity.F_DepartmentId;
  808. }
  809. if (!string.IsNullOrEmpty(entity.DeptNo))
  810. {
  811. model.DeptNo = entity.DeptNo;
  812. }
  813. db.Update(model);
  814. }
  815. }
  816. }
  817. }
  818. db.Commit();
  819. }
  820. catch (Exception ex)
  821. {
  822. db.Rollback();
  823. if (ex is ExceptionEx)
  824. {
  825. throw;
  826. }
  827. else
  828. {
  829. throw ExceptionEx.ThrowServiceException(ex);
  830. }
  831. }
  832. }
  833. /// <summary>
  834. /// 修改二维码状态
  835. /// </summary>
  836. /// <param name="keyValue"></param>
  837. /// <param name="QRCodeStatus"></param>
  838. public void UpdateQRCodeStatus(string keyValue, int QRCodeStatus)
  839. {
  840. try
  841. {
  842. if (keyValue.Contains(","))
  843. {
  844. keyValue = string.Join("','", keyValue.Split(','));
  845. }
  846. this.BaseRepository("CollegeMIS").ExecuteBySql($"update EmpInfo set QRCodeStatus='{QRCodeStatus}' where EmpId in ('{keyValue}')");
  847. }
  848. catch (Exception ex)
  849. {
  850. if (ex is ExceptionEx)
  851. {
  852. throw;
  853. }
  854. else
  855. {
  856. throw ExceptionEx.ThrowServiceException(ex);
  857. }
  858. }
  859. }
  860. #endregion
  861. }
  862. }