| | |
| | | using WMS.BLL.SysServer; |
| | | using System.Threading.Tasks; |
| | | using System.Security.Policy; |
| | | using WMS.Entity.DataEntity; |
| | | using WMS.Entity.BllQualityEntity; |
| | | |
| | | namespace WMS.BLL.BllAsnServer |
| | | { |
| | |
| | | string sqlString = string.Empty; |
| | | string sqlDetailStr = string.Empty; |
| | | //0:成品入库 1:采购入库 2:中间品入库 3:退货入库 4:车间余料入库 5:其它入库 6:代储入库 7:寄存入库 |
| | | var TypeLot = "1, 2, 5, 6, 7"; //批次可为空单据类型 |
| | | var TypeLot = "2, 5, 6, 7"; //批次可为空单据类型 |
| | | |
| | | var addOder = new List<ResponseOrderTaskModel>(); |
| | | try |
| | |
| | | } |
| | | //判断是否为采购入库单据或车间余料退回入库 |
| | | // 0:成品入库 1:采购入库 2:中间品入库 3:退货入库 4:车间余料退回入库 5:其它入库 6:代储入库 7:寄存入库 |
| | | if (model.Type == "1" || model.Type == "4") |
| | | { |
| | | if (!string.IsNullOrWhiteSpace(model.LotNo)) |
| | | { |
| | | throw new Exception("采购入库或余料退回不可输入批次,不可编辑!"); |
| | | } |
| | | } |
| | | //if (model.Type == "1" || model.Type == "4") |
| | | //{ |
| | | // if (!string.IsNullOrWhiteSpace(model.LotNo)) |
| | | // { |
| | | // throw new Exception("采购入库或余料退回不可输入批次,不可编辑!"); |
| | | // } |
| | | //} |
| | | |
| | | sqlString += "Insert into BllArrivalNotice (ASNNo,Type,Origin,CustomerNo,"; |
| | | sqlString += "CustomerName,LotNo,LotText,SupplierLot,CreateUser) values ( "; |
| | |
| | | //判断是否为不限制批次单据 |
| | | if (!TypeLot.Contains(model.Type)) |
| | | { |
| | | strMessage = "-1:批次号不可为空;"; |
| | | strMessage = "-1:进厂编号不可为空;"; |
| | | continue; |
| | | } |
| | | } |
| | | if (detailModel.LotNo.Length!= 10) |
| | | { |
| | | strMessage = "-1:进厂编号位数长度有误;"; |
| | | continue; |
| | | } |
| | | if (model.Type == "1" && string.IsNullOrWhiteSpace(detailModel.SupplierLot)) //采购到货单原厂批号(供货批次)不能为空 |
| | | { |
| | | strMessage = "-1:原厂批号不可为空;"; |
| | | continue; |
| | | } |
| | | // 判断是否已存在当前明细 |
| | | string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' "; |
| | |
| | | var com = new Common().GetRowCount(sqlCount); |
| | | if (com > 0) |
| | | { |
| | | strMessage = "-1:物料和批次号重复;"; |
| | | strMessage = "-1:物料和进厂编号重复;"; |
| | | continue; |
| | | } |
| | | if (detailModel.Price == null) |
| | |
| | | sqlDetailStr += $"'{detailModel.LotNo}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', "; |
| | | sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');"; |
| | | |
| | | if (model.Type == "1") |
| | | if (model.Type == "0")//成品入库单下发WCS信息 |
| | | { |
| | | addOder.Add(new ResponseOrderTaskModel() |
| | | { |
| | |
| | | { |
| | | new OperationASNServer().AddLogOperationAsn("入库作业", "入库单据", model.ASNNo, "添加", $"添加了单据号为{model.ASNNo}的单据信息", Convert.ToInt32(model.CreateUser)); |
| | | |
| | | if (addOder.Count > 0) |
| | | { |
| | | // 正式运行程序放开 |
| | | var jsonData = JsonConvert.SerializeObject(addOder); |
| | | string response = ""; |
| | | //if (addOder.Count > 0) |
| | | //{ |
| | | // // 正式运行程序放开 |
| | | // var jsonData = JsonConvert.SerializeObject(addOder); |
| | | // string response = ""; |
| | | |
| | | try |
| | | { |
| | | var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | //给WCS下发入库单信息 |
| | | response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS"); |
| | | // try |
| | | // { |
| | | // var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | // //给WCS下发入库单信息 |
| | | // response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS"); |
| | | |
| | | //////解析返回数据 |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | if (wcsModel.StatusCode == 0) |
| | | { |
| | | // //////解析返回数据 |
| | | // var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | // if (wcsModel.StatusCode == 0) |
| | | // { |
| | | |
| | | } |
| | | if (wcsModel.StatusCode == -1) |
| | | { |
| | | // } |
| | | // if (wcsModel.StatusCode == -1) |
| | | // { |
| | | |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | // } |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // throw new Exception(ex.Message); |
| | | // } |
| | | //} |
| | | return strMessage; |
| | | } |
| | | else |
| | |
| | | { |
| | | throw new Exception("复核失败,复核人员和关闭订单人员不能相同!"); |
| | | } |
| | | //单据类型是 成品入库或采购入库 判断入库物料是否合格 |
| | | if (notice.Type == "0" || notice.Type == "1") |
| | | { |
| | | foreach (var item in detail) |
| | | { |
| | | var instStatus = Db.Queryable<BllQualityInspect>().Count(m => m.IsDel == "0" && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.IsQualified == "1"); |
| | | if (instStatus == 0) |
| | | { |
| | | throw new Exception($"{item.SkuNo}、{item.LotNo}质量状态不是合格的,不能回传!"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | var list = new List<AsnDetail>(); |
| | | foreach (var d in detail) |
| | | { |