赵新宇 2 weeks ago
parent
commit
44ae42debf
  1. 130
      API/TaskManager.Entity/Data/SUPPLIER_EMPLOYEE_DT.cs
  2. 125
      API/TaskManager.Entity/Data/SUPPLIER_INFO_DT.cs
  3. 115
      API/TaskManager.Entity/Data/SUPPLIER_PRO_ATTACHMENT_DATA_DT.cs
  4. 192
      API/TaskManager.Entity/Data/SUPPLIER_PRO_PROCESS_EQUIPMENT_DT.cs
  5. 21
      API/TaskManager.Entity/Entity.cs
  6. 251
      API/TaskManager.EntityFramework/JobDbContext.cs
  7. 22
      API/Wood.Service/Controllers/NormalBaseController.cs
  8. 64
      API/Wood.Service/Datas/SupplierEmployeeDtService.cs
  9. 64
      API/Wood.Service/Datas/SupplierInfoDtService.cs
  10. 65
      API/Wood.Service/Datas/SupplierProAttachmentDataDtService.cs
  11. 65
      API/Wood.Service/Datas/SupplierProProcessEquipmentDtService.cs

130
API/TaskManager.Entity/Data/SUPPLIER_EMPLOYEE_DT.cs

@ -0,0 +1,130 @@
using Magicodes.ExporterAndImporter.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TaskManager.Entity
{
/// <summary>
/// 人员资质信息
/// </summary>
public class SUPPLIER_EMPLOYEE_DT : BaseEntity_NoTask
{
/// <summary>
/// 供应商代码
/// </summary>
[ExporterHeader(DisplayName = "供应商代码")]
[ImporterHeader(Name = "供应商代码")]
public string SupplierCode { get; set; }
/// <summary>
/// 供应商名称
/// </summary>
[ExporterHeader(DisplayName = "供应商名称")]
[ImporterHeader(Name = "供应商名称")]
public string SupplierName { get; set; }
/// <summary>
/// 工厂代码
/// </summary>
[ExporterHeader(DisplayName = "工厂代码")]
[ImporterHeader(Name = "工厂代码")]
public string PlantId { get; set; }
/// <summary>
/// 工厂名称
/// </summary>
[ExporterHeader(DisplayName = "工厂名称")]
[ImporterHeader(Name = "工厂名称")]
public string PlantName { get; set; }
/// <summary>
/// 车间代码
/// </summary>
[ExporterHeader(DisplayName = "车间代码")]
[ImporterHeader(Name = "车间代码")]
public string WorkshopId { get; set; }
/// <summary>
/// 车间名称
/// </summary>
[ExporterHeader(DisplayName = "车间名称")]
[ImporterHeader(Name = "车间名称")]
public string WorkshopName { get; set; }
/// <summary>
/// 产线代码
/// </summary>
[ExporterHeader(DisplayName = "产线代码")]
[ImporterHeader(Name = "产线代码")]
public string ProductionLineId { get; set; }
/// <summary>
/// 产线名称
/// </summary>
[ExporterHeader(DisplayName = "产线名称")]
[ImporterHeader(Name = "产线名称")]
public string ProductionLineName { get; set; }
/// <summary>
/// 工位代码
/// </summary>
[ExporterHeader(DisplayName = "工位代码")]
[ImporterHeader(Name = "工位代码")]
public string StationId { get; set; }
/// <summary>
/// 工位名称
/// </summary>
[ExporterHeader(DisplayName = "工位名称")]
[ImporterHeader(Name = "工位名称")]
public string StationName { get; set; }
/// <summary>
/// 工位人员账号
/// </summary>
[ExporterHeader(DisplayName = "工位人员账号")]
[ImporterHeader(Name = "工位人员账号")]
public string OperatorId { get; set; }
/// <summary>
/// 工位人员姓名
/// </summary>
[ExporterHeader(DisplayName = "工位人员姓名")]
[ImporterHeader(Name = "工位人员姓名")]
public string OperatorName { get; set; }
/// <summary>
/// 是否有资质(Y,N)
/// </summary>
[ExporterHeader(DisplayName = "是否有资质(Y,N)")]
[ImporterHeader(Name = "是否有资质(Y,N)")]
public string HaveQuantity { get; set; }
/// <summary>
/// 供应商修改时间,格式(yyyy-MM-ddHH:mm:ss)
/// </summary>
[ExporterHeader(DisplayName = "供应商修改时间")]
[ImporterHeader(Name = "供应商修改时间")]
public string DataUpdateTime { get; set; }
/// <summary>
/// 岗位代码
/// </summary>
[ExporterHeader(DisplayName = "岗位代码")]
[ImporterHeader(Name = "岗位代码")]
public string PositionId { get; set; }
/// <summary>
/// 岗位名称
/// </summary>
[ExporterHeader(DisplayName = "岗位名称")]
[ImporterHeader(Name = "岗位名称")]
public string PositionName { get; set; }
/// <summary>
/// 资质等级(Level_4,Level_3,Level_2,Level_1)
/// </summary>
[ExporterHeader(DisplayName = "资质等级")]
[ImporterHeader(Name = "资质等级")]
public string QualificationLevel { get; set; }
/// <summary>
/// 资质获取时间
/// </summary>
[ExporterHeader(DisplayName = "资质获取时间")]
[ImporterHeader(Name = "资质获取时间")]
public string CheckInTime { get; set; }
/// <summary>
/// 资质失去时间
/// </summary>
[ExporterHeader(DisplayName = "资质失去时间")]
[ImporterHeader(Name = "资质失去时间")]
public string CheckOutTime { get; set; }
}
}

