zrg
2025-10-13 3da563635c4306c56c201a051fc754e870084af0
增加客户物料对应表插件
1个文件已添加
7个文件已修改
206 ■■■■ 已修改文件
zymes/LogService.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessCusMaterial.cs 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessMaterial.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessStock.cs 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/Report/FeedPlanDetailReport.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/Report/FeedPlanOrderDetailReport.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/Report/FeedPlanReport.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/zymes_Project.csproj 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/LogService.cs
@@ -65,7 +65,9 @@
                    }
                }
            }
#pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过
            catch (Exception ex)
#pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过
            {
            }
        }
zymes/OperationService/zymes_RealessCusMaterial.cs
New file
@@ -0,0 +1,138 @@
using System;
using System.Collections.Generic;
using Kingdee.BOS.Util;
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Orm.DataEntity;
using System.ComponentModel;
using Kingdee.BOS.ServiceHelper;
using System.Data;
using Newtonsoft.Json.Linq;
using ZD.Cloud.WebApi;
using Newtonsoft.Json;
using Kingdee.BOS.Core.DynamicForm;
using System.Linq;
using RestSharp;
using zymes_Project.Utility;
namespace zymes_Project.OperationService
{
    [Description("[客户物料对应表-审核]服务插件]")]
    [HotUpdate]
    public class zymes_RealessCusMaterial : AbstractOperationServicePlugIn
    {
        Dictionary<string, string> dictionary = new Dictionary<string, string>();
        public override void OnPrepareOperationServiceOption(OnPrepareOperationServiceEventArgs e)
        {
            base.OnPrepareOperationServiceOption(e);
            //为了在BeginOperationTransaction里检查数据抛出异常时
            //只回滚当前单据的事务,这里设置为不支持批量事务,这样BOS会
            //循环为每一张单据创建事务调用操作
            e.SupportTransaction = true;
            //e.SurportBatchTransaction = false;
        }
        public override void OnPreparePropertys(PreparePropertysEventArgs e)
        {
            base.OnPreparePropertys(e);
            e.FieldKeys.Add("FEntity");
            e.FieldKeys.Add("FEntity_FEntryID");
        }
        public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
        {
            base.AfterExecuteOperationTransaction(e);
            Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息
            foreach (var billObj in e.DataEntitys)
            {
                var id = billObj["Id"].ToString();
                string sql = string.Empty;
                sql = $@"
                /*dialect*/
                SELECT
                    a.FID as HItemID,
                    a.FCREATORID as HCusID,
                    c.FCUSTMATNO as HCusRelationNumber,
                    d.FCUSTMATNAME as HCusRelationName,
                    'CLD-ERP导入' HRemark,
                    GETDATE() AS HMakeTime,
                    e.FMASTERID as HMaterID,
                    case when  c.FEFFECTIVE=1 then 'true' else 'false' end AS HUsed,
                    a.FCREATORID AS HCREATEORGID,
                    a.FUSEORGID AS HUSEORGID,
                    o.FNUMBER as HOrganNumber,
                    u.FNAME HMaker
                FROM T_SAL_CUSTMATMAPPING a
                INNER JOIN T_SAL_CUSTMATMAPPINGENTRY c ON a.FID = c.FID  -- 客户物料表明细
                INNER JOIN T_SAL_CUSTMATMAPPINGENTRY_L d ON c.FENTRYID = d.FENTRYID -- 客户物料表明细_多语言
                INNER JOIN T_BD_MATERIAL e ON c.FMATERIALID = e.FMATERIALID   -- 物料
                INNER JOIN T_SEC_USER u ON a.FCREATORID = u.FUSERID  -- 用户表
                INNER JOIN T_ORG_Organizations o on a.FUSEORGID=o.FORGID
                where a.FID={id}
                ";
                LogService.Write("查询器sql:" + sql);
                DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                if (dt.Rows.Count == 0)
                {
                    LogService.Write("客户物料对应表同步异常:" + sql);
                    continue;
                }
                //获取创建客户物料对应表的使用组织
                DataTable dataTable = LogService.Get_DisPlayOrg(Context, dt.Rows[0]["HOrganNumber"].ToString());
                if (dataTable.Rows.Count == 0)
                    continue;
                if (dataTable.Rows[0]["FISNEEDPUSH"].ToString() == "0")
                    continue;
                string http = dataTable.Rows[0]["F_RCZU_MesIp"].ToString();
                DataRow dr = dt.Rows[0];
                JObject model = new JObject();
                foreach (DataColumn column in dt.Columns)
                {
                    model.Add(column.ColumnName, dr[column.ColumnName].ToString());
                }
                JObject _jsonRoot = new JObject()
                {
                    ["model"] = model
                };
                LogService.Write("客户物料对应表同步插件,JSON拼接完成:" + model);
                var client = new RestSharp.RestClient(http);
                var requestPost = new RestRequest("Gy_MateNumRelation/SaveGy_MateNumRelationAPI", Method.POST);
                requestPost.AddParameter("application/json", JsonConvert.SerializeObject(_jsonRoot), ParameterType.RequestBody);
                IRestResponse responsePost = client.Execute(requestPost);
                var contentPost = responsePost.Content;
                if (!contentPost.Contains("成功"))
                {
                    LogService.Write("客户物料对应表同步异常,POST方式获取结果," + billObj["Id"] + "," + responsePost.ErrorMessage);
                    LogService.Write("客户物料对应表同步异常,POST," + "Gy_MateNumRelation/SaveGy_MateNumRelationAPI");
                    LogService.Write("客户物料对应表同步异常,JsonConvert.SerializeObject(_jsonRoot)," + JsonConvert.SerializeObject(_jsonRoot));
                }
            };
            foreach (var item in dictionary)
            {
                ResultMessage.dataError(this.OperationResult.OperateResult, item.Key, item.Value);
            }
        }
        public static class ResultMessage
        {/// <summary>
         /// 修改提示信息
         /// </summary>
         /// <param name="operateResult"></param>
         /// <param name="billno"></param>
            public static void dataError(OperateResultCollection operateResult, string billno, string message)
            {
                OperateResult operate = operateResult.Where(n => n.Number == billno).First();
                operate.Message = message;
                operate.SuccessStatus = false;
                operate.MessageType = MessageType.FatalError;
            }
        }
    }
}
zymes/OperationService/zymes_RealessMaterial.cs
@@ -204,7 +204,7 @@
                    ,case when isnull(q.FCHECKINCOMING,0)='1' then 1 else 0 end as HCHECKINCOMING,isnull(s.FEXPUNIT,'') as HEXPUNIT,isnull(s.FEXPPERIOD,0) as HEXPPERIOD
                    ,isnull(b.FBASEUNITID,0) as HBASEUNITID,isnull(ms.FSALEUNITID,0) as HSALEUNITID,isnull(ms.FSALEPRICEUNITID,0) HSALEPRICEUNITID
                    ,isnull(mp.FPERUNITSTANDHOUR,0) as HPERUNITSTANDHOUR,isnull(mp.FSTDLABORPREPARETIME,0) as HSTDLABORPREPARETIME,isnull(mp.FSTDMACHINEPREPARETIME,0) as HSTDMACHINEPREPARETIME
                    ,isnull(a.FMASTERID,0) as HMASTERID
                    ,isnull(a.FMASTERID,0) as HMASTERID,0 HMoneyDec
                     from  T_BD_MATERIAL a with(nolock)
                    inner join  T_BD_MATERIAL_L l with(nolock) on a.FMATERIALID=l.FMATERIALID 
                    inner join  T_BD_MATERIALBASE b with(nolock) on a.FMATERIALID=b.FMATERIALID 
