using E_ZKEcc.Domian; using E_ZKEcc.Service; using E_ZKEcc.Request; using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Orm.DataEntity; using System; using System.Collections.Generic; using System.Linq; using Kingdee.BOS.Util; using System.ComponentModel; using Kingdee.BOS.Core.Bill; namespace Demi.GAT_StaffData { [Description("员工档案-考勤机"), HotUpdate] public class OperationEventPlugInEx : AbstractOperationServicePlugIn { public override void OnPreparePropertys(PreparePropertysEventArgs e) { base.OnPreparePropertys(e); //e.FieldKeys.Add("FIDTypeNumber"); } /// /// 操作结束-事务内 /// /// public override void EndOperationTransaction(EndOperationTransactionArgs e) { base.EndOperationTransaction(e); // 保存8提交9审核1反审核26删除3 if (this.FormOperation.OperationId == 1) { if (e.DataEntitys.Any()) { DoUpdateEmployeeFunc(e.DataEntitys); } } } /// /// 审核后进行人员更新 /// /// private void DoUpdateEmployeeFunc(DynamicObject[] DataEntitys) { var apiInfo = GetE_ZKEccSDKAPIInfo(); var service = new EmployeeService(apiInfo); var datas = new List(); var idList = DataEntitys.Select(x => x["Id"].ToString()).ToList(); var dataList = GetDataList(idList); if (dataList != null && dataList.Count > 0) foreach (var entity in DataEntitys) { var domain = new EmployeeUpdateRequest(); domain.pin = entity["FNUMBER"].ToString(); //domain.pin = "99999"; domain.name = entity["FNAME"].ToString(); //domain.deptnumber = item["FDeptName"].ToSafeTurnString(); //暂时固定部门 domain.deptnumber = "999"; domain.comverifys = 15; domain.zonecode = new string[1] { "1" }; //domain.identitycard = entity["FIDTypeNumber"].ToString(); //图片地址 var imageFilePath = entity["FLOCATIONPATH"].ToString(); if (imageFilePath != null) //图片转换成base64 domain.enrollpic = (imageFilePath == "" ? "" : ImageUtil.ImageFileToBase64(imageFilePath)); datas.Add(domain); } var result = service.UpdateEmployee(datas); if (result.ret != 0) throw new Exception(result.msg); } /// /// 获取E_ZKEcc考勤机api连接信息 /// /// private ApiInfoDomian GetE_ZKEccSDKAPIInfo() { var vSql = "/*dialect*/ SELECT * FROM V_E_ZKEccSDK_API_INFO "; var dataTable = DBUtils.ExecuteDynamicObject(this.Context, vSql); var dataRow = dataTable[0]; var apiInfo = new ApiInfoDomian { appKey = dataRow["appKey"].ToString(), apiVersion = dataRow["apiVersion"].ToString(), serverUrl = dataRow["serverUrl"].ToString() }; return apiInfo; } /// /// 获取数据库数据 /// /// /// private DynamicObjectCollection GetDataList(List idList) { var sqlL = $@"/*dialect*/ SELECT t0.FID,t0.FNUMBER,t0_l.FNAME,t0.FIDTYPENUMBER,ISNULL(t1.FLOCATIONPATH,'') AS 'FLOCATIONPATH' FROM T_BD_StaffData t0 INNER JOIN T_BD_StaffData_l t0_l on t0.FID = t0_l.FID AND t0_l.FLOCALEID = 2052 LEFT JOIN T_BAS_FileServerFileInfo t1 on t0.FIMAGE = t1.FFILEID WHERE 1 = 1 AND t0.FID IN ({string.Join(",", idList)}) "; return DBUtils.ExecuteDynamicObject(this.Context, sqlL); } } }