Files
GateDge2023_ljy/14.宝锐/GZ.LJY000.Biori/PRD_MO/OperationEventPlugInEx.cs
PastSaid 3d15fd4b7e a
2025-01-01 08:21:58 +08:00

116 lines
4.1 KiB
C#

using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
namespace GZ.LJY000.Biori.PRD_MO
{
[HotUpdate, Description("生产订单服务插件#")]
public class OperationEventPlugInEx : AbstractOperationServicePlugIn
{
public override void OnPreparePropertys(PreparePropertysEventArgs e)
{
base.OnPreparePropertys(e);
e.FieldKeys.Add("FBillType");
e.FieldKeys.Add("FPackSrcBillNo");
e.FieldKeys.Add("FFPackSrcSeq");
e.FieldKeys.Add("FPackSrcType");
e.FieldKeys.Add("F_UHIK_Text_re5");
e.FieldKeys.Add("F_UHIK_TEXT8");
e.FieldKeys.Add("F_BQGG_Text");
e.FieldKeys.Add("F_UHIK_Date");
e.FieldKeys.Add("F_UHIK_Date1");
e.FieldKeys.Add("FLot");
}
public override void EndOperationTransaction(EndOperationTransactionArgs e)
{
base.EndOperationTransaction(e);
//保存8 提交9 审核1 反审核26 删除3
//if (this.FormOperation.OperationId == 1)
if (this.FormOperation.OperationId == 8)
{
var dataEntityList = new List<DynamicObject>();
var sqlL = new List<string>();
foreach (var data in e.DataEntitys)
{
var BillType_Id = data["BillType_Id"].ToString();
var where = string.Empty;
foreach (var entity in data["TreeEntity"] as DynamicObjectCollection)
{
if (BillType_Id.Equals("0e74146732c24bec90178b6fe16a2d1c"))
{
var FPackSrcBillNo = entity["FPackSrcBillNo"].ToString();
var FFPackSrcSeq = entity["FFPackSrcSeq"].Long2Int();
var FPackSrcType = entity["FPackSrcType"].Long2Int();
where = $@"WHERE t0.FBILLNO = '{FPackSrcBillNo}' AND t0e.FSEQ = {FFPackSrcSeq}";
}
else
{
var entityLink = entity["FTREEENTITY_Link"] as DynamicObjectCollection;
if (entityLink.Any())
{
var link = entityLink.FirstOrDefault();
var entryId = link["SId"].Long2Int();
if (entryId > 0 && link["STableName"].ToString().Equals("T_PLN_FORECASTENTRY"))
where = $@"WHERE t0e.FENTRYID = {entryId}";
}
}
if (where.IsNullOrEmpty())
continue;
var baseSql = $@"
SELECT t0e.FENTRYID
,'{entity["F_UHIK_Text_re5"]}' '存储条件'
,'{entity["F_UHIK_TEXT8"]}' ''
,'{entity["F_UHIK_Text"]}' ''
,'{entity["F_UHIK_Date"]}' ''
,'{entity["F_UHIK_Date1"]}' ''
,{entity["Lot_Id"]} ''
,'{entity["Lot_Text"]}' '_Text'
FROM T_PLN_FORECAST t0
INNER JOIN T_PLN_FORECASTENTRY t0e on t0.FID = t0e.FID AND t0e.FPRODUCTTYPE = 2
{where}
";
sqlL.Add(baseSql);
}
}
if (sqlL.Any())
{
var sql = $@"/*dialect*/
WITH #基础数据 AS(
{string.Join(" UNION ALL ", sqlL)}
)
UPDATE t1e SET t1e.F_UHIK_TEXT8 = t0.
,t1e.F_UHIK_TEXT_RE5 = t0.
,t1e.F_UHIK_TEXT2 = t0.
,t1e.F_UHIK_DATE = t0.
,t1e.F_UHIK_DATE1 = t0.
,t1e.F_UHIK_LOT = t0.
,t1e.F_UHIK_LOT_Text = t0._Text
FROM # t0
INNER JOIN T_PLN_FORECASTENTRY t1e on t0.FENTRYID = t1e.FENTRYID
";
var resData = DBUtils.Execute(this.Context, sql);
}
}
}
}
}