예제 #1
0
        /// <summary>
        /// 下达部署生产任务
        /// </summary>
        /// <param name="ri">待生产的毛坯(其是下达生产任务的依据)</param>
        /// <param name="prodTask">待下达生产任务相关基本信息</param>
        /// <returns></returns>
        public int DeployProdTask(Raw_Inv rawInv, Prod_Task prodTask)
        {
            int flag = 0;

            Prod_CmdDetail pc = pcInstance.GetModel(string.Format(" AND Cmd_Code='{0}'",prodTask.TaskDetail_CmdCode));

            try
            {
                //Instance.idb.BeginTransaction();

                //riInstance.Instance.idb.BeginTransaction(Instance.idb.GetTransaction());

                prodTask.Task_Stat = OperationTypeEnum.ProdTaskStatEnum.Deploying.ToString();
                //下达任务数量  --》与生产命令所需数量 不一定相等
                //prodTask.TaskDetail_Num = pc.CmdDetail_Num;

                if (AddProdTask(prodTask) > 0)
                {
                    //下达任务成功后回写毛坯库存表
                    riInstance.DeployRawInv(rawInv.RI_Code, prodTask.TaskDetail_Num);
                    flag= 1;
                }

                //Instance.idb.CommitTransaction();
            }
            catch (Exception e)
            {
                Instance.idb.RollbackTransaction();
            }

            return flag;
        }
예제 #2
0
        public List<Prod_PlanProd> DeployPlanWithNoSubmit(Prod_Task prodTask, int DeployNum)
        {
            List<Prod_PlanProd> planList = new List<Prod_PlanProd>();
            for (int i = 0; i < DeployNum; i++)
            {
                //生产计划
                Prod_PlanProd prodPlan = new Prod_PlanProd();
                //prodPlan.PlanProd_Code = invInstance.CreateInvCode();
                //prodPlan.PlanProd_PlanCode = CreateProdPlanCode();

                //任务编码
                prodPlan.PlanProd_TaskCode = prodTask.Task_Code;
                //生产命令编码
                prodPlan.PlanProd_CmdCode = prodTask.TaskDetail_CmdCode;
                //零件图号
                prodPlan.PlanProd_PartNo = prodTask.TaskDetail_PartNo;
                //零件名称
                prodPlan.PlanProd_PartName = prodTask.TaskDetail_PartName;
                //数量
                prodPlan.PlanProd_Num = 1;
                prodPlan.PlanProd_Begin = prodTask.TaskDetail_PlanBegin;
                prodPlan.PlanProd_End = prodTask.TaskDetail_PlanEnd;
                //编制人 完工数量  长票编号 确认人 等未赋值
                prodPlan.PlanProd_FStat = OperationTypeEnum.ProdPlanStatEnum.Planing.ToString();
                planList.Add(prodPlan);
            }

            return planList;
        }
예제 #3
0
        /// <summary>
        /// 下发生产计划
        /// </summary>
        /// <param name="prodTask"></param>
        /// <param name="ppList"></param>
        /// <returns></returns>
        public bool DeployPlanAndRoadNodes(Prod_Task prodTask, List<Prod_PlanProd> ppList)
        {
            bool flag = true;
            //工艺路线模板列表
            List<Road_Nodes> nodeList = rnInstance.GetRoadNodesByComponents(prodTask.TaskDetail_PartNo);

            try
            {
                Instance.idb.BeginTransaction();
                ptInstance.Instance.idb.BeginTransaction(Instance.idb.GetTransaction());
                invInstance.Instance.idb.BeginTransaction(Instance.idb.GetTransaction());
                prInstance.Instance.idb.BeginTransaction(Instance.idb.GetTransaction());

                int oldNum = prodTask.Task_DNum;
                //如果下发完了则到已计划列表中区
                if (prodTask.TaskDetail_Num <= prodTask.Task_DNum)
                {
                    prodTask.Task_Stat = OperationTypeEnum.ProdTaskStatEnum.Planing.ToString();
                }
                else
                {
                    prodTask.Task_Stat = OperationTypeEnum.ProdTaskStatEnum.Deploying.ToString();
                }
                //下达的计划数量
                //prodTask.Task_DNum = oldNum+ppList.Count;

                ptInstance.Update(prodTask);

                foreach (Prod_PlanProd pp in ppList)
                {

                    //生产计划编码
                    pp.PlanProd_PlanCode = CreateProdPlanCode();

                    pp.PlanProd_Owner = SessionConfig.UserCode;
                    pp.PlanProd_Date = DateTime.Now;
                    //状态
                    pp.PlanProd_FStat = OperationTypeEnum.ProdPlanStatEnum.Planing.ToString();
                    Instance.Add(pp);
                    //添加库存信息
                    invInstance.AddInventoryInfor(pp, nodeList);
                    //工艺路线导入
                    prInstance.ImportPlanRoads(pp, nodeList);

                }

                Instance.idb.CommitTransaction();
            }
            catch (Exception e)
            {
                flag = false;
                Instance.idb.RollbackTransaction();
            }
            return flag;
        }
