| | |
| | | using Newtonsoft.Json; |
| | | using Tiger.IBusiness; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Tiger.Model.Entitys.MES.BizMesWoBatch; |
| | | |
| | | namespace Tiger.Business.MES |
| | | { |
| | |
| | | } |
| | | return await Task.FromResult(result); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 下发时保存批次工单信息 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<ApiAction> SaveMesBatchWo(SaveWoBatchInput input) |
| | | { |
| | | var result = new ApiAction(); |
| | | try |
| | | { |
| | | //保存前的判断,并生成批次号 |
| | | var _wo = await Biz.Db.Queryable<BIZ_MES_WO>().Where(x => x.ORDER_NO == input.Wo.ORDER_NO).FirstAsync(); |
| | | //if (_wo.STATUS > (int)BIZ_MES_WO.STATUSs.Init) |
| | | //{ |
| | | // result.IsSuccessed = false; |
| | | // result.LocaleMsg = new($"工单不是初始化状态,不能下发!"); |
| | | // return result; |
| | | //} |
| | | if (_wo.STATUS > (int)BIZ_MES_WO.STATUSs.Working) |
| | | { |
| | | result.IsSuccessed = false; |
| | | result.LocaleMsg = new($"工单不是初始化状态,不能下发!"); |
| | | return result; |
| | | } |
| | | var batchs = await Biz.Db.Queryable<BIZ_MES_WO_BATCH>().Where(x => x.ORDER_NO == input.Wo.ORDER_NO).ToListAsync(); |
| | | if (batchs.Count > 0 && batchs.Sum(x => x.PLAN_QTY) + input.WoBatch.PLAN_QTY > _wo.PLAN_QTY) |
| | | { |
| | | result.IsSuccessed = false; |
| | | result.LocaleMsg = new($"工单下发的数量超过工单计划数量,不能下发!"); |
| | | return result; |
| | | } |
| | | var _batchWos = await Biz.Db.Queryable<V_MES_WO_BATCH>().Where(x => x.ORDER_NO == input.WoBatch.ORDER_NO).ToListAsync(); |
| | | if (_batchWos.Count > 0) |
| | | { |
| | | input.WoBatch.BATCH_NO = $"{input.WoBatch.ORDER_NO}-{(_batchWos.Max(x => x.BATCH) + 1).ToString("D2")}"; |
| | | } |
| | | else |
| | | { |
| | | input.WoBatch.BATCH_NO = $"{input.WoBatch.ORDER_NO}-01"; |
| | | } |
| | | |
| | | var db = Biz.Db; |
| | | var dbTran = db.UseTran(() => |
| | | { |
| | | var y = db.Storageable(input.Wo) |
| | | .WhereColumns(t => new { t.ORDER_NO, t.GHOST_ROW }) |
| | | .ToStorage(); |
| | | y.AsInsertable.ExecuteCommand(); |
| | | y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); |
| | | |
| | | db.Insertable(input.WoBatch).ExecuteCommand(); |
| | | }); |
| | | if (!dbTran.IsSuccess) |
| | | { |
| | | result.IsSuccessed = false; |
| | | result.LocaleMsg = new($"保存批次工单异常"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | result.CatchExceptionWithLog(ex, "保存批次工单异常"); |
| | | } |
| | | return result; |
| | | } |
| | | } |
| | | } |