using Model.InterFaceModel;
|
using Model.ModelDto.BllQualityDto;
|
using Model.ModelVm;
|
using Model.ModelVm.BllQualityVm;
|
using Newtonsoft.Json;
|
using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Linq.Expressions;
|
using System.Text;
|
using Utility.Tools;
|
using WMS.BLL.LogServer;
|
using WMS.DAL;
|
using WMS.Entity.BllAsnEntity;
|
using WMS.Entity.BllQualityEntity;
|
using WMS.Entity.Context;
|
using WMS.Entity.DataEntity;
|
using WMS.Entity.LogEntity;
|
using WMS.Entity.SysEntity;
|
using WMS.IBLL.IBllQualityServer;
|
|
namespace WMS.BLL.BllQualityServer
|
{
|
public class InspectionRequestServer : DbHelper<BllQualityInspectionRequest>, IInspectionRequest
|
{
|
#region 构造函数
|
private static readonly SqlSugarScope Db = DataContext.Db;
|
public InspectionRequestServer() : base(Db)
|
{
|
}
|
#endregion
|
|
#region 事件方法
|
public List<BllQualityInspectionRequestDto> GetInspectionRequest(BllQualityInspectionRequestVm model,out int count)
|
{
|
try
|
{
|
Expression<Func<BllQualityInspectionRequest, bool>> item = Expressionable.Create<BllQualityInspectionRequest>()
|
.AndIF(!string.IsNullOrWhiteSpace(model.QcNo), it => it.QcNo.Contains(model.QcNo))
|
.AndIF(!string.IsNullOrWhiteSpace(model.ASNNo), it => it.ASNNo.Contains(model.ASNNo))
|
.AndIF(!string.IsNullOrWhiteSpace(model.SkuNo), it => it.SkuNo.Contains(model.SkuNo))
|
.AndIF(!string.IsNullOrWhiteSpace(model.SkuName), it => it.SkuName.Contains(model.SkuName))
|
.AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.Status)
|
.AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => it.LotNo.Contains(model.LotNo))
|
.AndIF(!string.IsNullOrWhiteSpace(model.SupplierLot), it => it.SupplierLot.Contains(model.SupplierLot))
|
.AndIF(!string.IsNullOrWhiteSpace(model.StartTime), it => it.CreateTime >= Convert.ToDateTime(model.StartTime))
|
.AndIF(!string.IsNullOrWhiteSpace(model.EndTime), it => it.CreateTime <= Convert.ToDateTime(model.EndTime).AddDays(1))
|
.ToExpression();
|
|
var rowCount = 0;
|
var data = GetAllWhereAsync(item)
|
.LeftJoin<SysUserInfor>((a, b) => a.RequestUser == b.Id) // 请验人
|
.LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id) // 创建人
|
.LeftJoin<SysUserInfor>((a, b, c, d) => a.UpdateUser == d.Id) // 更新人
|
.Select((a, b, c, d) => new BllQualityInspectionRequestDto()
|
{
|
Id = a.Id,
|
QcNo=a.QcNo,
|
ASNNo = a.ASNNo,
|
Status = a.Status,
|
SkuNo = a.SkuNo,
|
SkuName = a.SkuName,
|
LotNo = a.LotNo,
|
SupplierLot = a.SupplierLot,
|
Qty = a.Qty,
|
SamplingQty = a.SamplingQty,
|
RequestTime = a.RequestTime,
|
RequestUser = b.RealName,
|
UDF1 = a.UDF1,
|
UDF2 = a.UDF2,
|
UDF3 = a.UDF3,
|
UDF4 = a.UDF4,
|
UDF5 = a.UDF5,
|
CreateUserName = c.RealName,
|
UpdateUserName = d.RealName,
|
CreateTime = a.CreateTime,
|
UpdateTime = a.UpdateTime,
|
})
|
.OrderByDescending(a => a.CreateTime)
|
.ToOffsetPage(model.Page, model.Limit, ref rowCount);
|
count = rowCount;
|
|
return data;
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
|
public List<BllSamplingDetailsDto> GetSamplingDetails(BllSamplingDetailsVm model, out int count)
|
{
|
try
|
{
|
Expression<Func<BllSamplingDetails, bool>> item = Expressionable.Create<BllSamplingDetails>()
|
.AndIF(!string.IsNullOrWhiteSpace(model.QcNo), it => it.QcNo.Contains(model.QcNo))
|
.AndIF(!string.IsNullOrWhiteSpace(model.ASNNo), it => it.ASNNo.Contains(model.ASNNo))
|
.AndIF(!string.IsNullOrWhiteSpace(model.SkuNo), it => it.SkuNo.Contains(model.SkuNo))
|
.AndIF(!string.IsNullOrWhiteSpace(model.SkuName), it => it.SkuName.Contains(model.SkuName))
|
.AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => it.LotNo.Contains(model.LotNo))
|
.AndIF(!string.IsNullOrWhiteSpace(model.SupplierLot), it => it.SupplierLot.Contains(model.SupplierLot))
|
.AndIF(!string.IsNullOrWhiteSpace(model.StartTime), it => it.CreateTime >= Convert.ToDateTime(model.StartTime))
|
.AndIF(!string.IsNullOrWhiteSpace(model.EndTime), it => it.CreateTime <= Convert.ToDateTime(model.EndTime).AddDays(1))
|
.And(m=>m.IsDel =="0")
|
.ToExpression();
|
|
var rowCount = 0;
|
var data = Db.Queryable<BllSamplingDetails>().Where(item)
|
.LeftJoin<BllQualityInspectionRequest>((a, b) => a.QcNo == b.QcNo) // 请验人
|
.LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id) // 创建人
|
.LeftJoin<SysUserInfor>((a, b, c, d) => a.UpdateUser == d.Id) // 更新人
|
.Select((a, b, c, d) => new BllSamplingDetailsDto()
|
{
|
QcNo = a.QcNo,
|
ASNNo = a.ASNNo,
|
Status = b.Status,
|
PalletNo=a.PalletNo,
|
BoxNo=a.BoxNo,
|
BoxNo2=a.BoxNo2,
|
BoxNo3=a.BoxNo3,
|
SkuNo = a.SkuNo,
|
SkuName = a.SkuName,
|
Standard=a.Standard,
|
LotNo = a.LotNo,
|
SupplierLot = a.SupplierLot,
|
CompleteQty = a.CompleteQty,
|
UDF1 = a.UDF1,
|
UDF2 = a.UDF2,
|
UDF3 = a.UDF3,
|
UDF4 = a.UDF4,
|
UDF5 = a.UDF5,
|
CreateUserName = c.RealName,
|
UpdateUserName = d.RealName,
|
CreateTime = a.CreateTime,
|
UpdateTime = a.UpdateTime.ToString(),
|
})
|
.OrderByDescending(a => a.CreateTime)
|
.ToOffsetPage(model.Page, model.Limit, ref rowCount);
|
count = rowCount;
|
return data;
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
|
public bool ClossInspectionRequest(IdVm model, int userId,string url)
|
{
|
try
|
{
|
var data = Db.Queryable<BllQualityInspectionRequest>()
|
.Where(m => m.QcNo == model.Code && m.IsDel == "0" && (m.Status == "1"||m.Status=="2")).ToList().FirstOrDefault();
|
if (data == null)
|
{
|
throw new Exception("操作失败!请验单状态变更.");
|
}
|
|
DateTime time = DateTime.Now;
|
|
// 根据入库单号查询采购计划单 采购计划明细单 入库单 入库单明细等表信息
|
Expression<Func<BllQualityInspectionRequest, bool>> item = Expressionable.Create<BllQualityInspectionRequest>()
|
.AndIF(!string.IsNullOrWhiteSpace(model.Code), it => it.QcNo.Contains(model.Code))
|
.ToExpression();
|
var QcNoModel = GetAllWhereAsync(item)
|
.LeftJoin<BllArrivalNotice>((a, b) => a.ASNNo == b.ASNNo) // 入库总单
|
.LeftJoin<BllArrivalNoticeDetail>((a, b, c) => a.SkuNo == c.SkuNo && a.ASNNo == c.ASNNo) // 入库明细单
|
.LeftJoin<BllProcurePlanNotice>((a, b, c, d) => b.OrderCode == d.OrderCode) // 采购计划单
|
.LeftJoin<BllProcurePlanNoticeDetail>((a, b, c, d, e) => c.OrderDetailCode == e.OrderDetailCode) // 采购计划单明细
|
.LeftJoin<BllSamplingDetails>((a, b, c, d, e, f) => a.QcNo == f.QcNo)
|
.Select((a, b, c, d, e, f) => new SendQcNoModel()
|
{
|
OrderNo = d.OrderCode + "-" + e.OrderDetailCode,
|
QcNo = a.QcNo,
|
SkuNo = a.SkuNo,
|
LotNo = a.LotNo,
|
SupplierLot = a.SupplierLot,
|
CompleteTime = time.ToString("yyyy-MM-dd"),
|
CompleteQty = SqlFunc.AggregateSum(f.CompleteQty).ToString()
|
});
|
|
// 取样消耗量回传给浪潮ERP系统
|
var taskNo = new Common().GetMaxNo("TK");
|
var exTask = new LogTask()
|
{
|
TaskNo = taskNo,
|
Sender = "WMS",
|
Receiver = "ERP",
|
IsSuccess = 0, //是否下发成功 0失败 1成功
|
StartLocat = "", //起始位置
|
PalletNo = "", //托盘码
|
IsSend = 1, //是否可再次下发
|
IsCancel = 1, //是否可取消
|
IsFinish = 1, //是否可完成
|
Status = "0", //任务状态0:等待执行1正在执行2执行完成
|
OrderType = "5", //0 入库单 1 出库单 2 盘点单 3 移库单 4 取样出库单 5 其他
|
EndLocat = "", //目标位置
|
Type = "3", //任务类型 0 入库任务 1 出库任务 2 移库任务
|
Msg = "取样消耗回传"
|
};
|
|
// 插入任务日志
|
Db.Insertable(exTask).ExecuteCommand();
|
|
|
// 调用Limes接口发起请验
|
var jsonData = JsonConvert.SerializeObject(QcNoModel);
|
string response = "";
|
try
|
{
|
var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss")
|
response = HttpHelper.DoPost(url, jsonData, "上传ERP取样消耗量过账", "ERP");
|
var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss")
|
|
////解析返回数据
|
var limesModel = JsonConvert.DeserializeObject<LimesModel>(response);
|
List<string> list1 = new List<string>();
|
list1.Add(taskNo);
|
if (limesModel.Success == 0)
|
{
|
//更改任务的发送返回时间//
|
new TaskServer().EditTaskIssueOk(list1, time1, time2);
|
|
// 更新请验单信息
|
data.Status = "2";
|
data.UpdateTime = time;
|
data.UpdateUser = userId;
|
|
Db.Updateable(data).ExecuteCommand();
|
}
|
if (limesModel.Success == -1)
|
{
|
new TaskServer().EditTaskIssueNo(list1, time1, time2, limesModel.Message);
|
throw new Exception(limesModel.Message);
|
}
|
}
|
catch (Exception ex)
|
{
|
throw new Exception(ex.Message);
|
}
|
|
//添加操作日志记录
|
var k = new OperationCrServer().AddLogOperationCr("质量管理", "质检请验", model.Code, "关单", $"关闭了{model.Code}请验单!", userId);
|
|
return true;
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
|
public bool DelInspectionRequest(IdVm model, int userId)
|
{
|
try
|
{
|
var data = Db.Queryable<BllQualityInspectionRequest>()
|
.Where(m => m.QcNo == model.Code && m.IsDel == "0" && m.Status == "0" ).ToList().FirstOrDefault();
|
if (data == null)
|
{
|
throw new Exception("操作失败!请验单状态变更.");
|
}
|
|
data.IsDel = "1";
|
data.UpdateTime = DateTime.Now;
|
data.UpdateUser = userId;
|
|
Db.Updateable(data).ExecuteCommand();
|
|
//添加操作日志记录
|
var k = new OperationCrServer().AddLogOperationCr("质量管理", "质检请验", model.Code, "删除", $"删除了{model.Code}请验单!", userId);
|
|
return true;
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
|
public bool DelSamplingDetails(IdVm model, int userId)
|
{
|
try
|
{
|
throw new Exception("此方法弃用");
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
|
/// <summary>
|
/// 质检请验出库功能
|
/// </summary>
|
/// <param name="model">model.Id:请验单主键;model.Code:出库口 </param>
|
/// <param name="userId">操作用户</param>
|
/// <param name="url">Wcs地址</param>
|
/// <returns></returns>
|
public bool OutWhInspectionRequest(IdVm model, int userId,string url)
|
{
|
try
|
{
|
var com = new Common();
|
// 判断请验单状态
|
var data = Db.Queryable<BllQualityInspectionRequest>()
|
.First(m => m.Id == model.Id && m.IsDel == "0" && m.Status == "1");
|
if (data == null)
|
{
|
throw new Exception("操作失败!请验单状态变更.");
|
}
|
// 判断消耗量是否合法
|
if (data.SamplingQty <= 0)
|
{
|
throw new Exception("取样量小于等于0.");
|
}
|
|
// 获取仓库类型为立库的仓库编号
|
var WareHouseNos = Db.Queryable<SysWareHouse>().Where(m => m.IsDel == "0" && m.Type == "1").Select(z=>z.WareHouseNo).ToList();
|
|
// 根据物料、批次、获取立体库库内托盘 、
|
var pallets = Db.Queryable<DataStockDetail>()
|
.Where(m => m.SkuNo == data.SkuNo
|
&& m.LotNo == data.LotNo
|
&& m.Qty > 0
|
&& m.IsDel == "0"
|
&& WareHouseNos.Contains(m.WareHouseNo)).OrderByDescending(z=> new {z.InspectMark, z.Qty }).OrderBy(z=>z.LocatNo).ToList();
|
|
decimal? numberQty = data.SamplingQty;
|
var outWhs = new List<OutCommandDto>();
|
foreach (var pallet in pallets)
|
{
|
if (numberQty <= 0)
|
{
|
break;
|
}
|
|
numberQty = numberQty - pallet.Qty;
|
|
// 判断当前托盘所在储位的深度
|
var Locats = Db.Queryable<SysStorageLocat>()
|
.Where(m => m.LocatNo == pallet.LocatNo && m.WareHouseNo == pallet.WareHouseNo
|
&& m.IsDel == "0").ToList().FirstOrDefault();
|
|
if (Locats.Depth == "02")
|
{
|
// 获取外侧储位地址
|
string locatNo = Locats.LocatNo.Substring(0, 6) + "01";
|
var Locatwc = Db.Queryable<SysStorageLocat>()
|
.Where(m => m.LocatNo == locatNo && m.WareHouseNo == pallet.WareHouseNo
|
&& m.IsDel == "0").ToList().FirstOrDefault();
|
|
if (Locatwc.Status == "1")
|
{
|
// 外侧有货物
|
var Locatwcsku = Db.Queryable<DataStockDetail>()
|
.Where(m => m.LocatNo == locatNo
|
&& m.IsDel == "0"
|
&& m.WareHouseNo== Locatwc.WareHouseNo).ToList().FirstOrDefault();
|
|
// 获取移库地址
|
var newSlot = com.MoveAddress(locatNo, Locatwc.RoadwayNo, Locatwcsku.SkuNo);
|
|
var taskNo1 = new Common().GetMaxNo("TK");
|
var exTask1 = new LogTask(); //出库任务
|
exTask1.TaskNo = taskNo1;
|
exTask1.Sender = "WMS";
|
exTask1.Receiver = "WCS";
|
exTask1.IsSuccess = 0; //是否下发成功 0失败 1成功
|
exTask1.StartLocat = locatNo; //起始位置
|
exTask1.PalletNo = Locatwcsku.PalletNo; //托盘码
|
exTask1.IsSend = 1;//是否可再次下发
|
exTask1.IsCancel = 1;//是否可取消
|
exTask1.IsFinish = 1;//是否可完成
|
exTask1.Status = "0";//任务状态0:等待执行1正在执行2执行完成
|
exTask1.OrderType = "4"; //0 入库单 1 出库单 2 盘点单 3 移库单 4 取样出库单
|
|
|
OutCommandDto taskModel = new OutCommandDto();
|
taskModel.TaskNo = com.GetMaxNo("TK"); // 任务号
|
taskModel.StartRoadway = Locatwc.RoadwayNo;
|
taskModel.PalletNo = Locatwcsku.PalletNo; // 托盘号
|
taskModel.StartLocate = locatNo; // 起始位置
|
taskModel.Order = 1;
|
if (newSlot == "")
|
{
|
exTask1.EndLocat = model.Code; //目标位置
|
exTask1.Type = "1"; //任务类型 0 入库任务 1 出库任务 2 移库任务
|
exTask1.Msg = Locats.LocatNo +"托盘出库创建的"+locatNo + "托盘的出库任务";
|
|
// 没有多余的空储位
|
taskModel.EndLocate = model.Code; // 出库口
|
taskModel.EndRoadway = ""; // 目标巷道
|
taskModel.TaskType = "1";// 任务类型 (出库)
|
taskModel.OutMode = model.Code; //目标地址
|
|
// 更新储位地址
|
Locatwc.Status = "3";
|
Db.Updateable(Locatwc).ExecuteCommand();
|
}
|
else
|
{
|
// 获取移库巷道号
|
var Locatyk = Db.Queryable<SysStorageLocat>()
|
.Where(m => m.LocatNo == newSlot && m.WareHouseNo == pallet.WareHouseNo
|
&& m.IsDel == "0").ToList().FirstOrDefault();
|
|
exTask1.EndLocat = newSlot; //目标位置
|
exTask1.Type = "2"; //任务类型 0 入库任务 1 出库任务 2 移库任务
|
exTask1.Msg = Locats.LocatNo + "托盘出库创建的" + locatNo + "托盘的移库任务";
|
|
taskModel.EndLocate = newSlot; // 目标地址
|
taskModel.EndRoadway = Locatyk.RoadwayNo; // 目标巷道
|
taskModel.TaskType = "2"; // 任务类型 (移库)
|
taskModel.OutMode = newSlot;
|
|
// 更新储位地址
|
Locatwc.Status = "5"; // 移出中
|
Locatyk.Status = "4"; // 移入中
|
Db.Updateable(Locatyk).ExecuteCommand();
|
}
|
Db.Updateable(Locatwc).ExecuteCommand();
|
|
// 插入任务日志
|
Db.Insertable(exTask1).ExecuteCommand();
|
outWhs.Add(taskModel);
|
}
|
if (Locatwc.Status == "2" || Locatwc.Status == "4")
|
{
|
numberQty = numberQty + pallet.Qty;
|
continue;
|
}
|
}
|
|
|
var taskNo2 = new Common().GetMaxNo("TK");
|
var exTask2 = new LogTask(); //出库任务
|
exTask2.TaskNo = taskNo2;
|
exTask2.Sender = "WMS";
|
exTask2.Receiver = "WCS";
|
exTask2.IsSuccess = 0; //是否下发成功 0失败 1成功
|
exTask2.StartLocat = pallet.LocatNo; //起始位置
|
exTask2.PalletNo = pallet.PalletNo; //托盘码
|
exTask2.IsSend = 1;//是否可再次下发
|
exTask2.IsCancel = 1;//是否可取消
|
exTask2.IsFinish = 1;//是否可完成
|
exTask2.Status = "0";//任务状态0:等待执行1正在执行2执行完成
|
exTask2.OrderType = "4"; //0 入库单 1 出库单 2 盘点单 3 移库单 4 取样出库单
|
exTask2.EndLocat = model.Code; //目标位置
|
exTask2.Type = "1"; //任务类型 0 入库任务 1 出库任务 2 移库任务
|
exTask2.Msg = pallet.LocatNo + "托盘出库任务";
|
// 插入任务日志
|
Db.Insertable(exTask2).ExecuteCommand();
|
|
OutCommandDto taskModel1 = new OutCommandDto();
|
taskModel1.StartRoadway = pallet.RoadwayNo;
|
taskModel1.PalletNo = pallet.PalletNo; // 托盘号
|
taskModel1.StartLocate = pallet.LocatNo; // 起始位置
|
taskModel1.Order = 1;
|
taskModel1.EndLocate = model.Code; // 目标地址
|
taskModel1.EndRoadway = ""; // 目标巷道
|
taskModel1.TaskNo = com.GetMaxNo("TK"); // 任务号
|
taskModel1.TaskType = "1";// 任务类型 (出库)
|
taskModel1.OutMode = model.Code;
|
|
// 更新储位状态
|
Locats.Status = "3";
|
Db.Updateable(Locats).ExecuteCommand();
|
|
outWhs.Add(taskModel1);
|
|
// 向WCS下发出库任务
|
if (outWhs.Count > 0)
|
{
|
// 正式运行程序放开
|
var list2 = outWhs.Select(m => m.TaskNo).ToList();
|
var jsonData = JsonConvert.SerializeObject(outWhs);
|
string response = "";
|
|
try
|
{
|
var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss")
|
response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS");
|
var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss")
|
|
////解析返回数据
|
//var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
|
//if (wcsModel.StatusCode == 0)
|
//{
|
// //更改任务的发送返回时间//
|
new TaskServer().EditTaskIssueOk(list2, time1, time2);
|
//}
|
//if (wcsModel.StatusCode == -1)
|
//{
|
// new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
|
// throw new Exception(wcsModel.Msg);
|
//}
|
}
|
catch (Exception ex)
|
{
|
throw new Exception(ex.Message);
|
}
|
|
}
|
}
|
|
//添加操作日志记录
|
var k = new OperationCrServer()
|
.AddLogOperationCr("质量管理", "质检请验", data.QcNo, "出库", $"点击了出库操作;请验单:{data.QcNo}!", userId);
|
|
data.Status = "2";
|
Db.Updateable(data).ExecuteCommand();
|
|
return true;
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
|
/// <summary>
|
/// 向Limes发送请验信息
|
/// </summary>
|
/// <param name="model">model.Id:请验单主键;model.Code:出库口 </param>
|
/// <param name="userId">操作用户</param>
|
/// <param name="url">Wcs地址</param>
|
/// <returns></returns>
|
public bool SendInspectionRequest(IdVm model, int userId, string url, string userName)
|
{
|
try
|
{
|
// 判断请验单状态
|
var data = Db.Queryable<BllQualityInspectionRequest>()
|
.Where(m => m.QcNo == model.Code && m.IsDel == "0" && m.Status == "0").ToList().FirstOrDefault();
|
if (data == null)
|
{
|
throw new Exception("操作失败!请验单状态变更.");
|
}
|
|
// 记录任务日志
|
var taskNo = new Common().GetMaxNo("TK");
|
var exTask = new LogTask()
|
{
|
TaskNo = taskNo,
|
Sender = "WMS",
|
Receiver = "Limes",
|
IsSuccess = 0, //是否下发成功 0失败 1成功
|
StartLocat = "", //起始位置
|
PalletNo = "", //托盘码
|
IsSend = 1, //是否可再次下发
|
IsCancel = 1, //是否可取消
|
IsFinish = 1, //是否可完成
|
Status = "0", //任务状态0:等待执行1正在执行2执行完成
|
OrderType = "5", //0 入库单 1 出库单 2 盘点单 3 移库单 4 取样出库单 5 其他
|
EndLocat = "", //目标位置
|
Type = "3", //任务类型 0 入库任务 1 出库任务 2 移库任务
|
Msg = "请验任务"
|
};
|
|
// 插入任务日志
|
Db.Insertable(exTask).ExecuteCommand();
|
|
|
// 调用Limes接口发起请验
|
var sendModel = new SendLimesModel()
|
{
|
QcNo = data.QcNo,
|
SkuNo = data.SkuNo,
|
Qty = data.Qty.ToString(),
|
LotNo = data.LotNo,
|
SupplierLot = data.SupplierLot,
|
RequestUser = userName, // 请验人
|
};
|
var jsonData = JsonConvert.SerializeObject(sendModel);
|
string response = "";
|
|
try
|
{
|
var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss")
|
//response = HttpHelper.DoPost(url, jsonData, "上传Limes系统发起请验", "Limes");
|
var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss")
|
|
////解析返回数据
|
//var limesModel = JsonConvert.DeserializeObject<LimesModel>(response);
|
List<string> list1 = new List<string>();
|
list1.Add(taskNo);
|
//if (limesModel.Success == 0)
|
//{
|
//更改任务的发送返回时间//
|
new TaskServer().EditTaskIssueOk(list1, time1, time2);
|
|
// 更新请验单信息
|
data.Status = "1";
|
data.SamplingQty = 10;//decimal.Parse(limesModel.SamplingQty);
|
data.RequestUser = userId;
|
data.RequestTime = DateTime.Now;
|
data.UpdateTime = DateTime.Now;
|
data.UpdateUser = userId;
|
|
Db.Updateable(data).ExecuteCommand();
|
//}
|
//if (limesModel.Success == -1)
|
//{
|
// new TaskServer().EditTaskIssueNo(list1, time1, time2,limesModel.Message);
|
// throw new Exception(limesModel.Message);
|
//}
|
}
|
catch (Exception ex)
|
{
|
throw new Exception(ex.Message);
|
}
|
|
//添加操作日志记录
|
var k = new OperationCrServer()
|
.AddLogOperationCr("质量管理", "质检请验", model.Code, "请验", $"向质量部分发起请验!", userId);
|
|
return true;
|
}
|
catch (Exception e)
|
{
|
throw new Exception(e.Message);
|
}
|
}
|
#endregion
|
}
|
}
|