zrg
2025-10-20 622fd1570667152aa6daf18f6a83d61472817f01
优化作业,价格,采购价目,业务员,客户物料对应表,客户
1个文件已添加
8个文件已修改
344 ■■■■ 已修改文件
zymes/OperationService/zymes_RealessCusMaterial.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessCustomer.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessMatePriceSup.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessOperator.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessPurInStock.cs 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessPurPrice.cs 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessUnit.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessWork.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/zymes_Project.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zymes/OperationService/zymes_RealessCusMaterial.cs
@@ -88,18 +88,24 @@
                string http = dataTable.Rows[0]["F_RCZU_MesIp"].ToString();
                DataRow dr = dt.Rows[0];
                JObject model = new JObject();
                foreach (DataColumn column in dt.Columns)
                List<JObject> models = new List<JObject>();
                foreach (DataRow dr in dt.Rows)
                {
                    model.Add(column.ColumnName, dr[column.ColumnName].ToString());
                    JObject model = new JObject();
                    foreach (DataColumn column in dt.Columns)
                    {
                        model.Add(column.ColumnName, dr[column.ColumnName].ToString());
                    }
                    models.Add(model);
                }
                // 如果需要将所有model放入一个JSON数组中
                JObject _jsonRoot = new JObject()
                {
                    ["model"] = model
                    ["model"] = new JArray(models)
                };
                LogService.Write("客户物料对应表同步插件,JSON拼接完成:" + model);
                LogService.Write("客户物料对应表同步插件,JSON拼接完成:" + models);
                var client = new RestSharp.RestClient(http);
zymes/OperationService/zymes_RealessCustomer.cs
@@ -57,7 +57,7 @@
                ,1 as HLevel,1 as HEndFlag,case when     a.FFORBIDSTATUS='A' then 0 else 1 end as HStopflag,'CLD-ERP导入' as HRemark
                ,'已使用' as HUseFlag,getdate() as HMakeTime,FCREATEORGID as HCREATEORGID,FUSEORGID as HUSEORGID,o.FNUMBER as HOrganNumber
                from T_BD_CUSTOMER a with(nolock)
                inner join T_BD_CUSTOMER_L l with(nolock) on a.FCUSTID=l.FCUSTID
                inner join T_BD_CUSTOMER_L l with(nolock) on a.FCUSTID=l.FCUSTID   and FLOCALEID=2052
                left join T_ORG_Organizations o with(nolock) on a.FUSEORGID=o.FORGID
                Where  a.FCUSTID = {id}
@@ -68,15 +68,19 @@
                --inner join T_BD_CUSTLOCATION_L l with(nolock) on a.FID=l.FID and FLOCALEID=2052
                Where a.FCUSTID= {id}
                select a.FCONTACTID as HItemID, a.FCUSTID as HCUSTID, a.FNUMBER as HNumber, l.FNAME as HName, a.FNUMBER as HShortNumber, 0 as HParentID,
                select a.FCONTACTID as HItemID, b.FCUSTID as HCUSTID, a.FNUMBER as HNumber, l.FNAME as HName, a.FNUMBER as HShortNumber, 0 as HParentID,
                1 as HLevel, 'true' as HEndFlag, case when a.FFORBIDSTATUS='A' then 'false' else 'true' end as HStopflag,
                'CLD-ERP导入' as HRemark, '' as HHelpCode, '未检测' as HUseFlag, a.FCREATEDATE as HMakeTime, a.FCREATORID as HMakeEmp,
                '' as HCheckEmp, getdate() as HCheckTime, a.FMODIFIERID as HModifyEmp, a.FMODIFYDATE as HModifyTime, '' as HStopEmp,
                getdate() as HStopTime, 0 as HUSEORGID, 0 as HCREATEORGID
                from T_BD_COMMONCONTACT a with(nolock)
                inner join T_BD_COMMONCONTACT_L l with(nolock) on a.FCONTACTID = l.FCONTACTID and l.FLOCALEID = 2052
                where a.FCUSTID = {id}
                inner join T_BD_CUSTOMER b on a.FCUSTID=b.FMASTERID
                where b.FCUSTID = {id}
                ";
                LogService.Write("客户同步sql:"  + sql);
                DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
                DataTable maindt = ds.Tables[0];//客户信息
                DataTable subdt = ds.Tables[1];//客户_交货地点
