材料管理修改(打印修改,出库单已审核已完成不计算匹配率)材料匹配修改,焊接任务单修改

This commit is contained in:
李鹏飞 2024-12-06 22:17:50 +08:00
parent 77fbdb946d
commit f4f7f93835
24 changed files with 850 additions and 323 deletions

Binary file not shown.

View File

@ -0,0 +1,12 @@
alter table HJGL_WeldTask
add CreateMan varchar(50),
AuditMan varchar(50),
AuditDate datetime,
AuditMan2 varchar(50),
AuditDate2 datetime;
go
alter table Tw_OutputMaster
add AuditMan2 varchar(50),
AuditDate2 datetime

View File

@ -1,4 +1,5 @@

using Microsoft.SqlServer.Dts.Runtime;
using Model;
using System;
using System.Collections;
@ -76,69 +77,54 @@ namespace BLL
}
}
public static List<Tw_PipeMatMatchOutput> GetPipeMatMatch(string projectid, List<string> pipelineIds,string WarehouseCode)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
/// <summary>
/// 根据所需材料列表和库存列表获取匹配结果
/// </summary>
/// <param name="requiredMaterials"></param>
/// <param name="warehouseCode"></param>
/// <param name="projectId"></param>
/// <returns></returns>
public static List<Tw_PipeMatMatchOutput> GetMatMatchOutput(List<Tw_PipeMatMatchOutput> requiredMaterials ,string warehouseCode ,string projectId)
{
Tw_MaterialStockOutput twMaterialStockOutput = new Tw_MaterialStockOutput
{
var results = new List<Tw_PipeMatMatchOutput>();
// 获取所需材料列表
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.ProjectId == projectid && pipelineIds.Contains(z.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)
WarehouseCode = warehouseCode,
ProjectId = projectId
};
var stockList = TwMaterialstockService.GetTw_MaterialStockByModle(twMaterialStockOutput).ToList();//获取库存列表
foreach (var material in requiredMaterials)
{
material.Id = Guid.NewGuid().ToString();
var thisMaterialStockNum = stockList.FirstOrDefault(x => x.PipeLineMatCode == material.MaterialCode)?.StockNum ?? 0;
if (thisMaterialStockNum >= material.NeedNum)
{
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;
}
material.MatchNum = material.NeedNum;
material.MatchRate = 1;
material.MatchRateString = "100%";
}
results = requiredMaterials;
return results;
}
}
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 ?? 0) * 100, 2).ToString() + "%";
}
//修改stockList对应的库存数量
var stock = stockList.FirstOrDefault(x => x.PipeLineMatCode == material.MaterialCode);
if (stock != null)
{
stock.StockNum -= material.MatchNum;
}
}
var results = requiredMaterials;
return results;
}
/// <summary>
/// 获取管线匹配率
/// </summary>
/// <param name="pipelineId"></param>
/// <returns></returns>
public static decimal? GetPipeMatch(string pipelineId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
@ -169,41 +155,18 @@ namespace BLL
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;
).ToList();
twPipeMatMatchOutputs = GetMatMatchOutput(requiredMaterials, warehouseCode, pipelineModel.ProjectId);
var result = twPipeMatMatchOutputs.Count==0?0: twPipeMatMatchOutputs.Sum(x=>x.MatchRate)/ twPipeMatMatchOutputs.Count;
return result;
}
}
/// <summary>
/// 根据出库单主键获取材料匹配信息
/// </summary>
/// <param name="outPlanMasterId"></param>
/// <returns></returns>
public static List<Tw_PipeMatMatchOutput> GetMatMatchByOutPlanMasterId(string outPlanMasterId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
@ -227,44 +190,83 @@ namespace BLL
MaterialSpec = y.MaterialSpec,
MaterialUnit = y.MaterialUnit,
MaterialDef = y.MaterialDef,
NeedNum = x.Number,
NeedNum = x.Number,
}
).ToList();
var masterModle = db.Tw_InOutPlanMaster.FirstOrDefault(x => x.Id == outPlanMasterId);
Tw_MaterialStockOutput tw_MaterialStockOutput = new Tw_MaterialStockOutput();
tw_MaterialStockOutput.WarehouseCode = masterModle.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;
}
}
results = requiredMaterials;
var masterModle = db.Tw_InOutPlanMaster.FirstOrDefault(x => x.Id == outPlanMasterId);
results = GetMatMatchOutput(requiredMaterials.OrderBy(x=>x.PipelineId).ThenBy(x=>x.MaterialCode).ToList(), masterModle.WarehouseCode, masterModle.ProjectId);
return results;
}
}
/// <summary>
/// 根据管线id获取材料匹配信息
/// </summary>
/// <param name="projectId"></param>
/// <param name="pipelineIds"></param>
/// <param name="warehouseCode"></param>
/// <returns></returns>
public static List<Tw_PipeMatMatchOutput> GetPipeMatMatch(string projectId, List<string> pipelineIds, string warehouseCode)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var results = new List<Tw_PipeMatMatchOutput>();
// 获取所需材料列表
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.ProjectId == projectId && pipelineIds.Contains(z.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();
var newRequiredMaterials = new List<Tw_PipeMatMatchOutput>();
foreach (string id in pipelineIds)
{
newRequiredMaterials.AddRange(requiredMaterials.Where(x => x.PipelineId == id));
}
results = GetMatMatchOutput(newRequiredMaterials, warehouseCode, projectId);
return results;
}
}
/// <summary>
/// 根据管线材料匹配结果,获取管线匹配率
/// </summary>
/// <param name="twPipeMatMatch"></param>
/// <returns></returns>
public static List<Tw_PipeMatchOutput> GetPipeMatch(List<Tw_PipeMatMatchOutput> twPipeMatMatch)
{
var result = twPipeMatMatch
.GroupBy(item => new { item.PipelineId, item.PipelineCode, item.UnitWorkName }) // 按 PipelineId 和 PipelineCode 分组
.Select(group => new Tw_PipeMatchOutput
{
PipelineId = group.Key.PipelineId, // 当前组的 PipelineId
PipelineCode = group.Key.PipelineCode, // 当前组的 PipelineCode
UnitWorkName = group.Key.UnitWorkName, // 当前组的 UnitWorkName
SumNeedNum = group.Sum(item => item.NeedNum),
SumMatchNum = group.Sum(item => item.MatchNum),
MatchRate = group.Sum(item => item.MatchNum) > 0 && group.Sum(item => item.NeedNum) > 0 ? (decimal)group.Sum(item => item.MatchNum) / (decimal)group.Sum(item => item.NeedNum) : 0,
MatchRateString = Math.Round((decimal)group.Sum(item => item.MatchNum) / (decimal)group.Sum(item => item.NeedNum) * 100, 2).ToString() + "%"
})
.ToList(); // 转换为 List
return result;
}
}
}

View File

@ -82,6 +82,7 @@ namespace BLL
AuditManName = auditperson.PersonName,
AuditDate = x.AuditDate,
Remark = x.Remark,
AuditMan2 = x.AuditMan2,
AuditManName2 = auditperson2.PersonName,
AuditDate2 = x.AuditDate2,
WarehouseMan = x.WarehouseMan,
@ -139,6 +140,7 @@ namespace BLL
AuditManName = x.AuditManName,
AuditDate = x.AuditDate,
Remark = x.Remark,
AuditMan2=x.AuditMan2,
AuditManName2 = x.AuditManName2,
AuditDate2 = x.AuditDate2,
WarehouseMan = x.WarehouseMan,
@ -187,9 +189,10 @@ namespace BLL
AuditManName = x.AuditManName,
AuditDate = x.AuditDate,
Remark = x.Remark,
AuditMan2 = x.AuditMan2,
AuditManName2 = x.AuditManName2,
AuditDate2 = x.AuditDate2,
WarehouseMan = x.WarehouseMan,
WarehouseMan = x.WarehouseMan,
WarehouseDate = x.WarehouseDate,
WarehouseManName= x.WarehouseManName
};

View File

