Browse Source

按计划开发

master
me 2 days ago
parent
commit
a29d747b25
  1. 2
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPrintInputDto.cs
  2. 46
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgBaseData/Dics/Dtos/DicItemDto.cs
  3. 51
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM100s/Dtos/BillM100Dto.cs
  4. 26
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM100s/Dtos/BillM100PartDto.cs
  5. 26
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Dtos/BillM110Dto.cs
  6. 28
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Dtos/BillM110PartDto.cs
  7. 6
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Interfaces/IBillM110AppService.cs
  8. 116
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/WY.NewJit.Application.Contracts.xml
  9. 14
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgBaseData/Dics/DicAppService.cs
  10. 483
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/BillM100AppService.cs
  11. 804
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM110s/BillM110AppService.cs
  12. 49
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml
  13. 6
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain.Shared/Common/ObjectResultDto.cs
  14. 6
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain.Shared/MsgCheck/BillStatusEnum.cs
  15. 24
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Entitys/DicItem.cs
  16. 4
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Services/LineSNDomianService.cs
  17. 2
      Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfo.cs
  18. 2
      Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfoInputs.cache
  19. 2
      Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfo.cs
  20. 2
      Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfoInputs.cache

2
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPrintInputDto.cs

@ -37,7 +37,7 @@ namespace WY.NewJit.Extends
/// <summary>
/// 补打时使用
/// </summary>
public virtual List<Guid> M100IdList { get; set; }
//public virtual List<Guid> M100IdList { get; set; }
#endregion
}

46
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgBaseData/Dics/Dtos/DicItemDto.cs

@ -27,5 +27,51 @@ namespace WY.NewJit.MsgBaseData
/// 字典项名称
/// </summary>
public string DicItemName { get; set; }
/// <summary>
/// 分类1(零件大类对应分组)
/// </summary>
public virtual string DicItemSort1 { get; set; }
/// <summary>
/// 分类2 (零件大类对应产线)
/// </summary>
public virtual string DicItemSort2 { get; set; }
/// <summary>
/// 分类3(零件大类对应车型)
/// </summary>
public virtual string DicItemSort3 { get; set; }
/// <summary>
/// 分类4(零件大类对应打印报表的三位零件大类)
/// </summary>
public virtual string DicItemSort4 { get; set; }
/// <summary>
/// 分类5 (零件大类对应客户零件号)
/// </summary>
public virtual string DicItemSort5 { get; set; }
/// <summary>
/// 分类6(零件大类对应显示车型)
/// </summary>
public virtual string DicItemSort6 { get; set; }
/// <summary>
/// 分类7(零件大类对应报表字段显示顺序)
/// </summary>
public virtual string DicItemSort7 { get; set; }
/// <summary>
/// 分类8(零件大类对应装箱清单号的前缀,例如C或T)
/// </summary>
public virtual string DicItemSort8 { get; set; }
/// <summary>
/// 分类9(零件大类对应 打印标准数量 12 或 24)
/// </summary>
public virtual string DicItemSort9 { get; set; }
}
}

51
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM100s/Dtos/BillM100Dto.cs

@ -45,14 +45,14 @@ namespace WY.NewJit.MsgCheck
/// <summary>
/// 总成ID
/// </summary>
[ExporterHeader(DisplayName = "总成ID")]
[ImporterHeader(Name = "总成ID")]
[ExporterHeader(IsIgnore =true)]
[ImporterHeader(IsIgnore = true)]
public Guid? AssemblyID { get; set; }
/// <summary>
/// 上线时间
/// </summary>
[ExporterHeader(DisplayName = "上线时间")]
[ExporterHeader(DisplayName = "上线时间", Format ="yyyy-MM-dd HH:mm")]
[ImporterHeader(Name = "上线时间")]
public DateTime? OnlineTime { get; set; }
@ -73,14 +73,14 @@ namespace WY.NewJit.MsgCheck
/// <summary>
/// 版本
/// </summary>
[ExporterHeader(DisplayName = "版本")]
[ImporterHeader(Name = "版本")]
[ExporterHeader(IsIgnore = true)]
[ImporterHeader(IsIgnore = true)]
public string Version { get; set; }
/// <summary>
/// 接收时间
/// </summary>
[ExporterHeader(DisplayName = "接收时间")]
[ExporterHeader(DisplayName = "接收时间", Format = "yyyy-MM-dd HH:mm")]
[ImporterHeader(Name = "接收时间")]
public DateTime? ReceiveTime { get; set; }
@ -101,28 +101,55 @@ namespace WY.NewJit.MsgCheck
/// <summary>
/// 涂装重复单据包含的零件列表
/// </summary>
[ExporterHeader(IsIgnore = true)]
[ImporterHeader(IsIgnore = true)]
public List<BillM100PartDto> BillM100Parts { get; set; }
/// <summary>
/// 手工操作类型:0 none,1 手工添加,2 手工修改
/// </summary>
[ExporterHeader(DisplayName = "手工操作类型")]
[ImporterHeader(Name = "手工操作类型")]
[ExporterHeader(IsIgnore = true)]
[ImporterHeader(IsIgnore = true)]
public ManualOperationTypeEnum OperationType { get; set; }
/// <summary>
/// 手工操作员
/// </summary>
[ExporterHeader(DisplayName = "手工操作员")]
[ImporterHeader(Name = "手工操作员")]
[ExporterHeader(IsIgnore = true)]
[ImporterHeader(IsIgnore = true)]
public string Operator { get; set; }
/// <summary>
/// 手工操作日期
/// </summary>
[ExporterHeader(DisplayName = "手工操作日期")]
[ImporterHeader(Name = "手工操作日期")]
[ExporterHeader(IsIgnore = true)]
[ImporterHeader(IsIgnore = true)]
public DateTime? OperationTime { get; set; }
[ExporterHeader(DisplayName = "零件1")]
[ImporterHeader(Name = "零件1")]
public string PartCode1 { get; set; }
[ExporterHeader(DisplayName = "零件2")]
[ImporterHeader(Name = "零件2")]
public string PartCode2 { get; set; }
[ExporterHeader(DisplayName = "零件3")]
[ImporterHeader(Name = "零件3")]
public string PartCode3 { get; set; }
[ExporterHeader(DisplayName = "零件4")]
[ImporterHeader(Name = "零件4")]
public string PartCode4 { get; set; }
[ExporterHeader(DisplayName = "零件5")]
[ImporterHeader(Name = "零件5")]
public string PartCode5 { get; set; }
[ExporterHeader(DisplayName = "零件6")]
[ImporterHeader(Name = "零件6")]
public string PartCode6 { get; set; }
}
}

26
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM100s/Dtos/BillM100PartDto.cs

@ -34,5 +34,31 @@ namespace WY.NewJit.MsgCheck
[ExporterHeader(DisplayName = "描述")]
[ImporterHeader(Name = "描述")]
public string Description { get; set; }
/// <summary>
/// 零件类型:产线
/// </summary>
public virtual string PartType { get; set; }
/// <summary>
/// 零件类型:分组
/// </summary>
public virtual string PartType2 { get; set; }
/// <summary>
/// 零件类型:零件大类
/// </summary>
public virtual string PartType3 { get; set; }
/// <summary>
/// 零件在主表横向排列顺序
/// </summary>
public int? DisplaySN { get; set; }
/// <summary>
/// 零件在主表横向排列显示的列名
/// </summary>
public string DisplayColumnName { get; set; }
}
}

26
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Dtos/BillM110Dto.cs

@ -124,5 +124,31 @@ namespace WY.NewJit.MsgCheck
[ImporterHeader(Name = "手工操作日期")]
public DateTime? OperationTime { get; set; }
#region 横向显示零件
[ExporterHeader(DisplayName = "零件1")]
[ImporterHeader(Name = "零件1")]
public string PartCode1 { get; set; }
[ExporterHeader(DisplayName = "零件2")]
[ImporterHeader(Name = "零件2")]
public string PartCode2 { get; set; }
[ExporterHeader(DisplayName = "零件3")]
[ImporterHeader(Name = "零件3")]
public string PartCode3 { get; set; }
[ExporterHeader(DisplayName = "零件4")]
[ImporterHeader(Name = "零件4")]
public string PartCode4 { get; set; }
[ExporterHeader(DisplayName = "零件5")]
[ImporterHeader(Name = "零件5")]
public string PartCode5 { get; set; }
[ExporterHeader(DisplayName = "零件6")]
[ImporterHeader(Name = "零件6")]
public string PartCode6 { get; set; }
#endregion
}
}

28
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Dtos/BillM110PartDto.cs

@ -34,5 +34,33 @@ namespace WY.NewJit.MsgCheck
[ExporterHeader(DisplayName = "描述")]
[ImporterHeader(Name = "描述")]
public string Description { get; set; }
#region 新增
/// <summary>
/// 零件类型:产线
/// </summary>
public virtual string PartType { get; set; }
/// <summary>
/// 零件类型:分组
/// </summary>
public virtual string PartType2 { get; set; }
/// <summary>
/// 零件类型:零件大类
/// </summary>
public virtual string PartType3 { get; set; }
/// <summary>
/// 零件在主表横向排列顺序
/// </summary>
public int? DisplaySN { get; set; }
/// <summary>
/// 零件在主表横向排列显示的列名
/// </summary>
public string DisplayColumnName { get; set; }
#endregion
}
}

6
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Interfaces/IBillM110AppService.cs

@ -67,14 +67,14 @@ namespace WY.NewJit.MsgCheck
/// </summary>
/// <param name="productLine">生产线</param>
/// <returns>起始大众顺序号</returns>
Task<ObjectResultDto<int?>> GetPrintStartHostSN2(string productLine, string isZhuHuBan,string GroupName = null);
//Task<ObjectResultDto<int?>> GetPrintStartHostSN2(string productLine, string isZhuHuBan,string GroupName = null);
/// <summary>
/// 打印前检查门板大众顺序号是否断号
/// </summary>
/// <param name="input"></param>
/// <returns>断号时Item不为空</returns>
Task<ListResultDto<string>> CheckMBHostSNBreakNum(MenBanPrintInputDto input);
//Task<ListResultDto<string>> CheckMBHostSNBreakNum(MenBanPrintInputDto input);
/// <summary>
/// 打印前检查柱护板大众顺序号是否断号
@ -105,7 +105,7 @@ namespace WY.NewJit.MsgCheck
/// </summary>
/// <param name="input">生产线编号列表</param>
/// <returns>生产线超时情况</returns>
Task<ListResultDto<TimeOutRemindResultDto>> ProductLineTimeoutRemind(TimeOutRemindInputDto input);
//Task<ListResultDto<TimeOutRemindResultDto>> ProductLineTimeoutRemind(TimeOutRemindInputDto input);
//Task<PagedResultDto<ResultBillM110Dto>> GetReplenishPrintListAsync(QueryBillM110Dto input);

116
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/WY.NewJit.Application.Contracts.xml

