82 lines
3.2 KiB
Python
82 lines
3.2 KiB
Python
#引入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')
|
||
#dairycloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
|
||
from Kingdee.BOS.Core import *
|
||
from Kingdee.BOS.Util 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 Kingdee.BOS.App.Data import *
|
||
from System.Collections.Generic import List
|
||
from Kingdee.BOS.ServiceHelper import *
|
||
|
||
# 加载指定字段数据
|
||
# def OnPreparePropertys(e):
|
||
|
||
def EndOperationTransaction(e):
|
||
# 保存8提交9审核1反审核26删除3
|
||
if this.FormOperation.OperationId == 8:
|
||
Save2DoUpdateLIUSHUIHAO(e)
|
||
|
||
def Save2DoUpdateLIUSHUIHAO(e):
|
||
# sqlLList = List[str]();
|
||
# raise Exception(JsonUtil.Serialize(e.DataEntitys))
|
||
|
||
idList = List[str]();
|
||
for data in e.DataEntitys:
|
||
if data["PurchaseOrgId_Id"] == 1901189:
|
||
idList.Add(str(data["Id"]));
|
||
|
||
if idList.Count > 0:
|
||
idListStr = ",".join(idList)
|
||
sqlL = """/*dialect*/
|
||
;WITH #初始数据 AS (
|
||
SELECT t0.FBILLNO,t0e.FSEQ,t0.FDATE,t2.F_SUPPLIERCODE AS 'SCode'
|
||
,t0.FID,t0e_d.FDELIVERYDATE,t0e.FENTRYID
|
||
,SUBSTRING(CONVERT(varchar(8),t0e_d.FDELIVERYDATE,112),3,6) AS 'D'
|
||
,CONVERT(INT,t0e.FQTY) AS FQTY
|
||
,CONVERT(INT,SUM(t0e.FQTY) OVER(PARTITION BY t0e.FID ORDER BY t0e.FSEQ ROWS UNBOUNDED PRECEDING)) AS S
|
||
,ISNULL(t1.流水号,0) AS 'InitialValue'
|
||
FROM T_PUR_POORDER t0
|
||
OUTER APPLY (
|
||
SELECT MAX(CONVERT(INT,RIGHT(t1e.F_LIUSHUIHAO_TEXT_QTR,5))) AS '流水号'
|
||
FROM T_PUR_POORDER t1
|
||
INNER JOIN T_PUR_POORDERENTRY t1e on t1e.FID = t1.FID
|
||
WHERE 1=1 AND t0.FPURCHASEORGID = 1901189 AND t1e.F_LIUSHUIHAO_TEXT_QTR != ''
|
||
AND t0.FSUPPLIERID = t1.FSUPPLIERID AND CONVERT(varchar(8),t1.FDATE,112) = CONVERT(varchar(8),t0.FDATE,112)
|
||
) t1
|
||
INNER JOIN T_BD_SUPPLIER t2 on t2.FSUPPLIERID = t0.FSUPPLIERID AND t2.F_SUPPLIERCODE != ''
|
||
INNER JOIN T_PUR_POORDERENTRY t0e on t0.FID = t0e.FID
|
||
INNER JOIN T_PUR_POORDERENTRY_D t0e_d on t0e.FENTRYID = t0e_d.FENTRYID
|
||
WHERE 1 = 1
|
||
AND t0.FPURCHASEORGID = 1901189
|
||
AND t0.FID IN ({0})
|
||
AND t0e.F_LIUSHUIHAO_TEXT_QTR = ''
|
||
)
|
||
, #流水号拼接 AS (
|
||
SELECT t0.FID,t0.FENTRYID,t0.SCode,t0.D,t0.FQTY
|
||
,RIGHT('00000' + CONVERT(VARCHAR, (t0.S - t0.FQTY + 1 + t0.InitialValue)), 5) AS 'SSeq'
|
||
,RIGHT('00000' + CONVERT(VARCHAR, (S + t0.InitialValue)), 5) AS 'ESeq'
|
||
FROM #初始数据 t0
|
||
)
|
||
UPDATE t0e SET t0e.F_LIUSHUIHAO_TEXT_QTR = CONCAT(t1.SCode,t1.D,t1.SSeq,'-',t1.SCode,t1.D,t1.ESeq)
|
||
FROM T_PUR_POORDERENTRY t0e
|
||
INNER JOIN #流水号拼接 t1 on t0e.FENTRYID = t1.FENTRYID
|
||
""".format(idListStr)
|
||
|
||
# resultData = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL)
|
||
DBServiceHelper.Execute(this.Context, sqlL)
|
||
# raise Exception(JsonUtil.Serialize(resultData))
|
||
|