diff --git a/WCS.BLL/DbModels/MatInfo.cs b/WCS.BLL/DbModels/MatInfo.cs
index 2f8e6a9..9c392f7 100644
--- a/WCS.BLL/DbModels/MatInfo.cs
+++ b/WCS.BLL/DbModels/MatInfo.cs
@@ -42,7 +42,7 @@ namespace WCS.BLL.DbModels
[SugarColumn(ColumnName = "mat_spec", Length = 150, IsNullable = true, ColumnDescription = "物料规格")]
public string? MatSpec { get; set; }
-
+
[SugarColumn(ColumnName = "mat_unit", Length = 100, IsNullable = true, ColumnDescription = "物料单位")]
public string? MatUnit { get; set; }
@@ -75,6 +75,13 @@ namespace WCS.BLL.DbModels
///
[SugarColumn(ColumnName = "is_printed", ColumnDescription = "是否已打印")]
public bool IsPrinted { get; set; } = false;
+
+ ///
+ /// 打印次数
+ ///
+ [SugarColumn(ColumnName = "printed_times", DefaultValue = "0", ColumnDescription = "打印次数")]
+ public int PrintedTimes { get; set; }
+
///
/// Desc:更新人
/// Default:
diff --git a/WCS.BLL/DbModels/ModuleInfo.cs b/WCS.BLL/DbModels/ModuleInfo.cs
index d3b0a8a..59eeedc 100644
--- a/WCS.BLL/DbModels/ModuleInfo.cs
+++ b/WCS.BLL/DbModels/ModuleInfo.cs
@@ -12,7 +12,7 @@ namespace WCS.DAL.DbModels
///模组信息表
///
[SugarTable("module_info")]
- public partial class ModuleInfo
+ public class ModuleInfo
{
///
@@ -80,5 +80,16 @@ namespace WCS.DAL.DbModels
[SugarColumn(ColumnName = "current_mode", IsNullable = true, ColumnDescription = "串联后大货架编码;大货架编码:未串联时是与货架编码是一对一的关系;串联后与货架编码是一对多的关系")]
public Mode CurrentMode { get; set; } = Mode.待机模式;
+
+ ///
+ /// 序号
+ ///
+ [SugarColumn(IsIgnore = true)]
+ public int RowNumber { get; set; }
+ ///
+ /// 是否已经选择
+ ///
+ [SugarColumn(IsIgnore = true)]
+ public bool IsSelected { get; set; }
}
}
diff --git a/WCS.BLL/DbModels/StockTakingOrder.cs b/WCS.BLL/DbModels/StockTakingOrder.cs
index 1b31581..47498ce 100644
--- a/WCS.BLL/DbModels/StockTakingOrder.cs
+++ b/WCS.BLL/DbModels/StockTakingOrder.cs
@@ -50,6 +50,12 @@ namespace WCS.BLL.DbModels
[SugarColumn(ColumnName = "create_user", Length = 100, IsNullable = true, ColumnDescription = "创建人")]
public string CreateUser { get; set; }
+ ///
+ /// 更新时间
+ ///
+ [SugarColumn(ColumnName = "update_time", IsNullable = false, ColumnDescription = "更新时间")]
+ public DateTime UpdateTime { get; set; } = DateTime.Now;
+
///
/// 序号
///
diff --git a/WCS.BLL/DbModels/StoreInfo.cs b/WCS.BLL/DbModels/StoreInfo.cs
index a760bd0..0f84620 100644
--- a/WCS.BLL/DbModels/StoreInfo.cs
+++ b/WCS.BLL/DbModels/StoreInfo.cs
@@ -87,5 +87,16 @@ namespace WCS.DAL.DbModels
///
[SugarColumn(ColumnName = "offset_voltage", IsNullable = true, ColumnDescription = "电压偏移值")]
public decimal OffsetVoltage { get; set; }
+
+ ///
+ /// 序号
+ ///
+ [SugarColumn(IsIgnore = true)]
+ public int RowNumber { get; set; }
+ ///
+ /// 是否已经选择
+ ///
+ [SugarColumn(IsIgnore = true)]
+ public bool IsSelected { get; set; }
}
}
diff --git a/WCS.BLL/HardWare/SmartShelf.cs b/WCS.BLL/HardWare/SmartShelf.cs
index 0fe0ec2..638efec 100644
--- a/WCS.BLL/HardWare/SmartShelf.cs
+++ b/WCS.BLL/HardWare/SmartShelf.cs
@@ -45,49 +45,6 @@ namespace WCS.BLL.HardWare
ModuleIds = Modules.Select(t => t.BoardId).ToList();
});
-
- ////初始化TCPCleint
- //TcpCleint = new TCPClient("192.168.0.11:20002", "192.168.0.154:20003");
- //TcpCleint.tcpClient.Received += (client, e) =>
- //{
- // var data = e.ByteBlock.Buffer.Take((int)e.ByteBlock.Length).ToArray();
- // e.ByteBlock.Clear();
- // var len = data.Length;
- // for (int index = 0; index < data.Length - TcpCleint.PreFixLength; index++)
- // {
- // //协议拆包 通过前缀校验是否为完整数据包
- // var prefixInData = data.Skip(index).Take(TcpCleint.PreFixLength);
- // var isEqual = prefixInData.SequenceEqual(TcpCleint.Prefix);
- // if (isEqual)
- // {
- // var dataTemp = data.Skip(index).Take(TcpCleint.PreFixLength + TcpCleint.DataLength).ToArray();
- // if (dataTemp.Length < TcpCleint.PreFixLength + TcpCleint.DataLength)//拆包后不满足一条指令的长度
- // {
- // continue;
- // }
- // index += (TcpCleint.PreFixLength + TcpCleint.DataLength - 1);//每次循环index会+1 所以这里-1
- // //获取板子ID
- // var boardIds = (data[TcpCleint.PreFixLength + 0] << 8) + data[TcpCleint.PreFixLength + 1];
- // var lightNumber = Convert.ToInt32(data[TcpCleint.PreFixLength + 3]);
-
- // //协议处理 判断功能位
- // switch (dataTemp[TcpCleint.PreFixLength + 2])
- // {
- // case 0x01://进入入库模式信号
- // GoInInstoreProcess(dataTemp, boardIds, lightNumber);
- // break;
- // case 0x03://正常入库信号
- // InStoreReturnProcess(dataTemp);
- // break;
- // default:
- // ;
- // break;
- // }
- // }
- // }
- // return EasyTask.CompletedTask;
- //};
- //TcpCleint.Connect();
}
@@ -748,6 +705,7 @@ namespace WCS.BLL.HardWare
}
//获取当前板所有库位
var storeInfos = DbHelp.db.Queryable()
+ .Where(t => t.ShelfId == ShelfId)
.Where(t => t.BoardId == boardId)
.ToList();
//当前板子的灯数量
@@ -915,7 +873,9 @@ namespace WCS.BLL.HardWare
{
var boardId = (data[TcpCleint.PreFixLength + 0] << 8) + data[TcpCleint.PreFixLength + 1];
var number = Convert.ToInt32(data[TcpCleint.PreFixLength + 3]);
- var storeInfo = DbHelp.db.Queryable().Where(t => t.BoardId == boardId
+ var storeInfo = DbHelp.db.Queryable().Where(t =>
+ t.ShelfId == ShelfId
+ && t.BoardId == boardId
&& t.LightNumber == number).First();
if (storeInfo == null)
@@ -1062,6 +1022,7 @@ namespace WCS.BLL.HardWare
Logs.Write("协议处理5.1");
lightNumber = (int)data[TcpCleint.PreFixLength + 4];
var storeInfo = DbHelp.db.Queryable()
+ .Where(t => t.ShelfId == ShelfId)
.Where(t => t.BoardId == boardId && t.LightNumber == lightNumber)
.First();
Logs.Write("协议处理5.2");
@@ -1202,6 +1163,7 @@ namespace WCS.BLL.HardWare
}
//获取当前板所有库位
var storeInfos = DbHelp.db.Queryable()
+ .Where(t => t.ShelfId == ShelfId)
.Where(t => t.BoardId == boardId)
.ToList();
//当前板子的灯数量
@@ -1310,6 +1272,7 @@ namespace WCS.BLL.HardWare
}
lightNumber = Convert.ToInt32(data[TcpCleint.PreFixLength + 3]);
var storeInfo = DbHelp.db.Queryable().Where(t => t.BoardId == boardId
+ && t.ShelfId == ShelfId
&& t.LightNumber == lightNumber)
.First();
if (storeInfo == null)
@@ -1423,9 +1386,19 @@ namespace WCS.BLL.HardWare
//确认本次出库
module.ComfirmOutstore(TcpCleint, data[TcpCleint.PreFixLength + 3]);
+
+
+ //当前柜子是否还存在未出库的
+ CurrentOutStoreMatSNs.RemoveAll(t => t == matSN);//删除本次已出的物料SN
+ var isExsistOut = CurrentOutStoreMatSNs.Any();
+
+ var tempOrder = CurrentOutOrder;
//通知前台刷新
Task.Run(() =>
{
+ //更新订单状态
+ UpdateOutOrderStatus(tempOrder);
+
var messageMode = new WebSocketMessageModel()
{
IsWarning = false,
@@ -1435,18 +1408,9 @@ namespace WCS.BLL.HardWare
WarningManager.SendWarning(messageMode);
});
- //当前柜子是否还存在未出库的
- CurrentOutStoreMatSNs.RemoveAll(t => t == matSN);//删除本次已出的物料SN
- var isExsistOut = CurrentOutStoreMatSNs.Any();
-
//本次亮灯的物料已全部取出
if (!isExsistOut)
{
-
-
- //更新订单状态
- UpdateOutOrderStatus(CurrentOutOrder);
-
CurrentOutOrder = null;
//退出出库模式
@@ -1547,7 +1511,6 @@ namespace WCS.BLL.HardWare
}
-
}
catch (Exception ex)
{
@@ -1634,6 +1597,7 @@ namespace WCS.BLL.HardWare
{
lightNumber = (int)data[TcpCleint.PreFixLength + 4];
var storeInfo = DbHelp.db.Queryable()
+ .Where(t => t.ShelfId == ShelfId)
.Where(t => t.BoardId == boardId && t.LightNumber == lightNumber)
.First();
if (storeInfo == null)
diff --git a/WCS.BLL/HardWare/SmartShelfModule.cs b/WCS.BLL/HardWare/SmartShelfModule.cs
index 30cb307..ab59ceb 100644
--- a/WCS.BLL/HardWare/SmartShelfModule.cs
+++ b/WCS.BLL/HardWare/SmartShelfModule.cs
@@ -92,6 +92,7 @@ namespace WCS.BLL.HardWare
//TO DO 退出对应的模式 然后再发送进入入库模式
}
var storeInfos = DbHelp.db.Queryable()
+ .Where(t => t.ModuleId == ModuleId)
.Where(t => t.BoardId == BoardId)
.OrderBy(t => t.LightNumber)
.ToList();
@@ -156,6 +157,7 @@ namespace WCS.BLL.HardWare
return;
}
var storeInfos = DbHelp.db.Queryable()
+ .Where(t => t.ModuleId == ModuleId)
.Where(t => t.BoardId == BoardId)
.OrderBy(t => t.LightNumber)
.ToList();
@@ -184,7 +186,7 @@ namespace WCS.BLL.HardWare
public void GoInOutStoreMode(TCPClient tcpClient, List outSns)
{
CurrentOutSns = outSns;
- var storeInfos = DbHelp.db.Queryable()
+ var storeInfos = DbHelp.db.Queryable().Where(t => t.ModuleId == ModuleId)
.Where(t => t.BoardId == BoardId)
.OrderBy(t => t.LightNumber)
.ToList();
@@ -247,7 +249,7 @@ namespace WCS.BLL.HardWare
{
CurrentStockTakingSns = stockTakingSns;
- var storeInfos = DbHelp.db.Queryable()
+ var storeInfos = DbHelp.db.Queryable().Where(t => t.ModuleId == ModuleId)
.Where(t => t.BoardId == BoardId)
.OrderBy(t => t.LightNumber)
.ToList();
@@ -277,7 +279,7 @@ namespace WCS.BLL.HardWare
tcpClient.Send(tcpClient.GenerateMessage(BoardId, GoInStockTakingModeData));
}
-
+
///
/// 已确认过的物料
///
@@ -286,7 +288,7 @@ namespace WCS.BLL.HardWare
{
CurrentStockTakingSns = stockTakingSns;
- var storeInfos = DbHelp.db.Queryable()
+ var storeInfos = DbHelp.db.Queryable().Where(t => t.ModuleId == ModuleId)
.Where(t => t.BoardId == BoardId)
.OrderBy(t => t.LightNumber)
.ToList();
@@ -317,14 +319,14 @@ namespace WCS.BLL.HardWare
tcpClient.Send(tcpClient.GenerateMessage(BoardId, ConfirmStockTakingData));
}
-
+
///
/// 单个确认物料
///
///
public void ConfirmStockTakingSingle(TCPClient tcpClient, int lightNumber)
{
- var storeInfos = DbHelp.db.Queryable()
+ var storeInfos = DbHelp.db.Queryable().Where(t => t.ModuleId == ModuleId)
.Where(t => t.BoardId == BoardId)
.OrderBy(t => t.LightNumber)
.ToList();
diff --git a/WCS.BLL/Manager/TCPClientManager.cs b/WCS.BLL/Manager/TCPClientManager.cs
index 2a11b69..1c6b76b 100644
--- a/WCS.BLL/Manager/TCPClientManager.cs
+++ b/WCS.BLL/Manager/TCPClientManager.cs
@@ -28,7 +28,7 @@ namespace WCS.BLL.Manager
.ToList();
foreach (var ip in ips)
{
- var tcpCleint = new TCPClient(ip, "192.168.9.183:20003");
+ var tcpCleint = new TCPClient(ip, "");
//配置断线重连
tcpCleint.tcpClient.Received += (client, e) =>
{
@@ -102,9 +102,49 @@ namespace WCS.BLL.Manager
Logs.Write("协议处理完毕!");
return EasyTask.CompletedTask;
};
+ //配置首次连接后复位操作
+ tcpCleint.tcpClient.Connected += (client, e) =>
+ {
+ var clientIpHost = client.IP + ":" + client.Port;
+ var TcpCleint = TCPClientManager.GetTCPClientByIPHost(clientIpHost);
+ if (TcpCleint == null)
+ {
+ return EasyTask.CompletedTask;
+ }
+ //首次连接
+ if (TcpCleint.IsFirstConnected == false)
+ {
+ InitStatus(TcpCleint);
+ TcpCleint.IsFirstConnected = true;
+ }
+ return EasyTask.CompletedTask;
+ };
+
TCPClients.Add(tcpCleint);
tcpCleint.Connect();
}
+
+ //启动线程监听所有TCP是否已经完成首次连接
+ Task.Run(() =>
+ {
+ while (true)
+ {
+ Thread.Sleep(1000);
+ var noFirstConnectedClients = TCPClientManager.TCPClients.Where(t => t.IsFirstConnected == false)
+ .ToList();
+ if (noFirstConnectedClients.Count == 0)
+ {
+ break;
+ }
+ else
+ {
+ noFirstConnectedClients.ForEach(t =>
+ {
+ t.ReConnectAsync();
+ });
+ }
+ }
+ });
}
//后台启动时给所有板子、警示灯发送复位操作 保持状态一致
@@ -133,6 +173,30 @@ namespace WCS.BLL.Manager
}
});
}
+
+ //后台启动时给所有板子、警示灯发送复位操作 保持状态一致
+ public static void InitStatus(TCPClient tcpClient)
+ {
+ Task.Run(() =>
+ {
+ try
+ {
+ Thread.Sleep(1000);
+
+ //板子复位
+ new SmartShelfModule()
+ {
+ BoardId = 2047
+ }.Reset(tcpClient);
+ //报警灯复位
+ new WarningLight().CloseLight(tcpClient);
+ }
+ catch (Exception ex)
+ {
+ Logs.Write($"[{tcpClient.RemoteIPHost}]:启动时复位异常,{ex.Message}");
+ }
+ });
+ }
public static TCPClient GetTCPClientByIPHost(string IpHost)
{
return TCPClients.Where(t => t.RemoteIPHost == IpHost).FirstOrDefault();
diff --git a/WCS.BLL/Manager/WarningManager.cs b/WCS.BLL/Manager/WarningManager.cs
index 0d9f4af..ab69ca2 100644
--- a/WCS.BLL/Manager/WarningManager.cs
+++ b/WCS.BLL/Manager/WarningManager.cs
@@ -144,6 +144,7 @@ namespace WCS.BLL.Manager
{
//获取库位
var storeInfo = DbHelp.db.Queryable()
+ .Where(t => t.ShelfId == warning.ShelfId)
.Where(t => t.Id == warning.StoreId)
.First();
if (storeInfo != null)
diff --git a/WCS.BLL/Services/IService/IMatBaseInfoService.cs b/WCS.BLL/Services/IService/IMatBaseInfoService.cs
index 3529c84..56aac35 100644
--- a/WCS.BLL/Services/IService/IMatBaseInfoService.cs
+++ b/WCS.BLL/Services/IService/IMatBaseInfoService.cs
@@ -14,7 +14,7 @@ namespace WCS.BLL.Services.IService
public Task> exportMatBaseInfo(GetMatBaseInfoRequest request);
- public Task>> importMatBaseInfo(List lists,string userName,string deviceType);
+ public Task>> importMatBaseInfo(List lists, string userName, string deviceType);
public Task> addOrUpdateMatBaseInfo(AddMatBaseInfoRequest request);
@@ -24,5 +24,7 @@ namespace WCS.BLL.Services.IService
public Task> getMatInfo(GetMatInfoRequest request);
+
+ public Task printedMatInfo(PrintedMatInfoRequest request);
}
}
diff --git a/WCS.BLL/Services/IService/IStoreInfoService.cs b/WCS.BLL/Services/IService/IStoreInfoService.cs
index b871fd3..49bff75 100644
--- a/WCS.BLL/Services/IService/IStoreInfoService.cs
+++ b/WCS.BLL/Services/IService/IStoreInfoService.cs
@@ -29,5 +29,22 @@ namespace WCS.BLL.Services.IService
public Task> GenerateStoreInfo();
+
+
+ ///
+ /// 查询货架列表
+ ///
+ ///
+ ///
+ public Task> GetModules(GetModulesRequest request);
+
+
+ ///
+ /// 查询货架列表
+ ///
+ ///
+ ///
+ public Task> GetStores(GetStoresRequest request);
+
}
}
diff --git a/WCS.BLL/Services/Service/GenerateService.cs b/WCS.BLL/Services/Service/GenerateService.cs
index 1074923..f89c77f 100644
--- a/WCS.BLL/Services/Service/GenerateService.cs
+++ b/WCS.BLL/Services/Service/GenerateService.cs
@@ -78,9 +78,10 @@ namespace WCS.BLL.Services.Service
MatQty = request.MatQty,
ModifyUser = request.UserName
};
+ matInfo.Id = DbHelp.db.Insertable(matInfo).ExecuteReturnIdentity();
matInfoList.Add(matInfo);
}
- DbHelp.db.Insertable(matInfoList).ExecuteCommand();
+
matBaseInfo.SerialNumber = startNumber + request.TotalCount;
DbHelp.db.Updateable(matBaseInfo).ExecuteCommand();
DbHelp.db.CommitTran();
diff --git a/WCS.BLL/Services/Service/InOutRecordService.cs b/WCS.BLL/Services/Service/InOutRecordService.cs
index 738541d..285660e 100644
--- a/WCS.BLL/Services/Service/InOutRecordService.cs
+++ b/WCS.BLL/Services/Service/InOutRecordService.cs
@@ -49,7 +49,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
- records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
+ records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse()
diff --git a/WCS.BLL/Services/Service/InstoreService.cs b/WCS.BLL/Services/Service/InstoreService.cs
index 61f3c2d..2436126 100644
--- a/WCS.BLL/Services/Service/InstoreService.cs
+++ b/WCS.BLL/Services/Service/InstoreService.cs
@@ -153,7 +153,7 @@ namespace WCS.BLL.Services.Service
}
#region 获取物料数据 //调用接口或者直接查询数据库
- //TODO做成配置 调用接口
+ // 调用接口
if (LocalFile.Config.IsAccessWMS)
{
#region 调用WMS接口获取物料信息
diff --git a/WCS.BLL/Services/Service/InterfaceRecordService.cs b/WCS.BLL/Services/Service/InterfaceRecordService.cs
index 09a4578..34ab7ed 100644
--- a/WCS.BLL/Services/Service/InterfaceRecordService.cs
+++ b/WCS.BLL/Services/Service/InterfaceRecordService.cs
@@ -45,7 +45,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
- records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
+ records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
//Task.WaitAll(new Task[] { recordsTask, totalCountTask });
diff --git a/WCS.BLL/Services/Service/MatBaseInfoService.cs b/WCS.BLL/Services/Service/MatBaseInfoService.cs
index 29df460..a3f5cd3 100644
--- a/WCS.BLL/Services/Service/MatBaseInfoService.cs
+++ b/WCS.BLL/Services/Service/MatBaseInfoService.cs
@@ -23,7 +23,10 @@ namespace WCS.BLL.Services.Service
///
public class MatBaseInfoService : IMatBaseInfoService
{
- public MatBaseInfoService() { }
+ public MatBaseInfoService()
+ {
+
+ }
public async Task> getMatBaseInfo(GetMatBaseInfoRequest request)
{
@@ -42,7 +45,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
- records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
+ records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse()
@@ -410,8 +413,6 @@ namespace WCS.BLL.Services.Service
}
}
-
-
public async Task> getMatInfo(GetMatInfoRequest request)
{
try
@@ -420,6 +421,8 @@ namespace WCS.BLL.Services.Service
.WhereIF(!string.IsNullOrEmpty(request.MatCode), t => t.MatCode.Contains(request.MatCode))
.WhereIF(!string.IsNullOrEmpty(request.MatName), t => t.MatName.Contains(request.MatName))
.WhereIF(!string.IsNullOrEmpty(request.MatSpec), t => t.MatSpec.Contains(request.MatSpec))
+ .WhereIF(!string.IsNullOrEmpty(request.MatBatch), t => t.MatBatch.Contains(request.MatBatch))
+ .WhereIF(request.IsPrinted != null, t => t.IsPrinted == request.IsPrinted)
.WhereIF(!string.IsNullOrEmpty(request.MatSN), t => t.MatSn.Contains(request.MatSN));
var totalCount = await recordsQueryable.CountAsync();
var records = await recordsQueryable
@@ -428,7 +431,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
- records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
+ records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse()
@@ -454,5 +457,51 @@ namespace WCS.BLL.Services.Service
}
}
+ public async Task printedMatInfo(PrintedMatInfoRequest request)
+ {
+ try
+ {
+
+ if (request == null || request.PrintedMatInfoIds == null || request.PrintedMatInfoIds.Count == 0)
+ {
+ return new ResponseCommon()
+ {
+ Code = 300,
+ Message = $"操作失败:参数为null",
+ };
+ }
+
+ DbHelp.db.BeginTran();
+ //获取打印的具体数据
+ var matInfos = await DbHelp.db.Queryable()
+ .Where(t => request.PrintedMatInfoIds.Contains(t.Id))
+ .ToListAsync();
+ //打印次数加一
+ matInfos.ForEach(matInfo =>
+ {
+ matInfo.IsPrinted = true;
+ matInfo.PrintedTimes = matInfo.PrintedTimes + 1;
+ });
+ await DbHelp.db.Updateable(matInfos).ExecuteCommandAsync();
+ DbHelp.db.CommitTran();
+
+ return new ResponseCommon()
+ {
+ Code = 200,
+ Message = $"Success",
+ };
+ }
+ catch (Exception ex)
+ {
+ DbHelp.db.RollbackTran();
+ return new ResponseCommon()
+ {
+ Code = 300,
+ Message = $"操作失败:{ex.Message}",
+ };
+ }
+ }
+
+
}
}
diff --git a/WCS.BLL/Services/Service/MatInventoryDetailService.cs b/WCS.BLL/Services/Service/MatInventoryDetailService.cs
index c5e0ace..b9881c5 100644
--- a/WCS.BLL/Services/Service/MatInventoryDetailService.cs
+++ b/WCS.BLL/Services/Service/MatInventoryDetailService.cs
@@ -47,7 +47,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
- records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
+ records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse()
diff --git a/WCS.BLL/Services/Service/OutstoreService.cs b/WCS.BLL/Services/Service/OutstoreService.cs
index c0c9488..076d6e0 100644
--- a/WCS.BLL/Services/Service/OutstoreService.cs
+++ b/WCS.BLL/Services/Service/OutstoreService.cs
@@ -208,7 +208,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
- records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
+ records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse()
@@ -378,7 +378,7 @@ namespace WCS.BLL.Services.Service
return new ResponseCommon>
{
Code = 200,
- Message = "Success",
+ Message = outOrder.OrderStatus.ToString(),
Data = orderMatDetail
};
}
@@ -619,7 +619,7 @@ namespace WCS.BLL.Services.Service
.WhereIF(!string.IsNullOrEmpty(outOrderDetail.MatBatch), t => t.MatBatch == outOrderDetail.MatBatch)
.Where(t => t.IsLocked == false)//未锁定的物料
.OrderBy(t => t.MatBatch)//先进先出
- //(t => t.MatQty)//零散料先出
+ //(t => t.MatQty)//零散料先出
.ToList();
//2.2按照搜索出来的库存和当前未出的数量 计算需要出的SN
diff --git a/WCS.BLL/Services/Service/StockTakingService.cs b/WCS.BLL/Services/Service/StockTakingService.cs
index 73a10ed..c71eb2b 100644
--- a/WCS.BLL/Services/Service/StockTakingService.cs
+++ b/WCS.BLL/Services/Service/StockTakingService.cs
@@ -345,7 +345,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
- records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
+ records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse()
@@ -386,9 +386,6 @@ namespace WCS.BLL.Services.Service
case Model.ApiModel.Stocktaking.StocktakingOrderStatus.部分盘点:
recordsQueryable = recordsQueryable.Where(t => t.StocktakingOrderStatus == StocktakingOrderStatus.部分盘点);
break;
- case Model.ApiModel.Stocktaking.StocktakingOrderStatus.已提交:
- recordsQueryable = recordsQueryable.Where(t => t.StocktakingOrderStatus == StocktakingOrderStatus.已提交);
- break;
case Model.ApiModel.Stocktaking.StocktakingOrderStatus.盘点完成:
recordsQueryable = recordsQueryable.Where(t => t.StocktakingOrderStatus == StocktakingOrderStatus.盘点完成);
break;
@@ -397,7 +394,8 @@ namespace WCS.BLL.Services.Service
}
var records = await recordsQueryable
- .OrderByDescending(t => t.CreateTime)
+ .Where(t => t.StocktakingOrderStatus != StocktakingOrderStatus.已提交)
+ .OrderByDescending(t => t.UpdateTime)
.Take(40)
.ToListAsync();
@@ -507,6 +505,14 @@ namespace WCS.BLL.Services.Service
Message = $"操作失败:不存在单据号为{request.StockTakingOrderNumber}的盘点单!",
};
}
+ if (order.StocktakingOrderStatus == StocktakingOrderStatus.已提交)
+ {
+ return new ResponseCommon()
+ {
+ Code = 201,
+ Message = $"操作失败:盘点单据:{request.StockTakingOrderNumber}已提交!",
+ };
+ }
}
else
{
@@ -562,6 +568,10 @@ namespace WCS.BLL.Services.Service
shelf.GoInStocktaking(matDetails, order);
shelf.OrderNumber = order.StocktakingOrderNumber;
});
+ //更新Order
+ order.UpdateTime = DateTime.Now;
+ DbHelp.db.Updateable(order).ExecuteCommand();
+
//返回
return new ResponseCommon()
{
@@ -698,16 +708,24 @@ namespace WCS.BLL.Services.Service
};
}
//返回具体的单据信息
- var stockTakinbgOrder = await DbHelp.db.Queryable()
+ var stockTakinOrderMatDetail = await DbHelp.db.Queryable()
.Where(t => t.StocktakingOrderId == stockTakingOrder.Id)
.Where(t => t.MatSN == request.MatSN)
.FirstAsync();
- return new ResponseCommon()
- {
- Code = 200,
- Message = "success",
- Data = stockTakinbgOrder
- };
+ if (stockTakinOrderMatDetail != null)
+ return new ResponseCommon()
+ {
+ Code = 200,
+ Message = "success",
+ Data = stockTakinOrderMatDetail
+ };
+ else
+ return new ResponseCommon()
+ {
+ Code = 201,
+ Message = "不是本次盘点的物料!",
+ Data = null
+ };
}
public async Task confirmStocktakingOrder(ConfirmStocktakingOrderRequest request)
@@ -736,6 +754,8 @@ namespace WCS.BLL.Services.Service
DbHelp.db.Updateable(stockTakingMatDetail)
.ExecuteCommand();
+
+
#region 发送指令 对应货架对应模组确认盘点
//判断货架是否已进入盘点模式
var shelf = ShelfManager.Shelves
@@ -771,6 +791,32 @@ namespace WCS.BLL.Services.Service
#endregion
DbHelp.db.CommitTran();
+
+ #region 更新Order状态
+ Task.Run(() =>
+ {
+ //获取Order
+ var order = DbHelp.db.Queryable().Where(t => t.Id == stockTakingMatDetail.StocktakingOrderId).First();
+ if (order != null)
+ {
+ var orderDetails = DbHelp.db.Queryable()
+ .Where(t => t.StocktakingOrderId == stockTakingMatDetail.StocktakingOrderId)
+ .ToList();
+ var stocktakedDetailCount = orderDetails.Where(t => t.IsStocktaking).Count();
+ if (stocktakedDetailCount < orderDetails.Count && order.StocktakingOrderStatus == StocktakingOrderStatus.未盘点)
+ {
+ order.StocktakingOrderStatus = StocktakingOrderStatus.部分盘点;
+ DbHelp.db.Updateable(order).ExecuteCommand();
+ }
+ else if (stocktakedDetailCount == orderDetails.Count)
+ {
+ order.StocktakingOrderStatus = StocktakingOrderStatus.盘点完成;
+ DbHelp.db.Updateable(order).ExecuteCommand();
+ }
+ }
+ });
+ #endregion
+
return new ResponseCommon()
{
Code = 200,
diff --git a/WCS.BLL/Services/Service/StoreInfoService.cs b/WCS.BLL/Services/Service/StoreInfoService.cs
index 20d5e92..9056619 100644
--- a/WCS.BLL/Services/Service/StoreInfoService.cs
+++ b/WCS.BLL/Services/Service/StoreInfoService.cs
@@ -36,7 +36,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
- records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
+ records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse()
{
@@ -236,8 +236,11 @@ namespace WCS.BLL.Services.Service
}
}
-
- async Task> IStoreInfoService.GenerateStoreInfo()
+ ///
+ /// TODO HardCode 根据模组信息生成库位
+ ///
+ ///
+ public async Task> GenerateStoreInfo()
{
var shelfInfo = await DbHelp.db.Queryable().Where(t => t.ShelfCode == "C04-1").FirstAsync();
var ModuleInfos = await DbHelp.db.Queryable().Where(t => t.ShelfId == shelfInfo.Id).ToListAsync();
@@ -262,7 +265,93 @@ namespace WCS.BLL.Services.Service
}
});
- return new ResponseCommon