2023-10-19

This commit is contained in:
2023-10-19 10:12:45 +08:00
parent 78a26e14c1
commit 6ac768b911
28 changed files with 2562 additions and 329 deletions
+16 -1
View File
@@ -3206,6 +3206,9 @@ namespace BLL
public const string TemQuantityListMenuId3= "FAC4F0F7-A7C0-4F66-8BCB-846C082BCA40";
public const string TemQuantityListMenuId4= "10586190-0FDD-4DA8-A877-CE4599D6F0DF";
public const string TemQuantityListMenuId5= "1C770E20-7912-484C-9739-499B1B2F8DEB";
public const string TemQuantityListMenuId5_1= "3593DF22-78C1-4A73-8468-B20CB44D88C9";
public const string TemQuantityListMenuId5_2= "3ECE6333-6785-424D-996E-B923A650D8C7";
public const string TemQuantityListMenuId5_3= "480F8C85-F5F2-4C5C-BE72-2ADABB7250CF";
public const string TemQuantityListMenuId6= "92101A90-9C22-4B43-B012-9AFF8402F85D";
public const string TemQuantityListMenuId7= "33A03E2C-4E00-4722-AA14-F50419468154";
public const string TemQuantityListMenuId8= "A5A31FE8-0643-4396-99E3-A4A31A947789";
@@ -3215,9 +3218,21 @@ namespace BLL
/// </summary>
public const string PHTGL_BidProjectQuantityMenuId = "687991B6-73AC-42FA-9A72-178AF94D1EB4";
/// <summary>
/// 合同执行跟踪
/// 合同价格信息
/// </summary>
public const string PHTGL_ContractTrackMenuId = "D9BAB30E-3255-4EA0-8631-EF15C9203EFD";
/// <summary>
/// WBS工作包
/// </summary>
public const string PHTGL_ContractWBSMenuId = "98269480-3F36-4169-A91D-16144D903C6C";
/// <summary>
/// 费用对比统计
/// </summary>
public const string PHTGL_ContractTrackComparisonMenuId = "D715B66F-8E99-498F-87DA-E85B4B8EB923";
/// <summary>
/// 进度检测
/// </summary>
public const string PHTGL_ContractTrackProgressDetectionMenuId = "F545E899-B3B5-4B49-A741-DE19356553D5";
#endregion
@@ -17,6 +17,10 @@ namespace BLL
return Funs.DB.PHTGL_Quantity.FirstOrDefault(x => x.Id == Id);
}
public static PHTGL_Quantity GetPHTGL_QuantityByNumBer(string serialNumber,string marjor)
{
return Funs.DB.PHTGL_Quantity.FirstOrDefault(x => x.SerialNumber == serialNumber && x.Major==marjor);
}
public static void AddPHTGL_Quantity(PHTGL_Quantity newtable)
{
@@ -132,10 +136,24 @@ namespace BLL
public static ResponeData ImportData(string path, string majortype)
{
var responeData = new ResponeData();
List<PHTGL_QuantityDtoIn> rows;
List<PHTGL_QuantityDtoIn> rows= new List<PHTGL_QuantityDtoIn>();
List<dynamic> remarkQuery=new List<dynamic>();
string Major = "";
try
{
rows = MiniExcel.Query<PHTGL_QuantityDtoIn>(path).ToList();
var sheetNames = MiniExcel.GetSheetNames(path);
foreach (var item in sheetNames)
{
if (item=="编制说明")
{
remarkQuery = MiniExcel.Query(path, sheetName: item).ToList();
}
else
{
rows = MiniExcel.Query<PHTGL_QuantityDtoIn>(path, sheetName: item).ToList();
}
}
}
catch (Exception e)
{
@@ -154,17 +172,46 @@ namespace BLL
return responeData;
}
Major = GetMajorItems().Where(x => x.Text == majortype).Select(x => x.Value).FirstOrDefault() ??
"";
List<Model.Sys_Const> consts=new List<Model.Sys_Const>();
int SortIndex = 0;
foreach (var item in remarkQuery)
{
if (string.IsNullOrEmpty(Major)) break;
Model.Sys_Const model = new Model.Sys_Const()
{
ID = SQLHelper.GetNewID(),
ConstValue = item.A?.ToString(),
SortIndex = SortIndex,
GroupId = "工程量清单-"+ Major
};
consts.Add(model);
SortIndex++;
}
var old = ConstValue.drpConstItemList("工程量清单-" + Major);
if (old.Count>0)
{
Funs.DB.Sys_Const.DeleteAllOnSubmit(old);
Funs.DB.SubmitChanges();
}
;
Funs.DB.Sys_Const.InsertAllOnSubmit(consts);
Funs.DB.SubmitChanges();
foreach (var item in modeList)
{
item.Major = GetMajorItems().Where(x => x.Text == majortype).Select(x => x.Value).FirstOrDefault() ??
"";
if (string.IsNullOrEmpty(item.Major)) break;
item.Major = Major;
if (string.IsNullOrEmpty(Major)) break;
if (string .IsNullOrEmpty(item.ProjectName)) continue;
if (item.ProjectName== "项目名称") continue;
var queryPhtglQuantity = new PHTGL_Quantity
{
Major = item.Major,
SubProject = item.SubProject,
SubItemProject = item.SubItemProject,
ProjectCode = item.ProjectCode,
ProjectName = item.ProjectName,
IsTemplate = true
};
var resultModel = GetPHTGL_QuantityByModle(queryPhtglQuantity);
@@ -256,17 +303,19 @@ namespace BLL
public static ListItem[] GetMajorItems()
{
var list = new ListItem[10];
var list = new ListItem[12];
list[0] = new ListItem("0", "土建工程");
list[1] = new ListItem("1", "钢结构预制工程");
list[2] = new ListItem("2", "工艺管道安装工程");
list[3] = new ListItem("3", "工艺设备安装工程");
list[4] = new ListItem("4", "非标设备现场制作安装工程");
list[5] = new ListItem("5", "电仪安装工程");
list[6] = new ListItem("6", "水暖安装工程");
list[7] = new ListItem("7", "防腐绝热工程");
list[8] = new ListItem("8", "无损检测工程");
list[9] = new ListItem("9", "防工程");
list[5] = new ListItem("5.1", "电工程");
list[6] = new ListItem("5.2", "仪表工程");
list[7] = new ListItem("5.3", "电信工程");
list[8] = new ListItem("6", "水暖安装工程");
list[9] = new ListItem("7", "防腐绝热工程");
list[10] = new ListItem("8", "无损检测工程");
list[11] = new ListItem("9", "消防工程");
return list;
}
@@ -305,12 +354,14 @@ namespace BLL
(string.IsNullOrEmpty(table.Remarks) || x.Remarks.Contains(table.Remarks)) &&
x.IsTemplate == table.IsTemplate &&
(string.IsNullOrEmpty(table.ParentId) || x.ParentId.Contains(table.ParentId))
select new { x ,IntSerialNumber= Funs.GetNewIntOrZero(x.SerialNumber.Replace(".", ""))
}
select x;
//select new { x ,IntSerialNumber= Funs.GetNewIntOrZero(x.SerialNumber.Replace(".", ""))
// }
;
var model = q.ToList().OrderBy(x => x.IntSerialNumber).Select(itemx => itemx.x).ToList();
//var model = q.ToList().OrderBy(x => x.IntSerialNumber).Select(itemx => itemx.x).ToList();
var model = q.ToList().OrderBy(x => x.SerialNumber, new CustomComparer()).ToList();
return model;
}
@@ -350,9 +401,61 @@ namespace BLL
};
}
public static void CheckSubProjectName(List<PHTGL_Quantity> list)
{
foreach (var item in list)
{
var SubProject = "";
var SubItemProject = "";
var SerialNumberArry = item.SerialNumber?.Split('.');
if (SerialNumberArry.Length==2)
{
item.SubProject = GetPHTGL_QuantityByNumBer(SerialNumberArry[0], item.Major).ProjectName;
UpdatePHTGL_Quantity(item);
}
else if (SerialNumberArry.Length == 3)
{
item.SubProject = GetPHTGL_QuantityByNumBer(SerialNumberArry[0], item.Major).ProjectName;
item.SubItemProject= GetPHTGL_QuantityByNumBer(SerialNumberArry[0]+"."+ SerialNumberArry[1], item.Major).ProjectName;
UpdatePHTGL_Quantity(item);
}
}
}
#endregion
}
public class CustomComparer : IComparer<string>
{
public int Compare(string x, string y)
{
if (string.IsNullOrEmpty(x)||string.IsNullOrEmpty(y))
{
return 0;
}
var xParts = x.Split('.');
var yParts = y.Split('.');
for (int i = 0; i < Math.Min(xParts.Length, yParts.Length); i++)
{
int xNumber, yNumber;
if (int.TryParse(xParts[i], out xNumber) && int.TryParse(yParts[i], out yNumber))
{
if (xNumber != yNumber)
{
return xNumber.CompareTo(yNumber);
}
}
else
{
return x.CompareTo(y);
}
}
return xParts.Length.CompareTo(yParts.Length);
}
}
public class PHTGL_QuantityDtoIn
{
[ExcelColumnIndex("A")] public string SerialNumber { get; set; }