Browse Source

增加M110和RepeatM110所有实体DTO接口服务

master
me 1 week ago
parent
commit
553728514e
  1. 5
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingListDto.cs
  2. 128
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Dtos/BillM110Dto.cs
  3. 38
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Dtos/BillM110PartDto.cs
  4. 104
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Dtos/CreateUpdateBillM110Dto.cs
  5. 32
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Dtos/CreateUpdateBillM110PartDto.cs
  6. 127
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Dtos/QueryBillM110Dto.cs
  7. 157
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Dtos/ResultBillM110Dto.cs
  8. 115
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM110s/Interfaces/IBillM110AppService.cs
  9. 85
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Dtos/CreateUpdateRepeatM110Dto.cs
  10. 35
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Dtos/CreateUpdateRepeatM110PartDto.cs
  11. 87
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Dtos/QueryRepeatM110Dto.cs
  12. 115
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Dtos/RepeatM110Dto.cs
  13. 38
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Dtos/RepeatM110PartDto.cs
  14. 58
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Interfaces/IRepeatM110AppService.cs
  15. 1082
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/WY.NewJit.Application.Contracts.xml
  16. 5088
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM110s/BillM110AppService.cs
  17. 2
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/RepeatMessages/RepeatM100AppService.cs
  18. 375
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/RepeatMessages/RepeatM110AppService.cs
  19. 2
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/RepeatMessages/RepeatR100AppService.cs
  20. 17
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/NewJitApplicationAutoMapperProfile.cs
  21. 308
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml
  22. 187
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Entitys/BillM110.cs
  23. 49
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Entitys/BillM110Part.cs
  24. 40
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Entitys/RepeatM110.cs
  25. 12
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Entitys/RepeatM110Part.cs
  26. 49
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.EntityFrameworkCore/EntityFrameworkCore/NewJitDbContextModelCreatingExtensions.cs
  27. 4
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleApp/Messages/MsgTransmissionService.cs

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

@ -90,7 +90,10 @@ namespace WY.NewJit.Extends
/// </summary>
public virtual List<MenBanPackingRecDto> Details { get; set; }
/// <summary>
/// 报表状态
/// </summary>
public virtual ReportStatusEnum ReportStatus { get; set; }

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

@ -0,0 +1,128 @@
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using System;
using System.Collections.Generic;
using System.Text;
using Volo.Abp.Application.Dtos;
namespace WY.NewJit.MsgCheck
{
/// <summary>
/// 零件查询结果DTO
/// </summary>
[ExcelExporter(Name = "M110单据", AutoFitAllColumn = true, MaxRowNumberOnASheet = 1000)] //一个Sheet最大允许的行数,设置了之后将输出多个Sheet
[Serializable]
public class BillM110Dto: AuditedEntityDto<Guid>
{
/// <summary>
/// 流水号#
/// </summary>
[ExporterHeader(DisplayName = "流水号")]
[ImporterHeader(Name = "流水号")]
public int? SerialNum { get; set; }
/// <summary>
/// 大众顺序号
/// </summary>
[ExporterHeader(DisplayName = "大众顺序号")]
[ImporterHeader(Name = "大众顺序号")]
public int? HostSN { get; set; }
/// <summary>
/// KNR
/// </summary>
[ExporterHeader(DisplayName = "KNR")]
[ImporterHeader(Name = "KNR")]
public string KNR { get; set; }
/// <summary>
/// 底牌号#
/// </summary>
[ExporterHeader(DisplayName = "底牌号")]
[ImporterHeader(Name = "底牌号")]
public string VIN { get; set; }
/// <summary>
/// 总成ID
/// </summary>
[ExporterHeader(DisplayName = "总成ID")]
[ImporterHeader(Name = "总成ID")]
public Guid? AssemblyID { get; set; }
/// <summary>
/// 上线时间
/// </summary>
[ExporterHeader(DisplayName = "上线时间")]
[ImporterHeader(Name = "上线时间")]
public DateTime? OnlineTime { get; set; }
/// <summary>
/// 车型代码(取通用字典)
/// </summary>
[ExporterHeader(DisplayName = "车型代码")]
[ImporterHeader(Name = "车型代码")]
public string VehicleModelCode { get; set; }
/// <summary>
/// 生产线(派格按生产线分类)
/// </summary>
[ExporterHeader(DisplayName = " 生产线")]
[ImporterHeader(Name = " 生产线")]
public virtual string ProductLine { get; set; }
/// <summary>
/// 版本
/// </summary>
[ExporterHeader(DisplayName = "版本")]
[ImporterHeader(Name = "版本")]
public string Version { get; set; }
/// <summary>
/// 接收时间
/// </summary>
[ExporterHeader(DisplayName = "接收时间")]
[ImporterHeader(Name = "接收时间")]
public DateTime? ReceiveTime { get; set; }
/// <summary>
/// 单据状态(0 空;1 未匹配;2 已匹配未打印;3 已打印)
/// </summary>
[ExporterHeader(DisplayName = "单据状态")]
[ImporterHeader(Name = "单据状态")]
public BillStatusEnum BillStatus { get; set; }
/// <summary>
/// 描述
/// </summary>
[ExporterHeader(DisplayName = "描述")]
[ImporterHeader(Name = "描述")]
public string Description { get; set; }
/// <summary>
/// 涂装重复单据包含的零件列表
/// </summary>
public List<BillM110PartDto> BillM110Parts { get; set; }
/// <summary>
/// 手工操作类型:0 none,1 手工添加,2 手工修改
/// </summary>
[ExporterHeader(DisplayName = "手工操作类型")]
[ImporterHeader(Name = "手工操作类型")]
public ManualOperationTypeEnum OperationType { get; set; }
/// <summary>
/// 手工操作员
/// </summary>
[ExporterHeader(DisplayName = "手工操作员")]
[ImporterHeader(Name = "手工操作员")]
public string Operator { get; set; }
/// <summary>
/// 手工操作日期
/// </summary>
[ExporterHeader(DisplayName = "手工操作日期")]
[ImporterHeader(Name = "手工操作日期")]
public DateTime? OperationTime { get; set; }
}
}

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

@ -0,0 +1,38 @@
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using System;
using System.Collections.Generic;
using System.Text;
using Volo.Abp.Application.Dtos;
namespace WY.NewJit.MsgCheck
{
/// <summary>
/// 零件查询结果DTO
/// </summary>
[ExcelExporter(Name = "M110单据包含的零件信息", AutoFitAllColumn = true, MaxRowNumberOnASheet = 1000)] //一个Sheet最大允许的行数,设置了之后将输出多个Sheet
[Serializable]
public class BillM110PartDto : EntityDto<Guid>
{
/// <summary>
/// 客户零件代码
/// </summary>
[ExporterHeader(DisplayName = "客户零件代码")]
[ImporterHeader(Name = "客户零件代码")]
public string PartCode { get; set; }
/// <summary>
/// 客户零件数量
/// </summary>
[ExporterHeader(DisplayName = "客户零件数量")]
[ImporterHeader(Name = "客户零件数量")]
public double? PartNum { get; set; }
/// <summary>
/// 描述
/// </summary>
[ExporterHeader(DisplayName = "描述")]
[ImporterHeader(Name = "描述")]
public string Description { get; set; }
}
}

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

@ -0,0 +1,104 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
using Volo.Abp.Application.Dtos;
namespace WY.NewJit.MsgCheck
{
[Serializable]
public class CreateUpdateBillM110Dto
{
/// <summary>
/// 流水号#
/// </summary>
public int? SerialNum { get; set; }
/// <summary>
/// 大众顺序号
/// </summary>
[Required]
public int? HostSN { get; set; }
/// <summary>
/// KNR
/// </summary>
[Required]
[StringLength(100)]
public string KNR { get; set; }
/// <summary>
/// 底牌号#
/// </summary>
[Required]
[StringLength(100)]
public string VIN { get; set; }
/// <summary>
/// 总成ID
/// </summary>
public Guid? AssemblyID { get; set; }
/// <summary>
/// 上线时间
/// </summary>
[Required]
public DateTime? OnlineTime { get; set; }
/// <summary>
/// 车型代码(取通用字典)
/// </summary>
[Required]
public string VehicleModelCode { get; set; }
/// <summary>
/// 生产线(派格按生产线分类)
/// </summary>
public virtual string ProductLine { get; set; }
/// <summary>
/// 版本
/// </summary>
public string Version { get; set; }
/// <summary>
/// 接收时间
/// </summary>
[Required]
public DateTime? ReceiveTime { get; set; }
/// <summary>
/// 单据状态(0 空;1 未匹配;2 已匹配未打印;3 已打印)
/// </summary>
[Required]
public BillStatusEnum BillStatus { get; set; }
/// <summary>
/// 描述
/// </summary>
[StringLength(200)]
public string Description { get; set; }
/// <summary>
/// 涂装重复单据包含的零件列表
/// </summary>
public virtual List<CreateUpdateBillM110PartDto> BillM110Parts { get; set; }
/// <summary>
/// 手工操作类型:0 none,1 手工添加,2 手工修改
/// </summary>
public ManualOperationTypeEnum OperationType { get; set; }
/// <summary>
/// 手工操作员
/// </summary>
public string Operator { get; set; }
/// <summary>
/// 手工操作日期
/// </summary>
public DateTime? OperationTime { get; set; }
}
}

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

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
using Volo.Abp.Application.Dtos;
namespace WY.NewJit.MsgCheck
{
[Serializable]
public class CreateUpdateBillM110PartDto
{
/// <summary>
/// 客户零件代码
/// </summary>
[Required]
[StringLength(100)]
public string PartCode { get; set; }
/// <summary>
/// 客户零件数量
/// </summary>
[Required]
public double? PartNum { get; set; }
/// <summary>
/// 描述
/// </summary>
[StringLength(200)]
public string Description { get; set; }
}
}

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