@@ -236,7 +236,7 @@
                    string http = dataTable.Rows[0]["F_RCZU_MesIp"].ToString();
                    DataRow dr = dt.Rows[0];
                    DataRow dr = dt.Rows[0];
                    JObject model = new JObject();
                    foreach (DataColumn column in dt.Columns)
                    {
@@ -246,7 +246,8 @@
                    JObject _jsonRoot = new JObject()
                    {
                        ["model"] = model
                    };
                    };
                    LogService.Write("物料同步插件,JSON拼接完成:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff:ffffff"));
                  
                    var client = new RestSharp.RestClient(http);                  
zymes/OperationService/zymes_RealessStock.cs
@@ -64,43 +64,21 @@
                T_BD_FLEXVALUESCOM t1 
                join T_BD_STOCK st on t1.FSTOCKID = st.FSTOCKID 
                join T_BD_STOCK_l stl on t1.FSTOCKID = stl.FSTOCKID  and stl.FLOCALEID = 2052
                join T_BAS_FLEXVALUESDETAIL t2 on t1.FSTOCKLOCID = t2.FID
                --SELECT * FROM T_BAS_FLEXVALUESENTRY t1--仓位值集列表明细
                --join T_BAS_FLEXVALUESENTRY_L  t2 on t1.FENTRYID=t2.FENTRYID--仓位值集列表
                join T_BAS_FLEXVALUESENTRY t3 on t2.FF100006 = t3.FENTRYID--仓位值集列表明细
                join T_BAS_FLEXVALUESDETAIL t2 on t1.FSTOCKLOCID = t2.FID
                join T_BAS_FLEXVALUESENTRY t3 on t2.FF100001 = t3.FENTRYID--仓位值集列表明细
                join T_BAS_FLEXVALUESENTRY_L t4 on t3.FENTRYID=t4.FENTRYID
                where t1.fstockid= {0} --采购入库单选择仓库后 选择仓位
                where t1.fstockid= {0}
                ", id);
