563 lines
34 KiB
C#
563 lines
34 KiB
C#
using System;
|
|
using System.Configuration;
|
|
using System.Data;
|
|
using System.Data.OleDb;
|
|
using System.IO;
|
|
using System.Text.RegularExpressions;
|
|
using SuperMap.RealEstate.Web.UI;
|
|
using SuperMap.RealEstate.CoreFrameWork;
|
|
using HWRB = SuperMap.RealEstate.HighWay.Running.Business;
|
|
|
|
namespace SuperMap.RealEstate.HighWay.CloudCompents.CommodityChange
|
|
{
|
|
public partial class UpdateExcel : Storage.UI.BasePage
|
|
{
|
|
protected string _BusinessType = ConfigurationManager.AppSettings["BusinessType"].ToString();
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (IsPostBack) return;
|
|
|
|
btnDownExcel.Enabled = false;
|
|
//设置确认导入按钮焦点时间
|
|
SetControlClientAction(btnDownExcel, false);
|
|
}
|
|
|
|
#region 上传Excel -> 显示在Table中
|
|
//上传按钮
|
|
protected void btnUpload_Click(object sender, EventArgs e)
|
|
{
|
|
if (fpUpload.HasFile)
|
|
{
|
|
string[] AExt = fpUpload.FileName.Split('.');
|
|
string strExt = "";
|
|
if (AExt.Length > 1)
|
|
{
|
|
strExt = AExt[AExt.Length - 1];
|
|
}
|
|
//扩展名必须为xls
|
|
if (strExt == "xls")
|
|
{
|
|
//创建上传服务器的临时Excel名称
|
|
string sUploadFile = sUploadFile = GetGuid() + '.' + strExt;
|
|
|
|
string sPathFile = Server.MapPath("/ImportExcel");
|
|
|
|
if (Directory.Exists(sPathFile) == false)
|
|
{
|
|
Directory.CreateDirectory(sPathFile);
|
|
}
|
|
//指定文件夹的路径
|
|
string strSavePath = Path.Combine(sPathFile, sUploadFile);
|
|
//上传文件
|
|
fpUpload.SaveAs(strSavePath);
|
|
//临时保存数据源
|
|
lblUploadFile.Text = strSavePath;
|
|
string sheetname = "Sheet1$";
|
|
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + lblUploadFile.Text +
|
|
";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";
|
|
//此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串)
|
|
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
|
|
conn.Open();
|
|
|
|
DataTable dtExcelSchema = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,
|
|
new object[] { null, null, null, "TABLE" });
|
|
if (dtExcelSchema.Rows.Count > 0)
|
|
{
|
|
sheetname = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
|
|
}
|
|
System.Data.OleDb.OleDbDataAdapter oada = new System.Data.OleDb.OleDbDataAdapter("select * from [" + sheetname + "]", strConn);
|
|
//获取数据导出到DataSet
|
|
DataSet ds = new DataSet();
|
|
oada.Fill(ds);
|
|
conn.Close();
|
|
DataTable dt = ds.Tables[0];
|
|
string _Err = "";
|
|
int _Status = 1;
|
|
table1.InnerHtml = GetCommodityTalbe(dt, out _Err, out _Status);
|
|
if (_Err.Length > 0)
|
|
{
|
|
Alert(_Err);
|
|
}
|
|
|
|
if (_Status == 1)
|
|
{
|
|
btnDownExcel.Enabled = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Alert("请选择上传XLS文件");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Alert("请选择上传XLS文件");
|
|
}
|
|
}
|
|
//获取excel中的表格 _Status 0 为错误excel
|
|
private string GetCommodityTalbe(DataTable dt, out string _Err, out int _Status)
|
|
{
|
|
_Status = 1;
|
|
string _Result = "<table width='1480px' border='1' cellspacing='0' cellpadding='0'>";
|
|
_Result += "<tr bgcolor='#C0C0C' style='height:42px' >"
|
|
+ "<th style='width:4%;text-align:center'>序列</th>"
|
|
+ "<th style='width:8%;text-align:center'>业态</th>"
|
|
+ "<th style='width:8%;text-align:center'>商品类型</th>"
|
|
+ "<th style='width:12%;text-align:center'>商品编码</th>"
|
|
+ "<th style='width:12%;text-align:center'>商品名称</th>"
|
|
+ "<th style='width:12%;text-align:center'>商品条码</th>"
|
|
+ "<th style='width:4%;text-align:center'>商品单位</th>"
|
|
+ "<th style='width:8%;text-align:center'>商品规格</th>"
|
|
+ "<th style='width:8%;text-align:center'>商品产地</th>"
|
|
+ "<th style='width:6%;text-align:center'>质量等级</th>"
|
|
+ "<th style='width:4%;text-align:center'>是否散装</th>"
|
|
+ "<th style='width:4%;text-align:center'>称重方式</th>"
|
|
+ "<th style='width:4%;text-align:center'>商品状态</th>"
|
|
+ "<th style='width:4%;text-align:center'>进价税率</th>"
|
|
+ "<th style='width:4%;text-align:center'>销售税率</th>"
|
|
+ "</tr>";
|
|
_Err = "";
|
|
if (dt.Columns.Count >= 12)
|
|
{
|
|
#region 1、过滤
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
if (dt.Rows[i][0].ToString().Length > 0 && dt.Rows[i][1].ToString().Length > 0 &&
|
|
dt.Rows[i][3].ToString().Length > 0 && dt.Rows[i][5].ToString().Length > 0 &&
|
|
dt.Rows[i][6].ToString().Length > 0 && dt.Rows[i][9].ToString().Length > 0 &&
|
|
dt.Rows[i][10].ToString().Length > 0 && dt.Rows[i][11].ToString().Length > 0)
|
|
{
|
|
_Result += "<tr style='height:42px'>";
|
|
_Result += "<td style='text-align:center'>" + (i + 1) + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][0].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][1].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][2].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][3].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][4].ToString().Replace("&", "&").Replace(
|
|
"<", "<").Replace(">", ">").Replace("°", "°").Replace("·", "·") + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][5].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][6].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][7].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][8].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][9].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][10].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][11].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][12].ToString() + "</td>";
|
|
_Result += "<td style='text-align:center'>" + dt.Rows[i][13].ToString() + "</td>";
|
|
_Result += "</tr>";
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
_Status = 0;
|
|
_Result += "<tr style='height:42px'>";
|
|
_Result += "<td colspan='12' style='text-align:center'>文件格式不正确</td>";
|
|
_Result += "</tr>";
|
|
}
|
|
_Result += "</table>";
|
|
return _Result;
|
|
}
|
|
#endregion
|
|
|
|
#region 方法 -> 导入商品数据
|
|
protected void btnUpdata_Click(object sender, EventArgs e)
|
|
{
|
|
string sheetname = "Sheet1$";
|
|
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + lblUploadFile.Text +
|
|
";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'"; //此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串)
|
|
|
|
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
|
|
conn.Open();
|
|
|
|
DataTable dtExcelSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
|
|
if (dtExcelSchema.Rows.Count > 0)
|
|
{
|
|
sheetname = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
|
|
}
|
|
|
|
System.Data.OleDb.OleDbDataAdapter oada = new System.Data.OleDb.OleDbDataAdapter("select * from [" + sheetname + "]", strConn);
|
|
//获取数据导出到DataSet
|
|
DataSet ds = new DataSet();
|
|
oada.Fill(ds);
|
|
Alert(UpdateCommodity(Request["SERVERPART_ID"].ToDecrypt(), ds.Tables[0]));
|
|
RefreshOpenerGridPage(RefreshGridPageType.Insert);
|
|
}
|
|
|
|
private string UpdateCommodity(string SERVERPART_ID, DataTable dt)
|
|
{
|
|
string _Result = "";
|
|
int ErrorCount = 0, NotExistsCount = 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.SERVERPART_ID = _HIGHWAYPROINST.Dept_ID;
|
|
//1、是否存在服务区
|
|
if (_SERVERPART.Select())
|
|
{
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
if (dt.Rows[i][0].ToString().Length > 0 && dt.Rows[i][1].ToString().Length > 0 &&
|
|
dt.Rows[i][2].ToString().Length > 0 && dt.Rows[i][3].ToString().Length > 0 &&
|
|
dt.Rows[i][5].ToString().Length > 0 && dt.Rows[i][6].ToString().Length > 0 &&
|
|
dt.Rows[i][9].ToString().Length > 0 && dt.Rows[i][10].ToString().Length > 0 &&
|
|
dt.Rows[i][11].ToString().Length > 0)
|
|
{
|
|
#region 判断是否存在商品类型
|
|
Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction);
|
|
DataTable _DTCOMMODITYTYPE = _COMMODITYTYPE.FillDataTable("WHERE COMMODITYTYPE_NAME = '" +
|
|
dt.Rows[i][1].ToString() + "' AND LENGTH(COMMODITYTYPE_CODE) = 4 AND COMMODITYTYPE_CODE" +
|
|
(_SERVERPART.SERVERPART_ID.ToString() == WholeServerpartID ? "" : " NOT") +
|
|
" LIKE '1%' AND PROVINCE_ID = " + _SERVERPART.PROVINCE_CODE);
|
|
//2、判断是否存在商品类型
|
|
if (_DTCOMMODITYTYPE.Rows.Count > 0)
|
|
{
|
|
#region 2、判断是否存在业态
|
|
string _tempBUSINESSTYPE = DictionaryHelper.GetFieldEnumValue(
|
|
"BUSINESSTYPE", dt.Rows[i][0].ToString(), 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 += dt.Rows[i][3].ToString() + "[" + dt.Rows[i][2].ToString() + "]";
|
|
ErrorCount++;
|
|
continue;
|
|
}
|
|
string _tempISBULK = DictionaryHelper.GetFieldEnumValue(
|
|
"ISBULK", dt.Rows[i][9].ToString(), Transaction);
|
|
string _tempMETERINGMETHOD = DictionaryHelper.GetFieldEnumValue(
|
|
"METERINGMETHOD", dt.Rows[i][10].ToString(), Transaction);
|
|
string _tempCOMMODITYSTATE = DictionaryHelper.GetFieldEnumValue(
|
|
"COMMODITYSTATE", dt.Rows[i][11].ToString(), Transaction);
|
|
|
|
#region 判断是否散装、称重方式、商品状态是否有误
|
|
if (!string.IsNullOrEmpty(_tempCOMMODITYSTATE) && HZQR.Common.Utils.IsNumeric(_tempISBULK) &&
|
|
HZQR.Common.Utils.IsNumeric(_tempMETERINGMETHOD))
|
|
{
|
|
#region 3、是否存在商品 --> 添加
|
|
Storage.Business.COMMODITY _COMMODITY = new Storage.Business.COMMODITY(this.Transaction);
|
|
_COMMODITY.AddSearchParameter("COMMODITY_CODE", dt.Rows[i][2].ToString());
|
|
_COMMODITY.AddSearchParameter("SERVERPART_ID", _SERVERPART.SERVERPART_ID);
|
|
_COMMODITY.AddSearchParameter("COMMODITY_STATE", 1);
|
|
//4、是否有当前商品
|
|
if (_COMMODITY.Search(GoodsProvinceCode))
|
|
{
|
|
HWRB.COMMODITY _RunningCOMMODITY = new HWRB.COMMODITY(this.Transaction);
|
|
_RunningCOMMODITY.COMMODITY_ID = _COMMODITY.COMMODITY_ID;
|
|
string _tempCOMMODITYGRADE = "";
|
|
if (dt.Rows[i][8].ToString().Length > 0)
|
|
{
|
|
_tempCOMMODITYGRADE = DictionaryHelper.GetFieldEnumValue(
|
|
"COMMODITYGRADE", dt.Rows[i][8].ToString(), Transaction);
|
|
}
|
|
#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)
|
|
{
|
|
//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 = dt.Rows[i][3].ToString();
|
|
_RunningCOMMODITY.COMMODITY_BARCODE = dt.Rows[i][4].ToString().Trim().Length == 0 ?
|
|
CreateBarCode(dt.Rows[i][2].ToString()) : dt.Rows[i][4].ToString();
|
|
_RunningCOMMODITY.COMMODITY_UNIT = dt.Rows[i][5].ToString();
|
|
_RunningCOMMODITY.COMMODITY_RULE = dt.Rows[i][6].ToString();
|
|
_RunningCOMMODITY.COMMODITY_ORI = dt.Rows[i][7].ToString();
|
|
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(dt.Rows[i][dt.Columns.Count - 2].ToString()))
|
|
{
|
|
try
|
|
{
|
|
_RunningCOMMODITY.DUTY_PARAGRAPH = short.Parse(
|
|
dt.Rows[i][dt.Columns.Count - 2].ToString());
|
|
}
|
|
catch { }
|
|
}
|
|
//销售税率
|
|
if (!string.IsNullOrEmpty(dt.Rows[i][dt.Columns.Count - 1].ToString()))
|
|
{
|
|
try
|
|
{
|
|
_RunningCOMMODITY.RETAIL_DUTY = short.Parse(
|
|
dt.Rows[i][dt.Columns.Count - 1].ToString());
|
|
}
|
|
catch { }
|
|
}
|
|
_RunningCOMMODITY.Update();
|
|
}
|
|
else
|
|
{
|
|
//不存在则提示
|
|
HWRB.HIGHWAYPROINST _HIGHWAYPROINSTCOMMODITY = new HWRB.HIGHWAYPROINST(Transaction);
|
|
_HIGHWAYPROINSTCOMMODITY.AddSearchParameter("HIGHWAYPROINST_ID",
|
|
_MODIFYFROMSTORAGE.HIGHWAYPROINST_ID);
|
|
if (_HIGHWAYPROINSTCOMMODITY.Search())
|
|
{
|
|
_ErrEx += _ErrEx.Length > 0 ? "," : "";
|
|
_ErrEx += dt.Rows[i][3].ToString() + "[" + dt.Rows[i][2].ToString() +
|
|
"]创建时间" + _HIGHWAYPROINSTCOMMODITY.HIGHWAYPROINST_CREATEDATE;
|
|
ErrorCount++;
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
//一般没有这种情况
|
|
_ErrNotEx += _ErrNotEx.Length > 0 ? "," : "";
|
|
_ErrNotEx += dt.Rows[i][3].ToString() + "[" + dt.Rows[i][2].ToString() + "]";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
_RunningCOMMODITY.ResetProperty();
|
|
_RunningCOMMODITY.CopyFrom(_COMMODITY);
|
|
_RunningCOMMODITY.BUSINESSTYPE = int.Parse(_tempBUSINESSTYPE);
|
|
_RunningCOMMODITY.COMMODITY_TYPE = _DTCOMMODITYTYPE.Rows[0]["COMMODITYTYPE_ID"].ToString();
|
|
_RunningCOMMODITY.COMMODITY_NAME = dt.Rows[i][3].ToString();
|
|
_RunningCOMMODITY.COMMODITY_BARCODE = dt.Rows[i][4].ToString().Trim().Length == 0 ?
|
|
CreateBarCode(dt.Rows[i][2].ToString()) : dt.Rows[i][4].ToString();
|
|
_RunningCOMMODITY.COMMODITY_UNIT = dt.Rows[i][5].ToString();
|
|
_RunningCOMMODITY.COMMODITY_RULE = dt.Rows[i][6].ToString();
|
|
_RunningCOMMODITY.COMMODITY_ORI = dt.Rows[i][7].ToString();
|
|
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(dt.Rows[i][dt.Columns.Count - 2].ToString()))
|
|
{
|
|
try
|
|
{
|
|
_RunningCOMMODITY.DUTY_PARAGRAPH = short.Parse(
|
|
dt.Rows[i][dt.Columns.Count - 2].ToString());
|
|
}
|
|
catch { }
|
|
}
|
|
//销售税率
|
|
if (!string.IsNullOrEmpty(dt.Rows[i][dt.Columns.Count - 1].ToString()))
|
|
{
|
|
try
|
|
{
|
|
_RunningCOMMODITY.RETAIL_DUTY = short.Parse(
|
|
dt.Rows[i][dt.Columns.Count - 1].ToString());
|
|
}
|
|
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();
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
if ((string.IsNullOrEmpty(_BusinessType) ? true : !_BusinessType.Contains(_tempBUSINESSTYPE)) &&
|
|
_SERVERPART.PROVINCE_CODE.ToString() == ProvinceID && _HIGHWAYPROINST.ExecuteDataTable(
|
|
"SELECT 1 FROM HIGHWAY_STORAGE.V_ALL_COMMODITY" + GoodsProvinceCode +
|
|
" WHERE COMMODITY_BARCODE = '" + dt.Rows[i][2].ToString() +
|
|
"' AND COMMODITY_STATE >= 1 AND SERVERPART_ID = " + WholeServerpartID +
|
|
(string.IsNullOrEmpty(_BusinessType) ? "" : " AND BUSINESSTYPE NOT IN (" +
|
|
_BusinessType + ")")).Rows.Count > 0 && _SERVERPART.SERVERPART_ID.ToString() != WholeServerpartID)
|
|
{
|
|
_ErrUnPri += (string.IsNullOrEmpty(_ErrUnPri) ? "" : ",") +
|
|
dt.Rows[i][3].ToString() + "[" + dt.Rows[i][2].ToString() + "]";
|
|
}
|
|
else
|
|
{
|
|
_ErrNoPro += _ErrNoPro.Length > 0 ? "," : "";
|
|
_ErrNoPro += dt.Rows[i][3].ToString() + "[" + dt.Rows[i][2].ToString() + "]";
|
|
}
|
|
ErrorCount++;
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
_ErrNorType += _ErrNorType.Length > 0 ? "," : "";
|
|
_ErrNorType += dt.Rows[i][3].ToString() + "[" + dt.Rows[i][2].ToString() + "]";
|
|
NotExistsCount++;
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
_ErrBUSINESSTYPE += _ErrBUSINESSTYPE.Length > 0 ? "," : "";
|
|
_ErrBUSINESSTYPE += dt.Rows[i][3].ToString() + "[" + dt.Rows[i][2].ToString() + "]";
|
|
ErrorCount++;
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
_ErrCOMMODITYTYPE += _ErrCOMMODITYTYPE.Length > 0 ? "," : "";
|
|
_ErrCOMMODITYTYPE += dt.Rows[i][3].ToString() + "[" + dt.Rows[i][2].ToString() + "]";
|
|
ErrorCount++;
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
NotExistsCount++;
|
|
}
|
|
|
|
}
|
|
}
|
|
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 (dt.Rows.Count != ErrorCount + NotExistsCount)
|
|
{
|
|
_Result = "导入完成" + _Result;
|
|
}
|
|
else
|
|
{
|
|
_Result = "导入失败" + _Result;
|
|
}
|
|
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" +
|
|
GoodsProvinceCode + " WHERE SERVERPART_ID = " + SERVERPART_ID + " AND BUSINESSTYPE = " + BUSINESS_TYPE);
|
|
int NextSymbol = int.Parse(dt.Rows[0][0].ToString()) + 1;
|
|
if (WholeServerpartID == SERVERPART_ID)
|
|
{
|
|
new Running.Business.COMMODITY(Transaction).ExecuteNonQuery("UPDATE HIGHWAY_STORAGE.T_COMMODITY" +
|
|
GoodsProvinceCode + " SET COMMODITY_SYMBOL = 'T" + NextSymbol + "' WHERE COMMODITY_ID = " + COMMODITY_ID, null);
|
|
}
|
|
else
|
|
{
|
|
new Running.Business.COMMODITY(Transaction).ExecuteNonQuery("UPDATE HIGHWAY_STORAGE.T_COMMODITY" +
|
|
GoodsProvinceCode + " SET COMMODITY_SYMBOL = " + NextSymbol + " WHERE COMMODITY_ID = " + COMMODITY_ID, null);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 公共方法
|
|
/// <summary>
|
|
/// 由连字符分隔的32位数字
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private static string GetGuid()
|
|
{
|
|
System.Guid guid = new Guid();
|
|
guid = Guid.NewGuid();
|
|
return guid.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 是否为Double类型
|
|
/// </summary>
|
|
/// <param name="expression"></param>
|
|
/// <returns></returns>
|
|
public static bool IsDouble(object expression)
|
|
{
|
|
if (expression != null)
|
|
return Regex.IsMatch(expression.ToString(), @"^([0-9])[0-9]*(\.\w*)?$");
|
|
|
|
return false;
|
|
}
|
|
#endregion
|
|
}
|
|
} |