@ -945,6 +945,51 @@
字典项名称
</summary>
</member>
<member name="P:WY.NewJit.MsgBaseData.DicItemDto.DicItemSort1">
<summary>
分类1(零件大类对应分组)
</summary>
</member>
<member name="P:WY.NewJit.MsgBaseData.DicItemDto.DicItemSort2">
<summary>
分类2 (零件大类对应产线)
</summary>
</member>
<member name="P:WY.NewJit.MsgBaseData.DicItemDto.DicItemSort3">
<summary>
分类3(零件大类对应车型)
</summary>
</member>
<member name="P:WY.NewJit.MsgBaseData.DicItemDto.DicItemSort4">
<summary>
分类4(零件大类对应打印报表的三位零件大类)
</summary>
</member>
<member name="P:WY.NewJit.MsgBaseData.DicItemDto.DicItemSort5">
<summary>
分类5 (零件大类对应客户零件号)
</summary>
</member>
<member name="P:WY.NewJit.MsgBaseData.DicItemDto.DicItemSort6">
<summary>
分类6(零件大类对应显示车型)
</summary>
</member>
<member name="P:WY.NewJit.MsgBaseData.DicItemDto.DicItemSort7">
<summary>
分类7(零件大类对应报表字段显示顺序)
</summary>
</member>
<member name="P:WY.NewJit.MsgBaseData.DicItemDto.DicItemSort8">
<summary>
分类8(零件大类对应装箱清单号的前缀,例如C或T)
</summary>
</member>
<member name="P:WY.NewJit.MsgBaseData.DicItemDto.DicItemSort9">
<summary>
分类9(零件大类对应 打印标准数量 12 或 24)
</summary>
</member>
<!-- Badly formed XML comment ignored for member "M:WY.NewJit.MsgBaseData.IDicAppService.GetDicListAsync(System.String)" -->
<member name="P:WY.NewJit.MsgBaseData.CreateUpdateExcludePartCfgDto.VehicleModelCode">
<summary>
@ -1546,6 +1591,31 @@
描述
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM100PartDto.PartType">
<summary>
零件类型:产线
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM100PartDto.PartType2">
<summary>
零件类型:分组
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM100PartDto.PartType3">
<summary>
零件类型:零件大类
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM100PartDto.DisplaySN">
<summary>
零件在主表横向排列顺序
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM100PartDto.DisplayColumnName">
<summary>
零件在主表横向排列显示的列名
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.CreateUpdateBillM100Dto.SerialNum">
<summary>
流水号#
@ -2092,6 +2162,31 @@
描述
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM110PartDto.PartType">
<summary>
零件类型:产线
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM110PartDto.PartType2">
<summary>
零件类型:分组
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM110PartDto.PartType3">
<summary>
零件类型:零件大类
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM110PartDto.DisplaySN">
<summary>
零件在主表横向排列顺序
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM110PartDto.DisplayColumnName">
<summary>
零件在主表横向排列显示的列名
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.CreateUpdateBillM110Dto.SerialNum">
<summary>
流水号#
@ -2441,27 +2536,6 @@
<param name="input">导入文件流</param>
<returns>执行成功返回真</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.IBillM110AppService.GetPrintStartHostSN2(System.String,System.String,System.String)">
<summary>
根据生产线获取正常打印单据的起始大众顺序号
</summary>
<param name="productLine">生产线</param>
<returns>起始大众顺序号</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.IBillM110AppService.CheckMBHostSNBreakNum(WY.NewJit.Extends.MenBanPrintInputDto)">
<summary>
打印前检查门板大众顺序号是否断号
</summary>
<param name="input"></param>
<returns>断号时Item不为空</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.IBillM110AppService.ProductLineTimeoutRemind(WY.NewJit.MsgCheck.TimeOutRemindInputDto)">
<summary>
生产线超时提醒
</summary>
<param name="input">生产线编号列表</param>
<returns>生产线超时情况</returns>
</member>
<member name="T:WY.NewJit.MsgCheck.BillR100Dto">
<summary>
零件查询结果DTO

14
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgBaseData/Dics/DicAppService.cs

