| | |
| | | { |
| | | throw new Exception("未查询到单据信息"); |
| | | } |
| | | if (notice.Status != "5") |
| | | { |
| | | throw new Exception("复核失败,单据非关闭状态"); |
| | | } |
| | | var detail = Db.Queryable<BllExportNoticeDetail>().Where(m => m.SONo == notice.SONo && m.IsDel == "0").ToList(); |
| | | if (detail.Count == 0) |
| | | { |
| | | throw new Exception("未查询到单据明细信息"); |
| | | } |
| | | if (userId == notice.UpdateUser) |
| | | { |
| | | throw new Exception("复核失败,复核人员和关闭订单人员不能相同!"); |
| | | } |
| | | var list = new List<SoDetail>(); |
| | | foreach (var d in detail) |
| | |
| | | OrderCode = notice.OrderCode, |
| | | SoDetails = list |
| | | }; |
| | | // 通过接口发送至erp |
| | | var jsonData = JsonConvert.SerializeObject(soInfo); |
| | | #region 通过接口发送至erp |
| | | //系统对接后放开 |
| | | /*var jsonData = JsonConvert.SerializeObject(soInfo); |
| | | |
| | | var response = HttpHelper.DoPost(url, jsonData, "出库单完成上传", "ERP"); |
| | | |
| | | //解析返回数据 |
| | | var obj = JsonConvert.DeserializeObject<ErpModel>(response); |
| | | |
| | | var obj = JsonConvert.DeserializeObject<ErpModel>(response);//解析返回数据 |
| | | if (obj.Success != 0) |
| | | { |
| | | throw new Exception("上传失败" + obj.Message); |
| | | } |
| | | }*/ |
| | | #endregion |
| | | |
| | | notice.Status = "6"; |
| | | notice.UpdateTime = DateTime.Now; |
| | | notice.UpdateUser = userId; |
| | | Db.Updateable(notice).ExecuteCommand(); |
| | | |
| | | new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", notice.SONo, "复核", $"复核了单据号为{notice.SONo}的单据信息", userId); |
| | | return true; |
| | | } |
| | | catch (Exception e) |
| | |
| | | var plnList = new List<string>() { "100099" }; |
| | | var skuList = new List<string>(); |
| | | var sku = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0" && !plnList.Contains(m.SkuNo)); //排除空托盘的物料集合 |
| | | var inspectStatus = "1";//库存内物料的质检状态 |
| | | var skuTypeC = new List<string>() { "0" };//标准 |
| | | var skuTypeY = new List<string>() { "1" };//非标 |
| | | if (type == "0" || type == "2") //标准 |
| | | string skuType = string.Empty; |
| | | switch (type)//0:原料 1:包材 2:成品 3:耗材 4:半成品 |
| | | { |
| | | inspectStatus = "0"; |
| | | //if (type == "0") //成品 |
| | | //{ |
| | | skuList = sku.Where(m => inspectStatus==m.IsControlled).Select(m => m.SkuNo).ToList(); |
| | | //} |
| | | |
| | | //if (type == "1") //原料 |
| | | //{ |
| | | // skuList = sku.Where(m => skuTypeY.Contains(m.Type)).Select(m => m.SkuNo).ToList(); |
| | | //} |
| | | case "0"://成品入库 |
| | | skuType = "(2)"; |
| | | break; |
| | | case "1"://领料出库 |
| | | skuType = "(0,1,3)"; |
| | | break; |
| | | case "2"://抽检出库 |
| | | skuType = "(2)"; |
| | | break; |
| | | case "3"://物料取样出库 |
| | | skuType = "(0)"; |
| | | break; |
| | | case "4"://不合格品出库 |
| | | skuType = "(2)"; |
| | | break; |
| | | case "5"://中间品出库 |
| | | skuType = "(4)"; |
| | | break; |
| | | case "6"://代储出库 |
| | | skuType = "(2)"; |
| | | break; |
| | | default: //其它出库 |
| | | skuType = "(0,1,2,3,4)"; |
| | | break; |
| | | } |
| | | else if (type == "1" || type == "3") //非标 |
| | | skuList = sku.Where(m => skuType.Contains(m.Type)).Select(m => m.SkuNo).ToList(); |
| | | if (skuList == null) |
| | | { |
| | | inspectStatus = "1"; |
| | | //if (type == "2") //成品 |
| | | //{ |
| | | skuList = sku.Where(m => inspectStatus==m.IsControlled).Select(m => m.SkuNo).ToList(); |
| | | //} |
| | | |
| | | //if (type == "3") //原料 |
| | | //{ |
| | | // skuList = sku.Where(m => skuTypeY.Contains(m.Type)).Select(m => m.SkuNo).ToList(); |
| | | //} |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("单据状态有误"); |
| | | throw new Exception("未查到对应出库类型的物料"); |
| | | } |
| | | //skuList = sku.Select(m => m.SkuNo).ToList(); |
| | | var stockRst = new StockServer(); |
| | |
| | | { |
| | | 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; |