@ -0,0 +1,127 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using Volo.Abp.Application.Dtos;
using WY.NewJit.Common;
namespace WY.NewJit.MsgCheck
{
[Serializable]
public class QueryBillM110Dto : PagedAndSortedBase
{
/// <summary>
/// 流水号起
/// </summary>
public int? SerialNumBegin { get; set; }
/// <summary>
/// 流水号止
/// </summary>
public int? SerialNumEnd { get; set; }
/// <summary>
/// 大众顺序号起
/// </summary>
public int? HostSNBegin { get; set; }
/// <summary>
/// 大众顺序号止
/// </summary>
public int? HostSNEnd { get; set; }
/// <summary>
/// KNR起
/// </summary>
public string KNRBegin { get; set; }
/// <summary>
/// KNR止
/// </summary>
public string KNREnd { get; set; }
/// <summary>
/// 底牌号起
/// </summary>
public string VINBegin { get; set; }
/// <summary>
/// 底牌号止
/// </summary>
public string VINEnd { get; set; }
/// <summary>
/// 总成ID
/// </summary>
public Guid? AssemblyID { get; set; }
/// <summary>
/// 上线时间起
/// </summary>
public DateTime? OnlineTimeBegin { get; set; }
/// <summary>
/// 上线时间止
/// </summary>
public DateTime? OnlineTimeEnd { get; set; }
/// <summary>
/// 车型代码(取通用字典)
/// </summary>
public string VehicleModelCode { get; set; }
/// <summary>
/// 生产线(派格按生产线分类)
/// </summary>
public virtual string ProductLine { get; set; }
/// <summary>
/// 版本
/// </summary>
public string Version { get; set; }
/// <summary>
/// 接收时间起
/// </summary>
public DateTime? ReceiveTimeBegin { get; set; }
/// <summary>
/// 接收时间止
/// </summary>
public DateTime? ReceiveTimeEnd { get; set; }
/// <summary>
/// 单据状态(0 空;1 未匹配;2 未打印;3 已打印)
/// </summary>
public BillStatusEnum? BillStatus { get; set; }
/// <summary>
/// 是否单据维护
/// </summary>
public bool? IsBillMaintenance { get; set; }
/// <summary>
/// 不可打印
/// </summary>
public bool? CanNotPrint { get; set; }
/// <summary>
/// 柱护板单据状态(0 空;1 未匹配;2 未打印;3 已打印)
/// </summary>
public ZHBBillStatusEnum? ZHBBillStatus { get; set; }
/// <summary>
/// 为真时只显示需要补打的记录
/// </summary>
public bool IsNeedReplenishPrint { get; set; }
public string GroupName { get; set; } = "";
/// <summary>
/// 是否查询M110归档数据
/// </summary>
public bool IsQueryArchive { get; set; } = false;
}
}

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

@ -0,0 +1,157 @@
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using System;
using System.Collections.Generic;
using System.Text;
using Volo.Abp.Application.Dtos;
namespace WY.NewJit.MsgCheck
{
/// <summary>
/// 零件查询结果DTO
/// </summary>
[ExcelExporter(Name = "M110单据查询结果", AutoFitAllColumn = true, MaxRowNumberOnASheet = 1000)] //一个Sheet最大允许的行数,设置了之后将输出多个Sheet
[Serializable]
public class ResultBillM110Dto : EntityDto<Guid>
{
/// <summary>
/// 流水号#
/// </summary>
[ExporterHeader(DisplayName = "流水号")]
[ImporterHeader(Name = "流水号")]
public int? SerialNum { get; set; }
/// <summary>
/// 大众顺序号
/// </summary>
[ExporterHeader(DisplayName = "大众顺序号")]
[ImporterHeader(Name = "大众顺序号")]
public int? HostSN { get; set; }
/// <summary>
/// KNR
/// </summary>
[ExporterHeader(DisplayName = "KNR")]
[ImporterHeader(Name = "KNR")]
public string KNR { get; set; }
/// <summary>
/// 底牌号#
/// </summary>
[ExporterHeader(DisplayName = "底牌号")]
[ImporterHeader(Name = "底牌号")]
public string VIN { get; set; }
/// <summary>
/// 总成ID
/// </summary>
[ExporterHeader(DisplayName = "总成ID")]
[ImporterHeader(Name = "总成ID")]
public Guid? AssemblyID { get; set; }
/// <summary>
/// 上线时间
/// </summary>
[ExporterHeader(DisplayName = "上线时间")]
[ImporterHeader(Name = "上线时间")]
public DateTime? OnlineTime { get; set; }
/// <summary>
/// 车型代码(取通用字典)
/// </summary>
[ExporterHeader(DisplayName = "车型代码")]
[ImporterHeader(Name = "车型代码")]
public string VehicleModelCode { get; set; }
/// <summary>
/// 生产线(派格按生产线分类)
/// </summary>
public virtual string ProductLine { get; set; }
/// <summary>
/// 版本
/// </summary>
[ExporterHeader(DisplayName = "版本")]
[ImporterHeader(Name = "版本")]
public string Version { get; set; }
/// <summary>
/// 接收时间
/// </summary>
[ExporterHeader(DisplayName = "接收时间")]
[ImporterHeader(Name = "接收时间")]
public DateTime? ReceiveTime { get; set; }
/// <summary>
/// 单据状态(0 空;1 未匹配;2 已匹配未打印;3 已打印)
/// </summary>
[ExporterHeader(DisplayName = "单据状态")]
[ImporterHeader(Name = "单据状态")]
public BillStatusEnum BillStatus { get; set; }
/// <summary>
/// 描述
/// </summary>
[ExporterHeader(DisplayName = "描述")]
[ImporterHeader(Name = "描述")]
public string Description { get; set; }
///// <summary>
///// 涂装重复单据包含的零件列表
///// </summary>
//public List<BillM110PartDto> M110BillParts { get; set; }
/// <summary>
/// 总成名称
/// </summary>
[ExporterHeader(DisplayName = "总成名称")]
[ImporterHeader(Name = "总成名称")]
public string AssemblyName { get; set; }
/// <summary>
/// 车型名称(取通用字典)
/// </summary>
[ExporterHeader(DisplayName = "车型名称")]
[ImporterHeader(Name = "车型名称")]
public string VehicleModelName { get; set; }
/// <summary>
/// R100总成名称
/// </summary>
[ExporterHeader(DisplayName = "R100总成名称")]
[ImporterHeader(Name = "R100总成名称")]
public string R100AssemblyName { get; set; }
/// <summary>
/// R100上线时间
/// </summary>
[ExporterHeader(DisplayName = "R100上线时间")]
[ImporterHeader(Name = "R100上线时间")]
public DateTime? R100OnlineTime { get; set; }
/// <summary>
/// 打印时间
/// </summary>
[ExporterHeader(DisplayName = "打印时间")]
[ImporterHeader(Name = "打印时间")]
public virtual DateTime? PrintTime { get; set; }
/// <summary>
/// 不可打印
/// </summary>
[ExporterHeader(IsIgnore =true)]
[ImporterHeader(IsIgnore = true)]
public virtual bool? CanNotPrint { get; set; }
/// <summary>
/// 柱护板打印状态(不为空时表示已打印)
/// </summary>
[ExporterHeader(IsIgnore = true)]
[ImporterHeader(IsIgnore = true)]
public virtual string PrintBillNum { get; set; }
}
}

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

