| | |
| | | using Tiger.Model.Minsun; |
| | | using Org.BouncyCastle.Asn1.Tsp; |
| | | using Tiger.Model.Entitys.MES.Position; |
| | | using Apache.NMS.ActiveMQ.Commands; |
| | | using System.Security.Cryptography; |
| | | |
| | | namespace Tiger.Business.MES |
| | | { |
| | |
| | | CUST_PREFIX = di["OutBarHead"] == null ? "" : di["OutBarHead"].ToString(), |
| | | SALES_CONTRACT = di["Contracts"] == null ? "" : di["Contracts"].ToString(), |
| | | }; |
| | | if (!Biz.Db.Queryable<BIZ_MES_WO>().Any(x => x.ORDER_NO == woItem.ORDER_NO && (x.STATUS > 0 || x.ROUTE_STATUS > 0))) |
| | | if (!Biz.Db.Queryable<BIZ_MES_WO>().Any(x => x.ORDER_NO == woItem.ORDER_NO && (x.STATUS > BIZ_MES_WO.STATUSs.Init.GetValue() || x.ROUTE_STATUS > BIZ_MES_WO.ROUTE_STATUSs.WaitSet.GetValue()))) |
| | | { |
| | | items.Add(woItem); |
| | | } |
| | |
| | | Logger.Scheduler.Error(action.Message); |
| | | } |
| | | Logger.Scheduler.Info($"工单信息存入数据库,总数:[{items.Count}]"); |
| | | |
| | | if (action.IsSuccessed && items.Count > 0) |
| | | { |
| | | //异步跑绑定工艺路线 |
| | | Work.DoAsync(() => |
| | | { |
| | | List<BIZ_MES_WO> woList = new(); |
| | | foreach (var wo in items) { |
| | | //只有工单状态为初始化和工艺状态为待配置才自动绑定工艺路线 |
| | | if (wo.STATUS == BIZ_MES_WO.STATUSs.Init.GetValue() && wo.ROUTE_STATUS == BIZ_MES_WO.ROUTE_STATUSs.WaitSet.GetValue()) { |
| | | try |
| | | { |
| | | var rot = Biz.Db.Queryable<MES_PROD_OPER>() |
| | | .GroupBy(x => new { x.PROD_CODE, x.ROT_ID}) |
| | | .Where(q => q.PROD_CODE == wo.ITEM_CODE) |
| | | .Select(it => new { |
| | | PROD_CODE = it.PROD_CODE, |
| | | ROT_ID = it.ROT_ID |
| | | }) |
| | | .First(); |
| | | if (rot != null) |
| | | { |
| | | SugarParameter[] pars = Biz.Db.Ado.GetParameters(new { ROT_ID = rot.ROT_ID, WO = wo.ORDER_NO, ERR_CODE = 0, ERR_MSG = "" }); |
| | | pars[2].Direction = System.Data.ParameterDirection.Output; |
| | | pars[3].Direction = System.Data.ParameterDirection.Output; |
| | | Biz.Db.Ado.UseStoredProcedure().ExecuteCommand("SP_MES_PROD2WO", pars); |
| | | if (pars[2].Value.ToInt32() == 0) |
| | | { |
| | | Logger.Scheduler.Info($"工单[{wo.ORDER_NO}]绑定工艺路线[{rot.ROT_ID}]成功,{pars[3].Value.ToString()}"); |
| | | wo.ROUTE_STATUS = BIZ_MES_WO.ROUTE_STATUSs.Finish.GetValue(); |
| | | woList.Add(wo); |
| | | } |
| | | else |
| | | { |
| | | Logger.Scheduler.Error(pars[3].Value.ToString()); |
| | | } |
| | | } |
| | | } |
| | | catch (System.Exception ex) |
| | | { |
| | | Logger.Scheduler.Error(ex.Message); |
| | | } |
| | | } |
| | | } |
| | | var _db = Biz.Db; |
| | | var dbTran = _db.UseTran(() => |
| | | { |
| | | if (woList.Any()) |
| | | { |
| | | var s = _db.Storageable(woList, "U9C") |
| | | .WhereColumns(t => new { t.ORDER_NO, t.GHOST_ROW }) |
| | | .ToStorage(); |
| | | s.AsInsertable.ExecuteCommand(); |
| | | s.AsUpdateable.IgnoreColumns(x => x.ID).UpdateColumns(x => new { x.ROUTE_STATUS}).ExecuteCommand(); |
| | | } |
| | | |
| | | }); |
| | | if (!dbTran.IsSuccess) |
| | | { |
| | | Logger.Scheduler.Error(dbTran.ErrorException.Message); |
| | | } |
| | | }); |
| | | } |
| | | return action; |
| | | } |
| | | |