using System.Data;
using System.Collections;
using System.Text;
using Estsh.Core.Models;
using Estsh.Core.Repository.IRepositories;
using Estsh.Core.Services.IServices;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.Text.RegularExpressions;
/***************************************************************************************************
*
* 更新人:sitong.dong
* 描述:采购周计划导入
* 修改时间:2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Services
{
///
/// 采购周计划业务处理类
///
public class PurchaseNoteService : BaseService, IPurchaseNoteService
{
#region 类局部变量
private System.Data.DataTable dtWeekSchedule = null;
private System.Data.DataTable dtDaySchedule = null;
private System.Data.DataTable dtWeekDate = null;
private bool isReadWeekDate = false;
private string[] strArrayWeekValue = null;
private const int ISTARTSHEETINDEX = 6; //起始SHEET值(不读取)
private const int IENDSHEETCOUNT = 3; //尾通用SHEET数量(不读取)
private const int ISTARTROWINDEX = 18; //数据起始行值
private const int ISTARTDATEINDEX = 7; //日期起始列值
private const int IENDDATEINDEX = 13; //日期结束列值
private const int IROWINTERVAL = 8; //上、下模板差值
private const int ICOLINTERVAL = 6; //左、右模板差值
private const int IFIRSTLETTER = 65; //起始字母值(‘A’ ASSIC value)
#endregion
private readonly IPurchaseNoteRepository repository;
public PurchaseNoteService(IPurchaseNoteRepository _repository) : base(_repository)
{
repository = _repository;
strArrayWeekValue = new string[7];
strArrayWeekValue[0] = "日";
strArrayWeekValue[1] = "一";
strArrayWeekValue[2] = "二";
strArrayWeekValue[3] = "三";
strArrayWeekValue[4] = "四";
strArrayWeekValue[5] = "五";
strArrayWeekValue[6] = "六";
isReadWeekDate = false;
}
///
/// 读取采购订单文件并更新至数据库
///
/// 文件全路径
/// 登录用户信息
public Hashtable ReadExcelFile(Stream inputStream, int userID)
{
HSSFWorkbook hsWorkbook = new HSSFWorkbook(inputStream);
Hashtable result = new Hashtable();
int iSheetCount = hsWorkbook.Workbook.NumSheets;
if (iSheetCount < 9)
{
result.Add("log","所选取周计划数据[Sheet]数量不足,请确认采购单格式!");
result.Add("message", "所选取周计划数据[Sheet]数量不足,请确认采购单格式!\r\n");
result.Add("flag","error");
return result;
}
if (!isReadWeekDate)
{
string strReadWeekDate = this.ReadWeekDate(hsWorkbook);
if (strReadWeekDate != "")
{
result.Add("log", strReadWeekDate);
result.Add("message", strReadWeekDate);
result.Add("flag", "error");
return result;
}
isReadWeekDate = true;
//this.ListBoxItemAdd(lstInfo, "[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
// + "]:周数及对应日期读取成功!正在读取周计划表头数据,请稍候...");
//this.MessageShow(plInfo, lblInfo, "周数及对应日期读取成功!\r\n正在读取周计划表头数据,请稍候...", 1);
//System.Windows.Forms.Application.DoEvents();
}
string strReadWeekResult = this.ReadWeekSchedule(hsWorkbook, iSheetCount,userID);
if (strReadWeekResult != "")
{
result.Add("log", strReadWeekResult);
result.Add("message", strReadWeekResult);
result.Add("flag", "error");
return result;
}
string strReadDayResult = this.ReadDaySchedule(hsWorkbook, iSheetCount);
if (strReadDayResult != "")
{
result.Add("log", strReadDayResult);
result.Add("message", strReadDayResult);
result.Add("flag", "error");
return result;
}
string strResult = this.repository.DataSaveTransact(dtWeekSchedule, dtDaySchedule, userID).Trim();
if (string.IsNullOrEmpty(strResult))
{
result.Add("log", "周计划数据文件更新成功!日程单已转结,请确认...\r\n周计划订单数据文件更新成功!");
result.Add("message", "周计划数据文件更新成功,日程单已转结,请确认!");
result.Add("flag", "success");
return result;
}
else
{
result.Add("log", "周计划数据文件更新失败!请重试...\r\n周计划订单数据文件更新失败!");
result.Add("message", "周计划数据文件更新失败,请重试!");
result.Add("flag", "error");
return result;
//#if DEBUG
//this.MessageShow(plInfo, lblInfo, strResult, 0);
//#endif
}
}
///
/// 读取EXCEL周计划文件详细要货数据
///
/// EXCEL工作簿对象
/// EXCEL工作表数量
///
public string ReadDaySchedule(HSSFWorkbook hsWorkbook, int iSheetCount)
{
dtDaySchedule = new System.Data.DataTable();
dtDaySchedule.TableName = "DaySchedule";
DataColumn dcSeNo = new DataColumn("se_no", typeof(string)); //周计划单据号
DataColumn dcChNo = new DataColumn("ch_no", typeof(string)); //采购单
DataColumn dcSeDate = new DataColumn("se_date", typeof(string)); //送货日期
DataColumn dcSeTime = new DataColumn("se_time", typeof(string)); //送货时间
DataColumn dcElNo = new DataColumn("el_no", typeof(string)); //零件号
DataColumn dcBoxQty = new DataColumn("carton_qty", typeof(string)); //送货数量(箱数量)
DataColumn dcSnpQty = new DataColumn("snp_qty", typeof(string)); //标准包装规格
DataColumn dcQty = new DataColumn("qty", typeof(string)); //总数量
DataColumn dcProject = new DataColumn("se_project", typeof(string)); //项目
DataColumn dcChNoSheet = new DataColumn("ch_no_sheet", typeof(string)); //周计划单行采购订单
DataColumn dcSuNo = new DataColumn("su_no", typeof(string)); //供应商代码
DataColumn dcDayOrder = new DataColumn("day_order", typeof(string)); //日程单单据号
DataColumn dcVendorId = new DataColumn("vendor_id", typeof(string)); //供应商信息所属行ID
DataColumn dcPartId = new DataColumn("part_id", typeof(string)); //零件号信息所属行ID
DataColumn dcTypeId = new DataColumn("type_id", typeof(string)); //项目(车型)信息所属行ID
dtDaySchedule.Columns.AddRange(new DataColumn[] { dcSeNo, dcChNo, dcSeDate, dcSeTime, dcElNo
, dcBoxQty, dcSnpQty, dcQty, dcProject, dcChNoSheet, dcSuNo, dcDayOrder, dcVendorId, dcPartId, dcTypeId });
for (int i = ISTARTSHEETINDEX; i < iSheetCount - IENDSHEETCOUNT; i++)
{
//string strTemppp = dtWeekSchedule.Rows[i - ISTARTSHEETINDEX][19].ToString().Trim().ToUpper();
if (dtWeekSchedule.Rows[i - ISTARTSHEETINDEX]["is_print"].ToString().Trim().ToUpper() != "Y")
{
continue;
}
string strSuNo = dtWeekSchedule.Rows[i - ISTARTSHEETINDEX]["su_no"].ToString().Trim().ToUpper();
string strSeNo = dtWeekSchedule.Rows[i - ISTARTSHEETINDEX]["se_no"].ToString().Trim().ToUpper();
string strVendorId = dtWeekSchedule.Rows[i - ISTARTSHEETINDEX]["vendor_id"].ToString().Trim().ToUpper();
HSSFSheet hsSheet = (HSSFSheet)hsWorkbook.GetSheetAt(i);
//string strSupplierCode = dtWeekSchedule.Rows[i - ISTARTSHEETINDEX][1].ToString();
string strChNo = dtWeekSchedule.Rows[0][1].ToString();
for (int j = ISTARTROWINDEX; j < 65535; j++)
{
HSSFCell hsCell = (HSSFCell)hsSheet.GetRow(j).GetCell(0);
string strElNo = this.GetCellValue(hsCell).Trim();
if (strElNo == "备注")
{
break;
}
hsCell = (HSSFCell)hsSheet.GetRow(j).GetCell(6);
if (this.GetCellValue(hsCell).Trim() == "")
{
break;
}
//标准包装获取
hsCell = (HSSFCell)hsSheet.GetRow(j).GetCell(5);
string strSnp = this.GetCellValue(hsCell);
hsCell = (HSSFCell)hsSheet.GetRow(j).GetCell(2);
string strProject = this.GetCellValue(hsCell).ToUpper().Replace(" ", "");
hsCell = (HSSFCell)hsSheet.GetRow(j).GetCell(3);
strChNo = this.GetCellValue(hsCell).ToUpper().Trim();
if (strElNo == "")
{
//同零件多送货时间,寻找第一送货时间点的零件号及标准包装
for (int n = j; n >= ISTARTROWINDEX; n--)
{
hsCell = (HSSFCell)hsSheet.GetRow(n).GetCell(0);
string strTempCellValue = this.GetCellValue(hsCell).Trim();
if (strTempCellValue == "")
{
continue;
}
strElNo = strTempCellValue;
hsCell = (HSSFCell)hsSheet.GetRow(n).GetCell(5);
strSnp = this.GetCellValue(hsCell);
hsCell = (HSSFCell)hsSheet.GetRow(n).GetCell(2);
strProject = this.GetCellValue(hsCell);
hsCell = (HSSFCell)hsSheet.GetRow(n).GetCell(3);
strChNo = this.GetCellValue(hsCell);
break;
}
}
if (strElNo == "")
{
return "第[" + Convert.ToString(j + 1) +
"]行,零件号读取错误!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
string partId = this.repository.QueryPartId(strElNo);
if (string.IsNullOrEmpty(partId))
{
return "第[" + Convert.ToString(j + 1) +
"]行,零件号信息查询错误!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
if (!this.IsNumeric(strSnp))
{
return "第[" + Convert.ToString(j + 1) +
"]行,零件标准包装读取错误!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
int iSnp = Convert.ToInt32(strSnp);
if (iSnp < 1)
{
return "第[" + Convert.ToString(j + 1) +
"]行,零件标准包装配置有误!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
int snpTemp = this.repository.QueryPartSnp(partId);
if (snpTemp < 1)
{
return "第[" + Convert.ToString(j + 1) +
"]行,无此零件配置信息或标准包装配置有误!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
if (strSnp != snpTemp.ToString())
{
return "第[" + Convert.ToString(j + 1) + "]行,此零件标准包装[" + strSnp + "]与系统配置数据[" +
snpTemp.ToString() + "]不符!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
string itemId = this.repository.QueryItemId(strProject);
if (string.IsNullOrEmpty(itemId))
{
return "第[" + Convert.ToString(j + 1) + "]行,此零件所属项目[" + strProject +
"]信息未配置或与系统不符!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
if (!this.repository.ValidatePurNo(strChNo, strElNo))
{
return "第[" + Convert.ToString(j + 1) + "]行,此零件所属采购单号[" + strChNo +
"]信息验证失败,请确认QAD采购单数据已同步!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
hsCell = (HSSFCell)hsSheet.GetRow(j).GetCell(6);
string strTime = this.GetTimeCellValue(hsCell);
if (strTime == "")
{
return "第[" + Convert.ToString(j + 1) +
"]行,送货时间读取错误!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
string strDateNow = this.repository.GetApDateTime(0);
if (strDateNow == "")
{
return "服务器日期获取错误!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
for (int k = ISTARTDATEINDEX; k <= IENDDATEINDEX; k++)
{
//判断文件内日期是否早于服务器日期
string strSeDate = dtWeekDate.Rows[k - ISTARTDATEINDEX][1].ToString();
if (strSeDate.CompareTo(strDateNow) < 0)
{
continue;
}
hsCell = (HSSFCell)hsSheet.GetRow(j).GetCell(k);
string strSendQty = this.GetCellValue(hsCell);
if (strSendQty == "0" || strSendQty == "")
{
continue;
}
if (!this.IsNumeric(strSendQty))
{
return "第[" + Convert.ToString(j + 1) + "]行,第[" + Convert.ToString(k + 1) +
"]列,数据格式错误!\r\nSheet Name:[" + hsSheet.SheetName + "]"; ;
}
int iSendQty = Convert.ToInt32(strSendQty);
//int iBoxQty = iSendQty / iSnp;
int iBoxQty = (int)Math.Ceiling(Convert.ToDouble(iSendQty) / iSnp);
DataRow dr = dtDaySchedule.NewRow();
dr["se_no"] = strSeNo;
dr["ch_no_sheet"] = dtWeekSchedule.Rows[i - ISTARTSHEETINDEX]["ch_no"].ToString();
dr["ch_no"] = strChNo;
dr["se_date"] = strSeDate;
dr["se_time"] = strTime;
dr["el_no"] = strElNo;
dr["carton_qty"] = iBoxQty.ToString();
dr["snp_qty"] = strSnp;
dr["qty"] = strSendQty;
dr["se_project"] = strProject;
dr["su_no"] = strSuNo;
dr["day_order"] = "DR" + strSeDate.Replace("/", "");
dr["vendor_id"] = strVendorId;
dr["part_id"] = partId;
dr["type_id"] = itemId;
dtDaySchedule.Rows.Add(dr);
}
}
}
if (dtDaySchedule == null || dtDaySchedule.Rows.Count < 1)
{
return "所选择采购周计划订单文件未读取到任何数据,请确认文件格式!";
}
DataView dvDaySchedule = new DataView();
dvDaySchedule = dtDaySchedule.Copy().DefaultView;
dvDaySchedule.Sort = "el_no,se_date,se_time";
dtDaySchedule.Clear();
dtDaySchedule = dvDaySchedule.ToTable();
return "";
}
///
/// 获取周计划段内详细日期数据
///
/// 工作簿对象
///
public string ReadWeekDate(HSSFWorkbook hsWorkbook)
{
dtWeekDate = new System.Data.DataTable();
dtWeekDate.TableName = "WeekDate";
DataColumn dcWeekNo = new DataColumn("week_no", typeof(string)); //周数
DataColumn dcDayValue = new DataColumn("day_value", typeof(string)); //日期
DataColumn dcWeekValue = new DataColumn("week_value", typeof(string)); //星期值
dtWeekDate.Columns.AddRange(new DataColumn[] { dcWeekNo, dcDayValue, dcWeekValue });
HSSFSheet hsSheet = (HSSFSheet)hsWorkbook.GetSheetAt(ISTARTDATEINDEX - 1);
for (int i = ISTARTDATEINDEX; i <= IENDDATEINDEX; i++)
{
DataRow dr = dtWeekDate.NewRow();
HSSFCell hsCell = (HSSFCell)hsSheet.GetRow(15).GetCell(i);
string strWeekNo = this.GetCellValue(hsCell);
int iWeekNo = 0;
try
{
iWeekNo = Convert.ToInt32(strWeekNo);
}
catch
{
return "订单数据所属周数读取错误,请确认订单格式!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
if (iWeekNo < 10)
{
dr["week_no"] = "0" + strWeekNo;
}
else
{
dr["week_no"] = strWeekNo;
}
hsCell = (HSSFCell)hsSheet.GetRow(16).GetCell(i);
DateTime dtTemp = DateTime.FromOADate(Convert.ToInt32(this.GetCellValue(hsCell)));
//dr[1] = dtTemp.ToShortDateString().Replace("-", "/");
dr["day_value"] = dtTemp.ToString("yyyy/MM/dd").Replace('-', '/');
dr["week_value"] = strArrayWeekValue[(int)dtTemp.DayOfWeek];
if (dr["week_no"].ToString() == "" || dr["day_value"].ToString() == "" || dr["week_value"].ToString() == "")
{
return "订单周数及日期查询错误,请确认订单格式!\r\nSheet Name:[" + hsSheet.SheetName + "]";
}
dtWeekDate.Rows.Add(dr);
}
return "";
}
///
/// 获取EXCEL周计划文件内各供应商表头信息
///
/// 工作簿对象
/// 工作表数量
///
public string ReadWeekSchedule(HSSFWorkbook hsWorkbook, int iSheetCount,int userID)
{
dtWeekSchedule = new System.Data.DataTable();
dtWeekSchedule.TableName = "WeekSchedule";
DataColumn dcSeNo = new DataColumn("se_no", typeof(string)); //周计划单
DataColumn dcSuNo = new DataColumn("su_no", typeof(string)); //供应商代码
DataColumn dcChNo = new DataColumn("ch_no", typeof(string)); //采购单
DataColumn dcSuContact = new DataColumn("su_contact", typeof(string)); //供应商联系人
DataColumn dcSuTel = new DataColumn("su_tel", typeof(string));
DataColumn dcSuFax = new DataColumn("su_fax", typeof(string));
DataColumn dcSuMtel = new DataColumn("su_mtel", typeof(string));
DataColumn dcSuAddr = new DataColumn("su_addr", typeof(string));
DataColumn dcSuMile = new DataColumn("su_mile", typeof(string));
DataColumn dcSeDate = new DataColumn("se_date", typeof(string));
DataColumn dcSeAddr = new DataColumn("se_addr", typeof(string));
DataColumn dcSeContact = new DataColumn("se_contact", typeof(string));
DataColumn dcSeTel = new DataColumn("se_tel", typeof(string));
DataColumn dcSeMtel = new DataColumn("se_mtel", typeof(string));
DataColumn dcSeFax = new DataColumn("se_fax", typeof(string));
DataColumn dcSeMile = new DataColumn("se_mile", typeof(string));
DataColumn dcWaNo = new DataColumn("wa_no", typeof(string));
DataColumn dcSeWeek = new DataColumn("se_week", typeof(string));
DataColumn dcRtdSure = new DataColumn("rtd_sure", typeof(string));
DataColumn dcIsPrint = new DataColumn("is_print", typeof(string));
DataColumn dcSuPwd = new DataColumn("su_pwd", typeof(string));
DataColumn dcIssId = new DataColumn("iss_id", typeof(string));
DataColumn dcVendorId = new DataColumn("vendor_id", typeof(string));
dtWeekSchedule.Columns.AddRange(new DataColumn[] { dcSeNo, dcSuNo, dcChNo, dcSuContact,
dcSuTel, dcSuFax, dcSuMtel, dcSuAddr, dcSuMile, dcSeDate, dcSeAddr, dcSeContact,
dcSeTel, dcSeMtel, dcSeFax, dcSeMile, dcWaNo, dcSeWeek, dcRtdSure, dcIsPrint ,dcSuPwd ,dcVendorId ,dcIssId });
HSSFSheet hsSheet = new HSSFSheet(hsWorkbook);
for (int i = ISTARTSHEETINDEX; i < iSheetCount - IENDSHEETCOUNT; i++)
{
hsSheet = (HSSFSheet)hsWorkbook.GetSheetAt(i);
string[] strArrayTemp = null;
strArrayTemp = this.GetSupplierInfo(hsSheet,userID);
if (strArrayTemp[0] != "")
{
return strArrayTemp[0];
}
string strSeWeek = dtWeekDate.Rows[0]["week_no"].ToString();
DataRow dr = dtWeekSchedule.NewRow();
dr["se_no"] = "WR" + this.repository.GetServerDateTime("YYYY") + strSeWeek;
for (int j = 1; j <= 16; j++)
{
dr[j] = strArrayTemp[j];
}
dr["se_week"] = strSeWeek;
dr["rtd_sure"] = "N";
dr["is_print"] = strArrayTemp[19];
dr["su_pwd"] = strArrayTemp[20];
dr["vendor_id"] = strArrayTemp[21];
dr["iss_id"] = strArrayTemp[22];
dtWeekSchedule.Rows.Add(dr);
}
return "";
}
public string[] GetSupplierInfo(HSSFSheet hsSheet,int userID)
{
string[] strArrayInfo = new string[23];
strArrayInfo[0] = "";
string factoryId = this.repository.GetFactoryId(userID);
if (string.IsNullOrEmpty(factoryId))
{
strArrayInfo[0] = "登录用户所属厂区信息查询错误!";
return strArrayInfo;
}
HSSFCell hsCell = (HSSFCell)hsSheet.GetRow(5).GetCell(0);
string strSupplierCode = this.SeparateByColon(GetCellValue(hsCell));
if (strSupplierCode == "")
{
strArrayInfo[0] = "供应商代码查询错误,请确认订单格式!\r\nSheet Name:[" + hsSheet.SheetName + "]";
return strArrayInfo;
}
strArrayInfo[1] = strSupplierCode.Trim().ToUpper(); //su_no:供应商代码
hsCell = (HSSFCell)hsSheet.GetRow(7).GetCell(0);
string strBuyerNo = this.SeparateByColon(GetCellValue(hsCell)).ToUpper();
if (strBuyerNo == "")
{
strArrayInfo[0] = "采购单号查询错误,请确认订单格式!\r\nSheet Name:[" + hsSheet.SheetName + "]";
return strArrayInfo;
}
strArrayInfo[2] = strBuyerNo; //ch_no:采购单
List dtTemp = this.repository.QuerySupplierInfo(strSupplierCode);
if (dtTemp != null && dtTemp.Count > 0)
{
strArrayInfo[3] = dtTemp[0].VendorSale.ToString(); //su_contact:供应商联系人
strArrayInfo[4] = dtTemp[0].VendorTel.ToString(); //su_tel:供应商电话
strArrayInfo[5] = dtTemp[0].VendorFax.ToString(); //su_fax:供应商传真
strArrayInfo[6] = dtTemp[0].VendorMtel.ToString(); //su_mtel:供应商移动电话
strArrayInfo[7] = dtTemp[0].VendorAddr.ToString(); //su_addr:供应商联系地址
strArrayInfo[8] = dtTemp[0].VendorMail.ToString(); //su_mile:供应商联系Mail
strArrayInfo[19] = dtTemp[0].IsPrint.ToString().Trim().ToUpper(); //供应商是否要打印打码
strArrayInfo[20] = dtTemp[0].VendorPwd.ToString().Trim().ToUpper();//供应商压缩密码
strArrayInfo[21] = dtTemp[0].VendorId.ToString().Trim(); //供应商信息所属行ID
}
else
{
strArrayInfo[0] = "供应商[" + strSupplierCode +
"]信息查询错误,请确认供应商基本信息已维护!\r\nSheet Name:[" + hsSheet.SheetName + "]";
return strArrayInfo;
}
hsCell = (HSSFCell)hsSheet.GetRow(5).GetCell(10);
string strSeDate = this.GetCellValue(hsCell);
if (strSeDate == "")
{
strArrayInfo[0] = "下单日期查询错误,请确认订单格式!\r\nSheet Name:[" + hsSheet.SheetName + "]";
return strArrayInfo;
}
strArrayInfo[9] = DateTime.FromOADate(Convert.ToInt32(strSeDate)).ToString("yyyy/MM/dd").Replace("-", "/"); //se_date:送货日期
hsCell = (HSSFCell)hsSheet.GetRow(7).GetCell(6);
string strOrderName = this.SeparateByColon(GetCellValue(hsCell));
if (strOrderName == "")
{
strArrayInfo[0] = "下单员信息查询错误,请确认订单格式!\r\nSheet Name:[" + hsSheet.SheetName + "]";
return strArrayInfo;
}
List dtiss = this.repository.QueryOrderInfo(strOrderName);
if (dtiss != null && dtiss.Count > 0)
{
strArrayInfo[10] = dtiss[0].IssAddr.ToString(); //se_addr:订单员联系地址
strArrayInfo[11] = dtiss[0].IssName.ToString(); //se_contact:订单员姓名
strArrayInfo[12] = dtiss[0].IssTel.ToString(); //se_tel:订单员电话
strArrayInfo[13] = dtiss[0].IssMtel.ToString(); //se_mtel:订单员移动电话
strArrayInfo[14] = dtiss[0].IssFax.ToString(); //se_fax:订单员传真
strArrayInfo[15] = dtiss[0].IssMail.ToString(); //se_mile:订单员联系Mail
strArrayInfo[22] = dtiss[0].IssId.ToString(); //订单员信息所属行ID
}
else
{
strArrayInfo[0] = "订单员[" + strOrderName +
"]信息查询错误,请确认订单员基本信息已维护!\r\nSheet Name:[" + hsSheet.SheetName + "]";
return strArrayInfo;
}
strArrayInfo[16] = factoryId; //wa_no:厂别
return strArrayInfo;
}
///
/// NPOI获取EXCEL工作表中单元格内容
///
/// EXCEL单元格对象
///
public string GetCellValue(HSSFCell hsCell)
{
if (hsCell == null)
{
return "";
}
switch (hsCell.CellType)
{
case CellType.Numeric:
return hsCell.NumericCellValue.ToString();
case CellType.Formula:
return hsCell.NumericCellValue.ToString();
case CellType.String:
return hsCell.StringCellValue;
case CellType.Boolean:
return hsCell.BooleanCellValue.ToString();
default:
return "";
}
}
///
/// NPOI获取EXCEL工作表中时间类型单元格内容
///
/// EXCEL单元格对象
///
public string GetTimeCellValue(HSSFCell hsCell)
{
if (hsCell == null)
{
return "";
}
if (hsCell.CellType != CellType.Numeric)
{
return "";
}
string strResult = hsCell.DateCellValue.ToString();
try
{
DateTime dt = Convert.ToDateTime(strResult);
strResult = dt.ToString("HH:mm");
}
catch
{
return "";
}
if (strResult.Length > 1)
{
string strLastChar = strResult.Substring(strResult.Length - 1, 1);
if (strLastChar == ":" || strLastChar == ":")
{
strResult = strResult.Substring(0, strResult.Length - 1);
}
}
return strResult;
}
///
/// separate the string by colon
///
/// source string
/// return part content as string
public string SeparateByColon(string src)
{
string split = ":";
string[] strArray = null;
src = src.Replace(":", split);
if (src.IndexOf(split) < 0)
{
return "";
}
strArray = src.Split(split.ToCharArray());
if (strArray.Length > 2)
{
string strTemp = "";
for (int i = 1; i < strArray.Length; i++)
{
if (strTemp == "")
{
strTemp += strArray[i];
}
else
{
strTemp += split + strArray[i];
}
}
return strTemp;
}
else
{
return strArray[1];
}
}
///
/// separate the string by split string & flag
///
/// source string
/// split string
/// part flag
/// return part content as string
public string Separater(string src, string split, int flag)
{
string[] strArray = null;
if (src.IndexOf(split) < 0)
{
if (flag == 0)
{
return src;
}
else
{
return "";
}
}
strArray = src.Split(split.ToCharArray());
if (flag == 0)
{
return strArray[0].Trim();
}
else
{
if (strArray.Length > 2)
{
string strTemp = "";
for (int i = 1; i < strArray.Length; i++)
{
if (strTemp == "")
{
strTemp += strArray[i];
}
else
{
strTemp += split + strArray[i];
}
}
return strTemp;
}
else
{
return strArray[1];
}
}
}
///
/// verdict the src is number
///
/// source string
/// return a value as bool
public bool IsNumeric(string src)
{
if (src == "")
{
return false;
}
if (src.Substring(0, 1) == "-")
{
src = src.Substring(1);
}
Regex regex = new Regex("[0-9]");
for (int i = 0; i < src.Length; i++)
{
if (!regex.IsMatch(src.Substring(i, 1)))
{
return false;
}
}
return true;
}
///
/// 获取日期、时间
///
///
public string GetDateTimeFlag()
{
int iStartCount = 30;
int iEndCount = 255;
StringBuilder sbResult = new StringBuilder();
sbResult.Length = 0;
for (int i = 0; i < iStartCount; i++)
{
sbResult.Append("-");
}
sbResult.Append("[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "]");
for (int i = 0; i < iEndCount; i++)
{
sbResult.Append("-");
}
return sbResult.ToString();
}
}
}