From f769532cda8f1f69e8b50dbb40038ec7e9e99f8a Mon Sep 17 00:00:00 2001 From: lilili Date: Thu, 27 Apr 2023 11:53:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=8D=95=E6=8D=AE=E7=9A=84?= =?UTF-8?q?=E4=B8=89=E5=B1=82=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ICSSoft.Frame.Data.Entity/Fram.dbml | 7 + .../Fram.designer.cs | 168 + .../ICSSoft.FromERP/ICSSAPDocGet.cs | 2758 ++++++++++++----- WMS-BS/NFine.Web/Configs/database.config | 4 +- 4 files changed, 2149 insertions(+), 788 deletions(-) diff --git a/ICSSoft.FromERP/ICSSoft.Frame.Data.Entity/Fram.dbml b/ICSSoft.FromERP/ICSSoft.Frame.Data.Entity/Fram.dbml index 9b8636a..6334ca2 100644 --- a/ICSSoft.FromERP/ICSSoft.Frame.Data.Entity/Fram.dbml +++ b/ICSSoft.FromERP/ICSSoft.Frame.Data.Entity/Fram.dbml @@ -102,6 +102,7 @@ + @@ -137,6 +138,7 @@ +
@@ -179,6 +181,7 @@ +
@@ -207,6 +210,7 @@ +
@@ -243,6 +247,7 @@ +
@@ -432,6 +437,7 @@ +
@@ -466,6 +472,7 @@ +
diff --git a/ICSSoft.FromERP/ICSSoft.Frame.Data.Entity/Fram.designer.cs b/ICSSoft.FromERP/ICSSoft.Frame.Data.Entity/Fram.designer.cs index 35dc411..427bc1d 100644 --- a/ICSSoft.FromERP/ICSSoft.Frame.Data.Entity/Fram.designer.cs +++ b/ICSSoft.FromERP/ICSSoft.Frame.Data.Entity/Fram.designer.cs @@ -1638,6 +1638,8 @@ namespace ICSSoft.Frame.Data.Entity private string _IsSerialNumber; + private string _SAPSequence; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -1726,6 +1728,8 @@ namespace ICSSoft.Frame.Data.Entity partial void OnStockIndicatorChanged(); partial void OnIsSerialNumberChanging(string value); partial void OnIsSerialNumberChanged(); + partial void OnSAPSequenceChanging(string value); + partial void OnSAPSequenceChanged(); #endregion public ICSMOApply() @@ -2573,6 +2577,26 @@ namespace ICSSoft.Frame.Data.Entity } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SAPSequence", DbType="VarChar(50)")] + public string SAPSequence + { + get + { + return this._SAPSequence; + } + set + { + if ((this._SAPSequence != value)) + { + this.OnSAPSequenceChanging(value); + this.SendPropertyChanging(); + this._SAPSequence = value; + this.SendPropertyChanged("SAPSequence"); + this.OnSAPSequenceChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; @@ -2956,6 +2980,8 @@ namespace ICSSoft.Frame.Data.Entity private string _EATTRIBUTE; + private string _SAPSequence; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -2990,6 +3016,8 @@ namespace ICSSoft.Frame.Data.Entity partial void OnWorkPointChanged(); partial void OnEATTRIBUTEChanging(string value); partial void OnEATTRIBUTEChanged(); + partial void OnSAPSequenceChanging(string value); + partial void OnSAPSequenceChanged(); #endregion public ICSMOApplyNegDetail() @@ -3297,6 +3325,26 @@ namespace ICSSoft.Frame.Data.Entity } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SAPSequence", DbType="VarChar(50)")] + public string SAPSequence + { + get + { + return this._SAPSequence; + } + set + { + if ((this._SAPSequence != value)) + { + this.OnSAPSequenceChanging(value); + this.SendPropertyChanging(); + this._SAPSequence = value; + this.SendPropertyChanged("SAPSequence"); + this.OnSAPSequenceChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; @@ -3400,6 +3448,8 @@ namespace ICSSoft.Frame.Data.Entity private string _IsSerialNumber; + private string _SAPSequence; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -3480,6 +3530,8 @@ namespace ICSSoft.Frame.Data.Entity partial void OnRemark2Changed(); partial void OnIsSerialNumberChanging(string value); partial void OnIsSerialNumberChanged(); + partial void OnSAPSequenceChanging(string value); + partial void OnSAPSequenceChanged(); #endregion public ICSTransfer() @@ -4247,6 +4299,26 @@ namespace ICSSoft.Frame.Data.Entity } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SAPSequence", DbType="VarChar(50)")] + public string SAPSequence + { + get + { + return this._SAPSequence; + } + set + { + if ((this._SAPSequence != value)) + { + this.OnSAPSequenceChanging(value); + this.SendPropertyChanging(); + this._SAPSequence = value; + this.SendPropertyChanged("SAPSequence"); + this.OnSAPSequenceChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; @@ -4322,6 +4394,8 @@ namespace ICSSoft.Frame.Data.Entity private string _EATTRIBUTE1; + private string _SAPSequence; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -4374,6 +4448,8 @@ namespace ICSSoft.Frame.Data.Entity partial void OnWorkPointChanged(); partial void OnEATTRIBUTE1Changing(string value); partial void OnEATTRIBUTE1Changed(); + partial void OnSAPSequenceChanging(string value); + partial void OnSAPSequenceChanged(); #endregion public ICSMTDOC() @@ -4861,6 +4937,26 @@ namespace ICSSoft.Frame.Data.Entity } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SAPSequence", DbType="VarChar(50)")] + public string SAPSequence + { + get + { + return this._SAPSequence; + } + set + { + if ((this._SAPSequence != value)) + { + this.OnSAPSequenceChanging(value); + this.SendPropertyChanging(); + this._SAPSequence = value; + this.SendPropertyChanged("SAPSequence"); + this.OnSAPSequenceChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; @@ -4952,6 +5048,8 @@ namespace ICSSoft.Frame.Data.Entity private string _IsSerialNumber; + private string _SAPSequence; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -5020,6 +5118,8 @@ namespace ICSSoft.Frame.Data.Entity partial void OnRemarksTermChanged(); partial void OnIsSerialNumberChanging(string value); partial void OnIsSerialNumberChanged(); + partial void OnSAPSequenceChanging(string value); + partial void OnSAPSequenceChanged(); #endregion public ICSManufactureReceive() @@ -5667,6 +5767,26 @@ namespace ICSSoft.Frame.Data.Entity } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SAPSequence", DbType="VarChar(50)")] + public string SAPSequence + { + get + { + return this._SAPSequence; + } + set + { + if ((this._SAPSequence != value)) + { + this.OnSAPSequenceChanging(value); + this.SendPropertyChanging(); + this._SAPSequence = value; + this.SendPropertyChanged("SAPSequence"); + this.OnSAPSequenceChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; @@ -9068,6 +9188,8 @@ namespace ICSSoft.Frame.Data.Entity private string _IsSerialNumber; + private string _SAPSequence; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -9132,6 +9254,8 @@ namespace ICSSoft.Frame.Data.Entity partial void OnStockIndicatorChanged(); partial void OnIsSerialNumberChanging(string value); partial void OnIsSerialNumberChanged(); + partial void OnSAPSequenceChanging(string value); + partial void OnSAPSequenceChanged(); #endregion public ICSOtherOut() @@ -9739,6 +9863,26 @@ namespace ICSSoft.Frame.Data.Entity } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SAPSequence", DbType="VarChar(50)")] + public string SAPSequence + { + get + { + return this._SAPSequence; + } + set + { + if ((this._SAPSequence != value)) + { + this.OnSAPSequenceChanging(value); + this.SendPropertyChanging(); + this._SAPSequence = value; + this.SendPropertyChanged("SAPSequence"); + this.OnSAPSequenceChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; @@ -9826,6 +9970,8 @@ namespace ICSSoft.Frame.Data.Entity private string _IsSerialNumber; + private string _SAPSequence; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -9890,6 +10036,8 @@ namespace ICSSoft.Frame.Data.Entity partial void OnStockIndicatorChanged(); partial void OnIsSerialNumberChanging(string value); partial void OnIsSerialNumberChanged(); + partial void OnSAPSequenceChanging(string value); + partial void OnSAPSequenceChanged(); #endregion public ICSOtherIn() @@ -10497,6 +10645,26 @@ namespace ICSSoft.Frame.Data.Entity } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SAPSequence", DbType="VarChar(50)")] + public string SAPSequence + { + get + { + return this._SAPSequence; + } + set + { + if ((this._SAPSequence != value)) + { + this.OnSAPSequenceChanging(value); + this.SendPropertyChanging(); + this._SAPSequence = value; + this.SendPropertyChanged("SAPSequence"); + this.OnSAPSequenceChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; diff --git a/ICSSoft.FromERP/ICSSoft.FromERP/ICSSAPDocGet.cs b/ICSSoft.FromERP/ICSSoft.FromERP/ICSSAPDocGet.cs index 5d7cba4..a2f6a39 100644 --- a/ICSSoft.FromERP/ICSSoft.FromERP/ICSSAPDocGet.cs +++ b/ICSSoft.FromERP/ICSSoft.FromERP/ICSSAPDocGet.cs @@ -602,145 +602,334 @@ namespace ICSSoft.FromERP db.Transaction = db.Connection.BeginTransaction(); var ItemInfo = ItemInfoList.Where(a => a.DANJU == Info.DANJU); int Count = 0; + int LineNum = 10; foreach (SAPGetDocInfo.ZWEBSERVICE_ITEM Item in ItemInfo) { - Count++; - string ExtensionID = ""; - bool isNew = false; - string Colspan = Item.VBELN_VA + "~" + Item.SERNP + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; - var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); - if (Extensionline == null) + if (Item.SERNP != "ZS01") { - ExtensionID = AppConfig.GetGuid(); - Extensionline = new ICSExtension(); - Extensionline.ID = ExtensionID; - Extensionline.BatchCode = Item.SERNP; - Extensionline.Version = ""; - Extensionline.Brand = Item.POSNR_VA; - Extensionline.ProjectCode = Item.VBELN_VA; - Extensionline.cFree1 = ""; - Extensionline.cFree2 = ""; - Extensionline.cFree3 = ""; - Extensionline.cFree4 = ""; - Extensionline.cFree5 = ""; - Extensionline.cFree6 = ""; - Extensionline.cFree7 = ""; - Extensionline.cFree8 = ""; - Extensionline.cFree9 = ""; - Extensionline.cFree10 = ""; - Extensionline.Colspan = Colspan; - Extensionline.MTIME = DateTime.Now; - Extensionline.MUSER = "JOB"; - Extensionline.MUSERName = "JOB"; - Extensionline.WorkPoint = Info.WERKS; - - db.ICSExtension.InsertOnSubmit(Extensionline); + Count++; + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~~~" + Item.POSNR_VA + "~~~~~~~~~~"; + } + else + { + Colspan = "~~~~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionID; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } + + var line = db.ICSMOApply.SingleOrDefault(a => a.ApplyCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSMOApply(); + line.ID = AppConfig.GetGuid(); + line.IssueQuantity = 0; + line.ApplyID = AppConfig.GetGuid(); + line.ApplyDetailID = AppConfig.GetGuid(); + line.ApplyCode = Item.DANJU;//领料单号 + line.SAPSequence = Item.POSNR;//领料单行号(SAP) + line.Sequence = LineNum.ToString();//领料单行号(WMS自用) + line.InvCode = Item.MATNR;//物料编码 + } + line.Type = "1"; + line.WorkPoint = Info.WERKS;//站点(工厂) + line.CreatePerson = Info.XINGMING; + line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + line.SourceCode = Item.EBELN;//采购凭证号 + line.SourceSequence = Item.EBELP;//采购凭证的项目编号 + line.Quantity = Item.LINGYSL;//领用数量 + line.Amount = 0; + line.WHCode = Item.LGORT;//仓库 + line.Status = "2"; + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.ExtensionID = ExtensionID; + line.EATTRIBUTE = Info.LEIXING;//单据类型 + + //订单号 + line.OrderNumber = Info.AUFNR; + //套数 + line.Sets = Info.TAOSHU; + //物料号 父项生产订单物料 + line.OrderInvCode = Info.MATNR_FAT; + //物料描述 父项 生产订单主物料 + line.OrderInvDescribe = Info.MAKTX_FAT; + //出入库 1.出库 2.入库 3.转移 4.盘点 + line.BillType = Info.CHURU; + //备注 + line.Remarks = Info.BEIZHU; + //工位 + line.Desks = Info.P_GW; + //调度工号 + line.DispatchNumber = Info.P_DD; + //调度姓名 + line.DispatcherName = Info.P_DDNAME; + //收料人工号 + line.ReceiverNumber = Info.P_SL; + //收料人姓名 + line.ReceiverName = Info.P_SLNAME; + //紧急程度 + line.Urgency = Info.P_JJ; + //需求日期 + line.NeedDate = Info.ZXQRQ; + //需求时间 + line.NeedTime = Info.ZXQSJ.ToString(); + //备注项 + line.RemarksTerm = Info.ZBEIZ; + //工艺文本码 + line.TextNumber = Info.KTSCH; + //物料描述 + line.InvDescribe = Item.MAKTX; + //基本计量单位 + line.Unit = Item.MEINS; + //特殊库存标识 + line.StockIndicator = Item.SOBKZ; + //序列号参数 + line.IsSerialNumber = Item.SERNP; + + + + if (isNew == true) + { + db.ICSMOApply.InsertOnSubmit(line); + } db.SubmitChanges(); + if (Count == ItemInfo.Count()) + { + InspectJosn += "{"; + InspectJosn += "\"RIG_ORDINE\":\"" + Info.DANJU + "\","; + InspectJosn += "\"RIG_ARTICOLO\": \"" + Item.MATNR + "\","; + InspectJosn += "\"RIG_SUB1\": \"\","; + InspectJosn += "\"RIG_SUB2\": \"\","; + InspectJosn += "\"RIG_QTAR\": " + Item.LINGYSL + ","; + InspectJosn += "\"RIG_HOSTINF\": " + Item.POSNR + ""; + InspectJosn += "}"; + } + else + { + InspectJosn += "{"; + InspectJosn += "\"RIG_ORDINE\":\"" + Info.DANJU + "\","; + InspectJosn += "\"RIG_ARTICOLO\": \"" + Item.MATNR + "\","; + InspectJosn += "\"RIG_SUB1\": \"\","; + InspectJosn += "\"RIG_SUB2\": \"\","; + InspectJosn += "\"RIG_QTAR\": " + Item.LINGYSL + ","; + InspectJosn += "\"RIG_HOSTINF\": " + Item.POSNR + ""; + InspectJosn += "},"; + } + LineNum += 10; } else { - ExtensionID = Extensionline.ID; - } + var SubLineInfo = SubLineInfoList.Where(a => a.DANJU == Item.DANJU); + foreach (SAPGetDocInfo.ZWEBS_GERNR SubInfo in SubLineInfo) + { + Count++; + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~" + SubInfo.GERNR + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; + } + else + { + Colspan = "~~" + SubInfo.GERNR + "~~~~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionID; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; - var line = db.ICSMOApply.SingleOrDefault(a => a.ApplyCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); - if (line == null) - { - isNew = true; - line = new Frame.Data.Entity.ICSMOApply(); - line.ID = AppConfig.GetGuid(); - line.IssueQuantity = 0; - line.ApplyID = AppConfig.GetGuid(); - line.ApplyDetailID = AppConfig.GetGuid(); - line.ApplyCode = Item.DANJU;//领料单号 - line.Sequence = Item.POSNR;//领料单行号 - line.InvCode = Item.MATNR;//物料编码 - } - line.Type = "1"; - line.WorkPoint = Info.WERKS;//站点(工厂) - line.CreatePerson = Info.XINGMING; - line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 - line.SourceCode = Item.EBELN;//采购凭证号 - line.SourceSequence = Item.EBELP;//采购凭证的项目编号 - line.Quantity = Item.LINGYSL;//领用数量 - line.Amount = 0; - line.WHCode = Item.LGORT;//仓库 - line.Status = "2"; - line.MUSER = "JOB"; - line.MUSERName = "JOB"; - line.MTIME = DateTime.Now; - line.ExtensionID = ExtensionID; - line.EATTRIBUTE = Info.LEIXING;//单据类型 - - //订单号 - line.OrderNumber = Info.AUFNR; - //套数 - line.Sets = Info.TAOSHU; - //物料号 父项生产订单物料 - line.OrderInvCode = Info.MATNR_FAT; - //物料描述 父项 生产订单主物料 - line.OrderInvDescribe = Info.MAKTX_FAT; - //出入库 1.出库 2.入库 3.转移 4.盘点 - line.BillType = Info.CHURU; - //备注 - line.Remarks = Info.BEIZHU; - //工位 - line.Desks = Info.P_GW; - //调度工号 - line.DispatchNumber = Info.P_DD; - //调度姓名 - line.DispatcherName = Info.P_DDNAME; - //收料人工号 - line.ReceiverNumber = Info.P_SL; - //收料人姓名 - line.ReceiverName = Info.P_SLNAME; - //紧急程度 - line.Urgency = Info.P_JJ; - //需求日期 - line.NeedDate = Info.ZXQRQ; - //需求时间 - line.NeedTime = Info.ZXQSJ.ToString(); - //备注项 - line.RemarksTerm = Info.ZBEIZ; - //工艺文本码 - line.TextNumber = Info.KTSCH; - //物料描述 - line.InvDescribe = Item.MAKTX; - //基本计量单位 - line.Unit = Item.MEINS; - //特殊库存标识 - line.StockIndicator = Item.SOBKZ; - //序列号参数 - line.IsSerialNumber = Item.SERNP; - - - - if (isNew == true) - { - db.ICSMOApply.InsertOnSubmit(line); - } - db.SubmitChanges(); - if (Count == ItemInfo.Count()) - { - InspectJosn += "{"; - InspectJosn += "\"RIG_ORDINE\":\"" + Info.DANJU + "\","; - InspectJosn += "\"RIG_ARTICOLO\": \"" + Item.MATNR + "\","; - InspectJosn += "\"RIG_SUB1\": \"\","; - InspectJosn += "\"RIG_SUB2\": \"\","; - InspectJosn += "\"RIG_QTAR\": " + Item.LINGYSL + ","; - InspectJosn += "\"RIG_HOSTINF\": " + Item.POSNR + ""; - InspectJosn += "}"; - } - else - { - InspectJosn += "{"; - InspectJosn += "\"RIG_ORDINE\":\"" + Info.DANJU + "\","; - InspectJosn += "\"RIG_ARTICOLO\": \"" + Item.MATNR + "\","; - InspectJosn += "\"RIG_SUB1\": \"\","; - InspectJosn += "\"RIG_SUB2\": \"\","; - InspectJosn += "\"RIG_QTAR\": " + Item.LINGYSL + ","; - InspectJosn += "\"RIG_HOSTINF\": " + Item.POSNR + ""; - InspectJosn += "},"; + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } + + var line = db.ICSMOApply.SingleOrDefault(a => a.ApplyCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSMOApply(); + line.ID = AppConfig.GetGuid(); + line.IssueQuantity = 0; + line.ApplyID = AppConfig.GetGuid(); + line.ApplyDetailID = AppConfig.GetGuid(); + line.ApplyCode = Item.DANJU;//领料单号 + line.SAPSequence = Item.POSNR;//领料单行号(SAP) + line.Sequence = LineNum.ToString();//领料单行号(WMS自用) + line.InvCode = Item.MATNR;//物料编码 + } + line.Type = "1"; + line.WorkPoint = Info.WERKS;//站点(工厂) + line.CreatePerson = Info.XINGMING; + line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + line.SourceCode = Item.EBELN;//采购凭证号 + line.SourceSequence = Item.EBELP;//采购凭证的项目编号 + line.Quantity = Item.LINGYSL;//领用数量 + line.Amount = 0; + line.WHCode = Item.LGORT;//仓库 + line.Status = "2"; + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.ExtensionID = ExtensionID; + line.EATTRIBUTE = Info.LEIXING;//单据类型 + + //订单号 + line.OrderNumber = Info.AUFNR; + //套数 + line.Sets = Info.TAOSHU; + //物料号 父项生产订单物料 + line.OrderInvCode = Info.MATNR_FAT; + //物料描述 父项 生产订单主物料 + line.OrderInvDescribe = Info.MAKTX_FAT; + //出入库 1.出库 2.入库 3.转移 4.盘点 + line.BillType = Info.CHURU; + //备注 + line.Remarks = Info.BEIZHU; + //工位 + line.Desks = Info.P_GW; + //调度工号 + line.DispatchNumber = Info.P_DD; + //调度姓名 + line.DispatcherName = Info.P_DDNAME; + //收料人工号 + line.ReceiverNumber = Info.P_SL; + //收料人姓名 + line.ReceiverName = Info.P_SLNAME; + //紧急程度 + line.Urgency = Info.P_JJ; + //需求日期 + line.NeedDate = Info.ZXQRQ; + //需求时间 + line.NeedTime = Info.ZXQSJ.ToString(); + //备注项 + line.RemarksTerm = Info.ZBEIZ; + //工艺文本码 + line.TextNumber = Info.KTSCH; + //物料描述 + line.InvDescribe = Item.MAKTX; + //基本计量单位 + line.Unit = Item.MEINS; + //特殊库存标识 + line.StockIndicator = Item.SOBKZ; + //序列号参数 + line.IsSerialNumber = Item.SERNP; + + + + if (isNew == true) + { + db.ICSMOApply.InsertOnSubmit(line); + } + db.SubmitChanges(); + if (Count == ItemInfo.Count()) + { + InspectJosn += "{"; + InspectJosn += "\"RIG_ORDINE\":\"" + Info.DANJU + "\","; + InspectJosn += "\"RIG_ARTICOLO\": \"" + Item.MATNR + "\","; + InspectJosn += "\"RIG_SUB1\": \"\","; + InspectJosn += "\"RIG_SUB2\": \"\","; + InspectJosn += "\"RIG_QTAR\": " + Item.LINGYSL + ","; + InspectJosn += "\"RIG_HOSTINF\": " + Item.POSNR + ""; + InspectJosn += "}"; + } + else + { + InspectJosn += "{"; + InspectJosn += "\"RIG_ORDINE\":\"" + Info.DANJU + "\","; + InspectJosn += "\"RIG_ARTICOLO\": \"" + Item.MATNR + "\","; + InspectJosn += "\"RIG_SUB1\": \"\","; + InspectJosn += "\"RIG_SUB2\": \"\","; + InspectJosn += "\"RIG_QTAR\": " + Item.LINGYSL + ","; + InspectJosn += "\"RIG_HOSTINF\": " + Item.POSNR + ""; + InspectJosn += "},"; + } + LineNum += 10; + } } + } InspectJosn += "]"; InspectJosn += "}"; @@ -774,6 +963,7 @@ namespace ICSSoft.FromERP db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); bool headisNew = false; + int LineNum = 10; var headline = db.ICSMOApplyNeg.SingleOrDefault(a => a.ApplyNegCode == Info.DANJU && a.WorkPoint == Info.WERKS); if (headline == null) { @@ -802,196 +992,745 @@ namespace ICSSoft.FromERP var ItemInfo = ItemInfoList.Where(a => a.DANJU == Info.DANJU); foreach (SAPGetDocInfo.ZWEBSERVICE_ITEM Item in ItemInfo) { - string ExtensionID = ""; - bool isNew = false; - string Colspan = Item.VBELN_VA + "~" + Item.SERNP + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; - var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); - if (Extensionline == null) - { - ExtensionID = AppConfig.GetGuid(); - Extensionline = new ICSExtension(); - Extensionline.ID = ExtensionID; - Extensionline.BatchCode = Item.SERNP; - Extensionline.Version = ""; - Extensionline.Brand = Item.POSNR_VA; - Extensionline.ProjectCode = Item.VBELN_VA; - Extensionline.cFree1 = ""; - Extensionline.cFree2 = ""; - Extensionline.cFree3 = ""; - Extensionline.cFree4 = ""; - Extensionline.cFree5 = ""; - Extensionline.cFree6 = ""; - Extensionline.cFree7 = ""; - Extensionline.cFree8 = ""; - Extensionline.cFree9 = ""; - Extensionline.cFree10 = ""; - Extensionline.Colspan = Colspan; - Extensionline.MTIME = DateTime.Now; - Extensionline.MUSER = "JOB"; - Extensionline.MUSERName = "JOB"; - Extensionline.WorkPoint = Info.WERKS; - - db.ICSExtension.InsertOnSubmit(Extensionline); - db.SubmitChanges(); - } - else - { - ExtensionID = Extensionline.ID; - } - - var line = db.ICSMOApplyNegDetail.SingleOrDefault(a => a.ApplyNegCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); - if (line == null) - { - isNew = true; - line = new Frame.Data.Entity.ICSMOApplyNegDetail(); - line.ID = AppConfig.GetGuid(); - line.IssueNegQuantity = 0; - line.ApplyNegCode = Item.DANJU;//退料单号 - line.Sequence = Item.POSNR;//退料单行号 - line.InvCode = Item.MATNR;//物料编码 - line.SourceDetailID = ""; - } - line.Quantity = Item.LINGYSL;//领用数量 - line.SourceDetailID = Item.LGORT;//仓库 - line.WHCode = Item.LGORT;//仓库 - line.Amount = 0; - line.ExtensionID = ExtensionID; - line.MUSER = "JOB"; - line.MUSERName = "JOB"; - line.MTIME = DateTime.Now; - line.WorkPoint = Info.WERKS;//站点 - - if (isNew == true) + if (Item.SERNP != "ZS01") { - db.ICSMOApplyNegDetail.InsertOnSubmit(line); - } - db.SubmitChanges(); - } - db.Transaction.Commit(); - - db.Connection.Close(); - } - catch (Exception ex) - { - db.Transaction.Rollback(); - #region 调用SAP接口反写修改NOTMODIFY栏位,取消单据在SAP的锁定状态(接口暂未提供) - string ErrorDanJU = Info.DANJU; - #endregion - log.Error(ex.ToString()); - } - } - #endregion - - #region 成品入库单同步(单据类型:15) - HeadInfo = HeadInfoList.Where(a => a.LEIXING == "15"); - foreach (SAPGetDocInfo.ZWMS_SK_HEAD Info in HeadInfo) - { - try - { - db.Connection.Open(); + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~~~~" + Item.POSNR_VA + "~~~~~~~~~~"; + } + else + { + Colspan = "~~~~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } + + var line = db.ICSMOApplyNegDetail.SingleOrDefault(a => a.ApplyNegCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSMOApplyNegDetail(); + line.ID = AppConfig.GetGuid(); + line.IssueNegQuantity = 0; + line.ApplyNegCode = Item.DANJU;//退料单号 + line.Sequence = LineNum.ToString();//退料单行号(WMS自用) + line.SAPSequence = Item.POSNR;//ASP行号 + line.InvCode = Item.MATNR;//物料编码 + line.SourceDetailID = ""; + } + line.Quantity = Item.LINGYSL;//领用数量 + line.SourceDetailID = Item.LGORT;//仓库 + line.WHCode = Item.LGORT;//仓库 + line.Amount = 0; + line.ExtensionID = ExtensionID; + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.WorkPoint = Info.WERKS;//站点 + LineNum += 10; + + if (isNew == true) + { + db.ICSMOApplyNegDetail.InsertOnSubmit(line); + } + db.SubmitChanges(); + } + else + { + var SubLineInfo = SubLineInfoList.Where(a => a.DANJU == Item.DANJU); + foreach (SAPGetDocInfo.ZWEBS_GERNR SubInfo in SubLineInfo) + { + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~" + SubInfo.GERNR + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; + } + else + { + Colspan = "~~" + SubInfo.GERNR + "~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } + + var line = db.ICSMOApplyNegDetail.SingleOrDefault(a => a.ApplyNegCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSMOApplyNegDetail(); + line.ID = AppConfig.GetGuid(); + line.IssueNegQuantity = 0; + line.ApplyNegCode = Item.DANJU;//退料单号 + line.Sequence = LineNum.ToString();//退料单行号(WMS自用) + line.SAPSequence = Item.POSNR;//ASP行号 + line.InvCode = Item.MATNR;//物料编码 + line.SourceDetailID = ""; + } + line.Quantity = Item.LINGYSL;//领用数量 + line.SourceDetailID = Item.LGORT;//仓库 + line.WHCode = Item.LGORT;//仓库 + line.Amount = 0; + line.ExtensionID = ExtensionID; + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.WorkPoint = Info.WERKS;//站点 + LineNum += 10; + + if (isNew == true) + { + db.ICSMOApplyNegDetail.InsertOnSubmit(line); + } + db.SubmitChanges(); + + } + + } + } + db.Transaction.Commit(); + + db.Connection.Close(); + + } + catch (Exception ex) + { + db.Transaction.Rollback(); + #region 调用SAP接口反写修改NOTMODIFY栏位,取消单据在SAP的锁定状态(接口暂未提供) + string ErrorDanJU = Info.DANJU; + #endregion + log.Error(ex.ToString()); + } + } + #endregion + + #region 成品入库单同步(单据类型:15) + HeadInfo = HeadInfoList.Where(a => a.LEIXING == "15"); + foreach (SAPGetDocInfo.ZWMS_SK_HEAD Info in HeadInfo) + { + try + { + db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); var ItemInfo = ItemInfoList.Where(a => a.DANJU == Info.DANJU); + int LineNum = 10; foreach (SAPGetDocInfo.ZWEBSERVICE_ITEM Item in ItemInfo) { - string ExtensionID = ""; - bool isNew = false; - string Colspan = Item.VBELN_VA + "~" + Item.SERNP + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; - var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); - if (Extensionline == null) + if (Item.SERNP != "ZS01") { - ExtensionID = AppConfig.GetGuid(); - Extensionline = new ICSExtension(); - Extensionline.ID = ExtensionID; - Extensionline.BatchCode = Item.SERNP; - Extensionline.Version = ""; - Extensionline.Brand = Item.POSNR_VA; - Extensionline.ProjectCode = Item.VBELN_VA; - Extensionline.cFree1 = ""; - Extensionline.cFree2 = ""; - Extensionline.cFree3 = ""; - Extensionline.cFree4 = ""; - Extensionline.cFree5 = ""; - Extensionline.cFree6 = ""; - Extensionline.cFree7 = ""; - Extensionline.cFree8 = ""; - Extensionline.cFree9 = ""; - Extensionline.cFree10 = ""; - Extensionline.Colspan = Colspan; - Extensionline.MTIME = DateTime.Now; - Extensionline.MUSER = "JOB"; - Extensionline.MUSERName = "JOB"; - Extensionline.WorkPoint = Info.WERKS; - - db.ICSExtension.InsertOnSubmit(Extensionline); + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~~~~" + Item.POSNR_VA + "~~~~~~~~~~"; + } + else + { + Colspan = "~~~~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionID; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } + + var line = db.ICSManufactureReceive.SingleOrDefault(a => a.RCVCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSManufactureReceive(); + line.ID = AppConfig.GetGuid(); + line.RCVQuantity = 0; + line.RCVCode = Item.DANJU;//委外领料单号 + line.Sequence = LineNum.ToString();//委外领料单行号 + line.SAPSequence = Item.POSNR; + line.InvCode = Item.MATNR;//物料编码 + } + line.Type = "1"; + line.WorkPoint = Info.WERKS;//站点 + line.CreatePerson = Info.XINGMING; + line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + line.SourceCode = Item.EBELN;//采购凭证号 + line.SourceSequence = Item.EBELP;//采购凭证的项目编号 + line.Quantity = Item.LINGYSL;//领用数量 + line.Amount = 0; + line.WHCode = Item.LGORT;//仓库 + if (Info.TEST1 == "N")//Info.TEST1=N为SAP未过账入库单 Info.TEST1=Y为SAP已过账入库单 + { + line.Status = "1"; + } + else + { + line.Status = "3"; + } + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.ExtensionID = ExtensionID; + line.EATTRIBUTE = Info.LEIXING; + + + //物料描述 + line.InvDescribe = Item.MAKTX; + //订单号 + line.OrderNumber = Info.AUFNR; + //物料号 父项生产订单主物料 + line.OrderInvCode = Info.MATNR_FAT; + //物料描述 父项生产订单主物料 + line.OrderInvDescribe = Info.MAKTX_FAT; + //出入库 + line.BillType = Info.CHURU; + //备注 + line.Remarks = Info.BEIZHU; + //基本计量单位 + line.Unit = Item.MEINS; + //接受特殊库存标识 + line.StockIndicator = Item.SOBKZ; + //备注项 + line.RemarksTerm = Info.ZBEIZ; + //序列号参数 + line.IsSerialNumber = Item.SERNP; + + + if (isNew == true) + { + db.ICSManufactureReceive.InsertOnSubmit(line); + } + db.SubmitChanges(); + LineNum += 10; + } + else + { + var SubLineInfo = SubLineInfoList.Where(a => a.DANJU == Item.DANJU); + foreach (SAPGetDocInfo.ZWEBS_GERNR SubInfo in SubLineInfo) + { + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~" + SubInfo.GERNR + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; + } + else + { + Colspan = "~~" + SubInfo.GERNR + "~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionID; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } + + var line = db.ICSManufactureReceive.SingleOrDefault(a => a.RCVCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSManufactureReceive(); + line.ID = AppConfig.GetGuid(); + line.RCVQuantity = 0; + line.RCVCode = Item.DANJU;//委外领料单号 + line.Sequence = LineNum.ToString();//委外领料单行号 + line.SAPSequence = Item.POSNR; + line.InvCode = Item.MATNR;//物料编码 + } + line.Type = "1"; + line.WorkPoint = Info.WERKS;//站点 + line.CreatePerson = Info.XINGMING; + line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + line.SourceCode = Item.EBELN;//采购凭证号 + line.SourceSequence = Item.EBELP;//采购凭证的项目编号 + line.Quantity = Item.LINGYSL;//领用数量 + line.Amount = 0; + line.WHCode = Item.LGORT;//仓库 + if (Info.TEST1 == "N")//Info.TEST1=N为SAP未过账入库单 Info.TEST1=Y为SAP已过账入库单 + { + line.Status = "1"; + } + else + { + line.Status = "3"; + } + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.ExtensionID = ExtensionID; + line.EATTRIBUTE = Info.LEIXING; + + + //物料描述 + line.InvDescribe = Item.MAKTX; + //订单号 + line.OrderNumber = Info.AUFNR; + //物料号 父项生产订单主物料 + line.OrderInvCode = Info.MATNR_FAT; + //物料描述 父项生产订单主物料 + line.OrderInvDescribe = Info.MAKTX_FAT; + //出入库 + line.BillType = Info.CHURU; + //备注 + line.Remarks = Info.BEIZHU; + //基本计量单位 + line.Unit = Item.MEINS; + //接受特殊库存标识 + line.StockIndicator = Item.SOBKZ; + //备注项 + line.RemarksTerm = Info.ZBEIZ; + //序列号参数 + line.IsSerialNumber = Item.SERNP; + + + if (isNew == true) + { + db.ICSManufactureReceive.InsertOnSubmit(line); + } + db.SubmitChanges(); + LineNum += 10; + } + + + } + + } + db.Transaction.Commit(); + + db.Connection.Close(); + } + catch (Exception ex) + { + db.Transaction.Rollback(); + #region 调用SAP接口反写修改NOTMODIFY栏位,取消单据在SAP的锁定状态(接口暂未提供) + string ErrorDanJU = Info.DANJU; + #endregion + log.Error(ex.ToString()); + } + } + #endregion + + #region 调拨单同步(单据类型:07 08) + HeadInfo = HeadInfoList.Where(a => a.LEIXING == "07" || a.LEIXING == "08"); + foreach (SAPGetDocInfo.ZWMS_SK_HEAD Info in HeadInfo) + { + try + { + db.Connection.Open(); + db.Transaction = db.Connection.BeginTransaction(); + var ItemInfo = ItemInfoList.Where(a => a.DANJU == Info.DANJU); + int LineNum = 10; + foreach (SAPGetDocInfo.ZWEBSERVICE_ITEM Item in ItemInfo) + { + if (Item.SERNP != "ZS01") + { + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~~~~" + Item.POSNR_VA + "~~~~~~~~~~"; + } + else + { + Colspan = "~~~~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionID; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } + + var line = db.ICSTransfer.SingleOrDefault(a => a.TransferNO == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSTransfer(); + line.ID = AppConfig.GetGuid(); + line.TransferQuantity = 0; + line.TransferNO = Item.DANJU;//调拨单号 + line.SAPSequence = Item.POSNR; + line.Sequence = LineNum.ToString(); //调拨单行号 + line.InvCode = Item.MATNR;//物料编码 + } + line.FromWarehouseCode = Item.LGORT; + line.FromLocationCode = ""; + line.ToWarehouseCode = Item.LGORT_JS; + line.ToLocationCode = ""; + line.Status = "2"; + line.Quantity = Item.LINGYSL;//领用数量 + line.Amount = 0; + line.Type = "1"; + line.CreatePerson = Info.XINGMING; + line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + line.ExtensionID = ExtensionID; + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.WorkPoint = Info.WERKS;//站点 + line.EATTRIBUTE1 = Item.WERKS_JS;//接收站点 + + //单据类型 + line.OrderType = Info.LEIXING; + //类型描述 + line.TypeDescribe = Info.MIAOSHU; + //备注 + line.Remarks = Info.BEIZHU; + //人员号 + line.PersonNumber = Info.PERNR; + //物料描述 + line.InvDescribe = Item.MAKTX; + //基本计量单位 + line.Unit = Item.MEINS; + //特殊库存标识 + line.StockIndicator = Item.SOBKZ; + //接收物料号 + line.ReceiveInvCode = Item.MATNR_JS; + //接受物料描述 + line.ReceiveInvDescribe = Item.MAKTX_JS; + //接受库存标识 + line.ReceiveStock = Item.SOBKZ_JS; + //接受销售订单 + line.ReceiveSales = Item.VBELN_JS; + //接受行号 + line.ReceiveSequence = Item.POSNR_JS; + //备注2 + line.Remark2 = Item.BEIZHU2; + //序列号参数 + line.IsSerialNumber = Item.SERNP; + + + if (isNew == true) + { + db.ICSTransfer.InsertOnSubmit(line); + } db.SubmitChanges(); + LineNum += 10; } else { - ExtensionID = Extensionline.ID; - } + var SubLineInfo = SubLineInfoList.Where(a => a.DANJU == Item.DANJU); + foreach (SAPGetDocInfo.ZWEBS_GERNR SubInfo in SubLineInfo) + { + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~" + SubInfo.GERNR + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; + } + else + { + Colspan = "~~" + SubInfo.GERNR + "~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionID; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } + + var line = db.ICSTransfer.SingleOrDefault(a => a.TransferNO == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSTransfer(); + line.ID = AppConfig.GetGuid(); + line.TransferQuantity = 0; + line.TransferNO = Item.DANJU;//调拨单号 + line.SAPSequence = Item.POSNR; + line.Sequence = LineNum.ToString(); //调拨单行号 + line.InvCode = Item.MATNR;//物料编码 + } + line.FromWarehouseCode = Item.LGORT; + line.FromLocationCode = ""; + line.ToWarehouseCode = Item.LGORT_JS; + line.ToLocationCode = ""; + line.Status = "2"; + line.Quantity = Item.LINGYSL;//领用数量 + line.Amount = 0; + line.Type = "1"; + line.CreatePerson = Info.XINGMING; + line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + line.ExtensionID = ExtensionID; + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.WorkPoint = Info.WERKS;//站点 + line.EATTRIBUTE1 = Item.WERKS_JS;//接收站点 + + //单据类型 + line.OrderType = Info.LEIXING; + //类型描述 + line.TypeDescribe = Info.MIAOSHU; + //备注 + line.Remarks = Info.BEIZHU; + //人员号 + line.PersonNumber = Info.PERNR; + //物料描述 + line.InvDescribe = Item.MAKTX; + //基本计量单位 + line.Unit = Item.MEINS; + //特殊库存标识 + line.StockIndicator = Item.SOBKZ; + //接收物料号 + line.ReceiveInvCode = Item.MATNR_JS; + //接受物料描述 + line.ReceiveInvDescribe = Item.MAKTX_JS; + //接受库存标识 + line.ReceiveStock = Item.SOBKZ_JS; + //接受销售订单 + line.ReceiveSales = Item.VBELN_JS; + //接受行号 + line.ReceiveSequence = Item.POSNR_JS; + //备注2 + line.Remark2 = Item.BEIZHU2; + //序列号参数 + line.IsSerialNumber = Item.SERNP; + + + + if (isNew == true) + { + db.ICSTransfer.InsertOnSubmit(line); + } + db.SubmitChanges(); + LineNum += 10; + } - var line = db.ICSManufactureReceive.SingleOrDefault(a => a.RCVCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); - if (line == null) - { - isNew = true; - line = new Frame.Data.Entity.ICSManufactureReceive(); - line.ID = AppConfig.GetGuid(); - line.RCVQuantity = 0; - line.RCVCode = Item.DANJU;//委外领料单号 - line.Sequence = Item.POSNR;//委外领料单行号 - line.InvCode = Item.MATNR;//物料编码 - } - line.Type = "1"; - line.WorkPoint = Info.WERKS;//站点 - line.CreatePerson = Info.XINGMING; - line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 - line.SourceCode = Item.EBELN;//采购凭证号 - line.SourceSequence = Item.EBELP;//采购凭证的项目编号 - line.Quantity = Item.LINGYSL;//领用数量 - line.Amount = 0; - line.WHCode = Item.LGORT;//仓库 - if (Info.TEST1 == "N")//Info.TEST1=N为SAP未过账入库单 Info.TEST1=Y为SAP已过账入库单 - { - line.Status = "1"; - } - else - { - line.Status = "3"; - } - line.MUSER = "JOB"; - line.MUSERName = "JOB"; - line.MTIME = DateTime.Now; - line.ExtensionID = ExtensionID; - line.EATTRIBUTE = Info.LEIXING; - - - //物料描述 - line.InvDescribe = Item.MAKTX; - //订单号 - line.OrderNumber = Info.AUFNR; - //物料号 父项生产订单主物料 - line.OrderInvCode = Info.MATNR_FAT; - //物料描述 父项生产订单主物料 - line.OrderInvDescribe = Info.MAKTX_FAT; - //出入库 - line.BillType = Info.CHURU; - //备注 - line.Remarks = Info.BEIZHU; - //基本计量单位 - line.Unit = Item.MEINS; - //接受特殊库存标识 - line.StockIndicator = Item.SOBKZ; - //备注项 - line.RemarksTerm = Info.ZBEIZ; - //序列号参数 - line.IsSerialNumber = Item.SERNP; - - - if (isNew == true) - { - db.ICSManufactureReceive.InsertOnSubmit(line); } - db.SubmitChanges(); + } db.Transaction.Commit(); @@ -1008,8 +1747,8 @@ namespace ICSSoft.FromERP } #endregion - #region 调拨单同步(单据类型:07 08) - HeadInfo = HeadInfoList.Where(a => a.LEIXING == "07" || a.LEIXING == "08"); + #region 形态转换单同步(物料)(单据类型:13) + HeadInfo = HeadInfoList.Where(a => a.LEIXING == "13"); foreach (SAPGetDocInfo.ZWMS_SK_HEAD Info in HeadInfo) { try @@ -1017,243 +1756,271 @@ namespace ICSSoft.FromERP db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); var ItemInfo = ItemInfoList.Where(a => a.DANJU == Info.DANJU); + int LineNum = 10; foreach (SAPGetDocInfo.ZWEBSERVICE_ITEM Item in ItemInfo) { - string ExtensionID = ""; - bool isNew = false; - string Colspan = Item.VBELN_VA + "~" + Item.SERNP + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; - var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); - if (Extensionline == null) + if (Item.SERNP != "ZS01") { - ExtensionID = AppConfig.GetGuid(); - Extensionline = new ICSExtension(); - Extensionline.ID = ExtensionID; - Extensionline.BatchCode = Item.SERNP; - Extensionline.Version = ""; - Extensionline.Brand = Item.POSNR_VA; - Extensionline.ProjectCode = Item.VBELN_VA; - Extensionline.cFree1 = ""; - Extensionline.cFree2 = ""; - Extensionline.cFree3 = ""; - Extensionline.cFree4 = ""; - Extensionline.cFree5 = ""; - Extensionline.cFree6 = ""; - Extensionline.cFree7 = ""; - Extensionline.cFree8 = ""; - Extensionline.cFree9 = ""; - Extensionline.cFree10 = ""; - Extensionline.Colspan = Colspan; - Extensionline.MTIME = DateTime.Now; - Extensionline.MUSER = "JOB"; - Extensionline.MUSERName = "JOB"; - Extensionline.WorkPoint = Info.WERKS; - - db.ICSExtension.InsertOnSubmit(Extensionline); + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~~~~" + Item.POSNR_VA + "~~~~~~~~~~"; + } + else + { + Colspan = "~~~~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionID; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } + + var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); + if (linebefore == null) + { + isNew = true; + linebefore = new Frame.Data.Entity.ICSMTDOC(); + linebefore.ID = AppConfig.GetGuid(); + linebefore.MTDOCQuantity = 0; + linebefore.MTDOCCode = Item.DANJU;//形态转换单号 + linebefore.SAPSequence = Item.POSNR; + linebefore.Sequence = LineNum.ToString();//形态转换单行号 + linebefore.MTDOCType = "1";//转换前 + } + linebefore.DepCode = Info.KOSTL; + linebefore.WHCode = Item.LGORT; + linebefore.Quantity = Item.LINGYSL;//领用数量 + linebefore.Amount = 0; + linebefore.Memo = ""; + linebefore.Status = "2"; + linebefore.INVCode = Item.MATNR;//转换前物料编码 + linebefore.SOCode = ""; + linebefore.SOSequence = ""; + linebefore.CreatePerson = Info.XINGMING; + linebefore.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + linebefore.ExtensionID = ExtensionID; + linebefore.MUSER = "JOB"; + linebefore.MUSERName = "JOB"; + linebefore.MTIME = DateTime.Now; + linebefore.WorkPoint = Info.WERKS;//站点 + linebefore.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 + if (isNew == true) + { + db.ICSMTDOC.InsertOnSubmit(linebefore); + } + db.SubmitChanges(); + + var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); + if (lineafter == null) + { + isNew = true; + lineafter = new Frame.Data.Entity.ICSMTDOC(); + lineafter.ID = AppConfig.GetGuid(); + lineafter.MTDOCQuantity = 0; + lineafter.MTDOCCode = Item.DANJU;//形态转换单号 + lineafter.Sequence = LineNum.ToString();//形态转换单行号 + lineafter.SAPSequence = Item.POSNR; + lineafter.MTDOCType = "2";//转换后 + } + lineafter.DepCode = Info.KOSTL; + lineafter.WHCode = Item.LGORT; + lineafter.Quantity = Item.LINGYSL;//领用数量 + lineafter.Amount = 0; + lineafter.Memo = ""; + lineafter.Status = "2"; + lineafter.INVCode = Item.MATNR_JS;//转换后物料编码 + lineafter.SOCode = ""; + lineafter.SOSequence = ""; + lineafter.CreatePerson = Info.XINGMING; + lineafter.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + lineafter.ExtensionID = ExtensionID; + lineafter.MUSER = "JOB"; + lineafter.MUSERName = "JOB"; + lineafter.MTIME = DateTime.Now; + lineafter.WorkPoint = Info.WERKS;//站点 + lineafter.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 + if (isNew == true) + { + db.ICSMTDOC.InsertOnSubmit(linebefore); + } db.SubmitChanges(); + LineNum += 10; } else { - ExtensionID = Extensionline.ID; - } + var SubLineInfo = SubLineInfoList.Where(a => a.DANJU == Item.DANJU); + foreach (SAPGetDocInfo.ZWEBS_GERNR SubInfo in SubLineInfo) + { + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~" + SubInfo.GERNR + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; + } + else + { + Colspan = "~~" + SubInfo.GERNR + "~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionID; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; - var line = db.ICSTransfer.SingleOrDefault(a => a.TransferNO == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); - if (line == null) - { - isNew = true; - line = new Frame.Data.Entity.ICSTransfer(); - line.ID = AppConfig.GetGuid(); - line.TransferQuantity = 0; - line.TransferNO = Item.DANJU;//调拨单号 - line.Sequence = Item.POSNR;//调拨单行号 - line.InvCode = Item.MATNR;//物料编码 - } - line.FromWarehouseCode = Item.LGORT; - line.FromLocationCode = ""; - line.ToWarehouseCode = Item.LGORT_JS; - line.ToLocationCode = ""; - line.Status = "2"; - line.Quantity = Item.LINGYSL;//领用数量 - line.Amount = 0; - line.Type = "1"; - line.CreatePerson = Info.XINGMING; - line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 - line.ExtensionID = ExtensionID; - line.MUSER = "JOB"; - line.MUSERName = "JOB"; - line.MTIME = DateTime.Now; - line.WorkPoint = Info.WERKS;//站点 - line.EATTRIBUTE1 = Item.WERKS_JS;//接收站点 - - //单据类型 - line.OrderType = Info.LEIXING; - //类型描述 - line.TypeDescribe = Info.MIAOSHU; - //备注 - line.Remarks = Info.BEIZHU; - //人员号 - line.PersonNumber = Info.PERNR; - //物料描述 - line.InvDescribe = Item.MAKTX; - //基本计量单位 - line.Unit = Item.MEINS; - //特殊库存标识 - line.StockIndicator = Item.SOBKZ; - //接收物料号 - line.ReceiveInvCode = Item.MATNR_JS; - //接受物料描述 - line.ReceiveInvDescribe = Item.MAKTX_JS; - //接受库存标识 - line.ReceiveStock = Item.SOBKZ_JS; - //接受销售订单 - line.ReceiveSales = Item.VBELN_JS; - //接受行号 - line.ReceiveSequence = Item.POSNR_JS; - //备注2 - line.Remark2 = Item.BEIZHU2; - //序列号参数 - line.IsSerialNumber = Item.SERNP; - - - - - - - if (isNew == true) - { - db.ICSTransfer.InsertOnSubmit(line); - } - db.SubmitChanges(); - } - db.Transaction.Commit(); + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } - db.Connection.Close(); - } - catch (Exception ex) - { - db.Transaction.Rollback(); - #region 调用SAP接口反写修改NOTMODIFY栏位,取消单据在SAP的锁定状态(接口暂未提供) - string ErrorDanJU = Info.DANJU; - #endregion - log.Error(ex.ToString()); - } - } - #endregion + var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); + if (linebefore == null) + { + isNew = true; + linebefore = new Frame.Data.Entity.ICSMTDOC(); + linebefore.ID = AppConfig.GetGuid(); + linebefore.MTDOCQuantity = 0; + linebefore.MTDOCCode = Item.DANJU;//形态转换单号 + linebefore.SAPSequence = Item.POSNR; + linebefore.Sequence = LineNum.ToString();//形态转换单行号 + linebefore.MTDOCType = "1";//转换前 + } + linebefore.DepCode = Info.KOSTL; + linebefore.WHCode = Item.LGORT; + linebefore.Quantity = Item.LINGYSL;//领用数量 + linebefore.Amount = 0; + linebefore.Memo = ""; + linebefore.Status = "2"; + linebefore.INVCode = Item.MATNR;//转换前物料编码 + linebefore.SOCode = ""; + linebefore.SOSequence = ""; + linebefore.CreatePerson = Info.XINGMING; + linebefore.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + linebefore.ExtensionID = ExtensionID; + linebefore.MUSER = "JOB"; + linebefore.MUSERName = "JOB"; + linebefore.MTIME = DateTime.Now; + linebefore.WorkPoint = Info.WERKS;//站点 + linebefore.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 + if (isNew == true) + { + db.ICSMTDOC.InsertOnSubmit(linebefore); + } + db.SubmitChanges(); - #region 形态转换单同步(物料)(单据类型:13) - HeadInfo = HeadInfoList.Where(a => a.LEIXING == "13"); - foreach (SAPGetDocInfo.ZWMS_SK_HEAD Info in HeadInfo) - { - try - { - db.Connection.Open(); - db.Transaction = db.Connection.BeginTransaction(); - var ItemInfo = ItemInfoList.Where(a => a.DANJU == Info.DANJU); - foreach (SAPGetDocInfo.ZWEBSERVICE_ITEM Item in ItemInfo) - { - string ExtensionID = ""; - bool isNew = false; - string Colspan = Item.VBELN_VA + "~" + Item.SERNP + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; - var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); - if (Extensionline == null) - { - ExtensionID = AppConfig.GetGuid(); - Extensionline = new ICSExtension(); - Extensionline.ID = ExtensionID; - Extensionline.BatchCode = Item.SERNP; - Extensionline.Version = ""; - Extensionline.Brand = Item.POSNR_VA; - Extensionline.ProjectCode = Item.VBELN_VA; - Extensionline.cFree1 = ""; - Extensionline.cFree2 = ""; - Extensionline.cFree3 = ""; - Extensionline.cFree4 = ""; - Extensionline.cFree5 = ""; - Extensionline.cFree6 = ""; - Extensionline.cFree7 = ""; - Extensionline.cFree8 = ""; - Extensionline.cFree9 = ""; - Extensionline.cFree10 = ""; - Extensionline.Colspan = Colspan; - Extensionline.MTIME = DateTime.Now; - Extensionline.MUSER = "JOB"; - Extensionline.MUSERName = "JOB"; - Extensionline.WorkPoint = Info.WERKS; - - db.ICSExtension.InsertOnSubmit(Extensionline); - db.SubmitChanges(); - } - else - { - ExtensionID = Extensionline.ID; - } + var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); + if (lineafter == null) + { + isNew = true; + lineafter = new Frame.Data.Entity.ICSMTDOC(); + lineafter.ID = AppConfig.GetGuid(); + lineafter.MTDOCQuantity = 0; + lineafter.MTDOCCode = Item.DANJU;//形态转换单号 + lineafter.Sequence = LineNum.ToString();//形态转换单行号 + lineafter.SAPSequence = Item.POSNR; + lineafter.MTDOCType = "2";//转换后 + } + lineafter.DepCode = Info.KOSTL; + lineafter.WHCode = Item.LGORT; + lineafter.Quantity = Item.LINGYSL;//领用数量 + lineafter.Amount = 0; + lineafter.Memo = ""; + lineafter.Status = "2"; + lineafter.INVCode = Item.MATNR_JS;//转换后物料编码 + lineafter.SOCode = ""; + lineafter.SOSequence = ""; + lineafter.CreatePerson = Info.XINGMING; + lineafter.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + lineafter.ExtensionID = ExtensionID; + lineafter.MUSER = "JOB"; + lineafter.MUSERName = "JOB"; + lineafter.MTIME = DateTime.Now; + lineafter.WorkPoint = Info.WERKS;//站点 + lineafter.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 + if (isNew == true) + { + db.ICSMTDOC.InsertOnSubmit(linebefore); + } + db.SubmitChanges(); + LineNum += 10; + } - var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); - if (linebefore == null) - { - isNew = true; - linebefore = new Frame.Data.Entity.ICSMTDOC(); - linebefore.ID = AppConfig.GetGuid(); - linebefore.MTDOCQuantity = 0; - linebefore.MTDOCCode = Item.DANJU;//形态转换单号 - linebefore.Sequence = Item.POSNR;//形态转换单行号 - linebefore.MTDOCType = "1";//转换前 } - linebefore.DepCode = Info.KOSTL; - linebefore.WHCode = Item.LGORT; - linebefore.Quantity = Item.LINGYSL;//领用数量 - linebefore.Amount = 0; - linebefore.Memo = ""; - linebefore.Status = "2"; - linebefore.INVCode = Item.MATNR;//转换前物料编码 - linebefore.SOCode = ""; - linebefore.SOSequence = ""; - linebefore.CreatePerson = Info.XINGMING; - linebefore.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 - linebefore.ExtensionID = ExtensionID; - linebefore.MUSER = "JOB"; - linebefore.MUSERName = "JOB"; - linebefore.MTIME = DateTime.Now; - linebefore.WorkPoint = Info.WERKS;//站点 - linebefore.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 - if (isNew == true) - { - db.ICSMTDOC.InsertOnSubmit(linebefore); - } - db.SubmitChanges(); - var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); - if (lineafter == null) - { - isNew = true; - lineafter = new Frame.Data.Entity.ICSMTDOC(); - lineafter.ID = AppConfig.GetGuid(); - lineafter.MTDOCQuantity = 0; - lineafter.MTDOCCode = Item.DANJU;//形态转换单号 - lineafter.Sequence = Item.POSNR;//形态转换单行号 - lineafter.MTDOCType = "2";//转换后 - } - lineafter.DepCode = Info.KOSTL; - lineafter.WHCode = Item.LGORT; - lineafter.Quantity = Item.LINGYSL;//领用数量 - lineafter.Amount = 0; - lineafter.Memo = ""; - lineafter.Status = "2"; - lineafter.INVCode = Item.MATNR_JS;//转换后物料编码 - lineafter.SOCode = ""; - lineafter.SOSequence = ""; - lineafter.CreatePerson = Info.XINGMING; - lineafter.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 - lineafter.ExtensionID = ExtensionID; - lineafter.MUSER = "JOB"; - lineafter.MUSERName = "JOB"; - lineafter.MTIME = DateTime.Now; - lineafter.WorkPoint = Info.WERKS;//站点 - lineafter.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 - if (isNew == true) - { - db.ICSMTDOC.InsertOnSubmit(linebefore); - } - db.SubmitChanges(); } db.Transaction.Commit(); @@ -1279,147 +2046,370 @@ namespace ICSSoft.FromERP db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); var ItemInfo = ItemInfoList.Where(a => a.DANJU == Info.DANJU); + int LineNum = 10; foreach (SAPGetDocInfo.ZWEBSERVICE_ITEM Item in ItemInfo) { - string ExtensionBefore = ""; - string ExtensionAfter = ""; - bool isNew = false; - string Colspan = Item.VBELN_VA + "~" + Item.SERNP + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; - string ColspanAfter = Item.VBELN_JS + "~" + Item.SERNP + "~~" + Item.POSNR_JS + "~~~~~~~~~~"; - var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); - if (Extensionline == null) + if (Item.SERNP != "ZS01") { - ExtensionBefore = AppConfig.GetGuid(); - Extensionline = new ICSExtension(); - Extensionline.ID = ExtensionBefore; - Extensionline.BatchCode = Item.SERNP; - Extensionline.Version = ""; - Extensionline.Brand = Item.POSNR_VA; - Extensionline.ProjectCode = Item.VBELN_VA; - Extensionline.cFree1 = ""; - Extensionline.cFree2 = ""; - Extensionline.cFree3 = ""; - Extensionline.cFree4 = ""; - Extensionline.cFree5 = ""; - Extensionline.cFree6 = ""; - Extensionline.cFree7 = ""; - Extensionline.cFree8 = ""; - Extensionline.cFree9 = ""; - Extensionline.cFree10 = ""; - Extensionline.Colspan = Colspan; - Extensionline.MTIME = DateTime.Now; - Extensionline.MUSER = "JOB"; - Extensionline.MUSERName = "JOB"; - Extensionline.WorkPoint = Info.WERKS; - - db.ICSExtension.InsertOnSubmit(Extensionline); + string ExtensionBefore = ""; + string ExtensionAfter = ""; + bool isNew = false; + string Colspan; + string ColspanAfter; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~~~~" + Item.POSNR_VA + "~~~~~~~~~~"; + ColspanAfter = Item.VBELN_JS + "~~~" + Item.POSNR_JS + "~~~~~~~~~~"; + } + else + { + Colspan = "~~~~~000000~~~~~~~~~~"; + ColspanAfter = "~~~~~000000~~~~~~~~~~"; + } + Colspan = Item.VBELN_VA + "~" + Item.SERNP + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; + + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionBefore = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionBefore; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionBefore = Extensionline.ID; + } + var ExtensionlineAfter = db.ICSExtension.SingleOrDefault(a => a.Colspan == ColspanAfter && a.WorkPoint == Info.WERKS); + if (ExtensionlineAfter == null) + { + ExtensionAfter = AppConfig.GetGuid(); + ExtensionlineAfter = new ICSExtension(); + ExtensionlineAfter.ID = ExtensionAfter; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_JS; + Extensionline.ProjectCode = Item.VBELN_JS; + } + else + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + ExtensionlineAfter.cFree1 = ""; + ExtensionlineAfter.cFree2 = ""; + ExtensionlineAfter.cFree3 = ""; + ExtensionlineAfter.cFree4 = ""; + ExtensionlineAfter.cFree5 = ""; + ExtensionlineAfter.cFree6 = ""; + ExtensionlineAfter.cFree7 = ""; + ExtensionlineAfter.cFree8 = ""; + ExtensionlineAfter.cFree9 = ""; + ExtensionlineAfter.cFree10 = ""; + ExtensionlineAfter.Colspan = ColspanAfter; + ExtensionlineAfter.MTIME = DateTime.Now; + ExtensionlineAfter.MUSER = "JOB"; + ExtensionlineAfter.MUSERName = "JOB"; + ExtensionlineAfter.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionAfter = ExtensionlineAfter.ID; + } + + var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); + if (linebefore == null) + { + isNew = true; + linebefore = new Frame.Data.Entity.ICSMTDOC(); + linebefore.ID = AppConfig.GetGuid(); + linebefore.MTDOCQuantity = 0; + linebefore.MTDOCCode = Item.DANJU;//形态转换单号 + linebefore.SAPSequence = Item.POSNR; + linebefore.Sequence = LineNum.ToString(); //形态转换单行号 + linebefore.MTDOCType = "1";//转换前 + } + linebefore.DepCode = Info.KOSTL; + linebefore.WHCode = Item.LGORT; + linebefore.Quantity = Item.LINGYSL;//领用数量 + linebefore.Amount = 0; + linebefore.Memo = Item.SOBKZ_JS; + linebefore.Status = "2"; + linebefore.INVCode = Item.MATNR;//转换前物料编码 + linebefore.SOCode = ""; + linebefore.SOSequence = ""; + linebefore.CreatePerson = Info.XINGMING; + linebefore.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + linebefore.ExtensionID = ExtensionBefore; + linebefore.MUSER = "JOB"; + linebefore.MUSERName = "JOB"; + linebefore.MTIME = DateTime.Now; + linebefore.WorkPoint = Info.WERKS;//站点 + linebefore.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 + if (isNew == true) + { + db.ICSMTDOC.InsertOnSubmit(linebefore); + } db.SubmitChanges(); - } - else - { - ExtensionBefore = Extensionline.ID; - } - var ExtensionlineAfter = db.ICSExtension.SingleOrDefault(a => a.Colspan == ColspanAfter && a.WorkPoint == Info.WERKS); - if (ExtensionlineAfter == null) - { - ExtensionAfter = AppConfig.GetGuid(); - ExtensionlineAfter = new ICSExtension(); - ExtensionlineAfter.ID = ExtensionAfter; - ExtensionlineAfter.BatchCode = Item.SERNP; - ExtensionlineAfter.Version = ""; - ExtensionlineAfter.Brand = Item.POSNR_JS; - ExtensionlineAfter.ProjectCode = Item.VBELN_JS; - ExtensionlineAfter.cFree1 = ""; - ExtensionlineAfter.cFree2 = ""; - ExtensionlineAfter.cFree3 = ""; - ExtensionlineAfter.cFree4 = ""; - ExtensionlineAfter.cFree5 = ""; - ExtensionlineAfter.cFree6 = ""; - ExtensionlineAfter.cFree7 = ""; - ExtensionlineAfter.cFree8 = ""; - ExtensionlineAfter.cFree9 = ""; - ExtensionlineAfter.cFree10 = ""; - ExtensionlineAfter.Colspan = ColspanAfter; - ExtensionlineAfter.MTIME = DateTime.Now; - ExtensionlineAfter.MUSER = "JOB"; - ExtensionlineAfter.MUSERName = "JOB"; - ExtensionlineAfter.WorkPoint = Info.WERKS; - - db.ICSExtension.InsertOnSubmit(Extensionline); + + var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); + if (lineafter == null) + { + isNew = true; + lineafter = new Frame.Data.Entity.ICSMTDOC(); + lineafter.ID = AppConfig.GetGuid(); + lineafter.MTDOCQuantity = 0; + lineafter.MTDOCCode = Item.DANJU;//形态转换单号 + lineafter.SAPSequence = Item.POSNR; + lineafter.Sequence = LineNum.ToString(); //形态转换单行号 + lineafter.MTDOCType = "2";//转换后 + } + lineafter.DepCode = Info.KOSTL; + lineafter.WHCode = Item.LGORT; + lineafter.Quantity = Item.LINGYSL;//领用数量 + lineafter.Amount = 0; + lineafter.Memo = Item.SOBKZ_JS; + lineafter.Status = "2"; + lineafter.INVCode = Item.MATNR;//转换后物料编码 + lineafter.SOCode = ""; + lineafter.SOSequence = ""; + lineafter.CreatePerson = Info.XINGMING; + lineafter.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + lineafter.ExtensionID = ExtensionAfter; + lineafter.MUSER = "JOB"; + lineafter.MUSERName = "JOB"; + lineafter.MTIME = DateTime.Now; + lineafter.WorkPoint = Info.WERKS;//站点 + lineafter.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 + if (isNew == true) + { + db.ICSMTDOC.InsertOnSubmit(linebefore); + } db.SubmitChanges(); + LineNum += 10; } else { - ExtensionAfter = ExtensionlineAfter.ID; - } + var SubLineInfo = SubLineInfoList.Where(a => a.DANJU == Item.DANJU); + foreach (SAPGetDocInfo.ZWEBS_GERNR SubInfo in SubLineInfo) + { + string ExtensionBefore = ""; + string ExtensionAfter = ""; + bool isNew = false; + string Colspan; + string ColspanAfter; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~" + SubInfo.GERNR + Item.POSNR_VA + "~~~~~~~~~~"; + ColspanAfter = Item.VBELN_JS + "~" + SubInfo.GERNR + Item.POSNR_JS + "~~~~~~~~~~"; + } + else + { + Colspan = "~~~~~000000~~~~~~~~~~"; + ColspanAfter = "~~~~~000000~~~~~~~~~~"; + } + Colspan = Item.VBELN_VA + "~" + Item.SERNP + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; + + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionBefore = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionBefore; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionBefore = Extensionline.ID; + } + var ExtensionlineAfter = db.ICSExtension.SingleOrDefault(a => a.Colspan == ColspanAfter && a.WorkPoint == Info.WERKS); + if (ExtensionlineAfter == null) + { + ExtensionAfter = AppConfig.GetGuid(); + ExtensionlineAfter = new ICSExtension(); + ExtensionlineAfter.ID = ExtensionAfter; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_JS; + Extensionline.ProjectCode = Item.VBELN_JS; + } + else + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + ExtensionlineAfter.cFree1 = ""; + ExtensionlineAfter.cFree2 = ""; + ExtensionlineAfter.cFree3 = ""; + ExtensionlineAfter.cFree4 = ""; + ExtensionlineAfter.cFree5 = ""; + ExtensionlineAfter.cFree6 = ""; + ExtensionlineAfter.cFree7 = ""; + ExtensionlineAfter.cFree8 = ""; + ExtensionlineAfter.cFree9 = ""; + ExtensionlineAfter.cFree10 = ""; + ExtensionlineAfter.Colspan = ColspanAfter; + ExtensionlineAfter.MTIME = DateTime.Now; + ExtensionlineAfter.MUSER = "JOB"; + ExtensionlineAfter.MUSERName = "JOB"; + ExtensionlineAfter.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionAfter = ExtensionlineAfter.ID; + } + + var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); + if (linebefore == null) + { + isNew = true; + linebefore = new Frame.Data.Entity.ICSMTDOC(); + linebefore.ID = AppConfig.GetGuid(); + linebefore.MTDOCQuantity = 0; + linebefore.MTDOCCode = Item.DANJU;//形态转换单号 + linebefore.SAPSequence = Item.POSNR; + linebefore.Sequence = LineNum.ToString(); //形态转换单行号 + linebefore.MTDOCType = "1";//转换前 + } + linebefore.DepCode = Info.KOSTL; + linebefore.WHCode = Item.LGORT; + linebefore.Quantity = Item.LINGYSL;//领用数量 + linebefore.Amount = 0; + linebefore.Memo = Item.SOBKZ_JS; + linebefore.Status = "2"; + linebefore.INVCode = Item.MATNR;//转换前物料编码 + linebefore.SOCode = ""; + linebefore.SOSequence = ""; + linebefore.CreatePerson = Info.XINGMING; + linebefore.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + linebefore.ExtensionID = ExtensionBefore; + linebefore.MUSER = "JOB"; + linebefore.MUSERName = "JOB"; + linebefore.MTIME = DateTime.Now; + linebefore.WorkPoint = Info.WERKS;//站点 + linebefore.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 + if (isNew == true) + { + db.ICSMTDOC.InsertOnSubmit(linebefore); + } + db.SubmitChanges(); + + var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); + if (lineafter == null) + { + isNew = true; + lineafter = new Frame.Data.Entity.ICSMTDOC(); + lineafter.ID = AppConfig.GetGuid(); + lineafter.MTDOCQuantity = 0; + lineafter.MTDOCCode = Item.DANJU;//形态转换单号 + lineafter.SAPSequence = Item.POSNR; + lineafter.Sequence = LineNum.ToString(); //形态转换单行号 + lineafter.MTDOCType = "2";//转换后 + } + lineafter.DepCode = Info.KOSTL; + lineafter.WHCode = Item.LGORT; + lineafter.Quantity = Item.LINGYSL;//领用数量 + lineafter.Amount = 0; + lineafter.Memo = Item.SOBKZ_JS; + lineafter.Status = "2"; + lineafter.INVCode = Item.MATNR;//转换后物料编码 + lineafter.SOCode = ""; + lineafter.SOSequence = ""; + lineafter.CreatePerson = Info.XINGMING; + lineafter.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + lineafter.ExtensionID = ExtensionAfter; + lineafter.MUSER = "JOB"; + lineafter.MUSERName = "JOB"; + lineafter.MTIME = DateTime.Now; + lineafter.WorkPoint = Info.WERKS;//站点 + lineafter.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 + if (isNew == true) + { + db.ICSMTDOC.InsertOnSubmit(linebefore); + } + db.SubmitChanges(); + LineNum += 10; - var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); - if (linebefore == null) - { - isNew = true; - linebefore = new Frame.Data.Entity.ICSMTDOC(); - linebefore.ID = AppConfig.GetGuid(); - linebefore.MTDOCQuantity = 0; - linebefore.MTDOCCode = Item.DANJU;//形态转换单号 - linebefore.Sequence = Item.POSNR;//形态转换单行号 - linebefore.MTDOCType = "1";//转换前 - } - linebefore.DepCode = Info.KOSTL; - linebefore.WHCode = Item.LGORT; - linebefore.Quantity = Item.LINGYSL;//领用数量 - linebefore.Amount = 0; - linebefore.Memo = Item.SOBKZ_JS; - linebefore.Status = "2"; - linebefore.INVCode = Item.MATNR;//转换前物料编码 - linebefore.SOCode = ""; - linebefore.SOSequence = ""; - linebefore.CreatePerson = Info.XINGMING; - linebefore.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 - linebefore.ExtensionID = ExtensionBefore; - linebefore.MUSER = "JOB"; - linebefore.MUSERName = "JOB"; - linebefore.MTIME = DateTime.Now; - linebefore.WorkPoint = Info.WERKS;//站点 - linebefore.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 - if (isNew == true) - { - db.ICSMTDOC.InsertOnSubmit(linebefore); - } - db.SubmitChanges(); + } - var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); - if (lineafter == null) - { - isNew = true; - lineafter = new Frame.Data.Entity.ICSMTDOC(); - lineafter.ID = AppConfig.GetGuid(); - lineafter.MTDOCQuantity = 0; - lineafter.MTDOCCode = Item.DANJU;//形态转换单号 - lineafter.Sequence = Item.POSNR;//形态转换单行号 - lineafter.MTDOCType = "2";//转换后 - } - lineafter.DepCode = Info.KOSTL; - lineafter.WHCode = Item.LGORT; - lineafter.Quantity = Item.LINGYSL;//领用数量 - lineafter.Amount = 0; - lineafter.Memo = Item.SOBKZ_JS; - lineafter.Status = "2"; - lineafter.INVCode = Item.MATNR;//转换后物料编码 - lineafter.SOCode = ""; - lineafter.SOSequence = ""; - lineafter.CreatePerson = Info.XINGMING; - lineafter.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 - lineafter.ExtensionID = ExtensionAfter; - lineafter.MUSER = "JOB"; - lineafter.MUSERName = "JOB"; - lineafter.MTIME = DateTime.Now; - lineafter.WorkPoint = Info.WERKS;//站点 - lineafter.EATTRIBUTE1 = Info.LEIXING;//单据类型 12:按单转移 13:按物料转移 - if (isNew == true) - { - db.ICSMTDOC.InsertOnSubmit(linebefore); } - db.SubmitChanges(); + } db.Transaction.Commit(); @@ -1445,147 +2435,343 @@ namespace ICSSoft.FromERP db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); var ItemInfo = ItemInfoList.Where(a => a.DANJU == Info.DANJU); + int LineNum = 10; foreach (SAPGetDocInfo.ZWEBSERVICE_ITEM Item in ItemInfo) { - string ExtensionID = ""; - bool isNew = false; - string Colspan = Item.VBELN_VA + "~" + Item.SERNP + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; - var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); - if (Extensionline == null) - { - ExtensionID = AppConfig.GetGuid(); - Extensionline = new ICSExtension(); - Extensionline.ID = ExtensionID; - Extensionline.BatchCode = Item.SERNP; - Extensionline.Version = ""; - Extensionline.Brand = Item.POSNR_VA; - Extensionline.ProjectCode = Item.VBELN_VA; - Extensionline.cFree1 = ""; - Extensionline.cFree2 = ""; - Extensionline.cFree3 = ""; - Extensionline.cFree4 = ""; - Extensionline.cFree5 = ""; - Extensionline.cFree6 = ""; - Extensionline.cFree7 = ""; - Extensionline.cFree8 = ""; - Extensionline.cFree9 = ""; - Extensionline.cFree10 = ""; - Extensionline.Colspan = Colspan; - Extensionline.MTIME = DateTime.Now; - Extensionline.MUSER = "JOB"; - Extensionline.MUSERName = "JOB"; - Extensionline.WorkPoint = Info.WERKS; - - db.ICSExtension.InsertOnSubmit(Extensionline); - db.SubmitChanges(); - } - else - { - ExtensionID = Extensionline.ID; - } - if (Info.LEIXING == "09") + if (Item.SERNP != "ZS01") { - var line = db.ICSOtherOut.SingleOrDefault(a => a.OutCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); - if (line == null) + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") { - isNew = true; - line = new Frame.Data.Entity.ICSOtherOut(); - line.ID = AppConfig.GetGuid(); - line.OutQuantity = 0; - line.OutCode = Item.DANJU;//其他出库单号 - line.Sequence = Item.POSNR;//其他出库单行号 - line.InvCode = Item.MATNR;//物料编码 + Colspan = Item.VBELN_VA + "~~~~" + Item.POSNR_VA + "~~~~~~~~~~"; } - line.WorkPoint = Info.WERKS;//站点 - line.CreatePerson = Info.XINGMING; - line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 - line.Quantity = Item.LINGYSL;//领用数量 - line.Amount = 0; - line.WHCode = Item.LGORT;//仓库 - line.Status = "1"; - line.MUSER = "JOB"; - line.MUSERName = "JOB"; - line.MTIME = DateTime.Now; - line.ExtensionID = ExtensionID; + else + { + Colspan = "~~~~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionID; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = ""; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; + + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } + if (Info.LEIXING == "09") + { + var line = db.ICSOtherOut.SingleOrDefault(a => a.OutCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSOtherOut(); + line.ID = AppConfig.GetGuid(); + line.OutQuantity = 0; + line.OutCode = Item.DANJU;//其他出库单号 + line.SAPSequence = Item.POSNR; + line.Sequence = LineNum.ToString();//其他出库单行号 + line.InvCode = Item.MATNR;//物料编码 + } + line.WorkPoint = Info.WERKS;//站点 + line.CreatePerson = Info.XINGMING; + line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + line.Quantity = Item.LINGYSL;//领用数量 + line.Amount = 0; + line.WHCode = Item.LGORT;//仓库 + line.Status = "1"; + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.ExtensionID = ExtensionID; - //单据类型 - line.OrderType = Info.LEIXING; - //类型描述 - line.TypeDescribe = Info.MIAOSHU; - //成本中心 - line.CostCenter = Info.KOSTL; - //备注 - line.Remarks = Info.BEIZHU; - //人员号 - line.PersonNumber = Info.PERNR; - //物料描述 - line.InvDescribe = Item.MAKTX; - //基本计量单位 - line.Unit = Item.MEINS; - //特殊库存标识 - line.StockIndicator = Item.SOBKZ; - //序列号参数 - line.IsSerialNumber = Item.SERNP; + //单据类型 + line.OrderType = Info.LEIXING; + //类型描述 + line.TypeDescribe = Info.MIAOSHU; + //成本中心 + line.CostCenter = Info.KOSTL; + //备注 + line.Remarks = Info.BEIZHU; + //人员号 + line.PersonNumber = Info.PERNR; + //物料描述 + line.InvDescribe = Item.MAKTX; + //基本计量单位 + line.Unit = Item.MEINS; + //特殊库存标识 + line.StockIndicator = Item.SOBKZ; + //序列号参数 + line.IsSerialNumber = Item.SERNP; - if (isNew == true) + if (isNew == true) + { + db.ICSOtherOut.InsertOnSubmit(line); + } + db.SubmitChanges(); + LineNum += 10; + } + else { - db.ICSOtherOut.InsertOnSubmit(line); + var line = db.ICSOtherIn.SingleOrDefault(a => a.InCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSOtherIn(); + line.ID = AppConfig.GetGuid(); + line.InQuantity = 0; + line.InCode = Item.DANJU;//其他出库单号 + line.Sequence = LineNum.ToString();//其他出库单行号 + line.SAPSequence = Item.POSNR; + line.InvCode = Item.MATNR;//物料编码 + } + line.WorkPoint = Info.WERKS;//站点 + line.CreatePerson = Info.XINGMING; + line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + line.Quantity = Item.LINGYSL;//领用数量 + line.Amount = 0; + line.WHCode = Item.LGORT;//仓库 + line.Status = "1"; + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.ExtensionID = ExtensionID; + + //单据类型 + line.OrderType = Info.LEIXING; + //类型描述 + line.TypeDescribe = Info.MIAOSHU; + //成本中心 + line.CostCenter = Info.KOSTL; + //备注 + line.Remarks = Info.BEIZHU; + //人员号 + line.PersonNumber = Info.PERNR; + //物料描述 + line.InvDescribe = Item.MAKTX; + //基本计量单位 + line.Unit = Item.MEINS; + //特殊库存标识 + line.StockIndicator = Item.SOBKZ; + //序列号参数 + line.IsSerialNumber = Item.SERNP; + + if (isNew == true) + { + db.ICSOtherIn.InsertOnSubmit(line); + } + db.SubmitChanges(); + LineNum += 10; } - db.SubmitChanges(); } else { - var line = db.ICSOtherIn.SingleOrDefault(a => a.InCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); - if (line == null) + var SubLineInfo = SubLineInfoList.Where(a => a.DANJU == Item.DANJU); + foreach (SAPGetDocInfo.ZWEBS_GERNR SubInfo in SubLineInfo) { - isNew = true; - line = new Frame.Data.Entity.ICSOtherIn(); - line.ID = AppConfig.GetGuid(); - line.InQuantity = 0; - line.InCode = Item.DANJU;//其他出库单号 - line.Sequence = Item.POSNR;//其他出库单行号 - line.InvCode = Item.MATNR;//物料编码 - } - line.WorkPoint = Info.WERKS;//站点 - line.CreatePerson = Info.XINGMING; - line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 - line.Quantity = Item.LINGYSL;//领用数量 - line.Amount = 0; - line.WHCode = Item.LGORT;//仓库 - line.Status = "1"; - line.MUSER = "JOB"; - line.MUSERName = "JOB"; - line.MTIME = DateTime.Now; - line.ExtensionID = ExtensionID; - - //单据类型 - line.OrderType = Info.LEIXING; - //类型描述 - line.TypeDescribe = Info.MIAOSHU; - //成本中心 - line.CostCenter = Info.KOSTL; - //备注 - line.Remarks = Info.BEIZHU; - //人员号 - line.PersonNumber = Info.PERNR; - //物料描述 - line.InvDescribe = Item.MAKTX; - //基本计量单位 - line.Unit = Item.MEINS; - //特殊库存标识 - line.StockIndicator = Item.SOBKZ; - //序列号参数 - line.IsSerialNumber = Item.SERNP; + string ExtensionID = ""; + bool isNew = false; + string Colspan = ""; + if (Item.SOBKZ == "E") + { + Colspan = Item.VBELN_VA + "~" + SubInfo.GERNR + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; + } + else + { + Colspan = "~~" + SubInfo.GERNR + "~~000000~~~~~~~~~~"; + } + var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); + if (Extensionline == null) + { + ExtensionID = AppConfig.GetGuid(); + Extensionline = new ICSExtension(); + Extensionline.ID = ExtensionID; + if (Item.SOBKZ == "E") + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = Item.POSNR_VA; + Extensionline.ProjectCode = Item.VBELN_VA; + } + else + { + Extensionline.BatchCode = SubInfo.GERNR; + Extensionline.Version = ""; + Extensionline.Brand = "000000"; + Extensionline.ProjectCode = ""; + } + Extensionline.cFree1 = ""; + Extensionline.cFree2 = ""; + Extensionline.cFree3 = ""; + Extensionline.cFree4 = ""; + Extensionline.cFree5 = ""; + Extensionline.cFree6 = ""; + Extensionline.cFree7 = ""; + Extensionline.cFree8 = ""; + Extensionline.cFree9 = ""; + Extensionline.cFree10 = ""; + Extensionline.Colspan = Colspan; + Extensionline.MTIME = DateTime.Now; + Extensionline.MUSER = "JOB"; + Extensionline.MUSERName = "JOB"; + Extensionline.WorkPoint = Info.WERKS; - if (isNew == true) - { - db.ICSOtherIn.InsertOnSubmit(line); + db.ICSExtension.InsertOnSubmit(Extensionline); + db.SubmitChanges(); + } + else + { + ExtensionID = Extensionline.ID; + } + if (Info.LEIXING == "09") + { + var line = db.ICSOtherOut.SingleOrDefault(a => a.OutCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSOtherOut(); + line.ID = AppConfig.GetGuid(); + line.OutQuantity = 0; + line.OutCode = Item.DANJU;//其他出库单号 + line.SAPSequence = Item.POSNR; + line.Sequence = LineNum.ToString();//其他出库单行号 + line.InvCode = Item.MATNR;//物料编码 + } + line.WorkPoint = Info.WERKS;//站点 + line.CreatePerson = Info.XINGMING; + line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + line.Quantity = Item.LINGYSL;//领用数量 + line.Amount = 0; + line.WHCode = Item.LGORT;//仓库 + line.Status = "1"; + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.ExtensionID = ExtensionID; + + + //单据类型 + line.OrderType = Info.LEIXING; + //类型描述 + line.TypeDescribe = Info.MIAOSHU; + //成本中心 + line.CostCenter = Info.KOSTL; + //备注 + line.Remarks = Info.BEIZHU; + //人员号 + line.PersonNumber = Info.PERNR; + //物料描述 + line.InvDescribe = Item.MAKTX; + //基本计量单位 + line.Unit = Item.MEINS; + //特殊库存标识 + line.StockIndicator = Item.SOBKZ; + //序列号参数 + line.IsSerialNumber = Item.SERNP; + + + + if (isNew == true) + { + db.ICSOtherOut.InsertOnSubmit(line); + } + db.SubmitChanges(); + LineNum += 10; + } + else + { + var line = db.ICSOtherIn.SingleOrDefault(a => a.InCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + if (line == null) + { + isNew = true; + line = new Frame.Data.Entity.ICSOtherIn(); + line.ID = AppConfig.GetGuid(); + line.InQuantity = 0; + line.InCode = Item.DANJU;//其他出库单号 + line.Sequence = LineNum.ToString();//其他出库单行号 + line.SAPSequence = Item.POSNR; + line.InvCode = Item.MATNR;//物料编码 + } + line.WorkPoint = Info.WERKS;//站点 + line.CreatePerson = Info.XINGMING; + line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 + line.Quantity = Item.LINGYSL;//领用数量 + line.Amount = 0; + line.WHCode = Item.LGORT;//仓库 + line.Status = "1"; + line.MUSER = "JOB"; + line.MUSERName = "JOB"; + line.MTIME = DateTime.Now; + line.ExtensionID = ExtensionID; + + //单据类型 + line.OrderType = Info.LEIXING; + //类型描述 + line.TypeDescribe = Info.MIAOSHU; + //成本中心 + line.CostCenter = Info.KOSTL; + //备注 + line.Remarks = Info.BEIZHU; + //人员号 + line.PersonNumber = Info.PERNR; + //物料描述 + line.InvDescribe = Item.MAKTX; + //基本计量单位 + line.Unit = Item.MEINS; + //特殊库存标识 + line.StockIndicator = Item.SOBKZ; + //序列号参数 + line.IsSerialNumber = Item.SERNP; + + if (isNew == true) + { + db.ICSOtherIn.InsertOnSubmit(line); + } + db.SubmitChanges(); + LineNum += 10; + } } - db.SubmitChanges(); + } + } db.Transaction.Commit(); diff --git a/WMS-BS/NFine.Web/Configs/database.config b/WMS-BS/NFine.Web/Configs/database.config index 894039d..19c0be7 100644 --- a/WMS-BS/NFine.Web/Configs/database.config +++ b/WMS-BS/NFine.Web/Configs/database.config @@ -1,8 +1,8 @@  - + - +