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.
 
 
 
 
 
 

866 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. 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 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(Config.GetValue("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. userbase.F_Order = tEntity.F_Order;
  443. userIBLL.SaveEntity(null, userbase);
  444. studentList.Add(userbase);
  445. }
  446. if (studentList.Any())
  447. {
  448. string s = studentList.Select(m => m.F_UserId).Aggregate((current, userEntity) => current + "," + userEntity);
  449. userRelationIBLL.SaveEntityList2(roleId, 1, s);
  450. }
  451. }
  452. catch (Exception ex)
  453. {
  454. if (ex is ExceptionEx)
  455. {
  456. throw;
  457. }
  458. else
  459. {
  460. throw ExceptionEx.ThrowServiceException(ex);
  461. }
  462. }
  463. }
  464. public void UpdateAccount(string empId = null)
  465. {
  466. try
  467. {
  468. UserIBLL userIBLL = new UserBLL();
  469. var teacherList = new List<EmpInfoEntity>();
  470. if (empId != null)
  471. {
  472. var listIds = empId.Split(',');
  473. teacherList = this.BaseRepository("CollegeMIS")
  474. .FindList<EmpInfoEntity>(a => listIds.Contains(a.EmpId)).ToList();
  475. }
  476. else
  477. {
  478. teacherList = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>().ToList();
  479. }
  480. var baseTeacherList = userIBLL.GetAllList().Where(m => m.F_Description == "教师");
  481. foreach (var baseTeacher in baseTeacherList)
  482. {
  483. var num = 0;
  484. var teacher = teacherList.FirstOrDefault(a => a.EmpNo == baseTeacher.F_Account);
  485. if (teacher != null)
  486. {
  487. if (baseTeacher.F_Gender != Convert.ToInt32(teacher.GenderNo))
  488. {
  489. baseTeacher.F_Gender = Convert.ToInt32(teacher.GenderNo);
  490. num++;
  491. }
  492. if (baseTeacher.F_Mobile != teacher.mobile)
  493. {
  494. baseTeacher.F_Mobile = teacher.mobile;
  495. num++;
  496. }
  497. if (baseTeacher.F_CompanyId != teacher.F_CompanyId)
  498. {
  499. baseTeacher.F_CompanyId = teacher.F_CompanyId;
  500. num++;
  501. }
  502. if (baseTeacher.F_DepartmentId != teacher.F_DepartmentId)
  503. {
  504. baseTeacher.F_DepartmentId = teacher.F_DepartmentId;
  505. num++;
  506. }
  507. if (baseTeacher.F_RealName != teacher.EmpName)
  508. {
  509. baseTeacher.F_RealName = teacher.EmpName;
  510. num++;
  511. }
  512. if (baseTeacher.F_IdentityCardNo != teacher.IdentityCardNo)
  513. {
  514. baseTeacher.F_IdentityCardNo = teacher.IdentityCardNo;
  515. num++;
  516. }
  517. if (num > 0)
  518. {
  519. userIBLL.UpdateEntity(baseTeacher);
  520. }
  521. }
  522. }
  523. }
  524. catch (Exception ex)
  525. {
  526. if (ex is ExceptionEx)
  527. {
  528. throw;
  529. }
  530. else
  531. {
  532. throw ExceptionEx.ThrowServiceException(ex);
  533. }
  534. }
  535. }
  536. public void Lock(string keyValue)
  537. {
  538. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  539. try
  540. {
  541. //单个启用
  542. //this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=1 where EmpId='" + keyValue + "'");
  543. //多个启用
  544. var keyValueArr = keyValue.Split(',');
  545. foreach (var item in keyValueArr)
  546. {
  547. db.ExecuteBySql("update EmpInfo set CheckMark=1 where EmpId='" + item + "'");
  548. }
  549. db.Commit();
  550. }
  551. catch (Exception ex)
  552. {
  553. db.Rollback();
  554. if (ex is ExceptionEx)
  555. {
  556. throw;
  557. }
  558. else
  559. {
  560. throw ExceptionEx.ThrowServiceException(ex);
  561. }
  562. }
  563. }
  564. public void UnLock(string keyValue)
  565. {
  566. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  567. try
  568. {
  569. //单个停用
  570. //this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=0 where EmpId='" + keyValue + "'");
  571. //多个停用
  572. var keyValueArr = keyValue.Split(',');
  573. foreach (var item in keyValueArr)
  574. {
  575. db.ExecuteBySql("update EmpInfo set CheckMark=0 where EmpId='" + item + "'");
  576. }
  577. db.Commit();
  578. }
  579. catch (Exception ex)
  580. {
  581. db.Rollback();
  582. if (ex is ExceptionEx)
  583. {
  584. throw;
  585. }
  586. else
  587. {
  588. throw ExceptionEx.ThrowServiceException(ex);
  589. }
  590. }
  591. }
  592. /// <summary>
  593. /// 审核全部
  594. /// </summary>
  595. public void CheckAll()
  596. {
  597. try
  598. {
  599. this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=1 ");
  600. }
  601. catch (Exception ex)
  602. {
  603. if (ex is ExceptionEx)
  604. {
  605. throw;
  606. }
  607. else
  608. {
  609. throw ExceptionEx.ThrowServiceException(ex);
  610. }
  611. }
  612. }
  613. /// <summary>
  614. /// 删除实体数据
  615. /// <param name="keyValue">主键</param>
  616. /// <summary>
  617. /// <returns></returns>
  618. public void DeleteEntity(string keyValue)
  619. {
  620. try
  621. {
  622. //单个删除
  623. //this.BaseRepository("CollegeMIS").Delete<EmpInfoEntity>(t => t.EmpId == keyValue);
  624. //多个删除
  625. var keyValueArr = keyValue.Split(',');
  626. foreach (var item in keyValueArr)
  627. {
  628. var empinfo = this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(t => t.EmpId == item);
  629. var userinfo = BaseRepository().FindEntity<UserEntity>(m => m.F_Account == empinfo.EmpNo);
  630. if (userinfo != null)
  631. {
  632. BaseRepository().Delete<UserRelationEntity>(m => m.F_UserId == userinfo.F_UserId);
  633. BaseRepository().Delete<UserEntity>(userinfo);
  634. }
  635. this.BaseRepository("CollegeMIS").Delete<EmpInfoEntity>(empinfo);
  636. }
  637. }
  638. catch (Exception ex)
  639. {
  640. if (ex is ExceptionEx)
  641. {
  642. throw;
  643. }
  644. else
  645. {
  646. throw ExceptionEx.ThrowServiceException(ex);
  647. }
  648. }
  649. }
  650. /// <summary>
  651. /// 保存实体数据(新增、修改)
  652. /// <param name="keyValue">主键</param>
  653. /// <summary>
  654. /// <returns></returns>
  655. public void SaveEntity(string keyValue, EmpInfoEntity entity)
  656. {
  657. try
  658. {
  659. UserIBLL userIBLL = new UserBLL();
  660. if (!string.IsNullOrEmpty(keyValue))
  661. {
  662. entity.Modify(keyValue);
  663. this.BaseRepository("CollegeMIS").Update(entity);
  664. var annexesFileEntity = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_FolderId == entity.Photo);
  665. var url = "";
  666. if (annexesFileEntity != null)
  667. {
  668. url = annexesFileEntity.F_FilePath;
  669. url = "/" + url.Substring(url.IndexOf("Resource"));
  670. }
  671. var baseUser = userIBLL.GetEntityByAccount(entity.EmpNo);
  672. if (baseUser != null)
  673. {
  674. baseUser.F_HeadIcon = url;
  675. baseUser.F_RealName = entity.EmpName;
  676. baseUser.F_IdentityCardNo = entity.IdentityCardNo;
  677. baseUser.F_Mobile = entity.mobile;
  678. userIBLL.SaveEntity(baseUser.F_UserId, baseUser);
  679. }
  680. }
  681. else
  682. {
  683. if (string.IsNullOrEmpty(entity.EmpId))
  684. {
  685. //生成编号
  686. var ruleName = ConfigurationManager.AppSettings["EmpNoRule"];//
  687. if (ruleName == "jy")
  688. {
  689. var strHead = DateTime.Now.ToString("yyyyMM");
  690. var SerialNum = 1;
  691. var empInfoEntities = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(a => a.EmpNo.Contains(strHead));
  692. if (empInfoEntities.Count() > 0)
  693. {
  694. var aa = empInfoEntities.Where(a => a.EmpNo.Length >= 8);
  695. var bb = aa.Select(a => a.EmpNo.Substring(a.EmpNo.Length - 2, 2));
  696. var cc = bb.Select(a => int.Parse(a));
  697. SerialNum = cc.Max() + 1;
  698. }
  699. entity.EmpNo = strHead + SerialNum.ToString().PadLeft(2, '0');
  700. }
  701. entity.Create();
  702. }
  703. this.BaseRepository("CollegeMIS").Insert(entity);
  704. }
  705. }
  706. catch (Exception ex)
  707. {
  708. if (ex is ExceptionEx)
  709. {
  710. throw;
  711. }
  712. else
  713. {
  714. throw ExceptionEx.ThrowServiceException(ex);
  715. }
  716. }
  717. }
  718. public void UpdatePhoto(string id, string photo)
  719. {
  720. BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set Photo='" + photo + "' where EmpId='" + id + "'");
  721. }
  722. /// <summary>
  723. /// 保存实体数据(新增、修改)
  724. /// <param name="keyValue">主键</param>
  725. /// <summary>
  726. /// <returns></returns>
  727. public void SaveEntity(UserInfo userInfo, string keyValue, EmpInfoEntity entity)
  728. {
  729. try
  730. {
  731. if (!string.IsNullOrEmpty(keyValue))
  732. {
  733. entity.Modify(keyValue, userInfo);
  734. this.BaseRepository("CollegeMIS").Update(entity);
  735. }
  736. else
  737. {
  738. entity.Create(userInfo);
  739. this.BaseRepository("CollegeMIS").Insert(entity);
  740. }
  741. }
  742. catch (Exception ex)
  743. {
  744. if (ex is ExceptionEx)
  745. {
  746. throw;
  747. }
  748. else
  749. {
  750. throw ExceptionEx.ThrowServiceException(ex);
  751. }
  752. }
  753. }
  754. /// <summary>
  755. /// 保存部门、系部
  756. /// <param name="keyValue">主键</param>
  757. /// <summary>
  758. /// <returns></returns>
  759. public void SaveEditEntity(string keyValue, EmpInfoEntity entity)
  760. {
  761. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  762. try
  763. {
  764. if (!string.IsNullOrEmpty(keyValue))
  765. {
  766. if (keyValue.IndexOf(',') == -1)
  767. {
  768. var model = db.FindEntity<EmpInfoEntity>(keyValue);
  769. if (model != null)
  770. {
  771. if (!string.IsNullOrEmpty(entity.F_CompanyId))
  772. {
  773. model.F_CompanyId = entity.F_CompanyId;
  774. }
  775. if (!string.IsNullOrEmpty(entity.F_DepartmentId))
  776. {
  777. model.F_DepartmentId = entity.F_DepartmentId;
  778. }
  779. if (!string.IsNullOrEmpty(entity.DeptNo))
  780. {
  781. model.DeptNo = entity.DeptNo;
  782. }
  783. db.Update(model);
  784. }
  785. }
  786. else
  787. {
  788. foreach (var item in keyValue.Split(','))
  789. {
  790. var model = db.FindEntity<EmpInfoEntity>(item);
  791. if (model != null)
  792. {
  793. if (!string.IsNullOrEmpty(entity.F_CompanyId))
  794. {
  795. model.F_CompanyId = entity.F_CompanyId;
  796. }
  797. if (!string.IsNullOrEmpty(entity.F_DepartmentId))
  798. {
  799. model.F_DepartmentId = entity.F_DepartmentId;
  800. }
  801. if (!string.IsNullOrEmpty(entity.DeptNo))
  802. {
  803. model.DeptNo = entity.DeptNo;
  804. }
  805. db.Update(model);
  806. }
  807. }
  808. }
  809. }
  810. db.Commit();
  811. }
  812. catch (Exception ex)
  813. {
  814. db.Rollback();
  815. if (ex is ExceptionEx)
  816. {
  817. throw;
  818. }
  819. else
  820. {
  821. throw ExceptionEx.ThrowServiceException(ex);
  822. }
  823. }
  824. }
  825. #endregion
  826. }
  827. }