提交代码

This commit is contained in:
hehaibing-1996
2024-06-29 17:30:54 +08:00
parent 5ea25c477c
commit 344158c722
43 changed files with 1148 additions and 98 deletions

View File

@ -17,5 +17,16 @@ namespace WCS.BLL.Services.IService
public Task<string> generateOutOrderNumber();
public Task<string> generateMXPDOutOrderNumber();
//金川项目增加接口
/// <summary>
/// 查询当前物料编码是哪个物料 没有则直接添加
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public Task<ResponseBase> JinChuanGenerateMatInfo(JinChuanGenerateMatInfoRequest request);
public Task<ResponseBase> JinChuanCommitMatInfo(JinChuanCommitMatInfoRequest request);
}
}

View File

@ -166,5 +166,150 @@ namespace WCS.BLL.Services.Service
}
}
public async Task<ResponseBase> JinChuanGenerateMatInfo(JinChuanGenerateMatInfoRequest request)
{
try
{
//第一步 查询
var matBaseInfo = await DbHelp.db.Queryable<MatBaseInfo>().Where(t => t.MatCode == request.MatCode).FirstAsync();
if (matBaseInfo != null)
{
return new ResponseBase<MatBaseInfo>()
{
Code = 200,
Message = "Success",
Data = matBaseInfo
};
}
else
{
//不存在 则先创建
matBaseInfo = new MatBaseInfo()
{
MatCode = request.MatCode,
MatName = string.Empty,
};
matBaseInfo.Id = DbHelp.db.Insertable(matBaseInfo).ExecuteReturnIdentity();
return new ResponseBase<MatBaseInfo>()
{
Code = 200,
Message = "Success",
Data = matBaseInfo
};
}
}
catch (Exception ex)
{
return new ResponseBase<MatBaseInfo>()
{
Code = 300,
Message = ex.Message,
Data = null
};
}
}
public async Task<ResponseBase> JinChuanCommitMatInfo(JinChuanCommitMatInfoRequest request)
{
try
{
//
if (request.TotalPan <= 0 && request.TotalPan >= 500)
{
return new ResponseBase<MatInfo>()
{
Code = 201,
Message = "操作失败物料盘数请输入1-500",
Data = null
};
}
//第二步 查询基础物料
var matBaseInfo = await DbHelp.db.Queryable<MatBaseInfo>().Where(t => t.Id == request.MatId).FirstAsync();
if (matBaseInfo != null)
{
//存在此物料的情况下 判断当前的数量
if (request.CurrentSerilNumber != matBaseInfo.SerialNumber + 1)
{
return new ResponseBase<MatInfo>()
{
Code = 201,
Message = "操作失败:当前物料流水号冲突!请重新扫码!",
Data = null
};
}
//流水号不冲突
else
{
var matInfoList = new List<MatInfo>();
try
{
DbHelp.db.BeginTran();
for (int i = 0; i < request.TotalPan; i++)
{
//保存matBaseInfo
matBaseInfo.SerialNumber++;
//保存条码信息
var matInfo = new MatInfo()
{
MatSn = request.CurrentMatSn[i],
MatCode = matBaseInfo.MatCode,
MatName = matBaseInfo.MatName,
MatBatch = request.MatBatch,
MatSpec = matBaseInfo.MatSpec,
MatUnit = matBaseInfo.MatUnit,
MatSupplier = matBaseInfo.MatSupplier,
MatCustomer = matBaseInfo.MatCustomer,
MatQty = request.MatQty,
ModifyUser = request.UserName
};
matInfo.Id = DbHelp.db.Insertable(matInfo).ExecuteReturnIdentity();
matInfoList.Add(matInfo);
}
//await DbHelp.db.Insertable(matInfoList).ExecuteCommandAsync();
await DbHelp.db.Updateable(matBaseInfo).ExecuteCommandAsync();
DbHelp.db.CommitTran();
}
catch (Exception ex)
{
DbHelp.db.RollbackTran();
return new ResponseBase<List<MatInfo>> ()
{
Code = 300,
Message = $"失败:{ex.Message}",
Data = matInfoList
};
}
return new ResponseBase<List<MatInfo>>()
{
Code = 200,
Message = "Success",
Data = matInfoList
};
}
}
else
{
return new ResponseBase<MatInfo>()
{
Code = 201,
Message = "操作失败:不存在此物料,请重试!",
Data = null
};
}
}
catch (Exception ex)
{
return new ResponseBase<MatInfo>()
{
Code = 300,
Message = ex.Message,
Data = null
};
}
}
}
}

View File