@ -23,32 +23,35 @@ namespace BLL
get;
set;
}
public static IQueryable<Model.Tw_MaterialStockOutput> GetTw_MaterialStockByModle(Model.Tw_MaterialStockOutput table)
public static List<Model.Tw_MaterialStockOutput> GetTw_MaterialStockByModle(Model.Tw_MaterialStockOutput table)
{
var q = from x in Funs.DB.Tw_MaterialStock
join mat in Funs.DB.HJGL_MaterialCodeLib on x.PipeLineMatCode equals mat.MaterialCode into mm
from mat in mm.DefaultIfEmpty()
where
(string.IsNullOrEmpty(table.Id) || x.Id.Contains(table.Id)) &&
(string.IsNullOrEmpty(table.WarehouseCode) || x.WarehouseCode.Contains(table.WarehouseCode)) &&
(string.IsNullOrEmpty(table.PipeLineMatCode) || x.PipeLineMatCode.Contains(table.PipeLineMatCode)) &&
(string.IsNullOrEmpty(table.MaterialUnit) || mat.MaterialUnit.Contains(table.MaterialUnit)) &&
(string.IsNullOrEmpty(table.ProjectId) || x.ProjectId.Contains(table.ProjectId))
select new Model.Tw_MaterialStockOutput
{
Id = x.Id,
WarehouseCode = x.WarehouseCode,
PipeLineMatCode = x.PipeLineMatCode,
StockNum = x.StockNum,
ProjectId = x.ProjectId,
MaterialName = mat.MaterialName,
MaterialSpec = mat.MaterialSpec,
MaterialUnit = mat.MaterialUnit,
MaterialDef = mat.MaterialDef
}
;
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var q = from x in db.Tw_MaterialStock
join mat in db.HJGL_MaterialCodeLib on x.PipeLineMatCode equals mat.MaterialCode into mm
from mat in mm.DefaultIfEmpty()
where
(string.IsNullOrEmpty(table.Id) || x.Id.Contains(table.Id)) &&
(string.IsNullOrEmpty(table.WarehouseCode) || x.WarehouseCode.Contains(table.WarehouseCode)) &&
(string.IsNullOrEmpty(table.PipeLineMatCode) || x.PipeLineMatCode.Contains(table.PipeLineMatCode)) &&
(string.IsNullOrEmpty(table.MaterialUnit) || mat.MaterialUnit.Contains(table.MaterialUnit)) &&
(string.IsNullOrEmpty(table.ProjectId) || x.ProjectId.Contains(table.ProjectId))
select new Model.Tw_MaterialStockOutput
{
Id = x.Id,
WarehouseCode = x.WarehouseCode,
PipeLineMatCode = x.PipeLineMatCode,
StockNum = x.StockNum,
ProjectId = x.ProjectId,
MaterialName = mat.MaterialName,
MaterialSpec = mat.MaterialSpec,
MaterialUnit = mat.MaterialUnit,
MaterialDef = mat.MaterialDef
}
;
return q;
return q.ToList();
}
}
/// <summary>
@ -65,7 +68,7 @@ namespace BLL
{
return null;
}
q = q.Skip(grid1.PageSize * grid1.PageIndex).Take(grid1.PageSize);
q = 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 q
select x;

View File

@ -34,6 +34,8 @@ namespace BLL
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 warehouseperson in Funs.DB.Person_Persons on x.WarehouseMan equals warehouseperson.PersonId into warehousepersons
from warehouseperson in warehousepersons.DefaultIfEmpty()
join unit in Funs.DB.Base_Unit on x.ReqUnitId equals unit.UnitId into units
@ -70,6 +72,9 @@ namespace BLL
AuditMan = x.AuditMan,
AuditManName = auditperson.PersonName,
AuditDate = x.AuditDate,
AuditMan2 = x.AuditMan2,
AuditManName2 = auditperson2.PersonName,
AuditDate2 = x.AuditDate2,
WarehouseMan = x.WarehouseMan,
WarehouseDate = x.WarehouseDate,
WarehouseManName = warehouseperson.PersonName
@ -118,6 +123,9 @@ namespace BLL
AuditMan = x.AuditMan,
AuditManName = x.AuditManName,
AuditDate = x.AuditDate,
AuditMan2 = x.AuditMan2,
AuditManName2 = x.AuditManName2,
AuditDate2 = x.AuditDate2,
WarehouseMan = x.WarehouseMan,
WarehouseManName = x.WarehouseManName,
WarehouseDate = x.WarehouseDate
@ -159,6 +167,9 @@ namespace BLL
AuditMan = x.AuditMan,
AuditManName = x.AuditManName,
AuditDate = x.AuditDate,
AuditMan2 = x.AuditMan2,
AuditManName2 = x.AuditManName2,
AuditDate2 = x.AuditDate2,
WarehouseMan = x.WarehouseMan,
WarehouseManName = x.WarehouseManName,
WarehouseDate = x.WarehouseDate
@ -192,6 +203,8 @@ namespace BLL
ReqUnitId = newtable.ReqUnitId,
AuditMan = newtable.AuditMan,
AuditDate = newtable.AuditDate,
AuditMan2 = newtable.AuditMan2,
AuditDate2 = newtable.AuditDate2,
WarehouseMan = newtable.WarehouseMan,
WarehouseDate = newtable.WarehouseDate,
};
@ -219,6 +232,8 @@ namespace BLL
table.ReqUnitId = newtable.ReqUnitId;
table.AuditMan = newtable.AuditMan;
table.AuditDate = newtable.AuditDate;
table.AuditMan2 = newtable.AuditMan2;
table.AuditDate2 = newtable.AuditDate2;
table.WarehouseMan = newtable.WarehouseMan;
table.WarehouseDate = newtable.WarehouseDate;
Funs.DB.SubmitChanges();
@ -276,6 +291,8 @@ namespace BLL
ReqUnitId = plan.ReqUnitId,
AuditMan = plan.AuditMan,
AuditDate = plan.AuditDate,
AuditMan2 = plan.AuditMan2,
AuditDate2 = plan.AuditDate2,
WarehouseMan = plan.WarehouseMan,
WarehouseDate = plan.WarehouseDate
};
@ -325,7 +342,9 @@ namespace BLL
TwMaterialstockService.UpdateStockNum(master.ProjectId, detail.MaterialCode, master.WarehouseCode, TwConst.InOutType., detail.ActNum);
}
var planModel= TwInOutplanmasterService.GetById(planId);
planModel.State= (int)TwConst.State.;
planModel.State= (int)TwConst.State.;
planModel.WarehouseMan = null;
planModel.WarehouseDate = null;
TwInOutplanmasterService.Update(planModel);
return result;
}

View File

@ -41,7 +41,7 @@ namespace BLL
string oldCode = list[0];
if (oldCode.Length > 4)
{
string partCode = oldCode.Substring(oldCode.Length - 4);
string partCode = oldCode.Substring(8,3);
int num = Funs.GetNewIntOrZero(partCode) + 1;
if (num < 10)
{

View File

@ -19,7 +19,7 @@
}
.f-grid-row.red {
background-color: Yellow;
background-color: red;
}
</style>
</head>

View File

@ -1,4 +1,5 @@
using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
@ -50,6 +51,16 @@ namespace FineUIPro.Web.CLGL
//tb = GetFilteredTable(Grid1.FilteredData, tb);
Grid1.DataSource = tb;
Grid1.DataBind();
for (int i = 0; i < Grid1.Rows.Count; i++)
{
var model = Grid1.Rows[i].DataItem as Tw_ArrivalStatisticsOutPut;
if (model?.MatchRate < 1 || model?.MatchRate == null)
{
Grid1.Rows[i].RowCssClass = "red";
}
}
}
#endregion

View File

