| | |
| | | <img src="/assets/down_arraw.png"> |
| | | </div> |
| | | </div> |
| | | <!-- <div id="" class="layui-form-item layout-input"> |
| | | <label class="layui-form-label" lang>库位地址:</label> |
| | | <div class="layui-input-block"> |
| | | <input id="LocatNo" type="text" langholder placeholder="请扫描库位条码" |
| | | autocomplete="off" class="layui-input"> |
| | | <div id="" class="layui-form-item layout-dropdownlist"> |
| | | <label class="layui-form-label" lang>托盘条码:</label> |
| | | <div class="layui-input-block" id="selectPalletNo"> |
| | | <select id="PalletNo" lay-filter="getPalletNo" lay-search> |
| | | <option value=""></option> |
| | | </select> |
| | | <img src="/assets/down_arraw.png"> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | <div id="" class="layui-form-item layout-dropdownlist"> |
| | | <label class="layui-form-label" lang>出库地址:</label> |
| | | <div class="layui-input-block"> |
| | |
| | | var val = input.val() |
| | | $("#bar").empty() |
| | | $("#bar").append('<option value =>' + '</option>'); |
| | | var PalletNo = $("#PalletNo").val(); |
| | | |
| | | var param = { |
| | | Type: "1", |
| | |
| | | |
| | | } |
| | | |
| | | function updatePalletNoList(callback) { |
| | | var input = $('select[id="PalletNo"]').next().find('.layui-select-title input') |
| | | var val = input.val() |
| | | $("#PalletNo").empty() |
| | | $("#PalletNo").append('<option value =>' + '</option>'); |
| | | form.render('select'); |
| | | |
| | | var param = { |
| | | soNo:$("#bar").val() |
| | | }; |
| | | sendData(IP + "/PdaCr/GetPalletNoListBySoNo", param, 'get', function (res) { |
| | | if (res.code == 0) { //成功 |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | $("#PalletNo").append('<option value =' + res.data[i] + '>' + res.data[i]+ |
| | | '</option>'); |
| | | } |
| | | form.render('select'); |
| | | |
| | | if (!val) { |
| | | $('#PalletNo').siblings("div.layui-form-select").find('dl').find('.layui-select-tips').addClass('layui-this') |
| | | } else { |
| | | var sel = 'dd[lay-value=' + val + ']'; |
| | | $('#PalletNo').siblings("div.layui-form-select").find('dl').find(sel).addClass('layui-this') |
| | | } |
| | | |
| | | callback(res.data) |
| | | } else { //不成功 |
| | | // layer.msg(res.msg, { |
| | | // icon: 2, |
| | | // time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | // }, function() {}); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | form.on('submit(formBind)', function (data) { |
| | | |
| | | var param = { |
| | | SoNo: $("#bar").val(), |
| | | soDetailId: $("#goodSelect").val(), |
| | | palletNo: $("#PalletNo").val(), |
| | | outMode:$("#endSelect").val(), |
| | | } |
| | | console.log(param); |
| | |
| | | //修改库存明细信息 |
| | | Db.Updateable(item).ExecuteCommand(); |
| | | } |
| | | //获取拣货信息 |
| | | var alotr = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.PalletNo == model.PalletNo && a.Status == "4"); |
| | | if (alotr != null) |
| | | { |
| | | alotr.Status = "5"; //5 已完成 |
| | | alotr.UpdateUser = model.CreateUser; //修改人 |
| | | alotr.UpdateTime = serverTime; //修改时间 |
| | | //修改拣货信息 |
| | | Db.Updateable(alotr).ExecuteCommand(); |
| | | } |
| | | |
| | | #region 任务及组托信息 |
| | | //创建任务信息 |
| | | var taskNo = new Common().GetMaxNo("TK"); |
| | |
| | | var upShelf = new BllPalletUpShelf() |
| | | { |
| | | TaskNo = exTask.TaskNo, |
| | | TraceNo = bindInfo.ASNNo, |
| | | PalletNo = bindInfo.PalletNo, |
| | | TraceNo = bindInfo== null? "": bindInfo.ASNNo, |
| | | PalletNo = model.PalletNo, |
| | | SkuNo = palletupinfo.SkuNo, |
| | | SkuName = palletupinfo.SkuName, |
| | | LotNo = palletupinfo.LotNo, |
| | | Status = "2", |
| | | LocatNo = model.LocatNo, |
| | | WareHouseNo = bindInfo.WareHouseNo, |
| | | RoadwayNo = bindInfo.RoadwayNo, |
| | | WareHouseNo = storageLocat.WareHouseNo, |
| | | RoadwayNo = storageLocat.RoadwayNo, |
| | | AreaNo = storageLocat.AreaNo, |
| | | |
| | | CreateUser = 0, |
| | |
| | | using Newtonsoft.Json; |
| | | using SqlSugar; |
| | | using Utility; |
| | | using Utility.Tools; |
| | | using WMS.BLL.LogServer; |
| | | using WMS.DAL; |
| | | using WMS.Entity.BllAsnEntity; |
| | |
| | | //添加操作日志记录 |
| | | var k = new OperationCrServer().AddLogOperationCr("PDA模块", "AGV转运", palletNo, "移库", $"PDA呼叫小车对托盘号:{palletNo}发起转运", userId); |
| | | |
| | | var outDto = new List<OutCommandDto>(); |
| | | outDto.Add(new OutCommandDto() |
| | | var outDto = new List<OutCommandDto> |
| | | { |
| | | new OutCommandDto() |
| | | { |
| | | TaskNo = moveTask.TaskNo, // 任务号 |
| | | TaskType = "2",// 任务类型 0入 1出 2移 |
| | |
| | | Order = 999, |
| | | Type = PLCTypeEnum.AGV |
| | | |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | // 正式运行程序放开 |
| | | var list2 = outDto.Select(m => m.TaskNo).ToList(); |
| | |
| | | try |
| | | { |
| | | var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | //response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS"); |
| | | 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) |
| | | //{ |
| | | // //更改任务的发送返回时间// |
| | | //解析返回数据 |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response); |
| | | if (wcsModel.code == 200) |
| | | { |
| | | // 更改任务的发送返回时间// |
| | | new TaskServer().EditTaskIssueOk(list2, time1, time2); |
| | | //} |
| | | //if (wcsModel.StatusCode == -1) |
| | | //{ |
| | | // new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); |
| | | // throw new Exception(wcsModel.Msg); |
| | | //} |
| | | } |
| | | else |
| | | { |
| | | new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.message); |
| | | throw new Exception(wcsModel.message); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | endLocat = locatInfo2.LocatNo; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(endLocat)) |
| | | { |
| | | var locatInfo3 = storageLocatList.Where(w => w.IsDel == "0" && w.Flag == "0") |
| | | .OrderByDescending(m => m.Layer).OrderByDescending(m => m.Column).OrderByDescending(m => m.Row).First(); |
| | | //if (string.IsNullOrEmpty(endLocat)) |
| | | //{ |
| | | // var locatInfo3 = storageLocatList.Where(w => w.IsDel == "0" && w.Flag == "0") |
| | | // .OrderByDescending(m => m.Layer).OrderByDescending(m => m.Column).OrderByDescending(m => m.Row).First(); |
| | | |
| | | if (locatInfo3 != null) |
| | | { |
| | | endLocat = locatInfo3.LocatNo; |
| | | } |
| | | } |
| | | // if (locatInfo3 != null) |
| | | // { |
| | | // endLocat = locatInfo3.LocatNo; |
| | | // } |
| | | //} |
| | | return endLocat; |
| | | } |
| | | #endregion |
| | |
| | | /// <param name="soNo"></param> |
| | | /// <param name="detailId"></param> |
| | | /// <param name="outMode"></param> |
| | | /// <param name="palletNo"></param> |
| | | /// <param name="userId"></param> |
| | | /// <param name="url"></param> |
| | | /// <param name="str"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public List<OutCommandDto> IssueOutHouseLk(string soNo, string detailId,string outMode, int userId, string url, out string str) |
| | | public List<OutCommandDto> IssueOutHouseLk(string soNo, string detailId,string outMode, string palletNo, int userId, string url, out string str) |
| | | { |
| | | try |
| | | { |
| | |
| | | str = "托盘不在货架库上"; |
| | | return outDto1; |
| | | } |
| | | var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == outModeLocate && m.IsDel == "0");//当前出库的目标储位信息 |
| | | if (locate2 == null) |
| | | var locateEnd = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == outModeLocate && m.IsDel == "0");//当前出库的目标储位信息 |
| | | if (locateEnd == null) |
| | | { |
| | | str = "出库的托盘储位信息错误(在储位表中未查询到)"; |
| | | return outDto1; |
| | | } |
| | | else if (locate2.Status != "0") |
| | | else if (locateEnd.Status != "0") |
| | | { |
| | | str = "目标储位状态不是空储位"; |
| | | return outDto1; |
| | |
| | | /// <param name="soNo"></param> |
| | | /// <param name="detailId"></param> |
| | | /// <param name="outMode"></param> |
| | | /// <param name="palletNo"></param> |
| | | /// <param name="userId"></param> |
| | | /// <param name="url"></param> |
| | | /// <param name="str"></param> |
| | | /// <returns></returns> |
| | | List<OutCommandDto> IssueOutHouseLk(string soNo, string detailId, string outMode, int userId, string url, out string str); |
| | | List<OutCommandDto> IssueOutHouseLk(string soNo, string detailId, string outMode, string palletNo, int userId, string url, out string str); |
| | | #endregion |
| | | |
| | | |
| | |
| | | /// <param name="outMode">出库地址(平库拣货位)</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult PDAIssueOut(string soNo, string soDetailId,string outMode) |
| | | public IActionResult PDAIssueOut(string soNo, string soDetailId,string palletNo,string outMode) |
| | | { |
| | | try |
| | | { |
| | |
| | | } |
| | | else if (house == "W02") |
| | | { |
| | | var list = _http.IssueOutHouseLk(soNo,soDetailId, outMode, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out string str); |
| | | var list = _http.IssueOutHouseLk(soNo,soDetailId, outMode,palletNo, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out string str); |
| | | |
| | | return Ok(new HttpReturnModel { Success = "0", Message = str, Data = list}); |
| | | } |
| | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 接受wcs返回的信号 //指令反馈(是否完成) |
| | | /// 手动完成的信号 //指令反馈(是否完成) |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost] |