| | |
| | | var result = new ApiAction(); |
| | | try |
| | | { |
| | | var nodeIds = routeData.nodes.Select(x => x.ID).ToList(); |
| | | var actIds = routeData.acts.Select(x => x.ID).ToList(); |
| | | //如果工序节点ID没在产品工序里就新增 |
| | | List<MES_PROD_OPER> operList = new List<MES_PROD_OPER>(); |
| | | foreach (var node in routeData.nodes) |
| | | { |
| | | if (!Db.Queryable<MES_PROD_OPER>().Any(q => q.NODE_ID == node.ID && q.ROT_ID == routeData.route.ID)) |
| | | { |
| | | operList.Add(new() |
| | | { |
| | | PROD_CODE = routeData.route.PROD_CODE, |
| | | CUST_CODE = routeData.route.CUST_CODE, |
| | | NODE_ID = node.ID, |
| | | NODE_NAME = node.NODE_NAME, |
| | | ROT_ID = node.ROT_ID, |
| | | OPER_CODE = node.OPER_CODE, |
| | | IS_ACTIVE = "Y", |
| | | CAN_SKIP = "N", |
| | | IS_CALC_FPY = "N", |
| | | ALLOW_DFT_IN = "N", |
| | | IS_INPUT = "N", |
| | | IS_OUTPUT = "N", |
| | | }); |
| | | } |
| | | } |
| | | //如果行为节点ID没在产品行为里就新增 |
| | | List<MES_PROD_ACTION> actList = new List<MES_PROD_ACTION>(); |
| | | foreach (var act in routeData.acts) |
| | | { |
| | | if (!Db.Queryable<MES_PROD_ACTION>().Any(q => q.NODE_ID == act.ID && q.ROT_ID == routeData.route.ID)) |
| | | { |
| | | actList.Add(new() |
| | | { |
| | | PROD_CODE = routeData.route.PROD_CODE, |
| | | CUST_CODE = routeData.route.CUST_CODE, |
| | | NODE_ID = act.NODE_ID, |
| | | ACT_ID = act.ID, |
| | | ACT_TYPE = act.ACT_TYPE, |
| | | ROT_ID = act.ROT_ID, |
| | | ACT_CODE = act.ACT_CODE, |
| | | RULE_CODE = "", |
| | | ITEM_CODE = "", |
| | | TEST_CODE = "", |
| | | SAPL_CODE = "", |
| | | LABEL_CODE = "", |
| | | PKG_CODE = "", |
| | | IS_ACTIVE = "Y", |
| | | SETUP_FINISH = "N", |
| | | }); |
| | | } |
| | | } |
| | | var db = Db; |
| | | var dbTran = db.UseTran(() => |
| | | { |
| | |
| | | y.AsInsertable.ExecuteCommand(); |
| | | y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); |
| | | } |
| | | db.Deleteable<MES_PROD_OPER>().Where(x => x.PROD_CODE == routeData.route.PROD_CODE && !SqlFunc.ContainsArray(nodeIds, x.NODE_ID)).ExecuteCommand(); |
| | | db.Deleteable<MES_PROD_ACTION>().Where(x => x.PROD_CODE == routeData.route.PROD_CODE && !SqlFunc.ContainsArray(nodeIds, x.NODE_ID)).ExecuteCommand(); |
| | | db.Deleteable<MES_PROD_ACTION>().Where(x => x.PROD_CODE == routeData.route.PROD_CODE && !SqlFunc.ContainsArray(actIds, x.ACT_ID)).ExecuteCommand(); |
| | | db.Deleteable<MES_ROUTE_NODE>(false).Where(x => x.ROT_ID == routeData.route.ID).ExecuteCommand(); |
| | | db.Deleteable<MES_ROUTE_EDGE>(false).Where(x => x.ROT_ID == routeData.route.ID).ExecuteCommand(); |
| | | db.Deleteable<MES_ROUTE_NODE_ACT>(false).Where(x => x.ROT_ID == routeData.route.ID).ExecuteCommand(); |
| | |
| | | if (routeData.acts != null) |
| | | { |
| | | db.Insertable(routeData.acts).ExecuteCommand(); |
| | | } |
| | | if (operList.Count > 0) |
| | | { |
| | | db.Insertable(operList).ExecuteCommand(); |
| | | } |
| | | if (actList.Count > 0) |
| | | { |
| | | db.Insertable(actList).ExecuteCommand(); |
| | | } |
| | | }); |
| | | if (!dbTran.IsSuccess) |
| | |
| | | var result = new ApiAction(); |
| | | try |
| | | { |
| | | var nodeIds = routeData.nodes.Select(x => x.ID).ToList(); |
| | | var actIds = routeData.acts.Select(x => x.ID).ToList(); |
| | | //如果工序节点ID没在工单工序里就新增 |
| | | List<MES_WO_OPER> operList = new List<MES_WO_OPER>(); |
| | | foreach (var node in routeData.nodes) |
| | | { |
| | | if (!Db.Queryable<MES_WO_OPER>().Any(q => q.NODE_ID == node.ID)) |
| | | { |
| | | operList.Add(new() |
| | | { |
| | | WORK_ORDER = node.WORK_ORDER, |
| | | PROD_CODE = node.PROD_CODE, |
| | | CUST_CODE = node.CUST_CODE, |
| | | NODE_ID = node.ID, |
| | | NODE_NAME = node.NODE_NAME, |
| | | ROT_ID = node.ROT_ID, |
| | | OPER_CODE = node.OPER_CODE, |
| | | IS_ACTIVE = "Y", |
| | | CAN_SKIP = "N", |
| | | IS_CALC_FPY = "N", |
| | | ALLOW_DFT_IN = "N", |
| | | IS_INPUT = "N", |
| | | IS_OUTPUT = "N", |
| | | }); |
| | | } |
| | | } |
| | | //如果行为节点ID没在工单行为里就新增 |
| | | List<MES_WO_ACTION> actList = new List<MES_WO_ACTION>(); |
| | | foreach (var act in routeData.acts) |
| | | { |
| | | if (!Db.Queryable<MES_WO_ACTION>().Any(q => q.NODE_ID == act.ID)) |
| | | { |
| | | actList.Add(new() |
| | | { |
| | | WORK_ORDER = act.WORK_ORDER, |
| | | PROD_CODE = act.PROD_CODE, |
| | | CUST_CODE = act.CUST_CODE, |
| | | NODE_ID = act.NODE_ID, |
| | | ACT_ID = act.ID, |
| | | ACT_TYPE = act.ACT_TYPE, |
| | | ROT_ID = act.ROT_ID, |
| | | ACT_CODE = act.ACT_CODE, |
| | | RULE_CODE = "", |
| | | ITEM_CODE = "", |
| | | TEST_CODE = "", |
| | | SAPL_CODE = "", |
| | | LABEL_CODE = "", |
| | | PKG_CODE = "", |
| | | IS_ACTIVE = "Y", |
| | | SETUP_FINISH = "N", |
| | | }); |
| | | } |
| | | } |
| | | var db = Db; |
| | | var dbTran = db.UseTran(() => |
| | | { |
| | |
| | | // y.AsInsertable.ExecuteCommand(); |
| | | // y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); |
| | | //} |
| | | db.Deleteable<MES_WO_OPER>().Where(x => x.WORK_ORDER == routeData.route.WORK_ORDER && !SqlFunc.ContainsArray(nodeIds, x.NODE_ID)).ExecuteCommand(); |
| | | db.Deleteable<MES_WO_ACTION>().Where(x => x.WORK_ORDER == routeData.route.WORK_ORDER && !SqlFunc.ContainsArray(nodeIds, x.NODE_ID)).ExecuteCommand(); |
| | | db.Deleteable<MES_WO_ACTION>().Where(x => x.WORK_ORDER == routeData.route.WORK_ORDER && !SqlFunc.ContainsArray(actIds, x.ACT_ID)).ExecuteCommand(); |
| | | db.Deleteable<MES_WO_NODE>(false).Where(x => x.WORK_ORDER == routeData.route.WORK_ORDER).ExecuteCommand(); |
| | | db.Deleteable<MES_WO_EDGE>(false).Where(x => x.WORK_ORDER == routeData.route.WORK_ORDER).ExecuteCommand(); |
| | | db.Deleteable<MES_WO_NODE_ACT>(false).Where(x => x.WORK_ORDER == routeData.route.WORK_ORDER).ExecuteCommand(); |
| | |
| | | { |
| | | db.Insertable(routeData.acts).ExecuteCommand(); |
| | | } |
| | | if (operList.Count>0) |
| | | { |
| | | db.Insertable(operList).ExecuteCommand(); |
| | | } |
| | | if (actList.Count > 0) |
| | | { |
| | | db.Insertable(actList).ExecuteCommand(); |
| | | } |
| | | }); |
| | | if (!dbTran.IsSuccess) |
| | | { |