yxj
2025-08-19 5f4db1e0df20644d4581554ba863ee2c50be2c8f
新增生成金蝶云工序汇报单(工序计划下推工序汇报单)调用方法
1个文件已修改
122 ■■■■■ 已修改文件
CLOUDWEB/WebService1.asmx.cs 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CLOUDWEB/WebService1.asmx.cs
@@ -8,6 +8,7 @@
using System.Data.SqlClient;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace CLOUDWEB
{
@@ -45229,6 +45230,127 @@
        #endregion
        #region 工序计划下推工序汇报单CLOUD
        [WebMethod]
        public bool set_SaveStationOutBill_CLD(Int64 HInterID, string HBillNo, string HMaker, ref string sErrMsg)
        {
            string sRemark = "";
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码
            if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo))
            {
                sErrMsg = "单据号:" + HBillNo + ";" + Pub_Class.ClsPub.sExeReturnInfo;
                return false;
            }
            //获取CLOUD默认账号密码
            string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName;
            string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd;
            //从用户表获取用户绑定金蝶账号
            DataSet ds11 = oCn.RunProcReturn("exec h_p_API_GetCloudUserByLoginUser '" + HMaker + "'", "h_p_API_GetCloudUserByLoginUser");
            if (ds11 == null || ds11.Tables[0].Rows.Count == 0)
            {
            }
            else
            {
                sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]);
                sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]);
            }
            string HReturn;
            K3CloudApiClient client = new K3CloudApiClient(Pub_Class.ClsPub.sCLOUDUrl);
            //ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl);
            string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117
            bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
            sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
            try
            {
                //获取WEBAPI所需递入数据
                DataSet Ds = oCn.RunProcReturn("exec h_p_Sc_GetStationOutBill_CLD " + HInterID.ToString() + ",'" + HBillNo + "'", "h_p_Sc_GetStationOutBill_CLD");
                if (Ds == null || Ds.Tables[0].Rows.Count == 0)
                {
                    sErrMsg = "单据号:" + HBillNo + ";获取WEBAPI所需递入数据失败!";
                    return false;
                }
                else
                {
                    string sJson_Custom = "";   //自定义字段
                    sJson_Custom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["Custom"]);
                    string sJson = "{\"AutoAudit\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["AutoAudit"]) + "\"," +            //自动审核
                        " \"Datas\": [ {  " +
                            " \"Id\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["Id"]) + "\"," +                                 //工序计划头Id
                            " \"DetailIds\": [ {  " +       //工序计划子单据体
                                " \"EntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["EntryId"]) + "\"," +                   //工序计划序列Id
                                " \"DetailId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["DetailId"]) + "\"," +                 //工序计划工序Id
                                " \"QuaQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["QuaQty"]) + "\"," +                     //合格数量
                                " \"ProcessFailQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["ProcessFailQty"]) + "\"," +     //工废数量
                                " \"MaterialFailQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MaterialFailQty"]) + "\"," +   //料废数量
                                " \"WastageQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["WastageQty"]) + "\"," +             //损耗数量
                                " \"FinishQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FinishQty"]) + "\"," +               //完工数量
                                sJson_Custom +
                                " \"EpmIds\": [ {  " +
                                    " \"EpmId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["EpmId"]) + "\"," +                   //操作工
                                    " } ]," +
                                " } ]," +
                        " } ]}";
                    sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                    //生成金蝶云单据
                    if (bLogin)
                    {
                        var result = client.Execute<string>("Kingdee.K3.MFG.WebApi.ServicesStub.OptPlanOptRtpApiService.Push,Kingdee.K3.MFG.WebApi.ServicesStub",
                        new object[] { sJson });
                        sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                        HReturn = result.ToString();
                        if (HReturn.Contains("\"IsSuccess\":false") == true)
                        {
                            //反序列化json数据
                            var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn);
                            //接收金蝶报错信息
                            var strErrorMsg = string.Empty;
                            //遍历获取报错信息
                            foreach (var item in retModel.Result.ResponseStatus.Errors)
                            {
                                strErrorMsg += item.Message + "\r\n";
                            };
                            sErrMsg = "单据号:" + HBillNo + ";生成工序汇报单失败!金蝶云提示:" + strErrorMsg;
                            LogService.Write("单据号:" + HBillNo + ";工序计划下推工序汇报失败!" + HReturn + sJson);   //写入txt文本
                            return false;
                        }
                        else
                        {
                            sRemark = sRemark + sJson;
                            LogService.Write("单据号:" + HBillNo + ";工序计划下推工序汇报成功!" + sRemark +"------"+ HReturn);   //写入txt文本
                            return true;
                        }
                    }
                    else
                    {
                        sErrMsg = "单据号:" + HBillNo + ";生成工序汇报单失败!金蝶云登录失败!";
                        return false;
                    }
                }
            }
            catch (Exception e)
            {
                LogService.Write("单据号:" + HBillNo + ";生成回滚" + e.Message + sRemark);
                sErrMsg = "单据号:" + HBillNo + ";生成工序汇报单失败!" + e.Message;
                return false;
            }
        }
        #endregion
        #region 不良评审单        *
        //生成不良评审单