@ -77,12 +77,18 @@ namespace WY.NewJit.MsgBaseData
{
List<DicItem> lst = _dicDomainService.GetDicItems(dicTypeName);
List<DicItemDto> items =
ObjectMapper.Map<List<DicItem>, List<DicItemDto>>(lst);
List<DicItemDto> dtoLst = ObjectMapper.Map<List<DicItem>, List<DicItemDto>>(lst);
items = items.OrderBy(itm => itm.DicItemCode).ThenBy(itm => itm.DicItemName).ToList();
if (dicTypeName == "零件大类")
{
dtoLst = dtoLst.OrderBy(itm => itm.DicItemSort2).ThenBy(itm => itm.DicItemSort1).ThenBy(itm => itm.DicItemSort7).ToList();
}
else
{
dtoLst = dtoLst.OrderBy(itm => itm.DicItemCode).ThenBy(itm => itm.DicItemName).ToList();
}
return new ListResultDto<DicItemDto>(items);
return new ListResultDto<DicItemDto>(dtoLst);
}
catch (Exception ex)
{

483
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/BillM100AppService.cs

@ -1,31 +1,32 @@
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Shouldly;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.BlobStoring;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Uow;
using Volo.Abp.Domain.Repositories.Dapper;
using WY.NewJit.EntityFrameworkCore;
using Volo.Abp.Uow;
using WY.NewJit.Common;
using Shouldly;
using Volo.Abp.BlobStoring;
using Microsoft.AspNetCore.Mvc;
using WY.NewJit.Commons;
using WY.NewJit.EntityFrameworkCore;
using WY.NewJit.Extends;
using WY.NewJit.MsgBaseData;
using WY.NewJit.Extends.PaiGe;
using WY.NewJit.Extends.PaiGe.WMS;
using System.Reflection;
using WY.NewJit.Commons;
using Volo.Abp;
using System.Diagnostics;
using WY.NewJit.MsgBaseData;
namespace WY.NewJit.MsgCheck
{
@ -607,6 +608,239 @@ select * from
return ret;
}
/// <summary>
/// 包含主表横向排列零件字段
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
private async Task<M100_M110_Result> QueryByConditionAsync2(QueryBillM100Dto input)
{
M100_M110_Result ret = new M100_M110_Result();
//取零件大类配置
List<DicItem> partLargeTypeLst = await _dicItemRepository.GetListAsync(itm => itm.DicTypeCode == "零件大类");
partLargeTypeLst = partLargeTypeLst.OrderBy(itm => itm.DicItemSort2).ThenBy(itm => itm.DicItemSort1).ToList();
var query = await _billM100Repository.GetQueryableAsync();
var includeQry = query.Include(itm => itm.BillM100Parts);
var m100Query = includeQry.Where(itm => itm.IsReceiveM110 == false || itm.IsReceiveM110 == null);
if (input.SerialNumBegin != null)
{
m100Query = m100Query.Where(itm => itm.SerialNum >= input.SerialNumBegin);
}
if (input.SerialNumEnd != null)
{
m100Query = m100Query.Where(itm => itm.SerialNum <= input.SerialNumBegin);
}
if (input.HostSNBegin != null)
{
m100Query = m100Query.Where(itm => itm.HostSN >= input.HostSNBegin);
}
if (input.HostSNEnd != null)
{
m100Query = m100Query.Where(itm => itm.HostSN <= input.HostSNEnd);
}
if (!string.IsNullOrEmpty(input.KNRBegin))
{
m100Query = m100Query.Where(itm => itm.KNR.CompareTo(input.KNRBegin) >= 0);
}
if (!string.IsNullOrEmpty(input.KNREnd))
{
m100Query = m100Query.Where(itm => itm.KNR.CompareTo(input.KNREnd) <= 0);
}
if (!string.IsNullOrEmpty(input.VINBegin))
{
m100Query = m100Query.Where(itm => itm.VIN.CompareTo(input.VINBegin) >= 0);
}
if (!string.IsNullOrEmpty(input.VINEnd))
{
m100Query = m100Query.Where(itm => itm.VIN.CompareTo(input.VINEnd) <= 0);
}
if (input.AssemblyID != null)
{
m100Query = m100Query.Where(itm => itm.AssemblyID != null);
}
if (input.OnlineTimeBegin != null)
{
m100Query = m100Query.Where(itm => itm.OnlineTime >= input.OnlineTimeBegin);
}
if (input.OnlineTimeEnd != null)
{
m100Query = m100Query.Where(itm => itm.OnlineTime <= input.OnlineTimeEnd);
}
if (input.VehicleModelCode != null)
{
m100Query = m100Query.Where(itm => itm.VehicleModelCode == input.VehicleModelCode);
}
if (input.ProductLine != null)
{
m100Query = m100Query.Where(itm => itm.ProductLine == input.ProductLine);
}
if (input.Version != null)
{
m100Query = m100Query.Where(itm => itm.Version == input.Version);
}
if (input.ReceiveTimeBegin != null)
{
m100Query = m100Query.Where(itm => itm.ReceiveTime >= input.ReceiveTimeBegin);
}
if (input.ReceiveTimeEnd != null)
{
m100Query = m100Query.Where(itm => itm.ReceiveTime <= input.ReceiveTimeEnd);
}
//if (input.IsBillMaintenance == true) //M100单据信息维护模块使用
//{
// where += " and b.Operator is not null";
//}
if (input.CanNotPrint == true)
{
m100Query = m100Query.Where(itm => itm.CanNotPrint == true);
}
else if (input.CanNotPrint == false)
{
m100Query = m100Query.Where(itm => itm.CanNotPrint == false || itm.CanNotPrint == null);
}
if (input.ZHBBillStatus != null && input.ZHBBillStatus != ZHBBillStatusEnum.None)
{
if (input.ZHBBillStatus == ZHBBillStatusEnum.Print) //柱护板已打印
{
m100Query = m100Query.Where(itm => itm.PrintBillNum != "" && itm.PrintBillNum != null);
}
else if (input.ZHBBillStatus == ZHBBillStatusEnum.NotPrint) //柱护板未打印
{
m100Query = m100Query.Where(itm => itm.PrintBillNum == "" || itm.PrintBillNum == null);
}
}
else if (input.BillStatus != null && input.BillStatus != BillStatusEnum.None)
{
m100Query = m100Query.Where(itm => itm.BillStatus == input.BillStatus);
}
else
{
//m100Query = m100Query.Where(itm => itm.BillStatus == BillStatusEnum.Match || itm.BillStatus == BillStatusEnum.Publish); //单据状态是已匹配、已打印
}
if (input.IsNeedReplenishPrint == true) //只显示需要补打的记录
{
m100Query = m100Query.Where(itm => itm.NeedReplenishPrint == 1);
}
//M100
var m100Lst = m100Query.OrderBy(itm => itm.SerialNumStr).Skip(input.SkipCount).Take(input.MaxResultCount).OrderByDescending(itm => itm.SerialNumStr).ToList(); //倒序排列
List<BillM100Dto> m100Dtos = ObjectMapper.Map<List<BillM100>, List<BillM100Dto>>(m100Lst);
if (m100Dtos.Count == 0)
{
return ret;
}
var m100Parts = m100Dtos[0].BillM100Parts;
foreach (BillM100Dto m100Dto in m100Dtos) //遍历M100
{
foreach (var partDto in m100Dto.BillM100Parts) //遍历子件
{
//按产线、分组、零件大类 过滤
var partLargeTypeObj = partLargeTypeLst.FirstOrDefault(itm =>
itm.DicItemSort2 == partDto.PartType
&& itm.DicItemSort1 == partDto.PartType2
&& itm.DicItemCode == partDto.PartType3);
if (partLargeTypeObj != null)
{
partDto.DisplaySN = partLargeTypeObj.DicItemSort7.TryToInt();
partDto.DisplayColumnName = partLargeTypeObj.DicItemName;
}
}
var filterParts = m100Dto.BillM100Parts.Where(itm => itm.DisplaySN != null).OrderBy(itm => itm.DisplaySN).ToList();
for (int i = 0; i < filterParts.Count; i++)
{
var filterPart = filterParts[i];
switch (i)
{
case 0:
m100Dto.PartCode1 = filterPart.PartCode;
break;
case 1:
m100Dto.PartCode2 = filterPart.PartCode;
break;
case 2:
m100Dto.PartCode3 = filterPart.PartCode;
break;
case 3:
m100Dto.PartCode4 = filterPart.PartCode;
break;
case 4:
m100Dto.PartCode5 = filterPart.PartCode;
break;
case 5:
m100Dto.PartCode6 = filterPart.PartCode;
break;
}
}
m100Dto.BillM100Parts = new List<BillM100PartDto>();
}
ret.PartDisplayColumnName = m100Parts.Where(itm => itm.DisplaySN != null).OrderBy(itm => itm.DisplaySN).Select(itm => itm.DisplayColumnName).JoinAsString(",");
ret.M100Dtos = m100Dtos;
ret.M100_TotalCount = await m100Query.CountAsync();
return ret;
}
/// <summary>
/// 填充M110主表横向零件字段
/// </summary>
/// <param name="m110Dtos"></param>
/// <returns></returns>
private async Task<List<BillM110Dto>> FillPartCodeField(List<BillM110Dto> m110Dtos)
{
//取零件大类配置
List<DicItem> partLargeTypeLst = await _dicItemRepository.GetListAsync(itm => itm.DicTypeCode == "零件大类");
partLargeTypeLst = partLargeTypeLst.OrderBy(itm => itm.DicItemSort2).ThenBy(itm => itm.DicItemSort1).ToList();
foreach (BillM110Dto m110Dto in m110Dtos) //遍历M110
{
foreach (var partDto in m110Dto.BillM110Parts) //遍历子件
{
//按产线、分组、零件大类 过滤
var partLargeTypeObj = partLargeTypeLst.FirstOrDefault(itm =>
itm.DicItemSort2 == partDto.PartType
&& itm.DicItemSort1 == partDto.PartType2
&& itm.DicItemCode == partDto.PartType3);
if (partLargeTypeObj != null)
{
partDto.DisplaySN = partLargeTypeObj.DicItemSort7.TryToInt();
partDto.DisplayColumnName = partLargeTypeObj.DicItemName;
}
}
var filterParts = m110Dto.BillM110Parts.Where(itm => itm.DisplaySN != null).OrderBy(itm => itm.DisplaySN).ToList();
for (int i = 0; i < filterParts.Count; i++)
{
var filterPart = filterParts[i];
switch (i)
{
case 0:
m110Dto.PartCode1 = filterPart.PartCode;
break;
case 1:
m110Dto.PartCode2 = filterPart.PartCode;
break;
case 2:
m110Dto.PartCode3 = filterPart.PartCode;
break;
case 3:
m110Dto.PartCode4 = filterPart.PartCode;
break;
case 4:
m110Dto.PartCode5 = filterPart.PartCode;
break;
case 5:
m110Dto.PartCode6 = filterPart.PartCode;
break;
}
}
m110Dto.BillM110Parts = new List<BillM110PartDto>();
}
return m110Dtos;
}
/// <summary>
/// 取单据包含的ERP总成列表
/// </summary>
@ -889,19 +1123,21 @@ select * from
//}
/// <summary>
/// 打印左侧或右侧门板
/// 将M100转换成MenBanPackingList主子表
/// </summary>
/// <param name="input"></param>
/// <param name="pageIdx"></param>
/// <param name="maxBillNum"></param>
/// <param name="maxSN"></param>
/// <param name="printTime"></param>
/// <param name="billLst"></param>
/// <param name="partLargeType"></param>
/// <param name="reportSort">报表分类,对应DicItemSort4</param>
/// <param name="partLargeTypeLst">零件大类字典项</param>
/// <returns></returns>
private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, int pageIdx, double maxSN, List<BillM100> billLst, string reportSort, string[] partLargeType)
private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, int pageIdx, double maxSN, List<BillM100> billLst, string reportSort, List<DicItem> partLargeTypeLst)
{
const int _colNumberPerPage = 12;
string[] partLargeType = partLargeTypeLst.Select(itm => itm.DicItemCode).ToArray(); //取零件大类
var partLargeTypeObj = partLargeTypeLst[0];
//取当前页内容
List<BillM100> curPageLst = billLst.Skip(pageIdx * _colNumberPerPage).Take(_colNumberPerPage).ToList();
@ -912,8 +1148,10 @@ select * from
MenBanPackingList packingMain = new MenBanPackingList();
packingMain.SetId(GuidGenerator.Create());
packingMain.BillNum = $"C{ymd}{serialNum}{reportSort}";
packingMain.VehicleModel = vmLst;
packingMain.BillNum = $"{partLargeTypeObj.DicItemSort8}{ymd}{serialNum}{reportSort}"; //partLargeTypeObj.DicItemSort8包含C或T
packingMain.VehicleModel = partLargeTypeObj.DicItemSort6; //报表显示车型 //vmLst;
packingMain.BillSerialNum = serialNum;
packingMain.PrintDate = ServerHelper.CurrentDateTime;
packingMain.ProductLine = billLst[0].ProductLine;
@ -3021,119 +3259,18 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
M100_M110_Result ret = new M100_M110_Result();
try
{
var query = await _billM100Repository.GetQueryableAsync();
var includeQry = query.Include(itm => itm.BillM100Parts);
var m100Query = includeQry.Where(itm => itm.IsReceiveM110 == false || itm.IsReceiveM110 == null);
if (input.SerialNumBegin != null)
{
m100Query = m100Query.Where(itm => itm.SerialNum >= input.SerialNumBegin);
}
if (input.SerialNumEnd != null)
{
m100Query = m100Query.Where(itm => itm.SerialNum <= input.SerialNumBegin);
}
if (input.HostSNBegin != null)
{
m100Query = m100Query.Where(itm => itm.HostSN >= input.HostSNBegin);
}
if (input.HostSNEnd != null)
{
m100Query = m100Query.Where(itm => itm.HostSN <= input.HostSNEnd);
}
if (!string.IsNullOrEmpty(input.KNRBegin))
{
m100Query = m100Query.Where(itm => itm.KNR.CompareTo(input.KNRBegin) >= 0);
}
if (!string.IsNullOrEmpty(input.KNREnd))
{
m100Query = m100Query.Where(itm => itm.KNR.CompareTo(input.KNREnd) <= 0);
}
if (!string.IsNullOrEmpty(input.VINBegin))
{
m100Query = m100Query.Where(itm => itm.VIN.CompareTo(input.VINBegin) >= 0);
}
if (!string.IsNullOrEmpty(input.VINEnd))
{
m100Query = m100Query.Where(itm => itm.VIN.CompareTo(input.VINEnd) <= 0);
}
if (input.AssemblyID != null)
{
m100Query = m100Query.Where(itm => itm.AssemblyID != null);
}
if (input.OnlineTimeBegin != null)
{
m100Query = m100Query.Where(itm => itm.OnlineTime >= input.OnlineTimeBegin);
}
if (input.OnlineTimeEnd != null)
{
m100Query = m100Query.Where(itm => itm.OnlineTime <= input.OnlineTimeEnd);
}
if (input.VehicleModelCode != null)
{
m100Query = m100Query.Where(itm => itm.VehicleModelCode == input.VehicleModelCode);
}
if (input.ProductLine != null)
{
m100Query = m100Query.Where(itm => itm.ProductLine == input.ProductLine);
}
if (input.Version != null)
{
m100Query = m100Query.Where(itm => itm.Version == input.Version);
}
if (input.ReceiveTimeBegin != null)
{
m100Query = m100Query.Where(itm => itm.ReceiveTime >= input.ReceiveTimeBegin);
}
if (input.ReceiveTimeEnd != null)
{
m100Query = m100Query.Where(itm => itm.ReceiveTime <= input.ReceiveTimeEnd);
}
//if (input.IsBillMaintenance == true) //M100单据信息维护模块使用
//{
// where += " and b.Operator is not null";
//}
if (input.CanNotPrint == true)
{
m100Query = m100Query.Where(itm => itm.CanNotPrint == true);
}
else if (input.CanNotPrint == false)
{
m100Query = m100Query.Where(itm => itm.CanNotPrint == false || itm.CanNotPrint == null);
}
if (input.ZHBBillStatus != null && input.ZHBBillStatus != ZHBBillStatusEnum.None)
{
if (input.ZHBBillStatus == ZHBBillStatusEnum.Print) //柱护板已打印
{
m100Query = m100Query.Where(itm => itm.PrintBillNum != "" && itm.PrintBillNum != null);
}
else if (input.ZHBBillStatus == ZHBBillStatusEnum.NotPrint) //柱护板未打印
{
m100Query = m100Query.Where(itm => itm.PrintBillNum == "" || itm.PrintBillNum == null);
}
}
else if (input.BillStatus != null && input.BillStatus != BillStatusEnum.None)
{
m100Query = m100Query.Where(itm => itm.BillStatus == input.BillStatus);
}
else
{
//m100Query = m100Query.Where(itm => itm.BillStatus == BillStatusEnum.Match || itm.BillStatus == BillStatusEnum.Publish); //单据状态是已匹配、已打印
}
if (input.IsNeedReplenishPrint == true) //只显示需要补打的记录
if (input.ProductLine.IsNullOrEmpty2())
{
m100Query = m100Query.Where(itm => itm.NeedReplenishPrint == 1);
throw new UserFriendlyException("生产线参数不能为空");
}
//M100
var m100Lst = m100Query.OrderBy(itm => itm.SerialNumStr).Skip(input.SkipCount).Take(input.MaxResultCount).OrderByDescending(itm => itm.SerialNumStr).ToList();
ret.M100_TotalCount = await m100Query.CountAsync();
ret.BillM100s = m100Lst;
//M110
//填充M100,字段中文名称
ret = await QueryByConditionAsync2(input);
//填充M110
string serialNumStr = await _billM110_Repository.Where(itm => itm.ProductLine == input.ProductLine).MaxAsync(itm => itm.SerialNumStr);
var m110_Lst = await _billM110_Repository.GetListAsync(itm => itm.SerialNumStr == serialNumStr, true);
ret.Bill_M110s = m110_Lst;
List<BillM110Dto> m110_Dtos = ObjectMapper.Map<List<BillM110>, List<BillM110Dto>>(m110_Lst);
m110_Dtos = await FillPartCodeField(m110_Dtos);
ret.M110_Dtos = m110_Dtos;
return ret;
}
@ -3145,9 +3282,6 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
}
}
/// <summary>
/// 按主键获取唯一实体
/// </summary>
@ -3296,19 +3430,53 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
{
input.SkipCount = 0;
input.MaxResultCount = 50000;
PagedResultDto<ResultBillM100Dto> query = new PagedResultDto<ResultBillM100Dto>();
if (!string.IsNullOrEmpty(input.GroupName))
//PagedResultDto<ResultBillM100Dto> query = new PagedResultDto<ResultBillM100Dto>();
//if (!string.IsNullOrEmpty(input.GroupName))
//{
// query = await QueryZHBByConditionAsync(input, (PagedAndSortedBase)input);
//}
//else
//{
// query = await QueryByConditionAsync(input, (PagedAndSortedBase)input);
//}
M100_M110_Result result = await QueryByConditionAsync2(input);
string[] fieldNames = result.PartDisplayColumnName.Split(",");
for (int i = 0; i < fieldNames.Length; i++)
{
query = await QueryZHBByConditionAsync(input, (PagedAndSortedBase)input);
}
else
switch (i)
{
query = await QueryByConditionAsync(input, (PagedAndSortedBase)input);
case 0:
ExporterHeaderAttribute attr = typeof(BillM100Dto).GetProperty("PartCode1").GetCustomAttribute(typeof(ExporterHeaderAttribute)) as ExporterHeaderAttribute;
attr.DisplayName = fieldNames[i];
break;
case 1:
attr = typeof(BillM100Dto).GetProperty("PartCode2").GetCustomAttribute(typeof(ExporterHeaderAttribute)) as ExporterHeaderAttribute;
attr.DisplayName = fieldNames[i];
break;
case 2:
attr = typeof(BillM100Dto).GetProperty("PartCode3").GetCustomAttribute(typeof(ExporterHeaderAttribute)) as ExporterHeaderAttribute;
attr.DisplayName = fieldNames[i];
break;
case 3:
attr = typeof(BillM100Dto).GetProperty("PartCode4").GetCustomAttribute(typeof(ExporterHeaderAttribute)) as ExporterHeaderAttribute;
attr.DisplayName = fieldNames[i];
break;
case 4:
attr = typeof(BillM100Dto).GetProperty("PartCode5").GetCustomAttribute(typeof(ExporterHeaderAttribute)) as ExporterHeaderAttribute;
attr.DisplayName = fieldNames[i];
break;
case 5:
attr = typeof(BillM100Dto).GetProperty("PartCode6").GetCustomAttribute(typeof(ExporterHeaderAttribute)) as ExporterHeaderAttribute;
attr.DisplayName = fieldNames[i];
break;
}
}
List<ResultBillM100Dto> items = query.Items.ToList();
//List<ResultBillM100Dto> items = query.Items.ToList();
//将实体列表转换成excel文件流
IExporter exporter = new ExcelExporter();
byte[] byteArr = await exporter.ExportAsByteArray<ResultBillM100Dto>(items);
byte[] byteArr = await exporter.ExportAsByteArray<BillM100Dto>(result.M100Dtos);
byteArr.ShouldNotBeNull();
//将excel文件流保存到服务器端文件系统
string fileName = string.Format("单据M100_{0}.xlsx", Guid.NewGuid().ToString());
@ -3414,6 +3582,10 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
return ret;
}
}
List<DicItem> partLargeTypeLst = await _dicItemRepository.GetListAsync(itm => itm.DicTypeCode == "零件大类");
partLargeTypeLst = partLargeTypeLst.OrderBy(itm => itm.DicItemSort2).ThenBy(itm => itm.DicItemSort1).ToList();
ListResultDto<BillM100> tempLst = await GetMBReportDetailList(input, true); //-----------------------------
List<BillM100> billLst = tempLst.Item;
if (tempLst.Status == false)
@ -3428,14 +3600,13 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
int pageCnt = (int)Math.Ceiling(billLst.Count / 12.0); //每页打印12列,取打印页数
//double maxBillNum = 0;
//DateTime printTime = ServerHelper.CurrentDateTime;
var reportSortDic = _dicItemRepository
.Where(itm => itm.DicTypeCode == "零件大类" && itm.DicItemSort2 == input.ProductLine)
.ToList()
//过滤产线(DicItemSort2),按“报表分类”(DicItemSort4)分组,分组后按DicItemSort7排序
Dictionary<string, List<DicItem>> reportSortDic = partLargeTypeLst
.Where(itm => itm.DicItemSort2 == input.ProductLine && string.IsNullOrEmpty(itm.DicItemSort4) == false)
.GroupBy(itm => itm.DicItemSort4)
.ToDictionary(itm => itm.Key, it2 => it2.Select(itm => itm.DicItemCode).ToArray());
.ToDictionary(itm => itm.Key, it2 => it2.OrderBy(itm => itm.DicItemSort7).ToList());
for (int pageIdx = 0; pageIdx < pageCnt; pageIdx++)
{
@ -3475,12 +3646,12 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
billObj.NeedReplenishPrint = 0; //不需要补打
await _billM100Repository.UpdateAsync(billObj, true);
}
else if (billObj.BillStatus == BillStatusEnum.NotMatch)
{
//billObj.PrintTime = ServerHelper.CurrentDateTime;
billObj.NeedReplenishPrint = 1; //需要补打
await _billM100Repository.UpdateAsync(billObj, true);
}
//else if (billObj.BillStatus == BillStatusEnum.NotMatch)
//{
// //billObj.PrintTime = ServerHelper.CurrentDateTime;
// billObj.NeedReplenishPrint = 1; //需要补打
// await _billM100Repository.UpdateAsync(billObj, true);
//}
}
_logger.LogWarning($"SaveMenBanReport更新M100的门板打印标志 - {sw.ElapsedMilliseconds}毫秒");
@ -5226,16 +5397,20 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
public class M100_M110_Result
{
public List<BillM100> BillM100s { get; set; }
public List<BillM110> Bill_M110s { get; set; }
public List<BillM100Dto> M100Dtos { get; set; }
public List<BillM110Dto> M110_Dtos { get; set; }
public int M100_TotalCount { get; set; }
public long M100_TotalCount { get; set; } = 0;
/// <summary>
/// 零件在主表横向排列显示的列名
/// </summary>
public string PartDisplayColumnName { get; set; } = "";
public M100_M110_Result()
{
BillM100s = new List<BillM100>();
Bill_M110s = new List<BillM110>();
M100Dtos = new List<BillM100Dto>();
M110_Dtos = new List<BillM110Dto>();
}
}
}

