SGGL_SHJ/SGGL/BLL/HJGL/WeldingManage/WeldTaskService.cs

338 lines
16 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
public static class WeldTaskService
{
/// <summary>
///获取焊接任务单信息
/// </summary>
/// <returns></returns>
public static Model.HJGL_WeldTask GetWeldTaskById(string WeldTaskId)
{
return Funs.DB.HJGL_WeldTask.FirstOrDefault(e => e.WeldTaskId == WeldTaskId);
}
/// <summary>
///根据焊口id获取焊接任务单信息
/// </summary>
/// <returns></returns>
public static Model.HJGL_WeldTask GetWeldTaskByWeldJointId(string weldJointId)
{
Model.SGGLDB db = Funs.DB;
return db.HJGL_WeldTask.FirstOrDefault(e => e.WeldJointId == weldJointId);
}
/// <summary>
///获取焊接任务单编号
/// </summary>
/// <returns></returns>
public static string GetTaskCodeByDate(string projectId, string date, string unitworkid, string unitid)
{
string code = string.Empty;
var list = (from x in Funs.DB.HJGL_WeldTask where x.ProjectId == projectId && x.UnitWorkId == unitworkid && x.UnitId == unitid && x.TaskDate == Convert.ToDateTime(date) orderby x.TaskCode descending select x.TaskCode).Distinct().ToList();
var count = list.Count;
code = date + "-" + (count + 1).ToString("D3") + UnitService.GetUnitCodeByUnitId(unitid) + "-" + UnitWorkService.getUnitWorkByUnitWorkId(unitworkid)?.UnitWorkCode;
/*if (list.Count > 0)
{
string oldCode = list[0];
if (oldCode.Length > 4)
{
string partCode = oldCode.Substring(8,3);
int num = Funs.GetNewIntOrZero(partCode) + 1;
if (num < 10)
{
code = date + "-00" + num;
}
else if (num >= 10 && num < 100)
{
code = date + "-0" + num;
}
else
{
code = date + "-" + num;
}
}
else
{
code = date + "-001";
}
}
else
{
code = date + "-001";
}
code = code.Replace("-", "") + "-" + UnitService.GetUnitCodeByUnitId(unitid) + "-" + UnitWorkService.getUnitWorkByUnitWorkId(unitworkid)?.UnitWorkCode;*/
return code;
}
public static string GetSerialNumberByDate(string projectId, string date, string unitworkid, string unitid)
{
string code = string.Empty;
var list = (from x in Funs.DB.HJGL_WeldTask where x.ProjectId == projectId && x.UnitWorkId == unitworkid && x.UnitId == unitid && x.TaskDate == Convert.ToDateTime(date) orderby x.TaskCode descending select x.TaskCode).Distinct().ToList();
var count = list.Count;
code = (count + 1).ToString("D3");
return code;
}
public static string GetSerialNumberByDate(string projectId, string taskCode)
{
string result = string.Empty;
var list = (from x in Funs.DB.HJGL_WeldTask where x.ProjectId == projectId && x.TaskCode == taskCode orderby x.SerialNumber descending select x.SerialNumber).FirstOrDefault();
result = list?.ToString();
return result;
}
public static List<Model.View_HJGL_WeldingTask> GetWeldingTaskList(string ProjectId, string UnitWorkId, string unitId, DateTime taskDate, string canWelder, string serialNumber)
{
var q = from x in Funs.DB.View_HJGL_WeldingTask
where x.ProjectId == ProjectId && x.UnitWorkId == UnitWorkId
&& x.TaskDate.Value.Date == taskDate.Date
select x;
if (!string.IsNullOrEmpty(unitId))
{
q = q.Where(x => x.UnitId == unitId);
}
if (!string.IsNullOrEmpty(serialNumber))
{
q = q.Where(x => x.SerialNumber == serialNumber);
}
if (canWelder == "0")
{
q = q.Where(x => x.CanWelderId == null);
}
else if (canWelder == "1")
{
q = q.Where(x => x.CanWelderId != null);
}
return q.ToList();
}
/// <summary>
/// 增加焊接任务单信息
/// </summary>
/// <param name="WeldTask"></param>
public static void AddWeldTask(Model.HJGL_WeldTask WeldTask)
{
Model.SGGLDB db = Funs.DB;
Model.HJGL_WeldTask newWeldTask = new Model.HJGL_WeldTask
{
WeldTaskId = WeldTask.WeldTaskId,
ProjectId = WeldTask.ProjectId,
UnitId = WeldTask.UnitId,
UnitWorkId = WeldTask.UnitWorkId,
WeldJointId = WeldTask.WeldJointId,
TaskDate = WeldTask.TaskDate,
CoverWelderId = WeldTask.CoverWelderId,
BackingWelderId = WeldTask.BackingWelderId,
JointAttribute = WeldTask.JointAttribute,
Tabler = WeldTask.Tabler,
TableDate = WeldTask.TableDate,
TaskCode = WeldTask.TaskCode,
WeldingMode = WeldTask.WeldingMode,
WeldingRod = WeldTask.WeldingRod,
WeldingWire = WeldTask.WeldingWire,
CanWeldingRodName = WeldTask.CanWeldingRodName,
CanWeldingWireName = WeldTask.CanWeldingWireName,
PipeLineSortIndex = WeldTask.PipeLineSortIndex,
SerialNumber = WeldTask.SerialNumber
};
db.HJGL_WeldTask.InsertOnSubmit(newWeldTask);
db.SubmitChanges();
}
/// <summary>
/// 修改焊接任务单信息
/// </summary>
/// <param name="WeldTask"></param>
public static void UpdateWeldTask(Model.HJGL_WeldTask WeldTask)
{
Model.SGGLDB db = Funs.DB;
Model.HJGL_WeldTask newWeldTask = db.HJGL_WeldTask.FirstOrDefault(e => e.WeldTaskId == WeldTask.WeldTaskId);
if (newWeldTask != null)
{
newWeldTask.WeldTaskId = WeldTask.WeldTaskId;
newWeldTask.ProjectId = WeldTask.ProjectId;
newWeldTask.UnitId = WeldTask.UnitId;
newWeldTask.UnitWorkId = WeldTask.UnitWorkId;
newWeldTask.WeldJointId = WeldTask.WeldJointId;
newWeldTask.TaskDate = WeldTask.TaskDate;
newWeldTask.CoverWelderId = WeldTask.CoverWelderId;
newWeldTask.BackingWelderId = WeldTask.BackingWelderId;
newWeldTask.JointAttribute = WeldTask.JointAttribute;
newWeldTask.Tabler = WeldTask.Tabler;
newWeldTask.TableDate = WeldTask.TableDate;
newWeldTask.WeldingMode = WeldTask.WeldingMode;
newWeldTask.IsSaved = WeldTask.IsSaved;
newWeldTask.SerialNumber = WeldTask.SerialNumber;
newWeldTask.PipeLineSortIndex = WeldTask.PipeLineSortIndex;
db.SubmitChanges();
}
}
public static void UpdateCanWelderTask(string weldTaskId, string canWelderId, string canWelderCode)
{
Model.SGGLDB db = Funs.DB;
Model.HJGL_WeldTask newWeldTask = db.HJGL_WeldTask.FirstOrDefault(e => e.WeldTaskId == weldTaskId);
if (newWeldTask != null)
{
newWeldTask.CanWelderId = canWelderId;
newWeldTask.CanWelderCode = canWelderCode;
db.SubmitChanges();
}
}
public static void UpdateWelderTask(string weldTaskId, string welderId)
{
Model.SGGLDB db = Funs.DB;
Model.HJGL_WeldTask newWeldTask = db.HJGL_WeldTask.FirstOrDefault(e => e.WeldTaskId == weldTaskId);
if (newWeldTask != null)
{
newWeldTask.CoverWelderId = welderId;
newWeldTask.BackingWelderId = welderId;
db.SubmitChanges();
}
}
/// <summary>
/// 查找后返回集合增加到列表集团中
/// </summary>
/// <param name="hdItemsString"></param>
/// <returns></returns>
public static List<Model.SpWeldingDailyItem> GetWeldTaskListAddItem(string hdString)
{
List<Model.SpWeldingDailyItem> returnViewMatch = new List<Model.SpWeldingDailyItem>(); //= getWeldReportItem;
if (!string.IsNullOrEmpty(hdString))
{
List<string> totallist = Funs.GetStrListByStr(hdString, '@');
foreach (var hdItemsString in totallist)
{
List<string> list = Funs.GetStrListByStr(hdItemsString, '#');
if (list.Count() == 4)
{
string CoverWelderCode = string.Empty; //盖面焊工号
string BackingWelderCode = string.Empty; //打底焊工号
string weldingLocationCode = string.Empty;
string weldingLocationId = list[0];
var loc = BLL.Base_WeldingLocationServie.GetWeldingLocationById(weldingLocationId);
if (loc != null)
{
weldingLocationCode = loc.WeldingLocationCode;
}
string jointAttribute = list[1];
string WeldingMode = list[2];
string weldlineIdLists = list[3];
List<string> weldlineIds = Funs.GetStrListByStr(weldlineIdLists, '|');
foreach (var weldlineItem in weldlineIds)
{
var jot = Funs.DB.View_HJGL_WeldJoint.FirstOrDefault(e => e.WeldJointId == weldlineItem);
if (jot != null)
{
Model.SpWeldingDailyItem newWeldReportItem = new Model.SpWeldingDailyItem();
newWeldReportItem.WeldTaskId = SQLHelper.GetNewID();
newWeldReportItem.WeldJointId = jot.WeldJointId;
newWeldReportItem.WeldJointCode = jot.WeldJointCode;
newWeldReportItem.PipelineCode = jot.PipelineCode;
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;
newWeldReportItem.WeldingMode = WeldingMode;
newWeldReportItem.TaskDate = DateTime.Now.AddDays(1);
newWeldReportItem.IsWelding = jot.IsWelding;
// 如存在任务单,默认还是原任务单焊工
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<Model.SpWeldingDailyItem> GetWeldingTaskList(string ProjectId, string UnitWorkId,DateTime taskDate) {
// List<Model.SpWeldingDailyItem> returnViewMatch = new List<Model.SpWeldingDailyItem>();
// var GetWeldingTask = (from x in Funs.DB.View_HJGL_WeldingTask
// where x.ProjectId == ProjectId && x.UnitWorkId == UnitWorkId
// && x.TaskDate.Value.Date == taskDate.Date
// select x).ToList();
// foreach (var item in GetWeldingTask)
// {
// Model.SpWeldingDailyItem newWeldReportItem = new Model.SpWeldingDailyItem();
// newWeldReportItem.WeldTaskId = item.WeldTaskId;
// newWeldReportItem.WeldJointId = item.WeldJointId;
// newWeldReportItem.WeldJointCode = item.WeldJointCode;
// newWeldReportItem.PipelineCode = item.PipelineCode;
// newWeldReportItem.WeldTypeCode = item.WeldTypeCode;
// newWeldReportItem.JointAttribute = item.JointAttribute;
// newWeldReportItem.CanWelderId = item.CanWelderId;
// newWeldReportItem.CanWelderCode = item.CanWelderCode;
// newWeldReportItem.CoverWelderId = item.CoverWelderId;
// newWeldReportItem.BackingWelderId = item.BackingWelderId;
// newWeldReportItem.BackingWelderCode = item.BackingWelderCode;
// newWeldReportItem.CoverWelderCode = item.CoverWelderCode;
// newWeldReportItem.Size = item.Size;
// newWeldReportItem.Dia = item.Dia;
// newWeldReportItem.Thickness = item.Thickness;
// newWeldReportItem.WeldingMethodCode = item.WeldingMethodCode;
// newWeldReportItem.WeldingMode = item.WeldingMode;
// newWeldReportItem.IsWelding = item.IsWelding;
// newWeldReportItem.TaskDate =Convert.ToDateTime(item.TaskDate);
// returnViewMatch.Add(newWeldReportItem);
// }
// return returnViewMatch;
//}
/// <summary>
/// 根据Id删除一个焊接任务单明细信息
/// </summary>
/// <param name="WeldingDailyId"></param>
public static void DeleteWeldingTask(string WeldTaskId)
{
Model.SGGLDB db = Funs.DB;
Model.HJGL_WeldTask delWeldTask = db.HJGL_WeldTask.FirstOrDefault(e => e.WeldTaskId == WeldTaskId);
if (delWeldTask != null)
{
db.HJGL_WeldTask.DeleteOnSubmit(delWeldTask);
db.SubmitChanges();
}
}
}
}