#引入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))