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; 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 list = new List(); foreach (var entity in DataEntitys) { var domain = new EmployeeUpdateRequest(); list.Add(domain); //domain.pin = entity["Number"].ToString(); domain.pin = "99999"; var nameObjs = entity["Name"] as DynamicObject[]; //domain.name = nameObjs.FirstOrDefault(x => x["Key"].Long2Int() == 2052)["Value"].ToString(); foreach (var obj in nameObjs) { if (obj["Key"].Long2Int() == 2052) domain.name = obj["Value"].ToString(); } //domain.deptnumber = item["FDeptName"].ToSafeTurnString(); //暂时固定部门 domain.deptnumber = "999"; domain.identitycard = entity["FIDTypeNumber"].ToString(); } var result = service.UpdateEmployee(list); 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; } } }