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.
 
 
 
 
 
 

907 lines
34 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. var dept = this.BaseRepository().FindList<DepartmentEntity>();
  186. var list= this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>();
  187. foreach (var item in list)
  188. {
  189. item.DepartmentName = dept.FirstOrDefault(x=>x.F_DepartmentId==item.F_DepartmentId)?.F_FullName;
  190. item.DepartmentNo = dept.FirstOrDefault(x => x.F_DepartmentId == item.F_DepartmentId)?.F_EnCode; ;
  191. }
  192. return list;
  193. }
  194. catch (Exception ex)
  195. {
  196. if (ex is ExceptionEx)
  197. {
  198. throw;
  199. }
  200. else
  201. {
  202. throw ExceptionEx.ThrowServiceException(ex);
  203. }
  204. }
  205. }
  206. /// <summary>
  207. /// 获取页面显示列表数据
  208. /// <summary>
  209. /// <param name="queryJson">查询参数</param>
  210. /// <returns></returns>
  211. public IEnumerable<EmpInfoEntity> GetList(string queryJson)
  212. {
  213. try
  214. {
  215. var strSql = new StringBuilder();
  216. strSql.Append("SELECT ");
  217. strSql.Append(@"
  218. t.EmpId,
  219. t.EmpNo,
  220. t.EmpName,
  221. t.F_CompanyId,
  222. t.F_DepartmentId,
  223. t.DeptNo,
  224. t.GenderNo,
  225. t.Photo,
  226. t.Birthday,
  227. t.NationalityNo,
  228. t.PartyFaceNo,
  229. t.IdentityCardNo,
  230. t.CultureDegreeNo,
  231. t.DegreeNo,
  232. t.mobile,
  233. t.EMail
  234. ");
  235. strSql.Append(" FROM EmpInfo t ");
  236. strSql.Append(" WHERE 1=1 ");
  237. var queryParam = queryJson.ToJObject();
  238. // 虚拟参数
  239. var dp = new DynamicParameters(new { });
  240. return this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(strSql.ToString(), dp);
  241. }
  242. catch (Exception ex)
  243. {
  244. if (ex is ExceptionEx)
  245. {
  246. throw;
  247. }
  248. else
  249. {
  250. throw ExceptionEx.ThrowServiceException(ex);
  251. }
  252. }
  253. }
  254. /// <summary>
  255. /// 获取EmpInfo表实体数据
  256. /// <param name="keyValue">主键</param>
  257. /// <summary>
  258. /// <returns></returns>
  259. public EmpInfoEntity GetEmpInfoEntity(string keyValue)
  260. {
  261. try
  262. {
  263. return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(keyValue);
  264. }
  265. catch (Exception ex)
  266. {
  267. if (ex is ExceptionEx)
  268. {
  269. throw;
  270. }
  271. else
  272. {
  273. throw ExceptionEx.ThrowServiceException(ex);
  274. }
  275. }
  276. }
  277. public EmpInfoEntity GetEmpInfoEntityByNo(string keyValue)
  278. {
  279. try
  280. {
  281. return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(m => m.EmpNo == keyValue);
  282. }
  283. catch (Exception ex)
  284. {
  285. if (ex is ExceptionEx)
  286. {
  287. throw;
  288. }
  289. else
  290. {
  291. throw ExceptionEx.ThrowServiceException(ex);
  292. }
  293. }
  294. }
  295. public List<EmpInfoEntity> GetEmpInfoEntityByDepartment(string keyValue)
  296. {
  297. try
  298. {
  299. return this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(m => m.F_DepartmentId == keyValue).ToList();
  300. }
  301. catch (Exception ex)
  302. {
  303. if (ex is ExceptionEx)
  304. {
  305. throw;
  306. }
  307. else
  308. {
  309. throw ExceptionEx.ThrowServiceException(ex);
  310. }
  311. }
  312. }
  313. public EmpInfoEntity GetEmpInfoEntityById(string keyValue)
  314. {
  315. try
  316. {
  317. return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(m => m.EmpId == keyValue);
  318. }
  319. catch (Exception ex)
  320. {
  321. if (ex is ExceptionEx)
  322. {
  323. throw;
  324. }
  325. else
  326. {
  327. throw ExceptionEx.ThrowServiceException(ex);
  328. }
  329. }
  330. }
  331. public IEnumerable<EmpInfoEntity> GetEmpInfoEntitiesByName(string name)
  332. {
  333. try
  334. {
  335. return this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(x => x.EmpName == name);
  336. }
  337. catch (Exception ex)
  338. {
  339. if (ex is ExceptionEx)
  340. {
  341. throw;
  342. }
  343. else
  344. {
  345. throw ExceptionEx.ThrowServiceException(ex);
  346. }
  347. }
  348. }
  349. public EmpInfoEntity GetEmpInfoEntityByIdCard(string idcard)
  350. {
  351. try
  352. {
  353. return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(m => m.IdentityCardNo == idcard);
  354. }
  355. catch (Exception ex)
  356. {
  357. if (ex is ExceptionEx)
  358. {
  359. throw;
  360. }
  361. else
  362. {
  363. throw ExceptionEx.ThrowServiceException(ex);
  364. }
  365. }
  366. }
  367. /// <summary>
  368. /// 教师年龄比例
  369. /// </summary>
  370. /// <returns></returns>
  371. public EmpInfoEntity GetEmpInfoAgeRate()
  372. {
  373. try
  374. {
  375. var strSql = new StringBuilder();
  376. strSql.Append(@"select
  377. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 60 then 1 else 0 end) as age1,
  378. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 50 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 60 then 1 else 0 end) as age2,
  379. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 40 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 50 then 1 else 0 end) as age3,
  380. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 30 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 40 then 1 else 0 end) as age4,
  381. sum(case when DATEDIFF(YYYY, t.Birthday, GETDATE()) > 20 and DATEDIFF(YYYY, t.Birthday, GETDATE()) <= 30 then 1 else 0 end) as age5
  382. from empinfo t where t.Birthday is not null");
  383. return this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(strSql.ToString(), null);
  384. }
  385. catch (Exception ex)
  386. {
  387. if (ex is ExceptionEx)
  388. {
  389. throw;
  390. }
  391. else
  392. {
  393. throw ExceptionEx.ThrowServiceException(ex);
  394. }
  395. }
  396. }
  397. #endregion
  398. #region 提交数据
  399. /// <summary>
  400. /// 生成教师帐号
  401. /// </summary>
  402. public void GenerateAccout(string empId = null)
  403. {
  404. try
  405. {
  406. var teacherList = new List<EmpInfoEntity>();
  407. if (empId != null)
  408. {
  409. var listIds = empId.Split(',');
  410. teacherList = this.BaseRepository("CollegeMIS")
  411. .FindList<EmpInfoEntity>(a => listIds.Contains(a.EmpId) && a.CheckMark == true).ToList();
  412. }
  413. else
  414. {
  415. teacherList = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(a => a.CheckMark == true).ToList();
  416. }
  417. UserRelationIBLL userRelationIBLL = new UserRelationBLL();
  418. UserIBLL userIBLL = new UserBLL();
  419. var alluserlist = userIBLL.GetAllList().Where(m => m.F_Description == "教师");
  420. var roleId = Config.GetValue("GenerateTeachersRoleId");
  421. var defaultpwd = Config.GetValue("defaultpwd");
  422. //读取默认密码配置中已启用的密码
  423. var Sys_DefaultPwdConfigEntity = this.BaseRepository().FindEntity<Sys_DefaultPwdConfigEntity>(x => x.IsEnabled == true);
  424. if (Sys_DefaultPwdConfigEntity != null)
  425. {
  426. defaultpwd = Sys_DefaultPwdConfigEntity.Pwd;
  427. }
  428. var studentList = new List<UserEntity>();
  429. foreach (var tEntity in teacherList)
  430. {
  431. if (alluserlist.Count(m => m.F_Account == tEntity.EmpNo) > 0)
  432. {
  433. continue;
  434. }
  435. var annexesFileEntity = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_FolderId == tEntity.Photo);
  436. var url = "";
  437. if (annexesFileEntity != null)
  438. {
  439. url = annexesFileEntity.F_FilePath;
  440. url = "/Resource/" + url.Substring(url.IndexOf(annexesFileEntity.F_CreateUserId), url.Length - url.IndexOf(annexesFileEntity.F_CreateUserId));
  441. }
  442. UserEntity userbase = new UserEntity();
  443. userbase.F_Account = tEntity.EmpNo;
  444. userbase.F_RealName = tEntity.EmpName;
  445. userbase.F_EnCode = tEntity.EmpNo;
  446. userbase.F_Password = Md5Helper.Encrypt(defaultpwd, 32).ToLower();
  447. userbase.F_HeadIcon = string.IsNullOrEmpty(url) ? Config.GetValue("defaultheadimg") : url;
  448. userbase.F_Gender = tEntity.GenderNo.HasValue ? Convert.ToInt32(tEntity.GenderNo.Value) : 1;
  449. userbase.F_DeleteMark = 0;
  450. userbase.F_EnabledMark = 1;
  451. userbase.F_Mobile = tEntity.mobile;
  452. userbase.F_Description = "教师";
  453. userbase.F_CompanyId = tEntity.F_CompanyId;
  454. userbase.F_DepartmentId = tEntity.F_DepartmentId;
  455. userbase.F_IdentityCardNo = tEntity.IdentityCardNo;
  456. userbase.F_Order = tEntity.F_Order;
  457. userIBLL.SaveEntity(null, userbase);
  458. studentList.Add(userbase);
  459. }
  460. if (studentList.Any())
  461. {
  462. string s = studentList.Select(m => m.F_UserId).Aggregate((current, userEntity) => current + "," + userEntity);
  463. userRelationIBLL.SaveEntityList2(roleId, 1, s);
  464. }
  465. }
  466. catch (Exception ex)
  467. {
  468. if (ex is ExceptionEx)
  469. {
  470. throw;
  471. }
  472. else
  473. {
  474. throw ExceptionEx.ThrowServiceException(ex);
  475. }
  476. }
  477. }
  478. public void UpdateAccount(string empId = null)
  479. {
  480. try
  481. {
  482. UserIBLL userIBLL = new UserBLL();
  483. var teacherList = new List<EmpInfoEntity>();
  484. if (empId != null)
  485. {
  486. var listIds = empId.Split(',');
  487. teacherList = this.BaseRepository("CollegeMIS")
  488. .FindList<EmpInfoEntity>(a => listIds.Contains(a.EmpId)).ToList();
  489. }
  490. else
  491. {
  492. teacherList = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>().ToList();
  493. }
  494. var baseTeacherList = userIBLL.GetAllList().Where(m => m.F_Description == "教师");
  495. foreach (var baseTeacher in baseTeacherList)
  496. {
  497. var num = 0;
  498. var teacher = teacherList.FirstOrDefault(a => a.EmpNo == baseTeacher.F_Account);
  499. if (teacher != null)
  500. {
  501. if (baseTeacher.F_Gender != Convert.ToInt32(teacher.GenderNo))
  502. {
  503. baseTeacher.F_Gender = Convert.ToInt32(teacher.GenderNo);
  504. num++;
  505. }
  506. if (baseTeacher.F_Mobile != teacher.mobile)
  507. {
  508. baseTeacher.F_Mobile = teacher.mobile;
  509. num++;
  510. }
  511. if (baseTeacher.F_CompanyId != teacher.F_CompanyId)
  512. {
  513. baseTeacher.F_CompanyId = teacher.F_CompanyId;
  514. num++;
  515. }
  516. if (baseTeacher.F_DepartmentId != teacher.F_DepartmentId)
  517. {
  518. baseTeacher.F_DepartmentId = teacher.F_DepartmentId;
  519. num++;
  520. }
  521. if (baseTeacher.F_RealName != teacher.EmpName)
  522. {
  523. baseTeacher.F_RealName = teacher.EmpName;
  524. num++;
  525. }
  526. if (baseTeacher.F_IdentityCardNo != teacher.IdentityCardNo)
  527. {
  528. baseTeacher.F_IdentityCardNo = teacher.IdentityCardNo;
  529. num++;
  530. }
  531. if (num > 0)
  532. {
  533. userIBLL.UpdateEntity(baseTeacher);
  534. }
  535. }
  536. }
  537. }
  538. catch (Exception ex)
  539. {
  540. if (ex is ExceptionEx)
  541. {
  542. throw;
  543. }
  544. else
  545. {
  546. throw ExceptionEx.ThrowServiceException(ex);
  547. }
  548. }
  549. }
  550. public void Lock(string keyValue)
  551. {
  552. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  553. try
  554. {
  555. //单个启用
  556. //this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=1 where EmpId='" + keyValue + "'");
  557. //多个启用
  558. var keyValueArr = keyValue.Split(',');
  559. foreach (var item in keyValueArr)
  560. {
  561. db.ExecuteBySql("update EmpInfo set CheckMark=1 where EmpId='" + item + "'");
  562. }
  563. db.Commit();
  564. }
  565. catch (Exception ex)
  566. {
  567. db.Rollback();
  568. if (ex is ExceptionEx)
  569. {
  570. throw;
  571. }
  572. else
  573. {
  574. throw ExceptionEx.ThrowServiceException(ex);
  575. }
  576. }
  577. }
  578. public void UnLock(string keyValue)
  579. {
  580. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  581. try
  582. {
  583. //单个停用
  584. //this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=0 where EmpId='" + keyValue + "'");
  585. //多个停用
  586. var keyValueArr = keyValue.Split(',');
  587. foreach (var item in keyValueArr)
  588. {
  589. db.ExecuteBySql("update EmpInfo set CheckMark=0 where EmpId='" + item + "'");
  590. }
  591. db.Commit();
  592. }
  593. catch (Exception ex)
  594. {
  595. db.Rollback();
  596. if (ex is ExceptionEx)
  597. {
  598. throw;
  599. }
  600. else
  601. {
  602. throw ExceptionEx.ThrowServiceException(ex);
  603. }
  604. }
  605. }
  606. /// <summary>
  607. /// 审核全部
  608. /// </summary>
  609. public void CheckAll()
  610. {
  611. try
  612. {
  613. this.BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set CheckMark=1 ");
  614. }
  615. catch (Exception ex)
  616. {
  617. if (ex is ExceptionEx)
  618. {
  619. throw;
  620. }
  621. else
  622. {
  623. throw ExceptionEx.ThrowServiceException(ex);
  624. }
  625. }
  626. }
  627. /// <summary>
  628. /// 删除实体数据
  629. /// <param name="keyValue">主键</param>
  630. /// <summary>
  631. /// <returns></returns>
  632. public void DeleteEntity(string keyValue)
  633. {
  634. try
  635. {
  636. //单个删除
  637. //this.BaseRepository("CollegeMIS").Delete<EmpInfoEntity>(t => t.EmpId == keyValue);
  638. //多个删除
  639. var keyValueArr = keyValue.Split(',');
  640. foreach (var item in keyValueArr)
  641. {
  642. var empinfo = this.BaseRepository("CollegeMIS").FindEntity<EmpInfoEntity>(t => t.EmpId == item);
  643. var userinfo = BaseRepository().FindEntity<UserEntity>(m => m.F_Account == empinfo.EmpNo);
  644. if (userinfo != null)
  645. {
  646. BaseRepository().Delete<UserRelationEntity>(m => m.F_UserId == userinfo.F_UserId);
  647. BaseRepository().Delete<UserEntity>(userinfo);
  648. }
  649. this.BaseRepository("CollegeMIS").Delete<EmpInfoEntity>(empinfo);
  650. }
  651. }
  652. catch (Exception ex)
  653. {
  654. if (ex is ExceptionEx)
  655. {
  656. throw;
  657. }
  658. else
  659. {
  660. throw ExceptionEx.ThrowServiceException(ex);
  661. }
  662. }
  663. }
  664. /// <summary>
  665. /// 保存实体数据(新增、修改)
  666. /// <param name="keyValue">主键</param>
  667. /// <summary>
  668. /// <returns></returns>
  669. public void SaveEntity(string keyValue, EmpInfoEntity entity)
  670. {
  671. try
  672. {
  673. UserIBLL userIBLL = new UserBLL();
  674. if (!string.IsNullOrEmpty(keyValue))
  675. {
  676. entity.Modify(keyValue);
  677. this.BaseRepository("CollegeMIS").Update(entity);
  678. var annexesFileEntity = this.BaseRepository().FindEntity<AnnexesFileEntity>(a => a.F_FolderId == entity.Photo);
  679. var url = "";
  680. if (annexesFileEntity != null)
  681. {
  682. url = annexesFileEntity.F_FilePath;
  683. url = "/" + url.Substring(url.IndexOf("Resource"));
  684. }
  685. var baseUser = userIBLL.GetEntityByAccount(entity.EmpNo);
  686. if (baseUser != null)
  687. {
  688. baseUser.F_HeadIcon = url;
  689. baseUser.F_RealName = entity.EmpName;
  690. baseUser.F_IdentityCardNo = entity.IdentityCardNo;
  691. baseUser.F_Mobile = entity.mobile;
  692. userIBLL.SaveEntity(baseUser.F_UserId, baseUser);
  693. }
  694. }
  695. else
  696. {
  697. if (string.IsNullOrEmpty(entity.EmpId))
  698. {
  699. //生成编号
  700. var ruleName = ConfigurationManager.AppSettings["EmpNoRule"];//
  701. if (ruleName == "jy")
  702. {
  703. var strHead = DateTime.Now.ToString("yyyyMM");
  704. var SerialNum = 1;
  705. var empInfoEntities = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>(a => a.EmpNo.Contains(strHead));
  706. if (empInfoEntities.Count() > 0)
  707. {
  708. var aa = empInfoEntities.Where(a => a.EmpNo.Length >= 8);
  709. var bb = aa.Select(a => a.EmpNo.Substring(a.EmpNo.Length - 2, 2));
  710. var cc = bb.Select(a => int.Parse(a));
  711. SerialNum = cc.Max() + 1;
  712. }
  713. entity.EmpNo = strHead + SerialNum.ToString().PadLeft(2, '0');
  714. }
  715. entity.Create();
  716. }
  717. this.BaseRepository("CollegeMIS").Insert(entity);
  718. }
  719. }
  720. catch (Exception ex)
  721. {
  722. if (ex is ExceptionEx)
  723. {
  724. throw;
  725. }
  726. else
  727. {
  728. throw ExceptionEx.ThrowServiceException(ex);
  729. }
  730. }
  731. }
  732. public void UpdatePhoto(string id, string photo)
  733. {
  734. BaseRepository("CollegeMIS").ExecuteBySql("update EmpInfo set Photo='" + photo + "' where EmpId='" + id + "'");
  735. }
  736. /// <summary>
  737. /// 保存实体数据(新增、修改)
  738. /// <param name="keyValue">主键</param>
  739. /// <summary>
  740. /// <returns></returns>
  741. public void SaveEntity(UserInfo userInfo, string keyValue, EmpInfoEntity entity)
  742. {
  743. try
  744. {
  745. if (!string.IsNullOrEmpty(keyValue))
  746. {
  747. entity.Modify(keyValue, userInfo);
  748. this.BaseRepository("CollegeMIS").Update(entity);
  749. }
  750. else
  751. {
  752. entity.Create(userInfo);
  753. this.BaseRepository("CollegeMIS").Insert(entity);
  754. }
  755. }
  756. catch (Exception ex)
  757. {
  758. if (ex is ExceptionEx)
  759. {
  760. throw;
  761. }
  762. else
  763. {
  764. throw ExceptionEx.ThrowServiceException(ex);
  765. }
  766. }
  767. }
  768. /// <summary>
  769. /// 保存部门、系部
  770. /// <param name="keyValue">主键</param>
  771. /// <summary>
  772. /// <returns></returns>
  773. public void SaveEditEntity(string keyValue, EmpInfoEntity entity)
  774. {
  775. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  776. try
  777. {
  778. if (!string.IsNullOrEmpty(keyValue))
  779. {
  780. if (keyValue.IndexOf(',') == -1)
  781. {
  782. var model = db.FindEntity<EmpInfoEntity>(keyValue);
  783. if (model != null)
  784. {
  785. if (!string.IsNullOrEmpty(entity.F_CompanyId))
  786. {
  787. model.F_CompanyId = entity.F_CompanyId;
  788. }
  789. if (!string.IsNullOrEmpty(entity.F_DepartmentId))
  790. {
  791. model.F_DepartmentId = entity.F_DepartmentId;
  792. }
  793. if (!string.IsNullOrEmpty(entity.DeptNo))
  794. {
  795. model.DeptNo = entity.DeptNo;
  796. }
  797. db.Update(model);
  798. }
  799. }
  800. else
  801. {
  802. foreach (var item in keyValue.Split(','))
  803. {
  804. var model = db.FindEntity<EmpInfoEntity>(item);
  805. if (model != null)
  806. {
  807. if (!string.IsNullOrEmpty(entity.F_CompanyId))
  808. {
  809. model.F_CompanyId = entity.F_CompanyId;
  810. }
  811. if (!string.IsNullOrEmpty(entity.F_DepartmentId))
  812. {
  813. model.F_DepartmentId = entity.F_DepartmentId;
  814. }
  815. if (!string.IsNullOrEmpty(entity.DeptNo))
  816. {
  817. model.DeptNo = entity.DeptNo;
  818. }
  819. db.Update(model);
  820. }
  821. }
  822. }
  823. }
  824. db.Commit();
  825. }
  826. catch (Exception ex)
  827. {
  828. db.Rollback();
  829. if (ex is ExceptionEx)
  830. {
  831. throw;
  832. }
  833. else
  834. {
  835. throw ExceptionEx.ThrowServiceException(ex);
  836. }
  837. }
  838. }
  839. /// <summary>
  840. /// 修改二维码状态
  841. /// </summary>
  842. /// <param name="keyValue"></param>
  843. /// <param name="QRCodeStatus"></param>
  844. public void UpdateQRCodeStatus(string keyValue, int QRCodeStatus)
  845. {
  846. try
  847. {
  848. if (keyValue.Contains(","))
  849. {
  850. keyValue = string.Join("','", keyValue.Split(','));
  851. }
  852. this.BaseRepository("CollegeMIS").ExecuteBySql($"update EmpInfo set QRCodeStatus='{QRCodeStatus}' where EmpId in ('{keyValue}')");
  853. }
  854. catch (Exception ex)
  855. {
  856. if (ex is ExceptionEx)
  857. {
  858. throw;
  859. }
  860. else
  861. {
  862. throw ExceptionEx.ThrowServiceException(ex);
  863. }
  864. }
  865. }
  866. #endregion
  867. }
  868. }