2023-05-23 16:13:17 +08:00
|
|
|
|
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;
|
2023-09-04 22:41:19 +08:00
|
|
|
|
using System.Net;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
namespace DeiNiu.wms.Logical
|
|
|
|
|
{
|
|
|
|
|
public class lbase
|
2023-09-04 22:41:19 +08:00
|
|
|
|
{
|
|
|
|
|
protected static log4net.ILog log = log4net.LogManager.GetLogger("logCommon");
|
|
|
|
|
protected static log4net.ILog logOut = log4net.LogManager.GetLogger("logOut");
|
2023-11-21 19:18:23 +08:00
|
|
|
|
protected static log4net.ILog logERP = log4net.LogManager.GetLogger("logERP");
|
2023-09-04 22:41:19 +08:00
|
|
|
|
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");
|
2023-11-21 19:18:23 +08:00
|
|
|
|
protected static log4net.ILog logPandian = log4net.LogManager.GetLogger("pandian");
|
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
BaseModel _obj;
|
2023-11-21 19:18:23 +08:00
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
public lbase()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
public lbase(int operId)
|
|
|
|
|
{
|
|
|
|
|
this._operId = operId;
|
|
|
|
|
initialConstants();
|
|
|
|
|
LogHelper.debug(this.GetType(), "logic class initialized., operId is " + operId);
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
protected DateTime getValidDate(string sprdDate,string goodsId)
|
|
|
|
|
{
|
|
|
|
|
DateTime prdDate = Util.pareseDateString(sprdDate);
|
|
|
|
|
WmsGoods wg = new WmsGoods(goodsId);
|
2023-11-21 19:18:23 +08:00
|
|
|
|
if(wg.expiryDays>0)
|
|
|
|
|
return prdDate.AddDays(wg.expiryDays);
|
|
|
|
|
else
|
|
|
|
|
return prdDate.AddYears(99);
|
2023-09-04 22:41:19 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected string getDateStr(DateTime date)
|
|
|
|
|
{
|
|
|
|
|
return date.ToString(WmsConstants.GOODS_VALID_DATE_FORMAT);
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
protected bool isNearExpired(string sprdDate,string goodsId)
|
2023-09-04 22:41:19 +08:00
|
|
|
|
{
|
|
|
|
|
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();
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
int expDays = ts.Days;
|
|
|
|
|
ts = ts1.Subtract(new TimeSpan(DateTime.Now.Ticks)).Duration();
|
|
|
|
|
return ts.Days;
|
|
|
|
|
}
|
2023-05-23 16:13:17 +08:00
|
|
|
|
public void initialConstants()
|
|
|
|
|
{
|
|
|
|
|
if (WmsConstants.IS_INITIALED)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
default: break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// dtSetup = new Node().QueryByFlag(1007); //JOBS
|
|
|
|
|
dv.RowFilter = "parentId=" + 13373;
|
|
|
|
|
foreach (DataRowView dr in dv)
|
|
|
|
|
{
|
|
|
|
|
Node n = new Node(dr.Row);
|
|
|
|
|
int v = 1;
|
2023-09-04 22:41:19 +08:00
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
v = Convert.ToInt32(n.value);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception er)
|
|
|
|
|
{
|
|
|
|
|
log.Error(er);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
2023-05-23 16:13:17 +08:00
|
|
|
|
switch (n.flag)
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
WmsConstants.JOB_BASIC_INFO_SYNC_INTERVAL = v;
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
WmsConstants.JOB_OUT_REQUEST_INTERVAL = v;
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
2023-11-21 19:18:23 +08:00
|
|
|
|
WmsConstants.JOB_TEST_REQUEST_INTERVAL = v;
|
|
|
|
|
break;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
case 4:
|
2023-11-21 19:18:23 +08:00
|
|
|
|
WmsConstants.JOB_NOTICE_ERP = v;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default: break;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
// 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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
// dtSetup = new Node().QueryByFlag(2013);//系统货位库容设置
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
dv.RowFilter = "parentId=" + 260;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
foreach (DataRowView dr in dv)
|
|
|
|
|
{
|
|
|
|
|
Node n = new Node(dr.Row);
|
|
|
|
|
decimal v = 1m;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
v = Convert.ToDecimal(n.value);
|
|
|
|
|
}
|
2023-09-04 22:41:19 +08:00
|
|
|
|
catch(Exception er)
|
2023-05-23 16:13:17 +08:00
|
|
|
|
{
|
2023-09-04 22:41:19 +08:00
|
|
|
|
log.Error(er);
|
2023-05-23 16:13:17 +08:00
|
|
|
|
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:
|
2023-09-04 22:41:19 +08:00
|
|
|
|
WmsConstants.OUT_STOCK_BATCH_FIFO = n.isOn;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
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;
|
2023-09-04 22:41:19 +08:00
|
|
|
|
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;
|
2023-11-21 19:18:23 +08:00
|
|
|
|
case 30:
|
|
|
|
|
WmsConstants.OUT_ZHITONG_FROM_STORE = n.isOn;
|
|
|
|
|
break;
|
2023-09-04 22:41:19 +08:00
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
case 31:
|
|
|
|
|
WmsConstants.SEEDS_PICK_ALL = n.isOn;
|
|
|
|
|
break;
|
2023-09-04 22:41:19 +08:00
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
default: break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
switch (n.flag)
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
|
|
|
|
|
WmsConstants.PAGER_SIZE = v;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
break;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
case 2:
|
|
|
|
|
|
|
|
|
|
WmsConstants.DAYS_QUERY_BEFORE = v;
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
WmsConstants.DAYS_QUERY_AFTER = v;
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 4:
|
|
|
|
|
|
|
|
|
|
WmsConstants.MAX_TASKS_OWN = v;
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// dtSetup = new Node().QueryByFlag(6002); //数据参数
|
|
|
|
|
|
|
|
|
|
dv.RowFilter = "parentId=" + 3289;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
foreach (DataRowView dr in dv)
|
|
|
|
|
{
|
|
|
|
|
Node n = new Node(dr.Row);
|
|
|
|
|
int v = 1;
|
|
|
|
|
try
|
|
|
|
|
{
|
2023-09-04 22:41:19 +08:00
|
|
|
|
v = Convert.ToInt32(n.value);
|
2023-05-23 16:13:17 +08:00
|
|
|
|
}
|
2023-09-04 22:41:19 +08:00
|
|
|
|
catch(Exception er)
|
2023-05-23 16:13:17 +08:00
|
|
|
|
{
|
2023-09-04 22:41:19 +08:00
|
|
|
|
log.Error(er);
|
2023-05-23 16:13:17 +08:00
|
|
|
|
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;
|
2023-09-04 22:41:19 +08:00
|
|
|
|
break;
|
|
|
|
|
case 16:
|
|
|
|
|
WmsConstants.OUT_STOCK_PROCESS_MAX_TIME_MINUTE = v;
|
|
|
|
|
break;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
case 17:
|
|
|
|
|
WmsConstants.MAX_JOBS_IN_A_WAVE = v;
|
2023-11-21 19:18:23 +08:00
|
|
|
|
break;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
case 18:
|
|
|
|
|
WmsConstants.OUT_PROCESS_STOCK_DAYS = v;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
default: break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2023-11-21 19:18:23 +08:00
|
|
|
|
// dtSetup = new Node().QueryByFlag(6003); //数据参数
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//--- 测试设置
|
2023-09-04 22:41:19 +08:00
|
|
|
|
|
2023-11-21 19:18:23 +08:00
|
|
|
|
dv.RowFilter = "parentId=" + 136;
|
2023-09-04 22:41:19 +08:00
|
|
|
|
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)
|
|
|
|
|
{
|
2023-11-21 19:18:23 +08:00
|
|
|
|
// WmsConstants.TEST_VALIDIN = n.isOn;
|
2023-09-04 22:41:19 +08:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
WmsConstants.TEST_CREATE_SALES_OUT = n.isOn;
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
WmsConstants.TEST_PICK_OUT = n.isOn;
|
|
|
|
|
break;
|
2023-11-21 19:18:23 +08:00
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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;
|
2023-11-21 19:18:23 +08:00
|
|
|
|
case 3:
|
|
|
|
|
WmsConstants.TEST_VALID_IN_ORDER_CNT = v;
|
|
|
|
|
break;
|
2023-09-04 22:41:19 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
//>-----入库设置开始----->
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
// dtSetup = new Node().QueryByFlag(5001);//bool类型参数设置
|
|
|
|
|
|
|
|
|
|
dv.RowFilter = "parentId=" + 3281;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
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:
|
2023-11-21 19:18:23 +08:00
|
|
|
|
WmsConstants.IN_STOCK_BAD_COUNTIN_VALID = n.isOn;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
break;
|
2023-11-21 19:18:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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);//系统设置
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
dv.RowFilter = "parentId=" + 7356;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
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;
|
|
|
|
|
}
|
2023-09-04 22:41:19 +08:00
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
WmsConstants.ERP_API_ORDER_NOTICE = n.value;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 4:
|
|
|
|
|
WmsConstants.ERP_API_KEY = n.value;
|
|
|
|
|
break;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
}
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
}
|
2023-05-23 16:13:17 +08:00
|
|
|
|
// 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:
|
2023-09-04 22:41:19 +08:00
|
|
|
|
WmsConstants.IN_STOCK_LEFT_VALID_DAYS =Convert.ToInt32( intValue);
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
case 5:
|
|
|
|
|
WmsConstants.IN_STOCK_DEFAULT_WAREHOUSE = Convert.ToInt32(intValue);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
}
|
|
|
|
|
}
|