@ -0,0 +1,115 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using WY.NewJit.Extends;
namespace WY.NewJit.MsgCheck
{
public interface IBillM110AppService
{
#region 接口方法
/// 根据筛选条件获取分页实体列表
/// </summary>
/// <param name="input">输入查询条件</param>
/// <param name="page">输入分页条件</param>
/// <returns>返回符合条件的排序分页列表</returns>
Task<PagedResultDto<ResultBillM110Dto>> GetListAsync(QueryBillM110Dto input);
/// <summary>
/// 按主键获取唯一实体
/// </summary>
/// <param name="id">主键</param>
/// <returns>实体信息</returns>
Task<ObjectResultDto<BillM110Dto>> GetAsync(Guid id);
/// <summary>
/// 添加实体
/// </summary>
/// <param name="input">添加内容</param>
/// <returns>执行成功返回真</returns>
Task<ObjectResultDto<Guid>> CreateAsync(CreateUpdateBillM110Dto input);
/// <summary>
/// 修改实体
/// </summary>
/// <param name="id">更新主键</param>
/// <param name="input">修改内容</param>
/// <returns>执行成功返回真</returns>
Task<ObjectResultDto> UpdateAsync(Guid id, CreateUpdateBillM110Dto input);
/// <summary>
/// 删除实体
/// </summary>
/// <param name="id">删除主键</param>
/// <returns>执行成功返回真</returns>
Task<ObjectResultDto> DeleteAsync(string id);
/// <summary>
/// 导出信息
/// </summary>
/// <param name="input">导出查询条件</param>
/// <returns>执行成功返回真</returns>
Task<ObjectResultDto<string>> ExportAsync(QueryBillM110Dto input);
/// <summary>
/// 导入信息
/// </summary>
/// <param name="input">导入文件流</param>
/// <returns>执行成功返回真</returns>
Task<ObjectResultDto> ImportAsync(Byte[] input);
/// <summary>
/// 根据生产线获取正常打印单据的起始大众顺序号
/// </summary>
/// <param name="productLine">生产线</param>
/// <returns>起始大众顺序号</returns>
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);
/// <summary>
/// 打印前检查柱护板大众顺序号是否断号
/// </summary>
/// <param name="input"></param>
/// <returns>断号时Item不为空</returns>
//Task<ListResultDto<string>> CheckZHBHostSNBreakNum(ZhuHuBanPrintInputDto input);
/// <summary>
/// 打印门板装箱单
/// </summary>
/// <param name="input"></param>
/// <returns>执行成功返回真</returns>
//Task<ObjectResultDto<MenBanPrintResultDto>> PrintMenBanPackingList(MenBanPrintInputDto input);
/// <summary>
/// 打印柱护板装箱单
/// </summary>
/// <param name="input"></param>
/// <returns>执行成功返回真</returns>
//Task<ObjectResultDto<ZhuHuBanPrintResultDto>> PrintZhuHuBanPackingList(ZhuHuBanPrintInputDto input);
#endregion
/// <summary>
/// 生产线超时提醒
/// </summary>
/// <param name="input">生产线编号列表</param>
/// <returns>生产线超时情况</returns>
Task<ListResultDto<TimeOutRemindResultDto>> ProductLineTimeoutRemind(TimeOutRemindInputDto input);
//Task<PagedResultDto<ResultBillM110Dto>> GetReplenishPrintListAsync(QueryBillM110Dto input);
}
}

85
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Dtos/CreateUpdateRepeatM110Dto.cs

@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities.Auditing;
namespace WY.NewJit.MsgCheck
{
/// <summary>
/// 涂装重复单据
/// </summary>
[Serializable]
public class CreateUpdateRepeatM110Dto
{
/// <summary>
/// 报文接收ID,对应报文接收表主键
/// </summary>
public Guid MessageFileReceiveID { get; set; }
/// <summary>
/// 流水号#
/// </summary>
public int? SerialNum { get; set; }
/// <summary>
/// 大众顺序号
/// </summary>
public int? HostSN { get; set; }
/// <summary>
/// KNR
/// </summary>
public string KNR { get; set; }
/// <summary>
/// 底牌号#
/// </summary>
public string VIN { get; set; }
/// <summary>
/// 总成ID
/// </summary>
public Guid? AssemblyID { get; set; }
/// <summary>
/// 上线时间
/// </summary>
public DateTime? OnlineTime { get; set; }
/// <summary>
/// 接收时间
/// </summary>
public DateTime? ReceiveTime { get; set; }
/// <summary>
/// 车型代码(取通用字典)
/// </summary>
public string VehicleModelCode { get; set; }
/// <summary>
/// 生产线(派格按生产线分类)
/// </summary>
public virtual string ProductLine { get; set; }
/// <summary>
/// 版本
/// </summary>
public string Version { get; set; }
/// <summary>
/// 单据状态(0 空;1 未匹配;2 已匹配未打印;3 已打印)
/// </summary>
public BillStatusEnum BillStatus { get; set; }
/// <summary>
/// 描述
/// </summary>
public virtual string Description { get; set; }
/// <summary>
/// 涂装重复单据包含的零件列表
/// </summary>
public virtual List<CreateUpdateRepeatM110PartDto> M110RepeatParts { get; set; }
public CreateUpdateRepeatM110Dto()
{ }
}
}

