包装管理修改

This commit is contained in:
2025-05-12 19:05:13 +08:00
parent 96139ddfb8
commit b1d732d1a9
21 changed files with 790 additions and 325 deletions
+1 -1
View File
@@ -405,7 +405,7 @@
<Compile Include="HJGL\PointTrust\PointBatchDetailService.cs" />
<Compile Include="HJGL\PointTrust\PointBatchService.cs" />
<Compile Include="HJGL\PreDesign\HJGL_MaterialService.cs" />
<Compile Include="HJGL\PreDesign\PackagingmanagedetailService.cs" />
<Compile Include="HJGL\PreDesign\HJGLPackagingmanagedetailService.cs" />
<Compile Include="HJGL\PreDesign\PackagingManageService .cs" />
<Compile Include="HJGL\PreDesign\TrainNumberManageService.cs" />
<Compile Include="HJGL\PreDesign\YardPlanningService.cs" />
@@ -1,4 +1,5 @@
using FineUIPro;
using Model;
using System;
using System.Collections;
using System.Collections.Generic;
@@ -9,11 +10,8 @@ using System.Text;
namespace BLL
{
public static class PackagingmanagedetailService
{
public static class HJGLPackagingmanagedetailService
{
#region
/// <summary>
/// 记录数
@@ -122,32 +120,71 @@ namespace BLL
{
return Funs.DB.HJGL_PackagingManageDetail.FirstOrDefault(x => x.Id == Id);
}
public static IEnumerable GetPackagingData(string PackagingManageId)
public static IEnumerable<Model.PipelinePrefabricatedComponentsItem> GetPackagingData(string PackagingManageId)
{
var q = from detail in Funs.DB.HJGL_PackagingManageDetail
join lib in Funs.DB.HJGL_MaterialCodeLib on detail.MaterialCode equals lib.MaterialCode into libJoin
from libItem in libJoin.DefaultIfEmpty()
join line in Funs.DB.HJGL_Pipeline on detail.PipelineId equals line.PipelineId into lineJoin
from lineItem in lineJoin.DefaultIfEmpty()
where detail.PackagingManageId == PackagingManageId
select new
{
detail.Id,
libItem.MaterialCode,
libItem.MaterialName,
libItem.MaterialUnit,
libItem.MaterialSpec,
libItem.MaterialMade,
libItem.MaterialDef,
detail.Number,
lineItem.PipelineId,
lineItem.PipelineCode,
if (string.IsNullOrEmpty(PackagingManageId))
{
return null;
}
var pack = HJGL_PackagingmanageService.GetHJGL_PackagingManageById(PackagingManageId);
if (pack == null)
{
return null;
}
var result = new List<Model.PipelinePrefabricatedComponentsItem>();
if (pack.TypeInt == (int)HJGL_PackagingmanageService.TypeInt.)
{
var q = from detail in Funs.DB.HJGL_PackagingManageDetail
join lib in Funs.DB.HJGL_MaterialCodeLib on detail.MaterialCode equals lib.MaterialCode into libJoin
from libItem in libJoin.DefaultIfEmpty()
join line in Funs.DB.HJGL_Pipeline on detail.PipelineId equals line.PipelineId into lineJoin
from lineItem in lineJoin.DefaultIfEmpty()
where detail.PackagingManageId == PackagingManageId /*&& (detail.PipelineId != null || detail.PipelineId != "") && (detail.PipelineComponentId == null || detail.PipelineComponentId == "")*/
select new PipelinePrefabricatedComponentsItem
{
Id = detail.Id,
MaterialCode = libItem.MaterialCode,
MaterialName = libItem.MaterialName,
MaterialUnit = libItem.MaterialUnit,
MaterialSpec = libItem.MaterialSpec,
MaterialMade = libItem.MaterialMade,
MaterialDef = libItem.MaterialDef,
Number = detail.Number,
PipelineId = lineItem.PipelineId,
PipelineCode = lineItem.PipelineCode,
UnitWorkId=lineItem.UnitWorkId,
};
return q;
};
result= q.ToList();
}
else if(pack.TypeInt == (int)HJGL_PackagingmanageService.TypeInt.)
{
var q = from detail in Funs.DB.HJGL_PackagingManageDetail
join lib in Funs.DB.HJGL_MaterialCodeLib on detail.MaterialCode equals lib.MaterialCode into libJoin
from libItem in libJoin.DefaultIfEmpty()
join line in Funs.DB.HJGL_Pipeline on detail.PipelineId equals line.PipelineId into lineJoin
from lineItem in lineJoin.DefaultIfEmpty()
where detail.PackagingManageId == PackagingManageId /*&& (detail.PipelineId == null || detail.PipelineId == "")*/
select new PipelinePrefabricatedComponentsItem
{
Id = detail.Id,
MaterialCode = libItem.MaterialCode,
MaterialName = libItem.MaterialName,
MaterialUnit = libItem.MaterialUnit,
MaterialSpec = libItem.MaterialSpec,
MaterialMade = libItem.MaterialMade,
MaterialDef = libItem.MaterialDef,
Number = detail.Number,
PipelineId = lineItem.PipelineId,
PipelineCode = lineItem.PipelineCode,
};
result = q.ToList();
}
return result;
}
public static void Add(Model.HJGL_PackagingManageDetail newtable)
{
@@ -165,8 +202,6 @@ namespace BLL
Funs.DB.HJGL_PackagingManageDetail.InsertOnSubmit(table);
Funs.DB.SubmitChanges();
}
public static void Update(Model.HJGL_PackagingManageDetail newtable)
{
@@ -8,11 +8,11 @@ using System.Data.SqlClient;
using System.Linq;
using System.Text;
namespace BLL
{
/// <summary>
/// 包装管理服务类
/// </summary>
public static class HJGL_PackagingmanageService
{
public class PackagingManageItem
@@ -28,6 +28,8 @@ namespace BLL
public string ContactPhone { get; set; }
public string StackingPosition { get; set; }
public int? State { get; set; }
public int? TypeInt { get; set; }
public string TypeString { get; set; }
public string ReceiveMan { get; set; }
public string ReceiveDate { get; set; }
@@ -36,22 +38,23 @@ namespace BLL
public string Code { get; set; }
public string TrainNumber { get; set; }
public string TrainNumberOld { get; set; }
}
/// <summary>
/// 未到场
/// </summary>
public static int state_0 = 0;
/// <summary>
/// 已发货
/// </summary>
public static int state_1 = 1;
/// <summary>
/// 已到场
/// </summary>
public static int state_2 = 2;
public static ListItem[] GetState()
{
ListItem[] list = new ListItem[3];
@@ -67,12 +70,19 @@ namespace BLL
= 20,
= 30,
}
public static Dictionary<string, int> TypeIntMap = new Dictionary<string, int>
{
{ "预制组件" ,(int)TypeInt.},
{ "预制散件" ,(int)TypeInt.},
{ "其他材料" ,(int)TypeInt.},
};
public static string GetTypeString(int? TypeInt)
{
return TypeIntMap.FirstOrDefault(c => c.Value == TypeInt).Key;
}
public static Model.HJGL_PackagingManage GetHJGL_PackagingManageById(string PackagingManageId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
@@ -80,6 +90,7 @@ namespace BLL
return db.HJGL_PackagingManage.FirstOrDefault(x => x.PackagingManageId == PackagingManageId);
}
}
public static string GetMinPlanStartDate(string PackagingManageId)
{
string PlanStartDate = "";
@@ -95,39 +106,40 @@ namespace BLL
}
return PlanStartDate;
}
public static (List<PackagingManageItem> Data, int Total) GetPackagingManageList(string projectId, string PackagingCode, int pageIndex = 0, int pageSize = 20)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var baseQuery = (from x in db.HJGL_PackagingManage
join n in db.Base_Project on x.ProjectId equals n.ProjectId
join m in db.Person_Persons on x.ReceiveMan equals m.PersonId into tt
from t in tt.DefaultIfEmpty()
join n in db.Base_Project on x.ProjectId equals n.ProjectId
join m in db.Person_Persons on x.ReceiveMan equals m.PersonId into tt
from t in tt.DefaultIfEmpty()
join train in db.HJGL_TrainNumberManage on x.TrainNumberId equals train.Id into trains
from train in trains.DefaultIfEmpty()
where x.ProjectId == projectId
&& (string.IsNullOrEmpty(PackagingCode) || x.PackagingCode.Contains(PackagingCode))
select new PackagingManageItem
{
PackagingManageId = x.PackagingManageId,
PackagingCode = x.PackagingCode,
ProjectName = n.ProjectName,
ContactName = train.ContactName,
ContactPhone = train.ContactPhone,
DriverName = train.DriverName,
DriverPhone = train.DriverPhone,
LicensePlateNumber = train.LicensePlateNumber,
StackingPosition = x.StackingPosition,
State = x.State,
ReceiveMan = t.PersonName,
ReceiveDate = x.ReceiveDate.HasValue ? string.Format("{0:g}", x.ReceiveDate) : "",
PlanStartDate = GetMinPlanStartDate(x.PackagingManageId),
TrainNumberOld = x.TrainNumber,
TrainNumber = train.TrainNumber,
Code = x.PackagingCode.Substring(0, x.PackagingCode.LastIndexOf("-")).Substring(x.PackagingCode.Substring(0, x.PackagingCode.LastIndexOf("-")).LastIndexOf("-") + 1),
}).Distinct();
select new PackagingManageItem
{
PackagingManageId = x.PackagingManageId,
PackagingCode = x.PackagingCode,
ProjectName = n.ProjectName,
ContactName = train.ContactName,
ContactPhone = train.ContactPhone,
DriverName = train.DriverName,
DriverPhone = train.DriverPhone,
LicensePlateNumber = train.LicensePlateNumber,
StackingPosition = x.StackingPosition,
State = x.State,
TypeInt = x.TypeInt,
TypeString = GetTypeString(x.TypeInt),
ReceiveMan = t.PersonName,
ReceiveDate = x.ReceiveDate.HasValue ? string.Format("{0:g}", x.ReceiveDate) : "",
PlanStartDate = GetMinPlanStartDate(x.PackagingManageId),
TrainNumberOld = x.TrainNumber,
TrainNumber = train.TrainNumber,
Code = x.PackagingCode.Substring(0, x.PackagingCode.LastIndexOf("-")).Substring(x.PackagingCode.Substring(0, x.PackagingCode.LastIndexOf("-")).LastIndexOf("-") + 1),
}).Distinct();
var pagedData = baseQuery
.OrderByDescending(x => x.Code)
@@ -136,11 +148,11 @@ namespace BLL
.ToList();
// 获取总记录数(延迟计数优化)
var totalCount = baseQuery.Count();
return (pagedData, totalCount);
var totalCount = baseQuery.Count();
return (pagedData, totalCount);
}
}
}
/// <summary>
/// 形成出库单
/// </summary>
@@ -153,8 +165,8 @@ namespace BLL
model.State = state_1;
UpdateHJGL_PackagingManage(model);
}
}
/// <summary>
/// 根据主键获取装箱明细
/// </summary>
@@ -168,7 +180,7 @@ namespace BLL
{
var PipelineComponentIds = model.PipelineComponentId.Split(',');
string strSql = @"select com.PipelineComponentId, com.PipelineComponentCode,isnull(pipe.PlanStartDate,getdate()) as PlanStartDate,unitwork.UnitWorkName,'1' as num ,'个' as CU
from HJGL_Pipeline_Component com
from HJGL_Pipeline_Component com
left join HJGL_Pipeline pipe on com.PipelineId=pipe.PipelineId
left join WBS_UnitWork unitwork on pipe.UnitWorkId=unitwork.UnitWorkId
";
@@ -179,7 +191,6 @@ namespace BLL
tb = SQLHelper.GetDataTableRunText(strSql, parameter);
}
return tb;
}
/// <summary>
@@ -195,13 +206,36 @@ namespace BLL
select x.PackagingCode).Distinct().ToList();
return q;
}
public static List<Model.HJGL_PackagingManage> GetPackagingManage(string trainNumberId)
{
Model.SGGLDB db = Funs.DB;
var q = (from x in db.HJGL_PackagingManage
where x.TrainNumberId==trainNumberId
select x).Distinct().ToList();
return q;
}
public static string GetNewPackagingCode(string projectid)
{
string code = ProjectService.GetProjectCodeByProjectId(projectid) + "-" + string.Format("{0:yyyyMMdd}", DateTime.Now) + "-";
var q = GetPackagingManageList(projectid, code);
if (q.Total > 0)
{
code = code + (q.Total + 1).ToString().PadLeft(3, '0');
}
else
{
code = code + "001";
}
return code;
}
/// <summary>
/// 新增实体
/// </summary>
/// <param name="newtable"></param>
public static void AddHJGL_PackagingManage(Model.HJGL_PackagingManage newtable)
{
Model.HJGL_PackagingManage table = new Model.HJGL_PackagingManage
{
PackagingManageId = newtable.PackagingManageId,
@@ -224,7 +258,6 @@ namespace BLL
db1.SubmitChanges();
}
public static void UpdateHJGL_PackagingManage(Model.HJGL_PackagingManage newtable)
{
var db1 = Funs.DB;
@@ -247,8 +280,8 @@ namespace BLL
table.TypeInt = newtable.TypeInt;
db1.SubmitChanges();
}
}
public static void DeleteHJGL_PackagingManageById(string PackagingManageId)
{
var db1 = Funs.DB;
@@ -258,10 +291,8 @@ namespace BLL
db1.HJGL_PackagingManage.DeleteOnSubmit(table);
db1.SubmitChanges();
}
}
/// <summary>
/// 管线下拉框
/// </summary>
@@ -278,6 +309,5 @@ namespace BLL
Funs.FineUIPleaseSelect(dropName);
}
}
}
}
@@ -85,6 +85,95 @@ namespace BLL
return Funs.DB.HJGL_Pipeline_Component.FirstOrDefault(e => e.PipeLineMatId == pipeLineMatId);
}
/// <summary>
/// 获取预制散件
/// </summary>
/// <param name="unitworkId">单位工程Id</param>
/// <param name="pipelineId">管线Id</param>
/// <returns></returns>
public static IEnumerable<PipelinePrefabricatedComponentsItem> GetPipelinePrefabricatedComponent(string unitworkId, string pipelineId)
{
var query = from pipe in Funs.DB.HJGL_PipeLineMat
join lib in Funs.DB.HJGL_MaterialCodeLib on pipe.MaterialCode equals lib.MaterialCode into libJoin
from libItem in libJoin.DefaultIfEmpty()
join line in Funs.DB.HJGL_Pipeline on pipe.PipelineId equals line.PipelineId into lineJoin
from lineItem in lineJoin.DefaultIfEmpty()
where lineItem != null && lineItem.UnitWorkId == unitworkId && lineItem.PipeArea == "1"
&& (pipe.PrefabricatedComponents == null || pipe.PrefabricatedComponents == "")
select new PipelinePrefabricatedComponentsItem
{
Id = pipe.PipeLineMatId,
MaterialCode = libItem.MaterialCode,
MaterialName = libItem.MaterialName,
MaterialUnit = libItem.MaterialUnit,
MaterialSpec = libItem.MaterialSpec,
MaterialMade = libItem.MaterialMade,
MaterialDef = libItem.MaterialDef,
Number = pipe.Number,
PrefabricatedComponents = pipe.PrefabricatedComponents,
PipelineId = lineItem.PipelineId,
};
if (!string.IsNullOrEmpty(pipelineId))
{
query = query.Where(x => x.PipelineId == pipelineId);
}
query = query.OrderBy(x => x.PrefabricatedComponents);
return query.ToList();
}
/// <summary>
/// 获取预制散件
/// </summary>
/// <param name="pipelineId">管线Id</param>
/// <returns></returns>
public static IEnumerable<PipelinePrefabricatedComponentsItem> GetPipelinePrefabricatedComponent(string pipelineId)
{
var query = from pipe in Funs.DB.HJGL_PipeLineMat
join lib in Funs.DB.HJGL_MaterialCodeLib on pipe.MaterialCode equals lib.MaterialCode into libJoin
from libItem in libJoin.DefaultIfEmpty()
join line in Funs.DB.HJGL_Pipeline on pipe.PipelineId equals line.PipelineId into lineJoin
from lineItem in lineJoin.DefaultIfEmpty()
where lineItem != null && lineItem.PipeArea == "1"
&& (pipe.PrefabricatedComponents == null || pipe.PrefabricatedComponents == "")
select new PipelinePrefabricatedComponentsItem
{
Id = pipe.PipeLineMatId,
MaterialCode = libItem.MaterialCode,
MaterialName = libItem.MaterialName,
MaterialUnit = libItem.MaterialUnit,
MaterialSpec = libItem.MaterialSpec,
MaterialMade = libItem.MaterialMade,
MaterialDef = libItem.MaterialDef,
Number = pipe.Number,
PrefabricatedComponents = pipe.PrefabricatedComponents,
PipelineId = lineItem.PipelineId,
};
if (!string.IsNullOrEmpty(pipelineId))
{
query = query.Where(x => x.PipelineId == pipelineId);
}
query = query.OrderBy(x => x.PrefabricatedComponents);
var inoutplandetail = (from x in Funs.DB.HJGL_PackagingManageDetail
where x.PipelineId == pipelineId
&& (x.PipelineComponentId == null || x.PipelineComponentId == "")
select x).ToList();
var queryList = query.ToList();
// 优化 Linq 过滤条件
var result = (from x in queryList
join y in inoutplandetail on x.MaterialCode equals y.MaterialCode into yy
from y in yy.DefaultIfEmpty()
where y == null
select x).ToList();
return result;
}
/// <summary>
/// 获取打印实体
/// </summary>
@@ -92,8 +181,7 @@ namespace BLL
/// <param name="PipelineId"></param>
/// <param name="IsCheckPrint"></param>
/// <returns></returns>
public static IEnumerable<PipelineComponentPrintDto> GetPrintModelByPipelineComponentIds(
string[] PipelineComponentId, string[] PipelineId, bool IsCheckPrint)
public static IEnumerable<PipelineComponentPrintDto> GetPrintModelByPipelineComponentIds(string[] PipelineComponentId, string[] PipelineId, bool IsCheckPrint)
{
var db = Funs.DB;
var query =
@@ -154,9 +242,6 @@ namespace BLL
return result;
}
/// <summary>
/// 判断管线组件Code是否存在
/// </summary>
@@ -226,7 +311,7 @@ namespace BLL
}
/// <summary>
/// 添加作业管线
/// 添加管线预制组件
/// </summary>
/// <param name="pipeline"></param>
public static void AddPipelineComponent(Model.HJGL_Pipeline_Component pipeline)
@@ -258,7 +343,7 @@ namespace BLL
}
/// <summary>
/// 修改作业管线
/// 修改管线预制组件
/// </summary>
/// <param name="pipeline"></param>
public static void UpdatePipelineComponent(Model.HJGL_Pipeline_Component pipeline)
@@ -289,7 +374,7 @@ namespace BLL
}
}
/// <summary>
/// 修改出库状态
/// 修改组件出库状态
/// </summary>
/// <param name="pipelineComponentId"></param>
/// <param name="BoxNumber"></param>
@@ -306,7 +391,7 @@ namespace BLL
}
/// <summary>
/// 修改打印状态
/// 修改组件打印状态
/// </summary>
/// <param name="PipelineComponentId"></param>
public static void UpdateIsPrint(string[] PipelineComponentId)
@@ -324,7 +409,7 @@ namespace BLL
}
/// <summary>
/// 修改生产状态
/// 修改组件生产状态
/// </summary>
/// <param name="pipelineComponentId"></param>
/// <param name="BoxNumber"></param>
@@ -358,7 +443,7 @@ namespace BLL
}
/// <summary>
/// 根据作业管线Id删除一个作业管线信息
/// 根据管线组件Id删除一个管线组件信息
/// </summary>
/// <param name="pipelineId"></param>
public static void DeletePipelineComponent(string pipelineComponentId)
@@ -372,7 +457,7 @@ namespace BLL
}
}
/// <summary>
/// 根据管线材料id删除对应组件
/// 根据管线组件id删除对应组件
/// </summary>
/// <param name="pipeLineMatId"></param>
public static void DeletePipelineComponentByMatId(string pipeLineMatId)
@@ -387,7 +472,7 @@ namespace BLL
}
/// <summary>
/// 根据管线id删除组件
/// 根据管线组件id删除组件
/// </summary>
/// <param name="pipelineId"></param>
public static void DeletePipelineComponentBypipelineId(string pipelineId)
@@ -473,25 +558,4 @@ 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; }
}
}