diff --git a/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.Designer.cs b/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.Designer.cs
index cc7082d..f3b19c2 100644
--- a/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.Designer.cs
+++ b/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.Designer.cs
@@ -77,7 +77,7 @@
this.label3.Location = new System.Drawing.Point(3, 32);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(100, 20);
- this.label3.Text = "装箱单号:";
+ this.label3.Text = "托盘号:";
//
// btnSubmit
//
@@ -104,6 +104,7 @@
this.btnDelete.Size = new System.Drawing.Size(72, 33);
this.btnDelete.TabIndex = 14;
this.btnDelete.Text = "删除记录";
+ this.btnDelete.Visible = false;
this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click);
//
// lblState
diff --git a/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.cs b/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.cs
index 6d575c5..d4322c6 100644
--- a/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.cs
+++ b/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.cs
@@ -6,6 +6,7 @@ using System.Drawing;
using System.Text;
using System.Windows.Forms;
using PDAForm.Comm;
+using PDAForm.PDABiz;
using PDAForm.SelectComm;
namespace PDAForm.Bill.AsnBill
@@ -13,6 +14,7 @@ namespace PDAForm.Bill.AsnBill
public partial class frmAsnBill : Form
{
public F_AsnBill m_base = null;
+ private DataTable dtShipingVerificationHis,dtNowScan;
public frmAsnBill()
{
InitializeComponent();
@@ -39,9 +41,15 @@ namespace PDAForm.Bill.AsnBill
m_base = new F_AsnBill();
m_base.BillNo = this.txtBillNo.Text.Trim();
m_base.BillNew(this.dgShow);
-
+ DataRow[] drs = m_base.dsBill.Tables[0].Select("[AsnNumber]='" + m_base.BillNo + "'");
+ if (drs.Length == 0)
+ {
+ throw new Exception("ASN号 " + m_base.BillNo + " 在系统中不存在");
+ }
+ //获取已校验的信息,系统支持多次校验
+ dtShipingVerificationHis = m_base.GetShipingVerification();
+ dtNowScan = dtShipingVerificationHis.Clone();
Total();
-
this.txtBillNo.Enabled = true;
}
@@ -62,32 +70,57 @@ namespace PDAForm.Bill.AsnBill
{
if (e.KeyCode == Keys.Enter)
{
- if (m_base == null) throw new Exception("请选扫ASN编号!");
+ if (m_base == null) throw new Exception("请先扫ASN编号!");
string BarCode = this.txtBarCode.Text.Trim();
if (BarCode.Length < 0)
{
- MyMessageBox.ShowErrorMessage("装箱单号不能为空!");
+ MyMessageBox.ShowErrorMessage("托盘号不能为空!");
this.txtBarCode.Focus();
this.txtBarCode.SelectAll();
return;
}
-
- DataRow[] drs = m_base.dsBill.Tables[0].Select("[PackageNo]='" + BarCode + "'");
- if (drs.Length == 0)
+ //托盘格式样例 5B602C2-04&00000044&02 零件号+分隔符+8位箱流水号+两位的数量
+ var barList = BarCode.Split('&');
+ var partCode = barList[0];
+ var boxID = barList[1];
+ var strQty = barList[2];
+
+ //之前提交的数据中是否采集过改托盘号
+ DataRow[] drs = dtShipingVerificationHis.Select("[PackageNo]='" + BarCode + "'");
+ if (drs.Length >0)
{
- throw new Exception("装箱单号 " + BarCode + " 在系统中不存在");
+ throw new Exception("托盘号 " + BarCode + " 已扫描");
}
-
- if (Convert.ToInt32(drs[0]["IsCheck"]) == 1)
+ //本次扫描的数据中是否重复扫描该托盘号
+ drs = dtNowScan.Select("[PackageNo]='" + BarCode + "'");
+ if (drs.Length > 0)
{
- throw new Exception("装箱单号 " + BarCode + " 重复扫描");
+ throw new Exception("托盘号 " + BarCode + " 已扫描");
}
-
- drs[0]["IsCheck"] = 1;
-
- Total();
-
+ //校验数量是否超出,校验零件号是否有效
+ var rowAsn = m_base.dsBill.Tables[0].Select("[AsnNumber]='" + m_base.BillNo + "' and PartNumber = '" + partCode + "'");
+ if (rowAsn.Length != 1)
+ {
+ throw new Exception("托盘号 " + BarCode + " 不在扫描的ASN " + m_base.BillNo + " 中!");
+ }
+ else
+ {
+ var planQty = int.Parse(rowAsn[0]["Qty"].ToString());
+ var checkQty = int.Parse(rowAsn[0]["CheckQty"].ToString());
+ if (planQty < (checkQty + int.Parse(strQty)))
+ {
+ throw new Exception("托盘数量 " + strQty + " 超出待校验数量 " + (planQty-checkQty));
+ }
+ }
+ rowAsn[0]["CheckQty"] = int.Parse(strQty) + int.Parse(rowAsn[0]["CheckQty"].ToString());
+ //填加校验明细
+ var scanInfo = dtNowScan.NewRow();
+ scanInfo["AsnNumber"] = m_base.BillNo;
+ scanInfo["PackageNo"] = boxID;
+ scanInfo["UserName"] = UserInfo.UserName;
+ dtNowScan.Rows.Add(scanInfo);
+ Total();
this.txtBarCode.Focus();
this.txtBarCode.SelectAll();
}
@@ -110,13 +143,7 @@ namespace PDAForm.Bill.AsnBill
if (m_base == null) throw new Exception("没有需要提示的数据!");
if (MyMessageBox.ShowQuestion("是否要提交数据?"))
{
- if (m_base.dsBill.Tables[0].Select("[IsCheck]=0").Length > 0)
- {
- throw new Exception("有未扫描记录!");
- }
-
-
- m_base.BillSubmit();
+ m_base.BillSubmit(dtNowScan);
m_base = null;
Total();
@@ -180,18 +207,10 @@ namespace PDAForm.Bill.AsnBill
else
{
int a1 = m_base.dsBill.Tables[0].Rows.Count;
- int a2 = m_base.dsBill.Tables[0].Select("[IsCheck]=1").Length;
+ int a2 = m_base.dsBill.Tables[0].Select("Qty = CheckQty").Length;
this.lblState.Text = a2 + "/" + a1;
}
-
}
-
-
-
-
-
-
-
}
}
\ No newline at end of file
diff --git a/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.resx b/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.resx
index ea4f9aa..a721046 100644
--- a/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.resx
+++ b/PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.resx
@@ -1,6 +1,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
WEBPAD
-
- False
-
- text/microsoft-resx2.0System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ False
+
+
\ No newline at end of file
diff --git a/PDAForm/PDAForm/Bill/VDA/frmVDA.cs b/PDAForm/PDAForm/Bill/VDA/frmVDA.cs
index 61feecb..50bb1bd 100644
--- a/PDAForm/PDAForm/Bill/VDA/frmVDA.cs
+++ b/PDAForm/PDAForm/Bill/VDA/frmVDA.cs
@@ -205,10 +205,6 @@ namespace PDAForm.Bill.VDA
#endregion
-
}
-
-
-
}
}
\ No newline at end of file
diff --git a/Stone.WinForm/Stone.Common.Dlls/Stone.Entity.dll b/Stone.WinForm/Stone.Common.Dlls/Stone.Entity.dll
index 8be8a34..2ad2389 100644
Binary files a/Stone.WinForm/Stone.Common.Dlls/Stone.Entity.dll and b/Stone.WinForm/Stone.Common.Dlls/Stone.Entity.dll differ
diff --git a/Stone.WinForm/Stone.DataService/Stone.DataService.Biz/Bill/F_BillAsn.cs b/Stone.WinForm/Stone.DataService/Stone.DataService.Biz/Bill/F_BillAsn.cs
index 45433dd..b05131c 100644
--- a/Stone.WinForm/Stone.DataService/Stone.DataService.Biz/Bill/F_BillAsn.cs
+++ b/Stone.WinForm/Stone.DataService/Stone.DataService.Biz/Bill/F_BillAsn.cs
@@ -111,5 +111,31 @@ namespace Stone.DataService.Biz.Bill
}
+ public DataSet GetVefiHis(Command cmd)
+ {
+ string AsnNumber = cmd.Pars[0];
+ string UserName = cmd.Pars[1];
+
+ Entity_t_ShipingVerification t_ShipingVerification = new Entity_t_ShipingVerification();
+
+ DataSet dsData = t_ShipingVerification.GetData(
+ $"AsnNumber,PackageNo",
+ $"[AsnNumber]='{AsnNumber}'",
+ $"[PackageNo] desc");
+ return dsData;
+ }
+ public DataSet GetASN(Command cmd)
+ {
+ string AsnNumber = cmd.Pars[0];
+ string UserName = cmd.Pars[1];
+
+ Entity_t_JIS_VDA t_JIS_VDA = new Entity_t_JIS_VDA();
+
+ DataSet dsData = t_JIS_VDA.GetData(
+ $"PartNumber,Qty,CheckQty",
+ $"[AsnNumber]='{AsnNumber}'",
+ $"[PackageNo] desc");
+ return dsData;
+ }
}
}
diff --git a/Stone.WinForm/Stone.Entity/Stone.Entity.csproj b/Stone.WinForm/Stone.Entity/Stone.Entity.csproj
index 47bb976..95b9b4e 100644
--- a/Stone.WinForm/Stone.Entity/Stone.Entity.csproj
+++ b/Stone.WinForm/Stone.Entity/Stone.Entity.csproj
@@ -64,6 +64,7 @@
+
diff --git a/Stone.WinForm/Stone.WinBiz/JISAdmin/F_EDI_JIS5000Sequence.cs b/Stone.WinForm/Stone.WinBiz/JISAdmin/F_EDI_JIS5000Sequence.cs
index bcaeb10..243a799 100644
--- a/Stone.WinForm/Stone.WinBiz/JISAdmin/F_EDI_JIS5000Sequence.cs
+++ b/Stone.WinForm/Stone.WinBiz/JISAdmin/F_EDI_JIS5000Sequence.cs
@@ -653,6 +653,9 @@ namespace Stone.WinBiz.JISAdmin
var alertMsg5 = "";
//零件ReleaseID 不连续
var alertMsg6 = "";
+ //零件号是否与PO绑定
+ var alertMsg7 = "";
+
status = "1";
//获取零件对应的版本号 add by jinh 20220419
@@ -672,6 +675,7 @@ namespace Stone.WinBiz.JISAdmin
{
// partRelese.PartCode = sp_line[1].Split(':')[0];
partRelese.PartCode = sp_line[3].Split(':')[0];
+ partCode = sp_line[3].Split(':')[0];
}
//LAB调整 RFF+AAN:1747' ADI+00001509+220308
// if (sp_line[0] == "ADI")
@@ -695,6 +699,17 @@ namespace Stone.WinBiz.JISAdmin
lstPartRelease.Add(partRelese);
partRelese = new PartRelease();
}
+
+ if (sp_line[0] == "RFF" && sp_line[1].Substring(0, 2) == "ON")
+ {
+ orderNumber = sp_line[1].Split(':')[1];
+ //校验PO是否维护
+ if (string.IsNullOrEmpty(orderNumber))
+ {
+ strPartRelease += "零件号 " + partCode + " 未绑定PO!";
+ alertMsg7 += "零件号 " + partCode + " 未绑定PO!" + Environment.NewLine;
+ }
+ }
}
//如果版本不连续,抛出异常,解析失败 考虑抛出在数据库中设置
if (alertMsg6.Trim() != "")
@@ -712,6 +727,22 @@ namespace Stone.WinBiz.JISAdmin
}
}
+ //如果零件号未绑定PO,抛出异常,解析失败 考虑抛出在数据库中设置
+ if (alertMsg7.Trim() != "")
+ {
+ //通过前台配置ReleaseID不联系是否继续接续
+ var strsql = "select top 1 * from t_ErrTypeLevel where Code = '09' order by id desc";
+ var dsErrLevel = db.Exec_DataSet(strsql);
+ if (dsErrLevel.Tables[0].Rows.Count > 0)
+ {
+ var errLevel = dsErrLevel.Tables[0].Rows[0]["ErrLevel"].ToString();
+ if (errLevel == "0")
+ {
+ throw new Exception(strPartRelease);
+ }
+ }
+ }
+
foreach (string line_text in sp_text)
{
if (line_text.Trim() == "") continue;
@@ -798,7 +829,6 @@ namespace Stone.WinBiz.JISAdmin
if (sp_line[0] == "RFF" && sp_line[1].Substring(0,2) == "ON")
{
orderNumber = sp_line[1].Split(':')[1];
-
//校验零件号是否失效
var strsql = "";
strsql = "select top 1 * from t_Product where Code = '" + partNumber + "' order by id desc";
diff --git a/Stone.WinForm/Stone.WinBiz/Stone.WinBiz.csproj b/Stone.WinForm/Stone.WinBiz/Stone.WinBiz.csproj
index a9bb781..7158040 100644
--- a/Stone.WinForm/Stone.WinBiz/Stone.WinBiz.csproj
+++ b/Stone.WinForm/Stone.WinBiz/Stone.WinBiz.csproj
@@ -83,6 +83,7 @@
+
diff --git a/Stone.WinForm/Stone.WinForm/frmMain.cs b/Stone.WinForm/Stone.WinForm/frmMain.cs
index e817804..e30725e 100644
--- a/Stone.WinForm/Stone.WinForm/frmMain.cs
+++ b/Stone.WinForm/Stone.WinForm/frmMain.cs
@@ -182,7 +182,14 @@ namespace Stone.WinForm
ShowWindow(frm);
}
+ if (e.Node.Text == "零件订单管理")
+ {
+ Stone.WinModule.BasicData.frmPartPO frm = new WinModule.BasicData.frmPartPO();
+ frm.m_Base = new WinBiz.BasicData.F_PartPO();
+ frm.init();
+ ShowWindow(frm);
+ }
#endregion
diff --git a/Stone.WinForm/Stone.WinModule/BasicData/F_Factory.cs b/Stone.WinForm/Stone.WinModule/BasicData/F_Factory.cs
index 0f11856..9ac536e 100644
--- a/Stone.WinForm/Stone.WinModule/BasicData/F_Factory.cs
+++ b/Stone.WinForm/Stone.WinModule/BasicData/F_Factory.cs
@@ -103,7 +103,12 @@ namespace Stone.WinModule.BasicData
return frm;
}
-
+ if (f_base.type == "PartPO")
+ {
+ frmPartPODetail frm = new frmPartPODetail();
+ frm.m_Base = f_base;
+ return frm;
+ }
return null;
}
}
diff --git a/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.Designer.cs b/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.Designer.cs
index 828d3ee..0ed1a6b 100644
--- a/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.Designer.cs
+++ b/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.Designer.cs
@@ -34,6 +34,7 @@
this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
this.chkUpload = new System.Windows.Forms.CheckBox();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
+ this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.SuspendLayout();
//
// btnSerach
@@ -86,6 +87,11 @@
this.imageList1.Images.SetKeyName(3, "(25,41).png");
this.imageList1.Images.SetKeyName(4, "redo.png");
//
+ // openFileDialog1
+ //
+ this.openFileDialog1.Filter = "Excel2007文件(*.xlsx)|*.xlsx|Excel2003文件(*.xls)|*.xls";
+ this.openFileDialog1.Title = "选择要导入的文件";
+ //
// frmJISVDAASN
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@@ -112,5 +118,6 @@
private System.Windows.Forms.DateTimePicker dateTimePicker1;
private System.Windows.Forms.CheckBox chkUpload;
private System.Windows.Forms.ImageList imageList1;
+ private System.Windows.Forms.OpenFileDialog openFileDialog1;
}
}
diff --git a/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.cs b/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.cs
index c37c2fb..d1ddd26 100644
--- a/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.cs
+++ b/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
+using System.Data.OleDb;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
@@ -94,42 +95,48 @@ namespace Stone.WinModule.Standard
btnUpload.Click += BtnUpload_Click;
this.toolStrip1.Items.Insert(0, btnUpload);
- ToolStripButton btnPrintRe = new ToolStripButton("补打ASN");
- btnPrintRe.Image = this.imageList1.Images[0];
- btnPrintRe.TextImageRelation = TextImageRelation.ImageAboveText;
- btnPrintRe.Click += new EventHandler(btnPrintRe_Click);
- this.toolStrip1.Items.Insert(0, btnPrintRe);
-
- ToolStripButton btnPrint = new ToolStripButton("打印ASN");
- btnPrint.Image = this.imageList1.Images[0];
- btnPrint.TextImageRelation = TextImageRelation.ImageAboveText;
- btnPrint.Click += new EventHandler(btnPrint_Click);
- this.toolStrip1.Items.Insert(0, btnPrint);
-
- ToolStripButton btnPrintVDARight = new ToolStripButton("补打02标签");
- btnPrintVDARight.Image = this.imageList1.Images[0];
- btnPrintVDARight.TextImageRelation = TextImageRelation.ImageAboveText;
- btnPrintVDARight.Click += new EventHandler(btnPrintVDARight_Click);
- this.toolStrip1.Items.Insert(0, btnPrintVDARight);
-
- ToolStripButton btnPrintVDA = new ToolStripButton("补打01标签");
- btnPrintVDA.Image = this.imageList1.Images[0];
- btnPrintVDA.TextImageRelation = TextImageRelation.ImageAboveText;
- btnPrintVDA.Click += new EventHandler(btnPrintVDA_Click);
- this.toolStrip1.Items.Insert(0, btnPrintVDA);
-
- ToolStripButton btnPrintLabel = new ToolStripButton("打印VDA标签");
- btnPrintLabel.Image = this.imageList1.Images[0];
- btnPrintLabel.TextImageRelation = TextImageRelation.ImageAboveText;
- btnPrintLabel.Click += btnPrintLabel_Click;
- this.toolStrip1.Items.Insert(0, btnPrintLabel);
-
- ToolStripButton btnPREDN = new ToolStripButton("PRE-DN生成");
+ // ToolStripButton btnPrintRe = new ToolStripButton("补打ASN");
+ // btnPrintRe.Image = this.imageList1.Images[0];
+ // btnPrintRe.TextImageRelation = TextImageRelation.ImageAboveText;
+ // btnPrintRe.Click += new EventHandler(btnPrintRe_Click);
+ // this.toolStrip1.Items.Insert(0, btnPrintRe);
+ //
+ // ToolStripButton btnPrint = new ToolStripButton("打印ASN");
+ // btnPrint.Image = this.imageList1.Images[0];
+ // btnPrint.TextImageRelation = TextImageRelation.ImageAboveText;
+ // btnPrint.Click += new EventHandler(btnPrint_Click);
+ // this.toolStrip1.Items.Insert(0, btnPrint);
+
+ // ToolStripButton btnPrintVDARight = new ToolStripButton("补打02标签");
+ // btnPrintVDARight.Image = this.imageList1.Images[0];
+ // btnPrintVDARight.TextImageRelation = TextImageRelation.ImageAboveText;
+ // btnPrintVDARight.Click += new EventHandler(btnPrintVDARight_Click);
+ // this.toolStrip1.Items.Insert(0, btnPrintVDARight);
+ //
+ // ToolStripButton btnPrintVDA = new ToolStripButton("补打01标签");
+ // btnPrintVDA.Image = this.imageList1.Images[0];
+ // btnPrintVDA.TextImageRelation = TextImageRelation.ImageAboveText;
+ // btnPrintVDA.Click += new EventHandler(btnPrintVDA_Click);
+ // this.toolStrip1.Items.Insert(0, btnPrintVDA);
+
+ // ToolStripButton btnPrintLabel = new ToolStripButton("打印VDA标签");
+ // btnPrintLabel.Image = this.imageList1.Images[0];
+ // btnPrintLabel.TextImageRelation = TextImageRelation.ImageAboveText;
+ // btnPrintLabel.Click += btnPrintLabel_Click;
+ // this.toolStrip1.Items.Insert(0, btnPrintLabel);
+
+ ToolStripButton btnPREDN = new ToolStripButton("ASN发运");
btnPREDN.Image = this.imageList1.Images[1];
btnPREDN.TextImageRelation = TextImageRelation.ImageAboveText;
btnPREDN.Click += btnPREDN_Click;
this.toolStrip1.Items.Insert(0, btnPREDN);
+ ToolStripButton btnImportDP = new ToolStripButton("拉动导入");
+ btnImportDP.Image = this.imageList1.Images[1];
+ btnImportDP.TextImageRelation = TextImageRelation.ImageAboveText;
+ btnImportDP.Click += btnImportDP_Click;
+ this.toolStrip1.Items.Insert(0, btnImportDP);
+
}
@@ -444,37 +451,11 @@ namespace Stone.WinModule.Standard
{
try
{
- if (this.dgrdView.SelectedRows.Count == 0)
- throw new Exception("请选择要生成的ASN");
-
- string AsnNumber = this.dgrdView.SelectedRows[0].Cells["AsnNumber"].Value.ToString();
-
- if (!CheckASN(AsnNumber)) return;
-
- Entity_v_JIS_VDA v_JIS_VDA = new Entity_v_JIS_VDA();
- DataTable dtData = v_JIS_VDA.GetData("", $"[AsnNumber]='{AsnNumber}'", "[PackageNo] asc").Tables[0];
- if (dtData.Rows.Count == 0) throw new Exception("打印的数据不存在");
-
- if (dtData.Rows[0]["IsPrintASN"].ToString() == "1")
- throw new Exception($"{AsnNumber}已经完成,不能生成PREDN");
-
- var frmPickUpDate = new frmPickUpDate();
- frmPickUpDate.dtSwetDate = Convert.ToDateTime(dtData.Rows[0]["Date"]).Date;
- frmPickUpDate.ShowDialog();
- frmPickUpDate.Dispose();
- if(frmPickUpDate.DialogResult != DialogResult.OK) return;
- frmPREDN frm = new frmPREDN();
- frm.dtPickUpTime = frmPickUpDate.dtPickUp;
- frm.dtData = dtData;
- frm.ShowDialog();
- frm.Dispose();
- //更新需求日期 todo
- var db = new Gm_WMS.DataAccess.DataService.LocalDBService();
- db.BeginTrans();
- Entity_v_JIS_VDA t_JIS_VDA = new Entity_v_JIS_VDA(db);
- t_JIS_VDA.Edit($"[Date]='" + frmPickUpDate.dtPickUp + "'", $"[AsnNumber]='{AsnNumber}'");
- db.Commit();
- Search(AsnNumber);
+ var frmAsnScan = new frmASNScan();
+ frmAsnScan.ShowDialog();
+ frmAsnScan.Dispose();
+ if(frmAsnScan.DialogResult != DialogResult.OK) return;
+ Search("");
btnSerach_Click(sender,null);
}
catch (Exception ex)
@@ -845,5 +826,278 @@ namespace Stone.WinModule.Standard
return strsql;
}
+
+ private void btnImportDP_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
+ {
+ Input(this.openFileDialog1.FileName);
+ UpdateGridView();
+
+ MyMessageBox.ShowInfoMessage("数据导入成功!");
+ }
+ }
+ catch (Exception ex)
+ {
+ MyMessageBox.ShowInfoMessage(ex.Message);
+ }
+ }
+
+ private void Input(string filename)
+ {
+ DataSet dsInput = null;
+ MyExcelDatabase.OpenDatabase(filename, true);
+ var sheetName = GetSheetName(filename);
+ dsInput = MyOleDbDatabase.ExecuteDataSet("select * from ["+sheetName+"]");
+ MyOleDbDatabase.CloseDatabase();
+
+ LocalDBService db = null;
+ try
+ {
+ db = new LocalDBService();
+ db.BeginTrans();
+ InputData(dsInput, db);
+ db.Commit();
+ }
+ catch (Exception ex)
+ {
+ if (db != null) db.Rollback();
+ throw new Exception("导入数据失败!\r\n" + "原因为:\r\n" + ex.Message);
+ }
+ finally
+ {
+ if (db != null) db.EndTrans();
+ }
+
+
+ Stone.WinBiz.BasicData.F_Log.WriteLog("导入Excel[" + filename + "]");
+ }
+
+ private string GetSheetName(string filename)
+ {
+ string HDR = "HDR=YES;"; ;
+
+ var m_oleconn = new OleDbConnection();
+ if (filename.ToLower().Substring(filename.Length - 3) == "xls") //excel 2003格式
+ {
+ m_oleconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties='Excel 8.0;" + HDR + "'");
+ }
+ else //excel 2007 格式
+ {
+ m_oleconn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties='Excel 12.0 Xml;" + HDR + "'");
+ }
+ m_oleconn.Open();
+
+ var m_olecmd = m_oleconn.CreateCommand();
+
+ DataTable dtSheetName = m_oleconn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
+ string[] strTableNames = new string[dtSheetName.Rows.Count];
+ for (int k = 0; k < dtSheetName.Rows.Count; k++)
+ {
+ strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
+ }
+ // 选择第一个sheet进行操作
+ string sheetName = strTableNames[0];
+ return sheetName;
+ }
+
+ public void InputData(DataSet dsData, LocalDBService db)
+ {
+ Entity_t_JIS_VDA t_Input = new Entity_t_JIS_VDA(db);
+ DataRow drInput = null;
+ //第四行开始读日期,第五行是到货时间,第六行车型不要,第七行读零件和数量
+ int readRow = 4;
+ //导入的列数
+ var coloumnCount = dsData.Tables[0].Columns.Count;
+ //零件号所在的行 从0开始
+ var partRowIndex = 7;
+ //零件号所在的列数 从0 开始
+ var partIndex = 2;
+ //校验零件号是否有订单信息
+ var strCheckPO = CheckPartPO(dsData.Tables[0], partRowIndex, partIndex);
+ if (strCheckPO != "OK")
+ {
+ throw new Exception("导入数据失败!\r\n" + "原因为:\r\n" + strCheckPO);
+ }
+
+ //删掉以导入的ASN todo ASN模板未确认
+ // DelDPASNHis(dsData.Tables[0]);
+
+ for (int i = 0; i < dsData.Tables[0].Rows.Count; i++)
+ {
+ if (i == readRow-1)
+ {
+ var drDate = dsData.Tables[0].Rows[i];
+ for (int n = 0; n < coloumnCount; n++)
+ {
+ //第六列开始是时间
+ if (n >= 5)
+ {
+ var date = drDate[n].ToString();
+ if (string.IsNullOrEmpty(date))
+ {
+ continue;
+ }
+ date = GetDateTimeStyle4(date, MyDateTimeType.Date);
+ //校验是否是日期,如果是日期,循环读入天的需求
+ if (DateTime.TryParse(date, out DateTime dt))
+ {
+ var DPTime = dsData.Tables[0].Rows[i + 1][n].ToString();
+ //得到了发货日期 和 发货时间
+ //开始循坏要货明细
+ for (int nPart = i + 4; nPart < dsData.Tables[0].Rows.Count-1; nPart++)
+ {
+ //如果有数量 则填加
+ var dr = dsData.Tables[0].Rows[nPart];
+ var qty = dr[n].ToString();
+ if (int.TryParse(qty, out int planQty))
+ {
+ if (planQty > 0)
+ {
+ drInput = t_Input.Table.NewRow();
+ drInput["LabelDate"] = dt.ToString("yyyy-MM-dd") + " " + DPTime + ":00";
+ drInput["Date"] = dt;
+ //todo AsnNumber 当前模板没有ASN号
+ drInput["AsnNumber"] = "";
+ drInput["PartNumber"] = dr[partIndex];
+ drInput["Qty"] = planQty;
+ //todo 从基础数据表获取PO
+ drInput["orderNumber"] = "";
+ //todo 增加表结构
+ drInput["CheckQty"] = 0;
+ //是否完成装箱校验
+ drInput["IsPackingVerification"] = 0;
+ //是否发运
+ drInput["IsShipingVerification"] = 0;
+ //是否生成ASN
+ drInput["IsPrintASN"] = 0;
+ //是否上传ASN
+ drInput["IsUpload"] = 0;
+ t_Input.Add(drInput);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ public static string GetDateTimeStyle4(string sDateTime, MyDateTimeType dType)
+ {
+ if (sDateTime.Length != 8) throw new Exception("[" + sDateTime + "]日期时间格式错误!");
+
+ string Result = "";
+ string year = sDateTime.Substring(0, 4);
+ string month = sDateTime.Substring(4, 2);
+ string day = sDateTime.Substring(6, 2);
+
+ string h = "0";
+ string m = "0";
+ string s = "0";
+ string mi = "0";
+
+ if (month.Length == 1) month = "0" + month;
+ if (day.Length == 1) day = "0" + day;
+ if (h.Length == 1) h = "0" + h;
+ if (m.Length == 1) m = "0" + m;
+ if (s.Length == 1) s = "0" + s;
+ if (mi.Length == 1) mi = "00" + mi;
+ if (mi.Length == 2) mi = "0" + mi;
+
+ if (dType == MyDateTimeType.DateTime)
+ {
+ Result = year + "-" + month + "-" + day + " " + h + ":" + m + ":" + s;
+ }
+
+ if (dType == MyDateTimeType.Date)
+ {
+ Result = year + "-" + month + "-" + day;
+ }
+
+ if (dType == MyDateTimeType.Time)
+ {
+ Result = h + ":" + m + ":" + s;
+ }
+
+ if (dType == MyDateTimeType.Batch)
+ {
+ Result = year.Substring(2, 2) + month + day;
+ }
+
+ if (dType == MyDateTimeType.BillNo)
+ {
+ Result = year + month + day + h + m + s + mi;
+ }
+
+ return Result;
+ }
+
+ private string CheckPartPO(DataTable dtImport,int startRowIndex,int columnIndex)
+ {
+ string strRtn = "";
+ Entity_t_PartPO partPO = new Entity_t_PartPO();
+ DataTable dtData = partPO.GetData($"1 = 1").Tables[0];
+ if (dtData.Rows.Count == 0)
+ {
+ return "系统中没有定义零件号对应的订单信息!";
+ }
+ for (int i = startRowIndex; i < dtImport.Rows.Count-1; i++)
+ {
+ var partCode = dtImport.Rows[i][columnIndex].ToString();
+ var row = dtData.Select("Code = '" + partCode + "'");
+ if (row.Length != 1)
+ {
+ strRtn += "零件号["+partCode + "]没有对应有效的订单号"+ Environment.NewLine;
+ }
+ else
+ {
+ if(string.IsNullOrEmpty(row[0]["PONumber"].ToString()))
+ {
+ strRtn += "零件号[" + partCode + "]没有对应有效的订单号" + Environment.NewLine;
+ }
+ }
+ }
+
+ if (string.IsNullOrEmpty(strRtn))
+ {
+ strRtn = "OK";
+ }
+ if (dtData.Rows.Count == 0) throw new Exception("补打的记录不存在");
+ return strRtn;
+ }
+
+ ///
+ /// 删除历史导入的ASN单
+ ///
+ private void DelDPASNHis(DataTable dtImport)
+ {
+ LocalDBService db = new LocalDBService();
+ var sql = "";
+ var AsnNums = "";
+ //ASN 行位置
+ //todo asn模板未确定
+ var asnRowIndex = 6;
+ var asnRow = dtImport.Rows[asnRowIndex];
+ //ASN 列开始位置
+ var asnColumnStartIndex = 5;
+ for (int i = asnColumnStartIndex; i < dtImport.Columns.Count; i++)
+ {
+ if (!string.IsNullOrEmpty(asnRow[i].ToString()))
+ {
+ AsnNums += "'" + asnRow[i].ToString() + "',";
+ }
+ }
+
+ if (AsnNums.Length > 0)
+ {
+ AsnNums = AsnNums.Substring(0, AsnNums.Length - 1);
+ sql = $"delete from t_JIS_VDA where AsnNumber in (" + AsnNums + ")";
+ db.Exec_NonQuery(sql);
+ }
+ }
}
}
diff --git a/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.resx b/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.resx
index 0b1eba6..907f124 100644
--- a/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.resx
+++ b/Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.resx
@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACM
- CwAAAk1TRnQBSQFMAgEBBQEAAVgBAAFYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ CwAAAk1TRnQBSQFMAgEBBQEAAWABAAFgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -177,4 +177,7 @@
AfgBAwHwAQEB/gEHBP8B/AEDBP8L
+
+ 342, 17
+
\ No newline at end of file
diff --git a/Stone.WinForm/Stone.WinModule/Stone.WinModule.csproj b/Stone.WinForm/Stone.WinModule/Stone.WinModule.csproj
index 09c9c6e..20c44b8 100644
--- a/Stone.WinForm/Stone.WinModule/Stone.WinModule.csproj
+++ b/Stone.WinForm/Stone.WinModule/Stone.WinModule.csproj
@@ -166,6 +166,18 @@
frmErrLog.cs
+
+ Form
+
+
+ frmPartPODetail.cs
+
+
+ Form
+
+
+ frmPartPO.cs
+
Form
@@ -395,6 +407,12 @@
frmMessageQuestion.cs
+
+ Form
+
+
+ frmASNScan.cs
+
Form
@@ -682,6 +700,9 @@
frmErrLog.cs
+
+ frmPartPODetail.cs
+
frmPartOutQtyDetail.cs
@@ -783,6 +804,9 @@
frmMessageQuestion.cs
+
+ frmASNScan.cs
+
frmPickUpDate.cs