Browse Source

STD_NA项目代码提交

STD_NA
金浩 2 weeks ago
parent
commit
e649e6d84f
  1. 3
      PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.Designer.cs
  2. 81
      PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.cs
  3. 116
      PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.resx
  4. 4
      PDAForm/PDAForm/Bill/VDA/frmVDA.cs
  5. BIN
      Stone.WinForm/Stone.Common.Dlls/Stone.Entity.dll
  6. 26
      Stone.WinForm/Stone.DataService/Stone.DataService.Biz/Bill/F_BillAsn.cs
  7. 1
      Stone.WinForm/Stone.Entity/Stone.Entity.csproj
  8. 32
      Stone.WinForm/Stone.WinBiz/JISAdmin/F_EDI_JIS5000Sequence.cs
  9. 1
      Stone.WinForm/Stone.WinBiz/Stone.WinBiz.csproj
  10. 7
      Stone.WinForm/Stone.WinForm/frmMain.cs
  11. 7
      Stone.WinForm/Stone.WinModule/BasicData/F_Factory.cs
  12. 7
      Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.Designer.cs
  13. 378
      Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.cs
  14. 5
      Stone.WinForm/Stone.WinModule/Standard/frmJISVDAASN.resx
  15. 24
      Stone.WinForm/Stone.WinModule/Stone.WinModule.csproj

3
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

81
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;
//校验数量是否超出,校验零件号是否有效
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;
}
}
}
}

116
PDAForm/PDAForm/Bill/AsnBill/frmAsnBill.resx

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
<!--
Microsoft ResX Schema
Version 2.0
@ -59,56 +59,68 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="mimetype" type="xsd:string"/>
<xsd:attribute ref="xml:space"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1"/>
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3"/>
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4"/>
<xsd:attribute ref="xml:space"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<metadata name="$this.FormFactorShadowProperty" xml:space="preserve">
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="$this.FormFactorShadowProperty" xml:space="preserve">
<value>WEBPAD</value>
</metadata>
<metadata name="$this.Skin" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<resheader name="resmimetype"><value>text/microsoft-resx</value></resheader><resheader name="version"><value>2.0</value></resheader><resheader name="reader"><value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader><resheader name="writer"><value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value></resheader></root>
<metadata name="$this.Skin" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>

4
PDAForm/PDAForm/Bill/VDA/frmVDA.cs

@ -205,10 +205,6 @@ namespace PDAForm.Bill.VDA
#endregion
}
}
}

BIN
Stone.WinForm/Stone.Common.Dlls/Stone.Entity.dll

Binary file not shown.

26
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;
}
}
}

1
Stone.WinForm/Stone.Entity/Stone.Entity.csproj

@ -64,6 +64,7 @@
<Compile Include="EntityBase.cs" />
<Compile Include="Entity_t_ErrLog.cs" />
<Compile Include="Entity_t_ErrTypeLevel.cs" />
<Compile Include="Entity_t_PartPO.cs" />
<Compile Include="Entity_t_PartOutQty.cs" />
<Compile Include="Entity_t_ShipingVerification.cs" />
<Compile Include="Entity_t_BillNo.cs" />

32
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";

1
Stone.WinForm/Stone.WinBiz/Stone.WinBiz.csproj

@ -83,6 +83,7 @@
<Compile Include="BasicData\F_ErrLog.cs" />
<Compile Include="BasicData\F_JIS_Limits_List.cs" />
<Compile Include="BasicData\F_ErrTypeLevel.cs" />
<Compile Include="BasicData\F_PartPO.cs" />
<Compile Include="BasicData\F_PartOutQty.cs" />
<Compile Include="BasicData\F_Product.cs" />
<Compile Include="BasicData\F_User.cs" />

7
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

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

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

378
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;
}
/// <summary>
/// 删除历史导入的ASN单
/// </summary>
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);
}
}
}
}

5
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
</value>
</data>
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>342, 17</value>
</metadata>
</root>

24
Stone.WinForm/Stone.WinModule/Stone.WinModule.csproj

@ -166,6 +166,18 @@
<Compile Include="BasicData\frmErrLog.Designer.cs">
<DependentUpon>frmErrLog.cs</DependentUpon>
</Compile>
<Compile Include="BasicData\frmPartPODetail.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="BasicData\frmPartPODetail.Designer.cs">
<DependentUpon>frmPartPODetail.cs</DependentUpon>
</Compile>
<Compile Include="BasicData\frmPartPO.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="BasicData\frmPartPO.Designer.cs">
<DependentUpon>frmPartPO.cs</DependentUpon>
</Compile>
<Compile Include="BasicData\frmPartOutQtyDetail.cs">
<SubType>Form</SubType>
</Compile>
@ -395,6 +407,12 @@
<Compile Include="Standard\frmMessageQuestion.Designer.cs">
<DependentUpon>frmMessageQuestion.cs</DependentUpon>
</Compile>
<Compile Include="Standard\frmASNScan.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Standard\frmASNScan.Designer.cs">
<DependentUpon>frmASNScan.cs</DependentUpon>
</Compile>
<Compile Include="Standard\frmPickUpDate.cs">
<SubType>Form</SubType>
</Compile>
@ -682,6 +700,9 @@
<EmbeddedResource Include="BasicData\frmErrLog.resx">
<DependentUpon>frmErrLog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="BasicData\frmPartPODetail.resx">
<DependentUpon>frmPartPODetail.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="BasicData\frmPartOutQtyDetail.resx">
<DependentUpon>frmPartOutQtyDetail.cs</DependentUpon>
</EmbeddedResource>
@ -783,6 +804,9 @@
<EmbeddedResource Include="Standard\frmMessageQuestion.resx">
<DependentUpon>frmMessageQuestion.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Standard\frmASNScan.resx">
<DependentUpon>frmASNScan.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Standard\frmPickUpDate.resx">
<DependentUpon>frmPickUpDate.cs</DependentUpon>
</EmbeddedResource>

Loading…
Cancel
Save