@ -16,10 +16,15 @@
color: blue;
font-weight: bold;
}
.f-grid-row-summary .f-grid-cell-inner {
.f-grid-row-summary .f-grid-cell-inner {
font-weight: bold;
color: red;
}
.f-grid-row.red {
background-color: red;
}
</style>
</head>
<body>
@ -85,7 +90,7 @@
<f:Button ID="btnGenInOutMaster" Text="出库" Icon="ArrowRefresh" runat="server" OnClick="btnGenInOutMaster_Click" Hidden="true">
</f:Button>
<f:Button ID="btnRevokeGenInOutMaster" Text="撤销出库" Icon="ArrowRefresh" runat="server" OnClick="btnRevokeGenInOutMaster_Click" Hidden="true">
</f:Button>
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
@ -136,7 +141,7 @@
FieldType="String" HeaderText="审核人(专工)" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="AuditDate" DataField="AuditDate" SortField="AuditDate" Renderer="Date"
RendererArgument="yyyy-MM-dd" FieldType="Date" HeaderText="审核时间(专工" TextAlign="Left" HeaderTextAlign="Center">
RendererArgument="yyyy-MM-dd" FieldType="Date" HeaderText="审核时间(专工)" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="80px" ColumnID="AuditManName2" DataField="AuditManName2" SortField="AuditManName2"
FieldType="String" HeaderText="审核人(材控)" TextAlign="Left" HeaderTextAlign="Center">
@ -162,7 +167,7 @@
<Tabs>
<f:Tab ID="TabDetail" Title="出库明细" BodyPadding="1px" Layout="VBox" runat="server" AutoScroll="true">
<Items>
<f:Grid ID="Grid2" ShowBorder="False" ShowHeader="False" Title="出库明细" EnableCollapse="true"
<f:Grid ID="Grid2" ShowBorder="False" ShowHeader="False" Title="出库明细" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="Id" AllowCellEditing="true"
ClicksToEdit="2" DataIDField="Id" AllowSorting="true" SortField="MaterialCode"
SortDirection="DESC" EnableColumnLines="true" EnableTextSelection="True"
@ -192,8 +197,8 @@
<Items>
<f:Grid ID="Grid3" ShowBorder="False" ShowHeader="False" Title="管线材料明细" EnableCollapse="true" ForceFit="true"
runat="server" BoxFlex="1" DataKeyNames="Id"
ClicksToEdit="2" DataIDField="Id" AllowSorting="true" SortField="MaterialCode" ExpandAllRowGroups="false"
SortDirection="DESC" EnableRowGroup="true" DataRowGroupField="PipelineCode" AllowPaging="true" IsDatabasePaging="true" PageSize="10000" RowGroupRendererFunction="onGrid3RowGroupRenderer">
ClicksToEdit="2" DataIDField="Id" AllowSorting="true" SortField="MaterialCode" ExpandAllRowGroups="false"
SortDirection="DESC" EnableRowGroup="true" DataRowGroupField="PipelineCode" AllowPaging="true" IsDatabasePaging="true" PageSize="10000" RowGroupRendererFunction="onGrid3RowGroupRenderer">
<Columns>
<f:RenderField Width="100px" ColumnID="PipelineCode" DataField="PipelineCode" SortField="PipelineCode"
FieldType="String" HeaderText="管线号" HeaderTextAlign="Center"
@ -239,6 +244,45 @@
</f:Grid>
</Items>
</f:Tab>
<f:Tab ID="TabStrip3" Title="管线材料明细" BodyPadding="1px" Layout="VBox" runat="server" AutoScroll="true" Hidden="True">
<Items>
<f:Grid ID="Grid4" ShowBorder="False" ShowHeader="False" Title="管线材料明细" EnableCollapse="true" ForceFit="true"
runat="server" BoxFlex="1" DataKeyNames="Id"
ClicksToEdit="2" DataIDField="Id" AllowSorting="true" SortField="MaterialCode" ExpandAllRowGroups="false"
SortDirection="DESC" EnableRowGroup="true" DataRowGroupField="PipelineCode" AllowPaging="true" IsDatabasePaging="true" PageSize="10000">
<Columns>
<f:RenderField Width="100px" ColumnID="PipelineCode" DataField="PipelineCode" SortField="PipelineCode"
FieldType="String" HeaderText="管线号" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="PrefabricatedComponents" DataField="PrefabricatedComponents" SortField="PrefabricatedComponents"
FieldType="String" HeaderText="预制组件号" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MaterialCode" DataField="MaterialCode" SortField="MaterialCode"
FieldType="String" HeaderText="材料编码" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MaterialName" DataField="MaterialName" SortField="MaterialName"
FieldType="String" HeaderText="材料名称" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="MaterialDef" DataField="MaterialDef" SortField="MaterialDef"
FieldType="String" HeaderText="材料描述" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MaterialUnit" DataField="MaterialUnit" SortField="MaterialUnit"
FieldType="String" HeaderText="单位" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="NeedNum" DataField="NeedNum" SortField="NeedNum"
FieldType="String" HeaderText="所需量" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
</Columns>
</f:Grid>
</Items>
</f:Tab>
</Tabs>
</f:TabStrip>
</Items>
@ -281,23 +325,35 @@
}
function onGrid3RowGroupRenderer(groupValue, rowData) {
var Total = 0,
SumMatchNum = 0,
SumNeedNum = 0,
Len = rowData.children.length;
for (var i = 0; i < Len; i++) {
var childData = rowData.children[i];
var genderValue = childData.values['MatchRate'];
console.log(genderValue);
var MatchNum = childData.values['MatchNum'];
var NeedNum = childData.values['NeedNum'];
console.log(genderValue);
// 确保值存在再进行累加
if (genderValue !== undefined) {
genderValue = parseFloat(genderValue); // 确保是数字
genderValue = genderValue > 0 ? genderValue : 0;
Total += genderValue;
if (MatchNum !== undefined) {
MatchNum = parseFloat(MatchNum); // 确保是数字
MatchNum = MatchNum > 0 ? MatchNum : 0;
SumMatchNum += MatchNum;
}
if (NeedNum !== undefined) {
NeedNum = parseFloat(NeedNum); // 确保是数字
NeedNum = NeedNum > 0 ? NeedNum : 0;
SumNeedNum += NeedNum;
}
}
// 检查 Len 是否大于零,以防止除以零
var TotalRate = Len > 0 ? ((Total * 100) / Len).toFixed(2) + "%" : "0%";
var TotalRate = SumNeedNum > 0 ? ((SumMatchNum * 100) / SumNeedNum).toFixed(2) + "%" : "0%";
return F.formatString('{0},匹配率:{1}', groupValue, TotalRate);
}

View File

@ -102,28 +102,41 @@ namespace FineUIPro.Web.CLGL
}
private void BindDetailRelationGrid(string inOutPlanMasterId)
{
/* Model.Tw_InOutPlanDetail_Relation table = new Model.Tw_InOutPlanDetail_Relation();
table.InOutPlanMasterId = inOutPlanMasterId;
var tb = BLL.TwInoutplandetailRelationService.GetListData(table, Grid3);
Grid3.DataSource = tb;
Grid3.DataBind();
*/
var inOutPlanMasterModel = TwInOutplanmasterService.GetById(inOutPlanMasterId);
var tb = BLL.TwArrivalStatisticsService.GetMatMatchByOutPlanMasterId(inOutPlanMasterId);
Grid3.DataSource = tb;
Grid3.DataBind();
//if (tb!= null && tb.Count > 0)
//{
// string Rate = Math.Round((decimal)tb.Average(item => item.MatchRate) * 100, 2).ToString() + "%";
// JObject summary = new JObject();
// //summary.Add("Major", "全部合计");
// summary.Add("MatchRateString", Rate);
if (inOutPlanMasterModel != null)
{
if (inOutPlanMasterModel.State== (int)TwConst.State.|| inOutPlanMasterModel.State == (int)TwConst.State.)
{
TabStrip2.Hidden = true;
TabStrip3.Hidden = false;
Grid4.DataSource = tb;
Grid4.DataBind();
// Grid3.SummaryData = summary;
//}
}
else
{
TabStrip2.Hidden = false;
TabStrip3.Hidden = true;
Grid3.DataSource = tb;
Grid3.DataBind();
for (int i = 0; i < Grid3.Rows.Count; i++)
{
var model = Grid3.Rows[i].DataItem as Tw_PipeMatMatchOutput;
if (model?.MatchRate < 1 || model?.MatchRate == null)
{
Grid3.Rows[i].RowCssClass = "red";
}
}
}
}
}
#endregion

View File

@ -284,6 +284,24 @@ namespace FineUIPro.Web.CLGL
/// </remarks>
protected global::FineUIPro.Grid Grid3;
/// <summary>
/// TabStrip3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tab TabStrip3;
/// <summary>
/// Grid4 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid4;
/// <summary>
/// Window1 控件。
/// </summary>

View File

