提交 c30d968c authored 作者: 刘烁's avatar 刘烁

物料审核后校验是否修改编码后同步物料清单记录

上级 6e28f9a8
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.ServiceHelper;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LQKJ.K3.MFG.PRD.App.ServicePlugIn
{
[Kingdee.BOS.Util.HotUpdate]
[Description("审核后校验是否修改物料编码并进行同步【服务插件】")]
public class AfterReviewAddSynchronizationServerPlugin: AbstractOperationServicePlugIn
{
public override void EndOperationTransaction(EndOperationTransactionArgs e)
{
var data = e.DataEntitys;
var Number = data[0]["Number"].ToString();
var masterid = data[0]["msterID"].ToString();
var selectOldNumber = selectOldumber(masterid);
if (string.IsNullOrWhiteSpace(selectOldNumber))
{
updateOldNumber(Number, masterid);
return;
}
if (selectOldNumber == Number) return;
List<string> list = new List<string>();
string id = "ENG_BOM";
string userId = base.Context.UserId.ToString();
string operationName = base.FormOperation.OperationName.ToString();
string operation = base.FormOperation.Operation;
var FidList = selectEngBomFid(Number);
foreach (var Fid in FidList)
{
string item = $@"/*dialect*/
insert
into
LQKJ_t_IMSSync
(
FID
, F_LQKJ_SYNCDATAID
, F_LQKJ_SYNCBILL
, F_LQKJ_SYNDDATETIME
, FCREATORID, FMODIFIERID
, FCREATEDATE, FMODIFYDATE
, F_LQKJ_SYNCCHECK
, F_LQKJ_Operationname
, F_LQKJ_operationinnercode)
values(NEWID(), '{Fid}', '{id}', GETDATE(), '{userId}', '0', GETDATE(), GETDATE(), '0', '{operationName}', '{operation}')";
list.Add(item);
}
DBUtils.ExecuteBatch(base.Context, list, list.Count);
updateOldNumber(Number, masterid);//生成同步记录后同步旧编码
base.EndOperationTransaction(e);
}
/// <summary>
/// 使用修改后的物料编码查询物料清单
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
private List<string> selectEngBomFid(string number)
{
var getSql = $@"
select
teb.FID
from
T_ENG_BOM teb
left join T_ENG_BOMCHILD tebHild on tebHild.FID=teb.FID
left join T_BD_MATERIAL tbm on tbm.FMATERIALID=teb.FMATERIALID
left join T_BD_MATERIAL tbm1 on tbm1.FMATERIALID=tebHild.FMATERIALID
where
tbm.FNUMBER='{number}' or tbm1.FNUMBER='{number}'
group by
teb.FID
";
var dt=DBServiceHelper.ExecuteDataSet(base.Context, getSql).Tables[0];
List<string> list = new List<string>();
for (int i = 0; i < dt.Rows.Count; i++)
{
var item = dt.Rows[i]["FID"].ToString();
list.Add(item);
}
return list;
}
/// <summary>
/// 查询旧编码是否存在
/// </summary>
/// <param name="masterid"></param>
/// <returns></returns>
private string selectOldumber(string masterid)
{
string getSql = $@"/*dialect*/
select
FOLDNUMBER
from
T_BD_MATERIAL
where
FMASTERID='{masterid}'
";
var dt= DBServiceHelper.ExecuteDataSet(Context, getSql).Tables[0];
if (dt.Rows.Count==0)
{
return "";
}
var oldNumber = dt.Rows[0]["FOLDNUMBER"].ToString();
return oldNumber;
}
/// <summary>
/// 更新旧编码字段
/// </summary>
/// <param name="number"></param>
/// <param name="masterid"></param>
private void updateOldNumber(string number, string masterid)
{
string updateSql = $@"/*dialect*/
update
T_BD_MATERIAL
set
FOLDNUMBER='{number}'
where
FMASTERID='{masterid}'
";
DBServiceHelper.Execute(Context, updateSql);
}
}
}
......@@ -23,7 +23,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\K3Cloud\bin</OutputPath>
<OutputPath>D:\Kingde\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
......@@ -109,6 +109,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AfterReviewAddSynchronizationServerPlugin.cs" />
<Compile Include="AnalysisResults.cs" />
<Compile Include="IMSApiClient.cs" />
<Compile Include="POChangeSyncdataService.cs" />
......
......@@ -23,7 +23,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\K3Cloud\bin</OutputPath>
<OutputPath>D:\Kingde\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
......
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
......@@ -7,7 +7,7 @@
<ProjectRefPath>G:\OZT-kingdeeProject\欧智通\K3Cloud\bin</ProjectRefPath>
<IsAutoCheckIn>1</IsAutoCheckIn>
<IsStartScc>1</IsStartScc>
<LastExpandPackageNodeID>a39d81b4-7108-46ae-a236-fe026c6c527e</LastExpandPackageNodeID>
<LastExpandPackageNodeID>9a53c754-9021-411b-b3d7-b06771cc7380</LastExpandPackageNodeID>
<SCCCfg>
</SCCCfg>
</KDSolution>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论