/// <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; }
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; }
/// <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; }
/// <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; }
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; }
/// <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); }
public int AddProdTask(Prod_Task pt) { pt.Stat = 0; return Instance.Add(pt); }
public int UpdateProdTaskStat(Prod_Task pt) { return Update(pt); }
public int Update(Prod_Task pt) { return Instance.Update(pt); }