@ -132,10 +132,16 @@
RendererArgument="yyyy-MM-dd" FieldType="Date" HeaderText="发起时间" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="80px" ColumnID="AuditManName" DataField="AuditManName" SortField="AuditManName"
FieldType="String" HeaderText="审核人" TextAlign="Left" HeaderTextAlign="Center">
FieldType="String" HeaderText="审核人(专工)" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="AuditDate" DataField="AuditDate" SortField="AuditDate" Renderer="Date"
RendererArgument="yyyy-MM-dd" FieldType="Date" HeaderText="审核时间" TextAlign="Left" HeaderTextAlign="Center">
RendererArgument="yyyy-MM-dd" FieldType="Date" HeaderText="审核时间(专工)" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="80px" ColumnID="AuditManName2" DataField="AuditManName2" SortField="AuditManName2"
FieldType="String" HeaderText="审核人(材控)" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="AuditDate2" DataField="AuditDate2" SortField="AuditDate2" Renderer="Date"
RendererArgument="yyyy-MM-dd" FieldType="Date" HeaderText="审核时间(材控)" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:LinkButtonField Width="150px" ColumnID="btnInPlanMasterPrint" TextAlign="Center" CommandName="btnInPlanMasterPrint" Text="出库单打印" />

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" ReportInfo.Created="12/29/2021 10:56:08" ReportInfo.Modified="11/07/2024 16:20:11" ReportInfo.CreatorVersion="2017.1.16.0">
<Report ScriptLanguage="CSharp" ReportInfo.Created="12/29/2021 10:56:08" ReportInfo.Modified="12/06/2024 16:42:47" ReportInfo.CreatorVersion="2017.1.16.0">
<ScriptText>using System;
using System.Collections;
using System.Collections.Generic;
@ -84,7 +84,7 @@ namespace FastReport
}
</ScriptText>
<Dictionary>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaUHihKXxbhpqie4wmZgM2ymDKry7UxzO5md9ybQlkfKpN2rHYbp9GtH1LDQPa7z2vVu/kEnNnTKeHt9obmaC7TQDh0IvsUBSuzhGZdfAIK7YyBqykCgeZm5rvA6K5b7zHGdA+7pUpJ/9ZLpp1NuxWREgTkNx6oeza2Yn8AolBnrO"/>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaUHihKXxbhpqie4wmZgM2ymDKry7UxzO5md9ybQlkfKpN2rHYbp9GtH1LDQPa7z2vVu/kEnNnTKeHt9obmaC7TQDh0IvsUBSuzhGZdfAIK7YyBqykCgeZm5rvA6K5b7zHGdA+7pUpJ/9ZLpp1NuxWRHshEgxIYkQfIgXTSl13gnL"/>
<TableDataSource Name="Table1" ReferenceName="Table1" DataType="System.Int32" Enabled="true">
<Column Name="BillName" DataType="System.String" PropName="CH_TrustCode"/>
<Column Name="ReqUnitName" DataType="System.String" PropName="CH_TrustUnit"/>
@ -199,30 +199,38 @@ namespace FastReport
</TableRow>
</TableObject>
<DataFooterBand Name="DataFooter1" Top="253.12" Width="1047.06" Height="175.72">
<TableObject Name="Table6" Left="9.45" Width="1031.98" Height="175.72" Border.Lines="Top" ManualBuildEvent="Table6_ManualBuild">
<TableColumn Name="Column65" Width="142.38"/>
<TableColumn Name="Column66" Width="180.23"/>
<TableColumn Name="Column67" Width="180.17"/>
<TableColumn Name="Column85" Width="189"/>
<TableColumn Name="Column87" Width="132.3"/>
<TableColumn Name="Column88" Width="207.9"/>
<TableObject Name="Table6" Left="9.45" Width="1030.05" Height="175.72" Border.Lines="Top" ManualBuildEvent="Table6_ManualBuild">
<TableColumn Name="Column89" Width="113.4"/>
<TableColumn Name="Column90" Width="132.3"/>
<TableColumn Name="Column65" Width="113.4"/>
<TableColumn Name="Column66" Width="151.2"/>
<TableColumn Name="Column67" Width="113.4"/>
<TableColumn Name="Column85" Width="141.75"/>
<TableColumn Name="Column87" Width="113.4"/>
<TableColumn Name="Column88" Width="151.2"/>
<TableRow Name="Row33" Height="74.62">
<TableCell Name="Cell339" Text="专工审核:" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell341">
<PictureObject Name="Picture8" Top="9.45" Width="122.85" Height="56.7" DataColumn="Table1.AuditManName"/>
</TableCell>
<TableCell Name="Cell271" Text="材控审核:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell272" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt">
<PictureObject Name="Picture1" Left="9.45" Top="9.45" Width="151.2" Height="56.7" DataColumn="Table1.AuditManName"/>
<PictureObject Name="Picture1" Left="9.45" Top="9.45" Width="132.3" Height="56.7" DataColumn="Table1.AuditManName2"/>
</TableCell>
<TableCell Name="Cell273" Text="库管:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell331" HorzAlign="Center" VertAlign="Center">
<PictureObject Name="Picture6" Left="9.45" Top="9.45" Width="151.2" Height="56.7" DataColumn="Table1.WarehouseManName"/>
<PictureObject Name="Picture6" Left="9.45" Top="9.45" Width="122.85" Height="56.7" DataColumn="Table1.WarehouseManName"/>
</TableCell>
<TableCell Name="Cell335" Text="领料申请人:" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell336" HorzAlign="Center" VertAlign="Center">
<PictureObject Name="Picture7" Left="9.45" Top="9.45" Width="179.55" Height="56.7" DataColumn="Table1.CreateManName"/>
<PictureObject Name="Picture7" Top="9.45" Width="141.75" Height="56.7" DataColumn="Table1.CreateManName"/>
</TableCell>
</TableRow>
<TableRow Name="Row34" Height="101.1">
<TableCell Name="Cell340" Text="日期:" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell342" Text="[Table1.AuditDate]" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell281" Text="日期:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell282" Text="[Table1.AuditDate]" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell282" Text=" [Table1.AuditDate2]" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell283" Text="日期:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell332" Text="[Table1.WarehouseManAuditDate]" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell337" Text="日期:" HorzAlign="Center" VertAlign="Center"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" ReportInfo.Created="12/29/2021 10:56:08" ReportInfo.Modified="11/07/2024 16:19:52" ReportInfo.CreatorVersion="2017.1.16.0">
<Report ScriptLanguage="CSharp" ReportInfo.Created="12/29/2021 10:56:08" ReportInfo.Modified="12/06/2024 16:18:48" ReportInfo.CreatorVersion="2017.1.16.0">
<ScriptText>using System;
using System.Collections;
using System.Collections.Generic;
@ -84,7 +84,7 @@ namespace FastReport
}
</ScriptText>
<Dictionary>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaUHihKXxbhpqie4wmZgM2ymDKry7UxzO5md9ybQlkfKpN2rHYbp9GtH1LDQPa7z2vVu/kEnNnTKeHt9obmaC7TQDh0IvsUBSuzhGZdfAIK7YyBqykCgeZm5rvA6K5b7zHGdA+7pUpJ/9ZLpp1NuxWRFtorR7vaUuDP9abqvufqrp"/>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaUHihKXxbhpqie4wmZgM2ymDKry7UxzO5md9ybQlkfKpN2rHYbp9GtH1LDQPa7z2vVu/kEnNnTKeHt9obmaC7TQDh0IvsUBSuzhGZdfAIK7YyBqykCgeZm5rvA6K5b7zHGdA+7pUpJ/9ZLpp1NuxWRFu0uC3jDjSILbln3ANWj4s"/>
<TableDataSource Name="Table1" ReferenceName="Table1" DataType="System.Int32" Enabled="true">
<Column Name="BillName" DataType="System.String" PropName="CH_TrustCode"/>
<Column Name="ReqUnitName" DataType="System.String" PropName="CH_TrustUnit"/>
@ -196,26 +196,34 @@ namespace FastReport
</TableRow>
</TableObject>
<DataFooterBand Name="DataFooter1" Top="253.12" Width="1047.06" Height="175.72">
<TableObject Name="Table6" Left="9.45" Width="1031.98" Height="175.72" Border.Lines="Top" ManualBuildEvent="Table6_ManualBuild">
<TableColumn Name="Column65" Width="227.43"/>
<TableColumn Name="Column66" Width="255.83"/>
<TableColumn Name="Column67" Width="246.32"/>
<TableColumn Name="Column85" Width="302.4"/>
<TableObject Name="Table6" Left="9.45" Width="1032.19" Height="175.72" Border.Lines="Top" ManualBuildEvent="Table6_ManualBuild">
<TableColumn Name="Column65" Width="142.51"/>
<TableColumn Name="Column66" Width="180.31"/>
<TableColumn Name="Column67" Width="180.17"/>
<TableColumn Name="Column85" Width="189"/>
<TableColumn Name="Column86" Width="132.3"/>
<TableColumn Name="Column87" Width="207.9"/>
<TableRow Name="Row33" Height="74.62">
<TableCell Name="Cell271" Text="材控审核:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell271" Text="专工审核:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell272" VertAlign="Center" Font="宋体, 10pt">
<PictureObject Name="Picture1" Left="9.45" Top="9.45" Width="236.25" Height="56.7" DataColumn="Table1.AuditManName"/>
<PictureObject Name="Picture1" Left="9.45" Top="9.45" Width="151.2" Height="56.7" DataColumn="Table1.AuditManName"/>
</TableCell>
<TableCell Name="Cell273" Text="领料申请人" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell273" Text="材控审核:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell331">
<PictureObject Name="Picture6" Left="9.45" Top="9.45" Width="264.6" Height="56.7" DataColumn="Table1.CreateManName"/>
<PictureObject Name="Picture7" Left="9.45" Top="9.45" Width="179.55" Height="56.7" DataColumn="Table1.AuditManName2"/>
</TableCell>
<TableCell Name="Cell333" Text="领料申请人:" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell334">
<PictureObject Name="Picture6" Left="9.45" Top="9.45" Width="170.1" Height="56.7" DataColumn="Table1.CreateManName"/>
</TableCell>
</TableRow>
<TableRow Name="Row34" Height="101.1">
<TableCell Name="Cell281" Text="日期:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell282" Text="[Table1.AuditDate]" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell283" Text="日期:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell332" Text="[Table1.CreateDate]" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell332" Text=" [Table1.AuditDate2]" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell335" Text="日期:" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell336" Text="[Table1.CreateDate]" HorzAlign="Center" VertAlign="Center"/>
</TableRow>
</TableObject>
</DataFooterBand>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" ReportInfo.Created="12/29/2021 10:56:08" ReportInfo.Modified="12/02/2024 17:09:49" ReportInfo.CreatorVersion="2017.1.16.0">
<Report ScriptLanguage="CSharp" ReportInfo.Created="12/29/2021 10:56:08" ReportInfo.Modified="12/05/2024 15:40:34" ReportInfo.CreatorVersion="2017.1.16.0">
<ScriptText>using System;
using System.Collections;
using System.Collections.Generic;
@ -99,7 +99,7 @@ namespace FastReport
}
</ScriptText>
<Dictionary>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaUHihKXxbhpqie4wmZgM2ymDKry7UxzO5md9ybQlkfKpN2rHYbp9GtH1LDQPa7z2vVu/kEnNnTKeHt9obmaC7TQDh0IvsUBSuzhGZdfAIK7YyBqykCgeZm5rvA6K5b7zHGdA+7pUpJ/9ZLpp1NuxWRFVF5RbniBokWNIOmJGhniK"/>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaUHihKXxbhpqie4wmZgM2ymDKry7UxzO5md9ybQlkfKpN2rHYbp9GtH1LDQPa7z2vVu/kEnNnTKeHt9obmaC7TQDh0IvsUBSuzhGZdfAIK7YyBqykCgeZm5rvA6K5b7zHGdA+7pUpJ/9ZLpp1NuxWRFZYev4O4t/luX5wZaXxxBH"/>
<TableDataSource Name="Table1" ReferenceName="Table1" DataType="System.Int32" Enabled="true">
<Column Name="pipelineCode" DataType="System.String" PropName="PipelineComponentId"/>
<Column Name="Mat" DataType="System.String" PropName="PipelineComponentCode"/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" ReportInfo.Created="12/29/2021 10:56:08" ReportInfo.Modified="11/06/2024 15:25:46" ReportInfo.CreatorVersion="2017.1.16.0">
<Report ScriptLanguage="CSharp" ReportInfo.Created="12/29/2021 10:56:08" ReportInfo.Modified="12/06/2024 17:43:24" ReportInfo.CreatorVersion="2017.1.16.0">
<ScriptText>using System;
using System.Collections;
using System.Collections.Generic;
@ -43,11 +43,23 @@ namespace FastReport
rowData.Next();
}  
}
private void Table6_ManualBuild(object sender, EventArgs e)
{
DataSourceBase rowData = Report.GetDataSource(&quot;Table1&quot;);
// init the data source
rowData.Init();
Table6.PrintRow(0);
Table6.PrintColumns();
Table6.PrintRow(1);
Table6.PrintColumns();  
rowData.Next();
}
}
}
</ScriptText>
<Dictionary>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaUHihKXxbhpqie4wmZgM2ymDKry7UxzO5md9ybQlkfKpN2rHYbp9GtH1LDQPa7z2vVu/kEnNnTKeHt9obmaC7TQDh0IvsUBSuzhGZdfAIK7YyBqykCgeZm5rvA6K5b7zHGdA+7pUpJ/9ZLpp1NuxWREAK3yJ/a7DCIkXW2TdHWfL"/>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaUHihKXxbhpqie4wmZgM2ymDKry7UxzO5md9ybQlkfKpN2rHYbp9GtH1LDQPa7z2vVu/kEnNnTKeHt9obmaC7TQDh0IvsUBSuzhGZdfAIK7YyBqykCgeZm5rvA6K5b7zHGdA+7pUpJ/9ZLpp1NuxWREMrQAWDh0fqtKcXNzfqqqi"/>
<TableDataSource Name="Table1" ReferenceName="Table1" DataType="System.Int32" Enabled="true">
<Column Name="BillName" DataType="System.String" PropName="CH_TrustCode"/>
<Column Name="ReqUnitName" DataType="System.String" PropName="CH_TrustUnit"/>
@ -60,6 +72,9 @@ namespace FastReport
<Column Name="CategoryString" DataType="System.String" PropName="Column"/>
<Column Name="WarehouseManName" DataType="System.String" PropName="Column"/>
<Column Name="WarehouseManAuditDate" DataType="System.String" PropName="Column"/>
<Column Name="AuditManName" DataType="System.String" PropName="Column"/>
<Column Name="AuditManName2" DataType="System.String"/>
<Column Name="AuditDate2" DataType="System.String"/>
</TableDataSource>
<TableDataSource Name="Data" ReferenceName="Data" DataType="System.Int32" Enabled="true" TableName="Data">
<Column Name="PipelineCode" DataType="System.String" PropName="CH_TrustID"/>
@ -67,6 +82,7 @@ namespace FastReport
<Column Name="MaterialSpec" DataType="System.String" PropName="Column3"/>
<Column Name="FlowingSection" DataType="System.String" PropName="Column"/>
<Column Name="MatchRate" DataType="System.String" PropName="Column"/>
<Column Name="Dia" DataType="System.String" PropName="Column"/>
</TableDataSource>
<TableDataSource Name="ApproveOutData" ReferenceName="ApproveInData" DataType="System.Int32" PropName="ApproveInData" Enabled="true">
<Column Name="ProfessionalEngineer" DataType="System.String" PropName="CH_TrustID"/>
@ -148,17 +164,17 @@ namespace FastReport
<TableCell Name="Cell236" Border.Lines="All" Text="焊接工程量" HorzAlign="Center" VertAlign="Center"/>
</TableRow>
<TableRow Name="Row21" Height="49.14">
<TableCell Name="Cell137" Border.Lines="All" Text="x" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell137" Border.Lines="All" Text="[Row#]" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell138" Border.Lines="All" Text=" [Data.PipelineCode]" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell140" Border.Lines="All" Text=" [Data.FlowingSection]" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell141" Border.Lines="All" Text="[Data.MaterialCode]" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell142" Border.Lines="All" Text="[Data.MaterialSpec]" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell143" Border.Lines="All" Text="[Data.MatchRate]" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell144" Border.Lines="All" Text=" " HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell144" Border.Lines="All" Text="[Data.Dia] " HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
</TableRow>
</TableObject>
<DataFooterBand Name="DataFooter1" Top="246.22" Width="1047.06" Height="175.72">
<TableObject Name="Table6" Left="9.45" Width="1030.03" Height="175.72" Border.Lines="Top">
<TableObject Name="Table6" Left="9.45" Width="1030.03" Height="175.72" Border.Lines="Top" ManualBuildEvent="Table6_ManualBuild">
<TableColumn Name="Column65" Width="83.78"/>
<TableColumn Name="Column66" Width="178.33"/>
<TableColumn Name="Column67" Width="178.27"/>
@ -175,11 +191,17 @@ namespace FastReport
</TableRow>
<TableRow Name="Row34" Height="101.1">
<TableCell Name="Cell281" Text="分包制单:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell282" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell283" Text="分包审核:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell332" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell337" Text="总包(专工)审核:" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell338" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell282" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt">
<PictureObject Name="Picture1" Left="9.45" Top="9.45" Width="151.2" Height="75.6" DataColumn="Table1.CreateManName"/>
</TableCell>
<TableCell Name="Cell283" Text="专工审核:" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell332" HorzAlign="Center" VertAlign="Center">
<PictureObject Name="Picture2" Left="9.45" Top="9.45" Width="160.65" Height="75.6" DataColumn="Table1.AuditManName"/>
</TableCell>
<TableCell Name="Cell337" Text="材控审核:" HorzAlign="Center" VertAlign="Center"/>
<TableCell Name="Cell338" HorzAlign="Center" VertAlign="Center">
<PictureObject Name="Picture3" Left="18.9" Top="9.45" Width="198.45" Height="75.6" DataColumn="Table1.AuditManName"/>
</TableCell>
</TableRow>
</TableObject>
</DataFooterBand>

View File

@ -84,7 +84,7 @@
<Items>
<f:Tree ID="tvControlItem" ShowHeader="false" Height="560px" Title="装置区域"
OnNodeCommand="tvControlItem_NodeCommand" runat="server" ShowBorder="false" EnableCollapse="true"
EnableSingleClickExpand="false" AutoLeafIdentification="true" EnableSingleExpand="true"
EnableSingleClickExpand="false" AutoLeafIdentification="true" EnableSingleExpand="true" EnableCheckBox="true"
EnableTextSelection="true" OnNodeExpand="tvControlItem_TreeNodeExpanded">
</f:Tree>
</Items>

View File

@ -13,9 +13,19 @@ namespace FineUIPro.Web.HJGL.WeldingManage
{
public int pageSize = PipelineService.pageSize;
//public Dictionary<string, string> dicSeclectPipeLine = new Dictionary<string, string>();
public static List<Model.Tw_PipeMatMatchOutput> tw_PipeMatMatchOutputs ;
public static decimal Rate = 0;
public static string WarehouseCode = "工厂预制";
//public static List<Model.Tw_PipeMatMatchOutput> tw_PipeMatMatchOutputs ;
public static decimal Rate = 0;
public string WarehouseCode
{
get
{
return (string)ViewState["WarehouseCode"];
}
set
{
ViewState["WarehouseCode"] = value;
}
}
public string PipeArea
{
get
@ -49,6 +59,19 @@ namespace FineUIPro.Web.HJGL.WeldingManage
ViewState["dicSeclectPipeLine"] = value;
}
}
public List<Model.Tw_PipeMatMatchOutput> tw_PipeMatMatchOutputs
{
get
{
return (List<Model.Tw_PipeMatMatchOutput>)ViewState["tw_PipeMatMatchOutputs"];
}
set
{
ViewState["tw_PipeMatMatchOutputs"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
//ctlAuditFlow.Url = BLL.Project_SysSetService.GetAvevaNetUrl(this.CurrUser.LoginProjectId);
@ -60,6 +83,10 @@ namespace FineUIPro.Web.HJGL.WeldingManage
{
WarehouseCode = "现场安装";
}
else
{
WarehouseCode = "工厂预制";
}
HJGL_MaterialService.materialStockItems_FIELD = new List<Model.MaterialStockItem>();
HJGL_MaterialService.materialStockItems_SHOP = new List<Model.MaterialStockItem>();
dicSeclectPipeLine=new Dictionary<string, string>();
@ -88,6 +115,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
rootNode1.Text = "建筑工程";
rootNode1.CommandName = "建筑工程";
rootNode1.Selectable = false;
rootNode1.EnableCheckBox = false;
this.tvControlItem.Nodes.Add(rootNode1);
TreeNode rootNode2 = new TreeNode();
@ -95,6 +123,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
rootNode2.Text = "安装工程";
rootNode2.CommandName = "安装工程";
rootNode2.Expanded = true;
rootNode2.EnableCheckBox = false;
this.tvControlItem.Nodes.Add(rootNode2);
var pUnits = (from x in Funs.DB.Project_ProjectUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
@ -168,6 +197,8 @@ namespace FineUIPro.Web.HJGL.WeldingManage
tn2.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize);
tn2.EnableExpandEvent = true;
tn2.EnableClickEvent= true;
tn2.EnableCheckBox = false;
rootNode2.Nodes.Add(tn2);
if (a > 0)
{
@ -225,7 +256,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
newNode.Text = item.PipelineCode ;
newNode.NodeID = item.PipelineId;
newNode.CommandName = "管线";
newNode.EnableClickEvent = true;
newNode.EnableClickEvent = true;
node.Nodes.Add(newNode);
}
if (pageindex < pageCount)
@ -303,40 +334,39 @@ namespace FineUIPro.Web.HJGL.WeldingManage
}
void BindGrid2()
{
var result = tw_PipeMatMatchOutputs
.GroupBy(item => new { item.PipelineId, item.PipelineCode,item.UnitWorkName }) // 按 PipelineId 和 PipelineCode 分组
.Select(group => new
{
PipelineId = group.Key.PipelineId, // 当前组的 PipelineId
PipelineCode = group.Key.PipelineCode, // 当前组的 PipelineCode
UnitWorkName = group.Key.UnitWorkName, // 当前组的 UnitWorkName
AverageMatchRate = group.Average(item => item.MatchRate) // 计算平均 MatchRate
})
.ToList(); // 转换为 List
//var result = tw_PipeMatMatchOutputs
// .GroupBy(item => new { item.PipelineId, item.PipelineCode,item.UnitWorkName }) // 按 PipelineId 和 PipelineCode 分组
// .Select(group => new
// {
// PipelineId = group.Key.PipelineId, // 当前组的 PipelineId
// PipelineCode = group.Key.PipelineCode, // 当前组的 PipelineCode
// UnitWorkName = group.Key.UnitWorkName, // 当前组的 UnitWorkName
// AverageMatchRate = group.Average(item => item.MatchRate) // 计算平均 MatchRate
// })
// .ToList(); // 转换为 List
// 如果需要将结果转换为自定义类型,可以这样做
List<Tw_PipeMatMatchOutput> output = result.Select(r => new Tw_PipeMatMatchOutput
{
PipelineId = r.PipelineId,
PipelineCode = r.PipelineCode,
UnitWorkName = r.UnitWorkName,
MatchRate = r.AverageMatchRate,
MatchRateString = Math.Round((decimal)r.AverageMatchRate * 100, 2).ToString() + "%"
}).ToList();
//// 如果需要将结果转换为自定义类型,可以这样做
//List<Tw_PipeMatMatchOutput> output = result.Select(r => new Tw_PipeMatMatchOutput
//{
// PipelineId = r.PipelineId,
// PipelineCode = r.PipelineCode,
// UnitWorkName = r.UnitWorkName,
// MatchRate = r.AverageMatchRate,
// MatchRateString = Math.Round((decimal)r.AverageMatchRate * 100, 2).ToString() + "%"
//}).ToList();
var output = TwArrivalStatisticsService.GetPipeMatch(tw_PipeMatMatchOutputs);
Grid2.DataSource = output;
Grid2.DataBind();
if (output.Any())
/*if (output.Any())
{
Rate = Math.Round((decimal)output.Average(item => item.MatchRate) * 100, 2);
lbRate.Text = "匹配率:" + Rate.ToString() + "%";
}
}*/
var selectList = new List<string>() ;
for (int i = 0; i < Grid2.Rows.Count; i++)
{
var model = Grid2.Rows[i].DataItem as Tw_PipeMatMatchOutput;
var model = Grid2.Rows[i].DataItem as Tw_PipeMatchOutput;
if (model.MatchRate >=1)
{
Grid2.Rows[i].RowCssClass = "green";
@ -370,7 +400,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
if (relationModle!= null)
{
Grid3.Rows[i].RowCssClass = "yellow";
}
}
}
}
@ -396,6 +426,17 @@ namespace FineUIPro.Web.HJGL.WeldingManage
var tb = tw_PipeMatMatchOutputs.Where(x => x.PipelineId == Grid2.SelectedRowID).ToList();
Grid1.DataSource = tb;
Grid1.DataBind();
for (int i = 0; i < Grid1.Rows.Count; i++)
{
var model = Grid1.Rows[i].DataItem as Tw_PipeMatMatchOutput;
if (model?.MatchRate < 1 || model?.MatchRate==null)
{
Grid1.Rows[i].RowCssClass = "red";
}
}
}
protected void Grid1_RowClick(object sender, GridRowClickEventArgs e)
@ -521,17 +562,18 @@ namespace FineUIPro.Web.HJGL.WeldingManage
protected void btnAddPipelineMatchMat_Click(object sender, EventArgs e)
{
if (this.tvControlItem.SelectedNode.CommandName == "管线")
{
if (dicSeclectPipeLine.Where(x => x.Key == this.tvControlItem.SelectedNodeID).Count() == 0)
var selectNodes= tvControlItem.GetCheckedNodes();
foreach (var node in selectNodes)
{
if (dicSeclectPipeLine.Where(x => x.Key == node.NodeID).Count() == 0 && node.CommandName== "管线")
{
dicSeclectPipeLine.Add(this.tvControlItem.SelectedNodeID, this.tvControlItem.SelectedNode.Text);
tw_PipeMatMatchOutputs = TwArrivalStatisticsService.GetPipeMatMatch(this.CurrUser.LoginProjectId, dicSeclectPipeLine.Keys.ToList(), WarehouseCode);
BindGrid3();
BindGrid2();
dicSeclectPipeLine.Add(node.NodeID, node.Text);
}
}
tw_PipeMatMatchOutputs = TwArrivalStatisticsService.GetPipeMatMatch(this.CurrUser.LoginProjectId, dicSeclectPipeLine.Keys.ToList(), WarehouseCode);
BindGrid3();
BindGrid2();
}
protected void btnDeletePipelineMatchMat_Click(object sender, EventArgs e)
@ -539,6 +581,12 @@ namespace FineUIPro.Web.HJGL.WeldingManage
if (Grid3.SelectedRowID != "")
{
dicSeclectPipeLine.Remove(Grid3.SelectedRowID);
var node = tvControlItem.FindNode(Grid3.SelectedRowID);
if (node != null)
{
node.Checked = false;
}
tw_PipeMatMatchOutputs = TwArrivalStatisticsService.GetPipeMatMatch(this.CurrUser.LoginProjectId, dicSeclectPipeLine.Keys.ToList(), WarehouseCode);
BindGrid3();
@ -572,6 +620,10 @@ namespace FineUIPro.Web.HJGL.WeldingManage
where Grid2.SelectedRowIDArray.ToList().Contains(x.PipelineId) && x.WeldingDailyId == null &&
x.WeldTaskId == null && x.WeldingMethodCode != null
select x).ToList();
if (PipeArea=="1") //工厂预制的管线,则只选择预制口
{
selectRowId = selectRowId.Where(x => x.JointAttribute == "预制口").ToList();
}
foreach (var weldjoint in selectRowId)
{
string canWeldingRodName = string.Empty;
@ -583,7 +635,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
NewTask.TaskCode = BLL.WeldTaskService.GetTaskCodeByDate(this.CurrUser.LoginProjectId, DateTime.Now.Date.ToString("yyyy-MM-dd"), NewTask.UnitWorkId, this.CurrUser.UnitId);
NewTask.WeldTaskId = SQLHelper.GetNewID();
NewTask.WeldJointId = weldjoint.WeldJointId;
NewTask.WeldJointId = weldjoint.WeldJointId;
var oldWeldTask = BLL.WeldTaskService.GetWeldTaskByWeldJointId(NewTask.WeldJointId);
if (oldWeldTask != null)
{

View File

@ -86,6 +86,10 @@
</f:Button>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnPrint" runat="server" Icon="Printer" EnableAjax="false" Text="预制组件打印" ToolTip="预制组件打印" OnClick="btnPrint_Click"></f:Button>
<f:Button ID="btnPassMaster" Text="专工审核" Icon="ArrowRefresh" runat="server" OnClick="btnPassMaster_OnClick" >
</f:Button>
<f:Button ID="btnPassMaster2" Text="材控审核" Icon="ArrowRefresh" runat="server" OnClick="btnPassMaster2_OnClick" >
</f:Button>
<f:Button ID="btnPrintTask" runat="server" Icon="Printer" EnableAjax="false" Text="焊接任务单打印" ToolTip="焊接任务单打印" OnClick="btnPrintTask_Click"></f:Button>
<f:DatePicker ID="txtTaskDate" Label="计划焊接日期" runat="server"
DateFormatString="yyyy-MM-dd" LabelAlign="Left" LabelWidth="110px" Hidden="true">

View File

@ -1336,82 +1336,171 @@ namespace FineUIPro.Web.HJGL.WeldingManage
protected void btnPrintTask_Click(object sender, EventArgs e)
{
DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]);
if (taskTime != null)
if (!string.IsNullOrEmpty(tvControlItem.SelectedNodeID))
{
var weldTaskList = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, tvControlItem.SelectedNodeID.Split('|')[0], tvControlItem.SelectedNodeID.Split('|')[1], Convert.ToDateTime(taskTime), this.rbIsAudit.SelectedValue);
var pipelines = weldTaskList.Select(x => x.PipelineId).Distinct().ToList();
if (pipelines.Any())
if (tvControlItem.SelectedNodeID.Contains("|"))
{
BLL.FastReportService.ResetData();
//var result = HJGL_PipelineComponentService.GetPrintModelByPipelineComponentIds(null, pipelines.ToArray(), true);
//var PipelineComponentIds = result.Select(x => x.PipelineComponentId).ToArray();
//var tb = LINQToDataTable(result);
//if (tb != null && tb.Rows.Count > 0)
//{
// tb.TableName = "Table1";
//}
//else
//{
// ShowNotify("该管线已打印完成", MessageBoxIcon.Question);
// return;
//}
Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();
keyValuePairs.Add("Code", UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID.Split('|')[0]).UnitWorkCode+ string.Format("{0:yyyyMMdd}", taskTime.Value));
keyValuePairs.Add("TaskDate", string.Format("{0:yyyy-MM-dd}", taskTime.Value));
keyValuePairs.Add("UnitName", UnitService.GetUnitNameByUnitId(tvControlItem.SelectedNodeID.Split('|')[1]));
keyValuePairs.Add("UnitWorkName]", UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID.Split('|')[0]).UnitWorkName);
// 创建一个新的DataTable
DataTable dataTable = new DataTable();
dataTable.TableName = "Data";
// 添加列
dataTable.Columns.Add("PipelineCode", typeof(string));
dataTable.Columns.Add("FlowingSection", typeof(string));
dataTable.Columns.Add("MaterialCode", typeof(string));
dataTable.Columns.Add("MaterialSpec", typeof(string));
dataTable.Columns.Add("MatchRate", typeof(string));
foreach (string pipeline in pipelines)
DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]);
if (taskTime != null)
{
DataRow dr = dataTable.NewRow();
var pipelineModel = PipelineService.GetPipelineByPipelineId(pipeline);
List<string > list=new List<string> { pipeline };
var weldTaskList = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, tvControlItem.SelectedNodeID.Split('|')[0], tvControlItem.SelectedNodeID.Split('|')[1], Convert.ToDateTime(taskTime), this.rbIsAudit.SelectedValue);
var pipelines = weldTaskList.Select(x => x.PipelineId).Distinct().ToList();
dr["PipelineCode"] = pipelineModel.PipelineCode;
dr["FlowingSection"] = pipelineModel.FlowingSection;
dr["MaterialCode"] = Base_MaterialService.GetMaterialByMaterialId(pipelineModel.MaterialId).MaterialCode ;
dr["MaterialSpec"] = string.Join(",", weldTaskList.Select(x => x.Specification).Distinct().ToList()) ;
dr["MatchRate"] = Math.Round((decimal)TwArrivalStatisticsService.GetPipeMatch(pipeline) * 100, 2).ToString() + "%" ;
dataTable.Rows.Add(dr);
}
BLL.FastReportService.AddFastreportTable(dataTable);
BLL.FastReportService.AddFastreportParameter(keyValuePairs);
string initTemplatePath = "";
string rootPath = Server.MapPath("~/");
initTemplatePath = "File\\Fastreport\\管道焊接任务单.frx";
if (pipelines.Any())
{
BLL.FastReportService.ResetData();
List<Model.Tw_PrintMaster> tw_PrintMasters = new List<Model.Tw_PrintMaster>();
var time = Convert.ToDateTime(taskTime);
var weldTask_CreateName = (from x in Funs.DB.HJGL_WeldTask
where x.ProjectId == this.CurrUser.LoginProjectId &&
x.UnitWorkId == tvControlItem.SelectedNodeID.Split('|')[0] &&
x.UnitId == tvControlItem.SelectedNodeID.Split('|')[1]
&& x.TaskDate.Value.Date == time.Date && x.Tabler != null
select x).FirstOrDefault();
var weldTask = (from x in Funs.DB.HJGL_WeldTask
where x.ProjectId == this.CurrUser.LoginProjectId &&
x.UnitWorkId == tvControlItem.SelectedNodeID.Split('|')[0] &&
x.UnitId == tvControlItem.SelectedNodeID.Split('|')[1]
&& x.TaskDate.Value.Date == time.Date && x.AuditMan != null && x.AuditMan2 != null &&
x.Tabler != null
select x).FirstOrDefault();
Model.Tw_PrintMaster printMaster = new Model.Tw_PrintMaster
{
CreateManName = !string.IsNullOrEmpty(weldTask_CreateName?.Tabler) ? BLL.Person_PersonsService.getSignatureUrl(weldTask_CreateName.Tabler) : "",
AuditManName = !string.IsNullOrEmpty(weldTask?.AuditMan) ? BLL.Person_PersonsService.getSignatureUrl(weldTask.AuditMan) : "",
AuditManName2 = !string.IsNullOrEmpty(weldTask?.AuditMan2) ? BLL.Person_PersonsService.getSignatureUrl(weldTask.AuditMan2) : "",
};
tw_PrintMasters.Add(printMaster);
DataTable Table1 = LINQToDataTable(tw_PrintMasters);
if (Table1 != null)
{
Table1.TableName = "Table1";
}
Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();
keyValuePairs.Add("Code", UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID.Split('|')[0]).UnitWorkCode + string.Format("{0:yyyyMMdd}", taskTime.Value));
keyValuePairs.Add("TaskDate", string.Format("{0:yyyy-MM-dd}", taskTime.Value));
keyValuePairs.Add("UnitName", UnitService.GetUnitNameByUnitId(tvControlItem.SelectedNodeID.Split('|')[1]));
keyValuePairs.Add("UnitWorkName]", UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID.Split('|')[0]).UnitWorkName);
// 创建一个新的DataTable
DataTable dataTable = new DataTable();
dataTable.TableName = "Data";
// 添加列
dataTable.Columns.Add("PipelineCode", typeof(string));
dataTable.Columns.Add("FlowingSection", typeof(string));
dataTable.Columns.Add("MaterialCode", typeof(string));
dataTable.Columns.Add("MaterialSpec", typeof(string));
dataTable.Columns.Add("MatchRate", typeof(string));
dataTable.Columns.Add("Dia", typeof(string));
foreach (string pipeline in pipelines)
{
DataRow dr = dataTable.NewRow();
var pipelineModel = PipelineService.GetPipelineByPipelineId(pipeline);
List<string> list = new List<string> { pipeline };
dr["PipelineCode"] = pipelineModel.PipelineCode;
dr["FlowingSection"] = pipelineModel.FlowingSection;
dr["MaterialCode"] = Base_MaterialService.GetMaterialByMaterialId(pipelineModel.MaterialId).MaterialCode;
dr["MaterialSpec"] = string.Join(",", weldTaskList.Select(x => x.Specification).Distinct().ToList());
dr["MatchRate"] = Math.Round((decimal)TwArrivalStatisticsService.GetPipeMatch(pipeline) * 100, 2).ToString() + "%";
dr["Dia"] = weldTaskList.Where(x => x.PipelineId == pipeline).Sum(x => x.Size ?? 0)
.ToString();
dataTable.Rows.Add(dr);
}
BLL.FastReportService.AddFastreportTable(Table1);
BLL.FastReportService.AddFastreportTable(dataTable);
BLL.FastReportService.AddFastreportParameter(keyValuePairs);
string initTemplatePath = "";
string rootPath = Server.MapPath("~/");
initTemplatePath = "File\\Fastreport\\管道焊接任务单.frx";
if (File.Exists(rootPath + initTemplatePath))
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("~/Controls/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath)));
}
}
else
{
ShowNotify("无关联管线", MessageBoxIcon.Question);
}
if (File.Exists(rootPath + initTemplatePath))
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("~/Controls/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath)));
}
}
else
{
ShowNotify("无关联管线", MessageBoxIcon.Question);
ShowNotify("请选择任务单", MessageBoxIcon.Question);
}
}
}
}
else
protected void btnPassMaster_OnClick(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(tvControlItem.SelectedNodeID))
{
ShowNotify("请选择任务单", MessageBoxIcon.Question);
}
if (tvControlItem.SelectedNodeID.Contains("|"))
{
DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]);
if (taskTime != null)
{
var time = Convert.ToDateTime(taskTime);
var weldTaskList = (from x in Funs.DB.HJGL_WeldTask
where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == tvControlItem.SelectedNodeID.Split('|')[0] && x.UnitId == tvControlItem.SelectedNodeID.Split('|')[1]
&& x.TaskDate.Value.Date == time.Date
select x).ToList();
foreach (var weldTask in weldTaskList)
{
weldTask.AuditMan = this.CurrUser.PersonId;
weldTask.AuditDate = DateTime.Now;
Funs.DB.SubmitChanges();
}
ShowNotify("审核通过!", MessageBoxIcon.Success);
}
}
else
{
ShowNotify("请选择任务单", MessageBoxIcon.Question);
}
}
}
protected void btnPassMaster2_OnClick(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(tvControlItem.SelectedNodeID))
{
if (tvControlItem.SelectedNodeID.Contains("|"))
{
DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[2]);
if (taskTime != null)
{
var time = Convert.ToDateTime(taskTime);
var weldTaskList = (from x in Funs.DB.HJGL_WeldTask
where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == tvControlItem.SelectedNodeID.Split('|')[0] && x.UnitId == tvControlItem.SelectedNodeID.Split('|')[1]
&& x.TaskDate.Value.Date == time.Date
select x).ToList();
foreach (var weldTask in weldTaskList)
{
weldTask.AuditMan2 = this.CurrUser.PersonId;
weldTask.AuditDate2 = DateTime.Now;
Funs.DB.SubmitChanges();
}
ShowNotify("审核通过!", MessageBoxIcon.Success);
}
}
else
{
ShowNotify("请选择任务单", MessageBoxIcon.Question);
}
}
}
}
}