804
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM110s/BillM110AppService.cs

@ -1998,83 +1998,83 @@ select * from
/// </summary>
/// <param name="input"></param>
/// <returns>断号时Item不为空</returns>
[UnitOfWork(false)]
[HttpPost]
[Route("check-mb-hostsn-break-num")]
public virtual async Task<ListResultDto<string>> CheckMBHostSNBreakNum(MenBanPrintInputDto input)
{
List<string> retLst = new List<string>();
try
{
int lastNum = await GetMenBanLastPrintNum(input); //从M110中取当前产线、已经打印的最大大众顺序号
if (lastNum > 0)
{
if ((lastNum % 10000) == 1999)
{
if ((input.BeginHostSN % 10000) != 1)
{
string msg = $"单据之间断号,上次打印的最后大众顺序号为【{lastNum}】,与本次打印开始号【{input.BeginHostSN}】中间存在断号!";
retLst.Add(msg);
_logger.LogDebug(msg);
}
}
else
{
if (lastNum + 1 != input.BeginHostSN)
{
string msg = $"单据之间断号,上次打印的最后大众顺序号为【{lastNum}】,与本次打印开始号【{input.BeginHostSN}】中间存在断号!";
retLst.Add(msg);
_logger.LogDebug(msg);
}
}
}
//[UnitOfWork(false)]
//[HttpPost]
//[Route("check-mb-hostsn-break-num")]
//public virtual async Task<ListResultDto<string>> CheckMBHostSNBreakNum(MenBanPrintInputDto input)
//{
// List<string> retLst = new List<string>();
// try
// {
// int lastNum = await GetMenBanLastPrintNum(input); //从M110中取当前产线、已经打印的最大大众顺序号
// if (lastNum > 0)
// {
// if ((lastNum % 10000) == 1999)
// {
// if ((input.BeginHostSN % 10000) != 1)
// {
// string msg = $"单据之间断号,上次打印的最后大众顺序号为【{lastNum}】,与本次打印开始号【{input.BeginHostSN}】中间存在断号!";
// retLst.Add(msg);
// _logger.LogDebug(msg);
// }
// }
// else
// {
// if (lastNum + 1 != input.BeginHostSN)
// {
// string msg = $"单据之间断号,上次打印的最后大众顺序号为【{lastNum}】,与本次打印开始号【{input.BeginHostSN}】中间存在断号!";
// retLst.Add(msg);
// _logger.LogDebug(msg);
// }
// }
// }
ListResultDto<BillM110> tempLst = await GetMBReportDetailList(input, false);
List<BillM110> billLst = tempLst.Item;
if (billLst.Count < 2)
{
return new ListResultDto<string>(retLst);
}
for (int i = 1; i < billLst.Count; i++)
{
BillM110 priorObj = billLst[i - 1];
BillM110 curObj = billLst[i];
int priorHostSN = (int)billLst[i - 1].HostSN;
int curHostSN = (int)billLst[i].HostSN;
// ListResultDto<BillM110> tempLst = await GetMBReportDetailList(input, false);
// List<BillM110> billLst = tempLst.Item;
// if (billLst.Count < 2)
// {
// return new ListResultDto<string>(retLst);
// }
// for (int i = 1; i < billLst.Count; i++)
// {
// BillM110 priorObj = billLst[i - 1];
// BillM110 curObj = billLst[i];
// int priorHostSN = (int)billLst[i - 1].HostSN;
// int curHostSN = (int)billLst[i].HostSN;
if (curHostSN > priorHostSN) //0005、0006
{
if (curHostSN > priorHostSN + 1) //0005、0008时,补号 0006、0007
{
retLst.Add($"大众顺序号{priorObj.HostSN}与{curObj.HostSN}之间存在断号情况!");
}
}
else if (curHostSN < priorHostSN) //1999到0001的情况
{
if (curHostSN + _hostSNMaxVal > priorHostSN + 1) //0005、0008时,补号 0006、0007
{
retLst.Add($"大众顺序号{priorObj.HostSN}与{curObj.HostSN}之间存在断号情况!");
}
}
}
if (retLst.Count == 0 && billLst.Count < input.EndHostSN - input.BeginHostSN + 1)
{
retLst.Add($"本车装箱单不满架!");
}
// if (curHostSN > priorHostSN) //0005、0006
// {
// if (curHostSN > priorHostSN + 1) //0005、0008时,补号 0006、0007
// {
// retLst.Add($"大众顺序号{priorObj.HostSN}与{curObj.HostSN}之间存在断号情况!");
// }
// }
// else if (curHostSN < priorHostSN) //1999到0001的情况
// {
// if (curHostSN + _hostSNMaxVal > priorHostSN + 1) //0005、0008时,补号 0006、0007
// {
// retLst.Add($"大众顺序号{priorObj.HostSN}与{curObj.HostSN}之间存在断号情况!");
// }
// }
// }
// if (retLst.Count == 0 && billLst.Count < input.EndHostSN - input.BeginHostSN + 1)
// {
// retLst.Add($"本车装箱单不满架!");
// }
return new ListResultDto<string>(retLst);
}
catch (Exception ex)
{
ListResultDto<string> ret = new ListResultDto<string>();
ret.Status = false;
ret.Message = _errorMessagePrefix + "打印前检查大众顺序号是否断号ChecMBkHostSNBreakNum 执行出错:" + ex.Message;
_logger.LogError(ret.Message);
return ret;
}
// return new ListResultDto<string>(retLst);
// }
// catch (Exception ex)
// {
// ListResultDto<string> ret = new ListResultDto<string>();
// ret.Status = false;
// ret.Message = _errorMessagePrefix + "打印前检查大众顺序号是否断号ChecMBkHostSNBreakNum 执行出错:" + ex.Message;
// _logger.LogError(ret.Message);
// return ret;
// }
}
//}
/// <summary>
/// 打印前检查大众顺序号是否断号
@ -2154,72 +2154,72 @@ select * from
/// <param name="isZhuHuBan">柱护板是1 门板是非1</param>
/// <param name="groupName">柱护板分组类型</param>
/// <returns>起始大众顺序号</returns>
[UnitOfWork]
[HttpGet]
[Route("get-print-start-hostsn2")]
public virtual async Task<ObjectResultDto<int?>> GetPrintStartHostSN2(string productLine, string isZhuHuBan,string GroupName=null)
{
int? beginHostSN = null;
try
{
if (isZhuHuBan == "1") //是柱护板, 根据PrintBillNum非空判断是柱护板
{
//string minSNStr = await _billM110Repository.Where(itm =>
// itm.ProductLine == productLine //指定生产线
// && itm.CanNotPrint != true //能打印
// && string.IsNullOrEmpty(itm.PrintBillNum) == true //等于 未打印
// && itm.NeedReplenishPrint != 1 //排除补打
// ).MinAsync(itm => itm.SerialNumStr);
string sql = @"
with d as
(
select *from [dbo].[FisZHBPrintStatus] where groupName='{1}'
)
// [UnitOfWork]
// [HttpGet]
// [Route("get-print-start-hostsn2")]
// public virtual async Task<ObjectResultDto<int?>> GetPrintStartHostSN2(string productLine, string isZhuHuBan,string GroupName=null)
// {
// int? beginHostSN = null;
// try
// {
// if (isZhuHuBan == "1") //是柱护板, 根据PrintBillNum非空判断是柱护板
// {
// //string minSNStr = await _billM110Repository.Where(itm =>
// // itm.ProductLine == productLine //指定生产线
// // && itm.CanNotPrint != true //能打印
// // && string.IsNullOrEmpty(itm.PrintBillNum) == true //等于 未打印
// // && itm.NeedReplenishPrint != 1 //排除补打
// // ).MinAsync(itm => itm.SerialNumStr);
// string sql = @"
//with d as
//(
// select *from [dbo].[FisZHBPrintStatus] where groupName='{1}'
//)
select min(SerialNumStr) from FisBillM110 a left join d on a.VIN=d.VIN
//select min(SerialNumStr) from FisBillM110 a left join d on a.VIN=d.VIN
where ProductLine='{0}' and (CanNotPrint !=1 or CanNotPrint is null) and (PrintBillNum is null or PrintBillNum ='') and (NeedReplenishPrint!=1 or NeedReplenishPrint is null) and d.BillStatus is null";
// where ProductLine='{0}' and (CanNotPrint !=1 or CanNotPrint is null) and (PrintBillNum is null or PrintBillNum ='') and (NeedReplenishPrint!=1 or NeedReplenishPrint is null) and d.BillStatus is null";
sql = string.Format(sql, productLine, GroupName);
var minSNStr = await _newJitDapperRepository.GetSingleBySqlAsync<string>(sql);
// sql = string.Format(sql, productLine, GroupName);
// var minSNStr = await _newJitDapperRepository.GetSingleBySqlAsync<string>(sql);
beginHostSN = await _billM110Repository.Where(itm =>
itm.ProductLine == productLine //指定生产线
&& itm.CanNotPrint != true //能打印
&& string.IsNullOrEmpty(itm.PrintBillNum) == true //等于 未打印
&& itm.SerialNumStr == minSNStr
).MinAsync(itm => itm.HostSN);
}
else //---------------门板-----------------------------------------------------------------------------------
{
string minSNStr2 = await _billM110Repository.Where(itm =>
itm.ProductLine == productLine //指定生产线
&& itm.CanNotPrint != true //能打印
//&& itm.BillStatus == BillStatusEnum.Match //等于 未打印(和M110上线信息匹配)
&& itm.BillStatus != BillStatusEnum.Publish //未知总成也显示在装箱单
&& itm.NeedReplenishPrint != 1 //排除补打
).MinAsync(itm => itm.SerialNumStr);
// beginHostSN = await _billM110Repository.Where(itm =>
// itm.ProductLine == productLine //指定生产线
// && itm.CanNotPrint != true //能打印
// && string.IsNullOrEmpty(itm.PrintBillNum) == true //等于 未打印
// && itm.SerialNumStr == minSNStr
// ).MinAsync(itm => itm.HostSN);
// }
// else //---------------门板-----------------------------------------------------------------------------------
// {
// string minSNStr2 = await _billM110Repository.Where(itm =>
// itm.ProductLine == productLine //指定生产线
// && itm.CanNotPrint != true //能打印
// //&& itm.BillStatus == BillStatusEnum.Match //等于 未打印(和M110上线信息匹配)
// && itm.BillStatus != BillStatusEnum.Publish //未知总成也显示在装箱单
// && itm.NeedReplenishPrint != 1 //排除补打
// ).MinAsync(itm => itm.SerialNumStr);
beginHostSN = await _billM110Repository.Where(itm =>
itm.ProductLine == productLine //指定生产线
&& itm.CanNotPrint != true //能打印
//&& itm.BillStatus == BillStatusEnum.Match //等于 未打印
&& itm.BillStatus != BillStatusEnum.Publish //未知总成也显示在装箱单
&& itm.SerialNumStr == minSNStr2
).MinAsync(itm => itm.HostSN);
}
return new ObjectResultDto<int?>(beginHostSN);
}
catch (Exception ex)
{
ObjectResultDto<int?> ret = new ObjectResultDto<int?>();
ret.Status = false;
ret.Message = _errorMessagePrefix + "GetPrintStartHostSN2 执行出错:" + ex.Message;
_logger.LogError(ret.Message);
return ret;
}
}
// beginHostSN = await _billM110Repository.Where(itm =>
// itm.ProductLine == productLine //指定生产线
// && itm.CanNotPrint != true //能打印
// //&& itm.BillStatus == BillStatusEnum.Match //等于 未打印
// && itm.BillStatus != BillStatusEnum.Publish //未知总成也显示在装箱单
// && itm.SerialNumStr == minSNStr2
// ).MinAsync(itm => itm.HostSN);
// }
// return new ObjectResultDto<int?>(beginHostSN);
// }
// catch (Exception ex)
// {
// ObjectResultDto<int?> ret = new ObjectResultDto<int?>();
// ret.Status = false;
// ret.Message = _errorMessagePrefix + "GetPrintStartHostSN2 执行出错:" + ex.Message;
// _logger.LogError(ret.Message);
// return ret;
// }
// }
/// <summary>
/// 打印门板装箱单
@ -3209,334 +3209,334 @@ select min(SerialNumStr) from FisBillM110 a left join d on a.VIN=d.VIN
/// </summary>
/// <param name="input">生产线编号列表</param>
/// <returns>生产线超时情况</returns>
[UnitOfWork]
[HttpPost]
[Route("product-line-timeout-remind")]
public virtual async Task<ListResultDto<TimeOutRemindResultDto>> ProductLineTimeoutRemind(TimeOutRemindInputDto input)
{
List<TimeOutRemindResultDto> retLst = new List<TimeOutRemindResultDto>();
foreach (string plStr in input.ProductLineList)
{
TimeOutRemindResultDto retObj = new TimeOutRemindResultDto();
retObj.ProductLine = plStr;
retObj.ConfigMinutes = _configuration[$"ConfigDic:ProductLineTimeoutRemind:{plStr}"].TryToInt() ?? 30;
//[UnitOfWork]
//[HttpPost]
//[Route("product-line-timeout-remind")]
//public virtual async Task<ListResultDto<TimeOutRemindResultDto>> ProductLineTimeoutRemind(TimeOutRemindInputDto input)
//{
// List<TimeOutRemindResultDto> retLst = new List<TimeOutRemindResultDto>();
// foreach (string plStr in input.ProductLineList)
// {
// TimeOutRemindResultDto retObj = new TimeOutRemindResultDto();
// retObj.ProductLine = plStr;
// retObj.ConfigMinutes = _configuration[$"ConfigDic:ProductLineTimeoutRemind:{plStr}"].TryToInt() ?? 30;
string maxSNStr = await _billM110Repository.Where(itm => itm.ProductLine == plStr).MaxAsync(itm => itm.SerialNumStr);
BillM110 lastBill = await _billM110Repository.FirstOrDefaultAsync(itm => itm.ProductLine == plStr && itm.SerialNumStr == maxSNStr);
if (lastBill != null)
{
retObj.LastReceiveTime = lastBill.ReceiveTime ?? ServerHelper.CurrentDateTime;
retObj.TimeoutMinutes = MinuteDiff(retObj.LastReceiveTime, ServerHelper.CurrentDateTime);
}
retLst.Add(retObj);
}
return new ListResultDto<TimeOutRemindResultDto>(retLst);
}
// string maxSNStr = await _billM110Repository.Where(itm => itm.ProductLine == plStr).MaxAsync(itm => itm.SerialNumStr);
// BillM110 lastBill = await _billM110Repository.FirstOrDefaultAsync(itm => itm.ProductLine == plStr && itm.SerialNumStr == maxSNStr);
// if (lastBill != null)
// {
// retObj.LastReceiveTime = lastBill.ReceiveTime ?? ServerHelper.CurrentDateTime;
// retObj.TimeoutMinutes = MinuteDiff(retObj.LastReceiveTime, ServerHelper.CurrentDateTime);
// }
// retLst.Add(retObj);
// }
// return new ListResultDto<TimeOutRemindResultDto>(retLst);
//}
private int MinuteDiff(DateTime beginTime, DateTime endTime)
{
TimeSpan beginSpan = new TimeSpan(beginTime.Ticks);
TimeSpan endSpan = new TimeSpan(endTime.Ticks);
TimeSpan diffSpan = endSpan.Subtract(beginSpan).Duration();
return (int)(diffSpan.TotalMinutes);
}
//private int MinuteDiff(DateTime beginTime, DateTime endTime)
//{
// TimeSpan beginSpan = new TimeSpan(beginTime.Ticks);
// TimeSpan endSpan = new TimeSpan(endTime.Ticks);
// TimeSpan diffSpan = endSpan.Subtract(beginSpan).Duration();
// return (int)(diffSpan.TotalMinutes);
//}
#endregion
#region 保存报表、加载打印报表分离
//[UnitOfWork]
[UnitOfWork(IsDisabled = true)]
[HttpPost]
[Route("save-menban-report")]
public virtual async Task<ObjectResultDto<List<Guid>>> SaveMenBanReport(MenBanPrintInputDto input)
{
Stopwatch sw = new Stopwatch();
_logger.LogDebug(_errorMessagePrefix + "SaveMenBanReport 进入");
//[UnitOfWork(IsDisabled = true)]
//[HttpPost]
//[Route("save-menban-report")]
//public virtual async Task<ObjectResultDto<List<Guid>>> SaveMenBanReport(MenBanPrintInputDto input)
//{
// Stopwatch sw = new Stopwatch();
List<Guid> retLst = new List<Guid>();
ObjectResultDto<List<Guid>> ret = new ObjectResultDto<List<Guid>>();
ret.Status = false;
// _logger.LogDebug(_errorMessagePrefix + "SaveMenBanReport 进入");
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: System.Data.IsolationLevel.Unspecified))
{
try
{
List<MenBanPackingList> reportMainLst = new List<MenBanPackingList>();
if (input.PrintType == PrintTypeEnum.)
{
if (input.BeginHostSN != 0 && input.EndHostSN != 0)
{
if (input.BeginHostSN > input.EndHostSN)
{
ret.Message = "止大众顺序号必须大于等于起大众顺序号!";
ret.Status = false;
return ret;
}
}
ListResultDto<BillM110> tempLst = await GetMBReportDetailList(input, true); //-----------------------------
List<BillM110> billLst = tempLst.Item;
if (tempLst.Status == false)
{
ret.Message = tempLst.Message;
ret.Status = false;
return ret;
}
// List<Guid> retLst = new List<Guid>();
// ObjectResultDto<List<Guid>> ret = new ObjectResultDto<List<Guid>>();
// ret.Status = false;
_logger.LogWarning($"SaveMenBanReport读取数据 - {sw.ElapsedMilliseconds}毫秒");
// using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: System.Data.IsolationLevel.Unspecified))
// {
// try
// {
// List<MenBanPackingList> reportMainLst = new List<MenBanPackingList>();
int pageCnt = (int)Math.Ceiling(billLst.Count / 12.0); //每页打印12列,取打印页数
// if (input.PrintType == PrintTypeEnum.正常打印)
// {
// if (input.BeginHostSN != 0 && input.EndHostSN != 0)
// {
// if (input.BeginHostSN > input.EndHostSN)
// {
// ret.Message = "止大众顺序号必须大于等于起大众顺序号!";
// ret.Status = false;
// return ret;
// }
// }
// ListResultDto<BillM110> tempLst = await GetMBReportDetailList(input, true); //-----------------------------
// List<BillM110> billLst = tempLst.Item;
// if (tempLst.Status == false)
// {
// ret.Message = tempLst.Message;
// ret.Status = false;
// return ret;
// }
//double maxBillNum = 0;
// _logger.LogWarning($"SaveMenBanReport读取数据 - {sw.ElapsedMilliseconds}毫秒");
//DateTime printTime = ServerHelper.CurrentDateTime;
// int pageCnt = (int)Math.Ceiling(billLst.Count / 12.0); //每页打印12列,取打印页数
var reportSortDic = _dicItemRepository
.Where(itm => itm.DicTypeCode == "零件大类" && itm.DicItemSort2 == input.ProductLine)
.ToList()
.GroupBy(itm => itm.DicItemSort4)
.ToDictionary(itm => itm.Key, it2 => it2.Select(itm => itm.DicItemCode).ToArray());
// //double maxBillNum = 0;
for (int pageIdx = 0; pageIdx < pageCnt; pageIdx++)
{
// //DateTime printTime = ServerHelper.CurrentDateTime;
foreach (var reportSortItem in reportSortDic)
{
//生成顺序号:按生产线分组,取当前生产线的最大流水号:001至999往复循环
double maxSN = await _lineSNDomianService.GetMaxSN(ProductTypeEnum., input.ProductLine, string.Empty);
// var reportSortDic = _dicItemRepository
// .Where(itm => itm.DicTypeCode == "零件大类" && itm.DicItemSort2 == input.ProductLine)
// .ToList()
// .GroupBy(itm => itm.DicItemSort4)
// .ToDictionary(itm => itm.Key, it2 => it2.Select(itm => itm.DicItemCode).ToArray());
MenBanPackingList packingObj = DoMBPrint(input, pageIdx, maxSN, billLst, reportSortItem.Key, reportSortItem.Value);
reportMainLst.Add(packingObj);
}
}
// for (int pageIdx = 0; pageIdx < pageCnt; pageIdx++)
// {
_logger.LogWarning($"SaveMenBanReport转换数据 - {sw.ElapsedMilliseconds}毫秒");
// foreach (var reportSortItem in reportSortDic)
// {
// //生成顺序号:按生产线分组,取当前生产线的最大流水号:001至999往复循环
// double maxSN = await _lineSNDomianService.GetMaxSN(ProductTypeEnum.门板, input.ProductLine, string.Empty);
//插入门板打印记录表
await _menBanPackingListRepository.InsertManyAsync(reportMainLst, true);
retLst.AddRange(reportMainLst.Select(itm => itm.Id));
// MenBanPackingList packingObj = DoMBPrint(input, pageIdx, maxSN, billLst, reportSortItem.Key, reportSortItem.Value);
// reportMainLst.Add(packingObj);
// }
// }
_logger.LogWarning($"SaveMenBanReport插入门板打印记录表 - {sw.ElapsedMilliseconds}毫秒");
// _logger.LogWarning($"SaveMenBanReport转换数据 - {sw.ElapsedMilliseconds}毫秒");
// //插入门板打印记录表
// await _menBanPackingListRepository.InsertManyAsync(reportMainLst, true);
// retLst.AddRange(reportMainLst.Select(itm => itm.Id));
//调用派格版库存接口
//await SaveMiddleTable_MB(reportMainLst);
// _logger.LogWarning($"SaveMenBanReport插入门板打印记录表 - {sw.ElapsedMilliseconds}毫秒");
_logger.LogWarning($"SaveMenBanReport插入中间表 - {sw.ElapsedMilliseconds}毫秒");
// //调用派格版库存接口
// //await SaveMiddleTable_MB(reportMainLst);
//更新M110的门板打印标志:BillStatus=3
foreach (BillM110 billObj in billLst)
{
if (billObj.BillStatus == BillStatusEnum.Match)
{
billObj.SetBillStatus(BillStatusEnum.Publish);
billObj.PrintTime = ServerHelper.CurrentDateTime;
billObj.NeedReplenishPrint = 0; //不需要补打
await _billM110Repository.UpdateAsync(billObj, true);
}
else if (billObj.BillStatus == BillStatusEnum.NotMatch)
{
//billObj.PrintTime = ServerHelper.CurrentDateTime;
billObj.NeedReplenishPrint = 1; //需要补打
await _billM110Repository.UpdateAsync(billObj, true);
}
}
// _logger.LogWarning($"SaveMenBanReport插入中间表 - {sw.ElapsedMilliseconds}毫秒");
_logger.LogWarning($"SaveMenBanReport更新M110的门板打印标志 - {sw.ElapsedMilliseconds}毫秒");
}
//else if (input.PrintType == PrintTypeEnum.重新打印) //和正常打印单据完全一样,可以打印部分单据
// //更新M110的门板打印标志:BillStatus=3
// foreach (BillM110 billObj in billLst)
// {
// throw new BusinessException("请调用LoadMenBanReport方法!");
//}
//else if (input.PrintType == PrintTypeEnum.补打)
// if (billObj.BillStatus == BillStatusEnum.Match)
// {
// List<BillM110> billLst = _billM110Repository.Where(itm => input.M110IdList.Contains(itm.Id)).OrderBy(itm => itm.SerialNumStr).ToList();
// if (billLst.Count == 0)
// billObj.SetBillStatus(BillStatusEnum.Publish);
// billObj.PrintTime = ServerHelper.CurrentDateTime;
// billObj.NeedReplenishPrint = 0; //不需要补打
// await _billM110Repository.UpdateAsync(billObj, true);
// }
// else if (billObj.BillStatus == BillStatusEnum.NotMatch)
// {
// ret.Message = "没有补打的单据,请先选择要补打的单据!";
// ret.Status = false;
// return ret;
// //billObj.PrintTime = ServerHelper.CurrentDateTime;
// billObj.NeedReplenishPrint = 1; //需要补打
// await _billM110Repository.UpdateAsync(billObj, true);
// }
// }
// int pageCnt = (int)Math.Ceiling(billLst.Count / 12.0); //每页打印12列,取打印页数
// _logger.LogWarning($"SaveMenBanReport更新M110的门板打印标志 - {sw.ElapsedMilliseconds}毫秒");
// double maxBillNum = 0;
// }
// //else if (input.PrintType == PrintTypeEnum.重新打印) //和正常打印单据完全一样,可以打印部分单据
// //{
// // throw new BusinessException("请调用LoadMenBanReport方法!");
// //}
// //else if (input.PrintType == PrintTypeEnum.补打)
// //{
// // List<BillM110> billLst = _billM110Repository.Where(itm => input.M110IdList.Contains(itm.Id)).OrderBy(itm => itm.SerialNumStr).ToList();
// // if (billLst.Count == 0)
// // {
// // ret.Message = "没有补打的单据,请先选择要补打的单据!";
// // ret.Status = false;
// // return ret;
// // }
// DateTime printTime = ServerHelper.CurrentDateTime;
// // int pageCnt = (int)Math.Ceiling(billLst.Count / 12.0); //每页打印12列,取打印页数
// for (int pageIdx = 0; pageIdx < pageCnt; pageIdx++)
// {
// //取右上角顺序号:按生产线分组,取当前生产线的最大流水号:01至99循环,例如01左、01右
// double maxSN = 0; // await _lineSNDomianService.GetMaxSN(ProductTypeEnum.门板, input.ProductLine, string.Empty);
// // 先打印两张:左后左前,再打印两张:右后右前
// List<MenBanPackingList> leftLst = DoMBPrint(input, pageIdx, ref maxBillNum, maxSN, printTime, billLst, "左");
// List<MenBanPackingList> rightLst = DoMBPrint(input, pageIdx, ref maxBillNum, maxSN, printTime, billLst, "右");
// // double maxBillNum = 0;
// //作废时需要同时作废相同VIN的左右两页,SortId相同表示是同一组左右
// Guid sortId = GuidGenerator.Create();
// foreach (var leftItm in leftLst)
// {
// leftItm.SortId = sortId;
// // DateTime printTime = ServerHelper.CurrentDateTime;
// // for (int pageIdx = 0; pageIdx < pageCnt; pageIdx++)
// // {
// // //取右上角顺序号:按生产线分组,取当前生产线的最大流水号:01至99循环,例如01左、01右
// // double maxSN = 0; // await _lineSNDomianService.GetMaxSN(ProductTypeEnum.门板, input.ProductLine, string.Empty);
// // // 先打印两张:左后左前,再打印两张:右后右前
// // List<MenBanPackingList> leftLst = DoMBPrint(input, pageIdx, ref maxBillNum, maxSN, printTime, billLst, "左");
// // List<MenBanPackingList> rightLst = DoMBPrint(input, pageIdx, ref maxBillNum, maxSN, printTime, billLst, "右");
// // //作废时需要同时作废相同VIN的左右两页,SortId相同表示是同一组左右
// // Guid sortId = GuidGenerator.Create();
// // foreach (var leftItm in leftLst)
// // {
// // leftItm.SortId = sortId;
// // }
// // foreach (var rightItm in rightLst)
// // {
// // rightItm.SortId = sortId;
// // }
// // reportMainLst.AddRange(rightLst);
// // reportMainLst.AddRange(leftLst);
// // }
// // //校验底盘号、零件是否重复打印
// // string checkVinPartRepeatSql = @"
// // select top 1 a.BillNum from FisMenBanPackingList a join FisMenBanPackingRec b
// // on a.Id = b.MenBanPackingListId
// // where a.ReportStatus = 0
// // and b.VIN = '{0}' and (TopSAPMaterialNum = '{1}' or BelowSAPMaterialNum = '{1}')
// // ";
// // foreach (MenBanPackingList reportMainObj in reportMainLst)
// // {
// // foreach (MenBanPackingRec reportRecObj in reportMainObj.Details)
// // {
// // string sql1 = string.Format(checkVinPartRepeatSql, reportRecObj.VIN, reportRecObj.PartCode2);
// // string checkVinPartRepeatBillNum1 = _newJitDapperRepository.GetSingleBySql<string>(sql1, true);
// // if (string.IsNullOrEmpty(checkVinPartRepeatBillNum1) == false)
// // {
// // throw new BusinessException("1001", $"与装箱单号{checkVinPartRepeatBillNum1}中的底盘号{reportRecObj.VIN}、零件号{reportRecObj.PartCode2}之间重复!");
// // }
// // string sql2 = string.Format(checkVinPartRepeatSql, reportRecObj.VIN, reportRecObj.PartCode4);
// // string checkVinPartRepeatBillNum2 = _newJitDapperRepository.GetSingleBySql<string>(sql2, true);
// // if (string.IsNullOrEmpty(checkVinPartRepeatBillNum2) == false)
// // {
// // throw new BusinessException("1001", $"与装箱单号{checkVinPartRepeatBillNum2}中的底盘号{reportRecObj.VIN}、零件号{reportRecObj.PartCode4}之间重复!");
// // }
// // }
// // }
// // //调用派格版库存接口
// // await SaveMiddleTable_MB(reportMainLst);
// // //插入门板打印记录表
// // //await _menBanPackingListRepository.InsertManyAsync(reportMainLst);
// // foreach (var reportMainObj in reportMainLst)
// // {
// // var insObj = await _menBanPackingListRepository.InsertAsync(reportMainObj, true);
// // if (insObj != null)
// // {
// // retLst.Add(insObj.Id);
// // }
// // }
// // //更新M110的门板打印标志:BillStatus=3
// // foreach (BillM110 billObj in billLst)
// // {
// // if (billObj.BillStatus == BillStatusEnum.Match)
// // {
// // billObj.SetBillStatus(BillStatusEnum.Publish);
// // billObj.PrintTime = ServerHelper.CurrentDateTime;
// // await _billM110Repository.UpdateAsync(billObj);
// // }
// // }
// //} //补打if
// await uow.CompleteAsync();
// ret.Status = true;
// ret.Item = retLst;
// return ret;
// }
// foreach (var rightItm in rightLst)
// catch (Exception ex)
// {
// rightItm.SortId = sortId;
// await uow.RollbackAsync();
// string errorMsg = _errorMessagePrefix + "SaveMenBanReport 执行出错:" + ex.Message;
// _logger.LogError(errorMsg);
// ret.Status = false;
// ret.Message = ex.Message;
// return ret;
// }
// reportMainLst.AddRange(rightLst);
// reportMainLst.AddRange(leftLst);
// } //事务
//}
// //校验底盘号、零件是否重复打印
// string checkVinPartRepeatSql = @"
// select top 1 a.BillNum from FisMenBanPackingList a join FisMenBanPackingRec b
// on a.Id = b.MenBanPackingListId
// where a.ReportStatus = 0
// and b.VIN = '{0}' and (TopSAPMaterialNum = '{1}' or BelowSAPMaterialNum = '{1}')
// ";
// foreach (MenBanPackingList reportMainObj in reportMainLst)
//[UnitOfWork]
//[HttpPost]
//[Route("load-menban-report")]
//public virtual async Task<List<MenBanPackingListDto>> LoadMenBanReport(List<Guid> input)
//{
// foreach (MenBanPackingRec reportRecObj in reportMainObj.Details)
// _logger.LogDebug(_errorMessagePrefix + "LoadMenBanReport 进入");
// try
// {
// string sql1 = string.Format(checkVinPartRepeatSql, reportRecObj.VIN, reportRecObj.PartCode2);
// string checkVinPartRepeatBillNum1 = _newJitDapperRepository.GetSingleBySql<string>(sql1, true);
// if (string.IsNullOrEmpty(checkVinPartRepeatBillNum1) == false)
// List<MenBanPackingList> reportMainLst = new List<MenBanPackingList>();
// reportMainLst = await _menBanPackingListRepository.GetListAsync(itm => input.Contains(itm.Id) == true, true);
// //按大众顺序号排序
// foreach (var reportMainObj in reportMainLst)
// {
// throw new BusinessException("1001", $"与装箱单号{checkVinPartRepeatBillNum1}中的底盘号{reportRecObj.VIN}、零件号{reportRecObj.PartCode2}之间重复!");
// }
// List<MenBanPackingRec> recLst = reportMainObj.Details;
// if (recLst == null)
// continue;
// string sql2 = string.Format(checkVinPartRepeatSql, reportRecObj.VIN, reportRecObj.PartCode4);
// string checkVinPartRepeatBillNum2 = _newJitDapperRepository.GetSingleBySql<string>(sql2, true);
// if (string.IsNullOrEmpty(checkVinPartRepeatBillNum2) == false)
// bool has1999 = recLst.Any(itm => itm.HostSN.Contains("1999") || itm.HostSN.Contains("1998") || itm.HostSN.Contains("1997")
// || itm.HostSN.Contains("1996") || itm.HostSN.Contains("1995") || itm.HostSN.Contains("1994")
// || itm.HostSN.Contains("1993") || itm.HostSN.Contains("1992") || itm.HostSN.Contains("1991")
// || itm.HostSN.Contains("1990") || itm.HostSN.Contains("1989") || itm.HostSN.Contains("1988")
// || itm.HostSN.Contains("1987") || itm.HostSN.Contains("1986") || itm.HostSN.Contains("1985")
// || itm.HostSN.Contains("1984") || itm.HostSN.Contains("1983") || itm.HostSN.Contains("1982")
// || itm.HostSN.Contains("1981") || itm.HostSN.Contains("1980") || itm.HostSN.Contains("1979")
// || itm.HostSN.Contains("1978") || itm.HostSN.Contains("1977") || itm.HostSN.Contains("1976")
// );
// bool has0001 = recLst.Any(itm => itm.HostSN.Contains("0001") || itm.HostSN.Contains("0002") || itm.HostSN.Contains("0003")
// || itm.HostSN.Contains("0004") || itm.HostSN.Contains("0005") || itm.HostSN.Contains("0006")
// || itm.HostSN.Contains("0007") || itm.HostSN.Contains("0008") || itm.HostSN.Contains("0009")
// || itm.HostSN.Contains("0010") || itm.HostSN.Contains("0011") || itm.HostSN.Contains("0012")
// || itm.HostSN.Contains("0013") || itm.HostSN.Contains("0014") || itm.HostSN.Contains("0015")
// || itm.HostSN.Contains("0016") || itm.HostSN.Contains("0017") || itm.HostSN.Contains("0018")
// || itm.HostSN.Contains("0019") || itm.HostSN.Contains("0020") || itm.HostSN.Contains("0021")
// || itm.HostSN.Contains("0022") || itm.HostSN.Contains("0023") || itm.HostSN.Contains("0024")
// );
// if (has1999 && has0001)
// {
// throw new BusinessException("1001", $"与装箱单号{checkVinPartRepeatBillNum2}中的底盘号{reportRecObj.VIN}、零件号{reportRecObj.PartCode4}之间重复!");
// reportMainObj.Details = recLst.OrderBy(itm => (itm.HostSN.TryToIntZero() % 10000) < 240 ? (itm.HostSN.TryToIntZero() % 10000 + 1999) : (itm.HostSN.TryToIntZero() % 10000)).ToList();
// }
// else
// {
// reportMainObj.Details = recLst.OrderBy(itm => itm.HostSN).ToList();
// }
// }
// //调用派格版库存接口
// await SaveMiddleTable_MB(reportMainLst);
// #region 格式转换
// //实体 转 DTO
// List<MenBanPackingListDto> targetLst = ObjectMapper.Map<List<MenBanPackingList>, List<MenBanPackingListDto>>(reportMainLst);
// targetLst = targetLst.OrderBy(itm => itm.BillNum).ToList();
// //插入门板打印记录表
// //await _menBanPackingListRepository.InsertManyAsync(reportMainLst);
// foreach (var reportMainObj in reportMainLst)
// //子表BillNum赋值, BillNum填充空格
// foreach (var masterObj in targetLst)
// {
// var insObj = await _menBanPackingListRepository.InsertAsync(reportMainObj, true);
// if (insObj != null)
// masterObj.BillNum = GetTrueString(masterObj.BillNum);
// int sn = 1;
// foreach (var detailObj in masterObj.Details)
// {
// retLst.Add(insObj.Id);
// detailObj.BillNum = masterObj.BillNum;
// detailObj.KNR = GetTrueString(detailObj.KNR);
// detailObj.SN = (sn++).ToString();
// detailObj.VIN = detailObj.VIN.TryToRight(6); //底盘号返回后六位
// }
// }
// //更新M110的门板打印标志:BillStatus=3
// foreach (BillM110 billObj in billLst)
// {
// if (billObj.BillStatus == BillStatusEnum.Match)
// #endregion
// return targetLst;
// }
// catch (Exception ex)
// {
// billObj.SetBillStatus(BillStatusEnum.Publish);
// billObj.PrintTime = ServerHelper.CurrentDateTime;
// await _billM110Repository.UpdateAsync(billObj);
// string errorMsg = _errorMessagePrefix + "LoadMenBanReport 执行出错:" + ex.Message;
// _logger.LogError(errorMsg);
// throw new UserFriendlyException(errorMsg);
// }
//}
//} //补打if
await uow.CompleteAsync();
ret.Status = true;
ret.Item = retLst;
return ret;
}
catch (Exception ex)
{
await uow.RollbackAsync();
string errorMsg = _errorMessagePrefix + "SaveMenBanReport 执行出错:" + ex.Message;
_logger.LogError(errorMsg);
ret.Status = false;
ret.Message = ex.Message;
return ret;
}
} //事务
}
[UnitOfWork]
[HttpPost]
[Route("load-menban-report")]
public virtual async Task<List<MenBanPackingListDto>> LoadMenBanReport(List<Guid> input)
{
_logger.LogDebug(_errorMessagePrefix + "LoadMenBanReport 进入");
try
{
List<MenBanPackingList> reportMainLst = new List<MenBanPackingList>();
reportMainLst = await _menBanPackingListRepository.GetListAsync(itm => input.Contains(itm.Id) == true, true);
//按大众顺序号排序
foreach (var reportMainObj in reportMainLst)
{
List<MenBanPackingRec> recLst = reportMainObj.Details;
if (recLst == null)
continue;
bool has1999 = recLst.Any(itm => itm.HostSN.Contains("1999") || itm.HostSN.Contains("1998") || itm.HostSN.Contains("1997")
|| itm.HostSN.Contains("1996") || itm.HostSN.Contains("1995") || itm.HostSN.Contains("1994")
|| itm.HostSN.Contains("1993") || itm.HostSN.Contains("1992") || itm.HostSN.Contains("1991")
|| itm.HostSN.Contains("1990") || itm.HostSN.Contains("1989") || itm.HostSN.Contains("1988")
|| itm.HostSN.Contains("1987") || itm.HostSN.Contains("1986") || itm.HostSN.Contains("1985")
|| itm.HostSN.Contains("1984") || itm.HostSN.Contains("1983") || itm.HostSN.Contains("1982")
|| itm.HostSN.Contains("1981") || itm.HostSN.Contains("1980") || itm.HostSN.Contains("1979")
|| itm.HostSN.Contains("1978") || itm.HostSN.Contains("1977") || itm.HostSN.Contains("1976")
);
bool has0001 = recLst.Any(itm => itm.HostSN.Contains("0001") || itm.HostSN.Contains("0002") || itm.HostSN.Contains("0003")
|| itm.HostSN.Contains("0004") || itm.HostSN.Contains("0005") || itm.HostSN.Contains("0006")
|| itm.HostSN.Contains("0007") || itm.HostSN.Contains("0008") || itm.HostSN.Contains("0009")
|| itm.HostSN.Contains("0010") || itm.HostSN.Contains("0011") || itm.HostSN.Contains("0012")
|| itm.HostSN.Contains("0013") || itm.HostSN.Contains("0014") || itm.HostSN.Contains("0015")
|| itm.HostSN.Contains("0016") || itm.HostSN.Contains("0017") || itm.HostSN.Contains("0018")
|| itm.HostSN.Contains("0019") || itm.HostSN.Contains("0020") || itm.HostSN.Contains("0021")
|| itm.HostSN.Contains("0022") || itm.HostSN.Contains("0023") || itm.HostSN.Contains("0024")
);
if (has1999 && has0001)
{
reportMainObj.Details = recLst.OrderBy(itm => (itm.HostSN.TryToIntZero() % 10000) < 240 ? (itm.HostSN.TryToIntZero() % 10000 + 1999) : (itm.HostSN.TryToIntZero() % 10000)).ToList();
}
else
{
reportMainObj.Details = recLst.OrderBy(itm => itm.HostSN).ToList();
}
}
#region 格式转换
//实体 转 DTO
List<MenBanPackingListDto> targetLst = ObjectMapper.Map<List<MenBanPackingList>, List<MenBanPackingListDto>>(reportMainLst);
targetLst = targetLst.OrderBy(itm => itm.BillNum).ToList();
//子表BillNum赋值, BillNum填充空格
foreach (var masterObj in targetLst)
{
masterObj.BillNum = GetTrueString(masterObj.BillNum);
int sn = 1;
foreach (var detailObj in masterObj.Details)
{
detailObj.BillNum = masterObj.BillNum;
detailObj.KNR = GetTrueString(detailObj.KNR);
detailObj.SN = (sn++).ToString();
detailObj.VIN = detailObj.VIN.TryToRight(6); //底盘号返回后六位
}
}
#endregion
return targetLst;
}
catch (Exception ex)
{
string errorMsg = _errorMessagePrefix + "LoadMenBanReport 执行出错:" + ex.Message;
_logger.LogError(errorMsg);
throw new UserFriendlyException(errorMsg);
}
}
private static string GetTrueString(string str)
{
return str == null ? " " : str.Trim(); ;
}
//private static string GetTrueString(string str)
//{
// return str == null ? " " : str.Trim(); ;
//}
/// <summary>
/// 打印柱护板装箱单

