This commit is contained in:
2023-11-09 17:15:41 +08:00
20 changed files with 509 additions and 137 deletions
+31
View File
@@ -1467,6 +1467,37 @@ namespace BLL
return "";
}
}
/// <summary>
/// 将List 中的数据平均拆分为多个List
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="originalList">原始List</param>
/// <param name="numberOfLists">拆分后的子列表数量</param>
/// <returns></returns>
/**们首先计算出每个子列表的大小chunkSize和余数remainder。然后,使用一个循环来创建并添加子列表到splitLists中。
在每次迭代中,我们根据当前索引是否小于余数来确定子列表的大小。如果小于余数,则将子列表大小加1,以确保最后一个子列表包含余数部分。
最后,我们更新startIndex以便正确获取下一个子列表的元素范围*/
public static List<List<T>> SplitList<T>(List<T> originalList, int numberOfLists)
{
List<List<T>> splitLists = new List<List<T>>();
int chunkSize = originalList.Count / numberOfLists;
int remainder = originalList.Count % numberOfLists;
int startIndex = 0;
for (int i = 0; i < numberOfLists; i++)
{
int sublistSize = chunkSize + (i < remainder ? 1 : 0);
List<T> sublist = originalList.GetRange(startIndex, sublistSize);
splitLists.Add(sublist);
startIndex += sublistSize;
}
return splitLists;
}
}
}
@@ -1,8 +1,11 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.UI.WebControls;
using Model;
using NPOI.SS.Formula.Functions;
namespace BLL
{
@@ -12,16 +15,21 @@ namespace BLL
/// 未验收
/// </summary>
public static int state_0 = 0;
/// <summary>
/// 已验收
/// </summary>
public static int state_1 = 1;
/// <summary>
/// 已装箱
/// </summary>
public static int state_2 = 2;
/// <summary>
/// 获取状态名称
/// </summary>
/// <returns></returns>
public static ListItem[] GetState()
{
ListItem[] list = new ListItem[3];
@@ -30,6 +38,10 @@ namespace BLL
list[2] = new ListItem("已出库", state_2.ToString());
return list;
}
/// <summary>
/// 生产状态
/// </summary>
/// <returns></returns>
public static ListItem[] GetProductionState()
{
ListItem[] list = new ListItem[3];
@@ -61,6 +73,81 @@ namespace BLL
{
return Funs.DB.HJGL_Pipeline_Component.FirstOrDefault(e => e.PipeLineMatId == pipeLineMatId);
}
/// <summary>
/// 获取打印实体
/// </summary>
/// <param name="PipelineComponentId"></param>
/// <param name="PipelineId"></param>
/// <param name="IsCheckPrint"></param>
/// <returns></returns>
public static IEnumerable<PipelineComponentPrintDto> GetPrintModelByPipelineComponentIds(
string[] PipelineComponentId, string[] PipelineId, bool IsCheckPrint)
{
var db = Funs.DB;
var query =
from com in db.HJGL_Pipeline_Component
join mat in db.HJGL_PipeLineMat on com.PipeLineMatId equals mat.PipeLineMatId into matJoin
from mat in matJoin.DefaultIfEmpty()
join pipe in db.HJGL_Pipeline on com.PipelineId equals pipe.PipelineId into pipeJoin
from pipe in pipeJoin.DefaultIfEmpty()
join punit in db.Base_Unit on com.PreUnit equals punit.UnitId into punitJoin
from punit in punitJoin.DefaultIfEmpty()
join aunit in db.Base_Unit on com.AssembleUnit equals aunit.UnitId into aunitJoin
from aunit in aunitJoin.DefaultIfEmpty()
join unitwork in db.WBS_UnitWork on pipe.UnitWorkId equals unitwork.UnitWorkId into unitworkJoin
from unitwork in unitworkJoin.DefaultIfEmpty()
join mater in db.Base_Material on pipe.MaterialId equals mater.MaterialId into materJoin
from mater in materJoin.DefaultIfEmpty()
where com.QRCode != ""
orderby com.PipelineComponentCode,com.PipelineId
select new PipelineComponentPrintDto
{
PipelineComponentId = com.PipelineComponentId,
PipelineComponentCode = com.PipelineComponentCode,
BoxNumber = com.BoxNumber,
UnitWorkName = unitwork.UnitWorkName,
PipelineId = com.PipelineId,
PreUnit = punit.UnitName,
AssembleUnit = aunit.UnitName,
PrefabricatedComponents = mat.PrefabricatedComponents,
QRCode = com.QRCode,
State = com.State,
PlanStartDate = string.Format("yyyy-MM-dd", pipe.PlanStartDate),
PipelineCode = pipe.PipelineCode,
FlowingSection = pipe.FlowingSection,
QRCode2 = "PrePipeline$" + com.PipelineComponentId,
MaterialCode = mater.MaterialCode,
IsPrint = com.IsPrint
};
var result = query.ToList();
if (PipelineComponentId!=null &&PipelineComponentId.Length > 0)
{
result = result.Where(x => PipelineComponentId.Contains(x.PipelineComponentId.ToString())).ToList();
}
if (PipelineId != null && PipelineId.Length > 0)
{
result = result.Where(x => PipelineId.Contains(x.PipelineId.ToString())).ToList();
}
if (IsCheckPrint != null & IsCheckPrint ==true)
{
result = result.Where(x => x.IsPrint==false||x.IsPrint==null).ToList();
}
return result;
}
/// <summary>
/// 判断管线组件Code是否存在
/// </summary>
@@ -119,6 +206,7 @@ namespace BLL
model.DrawingName = model_mat.PrefabricatedComponents.Substring(0, model_mat.PrefabricatedComponents.LastIndexOf('-')).Replace("\"", "");
model.State = state_0;
model.ProductionState = 0;
model.IsPrint = false;
AddPipelineComponent(model);
}
@@ -133,6 +221,7 @@ namespace BLL
{
Model.SGGLDB db = Funs.DB;
Model.HJGL_Pipeline_Component newPipeline = new Model.HJGL_Pipeline_Component();
pipeline.IsPrint ??= false;
newPipeline.PipelineComponentId = pipeline.PipelineComponentId;
newPipeline.PipelineId = pipeline.PipelineId;
newPipeline.PreUnit = pipeline.PreUnit;
@@ -150,6 +239,7 @@ namespace BLL
newPipeline.ReceiveMan= pipeline.ReceiveMan;
newPipeline.ReceiveDate= pipeline.ReceiveDate;
newPipeline.ProductionState= pipeline.ProductionState;
newPipeline.IsPrint= pipeline.IsPrint;
db.HJGL_Pipeline_Component.InsertOnSubmit(newPipeline);
db.SubmitChanges();
}
@@ -180,10 +270,15 @@ namespace BLL
newPipeline.ReceiveMan = pipeline.ReceiveMan;
newPipeline.ReceiveDate = pipeline.ReceiveDate;
newPipeline.ProductionState = pipeline.ProductionState;
newPipeline.IsPrint=pipeline.IsPrint;
db.SubmitChanges();
}
}
/// <summary>
/// 修改出库状态
/// </summary>
/// <param name="pipelineComponentId"></param>
/// <param name="BoxNumber"></param>
public static void UpdateOutState(string pipelineComponentId,string BoxNumber)
{
var q=GetPipelineComponentById(pipelineComponentId);
@@ -196,6 +291,24 @@ namespace BLL
}
}
/// <summary>
/// 修改打印状态
/// </summary>
/// <param name="PipelineComponentId"></param>
public static void UpdateIsPrint(string[] PipelineComponentId)
{
var componentsToUpdate = Funs.DB.HJGL_Pipeline_Component
.Where(c => PipelineComponentId.Contains(c.PipelineComponentId));
foreach (var component in componentsToUpdate)
{
component.IsPrint = true;
}
Funs.DB.SubmitChanges();
}
/// <summary>
/// 修改生产状态
/// </summary>
@@ -345,4 +458,26 @@ namespace BLL
}
}
}
public class PipelineComponentPrintDto
{
public string PipelineComponentId { get; set; }
public string PipelineComponentCode { get; set; }
public string BoxNumber { get; set; }
public string UnitWorkName { get; set; }
public string PipelineId { get; set; }
public string PreUnit { get; set; }
public string AssembleUnit { get; set; }
public string PrefabricatedComponents { get; set; }
public string QRCode { get; set; }
public int? State { get; set; }
public string PlanStartDate { get; set; }
public string PipelineCode { get; set; }
public string FlowingSection { get; set; }
public string QRCode2 { get; set; }
public string MaterialCode { get; set; }
public bool? IsPrint { get; set; }
}
}
@@ -3,6 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using EmitMapper;
using EmitMapper.MappingConfiguration;
using FineUIPro;
@@ -168,7 +169,6 @@ namespace BLL
return Funs.DB.PHTGL_ContractTrack.FirstOrDefault(x => x.Id == id);
}
public static void AddPHTGL_ContractTrack(PHTGL_ContractTrack newtable)
{
var table = new PHTGL_ContractTrack
@@ -209,7 +209,14 @@ namespace BLL
PhtglContracttrackprogressService.CreateTemplateByContractTrackId(newtable.Id);
}
public static void AddBulkPHTGL_ContractTrack(List<PHTGL_ContractTrack> list)
{
Model.SGGLDB db = Funs.DB;
db.PHTGL_ContractTrack.InsertAllOnSubmit(list);
db.SubmitChanges();
}
public static void UpdatePHTGL_ContractTrack(PHTGL_ContractTrack newtable)
@@ -352,12 +359,13 @@ namespace BLL
{
var responeData = new ResponeData();
List<PHTGL_ContractTrackDtoIn> rows;
List<PHTGL_ContractTrack> thisContractTracks =new List<PHTGL_ContractTrack>();
var sheetNames = MiniExcel.GetSheetNames(path);
foreach (var sheet in sheetNames) ////多sheet导入
{
try
{
rows = MiniExcel.Query<PHTGL_ContractTrackDtoIn>(path, sheetName: sheet,startCell:"A2").ToList();
}
catch (Exception ex)
@@ -370,6 +378,7 @@ namespace BLL
ObjectMapperManager.DefaultInstance.GetMapper<List<PHTGL_ContractTrackDtoIn>, List<PHTGL_ContractTrack>>();
var modeList = mapper.Map(rows);
List<PHTGL_ContractTrack> goingAddList = new List<PHTGL_ContractTrack>();
if (modeList.Count == 0)
{
responeData.code = 0;
@@ -388,25 +397,31 @@ namespace BLL
ContractId = contractid,
ProjectId = projectid,
};
var resultModel = GetPHTGL_ContractTrackByModle(phtglContractTrack);
var resultModel = GetFirstPHTGL_ContractTrackByModle(phtglContractTrack);
item.ContractNum = ContractService.GetContractById(contractid)?.ContractNum;
if (!string.IsNullOrEmpty(item.ProjectCode) && !item.ProjectCode.Contains("-"))
{
item.ProjectCode = item.MainItemCode + "-" + item.ProjectCode;
}
if (resultModel.Any())
if (resultModel!=null)
{
item.Id = resultModel[0].Id;
item.Id = resultModel.Id;
UpdatePHTGL_ContractTrack(item);
}
else
{
item.Id = SQLHelper.GetNewID();
AddPHTGL_ContractTrack(item);
goingAddList.Add(item);
//AddPHTGL_ContractTrack(item);
}
PhtglContracttrackprogressService.CreateTemplateByContractTrackId(item.Id);
thisContractTracks.Add(item);
//PhtglContracttrackprogressService.CreateTemplateByContractTrackId(item.Id);
}
AddBulkPHTGL_ContractTrack(goingAddList);
PhtglContracttrackprogressService.CreateTemplateByContractList(goingAddList,projectid);
}
return responeData;
@@ -1,8 +1,10 @@
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using FineUIPro;
using Model;
@@ -17,8 +19,7 @@ namespace BLL
/// </summary>
public static int Count { get; set; }
public static List<PHTGL_ContractTrackProgress> GetPHTGL_ContractTrackProgressByModle(
PHTGL_ContractTrackProgress table)
public static IQueryable<PHTGL_ContractTrackProgress> GetPHTGL_ContractTrackProgressByModle( PHTGL_ContractTrackProgress table)
{
var q = from x in Funs.DB.PHTGL_ContractTrackProgress
where
@@ -31,10 +32,23 @@ namespace BLL
orderby x.Date
select x
;
return q.ToList();
return q;
}
public static PHTGL_ContractTrackProgress GetFirstOrDefaultByModle(PHTGL_ContractTrackProgress table)
{
var q = (from x in Funs.DB.PHTGL_ContractTrackProgress
where
(string.IsNullOrEmpty(table.ContractTrackProgressId) ||
x.ContractTrackProgressId.Contains(table.ContractTrackProgressId)) &&
(string.IsNullOrEmpty(table.ContractTrackId) ||
x.ContractTrackId.Contains(table.ContractTrackId)) &&
(string.IsNullOrEmpty(table.Date) ||
x.Date.Contains(table.Date))
orderby x.Date
select x).FirstOrDefault()
;
return q;
}
/// <summary>
/// 获取分页列表
/// </summary>
@@ -46,7 +60,7 @@ namespace BLL
var q = GetPHTGL_ContractTrackProgressByModle(table);
Count = q.Count();
if (Count == 0) return null;
q = q.Skip(grid1.PageSize * grid1.PageIndex).Take(grid1.PageSize).ToList();
q = q.Skip(grid1.PageSize * grid1.PageIndex).Take(grid1.PageSize);
// q = SortConditionHelper.SortingAndPaging(q, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
return from x in q
select new
@@ -98,6 +112,7 @@ namespace BLL
ContractTrackId = ContractTrackId,
Date= month.ToString("yyyy-MM")
};
if (!GetPHTGL_ContractTrackProgressByModle(querymodel).Any())
{
var newmodel = new Model.PHTGL_ContractTrackProgress();
@@ -110,6 +125,75 @@ namespace BLL
}
}
}
public static void CreateTemplateByContractList(List<PHTGL_ContractTrack> contractTrackList,string projectid)
{
var dbcontractTrack=(from x in Funs.DB.PHTGL_ContractTrack where x.ProjectId==projectid select x).ToList();
var dbContractTrackProgress=(from x in Funs.DB.PHTGL_ContractTrackProgress
join y in Funs.DB.PHTGL_ContractTrack on x.ContractTrackId equals y.Id
where y.ProjectId==projectid select x).ToList();
List<List<PHTGL_ContractTrack>> splitLists = new List<List<PHTGL_ContractTrack>>();
if (contractTrackList.Count>10)
{
splitLists = Funs.SplitList(contractTrackList, 10);
}
else
{
splitLists = Funs.SplitList(contractTrackList, 1);
}
ConcurrentBag<PHTGL_ContractTrackProgress> contractTrackProgressList = new ConcurrentBag<PHTGL_ContractTrackProgress>();//用于批量新增的数据
ParallelOptions parallelOptions = new ParallelOptions();
parallelOptions.MaxDegreeOfParallelism = Environment.ProcessorCount;
Parallel.ForEach(splitLists, parallelOptions, sublist =>
{
foreach (var item in sublist)
{
var model =( from x in dbcontractTrack where x.Id==item.Id select x).FirstOrDefault() ;
if (model == null) return;
var contractNum = model.ContractNum;
var contractmode = ContractService.GetContractByContractNum(contractNum);
if (contractmode.ContractStartDate != null && contractmode.ContractEndDate != null)
{
var startDate = (DateTime)contractmode.ContractStartDate;
var endDate = (DateTime)contractmode.ContractEndDate;
List<DateTime> months = GetMonthsBetween(startDate, endDate);//获取合同起止日期
foreach (DateTime month in months)
{
var querymodel = new Model.PHTGL_ContractTrackProgress
{
ContractTrackId = item.Id,
Date = month.ToString("yyyy-MM")
};
var q = (from x in dbContractTrackProgress
where
(string.IsNullOrEmpty(querymodel.ContractTrackId) ||
x.ContractTrackId.Contains(querymodel.ContractTrackId)) &&
(string.IsNullOrEmpty(querymodel.Date) ||
x.Date.Contains(querymodel.Date))
orderby x.Date
select x).ToList()
;
if (!q.Any())
{
var newmodel = new Model.PHTGL_ContractTrackProgress();
newmodel.ContractTrackProgressId = SQLHelper.GetNewID(typeof(Model.PHTGL_ContractTrackProgress));
newmodel.ContractTrackId = item.Id;
newmodel.Date = month.ToString("yyyy-MM");
contractTrackProgressList.Add(newmodel);
// AddPHTGL_ContractTrackProgress(newmodel);
}
}
}
} // 处理完成后,可以将结果保存到集合或其他地方
});
AddBulkPHTGL_ContractTrackProgress(contractTrackProgressList.ToList());
}
public static List<DateTime> GetMonthsBetween(DateTime startDate, DateTime endDate)
{
@@ -145,6 +229,12 @@ namespace BLL
Funs.DB.SubmitChanges();
}
public static void AddBulkPHTGL_ContractTrackProgress(List<PHTGL_ContractTrackProgress> newtableList)
{
Funs.DB.PHTGL_ContractTrackProgress.InsertAllOnSubmit(newtableList);
Funs.DB.SubmitChanges();
}
public static void UpdatePHTGL_ContractTrackProgress(PHTGL_ContractTrackProgress newtable)
{
var table = Funs.DB.PHTGL_ContractTrackProgress.FirstOrDefault(x =>
+1 -1
View File
@@ -246,7 +246,7 @@ namespace BLL
var pUnit = Funs.DB.Project_ProjectUnit.FirstOrDefault(e => e.ProjectId == ProjectId && e.UnitId == PersonEntity.UnitId);
if (pUnit != null)
{
if (pUnit.UnitType == Const.ProjectUnitType_1 )
if (pUnit.UnitType == Const.ProjectUnitType_1 || pUnit.UnitType == Const.ProjectUnitType_2)
{
result = true;
}
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" ReportInfo.Created="12/29/2021 10:56:08" ReportInfo.Modified="09/07/2023 14:49:06" ReportInfo.CreatorVersion="2017.1.16.0">
<Report ScriptLanguage="CSharp" ReportInfo.Created="12/29/2021 10:56:08" ReportInfo.Modified="11/08/2023 17:16:01" ReportInfo.CreatorVersion="2017.1.16.0">
<ScriptText>using System;
using System.Collections;
using System.Collections.Generic;
@@ -99,24 +99,8 @@ namespace FastReport
}
</ScriptText>
<Dictionary>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaUHihKXxbhpqie4wmZgM2ymDKry7UxzO5md9ybQlkfKpN2rHYbp9GtH1LDQPa7z2vVu/kEnNnTKeHt9obmaC7TQDh0IvsUBSuzhGZdfAIK7YyBqykCgeZm5rvA6K5b7zHGdA+7pUpJ/9ZLpp1NuxWRErYIg5yNvgeNsahpuMCq5a"/>
<TableDataSource Name="Table1" ReferenceName="Table1" DataType="System.Int32" Enabled="true">
<Column Name="PrefabricatedComponents" DataType="System.String" PropName="CH_TrustCode"/>
<Column Name="PlanStartDate" DataType="System.String" PropName="CH_TrustMan"/>
<Column Name="PreUnit" DataType="System.String" PropName="CH_SlopeType"/>
<Column Name="QRCode" DataType="System.String" PropName="CH_WeldMethod"/>
<Column Name="PipelineComponentId" DataType="System.String"/>
<Column Name="PipelineComponentCode" DataType="System.String"/>
<Column Name="BoxNumber" DataType="System.String"/>
<Column Name="PipelineId" DataType="System.String"/>
<Column Name="AssembleUnit" DataType="System.String"/>
<Column Name="State" DataType="System.String"/>
<Column Name="PipelineCode" DataType="System.String"/>
<Column Name="QRCode2" DataType="System.String" PropName="Column"/>
<Column Name="UnitWorkName" DataType="System.Char" PropName="Column"/>
<Column Name="FlowingSection" DataType="System.String" PropName="Column"/>
<Column Name="MaterialCode" DataType="System.String"/>
</TableDataSource>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaUHihKXxbhpqie4wmZgM2ymDKry7UxzO5md9ybQlkfKpN2rHYbp9GtH1LDQPa7z2vVu/kEnNnTKeHt9obmaC7TQDh0IvsUBSuzhGZdfAIK7YyBqykCgeZm5rvA6K5b7zHGdA+7pUpJ/9ZLpp1NuxWRFkUU1z9ezk97FBAaKX0CT9"/>
<TableDataSource Name="Table1" ReferenceName="Table1" DataType="System.Int32" Enabled="true"/>
<TableDataSource Name="Data" ReferenceName="Data.Data" DataType="System.Int32" Enabled="true">
<Column Name="CH_TrustID" DataType="System.String"/>
<Column Name="ISO_IsoNo" DataType="System.Int32" PropName="Column" Calculated="true" Expression=""/>
@@ -131,6 +131,7 @@
<asp:Label ID="lbProductionState" runat="server" Text='<%# ConvertProductionState(Eval("ProductionState"))%>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderCheckField Width="100px" ColumnID="IsPrint" DataField="IsPrint" HeaderText="是否已打印" EnableColumnEdit="False" />
<f:RenderField Width="200px" ColumnID="FlowingSection" DataField="FlowingSection" SortField="FlowingSection"
FieldType="String" HeaderText="流水段"
HeaderTextAlign="Center"
@@ -236,7 +236,7 @@ namespace FineUIPro.Web.HJGL.PreDesign
private void BindGrid()
{
string strSql = @" SELECT distinct com.PipelineComponentId,com.PipelineComponentCode,com.BoxNumber,
com.PipelineId, punit.UnitName AS PreUnit,aunit.UnitName AS AssembleUnit,
com.PipelineId, punit.UnitName AS PreUnit,aunit.UnitName AS AssembleUnit,com.IsPrint,
com.QRCode,com.State,com.ProductionState,pipe.PlanStartDate,pipe.FlowingSection,com.DrawingName,com.ReceiveDate,
person.PersonName
FROM HJGL_Pipeline_Component com
@@ -355,58 +355,24 @@ namespace FineUIPro.Web.HJGL.PreDesign
}
protected void btnPrint_Click(object sender, EventArgs e)
{
Print(tvControlItem.SelectedNodeID, Grid1.SelectedRowIDArray);
Print(Grid1.SelectedRowIDArray);
HJGL_PipelineComponentService.UpdateIsPrint(Grid1.SelectedRowIDArray); //打印后修改打印状态
}
private void Print(string PipelineId ,string[] PipelineComponentId)
{
var db = Funs.DB;
private void Print(string[] PipelineComponentId)
{
BLL.FastReportService.ResetData();
var query =
from com in db.HJGL_Pipeline_Component
join mat in db.HJGL_PipeLineMat on com.PipeLineMatId equals mat.PipeLineMatId into matJoin
from mat in matJoin.DefaultIfEmpty()
join pipe in db.HJGL_Pipeline on com.PipelineId equals pipe.PipelineId into pipeJoin
from pipe in pipeJoin.DefaultIfEmpty()
join punit in db.Base_Unit on com.PreUnit equals punit.UnitId into punitJoin
from punit in punitJoin.DefaultIfEmpty()
join aunit in db.Base_Unit on com.AssembleUnit equals aunit.UnitId into aunitJoin
from aunit in aunitJoin.DefaultIfEmpty()
join unitwork in db.WBS_UnitWork on pipe.UnitWorkId equals unitwork.UnitWorkId into unitworkJoin
from unitwork in unitworkJoin.DefaultIfEmpty()
join mater in db.Base_Material on pipe.MaterialId equals mater.MaterialId into materJoin
from mater in materJoin.DefaultIfEmpty()
where com.QRCode != "" & com.PipelineId == PipelineId
orderby com.PipelineComponentCode
select new
{
com.PipelineComponentId,
com.PipelineComponentCode,
com.BoxNumber,
UnitWorkName = unitwork.UnitWorkName,
com.PipelineId,
PreUnit = punit.UnitName,
AssembleUnit = aunit.UnitName,
mat.PrefabricatedComponents,
com.QRCode,
com.State,
PlanStartDate = string.Format("yyyy-MM-dd", pipe.PlanStartDate),
pipe.PipelineCode,
pipe.FlowingSection,
QRCode2 = "PrePipeline$" + com.PipelineComponentId,
mater.MaterialCode
};
var result = query.ToList();
if (PipelineComponentId.Length>0)
{
result = result.Where(x => PipelineComponentId.Contains(x.PipelineComponentId)).ToList();
}
var result = HJGL_PipelineComponentService.GetPrintModelByPipelineComponentIds(PipelineComponentId, null, false);
var tb = LINQToDataTable(result);
if (tb != null)
if (tb != null && tb.Rows.Count > 0)
{
tb.TableName = "Table1";
}
else
{
ShowNotify("请查看组件是否上传二维码!", MessageBoxIcon.Question);
return;
}
BLL.FastReportService.AddFastreportTable(tb);
string initTemplatePath = "";
string rootPath = Server.MapPath("~/");
@@ -416,40 +382,7 @@ namespace FineUIPro.Web.HJGL.PreDesign
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("~/Controls/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath)));
}
/*string strSql = @" SELECT com.PipelineComponentId,com.PipelineComponentCode,com.BoxNumber,unitwork.UnitWorkName,
com.PipelineId, punit.UnitName AS PreUnit,aunit.UnitName AS AssembleUnit,mat.PrefabricatedComponents,
com.QRCode,com.State,CONVERT(varchar(100), pipe.PlanStartDate, 23) as PlanStartDate,pipe.PipelineCode,pipe.FlowingSection,
('PrePipeline$'+com.PipelineComponentId )as QRCode2,mater.*
FROM HJGL_Pipeline_Component com
LEFT JOIN HJGL_PipeLineMat mat ON mat.PipeLineMatId=com.PipeLineMatId
LEFT JOIN HJGL_Pipeline pipe ON pipe.PipelineId =com.PipelineId
LEFT JOIN dbo.Base_Unit punit ON punit.UnitId=com.PreUnit
LEFT JOIN dbo.Base_Unit aunit ON aunit.UnitId=com.AssembleUnit
LEFT JOIN dbo.WBS_UnitWork unitwork on pipe.UnitWorkId=unitwork.UnitWorkId
LEFT JOIN dbo.Base_Material AS mater ON mater.MaterialId=pipe.MaterialId
WHERE com.QRCode!=''";
List<SqlParameter> listStr = new List<SqlParameter> { };
strSql += " AND com.PipelineId =@PipelineId";
listStr.Add(new SqlParameter("@PipelineId", PipelineId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
if (tb != null)
{
tb.TableName = "Table1";
}
BLL.FastReportService.AddFastreportTable(tb);
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)));
}*/
}
}
/// <summary>
@@ -73,8 +73,7 @@ namespace FineUIPro.Web.HJGL.PreDesign
pipeline.AssembleUnit = this.drpAssembleUnit.SelectedValue;
}
pipeline.BoxNumber = this.txtBoxNumber.Text.Trim();
pipeline.PipelineId = hdPipelineId.Text;
pipeline.PipelineId = hdPipelineId.Text;
BLL.HJGL_PipelineComponentService.AddPipelineComponent(pipeline);
}
}
@@ -68,7 +68,8 @@
<f:Button runat="server" ID="btnSearch" Icon="SystemSearch" ToolTip="查询" Text="查询" OnClick="btnSearch_Click">
</f:Button>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnPrint" runat="server" Icon="Printer" EnableAjax="false" Text="预制组件打印" ToolTip="预制组件打印" OnClick="btnPrint_Click"></f:Button>
<f:DatePicker ID="txtTaskDate" Label="计划焊接日期" runat="server"
DateFormatString="yyyy-MM-dd" LabelAlign="Left" LabelWidth="110px" Hidden="true">
</f:DatePicker>
@@ -214,6 +215,11 @@
EnableMaximize="true" Target="Top" EnableResize="false" runat="server"
IsModal="true" Width="1300px" Height="650px" OnClose="Window1_Close">
</f:Window>
<f:Window ID="Window2" Title="打印" Hidden="true" EnableIFrame="true"
EnableMaximize="true" Target="Top" EnableResize="false" runat="server"
IsModal="true" Width="1010px" Height="660px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuAdd" EnablePostBack="true" runat="server" Text="新增" Hidden="true" Icon="Add" OnClick="btnMenuAdd_Click">
</f:MenuButton>
@@ -3,6 +3,7 @@ using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web.UI.WebControls;
@@ -1115,5 +1116,55 @@ namespace FineUIPro.Web.HJGL.WeldingManage
this.BindGrid(GetWeldingTaskList);
}
}
protected void btnPrint_Click(object sender, EventArgs e)
{
DateTime? taskTime = Funs.GetNewDateTime(tvControlItem.SelectedNodeID.Split('|')[1]);
if (taskTime != null)
{
var pipelines = BLL.WeldTaskService.GetWeldingTaskList(this.CurrUser.LoginProjectId, tvControlItem.SelectedNode.ParentNode.NodeID, Convert.ToDateTime(taskTime)).Select(x=>x.PipelineId).Distinct().ToList();
if (pipelines.Any())
{
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;
}
BLL.FastReportService.AddFastreportTable(tb);
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)));
HJGL_PipelineComponentService.UpdateIsPrint(PipelineComponentIds);
}
}
else
{
ShowNotify("无关联管线", MessageBoxIcon.Question);
}
}
else
{
ShowNotify("请选择任务单",MessageBoxIcon.Question);
}
}
}
}
@@ -176,6 +176,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.Button btnSearch;
/// <summary>
/// btnPrint 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnPrint;
/// <summary>
/// txtTaskDate 控件。
/// </summary>
@@ -284,6 +293,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Window2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window2;
/// <summary>
/// Menu1 控件。
/// </summary>
@@ -126,7 +126,7 @@
<f:TextBox ID="TextBox8" runat="server" Required="true"></f:TextBox>
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="ProjectDescription" DataField="ProjectDescription" SortField="ProjectDescription" EnableColumnEdit="False"
<f:RenderField Width="300px" ColumnID="ProjectDescription" DataField="ProjectDescription" SortField="ProjectDescription" EnableColumnEdit="False"
FieldType="String" HeaderText="项目特征描述" TextAlign="Center" HeaderTextAlign="Center">
<Editor>
<f:TextBox ID="TextBox9" runat="server" Required="true"></f:TextBox>
@@ -162,13 +162,13 @@
<f:TextBox ID="TextBox14" runat="server" Required="true"></f:TextBox>
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="CalculationRule" DataField="CalculationRule" SortField="CalculationRule" EnableColumnEdit="False" Hidden="True"
<f:RenderField Width="300px" ColumnID="CalculationRule" DataField="CalculationRule" SortField="CalculationRule" EnableColumnEdit="False" Hidden="True"
FieldType="String" HeaderText="计算规则" TextAlign="Center" HeaderTextAlign="Center">
<Editor>
<f:TextBox ID="TextBox15" runat="server" Required="true"></f:TextBox>
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="WorkContent" DataField="WorkContent" SortField="WorkContent" EnableColumnEdit="False" Hidden="True"
<f:RenderField Width="300px" ColumnID="WorkContent" DataField="WorkContent" SortField="WorkContent" EnableColumnEdit="False" Hidden="True"
FieldType="String" HeaderText="工作内容" TextAlign="Center" HeaderTextAlign="Center">
<Editor>
<f:TextBox ID="TextBox16" runat="server" Required="true"></f:TextBox>
@@ -237,9 +237,9 @@
</ItemTemplate>
</f:TemplateField>
</Columns>
<%-- <Listeners>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>--%>
</Listeners>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
@@ -349,7 +349,8 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, BLL.Const.PHTGL_ContractTrackComparisonMenuId);
if (buttonList.Count > 0)
{
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnMenuEdit.Hidden = false;
@@ -138,7 +138,7 @@
<f:TextBox ID="TextBox8" runat="server" Required="true"></f:TextBox>
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="ProjectDescription" DataField="ProjectDescription" SortField="ProjectDescription"
<f:RenderField Width="300px" ColumnID="ProjectDescription" DataField="ProjectDescription" SortField="ProjectDescription"
FieldType="String" HeaderText="项目特征描述" TextAlign="Center" HeaderTextAlign="Center">
<Editor>
<f:TextBox ID="TextBox9" runat="server" Required="true"></f:TextBox>
@@ -174,13 +174,13 @@
<f:TextBox ID="TextBox14" runat="server" Required="true"></f:TextBox>
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="CalculationRule" DataField="CalculationRule" SortField="CalculationRule"
<f:RenderField Width="300px" ColumnID="CalculationRule" DataField="CalculationRule" SortField="CalculationRule"
FieldType="String" HeaderText="计算规则" TextAlign="Center" HeaderTextAlign="Center">
<Editor>
<f:TextBox ID="TextBox15" runat="server" Required="true"></f:TextBox>
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="WorkContent" DataField="WorkContent" SortField="WorkContent"
<f:RenderField Width="300px" ColumnID="WorkContent" DataField="WorkContent" SortField="WorkContent"
FieldType="String" HeaderText="工作内容" TextAlign="Center" HeaderTextAlign="Center">
<Editor>
<f:TextBox ID="TextBox16" runat="server" Required="true"></f:TextBox>
@@ -39,9 +39,9 @@
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="合同执行跟踪表" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="Id" AllowCellEditing="true"
ClicksToEdit="1" DataIDField="Id" AllowSorting="true" SortField="Id"
SortDirection="DESC" OnSort="Grid1_Sort" EnableColumnLines="true"
SortDirection="DESC" OnSort="Grid1_Sort" EnableColumnLines="true" AllowColumnLocking="true"
AllowPaging="True" IsDatabasePaging="true" PageSize="300" OnPageIndexChange="Grid1_PageIndexChange" OnRowDataBound="Grid1_OnRowDataBound"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" EnableRowClickEvent="True">
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" EnableRowClickEvent="True" >
<Toolbars>
<f:Toolbar ID="Toolbar4" Position="Top" runat="server" ToolbarAlign="Right">
@@ -36,10 +36,12 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
list[1] = new ListItem("主项名称", "MainItemName");
list[2] = new ListItem("专业工程名称", "MajorName");
list[3] = new ListItem("专业代码", "MajorCode");
list[4] = new ListItem("分部工程", "SubProject");
list[5] = new ListItem("分项工程", "SubItemProject");
list[6] = new ListItem("项目编码", "ProjectCode");
list[7] = new ListItem("项目名称", "ProjectName");
//list[4] = new ListItem("分部工程", "SubProject");
//list[5] = new ListItem("子分部工程", "SubItemProject");
list[4] = new ListItem("项目编码", "ProjectCode");
list[5] = new ListItem("项目名称", "ProjectName");
list[6] = new ListItem("项目特征描述", "ProjectDescription");
list[7] = new ListItem("计量单位", "UnitOfMeasurement");
foreach (var item in list)
{
@@ -49,6 +51,7 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
bf.HeaderText = item.Text;
bf.HeaderTextAlign = TextAlign.Center;
bf.TextAlign = TextAlign.Center;
bf.Locked = true;
Grid1.Columns.Add(bf);
GridTable.Columns.Add(item.Value);
}
@@ -306,10 +309,12 @@ namespace FineUIPro.Web.PHTGL.ContractCompile
row["MainItemName"] = item.MainItemName;
row["MajorName"] = item.MajorName;
row["MajorCode"] = item.MajorCode;
row["SubProject"] = item.SubProject;
row["SubItemProject"] = item.SubItemProject;
//row["SubProject"] = item.SubProject;
//row["SubItemProject"] = item.SubItemProject;
row["ProjectCode"] = item.ProjectCode;
row["ProjectName"] = item.ProjectName;
row["ProjectDescription"] = item.ProjectDescription;
row["UnitOfMeasurement"] = item.UnitOfMeasurement;
Model.PHTGL_ContractTrackProgress qContractTrackProgress = new Model.PHTGL_ContractTrackProgress();
qContractTrackProgress.ContractTrackId = item.Id;
@@ -127,7 +127,7 @@
<f:TextBox ID="TextBox8" runat="server" Required="true"></f:TextBox>
</Editor>
</f:RenderField>
<f:RenderField Width="150px" ColumnID="ProjectDescription" DataField="ProjectDescription" SortField="ProjectDescription" EnableColumnEdit="False"
<f:RenderField Width="300px" ColumnID="ProjectDescription" DataField="ProjectDescription" SortField="ProjectDescription" EnableColumnEdit="False"
FieldType="String" HeaderText="项目特征描述" TextAlign="Center" HeaderTextAlign="Center">
<Editor>
<f:TextBox ID="TextBox9" runat="server" Required="true"></f:TextBox>
+42
View File
@@ -94622,6 +94622,8 @@ namespace Model
private System.Nullable<int> _ProductionState;
private System.Nullable<bool> _IsPrint;
private EntityRef<HJGL_Pipeline> _HJGL_Pipeline;
#region
@@ -94662,6 +94664,8 @@ namespace Model
partial void OnReceiveDateChanged();
partial void OnProductionStateChanging(System.Nullable<int> value);
partial void OnProductionStateChanged();
partial void OnIsPrintChanging(System.Nullable<bool> value);
partial void OnIsPrintChanged();
#endregion
public HJGL_Pipeline_Component()
@@ -95014,6 +95018,26 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsPrint", DbType="Bit")]
public System.Nullable<bool> IsPrint
{
get
{
return this._IsPrint;
}
set
{
if ((this._IsPrint != value))
{
this.OnIsPrintChanging(value);
this.SendPropertyChanging();
this._IsPrint = value;
this.SendPropertyChanged("IsPrint");
this.OnIsPrintChanged();
}
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_HJGL_Pipeline_Component_HJGL_Pipeline", Storage="_HJGL_Pipeline", ThisKey="PipelineId", OtherKey="PipelineId", IsForeignKey=true)]
public HJGL_Pipeline HJGL_Pipeline
{
@@ -272332,6 +272356,8 @@ namespace Model
private string _PipelineCode;
private string _PipelineId;
private string _WeldTypeCode;
private string _WeldingMethodCode;
@@ -272712,6 +272738,22 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PipelineId", DbType="NVarChar(50)")]
public string PipelineId
{
get
{
return this._PipelineId;
}
set
{
if ((this._PipelineId != value))
{
this._PipelineId = value;
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WeldTypeCode", DbType="NVarChar(50)")]
public string WeldTypeCode
{