35
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Dtos/CreateUpdateRepeatM110PartDto.cs

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities.Auditing;
namespace WY.NewJit.MsgCheck
{
/// <summary>
/// 涂装重复单据和零件关系表
/// </summary>
[Serializable]
public class CreateUpdateRepeatM110PartDto
{
/// <summary>
/// 客户零件代码
/// </summary>
public string PartCode { get; set; }
/// <summary>
/// 客户零件数量
/// </summary>
public double? PartNum { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
public CreateUpdateRepeatM110PartDto()
{ }
}
}

87
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Dtos/QueryRepeatM110Dto.cs

@ -0,0 +1,87 @@
using System;
using System.Collections.Generic;
using System.Text;
using Volo.Abp.Application.Dtos;
using WY.NewJit.Common;
namespace WY.NewJit.MsgCheck
{
[Serializable]
public class QueryRepeatM110Dto : PagedAndSortedBase
{
/// <summary>
/// 大众顺序号起
/// </summary>
public int? HostSNBegin { get; set; }
/// <summary>
/// 大众顺序号止
/// </summary>
public int? HostSNEnd { get; set; }
/// <summary>
/// KNR起
/// </summary>
public string KNRBegin { get; set; }
/// <summary>
/// KNR止
/// </summary>
public string KNREnd { get; set; }
/// <summary>
/// 底牌号起
/// </summary>
public string VINBegin { get; set; }
/// <summary>
/// 底牌号止
/// </summary>
public string VINEnd { get; set; }
/// <summary>
/// 总成ID
/// </summary>
//public Guid? AssemblyID { get; set; }
/// <summary>
/// 上线时间起
/// </summary>
public DateTime? OnlineTimeBegin { get; set; }
/// <summary>
/// 上线时间止
/// </summary>
public DateTime? OnlineTimeEnd { get; set; }
/// <summary>
/// 车型代码(取通用字典)
/// </summary>
public string VehicleModelCode { get; set; }
/// <summary>
/// 生产线(派格按生产线分类)
/// </summary>
public virtual string ProductLine { get; set; }
/// <summary>
/// 版本
/// </summary>
public string Version { get; set; }
/// <summary>
/// 接收时间起
/// </summary>
public DateTime? ReceiveTimeBegin { get; set; }
/// <summary>
/// 接收时间止
/// </summary>
public DateTime? ReceiveTimeEnd { get; set; }
}
}

115
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Dtos/RepeatM110Dto.cs

@ -0,0 +1,115 @@
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using System;
using System.Collections.Generic;
using System.Text;
using Volo.Abp.Application.Dtos;
namespace WY.NewJit.MsgCheck
{
/// <summary>
/// 零件查询结果DTO
/// </summary>
[ExcelExporter(Name = "M110重复报文", AutoFitAllColumn = true, MaxRowNumberOnASheet = 1000)] //一个Sheet最大允许的行数,设置了之后将输出多个Sheet
[Serializable]
public class RepeatM110Dto: AuditedEntityDto<Guid>
{
/// <summary>
/// 流水号#
/// </summary>
[ExporterHeader(DisplayName = "流水号")]
[ImporterHeader(Name = "流水号")]
public int? SerialNum { get; set; }
/// <summary>
/// 大众顺序号
/// </summary>
[ExporterHeader(DisplayName = "大众顺序号")]
[ImporterHeader(Name = "大众顺序号")]
public int? HostSN { get; set; }
/// <summary>
/// KNR
/// </summary>
[ExporterHeader(DisplayName = "KNR")]
[ImporterHeader(Name = "KNR")]
public string KNR { get; set; }
/// <summary>
/// 底牌号#
/// </summary>
[ExporterHeader(DisplayName = "底牌号")]
[ImporterHeader(Name = "底牌号")]
public string VIN { get; set; }
/// <summary>
/// 总成ID
/// </summary>
[ExporterHeader(DisplayName = "总成ID")]
[ImporterHeader(Name = "总成ID")]
public Guid? AssemblyID { get; set; }
/// <summary>
/// 上线时间
/// </summary>
[ExporterHeader(DisplayName = "上线时间")]
[ImporterHeader(Name = "上线时间")]
public DateTime? OnlineTime { get; set; }
/// <summary>
/// 接收时间
/// </summary>
[ExporterHeader(DisplayName = "接收时间")]
[ImporterHeader(Name = "接收时间")]
public DateTime? ReceiveTime { get; set; }
/// <summary>
/// 车型代码(取通用字典)
/// </summary>
[ExporterHeader(DisplayName = "车型代码")]
[ImporterHeader(Name = "车型代码")]
public string VehicleModelCode { get; set; }
/// <summary>
/// 生产线(派格按生产线分类)
/// </summary>
[ExporterHeader(DisplayName = "生产线")]
[ImporterHeader(Name = "生产线")]
public virtual string ProductLine { get; set; }
/// <summary>
/// 版本
/// </summary>
[ExporterHeader(DisplayName = "版本")]
[ImporterHeader(Name = "版本")]
public string Version { get; set; }
/// <summary>
/// 单据状态(0 空;1 未匹配;2 已匹配未打印;3 已打印)
/// </summary>
[ExporterHeader(DisplayName = "单据状态")]
[ImporterHeader(Name = "单据状态")]
public BillStatusEnum BillStatus { get; set; }
/// <summary>
/// 描述
/// </summary>
[ExporterHeader(DisplayName = "描述")]
[ImporterHeader(Name = "描述")]
public string Description { get; set; }
/// <summary>
/// 涂装重复单据包含的零件列表
/// </summary>
public List<RepeatM110PartDto> M110RepeatParts { get; set; }
/// <summary>
/// 总成名称
/// </summary>
[ExporterHeader(DisplayName = "总成名称")]
[ImporterHeader(Name = "总成名称")]
public string AssemblyName { get; set; }
/// <summary>
/// 车型名称(取通用字典)
/// </summary>
[ExporterHeader(DisplayName = "车型名称")]
[ImporterHeader(Name = "车型名称")]
public string VehicleModelName { get; set; }
}
}

38
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Dtos/RepeatM110PartDto.cs

@ -0,0 +1,38 @@
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using System;
using System.Collections.Generic;
using System.Text;
using Volo.Abp.Application.Dtos;
namespace WY.NewJit.MsgCheck
{
/// <summary>
/// 零件查询结果DTO
/// </summary>
[ExcelExporter(Name = "M110重复报文包含的零件信息", AutoFitAllColumn = true, MaxRowNumberOnASheet = 1000)] //一个Sheet最大允许的行数,设置了之后将输出多个Sheet
[Serializable]
public class RepeatM110PartDto : EntityDto<Guid>
{
/// <summary>
/// 客户零件代码
/// </summary>
[ExporterHeader(DisplayName = "客户零件代码")]
[ImporterHeader(Name = "客户零件代码")]
public string PartCode { get; set; }
/// <summary>
/// 客户零件数量
/// </summary>
[ExporterHeader(DisplayName = "客户零件数量")]
[ImporterHeader(Name = "客户零件数量")]
public double? PartNum { get; set; }
/// <summary>
/// 描述
/// </summary>
[ExporterHeader(DisplayName = "描述")]
[ImporterHeader(Name = "描述")]
public string Description { get; set; }
}
}

58
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/RepeatMessages/M110Repeat/Interfaces/IRepeatM110AppService.cs

@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
namespace WY.NewJit.MsgCheck
{
public interface IRepeatM110AppService
{
#region 接口方法
/// 根据筛选条件获取分页实体列表
/// </summary>
/// <param name="input">输入查询条件</param>
/// <param name="page">输入分页条件</param>
/// <returns>返回符合条件的排序分页列表</returns>
Task<PagedResultDto<RepeatM110Dto>> GetListAsync(QueryRepeatM110Dto input);
/// <summary>
/// 按主键获取唯一实体
/// </summary>
/// <param name="id">主键</param>
/// <returns>实体信息</returns>
Task<ObjectResultDto<RepeatM110Dto>> GetAsync(Guid id);
/// <summary>
/// 添加实体
/// </summary>
/// <param name="input">添加内容</param>
/// <returns>执行成功返回真</returns>
Task<ObjectResultDto<Guid>> CreateAsync(CreateUpdateRepeatM110Dto input);
/// <summary>
/// 删除实体
/// </summary>
/// <param name="id">删除主键</param>
/// <returns>执行成功返回真</returns>
Task<ObjectResultDto> DeleteAsync(string id);
/// <summary>
/// 导出信息
/// </summary>
/// <param name="input">导出查询条件</param>
/// <returns>执行成功返回真</returns>
Task<ObjectResultDto<string>> ExportAsync(QueryRepeatM110Dto input);
/// <summary>
/// 导入信息
/// </summary>
/// <param name="input">导入文件流</param>
/// <returns>执行成功返回真</returns>
Task<ObjectResultDto> ImportAsync(Byte[] input);
#endregion
}
}

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

2
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/RepeatMessages/RepeatM100AppService.cs

@ -110,7 +110,7 @@ with d as
)
select * from
(
select ROW_NUMBER() OVER(order by r.SerialNumStr) as row_number,
select ROW_NUMBER() OVER(order by r.OnlineTime, r.HostSN) as row_number,
r.*, d.DicItemName as VehicleModelName, a.AssemblyName
from FisRepeatM100 r
left join d on r.VehicleModelCode = d.DicItemCode

375
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/RepeatMessages/RepeatM110AppService.cs

@ -0,0 +1,375 @@
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Uow;
using Volo.Abp.Domain.Repositories.Dapper;
using WY.NewJit.EntityFrameworkCore;
using WY.NewJit.Common;
using Shouldly;
using Volo.Abp.BlobStoring;
using Microsoft.AspNetCore.Mvc;
namespace WY.NewJit.MsgCheck
{
/// <summary>
/// M110重复报文应用服务实现
/// </summary>
[Route("api/newjit/repeat-M110")]
[ApiExplorerSettings(GroupName = SwaggerGroupConsts.报文解析及校验)]
public class RepeatM110AppService : ApplicationService, IRepeatM110AppService
{
/// <summary>
/// 仓储
/// </summary>
private readonly IRepository<RepeatM110, Guid> _repeatM110Repository;
private readonly IRepository<RepeatM110Part, Guid> _repeatM110PartRepository;
/// <summary>
/// 日志
/// </summary>
private ILogger<RepeatM110AppService> _logger;
/// <summary>
/// Dapper仓储
/// </summary>
private readonly NewJitDapperRepository _newJitDapperRepository;
/// <summary>
/// BLOB存储
/// </summary>
private readonly IBlobContainer<OurFileContainer> _blobContainer;
/// <summary>
/// 错误信息前缀
/// </summary>
private string _errorMessagePrefix
{
get
{
return System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + ".";
}
}
/// <summary>
/// 构造函数
/// </summary>
public RepeatM110AppService(
IRepository<RepeatM110, Guid> repeatM110Repository,
IRepository<RepeatM110Part, Guid> repeatM110PartRepository,
ILogger<RepeatM110AppService> logger,
NewJitDapperRepository newJitDapperRepository,
IBlobContainer<OurFileContainer> blobContainer
)
{
_repeatM110Repository = repeatM110Repository;
_repeatM110PartRepository = repeatM110PartRepository;
_logger = logger;
_newJitDapperRepository = newJitDapperRepository;
_blobContainer = blobContainer;
}
#region 私有方法
/// <summary>
/// 根据筛选条件获取实体列表
/// </summary>
private async Task<PagedResultDto<RepeatM110Dto>> QueryByConditionAsync(QueryRepeatM110Dto input, PagedAndSortedBase page)
{
PagedResultDto<RepeatM110Dto> ret = new PagedResultDto<RepeatM110Dto>();
string sqlCnt = @"
with d as
(
select * from FisDicItem where DicTypeCode in (select DicTypeCode from FisDicType where DicTypeName = '')
)
select * from
(
select count(*) as cnt
from FisRepeatM110 r
left join d on r.VehicleModelCode = d.DicItemCode
left join FisAssemblyCfgVehicle a on r.AssemblyID = a.Id
where 1=1 {0}
) t
";
string sql = @"
with d as
(
select * from FisDicItem where DicTypeCode in (select DicTypeCode from FisDicType where DicTypeName = '')
)
select * from
(
select ROW_NUMBER() OVER(order by r.OnlineTime, r.HostSN) as row_number,
r.*, d.DicItemName as VehicleModelName, a.AssemblyName
from FisRepeatM110 r
left join d on r.VehicleModelCode = d.DicItemCode
left join FisAssemblyCfgVehicle a on r.AssemblyID = a.Id
where 1=1 {0}
) t where row_number between {1} and {2}
";
string where = "";
if (input.HostSNBegin != null)
{
where += string.Format(" and r.HostSN >= {0}", input.HostSNBegin);
}
if (input.HostSNEnd != null)
{
where += string.Format(" and r.HostSN <= {0}", input.HostSNEnd);
}
if (!string.IsNullOrEmpty(input.KNRBegin))
{
where += string.Format(" and r.KNR >= '{0}'", input.KNRBegin);
}
if (!string.IsNullOrEmpty(input.KNREnd))
{
where += string.Format(" and r.KNR <= '{0}'", input.KNREnd);
}
if (!string.IsNullOrEmpty(input.VINBegin))
{
where += string.Format(" and r.VIN >= '{0}'", input.VINBegin);
}
if (!string.IsNullOrEmpty(input.VINEnd))
{
where += string.Format(" and r.VIN <= '{0}'", input.VINEnd);
}
if (input.OnlineTimeBegin != null)
{
where += string.Format(" and r.OnlineTime >= '{0}'", ((DateTime)input.OnlineTimeBegin).ToString("yyyy-MM-dd HH:mm:ss"));
}
if (input.OnlineTimeEnd != null)
{
where += string.Format(" and r.OnlineTime <= '{0}'", ((DateTime)input.OnlineTimeEnd).ToString("yyyy-MM-dd HH:mm:ss"));
}
if (!string.IsNullOrEmpty(input.VehicleModelCode))
{
where += string.Format(" and r.VehicleModelCode = '{0}'", input.VehicleModelCode);
}
if (input.ProductLine != null)
{
where += string.Format(" and r.ProductLine = '{0}'", input.ProductLine);
}
if (input.Version != null)
{
where += string.Format(" and r.Version like '%{0}%'", input.Version);
}
if (input.ReceiveTimeBegin != null)
{
where += string.Format(" and r.ReceiveTime >= '{0}'", ((DateTime)input.ReceiveTimeBegin).ToString("yyyy-MM-dd HH:mm:ss"));
}
if (input.ReceiveTimeEnd != null)
{
where += string.Format(" and r.ReceiveTime <= '{0}'", ((DateTime)input.ReceiveTimeEnd).ToString("yyyy-MM-dd HH:mm:ss"));
}
sqlCnt = string.Format(sqlCnt, where);
ret.TotalCount = await _newJitDapperRepository.GetSingleBySqlAsync<int>(sqlCnt);
//计算分页
int fromRec = page.SkipCount + 1;
int ToRec = page.SkipCount + page.MaxResultCount;
sql = string.Format(sql, where, fromRec, ToRec);
var lst = await _newJitDapperRepository.GetListBySqlAsync<RepeatM110Dto>(sql);
ret.Items = lst;
return ret;
}
#endregion
#region 公共方法
/// <summary>
/// 根据筛选条件获取分页实体列表
/// </summary>
/// <param name="input">输入查询条件</param>
/// <param name="page">输入分页条件</param>
/// <returns>返回符合条件的排序分页列表</returns>
[HttpGet]
[UnitOfWork(false)]
[Route("list")]
public virtual async Task<PagedResultDto<RepeatM110Dto>> GetListAsync(QueryRepeatM110Dto input)
{
_logger.LogDebug(_errorMessagePrefix + "GetListAsync 进入");
try
{
PagedResultDto<RepeatM110Dto> ret = await QueryByConditionAsync(input, (PagedAndSortedBase)input);
return ret;
}
catch (Exception ex)
{
string errMsg = _errorMessagePrefix + "GetListAsync 执行出错:" + ex.Message;
_logger.LogError(errMsg);
return new PagedResultDto<RepeatM110Dto>(0, new List<RepeatM110Dto>());
}
}
/// <summary>
/// 按主键获取唯一实体
/// </summary>
/// <param name="id">主键</param>
/// <returns>实体信息</returns>
[HttpGet]
[Route("{id}")]//obj/
public virtual async Task<ObjectResultDto<RepeatM110Dto>> GetAsync(Guid id)
{
_logger.LogDebug(_errorMessagePrefix + "GetAsync 进入");
ObjectResultDto<RepeatM110Dto> ret = new ObjectResultDto<RepeatM110Dto>();
try
{
RepeatM110 sourceObj = await _repeatM110Repository.GetAsync(id);
RepeatM110Dto targetObj = ObjectMapper.Map<RepeatM110, RepeatM110Dto>(sourceObj);
ret.Item = targetObj;
return ret;
}
catch (Exception ex)
{
ret.Status = false;
ret.Message = _errorMessagePrefix + "GetAsync 执行出错:" + ex.Message;
_logger.LogError(ret.Message);
return ret;
}
}
/// <summary>
/// 添加实体
/// </summary>
/// <param name="input">添加内容</param>
/// <returns>执行成功返回真</returns>
[HttpPost]
[UnitOfWork]
[Route("")]//create
public virtual async Task<ObjectResultDto<Guid>> CreateAsync(CreateUpdateRepeatM110Dto input)
{
_logger.LogDebug(_errorMessagePrefix + "CreateAsync 进入");
ObjectResultDto<Guid> ret = new ObjectResultDto<Guid>();
try
{
//取重复报文 最大流水号
//int repeatMaxSN = _repeatM110Repository.Max(itm => itm.SerialNum) ?? 0;
RepeatM110 obj = ObjectMapper.Map<CreateUpdateRepeatM110Dto, RepeatM110>(input);
obj.SetSerialNum(ServerHelper.VinToSN(obj.VIN)); //++repeatMaxSN
#region 主子表主键Id赋值
foreach (var item in obj.M110RepeatParts)
{
item.SetId(GuidGenerator.Create());
}
#endregion
RepeatM110 obj2 = await _repeatM110Repository.InsertAsync(obj);
ret.Item = obj2.Id; //返回添加对象的主键
return ret;
}
catch (Exception ex)
{
ret.Status = false;
ret.Message = _errorMessagePrefix + "CreateAsync 执行出错:" + ex.Message;
_logger.LogError(ret.Message);
return ret;
}
}
/// <summary>
/// 删除实体
/// </summary>
/// <param name="id">删除主键</param>
/// <returns>执行成功返回真</returns>
[UnitOfWork]
[HttpDelete]
[Route("{id}")]//delete/
public virtual async Task<ObjectResultDto> DeleteAsync(string id)
{
_logger.LogDebug(_errorMessagePrefix + "DeleteAsync 进入");
ObjectResultDto ret = new ObjectResultDto();
try
{
List<Guid> idLst = ServerHelper.GetGuidListByStr(id);
foreach (Guid item in idLst)
{
RepeatM110 sourceObj = await _repeatM110Repository.GetAsync(item);
if (sourceObj != null)
{
await _repeatM110PartRepository.DeleteManyAsync(sourceObj.M110RepeatParts);
await _repeatM110Repository.DeleteAsync(item);
}
}
return ret;
}
catch (Exception ex)
{
ret.Status = false;
ret.Message = _errorMessagePrefix + "DeleteAsync 执行出错:" + ex.Message;
_logger.LogError(ret.Message);
return ret;
}
}
/// <summary>
/// 导出信息
/// </summary>
/// <param name="input">导出查询条件</param>
/// <returns>执行成功返回真</returns>
[UnitOfWork(false)]
[HttpPost]
[Route("export")]
public virtual async Task<ObjectResultDto<string>> ExportAsync(QueryRepeatM110Dto input)
{
_logger.LogDebug(_errorMessagePrefix + "ExportAsync 进入");
ObjectResultDto<string> ret = new ObjectResultDto<string>();
try
{
input.SkipCount = 0;
input.MaxResultCount = 50000;
PagedResultDto<RepeatM110Dto> query = await QueryByConditionAsync(input, (PagedAndSortedBase)input);
List<RepeatM110Dto> items = query.Items.ToList();
//将实体列表转换成excel文件流
IExporter exporter = new ExcelExporter();
byte[] byteArr = await exporter.ExportAsByteArray<RepeatM110Dto>(items);
byteArr.ShouldNotBeNull();
//将excel文件流保存到服务器端文件系统
string fileName = string.Format("重复报文M110_{0}.xlsx", Guid.NewGuid().ToString());
await _blobContainer.SaveAsync(fileName, byteArr);
ret.Item = fileName;
return ret;
}
catch (Exception ex)
{
ret.Status = false;
ret.Message = _errorMessagePrefix + "ExportAsync 执行出错:" + ex.Message;
_logger.LogError(ret.Message);
return ret;
}
}
/// <summary>
/// 导入信息
/// </summary>
/// <param name="input">导入文件流</param>
/// <returns>执行成功返回真</returns>
[UnitOfWork]
[HttpPost]
[Route("import")]
public virtual async Task<ObjectResultDto> ImportAsync(byte[] input)
{
throw new NotImplementedException("暂不实现所有导入");
}
#endregion
}
}

2
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/RepeatMessages/RepeatR100AppService.cs

@ -110,7 +110,7 @@ with d as
)
select * from
(
select ROW_NUMBER() OVER(order by r.SerialNumStr) as row_number,
select ROW_NUMBER() OVER(order by r.OnlineTime, r.HostSN) as row_number,
r.*, d.DicItemName as VehicleModelName, a.AssemblyName
from FisRepeatR100 r
left join d on r.VehicleModelCode = d.DicItemCode

17
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/NewJitApplicationAutoMapperProfile.cs

@ -75,6 +75,23 @@ namespace WY.NewJit
.ForMember(dest => dest.UnknownAssemblyParts, option => option.MapFrom(src => src.UnknownAssemblyParts)).ReverseMap();
CreateMap<UnknownAssemblyPart, UnknownAssemblyPartDto>().ReverseMap();
#region M110
CreateMap<RepeatM110, RepeatM110Dto>()
.ForMember(dest => dest.M110RepeatParts, option => option.MapFrom(src => src.M110RepeatParts)).ReverseMap();
CreateMap<RepeatM110Part, RepeatM110PartDto>().ReverseMap();
CreateMap<RepeatM110, CreateUpdateRepeatM110Dto>()
.ForMember(dest => dest.M110RepeatParts, option => option.MapFrom(src => src.M110RepeatParts)).ReverseMap();
CreateMap<RepeatM110Part, CreateUpdateRepeatM110PartDto>().ReverseMap();
CreateMap<BillM110, BillM110Dto>()
.ForMember(dest => dest.BillM110Parts, option => option.MapFrom(src => src.BillM110Parts)).ReverseMap();
CreateMap<BillM110Part, BillM110PartDto>().ReverseMap();
CreateMap<BillM110, CreateUpdateBillM110Dto>()
.ForMember(dest => dest.BillM110Parts, option => option.MapFrom(src => src.BillM110Parts)).ReverseMap();
CreateMap<BillM110Part, CreateUpdateBillM110PartDto>().ReverseMap();
#endregion
//未知总成 没加//!!
#endregion

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

@ -1254,6 +1254,231 @@
<param name="knr"></param>
<returns></returns>
</member>
<member name="T:WY.NewJit.MsgCheck.BillM110AppService">
<summary>
M110单据管理应用服务实现
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._billM110Repository">
<summary>
仓储
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._logger">
<summary>
日志
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._newJitDapperRepository">
<summary>
Dapper仓储
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._blobContainer">
<summary>
BLOB存储
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._menBanPackingListRepository">
<summary>
门板装箱单仓储
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._menBanPackingRecRepository">
<summary>
门板装箱单仓储明细
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._zhuHuBanPackingListRepository">
<summary>
柱护板装箱单仓储
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._zhuHuBanPackingRecRepository">
<summary>
柱护板装箱单仓储明细
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._assemblyCfgErpRepository">
<summary>
ERP总成仓储
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._assemblyCfgVehicleRepository">
<summary>
整车总成配置仓库
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._partCfgRepository">
<summary>
零件配置
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._materialExtRepository">
<summary>
派格版本物料库扩展
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._lineSNDomianService">
<summary>
最大右边号的领域方法
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._wmsDapperRepository">
<summary>
库存系统Dapper仓储
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._sequenceDomainService">
<summary>
序列领域服务
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._configuration">
<summary>
配置
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM110AppService._errorMessagePrefix">
<summary>
错误信息前缀
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.BillM110AppService._zhbCacheList">
<summary>
柱护板缓存列表(打印柱护板时用到)
</summary>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.#ctor(Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgCheck.BillM110,System.Guid},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgCheck.BillM110Part,System.Guid},Microsoft.Extensions.Logging.ILogger{WY.NewJit.MsgCheck.BillM110AppService},WY.NewJit.EntityFrameworkCore.NewJitDapperRepository,Volo.Abp.BlobStoring.IBlobContainer{WY.NewJit.Common.OurFileContainer},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.Extends.MenBanPackingList,System.Guid},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.Extends.ZhuHuBanPackingList,System.Guid},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgBaseData.AssemblyCfgErp,System.Guid},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgBaseData.AssemblyCfgVehicle,System.Guid},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgBaseData.PartCfg,System.Guid},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.Extends.PaiGe.MaterialExt,System.Guid},WY.NewJit.EntityFrameworkCore.WMSDapperRepository,Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.Extends.MenBanPackingRec,System.Guid},WY.NewJit.MsgBaseData.LineSNDomianService,Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.Extends.ZhuHuBanPackingRec,System.Guid},WY.NewJit.Commons.SequenceDomainService,Microsoft.Extensions.Configuration.IConfiguration,Volo.Abp.Uow.IUnitOfWorkManager,Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.Extends.PaiGe.WMS.FisTB_BILL},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.Extends.PaiGe.WMS.FisTS_SORT_DETAIL},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.Extends.PaiGe.WMS.FisTB_BILL_HIS},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.Extends.PaiGe.WMS.FisTS_SORT_DETAIL_HIS},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgBaseData.PrintTemplateConfiguration,System.Guid},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgCheck.ZHBPrintStatus,System.Guid},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgBaseData.DicItem})">
<summary>
构造函数
</summary>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.QueryZHBByConditionAsync(WY.NewJit.MsgCheck.QueryBillM110Dto,WY.NewJit.Common.PagedAndSortedBase)">
<summary>
查询柱护板
</summary>
<param name="input"></param>
<param name="page"></param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.GetMenBanLastPrintNum(WY.NewJit.Extends.MenBanPrintInputDto)">
<summary>
从M110中取当前产线、已经打印的最大大众顺序号
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.QueryByConditionAsync(WY.NewJit.MsgCheck.QueryBillM110Dto,WY.NewJit.Common.PagedAndSortedBase)">
<summary>
根据筛选条件获取实体列表
</summary>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.GetMBReportDetailList(WY.NewJit.Extends.MenBanPrintInputDto,System.Boolean)">
<summary>
根据条件取用于打印的门板单据列表
</summary>
<param name="input"></param>
<param name="isFillBreakNum">断号时是否填充</param>
<param name="isZhuHuBan">是否柱护板装箱单调用</param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.DoBreakNumOperation(System.Int32,System.Int32,System.Collections.Generic.List{WY.NewJit.MsgCheck.BillM110})">
<summary>
补充断号数据
</summary>
<param name="beginHostSN"></param>
<param name="endHostSN"></param>
<param name="billLst"></param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.DoMBPrint(WY.NewJit.Extends.MenBanPrintInputDto,System.Int32,System.Double,System.Collections.Generic.List{WY.NewJit.MsgCheck.BillM110},System.String,System.String[])">
<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>
<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>
根据筛选条件获取分页实体列表
</summary>
<param name="input">输入查询条件</param>
<param name="page">输入分页条件</param>
<returns>返回符合条件的排序分页列表</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.GetAsync(System.Guid)">
<summary>
按主键获取唯一实体
</summary>
<param name="id">主键</param>
<returns>实体信息</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.CreateAsync(WY.NewJit.MsgCheck.CreateUpdateBillM110Dto)">
<summary>
添加实体
</summary>
<param name="input">添加内容</param>
<returns>执行成功返回真</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.UpdateAsync(System.Guid,WY.NewJit.MsgCheck.CreateUpdateBillM110Dto)">
<summary>
修改实体
</summary>
<param name="id">更新主键</param>
<param name="input">修改内容</param>
<returns>执行成功返回真</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.DeleteAsync(System.String)">
<summary>
删除实体
</summary>
<param name="id">删除主键</param>
<returns>执行成功返回真</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.ExportAsync(WY.NewJit.MsgCheck.QueryBillM110Dto)">
<summary>
导出信息
</summary>
<param name="input">导出查询条件</param>
<returns>执行成功返回真</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.ImportAsync(System.Byte[])">
<summary>
导入信息
</summary>
<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单据管理应用服务实现
@ -1501,6 +1726,89 @@
<param name="input">导入文件流</param>
<returns>执行成功返回真</returns>
</member>
<member name="T:WY.NewJit.MsgCheck.RepeatM110AppService">
<summary>
M110重复报文应用服务实现
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.RepeatM110AppService._repeatM110Repository">
<summary>
仓储
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.RepeatM110AppService._logger">
<summary>
日志
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.RepeatM110AppService._newJitDapperRepository">
<summary>
Dapper仓储
</summary>
</member>
<member name="F:WY.NewJit.MsgCheck.RepeatM110AppService._blobContainer">
<summary>
BLOB存储
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.RepeatM110AppService._errorMessagePrefix">
<summary>
错误信息前缀
</summary>
</member>
<member name="M:WY.NewJit.MsgCheck.RepeatM110AppService.#ctor(Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgCheck.RepeatM110,System.Guid},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgCheck.RepeatM110Part,System.Guid},Microsoft.Extensions.Logging.ILogger{WY.NewJit.MsgCheck.RepeatM110AppService},WY.NewJit.EntityFrameworkCore.NewJitDapperRepository,Volo.Abp.BlobStoring.IBlobContainer{WY.NewJit.Common.OurFileContainer})">
<summary>
构造函数
</summary>
</member>
<member name="M:WY.NewJit.MsgCheck.RepeatM110AppService.QueryByConditionAsync(WY.NewJit.MsgCheck.QueryRepeatM110Dto,WY.NewJit.Common.PagedAndSortedBase)">
<summary>
根据筛选条件获取实体列表
</summary>
</member>
<member name="M:WY.NewJit.MsgCheck.RepeatM110AppService.GetListAsync(WY.NewJit.MsgCheck.QueryRepeatM110Dto)">
<summary>
根据筛选条件获取分页实体列表
</summary>
<param name="input">输入查询条件</param>
<param name="page">输入分页条件</param>
<returns>返回符合条件的排序分页列表</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.RepeatM110AppService.GetAsync(System.Guid)">
<summary>
按主键获取唯一实体
</summary>
<param name="id">主键</param>
<returns>实体信息</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.RepeatM110AppService.CreateAsync(WY.NewJit.MsgCheck.CreateUpdateRepeatM110Dto)">
<summary>
添加实体
</summary>
<param name="input">添加内容</param>
<returns>执行成功返回真</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.RepeatM110AppService.DeleteAsync(System.String)">
<summary>
删除实体
</summary>
<param name="id">删除主键</param>
<returns>执行成功返回真</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.RepeatM110AppService.ExportAsync(WY.NewJit.MsgCheck.QueryRepeatM110Dto)">
<summary>
导出信息
</summary>
<param name="input">导出查询条件</param>
<returns>执行成功返回真</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.RepeatM110AppService.ImportAsync(System.Byte[])">
<summary>
导入信息
</summary>
<param name="input">导入文件流</param>
<returns>执行成功返回真</returns>
</member>
<member name="T:WY.NewJit.MsgCheck.RepeatR100AppService">
<summary>
R100重复报文应用服务实现

187
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Entitys/BillM110.cs

@ -1,4 +1,5 @@
using System;
using JetBrains.Annotations;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
@ -16,36 +17,34 @@ namespace WY.NewJit.MsgCheck
/// <summary>
/// 报文接收ID,对应报文接收表主键
/// </summary>
public virtual Guid MessageFileReceiveID { get; protected set; }
public virtual Guid? MessageFileReceiveID { get; protected set; }
/// <summary>
/// 流水号#
/// </summary>
public virtual int? SerialNum { get; protected set; }
public virtual int? SerialNum { get; set; }
/// <summary>
/// 大众顺序号
/// </summary>
public virtual int? HostSN { get; protected set; }
public virtual int? HostSN { get; set; }
/// <summary>
/// KNR
/// KNR订单号
/// </summary>
public virtual string KNR { get; protected set; }
public virtual string KNR { get; set; }
/// <summary>
/// 底牌号#
/// </summary>
public virtual string VIN { get; protected set; }
public virtual string VIN { get; set; }
/// <summary>
/// 总成ID
/// </summary>
public virtual Guid? AssemblyID { get; protected set; }
public virtual Guid? AssemblyID { get; set; }
/// <summary>
/// 上线时间
/// </summary>
public virtual DateTime? OnlineTime { get; protected set; }
public virtual DateTime? OnlineTime { get; set; }
/// <summary>
/// 车型代码(取通用字典)
@ -78,21 +77,79 @@ namespace WY.NewJit.MsgCheck
public virtual string Description { get; set; }
/// <summary>
/// 总装单据包含的零件列表
/// 打印时间
/// </summary>
public virtual DateTime? PrintTime { get; set; }
/// <summary>
/// 打印单号【派格版本:不为空时表示已打印柱护板】
/// </summary>
public virtual string PrintBillNum { get; set; }
/// <summary>
/// 打印时间2【派格版本:柱护板打印时间】
/// </summary>
public virtual DateTime? PrintTime2 { get; set; }
/// <summary>
/// 字符类型流水号
/// </summary>
public virtual string SerialNumStr { get; set; }
/// <summary>
/// 涂装单据包含的零件列表
/// </summary>
public virtual List<BillM110Part> BillM110Parts { get; protected set; }
protected BillM110()
/// <summary>
/// 手工操作类型:0 none,1 手工添加,2 手工修改
/// </summary>
public virtual ManualOperationTypeEnum OperationType { get; protected set; }
/// <summary>
/// 手工操作员
/// </summary>
public virtual string Operator { get; protected set; }
/// <summary>
/// 手工操作日期
/// </summary>
public virtual DateTime? OperationTime { get; protected set; }
/// <summary>
/// 不可打印
/// </summary>
public virtual bool? CanNotPrint { get; set; } = false;
/// <summary>
/// 为1时需要补打:正常打印门板时,将解析的单据设置为1
/// </summary>
public virtual int? NeedReplenishPrint { get; set; }
public virtual int? HostSN2 { get; set; }
/// <summary>
/// 通过零件切换实现总成匹配时,设置为真
/// </summary>
public virtual bool? IsPartSwitch { get; set; }
public BillM110()
{
//此构造函数是提供给ORM用来从数据库中获取实体.
//无需初始化子集合
//因为它会被来自数据库的值覆盖.可能不适用于私有构造函数.
}
public BillM110(Guid id, Guid messageFileReceiveID, int? serialNum, int? hostSN, string kNR, string vIN, Guid? assemblyID, DateTime? onlineTime, string vehicleModelCode, string version, DateTime? receiveTime, BillStatusEnum billStatus)
public BillM110(Guid id, Guid? messageFileReceiveID, int? serialNum, string serialNumStr, int? hostSN, string kNR, string vIN, Guid? assemblyID, DateTime? onlineTime, string vehicleModelCode, string version, DateTime? receiveTime, BillStatusEnum billStatus, ManualOperationTypeEnum operationType = ManualOperationTypeEnum.None, string @operator = null, DateTime? operationTime = null)
: base(id)
{
MessageFileReceiveID = messageFileReceiveID;
SerialNum = serialNum;
SerialNumStr = serialNumStr;
HostSN = hostSN;
KNR = kNR;
VIN = vIN;
@ -103,7 +160,109 @@ namespace WY.NewJit.MsgCheck
ReceiveTime = receiveTime;
BillStatus = billStatus;
BillM110Parts = new List<BillM110Part>();
OperationType = operationType;
Operator = @operator;
OperationTime = operationTime;
}
public virtual void AddChildObj(Guid id, [NotNull] string partCode, double? partNum, string description = null)
{
BillM110Parts.Add(new BillM110Part(id, partCode, partNum, description));
}
public virtual void AddChildObj(Guid id, [NotNull] string partCode, double? partNum, string description, string partType, string partType2, string partType3)
{
BillM110Parts.Add(new BillM110Part(id, partCode, partNum, description, partType, partType2, partType3));
}
public virtual void SetSerialNum(int serialNum)
{
this.SerialNum = serialNum;
}
public virtual void SetAssemblyID(Guid? assemblyId)
{
this.AssemblyID = assemblyId;
}
public virtual void SetBillStatus(BillStatusEnum billStatus)
{
this.BillStatus = billStatus;
}
public virtual void SetZHBBillStatus(ZHBBillStatusEnum zhbBillStatus)
{
if (zhbBillStatus == ZHBBillStatusEnum.Print)
{
this.PrintBillNum = "柱护板已打印";
}
else if (zhbBillStatus == ZHBBillStatusEnum.NotPrint)
{
this.PrintBillNum = null;
}
else
{
this.PrintBillNum = null;
}
}
public virtual void SetId(Guid id)
{
this.Id = id;
}
public virtual void SetVehicleModelCode(string vehicleModelCode)
{
this.VehicleModelCode = vehicleModelCode;
}
public virtual void SetProductLine(string productLine)
{
this.ProductLine = productLine;
}
public virtual void SetSerialNumStr(string snStr)
{
this.SerialNumStr = snStr;
}
//public virtual void SetSerialNumStr(DateTime? onlineTime, int? hostSN)
//{
// if (hostSN == null)
// {
// throw new Exception("SetSerialNumStr大众顺序号不能为空:" + this.VIN);
// }
// if (onlineTime == null)
// {
// throw new Exception("SetSerialNumStr上线时间不能为空:" + this.VIN);
// }
// this.SerialNumStr = ((DateTime)onlineTime).ToString("yyyyMMddHHmm") + hostSN.ToString().PadLeft(5, '0');
//}
public static BillM110 Clone(BillM110 soureObj)
{
BillM110 targetObj = new BillM110();
targetObj.MessageFileReceiveID = soureObj.MessageFileReceiveID;
targetObj.SerialNum = soureObj.SerialNum;
targetObj.SerialNumStr = soureObj.SerialNumStr;
targetObj.HostSN = soureObj.HostSN;
targetObj.KNR = soureObj.KNR;
targetObj.VIN = soureObj.VIN;
targetObj.AssemblyID = soureObj.AssemblyID;
targetObj.OnlineTime = soureObj.OnlineTime;
targetObj.VehicleModelCode = soureObj.VehicleModelCode;
targetObj.Version = soureObj.Version;
targetObj.ReceiveTime = soureObj.ReceiveTime;
targetObj.BillStatus = soureObj.BillStatus;
targetObj.BillM110Parts = new List<BillM110Part>();
targetObj.OperationType = soureObj.OperationType;
targetObj.Operator = soureObj.Operator;
targetObj.OperationTime = soureObj.OperationTime;
targetObj.CreationTime = soureObj.CreationTime;
return targetObj;
}
}
}