125
API/TaskManager.Entity/Data/SUPPLIER_INFO_DT.cs

@ -0,0 +1,125 @@
using Magicodes.ExporterAndImporter.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TaskManager.Entity
{
/// <summary>
/// 供应商基础信息
/// </summary>
public class SUPPLIER_INFO_DT : BaseEntity_NoTask
{
/// <summary>
/// 供应商代码
/// </summary>
[ExporterHeader(DisplayName = "供应商代码")]
[ImporterHeader(Name = "供应商代码")]
public string SupplierCode { get; set; }
/// <summary>
/// 供应商名称
/// </summary>
[ExporterHeader(DisplayName = "供应商名称")]
[ImporterHeader(Name = "供应商名称")]
public string SupplierName { get; set; }
/// <summary>
/// 工厂代码
/// </summary>
[ExporterHeader(DisplayName = "工厂代码")]
[ImporterHeader(Name = "工厂代码")]
public string PlantId { get; set; }
/// <summary>
/// 工厂名称
/// </summary>
[ExporterHeader(DisplayName = "工厂名称")]
[ImporterHeader(Name = "工厂名称")]
public string PlantName { get; set; }
/// <summary>
/// 车间代码
/// </summary>
[ExporterHeader(DisplayName = "车间代码")]
[ImporterHeader(Name = "车间代码")]
public string WorkshopId { get; set; }
/// <summary>
/// 车间名称
/// </summary>
[ExporterHeader(DisplayName = "车间名称")]
[ImporterHeader(Name = "车间名称")]
public string WorkshopName { get; set; }
/// <summary>
/// 产线代码
/// </summary>
[ExporterHeader(DisplayName = "产线代码")]
[ImporterHeader(Name = "产线代码")]
public string ProductionLineId { get; set; }
/// <summary>
/// 产线名称
/// </summary>
[ExporterHeader(DisplayName = "产线名称")]
[ImporterHeader(Name = "产线名称")]
public string ProductionLineName { get; set; }
/// <summary>
/// 工位代码
/// </summary>
[ExporterHeader(DisplayName = "工位代码")]
[ImporterHeader(Name = "工位代码")]
public string StationId { get; set; }
/// <summary>
/// 工位名称
/// </summary>
[ExporterHeader(DisplayName = "工位名称")]
[ImporterHeader(Name = "工位名称")]
public string StationName { get; set; }
/// <summary>
/// 是否关键工位(Y/N)
/// </summary>
[ExporterHeader(DisplayName = "是否关键工位(Y/N)")]
[ImporterHeader(Name = "是否关键工位(Y/N)")]
public string KeyStation { get; set; }
/// <summary>
/// 供应商修改时间,格式(yyyy-MM-ddHH:mm:ss)
/// </summary>
[ExporterHeader(DisplayName = "供应商修改时间")]
[ImporterHeader(Name = "供应商修改时间")]
public string DataUpdateTime { get; set; }
/// <summary>
/// 产线顺序
/// </summary>
[ExporterHeader(DisplayName = "产线顺序")]
[ImporterHeader(Name = "产线顺序")]
public decimal ProductionLineOrder { get; set; }
/// <summary>
/// 工位顺序
/// </summary>
[ExporterHeader(DisplayName = "工位顺序")]
[ImporterHeader(Name = "工位顺序")]
public decimal StationOrder { get; set; }
/// <summary>
/// 供应商总成零件号
/// </summary>
[ExporterHeader(DisplayName = "供应商总成零件号")]
[ImporterHeader(Name = "供应商总成零件号")]
public string VendorProductNo { get; set; }
/// <summary>
/// 供应商总成零件名称
/// </summary>
[ExporterHeader(DisplayName = "供应商总成零件名称")]
[ImporterHeader(Name = "供应商总成零件名称")]
public string VendorProductName { get; set; }
/// <summary>
/// 奇瑞零件号
/// </summary>
[ExporterHeader(DisplayName = "奇瑞零件号")]
[ImporterHeader(Name = "奇瑞零件号")]
public string CheryProductNo { get; set; }
/// <summary>
/// 奇瑞零件名称
/// </summary>
[ExporterHeader(DisplayName = "奇瑞零件名称")]
[ImporterHeader(Name = "奇瑞零件名称")]
public string CheryProductName { get; set; }
}
}

115
API/TaskManager.Entity/Data/SUPPLIER_PRO_ATTACHMENT_DATA_DT.cs

