|
|
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Quartz;
namespace ICSSoft.FromERP { /// <summary>
/// 委外领料单
/// </summary>
public class ICSPMIssueDoc : 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 Namespace = this.GetType().Namespace; string Class = this.GetType().Name; #region SQL
string sql = @"SELECT A1.DocNo AS VouchCode,
CAST(A2.LineNum AS NVARCHAR(50)) AS VouchRow, A4.Code AS SubInvCode, A2.IssueQty AS Quantity, A2.IssueQty AS DemandQuantity, CASE WHEN A1.IssueDirection=0 THEN '领料' ELSE '退料' END AS MoveType, A6.Code AS WHCode, A8.Code AS ComUnitCode, CAST(A2.ID AS NVARCHAR(50)) AS Did, A1.BusinessDate AS VoucherDate, CAST(A1.DocState AS NVARCHAR(50)) AS Status, A1.BusinessDate AS MTIME, A12.DocNo AS POCode, A13.Code AS InvCode, A15.Code AS ORDERNO, A1.ID AS EATTRIBUTE, CAST(A10.DocLineNo AS NVARCHAR(50)) AS PORow, A16.Code AS WorkPoint,A18.Code,A2.LotNo AS cBatch into #TempPick FROM {0}.dbo.MaterialAppVouchs a INNER JOIN {0}.dbo.MaterialAppVouch b ON a.ID = b.ID INNER JOIN {0}.dbo.OM_MODetails b ON a.MoDetailsID = b.MoDetailsID LEFT JOIN {0}.dbo.OM_MOMain c ON b.MOID = c.MOID LEFT JOIN {0}.dbo.Inventory e ON a.cInvCode = e.cInvCode WHERE ISNULL(b.cHandler,'')<> '' AND ISNULL(b.dnverifytime,ISNULL(b.dnmodifytime, b.dnmaketime))>=@LastTime
IF NOT EXISTS(SELECT * FROM #TempPick) RETURN";
sql = ICSHelper.Time(Namespace, Class, ConstWorkPoint.WorkPoint, sql, "#TempPick");
sql += @"--删除数据
DELETE ICSOutSourePick WHERE Did NOT IN (SELECT ID FROM {0}.dbo.[PM_IssueDocLine]) AND LEN(Did)>0 ";
Dictionary<string, string> values = new Dictionary<string, string>(); values.Add("VouchCode", "a.VouchCode"); values.Add("VouchRow", "a.VouchRow"); values.Add("POCode", "a.POCode"); values.Add("InvCode", "a.InvCode"); values.Add("SubInvCode", "a.SubInvCode"); values.Add("Quantity", "a.Quantity"); values.Add("DemandQuantity", "a.DemandQuantity"); values.Add("WHCode", "a.WHCode"); values.Add("ComUnitCode", "a.ComUnitCode"); values.Add("Status", "a.Status"); values.Add("VoucherDate", "a.VoucherDate"); values.Add("MTIME", "a.MTIME"); values.Add("EATTRIBUTE", "a.EATTRIBUTE"); values.Add("PORow", "a.PORow"); values.Add("WorkPoint", "a.WorkPoint"); values.Add("MUSER", "'" + ConstWorkPoint.Muser + "'"); values.Add("MUSERName", "'" + ConstWorkPoint.Musername + "'"); values.Add("cBatch", "a.cBatch"); values.Add("MoveType", "a.MoveType"); values.Add("ORDERNO", "a.ORDERNO"); //values.Add("VoucherNO", "a.VoucherNO");
//values.Add("Reservation", "a.Reservation");
//values.Add("ReservationRow", "a.ReservationRow");
//更新存在数据
sql += ICSHelper.UpdateSQL("b", values) + @" #TempPick a
INNER JOIN ICSOutSourePick b ON a.Did=b.Did ";
values.Add("ID", "NEWID()"); values.Add("HasQuantity", "'0'"); values.Add("Sign", "'1'"); values.Add("Did", "a.Did"); //values.Add("WorkPoint", "'" + ConstWorkPoint.WorkPoint + "'");
//插入新增数据
sql += ICSHelper.InsertSQL("ICSOutSourePick", values) + @" #TempPick a
LEFT JOIN ICSOutSourePick b ON a.Did=b.Did WHERE b.ID IS NULL ";
sql += "DROP TABLE #TempPick"; sql = string.Format(sql, ICSHelper.GetConfigString()["ERPDB"]); ICSHelper.ExecuteDate(conStr, sql); #endregion
} catch (Exception ex) { log.Error(ex.ToString()); } } } }
|