Files
GateDge2023_ljy/13.得米新材/Demi.Python/GAT_StaffData/OperationEventPlugInEx.py
PastSaid fa480006a8 1
2024-07-16 10:33:50 +08:00

103 lines
3.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#引入clr运行库
import clr
#添加对cloud插件开发的常用组件引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('E_ZKEccSDK')
#dairycloud基础库中的常用实体对象分命名空间导入不会递归导入
from Kingdee.BOS.Core import *
from Kingdee.BOS.Util import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.Bill.PlugIn import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from System.Data import *
from System.Collections.Generic import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.ServiceHelper import *
from E_ZKEcc.Domian import *
from E_ZKEcc.Service import *
from E_ZKEcc.Request import *
# 操作后事务前
def EndOperationTransaction(e):
# 保存8提交9审核1反审核26删除3
if this.FormOperation.OperationId == 1 and e.DataEntitys.Count > 0:
# raise Exception(JsonUtil.Serialize(e.DataEntitys))
DoUpdateEmployeeFunc(e.DataEntitys)
# 审核后更新考勤信息
def DoUpdateEmployeeFunc(dataEntitys):
apiInfo = GetE_ZKEccSDKAPIInfo()
service = EmployeeService(apiInfo)
datas = List[EmployeeUpdateRequest]()
idList = set(map(lambda x:x["Id"] , dataEntitys))
dataList = GetDataList(idList)
if dataList != None and dataList.Count > 0:
for entity in dataList:
domain = EmployeeUpdateRequest()
# 员工编号
domain.pin = entity["FNUMBER"]
# domain.pin = "99999"
domain.name = entity["FNAME"]
domain.deptnumber = "999"
domain.comverifys = 15
# zonecodes = Array[str,1]();
zonecodes = List[str]()
zonecodes.Add("1")
domain.zonecode = zonecodes.ToArray()
# 身份证
# domain.identitycard = entity["FIDTYPENUMBER"]
# 头像
imageFilePath = entity["FLOCATIONPATH"]
if imageFilePath != None:
enrollpic = "" if imageFilePath == "" else ImageUtil.ImageFileToBase64(imageFilePath)
domain.enrollpic = enrollpic;
datas.Add(domain)
# raise Exception(JsonUtil.Serialize(datas))
raise Exception(JsonUtil.Serialize(dataList))
result = service.UpdateEmployee(datas)
if result.ret != 0:
# raise Exception("错误信息:{0} ;请求数据:{1}".format(result.msg, JsonUtil.Serialize(datas)))
raise Exception(result.msg)
# 获取数据
def GetDataList(idList):
sql ="""/*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 ({0})
""".format(",".join(map(str,idList)))
return DBUtils.ExecuteDynamicObject(this.Context, sql)
# 获取api信息
def GetE_ZKEccSDKAPIInfo():
vSql = "/*dialect*/ SELECT * FROM V_E_ZKEccSDK_API_INFO "
dataTable = DBUtils.ExecuteDynamicObject(this.Context, vSql)
dataRow = dataTable[0]
apiInfo = ApiInfoDomian()
apiInfo.appKey = dataRow["appKey"]
apiInfo.apiVersion = dataRow["apiVersion"]
apiInfo.serverUrl = dataRow["serverUrl"]
return apiInfo