@ -0,0 +1,115 @@
using Magicodes.ExporterAndImporter.Core;
namespace TaskManager.Entity.Entitys
{
/// <summary>
/// 附件类数据
/// </summary>
public class SUPPLIER_PRO_ATTACHMENT_DATA_DT : BaseEntity_NoTask
{
/// <summary>
/// 供应商代码
/// </summary>
[ExporterHeader(DisplayName = "供应商代码")]
[ImporterHeader(Name = "供应商代码")]
public string SupplierCode { get; set; }
/// <summary>
/// 供应商名称
/// </summary>
[ExporterHeader(DisplayName = "供应商名称")]
[ImporterHeader(Name = "供应商名称")]
public string SupplierName { get; set; }
/// <summary>
/// 数据类型(1产前管理;2人员资质;3监控视频)
/// </summary>
[ExporterHeader(DisplayName = "数据类型")]
[ImporterHeader(Name = "数据类型")]
public string Type { get; set; }
/// <summary>
/// 文件名
/// </summary>
[ExporterHeader(DisplayName = "文件名")]
[ImporterHeader(Name = "文件名")]
public string FileName { get; set; }
/// <summary>
/// 图文地址
/// </summary>
[ExporterHeader(DisplayName = "图文地址")]
[ImporterHeader(Name = "图文地址")]
public string FileUrl { get; set; }
/// <summary>
/// 生成时间,格式(yyyy-MM-ddHH:mm:ss)
/// </summary>
[ExporterHeader(DisplayName = "生成时间")]
[ImporterHeader(Name = "生成时间")]
public string DateTime { get; set; }
/// <summary>
/// 产线名称
/// </summary>
[ExporterHeader(DisplayName = "产线名称")]
[ImporterHeader(Name = "产线名称")]
public string ProductionLineName { get; set; }
/// <summary>
/// 产线代码
/// </summary>
[ExporterHeader(DisplayName = "产线代码")]
[ImporterHeader(Name = "产线代码")]
public string ProductionLineId { get; set; }
/// <summary>
/// 工位名称
/// </summary>
[ExporterHeader(DisplayName = "工位名称")]
[ImporterHeader(Name = "工位名称")]
public string StationName { get; set; }
/// <summary>
/// 工位代码
/// </summary>
[ExporterHeader(DisplayName = "工位代码")]
[ImporterHeader(Name = "工位代码")]
public string StationId { get; set; }
/// <summary>
/// 设备名称
/// </summary>
[ExporterHeader(DisplayName = "设备名称")]
[ImporterHeader(Name = "设备名称")]
public string DeviceName { get; set; }
/// <summary>
/// 设备编码
/// </summary>
[ExporterHeader(DisplayName = "设备编码")]
[ImporterHeader(Name = "设备编码")]
public string? DeviceId { get; set; }
/// <summary>
/// 供应商总成零件号
/// </summary>
[ExporterHeader(DisplayName = "供应商总成零件号")]
[ImporterHeader(Name = "供应商总成零件号")]
public string VendorProductNo { get; set; }
/// <summary>
/// 供应商总成零件名称
/// </summary>
[ExporterHeader(DisplayName = "供应商总成零件名称")]
[ImporterHeader(Name = "供应商总成零件名称")]
public string VendorProductName { get; set; }
/// <summary>
/// 奇瑞零件号
/// </summary>
[ExporterHeader(DisplayName = "奇瑞零件号")]
[ImporterHeader(Name = "奇瑞零件号")]
public string CheryProductNo { get; set; }
/// <summary>
/// 奇瑞零件名称
/// </summary>
[ExporterHeader(DisplayName = "奇瑞零件名称")]
[ImporterHeader(Name = "奇瑞零件名称")]
public string CheryProductName { get; set; }
/// <summary>
/// 供应商总成SN码
/// </summary>
[ExporterHeader(DisplayName = "供应商总成SN码")]
[ImporterHeader(Name = "供应商总成SN码")]
public string? VendorProductSn { get; set; }
}
}

192
API/TaskManager.Entity/Data/SUPPLIER_PRO_PROCESS_EQUIPMENT_DT.cs

