diff --git a/APPMD/QMAPP.MD.DAL/WorkCellDAL.cs b/APPMD/QMAPP.MD.DAL/WorkCellDAL.cs index 53d74f0..1f5f1cf 100644 --- a/APPMD/QMAPP.MD.DAL/WorkCellDAL.cs +++ b/APPMD/QMAPP.MD.DAL/WorkCellDAL.cs @@ -830,7 +830,51 @@ namespace QMAPP.MD.DAL #endregion + public List GetEndWorkCell(string pbomcode) + { + + List list = new List(); + if (string.IsNullOrEmpty(pbomcode)) + { + return list; + } + string sql = string.Format(@"SELECT seq.* FROM T_MD_PBOM pm,T_MD_MATERIAL_ROUTE mr,T_MD_PROCESS_ROUTE_WORKCELL rw,T_MD_PROCESS_ROUTE_WORKCELL_SEQ seq + where pm.PBOM_CODE='{0}' and pm.MATERIAL_CODE=mr.MATERIAL_CODE + and mr.ROUTE_CODE=rw.ROUTE_CODE and rw.WORKCELL_CODE=seq.WORKCELL_CODE", pbomcode); + + using (IDataSession session = AppDataFactory.CreateMainSession()) + { + list = session.GetList(sql, new List().ToArray()).ToList(); + } + if (list != null && list.Count >0) + { + List list2 = new List(); + var list3 = list.Where(u => u.PRE_WORKCELL_CODE == null || u.PRE_WORKCELL_CODE == "").ToList(); + var t = list3[0]; + list.Remove(t); + var endlist = GetEndCellPID(list, t.WORKCELL_CODE); + list2.Add(endlist); + return list2; + } + + return list; + } + public ProcessRouteWorkCellSeq GetEndCellPID(List processRouteWorkCellSeqs, string PRE_WORKCELL_CODE) + { + if (processRouteWorkCellSeqs.Count == 1) + return processRouteWorkCellSeqs[0]; + foreach (var SEQ in processRouteWorkCellSeqs) + { + if (SEQ.PRE_WORKCELL_CODE == PRE_WORKCELL_CODE) + { + processRouteWorkCellSeqs.Remove(SEQ); + return GetEndCellPID(processRouteWorkCellSeqs, SEQ.WORKCELL_CODE); + } + } + return null; + } + } } diff --git a/APPQ5/QMAPP.FJC.BLL/FIS/DashBoardPlanBLL.cs b/APPQ5/QMAPP.FJC.BLL/FIS/DashBoardPlanBLL.cs index 1e6a736..1287eb2 100644 --- a/APPQ5/QMAPP.FJC.BLL/FIS/DashBoardPlanBLL.cs +++ b/APPQ5/QMAPP.FJC.BLL/FIS/DashBoardPlanBLL.cs @@ -594,6 +594,124 @@ namespace QMAPP.FJC.BLL.FIS return workOrderDt; } + /// + /// 发布信息--直接发布到最后一个工位 + /// + /// + /// 发布个数 + public DataResult PutOutEndWorkCell(string strs) + { + string[] list = strs.Split(":".ToCharArray()); + DataResult result = new DataResult(); + try + { + OrderPlanDAL orderPlandal = new OrderPlanDAL(); + + List validorderPlanList = new List(); + List putOutPlanList = new List(); + + foreach (string str in list) + { + OrderPlan op = orderPlandal.Get(new OrderPlan { PID = str }); + + if (op.PLAN_STATE != EnumGeter.PLANSTATE.INIT.GetHashCode().ToString()) + { + validorderPlanList.Add(op); + } + + putOutPlanList.Add(op); + + } + + if (validorderPlanList.Count > 0) + { + result.IsSuccess = false; + result.Msg = "只有初始状态下的订单能够进行发布!"; + + return result; + } + + DataTable totalDt = GetWorkOrderTable(); + foreach (var op in putOutPlanList) + { + op.PLAN_STATE = EnumGeter.PLANSTATE.COMMIT.GetHashCode().ToString(); + op.UPDATEUSER = this.LoginUser.UserID; + totalDt = this.PutOutOrderPlanEndWorkCell(op, totalDt); + } + + using (IDataSession session = AppDataFactory.CreateMainSession()) + { + IDbConnection dbConn = DbManager.MainConnectionInfo.Connection; + IDbTransaction ids = dbConn.BeginTransaction(); + + orderPlandal.BaseSession = session; + foreach (var op in putOutPlanList) + { + orderPlandal.Update(op); + } + + session.DbHelper.BulkCopyData(totalDt, "T_PP_WORKORDER", dbConn, ids); + ids.Commit(); + } + + result.IsSuccess = true; + return result; + } + catch (Exception ex) + { + throw ex; + } + } + + /// + /// 发布信息--直接发布到最后一个工位 + /// + /// 信息 + /// 发布个数 + public DataTable PutOutOrderPlanEndWorkCell(OrderPlan info, DataTable workOrderDt) + { + + WorkCellDAL workCelldal = new WorkCellDAL(); + string pbomcode = info.PBOM_CODE; + List list = workCelldal.GetEndWorkCell(pbomcode); + + var dicPRI = new DictManageBLL(Dict.DictKind.ORDERPRI); + + //注入派工单信息 + for (int i = 0; i < info.QTY; i++) + { + foreach (var seq in list) + { + DataRow workOrder = workOrderDt.NewRow(); + + workOrder["PID"] = Guid.NewGuid().ToString(); + workOrder["ORDERPLANID"] = info.PID; + workOrder["ORDERPLAN_NO"] = (info.PLAN_NO.ToString() + (i + 1).ToString().PadLeft(4, '0')); + workOrder["ORDER_TYPE"] = info.PLANSOURCE; + workOrder["SEQ"] = (i + 1).ToString().PadLeft(6, '0'); + workOrder["MATERIAL_CODE"] = info.MATERIAL_CODE; + workOrder["PBOM_CODE"] = info.PBOM_CODE; + workOrder["QTY"] = 1; + workOrder["COMPLETE_QTY"] = 0; + workOrder["PLAN_DATE"] = info.PLAN_DATE; + workOrder["SHIFT_CODE"] = info.SHIFT_CODE; + workOrder["WORKCENTER_CODE"] = info.WORKCENTER_CODE; + workOrder["WORKCELL_CODE"] = seq.WORKCELL_CODE; + workOrder["WORKLOC_CODE"] = ""; + workOrder["REMARK"] = ""; + workOrder["EQPT_NAME"] = ""; + workOrder["EQPT_CODE"] = ""; + workOrder["STATE"] = EnumGeter.WORKPLANSTATE.INIT.GetHashCode().ToString(); + workOrder["PRI"] = dicPRI.GetDictValue(info.PLANSOURCE); + + workOrderDt.Rows.Add(workOrder); + } + + } + + return workOrderDt; + } + public List PutOutOrderPlan(OrderPlan info,int number,int lastIndex) { List wolist = new List(); diff --git a/APPQ5/QMAPP.FJC.Web/Content/Xml/Dictionary.xml b/APPQ5/QMAPP.FJC.Web/Content/Xml/Dictionary.xml index 531a9bb..f01d0d6 100644 --- a/APPQ5/QMAPP.FJC.Web/Content/Xml/Dictionary.xml +++ b/APPQ5/QMAPP.FJC.Web/Content/Xml/Dictionary.xml @@ -562,5 +562,6 @@