421 lines
20 KiB
C#
421 lines
20 KiB
C#
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分钟
|
|
/// <summary>
|
|
/// 监视组件
|
|
/// </summary>
|
|
private static Timer messageTimer;
|
|
|
|
/// <summary>
|
|
/// 启动监视器,不一定能成功,根据系统设置决定对监视器执行的操作 系统启动5分钟
|
|
/// </summary>
|
|
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 * 24;// 60分钟 60000 * adTimeJ;
|
|
messageTimer.Start();
|
|
}
|
|
#endregion
|
|
|
|
public static void GetCLData(object sender, ElapsedEventArgs e)
|
|
{
|
|
getPojectInfo();
|
|
getVendor();
|
|
var projects = from x in Funs.DB.Base_Project where x.CLProjectCode != null select x;
|
|
foreach (var project in projects)
|
|
{
|
|
getPoDetails(project.CLProjectCode ?? 0);
|
|
getIssueDetails(project.CLProjectCode ?? 0);
|
|
getPartNoInfo(project.CLProjectCode ?? 0);
|
|
getShelvesNo(project.CLProjectCode ?? 0);
|
|
getSubcontractor(project.CLProjectCode ?? 0);
|
|
getReqDetails(project.CLProjectCode ?? 0);
|
|
}
|
|
}
|
|
|
|
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_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.getMTODetailInfo" + 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);
|
|
}
|
|
}
|
|
}
|
|
}
|