49
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml

@ -1013,6 +1013,20 @@
根据筛选条件获取实体列表
</summary>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM100AppService.QueryByConditionAsync2(WY.NewJit.MsgCheck.QueryBillM100Dto)">
<summary>
包含主表横向排列零件字段
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM100AppService.FillPartCodeField(System.Collections.Generic.List{WY.NewJit.MsgCheck.BillM110Dto})">
<summary>
填充M110主表横向零件字段
</summary>
<param name="m110Dtos"></param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM100AppService.GetMBReportDetailList(WY.NewJit.Extends.MenBanPrintInputDto,System.Boolean)">
<summary>
根据条件取用于打印的门板单据列表
@ -1031,17 +1045,16 @@
<param name="billLst"></param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM100AppService.DoMBPrint(WY.NewJit.Extends.MenBanPrintInputDto,System.Int32,System.Double,System.Collections.Generic.List{WY.NewJit.MsgCheck.BillM100},System.String,System.String[])">
<member name="M:WY.NewJit.MsgCheck.BillM100AppService.DoMBPrint(WY.NewJit.Extends.MenBanPrintInputDto,System.Int32,System.Double,System.Collections.Generic.List{WY.NewJit.MsgCheck.BillM100},System.String,System.Collections.Generic.List{WY.NewJit.MsgBaseData.DicItem})">
<summary>
打印左侧或右侧门板
</summary>
<param name="input"></param>
<param name="pageIdx"></param>
<param name="maxBillNum"></param>
<param name="maxSN"></param>
<param name="printTime"></param>
<param name="billLst"></param>
<param name="partLargeType"></param>
<param name="reportSort">报表分类,dui</param>
<param name="partLargeTypeLst">零件大类字典项</param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM100AppService.CheckMBHostSNBreakNum(WY.NewJit.Extends.MenBanPrintInputDto)">
@ -1118,6 +1131,11 @@
<param name="input">生产线编号列表</param>
<returns>生产线超时情况</returns>
</member>
<member name="P:WY.NewJit.MsgCheck.M100_M110_Result.PartDisplayColumnName">
<summary>
零件在主表横向排列显示的列名
</summary>
</member>
<member name="T:WY.NewJit.MsgCheck.NewM100AppService">
<summary>
M100单据管理应用服务实现
@ -1405,22 +1423,6 @@
<param name="partLargeType"></param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.CheckMBHostSNBreakNum(WY.NewJit.Extends.MenBanPrintInputDto)">
<summary>
打印前检查大众顺序号是否断号
</summary>
<param name="input"></param>
<returns>断号时Item不为空</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.GetPrintStartHostSN2(System.String,System.String,System.String)">
<summary>
根据生产线获取正常打印单据的起始大众顺序号2
</summary>
<param name="productLine">生产线</param>
<param name="isZhuHuBan">柱护板是1 门板是非1</param>
<param name="groupName">柱护板分组类型</param>
<returns>起始大众顺序号</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.GetListAsync(WY.NewJit.MsgCheck.QueryBillM110Dto)">
<summary>
根据筛选条件获取分页实体列表
@ -1472,13 +1474,6 @@
<param name="input">导入文件流</param>
<returns>执行成功返回真</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.ProductLineTimeoutRemind(WY.NewJit.MsgCheck.TimeOutRemindInputDto)">
<summary>
生产线超时提醒
</summary>
<param name="input">生产线编号列表</param>
<returns>生产线超时情况</returns>
</member>
<member name="T:WY.NewJit.MsgCheck.BillR100AppService">
<summary>
R100单据管理应用服务实现

