SGGL_SHJ/SGGL/BLL/CLGL/TwInOutplanmasterService.cs

683 lines
32 KiB
C#

using EmitMapper;
using FineUIPro;
using Microsoft.Office.Interop.Word;
using MiniExcelLibs;
using Model;
using NPOI.Util;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using System.Text;
using System.Web.UI.WebControls;
namespace BLL
{
public static class TwInOutplanmasterService
{
#region
/// <summary>
/// 记录数
/// </summary>
public static int Count
{
get;
set;
}
public static IQueryable<Model.Tw_InOutMasterOutput> GetModle(Model.Tw_InOutMasterOutput table)
{
var q = from x in Funs.DB.Tw_InOutPlanMaster
join y in Funs.DB.HJGL_WeldTask on x.WeldTaskId equals y.WeldTaskId into yy
from y in yy.DefaultIfEmpty()
join person in Funs.DB.Person_Persons on x.CreateMan equals person.PersonId into persons
from person in persons.DefaultIfEmpty()
join auditperson in Funs.DB.Person_Persons on x.AuditMan equals auditperson.PersonId into auditpersons
from auditperson in auditpersons.DefaultIfEmpty()
join auditperson2 in Funs.DB.Person_Persons on x.AuditMan2 equals auditperson2.PersonId into auditpersons2
from auditperson2 in auditpersons2.DefaultIfEmpty()
join unit in Funs.DB.Base_Unit on x.ReqUnitId equals unit.UnitId into units
from unit in units.DefaultIfEmpty()
where
(string.IsNullOrEmpty(table.Id) || x.Id.Contains(table.Id)) &&
(string.IsNullOrEmpty(table.ProjectId) || x.ProjectId.Contains(table.ProjectId)) &&
(string.IsNullOrEmpty(table.CusBillCode) || x.CusBillCode.Contains(table.CusBillCode)) &&
(string.IsNullOrEmpty(table.WarehouseCode) || x.WarehouseCode.Contains(table.WarehouseCode)) &&
(string.IsNullOrEmpty(table.CreateMan) || x.CreateMan.Contains(table.CreateMan)) &&
(string.IsNullOrEmpty(table.OutputMasterId) || x.OutputMasterId.Contains(table.OutputMasterId)) &&
(string.IsNullOrEmpty(table.ReqUnitId) || x.ReqUnitId.Contains(table.ReqUnitId)) &&
(string.IsNullOrEmpty(table.UnitWorkId) || x.WeldTaskId.Contains(table.UnitWorkId))&&
(table.InOutType == null || x.InOutType == table.InOutType) &&
(table.TypeInt == null || x.TypeInt == table.TypeInt) &&
(table.Category == null || x.Category == table.Category) &&
(table.State == null || x.State == table.State)
select new Model.Tw_InOutMasterOutput
{
Id = x.Id,
ProjectId = x.ProjectId,
CusBillCode = x.CusBillCode,
WarehouseCode = x.WarehouseCode,
Source = x.Source,
InOutType = x.InOutType,
TypeInt = x.TypeInt,
State = x.State,
Category = x.Category,
CreateMan = x.CreateMan,
CreateManName = person.PersonName,
CreateDate = x.CreateDate,
OutputMasterId = x.OutputMasterId,
WeldTaskId = x.WeldTaskId,
ReqUnitId = x.ReqUnitId,
ReqUnitName = unit.UnitName,
UnitWorkId = y.UnitWorkId,
WeldTaskCode = y.TaskCode,
AuditMan = x.AuditMan,
AuditManName = auditperson.PersonName,
AuditDate = x.AuditDate,
Remark = x.Remark,
AuditManName2 = auditperson2.PersonName,
AuditDate2 = x.AuditDate2,
}
;
return q;
}
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="table"></param>
/// <param name="grid1"></param>
/// <returns></returns>
public static List<Tw_InOutMasterOutput> GetListData(Model.Tw_InOutMasterOutput table)
{
var q = GetModle(table);
Count = q.Count();
if (Count == 0)
{
return null;
}
var result = q.ToList();
// q = SortConditionHelper.SortingAndPaging(q, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
return (from x in result
select new Model.Tw_InOutMasterOutput
{
Id = x.Id,
ProjectId = x.ProjectId,
CusBillCode = x.CusBillCode,
WarehouseCode = x.WarehouseCode,
Source = x.Source,
InOutType = x.InOutType,
TypeInt = x.TypeInt,
Category = x.Category,
State = x.State,
CreateMan = x.CreateMan,
CreateManName = x.CreateManName,
CreateDate = x.CreateDate,
OutputMasterId = x.OutputMasterId,
WeldTaskId = x.WeldTaskId,
ReqUnitId = x.ReqUnitId,
ReqUnitName = x.ReqUnitName,
UnitWorkId = x.UnitWorkId,
WeldTaskCode = x.WeldTaskId != null ? x.WeldTaskId.Contains('|') ? Funs.DB.HJGL_WeldTask.FirstOrDefault(e => e.UnitWorkId == x.WeldTaskId.Split('|')[0].ToString() && e.UnitId == x.WeldTaskId.Split('|')[1].ToString() && e.TaskDate.Value.Date == Convert.ToDateTime(x.WeldTaskId.Split('|')[2].ToString()).Date)?.TaskCode : "" : "",
CategoryString = TwConst.CategoryMap.FirstOrDefault(y => y.Value == x.Category).Key,
TypeString = TwConst.TypeIntMap.FirstOrDefault(y => y.Value == x.TypeInt).Key,
StateString = TwConst.StateMap.FirstOrDefault(y => y.Value == x.State).Key,
AuditMan = x.AuditMan,
AuditManName = x.AuditManName,
AuditDate = x.AuditDate,
Remark = x.Remark,
AuditManName2 = x.AuditManName2,
AuditDate2 = x.AuditDate2,
}).ToList();
}
public static IEnumerable GetListData(Model.Tw_InOutMasterOutput table, Grid grid1)
{
var q = GetModle(table);
Count = q.Count();
if (Count == 0)
{
return null;
}
var result = q.Skip(grid1.PageSize * grid1.PageIndex).Take(grid1.PageSize).ToList();
// q = SortConditionHelper.SortingAndPaging(q, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
return from x in result
select new Model.Tw_InOutMasterOutput
{
Id = x.Id,
ProjectId = x.ProjectId,
CusBillCode = x.CusBillCode,
WarehouseCode = x.WarehouseCode,
Source = x.Source,
InOutType = x.InOutType,
TypeInt = x.TypeInt,
Category = x.Category,
State = x.State,
CreateMan = x.CreateMan,
CreateManName = x.CreateManName,
CreateDate = x.CreateDate,
OutputMasterId = x.OutputMasterId,
WeldTaskId = x.WeldTaskId,
ReqUnitId = x.ReqUnitId,
ReqUnitName = x.ReqUnitName,
UnitWorkId = x.UnitWorkId,
WeldTaskCode = x.WeldTaskId != null ? x.WeldTaskId.Contains('|') ? Funs.DB.HJGL_WeldTask.FirstOrDefault(e => e.UnitWorkId == x.WeldTaskId.Split('|')[0].ToString() && e.UnitId == x.WeldTaskId.Split('|')[1].ToString() && e.TaskDate.Value.Date == Convert.ToDateTime(x.WeldTaskId.Split('|')[2].ToString()).Date)?.TaskCode : "" : "",
CategoryString = TwConst.CategoryMap.FirstOrDefault(y => y.Value == x.Category).Key,
TypeString = TwConst.TypeIntMap.FirstOrDefault(y => y.Value == x.TypeInt).Key,
StateString = TwConst.StateMap.FirstOrDefault(y => y.Value == x.State).Key,
AuditMan = x.AuditMan,
AuditManName = x.AuditManName,
AuditDate = x.AuditDate,
Remark = x.Remark,
AuditManName2 = x.AuditManName2,
AuditDate2 = x.AuditDate2,
};
}
#endregion
/// <summary>
/// 导入数据
/// </summary>
/// <param name="path"></param>
/// <param name="projectid"></param>
/// <param name="creatUserId"></param>
/// <returns></returns>
public static ResponeData ImportData(string OriFileName,string path, string projectid, string creatUserId)
{
var responeData = new ResponeData();
List<Tw_InputDataIn> temeplateDtoIns;
try
{
temeplateDtoIns = MiniExcel.Query<Tw_InputDataIn>(path, startCell: "A1").ToList();
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = "模板错误:" + ex.ToString();
return responeData;
}
#region
if (temeplateDtoIns.Count == 0)
{
responeData.code = 0;
responeData.message = "导入数据为空!";
return responeData;
}
var warehouseCodeList = temeplateDtoIns.Select(x => x.WarehouseCode).Distinct().ToList(); //获取导入文件的仓库编号
string errorWarehouseCode = "";
foreach (var item in warehouseCodeList)
{
if (!DropListService.HJGL_WarehouseCode().Select(x=>x.Value== item).Any())
{
errorWarehouseCode+=item+",";
}
}
if (!string.IsNullOrEmpty(errorWarehouseCode))
{
if (temeplateDtoIns.Count == 0)
{
responeData.code = 0;
responeData.message = errorWarehouseCode+"仓库不存在!";
return responeData;
}
}
var materialCodeList = temeplateDtoIns.Select(x => x.MaterialCode).Distinct().ToList(); //获取导入文件的材料编码
var IsExitMaterialCode=
from x in Funs.DB.HJGL_MaterialCodeLib
where materialCodeList.Contains(x.MaterialCode)
select x.MaterialCode;
if (IsExitMaterialCode.Count() < materialCodeList.Count)
{
var errorMaterialCode = materialCodeList.Except(IsExitMaterialCode.ToList());
if (errorMaterialCode.Count() > 0)
{
responeData.code = 0;
responeData.message = string.Join(",", errorMaterialCode) + "材料不存在!";
return responeData;
}
}
string cusbilcode = GetDataInCusBillCode(projectid,UnitService.GetUnitCodeByUnitId(Person_PersonsService.GetPerson_PersonsById(creatUserId).UnitId));
foreach (var item in temeplateDtoIns)
{
item.CusBillCode = cusbilcode;
}
/*var queryAll = new Tw_InOutMasterOutput()
{
ProjectId = projectid
};
var queryAllresult = GetModle(queryAll).Select(x => x.CusBillCode).Distinct().ToList();//查询所有的编号
var CusBillCodeList = temeplateDtoIns.Select(x => x.CusBillCode).Distinct().ToList(); //获取导入文件的编号
var IsContain = CusBillCodeList.Intersect(queryAllresult).ToList(); //判断导入文件中是有已存在的编号
if (IsContain.Count>0)
{
responeData.code = 0;
responeData.message = string.Join(",", IsContain)+ "编号已存在!";
return responeData;
}*/
var CusBillCodeList = temeplateDtoIns.Select(x => x.CusBillCode).Distinct().ToList(); //获取导入文件的编号
#endregion
//根据申请单编号分组插入数据
foreach (var CusBillCode in CusBillCodeList)
{
var CusBillCodeDtoIns = temeplateDtoIns.Where(x => x.CusBillCode == CusBillCode).ToList();
var mapper =
ObjectMapperManager.DefaultInstance.GetMapper<List<Tw_InputDataIn>, List<Model.Tw_InOutPlanMaster>>();
var mapperDetail =
ObjectMapperManager.DefaultInstance.GetMapper<List<Tw_InputDataIn>, List<Tw_InOutPlanDetail>>();
//通过映射实体赋值
var twInOutPlanMaster = mapper.Map(CusBillCodeDtoIns).FirstOrDefault();
var twInOutPlanDetails = mapperDetail.Map(CusBillCodeDtoIns.Where(x => !string.IsNullOrEmpty(x.MaterialCode) && !string.IsNullOrEmpty(x.PlanNum)).ToList());
twInOutPlanMaster.Id = SQLHelper.GetNewID();
twInOutPlanMaster.InOutType= (int)TwConst.InOutType.;
twInOutPlanMaster.State = (int)TwConst.State.;
twInOutPlanMaster.TypeInt= (int)TwConst.TypeInt.;
twInOutPlanMaster.Category= (int)TwConst.Category.;
twInOutPlanMaster.ProjectId = projectid;
twInOutPlanMaster.CreateMan = creatUserId;
twInOutPlanMaster.CreateDate = DateTime.Now;
twInOutPlanMaster.Remark = OriFileName;
Add(twInOutPlanMaster);
TwInOutplandetailService.AddList(twInOutPlanDetails, twInOutPlanMaster.Id); //插入入库明细
}
return responeData;
}
public static Model.Tw_InOutPlanMaster GetById(string Id)
{
return Funs.DB.Tw_InOutPlanMaster.FirstOrDefault(x => x.Id == Id);
}
public static void Add(Model.Tw_InOutPlanMaster newtable)
{
Model.Tw_InOutPlanMaster table = new Model.Tw_InOutPlanMaster
{
Id = newtable.Id,
ProjectId = newtable.ProjectId,
CusBillCode = newtable.CusBillCode,
WarehouseCode = newtable.WarehouseCode,
Source = newtable.Source,
Category = newtable.Category,
InOutType = newtable.InOutType,
TypeInt = newtable.TypeInt,
State = newtable.State,
CreateMan = newtable.CreateMan,
CreateDate = newtable.CreateDate,
OutputMasterId = newtable.OutputMasterId,
WeldTaskId = newtable.WeldTaskId,
ReqUnitId = newtable.ReqUnitId,
AuditMan = newtable.AuditMan,
AuditDate = newtable.AuditDate,
Remark = newtable.Remark,
AuditMan2=newtable.AuditMan2,
AuditDate2=newtable.AuditDate2,
};
Funs.DB.Tw_InOutPlanMaster.InsertOnSubmit(table);
Funs.DB.SubmitChanges();
}
public static void Update(Model.Tw_InOutPlanMaster newtable)
{
Model.Tw_InOutPlanMaster table = Funs.DB.Tw_InOutPlanMaster.FirstOrDefault(x => x.Id == newtable.Id);
if (table != null)
{
table.Id = newtable.Id;
table.ProjectId = newtable.ProjectId;
table.CusBillCode = newtable.CusBillCode;
table.WarehouseCode = newtable.WarehouseCode;
table.Category = newtable.Category;
table.Source = newtable.Source;
table.InOutType = newtable.InOutType;
table.TypeInt = newtable.TypeInt;
table.State = newtable.State;
table.CreateMan = newtable.CreateMan;
table.CreateDate = newtable.CreateDate;
table.OutputMasterId = newtable.OutputMasterId;
table.WeldTaskId = newtable.WeldTaskId;
table.ReqUnitId = newtable.ReqUnitId;
table.AuditMan = newtable.AuditMan;
table.AuditDate = newtable.AuditDate;
table.Remark = newtable.Remark;
table.AuditMan2 = newtable.AuditMan2;
table.AuditDate2 = newtable.AuditDate2;
Funs.DB.SubmitChanges();
}
}
public static void DeleteById(string Id)
{
Model.Tw_InOutPlanMaster table = Funs.DB.Tw_InOutPlanMaster.FirstOrDefault(x => x.Id == Id);
if (table != null)
{
TwInOutplandetailService.DeleteByInOutPlanMasterId(table.Id);
TwInoutplandetailRelationService.DeleteByInOutPlanMasterId(table.Id);
Funs.DB.Tw_InOutPlanMaster.DeleteOnSubmit(table);
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 根据出库单生成计划单
/// </summary>
/// <param name="outputMasterId"></param>
/// <param name="typeInt"></param>
/// <returns></returns>
public static string GenPlanMasterByOutputMasterId(string outputMasterId,TwConst.TypeInt typeInt)
{
string message = "";
#region
//获取出库单
var outMasterQuery = new Tw_InOutMasterOutput();
outMasterQuery.Id = outputMasterId;
var outMaster = TwOutputmasterService.GetListData(outMasterQuery) .FirstOrDefault() ;
if (outMaster == null || outMaster.State != (int)TwConst.State.)
{
message = "出库单状态错误,无法生成计划单!";
return message;
}
//判断是否已经生成过计划单
var queryIsExitInMaster = new Tw_InOutMasterOutput();
queryIsExitInMaster.OutputMasterId = outMaster.Id;
queryIsExitInMaster.TypeInt= (int)typeInt;
var IsExitInMaster = GetModle(queryIsExitInMaster).FirstOrDefault();
if (IsExitInMaster != null)
{
message = "该出库单已生成过计划单";
return message;
}
//明细校验
Tw_InOutDetailOutput query = new Tw_InOutDetailOutput();
query.OutputMasterId = outputMasterId;
var details = TwOutputdetailService.GetByModle(query).ToList();
switch (typeInt)
{
case TwConst.TypeInt.:
details = details.Where(x => x.PlanNum > x.ActNum).ToList();
foreach (var item in details)
{
item.PlanNum = (item.PlanNum - item.ActNum);
}
if (details.Count==0)
{
message = "该出库单无需补料";
return message;
}
break;
case TwConst.TypeInt.退:
details = details.Where(x => x.PlanNum < x.ActNum).ToList();
foreach (var item in details)
{
item.PlanNum = (item.ActNum - item.PlanNum);
}
if (details.Count == 0)
{
message = "该出库单无需退料";
return message;
}
break;
}
#endregion
//生成计划单
var planMasterModel = new Model.Tw_InOutMasterOutput()
{
Id = Guid.NewGuid().ToString(),
OutputMasterId = outMaster.Id,
ProjectId = outMaster.ProjectId,
WarehouseCode = outMaster.WarehouseCode,
Source = 2,
Category = outMaster.Category,
TypeInt = outMaster.TypeInt,
State = (int)TwConst.State.,
CreateMan = outMaster.CreateMan,
CreateDate = DateTime.Now,
ReqUnitId = outMaster.ReqUnitId,
WeldTaskId = GetById(outMaster.InOutPlanMasterId).WeldTaskId
};
switch (typeInt)
{
case TwConst.TypeInt.:
planMasterModel.CusBillCode = GetCusBillCodeByTaskCode(outMaster.WeldTaskCode,TwConst.TypeInt.,(BLL.TwConst.Category)planMasterModel.Category);
planMasterModel.TypeInt= (int)TwConst.TypeInt.;
planMasterModel.InOutType= (int)TwConst.InOutType.;
break;
case TwConst.TypeInt.退:
planMasterModel.CusBillCode = GetCusBillCodeByTaskCode(outMaster.WeldTaskCode, TwConst.TypeInt.退, (BLL.TwConst.Category)planMasterModel.Category);
planMasterModel.TypeInt = (int)TwConst.TypeInt.退;
planMasterModel.InOutType = (int)TwConst.InOutType.;
;
break;
}
Add(planMasterModel);
//生成明细
TwInOutplandetailService.AddList(details, planMasterModel.Id);
return message;
}
public static string GetCusBillCodeByTaskCode(string taskCode,TwConst.TypeInt typeInt,TwConst.Category category )
{
string cusBillCode = "";
switch (typeInt )
{
case TwConst.TypeInt.:
if (category== TwConst.Category.)
{
cusBillCode = taskCode + "-AP-P01";
}
else if (category == TwConst.Category.)
{
cusBillCode = taskCode + "-AP-PF01";
}
break;
case TwConst.TypeInt.:
if (category == TwConst.Category.)
{
cusBillCode = taskCode + "-GI-P01-AP01";
}
else if (category == TwConst.Category.)
{
cusBillCode = taskCode + "-GI-PF01-AP01";
}
break;
case TwConst.TypeInt.退:
if (category == TwConst.Category.)
{
cusBillCode = taskCode + "-GI-P01-RE01";
}
else if (category == TwConst.Category.)
{
cusBillCode = taskCode + "-GI-PF01-RE01";
}
break;
}
return cusBillCode;
}
public static string GetDataInCusBillCode(string projectid, string unitcode)
{
//生成规则是20240919-unitcode-AP-GR01
string cusBillCode = string.Format("{0:yyyyMMdd}", DateTime.Now) + unitcode + "-AP-GR";
var queryAll = new Tw_InOutMasterOutput()
{
ProjectId = projectid,
CusBillCode=cusBillCode,
};
var queryAllresult = GetModle(queryAll).Count();
cusBillCode = cusBillCode + (queryAllresult + 1).ToString().PadLeft(2, '0');
return cusBillCode;
}
/// <summary>
/// 根据任务单生成出库计划单
/// </summary>
/// <param name="unitworkid"></param>
/// <param name="unitid"></param>
/// <param name="date"></param>
/// <param name="Personid"></param>
public static void GenOutPlanmasterByWeldTaskId(string unitworkid,string unitid,DateTime date,string Personid)
{
Model.SGGLDB db = Funs.DB;
Model.View_HJGL_WeldingTask weldTask = db.View_HJGL_WeldingTask.FirstOrDefault(e => e.UnitWorkId==unitworkid && e.UnitId==unitid&& e.TaskDate.Value.Date==date.Date);
if (weldTask==null)
{
return;
}
string WeldTaskId= unitworkid+"|"+unitid+ "|" + string.Format("{0:yyyyMMMMdd}", date);
//判断是否已经生成过出库计划单
var queryIsExitInMaster = new Tw_InOutMasterOutput();
queryIsExitInMaster.WeldTaskId = WeldTaskId;
queryIsExitInMaster.InOutType=(int)TwConst.InOutType.;
queryIsExitInMaster.TypeInt = (int)TwConst.TypeInt.;
var IsExitInMaster = TwInOutplanmasterService.GetModle(queryIsExitInMaster).FirstOrDefault();
if (IsExitInMaster != null)
{
return;
}
var pipelineList = db.View_HJGL_WeldingTask.Where(e => e.UnitWorkId == unitworkid && e.UnitId == unitid && e.TaskDate.Value.Date == date.Date).Select(x=>x.PipelineId).Distinct().ToList();
var MaterDatial= from x in db.HJGL_PipeLineMat
join y in db.HJGL_MaterialCodeLib on x.MaterialCode equals y.MaterialCode
where pipelineList.Contains(x.PipelineId)
select new
{
x.PipelineId,
x.PrefabricatedComponents,
x.MaterialCode,
x.Number,
y.MaterialUnit,
};
//var outMateriaList = from x in db.HJGL_PipeLineMat
// join y in db.HJGL_MaterialCodeLib on x.MaterialCode equals y.MaterialCode
// where pipelineList.Contains(x.PipelineId)
// group x by new { x.MaterialCode, y.MaterialUnit }
// into g
// select new
// {
// g.Key.MaterialCode,
// planNum = g.Sum(x => x.Number) ?? 0,
// MaterialName = g.Key.MaterialUnit,
// };
var outMateriaList = from x in MaterDatial
group x by new { x.MaterialCode, x.MaterialUnit }
into g
select new
{
g.Key.MaterialCode,
planNum = g.Sum(x => x.Number) ?? 0,
MaterialName = g.Key.MaterialUnit,
};
var outPlanDetailListPiece = outMateriaList.Where(x => x.MaterialName.Contains("个"));//管件
var outPlanDetailListOthere = outMateriaList.Where(x => x.MaterialName.Contains("米"));//管段
var weldTaskCode = WeldTaskService.GetWeldTaskById(weldTask.WeldTaskId)?.TaskCode;
if (outPlanDetailListPiece.Any())
{
Model.Tw_InOutPlanMaster table = new Model.Tw_InOutPlanMaster
{
Id = Guid.NewGuid().ToString(),
ProjectId = weldTask.ProjectId,
// CusBillCode = string.Format("{0:yyyyMMdd}", DateTime.Now) + UnitService.GetUnitCodeByUnitId(weldTask.UnitId) + "-" + UnitWorkService.getUnitWorkByUnitWorkId(weldTask.UnitWorkId)?.UnitWorkCode + "AP-PF01",
CusBillCode=TwInOutplanmasterService.GetCusBillCodeByTaskCode(weldTaskCode,TwConst.TypeInt.,TwConst.Category.),
WarehouseCode = PipelineService.GetPipeArea().Where(x => x.Value == PipelineService.GetPipelineByPipelineId(weldTask.PipelineId).PipeArea).Select(x => x.Text).FirstOrDefault(),
Source = 1,
InOutType = (int)TwConst.InOutType.,
TypeInt = (int)TwConst.TypeInt.,
State = (int)TwConst.State.,
Category = (int)TwConst.Category.,
CreateMan = Personid,
CreateDate = DateTime.Now,
WeldTaskId = WeldTaskId,
ReqUnitId = weldTask.UnitId,
};
TwInOutplanmasterService.Add(table);
foreach (var item in outPlanDetailListPiece)
{
Model.Tw_InOutPlanDetail detail = new Model.Tw_InOutPlanDetail
{
Id = Guid.NewGuid().ToString(),
InOutPlanMasterId = table.Id,
MaterialCode = item.MaterialCode,
PlanNum = item.planNum,
};
TwInOutplandetailService.Add(detail);
}
var twinoutplandetailRelationList = MaterDatial.ToList().Select(x => new Tw_InOutPlanDetail_Relation
{
PipelineId = x.PipelineId,
MaterialCode = x.MaterialCode,
Number = x.Number,
PrefabricatedComponents = x.PrefabricatedComponents,
}).ToList();
TwInoutplandetailRelationService.AddList(twinoutplandetailRelationList, table.Id);
}
if (outPlanDetailListOthere.Any())
{
Model.Tw_InOutPlanMaster table = new Model.Tw_InOutPlanMaster
{
Id = Guid.NewGuid().ToString(),
ProjectId = weldTask.ProjectId,
CusBillCode =TwInOutplanmasterService.GetCusBillCodeByTaskCode(weldTaskCode, TwConst.TypeInt., TwConst.Category.),
WarehouseCode = PipelineService.GetPipeArea().Where(x => x.Value == PipelineService.GetPipelineByPipelineId(weldTask.PipelineId).PipeArea).Select(x => x.Text).FirstOrDefault(),
Source = 1,
InOutType = (int)TwConst.InOutType.,
TypeInt = (int)TwConst.TypeInt.,
State = (int)TwConst.State.,
Category = (int)TwConst.Category.,
CreateMan = Personid,
CreateDate = DateTime.Now,
WeldTaskId = WeldTaskId,
ReqUnitId = weldTask.UnitId,
};
TwInOutplanmasterService.Add(table);
foreach (var item in outPlanDetailListOthere)
{
Model.Tw_InOutPlanDetail detail = new Model.Tw_InOutPlanDetail
{
Id = Guid.NewGuid().ToString(),
InOutPlanMasterId = table.Id,
MaterialCode = item.MaterialCode,
PlanNum = item.planNum,
};
TwInOutplandetailService.Add(detail);
}
var twinoutplandetailRelationList = MaterDatial.ToList().Select(x => new Tw_InOutPlanDetail_Relation
{
PipelineId = x.PipelineId,
MaterialCode = x.MaterialCode,
Number = x.Number,
PrefabricatedComponents = x.PrefabricatedComponents,
}).ToList();
TwInoutplandetailRelationService.AddList(twinoutplandetailRelationList, table.Id);
}
}
}
}