using Model; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; namespace BLL { public partial class WeldingDailyService { /// ///获取焊接日报信息 /// /// public static Model.HJGL_WeldingDaily GetPipeline_WeldingDailyByWeldingDailyId(string WeldingDailyId) { return Funs.DB.HJGL_WeldingDaily.FirstOrDefault(e => e.WeldingDailyId == WeldingDailyId); } /// /// 根据焊接日报主键获取焊接日报信息 /// /// 焊接日报编号 /// 焊接日报信息 public static bool IsExistWeldingDailyCode(string weldingDailyCode, string weldingDailyId, string projectId) { var q = Funs.DB.HJGL_WeldingDaily.FirstOrDefault(x => x.WeldingDailyCode == weldingDailyCode && x.ProjectId == projectId && x.WeldingDailyId != weldingDailyId); if (q != null) { return true; } else { return false; } } /// /// 根据焊接日报Id获取焊接日报明细信息 /// /// /// public static List GetWeldingDailyItem(string weldingDailyId) { List returnViewMatch = new List(); var weldlineLists = (from x in Funs.DB.View_HJGL_WeldJoint where x.WeldingDailyId == weldingDailyId select new SpWeldingDailyItem { WeldJointId = x.WeldJointId, WeldJointCode = x.WeldJointCode, PipelineCode = x.PipelineCode, CoverWelderCode = x.CoverWelderCode, CoverWelderId = x.CoverWelderId, BackingWelderCode = x.BackingWelderCode, BackingWelderId = x.BackingWelderId, WeldTypeId = x.WeldTypeCode, JointArea = x.JointArea, WeldingLocationId = x.WeldingLocationId, WeldingLocationCode = x.WeldingLocationCode, JointAttribute = x.JointAttribute, Size = x.Size, Dia = x.Dia, Thickness = x.Thickness, WeldingMethodCode = x.WeldingMethodCode, WeldingWireCode = x.WeldingWireCode, WeldingRodCode = x.WeldingRodCode }).ToList(); returnViewMatch = weldlineLists; //if (weldlineLists.Count() > 0) //{ // foreach (var item in weldlineLists) // { // Model.SpWeldingDailyItem newWeldReportItem = new Model.SpWeldingDailyItem(); // newWeldReportItem.WeldJointId = item.WeldJointId; // newWeldReportItem.WeldJointCode = item.WeldJointCode; // newWeldReportItem.PipelineCode = item.PipelineCode; // newWeldReportItem.CoverWelderCode = item.CoverWelderCode; // newWeldReportItem.CoverWelderId = item.CoverWelderId; // newWeldReportItem.BackingWelderCode = item.BackingWelderCode; // newWeldReportItem.BackingWelderId = item.BackingWelderId; // //newWeldReportItem.WeldTypeId = item.WeldTypeCode; // newWeldReportItem.JointArea = item.JointArea; // newWeldReportItem.WeldingLocationId = item.WeldingLocationId; // newWeldReportItem.WeldingLocationCode = item.WeldingLocationCode; // newWeldReportItem.JointAttribute = item.JointAttribute; // newWeldReportItem.Size = item.Size; // newWeldReportItem.Dia = item.Dia; // newWeldReportItem.Thickness = item.Thickness; // newWeldReportItem.WeldingMethodCode = item.WeldingMethodCode; // newWeldReportItem.WeldingWireCode = item.WeldingWireCode; // newWeldReportItem.WeldingRodCode = item.WeldingRodCode; // returnViewMatch.Add(newWeldReportItem); // } //} return returnViewMatch; } /// /// 查找后返回集合增加到列表集团中 /// /// /// public static List GetWeldReportAddItem(string hdString) { List returnViewMatch = new List(); //= getWeldReportItem; if (!string.IsNullOrEmpty(hdString)) { List totallist = Funs.GetStrListByStr(hdString, '@'); foreach (var hdItemsString in totallist) { List list = Funs.GetStrListByStr(hdItemsString, '#'); if (list.Count() == 4) { string CoverWelderCode = string.Empty; //盖面焊工号 string BackingWelderCode = string.Empty; //打底焊工号 string welderLists = list[0]; List welderIds = Funs.GetStrListByStr(welderLists, '|'); if (welderIds.Count() == 2) { var welderCell = BLL.SitePerson_PersonService.GetSitePersonById(welderIds[0]); if (welderCell != null) { CoverWelderCode = welderCell.WelderCode; } var welderFloor = BLL.SitePerson_PersonService.GetSitePersonById(welderIds[1]); if (welderFloor != null) { BackingWelderCode = welderFloor.WelderCode; } } string weldingLocationCode = string.Empty; string weldingLocationId = list[1]; var loc = BLL.Base_WeldingLocationServie.GetWeldingLocationById(weldingLocationId); if (loc != null) { weldingLocationCode = loc.WeldingLocationCode; } string jointAttribute = list[2]; string weldlineIdLists = list[3]; List weldlineIds = Funs.GetStrListByStr(weldlineIdLists, '|'); foreach (var weldlineItem in weldlineIds) { //if (returnViewMatch.FirstOrDefault(x => x.JOT_ID == jotItem) == null) //{ var jot = Funs.DB.View_HJGL_WeldJoint.FirstOrDefault(e => e.WeldJointId == weldlineItem); //var weldline = BLL.Pipeline_WeldJointService.GetViewWeldJointById(weldlineItem); if (jot != null) { Model.SpWeldingDailyItem newWeldReportItem = new Model.SpWeldingDailyItem(); newWeldReportItem.WeldJointId = jot.WeldJointId; newWeldReportItem.WeldJointCode = jot.WeldJointCode; newWeldReportItem.PipelineCode = jot.PipelineCode; newWeldReportItem.CoverWelderCode = CoverWelderCode; newWeldReportItem.CoverWelderId = welderIds[0]; newWeldReportItem.BackingWelderCode = BackingWelderCode; newWeldReportItem.BackingWelderId = welderIds[1]; newWeldReportItem.WeldTypeCode = jot.WeldTypeCode; newWeldReportItem.JointArea = jot.JointArea; newWeldReportItem.WeldingLocationId = weldingLocationId; newWeldReportItem.WeldingLocationCode = weldingLocationCode; newWeldReportItem.JointAttribute = jointAttribute; newWeldReportItem.Size = jot.Size; newWeldReportItem.Dia = jot.Dia; newWeldReportItem.Thickness = jot.Thickness; newWeldReportItem.WeldingMethodCode = jot.WeldingMethodCode; // 如存在日报,默认还是原日报焊工 if (!string.IsNullOrEmpty(jot.WeldingDailyId)) { newWeldReportItem.CoverWelderId = jot.CoverWelderId; newWeldReportItem.BackingWelderId = jot.BackingWelderId; var welderCover = SitePerson_PersonService.GetSitePersonById(jot.CoverWelderId); if (welderCover != null) { newWeldReportItem.CoverWelderCode = welderCover.WelderCode; } var welderBacking = SitePerson_PersonService.GetSitePersonById(jot.BackingWelderId); if (welderBacking != null) { newWeldReportItem.BackingWelderCode = welderBacking.WelderCode; } newWeldReportItem.JointAttribute = jot.JointAttribute; newWeldReportItem.WeldingLocationId = jot.WeldingLocationId; var location = BLL.Base_WeldingLocationServie.GetWeldingLocationById(jot.WeldingLocationId); if (location != null) { newWeldReportItem.WeldingLocationCode = location.WeldingLocationCode; } } returnViewMatch.Add(newWeldReportItem); } } } } } return returnViewMatch; } /// /// 获取未焊接焊口信息 /// /// /// public static List GetWeldReportItemFind(string weldingDailyId, string pipelineId) { List returnViewMatch = new List(); var weldlineLists = from x in Funs.DB.View_HJGL_NoWeldJointFind where x.PipelineId == pipelineId && (x.WeldingDailyId == null || x.WeldingDailyId == weldingDailyId) select x; if (weldlineLists.Count() > 0) { foreach (var item in weldlineLists) { Model.SpWeldingDailyItem newWeldReportItem = new Model.SpWeldingDailyItem(); newWeldReportItem.WeldJointId = item.WeldJointId; newWeldReportItem.WeldJointCode = item.WeldJointCode; newWeldReportItem.Dia = item.Dia; newWeldReportItem.Thickness = item.Thickness; newWeldReportItem.WeldingMethodCode = item.WeldingMethodCode; newWeldReportItem.WeldTypeCode = item.WeldTypeCode; returnViewMatch.Add(newWeldReportItem); } } return returnViewMatch; } /// /// 增加焊接日报信息 /// /// public static void AddWeldingDaily(Model.HJGL_WeldingDaily WeldingDaily) { Model.SGGLDB db = Funs.DB; Model.HJGL_WeldingDaily newWeldingDaily = new HJGL_WeldingDaily { WeldingDailyId = WeldingDaily.WeldingDailyId, WeldingDailyCode = WeldingDaily.WeldingDailyCode, ProjectId = WeldingDaily.ProjectId, UnitId = WeldingDaily.UnitId, UnitWorkId = WeldingDaily.UnitWorkId, WeldingDate = WeldingDaily.WeldingDate, Tabler = WeldingDaily.Tabler, TableDate = WeldingDaily.TableDate, Remark = WeldingDaily.Remark, }; db.HJGL_WeldingDaily.InsertOnSubmit(newWeldingDaily); db.SubmitChanges(); } /// /// 修改焊接日报信息 /// /// public static void UpdateWeldingDaily(Model.HJGL_WeldingDaily WeldingDaily) { Model.SGGLDB db = Funs.DB; Model.HJGL_WeldingDaily newWeldingDaily = db.HJGL_WeldingDaily.FirstOrDefault(e => e.WeldingDailyId == WeldingDaily.WeldingDailyId); if (newWeldingDaily != null) { newWeldingDaily.WeldingDailyCode = WeldingDaily.WeldingDailyCode; newWeldingDaily.UnitId = WeldingDaily.UnitId; newWeldingDaily.UnitWorkId = WeldingDaily.UnitWorkId; newWeldingDaily.WeldingDate = WeldingDaily.WeldingDate; newWeldingDaily.Tabler = WeldingDaily.Tabler; newWeldingDaily.TableDate = WeldingDaily.TableDate; newWeldingDaily.Remark = WeldingDaily.Remark; db.SubmitChanges(); } } /// /// 根据焊接日报Id删除一个焊接日报信息 /// /// public static void DeleteWeldingDaily(string WeldingDailyId) { Model.SGGLDB db = Funs.DB; Model.HJGL_WeldingDaily delWeldingDaily = db.HJGL_WeldingDaily.FirstOrDefault(e => e.WeldingDailyId == WeldingDailyId); if (delWeldingDaily != null) { db.HJGL_WeldingDaily.DeleteOnSubmit(delWeldingDaily); db.SubmitChanges(); } } #region 焊接日报待审核 /// /// 移动端按焊口保存焊接日报待审核明细 /// /// 焊口ID /// 提交焊工ID /// 焊接日期 /// 焊接位置ID /// 焊工类型 0 全部 1 打底 2 盖面 /// 错误信息 public static string SaveWeldingDailyTempDetailByMobile(string weldJointId, string personId, string time, string weldingLocationId, int welderType) { string res = string.Empty; using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { try { DateTime weldingDate; if (!DateTime.TryParse(time, out weldingDate)) { return "焊接日期不正确"; } weldingDate = weldingDate.Date; var person = db.Person_Persons.FirstOrDefault(x => x.PersonId == personId); if (person == null) { return "人员不存在"; } var joint = db.View_HJGL_WeldJoint.FirstOrDefault(x => x.WeldJointId == weldJointId); string err = CheckWeldingDailyTempJoint(db, joint, weldingLocationId); if (!string.IsNullOrEmpty(err)) { return err; } var weldTask = db.HJGL_WeldTask.FirstOrDefault(x => x.WeldJointId == joint.WeldJointId); var weldJoint = db.HJGL_WeldJoint.FirstOrDefault(x => x.WeldJointId == joint.WeldJointId); var pending = GetPendingTempDetail(db, weldJointId, weldingDate); string coverWelderId = pending != null ? pending.CoverWelderId : weldJoint.CoverWelderId; string backingWelderId = pending != null ? pending.BackingWelderId : weldJoint.BackingWelderId; if (welderType == 0) { coverWelderId = personId; backingWelderId = personId; } else if (welderType == 1) { backingWelderId = personId; } else if (welderType == 2) { coverWelderId = personId; } else { return "焊工类型不正确"; } SaveWeldingDailyTempDetail(db, joint, weldTask, weldingDate, personId, coverWelderId, backingWelderId, joint.JointAttribute, weldingLocationId, joint.ProjectId, null, null, joint.WeldingMode); db.SubmitChanges(); } catch (Exception ex) { APICommonService.SaveSysAPILog("erro", ex.ToString(), "-1"); res = ex.Message; } } return res; } /// /// Web端保存焊接日报待审核明细 /// /// 焊口ID /// 提交人ID /// 焊接日期 /// 盖面焊工ID /// 打底焊工ID /// 焊口属性 /// 焊接位置ID /// 项目ID /// 单位ID /// 单位工程ID /// 焊接模式 /// 错误信息 public static string SaveWeldingDailyTempDetailByWeb(string weldJointId, string submitPersonId, DateTime weldingDate, string coverWelderId, string backingWelderId, string jointAttribute, string weldingLocationId, string projectId, string unitId, string unitWorkId, string weldingMode) { string res = string.Empty; using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { try { weldingDate = weldingDate.Date; weldingLocationId = NormalizeNullValue(weldingLocationId); unitId = NormalizeNullValue(unitId); unitWorkId = NormalizeNullValue(unitWorkId); if (string.IsNullOrEmpty(weldJointId)) { return "焊口不能为空"; } if (string.IsNullOrEmpty(coverWelderId) || string.IsNullOrEmpty(backingWelderId)) { return "未选择完整焊工"; } var joint = db.View_HJGL_WeldJoint.FirstOrDefault(x => x.WeldJointId == weldJointId); string err = CheckWeldingDailyTempJoint(db, joint, weldingLocationId); if (!string.IsNullOrEmpty(err)) { return err; } var coverWelder = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.PersonId == coverWelderId); if (coverWelder == null) { return "盖面焊工不存在"; } var backingWelder = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.PersonId == backingWelderId); if (backingWelder == null) { return "打底焊工不存在"; } var weldTask = db.HJGL_WeldTask.FirstOrDefault(x => x.WeldJointId == weldJointId); SaveWeldingDailyTempDetail(db, joint, weldTask, weldingDate, submitPersonId, coverWelderId, backingWelderId, jointAttribute, weldingLocationId, projectId, unitId, unitWorkId, weldingMode); db.SubmitChanges(); } catch (Exception ex) { APICommonService.SaveSysAPILog("erro", ex.ToString(), "-1"); res = ex.Message; } } return res; } /// /// 审核通过焊接日报待审核明细 /// /// 待审核明细ID集合 /// 审核人 /// 错误信息 public static string AuditWeldingDailyTempDetails(string[] tempDetailIds, string auditMan) { string errlog = string.Empty; if (tempDetailIds == null || tempDetailIds.Length == 0) { return "请选择要审核的记录"; } foreach (string tempDetailId in tempDetailIds.Where(x => !string.IsNullOrEmpty(x)).Distinct()) { var tempDetail = Funs.DB.HJGL_WeldingDailyTempDetail.FirstOrDefault(x => x.TempDetailId == tempDetailId); if (tempDetail == null) { errlog += "待审核记录不存在;"; continue; } if (tempDetail.AuditState != 0) { errlog += "焊口待审核记录已审核;"; continue; } if (string.IsNullOrEmpty(tempDetail.CoverWelderId) || string.IsNullOrEmpty(tempDetail.BackingWelderId)) { errlog += "焊口待审核记录未选择完整焊工;"; continue; } var weldJoint = BLL.WeldJointService.GetWeldJointByWeldJointId(tempDetail.WeldJointId); if (weldJoint == null) { errlog += "焊口不存在;"; continue; } if (!string.IsNullOrEmpty(weldJoint.WeldingDailyId)) { errlog += "焊口【" + weldJoint.WeldJointCode + "】已生成焊接日报;"; continue; } var batchC = BLL.Project_SysSetService.GetSysSetBySetId("5", tempDetail.ProjectId); if (batchC == null) { errlog += "请设置项目的组批条件;"; continue; } var weldingDaily = GetOrCreateWeldingDailyByTempDetail(tempDetail); string itemErr = InsertWeldingDailyItem(tempDetail.WeldJointId, tempDetail.CoverWelderId, tempDetail.BackingWelderId, tempDetail.JointAttribute, weldingDaily.WeldingDate, batchC.SetValue, true, weldingDaily.WeldingDailyId, tempDetail.ProjectId, tempDetail.WeldingLocationId); if (!string.IsNullOrEmpty(itemErr)) { errlog += itemErr; continue; } BLL.HJGL_PipelineComponentjointService.UpdateStateByWeldJointId(tempDetail.WeldJointId, (DateTime)weldingDaily.WeldingDate);//更改预制口实际时间和状态 PipelineService.UpdataDateByWeldJointId(tempDetail.WeldJointId);//更改安装口时间和状态 tempDetail.AuditState = 1; tempDetail.AuditMan = auditMan; tempDetail.AuditDate = DateTime.Now; Funs.DB.SubmitChanges(); } return errlog; } /// /// 删除未审核的焊接日报待审核明细 /// /// 待审核明细ID集合 /// 错误信息 public static string DeleteWeldingDailyTempDetails(string[] tempDetailIds) { if (tempDetailIds == null || tempDetailIds.Length == 0) { return "请选择要删除的记录"; } string errlog = string.Empty; foreach (string tempDetailId in tempDetailIds.Where(x => !string.IsNullOrEmpty(x)).Distinct()) { var tempDetail = Funs.DB.HJGL_WeldingDailyTempDetail.FirstOrDefault(x => x.TempDetailId == tempDetailId); if (tempDetail == null) { continue; } if (tempDetail.AuditState != 0) { errlog += "已审核记录不能删除;"; continue; } Funs.DB.HJGL_WeldingDailyTempDetail.DeleteOnSubmit(tempDetail); } Funs.DB.SubmitChanges(); return errlog; } private static string CheckWeldingDailyTempJoint(Model.SGGLDB db, Model.View_HJGL_WeldJoint joint, string weldingLocationId) { if (joint == null) { return "焊口不存在"; } if (!string.IsNullOrEmpty(joint.WeldingDailyId)) { return "焊口【" + joint.WeldJointCode + "】已生成焊接日报,不能提交待审核"; } if (!string.IsNullOrEmpty(weldingLocationId)) { var weldingLocationModel = db.Base_WeldingLocation.FirstOrDefault(x => x.WeldingLocationId == weldingLocationId); if (weldingLocationModel == null) { return "焊口位置不存在"; } } return string.Empty; } private static Model.HJGL_WeldingDailyTempDetail GetPendingTempDetail(Model.SGGLDB db, string weldJointId, DateTime weldingDate) { return db.HJGL_WeldingDailyTempDetail.FirstOrDefault(x => x.WeldJointId == weldJointId && x.WeldingDate >= weldingDate.Date && x.WeldingDate < weldingDate.Date.AddDays(1) && x.AuditState == 0); } private static void SaveWeldingDailyTempDetail(Model.SGGLDB db, Model.View_HJGL_WeldJoint joint, Model.HJGL_WeldTask weldTask, DateTime weldingDate, string submitPersonId, string coverWelderId, string backingWelderId, string jointAttribute, string weldingLocationId, string projectId, string unitId, string unitWorkId, string weldingMode) { var pending = GetPendingTempDetail(db, joint.WeldJointId, weldingDate); if (pending == null) { pending = new Model.HJGL_WeldingDailyTempDetail { TempDetailId = Guid.NewGuid().ToString(), WeldJointId = joint.WeldJointId, WeldingDate = weldingDate.Date, AuditState = 0, SubmitDate = DateTime.Now }; db.HJGL_WeldingDailyTempDetail.InsertOnSubmit(pending); } pending.ProjectId = !string.IsNullOrEmpty(projectId) ? projectId : joint.ProjectId; pending.UnitId = !string.IsNullOrEmpty(unitId) ? unitId : (weldTask != null && !string.IsNullOrEmpty(weldTask.UnitId) ? weldTask.UnitId : joint.UnitId); pending.UnitWorkId = !string.IsNullOrEmpty(unitWorkId) ? unitWorkId : joint.UnitWorkId; pending.CoverWelderId = coverWelderId; pending.BackingWelderId = backingWelderId; pending.JointAttribute = !string.IsNullOrEmpty(jointAttribute) ? jointAttribute : joint.JointAttribute; pending.WeldingLocationId = !string.IsNullOrEmpty(weldingLocationId) ? weldingLocationId : joint.WeldingLocationId; pending.WeldingMode = !string.IsNullOrEmpty(weldingMode) ? weldingMode : joint.WeldingMode; pending.SubmitPersonId = submitPersonId; pending.SubmitDate = DateTime.Now; } private static Model.HJGL_WeldingDaily GetOrCreateWeldingDailyByTempDetail(Model.HJGL_WeldingDailyTempDetail tempDetail) { var weldingDaily = Funs.DB.HJGL_WeldingDaily.FirstOrDefault(x => x.UnitWorkId == tempDetail.UnitWorkId && x.WeldingDate >= tempDetail.WeldingDate.Date && x.WeldingDate < tempDetail.WeldingDate.Date.AddDays(1)); if (weldingDaily != null) { return weldingDaily; } var submitPerson = Funs.DB.Person_Persons.FirstOrDefault(x => x.PersonId == tempDetail.SubmitPersonId); string personName = submitPerson != null ? submitPerson.PersonName : string.Empty; string perfix = string.Format("{0:yyyyMMdd}", tempDetail.WeldingDate) + "-" + personName + "-"; weldingDaily = new Model.HJGL_WeldingDaily { WeldingDailyId = Guid.NewGuid().ToString(), WeldingDailyCode = BLL.SQLHelper.RunProcNewId("SpGetThreeNumber", "dbo.HJGL_WeldingDaily", "WeldingDailyCode", tempDetail.ProjectId, perfix), WeldingDate = tempDetail.WeldingDate.Date, ProjectId = tempDetail.ProjectId, UnitWorkId = tempDetail.UnitWorkId, UnitId = tempDetail.UnitId, Tabler = tempDetail.SubmitPersonId, TableDate = tempDetail.WeldingDate.Date, Remark = "焊接日报待审核通过" }; BLL.WeldingDailyService.AddWeldingDaily(weldingDaily); return weldingDaily; } private static string NormalizeNullValue(string value) { return value == Const._Null ? null : value; } /// /// 日报明细插入(更新焊口信息),组批等 /// /// 焊口ID /// 盖面焊工ID /// 打底焊工ID /// 焊口属性 /// 焊接日期 /// 组批条件 /// 是否保存 /// 日报ID /// 项目ID /// 焊接位置ID /// 错误信息 private static string InsertWeldingDailyItem(string weldJointId, string coverWelderId, string backingWelderId, string jointAttribute, DateTime? weldingDate, string batchCondition, bool isSave, string weldingDailyId, string projectId, string weldingLocationId) { string errlog = string.Empty; var newWeldJoint = BLL.WeldJointService.GetWeldJointByWeldJointId(weldJointId); if (newWeldJoint == null) { return "焊口不存在;"; } var pipeline = BLL.PipelineService.GetPipelineByPipelineId(newWeldJoint.PipelineId); var weldingDaily = BLL.WeldingDailyService.GetPipeline_WeldingDailyByWeldingDailyId(weldingDailyId); if (pipeline == null || weldingDaily == null) { return "焊口关联管线或日报不存在;"; } if (!string.IsNullOrEmpty(coverWelderId) && !string.IsNullOrEmpty(backingWelderId)) { if (isSave) { newWeldJoint.WeldingDailyId = weldingDailyId; newWeldJoint.WeldingDailyCode = weldingDaily.WeldingDailyCode; newWeldJoint.CoverWelderId = coverWelderId; newWeldJoint.BackingWelderId = backingWelderId; newWeldJoint.CoverWelderTeamGroupId = SitePerson_PersonService.GetSitePersonByProjectIdPersonId(pipeline.ProjectId, coverWelderId).TeamGroupId; newWeldJoint.BackingWelderTeamGroupId = SitePerson_PersonService.GetSitePersonByProjectIdPersonId(pipeline.ProjectId, backingWelderId).TeamGroupId; if (!string.IsNullOrEmpty(weldingLocationId)) { newWeldJoint.WeldingLocationId = weldingLocationId; } newWeldJoint.JointAttribute = jointAttribute; BLL.WeldJointService.UpdateWeldJoint(newWeldJoint); // 更新焊口号 修改固定焊口号后 +G BLL.WeldJointService.UpdateWeldJointAddG(newWeldJoint.WeldJointId, newWeldJoint.JointAttribute, Const.BtnAdd); errlog = PointBatchService.AddBatchByWeldJointId(weldJointId, weldingDate, batchCondition);//自动组批 } } else { errlog = "焊口" + "【" + newWeldJoint.WeldJointCode + "】" + "未选择焊工"; } return errlog; } #endregion /// /// 日报明细删除 /// /// /// public static string DeleteWeldingDailyItemByweldJointId(string weldJointId) { string errlog = string.Empty; var newWeldJoint = BLL.WeldJointService.GetWeldJointByWeldJointId(weldJointId); var pipeline = BLL.PipelineService.GetPipelineByPipelineId(newWeldJoint.PipelineId); if (newWeldJoint != null && !string.IsNullOrEmpty(newWeldJoint.WeldingDailyId)) { var isTrust = from x in Funs.DB.HJGL_Batch_BatchTrustItem where x.WeldJointId == weldJointId select x; ; if (isTrust.Count() == 0) { var updateWeldJoint = BLL.WeldJointService.GetWeldJointByWeldJointId(weldJointId); if (updateWeldJoint != null) { updateWeldJoint.WeldingDailyId = null; updateWeldJoint.WeldingDailyCode = null; updateWeldJoint.CoverWelderId = null; updateWeldJoint.BackingWelderId = null; BLL.WeldJointService.UpdateWeldJoint(updateWeldJoint); var weldTask = BLL.WeldTaskService.GetWeldTaskByWeldJointId(weldJointId); if (weldTask != null) { weldTask.CoverWelderId = null; weldTask.BackingWelderId = null; BLL.WeldTaskService.UpdateWeldTask(weldTask); } var pointBatchItems = from x in Funs.DB.HJGL_Batch_PointBatchItem where x.WeldJointId == weldJointId select x; string pointBatchId = pointBatchItems.FirstOrDefault().PointBatchId; // 删除焊口所在批明细信息 BLL.PointBatchDetailService.DeleteBatchDetail(weldJointId); // 删除批信息 var batch = from x in Funs.DB.HJGL_Batch_PointBatchItem where x.PointBatchId == pointBatchId select x; if (pointBatchId != null && batch.Count() == 0) { BLL.PointBatchService.DeleteBatch(pointBatchId); } } } else { errlog += "焊口【" + newWeldJoint.WeldJointCode + "】已进委托单了,不能删除。"; } } return errlog; } /// /// 按类型获取焊接日报项 /// /// /// public static List GetPipeline_WeldingDailyList(string unitId) { var list = (from x in Funs.DB.HJGL_WeldingDaily where x.UnitId == unitId orderby x.WeldingDailyCode select x).ToList(); return list; } public static List GetPipelineDailyListByUnitWorkId(string UnitWorkId) { var list = (from x in Funs.DB.HJGL_WeldingDaily where x.UnitWorkId == UnitWorkId orderby x.WeldingDailyCode select x).ToList(); return list; } public static Dictionary GetFileOutValueById(string WeldingDailyId) { var value = new Dictionary(); string strSql = @" SELECT PipelineCode as '管线号', (case when charindex('/',WeldJointCode)>0 then RIGHT(WeldJointCode,CHARINDEX('/',REVERSE(WeldJointCode))-1) else WeldJointCode end) as '焊口序号', WeldJointCode as '焊口号', BackingWelderCode as '打底焊工', BackingWelderTeamGroupName as '打底焊工班组', CoverWelderCode as '盖面焊工', CoverWelderTeamGroupName as '盖面焊工班组', Material1Code as '材质1' , Material2Code as '材质2' , Dia as '外径' , DNDia as 'DN公称直径', Thickness as '壁厚' , WeldTypeCode as '焊缝类型' , WeldingMethodCode as '焊接方法' , WeldingWireCode as '焊丝' , WeldingMode as '焊口机动化程度' , WeldingRodCode as '焊条' , Size as '达因' FROM dbo.View_HJGL_WeldJoint WHERE WeldingDailyId=@WeldingDailyId"; List listStr = new List(); listStr.Add(new SqlParameter("@WeldingDailyId", WeldingDailyId)); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); var WeldingDailyCode = (from x in Funs.DB.HJGL_WeldingDaily where x.WeldingDailyId == WeldingDailyId select x.WeldingDailyCode).FirstOrDefault(); if (!string.IsNullOrEmpty(WeldingDailyCode)) { value.Add(WeldingDailyCode, tb); } return value; } public static Dictionary GetFileOutValueByUnitWorkId(string UnitWorkId, string Month) { var value = new Dictionary(); var p = from x in Funs.DB.HJGL_WeldingDaily where x.UnitWorkId == UnitWorkId && x.WeldingDate < Convert.ToDateTime(Month + "-01").AddMonths(1) && x.WeldingDate >= Convert.ToDateTime(Month + "-01") orderby x.WeldingDailyCode descending select x; if (p.Count() > 0) { foreach (var item in p) { var detail = GetFileOutValueById(item.WeldingDailyId); value.Add(detail.Keys.First(), detail.Values.First()); } } return value; } #region 焊接日报下拉项 /// /// 焊接日报下拉项 /// /// 下拉框名称 /// 是否显示请选择 /// 耗材类型 public static void InitDropDownListByUnitId(FineUIPro.DropDownList dropName, bool isShowPlease, string unitId) { dropName.DataValueField = "WeldingDailyId"; dropName.DataTextField = "WeldingDailyCode"; dropName.DataSource = GetPipeline_WeldingDailyList(unitId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } public static void InitDownListByUnitWortId(FineUIPro.DropDownList dropName, bool isShowPlease, string UnitWortId) { dropName.DataValueField = "WeldingDailyId"; dropName.DataTextField = "WeldingDailyCode"; dropName.DataSource = GetPipelineDailyListByUnitWorkId(UnitWortId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } #endregion } }