@ -439,15 +439,6 @@ namespace WCS.BLL.Services.Service
public async Task<ResponseBase> queryInstoreStatusSingle(QueryByMatSnRequestSingle request)
{
//获取货架
//var shelf = ShelfManager.Shelves.Where(t => t.ShelfCode == request.ShelfCode).FirstOrDefault();
//if (shelf == null)//货架不存在
//{
// return new ResponseCommon()
// {
// Code = 201,
// Message = $"货架[{request.ShelfCode}]不存在!",
// };
//}
List<ModuleInfo> MI = DbHelp.db.Queryable<ModuleInfo>().Where(it => it.ModuleCode == request.ShelfCode).ToList();
if (MI.Count == 0)
{
@ -529,8 +520,8 @@ namespace WCS.BLL.Services.Service
//data1[6] = 0x02;
//data1[7] = 0x02;
//byte[] senddata1 = Tool.Helper.Crc16(data1, data1.Length, false);
byte[] senddata1 = Tool.Helper.InstoreWarnLight(warnLightID);
tCPClient.Send(senddata1); //报警灯短亮一次
//byte[] senddata1 = Tool.Helper.InstoreWarnLight(warnLightID);
//tCPClient.Send(senddata1); //报警灯短亮一次
//byte[] data2 = new byte[8];
//data2[0] = 0xff;
@ -542,8 +533,12 @@ namespace WCS.BLL.Services.Service
//data2[6] = 0x03;
//data2[7] = 0x02;
//byte[] senddata2 = Tool.Helper.Crc16(data2, data2.Length, true);
byte[] senddata2 = Tool.Helper.InstoreLight(PCBId);
tCPClient.Send(senddata2); //库位灯短亮一次
//byte[] senddata2 = Tool.Helper.InstoreLight(PCBId);
//tCPClient.Send(senddata2); //库位灯短亮一次
byte[] senddata1 = Tool.Helper.InstoreLightAndWarnLight(PCBId, warnLightID);
tCPClient.Send(senddata1); //报警灯和库位灯同时短亮
return new ResponseCommonSingle()
{

View File

@ -162,6 +162,7 @@ namespace WCS.BLL.Services.Service
MatSpec = mat.,
MatUnit = mat.,
MatCustomer = mat.,
ModifyUser = userName,
IsEnable = mat. == "启用" ? true : false,
};
await DbHelp.db.Insertable(matBaseInfo).ExecuteCommandAsync();

View File

@ -435,6 +435,7 @@ namespace WCS.BLL.Services.Service
var totalCount = await recordsQueryable.CountAsync();
var records = await recordsQueryable
.OrderByDescending(t => t.Id)
.Skip((request.PageNumber - 1) * request.PageSize).Take(request.PageSize)
.ToListAsync();
//生成序号
@ -802,7 +803,7 @@ namespace WCS.BLL.Services.Service
var matDetails = outOrderMatDetails.Where(t => t.StoreInfo.ShelfCode == shelf.ShelfCode)
.Distinct()
.ToList();
shelf.GoInOutstore(matDetails, order);
shelf.GoInOutstore(matDetails, order, request.UserName);
shelf.OrderNumber = order.OrderNumber;
Logs.Write($"出库单{order.OrderNumber},货架{shelf.ShelfCode}进入入库模式!", LogsType.Outstore);
});
@ -1382,12 +1383,12 @@ namespace WCS.BLL.Services.Service
Data = null
};
}
//物料校验
var invetoryDetail = await DbHelp.db.Queryable<InventoryDetail>()
.Where(it => it.Id == request.MatId)
.Where(it => it.MatSN == request.MatSn)
.FirstAsync();
if (invetoryDetail == null)
{
return new ResponseCommon()
@ -1398,6 +1399,27 @@ namespace WCS.BLL.Services.Service
};
}
//获取库位是否是信息化货架的库位
var shelf = await DbHelp.db.Queryable<StoreInfo>()
.LeftJoin<ShelfTypeInfo>((si, sti) => si.ShelfTypeId == sti.Id)
.Where((si, sti) => si.Id == invetoryDetail.StoreId)
.Select((si, sti) => new
{
ShelfId = si.ShelfId,
ShelfTypeName = sti.ShelfTypeName
})
.FirstAsync();
if (shelf != null && shelf.ShelfTypeName != "信息化货架")
{
return new ResponseCommon()
{
Code = 201,
Message = $"该物料库存不在信息化货架上,不能进行出库!",
Data = null
};
}
//物料需求明细校验
var outOrderDetail = await DbHelp.db.Queryable<OutOrderDetail>().Where(it => it.OrderNumber == request.OrderNumber)
.Where(it => it.MatCode == invetoryDetail.MatCode)
@ -1437,6 +1459,28 @@ namespace WCS.BLL.Services.Service
outOrderDetail.OutQty += invetoryDetail.MatQty;
DbHelp.db.Updateable(outOrderDetail).ExecuteCommand();
//蜂鸣器提示
Task.Run(() =>
{
Logs.Write("【单灯出库蜂鸣器提示】开始");
if (shelf != null)
{
var Shelf = DbHelp.db.Queryable<ShelfInfo>().Where(t => t.Id == shelf.ShelfId).First();
if (Shelf != null)
{
TCPClient tCPClient = TCPClientManager.GetTCPClientByIPHost(Shelf.ClientIp);
byte[] lightOn = Helper.CommitOutstoreBee(Shelf.LightId);
tCPClient.Send(lightOn);
Logs.Write($"【单灯出库蜂鸣器提示】已发送指令");
}
else
Logs.Write($"【单灯出库蜂鸣器提示】Shelf == null ID为{shelf.ShelfId}");
}
else
Logs.Write("【单灯出库蜂鸣器提示】shelf == null");
});
return new ResponseCommon()
{
Code = 200,
@ -1454,6 +1498,6 @@ namespace WCS.BLL.Services.Service
};
}
}
}
}