单据同步(收料通知单;采购订单;退料通知单;生产订单;生产用料清单;销售订单;发货通知单;退货通知单;生产汇报单)
10个文件已修改
2921 ■■■■■ 已修改文件
WebAPI/Controllers/CGGL/Cg_POInStockBackBillController.cs 341 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs 382 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs 316 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SCGL/Sc_ICMOReportBillController.cs 295 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SCGL/Sc_PPBomBillController.cs 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/XSGL/Xs_SeOrderBillController.cs 322 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/XSGL/Xs_SeOutStockBackBillController.cs 325 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs 330 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/生产管理/生产任务单/Sc_ICMOBillController.cs 329 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/CGGL/Cg_POInStockBackBillController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using Pub_Class;
using System;
using System.Collections;
@@ -13,6 +14,9 @@
    //退料通知单Controller
    public class Cg_POInStockBackBillController : ApiController
    {
         //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
@@ -118,7 +122,342 @@
        }
        #region [同步单据]
        [Route("Cg_POInStockBackBill/Cg_POInStockBackBillViewApi")]
        [HttpGet]
        public json Cg_POInStockBackBillViewApi(string BillNo, string BillType)
        {
            string sql = string.Empty;
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
            {
                //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式
                if (oSystemParameter.omodel.WMS_CloudMode == "Y")
                {
                    #region [私有云模式,直接调用数据库存储过程更新]
                    try
                    {
                        oCN.BeginTran();
                        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal");
                        if (DS == null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据同步失败";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "ERP中不存在该单据号";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            else
                            {
                                objJsonResult.code = "1";
                                objJsonResult.count = 1;
                                objJsonResult.Message = "单据同步成功";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
        //
                    }
                    catch (Exception e)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "Exception!" + e.ToString();
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                }
                else
                {
                    #region [公有云模式,调用WEBAPI的方式进行更新]
                    var json = new
                    {
                        CreateOrgId = 0,
                        Number = BillNo,
                        Id = ""
                    };
                    #region [金蝶部分]
                    //登录金蝶
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    //判断是否登录成功
                    if (isSuccess < 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = loginRet;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //查看 èŽ·å–æ•°æ®
                    var _result = InvokeHelper.View("SCP_MRAPP", JsonConvert.SerializeObject(json));
                    var _saveObj = JObject.Parse(_result);
                    //判断数据是否获取成功
                    if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "金蝶收料通知单同步失败jsonRoot:" + _result;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                    //获取主表数据
                    DataSet Ds;
                    Int64 InterID = 0;
                    Int64 ManagerID = 0;
                    Int64 REQUIREORGID = 0;
                    Int64 CORRESPONDORGID = 0;
                    string ERPBillType = "";
                    string REPLENISHMODE = "";
                    Ds = oCN.RunProcReturn("select * from Cg_POInStockBackBillMain where HBillNo = '" + BillNo + "'", "Cg_POInStockBackBillMain");
                    if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                    {
                        InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
                        ManagerID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HManagerID"].ToString());
                        REQUIREORGID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HREQUIREORGID"].ToString());
                        CORRESPONDORGID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HCORRESPONDORGID"].ToString());
                        ERPBillType = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HERPBillType"]);
                        REPLENISHMODE = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HREPLENISHMODE"]);
                    }
                    #region [主表数据赋值]
                    var jsonData = new
                    {
                        HInterID = _saveObj["Result"]["Result"]["Id"],
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillType = 1105,
                        HBillSubType = _saveObj["Result"]["Result"]["BusinessType"].ToString() == "CG" ? 12510 : 12511,
                        HDate = _saveObj["Result"]["Result"]["FDate"],
                        HBillNo = _saveObj["Result"]["Result"]["BillNo"],
                        HBillStatus = 2,
                        HSupID = _saveObj["Result"]["Result"]["SUPPLIERID_Id"],
                        HManagerID = ManagerID,
                        HDeptID = _saveObj["Result"]["Result"]["APPDEPTID_Id"],
                        HRemark = _saveObj["Result"]["Result"]["FRemarks"],
                        HMaker = _saveObj["Result"]["Result"]["FCreatorId"]["Name"],
                        HMakeDate = _saveObj["Result"]["Result"]["FCreateDate"],
                        HChecker = _saveObj["Result"]["Result"]["APPROVERID"]["Name"],
                        HCheckDate = _saveObj["Result"]["Result"]["APPROVEDATE"],
                        HERPInterID = _saveObj["Result"]["Result"]["Id"],
                        HERPBillType = ERPBillType,
                        HPURCHASEORGID = _saveObj["Result"]["Result"]["PURCHASEORGID_Id"],
                        HAPPORGID = _saveObj["Result"]["Result"]["APPORGID_Id"],
                        HREQUIREORGID = REQUIREORGID,
                        HCORRESPONDORGID = CORRESPONDORGID,
                        HRMREASON = _saveObj["Result"]["Result"]["RMREASON"],
                        HRMTYPE = _saveObj["Result"]["Result"]["RMTYPE"],
                        HRMMODE = _saveObj["Result"]["Result"]["RMMODE"],
                        HREPLENISHMODE = REPLENISHMODE,
                        HBUSINESSTYPE = _saveObj["Result"]["Result"]["BusinessType"],
                    };
                    #endregion
                    // åˆ é™¤ä¸»è¡¨å¯¹åº”数据
                    sql = $"delete from Cg_POInStockBackBillMain where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    //插入主表
                    sql = $@"
                insert into Cg_POInStockBackBillMain
                (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
                ,HBillNo,HBillStatus,HSupID,HManagerID,HDeptID,HRemark
                ,HMaker,HMakeDate,HChecker,HCheckDate,HERPInterID,HERPBillType
                ,HPURCHASEORGID,HAPPORGID,HREQUIREORGID,HCORRESPONDORGID
                ,HRMREASON,HRMTYPE,HRMMODE,HREPLENISHMODE,HBUSINESSTYPE
                 )
                values
                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},'{jsonData.HDate}',
                '{jsonData.HBillNo}',{jsonData.HBillStatus},{jsonData.HSupID},{jsonData.HManagerID},{jsonData.HDeptID},'{jsonData.HRemark}',
                '{jsonData.HMaker}', '{jsonData.HMakeDate}','{jsonData.HChecker}','{jsonData.HCheckDate}',{jsonData.HERPInterID},
                '{jsonData.HERPBillType}',{jsonData.HPURCHASEORGID},{jsonData.HAPPORGID},{jsonData.HREQUIREORGID},{jsonData.HCORRESPONDORGID},
                '{jsonData.HRMREASON}','{jsonData.HRMTYPE}','{jsonData.HRMMODE}', '{jsonData.HREPLENISHMODE}','{jsonData.HBUSINESSTYPE}')";
                    oCN.RunProc(sql);
                    #region [申请子表变量]
                    var dataArr = _saveObj["Result"]["Result"]["PUR_MRAPPENTRY"];
                    DataSet Cs;
                    double Qty = 0;
                    double Money = 0;
                    Int64 WHID = 0;
                    Int64 SPID = 0;
                    Int64 SourceBillType = 0;
                    Int64 POOrderInterID = 0;
                    Int64 POOrderEntryID = 0;
                    string POORderBillNo = "";
                    string BatchNO = "";
                    Int64 ERPInterID = 0;
                    Int64 ERPEntryID = 0;
                    double RelationQty = 0;
                    Int64 SETTLEORGID = 0;
                    Int64 ISPRICEEXCLUDETAX = 0;
                    Int64 PlanMode = 0;
                    Int64 SourceInterID = 0;
                    Int64 SourceEntryID = 0;
                    string SourceBillNo = "";
                    string MTONo = "";
                    Int64 PURUNITID = 0;
                    string CONTRACTNO = "";
                    string REQTRACENO = "";
                    string BFLOWID = "";
                    Int64 GIVEAWAY = 0;
                    Int64 PURBASEQTY = 0;
                    Int64 RETURNSTOCKJNBASEQTY = 0;
                    Int64 BASEUNITQTY = 0;
                    Int64 PRICECOEFFICIENT = 0;
                    #endregion
                    int i = 0;
                    // èŽ·å–å­è¡¨æ•°æ®
                    Cs = oCN.RunProcReturn("select * from Cg_POInStockBackBillSub where HInterID = " + InterID, "Cg_POInStockBackBillSub");
                    // åˆ é™¤å­è¡¨å¯¹åº”数据
                    sql = $"delete from Cg_POInStockBackBillSub where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    foreach (var oSub in dataArr)
                    {
                        #region [子表数据赋值]
                        if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                        {
                            Qty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HQty"].ToString());
                            Money = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HMoney"].ToString());
                            WHID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HWHID"].ToString());
                            SPID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSPID"].ToString());
                            SourceBillType = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSourceBillType"].ToString());
                            POOrderInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPOOrderInterID"].ToString());
                            POOrderEntryID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPOOrderEntryID"].ToString());
                            POORderBillNo = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HPOORderBillNo"]);
                            BatchNO = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HBatchNO"]);
                            ERPInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HERPInterID"].ToString());
                            ERPEntryID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HERPEntryID"].ToString());
                            RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString());
                            SETTLEORGID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSETTLEORGID"].ToString());
                            ISPRICEEXCLUDETAX = ClsPub.isLong(Cs.Tables[0].Rows[i]["HISPRICEEXCLUDETAX"].ToString());
                            PlanMode = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPlanMode"].ToString());
                            SourceInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSourceInterID"].ToString());
                            SourceEntryID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSourceEntryID"].ToString());
                            SourceBillNo = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HSourceBillNo"]);
                            MTONo = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HMTONo"]);
                            PURUNITID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPURUNITID"].ToString());
                            CONTRACTNO = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HCONTRACTNO"]);
                            REQTRACENO = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HREQTRACENO"]);
                            BFLOWID = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HBFLOWID"]);
                            GIVEAWAY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HGIVEAWAY"].ToString());
                            PURBASEQTY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPURBASEQTY"].ToString());
                            RETURNSTOCKJNBASEQTY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HRETURNSTOCKJNBASEQTY"].ToString());
                            BASEUNITQTY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HBASEUNITQTY"].ToString());
                            PRICECOEFFICIENT = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPRICECOEFFICIENT"].ToString());
                            i++;
                        }
                        var subData = new
                        {
                            HInterID = _saveObj["Result"]["Result"]["Id"],
                            HEntryID = oSub["Id"],
                            HMaterID = oSub["MATERIALID_Id"],
                            HUnitID = oSub["UnitID_Id"],
                            HQty = Qty,
                            HPrice = oSub["PRICE_F"],
                            HMoney = Money,
                            HTaxRate = oSub["TAXRATE"],
                            HWHID = WHID,
                            HSPID = SPID,
                            HRemark = oSub["FRemarks"],
                            HSourceInterID = SourceInterID,
                            HSourceEntryID = SourceEntryID,
                            HSourceBillNo = SourceBillNo,
                            HSourceBillType = SourceBillType,
                            HPOOrderInterID = POOrderInterID,
                            HPOOrderEntryID = POOrderEntryID,
                            HPOORderBillNo = POORderBillNo,
                            HRelationQty = RelationQty,
                            HAuxPropID = oSub["AUXPROPID_Id"],
                            HBatchNO = BatchNO,
                            HMTONo = MTONo,
                            HPlanMode = PlanMode,
                            HERPInterID = ERPInterID,
                            HERPEntryID = ERPEntryID,
                            HBASEUNITID = oSub["MATERIALID"]["MaterialBase"][0]["BaseUnitId_Id"],
                            HPURUNITID = PURUNITID,
                            HCONTRACTNO = CONTRACTNO,
                            HREQTRACENO = REQTRACENO,
                            HBFLOWID = BFLOWID,
                            HGIVEAWAY = GIVEAWAY,
                            HPURBASEQTY = PURBASEQTY,
                            HRETURNSTOCKJNBASEQTY = RETURNSTOCKJNBASEQTY,
                            HBASEUNITQTY = BASEUNITQTY,
                            HPRICEUNITID = oSub["PRICEUNITID_F_Id"],
                            HAPPROVEPRICE = oSub["APPROVEPRICE_F"],
                            HPRICECOEFFICIENT = PRICECOEFFICIENT,
                            HLOCALCURRID = _saveObj["Result"]["Result"]["PUR_MRAPPFIN"][0]["LOCALCURRID_Id"],
                            HEXCHANGETYPEID = _saveObj["Result"]["Result"]["PUR_MRAPPFIN"][0]["ExchangeTypeId_Id"],
                            HSETTLEORGID = SETTLEORGID,
                            HISPRICEEXCLUDETAX = ISPRICEEXCLUDETAX
                        };
                        #endregion
                        //插入子表
                        sql = $@"
                 insert into Cg_POInStockBackBillSub
                 (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HMoney,HTaxRate,HWHID,HSPID,HRemark
                ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType
                ,HPOOrderInterID,HPOOrderEntryID,HPOORderBillNo
                ,HRelationQty,HAuxPropID,HBatchNO,HMTONo,HPlanMode,HERPInterID,HERPEntryID
                ,HBASEUNITID,HPURUNITID,HCONTRACTNO,HREQTRACENO,HBFLOWID,HGIVEAWAY
                ,HPURBASEQTY,HRETURNSTOCKJNBASEQTY,HBASEUNITQTY
                ,HPRICEUNITID,HAPPROVEPRICE,HPRICECOEFFICIENT
                ,HLOCALCURRID,HEXCHANGETYPEID,HSETTLEORGID,HISPRICEEXCLUDETAX
                 )
                 values
                 ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice},
                  {subData.HMoney},{subData.HTaxRate},{subData.HWHID},{subData.HSPID},'{subData.HRemark}',{subData.HSourceInterID},
                  {subData.HSourceEntryID},'{subData.HSourceBillNo}',{subData.HSourceBillType},{subData.HPOOrderInterID},{subData.HPOOrderEntryID},
                  '{subData.HPOORderBillNo}',{subData.HRelationQty},{subData.HAuxPropID},'{subData.HBatchNO}','{subData.HMTONo}',{subData.HPlanMode},
                  {subData.HERPInterID},{subData.HERPEntryID},{subData.HBASEUNITID},{subData.HPURUNITID},'{subData.HCONTRACTNO}','{subData.HREQTRACENO}',
                  '{subData.HBFLOWID}',{subData.HGIVEAWAY},{subData.HPURBASEQTY},{subData.HRETURNSTOCKJNBASEQTY},{subData.HBASEUNITQTY},
                  {subData.HPRICEUNITID},{subData.HAPPROVEPRICE},{subData.HPRICECOEFFICIENT},{subData.HLOCALCURRID},{subData.HEXCHANGETYPEID},
                  {subData.HSETTLEORGID},{subData.HISPRICEEXCLUDETAX})";
                        oCN.RunProc(sql);
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "单据同步成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                    #endregion
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据读取失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs
@@ -15,6 +15,9 @@
    //收料通知单Controller
    public class Cg_POInStockBillController : ApiController
    {
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
@@ -619,5 +622,384 @@
            }
        }
        #endregion
        #region [同步单据]
        [Route("Cg_POInStockBill/Cg_POInStockBillViewApi")]
        [HttpGet]
        public json Cg_POInStockBillViewApi(string BillNo, string BillType)
        {
            string sql = string.Empty;
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
            {
                //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式
                if (oSystemParameter.omodel.WMS_CloudMode == "Y")
                {
                    #region [私有云模式,直接调用数据库存储过程更新]
                    try
                    {
                        oCN.BeginTran();
                        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal");
                        if (DS == null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据同步失败";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "ERP中不存在该单据号";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            else
                            {
                                objJsonResult.code = "1";
                                objJsonResult.count = 1;
                                objJsonResult.Message = "单据同步成功";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "Exception!" + e.ToString();
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                }
                else
                {
                    #region [公有云模式,调用WEBAPI的方式进行更新]
                    var json = new
                    {
                        CreateOrgId = 0,
                        Number = BillNo,
                        Id = ""
                    };
                    #region [金蝶部分]
                    //登录金蝶
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    //判断是否登录成功
                    if (isSuccess < 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = loginRet;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //查看 èŽ·å–æ•°æ®
                    var _result = InvokeHelper.View("PUR_ReceiveBill", JsonConvert.SerializeObject(json));
                    var _saveObj = JObject.Parse(_result);
                    //判断数据是否获取成功
                    if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "金蝶收料通知单同步失败jsonRoot:" + _result;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                    //获取主表数据
                    DataSet Ds;
                    Int64 InterID = 0;
                    Int64 ManagerID = 0;
                    Int64 EmpID = 0;
                    Int64 DeptID = 0;
                    Ds = oCN.RunProcReturn("select * from Cg_POInStockBillMain where HBillNo = '" + BillNo + "'", "Cg_POInStockBillMain");
                    if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                    {
                        InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
                        ManagerID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HManagerID"].ToString());
                        EmpID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HEmpID"].ToString());
                        DeptID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HDeptID"].ToString());
                    }
                    #region [主表数据赋值]
                    var jsonData = new
                    {
                        HInterID = _saveObj["Result"]["Result"]["Id"],
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillType = 1103,
                        HBillSubType = _saveObj["Result"]["Result"]["BusinessType"].ToString() == "CG" ? 12510 : 12511,
                        HDate = _saveObj["Result"]["Result"]["Date"],
                        HBillNo = _saveObj["Result"]["Result"]["BillNo"],
                        HBillStatus = 2,
                        HSupID = _saveObj["Result"]["Result"]["SupplierId_Id"],
                        HManagerID = ManagerID,
                        HEmpID = EmpID,
                        HDeptID = DeptID,
                        HRemark = "CLOUD导入",
                        HMaker = _saveObj["Result"]["Result"]["CreatorId_Id"],
                        HMakeDate = _saveObj["Result"]["Result"]["CreateDate"],
                        HChecker = _saveObj["Result"]["Result"]["ApproverId_Id"],
                        HCheckDate = _saveObj["Result"]["Result"]["ApproveDate"],
                        HOWNERTYPEID = _saveObj["Result"]["Result"]["OwnerTypeIdHead"],
                        HOWNERID = _saveObj["Result"]["Result"]["OwnerIdHead_Id"],
                        HERPInterID = _saveObj["Result"]["Result"]["Id"],
                        HERPBillType = _saveObj["Result"]["Result"]["BillTypeId_Id"],
                        HPURCHASEORGID = _saveObj["Result"]["Result"]["PurOrgId_Id"],
                        HSTOCKORGID = _saveObj["Result"]["Result"]["StockOrgId_Id"],
                        HREQUIREORGID = _saveObj["Result"]["Result"]["DemandOrgId_Id"],
                        HSTOCKGROUPID = _saveObj["Result"]["Result"]["StockGroupId_Id"],
                        HSENDBILLNO = _saveObj["Result"]["Result"]["SendBillNo"],
                        HLADBILLNO = _saveObj["Result"]["Result"]["LadBillNo"],
                        HPURDEPTID = _saveObj["Result"]["Result"]["PurDeptId_Id"],
                        HPURGROUPID = _saveObj["Result"]["Result"]["PurGroupId_Id"],
                        HSUPPLYID = _saveObj["Result"]["Result"]["SupplyId_Id"],
                        HSETTLEID = _saveObj["Result"]["Result"]["SettleId_Id"],
                        HCHARGEID = _saveObj["Result"]["Result"]["ChargeId_Id"],
                        HBUSINESSTYPE = _saveObj["Result"]["Result"]["BusinessType"],
                        HSUPPLYADDRESS = _saveObj["Result"]["Result"]["SupplyAddress"],
                        HCORRESPONDORGID = _saveObj["Result"]["Result"]["CorrespondOrgId_Id"],
                        HPROVIDERCONTACTID = _saveObj["Result"]["Result"]["ProviderContactId_Id"],
                    };
                    #endregion
                    // åˆ é™¤ä¸»è¡¨å¯¹åº”数据
                    sql = $"delete from Cg_POInStockBillMain where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    //插入主表
                    sql = $@"
                insert into Cg_PoInstockbillMain
             (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
             ,HBillNo,HBillStatus,HSupID,HManagerID,HEmpID,HDeptID,HRemark
             ,HMaker,HMakeDate,HChecker,HCheckDate,HOWNERTYPEID,HOWNERID
             ,HERPInterID,HERPBillType,HPURCHASEORGID,HSTOCKORGID,HREQUIREORGID
             ,HSTOCKGROUPID,HSENDBILLNO,HLADBILLNO,HPURDEPTID,HPURGROUPID,HSUPPLYID
             ,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HSUPPLYADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID
             )
                values
                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},'{jsonData.HDate}','{jsonData.HBillNo}',
                {jsonData.HBillStatus},{jsonData.HSupID},{jsonData.HManagerID},{jsonData.HEmpID},{jsonData.HDeptID},'{jsonData.HRemark}','{jsonData.HMaker}',
                '{jsonData.HMakeDate}','{jsonData.HChecker}','{jsonData.HCheckDate}','{jsonData.HOWNERTYPEID}','{jsonData.HOWNERID}',{jsonData.HERPInterID},
                '{jsonData.HERPBillType}',{jsonData.HPURCHASEORGID},{jsonData.HSTOCKORGID},{jsonData.HREQUIREORGID},{jsonData.HSTOCKGROUPID},'{jsonData.HSENDBILLNO}',
                '{jsonData.HLADBILLNO}',{jsonData.HPURDEPTID},{jsonData.HPURGROUPID},{jsonData.HSUPPLYID},{jsonData.HSETTLEID},{jsonData.HCHARGEID},'{jsonData.HBUSINESSTYPE}',
                '{jsonData.HSUPPLYADDRESS}',{jsonData.HCORRESPONDORGID},{jsonData.HPROVIDERCONTACTID})";
                    oCN.RunProc(sql);
                    #region [申请子表变量]
                    var dataArr = _saveObj["Result"]["Result"]["PUR_ReceiveEntry"];
                    DataSet Cs;
                    double Qty = 0;
                    double Money = 0;
                    Int64 WHID = 0;
                    Int64 SPID = 0;
                    string subRemark = "";
                    double TaxMoney = 0;
                    double TaxMoney_TAX = 0;
                    double TaxRate_TAX = 0;
                    Int64 SourceBillType = 0;
                    Int64 POOrderInterID = 0;
                    string POORderBillNo = "";
                    string BatchNO = "";
                    Int64 ERPInterID = 0;
                    Int64 ERPEntryID = 0;
                    double RelationQty = 0;
                    Int64 SecUnitID = 0;
                    Int64 PAYORGID = 0;
                    Int64 PAYCONDITONID = 0;
                    Int64 SETTLEORGID = 0;
                    Int64 SETTLECURRID = 0;
                    Int64 SETTLEMODEID = 0;
                    Int64 EXCHANGETYPEID = 0;
                    double EXCHANGERATE = 0;
                    Int64 LOCALCURRID = 0;
                    Int64 ISINCLUDEDTAX = 0;
                    Int64 ISPRICEEXCLUDETAX = 0;
                    Int64 PlanMode = 0;
                    #endregion
                    int i = 0;
                    // èŽ·å–å­è¡¨æ•°æ®
                    Cs = oCN.RunProcReturn("select * from Cg_POInStockBillSub where HInterID = " + InterID, "Cg_POInStockBillSub");
                    // åˆ é™¤å­è¡¨å¯¹åº”数据
                    sql = $"delete from Cg_POInStockBillSub where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    foreach (var oSub in dataArr)
                    {
                        #region [子表数据赋值]
                        if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                        {
                            Qty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HQty"].ToString());
                            Money = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HMoney"].ToString());
                            WHID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HWHID"].ToString());
                            SPID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSPID"].ToString());
                            subRemark = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HRemark"]);
                            TaxMoney = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HTaxMoney"].ToString());
                            TaxMoney_TAX = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HTaxMoney_TAX"].ToString());
                            TaxRate_TAX = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HTaxRate_TAX"].ToString());
                            SourceBillType = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSourceBillType"].ToString());
                            POOrderInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPOOrderInterID"].ToString());
                            POORderBillNo = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HPOORderBillNo"]);
                            BatchNO = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HBatchNO"]);
                            ERPInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HERPInterID"].ToString());
                            ERPEntryID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HERPEntryID"].ToString());
                            RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString());
                            SecUnitID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSecUnitID"].ToString());
                            PAYORGID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPAYORGID"].ToString());
                            PAYCONDITONID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPAYCONDITONID"].ToString());
                            SETTLEORGID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSETTLEORGID"].ToString());
                            SETTLECURRID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSETTLECURRID"].ToString());
                            SETTLEMODEID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSETTLEMODEID"].ToString());
                            EXCHANGETYPEID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HEXCHANGETYPEID"].ToString());
                            EXCHANGERATE = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HEXCHANGERATE"].ToString());
                            LOCALCURRID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HLOCALCURRID"].ToString());
                            ISINCLUDEDTAX = ClsPub.isLong(Cs.Tables[0].Rows[i]["HISINCLUDEDTAX"].ToString());
                            ISPRICEEXCLUDETAX = ClsPub.isLong(Cs.Tables[0].Rows[i]["HISPRICEEXCLUDETAX"].ToString());
                            PlanMode = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPlanMode"].ToString());
                            i++;
                        }
                        var subData = new
                        {
                            HInterID = _saveObj["Result"]["Result"]["Id"],
                            HEntryID = oSub["Id"],
                            HMaterID = oSub["MaterialID_Id"],
                            HUnitID = oSub["UnitId_Id"],
                            HQty = Qty,
                            HPrice = oSub["Price"],
                            HMoney = Money,
                            HWHID = WHID,
                            HSPID = SPID,
                            HRemark = subRemark,
                            HTaxMoney = TaxMoney,
                            HTaxRate = oSub["TaxRate"],
                            HTaxMoney_TAX = TaxMoney_TAX,
                            HTaxRate_TAX = TaxRate_TAX,
                            HSourceInterID = oSub["SrcId"],
                            HSourceEntryID = oSub["SrcEntryId"],
                            HSourceBillNo = oSub["SrcBillNo"],
                            HSourceBillType = SourceBillType,
                            HPOOrderInterID = POOrderInterID,
                            HPOOrderEntryID = oSub["POORDERENTRYID"],
                            HPOORderBillNo = POORderBillNo,
                            HAuxPropID = oSub["AuxPropId_Id"],
                            HBatchNO = BatchNO,
                            HMTONo = oSub["MtoNo"],
                            HPlanMode = PlanMode,
                            HERPInterID = ERPInterID,
                            HERPEntryID = ERPEntryID,
                            HRelationQty = RelationQty,
                            HGiveAwayFlag = oSub["GiveAway"] = false ? 0 : 1,
                            HReceiveQty = oSub["ReceiveQty"],
                            HSecUnitID = SecUnitID,
                            HSEQ = oSub["Seq"],
                            HPRODUCEDATE = oSub["ProduceDate"],
                            HEXPIRYDATE = oSub["ExpiryDate"],
                            HSUPPLYLOT = oSub["SupplierLot"],
                            HREQTRACENO = oSub["ReqTraceNo"],
                            HBOMID = oSub["BomId_Id"],
                            HSTOCKUNITID = oSub["StockUnitID_Id"],
                            HBASEUNITID = oSub["BaseUnitId_Id"],
                            HSTOCKSTATUSID = oSub["StockStatusId_Id"],
                            HKEEPERTYPEID = oSub["KeeperTypeId"],
                            HPROJECTNO = oSub["ProjectNo"],
                            HCHECKINCOMING = oSub["CheckInComing"] = false ? 0 : 1,
                            HTAXPRICE = oSub["TaxPrice"],
                            HDISCOUNTRATE = oSub["DiscountRate"],
                            HPRICECOEFFICIENT = oSub["PriceCoefficient"],
                            HPRICEUNITID = oSub["PriceUnitId_Id"],
                            HPRICELISTENTRY = oSub["PriceListEntry_Id"],
                            HTAXCOMBINATION = oSub["TaxCombination_Id"],
                            HSAMPLEDAMAGEQTY = oSub["SampleDamageQty"],
                            HSAMPLEDAMAGEBASEQTY = oSub["SampleDamageBaseQty"],
                            HOWNERTYPEID = oSub["OwnerTypeId"],
                            HOWNERID = oSub["OwnerId_Id"],
                            HBFLOWID = oSub["FBFLowId_Id"],
                            HPAYORGID = PAYORGID,
                            HSETTLEORGID = SETTLEORGID,
                            HSETTLECURRID = SETTLECURRID,
                            HSETTLEMODEID = SETTLEMODEID,
                            HEXCHANGETYPEID = EXCHANGETYPEID,
                            HPAYCONDITONID = PAYCONDITONID,
                            HEXCHANGERATE = EXCHANGERATE,
                            HLOCALCURRID = LOCALCURRID,
                            HISINCLUDEDTAX = ISINCLUDEDTAX,
                            HISPRICEEXCLUDETAX = ISPRICEEXCLUDETAX,
                            HTAXRATEID = 0,
                            HCOSTPERCENT = 0,
                            HCOSTAMOUNT = 0,
                            HVAT = 0,
                            HSELLERWITHHOLDING = 0,
                            HBUYERWITHHOLDING = 0,
                        };
                        #endregion
                        //插入子表
                        sql = $@"
                 insert into Cg_PoInstockbillSub
                 (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice
                 ,HMoney,HWHID,HSPID,HRemark,HTaxMoney,HTaxRate,HTaxMoney_TAX,HTaxRate_TAX
                 ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HPOOrderInterID,HPOOrderEntryID,HPOORderBillNo
                 ,HAuxPropID,HBatchNO,HMTONo,HPlanMode,HERPInterID,HERPEntryID
                 ,HRelationQty,HGiveAwayFlag,HReceiveQty,HSecUnitID
                 ,HSEQ,HPRODUCEDATE,HEXPIRYDATE,HSUPPLYLOT,HREQTRACENO,HBOMID,HSTOCKUNITID
                 ,HBASEUNITID,HSTOCKSTATUSID,HKEEPERTYPEID,HPROJECTNO,HCHECKINCOMING
                 ,HTAXPRICE,HDISCOUNTRATE,HPRICECOEFFICIENT,HPRICEUNITID,HPRICELISTENTRY
                 ,HTAXCOMBINATION,HSAMPLEDAMAGEQTY,HSAMPLEDAMAGEBASEQTY,HOWNERTYPEID,HOWNERID,HBFLOWID
                 ,HPAYORGID,HSETTLEORGID,HSETTLECURRID,HSETTLEMODEID,HEXCHANGETYPEID,HPAYCONDITONID
                 ,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX
                 ,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING
                 )
                 values
                 ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice},
                  {subData.HMoney},{subData.HWHID},{subData.HSPID},'{subData.HRemark}',{subData.HTaxMoney},{subData.HTaxRate},{subData.HTaxMoney_TAX},
                  {subData.HTaxRate_TAX},{subData.HSourceInterID},{subData.HSourceEntryID},'{subData.HSourceBillNo}',{subData.HSourceBillType},
                  {subData.HPOOrderInterID},{subData.HPOOrderEntryID},'{subData.HPOORderBillNo}',{subData.HAuxPropID},'{subData.HBatchNO}',
                  '{subData.HMTONo}',{subData.HPlanMode},{subData.HERPInterID},{subData.HERPEntryID},{subData.HRelationQty},{subData.HGiveAwayFlag},
                  {subData.HReceiveQty},{subData.HSecUnitID},{subData.HSEQ},'{subData.HPRODUCEDATE}','{subData.HEXPIRYDATE}','{subData.HSUPPLYLOT}',
                  '{subData.HREQTRACENO}',{subData.HBOMID},{subData.HSTOCKUNITID},{subData.HBASEUNITID},{subData.HSTOCKSTATUSID},'{subData.HKEEPERTYPEID}',
                  '{subData.HPROJECTNO}',{subData.HCHECKINCOMING},{subData.HTAXPRICE},{subData.HDISCOUNTRATE},
                  {subData.HPRICECOEFFICIENT},{subData.HPRICEUNITID},{subData.HPRICELISTENTRY},'{subData.HTAXCOMBINATION}',{subData.HSAMPLEDAMAGEQTY},
                  {subData.HSAMPLEDAMAGEBASEQTY},'{subData.HOWNERTYPEID}',{subData.HOWNERID},'{subData.HBFLOWID}',{subData.HPAYORGID},{subData.HSETTLEORGID},
                  {subData.HSETTLECURRID},{subData.HSETTLEMODEID},{subData.HEXCHANGETYPEID},{subData.HPAYCONDITONID},{subData.HEXCHANGERATE},
                  {subData.HLOCALCURRID},{subData.HISINCLUDEDTAX},{subData.HISPRICEEXCLUDETAX},{subData.HTAXRATEID},{subData.HCOSTPERCENT},
                  {subData.HCOSTAMOUNT},{subData.HVAT},{subData.HSELLERWITHHOLDING},{subData.HBUYERWITHHOLDING})";
                        oCN.RunProc(sql);
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "单据同步成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                    #endregion
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据读取失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs
@@ -15,6 +15,8 @@
    //采购订单Controller
    public class Cg_POOrderBillController : ApiController
    {
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
@@ -1106,6 +1108,320 @@
            }
        }
        #region [同步单据]
        [Route("Cg_POOrderBill/Cg_POOrderBillViewApi")]
        [HttpGet]
        public json Cg_POOrderBillViewApi(string BillNo, string BillType)
        {
            string sql = string.Empty;
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
            {
                //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式
                if (oSystemParameter.omodel.WMS_CloudMode == "Y")
                {
                    #region [私有云模式,直接调用数据库存储过程更新]
                    try
                    {
                        oCN.BeginTran();
                        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal");
                        if (DS == null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据同步失败";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "ERP中不存在该单据号";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            else
                            {
                                objJsonResult.code = "1";
                                objJsonResult.count = 1;
                                objJsonResult.Message = "单据同步成功";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "Exception!" + e.ToString();
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                }
                else
                {
                    #region [公有云模式,调用WEBAPI的方式进行更新]
                    var json = new
                    {
                        CreateOrgId = 0,
                        Number = BillNo,
                        Id = ""
                    };
                    #region [金蝶部分]
                    //登录金蝶
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    //判断是否登录成功
                    if (isSuccess < 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = loginRet;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //查看 èŽ·å–æ•°æ®
                    var _result = InvokeHelper.View("PUR_PurchaseOrder", JsonConvert.SerializeObject(json));
                    var _saveObj = JObject.Parse(_result);
                    //判断数据是否获取成功
                    if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "金蝶收料通知单同步失败jsonRoot:" + _result;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                    //获取主表数据
                    DataSet Ds;
                    Int64 InterID = 0;
                    Ds = oCN.RunProcReturn("select * from Cg_POOrderBillMain where HBillNo = '" + BillNo + "'", "Cg_POOrderBillMain");
                    if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                    {
                        InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
                    }
                    #region [主表数据赋值]
                    var jsonData = new
                    {
                        HInterID = _saveObj["Result"]["Result"]["Id"],
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillType = 1102,
                        HBillSubType = 1102,
                        HDate = _saveObj["Result"]["Result"]["Date"],
                        HBillNo = _saveObj["Result"]["Result"]["BillNo"],
                        HBillStatus    = _saveObj["Result"]["Result"]["ApproverId_Id"].ToString() == Convert.ToString(0) ? 1 : 2 ,
                        HAddress       = "",
                        HSSID          = 0,
                        HSSDate = _saveObj["Result"]["Result"]["Date"],
                        HPSStyleID     = 0,
                        HSupID         = _saveObj["Result"]["Result"]["SupplierId_Id"],
                        HCurID         = 0,
                        HExRate        = 0,
                        HEmpID         = _saveObj["Result"]["Result"]["PurchaserId_Id"],
                        HManagerID     = 0,
                        HDeptID        = _saveObj["Result"]["Result"]["PurchaseDeptId_Id"],
                        HExplanation   = "CLOUD导入",
                        HRemark        = "CLOUD导入",
                        HInnerBillNo   = _saveObj["Result"]["Result"]["BillNo"],
                        HChecker       = _saveObj["Result"]["Result"]["ApproverId"]["Name"],
                        HCheckDate     = _saveObj["Result"]["Result"]["ApproveDate"],
                        HMaker         = _saveObj["Result"]["Result"]["CreatorId"]["Name"],
                        HMakeDate      = _saveObj["Result"]["Result"]["CreateDate"],
                        HERPInterID    = _saveObj["Result"]["Result"]["Id"],
                        HERPBillType   = _saveObj["Result"]["Result"]["BillTypeId_Id"],
                        HPURCHASEORGID = _saveObj["Result"]["Result"]["PurchaseOrgId_Id"],
                        HPURCHASERGROUPID = _saveObj["Result"]["Result"]["PurchaserGroupId_Id"],
                        HPROVIDERID       = _saveObj["Result"]["Result"]["ProviderId_Id"],
                        HSETTLEID         = _saveObj["Result"]["Result"]["SettleId_Id"],
                        HCHARGEID         = _saveObj["Result"]["Result"]["ChargeId_Id"],
                        HBUSINESSTYPE     = _saveObj["Result"]["Result"]["BusinessType"],
                        HPROVIDERADDRESS  = _saveObj["Result"]["Result"]["ProviderAddress"],
                        HCORRESPONDORGID = _saveObj["Result"]["Result"]["CorrespondOrgId_Id"],
                        HPROVIDERCONTACTID = _saveObj["Result"]["Result"]["ProviderContactId_Id"]
                    };
                    #endregion
                    // åˆ é™¤ä¸»è¡¨å¯¹åº”数据
                    sql = $"delete from Cg_POOrderBillMain where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    //插入主表
                    sql = $@"
                insert into Cg_POOrderBillMain
                (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
                ,HBillNo,HBillStatus,HAddress,HSSID,HSSDate,HPSStyleID
                ,HSupID,HCurID,HExRate,HEmpID,HManagerID,HDeptID
                ,HExplanation,HRemark,HInnerBillNo
                ,HChecker,HCheckDate,HMaker,HMakeDate
                ,HERPInterID,HERPBillType,HPURCHASEORGID,HPURCHASERGROUPID,HPROVIDERID,HSETTLEID
                ,HCHARGEID,HBUSINESSTYPE,HPROVIDERADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID
                 )
                values
                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},
                '{jsonData.HDate}','{jsonData.HBillNo}',{jsonData.HBillStatus},'{jsonData.HAddress}',{jsonData.HSSID},
                '{jsonData.HSSDate}',{jsonData.HPSStyleID},{jsonData.HSupID},{jsonData.HCurID},{jsonData.HExRate},{jsonData.HEmpID},{jsonData.HManagerID},
                {jsonData.HDeptID},'{jsonData.HExplanation}','{jsonData.HRemark}','{jsonData.HInnerBillNo}','{jsonData.HChecker}',
                '{jsonData.HCheckDate}','{jsonData.HMaker}','{jsonData.HMakeDate}',{jsonData.HERPInterID},'{jsonData.HERPBillType}',
                {jsonData.HPURCHASEORGID},{jsonData.HPURCHASERGROUPID},'{jsonData.HPROVIDERID}',{jsonData.HSETTLEID},{jsonData.HCHARGEID},
                '{jsonData.HBUSINESSTYPE}','{jsonData.HPROVIDERADDRESS}',{jsonData.HCORRESPONDORGID},{jsonData.HPROVIDERCONTACTID})";
                    oCN.RunProc(sql);
                    #region [申请子表变量]
                    var dataArr = _saveObj["Result"]["Result"]["POOrderEntry"];
                    DataSet Cs;
                    double RelationQty = 0;
                    #endregion
                    int i = 0;
                    // èŽ·å–å­è¡¨æ•°æ®
                    Cs = oCN.RunProcReturn("select * from Cg_POOrderBillSub where HInterID = " + InterID, "Cg_POOrderBillSub");
                    // åˆ é™¤å­è¡¨å¯¹åº”数据
                    sql = $"delete from Cg_POOrderBillSub where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    foreach (var oSub in dataArr)
                    {
                        #region [子表数据赋值]
                        if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                        {
                            RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString());
                            i++;
                        }
                        var subData = new
                        {
                            HInterID = _saveObj["Result"]["Result"]["Id"],
                            HEntryID = oSub["Id"],
                            HMaterID = oSub["MaterialId_Id"],
                            HUnitID             = oSub["UnitId_Id"],
                            HQty                = oSub["Qty"],
                            HPrice              = oSub["Price"],
                            HTaxRate_TAX        = oSub["TaxRate"],
                            HTaxMoney_TAX       = oSub["TaxAmount"],
                            HTaxPrice           = oSub["TaxPrice"],
                            HDiscountRate       = oSub["DiscountRate"],
                            HRelTaxPrice        = 0,
                            HMoney              = oSub["Amount"],
                            HTaxRate            = oSub["TaxRate"],
                            HTaxMoney           = oSub["TaxAmount"],
                            HLineTotal          = 0,
                            HlineTotalBB        = 0,
                            HDate               = oSub["DeliveryDate"],
                            HInStockQty         = 0,
                            HInvoiceQty         = 0,
                            HRemark             = oSub["Note"],
                            HSeOrderBillNo      = "",
                            HSeOrderInterID     = 0,
                            HSeOrderEntryID     = 0,
                            HSourceInterID      = 0,
                            HSourceEntryID      = 0,
                            HSourceBillNo       = "",
                            HSourceBillType     = "",
                            HRelationQty        = oSub["JOINQTY"],
                            HBackRelationQty    = oSub["STOCKRETQTY"],
                            HPropertyID         = 0,
                            HBatChNo            = oSub["FLot_Text"],
                            HAuxPropID          = oSub["AuxPropId_Id"],
                            HMTONo              = oSub["MtoNo"],
                            HERPInterID         = _saveObj["Result"]["Result"]["Id"],
                            HERPEntryID         = oSub["Id"],
                            HSEQ                = oSub["Seq"],
                            HRECEIVEDEPTID      = oSub["ReceiveDeptId_Id"],
                            HSUPPLIERLOT        = oSub["SupplierLot"],
                            HBOMID              = oSub["BomId_Id"],
                            HSTOCKUNITID        = oSub["StockUnitID_Id"],
                            HBASEUNITID         = oSub["BaseUnitId_Id"],
                            HBFLOWID            = oSub["FBFLowId_Id"],
                            HGIVEAWAY           = oSub["GiveAway"],
                            HROWTYPE            = oSub["RowType"],
                            HBASEUNITQTY        = oSub["BaseUnitQty"],
                            HSTOCKBASEQTY       = oSub["StockBaseQty"],
                            HREQTRACENO         = oSub["ReqTraceNo"],
                            HMATERIALDESC       = oSub["MultiLanguageText"][0]["MaterialDesc"],
                            HRECEIVEORGID       = oSub["ReceiveOrgId_Id"],
                            HREQUIREORGID       = oSub["RequireOrgId_Id"],
                            HTAXNETPRICE        = oSub["TaxNetPrice"],
                            HPRICECOEFFICIENT   = oSub["PriceCoefficient"],
                            HTAXCOMBINATION     = oSub["FTaxCombination_Id"],
                            HPRICEUNITID        = oSub["PriceUnitId_Id"],
                            HPRICELISTENTRY     = oSub["PriceListEntry_Id"],
                            HPAYORGID           = oSub["PayOrgId_Id"],
                            HSETTLEMODEID       = oSub["EntrySettleModeId_Id"],
                            HSETTLECURRID       = 0,
                            HEXCHANGETYPEID     = 0,
                            HPAYCONDITIONID     = 0,
                            HEXCHANGERATE       = 0,
                            HLOCALCURRID        = 0,
                            HISINCLUDEDTAX      = 0,
                            HISPRICEEXCLUDETAX  = 0,
                            HSETTLEORGID        = oSub["SettleOrgId_Id"],
                            HTAXRATEID          = oSub["POORDERENTRY_TAX"][0]["TaxRateId_Id"],
                            HCOSTPERCENT        = oSub["POORDERENTRY_TAX"][0]["CostPercent"],
                            HCOSTAMOUNT         = oSub["POORDERENTRY_TAX"][0]["CostAmount"],
                            HVAT                = oSub["POORDERENTRY_TAX"][0]["VAT"],
                            HSELLERWITHHOLDING  = oSub["POORDERENTRY_TAX"][0]["SellerWithholding"],
                            HBUYERWITHHOLDING = oSub["POORDERENTRY_TAX"][0]["BuyerWithholding"],
                        };
                        #endregion
                        //插入子表
                        sql = $@"
                 insert into Cg_POOrderBillSub
                 (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HTaxRate_TAX,HTaxMoney_TAX
                ,HTaxPrice,HDiscountRate,HRelTaxPrice,HMoney,HTaxRate,HTaxMoney
                ,HLineTotal,HlineTotalBB,HDate,HInStockQty,HInvoiceQty,HRemark
                ,HSeOrderBillNo,HSeOrderInterID,HSeOrderEntryID,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType
                ,HRelationQty,HBackRelationQty,HPropertyID,HBatChNo,HAuxPropID,HMTONo
                ,HERPInterID,HERPEntryID,HSEQ,HRECEIVEDEPTID,HSUPPLIERLOT,HBOMID
                ,HSTOCKUNITID,HBASEUNITID,HBFLOWID,HGIVEAWAY,HROWTYPE,HBASEUNITQTY
                ,HSTOCKBASEQTY,HREQTRACENO,HMATERIALDESC,HRECEIVEORGID,HREQUIREORGID
                ,HTAXNETPRICE,HPRICECOEFFICIENT,HTAXCOMBINATION,HPRICEUNITID,HPRICELISTENTRY,HPAYORGID
                ,HSETTLEMODEID,HSETTLECURRID,HEXCHANGETYPEID,HPAYCONDITIONID,HEXCHANGERATE,HLOCALCURRID
                ,HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HSETTLEORGID
                ,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING
                 )
                 values
                 ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice},
                  {subData.HTaxRate_TAX},{subData.HTaxMoney_TAX},{subData.HTaxPrice},{subData.HDiscountRate},{subData.HRelTaxPrice},{subData.HMoney},{subData.HTaxRate},{subData.HTaxMoney},{subData.HLineTotal},{subData.HlineTotalBB},'{subData.HDate}',{subData.HInStockQty},{subData.HInvoiceQty},'{subData.HRemark}','{subData.HSeOrderBillNo}',{subData.HSeOrderInterID},{subData.HSeOrderEntryID},{subData.HSourceInterID},{subData.HSourceEntryID},'{subData.HSourceBillNo}','{subData.HSourceBillType}',{subData.HRelationQty},{subData.HBackRelationQty},{subData.HPropertyID},'{subData.HBatChNo}',{subData.HAuxPropID},'{subData.HMTONo}',{subData.HERPInterID},{subData.HERPEntryID},{subData.HSEQ},{subData.HRECEIVEDEPTID},'{subData.HSUPPLIERLOT}',{subData.HBOMID},{subData.HSTOCKUNITID},{subData.HBASEUNITID},'{subData.HBFLOWID}','{subData.HGIVEAWAY}','{subData.HROWTYPE}',{subData.HBASEUNITQTY},{subData.HSTOCKBASEQTY},'{subData.HREQTRACENO}','{subData.HMATERIALDESC}',{subData.HRECEIVEORGID},{subData.HREQUIREORGID},{subData.HTAXNETPRICE},'{subData.HPRICECOEFFICIENT}','{subData.HTAXCOMBINATION}',{subData.HPRICEUNITID},'{subData.HPRICELISTENTRY}',{subData.HPAYORGID},{subData.HSETTLEMODEID},{subData.HSETTLECURRID},'{subData.HEXCHANGETYPEID}',{subData.HPAYCONDITIONID},{subData.HEXCHANGERATE},{subData.HLOCALCURRID},{subData.HISINCLUDEDTAX},{subData.HISPRICEEXCLUDETAX},{subData.HSETTLEORGID},{subData.HTAXRATEID},'{subData.HCOSTPERCENT}',{subData.HCOSTAMOUNT},'{subData.HVAT}','{subData.HSELLERWITHHOLDING}','{subData.HBUYERWITHHOLDING}')";
                        oCN.RunProc(sql);
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "单据同步成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                    #endregion
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据读取失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/SCGL/Sc_ICMOReportBillController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
@@ -13,6 +14,8 @@
    //生产汇报Controller
    public class Sc_ICMOReportBillController : ApiController
    {
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
        private json objJsonResult = new json();
@@ -710,6 +713,294 @@
            }
        }
        //
        #region [同步单据]
        [Route("Sc_ICMOReportBill/Sc_ICMOReportBillViewApi")]
        [HttpGet]
        public json Sc_ICMOReportBillViewApi(string BillNo, string BillType)
        {
            string sql = string.Empty;
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
            {
                //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式
                if (oSystemParameter.omodel.WMS_CloudMode == "Y")
                {
                    #region [私有云模式,直接调用数据库存储过程更新]
                    try
                    {
                        oCN.BeginTran();
                        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal");
                        if (DS == null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据同步失败";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "ERP中不存在该单据号";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            else
                            {
                                objJsonResult.code = "1";
                                objJsonResult.count = 1;
                                objJsonResult.Message = "单据同步成功";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "Exception!" + e.ToString();
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                }
                else
                {
                    #region [公有云模式,调用WEBAPI的方式进行更新]
                    var json = new
                    {
                        CreateOrgId = 0,
                        Number = BillNo,
                        Id = ""
                    };
                    #region [金蝶部分]
                    //登录金蝶
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    //判断是否登录成功
                    if (isSuccess < 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = loginRet;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //查看 èŽ·å–æ•°æ®
                    var _result = InvokeHelper.View("PRD_MORPT", JsonConvert.SerializeObject(json));
                    var _saveObj = JObject.Parse(_result);
                    //判断数据是否获取成功
                    if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "金蝶收料通知单同步失败jsonRoot:" + _result;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                    //获取主表数据
                    DataSet Ds;
                    Int64 InterID = 0;
                    Ds = oCN.RunProcReturn("select * from Sc_ICMOReportBillMain where HBillNo = '" + BillNo + "'", "Sc_ICMOReportBillMain");
                    if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                    {
                        InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
                    }
                    #region [主表数据赋值]
                    var jsonData = new
                    {
                        HInterID = _saveObj["Result"]["Result"]["Id"],
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillType = 3711,
                        HBillSubType = 3711,
                        HDate = _saveObj["Result"]["Result"]["Date"],
                        HBillNo = _saveObj["Result"]["Result"]["BillNo"],
                        HEmpID = 0,
                        HEmpNumber = "",
                        HGroupID = 0,
                        HDeptID = 0,
                        HDeptNumber = "",
                        HRemark = "CLD导入",
                        HChecker    = _saveObj["Result"]["Result"]["ApproverId"]["Name"],
                        HCheckDate  = _saveObj["Result"]["Result"]["ApproveDate"],
                        HMaker      = _saveObj["Result"]["Result"]["CreatorId"]["Name"],
                        HMakeDate   = _saveObj["Result"]["Result"]["CreateDate"],
                        HUpDater    = _saveObj["Result"]["Result"]["ModifierId"]["Name"],
                        HUpDateDate = _saveObj["Result"]["Result"]["ModifyDate"],
                        HDeleteMan  = _saveObj["Result"]["Result"]["CANCELER_Id"],
                        HDeleteDate = _saveObj["Result"]["Result"]["CancelDate"],
                        HMainSourceBillType    = "",
                        HMainSourceInterID     = 0,
                        HMainSourceEntryID     = 0,
                        HMainSourceBillNo      = "",
                        HPrintQty              = 0,
                        HCheckType             = "",
                        HERPInterID            = _saveObj["Result"]["Result"]["Id"],
                        HERPBillType           = _saveObj["Result"]["Result"]["BillType_Id"],
                        HPRDORGID = _saveObj["Result"]["Result"]["PrdOrgId_Id"],
                    };
                    #endregion
                    // åˆ é™¤ä¸»è¡¨å¯¹åº”数据
                    sql = $"delete from Sc_ICMOReportBillMain where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    //插入主表
                    sql = $@"
                insert into Sc_ICMOReportBillMain
                (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HEmpID,HEmpNumber
                ,HGroupID,HDeptID,HDeptNumber,HRemark,HChecker,HCheckDate,HMaker,HMakeDate
                ,HUpDater,HUpDateDate,HDeleteMan,HDeleteDate
                ,HMainSourceBillType,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo,HPrintQty,HCheckType
                ,HERPInterID,HERPBillType,HPRDORGID
                 )
                values
                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},
                '{jsonData.HDate}','{jsonData.HBillNo}',{jsonData.HEmpID},'{jsonData.HEmpNumber}',{jsonData.HGroupID},{jsonData.HDeptID},'{jsonData.HDeptNumber}','{jsonData.HRemark}','{jsonData.HChecker}','{jsonData.HCheckDate}','{jsonData.HMaker}','{jsonData.HMakeDate}','{jsonData.HUpDater}','{jsonData.HUpDateDate}','{jsonData.HDeleteMan}','{jsonData.HDeleteDate}','{jsonData.HMainSourceBillType}',{jsonData.HMainSourceInterID},{jsonData.HMainSourceEntryID},'{jsonData.HMainSourceBillNo}',{jsonData.HPrintQty},'{jsonData.HCheckType}',{jsonData.HERPInterID},'{jsonData.HERPBillType}',{jsonData.HPRDORGID})";
                    oCN.RunProc(sql);
                    #region [申请子表变量]
                    var dataArr = _saveObj["Result"]["Result"]["PRD_MORPTENTRY"];
                    DataSet Cs;
                    double RelationQty = 0;
                    #endregion
                    int i = 0;
                    // èŽ·å–å­è¡¨æ•°æ®
                    Cs = oCN.RunProcReturn("select * from Sc_ICMOReportBillSub where HInterID = " + InterID, "Sc_ICMOReportBillSub");
                    // åˆ é™¤å­è¡¨å¯¹åº”数据
                    sql = $"delete from Sc_ICMOReportBillSub where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    foreach (var oSub in dataArr)
                    {
                        #region [子表数据赋值]
                        if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                        {
                            RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString());
                            i++;
                        }
                        var subData = new
                        {
                            HInterID = _saveObj["Result"]["Result"]["Id"],
                            HEntryID = oSub["Id"],
                            HMaterID = oSub["MaterialId_Id"],
                            HMaterNumber       = "",
                            HUnitID            = oSub["UnitID_Id"],
                            HUnitNumber        = "",
                            HQtyMust           = oSub["FinishQty"],
                            HQty               = oSub["FinishQty"],
                            HWorkerID          = 0,
                            HWorkerNumber      = "",
                            HSourceID          = 0,
                            HSourceNumber      = "",
                            HTimes             = oSub["StdManHour"],
                            HBadQty            = oSub["FailQty"],
                            HBadCount          = 0,
                            HQPQty             = oSub["QuaQty"],
                            HWasterQty         = 0,
                            HRemark            = "CLOUD导入",
                            HSourceInterID     = oSub["SrcInterId"],
                            HSourceEntryID     = oSub["SrcEntryId"],
                            HSourceBillNo      = oSub["SrcBillNo"],
                            HSourceBillType    = oSub["SrcBillType"],
                            HICMOInterID       = oSub["MoId"],
                            HICMOEntryID       = oSub["MoEntryId"],
                            HICMOBillNo        = oSub["MoBillNo"],
                            HSeOrderInterID    = 0,
                            HSeOrderEntryID    = 0,
                            HSeOrderBillNo     = "",
                            HRelationQty       = oSub["BaseStockInQuaSelQty"],
                            HRelationMoney     = 0,
                            HSplitNO           = "",
                            HBarCode           = "",
                            HWhID              = oSub["StockId_Id"],
                            HSPID              = oSub["StockLocId_Id"],
                            HBatChNo           = oSub["Lot_Text"],
                            HAuxPropID         = oSub["AuxPropId_Id"],
                            HMTONo             = oSub["MtoNo"],
                            HPlanMode          = 0,
                            HERPInterID        = _saveObj["Result"]["Result"]["Id"],
                            HERPEntryID = oSub["Id"],
                            HOWNERTYPEID       = oSub["OwnerTypeId"],
                            HISENTRUST         = oSub["IsEntrust"] = false ? 0 : 1,
                            HSTOCKINORGID      = oSub["StockInOrgId_Id"],
                            HOWNERID           = oSub["OwnerId_Id"],
                            HCHECKPRODUCT      = oSub["CheckProduct"] = false ? 0 : 1,
                            HQAIP              = oSub["QAIP"],
                            HCOSTRATE          = oSub["CostRate"],
                            HISBACKFLUSH       = oSub["ISBACKFLUSH"],
                            HREQSRC            = oSub["ReqSrc"],
                            HREQBILLNO         = oSub["ReqBillNo"],
                            HREQBILLID         = oSub["ReqBillId"],
                            HREQENTRYSEQ       = oSub["ReqEntrySeq"],
                            HREQENTRYID        = oSub["ReqEntryId"],
                            HMOMAINENTRYID     = oSub["MoMainEntryId"],
                            HSTOCKINQUASELQTY  = oSub["BaseStockInQuaSelQty"],
                            HPRODUCTTYPE       = oSub["ProductType"],
                            HPROJECTNO         = oSub["ProjectNo"],
                            HICMOENTRYSEQ      = oSub["MoEntrySeq"],
                            HSEQ               = oSub["Seq"],
                            HPRODUCEDATE       = oSub["ProduceDate"],
                            HEXPIRYDATE        = oSub["ExpiryDate"],
                            HBASEUNITID        = oSub["BaseUnitId_Id"],
                            HDEPTID            = oSub["WorkshopId_Id"],
                            HGroupID           = oSub["ShiftGroupId_Id"],
                            HDESCRIPTION = ""
                        };
                        #endregion
                        //插入子表
                        sql = $@"
                 insert into Sc_ICMOReportBillSub
                 (HInterID,HEntryID,HMaterID,HMaterNumber,HUnitID,HUnitNumber
                ,HQtyMust,HQty,HWorkerID,HWorkerNumber,HSourceID,HSourceNumber,HTimes,HBadQty,HBadCount,HQPQty
                ,HWasterQty,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HICMOInterID,HICMOEntryID,HICMOBillNo
                ,HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo,HRelationQty,HRelationMoney,HSplitNO,HBarCode
                ,HWhID,HSPID,HBatChNo,HAuxPropID,HMTONo,HPlanMode,HERPInterID,HERPEntryID
                ,HOWNERTYPEID,HISENTRUST,HSTOCKINORGID,HOWNERID,HCHECKPRODUCT,HQAIP,HCOSTRATE,HISBACKFLUSH,HREQSRC
                ,HREQBILLNO,HREQBILLID,HREQENTRYSEQ,HREQENTRYID,HMOMAINENTRYID,HSTOCKINQUASELQTY,HPRODUCTTYPE,HPROJECTNO
                ,HICMOENTRYSEQ,HSEQ,HPRODUCEDATE,HEXPIRYDATE,HBASEUNITID,HDEPTID,HGroupID,HDESCRIPTION
                 )
                 values
                 ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},'{subData.HMaterNumber}',{subData.HUnitID},'{subData.HUnitNumber}',{subData.HQtyMust},{subData.HQty},{subData.HWorkerID},'{subData.HWorkerNumber}',{subData.HSourceID},'{subData.HSourceNumber}',{subData.HTimes},{subData.HBadQty},{subData.HBadCount},{subData.HQPQty},{subData.HWasterQty},'{subData.HRemark}',{subData.HSourceInterID},{subData.HSourceEntryID},'{subData.HSourceBillNo}','{subData.HSourceBillType}',{subData.HICMOInterID},{subData.HICMOEntryID},'{subData.HICMOBillNo}',{subData.HSeOrderInterID},{subData.HSeOrderEntryID},'{subData.HSeOrderBillNo}',{subData.HRelationQty},{subData.HRelationMoney},'{subData.HSplitNO}','{subData.HBarCode}',{subData.HWhID},{subData.HSPID},'{subData.HBatChNo}',{subData.HAuxPropID},'{subData.HMTONo}','{subData.HPlanMode}',{subData.HERPInterID},{subData.HERPEntryID},'{subData.HOWNERTYPEID}','{subData.HISENTRUST}',{subData.HSTOCKINORGID},{subData.HOWNERID},'{subData.HCHECKPRODUCT}','{subData.HQAIP}',{subData.HCOSTRATE},'{subData.HISBACKFLUSH}','{subData.HREQSRC}','{subData.HREQBILLNO}',{subData.HREQBILLID},{subData.HREQENTRYSEQ},{subData.HREQENTRYID},{subData.HMOMAINENTRYID},{subData.HSTOCKINQUASELQTY},'{subData.HPRODUCTTYPE}','{subData.HPROJECTNO}',{subData.HICMOENTRYSEQ},{subData.HSEQ},'{subData.HPRODUCEDATE}','{subData.HEXPIRYDATE}',{subData.HBASEUNITID},{subData.HDEPTID},{subData.HGroupID},'{subData.HDESCRIPTION}'
                  )";
                        oCN.RunProc(sql);
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "单据同步成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                    #endregion
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据读取失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/SCGL/Sc_PPBomBillController.cs
@@ -1,4 +1,5 @@
using Model.生产管理;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
@@ -14,6 +15,8 @@
    //生产用料Controller
    public class Sc_PPBomBillController : ApiController
    {
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
@@ -627,5 +630,278 @@
            }
        }
        #region [同步单据]
        [Route("Sc_PPBomBill/Sc_PPBomBillViewApi")]
        [HttpGet]
        public json Sc_PPBomBillViewApi(string BillNo, string BillType)
        {
            string sql = string.Empty;
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
            {
                //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式
                if (oSystemParameter.omodel.WMS_CloudMode == "Y")
                {
                    #region [私有云模式,直接调用数据库存储过程更新]
                    try
                    {
                        oCN.BeginTran();
                        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal");
                        if (DS == null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据同步失败";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "ERP中不存在该单据号";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            else
                            {
                                objJsonResult.code = "1";
                                objJsonResult.count = 1;
                                objJsonResult.Message = "单据同步成功";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "Exception!" + e.ToString();
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                }
                else
                {
                    #region [公有云模式,调用WEBAPI的方式进行更新]
                    var json = new
                    {
                        CreateOrgId = 0,
                        Number = BillNo,
                        Id = ""
                    };
                    #region [金蝶部分]
                    //登录金蝶
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    //判断是否登录成功
                    if (isSuccess < 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = loginRet;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //查看 èŽ·å–æ•°æ®
                    var _result = InvokeHelper.View("PRD_PPBOM", JsonConvert.SerializeObject(json));
                    var _saveObj = JObject.Parse(_result);
                    //判断数据是否获取成功
                    if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "金蝶收料通知单同步失败jsonRoot:" + _result;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                    //获取主表数据
                    DataSet Ds;
                    Int64 InterID = 0;
                    Ds = oCN.RunProcReturn("select * from Sc_PPBomBillMain where HBillNo = '" + BillNo + "'", "Sc_PPBomBillMain");
                    if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                    {
                        InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
                    }
                    #region [主表数据赋值]
                    var jsonData = new
                    {
                        HInterID = _saveObj["Result"]["Result"]["Id"],
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillType = 3720,
                        HBillSubType = 3720,
                        HDate = _saveObj["Result"]["Result"]["CreateDate"],
                        HBillNo = _saveObj["Result"]["Result"]["BillNo"],
                        HBillStatus         = _saveObj["Result"]["Result"]["ApproverId_Id"].ToString() == Convert.ToString(0) ? 1 : 2,
                        HICMOInterID        = _saveObj["Result"]["Result"]["MoId"],
                        HICMOEntryID        = _saveObj["Result"]["Result"]["MOEntryID"],
                        HMaterID            = _saveObj["Result"]["Result"]["MaterialID_Id"],
                        HUnitID             = _saveObj["Result"]["Result"]["UnitID_Id"],
                        HQty                = _saveObj["Result"]["Result"]["Qty"],
                        HDeptID             = _saveObj["Result"]["Result"]["WorkshopID_Id"],
                        HMaker              = _saveObj["Result"]["Result"]["CreatorId"]["Name"],
                        HMakeDate           = _saveObj["Result"]["Result"]["CreateDate"],
                        HChecker            = _saveObj["Result"]["Result"]["ApproverId"]["Name"],
                        HCheckDate          = _saveObj["Result"]["Result"]["ApproveDate"],
                        HSeOrderBillNo      = _saveObj["Result"]["Result"]["SALEORDERNO"],
                        HSeOrderInterID     = _saveObj["Result"]["Result"]["SaleOrderId"],
                        HSeOrderEntryID     = _saveObj["Result"]["Result"]["SaleOrderEntryId"],
                        HPRDORGID           = _saveObj["Result"]["Result"]["PrdOrgId_Id"],
                        HENTRUSTORGID       = _saveObj["Result"]["Result"]["EntrustOrgId_Id"],
                        HPARENTOWNERID      = _saveObj["Result"]["Result"]["ParentOwnerId_Id"],
                        HPARENTOWNERTYPEID  = _saveObj["Result"]["Result"]["ParentOwnerTypeId"],
                        HREQSRC             = _saveObj["Result"]["Result"]["ReqSrc"],
                        HERPInterID = _saveObj["Result"]["Result"]["Id"],
                        HERPBillType              = "PPBOM",
                        HSeOrderEntrySEQ          = _saveObj["Result"]["Result"]["SaleOrderEntrySeq"],
                        HICMOEntrySEQ = _saveObj["Result"]["Result"]["MOEntrySeq"]
                    };
                    #endregion
                    // åˆ é™¤ä¸»è¡¨å¯¹åº”数据
                    sql = $"delete from Sc_PPBomBillMain where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    //插入主表
                    sql = $@"
                insert into Sc_PPBomBillMain
                (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
                ,HBillNo,HBillStatus,HICMOInterID,HICMOEntryID
                ,HMaterID,HUnitID,HQty,HDeptID,HMaker,HMakeDate,HChecker,HCheckDate
                ,HSeOrderBillNo,HSeOrderInterID,HSeOrderEntryID
                ,HPRDORGID,HENTRUSTORGID,HPARENTOWNERID,HPARENTOWNERTYPEID,HREQSRC
                ,HERPInterID,HERPBillType,HSeOrderEntrySEQ,HICMOEntrySEQ
                 )
                values
                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},
                '{jsonData.HDate}','{jsonData.HBillNo}',{jsonData.HBillStatus},{jsonData.HICMOInterID},{jsonData.HICMOEntryID},
                {jsonData.HMaterID},{jsonData.HUnitID},{jsonData.HQty},{jsonData.HDeptID},'{jsonData.HMaker}','{jsonData.HMakeDate}','{jsonData.HChecker}',
                '{jsonData.HCheckDate}','{jsonData.HSeOrderBillNo}',{jsonData.HSeOrderInterID},{jsonData.HSeOrderEntryID},{jsonData.HPRDORGID},
                {jsonData.HENTRUSTORGID},{jsonData.HPARENTOWNERID},'{jsonData.HPARENTOWNERTYPEID}','{jsonData.HREQSRC}',{jsonData.HERPInterID},
                '{jsonData.HERPBillType}',{jsonData.HSeOrderEntrySEQ},'{jsonData.HICMOEntrySEQ}')";
                    oCN.RunProc(sql);
                    #region [申请子表变量]
                    var dataArr = _saveObj["Result"]["Result"]["PPBomEntry"];
                    DataSet Cs;
                    double RelationQty = 0;
                    #endregion
                    int i = 0;
                    // èŽ·å–å­è¡¨æ•°æ®
                    Cs = oCN.RunProcReturn("select * from Sc_PPBomBillSub where HInterID = " + InterID, "Sc_PPBomBillSub");
                    // åˆ é™¤å­è¡¨å¯¹åº”数据
                    sql = $"delete from Sc_PPBomBillSub where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    foreach (var oSub in dataArr)
                    {
                        #region [子表数据赋值]
                        if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                        {
                            RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString());
                            i++;
                        }
                        var subData = new
                        {
                            HInterID = _saveObj["Result"]["Result"]["Id"],
                            HEntryID = oSub["Id"],
                            HMaterID = oSub["MaterialID_Id"],
                            HUnitID           = oSub["UnitID_Id"],
                            HQty              = oSub["NeedQty"],
                            HQtyMust          = oSub["NeedQty"],
                            HWHID             = oSub["StockID_Id"],
                            HRemark           = "CLOUD导入",
                            HSourceInterID    = oSub["MoId"],
                            HSourceEntryID    = oSub["MoEntryId"],
                            HSourceBillNo     = oSub["MoBillNo"],
                            HSourceBillType   = 3710,
                            HICMOInterID      = oSub["MoId"],
                            HICMOEntryID      = oSub["MoEntryId"],
                            HICMOBillNo       = oSub["MoBillNo"],
                            HCHILDSUPPLYORGID = oSub["ChildSupplyOrgId_Id"],
                            HSUPPLYORGID      = oSub["SupplyOrg_Id"],
                            HENTRUSTPICKORGID = oSub["EntrustPickOrgId_Id"],
                            HSRCTRANSORGID    = oSub["SrcTransOrgId_Id"],
                            HGROUPBYOWNERID   = oSub["GroupByOwnerId_Id"],
                            HOWNERID          = oSub["OwnerID_Id"],
                            HOWNERTYPEID      = oSub["OwnerTypeId"],
                            HRelationQty      = Convert.ToInt32(oSub["SelPickedQty"]) - Convert.ToInt32(oSub["SelPrcdReturnQty"]),
                            HMoveStockQty     = oSub["SelTranslateQty"],
                            HAuxPropID        = oSub["AuxPropID_Id"],
                            HBatchNO          = oSub["Lot_Text"],
                            HMTONo            = oSub["MTONO"],
                            HQtyScrap               = Convert.ToInt32(oSub["BaseNumerator"]) / Convert.ToInt32(oSub["BaseDenominator"]),
                            HERPInterID             = _saveObj["Result"]["Result"]["Id"],
                            HERPEntryID             = oSub["Id"],
                            HBackRelationQty        = oSub["WipQty"],
                            HNumerator              = oSub["Numerator"],
                            HDenominator             = oSub["Denominator"],
                            HBASEUNITID             = oSub["BaseUnitID_Id"],
                            HProcessID              = oSub["ProcessID_Id"],
                            HICMOENTRYSEQ           = oSub["MoEntrySeq"],
                            HPROJECTNO              = oSub["ProjectNO"],
                            HOPERID                 = oSub["OperID"],
                            HSEQ                    = oSub["Seq"],
                            HSTOCKSTATUSID          = oSub["StockStatusId_Id"],
                            HLOT                    = oSub["Lot_Id"],
                            HOPTQUEUE               = oSub["OptQueue"],
                            HRESERVETYPE            = oSub["ReserveType"],
                            HSelPickedQty           = oSub["SelPickedQty"],
                            HSELPRCDRETURNQTY = oSub["SelPrcdReturnQty"],
                        };
                        #endregion
                        //插入子表
                        sql = $@"
                 insert into Sc_PPBomBillSub
                 (HInterID,HEntryID,HMaterID,HUnitID,HQty,HQtyMust,HWHID,HRemark
                ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HICMOInterID,HICMOEntryID,HICMOBillNo
                ,HCHILDSUPPLYORGID,HSUPPLYORGID,HENTRUSTPICKORGID,HSRCTRANSORGID,HGROUPBYOWNERID,HOWNERID,HOWNERTYPEID
                ,HRelationQty,HMoveStockQty,HAuxPropID,HBatchNO,HMTONo,HQtyScrap,HERPInterID,HERPEntryID
                ,HBackRelationQty,HNumerator,HDenominator
                ,HBASEUNITID,HProcessID,HICMOENTRYSEQ,HPROJECTNO,HOPERID,HSEQ,HSTOCKSTATUSID
                ,HLOT,HOPTQUEUE,HRESERVETYPE,HSelPickedQty,HSELPRCDRETURNQTY
                 )
                 values
                 ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HQtyMust},{subData.HWHID},'{subData.HRemark}',{subData.HSourceInterID},{subData.HSourceEntryID},'{subData.HSourceBillNo}','{subData.HSourceBillType}',{subData.HICMOInterID},{subData.HICMOEntryID},'{subData.HICMOBillNo}',{subData.HCHILDSUPPLYORGID},{subData.HSUPPLYORGID},{subData.HENTRUSTPICKORGID},{subData.HSRCTRANSORGID},{subData.HGROUPBYOWNERID},{subData.HOWNERID},'{subData.HOWNERTYPEID}',{subData.HRelationQty},{subData.HMoveStockQty},{subData.HAuxPropID},'{subData.HBatchNO}','{subData.HMTONo}',{subData.HQtyScrap},{subData.HERPInterID},{subData.HERPEntryID},{subData.HBackRelationQty},'{subData.HNumerator}','{subData.HDenominator}',{subData.HBASEUNITID},{subData.HProcessID},{subData.HICMOENTRYSEQ},'{subData.HPROJECTNO}',{subData.HOPERID},{subData.HSEQ},{subData.HSTOCKSTATUSID},{subData.HLOT},{subData.HOPTQUEUE},'{subData.HRESERVETYPE}',{subData.HSelPickedQty},{subData.HSELPRCDRETURNQTY}
                  )";
                        oCN.RunProc(sql);
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "单据同步成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                    #endregion
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据读取失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/XSGL/Xs_SeOrderBillController.cs
@@ -15,6 +15,8 @@
    //销售订单Controller
    public class Xs_SeOrderBillController : ApiController
    {
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
@@ -431,7 +433,325 @@
            }
        }
        #region [同步单据]
        [Route("Xs_SeOrderBill/Xs_SeOrderBillViewApi")]
        [HttpGet]
        public json Xs_SeOrderBillViewApi(string BillNo, string BillType)
        {
            string sql = string.Empty;
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
            {
                //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式
                if (oSystemParameter.omodel.WMS_CloudMode == "Y")
                {
                    #region [私有云模式,直接调用数据库存储过程更新]
                    try
                    {
                        oCN.BeginTran();
                        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal");
                        if (DS == null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据同步失败";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "ERP中不存在该单据号";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            else
                            {
                                objJsonResult.code = "1";
                                objJsonResult.count = 1;
                                objJsonResult.Message = "单据同步成功";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
        //
                    }
                    catch (Exception e)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "Exception!" + e.ToString();
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                }
                else
                {
                    #region [公有云模式,调用WEBAPI的方式进行更新]
                    var json = new
                    {
                        CreateOrgId = 0,
                        Number = BillNo,
                        Id = ""
                    };
                    #region [金蝶部分]
                    //登录金蝶
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    //判断是否登录成功
                    if (isSuccess < 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = loginRet;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //查看 èŽ·å–æ•°æ®
                    var _result = InvokeHelper.View("SAL_SaleOrder", JsonConvert.SerializeObject(json));
                    var _saveObj = JObject.Parse(_result);
                    //判断数据是否获取成功
                    if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "金蝶收料通知单同步失败jsonRoot:" + _result;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                    //获取主表数据
                    DataSet Ds;
                    Int64 InterID = 0;
                    Ds = oCN.RunProcReturn("select * from Xs_SeOrderBillMain where HBillNo = '" + BillNo + "'", "Xs_SeOrderBillMain");
                    if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                    {
                        InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
                    }
                    #region [主表数据赋值]
                    var jsonData = new
                    {
                        HInterID = _saveObj["Result"]["Result"]["Id"],
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillType = 1401,
                        HBillSubType = 1401,
                        HDate = _saveObj["Result"]["Result"]["Date"],
                        HBillNo = _saveObj["Result"]["Result"]["BillNo"],
                        HBillStatus = _saveObj["Result"]["Result"]["ApproverId_Id"].ToString() == Convert.ToString(0) ? 1 : 2,
                        HAddress = _saveObj["Result"]["Result"]["ReceiveAddress"],
                        HSSID = 0,
                        HSSDate = _saveObj["Result"]["Result"]["Date"],
                        HCusID = _saveObj["Result"]["Result"]["CustId_Id"],
                        HCurID = 0,
                        HExRate = 0,
                        HEmpID = _saveObj["Result"]["Result"]["SalerId_Id"],
                        HManagerID = 0,
                        HDeptID = _saveObj["Result"]["Result"]["SaleDeptId_Id"],
                        HExplanation = "",
                        HRemark = "CLOUD导入",
                        HInnerBillNo = _saveObj["Result"]["Result"]["Note"],
                        HChecker = _saveObj["Result"]["Result"]["ApproverId"]["Name"],
                        HCheckDate = _saveObj["Result"]["Result"]["ApproveDate"],
                        HMaker = _saveObj["Result"]["Result"]["CreatorId"]["Name"],
                        HMakeDate = _saveObj["Result"]["Result"]["CreateDate"],
                        HCloseMan = _saveObj["Result"]["Result"]["CloserId_Id"],
                        HCloseDate = _saveObj["Result"]["Result"]["CloseDate"],
                        HERPInterID = _saveObj["Result"]["Result"]["Id"],
                        HERPBillType = _saveObj["Result"]["Result"]["BillTypeId_Id"],
                        HSALEORGID = _saveObj["Result"]["Result"]["SaleOrgId_Id"],
                        HSALEGROUPID = _saveObj["Result"]["Result"]["SaleGroupId_Id"],
                        HRECEIVEID = _saveObj["Result"]["Result"]["ReceiveId_Id"],
                        HSETTLEID = _saveObj["Result"]["Result"]["SettleId_Id"],
                        HCHARGEID = _saveObj["Result"]["Result"]["ChargeId_Id"],
                        HHEADLOCID = _saveObj["Result"]["Result"]["HeadLocId_Id"],
                        HRECCONTACTID = 0,
                        HCORRESPONDORGID = _saveObj["Result"]["Result"]["CorrespondOrgId_Id"],
                        HBUSINESSTYPE = _saveObj["Result"]["Result"]["BusinessType"],
                    };
                    #endregion
                    // åˆ é™¤ä¸»è¡¨å¯¹åº”数据
                    sql = $"delete from Xs_SeOrderBillMain where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    //插入主表
                    sql = $@"
                insert into Xs_SeOrderBillMain
                (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
                ,HBillNo,HBillStatus
                ,HAddress,HSSID,HSSDate,HCusID,HCurID,HExRate
                ,HEmpID,HManagerID,HDeptID,HExplanation,HRemark,HInnerBillNo
                ,HChecker,HCheckDate,HMaker,HMakeDate,HCloseMan,HCloseDate
                ,HERPInterID,HERPBillType,HSALEORGID,HSALEGROUPID,HRECEIVEID,HSETTLEID
                ,HCHARGEID,HHEADLOCID,HRECCONTACTID,HCORRESPONDORGID,HBUSINESSTYPE
                 )
                values
                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},
                '{jsonData.HDate}','{jsonData.HBillNo}',{jsonData.HBillStatus},'{jsonData.HAddress}',{jsonData.HSSID},'{jsonData.HSSDate}',{jsonData.HCusID},
                {jsonData.HCurID},{jsonData.HExRate},{jsonData.HEmpID},{jsonData.HManagerID},{jsonData.HDeptID},
                '{jsonData.HExplanation}','{jsonData.HRemark}','{jsonData.HInnerBillNo}','{jsonData.HChecker}','{jsonData.HCheckDate}',
                '{jsonData.HMaker}','{jsonData.HMakeDate}','{jsonData.HCloseMan}','{jsonData.HCloseDate}',{jsonData.HERPInterID},
                '{jsonData.HERPBillType}',{jsonData.HSALEORGID},{jsonData.HSALEGROUPID},{jsonData.HRECEIVEID},{jsonData.HSETTLEID},{jsonData.HCHARGEID},
                {jsonData.HHEADLOCID},{jsonData.HRECCONTACTID},{jsonData.HCORRESPONDORGID},'{jsonData.HBUSINESSTYPE}')";
                    oCN.RunProc(sql);
                    #region [申请子表变量]
                    var dataArr = _saveObj["Result"]["Result"]["SaleOrderEntry"];
                    DataSet Cs;
                    double RelationQty = 0;
                    #endregion
                    int i = 0;
                    // èŽ·å–å­è¡¨æ•°æ®
                    Cs = oCN.RunProcReturn("select * from Xs_SeOrderBillSub where HInterID = " + InterID, "Xs_SeOrderBillSub");
                    // åˆ é™¤å­è¡¨å¯¹åº”数据
                    sql = $"delete from Xs_SeOrderBillSub where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    foreach (var oSub in dataArr)
                    {
                        #region [子表数据赋值]
                        if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                        {
                            RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString());
                            i++;
                        }
                        var subData = new
                        {
                            HInterID = _saveObj["Result"]["Result"]["Id"],
                            HEntryID = oSub["Id"],
                            HMaterID = oSub["MaterialId_Id"],
                            HUnitID = oSub["UnitId_Id"],
                            HQty = oSub["Qty"],
                            HPrice = oSub["Price"],
                            HTaxPrice = oSub["TaxPrice"],
                            HDiscountRate = oSub["DiscountRate"],
                            HRelTaxPrice = 0,
                            HMoney = 0,
                            HTaxRate = oSub["TaxRate"],
                            HTaxMoney = 0,
                            HLineTotal = 0,
                            HlineTotalBB = 0,
                            HDate = oSub["MinPlanDeliveryDate"],
                            HOutStockQty = oSub["StockBaseQty"],
                            HInvoiceQty = 0,
                            HRemark = oSub["Note"],
                            HSourceInterID = 0,
                            HSourceEntryID = 0,
                            HSourceBillNo = oSub["SrcBillNo"],
                            HSourceBillType = oSub["SrcType"],
                            HRelationQty = Convert.ToInt32(oSub["Qty"]) - Convert.ToInt32(oSub["BaseCanOutQty"]),
                            HPropertyID = 0,
                            HBatChNo = oSub["Lot_Text"],
                            HAuxPropID = oSub["AuxPropId_Id"],
                            HMTONo = oSub["MtoNo"],
                            HERPInterID = _saveObj["Result"]["Result"]["Id"],
                            HERPEntryID = oSub["Id"],
                            HBackRelationQty = Convert.ToInt32(oSub["Qty"]) - Convert.ToInt32(oSub["BaseCanReturnQty"]),
                            HWhID = oSub["SOStockId_Id"],
                            HSPID = oSub["SOStockLocalId_Id"],
                            HSTOCKORGID = oSub["StockOrgId_Id"],
                            HOWNERID = oSub["OwnerId_Id"],
                            HOWNERTYPEID = oSub["OwnerTypeId"],
                            HMAPID = oSub["MapId_Id"],
                            HSTOCKUNITID = oSub["StockUnitID_Id"],
                            HBASEUNITID = oSub["BaseUnitId_Id"],
                            HBFLOWID = oSub["FBFLowId_Id"],
                            HSETTLEORGID = oSub["SettleOrgId_Id"],
                            HTAXCOMBINATION = oSub["TaxCombination_Id"],
                            HPRICEUNITID = oSub["PriceUnitId_Id"],
                            HISFREE = oSub["IsFree"],
                            HPRICECOEFFICIENT = oSub["PriceCoefficient"],
                            HSYSPRICE = oSub["SysPrice"],
                            HLIMITDOWNPRICE = oSub["LimitDownPrice"],
                            HPARENTMATID = oSub["ParentMatId_Id"],
                            HROWTYPE = oSub["RowType"],
                            HROWID = oSub["RowId"],
                            HPARENTROWID = oSub["ParentRowId"],
                            HDELIVERYCONTROL = oSub["DeliveryControl"],
                            HLOCALCURRID = _saveObj["Result"]["Result"]["SaleOrderFinance"][0]["LocalCurrId_Id"],
                            HEXCHANGETYPEID = oSub["ExchangeTypeId_Id"],
                            HSETTLECURRID = _saveObj["Result"]["Result"]["SaleOrderFinance"][0]["SettleCurrId_Id"],
                            HSETTLEMODEID = _saveObj["Result"]["Result"]["SaleOrderFinance"][0]["SettleModeId_Id"],
                            HRECCONDITIONID = _saveObj["Result"]["Result"]["SaleOrderFinance"][0]["RecConditionId_Id"],
                            HISINCLUDEDTAX = _saveObj["Result"]["Result"]["SaleOrderFinance"][0]["IsIncludedTax"],
                            HISPRICEEXCLUDETAX = _saveObj["Result"]["Result"]["SaleOrderFinance"][0]["IsPriceExcludeTax"],
                            HEXCHANGERATE = _saveObj["Result"]["Result"]["SaleOrderFinance"][0]["ExchangeRate"],
                            HTAXRATEID = 0,
                            HCOSTPERCENT =0,
                            HVAT = 0,
                            HSELLERWITHHOLDING = 0,
                            HBUYERWITHHOLDING = 0,
                            HPRICELISTENTRY = oSub["PriceListEntry_Id"]
                        };
                        #endregion
                        //插入子表
                        sql = $@"
                 insert into Xs_SeOrderBillSub
                 (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice
                ,HTaxPrice,HDiscountRate,HRelTaxPrice,HMoney,HTaxRate,HTaxMoney
                ,HLineTotal,HlineTotalBB,HDate,HOutStockQty,HInvoiceQty,HRemark
                ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType
                ,HRelationQty,HPropertyID,HBatChNo,HAuxPropID,HMTONo
                ,HERPInterID,HERPEntryID,HBackRelationQty,HWhID,HSPID
                ,HSTOCKORGID,HOWNERID,HOWNERTYPEID,HMAPID,HSTOCKUNITID,HBASEUNITID
                ,HBFLOWID,HSETTLEORGID,HTAXCOMBINATION,HPRICEUNITID,HISFREE,HPRICECOEFFICIENT
                ,HSYSPRICE,HLIMITDOWNPRICE,HPARENTMATID,HROWTYPE,HROWID,HPARENTROWID
                ,HDELIVERYCONTROL,HLOCALCURRID,HEXCHANGETYPEID,HSETTLECURRID,HSETTLEMODEID
                ,HRECCONDITIONID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HEXCHANGERATE,HTAXRATEID
                ,HCOSTPERCENT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING,HPRICELISTENTRY
                 )
                 values
                 ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice},
                  {subData.HTaxPrice},{subData.HDiscountRate},{subData.HRelTaxPrice},{subData.HMoney},{subData.HTaxRate},{subData.HTaxMoney},
                  {subData.HLineTotal},{subData.HlineTotalBB},'{subData.HDate}',{subData.HOutStockQty},{subData.HInvoiceQty},'{subData.HRemark}',
                  {subData.HSourceInterID},{subData.HSourceEntryID},'{subData.HSourceBillNo}','{subData.HSourceBillType}',{subData.HRelationQty},
                  {subData.HPropertyID},'{subData.HBatChNo}',{subData.HAuxPropID},'{subData.HMTONo}',{subData.HERPInterID},{subData.HERPEntryID},
                  {subData.HBackRelationQty},{subData.HWhID},{subData.HSPID},{subData.HSTOCKORGID},{subData.HOWNERID},
                  '{subData.HOWNERTYPEID}','{subData.HMAPID}',{subData.HSTOCKUNITID},{subData.HBASEUNITID},'{subData.HBFLOWID}',
                  {subData.HSETTLEORGID},{subData.HTAXCOMBINATION},{subData.HPRICEUNITID},'{subData.HISFREE}',
                  {subData.HPRICECOEFFICIENT},{subData.HSYSPRICE},{subData.HLIMITDOWNPRICE},{subData.HPARENTMATID},'{subData.HROWTYPE}',
                  '{subData.HROWID}','{subData.HPARENTROWID}','{subData.HDELIVERYCONTROL}',{subData.HLOCALCURRID},'{subData.HEXCHANGETYPEID}',
                  {subData.HSETTLECURRID},{subData.HSETTLEMODEID},{subData.HRECCONDITIONID},'{subData.HISINCLUDEDTAX}','{subData.HISPRICEEXCLUDETAX}',
                  {subData.HEXCHANGERATE},{subData.HTAXRATEID},{subData.HCOSTPERCENT},{subData.HVAT},{subData.HSELLERWITHHOLDING},
                  {subData.HBUYERWITHHOLDING},{subData.HPRICELISTENTRY})";
                        oCN.RunProc(sql);
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "单据同步成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                    #endregion
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据读取失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/XSGL/Xs_SeOutStockBackBillController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
@@ -13,6 +14,8 @@
    //退货通知单Controller
    public class Xs_SeOutStockBackBillController : ApiController
    {
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
@@ -122,7 +125,327 @@
        }
        #endregion
        #region [同步单据]
        [Route("Xs_SeOutStockBackBill/Xs_SeOutStockBackBillViewApi")]
        [HttpGet]
        public json Xs_SeOutStockBackBillViewApi(string BillNo, string BillType)
        {
            string sql = string.Empty;
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
            {
                //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式
                if (oSystemParameter.omodel.WMS_CloudMode == "Y")
                {
                    #region [私有云模式,直接调用数据库存储过程更新]
                    try
                    {
                        oCN.BeginTran();
                        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal");
                        if (DS == null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据同步失败";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "ERP中不存在该单据号";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            else
                            {
                                objJsonResult.code = "1";
                                objJsonResult.count = 1;
                                objJsonResult.Message = "单据同步成功";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "Exception!" + e.ToString();
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                }
                else
                {
                    #region [公有云模式,调用WEBAPI的方式进行更新]
                    var json = new
                    {
                        CreateOrgId = 0,
                        Number = BillNo,
                        Id = ""
                    };
                    #region [金蝶部分]
                    //登录金蝶
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    //判断是否登录成功
                    if (isSuccess < 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = loginRet;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //查看 èŽ·å–æ•°æ®
                    var _result = InvokeHelper.View("SAL_RETURNNOTICE", JsonConvert.SerializeObject(json));
                    var _saveObj = JObject.Parse(_result);
                    //判断数据是否获取成功
                    if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "金蝶收料通知单同步失败jsonRoot:" + _result;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                    //获取主表数据
                    DataSet Ds;
                    Int64 InterID = 0;
                    Ds = oCN.RunProcReturn("select * from Xs_SeOutStockBackBillMain where HBillNo = '" + BillNo + "'", "Xs_SeOutStockBackBillMain");
                    if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                    {
                        InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
                    }
                    #region [主表数据赋值]
                    var jsonData = new
                    {
                        HInterID = _saveObj["Result"]["Result"]["Id"],
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillType = 1403,
                        HBillSubType = 1403,
                        HDate = _saveObj["Result"]["Result"]["Date"],
                        HBillNo = _saveObj["Result"]["Result"]["BillNo"],
                        HBillStatus = _saveObj["Result"]["Result"]["ApproverId_Id"].ToString() == Convert.ToString(0) ? 1 : 2 ,
                        HCusID = _saveObj["Result"]["Result"]["RetcustId_Id"],
                        HManagerID = _saveObj["Result"]["Result"]["StockerId_Id"],
                        HDeptID = _saveObj["Result"]["Result"]["Sledeptid_Id"],
                        HRemark = "CLD导入",
                        HAddress = _saveObj["Result"]["Result"]["ReceiveAddress"],
                        HSSID = 0,
                        HCurID = 0,
                        HWHID = 0,
                        HExRate = 1,
                        HEmpID = _saveObj["Result"]["Result"]["SalesManId_Id"],
                        HExplanation = "",
                        HInnerBillNo = "",
                        HSALEORGID = _saveObj["Result"]["Result"]["SaleOrgId_Id"],
                        HDELIVERYORGID = _saveObj["Result"]["Result"]["RetorgId_Id"],
                        HOWNERID = _saveObj["Result"]["Result"]["OwnerIdHead_Id"],
                        HOWNERTYPEID = _saveObj["Result"]["Result"]["OwnerTypeIdHead"],
                        HMaker = _saveObj["Result"]["Result"]["FCreatorId"]["Name"],
                        HMakeDate = _saveObj["Result"]["Result"]["FCreateDate"],
                        HChecker = _saveObj["Result"]["Result"]["ApproverId"]["Name"],
                        HCheckDate = _saveObj["Result"]["Result"]["ApproveDate"],
                        HERPInterID = _saveObj["Result"]["Result"]["Id"],
                        HERPBillType = _saveObj["Result"]["Result"]["BillTypeID_Id"],
                        HSETTLECUSID = _saveObj["Result"]["Result"]["SettleCusId_Id"],
                        HPAYCUSID = _saveObj["Result"]["Result"]["PayCusId_Id"],
                        HRECEIVECUSID = _saveObj["Result"]["Result"]["ReceiveCusId_Id"],
                        HSALEGROUPID = _saveObj["Result"]["Result"]["SaleGroupId_Id"],
                        HHEADLOCID = _saveObj["Result"]["Result"]["HeadLocId_Id"],
                        HRECCONTACTID = 0,
                        HRETURNREASON = _saveObj["Result"]["Result"]["ReturnReason_Id"],
                        HRETDEPTID = _saveObj["Result"]["Result"]["RetDeptId_Id"],
                        HDESCRIPTION = _saveObj["Result"]["Result"]["Description"],
                        HBUSINESSTYPE = _saveObj["Result"]["Result"]["BussinessType"],
                    };
                    #endregion
                    // åˆ é™¤ä¸»è¡¨å¯¹åº”数据
                    sql = $"delete from Xs_SeOutStockBackBillMain where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    //插入主表
                    sql = $@"
                insert into Xs_SeOutStockBackBillMain
                (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
                ,HBillNo,HBillStatus
                ,HCusID,HManagerID,HDeptID,HRemark
                ,HAddress,HSSID,HCurID,HWHID,HExRate,HEmpID,HExplanation,HInnerBillNo
                ,HSALEORGID,HDELIVERYORGID,HOWNERID,HOWNERTYPEID
                ,HMaker,HMakeDate,HChecker,HCheckDate,HERPInterID,HERPBillType
                ,HSETTLECUSID,HPAYCUSID,HRECEIVECUSID,HSALEGROUPID,HHEADLOCID,HRECCONTACTID
                ,HRETURNREASON,HRETDEPTID,HDESCRIPTION,HBUSINESSTYPE
                 )
                values
                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},
                '{jsonData.HDate}','{jsonData.HBillNo}',{jsonData.HBillStatus},{jsonData.HCusID},{jsonData.HManagerID},
                {jsonData.HDeptID},'{jsonData.HRemark}','{jsonData.HAddress}',{jsonData.HSSID},{jsonData.HCurID},{jsonData.HWHID},{jsonData.HExRate},
                {jsonData.HEmpID},'{jsonData.HExplanation}','{jsonData.HInnerBillNo}',{jsonData.HSALEORGID},{jsonData.HDELIVERYORGID},
                '{jsonData.HOWNERID}','{jsonData.HOWNERTYPEID}','{jsonData.HMaker}','{jsonData.HMakeDate}','{jsonData.HChecker}',
                '{jsonData.HCheckDate}',{jsonData.HERPInterID},'{jsonData.HERPBillType}',{jsonData.HSETTLECUSID},{jsonData.HPAYCUSID},
                {jsonData.HRECEIVECUSID},{jsonData.HSALEGROUPID},{jsonData.HHEADLOCID},{jsonData.HRECCONTACTID},'{jsonData.HRETURNREASON}',
                {jsonData.HRETDEPTID},'{jsonData.HDESCRIPTION}','{jsonData.HBUSINESSTYPE}')";
                    oCN.RunProc(sql);
                    #region [申请子表变量]
                    var dataArr = _saveObj["Result"]["Result"]["SAL_RETURNNOTICEENTRY"];
                    DataSet Cs;
                    double RelationQty = 0;
                    #endregion
                    int i = 0;
                    // èŽ·å–å­è¡¨æ•°æ®
                    Cs = oCN.RunProcReturn("select * from Xs_SeOutStockBackBillSub where HInterID = " + InterID, "Xs_SeOutStockBackBillSub");
                    // åˆ é™¤å­è¡¨å¯¹åº”数据
                    sql = $"delete from Xs_SeOutStockBackBillSub where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    foreach (var oSub in dataArr)
                    {
                        #region [子表数据赋值]
                        if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                        {
                            RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString());
                            i++;
                        }
                        var subData = new
                        {
                            HInterID = _saveObj["Result"]["Result"]["Id"],
                            HEntryID = oSub["Id"],
                            HMaterID = oSub["MaterialId_Id"],
                            HUnitID = oSub["UnitID_Id"],
                            HQty = oSub["Qty"],
                            HPrice = oSub["Price"],
                            HMoney = 0,
                            HTaxMoney = 0,
                            HTaxPrice = oSub["TaxPrice"],
                            HWHID = oSub["StockId_Id"],
                            HRemark = "CLOUD导入",
                            HSourceInterID = oSub["FEntity_Link"][0]["SBillId"],
                            HSourceEntryID = oSub["FEntity_Link"][0]["SId"],
                            HSourceBillNo = oSub["SrcBillNo"],
                            HSourceBillType = oSub["SrcType"],
                            HSeOrderInterID = 0,
                            HSeOrderEntryID = oSub["SOEntryId"],
                            HSeORderBillNo  = oSub["OrderNo"],
                            HOWNERID        = oSub["OwnerID_Id"],
                            HOWNERTYPEID    = oSub["OwnerTypeID"],
                            HSETTLEORGID = _saveObj["Result"]["Result"]["SAL_RETURNNOTICEFIN"][0]["SettleOrgId_Id"],
                            HRelationQty    = oSub["JoinRetQty"],
                            HAuxPropID      = oSub["AuxpropId_Id"],
                            HBatchNO        = oSub["Lot_Text"],
                            HMTONo          = oSub["MtoNo"],
                            HERPInterID     = _saveObj["Result"]["Result"]["Id"],
                            HERPEntryID = oSub["Id"],
                            HSOBILLTYPEID   = oSub["SOBILLTYPEID_Id"],
                            HRMTYPE         = oSub["RmType_Id"],
                            HSTOCKUNITID    = oSub["StockUnitID_Id"],
                            HBASEUNITID     = oSub["MaterialId"]["MaterialBase"][0]["BaseUnitId_Id"],
                            HDELIVERYDATE   = oSub["Deliverydate"],
                            HDESCRIPTION    = oSub["Description"],
                            HMAPID          = oSub["MapId_Id"],
                            HPARENTMATID    = oSub["ParentMatId_Id"],
                            HISRETURNCHECK  = oSub["IsReturnCheck"],
                            HROWTYPE        = oSub["RowType"],
                            HROWID          = oSub["RowId"],
                            HPARENTROWID    = oSub["ParentRowId"],
                            HTAXCOMBINATION = oSub["TaxCombination_Id"],
                            HPRICEUNITID    = oSub["PriceUnitId_Id"],
                            HTaxRate = oSub["TaxRate"],
                            HPRICECOEFFICIENT  = oSub["PriceCoefficient"],
                            HSYSPRICE          = oSub["SysPrice"],
                            HLIMITDOWNPRICE    = oSub["LimitDownPrice"],
                            HDISCOUNTRATE      = oSub["DiscountRate"],
                            HISFREE            = oSub["IsFree"],
                            HSETTLETYPEID      = _saveObj["Result"]["Result"]["SAL_RETURNNOTICEFIN"][0]["SettleTypeId_Id"],
                            HCHAGECONDITION    = _saveObj["Result"]["Result"]["SAL_RETURNNOTICEFIN"][0]["ChageCondition_Id"],
                            HSETTLECURRID      = _saveObj["Result"]["Result"]["SAL_RETURNNOTICEFIN"][0]["SettleCurrId_Id"],
                            HLOCALCURRID       = _saveObj["Result"]["Result"]["SAL_RETURNNOTICEFIN"][0]["LocalCurrId_Id"],
                            HEXCHANGETYPEID    = _saveObj["Result"]["Result"]["SAL_RETURNNOTICEFIN"][0]["ExchangeTypeId_Id"],
                            HISINCLUDEDTAX     = _saveObj["Result"]["Result"]["SAL_RETURNNOTICEFIN"][0]["IsIncludedTax"],
                            HISPRICEEXCLUDETAX = _saveObj["Result"]["Result"]["SAL_RETURNNOTICEFIN"][0]["IsPriceExcludeTax"],
                            HTAXRATEID         = oSub["SAL_RETURNNOTICEENTRYTAX"][0]["TaxRateId_Id"],
                            HTaxRate_TAX       = oSub["SAL_RETURNNOTICEENTRYTAX"][0]["TaxRate"],
                            HTAXAMOUNT_TAX     = oSub["SAL_RETURNNOTICEENTRYTAX"][0]["TaxAmount"],
                            HCOSTPERCENT = oSub["SAL_RETURNNOTICEENTRYTAX"][0]["CostPercent"],
                            HCOSTAMOUNT = oSub["SAL_RETURNNOTICEENTRYTAX"][0]["CostAmount"],
                            HVAT               = oSub["SAL_RETURNNOTICEENTRYTAX"][0]["VAT"],
                            HSELLERWITHHOLDING = oSub["SAL_RETURNNOTICEENTRYTAX"][0]["SellerWithholding"],
                            HBUYERWITHHOLDING = oSub["SAL_RETURNNOTICEENTRYTAX"][0]["BuyerWithholding"],
                        };
                        #endregion
                        //插入子表
                        sql = $@"
                 insert into Xs_SeOutStockBackBillSub
                 (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice
                ,HMoney,HTaxMoney,HTaxPrice,HWHID,HRemark
                ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HSeOrderInterID,HSeOrderEntryID,HSeORderBillNo
                ,HOWNERID,HOWNERTYPEID,HSETTLEORGID
                ,HRelationQty,HAuxPropID,HBatchNO,HMTONo,HERPInterID,HERPEntryID
                ,HSOBILLTYPEID,HRMTYPE,HSTOCKUNITID,HBASEUNITID,HDELIVERYDATE,HDESCRIPTION
                ,HMAPID,HPARENTMATID,HISRETURNCHECK,HROWTYPE,HROWID,HPARENTROWID
                ,HTAXCOMBINATION,HPRICEUNITID,HTaxRate,HPRICECOEFFICIENT,HSYSPRICE,HLIMITDOWNPRICE
                ,HDISCOUNTRATE,HISFREE,HSETTLETYPEID,HCHAGECONDITION,HSETTLECURRID
                ,HLOCALCURRID,HEXCHANGETYPEID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX
                ,HTAXRATEID,HTaxRate_TAX,HTAXAMOUNT_TAX,HCOSTPERCENT,HCOSTAMOUNT
                ,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING
                 )
                 values
                 ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice},
                  {subData.HMoney},{subData.HTaxMoney},{subData.HTaxPrice},{subData.HWHID},'{subData.HRemark}',{subData.HSourceInterID},
                  {subData.HSourceEntryID},'{subData.HSourceBillNo}','{subData.HSourceBillType}',{subData.HSeOrderInterID},{subData.HSeOrderEntryID},'{subData.HSeORderBillNo}',
                  {subData.HOWNERID},'{subData.HOWNERTYPEID}',{subData.HSETTLEORGID},{subData.HRelationQty},{subData.HAuxPropID},
                  '{subData.HBatchNO}','{subData.HMTONo}',{subData.HERPInterID},{subData.HERPEntryID},
                  '{subData.HSOBILLTYPEID}','{subData.HRMTYPE}',{subData.HSTOCKUNITID},{subData.HBASEUNITID},'{subData.HDELIVERYDATE}',
                  '{subData.HDESCRIPTION}','{subData.HMAPID}',{subData.HPARENTMATID},'{subData.HISRETURNCHECK}','{subData.HROWTYPE}',
                  '{subData.HROWID}','{subData.HPARENTROWID}','{subData.HTAXCOMBINATION}',{subData.HPRICEUNITID},
                  {subData.HTaxRate},'{subData.HPRICECOEFFICIENT}',{subData.HSYSPRICE},{subData.HLIMITDOWNPRICE},{subData.HDISCOUNTRATE},
                  '{subData.HISFREE}',{subData.HSETTLETYPEID},'{subData.HCHAGECONDITION}',{subData.HSETTLECURRID},{subData.HLOCALCURRID},
                  '{subData.HEXCHANGETYPEID}','{subData.HISINCLUDEDTAX}','{subData.HISPRICEEXCLUDETAX}',{subData.HTAXRATEID},{subData.HTaxRate_TAX},
                  {subData.HTAXAMOUNT_TAX},{subData.HCOSTPERCENT},{subData.HCOSTAMOUNT},'{subData.HVAT}','{subData.HSELLERWITHHOLDING}',
                  '{subData.HBUYERWITHHOLDING}')";
                        oCN.RunProc(sql);
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "单据同步成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                    #endregion
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据读取失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs
@@ -1,4 +1,5 @@
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
@@ -14,6 +15,8 @@
    //发货通知单Controller
    public class Xs_SeOutStockBillController : ApiController
    {
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
@@ -380,6 +383,331 @@
        #endregion
        //
        #region [同步单据]
        [Route("Xs_SeOutStockBill/Xs_SeOutStockBillViewApi")]
        [HttpGet]
        public json Xs_SeOutStockBillViewApi(string BillNo, string BillType)
        {
            string sql = string.Empty;
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
            {
                //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式
                if (oSystemParameter.omodel.WMS_CloudMode == "Y")
                {
                    #region [私有云模式,直接调用数据库存储过程更新]
                    try
                    {
                        oCN.BeginTran();
                        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal");
                        if (DS == null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据同步失败";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "ERP中不存在该单据号";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            else
                            {
                                objJsonResult.code = "1";
                                objJsonResult.count = 1;
                                objJsonResult.Message = "单据同步成功";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "Exception!" + e.ToString();
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                }
                else
                {
                    #region [公有云模式,调用WEBAPI的方式进行更新]
                    var json = new
                    {
                        CreateOrgId = 0,
                        Number = BillNo,
                        Id = ""
                    };
                    #region [金蝶部分]
                    //登录金蝶
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    //判断是否登录成功
                    if (isSuccess < 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = loginRet;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //查看 èŽ·å–æ•°æ®
                    var _result = InvokeHelper.View("SAL_DELIVERYNOTICE", JsonConvert.SerializeObject(json));
                    var _saveObj = JObject.Parse(_result);
                    //判断数据是否获取成功
                    if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "金蝶收料通知单同步失败jsonRoot:" + _result;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                    //获取主表数据
                    DataSet Ds;
                    Int64 InterID = 0;
                    Ds = oCN.RunProcReturn("select * from Xs_SeOutStockBillMain where HBillNo = '" + BillNo + "'", "Xs_SeOutStockBillMain");
                    if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                    {
                        InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
                    }
                    #region [主表数据赋值]
                    var jsonData = new
                    {
                        HInterID = _saveObj["Result"]["Result"]["Id"],
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillType = 1402,
                        HBillSubType = 1402,
                        HDate = _saveObj["Result"]["Result"]["Date"],
                        HBillNo = _saveObj["Result"]["Result"]["BillNo"],
                        HBillStatus = _saveObj["Result"]["Result"]["ApproverID_Id"].ToString() == Convert.ToString(0) ? 1 : 2,
                        HCusID = _saveObj["Result"]["Result"]["CustomerID_Id"],
                        HManagerID = _saveObj["Result"]["Result"]["StockerID_Id"],
                        HDeptID = _saveObj["Result"]["Result"]["DeliveryDeptID_Id"],
                        HRemark = _saveObj["Result"]["Result"]["Note"],
                        HAddress = _saveObj["Result"]["Result"]["ReceiveAddress"],
                        HSSID = 0,
                        HCurID = 0,
                        HWHID = 0,
                        HExRate = 1,
                        HEmpID = _saveObj["Result"]["Result"]["SalesManID_Id"],
                        HExplanation = "",
                        HInnerBillNo = "",
                        HSALEORGID = _saveObj["Result"]["Result"]["SaleOrgId_Id"],
                        HDELIVERYORGID = _saveObj["Result"]["Result"]["DeliveryOrgID_Id"],
                        HOWNERID = _saveObj["Result"]["Result"]["OwnerIdHead_Id"],
                        HOWNERTYPEID = _saveObj["Result"]["Result"]["OwnerTypeIdHead"],
                        HERPInterID = _saveObj["Result"]["Result"]["Id"],
                        HERPBillType = _saveObj["Result"]["Result"]["BillTypeID_Id"],
                        HMaker = _saveObj["Result"]["Result"]["CreatorId"]["Name"],
                        HMakeDate = _saveObj["Result"]["Result"]["CreateDate"],
                        HChecker = _saveObj["Result"]["Result"]["ApproverID"]["Name"],
                        HCheckDate = _saveObj["Result"]["Result"]["ApproveDate"],
                        HCloseMan = _saveObj["Result"]["Result"]["CLOSERID_Id"],
                        HCloseDate = _saveObj["Result"]["Result"]["CLOSEDATE"],
                        HSTOCKERGROUPID = _saveObj["Result"]["Result"]["StockerGroupID_Id"],
                        HSALEGROUPID = _saveObj["Result"]["Result"]["SaleGroupID_Id"],
                        HSALEDEPTID = _saveObj["Result"]["Result"]["SaleDeptID_Id"],
                        HBUSINESSTYPE = _saveObj["Result"]["Result"]["BussinessType"],
                        HCARRIERID = _saveObj["Result"]["Result"]["CarrierID_Id"],
                        HRECEIVERID = _saveObj["Result"]["Result"]["ReceiverID_Id"],
                        HSETTLEID = _saveObj["Result"]["Result"]["SettleID_Id"],
                        HPAYERID = _saveObj["Result"]["Result"]["PayerID_Id"],
                        HHEADLOCID = _saveObj["Result"]["Result"]["HeadLocId_Id"],
                        HRECCONTACTID = 0,
                        HRECEIPTCONDITIONID = _saveObj["Result"]["Result"]["FRECEIPTCONDITIONID_Id"],
                        HCORRESPONDORGID = _saveObj["Result"]["Result"]["CorrespondOrgId_Id"],
                        HCARRIAGENO = _saveObj["Result"]["Result"]["CarriageNO"]
                    };
                    #endregion
                    // åˆ é™¤ä¸»è¡¨å¯¹åº”数据
                    sql = $"delete from Xs_SeOutStockBillMain where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    //插入主表
                    sql = $@"
                insert into Xs_SeOutStockBillMain
                (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
                ,HBillNo,HBillStatus
                ,HCusID,HManagerID,HDeptID,HRemark,HAddress,HSSID
                ,HCurID,HWHID,HExRate,HEmpID,HExplanation,HInnerBillNo
                ,HSALEORGID,HDELIVERYORGID,HOWNERID,HOWNERTYPEID,HERPInterID,HERPBillType
                ,HMaker,HMakeDate,HChecker,HCheckDate,HCloseMan,HCloseDate
                ,HSTOCKERGROUPID,HSALEGROUPID,HSALEDEPTID,HBUSINESSTYPE,HCARRIERID,HRECEIVERID
                ,HSETTLEID,HPAYERID,HHEADLOCID,HRECCONTACTID,HRECEIPTCONDITIONID,HCORRESPONDORGID
                ,HCARRIAGENO
                 )
                values
                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},
                '{jsonData.HDate}','{jsonData.HBillNo}',{jsonData.HBillStatus},{jsonData.HCusID},{jsonData.HManagerID},{jsonData.HDeptID},
                '{jsonData.HRemark}','{jsonData.HAddress}',{jsonData.HSSID},{jsonData.HCurID},{jsonData.HWHID},{jsonData.HExRate},
                {jsonData.HEmpID},'{jsonData.HExplanation}','{jsonData.HInnerBillNo}',{jsonData.HSALEORGID},{jsonData.HDELIVERYORGID},
                {jsonData.HOWNERID},'{jsonData.HOWNERTYPEID}',{jsonData.HERPInterID},'{jsonData.HERPBillType}','{jsonData.HMaker}',
                '{jsonData.HMakeDate}','{jsonData.HChecker}','{jsonData.HCheckDate}','{jsonData.HCloseMan}','{jsonData.HCloseDate}',
                {jsonData.HSTOCKERGROUPID},{jsonData.HSALEGROUPID},{jsonData.HSALEDEPTID},'{jsonData.HBUSINESSTYPE}',{jsonData.HCARRIERID},
                {jsonData.HRECEIVERID},{jsonData.HSETTLEID},{jsonData.HPAYERID},{jsonData.HHEADLOCID},{jsonData.HRECCONTACTID},
                {jsonData.HRECEIPTCONDITIONID},{jsonData.HCORRESPONDORGID},'{jsonData.HCARRIAGENO}')";
                    oCN.RunProc(sql);
                    #region [申请子表变量]
                    var dataArr = _saveObj["Result"]["Result"]["SAL_DELIVERYNOTICEENTRY"];
                    DataSet Cs;
                    double RelationQty = 0;
                    #endregion
                    int i = 0;
                    // èŽ·å–å­è¡¨æ•°æ®
                    Cs = oCN.RunProcReturn("select * from Xs_SeOutStockBillSub where HInterID = " + InterID, "Xs_SeOutStockBillSub");
                    // åˆ é™¤å­è¡¨å¯¹åº”数据
                    sql = $"delete from Xs_SeOutStockBillSub where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    foreach (var oSub in dataArr)
                    {
                        #region [子表数据赋值]
                        if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                        {
                            RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString());
                            i++;
                        }
                        var subData = new
                        {
                            HInterID = _saveObj["Result"]["Result"]["Id"],
                            HEntryID = oSub["Id"],
                            HMaterID = oSub["MaterialID_Id"],
                            HUnitID = oSub["UnitID_Id"],
                            HQty = oSub["Qty"],
                            HPrice = oSub["Price"],
                            HMoney = 0,
                            HWHID = oSub["StockID_Id"],
                            HSPID = oSub["StockLocID_Id"],
                            HRemark = oSub["NoteEntry"],
                            HSourceInterID = 0,
                            HSourceEntryID = 0,
                            HSourceBillNo = oSub["SrcBillNo"],
                            HSourceBillType = oSub["SrcType"],
                            HSeOrderInterID = 0,
                            HSeOrderEntryID = oSub["SOEntryId"],
                            HSeORderBillNo = oSub["OrderNo"],
                            HOWNERID = oSub["OwnerID_Id"],
                            HOWNERTYPEID = oSub["OwnerTypeID"],
                            HSETTLEORGID = _saveObj["Result"]["Result"]["SAL_DELIVERYNOTICEFIN"][0]["SettleOrgID_Id"],
                            HMoveStockQty = oSub["StockBaseTransQty"],
                            HRelationQty = oSub["StockBaseJoinOutQty"],
                            HAuxPropID = oSub["AuxpropID_Id"],
                            HBatchNO = oSub["Lot_Text"],
                            HMTONo = oSub["MTONO"],
                            HERPInterID = _saveObj["Result"]["Result"]["Id"],
                            HERPEntryID = oSub["Id"],
                            HCUSTMATID = oSub["CustMatID_Id"],
                            HBASEUNITID = oSub["BaseUnitID_Id"],
                            HBFLOWID = oSub["FBFLowId_Id"],
                            HOUTCONTROL = oSub["OutContROL"],
                            HSTOCKUNITID = oSub["StockUnitID_Id"],
                            HROWTYPE = oSub["RowType"],
                            HROWID = oSub["RowId"],
                            HPARENTROWID = oSub["ParentRowId"],
                            HPARENTMATID = oSub["ParentMatId_Id"],
                            HTAXCOMBINATION = oSub["TaxCombination_Id"],
                            HPRICECOEFFICIENT = oSub["PriceCoefficient"],
                            HSYSPRICE = oSub["SysPrice"],
                            HLIMITDOWNPRICE = oSub["LimitDownPrice"],
                            HPRICEUNITID = oSub["PriceUnitId_Id"],
                            HTAXPRICE = oSub["TaxPrice"],
                            HTAXRATE = oSub["TaxRate"],
                            HTAXNETPRICE = oSub["TaxNetPrice"],
                            HDISCOUNTRATE = oSub["DiscountRate"],
                            HISFREE = oSub["IsFree"],
                            HLOCALCURRID = _saveObj["Result"]["Result"]["SAL_DELIVERYNOTICEFIN"][0]["LocalCurrID_Id"],
                            HSETTLECURRID = _saveObj["Result"]["Result"]["SAL_DELIVERYNOTICEFIN"][0]["SettleCurrID_Id"],
                            HEXCHANGETYPEID = _saveObj["Result"]["Result"]["SAL_DELIVERYNOTICEFIN"][0]["ExchangeTypeID_Id"],
                            HSETTLETYPEID = _saveObj["Result"]["Result"]["SAL_DELIVERYNOTICEFIN"][0]["SettleTypeID_Id"],
                            HRECEIPTCONDITIONID = 0,
                            HEXCHANGERATE = _saveObj["Result"]["Result"]["SAL_DELIVERYNOTICEFIN"][0]["ExchangeRate"],
                            HISINCLUDEDTAX = _saveObj["Result"]["Result"]["SAL_DELIVERYNOTICEFIN"][0]["IsIncludedTax"],
                            HISPRICEEXCLUDETAX = _saveObj["Result"]["Result"]["SAL_DELIVERYNOTICEFIN"][0]["IsPriceExcludeTax"],
                            HTAXRATEID = 0,
                            HTaxRate_TAX = oSub["TaxRate"],
                            HCOSTPERCENT = 0,
                            HVAT = 0,
                            HSELLERWITHHOLDING = 0,
                            HBUYERWITHHOLDING = 0
                        };
                        #endregion
                        //插入子表
                        sql = $@"
                 insert into Xs_SeOutStockBillSub
                 (HInterID,HEntryID,HMaterID,HUnitID,HQty
                ,HPrice,HMoney,HWHID,HSPID,HRemark
                ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HSeOrderInterID,HSeOrderEntryID,HSeORderBillNo
                ,HOWNERID,HOWNERTYPEID,HSETTLEORGID,HMoveStockQty
                ,HRelationQty,HAuxPropID,HBatchNO,HMTONo,HERPInterID,HERPEntryID
                ,HCUSTMATID,HBASEUNITID,HBFLOWID,HOUTCONTROL
                ,HSTOCKUNITID,HROWTYPE,HROWID,HPARENTROWID,HPARENTMATID
                ,HTAXCOMBINATION,HPRICECOEFFICIENT,HSYSPRICE,HLIMITDOWNPRICE
                ,HPRICEUNITID,HTAXPRICE,HTAXRATE,HTAXNETPRICE,HDISCOUNTRATE,HISFREE
                ,HLOCALCURRID,HSETTLECURRID,HEXCHANGETYPEID,HSETTLETYPEID,HRECEIPTCONDITIONID
                ,HEXCHANGERATE,HISINCLUDEDTAX,HISPRICEEXCLUDETAX
                ,HTAXRATEID,HTaxRate_TAX,HCOSTPERCENT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING
                 )
                 values
                 ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice},
                  {subData.HMoney},{subData.HWHID},{subData.HSPID},'{subData.HRemark}',{subData.HSourceInterID},{subData.HSourceEntryID},
                  '{subData.HSourceBillNo}','{subData.HSourceBillType}',{subData.HSeOrderInterID},{subData.HSeOrderEntryID},
                  '{subData.HSeORderBillNo}',{subData.HOWNERID},'{subData.HOWNERTYPEID}',{subData.HSETTLEORGID},{subData.HMoveStockQty},
                  {subData.HRelationQty},{subData.HAuxPropID},'{subData.HBatchNO}','{subData.HMTONo}',{subData.HERPInterID},{subData.HERPEntryID},
                  '{subData.HCUSTMATID}',{subData.HBASEUNITID},'{subData.HBFLOWID}','{subData.HOUTCONTROL}',{subData.HSTOCKUNITID},'{subData.HROWTYPE}',
                  '{subData.HROWID}','{subData.HPARENTROWID}','{subData.HPARENTMATID}',{subData.HTAXCOMBINATION},{subData.HPRICECOEFFICIENT},
                  '{subData.HSYSPRICE}',{subData.HLIMITDOWNPRICE},{subData.HPRICEUNITID},{subData.HTAXPRICE},'{subData.HTAXRATE}',
                  '{subData.HTAXNETPRICE}',{subData.HDISCOUNTRATE},'{subData.HISFREE}','{subData.HLOCALCURRID}','{subData.HSETTLECURRID}',
                  '{subData.HEXCHANGETYPEID}','{subData.HSETTLETYPEID}','{subData.HRECEIPTCONDITIONID}',{subData.HEXCHANGERATE},'{subData.HISINCLUDEDTAX}',
                  '{subData.HISPRICEEXCLUDETAX}',{subData.HTAXRATEID},{subData.HTaxRate_TAX},'{subData.HCOSTPERCENT}','{subData.HVAT}',
                  {subData.HSELLERWITHHOLDING},{subData.HBUYERWITHHOLDING})";
                        oCN.RunProc(sql);
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "单据同步成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                    #endregion
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据读取失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/Éú²ú¹ÜÀí/Éú²úÈÎÎñµ¥/Sc_ICMOBillController.cs
@@ -23,6 +23,9 @@
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        #region ç”Ÿäº§ä»»åŠ¡å• ä¿å­˜/编辑功能
        [Route("Sc_ICMOBill/ICMOBillEdit")]
        [HttpPost]
@@ -1080,5 +1083,331 @@
        #endregion
        #region [同步单据]
        [Route("Sc_ICMOBill/Sc_ICMOBillViewApi")]
        [HttpGet]
        public json Sc_ICMOBillViewApi(string BillNo, string BillType)
        {
            string sql = string.Empty;
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
            {
                //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式
                if (oSystemParameter.omodel.WMS_CloudMode == "Y")
                {
                    #region [私有云模式,直接调用数据库存储过程更新]
                    try
                    {
                        oCN.BeginTran();
                        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal");
                        if (DS == null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据同步失败";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "ERP中不存在该单据号";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            else
                            {
                                objJsonResult.code = "1";
                                objJsonResult.count = 1;
                                objJsonResult.Message = "单据同步成功";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "Exception!" + e.ToString();
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                }
                else
                {
                    #region [公有云模式,调用WEBAPI的方式进行更新]
                    var json = new
                    {
                        CreateOrgId = 0,
                        Number = BillNo,
                        Id = ""
                    };
                    #region [金蝶部分]
                    //登录金蝶
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    //判断是否登录成功
                    if (isSuccess < 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = loginRet;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //查看 èŽ·å–æ•°æ®
                    var _result = InvokeHelper.View("PRD_MO", JsonConvert.SerializeObject(json));
                    var _saveObj = JObject.Parse(_result);
                    //判断数据是否获取成功
                    if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "金蝶收料通知单同步失败jsonRoot:" + _result;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                    //获取主表数据
                    DataSet Ds;
                    Int64 InterID = 0;
                    Ds = oCN.RunProcReturn("select * from Sc_ICMOBillMain where HBillNo = '" + BillNo + "'", "Sc_ICMOBillMain");
                    if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                    {
                        InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
                    }
                    #region [主表数据赋值]
                    var jsonData = new
                    {
                        HInterID = _saveObj["Result"]["Result"]["Id"],
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillType = 3710,
                        HDate = _saveObj["Result"]["Result"]["Date"],
                        HBillNo = _saveObj["Result"]["Result"]["BillNo"],
                        HBillStatus = _saveObj["Result"]["Result"]["ApproverId_Id"].ToString() == Convert.ToString(0) ? 1 : 2,
                        HEMPID = 0,
                        HRoutingInterID = 0,
                        HPlanQty = 1,
                        HRelationQty = 0,
                        HPlanBeginDate = _saveObj["Result"]["Result"]["Date"],
                        HPlanEndDate = DateTime.Now.ToString(),
                        HBeginDate = _saveObj["Result"]["Result"]["Date"],
                        HEndDate = DateTime.Now.ToString(),
                        HMaterID = 0,
                        HUnitID = 0,
                        HBomID = 0,
                        HBatchNo = "",
                        HSourceInterID = 0,
                        HSourceEntryID = 0,
                        HSourceBillNo = "",
                        HSourceBillType = "",
                        HSeOrderInterID = 0,
                        HSeOrderEntryID = 0,
                        HSeOrderBillNo = "",
                        HPRDORGID = _saveObj["Result"]["Result"]["PrdOrgId_Id"],
                        HENTRUSTORGID = _saveObj["Result"]["Result"]["ENTrustOrgId_Id"],
                        HOWNERID = _saveObj["Result"]["Result"]["OwnerId_Id"],
                        HOWNERTYPEID = _saveObj["Result"]["Result"]["OwnerTypeId"],
                        HCusID = 0,
                        HDeptID = _saveObj["Result"]["Result"]["WorkShopID_Id"].ToString() == null ? 0 : _saveObj["Result"]["Result"]["WorkShopID_Id"],
                        HRemark = "CLOUD导入",
                        HMTONo = "",
                        HERPInterID = _saveObj["Result"]["Result"]["Id"],
                        HERPBillType = _saveObj["Result"]["Result"]["BillType_Id"],
                        HMaker = _saveObj["Result"]["Result"]["CreatorId"]["Name"],
                        HMakeDate = _saveObj["Result"]["Result"]["CreateDate"],
                        HChecker = _saveObj["Result"]["Result"]["ApproverId"]["Name"],
                        HCheckDate = _saveObj["Result"]["Result"]["ApproveDate"],
                        HBillSubType = _saveObj["Result"]["Result"]["IsRework"] = true ? 1 : 0,
                        HISENTRUST = _saveObj["Result"]["Result"]["IsEntrust"],
                        HISREWORK = _saveObj["Result"]["Result"]["IsRework"]
                    };
                    #endregion
                    // åˆ é™¤ä¸»è¡¨å¯¹åº”数据
                    sql = $"delete from Sc_ICMOBillMain where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    //插入主表
                    sql = $@"
                insert into Sc_ICMOBillMain
                (HInterID,HYear,HPeriod,HBillType,HDate
                ,HBillNo,HBillStatus,HEMPID,HRoutingInterID
                ,HPlanQty,HRelationQty,HPlanBeginDate,HPlanEndDate,HBeginDate,HEndDate
                ,HMaterID,HUnitID,HBomID,HBatchNo
                ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo
                ,HPRDORGID,HENTRUSTORGID,HOWNERID,HOWNERTYPEID
                ,HCusID,HDeptID,HRemark,HMTONo,HERPInterID,HERPBillType
                ,HMaker,HMakeDate,HChecker,HCheckDate
                ,HBillSubType,HISENTRUST,HISREWORK
                 )
                values
                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},'{jsonData.HDate}','{jsonData.HBillNo}',
                {jsonData.HBillStatus},{jsonData.HEMPID},{jsonData.HRoutingInterID},{jsonData.HPlanQty},{jsonData.HRelationQty},
                '{jsonData.HPlanBeginDate}', '{jsonData.HPlanEndDate}','{jsonData.HBeginDate}','{jsonData.HEndDate}',{jsonData.HMaterID},
                {jsonData.HUnitID},{jsonData.HBomID},'{jsonData.HBatchNo}',{jsonData.HSourceInterID},{jsonData.HSourceEntryID},
                '{jsonData.HSourceBillNo}','{jsonData.HSourceBillType}',{jsonData.HSeOrderInterID}, {jsonData.HSeOrderEntryID},'{jsonData.HSeOrderBillNo}',
                {jsonData.HPRDORGID},{jsonData.HENTRUSTORGID},{jsonData.HOWNERID},'{jsonData.HOWNERTYPEID}',{jsonData.HCusID},{jsonData.HDeptID},
                '{jsonData.HRemark}','{jsonData.HMTONo}',{jsonData.HERPInterID},'{jsonData.HERPBillType}','{jsonData.HMaker}','{jsonData.HMakeDate}',
                '{jsonData.HChecker}','{jsonData.HCheckDate}','{jsonData.HBillSubType}','{jsonData.HISENTRUST}','{jsonData.HISREWORK}')";
                    oCN.RunProc(sql);
                    #region [申请子表变量]
                    var dataArr = _saveObj["Result"]["Result"]["TreeEntity"];
                    DataSet Cs;
                    double RelationQty = 0;
                    #endregion
                    int i = 0;
                    // èŽ·å–å­è¡¨æ•°æ®
                    Cs = oCN.RunProcReturn("select * from Sc_ICMOBillSub where HInterID = " + InterID, "Sc_ICMOBillSub");
                    // åˆ é™¤å­è¡¨å¯¹åº”数据
                    sql = $"delete from Sc_ICMOBillSub where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    foreach (var oSub in dataArr)
                    {
                        #region [子表数据赋值]
                        if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                        {
                            RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString());
                            i++;
                        }
                        var subData = new
                        {
                            HInterID = _saveObj["Result"]["Result"]["Id"],
                            HENTRYID = oSub["Id"],
                            HSEQ = oSub["Seq"],
                            HQty = oSub["Qty"],
                            HQTYMUST = oSub["Qty"],
                            HRelationQty = RelationQty,
                            HRelationMoney = 0,
                            HPlanBeginDate = oSub["IdPlanStartDate"],
                            HPlanEndDate = oSub["PlanFinishDate"],
                            HBeginDate = oSub["StartDate"],
                            HEndDate = oSub["FinishDate"],
                            HBomID = oSub["BomId_Id"],
                            HRemark = "CLOUD导入",
                            HMaterID = oSub["MaterialId_Id"],
                            HUnitID = oSub["UnitId_Id"],
                            HWHID = oSub["StockId_Id"],
                            HSPID = oSub["StockLocId_Id"],
                            HPROCID = oSub["ProcessId_Id"],
                            HDEPTID = oSub["WorkShopID_Id"],
                            HBatchNo = oSub["Lot_Text"],
                            HSourceInterID = oSub["SrcBillId"],
                            HSourceEntryID = oSub["SrcBillEntryId"],
                            HSourceBillNo = oSub["SrcBillNo"],
                            HSourceBillType = oSub["SrcBillType"],
                            HSeOrderInterID = oSub["SaleOrderId"],
                            HSeOrderEntryID = oSub["SaleOrderEntryId"],
                            HSeOrderBillNo = oSub["SaleOrderNo"],
                            HSTOCKINORGID = oSub["StockInOrgId_Id"],
                            HINSTOCKOWNERID = oSub["InStockOwnerId_Id"],
                            HINSTOCKOWNERTYPEID = oSub["InStockOwnerTypeId"],
                            HREQUESTORGID = oSub["RequestOrgId_Id"],
                            HPlanMode = 0,
                            HMTONo = oSub["MTONo"],
                            HERPInterID = _saveObj["Result"]["Result"]["Id"],
                            HERPEntryID = oSub["Id"],
                            HSTATUS = oSub["Status"],
                            HEntryCusID = 0,
                            HICMOReportRelationQty = oSub["RepQuaSelAuxQty"],
                            HAuxPropID = oSub["AuxPropId_Id"],
                            HProdMaterCode = "",
                            HCusShortName = "",
                            HCusNeedMaterial = "",
                            HPlanSendGoodsDate = "",
                            HProdMaterName = "",
                            HWorkRemark = "",
                            HImportNote = "",
                            HCusName = "",
                            HInstockQty_Max = 0,
                            HInstockQty_Min = 0,
                            HPickLabel = "",
                            HPickLabelNumber = oSub["StockInLimitH"],
                            HCusNumber = oSub["StockInLimitL"],
                            HINSTOCKTYPE = oSub["InStockType"],
                            HCHECKPRODUCT = oSub["CheckProduct"],
                            HQAIP = oSub["QAIP"],
                            HISBACKFLUSH = oSub["ISBACKFLUSH"],
                            HREQSRC = oSub["ReqSrc"],
                            HSTOCKINQUASELAUXQTY = oSub["StockInQuaSelAuxQty"],
                            HSeOrderEntrySEQ = oSub["SaleOrderEntrySeq"],
                            HPROJECTNO = oSub["ProjectNo"],
                            HPRODUCTTYPE = oSub["ProductType"],
                            HCOSTRATE = oSub["CostRate"],
                            HBASEUNITID = oSub["BaseUnitId_Id"],
                        };
                        #endregion
                        //插入子表
                        sql = $@"
                 insert into Sc_ICMOBillSub
                 (HInterID,HENTRYID,HSEQ,HQty,HQTYMUST,HRelationQty,HRelationMoney
                ,HPlanBeginDate,HPlanEndDate,HBeginDate,HEndDate,HBomID,HRemark
                ,HMaterID,HUnitID,HWHID,HSPID,HPROCID,HDEPTID,HBatchNo
                ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType
                ,HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo
                ,HSTOCKINORGID,HINSTOCKOWNERID,HINSTOCKOWNERTYPEID,HREQUESTORGID
                ,HPlanMode,HMTONo,HERPInterID,HERPEntryID,HSTATUS
                ,HEntryCusID,HICMOReportRelationQty,HAuxPropID,HProdMaterCode,HCusShortName
                ,HCusNeedMaterial,HPlanSendGoodsDate,HProdMaterName,HWorkRemark,HImportNote,HCusName
                ,HInstockQty_Max,HInstockQty_Min,HPickLabel,HPickLabelNumber,HCusNumber
                ,HINSTOCKTYPE,HCHECKPRODUCT,HQAIP,HISBACKFLUSH,HREQSRC,HSTOCKINQUASELAUXQTY
                ,HSeOrderEntrySEQ,HPROJECTNO,HPRODUCTTYPE,HCOSTRATE,HBASEUNITID
                 )
                 values
                 ({subData.HInterID},{subData.HENTRYID},{subData.HSEQ},{subData.HQty},{subData.HQTYMUST},{subData.HRelationQty},
                  {subData.HRelationMoney},'{subData.HPlanBeginDate}','{subData.HPlanEndDate}','{subData.HBeginDate}','{subData.HEndDate}',{subData.HBomID},
                  '{subData.HRemark}',{subData.HMaterID},{subData.HUnitID},{subData.HWHID},{subData.HSPID},{subData.HPROCID},{subData.HDEPTID},
                  '{subData.HBatchNo}',{subData.HSourceInterID},{subData.HSourceEntryID},'{subData.HSourceBillNo}','{subData.HSourceBillType}',
                  {subData.HSeOrderInterID},{subData.HSeOrderEntryID},'{subData.HSeOrderBillNo}',{subData.HSTOCKINORGID},{subData.HINSTOCKOWNERID},
                  '{subData.HINSTOCKOWNERTYPEID}',{subData.HREQUESTORGID},'{subData.HPlanMode}','{subData.HMTONo}',{subData.HERPInterID},
                  {subData.HERPEntryID},{subData.HSTATUS},{subData.HEntryCusID},{subData.HICMOReportRelationQty},{subData.HAuxPropID},
                  '{subData.HProdMaterCode}','{subData.HCusShortName}','{subData.HCusNeedMaterial}','{subData.HPlanSendGoodsDate}',
                  '{subData.HProdMaterName}','{subData.HWorkRemark}','{subData.HImportNote}','{subData.HCusName}',{subData.HInstockQty_Max},
                  {subData.HInstockQty_Min},'{subData.HPickLabel}',{subData.HPickLabelNumber},{subData.HCusNumber},'{subData.HINSTOCKTYPE}',
                  '{subData.HCHECKPRODUCT}','{subData.HQAIP}','{subData.HISBACKFLUSH}','{subData.HREQSRC}',{subData.HSTOCKINQUASELAUXQTY},
                  {subData.HSeOrderEntrySEQ},'{subData.HPROJECTNO}','{subData.HPRODUCTTYPE}',{subData.HCOSTRATE},{subData.HBASEUNITID})";
                        oCN.RunProc(sql);
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "单据同步成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                    #endregion
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据读取失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/WebAPI.csproj
@@ -397,11 +397,11 @@
    <Compile Include="Controllers\MJGL\Sc_MouldScrapRequestBillController.cs" />
    <Compile Include="Controllers\MJGL\Sc_MouldStatusChangeBillController.cs" />
    <Compile Include="Controllers\Pay_ReportController.cs" />
    <Compile Include="Controllers\SBGL\SBTC\Sb_EquipStockInCheckBillController.cs" />
    <Compile Include="Controllers\SBGL\SBTC\Sb_EquipWorkBeforeCheckBillController.cs" />
    <Compile Include="Controllers\SBGL\Sb_EquipSparepartsBillController.cs" />
    <Compile Include="Controllers\SBGL\Sb_EquipSparepartsChangeBillController.cs" />
    <Compile Include="Controllers\SBGL\Sb_EquipStatusChangeBillController.cs" />
    <Compile Include="Controllers\SBGL\SBTC\Sb_EquipStockInCheckBillController.cs" />
    <Compile Include="Controllers\SBGL\SBTC\Sb_EquipWorkBeforeCheckBillController.cs" />
    <Compile Include="Controllers\SBGL\Sb_EquipWorkBeforeCheckBillController.cs" />
    <Compile Include="Controllers\SBGL\Sb_EquipStockInCheckBillController.cs" />
    <Compile Include="Controllers\SCGL\Sc_ComplementGoodBill_ZXBZController.cs" />
@@ -958,7 +958,6 @@
    <Folder Include="Views\Sb_EquipStatusChangeBill\" />
    <Folder Include="Views\Sb_EquipStockInCheckBill\" />
    <Folder Include="Views\Sb_EquipWorkBeforeCheckBill\" />
    <Folder Include="Views\Sb_EquipStockInCheckBill\" />
    <Folder Include="Views\Sc_CallGoodsBackRequestBill\" />
    <Folder Include="Views\Sc_ComplementGoodBill\" />
    <Folder Include="Views\Sc_ComplementGoodBill_ZXBZ\" />