Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 
 

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