| | |
| | | .LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id) |
| | | .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id) |
| | | .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id) |
| | | .Select((a, b, c, d) => new ExportNoticeDto() |
| | | .LeftJoin<SysUserInfor>((a, b, c, d,e) => a.CheckUser == e.Id) |
| | | .Select((a, b, c, d,e) => new ExportNoticeDto() |
| | | { |
| | | Id = a.Id, |
| | | SONo = a.SONo, |
| | |
| | | CreateUserName = c.RealName, |
| | | UpdateUserName = c.RealName, |
| | | CreateTime = a.CreateTime, |
| | | UpdateTime = a.UpdateTime |
| | | UpdateTime = a.UpdateTime, |
| | | |
| | | CheckUserName=e.RealName, |
| | | CheckTime=a.CheckTime |
| | | }) |
| | | .OrderByDescending(a => a.CreateTime) |
| | | .ToOffsetPage(page, limit, ref total); |
| | |
| | | { |
| | | throw new Exception("参数异常,请检查状态是否为执行完成或订单关闭/已上传"); |
| | | } |
| | | if (userId == notice.UpdateUser) |
| | | { |
| | | throw new Exception("复核失败,复核人员和关闭订单人员不能相同!"); |
| | | } |
| | | //出库单明细 |
| | | var comDetail = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).Select(m => m.BoxNo3).ToList(); |
| | | Db.BeginTran();//开启事务 |
| | |
| | | //} |
| | | |
| | | var dom = HttpHelper.EncodeParsToFuMa(comDetail, "ceshi", "ExInfoXml"); |
| | | |
| | | notice.Status = "6";//状态:已上传 |
| | | notice.CheckTime = DateTime.Now;//复核时间 |
| | | notice.CheckUser = userId;//复核人 |
| | | Db.Updateable(notice).ExecuteCommand(); |
| | | ////添加操作日志记录 |
| | | //var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", notice.SONo, "关单", $"关闭了单据号为{notice.SONo}的单据信息", userId); |
| | | var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", notice.SONo, "复核", $"复核了单据号为{notice.SONo}的单据信息", userId); |
| | | |
| | | Db.CommitTran(); |
| | | return dom; |
| | |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 判断出库是否需要拆箱 |
| | | /// </summary> |
| | | /// <param name="soNo"></param> |
| | | /// <returns></returns> |
| | | public string IsNeedUnpack(string soNo) |
| | | { |
| | | string result = "0";//是否需要拆箱,0:否 1:是 |
| | | if (string.IsNullOrEmpty(soNo)) |
| | | { |
| | | throw new Exception("未找到对应出库单!"); |
| | | } |
| | | try |
| | | { |
| | | var notice = Db.Queryable<BllExportNotice>().First(w => w.IsDel == "0" && w.SONo == soNo); |
| | | if (notice == null) |
| | | { |
| | | throw new Exception("未找到对应出库单!"); |
| | | } |
| | | //物料编码表 |
| | | var skuList = Db.Queryable<SysMaterials>().Where(w => w.IsDel == "0"); |
| | | //包装表 |
| | | var packagList= Db.Queryable<SysPackag>().Where(w => w.IsDel == "0"); |
| | | //出库分配信息 |
| | | var allotList = Db.Queryable<BllExportAllot>().Where(w => w.IsDel == "0" && w.SONo == soNo).ToList(); |
| | | foreach (var item in allotList) |
| | | { |
| | | var skuInfo = skuList.First(w => w.SkuNo == item.SkuNo); |
| | | if (skuInfo == null) |
| | | { |
| | | throw new Exception("物料信息不存在!"); |
| | | } |
| | | var packagInfo = packagList.First(w => w.PackagNo == skuInfo.PackagNo); |
| | | if (packagInfo == null) |
| | | { |
| | | throw new Exception("包装信息不存在!"); |
| | | } |
| | | if (packagInfo.L2Name == "箱") |
| | | { |
| | | if (item.Qty % (decimal)packagInfo.L2Num != 0)//能整除说明不用拆箱,不能整除说明需要拆箱 |
| | | { |
| | | result = "1";//需要拆箱 |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | } |
| | | } |