创建预留关系

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

创建预留关系

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;



using Kingdee.BOS.BusinessEntity;

using Kingdee.BOS.Core.Bill;

using Kingdee.BOS.Core.Bill.PlugIn.Args;

using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;

using Kingdee.BOS.Core.List.PlugIn;

using Kingdee.BOS.Core.List.PlugIn.Args;

using Kingdee.BOS.DataEntity;

using Kingdee.BOS.KDThread;

//using Lyf.Common.Core;

//using Lyf.HFD.ServiceHelper;


using Kingdee.BOS.WebApi.Client;

using Kingdee.BOS.JSON;

using Kingdee.BOS.Core.Bill.PlugIn;

using Kingdee.BOS.Core.DynamicForm;

using System.Collections;

using Kingdee.BOS.Orm.DataEntity;

using JD.BOS.POOrder.Po.PurService;


//预留

namespace Lyf.HFD.App.Core

{

    public class PLN_RESERVE_Api 

    {


        public void BarItem(Dictionary<string, object> dic)

        {

            Write_Log log = new Write_Log();

           

           //var a1 = dic["dic"];

           Dictionary<string, object> itemArr = new Dictionary<string, object>();

           Dictionary<string, object> FEntity1 = new Dictionary<string, object>();

            foreach (var item in dic)

            {

                var item1 = item.Value;

                itemArr = item1 as Dictionary<string, object>;

                FEntity1 = itemArr["ENTRY"] as Dictionary<string, object>;

            }


               K3CloudApiClient client = new K3CloudApiClient("http://PC-20200419WNOL:8000/");

               //// 调用登陆接口 参数 数据中心Id,用户名,密码,语言id     -----select  * from  T_BAS_DATACENTER ; 

                bool ret = client.Login("5e9d1da2413bd1", "demo", "888888", 2052);//5e9d1da2413bd1


               

                log.WriteLog("登陆是否成功="+ ret);

                // 登陆成功

                if (ret)

                {

                    JSONObject departMent = new JSONObject();

                    departMent.Put("FID", 0);

                    departMent.Put("FGenerateId0", "b88687c04234a8f111eb1ffbe217774e");//创建者标示


                    departMent.Put("FDEMANDBILLNO", itemArr["BillNo"].ToString());//xsd000091

                    departMent.Put("FSRCENTRYID",itemArr["Id"].ToString());//顶级需求内码100507

                   // departMent.Put("FBASEDEMANDUNITID", Number("Pcs"));

                    departMent.Put("FDosageType", "2");

                    departMent.Put("FSupRate", "100");

                    departMent.Put("FMATERIALID", Number(itemArr["Number"].ToString()));//物料编码

                    departMent.Put("FDEMANDORGID", Number(itemArr["Number1"].ToString()));//101.2

                    departMent.Put("FDEMANDFORMID", Number("FID", itemArr["FFormId"].ToString()));//"SAL_SaleOrder"

                    departMent.Put("FDEMANDDATE", itemArr["Date"].ToString());//需求日期

                    departMent.Put("FDEMANDINTERID", itemArr["MaterialId_Ids"].ToString());//需求预留内码100198 xsd90

                    departMent.Put("FDemandENTRYID", itemArr["Id"].ToString());//需求预留分录内码100507 xsd90

                    departMent.Put("FINTDEMANDID", itemArr["MaterialId_Ids"].ToString());//100198

                    departMent.Put("FINTDEMANDENTRYID", itemArr["Id"].ToString());

                    

                    //顶级需求

                    departMent.Put("FSRCBILLNO",itemArr["BillNo"].ToString());

                    departMent.Put("FSRCFORMID",Number("FID",itemArr["FFormId"].ToString()));

                    departMent.Put("FSRCINTERID", itemArr["MaterialId_Ids"].ToString());//100198

                    departMent.Put("FINTSRCID", itemArr["MaterialId_Ids"].ToString());//100198

                    departMent.Put("FINTSRCENTRYID", itemArr["Id"].ToString());//100507

                    departMent.Put("FEntity", FEntity(FEntity1, itemArr));


                    List<JSONObject> departmentList = new List<JSONObject>();

                    departmentList.Add(departMent);


                    JSONObject DepartMentBath = new JSONObject();

                    DepartMentBath.Put("Creator", "");

                    DepartMentBath.Put("NeedUpDateFields", new ArrayList());

                    DepartMentBath.Put("NeedReturnFields", new ArrayList());

                    DepartMentBath.Put("IsDeleteEntry", "true");

                    DepartMentBath.Put("SubSystemId", "");

                    DepartMentBath.Put("IsVerifyBaseDataField", "false");

                    DepartMentBath.Put("IsEntryBatchFill", "true");

                    DepartMentBath.Put("ValidateFlag", "false");//验证

                    DepartMentBath.Put("NumberSearch", "true");

                    DepartMentBath.Put("InterationFlags", "");

                    DepartMentBath.Put("IsAutoSubmitAndAudit", "false");

                    DepartMentBath.Put("Model", departMent);


                    object obj1 = client.Save("PLN_RESERVELINK", DepartMentBath.ToString());//保存


                    log.WriteLog("预留保存是否成功=" + obj1);

                    log.WriteLog("预留保存数据包=" + DepartMentBath.ToString());


                    // 将结果转成JSONObject类型

                    JSONObject jsobj = JSONObject.Parse(obj1.ToString());

                    object jsonobj =dataEncapsulation(jsobj);

                    // 提交

                    object result1 = client.Submit("PLN_RESERVELINK", jsonobj.ToString());


                    // 审核

                    object result2 = client.Audit("PLN_RESERVELINK", jsonobj.ToString());




                }

        }