49
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Entitys/BillM110Part.cs

@ -1,4 +1,5 @@
using System;
using JetBrains.Annotations;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
@ -9,7 +10,7 @@ using Volo.Abp.Domain.Entities.Auditing;
namespace WY.NewJit.MsgCheck
{
/// <summary>
/// 装单据和零件关系表
/// 装单据和零件关系表
/// </summary>
public class BillM110Part : AuditedEntity<Guid>
{
@ -26,7 +27,24 @@ namespace WY.NewJit.MsgCheck
/// <summary>
/// 描述
/// </summary>
public virtual string Description { get; protected set; }
public virtual 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; }
protected BillM110Part()
{
//此构造函数是提供给ORM用来从数据库中获取实体.
@ -34,13 +52,36 @@ namespace WY.NewJit.MsgCheck
//因为它会被来自数据库的值覆盖.可能不适用于私有构造函数.
}
public BillM110Part(Guid id, string partCode, double? partNum, string description)
public BillM110Part(Guid id)
: base(id)
{
}
public BillM110Part(Guid id, [NotNull] string partCode, double? partNum, string description = null)
: base(id)
{
PartCode = partCode;
PartNum = partNum;
Description = description;
}
public BillM110Part(Guid id, [NotNull] string partCode, double? partNum, string description, string partType, string partType2, string partType3)
: base(id)
{
PartCode = partCode;
PartNum = partNum;
Description = description;
this.PartType = partType;
this.PartType2 = partType2;
this.PartType3 = partType3;
}
public virtual void SetId(Guid id)
{
this.Id = id;
}
}
}