@ -0,0 +1,192 @@
using Magicodes.ExporterAndImporter.Core;
namespace TaskManager.Entity.Entitys
{
/// <summary>
/// 工艺装备
/// </summary>
public class SUPPLIER_PRO_PROCESS_EQUIPMENT_DT : BaseEntity_NoTask
{
/// <summary>
/// 供应商代码
/// </summary>
[ExporterHeader(DisplayName = "供应商代码")]
[ImporterHeader(Name = "供应商代码")]
public string SupplierCode { get; set; }
/// <summary>
/// 供应商名称
/// </summary>
[ExporterHeader(DisplayName = "供应商名称")]
[ImporterHeader(Name = "供应商名称")]
public string SupplierName { get; set; }
/// <summary>
/// 奇瑞零件号
/// </summary>
[ExporterHeader(DisplayName = "奇瑞零件号")]
[ImporterHeader(Name = "奇瑞零件号")]
public string CheryProductNo { get; set; }
/// <summary>
/// 奇瑞零件名称
/// </summary>
[ExporterHeader(DisplayName = "奇瑞零件名称")]
[ImporterHeader(Name = "奇瑞零件名称")]
public string CheryProductName { get; set; }
/// <summary>
/// 供应商总成零件号
/// </summary>
[ExporterHeader(DisplayName = "供应商总成零件号")]
[ImporterHeader(Name = "供应商总成零件号")]
public string VendorProductNo { get; set; }
/// <summary>
/// 供应商总成零件名称
/// </summary>
[ExporterHeader(DisplayName = "供应商总成零件名称")]
[ImporterHeader(Name = "供应商总成零件名称")]
public string VendorProductName { get; set; }
/// <summary>
/// 工艺装备类型分类(1模具;2检具;3夹具)
/// </summary>
[ExporterHeader(DisplayName = "工艺装备类型分类")]
[ImporterHeader(Name = "工艺装备类型分类")]
public decimal DeviceType { get; set; }
/// <summary>
/// 工艺装备编码
/// </summary>
[ExporterHeader(DisplayName = "工艺装备编码")]
[ImporterHeader(Name = "工艺装备编码")]
public string DeviceCode { get; set; }
/// <summary>
/// 工艺装备名称
/// </summary>
[ExporterHeader(DisplayName = "工艺装备名称")]
[ImporterHeader(Name = "工艺装备名称")]
public string DeviceName { get; set; }
/// <summary>
/// 生产厂家
/// </summary>
[ExporterHeader(DisplayName = "生产厂家")]
[ImporterHeader(Name = "生产厂家")]
public string Manufacturer { get; set; }
/// <summary>
/// 工艺装备型号
/// </summary>
[ExporterHeader(DisplayName = "工艺装备型号")]
[ImporterHeader(Name = "工艺装备型号")]
public string ModelNumber { get; set; }
/// <summary>
/// 工艺装备序列号
/// </summary>
[ExporterHeader(DisplayName = "工艺装备序列号")]
[ImporterHeader(Name = "工艺装备序列号")]
public string SerialNumber { get; set; }
/// <summary>
/// 工艺装备制造日期,格式(yyyy-MM-dd)
/// </summary>
[ExporterHeader(DisplayName = "工艺装备制造日期")]
[ImporterHeader(Name = "工艺装备制造日期")]
public string ProductionDate { get; set; }
/// <summary>
/// 主要材质
/// </summary>
[ExporterHeader(DisplayName = "主要材质")]
[ImporterHeader(Name = "主要材质")]
public string Material { get; set; }
/// <summary>
/// 当前存放地点
/// </summary>
[ExporterHeader(DisplayName = "当前存放地点")]
[ImporterHeader(Name = "当前存放地点")]
public string CurrentLocation { get; set; }
/// <summary>
/// 工艺装备状态
/// </summary>
[ExporterHeader(DisplayName = "工艺装备状态")]
[ImporterHeader(Name = "工艺装备状态")]
public string DeviceStatus { get; set; }
/// <summary>
/// 穴腔数量
/// </summary>
[ExporterHeader(DisplayName = "穴腔数量")]
[ImporterHeader(Name = "穴腔数量")]
public decimal CavityCount { get; set; }
/// <summary>
/// 模具尺寸规格
/// </summary>
[ExporterHeader(DisplayName = "模具尺寸规格")]
[ImporterHeader(Name = "模具尺寸规格")]
public string MoldSize { get; set; }
/// <summary>
/// 设计寿命单位
/// </summary>
[ExporterHeader(DisplayName = "设计寿命单位")]
[ImporterHeader(Name = "设计寿命单位")]
public string DesignLifeUnits { get; set; }
/// <summary>
/// 设计寿命
/// </summary>
[ExporterHeader(DisplayName = "设计寿命")]
[ImporterHeader(Name = "设计寿命")]
public string DesignLifeValue { get; set; }
/// <summary>
/// 当前剩余寿命,
/// </summary>
[ExporterHeader(DisplayName = "当前剩余寿命")]
[ImporterHeader(Name = "当前剩余寿命")]
public string CurrentUsageCount { get; set; }
/// <summary>
/// 模具大修次数
/// </summary>
[ExporterHeader(DisplayName = "模具大修次数")]
[ImporterHeader(Name = "模具大修次数")]
public decimal OverhaulCount { get; set; }
/// <summary>
/// 图纸编号描述
/// </summary>
[ExporterHeader(DisplayName = "图纸编号描述")]
[ImporterHeader(Name = "图纸编号描述")]
public string CoolingChannelLayout { get; set; }
/// <summary>
/// 检测精度
/// </summary>
[ExporterHeader(DisplayName = "检测精度")]
[ImporterHeader(Name = "检测精度")]
public string DetectionAccuracy { get; set; }
/// <summary>
/// 最近校准日期,格式(yyyy-MM-ddHH:mm:ss)
/// </summary>
[ExporterHeader(DisplayName = "最近校准日期")]
[ImporterHeader(Name = "最近校准日期")]
public string CalibrationDate { get; set; }
/// <summary>
/// 校准到期天数
/// </summary>
[ExporterHeader(DisplayName = "校准到期天数")]
[ImporterHeader(Name = "校准到期天数")]
public string CalibrationDueDays { get; set; }
/// <summary>
/// 允许误差范围
/// </summary>
[ExporterHeader(DisplayName = "允许误差范围")]
[ImporterHeader(Name = "允许误差范围")]
public string ToleranceRange { get; set; }
/// <summary>
/// 磨损阈值
/// </summary>
[ExporterHeader(DisplayName = "磨损阈值")]
[ImporterHeader(Name = "磨损阈值")]
public string WearThreshold { get; set; }
/// <summary>
/// 检测范围
/// </summary>
[ExporterHeader(DisplayName = "检测范围")]
[ImporterHeader(Name = "检测范围")]
public string DetectionRange { get; set; }
/// <summary>
/// 检测单位
/// </summary>
[ExporterHeader(DisplayName = "检测单位")]
[ImporterHeader(Name = "检测单位")]
public string UnitType { get; set; }
}
}

21
API/TaskManager.Entity/Entity.cs