6
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain.Shared/Common/ObjectResultDto.cs

@ -7,7 +7,6 @@ namespace WY.NewJit
public class ObjectResultDto
{
private bool isRepeat;
public ObjectResultDto()
{
@ -15,11 +14,6 @@ namespace WY.NewJit
this.Message = "";
}
public ObjectResultDto(bool isRepeat)
{
this.isRepeat = isRepeat;
}
public ObjectResultDto(bool status, string errorMessage)
{
this.Status = status;

6
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain.Shared/MsgCheck/BillStatusEnum.cs

@ -13,13 +13,13 @@ namespace WY.NewJit.MsgCheck
/// <summary>
/// 未匹配
/// </summary>
[Description("未匹配")]
NotMatch = 1,
//[Description("未匹配")]
//NotMatch = 1,
/// <summary>
/// 已匹配,未打印
/// </summary>
[Description("已匹配")]
[Description("未打印")]
Match = 2,
/// <summary>

24
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Entitys/DicItem.cs

@ -48,10 +48,32 @@ namespace WY.NewJit.MsgBaseData
public virtual string DicItemSort4 { get; set; }
/// <summary>
/// 分类5
/// 分类5 (零件大类对应客户零件号)
/// </summary>
public virtual string DicItemSort5 { get; set; }
/// <summary>
/// 分类6(零件大类对应显示车型)
/// </summary>
public virtual string DicItemSort6 { get; set; }
/// <summary>
/// 分类7(零件大类对应报表字段显示顺序)
/// </summary>
public virtual string DicItemSort7 { get; set; }
/// <summary>
/// 分类8(零件大类对应装箱清单号的前缀,例如C或T)
/// </summary>
public virtual string DicItemSort8 { get; set; }
/// <summary>
/// 分类9(零件大类对应 打印标准数量 12 或 24)
/// </summary>
public virtual string DicItemSort9 { get; set; }
protected DicItem()
{
//此构造函数是提供给ORM用来从数据库中获取实体.

4
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Services/LineSNDomianService.cs

@ -19,7 +19,7 @@ namespace WY.NewJit.MsgBaseData
}
/// <summary>
/// 生成门板或柱护板右上角顺序号
/// 生成门板或柱护板右上角顺序号,每天零点开始往复循环1-99
/// </summary>
/// <param name="productType">门板或柱护板</param>
/// <param name="productLine">产线</param>
@ -38,7 +38,7 @@ namespace WY.NewJit.MsgBaseData
}
DateTime now = DateTime.Now;
DateTime today8 = new DateTime(now.Year, now.Month, now.Day, 8, 0, 0);
DateTime today8 = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0);
if (typeObj != null)
{

2
Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfo.cs

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Win.Sfs.Shared")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0+9f1698b0f932dfc3e8d926fe272b9e5c15605da4")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0+55c68df95edc067cefe3d74120d28daebdd00649")]
[assembly: System.Reflection.AssemblyProductAttribute("Win.Sfs.Shared")]
[assembly: System.Reflection.AssemblyTitleAttribute("Win.Sfs.Shared")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.0.0.0")]

2
Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfoInputs.cache

@ -1 +1 @@
d755eed168280a373eeb0870bc5023deded8bf4c7a53f8c511dbfc9601ca31ed
48b37d1c823a2c28ae1847b40d58f961e3a2bcf25479d6132ccf6601b7861fc4

2
Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfo.cs

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Win.Utils")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0+32f3c7c4f91a6e47f64ef11cb91719a67226370a")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0+55c68df95edc067cefe3d74120d28daebdd00649")]
[assembly: System.Reflection.AssemblyProductAttribute("Win.Utils")]
[assembly: System.Reflection.AssemblyTitleAttribute("Win.Utils")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.0.0.0")]

2
Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfoInputs.cache

@ -1 +1 @@
b809d5ff0b4e2ed0d2cfb967cbf1ed268b666995e296a8a123408bdd3804a21c
319ab87b608dd5265bea28a1b45afd1f00fabe88367ebb4631ed6d98436c50fc

Loading…
Cancel
Save