//select c.HID as HItemID,c.HID as HERPItemID,c.HNumber as HNumber,c.HName as HName,c.HNumber as HShortNumber,0 as HParentID,c.HSPType as HSPType,c.HSrcSPType as HSrcSPType,c.HDesSPType as HDesSPType
//,1 as HLevel,'true' as HEndFlag,'false' as HStopflag,'CLD-ERP导入' as HRemark,a.FSTOCKID as HSPGroupID,'已使用' as HUseFlag,getdate() as HMakeTime,a.FCREATEORGID as HCREATEORGID,a.FUSEORGID as HUSEORGID
//from T_BD_STOCK A  with(nolock)
//inner join T_BD_STOCK_L L with(nolock) on A.FSTOCKID = L.FSTOCKID
//inner join T_BD_FLEXVALUESCOM ST with(nolock) on a.FSTOCKID = st.FSTOCKID
//inner join(select c.FID HID, c.FF100001 HSPTypeID
//,''""FStockLocId"":{
//""FSTOCKLOCID__FF100001"":{
//""FNUMBER"":""'' HSPType
//,''""FSrcStockLocId"":{
//""FSRCSTOCKLOCID__FF100001"":{
//""FNUMBER"":""'' HSrcSPType
//,''""FDestStockLocId"":{
//""FDESTSTOCKLOCID__FF100001"":{
//""FNUMBER"":""'' HDesSPType
//,s.FNUMBER HNumber, sp.FName HName
//from T_BAS_FLEXVALUESDETAIL c
//inner
//join T_BAS_FLEXVALUESENTRY s on s.FENTRYID = c.FF100001
//inner
//join T_BAS_FLEXVALUESENTRY_L sp on sp.FENTRYID = c.FF100001) c on c.HID = st.FSTOCKLOCID
//inner join T_ORG_ORGANIZATIONS_L o with(nolock) on o.FORGID = A.FUSEORGID
//where ST.FISDISABLE = '0' AND ST.FSYSDISABLE = '0'
//and l.FLOCALEID = 2052 and isnull(o.FNAME,'') <> ''
//and a.FSTOCKID = {0}
                //斯莫尔仓位集的值是  t2.FF100006
                //47测试可以用  t2.FF100001
                LogService.Write("查询器sql:" + sql);
                DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
                DataTable maindt = ds.Tables[0];//仓库
                DataTable subdt = ds.Tables[1];//仓位
                if (maindt.Rows.Count == 0)
                if (maindt.Rows.Count == 0 && subdt.Rows.Count == 0)
                {
                    LogService.Write("仓库仓位同步异常:" + sql);
                    continue;
zymes/Report/FeedPlanDetailReport.cs
@@ -72,9 +72,15 @@
            string FSupplier = "0";//供应商 默认值为0
            string FOrgId = "100092"; //组织(默认取值当前组织)
            string FFactoryArea = ""; //厂区
#pragma warning disable CS0219 // 变量“FBuyer”已被赋值,但从未使用过它的值
            string FBuyer = ""; //采购员
#pragma warning restore CS0219 // 变量“FBuyer”已被赋值,但从未使用过它的值
#pragma warning disable CS0219 // 变量“FWarehouse”已被赋值,但从未使用过它的值
            string FWarehouse = "";//仓库
#pragma warning restore CS0219 // 变量“FWarehouse”已被赋值,但从未使用过它的值
#pragma warning disable CS0219 // 变量“FIsMainMaterial”已被赋值,但从未使用过它的值
            bool FIsMainMaterial = false;//是否主料
#pragma warning restore CS0219 // 变量“FIsMainMaterial”已被赋值,但从未使用过它的值
            //5fe5d920a3f2bf
            //5fe5d926a3f2c1
zymes/Report/FeedPlanOrderDetailReport.cs
@@ -67,9 +67,15 @@
            string FSupplier = "0";//供应商 默认值为0
            string FOrgId = "100092"; //组织(默认取值当前组织)
            string FFactoryArea = ""; //厂区
#pragma warning disable CS0219 // 变量“FBuyer”已被赋值,但从未使用过它的值
            string FBuyer = ""; //采购员
#pragma warning restore CS0219 // 变量“FBuyer”已被赋值,但从未使用过它的值
#pragma warning disable CS0219 // 变量“FWarehouse”已被赋值,但从未使用过它的值
            string FWarehouse = "";//仓库
#pragma warning restore CS0219 // 变量“FWarehouse”已被赋值,但从未使用过它的值
#pragma warning disable CS0219 // 变量“FIsMainMaterial”已被赋值,但从未使用过它的值
            bool FIsMainMaterial = false;//是否主料
#pragma warning restore CS0219 // 变量“FIsMainMaterial”已被赋值,但从未使用过它的值
            string saleOrderNo = "";//采购订单号
            //5fe5d920a3f2bf
            //5fe5d926a3f2c1
zymes/Report/FeedPlanReport.cs
@@ -82,7 +82,9 @@
            return header;
#pragma warning disable CS0162 // 检测到无法访问的代码
            return header;
#pragma warning restore CS0162 // 检测到无法访问的代码
        }
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
zymes/zymes_Project.csproj
@@ -8,7 +8,7 @@
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>zymes_Project</RootNamespace>
    <AssemblyName>zymes_Project_%28V1.0%29_9010_20250812_zrg</AssemblyName>
    <AssemblyName>zymes_Project</AssemblyName>
    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
@@ -142,6 +142,7 @@
    <Compile Include="OperationService\zymes_RealessSalSeOutStock.cs" />
    <Compile Include="OperationService\zymes_RealessSettleStyle.cs" />
    <Compile Include="OperationService\zymes_RealessRecCondition.cs" />
    <Compile Include="OperationService\zymes_RealessCusMaterial.cs" />
    <Compile Include="OperationService\zymes_RealessStock.cs" />
    <Compile Include="OperationService\zymes_RealessCustomer.cs" />
    <Compile Include="OperationService\zymes_RealessPaymentCondition.cs" />