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.
 
 
 
 
 
 

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