9 Commits

Author SHA1 Message Date
aee2063646 2023-07-19 15:29:24 +08:00
53c4b66485 2023-07-14 14:05:22 +08:00
3648692781 2023-04-28 14:56:19 +08:00
e2c1d127a0 2023-04-20 18:05:08 +08:00
7e11ca5d4d 2023-04-19 17:01:53 +08:00
70ebea6292 2023-04-19 14:42:48 +08:00
efe0835c4e 2023-04-18 15:36:13 +08:00
c4fe9e1a9b 2023-04-17 11:18:51 +08:00
c53719f69b 2023-04-17 10:59:39 +08:00
16 changed files with 2422 additions and 2242 deletions

View File

@ -182,18 +182,10 @@ namespace Epost.BLL
return dal.GetAreaList();
}
#endregion
#region
public List<AddressstorageModel> GetAreaList(string block = "", string shelfid = "")
public List<AddressstorageModel> GetAreaList(string block = "")
{
return dal.GetAreaList(block, shelfid);
}
#endregion
#region
public List<AddressstorageModel> GetshelfidList(string block = "")
{
return dal.GetshelfidList(block);
return dal.GetAreaList(block);
}
#endregion
#region

View File

@ -19,11 +19,13 @@ namespace Epost.BLL
public class CommandBLL
{
CommandDAL dal = new CommandDAL();
XgateCacheDAL xageDAL = new XgateCacheDAL();
AddressstorageBLL addrBLL = new AddressstorageBLL();
public static DataTable Controls = new DataTable();
public static DataTable Labels = new DataTable();
JobDownCacheDAL JobCache = new JobDownCacheDAL();
OrdersDAL orderDal = new OrdersDAL();
ConfigurationOperator txtbll = new ConfigurationOperator();
string IP = ConfigurationManager.AppSettings["WebAPIUrl"];
#region
@ -151,6 +153,22 @@ namespace Epost.BLL
}
#endregion
#region
public string GETDISPLAYJOBPAR_CN(string no, string Lightcolor, string IsTwinkle, string Title, string BigQuantity, string BigUnit, string Quantity, string Unit, string Content, string Rfcode)
{
string parar = no + "00" + Lightcolor + IsTwinkle + "30CQ" + Title + "\n\n" + BigQuantity + "\n" + BigUnit + "\n" + Quantity + "\n" + Unit + "\n" + Content + "\n00\n\n" + Rfcode + "\n"; ;
return parar;
}
#endregion
#region
public string GETDISPLAYJOBPAR(string no, string Lightcolor, string IsTwinkle, string location, string Quantity, string Rfcode)
{
string parar = no + Lightcolor + IsTwinkle + "30NQ" + location + "\n" + Quantity + "\n" + Rfcode + "\n";
return parar;
}
#endregion
#region
public void clearALL_M()
{
@ -172,6 +190,9 @@ namespace Epost.BLL
}
#endregion
#region M系列
#region
public bool FORMATE_JOB_DATA(LabelParamModel model)
{
@ -193,8 +214,39 @@ namespace Epost.BLL
}
#endregion
#region
public bool ENTER_CONFIG_MODE(LabelParamModel model)
{
return dal.ENTER_CONFIG_MODE(model);
}
#endregion
#region
public bool SET_ADDRESS(LabelParamModel model)
{
return dal.SET_ADDRESS(model);
}
#endregion
#region
public bool DELETE_ADDRESS(LabelParamModel model)
{
return dal.DELETE_ADDRESS(model);
}
#endregion
#region 退
public bool EXIT_CONFIG_MODE(LabelParamModel model)
{
return dal.EXIT_CONFIG_MODE(model);
}
#endregion
#region ()
public void DISPLAY_JOB_M(LabelParamModel model, bool clear = false, bool islock = false )
public void DISPLAY_JOB_M(LabelParamModel model, bool clear = false, bool islock = false)
{
List<LabelParamModel> list = new List<LabelParamModel>();
if (clear)
@ -207,14 +259,14 @@ namespace Epost.BLL
clearModel.Command = "REMOVE_JOB";
clearModel.Timeout = "0.5";
clearModel.Type = model.Type;
// dal.REMOVE_JOB(clearModel);
// dal.REMOVE_JOB(clearModel);
list.Add(clearModel);
}
LabelParamModel DisplayModel = new LabelParamModel();
DisplayModel.Address = model.Address;
DisplayModel.ControlIP = model.ControlIP;
DisplayModel.Content =model.Content;
DisplayModel.Title =model.Title;
DisplayModel.Content = model.Content;
DisplayModel.Title = model.Title;
DisplayModel.Loc = model.Loc;
DisplayModel.Quantity = model.Quantity;
DisplayModel.Uid = model.Uid;
@ -255,6 +307,7 @@ namespace Epost.BLL
}
#endregion
#region ()
public void LED_ON_M(LabelParamModel model, bool islock = false)
{
@ -300,7 +353,6 @@ namespace Epost.BLL
dal.DISPLAY_JOBALL(list);
}
#endregion
#region LED_OFF()
public void LED_OFF_M(List<JobModel> list)
{
@ -319,6 +371,8 @@ namespace Epost.BLL
}
#endregion
#region LED_OFF()
public void LED_OFF_CLEAR(string ip)
{
@ -331,7 +385,6 @@ namespace Epost.BLL
dal.Send(clearModel);
}
#endregion
#region LED_OFF()
public void LED_OFF_CLEAR(List<JobModel> offList)
{
@ -355,6 +408,7 @@ namespace Epost.BLL
}
#endregion
#region ()
public bool DISPLAY_JOB(LabelParamModel model)
{
@ -370,7 +424,6 @@ namespace Epost.BLL
dal.DISPLAY_JOBALL(model);
}
#endregion
#region
public ResultModel SendALL_Init(List<LabelParamModel> model)
{
@ -386,7 +439,6 @@ namespace Epost.BLL
return dal.REMOVE_JOB(model);
}
#endregion
#region
public bool DISPLAY_LIGHT(LabelParamModel model)
{
@ -403,6 +455,8 @@ namespace Epost.BLL
}
#endregion
#region
public bool UNLOCK(LabelParamModel model)
{
@ -411,6 +465,30 @@ namespace Epost.BLL
}
#endregion
#region 使
public bool SET_SCANDEVICE_ON(LabelParamModel model)
{
return dal.SET_SCANDEVICE_ON(model);
}
#endregion
#region 使
public bool SET_SCANDEVICE_OFF(LabelParamModel model)
{
return dal.SET_SCANDEVICE_OFF(model);
}
#endregion
#region
public bool SET_SCANDEVICE_CLEAR(LabelParamModel model)
{
return dal.SET_SCANDEVICE_CLEAR(model);
}
#endregion
#region
public bool SLEEP(LabelParamModel model)
{
@ -475,7 +553,7 @@ namespace Epost.BLL
{
// DataTable dt = addrBLL.getAddresslist(block,area,type);
if(offList.Any())
if (offList.Any())
{
List<LabelParamModel> list = new List<LabelParamModel>();
foreach (JobModel item in offList)
@ -534,12 +612,11 @@ namespace Epost.BLL
}
#endregion
#region
public void ShowBoxMessage_M(ShowMessageModel_M show)
{
//获取作业区对应的显示标签地址
DataTable showaddrDT = addrBLL.GetBoxAddress(show.Block,show.Area,show.Type);
//获取作业区对应的显示标签地址
DataTable showaddrDT = addrBLL.GetBoxAddress(show.Block, show.Area, show.Type);
if (showaddrDT != null && showaddrDT.Rows.Count > 0)
{
foreach (DataRow addritem in showaddrDT.Rows)
@ -549,9 +626,9 @@ namespace Epost.BLL
lablemodel.Address = addritem["address"].ToString();
lablemodel.ControlIP = addritem["controlip"].ToString();
lablemodel.Command = "DISPLAY_JOB";
lablemodel.Uid =show.Uid;
lablemodel.Uid = show.Uid;
if (string.IsNullOrEmpty(show.Uid))
{ lablemodel.Uid = addritem["address"].ToString(); }
{ lablemodel.Uid = show.No + addritem["address"].ToString(); }
lablemodel.Mode = show.Color + "0";
if (addritem["addresstype"].ToString() == "2")
@ -614,7 +691,7 @@ namespace Epost.BLL
model.Type = "T";
model.Address = item["address"].ToString();
model.ControlIP = item["ControlIP"].ToString();
model.Parameter = ConvertHexHelper.ConvertString(item["addresstype"].ToString(), 10, 16).ToString().PadLeft(2,'0')+ isoff;
model.Parameter = ConvertHexHelper.ConvertString(item["addresstype"].ToString(), 10, 16).ToString().PadLeft(2, '0') + isoff;
list.Add(model);
}
@ -638,11 +715,11 @@ namespace Epost.BLL
LabelParamModel model = new LabelParamModel();
model.Address = addritem["address"].ToString();
model.ControlIP = addritem["controlip"].ToString();
model.Parameter =show.No;
model.Parameter = show.No;
model.Command = "REMOVE_JOB";
model.Timeout = "0.5";
list.Add(model);
}
}
if (list != null && list.Count > 0)
{
@ -651,13 +728,13 @@ namespace Epost.BLL
}
}
}
}
#endregion
#endregion

