This commit is contained in:
PastSaid
2024-12-05 15:39:19 +08:00
parent 5472714e30
commit 9725ab5376
128 changed files with 46381 additions and 69 deletions

View File

@@ -0,0 +1,36 @@
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GZ.LJY000.Eti.PUR_PurchaseOrder
{
public class OperationEventPlugInEx: AbstractOperationServicePlugIn
{
public override void OnPreparePropertys(PreparePropertysEventArgs e)
{
base.OnPreparePropertys(e);
}
/// <summary>
/// 操作事物后事件(事务内触发)
/// </summary>
/// <param name="e"></param>
/// <remarks>
/// 1. 此事件在操作执行代码之后,操作的内部逻辑已经执行完毕
/// 2. 此事件在操作事务提交之前
/// 3. 此事件中的数据库处理,受操作的事务保护
/// 4. 通常此事件,可以用来做同步数据,如同步生成其他单据,而且需要受事务保护
/// </remarks>
public override void EndOperationTransaction(EndOperationTransactionArgs e)
{
base.EndOperationTransaction(e);
// 保存8提交9审核1反审核26
if (this.FormOperation.OperationId == 8)
{
}
}
}
}

View File

@@ -0,0 +1,82 @@
#引入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))