namespace BLL
{
    using Newtonsoft.Json.Linq;
    using System;
    using System.Timers;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    public static class MCSWebService
    {
        #region 启动监视器 系统启动5分钟
        /// 
        /// 监视组件
        /// 
        private static Timer messageTimer;
        /// 
        /// 启动监视器,不一定能成功,根据系统设置决定对监视器执行的操作 系统启动5分钟
        /// 
        public static void StartMonitor()
        {
            if (messageTimer != null)
            {
                messageTimer.Stop();
                messageTimer.Dispose();
                messageTimer = null;
            }
            messageTimer = new Timer
            {
                AutoReset = true
            };
            messageTimer.Elapsed += new ElapsedEventHandler(GetCLData);
            messageTimer.Interval = 1000 * 60 * 60 * 3;// 60分钟 60000 * adTimeJ;
            messageTimer.Start();
        }
        #endregion
        public static void GetCLData(object sender, ElapsedEventArgs e)
        {
            try
            {
                getPojectInfo();
                getVendor();
                var projects = from x in Funs.DB.Base_Project where x.CLProjectCode != null select x;
                foreach (var project in projects)
                {
                    getShelvesNo(project.CLProjectCode ?? 0);
                    getSubcontractor(project.CLProjectCode ?? 0);
                    getPipelineMaterialSumListInfo(project.CLProjectCode ?? 0);
                    getContractListInfo(project.CLProjectCode ?? 0);
                    using (var db = new Model.SGGLDB(Funs.ConnString))
                    {
                        Model.Sys_Log syslog = new Model.Sys_Log
                        {
                            LogId = SQLHelper.GetNewID(),
                            HostName = "本地4",
                            OperationTime = DateTime.Now,
                            UserId = BLL.Const.sysglyId,
                            MenuId = BLL.Const.sysglyId,
                            OperationName = "材料软件定时",
                            DataId = "材料软件定时",
                            LogSource = 1,
                        };
                        db.Sys_Log.InsertOnSubmit(syslog);
                        db.SubmitChanges();
                    }
                    getContractListSumInfo(project.CLProjectCode ?? 0);
                    using (var db = new Model.SGGLDB(Funs.ConnString))
                    {
                        Model.Sys_Log syslog = new Model.Sys_Log
                        {
                            LogId = SQLHelper.GetNewID(),
                            HostName = "本地5",
                            OperationTime = DateTime.Now,
                            UserId = BLL.Const.sysglyId,
                            MenuId = BLL.Const.sysglyId,
                            OperationName = "材料软件定时",
                            DataId = "材料软件定时",
                            LogSource = 1,
                        };
                        db.Sys_Log.InsertOnSubmit(syslog);
                        db.SubmitChanges();
                    }
                }
                foreach (var project in projects)
                {
                    getPipelineMaterialListInfo(project.CLProjectCode ?? 0);
                    using (var db = new Model.SGGLDB(Funs.ConnString))
                    {
                        Model.Sys_Log syslog = new Model.Sys_Log
                        {
                            LogId = SQLHelper.GetNewID(),
                            HostName = "本地6",
                            OperationTime = DateTime.Now,
                            UserId = BLL.Const.sysglyId,
                            MenuId = BLL.Const.sysglyId,
                            OperationName = "材料软件定时",
                            DataId = "材料软件定时",
                            LogSource = 1,
                        };
                        db.Sys_Log.InsertOnSubmit(syslog);
                        db.SubmitChanges();
                    }
                    getPipelineMaterialCodeListInfo(project.CLProjectCode ?? 0);
                    using (var db = new Model.SGGLDB(Funs.ConnString))
                    {
                        Model.Sys_Log syslog = new Model.Sys_Log
                        {
                            LogId = SQLHelper.GetNewID(),
                            HostName = "本地7",
                            OperationTime = DateTime.Now,
                            UserId = BLL.Const.sysglyId,
                            MenuId = BLL.Const.sysglyId,
                            OperationName = "材料软件定时",
                            DataId = "材料软件定时",
                            LogSource = 1,
                        };
                        db.Sys_Log.InsertOnSubmit(syslog);
                        db.SubmitChanges();
                    }
                    getPipelineSupplierListInfo(project.CLProjectCode ?? 0);
                    using (var db = new Model.SGGLDB(Funs.ConnString))
                    {
                        Model.Sys_Log syslog = new Model.Sys_Log
                        {
                            LogId = SQLHelper.GetNewID(),
                            HostName = "本地8",
                            OperationTime = DateTime.Now,
                            UserId = BLL.Const.sysglyId,
                            MenuId = BLL.Const.sysglyId,
                            OperationName = "材料软件定时",
                            DataId = "材料软件定时",
                            LogSource = 1,
                        };
                        db.Sys_Log.InsertOnSubmit(syslog);
                        db.SubmitChanges();
                    }
                    getArrivalDetailListInfo(project.CLProjectCode ?? 0);
                    using (var db = new Model.SGGLDB(Funs.ConnString))
                    {
                        Model.Sys_Log syslog = new Model.Sys_Log
                        {
                            LogId = SQLHelper.GetNewID(),
                            HostName = "本地9",
                            OperationTime = DateTime.Now,
                            UserId = BLL.Const.sysglyId,
                            MenuId = BLL.Const.sysglyId,
                            OperationName = "材料软件定时",
                            DataId = "材料软件定时",
                            LogSource = 1,
                        };
                        db.Sys_Log.InsertOnSubmit(syslog);
                        db.SubmitChanges();
                    }
                    getCheckOutDetailListInfo(project.CLProjectCode ?? 0);
                    using (var db = new Model.SGGLDB(Funs.ConnString))
                    {
                        Model.Sys_Log syslog = new Model.Sys_Log
                        {
                            LogId = SQLHelper.GetNewID(),
                            HostName = "本地10",
                            OperationTime = DateTime.Now,
                            UserId = BLL.Const.sysglyId,
                            MenuId = BLL.Const.sysglyId,
                            OperationName = "材料软件定时",
                            DataId = "材料软件定时",
                            LogSource = 1,
                        };
                        db.Sys_Log.InsertOnSubmit(syslog);
                        db.SubmitChanges();
                    }
                    getRequestDetailListInfo(project.CLProjectCode ?? 0);
                    getMTODetailInfo(project.CLProjectCode ?? 0);
                    using (var db = new Model.SGGLDB(Funs.ConnString))
                    {
                        Model.Sys_Log syslog = new Model.Sys_Log
                        {
                            LogId = SQLHelper.GetNewID(),
                            HostName = "本地3",
                            OperationTime = DateTime.Now,
                            UserId = BLL.Const.sysglyId,
                            MenuId = BLL.Const.sysglyId,
                            OperationName = "材料软件定时",
                            DataId = "材料软件定时",
                            LogSource = 1,
                        };
                        db.Sys_Log.InsertOnSubmit(syslog);
                        db.SubmitChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                StartMonitor();
                ErrLogInfo.WriteLog("材料软件定时器启动失败!", ex);
            }
        }
        public static void getRequestDetailListInfo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPojectReport(projectId, "现场请购明细一览表");
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_RequestDetailList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_RequestDetailList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_RequestDetailList mTODetail = new Model.CLGL_RequestDetailList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["请购单号"].ToString();
                            mTODetail.C2 = item["请购单名称"].ToString();
                            mTODetail.C3 = item["专业名称"].ToString();
                            mTODetail.C4 = item["材料编码"].ToString();
                            mTODetail.C5 = item["位号"].ToString();
                            mTODetail.C6 = item["属性1"].ToString();
                            mTODetail.C7 = item["属性2"].ToString();
                            mTODetail.C8 = item["属性3"].ToString();
                            mTODetail.C9 = item["属性4"].ToString();
                            mTODetail.C10 = item["属性5"].ToString();
                            mTODetail.C11 = item["属性6"].ToString();
                            mTODetail.C12 = item["属性7"].ToString();
                            mTODetail.C13 = item["属性8"].ToString();
                            mTODetail.C14 = item["属性9"].ToString();
                            mTODetail.C15 = item["属性10"].ToString();
                            mTODetail.C16 = item["属性11"].ToString();
                            mTODetail.C17 = item["属性12"].ToString();
                            mTODetail.C18 = item["属性13"].ToString();
                            mTODetail.C19 = item["属性14"].ToString();
                            mTODetail.C20 = item["属性15"].ToString();
                            mTODetail.C21 = item["属性16"].ToString();
                            mTODetail.C22 = item["属性17"].ToString();
                            mTODetail.C23 = item["属性18"].ToString();
                            mTODetail.C24 = item["属性19"].ToString();
                            mTODetail.C25 = item["属性20"].ToString();
                            mTODetail.C26 = item["主项号"].ToString();
                            mTODetail.C27 = item["装置号"].ToString();
                            mTODetail.C28 = item["设计量"].ToString();
                            mTODetail.C29 = item["请购量"].ToString();
                            mTODetail.C30 = item["请购说明"].ToString();
                            mTODetail.C31 = item["材料用途"].ToString();
                            db.CLGL_RequestDetailList.InsertOnSubmit(mTODetail);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getRequestDetailListInfo" + ex.Message);
            }
        }
        public static void getPipelineMaterialSumListInfo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPipeMaterilalByType(projectId);
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_PipelineMaterialSumList where x.ProjectId == projectId.ToString() && x.Type == "M" select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PipelineMaterialSumList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PipelineMaterialSumList mTODetail = new Model.CLGL_PipelineMaterialSumList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.Type = "M";
                            mTODetail.C1 = item["材料类别"].ToString();
                            mTODetail.C2 = item["设计量"].ToString();
                            mTODetail.C3 = item["预制量"].ToString();
                            mTODetail.C4 = item["采购量"].ToString();
                            mTODetail.C5 = item["采购量百分比"].ToString();
                            mTODetail.C6 = item["已到货"].ToString();
                            mTODetail.C7 = item["已到货百分比"].ToString();
                            mTODetail.C8 = item["已领料"].ToString();
                            mTODetail.C9 = item["已领料百分比"].ToString();
                            mTODetail.C10 = item["采购量MTO"].ToString();
                            mTODetail.C11 = item["采购量百分比MTO"].ToString();
                            db.CLGL_PipelineMaterialSumList.InsertOnSubmit(mTODetail);
                            db.SubmitChanges();
                        }
                    }
                    var details2 = mscsC.getPipeMaterilalByAera(projectId);
                    if (!string.IsNullOrEmpty(details2))
                    {
                        var q = from x in db.CLGL_PipelineMaterialSumList where x.ProjectId == projectId.ToString() && x.Type == "I" select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PipelineMaterialSumList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details2);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PipelineMaterialSumList mTODetail = new Model.CLGL_PipelineMaterialSumList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.Type = "I";
                            mTODetail.C12 = item["施工单位"].ToString();
                            mTODetail.C13 = item["装置号"].ToString();
                            mTODetail.C14 = item["装置名称"].ToString();
                            mTODetail.C1 = item["材料种类"].ToString();
                            mTODetail.C2 = item["设计量"].ToString();
                            mTODetail.C3 = item["预制量"].ToString();
                            mTODetail.C4 = item["采购量"].ToString();
                            mTODetail.C5 = item["采购量百分比"].ToString();
                            mTODetail.C6 = item["已到货"].ToString();
                            mTODetail.C7 = item["已到货百分比"].ToString();
                            mTODetail.C8 = item["已领料"].ToString();
                            mTODetail.C9 = item["已领料百分比"].ToString();
                            mTODetail.C10 = item["采购量MTO"].ToString();
                            mTODetail.C11 = item["采购量百分比MTO"].ToString();
                            db.CLGL_PipelineMaterialSumList.InsertOnSubmit(mTODetail);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getContractListInfo" + ex.Message);
            }
        }
        public static void getCheckOutDetailListInfo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPojectReport(projectId, "现场出库明细一览表");
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_CheckOutDetailList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_CheckOutDetailList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_CheckOutDetailList mTODetail = new Model.CLGL_CheckOutDetailList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["专业"].ToString();
                            mTODetail.C2 = item["领料单号"].ToString();
                            mTODetail.C3 = item["领料时间"].ToString();
                            mTODetail.C4 = item["出库原因"].ToString();
                            mTODetail.C5 = item["物资类别"].ToString();
                            mTODetail.C6 = item["领料截止时间"].ToString();
                            mTODetail.C7 = item["领料单位"].ToString();
                            mTODetail.C8 = item["领料人"].ToString();
                            mTODetail.C9 = item["发料人"].ToString();
                            mTODetail.C10 = item["审批状态"].ToString();
                            mTODetail.C11 = item["发料方式"].ToString();
                            mTODetail.C12 = item["材料名称"].ToString();
                            mTODetail.C13 = item["材料编码"].ToString();
                            mTODetail.C14 = item["位号"].ToString();
                            mTODetail.C15 = item["规格"].ToString();
                            mTODetail.C16 = item["申领量"].ToString();
                            mTODetail.C17 = item["批准量"].ToString();
                            mTODetail.C18 = item["实发量"].ToString();
                            mTODetail.C19 = item["班组"].ToString();
                            mTODetail.C20 = item["申请人"].ToString();
                            mTODetail.C21 = item["货架编号"].ToString();
                            mTODetail.C22 = item["发料备注"].ToString();
                            mTODetail.C23 = item["装置号"].ToString();
                            mTODetail.C24 = item["管线号"].ToString();
                            mTODetail.C25 = item["单位"].ToString();
                            mTODetail.C26 = item["合同号"].ToString();
                            db.CLGL_CheckOutDetailList.InsertOnSubmit(mTODetail);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getCheckOutDetailListInfo" + ex.Message);
            }
        }
        public static void getArrivalDetailListInfo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPojectReport(projectId, "现场到货明细一览表");
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_ArrivalDetailList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_ArrivalDetailList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_ArrivalDetailList mTODetail = new Model.CLGL_ArrivalDetailList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["供应商名称"].ToString();
                            mTODetail.C2 = item["合同号"].ToString();
                            mTODetail.C3 = item["请购单号"].ToString();
                            mTODetail.C4 = item["箱号"].ToString();
                            mTODetail.C5 = item["材料编码"].ToString();
                            mTODetail.C6 = item["位号"].ToString();
                            mTODetail.C7 = item["材料名称"].ToString();
                            mTODetail.C8 = item["属性2"].ToString();
                            mTODetail.C9 = item["属性3"].ToString();
                            mTODetail.C10 = item["属性4"].ToString();
                            mTODetail.C11 = item["属性5"].ToString();
                            mTODetail.C12 = item["属性6"].ToString();
                            mTODetail.C13 = item["属性7"].ToString();
                            mTODetail.C14 = item["属性8"].ToString();
                            mTODetail.C15 = item["属性9"].ToString();
                            mTODetail.C16 = item["属性10"].ToString();
                            mTODetail.C17 = item["属性11"].ToString();
                            mTODetail.C18 = item["属性12"].ToString();
                            mTODetail.C19 = item["属性13"].ToString();
                            mTODetail.C20 = item["属性14"].ToString();
                            mTODetail.C21 = item["属性15"].ToString();
                            mTODetail.C22 = item["属性16"].ToString();
                            mTODetail.C23 = item["属性17"].ToString();
                            mTODetail.C24 = item["属性18"].ToString();
                            mTODetail.C25 = item["属性19"].ToString();
                            mTODetail.C26 = item["属性20"].ToString();
                            mTODetail.C27 = item["计量单位"].ToString();
                            mTODetail.C28 = item["装置号"].ToString();
                            mTODetail.C29 = item["到货量"].ToString();
                            mTODetail.C30 = item["到货批次号"].ToString();
                            mTODetail.C31 = item["货架编号"].ToString();
                            db.CLGL_ArrivalDetailList.InsertOnSubmit(mTODetail);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getContractListInfo" + ex.Message);
            }
        }
        public static void getPipelineSupplierListInfo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPojectReport(projectId, "管道供货商概要一览表");
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_PipelineSupplierList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PipelineSupplierList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PipelineSupplierList mTODetail = new Model.CLGL_PipelineSupplierList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["供货商"].ToString();
                            mTODetail.C2 = item["合同号"].ToString();
                            mTODetail.C3 = item["合同名称"].ToString();
                            mTODetail.C4 = item["合同交货日期"].ToString();
                            mTODetail.C5 = item["采购量"].ToString();
                            mTODetail.C6 = item["到货量"].ToString();
                            db.CLGL_PipelineSupplierList.InsertOnSubmit(mTODetail);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getPipelineSupplierListInfo" + ex.Message);
            }
        }
        public static void getPipelineMaterialCodeListInfo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPojectReport(projectId, "管道材料编码统计一览表");
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_PipelineMaterialCodeList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PipelineMaterialCodeList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PipelineMaterialCodeList mTODetail = new Model.CLGL_PipelineMaterialCodeList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["材料编码"].ToString();
                            mTODetail.C2 = item["位号"].ToString();
                            mTODetail.C3 = item["材料名称"].ToString();
                            mTODetail.C4 = item["SIZE1"].ToString();
                            mTODetail.C5 = item["SIZE2"].ToString();
                            mTODetail.C6 = item["SCH1"].ToString();
                            mTODetail.C7 = item["SCH2"].ToString();
                            mTODetail.C8 = item["压力等级"].ToString();
                            mTODetail.C9 = item["端面"].ToString();
                            mTODetail.C10 = item["螺栓长度"].ToString();
                            mTODetail.C11 = item["标准"].ToString();
                            mTODetail.C12 = item["材质"].ToString();
                            mTODetail.C13 = item["装置号"].ToString();
                            mTODetail.C14 = item["设计量"].ToString();
                            mTODetail.C15 = item["请购量"].ToString();
                            mTODetail.C16 = item["裕量(采购量-设计量)"].ToString();
                            mTODetail.C17 = item["采购量"].ToString();
                            mTODetail.C18 = item["到货量"].ToString();
                            mTODetail.C19 = item["实发量"].ToString();
                            db.CLGL_PipelineMaterialCodeList.InsertOnSubmit(mTODetail);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getPipelineMaterialCodeListInfo" + ex.Message);
            }
        }
        public static void getPipelineMaterialListInfo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPojectReport(projectId, "管道材料状态一览表");
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_PipelineMaterialList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PipelineMaterialList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PipelineMaterialList mTODetail = new Model.CLGL_PipelineMaterialList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["主项号"].ToString();
                            mTODetail.C2 = item["材料编码"].ToString();
                            mTODetail.C3 = item["材料名称"].ToString();
                            mTODetail.C4 = item["位号"].ToString();
                            mTODetail.C5 = item["管道等级"].ToString();
                            mTODetail.C6 = item["SIZE1"].ToString();
                            mTODetail.C7 = item["SIZE2"].ToString();
                            mTODetail.C8 = item["SCH1"].ToString();
                            mTODetail.C9 = item["SCH2"].ToString();
                            mTODetail.C10 = item["压力等级"].ToString();
                            mTODetail.C11 = item["端面"].ToString();
                            mTODetail.C12 = item["螺栓长度"].ToString();
                            mTODetail.C13 = item["材质"].ToString();
                            mTODetail.C14 = item["标准"].ToString();
                            mTODetail.C15 = item["材料用途"].ToString();
                            mTODetail.C16 = item["设计量"].ToString();
                            mTODetail.C17 = item["采购量"].ToString();
                            mTODetail.C18 = item["计量单位"].ToString();
                            mTODetail.C19 = item["备注"].ToString();
                            mTODetail.C20 = item["原产地"].ToString();
                            mTODetail.C21 = item["采购包编号"].ToString();
                            mTODetail.C22 = item["采购包名称"].ToString();
                            mTODetail.C23 = item["合同号"].ToString();
                            mTODetail.C24 = item["请购单号"].ToString();
                            mTODetail.C25 = item["请购单备注"].ToString();
                            mTODetail.C26 = item["专业名称"].ToString();
                            mTODetail.C27 = item["签订日期"].ToString();
                            mTODetail.C28 = item["合同交货日期"].ToString();
                            mTODetail.C29 = item["供货商"].ToString();
                            mTODetail.C30 = item["施工需求时间"].ToString();
                            mTODetail.C31 = item["到货量"].ToString();
                            mTODetail.C32 = item["可用库存量"].ToString();
                            mTODetail.C33 = item["实发量"].ToString();
                            db.CLGL_PipelineMaterialList.InsertOnSubmit(mTODetail);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getPipelineMaterialListInfo" + ex.Message);
            }
        }
        public static void getContractListSumInfo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPojectReport(projectId, "合同清单汇总表");
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_ContractListSum where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_ContractListSum.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_ContractListSum mTODetail = new Model.CLGL_ContractListSum();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["专业"].ToString();
                            mTODetail.C2 = item["合同号"].ToString();
                            mTODetail.C3 = item["合同名称"].ToString();
                            mTODetail.C4 = item["供货商"].ToString();
                            mTODetail.C5 = item["签订日期"].ToString();
                            mTODetail.C6 = item["交货日期"].ToString();
                            mTODetail.C7 = item["采购总量"].ToString();
                            mTODetail.C8 = item["发货总量"].ToString();
                            mTODetail.C9 = item["到货总量"].ToString();
                            db.CLGL_ContractListSum.InsertOnSubmit(mTODetail);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getContractListSumInfo" + ex.Message);
            }
        }
        public static void getContractListInfo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPojectReport(projectId, "合同清单一览表");
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_ContractList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_ContractList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_ContractList mTODetail = new Model.CLGL_ContractList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["合同号"].ToString();
                            mTODetail.C2 = item["合同名称"].ToString();
                            mTODetail.C3 = item["请购单号"].ToString();
                            mTODetail.C4 = item["专业"].ToString();
                            mTODetail.C5 = item["签订日期"].ToString();
                            mTODetail.C6 = item["合同交货日期"].ToString();
                            mTODetail.C7 = item["供应商"].ToString();
                            mTODetail.C8 = item["材料编码"].ToString();
                            mTODetail.C9 = item["位号"].ToString();
                            mTODetail.C10 = item["材料等级"].ToString();
                            mTODetail.C11 = item["材料名称"].ToString();
                            mTODetail.C12 = item["规格"].ToString();
                            mTODetail.C13 = item["设计量"].ToString();
                            mTODetail.C14 = item["余量"].ToString();
                            mTODetail.C15 = item["请购量"].ToString();
                            mTODetail.C16 = item["采购量"].ToString();
                            mTODetail.C17 = item["发货量"].ToString();
                            mTODetail.C18 = item["到货量"].ToString();
                            mTODetail.C19 = item["备注"].ToString();
                            mTODetail.C20 = item["装置号"].ToString();
                            mTODetail.C21 = item["主项号"].ToString();
                            mTODetail.C22 = item["材料用途"].ToString();
                            mTODetail.C23 = item["计量单位"].ToString();
                            db.CLGL_ContractList.InsertOnSubmit(mTODetail);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getContractListInfo" + ex.Message);
            }
        }
        public static void getPojectInfo()
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPojectInfo();
                    if (!string.IsNullOrEmpty(details))
                    {
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.Base_Project project = db.Base_Project.FirstOrDefault(x => x.ProjectCode == item["项目编码"].ToString());
                            if (project != null)
                            {
                                project.CLProjectCode = Funs.GetNewInt(item["项目ID"].ToString());
                                db.SubmitChanges();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getPojectInfo" + ex.Message);
            }
        }
        public static void getPoDetails(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPoDetails(projectId);
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_ContractQuantitySheet where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_ContractQuantitySheet.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_ContractQuantitySheet contractQuantitySheet = new Model.CLGL_ContractQuantitySheet();
                            contractQuantitySheet.PPGUID = item["PPGUID"].ToString();
                            contractQuantitySheet.ProjectId = projectId.ToString();
                            contractQuantitySheet.MaterialUse = item["材料用途"].ToString();
                            contractQuantitySheet.ContractCode = item["合同号"].ToString();
                            contractQuantitySheet.Major = item["专业"].ToString();
                            contractQuantitySheet.PSGUID = item["PSGUID"].ToString();
                            contractQuantitySheet.RDGUID = item["RDGUID"].ToString();
                            contractQuantitySheet.MaterialCode = item["材料编码"].ToString();
                            contractQuantitySheet.TagNo = item["位号"].ToString();
                            contractQuantitySheet.BuyQuantity = item["采购量"].ToString();
                            contractQuantitySheet.Remark = item["备注"].ToString();
                            contractQuantitySheet.DeviceCode = item["装置号"].ToString();
                            contractQuantitySheet.MainItemCode = item["主项号"].ToString();
                            contractQuantitySheet.UnitName = item["企业中文名称"].ToString();
                            db.CLGL_ContractQuantitySheet.InsertOnSubmit(contractQuantitySheet);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getPoDetails" + ex.Message);
            }
        }
        public static void getIssueDetails(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getIssueDetails(projectId);
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_PickMaterialRecord where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PickMaterialRecord.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PickMaterialRecord pickMaterialRecord = new Model.CLGL_PickMaterialRecord();
                            pickMaterialRecord.IDGUID = item["IDGUID"].ToString();
                            pickMaterialRecord.ProjectId = projectId.ToString();
                            pickMaterialRecord.PickCode = item["领料单号"].ToString();
                            pickMaterialRecord.PickDate = Funs.GetNewDateTime(item["领料时间"].ToString());
                            pickMaterialRecord.PickUnit = item["领料单位"].ToString();
                            pickMaterialRecord.PickLimitDate = Funs.GetNewDateTime(item["领料截止时间"].ToString());
                            pickMaterialRecord.State = item["领料单审批状态代码"].ToString();
                            pickMaterialRecord.ISGUID = item["ISGUID"].ToString();
                            pickMaterialRecord.PLGUID = item["PLGUID"].ToString();
                            pickMaterialRecord.Major = item["专业"].ToString();
                            pickMaterialRecord.PSGUID = item["PSGUID"].ToString();
                            pickMaterialRecord.MaterialCode = item["材料编码"].ToString();
                            pickMaterialRecord.TagNo = item["位号"].ToString();
                            pickMaterialRecord.ClaimQuantity = item["申领量"].ToString();
                            pickMaterialRecord.ApproveQuantity = item["批准量"].ToString();
                            pickMaterialRecord.ActualQuantity = item["实发量"].ToString();
                            pickMaterialRecord.DHGUID = item["DHGUID"].ToString();
                            pickMaterialRecord.Remark = item["发料备注"].ToString();
                            pickMaterialRecord.DeviceCode = item["装置号"].ToString();
                            pickMaterialRecord.MainItemCode = item["主项号"].ToString();
                            db.CLGL_PickMaterialRecord.InsertOnSubmit(pickMaterialRecord);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getIssueDetails" + ex.Message);
            }
        }
        public static void getPartNoInfo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPartNoInfo(projectId);
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_Material where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_Material.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_Material material = new Model.CLGL_Material();
                            material.Id = SQLHelper.GetNewID();
                            material.ProjectId = projectId.ToString();
                            material.MaterialCode = item["材料编码"].ToString();
                            material.TagNo = item["位号"].ToString();
                            material.MaterialName = item["材料名称"].ToString();
                            material.Def = item["规格描述"].ToString();
                            material.Unit = item["计量单位"].ToString();
                            db.CLGL_Material.InsertOnSubmit(material);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getPartNoInfo" + ex.Message);
            }
        }
        public static void getMTODetailInfo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getPojectReport(projectId, "MTO明细信息一览表");
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_Material where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_Material.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_MTODetail mTODetail = new Model.CLGL_MTODetail();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.DeviceNo = item["装置号"].ToString();
                            mTODetail.IsoNo = item["区域管线号"].ToString();
                            mTODetail.IsoClass = item["管线等级"].ToString();
                            mTODetail.MaterialCode = item["材料编码"].ToString();
                            mTODetail.TagNo = item["位号"].ToString();
                            mTODetail.MaterialName = item["材料名称"].ToString();
                            mTODetail.SIZE1 = item["SIZE1"].ToString();
                            mTODetail.SIZE2 = item["SIZE2"].ToString();
                            mTODetail.SCH1 = item["SCH1"].ToString();
                            mTODetail.SCH2 = item["SCH2"].ToString();
                            mTODetail.PressClass = item["压力等级"].ToString();
                            mTODetail.EndFace = item["端面"].ToString();
                            mTODetail.BoltLength = item["螺栓长度"].ToString();
                            mTODetail.Standard = item["标准"].ToString();
                            mTODetail.Material = item["材质"].ToString();
                            mTODetail.PrefabricationStatus = item["预制状态"].ToString();
                            mTODetail.DesignNum = item["设计数量"].ToString();
                            mTODetail.PlanCheckOutNum = item["预出库量"].ToString();
                            mTODetail.CheckOutNum = item["出库量"].ToString();
                            mTODetail.StockNumByDeviceNo = item["库存量(按装置号)"].ToString();
                            mTODetail.StockNumWholePlant = item["库存量(全厂)"].ToString();
                            db.CLGL_MTODetail.InsertOnSubmit(mTODetail);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getMTODetailInfo" + ex.Message);
            }
        }
        public static void getProjectAllData(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getShelvesNo(projectId);
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_GoodsShelves where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_GoodsShelves.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_GoodsShelves goodsShelves = new Model.CLGL_GoodsShelves();
                            goodsShelves.DHGUID = item["DHGUID"].ToString();
                            goodsShelves.ProjectId = projectId.ToString();
                            goodsShelves.GoodsShelvesCode = item["货架编号"].ToString();
                            goodsShelves.Def = item["货架编号描述"].ToString();
                            db.CLGL_GoodsShelves.InsertOnSubmit(goodsShelves);
                        }
                    }
                    var details2 = mscsC.getSubcontractor(projectId);
                    if (!string.IsNullOrEmpty(details2))
                    {
                        var q = from x in db.CLGL_SubUnit where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_SubUnit.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details2);
                        foreach (var item in arr)
                        {
                            Model.CLGL_SubUnit subUnit = new Model.CLGL_SubUnit();
                            subUnit.Id = SQLHelper.GetNewID();
                            subUnit.ProjectId = projectId.ToString();
                            subUnit.SubUnitCode = item["分包商编号"].ToString();
                            subUnit.SubUnitName = item["分包商名称"].ToString();
                            db.CLGL_SubUnit.InsertOnSubmit(subUnit);
                        }
                    }
                    var details3 = mscsC.getPojectReport(projectId, "MTO明细信息一览表");
                    if (!string.IsNullOrEmpty(details3))
                    {
                        var q = from x in db.CLGL_Material where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_Material.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details3);
                        foreach (var item in arr)
                        {
                            Model.CLGL_MTODetail mTODetail = new Model.CLGL_MTODetail();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.DeviceNo = item["装置号"].ToString();
                            mTODetail.IsoNo = item["区域管线号"].ToString();
                            mTODetail.IsoClass = item["管线等级"].ToString();
                            mTODetail.MaterialCode = item["材料编码"].ToString();
                            mTODetail.TagNo = item["位号"].ToString();
                            mTODetail.MaterialName = item["材料名称"].ToString();
                            mTODetail.SIZE1 = item["SIZE1"].ToString();
                            mTODetail.SIZE2 = item["SIZE2"].ToString();
                            mTODetail.SCH1 = item["SCH1"].ToString();
                            mTODetail.SCH2 = item["SCH2"].ToString();
                            mTODetail.PressClass = item["压力等级"].ToString();
                            mTODetail.EndFace = item["端面"].ToString();
                            mTODetail.BoltLength = item["螺栓长度"].ToString();
                            mTODetail.Standard = item["标准"].ToString();
                            mTODetail.Material = item["材质"].ToString();
                            mTODetail.PrefabricationStatus = item["预制状态"].ToString();
                            mTODetail.DesignNum = item["设计数量"].ToString();
                            mTODetail.PlanCheckOutNum = item["预出库量"].ToString();
                            mTODetail.CheckOutNum = item["出库量"].ToString();
                            mTODetail.StockNumByDeviceNo = item["库存量(按装置号)"].ToString();
                            mTODetail.StockNumWholePlant = item["库存量(全厂)"].ToString();
                            db.CLGL_MTODetail.InsertOnSubmit(mTODetail);
                        }
                    }
                    var details4 = mscsC.getPojectReport(projectId, "合同清单一览表");
                    if (!string.IsNullOrEmpty(details4))
                    {
                        var q = from x in db.CLGL_ContractList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_ContractList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details4);
                        foreach (var item in arr)
                        {
                            Model.CLGL_ContractList mTODetail = new Model.CLGL_ContractList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["合同号"].ToString();
                            mTODetail.C2 = item["合同名称"].ToString();
                            mTODetail.C3 = item["请购单号"].ToString();
                            mTODetail.C4 = item["专业"].ToString();
                            mTODetail.C5 = item["签订日期"].ToString();
                            mTODetail.C6 = item["合同交货日期"].ToString();
                            mTODetail.C7 = item["供应商"].ToString();
                            mTODetail.C8 = item["材料编码"].ToString();
                            mTODetail.C9 = item["位号"].ToString();
                            mTODetail.C10 = item["材料等级"].ToString();
                            mTODetail.C11 = item["材料名称"].ToString();
                            mTODetail.C12 = item["规格"].ToString();
                            mTODetail.C13 = item["设计量"].ToString();
                            mTODetail.C14 = item["余量"].ToString();
                            mTODetail.C15 = item["请购量"].ToString();
                            mTODetail.C16 = item["采购量"].ToString();
                            mTODetail.C17 = item["发货量"].ToString();
                            mTODetail.C18 = item["到货量"].ToString();
                            mTODetail.C19 = item["备注"].ToString();
                            mTODetail.C20 = item["装置号"].ToString();
                            mTODetail.C21 = item["主项号"].ToString();
                            mTODetail.C22 = item["材料用途"].ToString();
                            mTODetail.C23 = item["计量单位"].ToString();
                            db.CLGL_ContractList.InsertOnSubmit(mTODetail);
                        }
                    }
                    var details5 = mscsC.getPojectReport(projectId, "合同清单汇总表");
                    if (!string.IsNullOrEmpty(details5))
                    {
                        var q = from x in db.CLGL_ContractListSum where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_ContractListSum.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details5);
                        foreach (var item in arr)
                        {
                            Model.CLGL_ContractListSum mTODetail = new Model.CLGL_ContractListSum();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["专业"].ToString();
                            mTODetail.C2 = item["合同号"].ToString();
                            mTODetail.C3 = item["合同名称"].ToString();
                            mTODetail.C4 = item["供货商"].ToString();
                            mTODetail.C5 = item["签订日期"].ToString();
                            mTODetail.C6 = item["交货日期"].ToString();
                            mTODetail.C7 = item["采购总量"].ToString();
                            mTODetail.C8 = item["发货总量"].ToString();
                            mTODetail.C9 = item["到货总量"].ToString();
                            db.CLGL_ContractListSum.InsertOnSubmit(mTODetail);
                        }
                    }
                    var details6 = mscsC.getPojectReport(projectId, "管道材料状态一览表");
                    if (!string.IsNullOrEmpty(details6))
                    {
                        var q = from x in db.CLGL_PipelineMaterialList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PipelineMaterialList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details6);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PipelineMaterialList mTODetail = new Model.CLGL_PipelineMaterialList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["主项号"].ToString();
                            mTODetail.C2 = item["材料编码"].ToString();
                            mTODetail.C3 = item["材料名称"].ToString();
                            mTODetail.C4 = item["位号"].ToString();
                            mTODetail.C5 = item["管道等级"].ToString();
                            mTODetail.C6 = item["SIZE1"].ToString();
                            mTODetail.C7 = item["SIZE2"].ToString();
                            mTODetail.C8 = item["SCH1"].ToString();
                            mTODetail.C9 = item["SCH2"].ToString();
                            mTODetail.C10 = item["压力等级"].ToString();
                            mTODetail.C11 = item["端面"].ToString();
                            mTODetail.C12 = item["螺栓长度"].ToString();
                            mTODetail.C13 = item["材质"].ToString();
                            mTODetail.C14 = item["标准"].ToString();
                            mTODetail.C15 = item["材料用途"].ToString();
                            mTODetail.C16 = item["设计量"].ToString();
                            mTODetail.C17 = item["采购量"].ToString();
                            mTODetail.C18 = item["计量单位"].ToString();
                            mTODetail.C19 = item["备注"].ToString();
                            mTODetail.C20 = item["原产地"].ToString();
                            mTODetail.C21 = item["采购包编号"].ToString();
                            mTODetail.C22 = item["采购包名称"].ToString();
                            mTODetail.C23 = item["合同号"].ToString();
                            mTODetail.C24 = item["请购单号"].ToString();
                            mTODetail.C25 = item["请购单备注"].ToString();
                            mTODetail.C26 = item["专业名称"].ToString();
                            mTODetail.C27 = item["签订日期"].ToString();
                            mTODetail.C28 = item["合同交货日期"].ToString();
                            mTODetail.C29 = item["供货商"].ToString();
                            mTODetail.C30 = item["施工需求时间"].ToString();
                            mTODetail.C31 = item["到货量"].ToString();
                            mTODetail.C32 = item["可用库存量"].ToString();
                            mTODetail.C33 = item["实发量"].ToString();
                            db.CLGL_PipelineMaterialList.InsertOnSubmit(mTODetail);
                        }
                    }
                    var details7 = mscsC.getPojectReport(projectId, "管道材料编码统计一览表");
                    if (!string.IsNullOrEmpty(details7))
                    {
                        var q = from x in db.CLGL_PipelineMaterialCodeList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PipelineMaterialCodeList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details7);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PipelineMaterialCodeList mTODetail = new Model.CLGL_PipelineMaterialCodeList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["材料编码"].ToString();
                            mTODetail.C2 = item["位号"].ToString();
                            mTODetail.C3 = item["材料名称"].ToString();
                            mTODetail.C4 = item["SIZE1"].ToString();
                            mTODetail.C5 = item["SIZE2"].ToString();
                            mTODetail.C6 = item["SCH1"].ToString();
                            mTODetail.C7 = item["SCH2"].ToString();
                            mTODetail.C8 = item["压力等级"].ToString();
                            mTODetail.C9 = item["端面"].ToString();
                            mTODetail.C10 = item["螺栓长度"].ToString();
                            mTODetail.C11 = item["标准"].ToString();
                            mTODetail.C12 = item["材质"].ToString();
                            mTODetail.C13 = item["装置号"].ToString();
                            mTODetail.C14 = item["设计量"].ToString();
                            mTODetail.C15 = item["请购量"].ToString();
                            mTODetail.C16 = item["裕量(采购量-设计量)"].ToString();
                            mTODetail.C17 = item["采购量"].ToString();
                            mTODetail.C18 = item["到货量"].ToString();
                            mTODetail.C19 = item["实发量"].ToString();
                            db.CLGL_PipelineMaterialCodeList.InsertOnSubmit(mTODetail);
                        }
                    }
                    var details8 = mscsC.getPojectReport(projectId, "管道供货商概要一览表");
                    if (!string.IsNullOrEmpty(details8))
                    {
                        var q = from x in db.CLGL_PipelineSupplierList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PipelineSupplierList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details8);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PipelineSupplierList mTODetail = new Model.CLGL_PipelineSupplierList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["供货商"].ToString();
                            mTODetail.C2 = item["合同号"].ToString();
                            mTODetail.C3 = item["合同名称"].ToString();
                            mTODetail.C4 = item["合同交货日期"].ToString();
                            mTODetail.C5 = item["采购量"].ToString();
                            mTODetail.C6 = item["到货量"].ToString();
                            db.CLGL_PipelineSupplierList.InsertOnSubmit(mTODetail);
                        }
                    }
                    var details9 = mscsC.getPojectReport(projectId, "现场到货明细一览表");
                    if (!string.IsNullOrEmpty(details9))
                    {
                        var q = from x in db.CLGL_ArrivalDetailList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_ArrivalDetailList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details9);
                        foreach (var item in arr)
                        {
                            Model.CLGL_ArrivalDetailList mTODetail = new Model.CLGL_ArrivalDetailList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["供应商名称"].ToString();
                            mTODetail.C2 = item["合同号"].ToString();
                            mTODetail.C3 = item["请购单号"].ToString();
                            mTODetail.C4 = item["箱号"].ToString();
                            mTODetail.C5 = item["材料编码"].ToString();
                            mTODetail.C6 = item["位号"].ToString();
                            mTODetail.C7 = item["材料名称"].ToString();
                            mTODetail.C8 = item["属性2"].ToString();
                            mTODetail.C9 = item["属性3"].ToString();
                            mTODetail.C10 = item["属性4"].ToString();
                            mTODetail.C11 = item["属性5"].ToString();
                            mTODetail.C12 = item["属性6"].ToString();
                            mTODetail.C13 = item["属性7"].ToString();
                            mTODetail.C14 = item["属性8"].ToString();
                            mTODetail.C15 = item["属性9"].ToString();
                            mTODetail.C16 = item["属性10"].ToString();
                            mTODetail.C17 = item["属性11"].ToString();
                            mTODetail.C18 = item["属性12"].ToString();
                            mTODetail.C19 = item["属性13"].ToString();
                            mTODetail.C20 = item["属性14"].ToString();
                            mTODetail.C21 = item["属性15"].ToString();
                            mTODetail.C22 = item["属性16"].ToString();
                            mTODetail.C23 = item["属性17"].ToString();
                            mTODetail.C24 = item["属性18"].ToString();
                            mTODetail.C25 = item["属性19"].ToString();
                            mTODetail.C26 = item["属性20"].ToString();
                            mTODetail.C27 = item["计量单位"].ToString();
                            mTODetail.C28 = item["装置号"].ToString();
                            mTODetail.C29 = item["到货量"].ToString();
                            mTODetail.C30 = item["到货批次号"].ToString();
                            mTODetail.C31 = item["货架编号"].ToString();
                            db.CLGL_ArrivalDetailList.InsertOnSubmit(mTODetail);
                        }
                    }
                    var details10 = mscsC.getPojectReport(projectId, "现场出库明细一览表");
                    if (!string.IsNullOrEmpty(details10))
                    {
                        var q = from x in db.CLGL_CheckOutDetailList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_CheckOutDetailList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details10);
                        foreach (var item in arr)
                        {
                            Model.CLGL_CheckOutDetailList mTODetail = new Model.CLGL_CheckOutDetailList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["专业"].ToString();
                            mTODetail.C2 = item["领料单号"].ToString();
                            mTODetail.C3 = item["领料时间"].ToString();
                            mTODetail.C4 = item["出库原因"].ToString();
                            mTODetail.C5 = item["物资类别"].ToString();
                            mTODetail.C6 = item["领料截止时间"].ToString();
                            mTODetail.C7 = item["领料单位"].ToString();
                            mTODetail.C8 = item["领料人"].ToString();
                            mTODetail.C9 = item["发料人"].ToString();
                            mTODetail.C10 = item["审批状态"].ToString();
                            mTODetail.C11 = item["发料方式"].ToString();
                            mTODetail.C12 = item["材料名称"].ToString();
                            mTODetail.C13 = item["材料编码"].ToString();
                            mTODetail.C14 = item["位号"].ToString();
                            mTODetail.C15 = item["规格"].ToString();
                            mTODetail.C16 = item["申领量"].ToString();
                            mTODetail.C17 = item["批准量"].ToString();
                            mTODetail.C18 = item["实发量"].ToString();
                            mTODetail.C19 = item["班组"].ToString();
                            mTODetail.C20 = item["申请人"].ToString();
                            mTODetail.C21 = item["货架编号"].ToString();
                            mTODetail.C22 = item["发料备注"].ToString();
                            mTODetail.C23 = item["装置号"].ToString();
                            mTODetail.C24 = item["管线号"].ToString();
                            mTODetail.C25 = item["单位"].ToString();
                            mTODetail.C26 = item["合同号"].ToString();
                            db.CLGL_CheckOutDetailList.InsertOnSubmit(mTODetail);
                        }
                    }
                    var details11 = mscsC.getPipeMaterilalByType(projectId);
                    if (!string.IsNullOrEmpty(details11))
                    {
                        var q = from x in db.CLGL_PipelineMaterialSumList where x.ProjectId == projectId.ToString() && x.Type == "M" select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PipelineMaterialSumList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details11);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PipelineMaterialSumList mTODetail = new Model.CLGL_PipelineMaterialSumList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.Type = "M";
                            mTODetail.C1 = item["材料类别"].ToString();
                            mTODetail.C2 = item["设计量"].ToString();
                            mTODetail.C3 = item["预制量"].ToString();
                            mTODetail.C4 = item["采购量"].ToString();
                            mTODetail.C5 = item["采购量百分比"].ToString();
                            mTODetail.C6 = item["已到货"].ToString();
                            mTODetail.C7 = item["已到货百分比"].ToString();
                            mTODetail.C8 = item["已领料"].ToString();
                            mTODetail.C9 = item["已领料百分比"].ToString();
                            mTODetail.C10 = item["采购量MTO"].ToString();
                            mTODetail.C11 = item["采购量百分比MTO"].ToString();
                            db.CLGL_PipelineMaterialSumList.InsertOnSubmit(mTODetail);
                        }
                    }
                    var details12 = mscsC.getPipeMaterilalByAera(projectId);
                    if (!string.IsNullOrEmpty(details12))
                    {
                        var q = from x in db.CLGL_PipelineMaterialSumList where x.ProjectId == projectId.ToString() && x.Type == "I" select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PipelineMaterialSumList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details12);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PipelineMaterialSumList mTODetail = new Model.CLGL_PipelineMaterialSumList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.Type = "I";
                            mTODetail.C12 = item["施工单位"].ToString();
                            mTODetail.C13 = item["装置号"].ToString();
                            mTODetail.C14 = item["装置名称"].ToString();
                            mTODetail.C1 = item["材料种类"].ToString();
                            mTODetail.C2 = item["设计量"].ToString();
                            mTODetail.C3 = item["预制量"].ToString();
                            mTODetail.C4 = item["采购量"].ToString();
                            mTODetail.C5 = item["采购量百分比"].ToString();
                            mTODetail.C6 = item["已到货"].ToString();
                            mTODetail.C7 = item["已到货百分比"].ToString();
                            mTODetail.C8 = item["已领料"].ToString();
                            mTODetail.C9 = item["已领料百分比"].ToString();
                            mTODetail.C10 = item["采购量MTO"].ToString();
                            mTODetail.C11 = item["采购量百分比MTO"].ToString();
                            db.CLGL_PipelineMaterialSumList.InsertOnSubmit(mTODetail);
                        }
                    }
                    var details13 = mscsC.getPojectReport(projectId, "现场请购明细一览表");
                    if (!string.IsNullOrEmpty(details13))
                    {
                        var q = from x in db.CLGL_RequestDetailList where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_RequestDetailList.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details13);
                        foreach (var item in arr)
                        {
                            Model.CLGL_RequestDetailList mTODetail = new Model.CLGL_RequestDetailList();
                            mTODetail.Id = SQLHelper.GetNewID();
                            mTODetail.ProjectId = projectId.ToString();
                            mTODetail.C1 = item["请购单号"].ToString();
                            mTODetail.C2 = item["请购单名称"].ToString();
                            mTODetail.C3 = item["专业名称"].ToString();
                            mTODetail.C4 = item["材料编码"].ToString();
                            mTODetail.C5 = item["位号"].ToString();
                            mTODetail.C6 = item["属性1"].ToString();
                            mTODetail.C7 = item["属性2"].ToString();
                            mTODetail.C8 = item["属性3"].ToString();
                            mTODetail.C9 = item["属性4"].ToString();
                            mTODetail.C10 = item["属性5"].ToString();
                            mTODetail.C11 = item["属性6"].ToString();
                            mTODetail.C12 = item["属性7"].ToString();
                            mTODetail.C13 = item["属性8"].ToString();
                            mTODetail.C14 = item["属性9"].ToString();
                            mTODetail.C15 = item["属性10"].ToString();
                            mTODetail.C16 = item["属性11"].ToString();
                            mTODetail.C17 = item["属性12"].ToString();
                            mTODetail.C18 = item["属性13"].ToString();
                            mTODetail.C19 = item["属性14"].ToString();
                            mTODetail.C20 = item["属性15"].ToString();
                            mTODetail.C21 = item["属性16"].ToString();
                            mTODetail.C22 = item["属性17"].ToString();
                            mTODetail.C23 = item["属性18"].ToString();
                            mTODetail.C24 = item["属性19"].ToString();
                            mTODetail.C25 = item["属性20"].ToString();
                            mTODetail.C26 = item["主项号"].ToString();
                            mTODetail.C27 = item["装置号"].ToString();
                            mTODetail.C28 = item["设计量"].ToString();
                            mTODetail.C29 = item["请购量"].ToString();
                            mTODetail.C30 = item["请购说明"].ToString();
                            mTODetail.C31 = item["材料用途"].ToString();
                            db.CLGL_RequestDetailList.InsertOnSubmit(mTODetail);
                        }
                    }
                    db.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getPartNoInfo" + ex.Message);
            }
        }
        public static void getShelvesNo(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getShelvesNo(projectId);
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_GoodsShelves where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_GoodsShelves.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_GoodsShelves goodsShelves = new Model.CLGL_GoodsShelves();
                            goodsShelves.DHGUID = item["DHGUID"].ToString();
                            goodsShelves.ProjectId = projectId.ToString();
                            goodsShelves.GoodsShelvesCode = item["货架编号"].ToString();
                            goodsShelves.Def = item["货架编号描述"].ToString();
                            db.CLGL_GoodsShelves.InsertOnSubmit(goodsShelves);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getPartNoInfo" + ex.Message);
            }
        }
        public static void getSubcontractor(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getSubcontractor(projectId);
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_SubUnit where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_SubUnit.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_SubUnit subUnit = new Model.CLGL_SubUnit();
                            subUnit.Id = SQLHelper.GetNewID();
                            subUnit.ProjectId = projectId.ToString();
                            subUnit.SubUnitCode = item["分包商编号"].ToString();
                            subUnit.SubUnitName = item["分包商名称"].ToString();
                            db.CLGL_SubUnit.InsertOnSubmit(subUnit);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getSubcontractor" + ex.Message);
            }
        }
        public static void getVendor()
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getVendor();
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_Supplier select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_Supplier.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_Supplier supplier = new Model.CLGL_Supplier();
                            supplier.Id = SQLHelper.GetNewID();
                            supplier.SupplierName = item["企业中文名称"].ToString();
                            supplier.SupplierCode = item["厂商企标ID"].ToString();
                            db.CLGL_Supplier.InsertOnSubmit(supplier);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getVendor" + ex.Message);
            }
        }
        public static void getReqDetails(long projectId)
        {
            try
            {
                using (var db = new Model.SGGLDB(Funs.ConnString))
                {
                    MCSService.WebService1SoapClient mscsC = new MCSService.WebService1SoapClient();
                    var details = mscsC.getReqDetails(projectId);
                    if (!string.IsNullOrEmpty(details))
                    {
                        var q = from x in db.CLGL_PurchaseRequisition where x.ProjectId == projectId.ToString() select x;
                        if (q.Count() > 0)
                        {
                            db.CLGL_PurchaseRequisition.DeleteAllOnSubmit(q);
                            db.SubmitChanges();
                        }
                        JArray arr = JArray.Parse(details);
                        foreach (var item in arr)
                        {
                            Model.CLGL_PurchaseRequisition purchaseRequisition = new Model.CLGL_PurchaseRequisition();
                            purchaseRequisition.Id = SQLHelper.GetNewID();
                            purchaseRequisition.RSGUID = item["RSGUID"].ToString();
                            purchaseRequisition.ProjectId = projectId.ToString();
                            purchaseRequisition.PurchaseRequisitionCode = item["请购单号"].ToString();
                            purchaseRequisition.PurchaseRequisitionName = item["请购单名称"].ToString();
                            purchaseRequisition.SiteRequisition = item["现场请购"].ToString();
                            purchaseRequisition.Major = item["专业名称"].ToString();
                            purchaseRequisition.RDGUID = item["RDGUID"].ToString();
                            purchaseRequisition.MaterialClass = item["材料等级"].ToString();
                            purchaseRequisition.MaterialCode = item["材料编码"].ToString();
                            purchaseRequisition.TagNo = item["位号"].ToString();
                            purchaseRequisition.DesignQuantity = item["设计量"].ToString();
                            purchaseRequisition.SurplusQuantity = item["余量"].ToString();
                            purchaseRequisition.RequisitionQuantity = item["请购量"].ToString();
                            purchaseRequisition.Def = item["请购说明"].ToString();
                            purchaseRequisition.DeviceCode = item["装置号"].ToString();
                            purchaseRequisition.MainItemCode = item["主项号"].ToString();
                            purchaseRequisition.MaterialUse = item["材料用途"].ToString();
                            purchaseRequisition.Remark = item["采购说明"].ToString();
                            db.CLGL_PurchaseRequisition.InsertOnSubmit(purchaseRequisition);
                            db.SubmitChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrLogInfo.WriteLog(ex, "材料管理接口定时器", "MCSWebService.getVendor" + ex.Message);
            }
        }
    }
}