| | |
| | | using System.ComponentModel.Design; |
| | | using System.Linq; |
| | | using System.Linq.Expressions; |
| | | using System.Net; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Microsoft.AspNetCore.Identity; |
| | |
| | | ParentName = "库内作业", |
| | | MenuName = "盘点单据", |
| | | FkNo = model.CrNo, |
| | | TypeName = "添加", |
| | | TypeName = "编辑", |
| | | Msg = $"编辑了单据号为{model.CrNo}的盘点单信息" |
| | | }); |
| | | //var k = new OperationCrServer().AddLogOperationCr("库内作业", "盘点单据", model.CrNo, "编辑", $"编辑了单据号为{model.CrNo}的盘点单信息", _userManager.UserId); |
| | |
| | | //盘点下发出库 |
| | | public async Task<List<OutCommandDto>> CheckOutHouse(string crNo, string outMode, string url, string str) |
| | | { |
| | | try |
| | | { |
| | | #region 集合 |
| | | var outDtoList = new List<OutCommandDto>(); //出库数据的集合 |
| | | //记录错误信息的集合 |
| | |
| | | throw Oops.Bah($"未找到{crNo}盘点单信息"); |
| | | } |
| | | //所有要出库的盘点明细信息(等待的信息和待拣货的信息) |
| | | var funSetting = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetNo == "InventoryCheckMethod"); |
| | | if (funSetting == null || funSetting.IsEnable == "OFF") |
| | | { |
| | | throw Oops.Bah("需配置盘点方式"); |
| | | } |
| | | var list = await Db.Queryable<BllStockCheckDetail>().Where(a => a.IsDel == "0" && a.CRNo == crNo && a.Status == 0).ToListAsync(); |
| | | if (list.Count == 0) //判断是否有需要下发的盘点明细 |
| | | { |
| | | throw Oops.Bah("当前盘点单据无需要下发的托盘"); |
| | | } |
| | | if (funSetting.SetValue == "once") |
| | | { |
| | | if (list.Any(s => s.Status == 1 || s.Status == 2)) |
| | | { |
| | | throw Oops.Bah("已有正在出库或待盘点的数据,请完成盘点后再出库"); |
| | | } |
| | | list = new List<BllStockCheckDetail>() { list.FirstOrDefault() }; |
| | | } |
| | | #region |
| | | //要出库的托盘集合 |
| | |
| | | //获取物料信息 |
| | | var skuNo = await Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.Type == "4").Select(a => a.SkuNo).ToListAsync(); |
| | | var time = DateTime.Now; |
| | | Db.BeginTran(); |
| | | try |
| | | { |
| | | //Db.BeginTran(); |
| | | //循环盘点明细的信息生成出库任务 |
| | | foreach (var item in list) |
| | | { |
| | |
| | | TypeName = "出库", |
| | | Msg = $"点击出库按钮盘点单号为:{crNo}的盘点单" |
| | | }); |
| | | Db.CommitTran(); |
| | | //Db.CommitTran(); |
| | | |
| | | str = string.Empty; |
| | | if (flagList.Count(m => m == 1) > 0) |
| | |
| | | { |
| | | str += "5.要出库的托盘在零箱库、"; |
| | | } |
| | | if (!string.IsNullOrEmpty(str)) |
| | | throw Oops.Bah(str); |
| | | if (outDtoList.Count > 0) |
| | | { |
| | | // 正式运行程序放开 |
| | |
| | | var jsonData = JsonConvert.SerializeObject(outDtoList); |
| | | 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") |
| | |
| | | //if (wcsModel.StatusCode == -1) |
| | | //{ |
| | | // new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); |
| | | // throw new Exception(wcsModel.Msg); |
| | | // throw Oops.Bah(wcsModel.Msg); |
| | | //} |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | return outDtoList; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw new Exception(e.Message); |
| | | } |
| | | #endregion |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | throw new Exception(e.Message); |
| | | } |
| | | } |
| | | |
| | | //盘点出库完成 |