You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
7.0 KiB
148 lines
7.0 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Quartz;
|
|
|
|
using System.Data;
|
|
using ICSSoft.Frame.Data.Entity;
|
|
using ICSSoft.Base.Config.AppConfig;
|
|
|
|
namespace ICSSoft.FromERP
|
|
{
|
|
/// <summary>
|
|
/// 物料
|
|
/// </summary>
|
|
public class ICSInventory : IJob
|
|
{
|
|
private static object key = new object();
|
|
private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
public void Execute(IJobExecutionContext context)
|
|
{
|
|
try
|
|
{
|
|
lock (key)
|
|
{
|
|
log.Info("开始……………………………………………………………………");
|
|
Execute();
|
|
log.Info("结束……………………………………………………………………");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
log.Error(ex.ToString());
|
|
}
|
|
}
|
|
|
|
public void Execute()
|
|
{
|
|
try
|
|
{
|
|
string conStr = ICSHelper.GetConnectString();
|
|
string WHCode = ICSHelper.GetConfigString()["WHCode"];
|
|
string Date = ICSHelper.GetConfigString()["Date"];
|
|
DataTable dt = ICSHelper.GetERPDB(conStr);
|
|
using (FramDataContext db = new FramDataContext(conStr))
|
|
{
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
SAPGetINV.ZWMS_SK_MARA client = new SAPGetINV.ZWMS_SK_MARA();
|
|
SAPGetINV.ZWMS_SK_MARA1 Info = new SAPGetINV.ZWMS_SK_MARA1();
|
|
Info.WERKS = dr["WorkPointCode"].ToString();
|
|
Info.LGORT = WHCode;
|
|
Info.CHG_DATE = "";
|
|
Info.T_MARA = new SAPGetINV.ZWMS_MARA[1];
|
|
|
|
SAPGetINV.ZWMS_SK_MARAResponse result = new SAPGetINV.ZWMS_SK_MARAResponse();
|
|
result = client.CallZWMS_SK_MARA(Info);
|
|
foreach (SAPGetINV.ZWMS_MARA item in result.T_MARA)
|
|
{
|
|
var line = db.ICSInventory.SingleOrDefault(a => a.InvCode == item.MATNR && a.WorkPoint == item.WERKS);
|
|
bool isNew = false;
|
|
if (line == null)
|
|
{
|
|
isNew = true;
|
|
line = new Frame.Data.Entity.ICSInventory();
|
|
line.ID = AppConfig.GetGuid();
|
|
line.MUSER = "JOB";
|
|
line.MUSERName = "JOB";
|
|
line.WorkPoint = item.WERKS;
|
|
}
|
|
line.InvCode = item.MATNR;//物料编号
|
|
line.InvName = item.MAKTX;//物料名称
|
|
line.InvDesc = item.DESCR;//辅助物料描述
|
|
line.InvStd = "";
|
|
line.InvUnit = item.MEINS;//基本单位
|
|
line.ClassCode = item.MATKL;//物料组
|
|
line.ClassName = item.EXTWG;//外部物料组
|
|
line.InvRate = item.NTGEW;//净重
|
|
//line.InvVersion = item.LGORT;//库存地点
|
|
line.InvBrand = item.MTART;//物料类型
|
|
//line.EATTRIBUTE1 = item.LTKZA;//区域
|
|
line.MTIME = DateTime.Now;
|
|
if (isNew == true)
|
|
{
|
|
db.ICSInventory.InsertOnSubmit(line);
|
|
}
|
|
db.SubmitChanges();
|
|
|
|
var linedetail = db.ICSInventoryDetail.SingleOrDefault(a => a.INVCode == item.MATNR && a.WHCode == item.LGORT && a.LocationCode == item.LTKZA && a.WorkPoint == item.WERKS);
|
|
isNew = false;
|
|
if (linedetail == null)
|
|
{
|
|
isNew = true;
|
|
linedetail = new ICSInventoryDetail();
|
|
linedetail.ID = AppConfig.GetGuid();
|
|
linedetail.MUSER = "JOB";
|
|
linedetail.MUSERNAME = "JOB";
|
|
linedetail.WorkPoint = item.WERKS;
|
|
}
|
|
linedetail.INVCode = item.MATNR;//物料编号
|
|
linedetail.WHCode = item.LGORT;//库存地点
|
|
linedetail.LocationCode = item.LTKZA;//区域
|
|
linedetail.MTIME = DateTime.Now;
|
|
if (isNew == true)
|
|
{
|
|
db.ICSInventoryDetail.InsertOnSubmit(linedetail);
|
|
}
|
|
db.SubmitChanges();
|
|
}
|
|
}
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
log.Error(ex.ToString());
|
|
}
|
|
}
|
|
//values.Add("INVCODE", "a.INVCODE");//物料编号
|
|
//values.Add("InvName", "a.INVNAME");//物料名称
|
|
//values.Add("INVDESC", "a.INVDESC");//物料描述
|
|
//values.Add("InvStd", "a.INVSTD");//规格型号
|
|
//values.Add("InvUnit", "a.InvUnit");//主计量单位
|
|
//values.Add("ClassCode", "a.ClassCode");//大类编码
|
|
//values.Add("ClassName", "a.ClassName");//大类编码
|
|
//values.Add("InvRate", "a.InvRate");
|
|
//values.Add("InvVersion", "''");
|
|
//values.Add("InvBrand", "''");
|
|
//values.Add("InvIQC", "0");//大类编码
|
|
//values.Add("InvFQC", "0");//大类编码
|
|
//values.Add("EffectiveEnable", "0");//大类名称
|
|
//values.Add("EffectiveDays", "a.EffectiveDays");//大类名称
|
|
//values.Add("BatchEnable", "0");//大类名称
|
|
//values.Add("LotEnable", "0");//大类名称
|
|
//values.Add("PrintEnable", "0");//大类名称
|
|
//values.Add("MTIME", "a.MTIME");//操作时间
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
log.Error(ex.ToString());
|
|
}
|
|
}
|
|
}
|
|
}
|