View File

@ -221,6 +221,24 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.Button btnPrint;
/// <summary>
/// btnPassMaster 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnPassMaster;
/// <summary>
/// btnPassMaster2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnPassMaster2;
/// <summary>
/// btnPrintTask 控件。
/// </summary>

View File

@ -6,6 +6,8 @@ using System.Threading.Tasks;
namespace Model
{
[Serializable]
public class Tw_PipeMatMatchOutput
{
public string Id { get; set; }
@ -24,4 +26,17 @@ namespace Model
public decimal? MatchRate { get; set; }
public string MatchRateString { get; set; }
}
public class Tw_PipeMatchOutput
{
public string Id { get; set; }
public string PipelineId { get; set; }
public string PipelineCode { get; set; }
public string UnitWorkId { get; set; }
public string UnitWorkName { get; set; }
public string PrefabricatedComponents { get; set; }
public decimal? SumNeedNum { get; set; }
public decimal? SumMatchNum { get; set; }
public decimal? MatchRate { get; set; }
public string MatchRateString { get; set; }
}
}

View File

@ -100350,6 +100350,16 @@ namespace Model
private string _WeldingWire;
private string _CreateMan;
private string _AuditMan;
private System.Nullable<System.DateTime> _AuditDate;
private string _AuditMan2;
private System.Nullable<System.DateTime> _AuditDate2;
#region
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
@ -100394,6 +100404,16 @@ namespace Model
partial void OnWeldingRodChanged();
partial void OnWeldingWireChanging(string value);
partial void OnWeldingWireChanged();
partial void OnCreateManChanging(string value);
partial void OnCreateManChanged();
partial void OnAuditManChanging(string value);
partial void OnAuditManChanged();
partial void OnAuditDateChanging(System.Nullable<System.DateTime> value);
partial void OnAuditDateChanged();
partial void OnAuditMan2Changing(string value);
partial void OnAuditMan2Changed();
partial void OnAuditDate2Changing(System.Nullable<System.DateTime> value);
partial void OnAuditDate2Changed();
#endregion
public HJGL_WeldTask()
@ -100801,6 +100821,106 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreateMan", DbType="VarChar(50)")]
public string CreateMan
{
get
{
return this._CreateMan;
}
set
{
if ((this._CreateMan != value))
{
this.OnCreateManChanging(value);
this.SendPropertyChanging();
this._CreateMan = value;
this.SendPropertyChanged("CreateMan");
this.OnCreateManChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AuditMan", DbType="VarChar(50)")]
public string AuditMan
{
get
{
return this._AuditMan;
}
set
{
if ((this._AuditMan != value))
{
this.OnAuditManChanging(value);
this.SendPropertyChanging();
this._AuditMan = value;
this.SendPropertyChanged("AuditMan");
this.OnAuditManChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AuditDate", DbType="DateTime")]
public System.Nullable<System.DateTime> AuditDate
{
get
{
return this._AuditDate;
}
set
{
if ((this._AuditDate != value))
{
this.OnAuditDateChanging(value);
this.SendPropertyChanging();
this._AuditDate = value;
this.SendPropertyChanged("AuditDate");
this.OnAuditDateChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AuditMan2", DbType="VarChar(50)")]
public string AuditMan2
{
get
{
return this._AuditMan2;
}
set
{
if ((this._AuditMan2 != value))
{
this.OnAuditMan2Changing(value);
this.SendPropertyChanging();
this._AuditMan2 = value;
this.SendPropertyChanged("AuditMan2");
this.OnAuditMan2Changed();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AuditDate2", DbType="DateTime")]
public System.Nullable<System.DateTime> AuditDate2
{
get
{
return this._AuditDate2;
}
set
{
if ((this._AuditDate2 != value))
{
this.OnAuditDate2Changing(value);
this.SendPropertyChanging();
this._AuditDate2 = value;
this.SendPropertyChanged("AuditDate2");
this.OnAuditDate2Changed();
}
}
}
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged;
@ -102357,7 +102477,7 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Rectification", DbType="NVarChar(500)")]
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Rectification", DbType="NVarChar(50)")]
public string Rectification
{
get
@ -261114,6 +261234,10 @@ namespace Model
private System.Nullable<System.DateTime> _WarehouseDate;
private string _AuditMan2;
private System.Nullable<System.DateTime> _AuditDate2;
#region
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
@ -261150,6 +261274,10 @@ namespace Model
partial void OnWarehouseManChanged();
partial void OnWarehouseDateChanging(System.Nullable<System.DateTime> value);
partial void OnWarehouseDateChanged();
partial void OnAuditMan2Changing(string value);
partial void OnAuditMan2Changed();
partial void OnAuditDate2Changing(System.Nullable<System.DateTime> value);
partial void OnAuditDate2Changed();
#endregion
public Tw_OutputMaster()
@ -261477,6 +261605,46 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AuditMan2", DbType="VarChar(50)")]
public string AuditMan2
{
get
{
return this._AuditMan2;
}
set
{
if ((this._AuditMan2 != value))
{
this.OnAuditMan2Changing(value);
this.SendPropertyChanging();
this._AuditMan2 = value;
this.SendPropertyChanged("AuditMan2");
this.OnAuditMan2Changed();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AuditDate2", DbType="DateTime")]
public System.Nullable<System.DateTime> AuditDate2
{
get
{
return this._AuditDate2;
}
set
{
if ((this._AuditDate2 != value))
{
this.OnAuditDate2Changing(value);
this.SendPropertyChanging();
this._AuditDate2 = value;
this.SendPropertyChanged("AuditDate2");
this.OnAuditDate2Changed();
}
}
}
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged;