using Gm_WMS.DataAccess.DataService; using Stone.Common; using Stone.DataService.Biz.BizPublic; using Stone.Entity; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; namespace Stone.DataService.Biz.Bill { public class F_STD_Check { public static DataSet VDA_Check_Submit(Command cmd) { string UserName = cmd.Pars[0]; string PackageNo1 = cmd.Pars[1]; string PackageNo2 = cmd.Pars[2]; string PartNumber = cmd.Pars[3]; int Qty = Convert.ToInt32(cmd.Pars[4]); string BarCode = cmd.Pars[5]; string PackageNo = PackageNo1.Substring(0, PackageNo1.Length - 3); string leftPackageNo2 = PackageNo2.Substring(0, PackageNo1.Length - 3); string RightPackageNo1 = PackageNo1.Substring(PackageNo1.Length - 2); string RightPackageNo2 = PackageNo2.Substring(PackageNo2.Length - 2); LocalDBService db = null; try { db = new LocalDBService(); db.BeginTrans(); Entity_t_JIS_VDA t_JIS_VDA = new Entity_t_JIS_VDA(db); Entity_t_VerifyBill t_VerifyBill = new Entity_t_VerifyBill(db); if (PackageNo != leftPackageNo2) { throw new Exception($"装箱单号1 {PackageNo1} 和装箱单号2{PackageNo2} 不匹配!"); } if (RightPackageNo1 == RightPackageNo2) { throw new Exception($"装箱单号1 {PackageNo} 和装箱单号2{leftPackageNo2} 的流水号重复!"); } else { if (RightPackageNo1 != "01" && RightPackageNo1 != "02") { throw new Exception($"装箱单号1 {PackageNo1} 的流水号无效!"); } if (RightPackageNo2 != "01" && RightPackageNo2 != "02") { throw new Exception($"装箱单号1 {PackageNo2} 的流水号无效!"); } } DataTable dtVDA = t_JIS_VDA.GetData($"[PackageNo]='{PackageNo}'").Tables[0]; if (dtVDA.Rows.Count == 0) throw new Exception($"装箱单号 {PackageNo} 在系统中不存在"); if (Convert.ToBoolean(dtVDA.Rows[0]["IsPackingVerification"])) throw new Exception($"装箱单号 {PackageNo} 已经做过装箱校验了"); if (dtVDA.Rows[0]["PartNumber"].ToString().Trim().ToUpper() != PartNumber) { throw new Exception($"零件号{PartNumber}不正确,正确零件号为{dtVDA.Rows[0]["PartNumber"]}"); } if (Convert.ToInt32(dtVDA.Rows[0]["Qty"]) != Qty) { throw new Exception($"数量{Qty}不正确,正确数量为{dtVDA.Rows[0]["Qty"]}"); } t_JIS_VDA.Edit($"[IsPackingVerification]=1", $"[ID]={dtVDA.Rows[0]["ID"]}"); //if (t_VerifyBill.GetData($"[BarCode]='{BarCode}'").Tables[0].Rows.Count > 0) // throw new Exception($"内部装箱单号 {BarCode} 重复扫描"); DataRow drVerify = t_VerifyBill.Table.NewRow(); drVerify["AsnNumber"] = dtVDA.Rows[0]["AsnNumber"].ToString(); drVerify["PackageNo"] = PackageNo; drVerify["PackageNo1"] = PackageNo1; drVerify["PackageNo2"] = PackageNo2; drVerify["PartNumber"] = PartNumber; drVerify["Qty"] = Qty; drVerify["BarCode"] = BarCode; drVerify["UserName"] = UserName; t_VerifyBill.Add(drVerify); db.Commit(); return Stone.DataService.Biz.BizPublic.MyDataSet.GetDataByString("OK"); } catch (Exception ex) { if (db != null) db.Rollback(); throw ex; } finally { if (db != null) db.EndTrans(); } } public DataSet VDA_UPDATE_Submit(Command cmd) { string UserName = cmd.Pars[0]; string VDA = cmd.Pars[1]; string BarCode = cmd.Pars[2]; LocalDBService db = null; try { db = new LocalDBService(); db.BeginTrans(); Entity_t_VerifyBill t_VerifyBill = new Entity_t_VerifyBill(db); var dsVerifyBill = t_VerifyBill.GetData($"[PackageNo1]='{VDA}' or [PackageNo2]='{VDA}'"); if(dsVerifyBill.Tables.Count == 0 || dsVerifyBill == null) { throw new Exception($"不存在 VDA标签 {VDA} 的校验记录!"); } else { var oldBarCode = dsVerifyBill.Tables[0].Rows[0]["BarCode"].ToString(); if (BarCode != oldBarCode) { throw new Exception($"VDA标签 {VDA} 对应的内部条码号应为{oldBarCode}!"); } } var strID = dsVerifyBill.Tables[0].Rows[0]["ID"].ToString(); var strsql = ""; //更新为失效 strsql = "Update t_VerifyBill" + " set State = '已失效'" + " where PackageNo1 = '" + VDA + "' or PackageNo2 = '" + VDA + "'"; db.Exec_NonQuery(strsql); //插入新记录 // strsql = "Insert into t_VerifyBill(AsnNumber,PackageNo,PackageNo1,PackageNo2,PartNumber,Qty,BarCode,UserName)" + // " select AsnNumber,PackageNo,PackageNo1,PackageNo2,PartNumber,Qty,'" + BarCode + "'," + // "'" + UserName + "'" + // " from t_VerifyBill where ID = " + strID; // db.Exec_NonQuery(strsql); db.Commit(); return Stone.DataService.Biz.BizPublic.MyDataSet.GetDataByString("OK"); } catch (Exception ex) { if (db != null) db.Rollback(); throw ex; } finally { if (db != null) db.EndTrans(); } } } }