增加焊接任务单打印
This commit is contained in:
@@ -7,6 +7,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media.Animation;
|
||||
|
||||
namespace BLL
|
||||
{
|
||||
@@ -132,6 +133,70 @@ namespace BLL
|
||||
}
|
||||
}
|
||||
|
||||
public static decimal? GetPipeMatch(string pipelineId)
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
var twPipeMatMatchOutputs = new List<Tw_PipeMatMatchOutput>();
|
||||
var pipelineModel = PipelineService.GetPipelineByPipelineId(pipelineId);
|
||||
string warehouseCode = PipelineService
|
||||
.GetPipeArea().FirstOrDefault(x => x.Value == pipelineModel.PipeArea.ToString())
|
||||
?.Text;
|
||||
// 获取所需材料列表
|
||||
var requiredMaterials = (from x in db.HJGL_PipeLineMat
|
||||
join y in db.HJGL_MaterialCodeLib on x.MaterialCode equals y.MaterialCode
|
||||
join z in db.HJGL_Pipeline on x.PipelineId equals z.PipelineId
|
||||
join m in db.WBS_UnitWork on z.UnitWorkId equals m.UnitWorkId
|
||||
where z.PipelineId== pipelineId && x.PrefabricatedComponents != "" //x.PrefabricatedComponents!="" 用于筛选非散件材料
|
||||
select new Tw_PipeMatMatchOutput
|
||||
{
|
||||
Id = Guid.NewGuid().ToString(),
|
||||
PipelineId = x.PipelineId,
|
||||
PipelineCode = z.PipelineCode,
|
||||
UnitWorkId = z.UnitWorkId,
|
||||
UnitWorkName = m.UnitWorkName,
|
||||
PrefabricatedComponents = x.PrefabricatedComponents,
|
||||
MaterialCode = x.MaterialCode,
|
||||
MaterialName = y.MaterialName,
|
||||
MaterialSpec = y.MaterialSpec,
|
||||
MaterialUnit = y.MaterialUnit,
|
||||
MaterialDef = y.MaterialDef,
|
||||
NeedNum = x.Number,
|
||||
}
|
||||
).ToList();
|
||||
Tw_MaterialStockOutput tw_MaterialStockOutput = new Tw_MaterialStockOutput();
|
||||
tw_MaterialStockOutput.WarehouseCode = warehouseCode;
|
||||
var stockList = TwMaterialstockService.GetTw_MaterialStockByModle(tw_MaterialStockOutput).ToList();//获取库存列表
|
||||
|
||||
// 模拟库存管理
|
||||
foreach (var material in requiredMaterials)
|
||||
{
|
||||
var thisMaterialStockNum = stockList.FirstOrDefault(x => x.PipeLineMatCode == material.MaterialCode)?.StockNum ?? 0;
|
||||
if (thisMaterialStockNum >= material.NeedNum)
|
||||
{
|
||||
material.MatchNum = material.NeedNum;
|
||||
material.MatchRate = 1;
|
||||
material.MatchRateString = "100%";
|
||||
}
|
||||
else
|
||||
{
|
||||
material.MatchNum = thisMaterialStockNum < 0 ? 0 : thisMaterialStockNum;
|
||||
material.MatchRate = (material.NeedNum == 0 ? 0 : material.MatchNum ?? 0 / material.NeedNum);
|
||||
material.MatchRateString = Math.Round((decimal)material.MatchRate * 100, 2).ToString() + "%";
|
||||
|
||||
}
|
||||
//修改stockList对应的库存数量
|
||||
var stock = stockList.FirstOrDefault(x => x.PipeLineMatCode == material.MaterialCode);
|
||||
if (stock != null)
|
||||
{
|
||||
stock.StockNum -= material.MatchNum;
|
||||
}
|
||||
}
|
||||
twPipeMatMatchOutputs = requiredMaterials;
|
||||
var result = twPipeMatMatchOutputs.Count==0?0: twPipeMatMatchOutputs.Sum(x=>x.MatchRate)/ twPipeMatMatchOutputs.Count;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public static List<Tw_PipeMatMatchOutput> GetMatMatchByOutPlanMasterId(string outPlanMasterId)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user