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.
 
 
 
 
 
 

846 lines
31 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.* ");
  38. strSql.Append(" FROM EmpInfo t ");
  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. /// <summary>
  343. /// 教师年龄比例
  344. /// </summary>
  345. /// <returns></returns>
  346. public EmpInfoEntity GetEmpInfoAgeRate()
  347. {
  348. try
  349. {
  350. var strSql = new StringBuilder();
  351. strSql.Append(@"select
  352. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 60 then 1 else 0 end) as age1,
  353. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 50 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 60 then 1 else 0 end) as age2,
  354. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 40 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 50 then 1 else 0 end) as age3,
  355. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 30 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 40 then 1 else 0 end) as age4,
  356. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 20 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 30 then 1 else 0 end) as age5
  357. from empinfo t where t.Birthday is not null");
  358. return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(strSql.ToString(), null);
  359. }
  360. catch (Exception ex)
  361. {
  362. if (ex is ExceptionEx)
  363. {
  364. throw;
  365. }
  366. else
  367. {
  368. throw ExceptionEx.ThrowServiceException(ex);
  369. }
  370. }
  371. }
  372. #endregion
  373. #region 提交数据
  374. /// <summary>
  375. /// 生成教师帐号
  376. /// </summary>
  377. public void GenerateAccout(string empId = null)
  378. {
  379. try
  380. {
  381. var teacherList = new List<EmpInfoEntity>();
  382. if (empId != null)
  383. {
  384. var listIds = empId.Split(',');
  385. teacherList = this.BaseRepository("CollegeMIS")
  386. .FindList<EmpInfoEntity>(a => listIds.Contains(a.EmpId) && a.CheckMark == true).ToList();
  387. }
  388. else
  389. {
  390. teacherList = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(a => a.CheckMark == true).ToList();
  391. }
  392. UserRelationIBLL userRelationIBLL = new UserRelationBLL();
  393. UserIBLL userIBLL = new UserBLL();
  394. var alluserlist = userIBLL.GetAllList().Where(m => m.F_Description == "教师");
  395. var roleId = Config.GetValue("GenerateTeachersRoleId");
  396. var studentList = new List<UserEntity>();
  397. foreach (var tEntity in teacherList)
  398. {
  399. if (alluserlist.Count(m => m.F_Account == tEntity.EmpNo) > 0)
  400. {
  401. continue;
  402. }
  403. var annexesFileEntity = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_FolderId == tEntity.Photo);
  404. var url = "";
  405. if (annexesFileEntity != null)
  406. {
  407. url = annexesFileEntity.F_FilePath;
  408. url = "/Resource/" + url.Substring(url.IndexOf(annexesFileEntity.F_CreateUserId), url.Length - url.IndexOf(annexesFileEntity.F_CreateUserId));
  409. }
  410. UserEntity userbase = new UserEntity();
  411. userbase.F_Account = tEntity.EmpNo;
  412. userbase.F_RealName = tEntity.EmpName;
  413. userbase.F_EnCode = tEntity.EmpNo;
  414. userbase.F_Password = Md5Helper.Encrypt(Config.GetValue("defaultpwd"), 32).ToLower();
  415. userbase.F_HeadIcon = string.IsNullOrEmpty(url) ? Config.GetValue("defaultheadimg") : url;
  416. userbase.F_Gender = tEntity.GenderNo.HasValue ? Convert.ToInt32(tEntity.GenderNo.Value) : 1;
  417. userbase.F_DeleteMark = 0;
  418. userbase.F_EnabledMark = 1;
  419. userbase.F_Mobile = tEntity.mobile;
  420. userbase.F_Description = "教师";
  421. userbase.F_CompanyId = tEntity.F_CompanyId;
  422. userbase.F_DepartmentId = tEntity.F_DepartmentId;
  423. userbase.F_IdentityCardNo = tEntity.IdentityCardNo;
  424. userbase.F_Order = tEntity.F_Order;
  425. userIBLL.SaveEntity(null, userbase);
  426. studentList.Add(userbase);
  427. }
  428. if (studentList.Any())
  429. {
  430. string s = studentList.Select(m => m.F_UserId).Aggregate((current, userEntity) => current + "," + userEntity);
  431. userRelationIBLL.SaveEntityList2(roleId, 1, s);
  432. }
  433. }
  434. catch (Exception ex)
  435. {
  436. if (ex is ExceptionEx)
  437. {
  438. throw;
  439. }
  440. else
  441. {
  442. throw ExceptionEx.ThrowServiceException(ex);
  443. }
  444. }
  445. }
  446. public void UpdateAccount(string empId = null)
  447. {
  448. try
  449. {
  450. UserIBLL userIBLL = new UserBLL();
  451. var teacherList = new List<EmpInfoEntity>();
  452. if (empId != null)
  453. {
  454. var listIds = empId.Split(',');
  455. teacherList = this.BaseRepository("CollegeMIS")
  456. .FindList<EmpInfoEntity>(a => listIds.Contains(a.EmpId)).ToList();
  457. }
  458. else
  459. {
  460. teacherList = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>().ToList();
  461. }
  462. var baseTeacherList = userIBLL.GetAllList().Where(m => m.F_Description == "教师");
  463. foreach (var baseTeacher in baseTeacherList)
  464. {
  465. var num = 0;
  466. var teacher = teacherList.FirstOrDefault(a => a.EmpNo == baseTeacher.F_Account);
  467. if (teacher != null)
  468. {
  469. if (baseTeacher.F_Gender != Convert.ToInt32(teacher.GenderNo))
  470. {
  471. baseTeacher.F_Gender = Convert.ToInt32(teacher.GenderNo);
  472. num++;
  473. }
  474. if (baseTeacher.F_Mobile != teacher.mobile)
  475. {
  476. baseTeacher.F_Mobile = teacher.mobile;
  477. num++;
  478. }
  479. if (baseTeacher.F_CompanyId != teacher.F_CompanyId)
  480. {
  481. baseTeacher.F_CompanyId = teacher.F_CompanyId;
  482. num++;
  483. }
  484. if (baseTeacher.F_DepartmentId != teacher.F_DepartmentId)
  485. {
  486. baseTeacher.F_DepartmentId = teacher.F_DepartmentId;
  487. num++;
  488. }
  489. if (baseTeacher.F_RealName != teacher.EmpName)
  490. {
  491. baseTeacher.F_RealName = teacher.EmpName;
  492. num++;
  493. }
  494. if (baseTeacher.F_IdentityCardNo != teacher.IdentityCardNo)
  495. {
  496. baseTeacher.F_IdentityCardNo = teacher.IdentityCardNo;
  497. num++;
  498. }
  499. if (num > 0)
  500. {
  501. userIBLL.UpdateEntity(baseTeacher);
  502. }
  503. }
  504. }
  505. }
  506. catch (Exception ex)
  507. {
  508. if (ex is ExceptionEx)
  509. {
  510. throw;
  511. }
  512. else
  513. {
  514. throw ExceptionEx.ThrowServiceException(ex);
  515. }
  516. }
  517. }
  518. public void Lock(string keyValue)
  519. {
  520. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  521. try
  522. {
  523. //单个启用
  524. //this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=1 where EmpId='" + keyValue + "'");
  525. //多个启用
  526. var keyValueArr = keyValue.Split(',');
  527. foreach (var item in keyValueArr)
  528. {
  529. db.ExecuteBySql("update EmpInfo set CheckMark=1 where EmpId='" + item + "'");
  530. }
  531. db.Commit();
  532. }
  533. catch (Exception ex)
  534. {
  535. db.Rollback();
  536. if (ex is ExceptionEx)
  537. {
  538. throw;
  539. }
  540. else
  541. {
  542. throw ExceptionEx.ThrowServiceException(ex);
  543. }
  544. }
  545. }
  546. public void UnLock(string keyValue)
  547. {
  548. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  549. try
  550. {
  551. //单个停用
  552. //this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=0 where EmpId='" + keyValue + "'");
  553. //多个停用
  554. var keyValueArr = keyValue.Split(',');
  555. foreach (var item in keyValueArr)
  556. {
  557. db.ExecuteBySql("update EmpInfo set CheckMark=0 where EmpId='" + item + "'");
  558. }
  559. db.Commit();
  560. }
  561. catch (Exception ex)
  562. {
  563. db.Rollback();
  564. if (ex is ExceptionEx)
  565. {
  566. throw;
  567. }
  568. else
  569. {
  570. throw ExceptionEx.ThrowServiceException(ex);
  571. }
  572. }
  573. }
  574. /// <summary>
  575. /// 审核全部
  576. /// </summary>
  577. public void CheckAll()
  578. {
  579. try
  580. {
  581. this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=1 ");
  582. }
  583. catch (Exception ex)
  584. {
  585. if (ex is ExceptionEx)
  586. {
  587. throw;
  588. }
  589. else
  590. {
  591. throw ExceptionEx.ThrowServiceException(ex);
  592. }
  593. }
  594. }
  595. /// <summary>
  596. /// 删除实体数据
  597. /// <param name="keyValue">主键</param>
  598. /// <summary>
  599. /// <returns></returns>
  600. public void DeleteEntity(string keyValue)
  601. {
  602. try
  603. {
  604. //单个删除
  605. //this.BaseRepository("CollegeMIS").Delete<EmpInfoEntity>(t => t.EmpId == keyValue);
  606. //多个删除
  607. var keyValueArr = keyValue.Split(',');
  608. foreach (var item in keyValueArr)
  609. {
  610. var empinfo = this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(t => t.EmpId == item);
  611. var userinfo = BaseRepository().FindEntity<UserEntity>(m => m.F_Account == empinfo.EmpNo);
  612. if (userinfo != null)
  613. {
  614. BaseRepository().Delete<UserRelationEntity>(m => m.F_UserId == userinfo.F_UserId);
  615. BaseRepository().Delete<UserEntity>(userinfo);
  616. }
  617. this.BaseRepository("CollegeMIS").Delete<EmpInfoEntity>(empinfo);
  618. }
  619. }
  620. catch (Exception ex)
  621. {
  622. if (ex is ExceptionEx)
  623. {
  624. throw;
  625. }
  626. else
  627. {
  628. throw ExceptionEx.ThrowServiceException(ex);
  629. }
  630. }
  631. }
  632. /// <summary>
  633. /// 保存实体数据(新增、修改)
  634. /// <param name="keyValue">主键</param>
  635. /// <summary>
  636. /// <returns></returns>
  637. public void SaveEntity(string keyValue, EmpInfoEntity entity)
  638. {
  639. try
  640. {
  641. UserIBLL userIBLL = new UserBLL();
  642. if (!string.IsNullOrEmpty(keyValue))
  643. {
  644. entity.Modify(keyValue);
  645. this.BaseRepository("CollegeMIS").Update(entity);
  646. var annexesFileEntity = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_FolderId == entity.Photo);
  647. var url = "";
  648. if (annexesFileEntity != null)
  649. {
  650. url = annexesFileEntity.F_FilePath;
  651. url = "/" + url.Substring(url.IndexOf("Resource"));
  652. }
  653. var baseUser = userIBLL.GetEntityByAccount(entity.EmpNo);
  654. if (baseUser != null)
  655. {
  656. baseUser.F_HeadIcon = url;
  657. baseUser.F_RealName = entity.EmpName;
  658. baseUser.F_IdentityCardNo = entity.IdentityCardNo;
  659. baseUser.F_Mobile = entity.mobile;
  660. userIBLL.SaveEntity(baseUser.F_UserId, baseUser);
  661. }
  662. }
  663. else
  664. {
  665. if (string.IsNullOrEmpty(entity.EmpId))
  666. {
  667. //生成编号
  668. var ruleName = ConfigurationManager.AppSettings["EmpNoRule"];//
  669. if (ruleName == "jy")
  670. {
  671. var strHead = DateTime.Now.ToString("yyyyMM");
  672. var SerialNum = 1;
  673. var empInfoEntities = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(a => a.EmpNo.Contains(strHead));
  674. if (empInfoEntities.Count() > 0)
  675. {
  676. var aa = empInfoEntities.Where(a => a.EmpNo.Length >= 8);
  677. var bb = aa.Select(a => a.EmpNo.Substring(a.EmpNo.Length - 2, 2));
  678. var cc = bb.Select(a => int.Parse(a));
  679. SerialNum = cc.Max() + 1;
  680. }
  681. entity.EmpNo = strHead + SerialNum.ToString().PadLeft(2, '0');
  682. }
  683. entity.Create();
  684. }
  685. this.BaseRepository("CollegeMIS").Insert(entity);
  686. }
  687. }
  688. catch (Exception ex)
  689. {
  690. if (ex is ExceptionEx)
  691. {
  692. throw;
  693. }
  694. else
  695. {
  696. throw ExceptionEx.ThrowServiceException(ex);
  697. }
  698. }
  699. }
  700. public void UpdatePhoto(string id, string photo)
  701. {
  702. BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set Photo='" + photo + "' where EmpId='" + id + "'");
  703. }
  704. /// <summary>
  705. /// 保存实体数据(新增、修改)
  706. /// <param name="keyValue">主键</param>
  707. /// <summary>
  708. /// <returns></returns>
  709. public void SaveEntity(UserInfo userInfo, string keyValue, EmpInfoEntity entity)
  710. {
  711. try
  712. {
  713. if (!string.IsNullOrEmpty(keyValue))
  714. {
  715. entity.Modify(keyValue, userInfo);
  716. this.BaseRepository("CollegeMIS").Update(entity);
  717. }
  718. else
  719. {
  720. entity.Create(userInfo);
  721. this.BaseRepository("CollegeMIS").Insert(entity);
  722. }
  723. }
  724. catch (Exception ex)
  725. {
  726. if (ex is ExceptionEx)
  727. {
  728. throw;
  729. }
  730. else
  731. {
  732. throw ExceptionEx.ThrowServiceException(ex);
  733. }
  734. }
  735. }
  736. /// <summary>
  737. /// 保存部门、系部
  738. /// <param name="keyValue">主键</param>
  739. /// <summary>
  740. /// <returns></returns>
  741. public void SaveEditEntity(string keyValue, EmpInfoEntity entity)
  742. {
  743. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  744. try
  745. {
  746. if (!string.IsNullOrEmpty(keyValue))
  747. {
  748. if (keyValue.IndexOf(',') == -1)
  749. {
  750. var model = db.FindEntity<EmpInfoEntity>(keyValue);
  751. if (model != null)
  752. {
  753. if (!string.IsNullOrEmpty(entity.F_CompanyId))
  754. {
  755. model.F_CompanyId = entity.F_CompanyId;
  756. }
  757. if (!string.IsNullOrEmpty(entity.F_DepartmentId))
  758. {
  759. model.F_DepartmentId = entity.F_DepartmentId;
  760. }
  761. //if (!string.IsNullOrEmpty(entity.DeptNo))
  762. //{
  763. // model.DeptNo = entity.DeptNo;
  764. //}
  765. db.Update(model);
  766. }
  767. }
  768. else
  769. {
  770. foreach (var item in keyValue.Split(','))
  771. {
  772. var model = db.FindEntity<EmpInfoEntity>(item);
  773. if (model != null)
  774. {
  775. if (!string.IsNullOrEmpty(entity.F_CompanyId))
  776. {
  777. model.F_CompanyId = entity.F_CompanyId;
  778. }
  779. if (!string.IsNullOrEmpty(entity.F_DepartmentId))
  780. {
  781. model.F_DepartmentId = entity.F_DepartmentId;
  782. }
  783. //if (!string.IsNullOrEmpty(entity.DeptNo))
  784. //{
  785. // model.DeptNo = entity.DeptNo;
  786. //}
  787. db.Update(model);
  788. }
  789. }
  790. }
  791. }
  792. db.Commit();
  793. }
  794. catch (Exception ex)
  795. {
  796. db.Rollback();
  797. if (ex is ExceptionEx)
  798. {
  799. throw;
  800. }
  801. else
  802. {
  803. throw ExceptionEx.ThrowServiceException(ex);
  804. }
  805. }
  806. }
  807. #endregion
  808. }
  809. }