纽威
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

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());
}
}
}
}