This commit is contained in:
2026-05-27 23:13:47 +08:00
66 changed files with 1796 additions and 547 deletions
+24 -2
View File
@@ -70,6 +70,9 @@ namespace BLL
StockNum = m == null ? 0 : (decimal)m.StockNum,
NeedNum = x == null ? 0 : x.NeedNum,
RealNum = y == null ? 0 : y.RealNum,
Code = z == null ? null : z.Code,
HeatNo = z == null ? null : z.HeatNo,
BatchNo = z == null ? null : z.BatchNo,
MaterialName = z == null ? null : z.MaterialName,
MaterialSpec = z == null ? null : z.MaterialSpec,
MaterialUnit = z == null ? null : z.MaterialUnit,
@@ -213,6 +216,9 @@ var stockList = TwMaterialstockService.GetTw_MaterialStockByModle(twMaterialStoc
PipelineCode = z.PipelineCode,
PrefabricatedComponents = x.PrefabricatedComponents,
MaterialCode = x.MaterialCode,
Code = y.Code,
HeatNo = y.HeatNo,
BatchNo = y.BatchNo,
MaterialName = y.MaterialName,
MaterialSpec = y.MaterialSpec,
MaterialUnit = y.MaterialUnit,
@@ -240,7 +246,7 @@ var stockList = TwMaterialstockService.GetTw_MaterialStockByModle(twMaterialStoc
/// <param name="pipelineIds"></param>
/// <param name="warehouseCode"></param>
/// <returns></returns>
public static List<Tw_PipeMatMatchOutput> GetPipeMatMatch(string projectId, List<string> pipelineIds, string warehouseCode)
public static List<Tw_PipeMatMatchOutput> GetPipeMatMatch(string projectId, List<string> pipelineIds, string warehouseCode, Dictionary<string, List<string>> priorityComponents = null)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
@@ -261,6 +267,9 @@ var stockList = TwMaterialstockService.GetTw_MaterialStockByModle(twMaterialStoc
UnitWorkName = m.UnitWorkName,
PrefabricatedComponents = x.PrefabricatedComponents,
MaterialCode = x.MaterialCode,
Code = y.Code,
HeatNo = y.HeatNo,
BatchNo = y.BatchNo,
MaterialName = y.MaterialName,
MaterialSpec = y.MaterialSpec,
MaterialUnit = y.MaterialUnit,
@@ -271,7 +280,20 @@ var stockList = TwMaterialstockService.GetTw_MaterialStockByModle(twMaterialStoc
var newRequiredMaterials = new List<Tw_PipeMatMatchOutput>();
foreach (string id in pipelineIds)
{
newRequiredMaterials.AddRange(requiredMaterials.Where(x => x.PipelineId == id));
var pipelineMaterials = requiredMaterials.Where(x => x.PipelineId == id).ToList();
if (priorityComponents != null && priorityComponents.ContainsKey(id) && priorityComponents[id] != null && priorityComponents[id].Any())
{
var components = priorityComponents[id];
newRequiredMaterials.AddRange(pipelineMaterials
.Where(x => components.Contains(x.PrefabricatedComponents))
.OrderBy(x => components.IndexOf(x.PrefabricatedComponents)));
newRequiredMaterials.AddRange(pipelineMaterials
.Where(x => !components.Contains(x.PrefabricatedComponents)));
}
else
{
newRequiredMaterials.AddRange(pipelineMaterials);
}
}
results = GetMatMatchOutput(newRequiredMaterials, warehouseCode, projectId);
return results;
@@ -66,6 +66,9 @@ namespace BLL
y.PipelineCode,
x.InOutPlanMasterId,
x.MaterialCode,
Code = mat.Code,
mat.HeatNo,
mat.BatchNo,
x.PrefabricatedComponents,
x.Number,
mat.MaterialName,
@@ -219,7 +222,10 @@ namespace BLL
= master.CusBillCode,
线 = pipe.PipelineCode,
= x.PrefabricatedComponents,
= x.MaterialCode,
= x.MaterialCode,
= y.Code,
= y.HeatNo,
= y.BatchNo,
= y.MaterialName,
= y.MaterialDef,
= y.MaterialUnit,
@@ -228,4 +234,4 @@ namespace BLL
return q;
}
}
}
}
+8 -3
View File
@@ -43,13 +43,16 @@ namespace BLL
InOutPlanMasterId = x.InOutPlanMasterId,
PipelineComponentId = x.PipelineComponentId,
MaterialCode = x.MaterialCode,
Code = mat.Code,
HeatNo = x.HeatNo,
BatchNo = x.BatchNo,
PlanNum = x.PlanNum,
ActNum = x.ActNum,
PipelineComponentCode = y.PipelineComponentCode,
MaterialName = mat.MaterialName,
MaterialDef = mat.MaterialDef,
StockNum = stock.StockNum ?? 0,
DeliveryDate = x.DeliveryDate,
}
;
@@ -117,11 +120,13 @@ namespace BLL
Id = SQLHelper.GetNewID(),
InOutPlanMasterId = inoutPlanMasterId,
PipelineComponentId = item.PipelineComponentId,
MaterialCode = item.MaterialCode,
MaterialCode = item.MaterialCode + "-" + item.HeatNo + "-" + item.BatchNo,
PlanNum = item.PlanNum,
ActNum = item.ActNum,
SortIndex = sortIndex,
HeatNo = item.HeatNo
HeatNo = item.HeatNo,
BatchNo = item.BatchNo,
DeliveryDate = item.DeliveryDate
};
sortIndex++;
details.Add(table);
@@ -196,4 +201,4 @@ namespace BLL
}
}
}
}
+54 -18
View File
@@ -275,9 +275,9 @@ namespace BLL
{
//if (temeplateDtoIns.Count == 0)
//{
responeData.code = 0;
responeData.message = errorWarehouseCode + "仓库不存在!";
return responeData;
responeData.code = 0;
responeData.message = errorWarehouseCode + "仓库不存在!";
return responeData;
//}
}
var typeString = temeplateDtoIns.Select(x => x.TypeString).Distinct().ToList(); //获取导入文件的类型
@@ -293,7 +293,20 @@ namespace BLL
responeData.message = errorWarehouseCode + "每次只能导入一种类型!";
return responeData;
}
var dateTypeString = temeplateDtoIns.Select(x => x.DeliveryDate).Distinct().ToList(); //获取导入文件的类型
foreach (var item in dateTypeString)
{
try
{
DateTime date = Convert.ToDateTime(item);
}
catch (Exception)
{
responeData.code = 0;
responeData.message = errorWarehouseCode + "到货时间[" + item + "]格式错误!";
return responeData;
}
}
//var materialCodeList = temeplateDtoIns.Select(x => x.MaterialCode).Distinct().ToList(); //获取导入文件的材料编码
//var IsExitMaterialCode =
@@ -707,18 +720,41 @@ namespace BLL
return;
}
var pipelineList = db.View_HJGL_WeldingTask.Where(e => e.UnitWorkId == unitworkid && e.UnitId == unitid && e.TaskDate.Value.Date == date.Date && e.SerialNumber == serialNumber).OrderBy(x => x.PipeLineSortIndex).Select(x => x.PipelineId).Distinct().ToList();
var taskWeldJointIds = db.View_HJGL_WeldingTask
.Where(e => e.UnitWorkId == unitworkid && e.UnitId == unitid && e.TaskDate.Value.Date == date.Date && e.SerialNumber == serialNumber && e.WeldJointId != null)
.Select(e => e.WeldJointId)
.Distinct()
.ToList();
var taskComponents = (from relation in db.HJGL_Pipeline_ComponentJoint
join component in db.HJGL_Pipeline_Component on relation.PipelineComponentId equals component.PipelineComponentId into componentJoin
from componentItem in componentJoin.DefaultIfEmpty()
join weldJointItem in db.HJGL_WeldJoint on relation.WeldJointId equals weldJointItem.WeldJointId
where taskWeldJointIds.Contains(relation.WeldJointId)
&& weldJointItem.PipelineId != null
&& (relation.PipelineComponentCode != null || (componentItem != null && componentItem.PipelineComponentCode != null))
select new
{
PipelineId = weldJointItem.PipelineId,
PipelineComponentCode = componentItem != null && componentItem.PipelineComponentCode != null ? componentItem.PipelineComponentCode : relation.PipelineComponentCode
}).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) && x.PrefabricatedComponents != null
select new
{
x.PipelineId,
x.PrefabricatedComponents,
x.MaterialCode,
x.Number,
y.MaterialUnit,
};
var allMaterDatial = (from x in db.HJGL_PipeLineMat
join y in db.HJGL_MaterialCodeLib on x.MaterialCode equals y.MaterialCode
where pipelineList.Contains(x.PipelineId) && x.PrefabricatedComponents != null
select new
{
x.PipelineId,
x.PrefabricatedComponents,
x.MaterialCode,
x.Number,
y.MaterialUnit,
}).ToList();
var componentPipelineIds = taskComponents.Select(x => x.PipelineId).Distinct().ToList();
var MaterDatial = taskComponents.Any()
? allMaterDatial.Where(mat => !componentPipelineIds.Contains(mat.PipelineId)
|| taskComponents.Any(component => component.PipelineId == mat.PipelineId
&& component.PipelineComponentCode == mat.PrefabricatedComponents)).ToList()
: allMaterDatial;
//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)
@@ -774,7 +810,7 @@ namespace BLL
};
TwInOutplandetailService.Add(detail);
}
var twinoutplandetailRelationList = MaterDatial.ToList().Select(x => new Tw_InOutPlanDetail_Relation
var twinoutplandetailRelationList = MaterDatial.Select(x => new Tw_InOutPlanDetail_Relation
{
PipelineId = x.PipelineId,
MaterialCode = x.MaterialCode,
@@ -813,7 +849,7 @@ namespace BLL
};
TwInOutplandetailService.Add(detail);
}
var twinoutplandetailRelationList = MaterDatial.ToList().Select(x => new Tw_InOutPlanDetail_Relation
var twinoutplandetailRelationList = MaterDatial.Select(x => new Tw_InOutPlanDetail_Relation
{
PipelineId = x.PipelineId,
MaterialCode = x.MaterialCode,
@@ -828,4 +864,4 @@ namespace BLL
}
}
}
@@ -45,6 +45,9 @@ namespace BLL
InputMasterId = x.InputMasterId,
CusBillCode = master.CusBillCode,
MaterialCode = x.MaterialCode,
Code = mat.Code,
HeatNo = mat.HeatNo,
BatchNo = mat.BatchNo,
MaterialName = mat.MaterialName,
MaterialDef = mat.MaterialDef,
BarCode = x.BarCode
+7 -1
View File
@@ -40,6 +40,9 @@ namespace BLL
InputMasterId = x.InputMasterId,
PipelineComponentId = x.PipelineComponentId,
MaterialCode = x.MaterialCode,
Code = mat.Code,
HeatNo = mat.HeatNo,
BatchNo = mat.BatchNo,
PlanNum = x.PlanNum,
ActNum = x.ActNum,
PipelineComponentCode = y.PipelineComponentCode,
@@ -135,7 +138,10 @@ namespace BLL
select new
{
= y.CusBillCode,
= x.MaterialCode,
= x.MaterialCode,
= mat.Code,
= mat.HeatNo,
= mat.BatchNo,
= mat.MaterialName,
= mat.MaterialDef,
= x.PlanNum,
+4 -1
View File
@@ -42,6 +42,9 @@ namespace BLL
PipeLineMatCode = x.PipeLineMatCode,
StockNum = x.StockNum,
ProjectId = x.ProjectId,
Code = mat.Code,
HeatNo = mat.HeatNo,
BatchNo = mat.BatchNo,
MaterialName = mat.MaterialName,
MaterialSpec = mat.MaterialSpec,
MaterialUnit = mat.MaterialUnit,
@@ -158,4 +161,4 @@ namespace BLL
}
}
}
}
}
+8 -2
View File
@@ -44,6 +44,9 @@ namespace BLL
TypeInt = master.TypeInt,
PipelineComponentId = x.PipelineComponentId,
MaterialCode = x.MaterialCode,
Code = mat.Code,
HeatNo = mat.HeatNo,
BatchNo = mat.BatchNo,
PlanNum = x.PlanNum,
ActNum = x.ActNum,
PipelineComponentCode = y.PipelineComponentCode,
@@ -155,7 +158,10 @@ namespace BLL
select new
{
= master.CusBillCode,
= x.MaterialCode,
= x.MaterialCode,
= y.Code,
= y.HeatNo,
= y.BatchNo,
= y.MaterialName,
= y.MaterialDef,
= x.PlanNum,
@@ -165,4 +171,4 @@ namespace BLL
}
}
}
}
@@ -30,13 +30,15 @@
{
MaterialCode = codeLib.MaterialCode,
HeatNo = codeLib.HeatNo,
BatchNo = codeLib.BatchNo,
MaterialName = codeLib.MaterialName,
MaterialSpec = codeLib.MaterialSpec,
MaterialMade = codeLib.MaterialMade,
MaterialDef = codeLib.MaterialDef,
PipeGrade = codeLib.PipeGrade,
MaterialUnit = codeLib.MaterialUnit,
ProjectId = codeLib.ProjectId
ProjectId = codeLib.ProjectId,
Code = codeLib.Code
};
db.HJGL_MaterialCodeLib.InsertOnSubmit(newCodeLib);
db.SubmitChanges();
@@ -58,12 +60,14 @@
if (newCodeLib != null)
{
newCodeLib.HeatNo = codeLib.HeatNo;
newCodeLib.BatchNo = codeLib.BatchNo;
newCodeLib.MaterialName = codeLib.MaterialName;
newCodeLib.MaterialSpec = codeLib.MaterialSpec;
newCodeLib.MaterialMade = codeLib.MaterialMade;
newCodeLib.MaterialDef = codeLib.MaterialDef;
newCodeLib.PipeGrade = codeLib.PipeGrade;
newCodeLib.MaterialUnit = codeLib.MaterialUnit;
newCodeLib.Code = codeLib.Code;
db.SubmitChanges();
}
}
@@ -94,20 +98,28 @@
{
var materialCodes = from x in db.HJGL_MaterialCodeLib select x.MaterialCode;
var ls = from x in list
where !materialCodes.Contains(x.MaterialCode)
where !materialCodes.Contains(x.MaterialCode + "-" + x.HeatNo + "-" + x.BatchNo)
select x;
List<string> codes = new List<string>();
List<Model.HJGL_MaterialCodeLib> details = new List<Model.HJGL_MaterialCodeLib>();
foreach (var item in ls)
{
Model.HJGL_MaterialCodeLib table = new Model.HJGL_MaterialCodeLib
if (!codes.Contains(item.MaterialCode + "-" + item.HeatNo + "-" + item.BatchNo))
{
MaterialCode = item.MaterialCode,
HeatNo = item.HeatNo,
MaterialName = item.MaterialName,
MaterialSpec = item.MaterialSpec,
MaterialUnit = item.MaterialUnit
};
details.Add(table);
Model.HJGL_MaterialCodeLib table = new Model.HJGL_MaterialCodeLib
{
MaterialCode = item.MaterialCode + "-" + item.HeatNo + "-" + item.BatchNo,
HeatNo = item.HeatNo,
BatchNo = item.BatchNo,
MaterialName = item.MaterialName,
MaterialSpec = item.MaterialSpec,
MaterialUnit = item.MaterialUnit,
MaterialDef = item.MaterialDef,
Code = item.MaterialCode
};
details.Add(table);
codes.Add(table.MaterialCode);
}
}
db.HJGL_MaterialCodeLib.InsertAllOnSubmit(details);
@@ -108,6 +108,9 @@ namespace BLL
public static DataTable GetSHOPStockDt(string projectid)
{
string strSql = @" SELECT mat.MaterialCode,
lib.Code,
lib.HeatNo,
lib.BatchNo,
lib.MaterialName,
lib.MaterialSpec,
lib.MaterialUnit,
@@ -157,7 +160,7 @@ namespace BLL
GROUP BY stockused.MaterialCode,stockused.MaterialName,stockused.MaterialUnit,stockused.MaterialSpec,stockused.MaterialMade ) AS aa
ON mat.MaterialCode=aa.MaterialCode
WHERE mat.projectid=@projectid
GROUP BY mat.MaterialCode,lib.MaterialName,lib.MaterialSpec,lib.MaterialMade,lib.MaterialUnit,aa.num
GROUP BY mat.MaterialCode,lib.Code,lib.HeatNo,lib.BatchNo,lib.MaterialName,lib.MaterialSpec,lib.MaterialMade,lib.MaterialUnit,aa.num
";
List<SqlParameter> listStr = new List<SqlParameter>();
@@ -171,6 +174,9 @@ namespace BLL
{
string strSql = @"
SELECT mat.MaterialCode,
lib.Code,
lib.HeatNo,
lib.BatchNo,
lib.MaterialName,
lib.MaterialSpec,
lib.MaterialUnit,
@@ -223,7 +229,7 @@ namespace BLL
ON mat.MaterialCode=aa.MaterialCode
WHERE mat.projectid=@Projectid
AND Ins.State=@State
GROUP BY mat.MaterialCode,lib.MaterialName,lib.MaterialSpec,lib.MaterialMade,lib.MaterialUnit,aa.num ";
GROUP BY mat.MaterialCode,lib.Code,lib.HeatNo,lib.BatchNo,lib.MaterialName,lib.MaterialSpec,lib.MaterialMade,lib.MaterialUnit,aa.num ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@Projectid", projectid));
listStr.Add(new SqlParameter("@PipeArea", BLL.PipelineService.PipeArea_SHOP));