40
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Entitys/RepeatM110.cs

@ -9,14 +9,19 @@ using Volo.Abp.Domain.Entities.Auditing;
namespace WY.NewJit.MsgCheck
{
/// <summary>
/// 装重复单据
/// 装重复单据
/// </summary>
public class RepeatM110 : AuditedAggregateRoot<Guid>
{
/// <summary>
/// 报文接收ID,对应报文接收表主键
/// </summary>
public virtual Guid MessageFileReceiveID { get; protected set; }
public virtual Guid? MessageFileReceiveID { get; protected set; }
/// <summary>
/// 流水号#
/// </summary>
public virtual int? SerialNum { get; protected set; }
/// <summary>
/// 大众顺序号
@ -31,7 +36,10 @@ namespace WY.NewJit.MsgCheck
/// 底牌号#
/// </summary>
public virtual string VIN { get; protected set; }
/// <summary>
/// 总成ID
/// </summary>
public virtual Guid? AssemblyID { get; protected set; }
/// <summary>
/// 上线时间
/// </summary>
@ -66,9 +74,10 @@ namespace WY.NewJit.MsgCheck
public virtual string Description { get; set; }
/// <summary>
/// 装重复单据包含的零件列表
/// 装重复单据包含的零件列表
/// </summary>
public List<RepeatM110Part> M110RepeatParts { get; protected set; }
public virtual List<RepeatM110Part> M110RepeatParts { get; protected set; }
protected RepeatM110()
{
//此构造函数是提供给ORM用来从数据库中获取实体.
@ -76,18 +85,37 @@ namespace WY.NewJit.MsgCheck
//因为它会被来自数据库的值覆盖.可能不适用于私有构造函数.
}
public RepeatM110(Guid id, Guid messageFileReceiveID, int? hostSN, string kNR, string vIN, DateTime? onlineTime, DateTime? receiveTime, string vehicleModelCode, string version)
protected RepeatM110(Guid id)
: base(id)
{ }
public RepeatM110(Guid id, Guid? messageFileReceiveID, int? serialNum, int? hostSN, string kNR, string vIN, Guid? assemblyID, DateTime? onlineTime, DateTime? receiveTime, string vehicleModelCode, string productLine, string version, BillStatusEnum billStatus)
: base(id)
{
MessageFileReceiveID = messageFileReceiveID;
SerialNum = serialNum;
HostSN = hostSN;
KNR = kNR;
VIN = vIN;
AssemblyID = assemblyID;
OnlineTime = onlineTime;
ReceiveTime = receiveTime;
VehicleModelCode = vehicleModelCode;
ProductLine = productLine;
Version = version;
BillStatus = billStatus;
M110RepeatParts = new List<RepeatM110Part>();
}
public virtual void SetSerialNum(int serialNum)
{
this.SerialNum = serialNum;
}
public virtual void AddChildObj(Guid id, string partCode, double? partNum, string description)
{
M110RepeatParts.Add(new RepeatM110Part(id, partCode, partNum, description));
}
}
}

