diff --git a/WebService/AppWebservice.asmx.cs b/WebService/AppWebservice.asmx.cs index 3140d81..9c3f1cf 100644 --- a/WebService/AppWebservice.asmx.cs +++ b/WebService/AppWebservice.asmx.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Data; +using System.Linq; using System.Reflection; using System.Runtime.Remoting.Contexts; using System.Text; @@ -64,6 +65,14 @@ namespace Webservice Context.Response.Write(JSONTools.ScriptSerialize>(model)); return; } + //箱码格式验证 + var boxCodeList = boxCode.Split(';'); + if (!boxCode.Contains("PN") || !boxCode.Contains("PKG") || !boxCode.Contains("QTY") || boxCodeList.Length != 7 || boxCodeList[0].Length != 16 || boxCodeList[1].Length != 12 || boxCodeList[5].Length != 16) + { + model.ErrReason = "箱码标签格式不对"; + Context.Response.Write(JSONTools.ScriptSerialize>(model)); + return; + } //if (string.IsNullOrWhiteSpace(barCode)) //{ // model.ErrReason = "缺少必要传入参数 barCode"; @@ -93,9 +102,8 @@ namespace Webservice //} #endregion - int updateNum = Function.BindBoxCodeAndBarCode(boxCode, barCode, out errorReason); - - DataTable dt = Function.GetCodeRecords(boxCode, out errorReason); + string errorReasonBoxData = ""; + DataTable dt = Function.GetCodeRecords(boxCode, out errorReasonBoxData); List listInfo = new List(); if (dt.Rows.Count < 1) @@ -103,40 +111,96 @@ namespace Webservice model.Result = "0"; model.ResultRowsCount = "0"; model.DataList = null; - model.ErrReason = errorReason; + if (string.IsNullOrEmpty(errorReasonBoxData)) + { + model.ErrReason = "箱码包含总成数量为零"; + } + else + { + model.ErrReason = errorReasonBoxData; + } } else { - listInfo = Tools.DataTableToList.ConvertTo(dt); model.ResultRowsCount = listInfo.Count.ToString(); model.DataList = listInfo; } - - if (updateNum == 0 && !string.IsNullOrEmpty(barCode)) + if(!string.IsNullOrEmpty(barCode)) { - model.Result = "0"; - model.ErrReason = "箱码和总成码绑定失败"; - } - else - { - model.Result = "1"; - string qtyValue = "0"; - var boxCodeSplit = boxCode.Split(';'); - foreach (string part in boxCodeSplit) + #region 数据合法性判断 + //总成码格式验证 + var barCodeList = barCode.Split(';'); + if (!barCode.Contains("S104") || !barCode.Contains(".") || barCodeList[0].Length != 17 || barCodeList[1].Length != 4 || barCodeList[2].Length != 4) + { + model.ErrReason = "总成条码格式不对或不存在"; + Context.Response.Write(JSONTools.ScriptSerialize>(model)); + return; + } + + //箱码和总成码零件验证 + string boxPartNo = boxCodeList[0].Substring(3,10); + string barCodePartNo = barCodeList[0].Substring(0, 10); + if(boxPartNo != barCodePartNo) + { + model.ErrReason = "箱码和总成条码零件号不符"; + Context.Response.Write(JSONTools.ScriptSerialize>(model)); + return; + } + + + + #endregion + + int updateNum = Function.BindBoxCodeAndBarCode(boxCode, barCode, out errorReason); + + dt = Function.GetCodeRecords(boxCode, out errorReasonBoxData); + + if (dt.Rows.Count < 1) { - if (part.StartsWith("QTY:")) + model.Result = "0"; + model.ResultRowsCount = "0"; + model.DataList = null; + if (string.IsNullOrEmpty(errorReasonBoxData)) + { + model.ErrReason = "箱码包含总成数量为零"; + } + else { - qtyValue = part.Substring(4); // 从"QTY:"后的字符开始截取 + model.ErrReason = errorReasonBoxData; } } - if(listInfo.Count.ToString() == qtyValue) + else { - model.ErrReason = "已满箱"; + + listInfo = Tools.DataTableToList.ConvertTo(dt); + model.ResultRowsCount = listInfo.Count.ToString(); + model.DataList = listInfo; } - } - + if (!string.IsNullOrEmpty(errorReason) && !string.IsNullOrEmpty(barCode)) + { + model.Result = "0"; + model.ErrReason = errorReason; + } + else + { + model.Result = "1"; + string qtyValue = "0"; + var boxCodeSplit = boxCode.Split(';'); + foreach (string part in boxCodeSplit) + { + if (part.StartsWith("QTY:")) + { + qtyValue = part.Substring(4); // 从"QTY:"后的字符开始截取 + } + } + if (listInfo.Count.ToString() == qtyValue) + { + + } + } + } Context.Response.Write(JSONTools.ScriptSerialize>(model)); } diff --git a/WebService/Function.cs b/WebService/Function.cs index 1baa7cf..2f759b5 100644 --- a/WebService/Function.cs +++ b/WebService/Function.cs @@ -379,7 +379,7 @@ namespace Webservice DataTable dtBoxNum = GetCodeRecords(boxCode, out errorReason); if(dtBoxNum != null && dtBoxNum.Rows.Count.ToString() == qtyValue) { - errorReason = "此箱码已满箱"; + errorReason = "扫描总数超出箱码限制数量"; return updateNum; } @@ -401,7 +401,7 @@ namespace Webservice updateNum = SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, updateSql, null); if (updateNum == 0) { - errorReason = "箱码和总成码绑定失败"; + errorReason = "总成条码装箱失败"; } else { @@ -416,11 +416,11 @@ namespace Webservice { if(boxCode.Trim() == boxCodeDB.Trim()) { - errorReason = "箱码已包含此总成"; + errorReason = "总成条码已装箱"; } else { - errorReason = "其他箱码已包含此总成"; + errorReason = "总成条码已被其他箱码装箱"; } } @@ -428,7 +428,7 @@ namespace Webservice } else { - errorReason = "根据总成码未查到合格信息"; + errorReason = "总成条码格式不对或不存在"; } return updateNum;