智云SRM-WEBAPI(目前客户通用API)
WebAPI/Controllers/POInStockController.cs
@@ -37,7 +37,7 @@
        {
            try
            {
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                //写入 System_Log 操作日志表
                WebAPIController.Add_Log("送货单打印", CurUserName, "送货单打印");
                oCn.RunProc("exec H_p_SRM_POInStockBill_PrintQty " + msg.ToString());
@@ -85,20 +85,24 @@
                    return objjson;
                }
                string HBillNo, HInnerBillNo, HDate;
                Int64 HInterID;
                HBillNo = DBUtility.ClsPub.CreateBillCode_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo, true);
                HInnerBillNo = DBUtility.ClsPub.CreateBillCode_SRMProd("777", ref DBUtility.ClsPub.sExeReturnInfo, true);//送货单号
                HDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
                HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
                //创建临时表
                DataTable dt = new DataTable();
                //创建表中的列
                dt.Columns.Add("HBillNo", typeof(string));//添加列
                dt.Columns.Add("HInnerBillNo", typeof(string));//添加列
                dt.Columns.Add("HDate", typeof(string));//添加列
                dt.Columns.Add("HInterID", typeof(Int64));//添加列
                DataRow row = dt.NewRow();
                //给列赋值
                row["HBillNo"] = HBillNo;
                row["HInnerBillNo"] = HInnerBillNo;
                row["HDate"] = HDate;
                row["HInterID"] = HInterID;
                //把有值的列添加到表
                dt.Rows.Add(row);
                //把表添加到dataset
