如何实现在检验单的上游单据上体现检验过程花费的时长

需求描述:以来料检验为例,设置了收料单审核自动生成检验单,但是由于质检过程比较长,需要在收料通知单列表可以体现出检验过程花费的时长(即收料单单审核到检验单审核之间的时长)。
解决方案:1、检验单表体增加长日期字段--收料通知单审核日期:

2、收料通知单到检验单单据转换字段映射增加收料单审核日期到该字段的映射:

3、 收料通知单明细表体增加文本字段-检验时长:

4、检验单操作列表的审核操作上的服务插件中注册python插件,实现审核后计算审核日期与收料单审核日期时间差反写回收料通知单的检验时长字段上:

5、示例代码如下:
import clr
clr.AddReference("System")
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
from System import*
from Kingdee.BOS import*
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata.EntityElement import*
from Kingdee.BOS.App.Data import*
from System import DateTime
def OnPreparePropertys(e):
e.FieldKeys.Add("FBillNo")
e.FieldKeys.Add("FSId")
e.FieldKeys.Add("FRecieveDatetime")
def AfterExecuteOperationTransaction(e):
for head in e.DataEntitys:
auditDate=head["ApproveDate"]
entrys=head["Entity"]
for entry in entrys:
receivedate=entry["RecieveDatetime"]
ss=auditDate-receivedate
diff1=ss.Days#时间差:天
diff2=ss.Hours#时间差:小时
diff=ss.Minutes#时间差:分钟
linkEntrys=entry["FEntity_Link"]
for linkentry in linkEntrys:
srcId=linkentry["SId"]
#
如何实现在检验单的上游单据上体现检验过程花费的时长
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



