public dynamic GetProcessWorkSteps(string id) { var pQuery = ParamQuery.Instance().Select("*").AndWhere("ProcessRouteID", id); var re = new PRS_ProcessWorkStepsService().GetModelList(pQuery); return(re); }
public dynamic Get(RequestWrapper query) { query.LoadSettingXmlString(@" <settings defaultOrderBy='id'> <select>*</select> <from>PRS_ProcessWorkSteps</from> <where defaultForAll='true' defaultCp='equal' defaultIgnoreEmpty='true' > <field name='WorkStepsName' cp='equal'></field> </where> </settings>"); var service = new PRS_ProcessWorkStepsService(); var pQuery = query.ToParamQuery(); var result = service.GetDynamicListWithPaging(pQuery); return(result); }
public void Edit(dynamic data) { var listWrapper = RequestWrapper.Instance().LoadSettingXmlString(@" <settings> <table> PRS_ProcessWorkSteps </table> <where> <field name='ID' cp='equal'></field> </where> </settings>"); var service = new PRS_ProcessWorkStepsService(); //var result = service.Edit(null, listWrapper, data); //记录更改工时定额的工步的ID string ids = ""; //用于保存直接更改工艺路线工时的脚本字符串 string mids = ""; //用于保存更改工步工时定额的脚本数据 string updateSteps = ""; //判断更改后执行结果的受影响行数 int updatePPR = 0; if (data.list.updated.ToString() != "[]") { foreach (JToken row in data["list"]["updated"].Children()) { ids += row["ID"]; //获取工步ID var getId = row["ID"] ?? ""; if (!string.IsNullOrEmpty(getId.ToString())) { //工步ID不为空时,生成更改工步工时定额的脚本 ids += ","; updateSteps += string.Format(@"UPDATE a SET ManHours= '{0}' FROM PRS_ProcessWorkSteps a WHERE ID ='{1}'", row["ManHours"].ToString(), row["ID"].ToString()); } //当工步ID为空时表示是一个没有工步的工序,直接生成更改工艺路线工时定额的脚本 else { mids += string.Format(@"UPDATE a SET ManHour= '{0}' FROM MES_BN_ProductProcessRoute a WHERE ID ='{1}'", row["ManHours"].ToString(), row["mID"].ToString()); updatePPR++; } } if (ids.Length > 0) { //将多个工步id最后的,号去掉,此时保存的id字符串可以直接作为sql中的in条件 ids = ids.Remove(ids.Length - 1, 1); } } int isFalse = 0; var db = Db.Context("Mms"); using (db.UseTransaction(true)) { //有工步的工艺路线,编辑工步工时同时将工序工时汇总 if (!string.IsNullOrEmpty(ids)) { //执行编辑工步工时定额,判断返回值 var res = db.Sql(updateSteps).Execute(); if (res < updatePPR) { db.Rollback(); isFalse++; } //使用更改工步关联工序的工时定额的存储过程 var document = db.StoredProcedure("CalcProcessManHour") .Parameter("stepids", ids); int ret = document.Execute(); if (ret <= 0) { db.Rollback(); isFalse++; } } //没有工步的工序,直接更改工序中的工时定额。 if (!string.IsNullOrEmpty(mids)) { var res = db.Sql(mids).Execute(); if (res < updatePPR) { db.Rollback(); isFalse++; } } if (isFalse > 0) { db.Rollback(); } else { db.Commit(); } } }