        private List<JSONObject> FEntity(Dictionary<string, object> FEntity1, Dictionary<string, object> itemArr)

        {

            List<JSONObject> FEntity2 = new List<JSONObject>();

            JSONObject departMent = new JSONObject();

            foreach (var item3 in FEntity1)

            {

                var asd = item3.Key;

                var asd1 = item3.Value;

              //  List<JSONObject> FEntity = new List<JSONObject>();

           // JSONObject departMent = new JSONObject();

            departMent.Put("FSUPPLYFORMID", Number("FID", "STK_Inventory"));

            departMent.Put("FSUPPLYINTERID", item3.Key.ToString());//即时库存内码必填b88687c0-4234-b657-11ea-851499a304cc

            departMent.Put("FSUPPLYMATERIALID", Number(itemArr["Number"].ToString()));//物料编码1.01.0001

            departMent.Put("FSUPPLYORGID", Number(itemArr["Number1"].ToString()));//101.2

            // FSUPPLYLOT批号123460

           // departMent.Put("FSUPPLYDATE", "2020-11-20 00:00:00");

            //departMent.Put("FSUPPLYSTOCKID", Number("CK001"));//仓库

            //departMent.Put("FBASESUPPLYUNITID", Number("Pcs"));

            departMent.Put("FSTOCKFORMID", Number("FID", "STK_Inventory"));

            departMent.Put("FBASESUPPLYQTY", item3.Value.ToString());//预留数量

            departMent.Put("FISMTO", false);            

             //"FSecQty": 8.0

            FEntity2.Add(departMent);

            }

            return FEntity2;

        }


        public object dataEncapsulation(JSONObject obj)

        {

            // 结果集

            object Result = obj.Get("Result");

            // 编码

            object number = JSONObject.Parse(Result.ToString()).Get("Number");

            // id

            object id = JSONObject.Parse(Result.ToString()).Get("Id");

            // 构建json参数

            JSONObject jsobje = new JSONObject();

            jsobje.Put("CreateOrgId", 0);

            ArrayList al = new ArrayList();

            al.Add(number);

            jsobje.Put("Numbers", al);

            jsobje.Put("Ids", id.ToString());

            jsobje.Put("SelectedPostId", 0);

            jsobje.Put("NetworkCtrl", "");

            return jsobje.ToString();

        }


        private JSONObject Number0(object value)

        {

            JSONObject numberJson = new JSONObject();

            return numberJson;

        }

        private JSONObject Number(object value)

        {

            JSONObject numberJson = new JSONObject();

            numberJson.Put("FNumber", value);

            return numberJson;

        }

        private JSONObject Number(string key, object value)

        {

            JSONObject numberJson = new JSONObject();

            numberJson.Put(key, value);

            return numberJson;

        }

        public object jsonprlitw(JSONObject obj1)

        {

            //审核

            JSONObject jsobje = new JSONObject();

            jsobje.Put("CreateOrgId", 0);

            //jsobje.Put("Number", new ArrayList());


            //获取SuccessEntitys的json数据

            object Result = obj1.Get("Result");

            var ResponseStatus = JSONObject.Parse(Result.ToString()).Get("ResponseStatus").ToString();

            string SuccessEntitys = JSONObject.Parse(ResponseStatus.ToString()).Get("SuccessEntitys").ToString();

            string[] sArray1 = SuccessEntitys.Split(new char[2] { '[', ']' });


            //获取编码

            ArrayList arr = new ArrayList();

            string number = JSONObject.Parse(sArray1[1].ToString()).Get("Number").ToString();

            arr.Add(number);

            jsobje.Put("Numbers", arr);


            //获取ID

            string Ids = JSONObject.Parse(sArray1[1].ToString()).Get("Id").ToString();

            jsobje.Put("Ids", Ids);

            jsobje.Put("InterationFlags", 0);

            jsobje.Put("NetworkCtrl", "");

            return jsobje.ToString();

        }

        public object jsonprlit(JSONObject obj1)

        {

            //提交

            JSONObject jsobje = new JSONObject();

            jsobje.Put("CreateOrgId", 0);

            //jsobje.Put("Number", new ArrayList());


            //获取SuccessEntitys的json数据

            object Result = obj1.Get("Result");

            var ResponseStatus = JSONObject.Parse(Result.ToString()).Get("ResponseStatus").ToString();

            string SuccessEntitys = JSONObject.Parse(ResponseStatus.ToString()).Get("SuccessEntitys").ToString();

            string[] sArray1 = SuccessEntitys.Split(new char[2] { '[', ']' });


            //获取编码

            ArrayList arr = new ArrayList();

            string number = JSONObject.Parse(sArray1[1].ToString()).Get("Number").ToString();

            arr.Add(number);

            jsobje.Put("Numbers", arr);


            //获取ID

            string Ids = JSONObject.Parse(sArray1[1].ToString()).Get("Id").ToString();

            jsobje.Put("Ids", Ids);

            jsobje.Put("SelectedPostId", 0);

            jsobje.Put("NetworkCtrl", "");

            return jsobje.ToString();


        }

    }

}




貌似只能保存不能提交审核。提交审核保存:表单预留关系不存状态字段,不能进行状态转换。


保存了预留关系就有效果了?父项需求和顶级需求可以不填?

我承认你很强,但是可以将照片稍微往后放一放或者放小点吗


 必填项

   FSUPPLYFORMID='STK_Inventory'  --供给类型

   FSUPPLYINTERID='3448edf6-4709-8abc-11eb-bd34ff7caa63' --供给单据内码

   FBASEQTY='5' --数量

   编号不存在? 设置:"ValidateFlag", "false"  --验证



【emoji】 


 【emoji】


不愧是星空大佬


1

创建预留关系

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Kingdee...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息