12
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Entitys/RepeatM110Part.cs

@ -8,7 +8,7 @@ using Volo.Abp.Domain.Entities.Auditing;
namespace WY.NewJit.MsgCheck
{
/// <summary>
/// 装重复单据和零件关系表
/// 装重复单据和零件关系表
/// </summary>
public class RepeatM110Part : AuditedEntity<Guid>
{
@ -26,6 +26,7 @@ namespace WY.NewJit.MsgCheck
/// 描述
/// </summary>
public virtual string Description { get; protected set; }
protected RepeatM110Part()
{
//此构造函数是提供给ORM用来从数据库中获取实体.
@ -33,6 +34,10 @@ namespace WY.NewJit.MsgCheck
//因为它会被来自数据库的值覆盖.可能不适用于私有构造函数.
}
public RepeatM110Part(Guid id)
: base(id)
{ }
public RepeatM110Part(Guid id, string partCode, double? partNum, string description)
: base(id)
{
@ -40,5 +45,10 @@ namespace WY.NewJit.MsgCheck
PartNum = partNum;
Description = description;
}
public virtual void SetId(Guid id)
{
this.Id = id;
}
}
}

49
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.EntityFrameworkCore/EntityFrameworkCore/NewJitDbContextModelCreatingExtensions.cs

@ -212,21 +212,43 @@ namespace WY.NewJit.EntityFrameworkCore
});
#region M110
builder.Entity<BillM110>(b =>
{
b.ToTable(NewJitConsts.DbTablePrefix + nameof(BillM110)); //将Book实体映射到数据库表XXXBooks
b.ConfigureByConvention();//配置/映射继承的属性,应始终对你所有的实体使用它
b.Property(itm => itm.KNR).HasColumnType("varchar").HasMaxLength(50);
//b.HasIndex(itm => itm.KNR).HasDatabaseName("IX_BillM110_KNR");
b.Property(itm => itm.VIN).HasColumnType("varchar").HasMaxLength(50);
b.HasIndex(itm => itm.VIN).HasDatabaseName("IX_BillM110_VIN3");
//b.HasIndex(itm => itm.VIN).HasDatabaseName("IX_BillM110_VIN2");
b.Property(itm => itm.ProductLine).HasColumnType("varchar").HasMaxLength(50);
//b.HasIndex(itm => itm.ProductLine).HasDatabaseName("IX_BillM110_ProductLine2");
//b.HasIndex(itm => itm.SerialNum).HasDatabaseName("IX_BillM110_SerialNum");
b.Property(itm => itm.SerialNumStr).HasColumnType("varchar").HasMaxLength(50);
//b.HasIndex(itm => itm.SerialNumStr).HasDatabaseName("IX_BillM110_SerialNumStr2");
//b.HasIndex(itm => itm.HostSN).HasDatabaseName("IX_BillM110_HostSN2");
b.Property(itm => itm.Version).HasColumnType("varchar").HasMaxLength(50);
b.Property(itm => itm.VehicleModelCode).HasColumnType("varchar").HasMaxLength(50);
});
builder.Entity<BillM110Part>(b =>
{
b.ToTable(NewJitConsts.DbTablePrefix + nameof(BillM110Part)); //将Book实体映射到数据库表XXXBooks
b.ConfigureByConvention();//配置/映射继承的属性,应始终对你所有的实体使用它
b.Property(itm => itm.PartCode).HasColumnType("varchar").HasMaxLength(50);
b.HasIndex(itm => itm.PartCode).HasDatabaseName("IX_BillM110Part_PartCode3");
//b.HasIndex(itm => itm.PartCode).HasDatabaseName("IX_BillM110Part_PartCode2");
b.Property(itm => itm.PartType).HasColumnType("varchar").HasMaxLength(50);
b.Property(itm => itm.PartType2).HasColumnType("varchar").HasMaxLength(50);
b.Property(itm => itm.PartType3).HasColumnType("varchar").HasMaxLength(50);
});
#endregion
builder.Entity<BillR100>(b =>
{
b.ToTable(NewJitConsts.DbTablePrefix + nameof(BillR100)); //将Book实体映射到数据库表XXXBooks
@ -286,16 +308,39 @@ namespace WY.NewJit.EntityFrameworkCore
b.HasIndex(itm => itm.PartCode).HasDatabaseName("IX_RepeatM100Part_PartCode");
});
#region RepeatM110
builder.Entity<RepeatM110>(b =>
{
b.ToTable(NewJitConsts.DbTablePrefix + nameof(RepeatM110)); //将Book实体映射到数据库表XXXBooks
b.ConfigureByConvention();//配置/映射继承的属性,应始终对你所有的实体使用它
b.Property(itm => itm.KNR).HasColumnType("varchar").HasMaxLength(50);
//b.HasIndex(itm => itm.KNR).HasDatabaseName("IX_RepeatM110_KNR");
b.Property(itm => itm.VIN).HasColumnType("varchar").HasMaxLength(50);
//b.HasIndex(itm => itm.VIN).HasDatabaseName("IX_RepeatM110_VIN");
b.Property(itm => itm.ProductLine).HasColumnType("varchar").HasMaxLength(50);
//b.HasIndex(itm => itm.ProductLine).HasDatabaseName("IX_RepeatM110_ProductLine");
//b.HasIndex(itm => itm.HostSN).HasDatabaseName("IX_RepeatM110_HostSN");
b.Property(itm => itm.Version).HasColumnType("varchar").HasMaxLength(50);
b.Property(itm => itm.VehicleModelCode).HasColumnType("varchar").HasMaxLength(50);
});
builder.Entity<RepeatM110Part>(b =>
{
b.ToTable(NewJitConsts.DbTablePrefix + nameof(RepeatM110Part)); //将Book实体映射到数据库表XXXBooks
b.ConfigureByConvention();//配置/映射继承的属性,应始终对你所有的实体使用它
b.Property(itm => itm.PartCode).HasColumnType("varchar").HasMaxLength(50);
//b.HasIndex(itm => itm.PartCode).HasDatabaseName("IX_RepeatM110Part_PartCode");
});
#endregion
builder.Entity<RepeatR100>(b =>
{
b.ToTable(NewJitConsts.DbTablePrefix + nameof(RepeatR100)); //将Book实体映射到数据库表XXXBooks

4
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleApp/Messages/MsgTransmissionService.cs

@ -864,8 +864,8 @@ namespace WY.NewJit.Job.ConsoleApp.Messages
throw new Exception(errorMsg);
}
//单据配置校验:R100、M100
string billType = locItems[2];
if (billType != "R100" && billType != "M100")
string billType = locItems[2]?.Trim();
if (billType != "R100" && billType != "M100" && billType != "M110")
{
ret = $"报文类别错误:{billType}-{fileName}";
}

Loading…
Cancel
Save