| | |
| | | data.ProductionTime = boxInfo.ProductionTime!= null ? ((DateTime)boxInfo.ProductionTime).ToString("yyyy-MM-dd"):""; |
| | | data.ExpirationTime = boxInfo.ExpirationTime != null ? ((DateTime)boxInfo.ExpirationTime).ToString("yyyy-MM-dd") : ""; |
| | | data.StoreTime = boxInfo.StoreTime != null ? ((DateTime)boxInfo.StoreTime).ToString("yyyy-MM-dd") : ""; |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty); |
| | | var qty = detail.Qty - labelQty; |
| | | data.Qty = qty.ToString(); |
| | | data.SupplierLot = detail.SupplierLot; |
| | | return data; |
| | | } |
| | | catch (Exception e) |
| | |
| | | break; |
| | | case "6"://代储入库 |
| | | skuType = "(0,1,2,3,4)"; |
| | | IsPack = 2; //不贴 |
| | | //IsPack = 2; //不贴 |
| | | break; |
| | | case "7"://寄存入库 |
| | | //skuType = "(3)"; |
| | |
| | | continue; |
| | | } |
| | | } |
| | | if (model.Type != "7") |
| | | { |
| | | if (!TypeLot.Contains(model.Type)) |
| | | { |
| | | if (detailModel.LotNo.Length != 12 && detailModel.LotNo.Length != 11 && detailModel.LotNo.Length != 10) |
| | | { |
| | | strMessage = "-1:进厂编号位数长度有误;"; |
| | | continue; |
| | | } |
| | | } |
| | | //if (model.Type != "7") |
| | | //{ |
| | | // if (!TypeLot.Contains(model.Type)) |
| | | // { |
| | | // if (detailModel.LotNo.Length != 12 && detailModel.LotNo.Length != 11 && detailModel.LotNo.Length != 10) |
| | | // { |
| | | // strMessage = "-1:进厂编号位数长度有误;"; |
| | | // continue; |
| | | // } |
| | | // } |
| | | |
| | | } |
| | | //} |
| | | |
| | | if (model.Type == "1" && string.IsNullOrWhiteSpace(detailModel.SupplierLot)) //采购到货单原厂批号(供货批次)不能为空 |
| | | { |
| | |
| | | |
| | | 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 |
| | | }); |
| | | } |
| | |
| | | /// </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)) |
| | | { |
| | |
| | | CustomerNo = model.Customer, |
| | | CustomerName = custname, |
| | | OrderCode = model.OrderCode, |
| | | Status = "0", |
| | | }; |
| | | |
| | | // 入库明细表信息 |
| | |
| | | LotNo = asnDetailModel.LotNo, |
| | | LotText = "", |
| | | Qty = (decimal)asnDetailModel.Qty, |
| | | PackagNo = asnDetailModel.PackagNo, |
| | | FactQty = 0, |
| | | CompleteQty = 0, |
| | | Price = 0, |
| | | Money = 0, |
| | | IsBale = "", |
| | | IsBelt = "", |
| | | PackagNo = skuModel.PackagNo, |
| | | SupplierLot = asnDetailModel.SupplierLot, |
| | | Status = "0", |
| | | CreateUser = 0 |
| | | |
| | | }; |
| | | |
| | | 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 = "成功"; |
| | |
| | | { |
| | | throw new Exception("复核失败,复核人员和关闭订单人员不能相同!"); |
| | | } |
| | | if (date.Id == notice.CreateUser) |
| | | { |
| | | throw new Exception("复核失败,复核人员和创建订单人员不能相同!"); |
| | | } |
| | | //单据类型是 成品入库或采购入库 判断入库物料是否合格 |
| | | if (notice.Type == "0" || notice.Type == "1") |
| | | { |
| | |
| | | }; |
| | | |
| | | #region 通过接口发送至erp 或 mes |
| | | //系统对接后放开 |
| | | ////系统对接后放开 |
| | | var jsonData = JsonConvert.SerializeObject(asnInfo); |
| | | var mesList = new List<string>() { "0", "4" }; //0 成品入库 4余料退回入库 |
| | | var erpList = new List<string>() { "1", "2", "3" }; //1 采购入库 2中间品入库 3 退货入库 |
| | |
| | | var mesData = new FinishAsnModel() |
| | | { |
| | | no = asnInfo.OrderCode, |
| | | qty = asnInfo.AsnDetails.Sum(m=>m.Qty) |
| | | qty = asnInfo.AsnDetails.Sum(m => m.Qty) |
| | | }; |
| | | jsonData = JsonConvert.SerializeObject(mesData); |
| | | //调用接口 |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | #endregion |
| | | |
| | | notice.Status = "4"; |