View File

@ -115,8 +115,6 @@
<Compile Include="UserBLL.cs" />
<Compile Include="WmsBLL.cs" />
<Compile Include="WmsTaskBLL.cs" />
<Compile Include="Work_DisplayJobThread.cs" />
<Compile Include="Work_JobDownThread.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Common\Epost.Common.csproj">

View File

@ -30,7 +30,44 @@ namespace Epost.BLL
UserModelCacheDAL UserCacheDAL = new UserModelCacheDAL();
private static object lockbox = new object();
#region
public void BindBoxCode()
{
lock (lockbox)
{
try
{
//查询待绑定的订单/设备
DataTable qudt = queueboxBLL.getQueuesbyState();
if (qudt != null && qudt.Rows.Count > 0)
{
foreach (DataRow item in qudt.Rows)
{
LabelParamModel model = new LabelParamModel();
string address = item["address"].ToString();
model.Address = address;
model.ControlIP = item["controlip"].ToString();
// model.Parameter = "0100000100030CQ请扫描箱号/托盘号\n\n\n\n\n\n门店编号" + item["shopid"].ToString() + "\n\n\n\n";
model.Parameter = comBLL.GETDISPLAYJOBPAR_CN("01", "001000", "0", "请扫描箱号/托盘号", "", "", "", "", "门店编号:" + item["shopid"].ToString(), "");
comBLL.DISPLAY_JOB_M(model, true, true);
queueboxBLL.UpdateQueueState(item["id"].ToString(), "1");
}
}
//点亮设备
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("绑定箱号异常:" + ex.Message);
}
}
}
#endregion
#region
public DataTable getControlList(int type = 0)
@ -463,14 +500,27 @@ namespace Epost.BLL
LabelParamModel model = new LabelParamModel();
model.Address = address;
model.ControlIP = controlip;
// model.Parameter = comBLL.GETDISPLAYJOBPAR_CN("07", "000100", "3", "请扫描箱号!", "", "", "", "", "门店号:" + shopid + "\r箱 号:" + boxcode + "\r托盘号:" + traycode, "");
// model.Parameter = "0700000100330CQ请扫描箱号!\n\n\n\n\n\n\n\n\n\n";
model.Parameter = comBLL.GETDISPLAYJOBPAR_CN("07", "000100", "3", "请扫描箱号!", "", "", "", "", "门店号:" + shopid + "\r箱 号:" + boxcode + "\r托盘号:" + traycode, "");
comBLL.DISPLAY_JOB_M(model, true, true);
}
#endregion
#region
public void changeNumErr(string address, string controlip)
{
//点亮当前货位对应设备提示扫箱号
LabelParamModel model = new LabelParamModel();
model.Address = address;
model.ControlIP = controlip;
model.Parameter = comBLL.GETDISPLAYJOBPAR_CN("05", "000100", "3", "修改数量超出需求数量!", "", "", "", "", "", "");
comBLL.DISPLAY_JOB_M(model, true, false);
}
#endregion
#region
public void displayJob_err(string address, string controlip, JobModel job)
{
@ -481,8 +531,14 @@ namespace Epost.BLL
lamodel.Command = "DISPLAY_JOB";
string qty = ConvertHexHelper.ConvertString(job.Quantity.ToString(), 10, 16); //拣货数量
string CheckQuantity = ConvertHexHelper.ConvertString(job.CheckQuantity.ToString(), 10, 16); //拣货数量
// lamodel.Parameter = comBLL.GETDISPLAYJOBPAR_CN("01", job.ColorCode, "0", job.GoodsName, CheckQuantity, job.WholeUnit, qty, job.Unit, job.Sku, job.UserCode);//item.UserCode
// lamodel.Parameter = "01" + EnumHelper.EMToDescriptionString(LightColor.Color.Green) + "030NQ" +item.Zone +"\n" + qty;
//lamodel.Parameter = "0100" + queueDT.Rows[0]["lightcolor"].ToString() + "030CQ" + item.GoodsName + "\n\n" + CheckQuantity + "\n" + item.WholeUnit + "\n" + qty + "\n" + item.Unit + "\n" + item.Sku + "\n\n\n\n";
lamodel.Parameter = comBLL.GETDISPLAYJOBPAR_CN("01", job.ColorCode, "0", job.GoodsName, CheckQuantity, job.WholeUnit, qty, job.Unit, job.Sku, job.UserCode);//item.UserCode
comBLL.DISPLAY_JOB_M(lamodel, true, false);
}
#endregion
public void BindJobListBySku(string sku)
@ -500,11 +556,13 @@ namespace Epost.BLL
LocCacheDAL.UpdateLocModelList(new List<OrderListModel> { data }, ELCommend.Update);
}
}
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("绑定任务异常:" + ex.Message);
}
}
public bool bindOrder(string sku, string block, string matchid = "", string usercode = "", string area = "", int sort = 0, string lightColor = "010000")
{
@ -523,6 +581,8 @@ namespace Epost.BLL
bool qubo = queueBLL.insertQueueOrders(unmodel);
return qubo;
}
public void bindShop(string shopcode, string usercode, List<ResultMessageModel> list, ResultMessageModel data)
{
@ -679,12 +739,12 @@ namespace Epost.BLL
List<JobModel> list = new List<JobModel>();
DataTable OrderDt = dal.GetOrderList_Car(matchid, sku, area, block);
bool isecho = false;
if (OrderDt == null || OrderDt.Rows.Count == 0)//回显
{
OrderDt = dal.GetOrderList_echo(matchid, sku, area, block);
isecho = true;
//if (OrderDt == null || OrderDt.Rows.Count == 0)//回显
//{
// OrderDt = dal.GetOrderList_Car(matchid, sku, area, block);
// isecho = true;
}
//}
if (OrderDt != null && OrderDt.Rows.Count > 0)
{
string usercode = string.Empty;
@ -707,21 +767,14 @@ namespace Epost.BLL
demodel.BatchId = item["BatchId"].ToString();
demodel.ID = item["ID"].ToString();
demodel.GoodsName = item["GoodsName"].ToString();
demodel.GoodsType = item["GoodsType"].ToString();
demodel.Quantity = Convert.ToInt32(item["Quantity"].ToString());
demodel.CheckQuantity = Convert.ToInt32(item["CheckQuantity"].ToString());
demodel.Sku = item["Sku"].ToString();
demodel.Tolocation = item["Tolocation"].ToString();
demodel.Matchid = item["Matchid"].ToString();
demodel.ShopID = item["shopid"].ToString();
demodel.BoxCode = item["boxcode"].ToString();
demodel.LotNo = item["LotNo"].ToString();
demodel.Discount = item["Discount"].ToString();
demodel.ProdArea = item["ProdArea"].ToString();
demodel.ColorCode = item["corlorcode"].ToString();
demodel.WholeUnit = item["WholeUnit"].ToString();
demodel.Unit = item["Unit"].ToString();
demodel.TrayCode = item["bkbarcode"].ToString();
//demodel.TrayCode = item["bkbarcode"].ToString();
#region
demodel.Block = item["Block"].ToString();
demodel.Area = item["Area"].ToString();
@ -742,11 +795,11 @@ namespace Epost.BLL
demodel.TaskArea = Convert.ToInt32(item["area"].ToString());
demodel.TaskBlock = Convert.ToInt32(item["block"].ToString());
demodel.No = "01";
if (isecho)
{
demodel.No = "04";
demodel.ColorCode = EnumHelper.EMToDescriptionString(LightColor.Color.Blue);
}
//if (isecho)
//{
// demodel.No = "04";
// demodel.ColorCode = EnumHelper.EMToDescriptionString(LightColor.Color.Blue);
//}
list.Add(demodel);
if (!isecho) {
//修改数据为已读

File diff suppressed because it is too large Load Diff

View File

@ -222,7 +222,7 @@ namespace Epost.BLL
public bool UpdateQueueState()
{
BoxPickBLL bll = new BoxPickBLL();
dal.deleteBoxpick();
//dal.deleteBoxpick();
bool bo= dal.UpdateQueueState();
//if (bo)
//{

View File

@ -1,229 +0,0 @@
using Epost.Common;
using Epost.DAL.Cache;
using Epost.DAL.Enum;
using Epost.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading;
namespace Epost.BLL
{
public class Work_DisplayJobThread
{
public string tblock, id;
public bool OrisShow = false;
OrderBLL orderbll = new OrderBLL();
OrdersQueueBLL queueBLL = new OrdersQueueBLL();
CommandBLL comBLL = new CommandBLL();
JobModelCacheDAL JobCache = new JobModelCacheDAL();
private static object lockobj = new object();
AddressstorageBLL addrBLL = new AddressstorageBLL();
WorkIngCacheDAL workbll = new WorkIngCacheDAL();
public void Displayjob()
{
GetWorkList(tblock);
}
#region
private void GetWorkList(object block)
{
lock (lockobj)
{
while (OrisShow)
{
try
{
string workstate = workbll.GetWorkState();
if (!string.IsNullOrEmpty(workstate))
{
OrisShow = true;
DisplayJob_M(block.ToString());
Thread.Sleep(50);
}
else
{
OrisShow = false;
}
}
catch (Exception ex)
{
LogHelper.WriteLogInfo(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":程序异常!\r\n" + ex.Message);
}
}
}
}
#endregion
#region M系列
public void DisplayJob_M(string tblock)
{
try
{
string[] nlist = tblock.Split('|');
string nblock = nlist[0];
string shelfid = nlist[1];
List<AddressstorageModel> Arealist = addrBLL.GetAreaList(nblock, shelfid);
foreach (AddressstorageModel item in Arealist)
{
OrdersQueueModel model = new OrdersQueueModel(); ;
model.Taskarea = item.area;
model.Taskblock = nblock;
#region
DataTable queueDT = queueBLL.getQueueOrderState(model);
if (queueDT != null && queueDT.Rows.Count > 0)
{
//当前区没有作业
if (queueDT.Rows[0]["state"].ToString() == "0")
{
displayOrder(queueDT, nblock, item.area, model);
}
}
#endregion
}
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("标签控制异常:" + ex.Message);
}
}
#endregion
#region
public void displayOrder(DataTable queueDT, string nblock, string narea, OrdersQueueModel model)
{
List<LabelParamModel> list = new List<LabelParamModel>();
model.Id = Convert.ToInt32(queueDT.Rows[0]["id"].ToString());
#region
List<JobModel> jobList = JobCache.GetPlanJobList();
List<JobModel> isJobList = jobList.FindAll(p => p.Block == nblock && p.Area == narea && p.State != 3);
ShowMessageModel showmodel = new ShowMessageModel();
//获取当前区任务并加入缓存
if (!isJobList.Any())
{
model.State = 1;
orderbll.GetOrderList(queueDT.Rows[0]["matchid"].ToString(), nblock, queueDT.Rows[0]["sku"].ToString(), narea, queueDT.Rows[0]["usercode"].ToString());
List<JobModel> nowJoblist = jobList.FindAll(p => p.State == 0 && p.Block == model.Taskblock && p.Area == model.Taskarea);
if (nowJoblist.Any())
{
var nowmodel = nowJoblist.FirstOrDefault();
LogHelper.WriteLogInfo("进入任务点亮=====matchid=" + nowmodel.Matchid + "===orderid===" + nowmodel.OrderID + "=====sku==" + nowmodel.Sku + "========");
#region
foreach (JobModel item in nowJoblist.ToArray())
{
#region
if (queueDT.Rows[0]["lightcolor"].ToString() == EnumHelper.EMToDescriptionString(LightColor.Color.Blue))
{
LabelParamModel locklamodel = new LabelParamModel();
locklamodel.Address = item.Address.ToString();
locklamodel.ControlIP = item.ControlIP.ToString();
locklamodel.Command = "LOCK";
locklamodel.Parameter = "11111000";
locklamodel.Type = "N";
list.Add(locklamodel);
}
#endregion
// else
//{
List<JobModel> manyJoblist = nowJoblist.FindAll(m => m.Tolocation == item.Tolocation);
int quantity = item.Quantity;
LabelParamModel lamodel = new LabelParamModel();
lamodel.Address = item.Address.ToString();
lamodel.ControlIP = item.ControlIP.ToString();
lamodel.Command = "DISPLAY_JOB";
#region
//if (manyJoblist.Count > 1)
//{
// if (manyJoblist.FindAll(m => m.State == 0).Any())
// {
// foreach (JobModel mitem in manyJoblist)
// {
// quantity += mitem.Quantity;
// mitem.State = 1;
// mitem.ManyState = 1;
// }
// }
//}
#endregion
lamodel.Type = "N";
lamodel.Quantity = quantity.ToString();
lamodel.Uid = "U" + item.ID;
lamodel.Mode = queueDT.Rows[0]["lightcolor"].ToString() + "0";
list.Add(lamodel);
//}
item.State = 1;
item.ColorCode = queueDT.Rows[0]["lightcolor"].ToString();
item.DisplayTime = DateTime.Now;
}
#endregion
#region
comBLL.DISPLAY_LIGHT_BLOCK(model.Taskblock, model.Taskarea, "1");
#endregion
if (list != null && list.Count > 0)
{
LogHelper.WriteLogInfo("添加到点亮的list————————————————————" + list.Count);
comBLL.DISPLAY_JOBALL(list);
}
}
else
{//无任务
LogHelper.WriteLogInfo("点亮====无任务=======================");
model.State = 3;
}
#endregion
if (jobList.Any())
{
var finishList = jobList.FindAll(p => p.State == 0);
if (!finishList.Any())
{
queueBLL.UpdateQueueOrderState(model);//缓存队列状态修改
}
}
}
else
{
LogHelper.WriteLogInfo("还有未完成任务" + isJobList.Count);
foreach (JobModel item in isJobList)
{
LogHelper.WriteLogInfo("还有未完成任务" + item.Address + item.ID);
}
}
}
#endregion
}
}

File diff suppressed because it is too large Load Diff

View File

@ -165,7 +165,7 @@ namespace Epost.DAL
{
strwhere = " and area='"+area+"'";
}
string sql = string.Format("select address, bkaddress, state, type, area ,way ,shelfid, ControlID ,location ,layer, slist, block, addresstype, ControlIP, ControlType, info from V_address where type='{1}' and block='{0}' " + strwhere,
string sql = string.Format("select address,bkaddress,state,type,area,way,shelfid,ControlID,location,layer,slist,block,addresstype,ControlIP,ControlType,info from V_address where type='{1}' and block='{0}' " + strwhere,
block,
type);
@ -257,19 +257,13 @@ namespace Epost.DAL
return db.GetsqlForDT(sql);
}
#endregion
#region
public List<AddressstorageModel> GetAreaList(string block, string shelfid)
public List<AddressstorageModel> GetAreaList(string block = "")
{
string strwhere = string.Empty;
if (!string.IsNullOrEmpty(block))
{
strwhere += "and block ='" + block + "'";
}
if (!string.IsNullOrEmpty(shelfid))
{
strwhere += "and shelfid ='" + shelfid + "'";
strwhere = "and block ='" + block + "'";
}
string sql = string.Format("select area,block from Addressstorage where type=1 " + strwhere + " group by area,block");
DataTable dt = db.GetsqlForDT(sql);
@ -277,22 +271,6 @@ namespace Epost.DAL
return ModelConvertHelper<AddressstorageModel>.ConvertToList(dt);
}
#endregion
#region
public List<AddressstorageModel> GetshelfidList(string block)
{
string strwhere = string.Empty;
if (!string.IsNullOrEmpty(block))
{
strwhere += "and block ='" + block + "'";
}
string sql = string.Format("select shelfid,block from Addressstorage where type=1 " + strwhere + " group by shelfid,block");
DataTable dt = db.GetsqlForDT(sql);
return ModelConvertHelper<AddressstorageModel>.ConvertToList(dt);
}
#endregion
#region
public DataTable GetWayList()
{

View File

@ -1,94 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Epost.DAL.Cache
{
public class WorkIngCacheDAL
{
private static object lockobj = new object();
public static string workingstate = string.Empty;
#region
public string GetWorkState()
{
//读取数据库 处理异常断电等情况------待开发
return workingstate;
}
#endregion
#region
public void ClearWork()
{
workingstate = "";
}
#endregion
#region Job缓存处理方法
/// <summary>
/// Job缓存处理方法
/// </summary>
/// <param name="JobParam"></param>
/// <param name="CommendType"></param>
/// <returns></returns>
public bool UpdateWorkModel(WorkEcommendType CommendType)
{
lock (lockobj)
{
if (CommendType.Equals(WorkEcommendType.Create))
{
workingstate = "Start";
}
else if (CommendType.Equals(WorkEcommendType.Complete))
{
workingstate = "";
}
return true;
}
}
#endregion
}
public enum WorkEcommendType
{
/// <summary>
/// 开始作业
/// </summary>
[Description("开始作业")]
Create,
/// <summary>
/// 结束作业
/// </summary>
[Description("结束作业")]
Complete
}
}

View File

@ -111,7 +111,6 @@
<Compile Include="Cache\ShowMesCacheDAL.cs" />
<Compile Include="Cache\UserLoginCacheDAL.cs" />
<Compile Include="Cache\UserModelCacheDAL.cs" />
<Compile Include="Cache\WorkIngCacheDAL.cs" />
<Compile Include="Cache\XgateCacheDAL.cs" />
<Compile Include="CommandDAL.cs" />
<Compile Include="DB.cs" />

View File

@ -48,7 +48,7 @@ namespace Epost.DAL
string sql = string.Empty;
if (!string.IsNullOrEmpty(area))
{
sql = string.Format("select id, ProdArea, LotNo, Matchid, orderid, barcode, BatchId, DownDate, Tolocation, Sku, GoodsName, Discount, Quantity, GoodsType, corlorcode, address, ControlIP,area, block,boxcode,bkbarcode,isnull(checkquantity,0) as checkquantity,wholeunit,unit,shopid,wmsboxcode from v_orders where state = 0 and oprationstate <>3 and sku = '{0}' and block = '{1}' and area='{2}' " + strwhere + "",
sql = string.Format("select id, Matchid, orderid, barcode, BatchId, DownDate, Tolocation, Sku, GoodsName, Discount, Quantity, address, ControlIP,area, block,unit,shopid from v_orders where state = 0 and oprationstate <>3 and sku = '{0}' and block = '{1}' and area='{2}' " + strwhere + "",
sku,
block, area);
@ -56,7 +56,7 @@ namespace Epost.DAL
}
else
{
sql = string.Format("select id,ProdArea, LotNo, Matchid, orderid, barcode, BatchId, DownDate, Tolocation, Sku, GoodsName, Discount, Quantity, GoodsType, corlorcode, address, ControlIP, area , block,boxcode,bkbarcode,isnull(checkquantity,0) as checkquantity,wholeunit,unit,shopid,wmsboxcode from v_orders where state = 0 and oprationstate <>3 and sku = '{0}' and block = '{1}' " + strwhere + "",
sql = string.Format("select id, Matchid, orderid, barcode, BatchId, DownDate, Tolocation, Sku, GoodsName, Discount, Quantity, address, ControlIP, area , block,unit,shopid from v_orders where state = 0 and oprationstate <>3 and sku = '{0}' and block = '{1}' " + strwhere + "",
sku,
block);
@ -90,7 +90,7 @@ namespace Epost.DAL
string sql = string.Empty;
if (!string.IsNullOrEmpty(area))
{
sql = string.Format("select id,ProdArea, LotNo, Matchid, orderid, barcode, BatchId, DownDate, Tolocation, Sku, GoodsName, Discount, Quantity, GoodsType, corlorcode, address, ControlIP,area, block,boxcode,bkbarcode,isnull(checkquantity,0) as checkquantity,wholeunit,unit,shopid,wmsboxcode from v_orders where state = 0 and sku = '{0}' and block = '{1}' and area='{2}' " + strwhere + "",
sql = string.Format("select id,Matchid,orderid, barcode, BatchId, DownDate, Tolocation, Sku, GoodsName, Discount, Quantity, address, ControlIP,area, block,bkbarcode,wholeunit,unit,shopid,wmsboxcode from v_orders where state = 0 and sku = '{0}' and block = '{1}' and area='{2}' " + strwhere + "",
sku,
block, area);
@ -98,7 +98,7 @@ namespace Epost.DAL
}
else
{
sql = string.Format("select id,ProdArea, LotNo, Matchid, orderid, barcode, BatchId, DownDate, Tolocation, Sku, GoodsName, Discount, Quantity, GoodsType, corlorcode, address, ControlIP, area , block,boxcode,bkbarcode,isnull(checkquantity,0) as checkquantity,wholeunit,unit,shopid,wmsboxcode from v_orders where state = 0 and sku = '{0}' and block = '{1}' " + strwhere + "",
sql = string.Format("select id,Matchid,orderid, barcode, BatchId, DownDate, Tolocation, Sku, GoodsName, Discount, Quantity, address, ControlIP, area , block,bkbarcode,wholeunit,unit,shopid,wmsboxcode from v_orders where state = 0 and sku = '{0}' and block = '{1}' " + strwhere + "",
sku,
block);
@ -656,6 +656,7 @@ namespace Epost.DAL
usercode
);
long x = db.UpdateSql(upsql);
LogHelper.WriteLogInfo("修改当前标签拣货状态:" + upsql + ",成功条数:" + x + "");
if (x > 0)
return true;
return false;
@ -2492,6 +2493,373 @@ namespace Epost.DAL
}
#endregion
#region
//========三迎========
#region
public DataTable GetOrdersMatchidIf(string matchid)
{
string sql = string.Format("select distinct matchid,shopid,shopname,prino+0 from Orders where matchid='" + matchid + "' order by prino+0 asc");
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
#endregion
#region
public DataTable GetAddressNolocation(string block, string area)
{
string sql = string.Format("select * from Addressstorage where bkaddress='0' and type='1' and block='" + block + "' and area='" + area + "' order by location+1 asc");
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
#endregion
#region orders分配货位
public bool UpOrderstolocation(string shopid, string tolocation, string matchid)
{
string sql = string.Format("update Orders set tolocation='" + tolocation + "' where shopid='" + shopid + "' and matchid='" + matchid + "'");
long x = db.UpdateSql(sql);
LogHelper.WriteLogInfo("为orders分配货位" + sql + ",成功条数:" + x + "");
if (x > 0)
{
sql = string.Format("update Addressstorage set bkaddress='" + shopid + "' where location='" + tolocation + "' and bkaddress='0' ");
long b = db.UpdateSql(sql);
LogHelper.WriteLogInfo("更新Addressstorage货位为已占用" + sql + ",成功条数:" + b + "");
return true;
}
else
{
return false;
}
}
#endregion
#region
public DataTable GetOrderMatchidBin(string matchid)
{
string sql = string.Format("select * from v_orders where tolocation!='' and matchid='" + matchid + "' ");
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
public DataTable GetOrderMatchidLocation(string block, string area)
{
string sql = string.Format("select * from v_orders where tolocation!='' and block='" + block + "' and area='" + area + "' ");
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
public DataTable GetOrderMatchidInfo(string block, string area)
{
string sql = string.Format("select distinct matchid,ControlIP from v_orders where (tolocation!='' or tolocation is not null) and block='" + block + "' and area='" + area + "' ");
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
#endregion
#region
public bool UpOrdersMatchid(string block, string area, string matchid)
{
try
{
string sql = string.Format("update orders set state='3' where tolocation!='' and matchid='" + matchid + "' ");
long x = db.UpdateSql(sql);
LogHelper.WriteLogInfo("强制结束修改状态:" + sql + ",成功条数:" + x + "");
if (x > 0)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("强制结束修改状态异常:" + ex + "");
return false;
}
}
public bool UpBkAddresss(string block, string area)
{
string sql = string.Format("update Addressstorage set bkaddress='0' where block='" + block + "' and area='" + area + "' ");
long x = db.UpdateSql(sql);
LogHelper.WriteLogInfo("强制结束修改Addressstorage:" + sql + ",成功条数:" + x + "");
if (x > 0)
{
return true;
}
else
{
return false;
}
}
public bool UpOrdersqueue(string block, string area, string matchid)
{
string sql = string.Format("update ordersqueue set state='3' where Taskblock='" + block + "' and Taskarea='" + area + "' and matchid='" + matchid + "' ");
long x = db.UpdateSql(sql);
LogHelper.WriteLogInfo("强制结束修改ordersqueue:" + sql + ",成功条数:" + x + "");
if (x > 0)
{
return true;
}
else
{
return false;
}
}
#endregion
#region
public DataTable GetSkuQuantity(string sku, string matchid)
{
string sql = string.Format("select sum(quantity) sumqty from Orders where sku='" + sku + "' and matchid='" + matchid + "' ");
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
public DataTable GetSku(string sku)
{
string sql = string.Format("select * from SkuInfo where sku = '" + sku + "' ");
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
#endregion
#region
public bool UpdateLocation(string block, string area)
{
string sql = string.Format("update Addressstorage set bkaddress='0' where block='" + block + "' and area='" + area + "' and type='1' ");
long x = db.UpdateSql(sql);
LogHelper.WriteLogInfo("运单完成-释放播种位:" + sql + ",条数:" + x + "");
if (x > 0)
{
return true;
}
else
{
return false;
}
}
#endregion
#region MyRegion
public bool UpdateWorkState_DPS(string matchid, int truequantity, string sku, int batchid, int checkquantity, string usercode = "")
{
try
{
lock (uplock)
{
int oprationstate = 3;
string upsql = string.Format("update Orders set oprationstate = '{3}' ,oprationtime='{0}',oprationcode='{5}',truequantity=quantity where matchid='{2}' and id='{4}' ",
DateTime.Now.ToString(),
truequantity,
matchid,
oprationstate,
batchid,
//checkquantity,
usercode
);
LogHelper.WriteLogInfo("-修改orders" + upsql);
long x = db.UpdateSql(upsql);
if (x > 0)
{
return true;
}
else
{
LogHelper.WriteLogInfo("修改orders异常" + upsql, LogHelper.Log_Type.ERROR);
return false;
}
}
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("修改当前标签拣货状态异常:" + ex.Message);
return false;
}
}
#endregion
#region
public DataTable GetOrderinfoNumber(string matchid)
{
string sql = string.Format("select distinct matchid,clientname,COUNT(distinct shopid) 'shopcount',count(distinct sku) qty from Orders where matchid='" + matchid + "' and isnull(tolocation,0)>0 group by matchid,clientname");
DataTable dt = db.GetsqlForDT(sql);
return dt;
}
#endregion
#region MyRegion
public bool ImportOrderinfo(DataTable ds, Dictionary<string, string> diclist)
{
bool bo = db.UpdateData(ds, "orders", diclist);
if (bo)
{
return true;
}
else
{
LogHelper.WriteLogInfo("添加取消订单失败");
return false;
}
}
#endregion
#region
public bool DelOrderSku()
{
try
{
string sql = string.Format("delete from Orders where sku not in (select sku from SkuInfo) ");
long x = db.DeleteSql(sql);
LogHelper.WriteLogInfo("数据维护:" + sql + ",成功条数:" + x + "");
if (x > 0)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("数据维护异常:" + ex + "", LogHelper.Log_Type.ERROR);
return false;
}
}
#endregion
#region orders
public void DelOrdersBeforeDate()
{
try
{
string sql = string.Format("insert into Ordershis select * from Orders");
long x = db.InsertSql(sql);
LogHelper.WriteLogInfo("导入数据清理之前orders" + sql + ",成功条数:" + x + "");
if (x > 0)
{
sql = string.Format("delete from Orders");
x = db.DeleteSql(sql);
LogHelper.WriteLogInfo("清理orders数据" + sql + ",成功条数:" + x + "");
}
}
catch (Exception ex)
{
LogHelper.WriteLogInfo("导入数据清理之前orders异常" + ex.Message + "", LogHelper.Log_Type.ERROR);
}
}
#endregion
#region
public List<OrdersModel> GetMatchUserTimeByPage(string strWhere, string orderby, int startIndex, int endIndex, out int recordCount)
{
try
{
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT * FROM ( ");
strSql.Append(" SELECT ROW_NUMBER() OVER (");
if (!string.IsNullOrEmpty(orderby.Trim()))
{
strSql.Append("order by T." + orderby);
}
else
{
strSql.Append("order by matchid asc");
}
strSql.Append(")AS Row,matchid as matchid,clientname as clientname,count(distinct(shopid)) as ShopCount,MIN(CONVERT(datetime,oprationtime)) AS starttime,MAX(CONVERT(datetime,oprationtime)) AS endtime,DATEDIFF(MINUTE,MIN(CONVERT(datetime,oprationtime)),MAX(CONVERT(datetime,oprationtime))) AS UseTime FROM Ordershis where 1=1 " + strWhere + " GROUP BY matchid,clientname ");
strSql.Append(" ) TT");
strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
List<OrdersModel> list = ModelConvertHelper<OrdersModel>.ConvertToList(db.GetsqlForDT(strSql.ToString()));
strSql.Remove(0, strSql.Length);
strSql.Append("SELECT count(distinct matchid) FROM Ordershis");
if (!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.AppendFormat(" WHERE 1=1 {0}", strWhere);
}
object obj = db.GetsqlForDT(strSql.ToString()).Rows[0][0];
if (obj != null)
recordCount = Convert.ToInt32(obj);
else
recordCount = 0;
return list;
}
catch (Exception ex)
{
LogHelper.WriteLog(GetType(), ex.Message);
recordCount = 0;
return new List<Model.OrdersModel>();
}
}
public DataTable GetMatchUserTime_DT(string strWhere)
{
try
{
string sql = string.Format("SELECT matchid as matchid,clientname as clientname,count(distinct(shopid)) as ShopCount,MIN(CONVERT(datetime,oprationtime)) AS starttime,MAX(CONVERT(datetime,oprationtime)) AS endtime,DATEDIFF(MINUTE,MIN(CONVERT(datetime,oprationtime)),MAX(CONVERT(datetime,oprationtime))) AS UseTime FROM Ordershis where 1=1 " + strWhere + " GROUP BY matchid,clientname ");
return db.GetsqlForDT(sql.ToString());
}
catch (Exception ex)
{
LogHelper.WriteLog(GetType(), ex.Message);
return new DataTable();
}
}
#endregion
#region
public DataTable getQueueState(string block, string area, string state)
{
string sql = string.Format("select * from OrdersQueue where taskblock='{0}' and taskarea='{1}' and state!='" + state + "' order by sort",
block,
area);
return db.GetsqlForDT(sql);
}
#endregion
#region
public bool IsFinishWork_box(string boxcode, int endcount, string matchid = "")
{
string sql = string.Format("select matchid from Orders where (matchid='{0}') and oprationstate<>3",
matchid);
LogHelper.WriteLogInfo("判断整箱状态为已完成" + sql);
DataTable dt = db.GetsqlForDT(sql);
if (dt == null || dt.Rows.Count == endcount)
{
LogHelper.WriteLogInfo("判断整箱状态为已完成true");
return true;
}
else
{
LogHelper.WriteLogInfo("判断整箱状态为已完成false");
return false;
}
}
#endregion
#endregion
}
}

View File

@ -10,7 +10,7 @@
<WebStackScaffolding_LayoutPageFile>~/Views/Shared/_EpostLayoutPage.cshtml</WebStackScaffolding_LayoutPageFile>
<WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
<WebStackScaffolding_ViewDialogWidth>600</WebStackScaffolding_ViewDialogWidth>
<NameOfLastUsedPublishProfile>E:\WORK\代码管理\播种\T系列分支\Epost.TestToolsWeb\Properties\PublishProfiles\Toolsweb.pubxml</NameOfLastUsedPublishProfile>
<NameOfLastUsedPublishProfile>D:\驿传\Epost\T_DAS_PTL\Epost.TestToolsWeb\Properties\PublishProfiles\Toolsweb.pubxml</NameOfLastUsedPublishProfile>
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<Use64BitIISExpress />
<IISExpressSSLPort />

View File

@ -9,13 +9,13 @@
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>D:\驿传\T系列</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
<PrecompileBeforePublish>True</PrecompileBeforePublish>
<EnableUpdateable>True</EnableUpdateable>
<DebugSymbols>False</DebugSymbols>
<LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
<ExcludeApp_Data>false</ExcludeApp_Data>
<publishUrl>D:\驿传\SanYing_DAS-T后台</publishUrl>
<DeleteExistingFiles>true</DeleteExistingFiles>
<PrecompileBeforePublish>true</PrecompileBeforePublish>
<EnableUpdateable>true</EnableUpdateable>
<DebugSymbols>false</DebugSymbols>
<WDPMergeOption>DonotMerge</WDPMergeOption>
</PropertyGroup>
</Project>

View File

@ -11,7 +11,7 @@
</configSections>
<connectionStrings>
<add name="weijie_dpsEntities" connectionString="metadata=res://*/WJDB.csdl|res://*/WJDB.ssdl|res://*/WJDB.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=weijie_dps;user id=sa;password=123456;min pool size=4;max pool size=4;packet size=3072;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
<add name="SqlLocDPSConnection" connectionString="server=139.196.36.200;user id=EpostTest;password=antion;database=EpostTest_T;min pool size=512;max pool size=512;packet size=3072" providerName="System.Data.SqlClient" />
<add name="SqlLocDPSConnection" connectionString="server=139.196.36.200;user id=EpostTest;password=antion;database=BaBi_DAS;min pool size=512;max pool size=512;packet size=3072" providerName="System.Data.SqlClient" />
<add name="MysqlLocDPSConnection" connectionString="Server=localhost;Port=3306;Database=world;User=root; Password=antion;SslMode=None;Pooling=true;Allow User Variables=True;" />
<add name="WMSConnection" connectionString="data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=139.196.36.200)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=EpostDB)));user id=C##Test;password=test" />
@ -27,11 +27,11 @@
<add key="ControlXML" value="/App_Data/EpostController.xml" />
<add key="LabelXML" value="/App_Data/AddressStorage.xml" />
<add key="ResultsXML" value="/App_Data/Results.xml" />
<add key="WebAPIUrl" value="http://192.168.3.65:8051/api/WebAPI/ProcessingResult"/>
<add key="WebAPIUrl" value="http://localhost:63119/api/WebAPI/ProcessingResult"/>
<add key="ShowMode" value="1" />
<add key="SetupMode" value="\Epost_P\Epost.TestToolsWeb\App_Data\SetupMode.txt" />
<add key="CARID" value="HT01" />
<add key="ServerAPIURL" value="http://192.168.3.65:8051/api/WebAPI" />
<add key="ServerAPIURL" value="http://localhost:63119/api/WebAPI" />
<add key="SleepTime" value="1" />
</appSettings>
<!--