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.
 
 
 
 
 
 

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