| | |
| | | |
| | | using WCS.Application.Entity; |
| | | |
| | | namespace WCS.Application; |
| | | public class TaskRequest |
| | | { |
| | |
| | | } |
| | | |
| | | |
| | | //成品码垛信息 |
| | | public class BoxPalletBindVm |
| | | { |
| | | /// <summary> |
| | | /// 生产工单 |
| | | /// </summary> |
| | | public string OrderCode { get; set; } |
| | | /// <summary> |
| | | /// 入库单号 |
| | | /// </summary> |
| | | public string AsnNo { get; set; } |
| | | /// <summary> |
| | | /// 入库单明细 |
| | | /// </summary> |
| | | public int AsnDetailNo { get; set; } |
| | | /// <summary> |
| | | /// 托盘号 |
| | | /// </summary> |
| | | public string PalletNo { get; set; } |
| | | /// <summary> |
| | | /// 托盘数量 |
| | | /// </summary> |
| | | public decimal Qty { get; set; } |
| | | /// <summary> |
| | | /// 托盘类型 0物料托 1空托盘托 |
| | | /// </summary> |
| | | public string Type { get; set; } |
| | | /// <summary> |
| | | /// 物料编码 |
| | | /// </summary> |
| | | public string SkuNo { get; set; } |
| | | /// <summary> |
| | | /// 批次号 |
| | | /// </summary> |
| | | public string LotNo { get; set; } |
| | | /// <summary> |
| | | /// 批次描述 |
| | | /// </summary> |
| | | public string LotText { get; set; } |
| | | /// <summary> |
| | | /// 供货批次 |
| | | /// </summary> |
| | | public string SupplierLot { get; set; } |
| | | public List<WcsBoxInfo> Detail { get; set; } |
| | | } |
| | | //码垛箱码明细信息 |
| | | public class BoxPalletBindDetailVm |
| | | { |
| | | /// <summary> |
| | | /// 生产单据号 |
| | | /// </summary> |
| | | public string OrderCode { get; set; } |
| | | /// <summary> |
| | | /// 箱号 |
| | | /// </summary> |
| | | public string BoxNo { get; set; } |
| | | /// <summary> |
| | | /// 盒号 |
| | | /// </summary> |
| | | public string BoxNo2 { get; set; } |
| | | /// <summary> |
| | | /// 支号 |
| | | /// </summary> |
| | | public string BoxNo3 { get; set; } |
| | | /// <summary> |
| | | /// 数量 |
| | | /// </summary> |
| | | public decimal Qty { get; set; } |
| | | /// <summary> |
| | | /// 满箱数量 |
| | | /// </summary> |
| | | public decimal FullQty { get; set; } |
| | | /// <summary> |
| | | /// 物料编码 |
| | | /// </summary> |
| | | public string SkuNo { get; set; } |
| | | /// <summary> |
| | | /// 物料名称 |
| | | /// </summary> |
| | | public string SkuName { get; set; } |
| | | /// <summary> |
| | | /// 批次号 |
| | | /// </summary> |
| | | public string LotNo { get; set; } |
| | | /// <summary> |
| | | /// 批次描述 |
| | | /// </summary> |
| | | public string LotText { get; set; } |
| | | /// <summary> |
| | | /// 生产日期 |
| | | /// </summary> |
| | | public DateTime? ProductionTime { get; set; } |
| | | /// <summary> |
| | | /// 过期时间 |
| | | /// </summary> |
| | | public DateTime? ExpirationTime { get; set; } |
| | | /// <summary> |
| | | /// 检验标记 |
| | | /// </summary> |
| | | public string InspectMark { get; set; } |
| | | /// <summary> |
| | | /// 零箱标记 |
| | | /// </summary> |
| | | public string BitBoxMark { get; set; } |
| | | /// <summary> |
| | | /// 质检状态 |
| | | /// </summary> |
| | | public string InspectStatus { get; set; } |
| | | /// <summary> |
| | | /// 物料规格 |
| | | /// </summary> |
| | | public string Standard { get; set; } |
| | | /// <summary> |
| | | /// 包装规格 |
| | | /// </summary> |
| | | public string PackageStandard { get; set; } |
| | | /// <summary> |
| | | /// 储存期至 |
| | | /// </summary> |
| | | public DateTime? StoreTime { get; set; } |
| | | /// <summary> |
| | | /// 第几件 |
| | | /// </summary> |
| | | public int? QtyOrd { get; set; } |
| | | /// <summary> |
| | | /// 总件数 |
| | | /// </summary> |
| | | public int? QtyCount { get; set; } |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | // 向WMS申请巷道 |
| | | var http = new HttpService(); |
| | | string TaskNo = "", EndLocate = ""; |
| | | string strMsg = http.RequestRoadWay(palletNo, modDevice.StationNum, "1", "2", ref EndLocate, ref TaskNo); |
| | | string strMsg = http.BindRequestRoadWay(checkTaskMedel.OrderNo,palletNo, checkTaskMedel.BoxCount.ToDecimal(),"0", checkTaskMedel.SkuNo, checkTaskMedel.LotNo, "","", boxInfoList, |
| | | modDevice.StationNum, "1", "2", ref EndLocate, ref TaskNo); |
| | | if (!strMsg.Contains("-1")) |
| | | { |
| | | Log.Error(string.Format("申请巷道失败,码垛工位{0};原因{1}", modDevice.StationNum, strMsg)); |
| | |
| | | using Elastic.Clients.Elasticsearch; |
| | | using DocumentFormat.OpenXml.EMMA; |
| | | using Elastic.Clients.Elasticsearch; |
| | | using Furion.Logging; |
| | | using Furion.RemoteRequest.Extensions; |
| | | using Newtonsoft.Json; |
| | | using System.Text; |
| | | using WCS.Application.Entity; |
| | | using static SKIT.FlurlHttpClient.Wechat.Api.Models.ComponentTCBBatchCreateContainerServiceVersionResponse.Types; |
| | | |
| | | namespace WCS.Application; |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 调用WMS接口自动码垛绑定信息返回巷道口 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public string BindRequestRoadWay(string orderNo, string palletNo,decimal qty ,string type,string skuNo, string lotNo, string lotText, string supplierLot, List<WcsBoxInfo> detail, |
| | | string startLocat, string taskModel, string ceng, ref string endLocat, ref string taskNo) |
| | | { |
| | | string returnStr = ""; |
| | | |
| | | var task = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.TaskType == TaskTypeEnum.In && m.PalletNo == palletNo); |
| | | if (task == null) |
| | | { |
| | | var model = new BoxPalletBindVm() |
| | | { |
| | | OrderCode= orderNo, |
| | | AsnNo= orderNo, |
| | | AsnDetailNo=0, |
| | | PalletNo=palletNo, |
| | | Qty= qty, |
| | | Type=type, |
| | | SkuNo=skuNo, |
| | | LotNo= lotNo, |
| | | LotText= lotText, |
| | | SupplierLot= supplierLot, |
| | | Detail=detail |
| | | }; |
| | | string url = Urls.WMSAddress + ":" + Urls.WMSPort; |
| | | var result = (url + "/api/DownAPi/BindRequestRoadWay").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result; |
| | | Log.Information("调用WMS接口反馈任务接口" + result.ToJson()); |
| | | if (result.Success == 0) |
| | | { |
| | | var taskAdd = new WcsTask() |
| | | { |
| | | TaskType = TaskTypeEnum.In, |
| | | Status = TaskStatusEnum.Wait, |
| | | Origin = "WMS", |
| | | StartLocate = startLocat, |
| | | PalletNo = palletNo, |
| | | TaskNo = result.TaskList.TaskNo, |
| | | EndLocate = result.TaskList.EndLocate, |
| | | EndRoadway = result.TaskList.EndRoadway |
| | | }; |
| | | |
| | | _db.Insertable(taskAdd).ExecuteCommand(); |
| | | endLocat = result.TaskList.EndRoadway; |
| | | returnStr = result.TaskList.EndLocate; |
| | | } |
| | | else |
| | | { |
| | | returnStr = "-1:" + result.Message; |
| | | return returnStr; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | returnStr = task.EndLocate; |
| | | endLocat = task.EndRoadway; |
| | | taskNo = task.TaskNo; |
| | | } |
| | | |
| | | endLocat = PLCCommon.RoadwayToStationNum(endLocat, ceng); |
| | | |
| | | return returnStr; |
| | | } |
| | | /// <summary> |
| | | /// 调用WMS接口申请储位接口 |
| | | /// </summary> |
| | | /// <param name="palletNo"></param> |