@@ -256,7 +260,7 @@
            try
            {
                string sql = $"update Cg_POInStockBillMain  set  HDeliveryNo ='{HDeliveryNo}' where HInterID in ({HmainId})";
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                oCn.RunProc(sql);
                objJsonResult.code = "1";
@@ -283,7 +287,7 @@
        [HttpPost]
        public object SaverPOInStock([FromBody] JObject msg)
        {
            SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            var _value = msg["msg"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
@@ -323,7 +327,7 @@
                    oItem.HCurID = 1;
                    oItem.HExRate = 1;
                    oItem.HMainSourceInterID = oItem.HInterID;
                    oItem.HInterID = 0;
                    //oItem.HInterID = 0;
                    //oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
                    if (FCusName.Contains("安瑞")) //系统参数  客户定制化名称     空白为通用
                    {
@@ -359,41 +363,41 @@
                int i = 0;
                foreach (Model.ClsCg_POInStockBillSub oItemSub in ls)
                {
                    if (FCusName.Contains("凯贝奈特")) //系统参数  客户定制化名称     空白为通用
                    {
                        if (oItemSub.HBatChNo.Length != 8 || Regex.IsMatch(oItemSub.HBatChNo, @"^[0-9]+$") == false)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "保存失败!第" + i.ToString() + "行 生产日期D/C 格式错误无法保存!正确格式为8位数的纯数字日期";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        //获取年月日
                        string year = oItemSub.HBatChNo.Substring(0, 4);
                        string month = oItemSub.HBatChNo.Substring(4, 2);
                        string day = oItemSub.HBatChNo.Substring(6, 2);
                    //if (FCusName.Contains("凯贝奈特")) //系统参数  客户定制化名称     空白为通用
                    //{
                    //    if (oItemSub.HBatChNo.Length != 8 || Regex.IsMatch(oItemSub.HBatChNo, @"^[0-9]+$") == false)
                    //    {
                    //        objJsonResult.code = "0";
                    //        objJsonResult.count = 0;
                    //        objJsonResult.Message = "保存失败!第" + i.ToString() + "行 生产日期D/C 格式错误无法保存!正确格式为8位数的纯数字日期";
                    //        objJsonResult.data = 1;
                    //        return objJsonResult;
                    //    }
                        //验证合法性
                        if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "保存失败!第" + i.ToString() + "行 生产日期D/C 日期不合法无法保存!正确格式为8位数的纯数字日期";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        if (Convert.ToInt32(month) > 12 || Convert.ToInt32(day) > 31)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "保存失败!第" + i.ToString() + "行 生产日期D/C 日期不合法无法保存!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                    //    //获取年月日
                    //    string year = oItemSub.HBatChNo.Substring(0, 4);
                    //    string month = oItemSub.HBatChNo.Substring(4, 2);
                    //    string day = oItemSub.HBatChNo.Substring(6, 2);
                }
                    //    //验证合法性
                    //    if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
                    //    {
                    //        objJsonResult.code = "0";
                    //        objJsonResult.count = 0;
                    //        objJsonResult.Message = "保存失败!第" + i.ToString() + "行 生产日期D/C 日期不合法无法保存!正确格式为8位数的纯数字日期";
                    //        objJsonResult.data = 1;
                    //        return objJsonResult;
                    //    }
                    //    if (Convert.ToInt32(month) > 12 || Convert.ToInt32(day) > 31)
                    //    {
                    //        objJsonResult.code = "0";
                    //        objJsonResult.count = 0;
                    //        objJsonResult.Message = "保存失败!第" + i.ToString() + "行 生产日期D/C 日期不合法无法保存!";
                    //        objJsonResult.data = 1;
                    //        return objJsonResult;
                    //    }
                    //}
                //判断采购订单状态 
                objJsonResult = TestPOOrder(oItemSub.HPOOrderEntryID.ToString());
                    if (objJsonResult.code == "0")
@@ -427,7 +431,7 @@
                //保存
                //保存完毕后处理
                bool bResult;
                if (oBill.omodel.HInterID == 0)
                if (oBill.omodel.HInterID != 0 && oBill.omodel.HInterID.ToString() != null && oBill.omodel.HInterID.ToString() != "undefined")
                {
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
@@ -482,7 +486,7 @@
                sw.Start();//开始计时
                string VsWhere = "";
                string PcWhere = "";
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                DataSet ds;
                //其他过滤
                string sql = " Where hsupid in (select HSupID from h_v_Gy_UserSupplierList where 用户 =^^" + HSupNo.Trim() + "^^) " + sqlWhere;
@@ -639,9 +643,9 @@
        public object AuditPOInStockBill(string HInterID, string CurUserName, string HBillNo)
        {
            json objjson = new json();
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            try
            {
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            {
                //采购订单 生成送货单列表
                if (!String.IsNullOrEmpty(HBillNo))
                    HInterID = GetHinterIDByBillNo(HBillNo, "Aduit").ToString();
@@ -662,10 +666,42 @@
                //var HValue = oCn.RunProcReturn(parameterSql, "dt").Tables[0].Rows[0][0].ToString();
                string HValue = "Y";
                string CustomFields = "";//自定义字段
                oCn.BeginTran(); //开始事物
                if (HValue == "Y")
                {
                    if (FCusName == "夏宝电器")
                    //==================================== Begin 送货单审核前控制 Begin ====================================
                    DataSet ds;
                    string[] sArray = HInterID.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                    for (int i = 0; i < sArray.Length; i++)
                    {
                        ds = oCn.RunProcReturn("exec h_p_SRM_Cg_POInStockBill_BeforeCheckCtrl " + sArray[i] + ",'" + HBillNo + "','" + CurUserName + "'", "h_p_SRM_Cg_POInStockBill_BeforeCheckCtrl");
                        if (ds == null)
                        {
                            oCn.RollBack(); //回滚事物
                            objjson.code = "0";
                            objjson.count = 0;
                            objjson.Message = "审核前判断失败!无数据返回";
                            objjson.data = null;
                            return objjson;
                        }
                        if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
                        {
                            oCn.RollBack(); //回滚事物
                            objjson.code = "0";
                            objjson.count = 0;
                            objjson.Message = "审核失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemarkBack"]);
                            objjson.data = null;
                            return objjson;
                        }
                    }
                    //====================================== End 送货单审核前控制 End ======================================
                    if (FCusName == "夏宝电器")
                    {
                        sql = string.Format(@"
SELECT T3.FNAME AS FTYPENAME,M.HBILLNO,B.HINTERID,B.HENTRYID,C.FID,C.FENTRYID, D.FBILLNO,B.HQTY,CD.FRECEIVEORGID,CDOO.FNUMBER AS FRECEIVENUMBER
,D.FSUPPLIERID,DS.FNUMBER AS FSUPPLIERNUMBER,D.FPURCHASEORGID,DOO.FNUMBER AS FPURCHASEORGNUMBER,CROO.FNUMBER  AS FSETTLEORGNUMBER,
@@ -828,7 +864,8 @@
E.FPRICETIMEPOINT,E.FSETTLECURRID,EC.FNUMBER AS FSETTLECURRNUMBER,C.FMATERIALID,CM.FNUMBER AS FMATERIALNUMBER ,C.FUNITID 
,CU.FNUMBER AS FUNITNUMBER,CR.FPRICE,CR.FTAXPRICE,CR.FTAXRATE,D.FPURCHASERID,isnull(T4.FNUMBER,'') AS FPURCHASERNUMBER
,B.HExpressNumberSub,B.HExpressSupplierSub,B.HRemark,B.HPlanArrivalDate,B.HBoxNumber,B.HBatChNo,D.FBILLTYPEID 
,isnull(VW.FNUMBER,'') AS FReceiverNUMBER
,isnull(VW.FNUMBER,'') AS FReceiverNUMBER,isnull(B.HKFDate,'') As FProduceDate,B.HTAXPRICE_T AS F_AAAA_PRICE1
,C.FGiveAway AS FGiveAway
FROM CG_POINSTOCKBILLSUB B  
JOIN CG_POINSTOCKBILLMAIN M ON B.HINTERID = M.HINTERID
JOIN {0}..T_PUR_POORDERENTRY C ON B.HSOURCEINTERID = C.FID AND B.HSOURCEENTRYID = C.FENTRYID
@@ -895,6 +932,11 @@
                                    //3厂
                                    if (dr["FBILLTYPEID"].ToString() == "83d822ca3e374b4ab01e5dd46a0062bd")
                                    {
                                        fTypeName = "SLD10_SYS";
                                    }
                                    //标准采购订单
                                    if (dr["FBILLTYPEID"].ToString() == "65a5124e3be263")
                                    {
                                        fTypeName = "SLD01_SYS";
                                    }
                                    model.Add("FReceiverId", new JObject() { ["Fnumber"] = dr["FReceiverNUMBER"].ToString() }); //收料员
@@ -928,18 +970,20 @@
                                    FentityModel.Add("FSRCENTRYID", item["FENTRYID"].ToString());//源单分录内码
                                    FentityModel.Add("FORDERBILLNO", item["FBILLNO"].ToString());//源单单号
                                    FentityModel.Add("FPOORDERENTRYID", item["FENTRYID"].ToString());//源单分录内码
                                    FentityModel.Add("FSRMENTRYID", item["HENTRYID"].ToString());//SRM hentryid
                                    FentityModel.Add("FPrice", item["FPRICE"].ToString());//单价
                                    FentityModel.Add("FTaxPrice", item["FTAXPRICE"].ToString());//含税单价
                                    FentityModel.Add("FEntryTaxRate", item["FTAXRATE"].ToString());//税率
                                    FentityModel.Add("FSRMENTRYID", item["HENTRYID"].ToString());//SRM hentryid
                                    FentityModel.Add("FLot", new JObject() { ["Fnumber"] = item["HBatChNo"].ToString() }); // 批号   
                                    FentityModel.Add("FProduceDate", item["FProduceDate"].ToString());//生产日期
                                    FentityModel.Add("F_aaaa_Price1", item["F_aaaa_Price1"].ToString());//含税重量单价/吨
                                    FentityModel.Add("F_bsv_Text1", item["HExpressSupplierSub"].ToString());//物流单位 (瑞琪)
                                    FentityModel.Add("F_bsv_Text2", item["HExpressNumberSub"].ToString());//物流单号 (瑞琪)
                                    FentityModel.Add("FDescription", item["HRemark"].ToString());//表体备注 (瑞琪)
                                    FentityModel.Add("F_bsv_dhrq", item["HPlanArrivalDate"].ToString());//到货日期 (瑞琪)
                                    FentityModel.Add("F_bsv_xh", item["HBoxNumber"].ToString());//箱号 (瑞琪)
                                    FentityModel.Add("FPrice", item["FPRICE"].ToString());//单价
                                    FentityModel.Add("FTaxPrice", item["FTAXPRICE"].ToString());//含税单价
                                    FentityModel.Add("FEntryTaxRate", item["FTAXRATE"].ToString());//税率
                                    FentityModel.Add("FGiveAway", item["FGiveAway"].ToString());//是否赠品
                                    JArray Fentity2 = new JArray();
                                    JObject FentityModel2 = new JObject();
                                    FentityModel2.Add("FDetailEntity_Link_FRULEID", "PUR_PurchaseOrder-PUR_ReceiveBill");
@@ -1022,6 +1066,7 @@
E.FPRICETIMEPOINT,E.FSETTLECURRID,EC.FNUMBER AS FSETTLECURRNUMBER,C.FMATERIALID,CM.FNUMBER AS FMATERIALNUMBER ,C.FUNITID 
,CU.FNUMBER AS FUNITNUMBER,CR.FPRICE,CR.FTAXPRICE,CR.FTAXRATE,D.FPURCHASERID,isnull(T4.FNUMBER,'') AS FPURCHASERNUMBER
,B.HExpressNumberSub,B.HExpressSupplierSub,B.HRemark,B.HPlanArrivalDate,B.HBoxNumber,B.HBatChNo,D.FBILLTYPEID 
,CU2.FNUMBER AS FPRICEUNITNUMBER
FROM CG_POINSTOCKBILLSUB B  
JOIN CG_POINSTOCKBILLMAIN M ON B.HINTERID = M.HINTERID
JOIN {0}..T_PUR_POORDERENTRY C ON B.HSOURCEINTERID = C.FID AND B.HSOURCEENTRYID = C.FENTRYID
@@ -1039,6 +1084,8 @@
LEFT JOIN {0}..T_ORG_ORGANIZATIONS DOO ON D.FPURCHASEORGID = DOO.FORGID
JOIN {0}..T_PUR_POORDERFIN E ON C.FID =E.FID
LEFT JOIN {0}..T_BD_CURRENCY EC ON E. FSETTLECURRID =EC.FCURRENCYID  
LEFT JOIN {0}..T_PUR_POORDERENTRY_F CF ON C.FID = CF.FID AND C.FENTRYID = CF.FENTRYID
LEFT JOIN {0}..T_BD_UNIT CU2 ON CF.FPRICEUNITID =CU2.FUNITID
 WHERE b.hinterid in ({1}) and M.HERPInterID = 0
", kdTbaleName, HInterID, CustomFields);
                        dt = oCn.RunProcReturn(sql, "sltz").Tables[0];
@@ -1088,7 +1135,7 @@
                                    FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = item["FMATERIALNUMBER"].ToString() }); // 物料编码   
                                    FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 单位   
                                    FentityModel.Add("FPreDeliveryDate", DateTime.Now.ToString("yyyy-MM-dd")); //预计到货日期   
                                    FentityModel.Add("FPriceUnitId", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 计价单位
                                    FentityModel.Add("FPriceUnitId", new JObject() { ["Fnumber"] = item["FPRICEUNITNUMBER"].ToString() }); // 计价单位
                                    FentityModel.Add("FStockUnitID", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); //  库存单位   
                                    FentityModel.Add("FStockID", new JObject() { ["Fnumber"] = "BJCK-SH.01.005" }); //  库存单位   
                                    FentityModel.Add("FActReceiveQty", Convert.ToDecimal(item["HQTY"])); // 供应商送货数量(提料计划数量 - 已生成送货单数量)
@@ -1149,12 +1196,13 @@
                                    objjson.data = null;
                                    return objjson;
                                }
                                //LogService.Write("jsonRoot:" + jsonRoot.ToString());
                                LogService.Write("jsonRoot:" + jsonRoot.ToString());
                                var result = InvokeHelper.Save("PUR_ReceiveBill", jsonRoot.ToString());                               
                                //LogService.Write(result);
                                if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE")
                                {
                                    LogService.Write("SRM-收料通知单审核失败JSON:" + jsonRoot.ToString());
                                    //更新送货单 主表 ERP单据号 以及 ERP主内玛
                                    string FBillNo = JObject.Parse(result)["Result"]["Number"].ToString();
                                    string FID = JObject.Parse(result)["Result"]["Id"].ToString();
@@ -1172,6 +1220,8 @@
                                }
                                else
                                {
                                    LogService.Write("SRM-收料通知单审核失败JSON:" + jsonRoot.ToString() );
                                    objjson.code = "0";
                                    objjson.count = 0;
                                    objjson.Message = result;
@@ -1186,7 +1236,30 @@
                            LogService.Write("收料通知单审核无数据:" + sql);
                        }
                    }
                    //==================================== Begin 送货单审核后控制 Begin ====================================
                    for (int i = 0; i < sArray.Length; i++)
                    {
                        ds = oCn.RunProcReturn("exec h_p_SRM_Cg_POInStockBill_AfterCheckCtrl " + sArray[i] + ",'" + HBillNo + "','" + CurUserName + "'", "h_p_SRM_Cg_POInStockBill_AfterCheckCtrl");
                        if (ds == null)
                        {
                            oCn.RollBack(); //回滚事物
                            objjson.code = "0";
                            objjson.count = 0;
                            objjson.Message = "审核后判断失败!无数据返回";
                            objjson.data = null;
                            return objjson;
                        }
                        if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
                        {
                            oCn.RollBack(); //回滚事物
                            objjson.code = "0";
                            objjson.count = 0;
                            objjson.Message = "审核失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemarkBack"]);
                            objjson.data = null;
                            return objjson;
                        }
                    }
                    //====================================== End 送货单审核后控制 End ======================================
                }
                ////更新物流字段 (瑞与琪)
@@ -1199,6 +1272,9 @@
HCheckDate   = getdate()
where HInterID in ({1})", CurUserName, HInterID);
                oCn.RunProc(sql);
                oCn.Commit(); //提交事物
                objjson.code = "1";
                objjson.count = 1;
                objjson.Message = "操作成功";
@@ -1207,7 +1283,7 @@
            }
            catch (Exception ex)
            {
                oCn.RollBack(); //回滚事物
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "操作失败" + ex.Message.ToString();
@@ -1237,7 +1313,7 @@
        }
        public int GetHinterIDByBillNo(string HBillNo, string type)
        {
            SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            int HInterID = 0;
            string sql = "select HInterID from CG_POINSTOCKBILLMAIN where HBILLNO = '" + HBillNo + "'";
            //if (type == "Print")
@@ -1255,8 +1331,43 @@
            try
            {
                DAL.ClsCg_POInStockBill oBill = new DAL.ClsCg_POInStockBill();
                //先删除 金蝶数据
                objjson = DeleteKingDee(HInterID);
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                //获取客户名称
                string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo);
                //夏宝需要先在金蝶删除收料通知单后才能在供应商协同平台删除送货单
                if (FCusName == "夏宝电器")
                {
                    string sqlBeforeDel = $"exec h_p_SRM_POInStockBeforeDelCtrl " + HInterID;
                    DataSet ds = oCn.RunProcReturn(sqlBeforeDel, "h_p_SRM_POInStockBeforeDelCtrl");
                    if (ds == null || ds.Tables[0].Rows.Count <= 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "删除送货单发生异常,没有任何返回记录!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    else
                    {
                        if (ds.Tables[0].Rows[0]["HBackCount"].ToString() == "1")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = ds.Tables[0].Rows[0]["HRemarkBack"].ToString();
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                else
                {
                    //先删除 金蝶数据
                    objjson = DeleteKingDee(HInterID);
                }
                //LogService.Write(objjson.ToString());
                if (objjson.code == "0")
                    return objjson;
@@ -1423,9 +1534,9 @@
        /// <returns></returns>
        public object TestSaverPOInStock(string ids, string entryids)
        {
            List<string> mylist = new List<string>(ids.Split(',').Distinct());
            List<string> entryList = new List<string>(entryids.Split(',').Distinct());
            SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            List<string> mylist = new List<string>(ids.Split(','));//.Distinct()
            List<string> entryList = new List<string>(entryids.Split(','));//.Distinct()
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo);
            if (FCusName == "夏宝电器" && mylist.Count > 1)
            {
@@ -1437,22 +1548,52 @@
            }
            try
            {
                DataSet ds2;
                oCn.BeginTran(); //开始事物
                //采购订单下推生成送货单 时候 判断是否有生成采购订单变更单 如果有且变更单状态不为已审核 限制下推
                objJsonResult = TestPOOrder(entryids);
                if (objJsonResult.code == "0")
                    return objJsonResult;
                if (mylist.Count != entryList.Count)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "主内码与子内码数量不一致!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                for (int i = 0;i < mylist.Count;i++)
                {
                    //采购订单下推生成送货单前控制
                    string sql = "exec h_p_SRM_POOrderBill_BeforePushDownCtrl " + mylist[i] + "," + entryList[i];
                    ds2 = oCn.RunProcReturn(sql, "h_p_SRM_POOrderBill_BeforePushDownCtrl");
                    if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
                    {
                        LogService.Write("送货数量同步进入回滚");
                        oCn.RollBack(); //回滚事物
                        objjson.code = "0";
                        objjson.count = 0;
                        objjson.Message = "审核前判断失败!" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HRemarkBack"]);
                        objjson.data = null;
                        return objjson;
                    }
                }
                for (int i = 0; i < mylist.Count; i++)
                {
                    //更新关联数量
                    var HinterID = mylist[i].ToString();
                    var HEntryID = entryList[i].ToString();
                    LogService.Write("送货数量同步: exec h_p_SRM_UpDatePPBomRelationQty" + HinterID + "," + HEntryID);
                    oCn.RunProc($"exec h_p_SRM_UpDatePPBomRelationQty {HinterID},{HEntryID},{i+1}");
                }
                //判断未关联数量是否为0
                //安瑞:AIS20220914133941   瑞与琪:AIS20220308151944  本地:AIS20210811135644  夏宝:AIS20211130140219  凯贝:AIS20210820164804
                DataSet ds = oCn.RunProcReturn($"select T1.hqty-T1.hrelationqty+q.FMRBQTY as hqty,单据号,物料编码 from H_v_SRM_POOrderBillList t1 left join AIS20210820164804..T_PUR_POORDERENTRY_R q on q.FENTRYID=t1.HEntryID  where hentryid in ({string.Join(", ", entryList)}) ", "H_v_SRM_POOrderBillList");
                //安瑞:AIS20220914133941   瑞与琪:AIS20220308151944  本地:AIS20210811135644  夏宝:AIS20211130140219  凯贝:AIS20210820164804 添康:AIS20240809105013
                DataSet ds = oCn.RunProcReturn($"select T1.hqty-T1.hrelationqty+q.FMRBQTY as hqty,q.FRemainReceiveQty as 剩余收料数量,T1.hrelationqty as 已发货数量,T1.hqty as 订单数量,单据号,物料编码 from H_v_SRM_POOrderBillList t1 left join AIS20240809105013..T_PUR_POORDERENTRY_R q on q.FENTRYID=t1.HEntryID  where hentryid in ({string.Join(", ", entryList)})", "H_v_SRM_POOrderBillList");
                DataTable dt = ds.Tables[0];
                if (dt.Rows.Count > 0)
                {
@@ -1461,11 +1602,14 @@
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = $"请检查数据,单据号:{dr[0]["单据号"]},物料编码:{dr[0]["物料编码"]},可以发货数量为0,已全部生成送货单!";
                        objJsonResult.Message = $"请检查数据,单据号:{dr[0]["单据号"]},物料编码:{dr[0]["物料编码"]},可以发货数量为0,已全部生成送货单!,订单数量:{Convert.ToDouble(dr[0]["订单数量"]).ToString("f2")},已发货数量:{Convert.ToDouble(dr[0]["已发货数量"]).ToString("f2")},剩余收料数量:{Convert.ToDouble(dr[0]["剩余收料数量"]).ToString("f2")}";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCn.Commit(); //提交事物
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "操作成功!";
@@ -1489,7 +1633,7 @@
        /// <returns></returns>
        public JsonResult TestPOOrder(string entryids)
        {
            SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            try
            {
                var kdTbaleName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DataBaseName");
@@ -1585,7 +1729,7 @@
        {
            try
            {
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                //查询主表
                DataSet Ds;
                Ds = oCn.RunProcReturn(" exec h_p_SRM_POInStockBillMain_ForWeb " + lngBillKey.ToString() + ",'" + HBillType + "'", "h_p_SRM_POInStockBillMain_ForWeb");
@@ -1618,7 +1762,7 @@
            string s = "";
            try
            {
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                //查询主表
                DataSet Ds;
                Ds = oCn.RunProcReturn(" exec h_p_SRM_POInStockBillSub_ForWeb '" + lngBillKey2 + "','" + HBillType + "'", "h_p_SRM_POInStockBillSub_ForWeb");