| | |
| | | return WebResponseContent.Instance.Error($"{upperOrderNo}颿åå·å·²åå¨"); |
| | | } |
| | | } |
| | | saveModel.DetailData[0].Add("orderDetailStatus", OrderDetailStatusEnum.New.ObjToInt()); |
| | | if (saveModel.DetailData.Count>0) |
| | | { |
| | | for (int i = 0; i < saveModel.DetailData.Count; i++) |
| | | { |
| | | saveModel.DetailData[i].Add("orderDetailStatus", OrderDetailStatusEnum.New.ObjToInt()); |
| | | } |
| | | } |
| | | return base.AddData(saveModel); |
| | | } |
| | | public WebResponseContent GetOutboundOrders(SaveModel saveModel) |
| | |
| | | int pageNo = saveModel.MainData["pageNo"].ObjToInt(); |
| | | string? orderNo = saveModel.MainData["orderNo"].ToString(); |
| | | int warehouseId = saveModel.MainData["warehouseId"].ObjToInt(); |
| | | List<Dt_OutboundOrder> dt_ReceiveOrders = new List<Dt_OutboundOrder>(); |
| | | List<Dt_OutboundOrder> _OutboundOrders = new List<Dt_OutboundOrder>(); |
| | | if (string.IsNullOrEmpty(orderNo)) |
| | | { |
| | | dt_ReceiveOrders = Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderStatus < OutLockStockStatusEnum.åºåºå®æ.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 5); |
| | | _OutboundOrders = Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderStatus < OutOrderStatusEnum.åºåºå®æ.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 5); |
| | | } |
| | | else |
| | | { |
| | | dt_ReceiveOrders = Db.Queryable<Dt_OutboundOrder>().Where(x => (x.OrderNo.Contains(orderNo)) && x.OrderStatus < OutLockStockStatusEnum.åºåºå®æ.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 5); |
| | | _OutboundOrders = Db.Queryable<Dt_OutboundOrder>().Where(x => (x.OrderNo.Contains(orderNo)) && x.OrderStatus < OutOrderStatusEnum.åºåºå®æ.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 5); |
| | | } |
| | | |
| | | content.OK(data: dt_ReceiveOrders); |
| | | content.OK(data: _OutboundOrders); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | _unitOfWorkManage.CommitTran(); |
| | | |
| | | #region åºåºå®æä¸æ¥ERP |
| | | if (outboundOrder.OrderStatus == OutOrderStatusEnum.åºåºå®æ.ObjToInt()) |
| | | //çäº§é¢æ,ç åé¢æï¼æ åé¢æï¼æ¨éERPåºåº |
| | | if (outboundOrder.OrderStatus == OutOrderStatusEnum.åºåºå®æ.ObjToInt() && outboundOrder.OrderType==OutOrderTypeEnum.Issue.ObjToInt()) |
| | | _invokeERPService.InvokeOutStandardsApi(GetERPIssueModel(outboundOrder, warehouse.WarehouseCode)); |
| | | #endregion |
| | | content.OK(); |
| | |
| | | ERPPickItemModel pickItemModel = new ERPPickItemModel() |
| | | { |
| | | Lotno = item.BatchNo, |
| | | Qty = item.AssignQuantity.ObjToInt().ToString(), |
| | | Qty = item.AssignQuantity.ToString(), |
| | | Location = WarehouseCode |
| | | }; |
| | | //è·ååºåºåæç» |
| | |
| | | Deptno = outboundOrder.DepartmentCode, |
| | | Deptname = outboundOrder.DepartmentName, |
| | | Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), |
| | | Createuser = string.IsNullOrEmpty(Createuser) ? Createuser : "admin", |
| | | Createuser = Createuser, |
| | | Issitem = new List<ERPIssueItemModel>() { issueItemModel }, |
| | | }; |
| | | //æ´æ°åæåå· |
| | | outboundOrder.UpFLOrderNo = issueModel.Code; |
| | | BaseDal.UpdateData(outboundOrder); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | Dt_OutboundOrder oldOutboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == model.OrderNo && x.OrderStatus < OutOrderStatusEnum.å
³é.ObjToInt()).Includes(x => x.Details).OrderBy(x => x.CreateDate).First(); |
| | | Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == model.MCode); |
| | | |
| | | if (materielInfo == null) |
| | | { |
| | | DelOutOrder(oldOutboundOrder); |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ç©æä¿¡æ¯"); |
| | | } |
| | | |
| | | Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseCode == model.WaId); |
| | | if (warehouse == null) |
| | | { |
| | | DelOutOrder(oldOutboundOrder); |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»åºä¿¡æ¯"); |
| | | } |
| | | |
| | | Dt_OutboundOrder oldOutboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == model.OrderNo).Includes(x => x.Details).First(); |
| | | |
| | | if (model.Way == 1) |
| | | { |
| | |
| | | { |
| | | if (oldOutboundOrder.Details.FirstOrDefault(x => x.RowNo == Convert.ToInt32(model.RowNo)) != null) |
| | | { |
| | | DelOutOrder(oldOutboundOrder); |
| | | return WebResponseContent.Instance.Error($"该æç»è¡å·å·²åå¨"); |
| | | } |
| | | if (oldOutboundOrder.WarehouseId != warehouse.WarehouseId) |
| | | { |
| | | DelOutOrder(oldOutboundOrder); |
| | | return WebResponseContent.Instance.Error($"ä»åºä¸ä¸è´"); |
| | | } |
| | | else |
| | |
| | | BatchNo = model.MLot, |
| | | MaterielCode = model.MCode, |
| | | MaterielName = materielInfo.MaterielName, |
| | | MaterielSpec=materielInfo.MaterielSpec, |
| | | OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(), |
| | | OrderQuantity = model.Qty, |
| | | OrderId = oldOutboundOrder.Id |
| | |
| | | RowNo = Convert.ToInt32(model.RowNo), |
| | | BatchNo = model.MLot, |
| | | MaterielCode = model.MCode, |
| | | MaterielSpec = materielInfo.MaterielSpec, |
| | | MaterielName = materielInfo.MaterielName, |
| | | OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(), |
| | | OrderQuantity = model.Qty, |
| | |
| | | DepartmentName = model.DepartmentName, |
| | | Details = new List<Dt_OutboundOrderDetail> { outboundOrderDetail }, |
| | | Remark = model.Node |
| | | |
| | | }; |
| | | outboundOrder.OrderType = model.OType switch |
| | | { |
| | | 1 or 2 or 3=> OutOrderTypeEnum.Issue.ObjToInt(), |
| | | 4=>OutOrderTypeEnum.Quality.ObjToInt(), |
| | | 5=>OutOrderTypeEnum.Allocate.ObjToInt(), |
| | | 6=>OutOrderTypeEnum.MaintenanceIssue.ObjToInt(), |
| | | 7=>OutOrderTypeEnum.SaleOut.ObjToInt(), |
| | | 8=>OutOrderTypeEnum.Rework.ObjToInt(), |
| | | _=>0 |
| | | }; |
| | | Db.InsertNav(outboundOrder).Include(x => x.Details).ExecuteCommand(); |
| | | } |
| | |
| | | RowNo = Convert.ToInt32(model.RowNo), |
| | | BatchNo = model.MLot, |
| | | MaterielCode = model.MCode, |
| | | MaterielSpec = materielInfo.MaterielSpec, |
| | | MaterielName = materielInfo.MaterielName, |
| | | OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(), |
| | | OrderQuantity = model.Qty, |
| | |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥åºåºå"); |
| | | } |
| | | _unitOfWorkManage.BeginTran(); |
| | | BaseDal.DeleteData(oldOutboundOrder); |
| | | _outboundOrderDetailRepository.DeleteData(oldOutboundOrder.Details); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// è¯¥åæ®å¤±è´¥è¿è¡å é¤ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public void DelOutOrder(Dt_OutboundOrder outboundOrder) |
| | | { |
| | | try |
| | | { |
| | | if (outboundOrder != null && outboundOrder.Details.Count > 0) |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | _outboundOrderRepository.DeleteAndMoveIntoHty(outboundOrder, OperateTypeEnum.èªå¨å é¤); |
| | | _outboundOrderDetailRepository.DeleteAndMoveIntoHty(outboundOrder.Details, OperateTypeEnum.èªå¨å é¤); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | //䏿¥åºåºå®æ |
| | |
| | | issueModel = new ERPIssueModel() |
| | | { |
| | | UniqueTag = id.ToString(), |
| | | Code = CreateCodeByRule(nameof(RuleCodeEnum.FLCodeRule)),//æµè¯ |
| | | Code = CreateCodeByRule(nameof(RuleCodeEnum.FLCodeRule)), |
| | | WarehouseCode = warehouse.WarehouseCode, |
| | | Docremark = "", |
| | | Deptno = outboundOrder.DepartmentCode, |
| | |
| | | Createuser = outboundOrder.Creater, |
| | | Issitem = new List<ERPIssueItemModel>() { issueItemModel }, |
| | | }; |
| | | //æ´æ°åæåå· |
| | | outboundOrder.UpFLOrderNo = issueModel.Code; |
| | | BaseDal.UpdateData(outboundOrder); |
| | | _invokeERPService.InvokeOutStandardsApi(issueModel); |
| | | } |
| | | else |
| | |
| | | // Issitem = new List<ERPIssueItemModel>() { issueItemModel }, |
| | | //}; |
| | | #endregion |
| | | } |
| | | |
| | | if (stockInfos.Count > 0) |
| | | { |
| | | _stockService.StockInfoService.Repository.UpdateData(stockInfos); |
| | | } |
| | | else |
| | | { |
| | | _outStockLockInfoService.Repository.UpdateData(_OutStockLockInfos); |
| | | } |
| | | //åºåºå®æä¸æ¥ERP æµè¯æ³¨é |
| | | if (outboundOrder.OrderStatus == OutOrderStatusEnum.åºåºå®æ.ObjToInt()) |
| | | { |
| | | issueModel = GetERPIssueModel(outboundOrder, warehouse.WarehouseCode); |
| | | _invokeERPService.InvokeOutStandardsApi(issueModel); |
| | | if (stockInfos.Count > 0) |
| | | { |
| | | _stockService.StockInfoService.Repository.UpdateData(stockInfos); |
| | | } |
| | | else |
| | | { |
| | | _outStockLockInfoService.Repository.UpdateData(_OutStockLockInfos); |
| | | } |
| | | //åºåºå®æä¸æ¥ERP æµè¯æ³¨é |
| | | if (outboundOrder.OrderStatus == OutOrderStatusEnum.åºåºå®æ.ObjToInt()) |
| | | { |
| | | issueModel = GetERPIssueModel(outboundOrder, warehouse.WarehouseCode); |
| | | _invokeERPService.InvokeOutStandardsApi(issueModel); |
| | | } |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | |
| | | throw new ArgumentNullException(nameof(ruleCode)); |
| | | SqlSugarClient sugarClient = new SqlSugarClient(new ConnectionConfig |
| | | { |
| | | IsAutoCloseConnection = false, |
| | | IsAutoCloseConnection = true, |
| | | DbType = DbType.SqlServer, |
| | | ConnectionString = DBContext.ConnectionString |
| | | }); |
| | |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// æ ¹æ®åºåºåæ¨éERPç³»ç» |
| | | /// </summary> |
| | | /// <param name="outId"></param> |
| | | /// <param name="WarehouseCode"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent PushERPOutBound(int outId, string WarehouseCode) |
| | | { |
| | | WebResponseContent content=new WebResponseContent(); |
| | | try |
| | | { |
| | | //è·ååºåºå |
| | | Dt_OutboundOrder outboundOrder = Db.Queryable<Dt_OutboundOrder>().Where(x => x.Id == outId).Includes(x => x.Details).First(); |
| | | if (outboundOrder == null) |
| | | { |
| | | return content.Error("åºåºåä¸åå¨"); |
| | | } |
| | | if (outboundOrder.Details.Count!=(outboundOrder.Details.Where(x=>x.OrderDetailStatus==OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count)||outboundOrder.OrderStatus!=OutOrderStatusEnum.åºåºå®æ.ObjToInt()) |
| | | { |
| | | return content.Error("该åºåºåæªå®æ"); |
| | | } |
| | | ERPIssueModel issueModel = GetERPIssueModel(outboundOrder, WarehouseCode); |
| | | string response=_invokeERPService.InvokeOutStandardsApi(issueModel); |
| | | return content.OK(response); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | public WebResponseContent OutUpOrderGetFLOrder() |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | //è·ååºåºå |
| | | List<Dt_OutboundOrder> outboundOrders = BaseDal.QueryData(x => x.OrderStatus == OutOrderStatusEnum.åºåºå®æ.ObjToInt() && x.UpFLOrderNo == null); |
| | | List<Sys_Log> logs = BaseDal.Db.Queryable<Sys_Log>().Where(x => x.RequestParam.Contains("颿åºåºéç¥å") && x.Id > 14606).ToList(); |
| | | foreach (var item in outboundOrders) |
| | | { |
| | | Sys_Log? log = logs.FirstOrDefault(x=>x.RequestParam.Contains(item.UpperOrderNo)); |
| | | if (log == null) { continue; } |
| | | ERPBaseModel <ERPIssueModel> baseModel= log.RequestParam.DeserializeObject<ERPBaseModel<ERPIssueModel>>(); |
| | | item.UpFLOrderNo = baseModel.Data.Code; |
| | | } |
| | | BaseDal.UpdateData(outboundOrders); |
| | | content.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | } |
| | | } |