using System; using System.Configuration; using System.Data; using System.Data.OleDb; using System.IO; using System.Text.RegularExpressions; using System.Web.UI.WebControls; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.HighWay.Storage.Business; using HWRB = SuperMap.RealEstate.HighWay.Running.Business; using HZQR.Common; namespace SuperMap.RealEstate.HighWay.Compents.CommodityChange { public partial class UpdateExcel : SuperMap.RealEstate.Web.UI.Page { protected string _SERVERPART_ID = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[0]; protected string _PROVINCE_CODE = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[2]; protected string _BusinessType = ConfigurationManager.AppSettings["BusinessType"].ToString(); protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; btnDownExcel.Enabled = false; //设置确认导入按钮焦点时间 SetControlClientAction(btnUpload, false); SetControlClientAction(btnDownExcel, false); } #region 方法 -> 导入excel文档数据 protected void btnUpload_Click(object sender, EventArgs e) { if (fpUpload.PostedFile.FileName.ToString() == "") { Alert("请正确选择文件!"); return; } try { Boolean fileOk = false; if (!fpUpload.HasFile) { throw new Exception("上传文件不存在!"); } //取得文件的扩展名,并转换成小写 string fileExtension = Path.GetExtension(fpUpload.FileName).ToLower(); //验证上传文件是否图片格式 if (fileExtension != ".xls" && fileExtension != ".xlsx") { throw new Exception("上传文件格式不正确!"); } // if (fpUpload.PostedFile.ContentLength <= 0)//浏览器并不是都支持PostedFile.FileName////File.Exists(ExcelFile.PostedFile.FileName)) { throw new Exception("上传文件内容不存在!"); } string filepath = "./Temporary/ExcelFile/"; if (Directory.Exists(Server.MapPath(filepath)) == false)//如果不存在就创建file文件夹 { Directory.CreateDirectory(Server.MapPath(filepath)); } string newname = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_ffff") + fileExtension; string virpath = filepath + newname;//这是存到服务器上的虚拟路径 string mappath = Server.MapPath(virpath);//转换成服务器上的物理路径 fpUpload.PostedFile.SaveAs(mappath);//保存到指定目录 ExcelHelper excelHelper = new ExcelHelper(); DataTable dt = excelHelper.ExcelToDataTable(mappath, "商品导入模板", true); // dt = ValidDataTable(dt); GridView1.DataSource = dt; GridView1.DataBind(); if (GridView1.Rows.Count > 0) { btnDownExcel.Enabled = true; } } catch (Exception ex) { Alert(ex.Message); } } #endregion #region 方法 -> 数据验证 private DataTable ValidDataTable(DataTable dt) { //重新处理问题--重新处理 DataTable _CopyDataTable = new DataTable(); _CopyDataTable.Columns.Add("序号"); _CopyDataTable.Columns.Add("业态"); _CopyDataTable.Columns.Add("商品类型"); _CopyDataTable.Columns.Add("商品编码"); _CopyDataTable.Columns.Add("商品名称"); _CopyDataTable.Columns.Add("商品条码"); _CopyDataTable.Columns.Add("商品单位"); _CopyDataTable.Columns.Add("商品规格"); _CopyDataTable.Columns.Add("商品产地"); _CopyDataTable.Columns.Add("质量等级"); _CopyDataTable.Columns.Add("是否散装"); _CopyDataTable.Columns.Add("称重方式"); _CopyDataTable.Columns.Add("商品状态"); _CopyDataTable.Columns.Add("进价税率"); _CopyDataTable.Columns.Add("销售税率"); _CopyDataTable.Columns.Add("快捷键值"); _CopyDataTable.Columns.Add("自定义类"); int RowCount = 1; bool bAllowCells = true; foreach (DataRow dr in dt.Rows) { bAllowCells = true; //验证是否为空列 #region 验证列 for (int i = 0; i < dr.ItemArray.Length; i++) { switch (i) { case 7: case 8: case 12: case 13: case 14: case 15: break; default: //验证数量 --不能为空,不能不是数字 if (dr.ItemArray[i].ToString() == "") { bAllowCells = false; } break; } } #endregion if (bAllowCells) { DataRow _DataRow = _CopyDataTable.NewRow(); _DataRow[0] = RowCount; //暂时就赋值前面四列 for (int x = 0; x < _CopyDataTable.Columns.Count && x < dr.ItemArray.Length; x++) { _DataRow[x + 1] = CommonHelper.ChangeHtmlToString(dr[x].ToString()); } _CopyDataTable.Rows.Add(_DataRow); RowCount++; } } //验证商品数量列 return _CopyDataTable; } #endregion #region 方法 -> 导入商品数据 protected void btnUpdata_Click(object sender, EventArgs e) { Alert(UpdateCommodity()); } private string UpdateCommodity() { string _Result = ""; int ErrorCount = 0, NotExistsCount = 0, AddCount = 0; //1、商品类型错误 string _ErrCOMMODITYTYPE = ""; //2、业态错误 string _ErrBUSINESSTYPE = ""; //判断业态、是否散装、称重方式、商品状态是否有误 string _ErrNorType = ""; //统一定价类 string _ErrUnPri = ""; //没有商品类 string _ErrNoPro = ""; //已存在流程 string _ErrEx = ""; //商品提交审批,却不再流程中 string _ErrNotEx = ""; HWRB.HIGHWAYPROINST _HIGHWAYPROINST = new HWRB.HIGHWAYPROINST(Transaction); _HIGHWAYPROINST.HIGHWAYPROINST_ID_Encrypt = Request["HIGHWAYPROINST_ID"]; if (_HIGHWAYPROINST.Select()) { #region 1、是否存在服务区 Storage.Business.SERVERPART _SERVERPART = new Storage.Business.SERVERPART(this.Transaction); _SERVERPART.AddSearchParameter("SERVERPART_CODE", Request["SERVERPART_CODE"].ToDecrypt()); //1、是否存在服务区 if (_SERVERPART.Search()) { //获取自定义类别 DataTable dtUserdefindType = _SERVERPART.ExecuteDataTable(string.Format( @"SELECT A.USERDEFINEDTYPE_ID,A.USERDEFINEDTYPE_NAME,B.SHOPTRADE FROM HIGHWAY_STORAGE.T_USERDEFINEDTYPE A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B WHERE (A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID OR TO_CHAR(A.BUSINESSTYPE) = B.SHOPTRADE) AND A.SERVERPART_ID = {0} GROUP BY A.USERDEFINEDTYPE_ID,A.USERDEFINEDTYPE_NAME,B.SHOPTRADE", _SERVERPART.SERVERPART_ID)); foreach (GridViewRow _GridViewRow in GridView1.Rows) { #region 判断是否存在商品类型 Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction); DataTable _DTCOMMODITYTYPE = _COMMODITYTYPE.FillDataTable("WHERE COMMODITYTYPE_NAME = '" + _GridViewRow.Cells[2].Text.Replace(" ", "") + "' AND LENGTH(COMMODITYTYPE_CODE) = 4 AND COMMODITYTYPE_CODE" + (_SERVERPART.SERVERPART_ID.ToString() == _SERVERPART_ID ? "" : " NOT") + " LIKE '1%' AND PROVINCE_ID = " + _SERVERPART.PROVINCE_CODE); //2、判断是否存在商品类型 if (_DTCOMMODITYTYPE.Rows.Count > 0) { #region 2、判断是否存在业态 string _tempBUSINESSTYPE = DictionaryHelper.GetFieldEnumValue( "BUSINESSTYPE", _GridViewRow.Cells[1].Text.Replace(" ", ""), Transaction); if (HZQR.Common.Utils.IsNumeric(_tempBUSINESSTYPE)) { if (!string.IsNullOrEmpty(Request["BUSINESSTYPE"]) && ((Request["BUSINESSTYPE"].ToDecrypt().StartsWith("!") && Request["BUSINESSTYPE"].ToDecrypt().Contains(_tempBUSINESSTYPE)) || (!Request["BUSINESSTYPE"].ToDecrypt().StartsWith("!") && !Request["BUSINESSTYPE"].ToDecrypt().Contains(_tempBUSINESSTYPE)))) { _ErrBUSINESSTYPE += _ErrBUSINESSTYPE.Length > 0 ? "," : ""; _ErrBUSINESSTYPE += _GridViewRow.Cells[4].Text.Replace(" ", "") + "[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]"; ErrorCount++; continue; } string _tempISBULK = DictionaryHelper.GetFieldEnumValue( "ISBULK", _GridViewRow.Cells[10].Text.Replace(" ", ""), Transaction); string _tempMETERINGMETHOD = DictionaryHelper.GetFieldEnumValue( "METERINGMETHOD", _GridViewRow.Cells[11].Text.Replace(" ", ""), Transaction); string _tempCOMMODITYSTATE = DictionaryHelper.GetFieldEnumValue( "COMMODITYSTATE", _GridViewRow.Cells[12].Text.Replace(" ", ""), Transaction); #region 判断是否散装、称重方式、商品状态是否有误 if (!string.IsNullOrEmpty(_tempCOMMODITYSTATE) && HZQR.Common.Utils.IsNumeric(_tempISBULK) && HZQR.Common.Utils.IsNumeric(_tempMETERINGMETHOD)) { //质量等级 string _tempCOMMODITYGRADE = ""; if (_GridViewRow.Cells[9].Text.Replace(" ", "").Length > 0) { _tempCOMMODITYGRADE = DictionaryHelper.GetFieldEnumValue( "COMMODITYGRADE", _GridViewRow.Cells[9].Text.Replace(" ", ""), Transaction); } #region 3、是否存在商品 --> 添加 Storage.Business.COMMODITY _COMMODITY = new Storage.Business.COMMODITY(this.Transaction); _COMMODITY.AddSearchParameter("COMMODITY_CODE", _GridViewRow.Cells[3].Text.Replace(" ", "")); _COMMODITY.AddSearchParameter("SERVERPART_ID", _SERVERPART.SERVERPART_ID); //4、是否有当前商品 if (_COMMODITY.Search()) { HWRB.COMMODITY _RunningCOMMODITY = new HWRB.COMMODITY(this.Transaction); _RunningCOMMODITY.COMMODITY_ID = _COMMODITY.COMMODITY_ID; #region 4、流程中是否有该商品 if (_RunningCOMMODITY.Select()) { HWRB.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new HWRB.MODIFYFROMSTORAGE(this.Transaction); _MODIFYFROMSTORAGE.AddSearchParameter("Table_Name", "T_COMMODITY"); _MODIFYFROMSTORAGE.AddSearchParameter("Field_Name", "COMMODITY_ID"); _MODIFYFROMSTORAGE.AddSearchParameter("Field_Value", _COMMODITY.COMMODITY_ID); if (_MODIFYFROMSTORAGE.Search()) { if (_HIGHWAYPROINST.HIGHWAYPROINST_ID == _MODIFYFROMSTORAGE.HIGHWAYPROINST_ID) { #region 如果存在当前流程则更新商品 //判断当前服务区相同业态是否存在相同的快捷键信息 if (!string.IsNullOrWhiteSpace(_GridViewRow.Cells[15].Text.Replace(" ", "")) && !_RunningCOMMODITY.IsDuplicateHotKey(_RunningCOMMODITY.KeyID, _GridViewRow.Cells[15].Text.Replace(" ", ""), _SERVERPART.SERVERPART_ID.ToString(), _tempBUSINESSTYPE)) { _RunningCOMMODITY.COMMODITY_HOTKEY = _GridViewRow.Cells[15].Text.Replace(" ", ""); } //商品自定义类 if (!string.IsNullOrWhiteSpace(_GridViewRow.Cells[16].Text.Replace(" ", ""))) { DataRow[] drUserdefindType = dtUserdefindType.Select("SHOPTRADE = '" + _tempBUSINESSTYPE + "' AND USERDEFINEDTYPE_NAME = '" + _GridViewRow.Cells[16].Text.Replace(" ", "") + "'"); if (drUserdefindType.Length > 0) { _RunningCOMMODITY.USERDEFINEDTYPE_ID = drUserdefindType[0]["USERDEFINEDTYPE_ID"].TryParseToInt(); } } //if (_RunningCOMMODITY.BUSINESSTYPE != int.Parse(_tempBUSINESSTYPE)) //{ // IsUpdate = true; _RunningCOMMODITY.BUSINESSTYPE = int.Parse(_tempBUSINESSTYPE); //} _RunningCOMMODITY.COMMODITY_TYPE = _DTCOMMODITYTYPE.Rows[0]["COMMODITYTYPE_ID"].ToString(); _RunningCOMMODITY.COMMODITY_NAME = _GridViewRow.Cells[4].Text.Replace(" ", ""); _RunningCOMMODITY.COMMODITY_BARCODE = _GridViewRow.Cells[5].Text.Replace(" ", "").Trim().Length == 0 ? CreateBarCode(_GridViewRow.Cells[3].Text.Replace(" ", "")) : _GridViewRow.Cells[5].Text.Replace(" ", ""); _RunningCOMMODITY.COMMODITY_UNIT = _GridViewRow.Cells[6].Text.Replace(" ", ""); _RunningCOMMODITY.COMMODITY_RULE = _GridViewRow.Cells[7].Text.Replace(" ", ""); _RunningCOMMODITY.COMMODITY_ORI = _GridViewRow.Cells[8].Text.Replace(" ", ""); if (HZQR.Common.Utils.IsNumeric(_tempCOMMODITYGRADE)) { _RunningCOMMODITY.COMMODITY_GRADE = _tempCOMMODITYGRADE; } _RunningCOMMODITY.ISBULK = int.Parse(_tempISBULK); _RunningCOMMODITY.METERINGMETHOD = int.Parse(_tempMETERINGMETHOD); _RunningCOMMODITY.COMMODITY_STATE = int.Parse(_tempCOMMODITYSTATE); //进价税率 if (!string.IsNullOrEmpty(_GridViewRow.Cells[_GridViewRow.Cells.Count - 4].Text.Replace(" ", ""))) { try { _RunningCOMMODITY.DUTY_PARAGRAPH = short.Parse( _GridViewRow.Cells[_GridViewRow.Cells.Count - 4].Text.Replace(" ", "")); } catch { } } //销售税率 if (!string.IsNullOrEmpty(_GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace(" ", ""))) { try { _RunningCOMMODITY.RETAIL_DUTY = short.Parse( _GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace(" ", "")); } catch { } } _RunningCOMMODITY.Update(); #endregion } else { //不存在则提示 HWRB.HIGHWAYPROINST _HIGHWAYPROINSTCOMMODITY = new HWRB.HIGHWAYPROINST(Transaction); _HIGHWAYPROINSTCOMMODITY.AddSearchParameter("HIGHWAYPROINST_ID", _MODIFYFROMSTORAGE.HIGHWAYPROINST_ID); if (_HIGHWAYPROINSTCOMMODITY.Search()) { _ErrEx += _ErrEx.Length > 0 ? "," : ""; _ErrEx += _GridViewRow.Cells[4].Text.Replace(" ", "") + "[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]创建时间" + _HIGHWAYPROINSTCOMMODITY.HIGHWAYPROINST_CREATEDATE; ErrorCount++; } } } else { //一般没有这种情况 _ErrNotEx += _ErrNotEx.Length > 0 ? "," : ""; _ErrNotEx += _GridViewRow.Cells[4].Text.Replace(" ", "") + "[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]"; } } else { _RunningCOMMODITY.ResetProperty(); _RunningCOMMODITY.CopyFrom(_COMMODITY); //判断当前服务区相同业态是否存在相同的快捷键信息 if (!string.IsNullOrWhiteSpace(_GridViewRow.Cells[15].Text.Replace(" ", "")) && !_RunningCOMMODITY.IsDuplicateHotKey(_RunningCOMMODITY.KeyID, _GridViewRow.Cells[15].Text.Replace(" ", ""), _SERVERPART.SERVERPART_ID.ToString(), _tempBUSINESSTYPE)) { _RunningCOMMODITY.COMMODITY_HOTKEY = _GridViewRow.Cells[15].Text.Replace(" ", ""); } //商品自定义类 if (!string.IsNullOrWhiteSpace(_GridViewRow.Cells[16].Text.Replace(" ", ""))) { DataRow[] drUserdefindType = dtUserdefindType.Select("SHOPTRADE = '" + _tempBUSINESSTYPE + "' AND USERDEFINEDTYPE_NAME = '" + _GridViewRow.Cells[16].Text.Replace(" ", "") + "'"); if (drUserdefindType.Length > 0) { _RunningCOMMODITY.USERDEFINEDTYPE_ID = drUserdefindType[0]["USERDEFINEDTYPE_ID"].TryParseToInt(); } } _RunningCOMMODITY.BUSINESSTYPE = int.Parse(_tempBUSINESSTYPE); _RunningCOMMODITY.COMMODITY_TYPE = _DTCOMMODITYTYPE.Rows[0]["COMMODITYTYPE_ID"].ToString(); _RunningCOMMODITY.COMMODITY_NAME = _GridViewRow.Cells[4].Text.Replace(" ", ""); _RunningCOMMODITY.COMMODITY_BARCODE = _GridViewRow.Cells[5].Text.Replace(" ", "").Trim().Length == 0 ? CreateBarCode(_GridViewRow.Cells[3].Text.Replace(" ", "")) : _GridViewRow.Cells[5].Text.Replace(" ", ""); _RunningCOMMODITY.COMMODITY_UNIT = _GridViewRow.Cells[6].Text.Replace(" ", ""); _RunningCOMMODITY.COMMODITY_RULE = _GridViewRow.Cells[7].Text.Replace(" ", ""); _RunningCOMMODITY.COMMODITY_ORI = _GridViewRow.Cells[8].Text.Replace(" ", ""); if (HZQR.Common.Utils.IsNumeric(_tempCOMMODITYGRADE)) { _RunningCOMMODITY.COMMODITY_GRADE = _tempCOMMODITYGRADE; } _RunningCOMMODITY.ISBULK = int.Parse(_tempISBULK); _RunningCOMMODITY.METERINGMETHOD = int.Parse(_tempMETERINGMETHOD); _RunningCOMMODITY.COMMODITY_STATE = int.Parse(_tempCOMMODITYSTATE); //进价税率 if (!string.IsNullOrEmpty(_GridViewRow.Cells[_GridViewRow.Cells.Count - 4].Text.Replace(" ", ""))) { try { _RunningCOMMODITY.DUTY_PARAGRAPH = short.Parse( _GridViewRow.Cells[_GridViewRow.Cells.Count - 4].Text.Replace(" ", "")); } catch { } } //销售税率 if (!string.IsNullOrEmpty(_GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace(" ", ""))) { try { _RunningCOMMODITY.RETAIL_DUTY = short.Parse( _GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace(" ", "")); } catch { } } _RunningCOMMODITY.Insert(); //插入关联关系 HWRB.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new HWRB.MODIFYFROMSTORAGE(this.Transaction); _MODIFYFROMSTORAGE.HIGHWAYPROINST_ID = _HIGHWAYPROINST.HIGHWAYPROINST_ID; _MODIFYFROMSTORAGE.Field_Value = _COMMODITY.COMMODITY_ID.Value.ToString(); _MODIFYFROMSTORAGE.Table_Name = "T_COMMODITY"; _MODIFYFROMSTORAGE.Field_Name = "COMMODITY_ID"; _MODIFYFROMSTORAGE.Insert(); AddCount++; } #endregion } else { if ((string.IsNullOrEmpty(_BusinessType) ? true : !_BusinessType.Contains(_tempBUSINESSTYPE)) && _SERVERPART.PROVINCE_CODE.ToString() == _PROVINCE_CODE && _HIGHWAYPROINST.ExecuteDataTable( "SELECT 1 FROM HIGHWAY_STORAGE.V_ALL_COMMODITY WHERE COMMODITY_BARCODE = '" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "' AND COMMODITY_STATE >= 1 AND SERVERPART_ID = " + _SERVERPART_ID + (string.IsNullOrEmpty(_BusinessType) ? "" : " AND BUSINESSTYPE NOT IN (" + _BusinessType + ")")).Rows.Count > 0 && _SERVERPART.SERVERPART_ID.ToString() != _SERVERPART_ID) { _ErrUnPri += (string.IsNullOrEmpty(_ErrUnPri) ? "" : ",") + _GridViewRow.Cells[4].Text.Replace(" ", "") + "[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]"; } else { _ErrNoPro += _ErrNoPro.Length > 0 ? "," : ""; _ErrNoPro += _GridViewRow.Cells[4].Text.Replace(" ", "") + "[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]"; } ErrorCount++; } #endregion } else { _ErrNorType += _ErrNorType.Length > 0 ? "," : ""; _ErrNorType += _GridViewRow.Cells[4].Text.Replace(" ", "") + "[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]"; NotExistsCount++; } #endregion } else { _ErrBUSINESSTYPE += _ErrBUSINESSTYPE.Length > 0 ? "," : ""; _ErrBUSINESSTYPE += _GridViewRow.Cells[4].Text.Replace(" ", "") + "[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]"; ErrorCount++; } #endregion } else { _ErrCOMMODITYTYPE += _ErrCOMMODITYTYPE.Length > 0 ? "," : ""; _ErrCOMMODITYTYPE += _GridViewRow.Cells[4].Text.Replace(" ", "") + "[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]"; ErrorCount++; } #endregion } } else { return "请选择服务区!"; } #endregion } else { return "流程码为空!"; } _Result += _ErrCOMMODITYTYPE.Length > 0 ? ",商品名称为" + _ErrCOMMODITYTYPE + "的商品类型无法匹配" : ""; _Result += _ErrBUSINESSTYPE.Length > 0 ? ",商品名称为" + _ErrBUSINESSTYPE + "的业态无法匹配" : ""; _Result += _ErrNorType.Length > 0 ? ",商品名称为" + _ErrNorType + "的是否散称或称重方式或商品状态无法匹配" : ""; _Result += _ErrUnPri.Length > 0 ? ",商品名称为" + _ErrUnPri + "已存在于统一定价中" : ""; _Result += _ErrNoPro.Length > 0 ? ",商品名称为" + _ErrNoPro + "不存在,请进行商品新增" : ""; _Result += _ErrEx.Length > 0 ? ",商品名称为" + _ErrEx + "已存在于其他业务流程中" : ""; _Result += _ErrNotEx.Length > 0 ? ",商品名称为" + _ErrNotEx + "已提交审批却不在业务流程中,请通知管理员" : ""; _Result = (_Result.Length > 0 ? ",其中未对应系统商品" + ErrorCount + "件" : "") + _Result; if (GridView1.Rows.Count != ErrorCount + NotExistsCount) { _Result = "导入完成" + _Result; } else { _Result = "导入失败" + _Result; } RefreshOpenerGridPage(RefreshGridPageType.Insert, AddCount); return _Result; } #endregion #region 方法 -> 产生商品条码 public string CreateBarCode(string COMMODITYCode) { string BarCode = string.Empty; int LastCode = 0; BarCode = COMMODITYCode; //8位编号补足12位 if (BarCode.Length == 8) BarCode = "2600" + BarCode; //偶数位的数字求和*3 + 奇数位数字和 for (int i = 1; i <= 12; i++) { int Num = int.Parse(BarCode.Substring(i - 1, 1)); if (i % 2 == 0) { LastCode += Num * 3; } else { LastCode += Num; } } //和求10的模 LastCode = 10 - (LastCode % 10); if (LastCode == 10) LastCode = 0; //返回条码 return BarCode + LastCode.ToString(); } #endregion #region 方法 -> 修改商品Symbol public void UpdateSymbol(string SERVERPART_ID, string BUSINESS_TYPE, int COMMODITY_ID) { //获取服务区业态最大Symbol DataTable dt = new Running.Business.COMMODITY(Transaction).ExecuteDataTable( "SELECT MAX(to_number(REGEXP_REPLACE(NVL(COMMODITY_SYMBOL,0), '^[[:alpha:]]'))) FROM HIGHWAY_STORAGE.T_COMMODITY WHERE SERVERPART_ID = " + SERVERPART_ID + " AND BUSINESSTYPE = " + BUSINESS_TYPE); int NextSymbol = int.Parse(dt.Rows[0][0].ToString()) + 1; if (_SERVERPART_ID == SERVERPART_ID) { new Running.Business.COMMODITY(Transaction).ExecuteNonQuery("UPDATE HIGHWAY_STORAGE.T_COMMODITY SET COMMODITY_SYMBOL = 'T" + NextSymbol + "' WHERE COMMODITY_ID = " + COMMODITY_ID, null); } else { new Running.Business.COMMODITY(Transaction).ExecuteNonQuery("UPDATE HIGHWAY_STORAGE.T_COMMODITY SET COMMODITY_SYMBOL = " + NextSymbol + " WHERE COMMODITY_ID = " + COMMODITY_ID, null); } } #endregion #region 公共方法 /// /// 由连字符分隔的32位数字 /// /// private static string GetGuid() { System.Guid guid = new Guid(); guid = Guid.NewGuid(); return guid.ToString(); } /// /// 是否为Double类型 /// /// /// public static bool IsDouble(object expression) { if (expression != null) return Regex.IsMatch(expression.ToString(), @"^([0-9])[0-9]*(\.\w*)?$"); return false; } #endregion } }