using System; using System.Collections.Generic; using System.Linq; using System.Web.UI.WebControls; namespace BLL { public class HJGL_PipelineComponentService { /// /// 未验收 /// public static int state_0 = 0; /// /// 已验收 /// public static int state_1 = 1; /// /// 已装箱 /// public static int state_2 = 2; public static ListItem[] GetState() { ListItem[] list = new ListItem[3]; list[0] = new ListItem("未验收", state_0.ToString()); list[1] = new ListItem("已验收", state_1.ToString()); list[2] = new ListItem("已出库", state_2.ToString()); return list; } public static ListItem[] GetProductionState() { ListItem[] list = new ListItem[3]; list[0] = new ListItem("未开始", "0"); list[1] = new ListItem("已开始", "1"); list[2] = new ListItem("已完成", "2"); return list; } /// /// 根据ID获取组件信息 /// /// /// public static Model.HJGL_Pipeline_Component GetPipelineComponentById(string pipelineComponentId) { return Funs.DB.HJGL_Pipeline_Component.FirstOrDefault(e => e.PipelineComponentId == pipelineComponentId); } public static Model.HJGL_Pipeline_Component GetPipelineComponentByCodeandpipelineId(string pipelineComponentCode, string pipelineId) { var q = Funs.DB.HJGL_Pipeline_Component.FirstOrDefault(x => x.PipelineComponentCode == pipelineComponentCode && x.PipelineId == pipelineId); return q; } /// /// 根据材料信息id获取组件信息 /// /// /// public static Model.HJGL_Pipeline_Component GetPipelineComponentByMatId(string pipeLineMatId) { return Funs.DB.HJGL_Pipeline_Component.FirstOrDefault(e => e.PipeLineMatId == pipeLineMatId); } /// /// 判断管线组件Code是否存在 /// /// /// /// public static bool IsExistPipelineComponentCode(string pipelineComponentCode, string pipelineId, string pipelineComponentId) { Model.SGGLDB db = Funs.DB; Model.HJGL_Pipeline_Component q = null; if (!string.IsNullOrEmpty(pipelineComponentId)) { q = Funs.DB.HJGL_Pipeline_Component.FirstOrDefault(x => x.PipelineComponentCode == pipelineComponentCode && x.PipelineId == pipelineId && x.PipelineComponentId != pipelineComponentId); } else { q = Funs.DB.HJGL_Pipeline_Component.FirstOrDefault(x => x.PipelineComponentCode == pipelineComponentCode && x.PipelineId == pipelineId); } if (q != null) { return true; } else { return false; } } /// /// 根据管线材料id同步组件 /// public static void SyncPipelineComponentByMatId(string pipeLineMatId) { var model_mat = BLL.PipelineMatService.GetPipeLineMat(pipeLineMatId); var PipelineId = model_mat.PipelineId; var PipeArea = BLL.PipelineService.GetPipelineByPipelineId(PipelineId).PipeArea; if (PipeArea=="1") { // var model = GetPipelineComponentByMatId(pipeLineMatId); var model = GetPipelineComponentByCodeandpipelineId(model_mat.PrefabricatedComponents,PipelineId); if (model!=null) { model.PipelineId = PipelineId; model.PipelineComponentCode = model_mat.PrefabricatedComponents; model.DrawingName = model_mat.PrefabricatedComponents.Substring(0, model_mat.PrefabricatedComponents.LastIndexOf('-')).Replace("\"", ""); model.State = state_0; model.ProductionState = 0; UpdatePipelineComponent(model); } else { model=new Model.HJGL_Pipeline_Component(); model.PipelineComponentId = SQLHelper.GetNewID(); model.PipelineId = PipelineId; model.PipelineComponentCode = model_mat.PrefabricatedComponents; model.DrawingName = model_mat.PrefabricatedComponents.Substring(0, model_mat.PrefabricatedComponents.LastIndexOf('-')).Replace("\"", ""); model.State = state_0; model.ProductionState = 0; AddPipelineComponent(model); } } } /// /// 添加作业管线 /// /// public static void AddPipelineComponent(Model.HJGL_Pipeline_Component pipeline) { Model.SGGLDB db = Funs.DB; Model.HJGL_Pipeline_Component newPipeline = new Model.HJGL_Pipeline_Component(); newPipeline.PipelineComponentId = pipeline.PipelineComponentId; newPipeline.PipelineId = pipeline.PipelineId; newPipeline.PreUnit = pipeline.PreUnit; newPipeline.PipelineComponentCode = pipeline.PipelineComponentCode; newPipeline.BoxNumber = pipeline.BoxNumber; newPipeline.AssembleUnit = pipeline.AssembleUnit; newPipeline.PipeLineMatId = pipeline.PipeLineMatId; newPipeline.State= pipeline.State; newPipeline.QRCode= pipeline.QRCode; newPipeline.PlanStartDate = pipeline.PlanStartDate; newPipeline.PlanEndDate = pipeline.PlanEndDate; newPipeline.ActStartDate = pipeline.ActStartDate; newPipeline.ActEndDate = pipeline.ActEndDate; newPipeline.DrawingName = pipeline.DrawingName; newPipeline.ReceiveMan= pipeline.ReceiveMan; newPipeline.ReceiveDate= pipeline.ReceiveDate; newPipeline.ProductionState= pipeline.ProductionState; db.HJGL_Pipeline_Component.InsertOnSubmit(newPipeline); db.SubmitChanges(); } /// /// 修改作业管线 /// /// public static void UpdatePipelineComponent(Model.HJGL_Pipeline_Component pipeline) { Model.SGGLDB db = Funs.DB; Model.HJGL_Pipeline_Component newPipeline = db.HJGL_Pipeline_Component.FirstOrDefault(e => e.PipelineComponentId == pipeline.PipelineComponentId); if (newPipeline != null) { newPipeline.PipelineId = pipeline.PipelineId; newPipeline.PreUnit = pipeline.PreUnit; newPipeline.PipelineComponentCode = pipeline.PipelineComponentCode; newPipeline.BoxNumber = pipeline.BoxNumber; newPipeline.AssembleUnit = pipeline.AssembleUnit; newPipeline.PipeLineMatId = pipeline.PipeLineMatId; newPipeline.State = pipeline.State; newPipeline.QRCode = pipeline.QRCode; newPipeline.PlanStartDate = pipeline.PlanStartDate; newPipeline.PlanEndDate = pipeline.PlanEndDate; newPipeline.ActStartDate = pipeline.ActStartDate; newPipeline.ActEndDate = pipeline.ActEndDate; newPipeline.DrawingName = pipeline.DrawingName; newPipeline.ReceiveMan = pipeline.ReceiveMan; newPipeline.ReceiveDate = pipeline.ReceiveDate; newPipeline.ProductionState = pipeline.ProductionState; db.SubmitChanges(); } } public static void UpdateOutState(string pipelineComponentId,string BoxNumber) { var q=GetPipelineComponentById(pipelineComponentId); if (q.State==state_1) { q.State = state_2; q.BoxNumber=BoxNumber; UpdatePipelineComponent(q); } } /// /// 修改生产状态 /// /// /// public static void UpdateProductionState(string pipelineComponentId, int state, DateTime TaskDate) { var q = GetPipelineComponentById(pipelineComponentId); if (q!=null) { q.ProductionState = state; if (state==2) { q.ActEndDate = TaskDate; } else if(state==1) { if (q.ActStartDate ==null) { q.ActStartDate = TaskDate; } else { if (DateTime.Compare(TaskDate,q.ActStartDate.Value) < 0) { q.ActStartDate = TaskDate; } } } UpdatePipelineComponent(q); } } /// /// 根据作业管线Id删除一个作业管线信息 /// /// public static void DeletePipelineComponent(string pipelineComponentId) { Model.SGGLDB db = Funs.DB; Model.HJGL_Pipeline_Component pipeline = db.HJGL_Pipeline_Component.FirstOrDefault(e => e.PipelineComponentId == pipelineComponentId); if (pipeline != null) { db.HJGL_Pipeline_Component.DeleteOnSubmit(pipeline); db.SubmitChanges(); } } /// /// 根据管线材料id删除对应组件 /// /// public static void DeletePipelineComponentByMatId(string pipeLineMatId) { Model.SGGLDB db = Funs.DB; var mdoel = db.HJGL_Pipeline_Component.Where(e => e.PipeLineMatId == pipeLineMatId); if (mdoel != null) { db.HJGL_Pipeline_Component.DeleteAllOnSubmit(mdoel); db.SubmitChanges(); } } /// /// 根据管线id删除组件 /// /// public static void DeletePipelineComponentBypipelineId(string pipelineId) { Model.SGGLDB db = Funs.DB; var mdoel = db.HJGL_Pipeline_Component.Where(e => e.PipelineId == pipelineId); if (mdoel != null) { db.HJGL_Pipeline_Component.DeleteAllOnSubmit(mdoel); db.SubmitChanges(); } } /// /// 获取已经验收的预制组件 /// /// /// public static List GetAcceptedPipelineComponent(string projectid) { Model.SGGLDB db = Funs.DB; var q = (from x in db.HJGL_Pipeline_Component join y in db.HJGL_Pipeline on x.PipelineId equals y.PipelineId where y.ProjectId.Contains(projectid) && x.State.Equals(state_1) select x).ToList(); return q; } public static List GetComponentByPipelineId(string PipelineId) { Model.SGGLDB db = Funs.DB; var q = (from x in db.HJGL_Pipeline_Component where x.PipelineId == PipelineId select x).OrderBy(x=>x.PlanStartDate).ToList(); return q; } /// /// 管线下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitPipelineDownList(FineUIPro.DropDownList dropName,string projectid, bool isShowPlease) { dropName.DataValueField = "PipelineComponentId"; dropName.DataTextField = "PipelineComponentCode"; dropName.DataSource = GetAcceptedPipelineComponent(projectid); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } public static void InitMainItemDownList(FineUIPro.DropDownList dropName, bool isShowPlease) { dropName.DataValueField = "Value"; dropName.DataTextField = "Text"; dropName.DataSource = GetState(); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } public static void InitMainItemDownProductionStateList(FineUIPro.DropDownList dropName, bool isShowPlease) { dropName.DataValueField = "Value"; dropName.DataTextField = "Text"; dropName.DataSource = GetProductionState(); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } } }