This commit is contained in:
2024-09-24 20:38:50 +08:00
parent 4e9832dc8a
commit 8edf7e1389
46 changed files with 3109 additions and 748 deletions
@@ -308,114 +308,5 @@ namespace BLL
db.SubmitChanges();
}
}
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 outMateriaList = db.HJGL_PipeLineMat.Where(x => pipelineList.Contains(x.PipelineId))
// .GroupBy(x => x.MaterialCode).Select(x => new
// {
// x.Key,
// planNum = x.Sum(y => y.Number)??0,
// }).ToList();
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 outPlanDetailListPiece = outMateriaList.Where(x => x.MaterialName.Contains("个"));//管件
var outPlanDetailListOthere = outMateriaList.Where(x => x.MaterialName.Contains("米"));//管段
var weldTaskCode = 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);
}
}
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);
}
}
}
}
}