1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using Cksoft.Data;
- using Cksoft.Data.Repository;
- using DllUfpEntity;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace DllUfpDal
- {
- /// <summary>
- /// 欧非人资系统员工同步
- /// </summary>
- public class OfRzDataSyncDal
- {
- /// <summary>
- /// 将EAP系统中已离职的员工置为离职状态
- /// </summary>
- /// <returns></returns>
- public async Task Sync()
- {
- IDatabase eapDb = null;
- IDatabase rzDb = null;
- string errorinfo = string.Empty;
- try
- {
- eapDb = DbFactory.Base("ufp");
- rzDb = DbFactory.Base("OfilmRZ");
- var staffs = await eapDb.FindListForConditionAsync<Staff>($" and a.isSa=-1", ref errorinfo);
- var disables = new List<Staff>();
- if (staffs != null && staffs.Count() > 0)
- {
- foreach (var item in staffs)
- {
- var sql = "select name as staffName,psn_code as StaffCode from OFNCHR.hr_hrpsndoc_ccmon " +
- $"where SUBSTR(PSN_CODE, 3, LENGTH(PSN_CODE)-2)='{item.FCode}' ";
- var rzs = await rzDb.FindListAsync<OfilmRzEmployee>(sql, null);
- if (rzs == null || rzs.Count() <= 0)
- {
- disables.Add(item);
- }
- }
- }
- if (disables.Count > 0)
- {
- var updateSql = $"Update Staff set FStastus = -1 where id in ({string.Join(",", disables.Select(c => $"'{c.ID}'"))})";
- eapDb.ExecuteBySql(updateSql);
- }
- }
- catch (Exception e)
- {
- throw e;
- }
- finally
- {
- if (eapDb != null)
- eapDb.Close();
- if (rzDb != null)
- rzDb.Close();
- }
- }
- }
- public class OfilmRzEmployee
- {
- public string StaffCode { get; set; }
- public string StaffName { get; set; }
- }
- }
|