ldj/WcfService1/BLL/lbase.cs

1157 lines
35 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DeiNiu.Data.BaseObject;
using System.Data;
using DeiNiu.wms.Data.Model;
using DeiNiu.Utils;
using System.Net;
namespace DeiNiu.wms.Logical
{
public class lbase
{
protected static log4net.ILog log = log4net.LogManager.GetLogger("logCommon");
protected static log4net.ILog logOut = log4net.LogManager.GetLogger("logOut");
protected static log4net.ILog logERP = log4net.LogManager.GetLogger("logERP");
protected static log4net.ILog logIn = log4net.LogManager.GetLogger("logIn");
protected static log4net.ILog logSpec = log4net.LogManager.GetLogger("special");
protected static log4net.ILog logTest = log4net.LogManager.GetLogger("test");
protected static log4net.ILog logPlate = log4net.LogManager.GetLogger("logPlate");
protected static log4net.ILog logPandian = log4net.LogManager.GetLogger("pandian");
BaseModel _obj;
public lbase()
{
}
public lbase(int operId)
{
this._operId = operId;
initialConstants();
LogHelper.debug(this.GetType(), "logic class initialized., operId is " + operId);
}
protected DateTime getValidDate(string sprdDate,string goodsId)
{
DateTime prdDate = Util.pareseDateString(sprdDate);
WmsGoods wg = new WmsGoods(goodsId);
if(wg.expiryDays>0)
return prdDate.AddDays(wg.expiryDays);
else
return prdDate.AddYears(99);
}
protected string getDateStr(DateTime date)
{
return date.ToString(WmsConstants.GOODS_VALID_DATE_FORMAT);
}
protected bool isNearExpired(string sprdDate,string goodsId)
{
WmsGoods wg = new WmsGoods(goodsId);
int leftDays = getLeftDays(sprdDate, goodsId);
return leftDays < WmsConstants.IN_STOCK_LEFT_VALID_FACTOR * wg.expiryDays;
}
protected int getLeftDays(string sprdDate, string goodsId)
{
DateTime prdDate = Util.pareseDateString(sprdDate);
DateTime validDate = getValidDate(sprdDate, goodsId);
if (validDate < DateTime.Now)
{
return 0;
}
TimeSpan ts1 = new TimeSpan(validDate.Ticks);
TimeSpan ts2 = new TimeSpan(prdDate.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
int expDays = ts.Days;
ts = ts1.Subtract(new TimeSpan(DateTime.Now.Ticks)).Duration();
return ts.Days;
}
protected int getLeftDays(string endDateStr)
{
DateTime endDate = Util.pareseDateString(endDateStr);
DateTime validDate = DateTime.Now;
log.Debug(string.Format("endDate {0}, currentdate {1}", endDate, validDate));
if (endDate < validDate)
{
log.Debug(string.Format("expired ...."));
return 0;
}
// TimeSpan ts1 = new TimeSpan(validDate.Ticks);
TimeSpan ts2 = new TimeSpan(endDate.Ticks);
// TimeSpan ts = ts1.Subtract(ts2).Duration();
// int expDays = ts.Days;
TimeSpan ts = ts2.Subtract(new TimeSpan(DateTime.Now.Ticks)).Duration();
return ts.Days+1;
}
public void initialConstants()
{
if (WmsConstants.IS_INITIALED)
{
return;
}
WmsConstants.CURRENT_PANDIAN_ORDER = new WmsStockPandian().getCurrentPandian();
DataTable dtSetup;
//dtSetup = new Node().QueryByFlag(1004); //偏好
dtSetup = new Node().QueryActived().Tables[0]; //偏好
DataView dv = dtSetup.DefaultView;
dv.RowFilter = "parentId="+6284;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
switch (n.flag)
{
case 1:
WmsConstants.LOG_SQL_ON = n.isOn;
break;
case 3:
WmsConstants.IS_ONLINE_RESTRICT = n.isOn;
break;
default: break;
}
}
dv.RowFilter = "parentId=" + 196;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
try
{
switch (n.flag)
{
case 6:
WmsConstants.SYSTEM_VALID_DATE = Util.getShortDateString( n.value);
WmsConstants.SYSTEM_VALID_LEFT_DAYS = getLeftDays(WmsConstants.SYSTEM_VALID_DATE);
break;
}
}
catch
{
continue;
}
}
// dtSetup = new Node().QueryByFlag(1007); //JOBS
dv.RowFilter = "parentId=" + 13373;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
int v = 1;
try
{
v = Convert.ToInt32(n.value);
}
catch (Exception er)
{
log.Error(er);
continue;
}
switch (n.flag)
{
case 1:
WmsConstants.JOB_BASIC_INFO_SYNC_INTERVAL = v;
break;
case 2:
WmsConstants.JOB_OUT_REQUEST_INTERVAL = v;
break;
case 3:
WmsConstants.JOB_TEST_REQUEST_INTERVAL = v;
break;
case 4:
WmsConstants.JOB_NOTICE_ERP = v;
break;
case 5:
WmsConstants.JOB_OUT_REQUEST_NO_STOCK_CHECK_INTERVAL = v;
break;
default: break;
}
}
// dtSetup = new Node().QueryByFlag(2019); //货位编码格式
dv.RowFilter = "parentId=" + 14385;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
if (!n.isOn)
{
continue;
}
try
{
WmsConstants.LOC_NAME_FORMAT=n.description;
}
catch
{
continue;
}
}
// dtSetup = new Node().QueryByFlag(2020); //货位编码格式
dv.RowFilter = "parentId=" + 16659;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
try
{
switch (n.flag)
{
case 1:
WmsConstants.PDA_MENU_UTILS = n.value;
break;
case 2:
WmsConstants.PDA_MENU_STK_IN = n.value;
break;
case 3:
WmsConstants.PDA_MENU_STK_OUT = n.value;
break;
case 4:
WmsConstants.PDA_MENU_PLATE = n.value;
break;
}
}
catch
{
continue;
}
}
// dtSetup = new Node().QueryByFlag(2013);//系统货位库容设置
dv.RowFilter = "parentId=" + 260;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
decimal v = 1m;
try
{
v = Convert.ToDecimal(n.value);
}
catch(Exception er)
{
log.Error(er);
continue;
}
switch (n.flag)
{
case 1:
WmsConstants.BULK_MAX_RATE = v;
break;
case 2:
WmsConstants.BATCH1_MAX_RATE = v;
break;
case 3:
WmsConstants.BATCH2_MAX_RATE = v;
break;
case 4:
WmsConstants.BATCH3_MAX_RATE = v;
break;
}
}
//>-----出库设置开始----->
// dtSetup = new Node().QueryByFlag(6001); //偏好
dv.RowFilter = "parentId=" + 191;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
switch (n.flag)
{
case 7:
WmsConstants.OUT_BULK_SEEDS_PICK_ON = n.isOn;
break;
case 11:
WmsConstants.OUT_STOCK_DEDUCT = n.isOn;
break;
case 12:
WmsConstants.OUT_STOCK_BULK_PDA_SCAN = n.isOn;
break;
case 13:
WmsConstants.OUT_STOCK_BATCH_FIFO = n.isOn;
break;
case 14:
WmsConstants.OUT_LIGHT_ENABLE = n.isOn;
break;
case 15:
WmsConstants.AUTO_APPROVE_SALE_ORDER = n.isOn;
break;
case 16:
WmsConstants.FENDIAN_IN_ONE_PICK_ORDER = n.isOn;
break;
case 17:
WmsConstants.DPS_TASK_GENERATION = n.isOn;
break;
case 18:
WmsConstants.OUT_BULK_DESK_CONTROLL = n.isOn;
break;
case 19:
WmsConstants.OUT_TASK_ASSIGN_BATCH_ONLY = n.isOn;
break;
case 20:
break;
case 21:
WmsConstants.OUT_STOCK_LACK_HOLD_ORDER = n.isOn;
break;
case 22:
WmsConstants.SEEDS_PARTION_DESK_COLOR_MAP = n.isOn;
break;
case 23:
WmsConstants.OUT_REQUEST_MERGE = n.isOn;
break;
case 24:
WmsConstants.OUT_REQUEST_PROCESS_STOCK = n.isOn;
break;
case 25:
WmsConstants.OUT_STOCK_LACK_VALIDATION = n.isOn;
break;
case 26:
WmsConstants.OUT_STOCK_BULK_LACK_OUT = n.isOn;
break;
case 27:
WmsConstants.OUT_STOCK_BULK_LACK_OUT_SEEDS = n.isOn;
break;
case 28:
WmsConstants.OUT_STOCK_LACK_VIR_OUT = n.isOn;
break;
case 29:
WmsConstants.OUT_STOCK_WHEN_NO_MORE_REQUEST = n.isOn;
break;
case 30:
WmsConstants.OUT_ZHITONG_FROM_STORE = n.isOn;
break;
case 31:
WmsConstants.SEEDS_PICK_ALL = n.isOn;
break;
case 32:
WmsConstants.SEEDS_OUT_NOT_WITH_WEIGHT = n.isOn;
break;
case 33:
WmsConstants.ERP_NOTICE_STOCK_OUT = n.isOn;
break;
case 34:
WmsConstants.JIHUO_CHECK_PRE_STATE = n.isOn;
break;
case 35:
WmsConstants.IS_PLATE_IN_LINE = n.isOn;
break;
case 36:
WmsConstants.IS_CHECK_LINE_ON_LOAD = n.isOn;
break;
case 37:
WmsConstants.OUT_STOCK_LACK_VIR_OUT_AUTO = n.isOn;
break;
case 38:
WmsConstants.OUT_SEEDS_CAN_OVER_REQ = n.isOn;
break;
case 39:
WmsConstants.OUT_TASK_ASSIGN_ZHAIGUO_TYPE = n.isOn;
break;
case 40:
WmsConstants.OUT_SEEDS_PICK_TASK_AUTO_ASSIGN = n.isOn;
break;
case 41:
WmsConstants.OUT_BULK_REP_FROM_BATCH = n.isOn;
break;
case 42:
WmsConstants.AUTO_LOAD_TRUCK = n.isOn;
break;
case 43:
WmsConstants.AUTO_LOAD_TRUCK_VALID = n.isOn;
break;
default: break;
}
}
dv.RowFilter = "parentId=" + 259;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
int v = 1;
try
{
v = Convert.ToInt32(n.value);
}
catch (Exception er)
{
log.Error(er);
// continue;
}
switch (n.flag)
{
case 1:
WmsConstants.PAGER_SIZE = v;
break;
case 2:
WmsConstants.DAYS_QUERY_BEFORE = v;
break;
case 3:
WmsConstants.DAYS_QUERY_AFTER = v;
break;
case 4:
WmsConstants.MAX_TASKS_OWN = v;
break;
case 5:
WmsConstants.STOCK_HIS_KEEP_DAYS = v;
break;
case 6:
WmsConstants.MAX_ONLINE_USERS = v;
break;
}
}
// dtSetup = new Node().QueryByFlag(6002); //数据参数
dv.RowFilter = "parentId=" + 3289;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
int v = 1;
try
{
v = Convert.ToInt32(n.value);
}
catch(Exception er)
{
log.Error(er);
continue;
}
switch (n.flag)
{
case 0:
WmsConstants.MAX_PICK_DETAIL_CNT_IN_PICKORDER = v;
break;
case 1:
WmsConstants.MAX_PICK_CNT_BULK = v;
break;
case 2:
WmsConstants.OUT_MAX_SEEDS_GOODSTYPE_CNT = v;
break;
case 3:
WmsConstants.OUT_MAX_SEEDS_BULK_CNT_SUM = v;
break;
// case 4:
// WmsConstants.OUT_MAX_SEEDS_GOODSTYPE_CNT = v;
// break;
// case 5:
// WmsConstants.OUT_MAX_SEEDS_BULK_CNT_SUM = v;
// break;
case 6:
WmsConstants.OUT_MAX_SEEDS_WAIT_MINUES = v;
break;
case 7:
WmsConstants.PART_ORDER_SIZE = v;
break;
case 8:
WmsConstants.WAVE_ORDERS_CNT = v;
break;
case 9:
WmsConstants.MAX_PICK_LOT_CNT = v;
break;
case 10:
WmsConstants.MAX_PICK_BOX_CNT = v;
break;
case 11:
WmsConstants.OUT_PROCESS_ORDERS_CNT = v;
break;
case 12:
WmsConstants.DUE_DAYS_AUTO_PICK = v;
break;
case 13:
WmsConstants.VALIDATION_KEEP_DAYS = v;
break;
case 14:
WmsConstants.OUT_MIN_DAYS_VALIDTION_LEFT = v;
break;
case 15:
WmsConstants.SEEDS_PART_LIGHT_DESK_CNT = v;
break;
case 16:
WmsConstants.OUT_STOCK_PROCESS_MAX_TIME_MINUTE = v;
break;
case 17:
WmsConstants.MAX_JOBS_IN_A_WAVE = v;
break;
case 18:
WmsConstants.OUT_PROCESS_STOCK_DAYS = v;
break;
case 19:
WmsConstants.SEEDS_WEIGHT_OUT_RATE = v;
break;
case 20:
WmsConstants.OVER_WEIGHT_PERCENT_ALLOW = v;
break;
case 21:
WmsConstants.SEEDS_START_HOUR = v;
break;
case 22:
WmsConstants.SEEDS_END_HOUR = v;
break;
case 23:
WmsConstants.SEEDS_START_MINUTES = v;
break;
case 24:
WmsConstants.SEEDS_END_MINUTES = v;
break;
case 25:
WmsConstants.SEEDS_TASK_FETCH_START_HOUR = v;
break;
case 26:
WmsConstants.SEEDS_TASK_FETCH_START_MINUTES = v;
break;
case 27:
WmsConstants.SEEDS_TASK_FETCH_END_HOUR = v;
break;
case 28:
WmsConstants.SEEDS_TASK_FETCH_END_MINUTES = v;
break;
default: break;
}
}
// dtSetup = new Node().QueryByFlag(6006); //数据参数
dv.RowFilter = "parentId=" + 16676;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
int v = 1;
try
{
v = Convert.ToInt32(n.value);
}
catch (Exception er)
{
log.Error(er);
continue;
}
switch (n.flag)
{
case 1:
WmsConstants.ERP_TRANS_DATA_AT_CLOCK = v;
break;
case 2:
WmsConstants.ERP_TRANS_DATA_SLEEP_MINUES = v;
break;
}
}
// dtSetup = new Node().QueryByFlag(2031); //保养
dv.RowFilter = "parentId=" + 16899;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
int v = 1;
try
{
v = Convert.ToInt32(n.value);
}
catch (Exception er)
{
log.Error(er);
continue;
}
switch (n.flag)
{
case 1:
WmsConstants.MAINTAIN_TASK_DAYS = v;
break;
}
}
dv.RowFilter = "parentId=" + 16669;
WmsConstants.GOODS_WEIGHT_UNITS = new List<string>();
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
WmsConstants.GOODS_WEIGHT_UNITS.Add(n.name);
}
//--- 测试设置
dv.RowFilter = "parentId=" + 136;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
try
{
switch (n.flag)
{
case 1:
WmsConstants.TEST_CREATE_PURCH_IN = n.isOn;
break;
case 2:
WmsConstants.TEST_VALIDIN = n.isOn;
break;
case 3:
WmsConstants.TEST_ONSHELF = n.isOn;
if (n.isOn)
{
// WmsConstants.TEST_VALIDIN = n.isOn;
}
break;
case 4:
WmsConstants.TEST_CREATE_SALES_OUT = n.isOn;
break;
case 5:
WmsConstants.TEST_PICK_OUT = n.isOn;
break;
case 6:
WmsConstants.TEST_PLATE_OUT = n.isOn;
break;
case 7:
WmsConstants.TEST_PLATE_OUT_CUSTOMER = n.isOn;
break;
case 8:
WmsConstants.TEST_PLATE_OUT_LINE = n.isOn;
break;
case 9:
WmsConstants.TEST_PLATE_OUT_VC = n.isOn;
break;
case 10:
WmsConstants.TEST_PANDIAN_PROCESS = n.isOn;
break;
case 11:
WmsConstants.TEST_PICK_OUT_SEEDS = n.isOn;
break;
case 12:
WmsConstants.TEST_PLATE_OUT_LOAD_TRUCK = n.isOn;
break;
case 13:
WmsConstants.TEST_PLATE_OUT_START_TRAN = n.isOn;
break;
case 14:
WmsConstants.TEST_VALID_IN_ZHITONG_TAKEALL = n.isOn;
break;
case 15:
WmsConstants.TEST_VALID_IN_ZHITONG_TO_OUTDETAIL = n.isOn;
break;
}
}
catch
{
continue;
}
}
// dtSetup = new Node().QueryByFlag(8002); //测试参数
dv.RowFilter = "parentId=" + 273;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
int v = 1;
try
{
v = Convert.ToInt32(n.value);
}
catch (Exception er)
{
log.Error(er);
continue;
}
switch (n.flag)
{
case 1:
WmsConstants.TEST_PICK_OUT_ITEM_CNT = v;
break;
case 2:
WmsConstants.TEST_VALID_IN_ITEM_CNT = v;
break;
case 3:
WmsConstants.TEST_VALID_IN_ORDER_CNT = v;
break;
}
}
//>-----入库设置开始----->
// dtSetup = new Node().QueryByFlag(5001);//bool类型参数设置
dv.RowFilter = "parentId=" + 3281;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
try
{
switch (n.flag)
{
case 1:
WmsConstants.IN_STOCK_CHECK_DATE = n.isOn;
break;
case 2:
WmsConstants.IN_STOCK_CHECK_BULK_FIRST = n.isOn;
break;
case 3:
WmsConstants.IN_STOCK_NO_BATCH_LOCATION_IN_BULK = n.isOn;
break;
case 4:
WmsConstants.IN_STOCK_BIG_LOCATION_FIRST = n.isOn;
break;
case 5:
WmsConstants.IN_STOCK_PDA_SCAN = n.isOn;
break;
case 7:
WmsConstants.IN_STOCK_ABC = n.isOn;
break;
case 8:
WmsConstants.IN_STOCK_RECEIVE_VALID = n.isOn;
break;
case 9:
WmsConstants.IN_STOCK_OVER_RECEIVE = n.isOn;
break;
case 10:
WmsConstants.IN_STOCK_DIFF_PARTS = n.isOn;
break;
case 11:
WmsConstants.PDA_LOC_GOODTYPE_VALIDATION = n.isOn;
break;
case 12:
WmsConstants.NO_FREE_LOCATION_USE_TMP = n.isOn;
break;
case 13:
WmsConstants.BOX_BULK_IN_SINGLE_LOC = n.isOn;
break;
case 14:
WmsConstants.VALID_LOC_CAPICITY = n.isOn;
break;
case 15:
WmsConstants.IN_STOCK_BAD_COUNTIN_VALID = n.isOn;
break;
case 16:
WmsConstants.ERP_NOTICE_STOCK_IN = n.isOn;
break;
case 17:
WmsConstants.IN_STOCK_ZHITONG_PREDONE_AUTO_VALIDATION = n.isOn;
break;
case 18:
WmsConstants.OUT_STOCK_LACK_VIR_IN_AUTO = n.isOn;
break;
case 19:
WmsConstants.ERP_NOTICE_STOCK_IN_WHEN_FINISH_UP = WmsConstants.ERP_NOTICE_STOCK_IN && n.isOn;
break;
case 20:
WmsConstants.ERP_NOTICE_STOCK_IN_WHEN_FINISH_VALID_IN = WmsConstants.ERP_NOTICE_STOCK_IN && n.isOn;
break;
}
}
catch
{
continue;
}
}
// dtSetup = new Node().QueryByFlag(5002);//字符类型参数设置
dv.RowFilter = "parentId=" + 3283;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
try
{
switch (n.flag)
{
case 1:
WmsConstants.GOODS_VALID_DATE_FORMAT = n.value;
break;
}
}
catch
{
continue;
}
}
// dtSetup = new Node().QueryByFlag(1003);//ORDER PREFIX
dv.RowFilter = "parentId=" + 6282;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
try
{
switch (n.flag)
{
case 1:
WmsConstants.ORDER_PRI_PICK = n.value;
break;
case 2:
WmsConstants.ORDER_PRI_RPO = n.value;
break;
case 3:
WmsConstants.ORDER_PRI_WAVE = n.value;
break;
case 4:
WmsConstants.ORDER_PRI_TRAN = n.value;
break;
case 5:
WmsConstants.ORDER_PRI_SEEDS = n.value;
break;
case 6:
WmsConstants.ORDER_PRI_INORDER = n.value;
break;
case 7:
WmsConstants.ORDER_PRI_PICK_OUT_INVOICE = n.value;
break;
}
}
catch
{
continue;
}
}
//亮灯拣货
// dtSetup = new Node().QueryByFlag(1006);//系统设置
dv.RowFilter = "parentId=" + 7356;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
switch (n.flag)
{
case 1:
try
{
WmsConstants.LIGHT_SVR_ADDRESS = n.value;
}
catch
{
continue;
}
break;
case 3:
WmsConstants.ERP_API_ORDER_NOTICE = n.value;
break;
case 4:
WmsConstants.ERP_API_KEY = n.value;
break;
}
}
dv.RowFilter = "parentId=" + 16765; //容器prefix
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
switch (n.flag)
{
case 1:
WmsConstants.PLATE_TMP_PREFIX = n.value;
break;
case 2:
WmsConstants.PLATE_BOX_PREFIX = n.value;
break;
case 3:
WmsConstants.PLATE_CUST_PREFIX = n.value;
break;
case 4:
WmsConstants.PLATE_LINE_PREFIX = n.value;
break;
case 5:
WmsConstants.PLATE_TRUCK_PREFIX = n.value;
break;
}
}
dv.RowFilter = "parentId=" + 16780; //偏好
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
switch (n.flag)
{
case 1:
WmsConstants.PANDIAN_WEIGHT_SUM = n.isOn;
break;
case 2:
WmsConstants.PANDIAN_SHOW_CNT = n.isOn;
break;
case 3:
WmsConstants.UP_DOWN_SELF_RECS = n.isOn;
break;
}
}
// dtSetup = client.getNodesByFlag(5004);//系统设置
dv.RowFilter = "parentId=" + 7324;
foreach (DataRowView dr in dv)
{
Node n = new Node(dr.Row);
decimal intValue;
try
{
intValue = Convert.ToDecimal(n.value);
}
catch
{
continue;
}
switch (n.flag)
{
case 1:
WmsConstants.GOODS_IN_VALID_SEEDS_BOXS_STEP_MIN = intValue;
break;
case 2:
WmsConstants.GOODS_IN_VALID_SEEDS_BOXS_STEP = intValue;
break;
case 3:
WmsConstants.GOODS_IN_VALID_SEEDS_BOXS_STEP_FACTOR = intValue;
break;
case 4:
WmsConstants.IN_STOCK_LEFT_VALID_DAYS =Convert.ToInt32( intValue);
break;
case 5:
WmsConstants.IN_STOCK_DEFAULT_WAREHOUSE = Convert.ToInt32(intValue);
break;
case 6:
WmsConstants.IN_MAX_OVER_TIMES = Convert.ToInt32(intValue);
break;
}
}
WmsConstants.IS_INITIALED = true;
}
/// <summary>
/// query with like, return talbe and record cnt.
/// </summary>
public DataSet Query(string querystr, int rownumStart, int rownumEnd)
{
_obj = getModel();
if (rownumEnd > rownumStart && rownumStart > 0)
{
_obj.rownumStart = rownumStart;
_obj.rownumEnd = rownumEnd;
}
// DataSet ds = string.IsNullOrEmpty(querystr) ? _obj.Query() : _obj.Query(querystr);
if (string.IsNullOrEmpty(querystr))
{
return _obj.Query("");
}
string condition = pareseCondition(querystr);
// querystr = filtRiskChar(querystr);
return _obj.Query(condition);
}
protected string pareseCondition(string querystr)
{
string condition = "";
string[] parameters = querystr.Split(";".ToCharArray());
foreach (string value in parameters)
{
if (string.IsNullOrEmpty(value))
{
continue;
}
string[] par = value.Split("#".ToCharArray());
condition += par.Length == 0 ? "" : " and ";
foreach (string p in par)
{
condition += p;
}
}
return condition;
}
protected virtual BaseModel getModel()
{
return null;
}
int _operId = 0;
public int operId
{
get { return _operId; }
set
{
_operId = value;
}
}
protected HttpWebRequest getErpRequest(string url)
{
// log.Debug(" erp request url: " + url);
HttpWebRequest webReq;
webReq = (HttpWebRequest)WebRequest.Create(new Uri(url));
webReq.Method = "GET";
webReq.Headers.Add(WmsConstants.ERP_API_KEY);
return webReq;
}
protected bool havePermission(string permission)
{
return ConstAuthourity.havePermission(operId, permission);
}
}
}