| | |
| | | using Newtonsoft.Json; |
| | | using Tiger.IBusiness; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Tiger.Model.Entitys.WMS.DTOS; |
| | | using static Tiger.Model.BIZ_MES_WO; |
| | | |
| | | namespace Tiger.Business |
| | | { |
| | |
| | | } |
| | | return await Task.FromResult(result); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 保存节点岗位资源 |
| | | /// </summary> |
| | | /// <param name="nodePost"></param> |
| | | /// <returns></returns> |
| | | public async Task<ApiAction> SaveRouteNodePost(List<MES_ROUTE_NODE_POST> nodePost) { |
| | | var result = new ApiAction(); |
| | | try |
| | | { |
| | | var db = Db; |
| | | var dbTran = db.UseTran(() => |
| | | { |
| | | var y = db.Storageable(nodePost) |
| | | .ToStorage(); |
| | | y.AsInsertable.ExecuteCommand(); |
| | | y.AsUpdateable.ExecuteCommand(); |
| | | }); |
| | | if (!dbTran.IsSuccess) |
| | | { |
| | | result.IsSuccessed = false; |
| | | result.LocaleMsg = new($"保存节点岗位资源数据异常"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | result.CatchExceptionWithLog(ex, "保存节点岗位资源数据异常"); |
| | | } |
| | | return await Task.FromResult(result); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 删除产品绑定的工艺路线 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="NotImplementedException"></exception> |
| | | public async Task<ApiAction> DeleteProdRoute(DelProdRotInput input) |
| | | { |
| | | var result = new ApiAction(); |
| | | try |
| | | { |
| | | var expable = Expressionable.Create<MES_PROD_ACTION>(); |
| | | var expableOper = Expressionable.Create<MES_PROD_OPER>(); |
| | | if (!string.IsNullOrEmpty(input.rotId)) |
| | | { |
| | | expable.And(x => x.ROT_ID == input.rotId); |
| | | expableOper.And(x => x.ROT_ID == input.rotId); |
| | | } |
| | | else if (!string.IsNullOrEmpty(input.rotCode)) |
| | | { |
| | | var item = await Db.Queryable<MES_ROUTE>().Where(x => x.ROT_CODE == input.rotCode).FirstAsync(); |
| | | if (item != null) |
| | | { |
| | | expable.And(x => x.ROT_ID == item.ID); |
| | | expableOper.And(x => x.ROT_ID == item.ID); |
| | | } |
| | | } |
| | | if (!string.IsNullOrEmpty(input.prodCode)) |
| | | { |
| | | expable.And(x => x.PROD_CODE == input.prodCode); |
| | | expableOper.And(x => x.PROD_CODE == input.prodCode); |
| | | } |
| | | var exp = expable.ToExpression(); |
| | | var expOper = expableOper.ToExpression(); |
| | | var db = Db; |
| | | var dbTran = db.UseTran(() => |
| | | { |
| | | db.Deleteable<MES_PROD_ACTION>().Where(exp).ExecuteCommand(); |
| | | db.Deleteable<MES_PROD_OPER>().Where(expOper).ExecuteCommand(); |
| | | }); |
| | | if (!dbTran.IsSuccess) |
| | | { |
| | | result.IsSuccessed = false; |
| | | result.LocaleMsg = new($"删除工艺路线异常"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | result.CatchExceptionWithLog(ex, "删除工艺路线异常"); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 删除工单绑定的工艺路线 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="NotImplementedException"></exception> |
| | | public async Task<ApiAction> DeleteWoRoute(DelWoRotInput input) |
| | | { |
| | | var result = new ApiAction(); |
| | | try |
| | | { |
| | | var bizMesWo = await Db.Queryable<BIZ_MES_WO>().Where(x=> x.ORDER_NO == input.wo).FirstAsync(); |
| | | if (bizMesWo != null && bizMesWo.STATUS > (int)STATUSs.Imported && bizMesWo.STATUS < (int)STATUSs.Closed) |
| | | { |
| | | result.IsSuccessed = false; |
| | | result.LocaleMsg = new($"工单状态为[{EnumHelper.GetDesc(EnumHelper.GetEnum<STATUSs>(bizMesWo.STATUS))}],不能删除工艺路线"); |
| | | return result; |
| | | } |
| | | var expableNode = Expressionable.Create<MES_WO_NODE>(); |
| | | var expableEdge = Expressionable.Create<MES_WO_EDGE>(); |
| | | var expableAct = Expressionable.Create<MES_WO_NODE_ACT>(); |
| | | var expable = Expressionable.Create<MES_WO_ACTION>(); |
| | | var expableOper = Expressionable.Create<MES_WO_OPER>(); |
| | | var _rotId = input.rotId; |
| | | if (!string.IsNullOrEmpty(input.rotId)) |
| | | { |
| | | expable.And(x => x.ROT_ID == input.rotId); |
| | | expableOper.And(x => x.ROT_ID == input.rotId); |
| | | expableNode.And(x => x.ROT_ID == input.rotId); |
| | | expableEdge.And(x => x.ROT_ID == input.rotId); |
| | | expableAct.And(x => x.ROT_ID == input.rotId); |
| | | } |
| | | else if (!string.IsNullOrEmpty(input.rotCode)) |
| | | { |
| | | var item = await Db.Queryable<MES_ROUTE>().Where(x => x.ROT_CODE == input.rotCode).FirstAsync(); |
| | | if (item != null) |
| | | { |
| | | _rotId = item.ID; |
| | | expable.And(x => x.ROT_ID == item.ID); |
| | | expableOper.And(x => x.ROT_ID == item.ID); |
| | | expableNode.And(x => x.ROT_ID == item.ID); |
| | | expableEdge.And(x => x.ROT_ID == item.ID); |
| | | expableAct.And(x => x.ROT_ID == item.ID); |
| | | } |
| | | } |
| | | //如果除了删除的当前工艺路线不存在其他绑定的工艺路线,则更新状态 |
| | | if (bizMesWo != null && !Db.Queryable<MES_WO_NODE>().Where(x => x.WORK_ORDER == input.wo && x.ROT_ID != _rotId).Any()) { |
| | | bizMesWo.ROUTE_STATUS = (int)ROUTE_STATUSs.WaitSet; |
| | | bizMesWo.STATUS = (int)STATUSs.Init; |
| | | bizMesWo.ROUTE_CODE = ""; |
| | | } |
| | | if (!string.IsNullOrEmpty(input.wo)) |
| | | { |
| | | expable.And(x => x.WORK_ORDER == input.wo); |
| | | expableOper.And(x => x.WORK_ORDER == input.wo); |
| | | expableNode.And(x => x.WORK_ORDER == input.wo); |
| | | expableEdge.And(x => x.WORK_ORDER == input.wo); |
| | | expableAct.And(x => x.WORK_ORDER == input.wo); |
| | | } |
| | | var exp = expable.ToExpression(); |
| | | var expOper = expableOper.ToExpression(); |
| | | var expNode = expableNode.ToExpression(); |
| | | var expEdge = expableEdge.ToExpression(); |
| | | var expAct = expableAct.ToExpression(); |
| | | var db = Db; |
| | | var dbTran = db.UseTran(() => |
| | | { |
| | | db.Deleteable<MES_WO_ACTION>().Where(exp).ExecuteCommand(); |
| | | db.Deleteable<MES_WO_OPER>().Where(expOper).ExecuteCommand(); |
| | | db.Deleteable<MES_WO_NODE>().Where(expNode).ExecuteCommand(); |
| | | db.Deleteable<MES_WO_EDGE>().Where(expEdge).ExecuteCommand(); |
| | | db.Deleteable<MES_WO_NODE_ACT>().Where(expAct).ExecuteCommand(); |
| | | db.Updateable(bizMesWo).ExecuteCommand(); |
| | | }); |
| | | if (!dbTran.IsSuccess) |
| | | { |
| | | result.IsSuccessed = false; |
| | | result.LocaleMsg = new($"删除工艺路线异常"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | result.CatchExceptionWithLog(ex, "删除工艺路线异常"); |
| | | } |
| | | return result; |
| | | } |
| | | } |
| | | } |
| | | } |