| | |
| | | using System.Security.Policy; |
| | | using WMS.Entity.DataEntity; |
| | | using WMS.Entity.BllQualityEntity; |
| | | using Microsoft.VisualBasic; |
| | | |
| | | namespace WMS.BLL.BllAsnServer |
| | | { |
| | |
| | | continue; |
| | | } |
| | | } |
| | | if (!string.IsNullOrEmpty(detailModel.IsBale)) |
| | | { |
| | | detailModel.IsBale = detailModel.IsBale == "是" ? "1" : "0"; |
| | | if (detailModel.IsBale != "1" && detailModel.IsBale != "0") |
| | | { |
| | | //判断是否裹包 |
| | | strMessage = "-1:裹包字段只能录入“是”或“否”;"; |
| | | continue; |
| | | } |
| | | } |
| | | if (model.Type != "7") |
| | | { |
| | | if (!TypeLot.Contains(model.Type)) |
| | | { |
| | | if (detailModel.LotNo.Length != 10) |
| | | if (detailModel.LotNo.Length != 12 && detailModel.LotNo.Length != 11 && detailModel.LotNo.Length != 10) |
| | | { |
| | | strMessage = "-1:进厂编号位数长度有误;"; |
| | | continue; |
| | |
| | | |
| | | if (model.Type == "0")//成品入库单下发WCS信息 |
| | | { |
| | | //计算出总箱数 |
| | | var packmodel = Db.Queryable<SysPackag>().First(w=>w.PackagNo == detailModel.SkuNo); |
| | | int xqty = 0; |
| | | if (packmodel.L1Name == "箱") { |
| | | xqty = (int)detailModel.Qty; |
| | | } |
| | | if (packmodel.L2Name == "箱") |
| | | { |
| | | xqty = (int)(detailModel.Qty / packmodel.L2Num); |
| | | } |
| | | if (packmodel.L3Name == "箱") |
| | | { |
| | | xqty = (int)(detailModel.Qty/ packmodel.L2Num / packmodel.L3Num); |
| | | } |
| | | addOder.Add(new ResponseOrderTaskModel() |
| | | { |
| | | OrderNo = model.ASNNo, |
| | |
| | | SkuNo = detailModel.SkuNo, |
| | | SkuName = detailModel.SkuName, |
| | | BoxType = detailModel.Standard, |
| | | Qty = (int)detailModel.Qty, |
| | | Qty = xqty, |
| | | TaskType = 0 |
| | | }); |
| | | } |
| | |
| | | { |
| | | var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | //给WCS下发入库单信息 |
| | | response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS"); |
| | | response = HttpHelper.DoPost(url, jsonData, "下发给WCS入库命令", "WCS"); |
| | | |
| | | //解析返回数据 |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | |
| | | return strMessage; |
| | | } |
| | | |
| | | |
| | | sqlString += $"select * from BllArrivalNotice where ASNNo = '{model.ASNNo}' and isDel = '0';"; |
| | | var asnInfo = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString).FirstOrDefault(); |
| | | if (asnInfo.Status != "0") |
| | |
| | | { |
| | | strMessage = "-1:批次号不可为空;"; |
| | | continue; |
| | | } |
| | | if (!string.IsNullOrEmpty(detailModel.IsBale)) |
| | | { |
| | | detailModel.IsBale = detailModel.IsBale == "是" ? "1" : "0"; |
| | | if (detailModel.IsBale != "1" && detailModel.IsBale != "0") |
| | | { |
| | | //判断是否裹包 |
| | | strMessage = "-1:裹包字段只能录入“是”或“否”;"; |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | if (model.Type == "2") // 2:中间品入库 |
| | |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public HttpReturnModel HttpCreateAsn(AsnInfo model) |
| | | public HttpReturnModel HttpCreateAsn(AsnInfo model, string url) |
| | | { |
| | | try |
| | | { |
| | | var addOder = new List<ResponseOrderTaskModel>(); |
| | | var resultModel = new HttpReturnModel() { Success = "-1", Message = "" }; |
| | | if (string.IsNullOrEmpty(model.AsnType)) |
| | | { |
| | | resultModel.Message = "单据类型不可为空!"; |
| | | return resultModel; |
| | | } |
| | | if (string.IsNullOrEmpty(model.Customer)) |
| | | { |
| | | resultModel.Message = "客户不可为空!"; |
| | | return resultModel; |
| | | } |
| | | //if (string.IsNullOrEmpty(model.Customer)) |
| | | //{ |
| | | // resultModel.Message = "客户不可为空!"; |
| | | // return resultModel; |
| | | //} |
| | | if (string.IsNullOrEmpty(model.OrderCode)) |
| | | { |
| | | resultModel.Message = "上游系统单号不可为空!"; |
| | |
| | | } |
| | | |
| | | // 根据客户编号获取客户名称 |
| | | var custname = ""; |
| | | var CustomerModel = Db.Queryable<SysCustomer>().First(it => it.CustomerNo == model.Customer && it.IsDel == "0"); |
| | | if (CustomerModel == null) |
| | | if (CustomerModel != null) |
| | | { |
| | | resultModel.Message = "客户编号不存在!"; |
| | | return resultModel; |
| | | custname = CustomerModel.CustomerName; |
| | | //CustomerModel.CustomerName = ""; |
| | | //resultModel.Message = "客户编号不存在!"; |
| | | //return resultModel; |
| | | } |
| | | |
| | | // 入库总表信息 |
| | |
| | | Type = model.AsnType, |
| | | Origin = string.IsNullOrEmpty(model.Origin) ? "ERP" : model.Origin, |
| | | CustomerNo = model.Customer, |
| | | CustomerName = CustomerModel.CustomerName, |
| | | CustomerName = custname, |
| | | OrderCode = model.OrderCode, |
| | | }; |
| | | |
| | |
| | | }; |
| | | |
| | | detailModels.Add(detailModel); |
| | | |
| | | if (model.AsnType == "0")//成品入库单下发WCS信息 |
| | | { |
| | | //计算出总箱数 |
| | | var packmodel = Db.Queryable<SysPackag>().First(w => w.PackagNo == detailModel.SkuNo); |
| | | int xqty = 0; |
| | | if (packmodel.L1Name == "箱") |
| | | { |
| | | xqty = (int)detailModel.Qty; |
| | | } |
| | | if (packmodel.L2Name == "箱") |
| | | { |
| | | xqty = (int)(detailModel.Qty / packmodel.L2Num); |
| | | } |
| | | if (packmodel.L3Name == "箱") |
| | | { |
| | | xqty = (int)(detailModel.Qty / packmodel.L2Num / packmodel.L3Num); |
| | | } |
| | | addOder.Add(new ResponseOrderTaskModel() |
| | | { |
| | | OrderNo = asnNo, |
| | | LotNo = asnDetailModel.LotNo, |
| | | SkuNo = asnDetailModel.SkuNo, |
| | | SkuName = skuModel.SkuName, |
| | | BoxType = skuModel.Standard, |
| | | Qty = (int)asnDetailModel.Qty, |
| | | TaskType = 0 |
| | | }); |
| | | } |
| | | } |
| | | |
| | | |
| | | Db.BeginTran(); |
| | | // 插入入库单总表 |
| | |
| | | // 插入入库单明细表 |
| | | Db.Insertable(detailModels).ExecuteCommand(); |
| | | Db.CommitTran(); |
| | | |
| | | |
| | | 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"); |
| | | |
| | | //解析返回数据 |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | if (wcsModel.StatusCode == 0) |
| | | { |
| | | |
| | | } |
| | | if (wcsModel.StatusCode == -1) |
| | | { |
| | | throw new Exception($"下发WCS失败:{wcsModel.Msg}"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | resultModel.Success = "0"; |
| | | resultModel.Message = "成功"; |
| | |
| | | if (mesList.Contains(notice.Type)) // mes |
| | | { |
| | | //获取令牌 |
| | | var token = new Token().GetMesToken(mesTokenUrl); |
| | | //var token = new Token().GetMesToken(mesTokenUrl); //测试不使用TOKEN,正式运行时放开 |
| | | var token = ""; |
| | | Dictionary<string, string> mesDic = new Dictionary<string, string>() |
| | | { |
| | | {"Authorization",token } |
| | |
| | | var response = HttpHelper.DoPost(mesUrl, jsonData, "入库单完成上传", "MES", mesDic); |
| | | |
| | | var obj = JsonConvert.DeserializeObject<MesModel>(response);//解析返回数据 |
| | | if (obj.status != "0") |
| | | if (obj.status != "success") |
| | | { |
| | | throw new Exception("上传失败" + obj.message); |
| | | } |