zymes/OperationService/zymes_RealessMatePriceSup.cs
@@ -18,7 +18,7 @@
namespace zymes_Project.OperationService
{
    [Description("[采购价目-审核]服务插件]")]
    [Description("[采购价格-审核]服务插件]")]
    [HotUpdate]
    public class zymes_RealessMatePriceSup : AbstractOperationServicePlugIn
    {
@@ -45,32 +45,29 @@
            Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息
            foreach (var billObj in e.DataEntitys)
            {
                var forgName = Context.CurrentOrganizationInfo.Name;
                //if (!forgName.Contains("杭州斯莫尔磁性材料有限公司"))
                //    continue;
                //var sql = $"exec zymes_RealessMatePriceSup {billObj["Id"]} ";
                var id = billObj["Id"].ToString();
                string sql = string.Empty;
                sql = $@"
                /*dialect*/
                select a.FID as HItemID,0 as HInterID,a.FNUMBER as HNumber,0 as HEntryID,0 as HMaterID,0 as HRelationID
                ,0 as HUnitID,0 as HBeginQty,0 as HEndQty,0 as HCurID,'' as HType,0 as HPrice,a.FEFFECTIVEDATE as HBeginDate
                ,a.FEXPIRYDATE as HEndDate,0 as HUsed,'' as HRemark,'' as HMaker,a.FCREATEDATE as HMakeDate
               select a.FID as HItemID,0 as HInterID,a.FNUMBER as HNumber,b.FENTRYID as HEntryID,b.FMATERIALID as HMaterID,a.FSUPPLIERMASTERID as HRelationID
                ,b.FUNITID as HUnitID,0 as HBeginQty,0 as HEndQty,a.FCURRENCYID as HCurID,a.FPRICEOBJECT as HType,b.FPRICE as HPrice,a.FEFFECTIVEDATE as HBeginDate
                ,a.FEXPIRYDATE as HEndDate,0 as HUsed,'CLD-ERP导入' as HRemark,'' as HMaker,a.FCREATEDATE as HMakeDate
                ,o.FNUMBER as HOrganNumber
                from T_PUR_PRICELIST a with(nolock)
                inner join T_PUR_PRICELIST_L l with(nolock) on a.FID=l.FID and FLOCALEID=2052
                inner join T_PUR_PRICELISTENTRY b with(nolock) on a.FID=b.FID
                left join T_ORG_Organizations o with(nolock) on a.FUSEORGID=o.FORGID
                Where a.FID={id}
                ";
                LogService.Write("采购价格:" + sql);
                DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                if (dt.Rows.Count == 0)
                {
                    LogService.Write("采购价目同步异常:" + sql);
                    LogService.Write("采购价格同步异常:" + sql);
                    continue;
                }
                //获取创建采购价目的使用组织
                //获取创建采购价格的使用组织
                DataTable dataTable = LogService.Get_DisPlayOrg(Context, dt.Rows[0]["HOrganNumber"].ToString());
                if (dataTable.Rows.Count == 0)
                    continue;
@@ -90,7 +87,7 @@
                {
                    ["model"] = model
                };
                LogService.Write("采购价格:" + model);
                var client = new RestSharp.RestClient(http);
                var requestPost = new RestRequest("Gy_MatePriceSup/SaveGy_MatePriceSupListApi", Method.POST);
                requestPost.AddParameter("application/json", JsonConvert.SerializeObject(_jsonRoot), ParameterType.RequestBody);
@@ -98,9 +95,9 @@
                var contentPost = responsePost.Content;
                if (!contentPost.Contains("成功"))
                { 
                    LogService.Write("采购价目同步异常,POST方式获取结果," + billObj["Id"] + "," + responsePost.ErrorMessage);
                    LogService.Write("采购价目同步异常,POST," +   "Gy_MatePriceSup/SaveGy_MatePriceSupListApi");
                    LogService.Write("采购价目同步异常,JsonConvert.SerializeObject(_jsonRoot)," + JsonConvert.SerializeObject(_jsonRoot));
                    LogService.Write("采购价格同步异常,POST方式获取结果," + billObj["Id"] + "," + responsePost.ErrorMessage);
                    LogService.Write("采购价格同步异常,POST," + "Gy_MatePriceSup/SaveGy_MatePriceSupListApi");
                    LogService.Write("采购价格同步异常,JsonConvert.SerializeObject(_jsonRoot)," + JsonConvert.SerializeObject(_jsonRoot));
                }
            };
zymes/OperationService/zymes_RealessOperator.cs
@@ -44,11 +44,7 @@
            base.AfterExecuteOperationTransaction(e);
            Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息
            foreach (var billObj in e.DataEntitys)
            {
                var forgName = Context.CurrentOrganizationInfo.Name;
                //if (!forgName.Contains("杭州斯莫尔磁性材料有限公司"))
                //    continue;
                //var sql = $"exec zymes_RealessOperator {billObj["Id"]} ";
            {
                var id = billObj["Id"].ToString();
                string sql =string.Empty;
                sql = $@"
@@ -61,8 +57,9 @@
                inner join T_BD_OPERATORENTRY_L l with(nolock) on a.FENTRYID=l.FENTRYID and FLOCALEID=2052
                left join T_BD_STAFF st on a.FSTAFFID = st.FSTAFFID 
                left join T_ORG_Organizations o with(nolock) on a.FBIZORGID=o.FORGID
                Where a.FOPERATORID={id}
                Where a.FOPERATORID={id} and o.FNUMBER=3
                ";
                LogService.Write("业务员同步:" + sql);
                DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                if (dt.Rows.Count == 0)
                {
@@ -97,7 +94,7 @@
                {
                    ["model"] = model
                };
                LogService.Write("业务员同步" + model);
                var client = new RestSharp.RestClient(http);
                var requestPost = new RestRequest("Gy_Operator/SaveGy_OperatorListApi", Method.POST);
                requestPost.AddParameter("application/json", JsonConvert.SerializeObject(_jsonRoot), ParameterType.RequestBody);
zymes/OperationService/zymes_RealessPurInStock.cs
@@ -38,147 +38,7 @@
            base.OnPreparePropertys(e);
            e.FieldKeys.Add("FEntity");
            e.FieldKeys.Add("FEntity_FEntryID");
        }
        //public override void BeginOperationTransaction(BeginOperationTransactionArgs e)
        //{
        //    base.BeginOperationTransaction(e);
        //    //foreach (var item in e.DataEntitys)
        //    //{
        //    //    DynamicObjectCollection entryRows = item["FEntity"] as DynamicObjectCollection;
        //    //}
        //    Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息
        //    foreach (var billObj in e.DataEntitys)
        //    {
        //        //DynamicObjectCollection entryRows = entity.DynamicProperty.GetValue(billObj.DataEntity)
        //        //        as DynamicObjectCollection;
        //        DynamicObjectCollection entryRows = billObj["FEntity"] as DynamicObjectCollection;
        //        foreach (var entryRow in entryRows)
        //        {
        //            var fentryId = entryRow["Id"].ToString();
        //            //生成采购订单
        //            string sql = $"/*dialect*/ exec proc_jit_DayPlanAduitAddNemMoOrder {fentryId}";
        //            DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
        //            if (dt.Rows[0][0].ToString().Contains("成功"))
        //                continue;
        //            foreach (DataRow dr in dt.Rows)
        //            {
        //                JObject model = new JObject();
        //                model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = dr["FBillTypeNumber"].ToString() }); //单据类型
        //                model.Add("FCreatorId", new JObject() { ["FUserID"] = Context.UserId }); //创建人
        //                model.Add("FModifierId", new JObject() { ["FUserID"] = Context.UserId }); //修改人
        //                model.Add("FDate", dr["FDate"].ToString());
        //                model.Add("FBILLNO", dr["FSpreadBillNo"].ToString());
        //                model.Add("FPrdOrgId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
        //                model.Add("FWorkShopID0", new JObject() { ["Fnumber"] = dr["FWorkShopNumber"].ToString() });
        //                model.Add("FOwnerTypeId", dr["FOwnerTypeId"].ToString());
        //                model.Add("FIsRework", dr["FIsRework"].ToString());
        //                model.Add("FBusinessType", dr["FBusinessType"].ToString());
        //                model.Add("FTrustteed", dr["FTrustteed"].ToString());
        //                model.Add("FIsEntrust", dr["FIsEntrust"].ToString());
        //                model.Add("FPPBOMType", dr["FPPBOMType"].ToString());
        //                model.Add("FIssueMtrl", dr["FIssueMtrl"].ToString());
        //                JArray Fentity = new JArray();
        //                JObject FentityModel = new JObject();
        //                FentityModel.Add("FProductType", dr["FProductType"].ToString());
        //                FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = dr["FMATERIALNUMBER"].ToString() });
        //                FentityModel.Add("FWorkShopID", new JObject() { ["Fnumber"] = dr["FWorkShopNumber"].ToString() });
        //                FentityModel.Add("FUnitId", new JObject() { ["Fnumber"] = dr["FUnitNumber"].ToString() });
        //                FentityModel.Add("FQty", dr["FQty"].ToString());
        //                FentityModel.Add("FYieldQty", dr["FYieldQty"].ToString());
        //                FentityModel.Add("FPlanStartDate", dr["FPlanStartDate"].ToString());
        //                FentityModel.Add("FPlanFinishDate", dr["FPlanFinishDate"].ToString());
        //                FentityModel.Add("FRequestOrgId", new JObject() { ["Fnumber"] = dr["FRequestOrgNumber"].ToString() });
        //                FentityModel.Add("FBomId", new JObject() { ["Fnumber"] = dr["FBomNumber"].ToString() });
        //                FentityModel.Add("FISBACKFLUSH", dr["FISBACKFLUSH"].ToString());
        //                FentityModel.Add("FStockInOrgId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
        //                FentityModel.Add("FBaseYieldQty", dr["FBaseYieldQty"].ToString());
        //                FentityModel.Add("FReqType", dr["FReqType"].ToString());
        //                FentityModel.Add("FInStockOwnerTypeId", dr["FInStockOwnerTypeId"].ToString());
        //                FentityModel.Add("FBaseStockInLimitH", dr["FBaseStockInLimitH"].ToString());
        //                FentityModel.Add("FInStockOwnerId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
        //                FentityModel.Add("FCheckProduct", dr["FCheckProduct"].ToString());
        //                FentityModel.Add("FBaseStockInLimitL", dr["FBaseStockInLimitL"].ToString());
        //                FentityModel.Add("FBaseUnitQty", dr["FBaseUnitQty"].ToString());
        //                FentityModel.Add("FRoutingId", new JObject() { ["Fnumber"] = dr["FRoutingNumber"].ToString() });
        //                FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = dr["FUnitNumber"].ToString() });
        //                FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = dr["FStockNumber"].ToString() });
        //                FentityModel.Add("FStockInLimitH", dr["FStockInLimitH"].ToString());
        //                FentityModel.Add("FStockInLimitL", dr["FStockInLimitL"].ToString());
        //                FentityModel.Add("FCostRate", dr["FCostRate"].ToString());
        //                FentityModel.Add("FCreateType", dr["FCreateType"].ToString());
        //                FentityModel.Add("FYieldRate", dr["FYieldRate"].ToString());
        //                FentityModel.Add("FGroup", dr["FGroup"].ToString());
        //                FentityModel.Add("FNoStockInQty", dr["FNoStockInQty"].ToString());
        //                FentityModel.Add("FBaseNoStockInQty", dr["FBaseNoStockInQty"].ToString());
        //                FentityModel.Add("FRowId", dr["FRowId"].ToString());
        //                FentityModel.Add("FPickMtrlStatus", dr["FPickMtrlStatus"].ToString());
        //                FentityModel.Add("FMOChangeFlag", dr["FMOChangeFlag"].ToString());
        //                FentityModel.Add("FDAYPLANBILLNO", dr["FDAYPLANBILLNO"].ToString());
        //                FentityModel.Add("FDayPlanFseq", dr["FDayPlanFseq"].ToString());
        //                FentityModel.Add("FDayPlanFentryId", dr["FDayPlanFentryId"].ToString());
        //                FentityModel.Add("FDayPlanFid", dr["FDayPlanFid"].ToString());
        //                FentityModel.Add("FDayPlanRemainQty", 0);
        //                FentityModel.Add("FDayPlanQty", dr["FQty"].ToString());
        //                FentityModel.Add("F_TEZV_Base", new JObject() { ["Fnumber"] = dr["FPREBDONENUMBER"].ToString() });//包装标识
        //                FentityModel.Add("F_bsv_Text1", dr["F_bsv_Text1"].ToString());//源单客户代码
        //                FentityModel.Add("F_bsv_Date", dr["F_bsv_Date"].ToString());//要求交期
        //                FentityModel.Add("F_bsv_KH", new JObject() { ["Fnumber"] = dr["FCUSTOMERNUMBER"].ToString() });//客户
        //                //////////////采购订单源单信息////////////////////
        //                //FSRCBILLTYPE,FSRCBILLID,FSRCBILLNO,FSRCBILLENTRYID,FSRCBILLENTRYSEQ,FSALEORDERID,FSALEORDERNO,FSALEORDERENTRYID,FSALEORDERENTRYSEQ
        //                FentityModel.Add("FSRCBILLTYPE", dr["FSRCBILLTYPE"].ToString());
        //                FentityModel.Add("FSRCBILLID", dr["FSRCBILLID"].ToString());
        //                FentityModel.Add("FSRCBILLNO", dr["FSRCBILLNO"].ToString());
        //                FentityModel.Add("FSRCBILLENTRYID", dr["FSRCBILLENTRYID"].ToString());
        //                FentityModel.Add("FSRCBILLENTRYSEQ", dr["FSRCBILLENTRYSEQ"].ToString());
        //                FentityModel.Add("FSALEORDERID", dr["FSALEORDERID"].ToString());
        //                FentityModel.Add("FSALEORDERNO", dr["FSALEORDERNO"].ToString());
        //                FentityModel.Add("FSALEORDERENTRYID", dr["FSALEORDERENTRYID"].ToString());
        //                FentityModel.Add("FSALEORDERENTRYSEQ", dr["FSALEORDERENTRYSEQ"].ToString());
        //                FentityModel.Add("FReqSrc", dr["FReqSrc"].ToString());//需求来源 1销售订单
        //                if (dr["FSRCBILLTYPE"].ToString() == "PLN_PLANORDER")
        //                {
        //                    JArray _Fentity2 = new JArray();
        //                    JObject _FentityModel2 = new JObject();
        //                    _FentityModel2.Add("FTREEENTITY_Link_FFlowId", "");//业务流程图:FTREEENTITY_Link_FFlowId
        //                    _FentityModel2.Add("FTREEENTITY_Link_FFlowLineId", "0");//推进路线:FTREEENTITY_Link_FFlowLineId
        //                    _FentityModel2.Add("FTREEENTITY_Link_FRuleId", "PlanOrder_MO");//转换规则:FTREEENTITY_Link_FRuleId
        //                    _FentityModel2.Add("FTREEENTITY_Link_FSTableId", "0");//源单表内码:FTREEENTITY_Link_FSTableId
        //                    _FentityModel2.Add("FTREEENTITY_Link_FSTableName", "T_PLN_PLANORDER");//源单表:FTREEENTITY_Link_FSTableName
        //                    _FentityModel2.Add("FTREEENTITY_Link_FSBillId", dr["FSBILLID"].ToString());//源单内码:FTREEENTITY_Link_FSBillId
        //                    _FentityModel2.Add("FTREEENTITY_Link_FSId", dr["FSID"].ToString()); //源单分录内码:FTREEENTITY_Link_FSId
        //                    _FentityModel2.Add("FTREEENTITY_Link_FBaseUnitQtyOld", dr["FQty"].ToString());//原始携带量:FTREEENTITY_Link_FBaseUnitQtyOld
        //                    _FentityModel2.Add("FTREEENTITY_Link_FBaseUnitQty", dr["FQty"].ToString());//修改携带量:FTREEENTITY_Link_FBaseUnitQty
        //                    _Fentity2.Add(_FentityModel2);
        //                    FentityModel.Add("FTREEENTITY_Link", _Fentity2);
        //                }
        //                //////////////////////////////////////////////////
        //                Fentity.Add(FentityModel);
        //                model.Add("FTreeEntity", Fentity);
        //                JObject jsonRoot = new JObject()
        //                {
        //                    ["Creator"] = "",
        //                    ["NeedUpDateFields"] = new JArray(),
        //                    ["NeedReturnFields"] = new JArray(),
        //                    ["IsDeleteEntry"] = "false",
        //                    ["SubSystemId"] = "",
        //                    ["IsVerifyBaseDataField"] = "false",
        //                    ["Model"] = model
        //                };
        //                var _result = InvokeHelper.Save("PRD_MO", jsonRoot.ToString());
        //                var _saveObj = JObject.Parse(_result);
        //                var saveIsSuc = _saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
        //                if (saveIsSuc != "TRUE")
        //                {
        //                    e.CancelOperation = true;
        //                    dictionary.Add(dr["FDAYPLANBILLNO"].ToString(), "采购订单生成失败," + _saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
        //                    LogService.Write("采购订单生成失败json" + jsonRoot.ToString());
        //                    //this.View.ShowErrMessage("采购订单生成失败," + _saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
        //                    continue;
        //                }
        //            }
        //        }
        //    }
        //}
        }
        public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
        {
            base.AfterExecuteOperationTransaction(e);
zymes/OperationService/zymes_RealessPurPrice.cs
New file
@@ -0,0 +1,125 @@
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_RealessPurPrice : 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.FNUMBER as HNumber,'' as HName,a.FNUMBER as HShortNumber,0 as HParentID,1 as HLevel,
                 'true'  as HEndFlag,case when a.FFORBIDSTATUS='A' then 'false' else 'true' end as HStopflag,'CLD-ERP 导入 ' as HRemark,' 已使用 ' as HUseFlag,
                a.FCREATEORGID as HCREATEORGID,a.FUSEORGID as HUSEORGID,a.FCREATORID as HMakeEmp,a.FCREATEDATE as HMakeTime,a.FAPPROVERID as HCheckEmp,
                a.FAPPROVEDATE as HCheckTime,a.FMODIFIERID as HModifyEmp,a.FMODIFYDATE as HModifyTime,a.FFORBIDERID as HStopEmp,a.FFORBIDDATE as HStopTime,
                a.FPURCHASEORGID as HPURCHASEORGID,a.FSUPPLIERID as HSupID,a.FCURRENCYID as HCurID,a.FPRICER as HPRICER,a.FPRICETYPE as HPRICETYPE,
                a.FPRICEOBJECT as HPRICEOBJECT,a.FISINCLUDEDTAX as HISINCLUDEDTAX,a.FDEFPRICELISTID as HDEFPRICELISTID,a.FSUPPLIERMASTERID as HSUPPLIERMASTERID
                ,o.FNUMBER as HOrganNumber
                from T_PUR_PRICELIST a with (nolock)
                left join T_ORG_Organizations o with(nolock) on a.FUSEORGID=o.FORGID
                Where a.FID={id}
                ";
                LogService.Write("采购价目:" + 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("采购价目:" + model);
                var client = new RestSharp.RestClient(http);
                var requestPost = new RestRequest("Gy_MatePriceSup/SaveGy_PurPriceApi", 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_MatePriceSup/SaveGy_PurPriceApi");
                    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_RealessUnit.cs
@@ -53,7 +53,7 @@
                ,1 as HLevel,'true' as HEndFlag,case when     a.FFORBIDSTATUS='A' then 'false' else 'true' end as HStopflag,'CLD-ERP导入' as HRemark,getdate() as HMakeTime
                ,'true' as HStandard,a.FCREATEORGID as HCREATEORGID,a.FUSEORGID as HUSEORGID,o.FNUMBER as HOrganNumber
                from T_BD_UNIT a with(nolock)
                inner join T_BD_UNIT_L l with(nolock) on a.FUNITID=l.FUNITID
                inner join T_BD_UNIT_L l with(nolock) on a.FUNITID=l.FUNITID  and l.FLOCALEID = 2052
                INNER JOIN T_ORG_Organizations o on a.FUSEORGID=o.FORGID
                Where l.FLOCALEID=2052  and  a.FUNITID={id}
                ";
zymes/OperationService/zymes_RealessWork.cs
@@ -45,17 +45,13 @@
            Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息
            foreach (var billObj in e.DataEntitys)
            {
                var forgName = Context.CurrentOrganizationInfo.Name;
                //if (!forgName.Contains("杭州斯莫尔磁性材料有限公司"))
                //    continue;
                //var sql = $"exec zymes_RealessWork  {billObj["Id"]} ";
                var id = billObj["Id"].ToString();
                string sql =string.Empty;
                sql = $@"
            /*dialect*/
            select a.FID as HItemID,a.FNUMBER as HNumber,l.FNAME as HName,'' as HHelpCode,a.FNUMBER as HShortNumber,0 as HParentID
            ,1 as HLevel,'true' as HEndFlag,'false' as HStopflag,'CLD-ERP导入' as HRemark,'' as HUseFlag,a.FUSEORGID as HUSEORGID
            ,a.FCREATEORGID as HCREATEORGID,a.FWORKCENTERID as HWORKCENTERID,o.FNUMBER as HOrganNumber
            ,a.FCREATEORGID as HCREATEORGID,a.FWORKCENTERID as HWORKCENTERID,o.FNUMBER as HOrganNumber
            from T_ENG_PROCESS a with(nolock)
            inner join T_ENG_PROCESS_L l with(nolock) on a.FID=l.FID and FLOCALEID=2052
            left join T_ORG_Organizations o with(nolock) on a.FUSEORGID=o.FORGID
@@ -88,7 +84,7 @@
                {
                    ["model"] = model
                };
                LogService.Write("作业同步:" + model);
                var client = new RestSharp.RestClient(http);
                var requestPost = new RestRequest("Gy_Work/SaveGy_WorkListApi", Method.POST);
                requestPost.AddParameter("application/json", JsonConvert.SerializeObject(_jsonRoot), ParameterType.RequestBody);
zymes/zymes_Project.csproj
@@ -128,6 +128,7 @@
    <Compile Include="LogService.cs" />
    <Compile Include="OperationService\zymes_MOCHANGE.cs" />
    <Compile Include="OperationService\zymes_RealessCurrency.cs" />
    <Compile Include="OperationService\zymes_RealessPurPrice.cs" />
    <Compile Include="OperationService\zymes_RealessOperator.cs" />
    <Compile Include="OperationService\zymes_RealessUnitConvertRate.cs" />
    <Compile Include="OperationService\zymes_RealessPrdInStock.cs" />