예제 #4
0
        /// <summary>
        ///  下发计划    需修改
        /// </summary>
        /// <param name="prodTask">待计划任务</param>
        /// <returns></returns>
        public int DeployPlan(Prod_Task prodTask)
        {
            //设置任务状态--Planing
            //生成计划列表
            //写入库存
            //导入对应工序

            int flag = 1;

            try
            {
                //下达任务数量
                int compCount = prodTask.Task_DNum;
                List<Road_Nodes> nodeList = rnInstance.GetRoadNodesByComponents(prodTask.TaskDetail_PartNo);

                Instance.idb.BeginTransaction();
                ptInstance.Instance.idb.BeginTransaction(Instance.idb.GetTransaction());
                prInstance.Instance.idb.BeginTransaction(Instance.idb.GetTransaction());
                invInstance.Instance.idb.BeginTransaction(Instance.idb.GetTransaction());

                prodTask.Task_Stat = OperationTypeEnum.ProdTaskStatEnum.Planing.ToString();
                ptInstance.Update(prodTask);

                for (int i = 0; i < compCount; i++)
                {
                    //生产计划
                    Prod_PlanProd prodPlan = new Prod_PlanProd();
                    //产品编码
                    prodPlan.PlanProd_Code = invInstance.CreateInvCode();
                    prodPlan.PlanProd_PlanCode = CreateProdPlanCode();
                    prodPlan.PlanProd_TaskCode = prodTask.Task_Code;
                    prodPlan.PlanProd_CmdCode = prodTask.TaskDetail_CmdCode;
                    prodPlan.PlanProd_PartNo = prodTask.TaskDetail_PartNo;
                    prodPlan.PlanProd_PartName = prodTask.TaskDetail_PartName;
                    prodPlan.PlanProd_Num = 1;
                    prodPlan.PlanProd_Begin = prodTask.TaskDetail_PlanBegin;
                    prodPlan.PlanProd_End = prodTask.TaskDetail_PlanEnd;
                    //编制人 完工数量  长票编号 确认人 等未赋值
                    prodPlan.PlanProd_FStat = OperationTypeEnum.ProdPlanStatEnum.Planing.ToString();

                    //添加生产计划
                    Instance.Add(prodPlan);
                    //添加库存信息
                    invInstance.AddInventoryInfor(prodPlan, nodeList);
                    //工艺路线导入
                    prInstance.ImportPlanRoads(prodPlan, nodeList);

                }

                Instance.idb.CommitTransaction();
            }
            catch (Exception e)
            {
                Instance.idb.RollbackTransaction();
            }

            return flag;
        }
예제 #5
0
        public Prod_PlanProd CreateProdPlanWithNoPersist(Prod_Task prodTask)
        {
            //生产计划
            Prod_PlanProd prodPlan = new Prod_PlanProd();
            //prodPlan.PlanProd_Code = invInstance.CreateInvCode();
            //prodPlan.PlanProd_PlanCode = CreateProdPlanCode();

            //任务编码
            prodPlan.PlanProd_TaskCode = prodTask.Task_Code;
            //生产命令编码
            prodPlan.PlanProd_CmdCode = prodTask.TaskDetail_CmdCode;
            //零件图号
            prodPlan.PlanProd_PartNo = prodTask.TaskDetail_PartNo;
            //零件名称
            prodPlan.PlanProd_PartName = prodTask.TaskDetail_PartName;
            //数量
            prodPlan.PlanProd_Num = 1;
            prodPlan.PlanProd_Begin = prodTask.TaskDetail_PlanBegin;
            prodPlan.PlanProd_End = prodTask.TaskDetail_PlanEnd;
            //编制人 完工数量  长票编号 确认人 等未赋值

            return prodPlan;
        }
예제 #6
0
 /// <summary>
 /// 下发生产计划
 /// </summary>
 /// <param name="pt"></param>
 /// <returns></returns>
 public int DeployPlanTask(Prod_Task pt,List<Prod_PlanProd> ppList)
 {
     pt.Task_Stat = OperationTypeEnum.ProdTaskStatEnum.Planing.ToString();
     return Instance.Update(pt);
 }
예제 #7
0
 public int AddProdTask(Prod_Task pt)
 {
     pt.Stat = 0;
     return Instance.Add(pt);
 }
예제 #8
0
 public int UpdateProdTaskStat(Prod_Task pt)
 {
     return Update(pt);
 }
예제 #9
0
 public int Update(Prod_Task pt)
 {
     return Instance.Update(pt);
 }