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(); var sqlL = new List(); 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); } } } } }