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))
|
|||
|
|
|