@ -171,6 +171,27 @@ namespace TaskManager.Entity
}
public class BaseEntity_NoTask
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[ExporterHeader(IsIgnore = true)]
public long UId { get; set; }
/// <summary>
/// 写状态
/// </summary>
public bool WriteState { get; set; }
[ExporterHeader(IsIgnore = true)]
public bool ReadState { get; set; }
[ExporterHeader(IsIgnore = true)]
public DateTime CreationTime { get; set; }
[ExporterHeader(IsIgnore = true)]
public string? Remark { get; set; }
}
public class CherryReadBaseEntity:BaseEntity
{
/// <summary>

251
API/TaskManager.EntityFramework/JobDbContext.cs

@ -117,7 +117,19 @@ namespace TaskManager.EntityFramework
/// </summary>
public DbSet<SUPPLIER_PRO_FLAW> SUPPLIER_PRO_FLAW { get; set; }
public DbSet<SUPPLIER_PRO_ENVIRONMENT> SUPPLIER_PRO_ENVIRONMENT { get; set; }
public DbSet<SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE> SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE { get; set; }
public DbSet<SUPPLIER_PRO_OEE_TIME_DETAILS> SUPPLIER_PRO_OEE_TIME_DETAILS { get; set; }
public DbSet<SUPPLIER_PRO_MATERIAL_DATA> SUPPLIER_PRO_MATERIAL_DATA { get; set; }
public DbSet<SUPPLIER_PRO_ATTACHMENT_DATA> SUPPLIER_PRO_ATTACHMENT_DATA { get; set; }
public DbSet<SUPPLIER_PRO_PROCESS_EQUIPMENT> SUPPLIER_PRO_PROCESS_EQUIPMENT { get; set; }
public DbSet<SUPPLIER_PRO_PROCESS> SUPPLIER_PRO_PROCESS { get; set; }
//public DbSet<SUPPLIER_CON_MMRP> SUPPLIER_CON_MMRP { get; set; }
//public DbSet<SUPPLIER_CON_DATE> SUPPLIER_CON_DATE { get; set; }
//public DbSet<SUPPLIER_CON_PO> SUPPLIER_CON_PO { get; set; }
//public DbSet<SUPPLIER_SINV_DATA> SUPPLIER_SINV_DATA { get; set; }
/// <summary>
/// 整车月度生产计划-2
@ -211,6 +223,23 @@ namespace TaskManager.EntityFramework
public DbSet<TaskConifgure> TaskConifgure { get; set; }
//public DbSet<TaskConifgure> TaskConifgures { get; set; }
#region DATA
/// <summary>
/// 供应商基础信息
/// </summary>
public DbSet<SUPPLIER_INFO_DT> SUPPLIER_INFO_DT { get; set; }
/// <summary>
/// 人员资质信息
/// </summary>
public DbSet<SUPPLIER_EMPLOYEE_DT> SUPPLIER_EMPLOYEE_DT { get; set; }
public DbSet<SUPPLIER_PRO_ATTACHMENT_DATA_DT> SUPPLIER_PRO_ATTACHMENT_DATA_DT { get; set; }
public DbSet<SUPPLIER_PRO_PROCESS_EQUIPMENT_DT> SUPPLIER_PRO_PROCESS_EQUIPMENT_DT { get; set; }
#endregion
// 配置实体映射
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
@ -1491,6 +1520,226 @@ namespace TaskManager.EntityFramework
});
#endregion
#region Data
//供应商基础信息
modelBuilder.Entity<SUPPLIER_INFO_DT>(b =>
{
b.ToTable("SUPPLIER_INFO_DT");
//供应商代码
b.Property(e => e.SupplierCode).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//供应商名称
b.Property(e => e.SupplierName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//工厂代码
b.Property(e => e.PlantId).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//工厂名称
b.Property(e => e.PlantName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//车间代码
b.Property(e => e.WorkshopId).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//车间名称
b.Property(e => e.WorkshopName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//产线代码
b.Property(e => e.ProductionLineId).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//产线名称
b.Property(e => e.ProductionLineName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//工位代码
b.Property(e => e.StationId).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//工位名称
b.Property(e => e.StationName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//是否关键工位(Y/N)
b.Property(e => e.KeyStation).HasColumnType("CHAR").HasMaxLength(1).IsRequired();
//供应商修改时间,格式(yyyy-MM-ddHH:mm:ss)
b.Property(e => e.DataUpdateTime).HasColumnType("CHAR").HasMaxLength(19).IsRequired();
//产线顺序
b.Property(e => e.ProductionLineOrder).HasColumnType("DECIMAL").HasPrecision(precision: 16, scale: 0).IsRequired();
//工位顺序
b.Property(e => e.StationOrder).HasColumnType("DECIMAL").HasPrecision(precision: 16, scale: 0).IsRequired();
//供应商总成零件号
b.Property(e => e.VendorProductNo).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//供应商总成零件名称
b.Property(e => e.VendorProductName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//奇瑞零件号
b.Property(e => e.CheryProductNo).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//奇瑞零件名称
b.Property(e => e.CheryProductName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
b.Property(e => e.UId).HasColumnType("bigint").ValueGeneratedOnAdd().IsRequired();
b.Property(e => e.Remark).HasColumnType("NVarchar").HasMaxLength(500).IsRequired(false);
b.Property(e => e.ReadState).HasDefaultValue(false);
b.Property(e => e.WriteState).HasDefaultValue(false);
b.HasKey(e => e.UId);
});
//人员资质信息
modelBuilder.Entity<SUPPLIER_EMPLOYEE_DT>(b =>
{
b.ToTable("SUPPLIER_EMPLOYEE_DT");
//供应商代码
b.Property(e => e.SupplierCode).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//供应商名称
b.Property(e => e.SupplierName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//工厂代码
b.Property(e => e.PlantId).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//工厂名称
b.Property(e => e.PlantName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//车间代码
b.Property(e => e.WorkshopId).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//车间名称
b.Property(e => e.WorkshopName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//产线代码
b.Property(e => e.ProductionLineId).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//产线名称
b.Property(e => e.ProductionLineName).HasColumnType("VARCHAR").HasMaxLength(100).IsRequired();
//工位代码
b.Property(e => e.StationId).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//工位名称
b.Property(e => e.StationName).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//工位人员账号
b.Property(e => e.OperatorId).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//工位人员姓名
b.Property(e => e.OperatorName).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//是否有资质(Y,N)
b.Property(e => e.HaveQuantity).HasColumnType("CHAR").HasMaxLength(1).IsRequired();
//供应商修改时间,格式(yyyy-MM-ddHH:mm:ss)
b.Property(e => e.DataUpdateTime).HasColumnType("CHAR").HasMaxLength(19).IsRequired();
//岗位代码
b.Property(e => e.PositionId).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//岗位名称
b.Property(e => e.PositionName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//资质等级(Level_4,Level_3,Level_2,Level_1)
b.Property(e => e.QualificationLevel).HasColumnType("VARCHAR").HasMaxLength(16).IsRequired();
//资质获取时间
b.Property(e => e.CheckInTime).HasColumnType("CHAR").HasMaxLength(19).IsRequired();
//资质失去时间
b.Property(e => e.CheckOutTime).HasColumnType("CHAR").HasMaxLength(19).IsRequired();
b.Property(e => e.UId).HasColumnType("bigint").ValueGeneratedOnAdd().IsRequired();
b.Property(e => e.Remark).HasColumnType("NVarchar").HasMaxLength(500).IsRequired(false);
b.Property(e => e.ReadState).HasDefaultValue(false);
b.Property(e => e.WriteState).HasDefaultValue(false);
b.HasKey(e => e.UId);
});
//附件类数据
modelBuilder.Entity<SUPPLIER_PRO_ATTACHMENT_DATA_DT>(b =>
{
b.ToTable("SUPPLIER_PRO_ATTACHMENT_DATA_DT");
//供应商代码
b.Property(e => e.SupplierCode).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//供应商名称
b.Property(e => e.SupplierName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//数据类型(1产前管理;2人员资质;3监控视频)
b.Property(e => e.Type).HasColumnType("VARCHAR").HasMaxLength(16).IsRequired();
//文件名
b.Property(e => e.FileName).HasColumnType("VARCHAR").HasMaxLength(300).IsRequired();
//图文地址
b.Property(e => e.FileUrl).HasColumnType("VARCHAR").HasMaxLength(1000).IsRequired();
//生成时间,格式(yyyy-MM-ddHH:mm:ss)
b.Property(e => e.DateTime).HasColumnType("CHAR").HasMaxLength(19).IsRequired();
//产线名称
b.Property(e => e.ProductionLineName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//产线代码
b.Property(e => e.ProductionLineId).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//工位名称
b.Property(e => e.StationName).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//工位代码
b.Property(e => e.StationId).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//设备名称
b.Property(e => e.DeviceName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//设备编码
b.Property(e => e.DeviceId).HasColumnType("nvarchar").HasMaxLength(50).IsRequired(false);
//供应商总成零件号
b.Property(e => e.VendorProductNo).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//供应商总成零件名称
b.Property(e => e.VendorProductName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//奇瑞零件号
b.Property(e => e.CheryProductNo).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//奇瑞零件名称
b.Property(e => e.CheryProductName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//供应商总成SN码
b.Property(e => e.VendorProductSn).HasColumnType("VARCHAR").HasMaxLength(100).IsRequired(false);
b.Property(e => e.UId).HasColumnType("bigint").ValueGeneratedOnAdd().IsRequired();
b.Property(e => e.Remark).HasColumnType("NVarchar").HasMaxLength(500).IsRequired(false);
b.Property(e => e.ReadState).HasDefaultValue(false);
b.Property(e => e.WriteState).HasDefaultValue(false);
b.HasKey(e => e.UId);
});
//工艺装备
modelBuilder.Entity<SUPPLIER_PRO_PROCESS_EQUIPMENT_DT>(b =>
{
b.ToTable("SUPPLIER_PRO_PROCESS_EQUIPMENT_DT");
//供应商代码
b.Property(e => e.SupplierCode).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//供应商名称
b.Property(e => e.SupplierName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//奇瑞零件号
b.Property(e => e.CheryProductNo).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//奇瑞零件名称
b.Property(e => e.CheryProductName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//供应商总成零件号
b.Property(e => e.VendorProductNo).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//供应商总成零件名称
b.Property(e => e.VendorProductName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//工艺装备类型分类(1模具;2检具;3夹具)
b.Property(e => e.DeviceType).HasColumnType("DECIMAL").HasPrecision(precision: 1, scale: 0).IsRequired();
//工艺装备编码
b.Property(e => e.DeviceCode).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//工艺装备名称
b.Property(e => e.DeviceName).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//生产厂家
b.Property(e => e.Manufacturer).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//工艺装备型号
b.Property(e => e.ModelNumber).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//工艺装备序列号
b.Property(e => e.SerialNumber).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//工艺装备制造日期,格式(yyyy-MM-dd)
b.Property(e => e.ProductionDate).HasColumnType("CHAR").HasMaxLength(16).IsRequired();
//主要材质
b.Property(e => e.Material).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//当前存放地点
b.Property(e => e.CurrentLocation).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//工艺装备状态
b.Property(e => e.DeviceStatus).HasColumnType("VARCHAR").HasMaxLength(16).IsRequired();
//穴腔数量
b.Property(e => e.CavityCount).HasColumnType("DECIMAL").HasPrecision(precision: 16, scale: 0).IsRequired();
//模具尺寸规格
b.Property(e => e.MoldSize).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//设计寿命单位
b.Property(e => e.DesignLifeUnits).HasColumnType("VARCHAR").HasMaxLength(16).IsRequired();
//设计寿命
b.Property(e => e.DesignLifeValue).HasColumnType("VARCHAR").HasMaxLength(16).IsRequired();
//当前剩余寿命,
b.Property(e => e.CurrentUsageCount).HasColumnType("VARCHAR").HasMaxLength(16).IsRequired();
//模具大修次数
b.Property(e => e.OverhaulCount).HasColumnType("DECIMAL").HasPrecision(precision: 16, scale: 0).IsRequired();
//图纸编号描述
b.Property(e => e.CoolingChannelLayout).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//检测精度
b.Property(e => e.DetectionAccuracy).HasColumnType("VARCHAR").HasMaxLength(64).IsRequired();
//最近校准日期,格式(yyyy-MM-ddHH:mm:ss)
b.Property(e => e.CalibrationDate).HasColumnType("CHAR").HasMaxLength(19).IsRequired();
//校准到期天数
b.Property(e => e.CalibrationDueDays).HasColumnType("CHAR").HasMaxLength(12).IsRequired();
//允许误差范围
b.Property(e => e.ToleranceRange).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//磨损阈值
b.Property(e => e.WearThreshold).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//检测范围
b.Property(e => e.DetectionRange).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
//检测单位
b.Property(e => e.UnitType).HasColumnType("VARCHAR").HasMaxLength(32).IsRequired();
b.Property(e => e.UId).HasColumnType("bigint").ValueGeneratedOnAdd().IsRequired();
b.Property(e => e.Remark).HasColumnType("NVarchar").HasMaxLength(500).IsRequired(false);
b.Property(e => e.ReadState).HasDefaultValue(false);
b.Property(e => e.WriteState).HasDefaultValue(false);
b.HasKey(e => e.UId);
});
#endregion
}
}
}

22
API/Wood.Service/Controllers/NormalBaseController.cs

@ -87,6 +87,8 @@ namespace Wood.Service.Controllers
await _repository.DeleteAsync(id);
return new JsonResult(new { Code = 200, Message = "删除成功!" }); ;
}
[HttpGet]
public async Task<ActionResult<PagedResult<T>>> GetPaged(
[FromQuery] int pageNumber = 1,
@ -110,11 +112,13 @@ namespace Wood.Service.Controllers
var pagedResult = await _repository.GetPagedAsync(filter, pagingParams);
return Ok(pagedResult);
}
public async Task<FileStreamResult> Export([FromQuery] int pageNumber = 1,
[FromQuery] int pageSize = 10,
[FromQuery] string sortBy = "",
[FromQuery] bool isAscending = true,
[FromQuery] Dictionary<string, string> filters = null)
public async Task<FileStreamResult> Export<T>([FromQuery] int pageNumber = 1,
[FromQuery] int pageSize = 10,
[FromQuery] string sortBy = "",
[FromQuery] bool isAscending = true,
[FromQuery] Dictionary<string, string> filters = null) where T : class, new()
{
var pagingParams = new PagingParams
{
@ -133,7 +137,7 @@ namespace Wood.Service.Controllers
}
protected async Task<FileStreamResult> ExportFile(ICollection<T> dtos, string fileName)
protected async Task<FileStreamResult> ExportFile<T>(ICollection<T> dtos, string fileName) where T: class, new()
{
var excelExporter = HttpContext.RequestServices.GetRequiredService<IExcelExporter>();
var res = await excelExporter.ExportAsByteArray<T>(dtos);
@ -142,7 +146,7 @@ namespace Wood.Service.Controllers
[HttpGet]
public async Task<IActionResult> GetImportTemplate()
public async Task<IActionResult> GetImportTemplate<T>() where T: class, new()
{
try
{
@ -150,8 +154,8 @@ namespace Wood.Service.Controllers
var importer = new ExcelImporter();
// 生成导入模板流(这里假设使用 YourModel 作为导入模型)
using var stream = new MemoryStream();
await importer.GenerateTemplate(stream, typeof(T));
byte[] by = await importer.GenerateTemplateBytes<T>();
using var stream = new MemoryStream(by);
stream.Seek(0, SeekOrigin.Begin);
// 设置友好的文件名,例如:"导入模板_20250530.xlsx"

64
API/Wood.Service/Datas/SupplierEmployeeDtService.cs

@ -0,0 +1,64 @@
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using TaskManager.Entity;
using TaskManager.EntityFramework.Repository;
using TaskManager.EntityFramework;
using Wood.Service.Controllers;
using Magicodes.ExporterAndImporter.Core.Models;
namespace Wood.Service.Datas
{
public class SupplierEmployeeDtService : NormalBaseController<SUPPLIER_EMPLOYEE>
{
public SupplierEmployeeDtService(JobDbContext context, IServiceProvider builder, IConfiguration configuration, IRepository<SUPPLIER_EMPLOYEE> repository) : base(context, builder, configuration, repository)
{
}
[HttpPost]
[Route("import")]
public async Task<IActionResult> Import(IFormFile file)
{
if (file == null || file.Length == 0)
{
return NotFound();
}
MemoryStream memStream = new MemoryStream();
await file.CopyToAsync(memStream);
var importer = new ExcelImporter();
ImportResult<SUPPLIER_EMPLOYEE> impResult = await importer.Import<SUPPLIER_EMPLOYEE>(memStream);
if (impResult.HasError)
{
StringBuilder sb = new StringBuilder();
foreach (var rowErr in impResult.RowErrors)
{
string temp = string.Join(";", rowErr.FieldErrors.Select(itm => $"第{rowErr.RowIndex}行:{itm.Key}-{itm.Value}"));
sb.AppendLine(temp);
}
foreach (var templateErr in impResult.TemplateErrors)
{
string temp = $"列名:{templateErr.RequireColumnName},错误信息:{templateErr.Message}";
sb.AppendLine(temp);
}
throw new Exception(sb.ToString());
}
foreach (var item in impResult.Data) //??增加批量插入
{
await Create(item);
}
return Ok(true);
}
}
}

64
API/Wood.Service/Datas/SupplierInfoDtService.cs

@ -0,0 +1,64 @@
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using TaskManager.Entity;
using TaskManager.EntityFramework.Repository;
using TaskManager.EntityFramework;
using Wood.Service.Controllers;
using Magicodes.ExporterAndImporter.Core.Models;
namespace Wood.Service.Datas
{
public class SupplierInfoDtService : NormalBaseController<SUPPLIER_INFO>
{
public SupplierInfoDtService(JobDbContext context, IServiceProvider builder, IConfiguration configuration, IRepository<SUPPLIER_INFO> repository) : base(context, builder, configuration, repository)
{
}
[HttpPost]
[Route("import")]
public async Task<IActionResult> Import(IFormFile file)
{
if (file == null || file.Length == 0)
{
return NotFound();
}
MemoryStream memStream = new MemoryStream();
await file.CopyToAsync(memStream);
var importer = new ExcelImporter();
ImportResult<SUPPLIER_INFO> impResult = await importer.Import<SUPPLIER_INFO>(memStream);
if (impResult.HasError)
{
StringBuilder sb = new StringBuilder();
foreach (var rowErr in impResult.RowErrors)
{
string temp = string.Join(";", rowErr.FieldErrors.Select(itm => $"第{rowErr.RowIndex}行:{itm.Key}-{itm.Value}"));
sb.AppendLine(temp);
}
foreach (var templateErr in impResult.TemplateErrors)
{
string temp = $"列名:{templateErr.RequireColumnName},错误信息:{templateErr.Message}";
sb.AppendLine(temp);
}
throw new Exception(sb.ToString());
}
foreach (var item in impResult.Data) //??增加批量插入
{
await Create(item);
}
return Ok(true);
}
}
}

65
API/Wood.Service/Datas/SupplierProAttachmentDataDtService.cs

@ -0,0 +1,65 @@
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using TaskManager.Entity;
using TaskManager.EntityFramework.Repository;
using TaskManager.EntityFramework;
using Wood.Service.Controllers;
using Magicodes.ExporterAndImporter.Core.Models;
using TaskManager.Entity.Entitys;
namespace Wood.Service.Datas
{
public class SupplierProAttachmentDataDtService : NormalBaseController<SUPPLIER_PRO_ATTACHMENT_DATA>
{
public SupplierProAttachmentDataDtService(JobDbContext context, IServiceProvider builder, IConfiguration configuration, IRepository<SUPPLIER_PRO_ATTACHMENT_DATA> repository) : base(context, builder, configuration, repository)
{
}
[HttpPost]
[Route("import")]
public async Task<IActionResult> Import(IFormFile file)
{
if (file == null || file.Length == 0)
{
return NotFound();
}
MemoryStream memStream = new MemoryStream();
await file.CopyToAsync(memStream);
var importer = new ExcelImporter();
ImportResult<SUPPLIER_PRO_ATTACHMENT_DATA> impResult = await importer.Import<SUPPLIER_PRO_ATTACHMENT_DATA>(memStream);
if (impResult.HasError)
{
StringBuilder sb = new StringBuilder();
foreach (var rowErr in impResult.RowErrors)
{
string temp = string.Join(";", rowErr.FieldErrors.Select(itm => $"第{rowErr.RowIndex}行:{itm.Key}-{itm.Value}"));
sb.AppendLine(temp);
}
foreach (var templateErr in impResult.TemplateErrors)
{
string temp = $"列名:{templateErr.RequireColumnName},错误信息:{templateErr.Message}";
sb.AppendLine(temp);
}
throw new Exception(sb.ToString());
}
foreach (var item in impResult.Data) //??增加批量插入
{
await Create(item);
}
return Ok(true);
}
}
}

65
API/Wood.Service/Datas/SupplierProProcessEquipmentDtService.cs

@ -0,0 +1,65 @@
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using TaskManager.Entity;
using TaskManager.EntityFramework.Repository;
using TaskManager.EntityFramework;
using Wood.Service.Controllers;
using Magicodes.ExporterAndImporter.Core.Models;
using TaskManager.Entity.Entitys;
namespace Wood.Service.Datas
{
public class SupplierProProcessEquipmentDtService : NormalBaseController<SUPPLIER_PRO_PROCESS_EQUIPMENT>
{
public SupplierProProcessEquipmentDtService(JobDbContext context, IServiceProvider builder, IConfiguration configuration, IRepository<SUPPLIER_PRO_PROCESS_EQUIPMENT> repository) : base(context, builder, configuration, repository)
{
}
[HttpPost]
[Route("import")]
public async Task<IActionResult> Import(IFormFile file)
{
if (file == null || file.Length == 0)
{
return NotFound();
}
MemoryStream memStream = new MemoryStream();
await file.CopyToAsync(memStream);
var importer = new ExcelImporter();
ImportResult<SUPPLIER_PRO_PROCESS_EQUIPMENT> impResult = await importer.Import<SUPPLIER_PRO_PROCESS_EQUIPMENT>(memStream);
if (impResult.HasError)
{
StringBuilder sb = new StringBuilder();
foreach (var rowErr in impResult.RowErrors)
{
string temp = string.Join(";", rowErr.FieldErrors.Select(itm => $"第{rowErr.RowIndex}行:{itm.Key}-{itm.Value}"));
sb.AppendLine(temp);
}
foreach (var templateErr in impResult.TemplateErrors)
{
string temp = $"列名:{templateErr.RequireColumnName},错误信息:{templateErr.Message}";
sb.AppendLine(temp);
}
throw new Exception(sb.ToString());
}
foreach (var item in impResult.Data) //??增加批量插入
{
await Create(item);
}
return Ok(true);
}
}
}
Loading…
Cancel
Save