diff --git a/API/TaskManager.Contracts/Dtos/10_17/Class1.cs b/API/TaskManager.Contracts/Dtos/10_17/Class1.cs deleted file mode 100644 index c8dfe71..0000000 --- a/API/TaskManager.Contracts/Dtos/10_17/Class1.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace TaskManager.Contracts.Dtos._10_17 -{ - internal class Class1 - { - } -} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_CON_DATE_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_CON_DATE_DTO.cs new file mode 100644 index 0000000..e917547 --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_CON_DATE_DTO.cs @@ -0,0 +1,252 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity.Entitys +{ + /// + /// 日物料需求计划风险确认 + /// + public class SUPPLIER_CON_DATE_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 需求发布版次,取自日物料需求计划接口中的需求发布版次,针对与这个版次的需求进行风险反馈 + /// + [ExporterHeader(DisplayName = "需求发布版次")] + [ImporterHeader(Name = "需求发布版次")] + public string ReleaseEdition { get; set; } + /// + /// 零件号,奇瑞零件号 + /// + [ExporterHeader(DisplayName = "零件号,奇瑞零件号")] + [ImporterHeader(Name = "零件号,奇瑞零件号")] + public string MaterialCode { get; set; } + /// + /// 工厂代码 + /// + [ExporterHeader(DisplayName = "工厂代码")] + [ImporterHeader(Name = "工厂代码")] + public string PlantId { get; set; } + /// + /// 反馈结果,1-异常;0-无异常(匹配峰值需求缺口,如果可满足峰值,即选择无异常) + /// + [ExporterHeader(DisplayName = "反馈结果")] + [ImporterHeader(Name = "反馈结果")] + public string FeedbackResults { get; set; } + /// + /// 风险类型,当反馈结果=1时,此字段必输1.生产节拍不足2.人员不足3.原材料不足4.设备异常5.其他 + /// + [ExporterHeader(DisplayName = "风险类型")] + [ImporterHeader(Name = "风险类型")] + public string? VentureType { get; set; } + /// + /// 具体风险,当反馈结果=1时,此字段必输描述具体风险 + /// + [ExporterHeader(DisplayName = "具体风险")] + [ImporterHeader(Name = "具体风险")] + public string? VentureSpecific { get; set; } + /// + /// 应对措施,当反馈结果=1时,此字段必输描述具体应对措施 + /// + [ExporterHeader(DisplayName = "应对措施")] + [ImporterHeader(Name = "应对措施")] + public string? Measures { get; set; } + /// + /// 起始日期,格式:yyyy-MM-dd + /// + [ExporterHeader(DisplayName = "起始日期")] + [ImporterHeader(Name = "起始日期")] + public string StartDate { get; set; } + /// + /// 满足数量1,数量锁定,7日内满足数量必须等于需求数量 + /// + [ExporterHeader(DisplayName = "满足数量1")] + [ImporterHeader(Name = "满足数量1")] + public decimal QuantityMeet1 { get; set; } + /// + /// 满足数量2, + /// + [ExporterHeader(DisplayName = "满足数量2")] + [ImporterHeader(Name = "满足数量2")] + public decimal QuantityMeet2 { get; set; } + /// + /// 满足数量3, + /// + [ExporterHeader(DisplayName = "满足数量3")] + [ImporterHeader(Name = "满足数量3")] + public decimal QuantityMeet3 { get; set; } + /// + /// 满足数量4, + /// + [ExporterHeader(DisplayName = "满足数量4")] + [ImporterHeader(Name = "满足数量4")] + public decimal QuantityMeet4 { get; set; } + /// + /// 满足数量5, + /// + [ExporterHeader(DisplayName = "满足数量5")] + [ImporterHeader(Name = "满足数量5")] + public decimal QuantityMeet5 { get; set; } + /// + /// 满足数量6, + /// + [ExporterHeader(DisplayName = "满足数量6")] + [ImporterHeader(Name = "满足数量6")] + public decimal QuantityMeet6 { get; set; } + /// + /// 满足数量7, + /// + [ExporterHeader(DisplayName = "满足数量7")] + [ImporterHeader(Name = "满足数量7")] + public decimal QuantityMeet7 { get; set; } + /// + /// 满足数量8,根据物料需求计划接口发布的需求天数,针对企业自身产能情况反馈可满足数量注:目前发送数据为滚动12天的数据,13至31天的字段为预留,未来可能会增加至31天 + /// + [ExporterHeader(DisplayName = "满足数量8")] + [ImporterHeader(Name = "满足数量8")] + public decimal QuantityMeet8 { get; set; } + /// + /// 满足数量9, + /// + [ExporterHeader(DisplayName = "满足数量9")] + [ImporterHeader(Name = "满足数量9")] + public decimal QuantityMeet9 { get; set; } + /// + /// 满足数量10, + /// + [ExporterHeader(DisplayName = "满足数量10")] + [ImporterHeader(Name = "满足数量10")] + public decimal QuantityMeet10 { get; set; } + /// + /// 满足数量11, + /// + [ExporterHeader(DisplayName = "满足数量11")] + [ImporterHeader(Name = "满足数量11")] + public decimal QuantityMeet11 { get; set; } + /// + /// 满足数量12, + /// + [ExporterHeader(DisplayName = "满足数量12")] + [ImporterHeader(Name = "满足数量12")] + public decimal QuantityMeet12 { get; set; } + /// + /// 满足数量13, + /// + [ExporterHeader(DisplayName = "满足数量13")] + [ImporterHeader(Name = "满足数量13")] + public decimal? QuantityMeet13 { get; set; } + /// + /// 满足数量14, + /// + [ExporterHeader(DisplayName = "满足数量14")] + [ImporterHeader(Name = "满足数量14")] + public decimal? QuantityMeet14 { get; set; } + /// + /// 满足数量15, + /// + [ExporterHeader(DisplayName = "满足数量15")] + [ImporterHeader(Name = "满足数量15")] + public decimal? QuantityMeet15 { get; set; } + /// + /// 满足数量16, + /// + [ExporterHeader(DisplayName = "满足数量16")] + [ImporterHeader(Name = "满足数量16")] + public decimal? QuantityMeet16 { get; set; } + /// + /// 满足数量17, + /// + [ExporterHeader(DisplayName = "满足数量17")] + [ImporterHeader(Name = "满足数量17")] + public decimal? QuantityMeet17 { get; set; } + /// + /// 满足数量18, + /// + [ExporterHeader(DisplayName = "满足数量18")] + [ImporterHeader(Name = "满足数量18")] + public decimal? QuantityMeet18 { get; set; } + /// + /// 满足数量19, + /// + [ExporterHeader(DisplayName = "满足数量19")] + [ImporterHeader(Name = "满足数量19")] + public decimal? QuantityMeet19 { get; set; } + /// + /// 满足数量20, + /// + [ExporterHeader(DisplayName = "满足数量20")] + [ImporterHeader(Name = "满足数量20")] + public decimal? QuantityMeet20 { get; set; } + /// + /// 满足数量21, + /// + [ExporterHeader(DisplayName = "满足数量21")] + [ImporterHeader(Name = "满足数量21")] + public decimal? QuantityMeet21 { get; set; } + /// + /// 满足数量22, + /// + [ExporterHeader(DisplayName = "满足数量22")] + [ImporterHeader(Name = "满足数量22")] + public decimal? QuantityMeet22 { get; set; } + /// + /// 满足数量23, + /// + [ExporterHeader(DisplayName = "满足数量23")] + [ImporterHeader(Name = "满足数量23")] + public decimal? QuantityMeet23 { get; set; } + /// + /// 满足数量24, + /// + [ExporterHeader(DisplayName = "满足数量24")] + [ImporterHeader(Name = "满足数量24")] + public decimal? QuantityMeet24 { get; set; } + /// + /// 满足数量25, + /// + [ExporterHeader(DisplayName = "满足数量25")] + [ImporterHeader(Name = "满足数量25")] + public decimal? QuantityMeet25 { get; set; } + /// + /// 满足数量26, + /// + [ExporterHeader(DisplayName = "满足数量26")] + [ImporterHeader(Name = "满足数量26")] + public decimal? QuantityMeet26 { get; set; } + /// + /// 满足数量27, + /// + [ExporterHeader(DisplayName = "满足数量27")] + [ImporterHeader(Name = "满足数量27")] + public decimal? QuantityMeet27 { get; set; } + /// + /// 满足数量28, + /// + [ExporterHeader(DisplayName = "满足数量28")] + [ImporterHeader(Name = "满足数量28")] + public decimal? QuantityMeet28 { get; set; } + /// + /// 满足数量29, + /// + [ExporterHeader(DisplayName = "满足数量29")] + [ImporterHeader(Name = "满足数量29")] + public decimal? QuantityMeet29 { get; set; } + /// + /// 满足数量30, + /// + [ExporterHeader(DisplayName = "满足数量30")] + [ImporterHeader(Name = "满足数量30")] + public decimal? QuantityMeet30 { get; set; } + /// + /// 满足数量31, + /// + [ExporterHeader(DisplayName = "满足数量31")] + [ImporterHeader(Name = "满足数量31")] + public decimal? QuantityMeet31 { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_CON_MMRP_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_CON_MMRP_DTO.cs new file mode 100644 index 0000000..21ef18b --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_CON_MMRP_DTO.cs @@ -0,0 +1,138 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity.Entitys +{ + /// + /// M+6月物料需求计划风险确认 + /// + public class SUPPLIER_CON_MMRP_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 需求发布版次,取自M+6月物料需求计划接口中的需求发布版次,针对与这个版次的需求进行风险反馈 + /// + [ExporterHeader(DisplayName = "需求发布版次")] + [ImporterHeader(Name = "需求发布版次")] + public string ReleaseEdition { get; set; } + /// + /// 零件号,奇瑞零件号 + /// + [ExporterHeader(DisplayName = "零件号")] + [ImporterHeader(Name = "零件号")] + public string MaterialCode { get; set; } + /// + /// 工厂代码, + /// + [ExporterHeader(DisplayName = "工厂代码,")] + [ImporterHeader(Name = "工厂代码,")] + public string PlantId { get; set; } + /// + /// 反馈结果,1-异常;0-无异常(匹配峰值需求缺口,如果可满足峰值,即选择无异常) + /// + [ExporterHeader(DisplayName = "反馈结果")] + [ImporterHeader(Name = "反馈结果")] + public string FeedbackResults { get; set; } + /// + /// 风险类型,当反馈结果=1时,此字段必输1.生产节拍不足2.人员不足3.原材料不足4.设备异常5.其他 + /// + [ExporterHeader(DisplayName = "风险类型")] + [ImporterHeader(Name = "风险类型")] + public string? VentureType { get; set; } + /// + /// 具体风险,当反馈结果=1时,此字段必输描述具体风险 + /// + [ExporterHeader(DisplayName = "具体风险")] + [ImporterHeader(Name = "具体风险")] + public string? VentureSpecific { get; set; } + /// + /// 应对措施,当反馈结果=1时,此字段必输描述具体应对措施 + /// + [ExporterHeader(DisplayName = "应对措施")] + [ImporterHeader(Name = "应对措施")] + public string? Measures { get; set; } + /// + /// 起始月份-格式:yyyy-MM + /// + [ExporterHeader(DisplayName = "起始月份")] + [ImporterHeader(Name = "起始月份")] + public string StartMonth { get; set; } + /// + /// 满足数量1 + /// + [ExporterHeader(DisplayName = "满足数量1")] + [ImporterHeader(Name = "满足数量1")] + public decimal QuantityMeet1 { get; set; } + /// + /// 满足数量2 + /// + [ExporterHeader(DisplayName = "满足数量2")] + [ImporterHeader(Name = "满足数量2")] + public decimal QuantityMeet2 { get; set; } + /// + /// 满足数量3 + /// + [ExporterHeader(DisplayName = "满足数量3")] + [ImporterHeader(Name = "满足数量3")] + public decimal QuantityMeet3 { get; set; } + /// + /// 满足数量4 + /// + [ExporterHeader(DisplayName = "满足数量4")] + [ImporterHeader(Name = "满足数量4")] + public decimal QuantityMeet4 { get; set; } + /// + /// 满足数量5 + /// + [ExporterHeader(DisplayName = "满足数量5")] + [ImporterHeader(Name = "满足数量5")] + public decimal QuantityMeet5 { get; set; } + /// + /// 满足数量6 + /// + [ExporterHeader(DisplayName = "满足数量6")] + [ImporterHeader(Name = "满足数量6")] + public decimal QuantityMeet6 { get; set; } + /// + /// 满足数量7 + /// + [ExporterHeader(DisplayName = "满足数量7")] + [ImporterHeader(Name = "满足数量7")] + public decimal? QuantityMeet7 { get; set; } + /// + /// 满足数量8 + /// + [ExporterHeader(DisplayName = "满足数量8")] + [ImporterHeader(Name = "满足数量8")] + public decimal? QuantityMeet8 { get; set; } + /// + /// 满足数量9 + /// + [ExporterHeader(DisplayName = "满足数量9")] + [ImporterHeader(Name = "满足数量9")] + public decimal? QuantityMeet9 { get; set; } + /// + /// 满足数量10 + /// + [ExporterHeader(DisplayName = "满足数量10")] + [ImporterHeader(Name = "满足数量10")] + public decimal? QuantityMeet10 { get; set; } + /// + /// 满足数量11 + /// + [ExporterHeader(DisplayName = "满足数量11")] + [ImporterHeader(Name = "满足数量11")] + public decimal? QuantityMeet11 { get; set; } + /// + /// 满足数量12 + /// + [ExporterHeader(DisplayName = "满足数量12")] + [ImporterHeader(Name = "满足数量12")] + public decimal? QuantityMeet12 { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_CON_PO_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_CON_PO_DTO.cs new file mode 100644 index 0000000..cc67661 --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_CON_PO_DTO.cs @@ -0,0 +1,60 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity.Entitys +{ + /// + /// 采购订单风险确认 + /// + public class SUPPLIER_CON_PO_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 采购订单号 + /// + [ExporterHeader(DisplayName = "采购订单号")] + [ImporterHeader(Name = "采购订单号")] + public string PurchaseOrder { get; set; } + /// + /// 行项目号 + /// + [ExporterHeader(DisplayName = "行项目号")] + [ImporterHeader(Name = "行项目号")] + public string SerialNumber { get; set; } + /// + /// 满足数量 + /// + [ExporterHeader(DisplayName = "满足数量")] + [ImporterHeader(Name = "满足数量")] + public decimal QuantityMeet { get; set; } + /// + /// 反馈结果,1-异常;0-无异常(匹配峰值需求缺口,如果可满足峰值,即选择无异常) + /// + [ExporterHeader(DisplayName = "反馈结果")] + [ImporterHeader(Name = "反馈结果")] + public string FeedbackResults { get; set; } + /// + /// 风险类型,当反馈结果=1时,此字段必输1.生产节拍不足2.人员不足3.原材料不足4.设备异常5.其他 + /// + [ExporterHeader(DisplayName = "风险类型")] + [ImporterHeader(Name = "风险类型")] + public string? VentureType { get; set; } + /// + /// 具体风险,当反馈结果=1时,此字段必输描述具体风险 + /// + [ExporterHeader(DisplayName = "具体风险")] + [ImporterHeader(Name = "具体风险")] + public string? VentureSpecific { get; set; } + /// + /// 应对措施,当反馈结果=1时,此字段必输描述具体应对措施 + /// + [ExporterHeader(DisplayName = "应对措施")] + [ImporterHeader(Name = "应对措施")] + public string? Measures { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_EMPLOYEE_DT_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_EMPLOYEE_DT_DTO.cs new file mode 100644 index 0000000..beba2d9 --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_EMPLOYEE_DT_DTO.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 +{ + /// + /// 人员资质信息 + /// + public class SUPPLIER_EMPLOYEE_DT_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 工厂代码 + /// + [ExporterHeader(DisplayName = "工厂代码")] + [ImporterHeader(Name = "工厂代码")] + public string PlantId { get; set; } + /// + /// 工厂名称 + /// + [ExporterHeader(DisplayName = "工厂名称")] + [ImporterHeader(Name = "工厂名称")] + public string PlantName { get; set; } + /// + /// 车间代码 + /// + [ExporterHeader(DisplayName = "车间代码")] + [ImporterHeader(Name = "车间代码")] + public string WorkshopId { get; set; } + /// + /// 车间名称 + /// + [ExporterHeader(DisplayName = "车间名称")] + [ImporterHeader(Name = "车间名称")] + public string WorkshopName { get; set; } + /// + /// 产线代码 + /// + [ExporterHeader(DisplayName = "产线代码")] + [ImporterHeader(Name = "产线代码")] + public string ProductionLineId { get; set; } + /// + /// 产线名称 + /// + [ExporterHeader(DisplayName = "产线名称")] + [ImporterHeader(Name = "产线名称")] + public string ProductionLineName { get; set; } + /// + /// 工位代码 + /// + [ExporterHeader(DisplayName = "工位代码")] + [ImporterHeader(Name = "工位代码")] + public string StationId { get; set; } + /// + /// 工位名称 + /// + [ExporterHeader(DisplayName = "工位名称")] + [ImporterHeader(Name = "工位名称")] + public string StationName { get; set; } + /// + /// 工位人员账号 + /// + [ExporterHeader(DisplayName = "工位人员账号")] + [ImporterHeader(Name = "工位人员账号")] + public string OperatorId { get; set; } + /// + /// 工位人员姓名 + /// + [ExporterHeader(DisplayName = "工位人员姓名")] + [ImporterHeader(Name = "工位人员姓名")] + public string OperatorName { get; set; } + /// + /// 是否有资质(Y,N) + /// + [ExporterHeader(DisplayName = "是否有资质(Y,N)")] + [ImporterHeader(Name = "是否有资质(Y,N)")] + public string HaveQuantity { get; set; } + /// + /// 供应商修改时间,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "供应商修改时间")] + [ImporterHeader(Name = "供应商修改时间")] + public string DataUpdateTime { get; set; } + /// + /// 岗位代码 + /// + [ExporterHeader(DisplayName = "岗位代码")] + [ImporterHeader(Name = "岗位代码")] + public string PositionId { get; set; } + /// + /// 岗位名称 + /// + [ExporterHeader(DisplayName = "岗位名称")] + [ImporterHeader(Name = "岗位名称")] + public string PositionName { get; set; } + /// + /// 资质等级(Level_4,Level_3,Level_2,Level_1) + /// + [ExporterHeader(DisplayName = "资质等级")] + [ImporterHeader(Name = "资质等级")] + public string QualificationLevel { get; set; } + /// + /// 资质获取时间 + /// + [ExporterHeader(DisplayName = "资质获取时间")] + [ImporterHeader(Name = "资质获取时间")] + public string CheckInTime { get; set; } + /// + /// 资质失去时间 + /// + [ExporterHeader(DisplayName = "资质失去时间")] + [ImporterHeader(Name = "资质失去时间")] + public string CheckOutTime { get; set; } + } +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_INFO_DT_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_INFO_DT_DTO.cs new file mode 100644 index 0000000..6de67b5 --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_INFO_DT_DTO.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 +{ + /// + /// 供应商基础信息 + /// + public class SUPPLIER_INFO_DT_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 工厂代码 + /// + [ExporterHeader(DisplayName = "工厂代码")] + [ImporterHeader(Name = "工厂代码")] + public string PlantId { get; set; } + /// + /// 工厂名称 + /// + [ExporterHeader(DisplayName = "工厂名称")] + [ImporterHeader(Name = "工厂名称")] + public string PlantName { get; set; } + /// + /// 车间代码 + /// + [ExporterHeader(DisplayName = "车间代码")] + [ImporterHeader(Name = "车间代码")] + public string WorkshopId { get; set; } + /// + /// 车间名称 + /// + [ExporterHeader(DisplayName = "车间名称")] + [ImporterHeader(Name = "车间名称")] + public string WorkshopName { get; set; } + /// + /// 产线代码 + /// + [ExporterHeader(DisplayName = "产线代码")] + [ImporterHeader(Name = "产线代码")] + public string ProductionLineId { get; set; } + /// + /// 产线名称 + /// + [ExporterHeader(DisplayName = "产线名称")] + [ImporterHeader(Name = "产线名称")] + public string ProductionLineName { get; set; } + /// + /// 工位代码 + /// + [ExporterHeader(DisplayName = "工位代码")] + [ImporterHeader(Name = "工位代码")] + public string StationId { get; set; } + /// + /// 工位名称 + /// + [ExporterHeader(DisplayName = "工位名称")] + [ImporterHeader(Name = "工位名称")] + public string StationName { get; set; } + /// + /// 是否关键工位(Y/N) + /// + [ExporterHeader(DisplayName = "是否关键工位(Y/N)")] + [ImporterHeader(Name = "是否关键工位(Y/N)")] + public string KeyStation { get; set; } + /// + /// 供应商修改时间,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "供应商修改时间")] + [ImporterHeader(Name = "供应商修改时间")] + public string DataUpdateTime { get; set; } + /// + /// 产线顺序 + /// + [ExporterHeader(DisplayName = "产线顺序")] + [ImporterHeader(Name = "产线顺序")] + public decimal ProductionLineOrder { get; set; } + /// + /// 工位顺序 + /// + [ExporterHeader(DisplayName = "工位顺序")] + [ImporterHeader(Name = "工位顺序")] + public decimal StationOrder { get; set; } + /// + /// 供应商总成零件号 + /// + [ExporterHeader(DisplayName = "供应商总成零件号")] + [ImporterHeader(Name = "供应商总成零件号")] + public string VendorProductNo { get; set; } + /// + /// 供应商总成零件名称 + /// + [ExporterHeader(DisplayName = "供应商总成零件名称")] + [ImporterHeader(Name = "供应商总成零件名称")] + public string VendorProductName { get; set; } + /// + /// 奇瑞零件号 + /// + [ExporterHeader(DisplayName = "奇瑞零件号")] + [ImporterHeader(Name = "奇瑞零件号")] + public string CheryProductNo { get; set; } + /// + /// 奇瑞零件名称 + /// + [ExporterHeader(DisplayName = "奇瑞零件名称")] + [ImporterHeader(Name = "奇瑞零件名称")] + public string CheryProductName { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_ATTACHMENT_DATA_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_ATTACHMENT_DATA_DTO.cs new file mode 100644 index 0000000..54f54be --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_ATTACHMENT_DATA_DTO.cs @@ -0,0 +1,115 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity.Entitys +{ + /// + /// 附件类数据 + /// + public class SUPPLIER_PRO_ATTACHMENT_DATA_DTO + { + + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 数据类型(1产前管理;2人员资质;3监控视频) + /// + [ExporterHeader(DisplayName = "数据类型")] + [ImporterHeader(Name = "数据类型")] + public string Type { get; set; } + /// + /// 文件名 + /// + [ExporterHeader(DisplayName = "文件名")] + [ImporterHeader(Name = "文件名")] + public string FileName { get; set; } + /// + /// 图文地址 + /// + [ExporterHeader(DisplayName = "图文地址")] + [ImporterHeader(Name = "图文地址")] + public string FileUrl { get; set; } + /// + /// 生成时间,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "生成时间")] + [ImporterHeader(Name = "生成时间")] + public string DateTime { get; set; } + /// + /// 产线名称 + /// + [ExporterHeader(DisplayName = "产线名称")] + [ImporterHeader(Name = "产线名称")] + public string ProductionLineName { get; set; } + /// + /// 产线代码 + /// + [ExporterHeader(DisplayName = "产线代码")] + [ImporterHeader(Name = "产线代码")] + public string ProductionLineId { get; set; } + /// + /// 工位名称 + /// + [ExporterHeader(DisplayName = "工位名称")] + [ImporterHeader(Name = "工位名称")] + public string StationName { get; set; } + /// + /// 工位代码 + /// + [ExporterHeader(DisplayName = "工位代码")] + [ImporterHeader(Name = "工位代码")] + public string StationId { get; set; } + /// + /// 设备名称 + /// + [ExporterHeader(DisplayName = "设备名称")] + [ImporterHeader(Name = "设备名称")] + public string DeviceName { get; set; } + /// + /// 设备编码 + /// + [ExporterHeader(DisplayName = "设备编码")] + [ImporterHeader(Name = "设备编码")] + public string? DeviceId { get; set; } + /// + /// 供应商总成零件号 + /// + [ExporterHeader(DisplayName = "供应商总成零件号")] + [ImporterHeader(Name = "供应商总成零件号")] + public string VendorProductNo { get; set; } + /// + /// 供应商总成零件名称 + /// + [ExporterHeader(DisplayName = "供应商总成零件名称")] + [ImporterHeader(Name = "供应商总成零件名称")] + public string VendorProductName { get; set; } + /// + /// 奇瑞零件号 + /// + [ExporterHeader(DisplayName = "奇瑞零件号")] + [ImporterHeader(Name = "奇瑞零件号")] + public string CheryProductNo { get; set; } + /// + /// 奇瑞零件名称 + /// + [ExporterHeader(DisplayName = "奇瑞零件名称")] + [ImporterHeader(Name = "奇瑞零件名称")] + public string CheryProductName { get; set; } + /// + /// 供应商总成SN码 + /// + [ExporterHeader(DisplayName = "供应商总成SN码")] + [ImporterHeader(Name = "供应商总成SN码")] + public string? VendorProductSn { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_ENVIRONMENT_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_ENVIRONMENT_DTO.cs new file mode 100644 index 0000000..ae3ae92 --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_ENVIRONMENT_DTO.cs @@ -0,0 +1,115 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity.Entitys +{ + /// + /// 环境业务数据 + /// + public class SUPPLIER_PRO_ENVIRONMENT_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 工厂代码 + /// + [ExporterHeader(DisplayName = "工厂代码")] + [ImporterHeader(Name = "工厂代码")] + public string PlantId { get; set; } + /// + /// 工厂名称 + /// + [ExporterHeader(DisplayName = "工厂名称")] + [ImporterHeader(Name = "工厂名称")] + public string PlantName { get; set; } + /// + /// 车间代码 + /// + [ExporterHeader(DisplayName = "车间代码")] + [ImporterHeader(Name = "车间代码")] + public string WorkshopId { get; set; } + /// + /// 车间名称 + /// + [ExporterHeader(DisplayName = "车间名称")] + [ImporterHeader(Name = "车间名称")] + public string WorkshopName { get; set; } + /// + /// 产线代码 + /// + [ExporterHeader(DisplayName = "产线代码")] + [ImporterHeader(Name = "产线代码")] + public string ProductionLineId { get; set; } + /// + /// 产线名称 + /// + [ExporterHeader(DisplayName = "产线名称")] + [ImporterHeader(Name = "产线名称")] + public string ProductionLineName { get; set; } + /// + /// 环境指标名称,例如:温度、湿度、洁净度等 + /// + [ExporterHeader(DisplayName = "环境指标名称")] + [ImporterHeader(Name = "环境指标名称")] + public string EnvIndicatorName { get; set; } + /// + /// 指标实测值,(最大支持11位整数+5位小数) + /// + [ExporterHeader(DisplayName = "指标实测值")] + [ImporterHeader(Name = "指标实测值")] + public decimal? NumValue { get; set; } + /// + /// 上限值,(最大支持11位整数+5位小数) + /// + [ExporterHeader(DisplayName = "上限值")] + [ImporterHeader(Name = "上限值")] + public decimal UpperLimit { get; set; } + /// + /// 下限值,(最大支持11位整数+5位小数) + /// + [ExporterHeader(DisplayName = "下限值")] + [ImporterHeader(Name = "下限值")] + public decimal LowerLimit { get; set; } + /// + /// 单位,相应的单位名称,如度数 + /// + [ExporterHeader(DisplayName = "单位")] + [ImporterHeader(Name = "单位")] + public string ChineseUnit { get; set; } + /// + /// 采集仪器代码,环境采集的仪器/工具代码 + /// + [ExporterHeader(DisplayName = "采集仪器代码")] + [ImporterHeader(Name = "采集仪器代码")] + public string EquipmentCode { get; set; } + /// + /// 采集仪器名称,环境采集的仪器/工具名称 + /// + [ExporterHeader(DisplayName = "采集仪器名称")] + [ImporterHeader(Name = "采集仪器名称")] + public string EquipmentName { get; set; } + /// + /// 数据采集的点位 + /// + [ExporterHeader(DisplayName = "数据采集的点位")] + [ImporterHeader(Name = "数据采集的点位")] + public string? DataCollectionPoint { get; set; } + /// + /// 数据采集的时间,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "数据采集的时间")] + [ImporterHeader(Name = "数据采集的时间")] + public string CollectTime { get; set; } + } + + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_FLAW_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_FLAW_DTO.cs new file mode 100644 index 0000000..32085fe --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_FLAW_DTO.cs @@ -0,0 +1,179 @@ +using Magicodes.ExporterAndImporter.Core; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TaskManager.Entity.Entitys +{ + /// + /// 缺陷业务数据 + /// + public class SUPPLIER_PRO_FLAW_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 工厂代码 + /// + [ExporterHeader(DisplayName = "工厂代码")] + [ImporterHeader(Name = "工厂代码")] + public string PlantId { get; set; } + /// + /// 工厂名称 + /// + [ExporterHeader(DisplayName = "工厂名称")] + [ImporterHeader(Name = "工厂名称")] + public string PlantName { get; set; } + /// + /// 车间代码 + /// + [ExporterHeader(DisplayName = "车间代码")] + [ImporterHeader(Name = "车间代码")] + public string WorkshopId { get; set; } + /// + /// 车间名称 + /// + [ExporterHeader(DisplayName = "车间名称")] + [ImporterHeader(Name = "车间名称")] + public string WorkshopName { get; set; } + /// + /// 产线代码 + /// + [ExporterHeader(DisplayName = "产线代码")] + [ImporterHeader(Name = "产线代码")] + public string ProductionLineId { get; set; } + /// + /// 产线名称 + /// + [ExporterHeader(DisplayName = "产线名称")] + [ImporterHeader(Name = "产线名称")] + public string ProductionLineName { get; set; } + /// + /// 工位代码 + /// + [ExporterHeader(DisplayName = "工位代码")] + [ImporterHeader(Name = "工位代码")] + public string StationId { get; set; } + /// + /// 工位名称 + /// + [ExporterHeader(DisplayName = "工位名称")] + [ImporterHeader(Name = "工位名称")] + public string StationName { get; set; } + /// + /// 缺陷代码 + /// + [ExporterHeader(DisplayName = "缺陷代码")] + [ImporterHeader(Name = "缺陷代码")] + public string DefectsCode { get; set; } + /// + /// 缺陷名称 + /// + [ExporterHeader(DisplayName = "缺陷名称")] + [ImporterHeader(Name = "缺陷名称")] + public string DefectsName { get; set; } + /// + /// 缺陷分类(外观,尺寸,材料,功能,性能,其他) + /// + [ExporterHeader(DisplayName = "缺陷分类")] + [ImporterHeader(Name = "缺陷分类")] + public string ClassOfName { get; set; } + /// + /// 供应商总成零件号 + /// + [ExporterHeader(DisplayName = "供应商总成零件号")] + [ImporterHeader(Name = "供应商总成零件号")] + public string VendorProductNo { get; set; } + /// + /// 供应商总成零件名称 + /// + [ExporterHeader(DisplayName = "供应商总成零件名称")] + [ImporterHeader(Name = "供应商总成零件名称")] + public string VendorProductName { get; set; } + /// + /// 供应商总成批次号 + /// + [ExporterHeader(DisplayName = "供应商总成批次号")] + [ImporterHeader(Name = "供应商总成批次号")] + public string VendorProductBatch { get; set; } + /// + /// 供应商总成SN码 + /// + [ExporterHeader(DisplayName = "供应商总成SN码")] + [ImporterHeader(Name = "供应商总成SN码")] + public string VendorProductSn { get; set; } + /// + /// 奇瑞零件号 + /// + [ExporterHeader(DisplayName = "奇瑞零件号")] + [ImporterHeader(Name = "奇瑞零件号")] + public string CheryProductNo { get; set; } + /// + /// 奇瑞零件名称 + /// + [ExporterHeader(DisplayName = "奇瑞零件名称")] + [ImporterHeader(Name = "奇瑞零件名称")] + public string CheryProductName { get; set; } + /// + /// 奇瑞SN码 + /// + [ExporterHeader(DisplayName = "奇瑞SN码")] + [ImporterHeader(Name = "奇瑞SN码")] + public string CheryProductSn { get; set; } + /// + /// 生产批次号 + /// + [ExporterHeader(DisplayName = "生产批次号")] + [ImporterHeader(Name = "生产批次号")] + public string ProductBatchNo { get; set; } + /// + /// 生产工单号,或生产批次(工单业务数据) + /// + [ExporterHeader(DisplayName = "生产工单号")] + [ImporterHeader(Name = "生产工单号")] + public string ManufactureNo { get; set; } + /// + /// 班次(白班,晚班,中班) + /// + [ExporterHeader(DisplayName = "班次")] + [ImporterHeader(Name = "班次")] + public string WorkShift { get; set; } + /// + /// 缺陷件数 + /// + [ExporterHeader(DisplayName = "缺陷件数")] + [ImporterHeader(Name = "缺陷件数")] + public decimal Numberofdefect { get; set; } + /// + /// 缺陷描述 + /// + [ExporterHeader(DisplayName = "缺陷描述")] + [ImporterHeader(Name = "缺陷描述")] + public string DefectsDesc { get; set; } + /// + /// 缺陷等级,(1.严重、2.一般、3.轻微) + /// + [ExporterHeader(DisplayName = "缺陷等级")] + [ImporterHeader(Name = "缺陷等级")] + public string DefectsLevel { get; set; } + /// + /// 缺陷录入时间,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "缺陷录入时间")] + [ImporterHeader(Name = "缺陷录入时间")] + public string StatisticalTime { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_MATERIAL_DATA_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_MATERIAL_DATA_DTO.cs new file mode 100644 index 0000000..0d272eb --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_MATERIAL_DATA_DTO.cs @@ -0,0 +1,132 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity.Entitys +{ + /// + /// 物料主数据 + /// + public class SUPPLIER_PRO_MATERIAL_DATA_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 供应商物料号 + /// + [ExporterHeader(DisplayName = "供应商物料号")] + [ImporterHeader(Name = "供应商物料号")] + public string VendorProductNo { get; set; } + /// + /// 供应商物料名称 + /// + [ExporterHeader(DisplayName = "供应商物料名称")] + [ImporterHeader(Name = "供应商物料名称")] + public string VendorProductName { get; set; } + /// + /// 类型(成品,半成品,原材料) + /// + [ExporterHeader(DisplayName = "类型")] + [ImporterHeader(Name = "类型")] + public decimal Type { get; set; } + /// + /// 供应商零件版本号 + /// + [ExporterHeader(DisplayName = "供应商零件版本号")] + [ImporterHeader(Name = "供应商零件版本号")] + public string? VendorHardwareRevision { get; set; } + /// + /// 奇瑞零件号 + /// + [ExporterHeader(DisplayName = "奇瑞零件号")] + [ImporterHeader(Name = "奇瑞零件号")] + public string CheryProductNo { get; set; } + /// + /// 奇瑞零件名称 + /// + [ExporterHeader(DisplayName = "奇瑞零件名称")] + [ImporterHeader(Name = "奇瑞零件名称")] + public string CheryProductName { get; set; } + /// + /// 奇瑞硬件版本号 + /// + [ExporterHeader(DisplayName = "奇瑞硬件版本号")] + [ImporterHeader(Name = "奇瑞硬件版本号")] + public string OemHardwareRevision { get; set; } + /// + /// 奇瑞软件版本号 + /// + [ExporterHeader(DisplayName = "奇瑞软件版本号")] + [ImporterHeader(Name = "奇瑞软件版本号")] + public string? OemSoftwareRevision { get; set; } + /// + /// 车型 + /// + [ExporterHeader(DisplayName = "车型")] + [ImporterHeader(Name = "车型")] + public string? OemModel { get; set; } + /// + /// 项目名称 + /// + [ExporterHeader(DisplayName = "项目名称")] + [ImporterHeader(Name = "项目名称")] + public string? OemProjectName { get; set; } + /// + /// 是否SOP(Y/N) + /// + [ExporterHeader(DisplayName = "是否SOP")] + [ImporterHeader(Name = "是否SOP")] + public string? Launched { get; set; } + /// + /// 数据同步执行时间,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "数据同步执行时间")] + [ImporterHeader(Name = "数据同步执行时间")] + public string? DateTime { get; set; } + /// + /// 供应商工厂代码 + /// + [ExporterHeader(DisplayName = "供应商工厂代码")] + [ImporterHeader(Name = "供应商工厂代码")] + public string? PlantId { get; set; } + /// + /// 供应商工厂名称 + /// + [ExporterHeader(DisplayName = "供应商工厂名称")] + [ImporterHeader(Name = "供应商工厂名称")] + public string? PlantName { get; set; } + /// + /// 芯片采购类型(AVAP,CS,CMcontro) + /// + [ExporterHeader(DisplayName = "芯片采购类型")] + [ImporterHeader(Name = "芯片采购类型")] + public string? ProcurementType { get; set; } + /// + /// 芯片MPN标识码 + /// + [ExporterHeader(DisplayName = "芯片MPN标识码")] + [ImporterHeader(Name = "芯片MPN标识码")] + public string? MpnCode { get; set; } + /// + /// 芯片MPN标识名称 + /// + [ExporterHeader(DisplayName = "芯片MPN标识名称")] + [ImporterHeader(Name = "芯片MPN标识名称")] + public string? MpnName { get; set; } + /// + /// 物料有效期(天) + /// + [ExporterHeader(DisplayName = "物料有效期")] + [ImporterHeader(Name = "物料有效期")] + public string ValidDays { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE_DTO.cs new file mode 100644 index 0000000..778b0a6 --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE_DTO.cs @@ -0,0 +1,150 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity.Entitys +{ + /// + /// 设备OEE达成率 + /// + public class SUPPLIER_PRO_OEE_ACHIEVEMENT_RATE_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 工厂代码 + /// + [ExporterHeader(DisplayName = "工厂代码")] + [ImporterHeader(Name = "工厂代码")] + public string PlantId { get; set; } + /// + /// 工厂名称 + /// + [ExporterHeader(DisplayName = "工厂名称")] + [ImporterHeader(Name = "工厂名称")] + public string PlantName { get; set; } + /// + /// 车间代码 + /// + [ExporterHeader(DisplayName = "车间代码")] + [ImporterHeader(Name = "车间代码")] + public string WorkshopId { get; set; } + /// + /// 车间名称 + /// + [ExporterHeader(DisplayName = "车间名称")] + [ImporterHeader(Name = "车间名称")] + public string WorkshopName { get; set; } + /// + /// 产线代码 + /// + [ExporterHeader(DisplayName = "产线代码")] + [ImporterHeader(Name = "产线代码")] + public string ProductionLineId { get; set; } + /// + /// 产线名称 + /// + [ExporterHeader(DisplayName = "产线名称")] + [ImporterHeader(Name = "产线名称")] + public string ProductionLineName { get; set; } + /// + /// 工位代码 + /// + [ExporterHeader(DisplayName = "工位代码")] + [ImporterHeader(Name = "工位代码")] + public string StationId { get; set; } + /// + /// 工位名称 + /// + [ExporterHeader(DisplayName = "工位名称")] + [ImporterHeader(Name = "工位名称")] + public string StationName { get; set; } + /// + /// 设备代码 + /// + [ExporterHeader(DisplayName = "设备代码")] + [ImporterHeader(Name = "设备代码")] + public string DeviceId { get; set; } + /// + /// 设备名称 + /// + [ExporterHeader(DisplayName = "设备名称")] + [ImporterHeader(Name = "设备名称")] + public string? DeviceName { get; set; } + /// + /// 奇瑞零件号 + /// + [ExporterHeader(DisplayName = "奇瑞零件号")] + [ImporterHeader(Name = "奇瑞零件号")] + public string CheryProductNo { get; set; } + /// + /// 奇瑞零件名称 + /// + [ExporterHeader(DisplayName = "奇瑞零件名称")] + [ImporterHeader(Name = "奇瑞零件名称")] + public string CheryProductName { get; set; } + /// + /// 供应商总成零件号 + /// + [ExporterHeader(DisplayName = "供应商总成零件号")] + [ImporterHeader(Name = "供应商总成零件号")] + public string VendorProductNo { get; set; } + /// + /// 供应商总成零件名称 + /// + [ExporterHeader(DisplayName = "供应商总成零件名称")] + [ImporterHeader(Name = "供应商总成零件名称")] + public string VendorProductName { get; set; } + /// + /// 生产批次号 + /// + [ExporterHeader(DisplayName = "生产批次号")] + [ImporterHeader(Name = "生产批次号")] + public string ProductBatchNo { get; set; } + /// + /// 生产工单号 + /// + [ExporterHeader(DisplayName = "生产工单号")] + [ImporterHeader(Name = "生产工单号")] + public string ManufactureNo { get; set; } + /// + /// OEE实际值 + /// + [ExporterHeader(DisplayName = "OEE实际值")] + [ImporterHeader(Name = "OEE实际值")] + public decimal Rate { get; set; } + /// + /// OEE目标值 + /// + [ExporterHeader(DisplayName = "OEE目标值")] + [ImporterHeader(Name = "OEE目标值")] + public decimal RateTagValue { get; set; } + /// + /// 班次(白班,晚班,中班) + /// + [ExporterHeader(DisplayName = "班次")] + [ImporterHeader(Name = "班次")] + public string WorkShift { get; set; } + /// + /// 生产日期,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "生产日期")] + [ImporterHeader(Name = "生产日期")] + public string StatisticalTime { get; set; } + /// + /// 值统计时间,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "值统计时间")] + [ImporterHeader(Name = "值统计时间")] + public string DateTime { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_OEE_TIME_DETAILS_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_OEE_TIME_DETAILS_DTO.cs new file mode 100644 index 0000000..79bc4b2 --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_OEE_TIME_DETAILS_DTO.cs @@ -0,0 +1,120 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity.Entitys +{ + /// + /// OEE时间明细 + /// + public class SUPPLIER_PRO_OEE_TIME_DETAILS_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 工厂代码 + /// + [ExporterHeader(DisplayName = "工厂代码")] + [ImporterHeader(Name = "工厂代码")] + public string PlantId { get; set; } + /// + /// 工厂名称 + /// + [ExporterHeader(DisplayName = "工厂名称")] + [ImporterHeader(Name = "工厂名称")] + public string PlantName { get; set; } + /// + /// 车间代码 + /// + [ExporterHeader(DisplayName = "车间代码")] + [ImporterHeader(Name = "车间代码")] + public string WorkshopId { get; set; } + /// + /// 车间名称 + /// + [ExporterHeader(DisplayName = "")] + [ImporterHeader(Name = "")] + public string? WorkshopName { get; set; } + /// + /// 产线代码 + /// + [ExporterHeader(DisplayName = "产线代码")] + [ImporterHeader(Name = "产线代码")] + public string ProductionLineId { get; set; } + /// + /// 产线名称 + /// + [ExporterHeader(DisplayName = "产线名称")] + [ImporterHeader(Name = "产线名称")] + public string? ProductionLineName { get; set; } + /// + /// 工位代码 + /// + [ExporterHeader(DisplayName = "工位代码")] + [ImporterHeader(Name = "工位代码")] + public string StationId { get; set; } + /// + /// 工位名称 + /// + [ExporterHeader(DisplayName = "工位名称")] + [ImporterHeader(Name = "工位名称")] + public string StationName { get; set; } + /// + /// 设备代码 + /// + [ExporterHeader(DisplayName = "设备代码")] + [ImporterHeader(Name = "设备代码")] + public string DeviceId { get; set; } + /// + /// 设备名称 + /// + [ExporterHeader(DisplayName = "设备名称")] + [ImporterHeader(Name = "设备名称")] + public string DeviceName { get; set; } + /// + /// 记录ID + /// + [ExporterHeader(DisplayName = "记录ID")] + [ImporterHeader(Name = "记录ID")] + public string RecId { get; set; } + /// + /// 大类(1计划工作,2计划停机,3非计划停机) + /// + [ExporterHeader(DisplayName = "大类")] + [ImporterHeader(Name = "大类")] + public string Type { get; set; } + /// + /// 小类编码 + /// + [ExporterHeader(DisplayName = "小类编码")] + [ImporterHeader(Name = "小类编码")] + public string SubType { get; set; } + /// + /// 小类描述 + /// + [ExporterHeader(DisplayName = "小类描述")] + [ImporterHeader(Name = "小类描述")] + public string SubTypeName { get; set; } + /// + /// 开始时间,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "开始时间")] + [ImporterHeader(Name = "开始时间")] + public string StartTime { get; set; } + /// + /// 结束时间,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "结束时间")] + [ImporterHeader(Name = "结束时间")] + public string EndTime { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_PROCESS_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_PROCESS_DTO.cs new file mode 100644 index 0000000..e8168e0 --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_PROCESS_DTO.cs @@ -0,0 +1,126 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity.Entitys +{ + /// + /// 工艺 + /// + public class SUPPLIER_PRO_PROCESS_DTO + { + /// + /// 奇瑞零件号 + /// + [ExporterHeader(DisplayName = "奇瑞零件号")] + [ImporterHeader(Name = "奇瑞零件号")] + public string CheryProductNo { get; set; } + /// + /// 奇瑞零件名称 + /// + [ExporterHeader(DisplayName = "奇瑞零件名称")] + [ImporterHeader(Name = "奇瑞零件名称")] + public string CheryProductName { get; set; } + /// + /// 供应商总成零件号 + /// + [ExporterHeader(DisplayName = "供应商总成零件号")] + [ImporterHeader(Name = "供应商总成零件号")] + public string VendorProductNo { get; set; } + /// + /// 供应商总成零件名称 + /// + [ExporterHeader(DisplayName = "供应商总成零件名称")] + [ImporterHeader(Name = "供应商总成零件名称")] + public string VendorProductName { get; set; } + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 工艺编码 + /// + [ExporterHeader(DisplayName = "工艺编码")] + [ImporterHeader(Name = "工艺编码")] + public string TechCode { get; set; } + /// + /// 工艺名称 + /// + [ExporterHeader(DisplayName = "工艺名称")] + [ImporterHeader(Name = "工艺名称")] + public string TechName { get; set; } + /// + /// 有效期,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "有效期")] + [ImporterHeader(Name = "有效期")] + public string ValidPeriod { get; set; } + /// + /// 工艺版本 + /// + [ExporterHeader(DisplayName = "工艺版本")] + [ImporterHeader(Name = "工艺版本")] + public string TechVersion { get; set; } + /// + /// 模具编码 + /// + [ExporterHeader(DisplayName = "模具编码")] + [ImporterHeader(Name = "模具编码")] + public string MoldCode { get; set; } + /// + /// 模具名称 + /// + [ExporterHeader(DisplayName = "模具名称")] + [ImporterHeader(Name = "模具名称")] + public string MoldName { get; set; } + /// + /// 最大加工能力 + /// + [ExporterHeader(DisplayName = "最大加工能力")] + [ImporterHeader(Name = "最大加工能力")] + public string MaxProcessingCapacity { get; set; } + /// + /// 工序编码 + /// + [ExporterHeader(DisplayName = "工序编码")] + [ImporterHeader(Name = "工序编码")] + public string ProcessCode { get; set; } + /// + /// 工序名称 + /// + [ExporterHeader(DisplayName = "工序名称")] + [ImporterHeader(Name = "工序名称")] + public string ProcessName { get; set; } + /// + /// 工序顺序号 + /// + [ExporterHeader(DisplayName = "工序顺序号")] + [ImporterHeader(Name = "工序顺序号")] + public decimal ProcessOrder { get; set; } + /// + /// 设备编码 + /// + [ExporterHeader(DisplayName = "设备编码")] + [ImporterHeader(Name = "设备编码")] + public string DeviceCode { get; set; } + /// + /// 工序节拍 + /// + [ExporterHeader(DisplayName = "工序节拍")] + [ImporterHeader(Name = "工序节拍")] + public decimal Rhythm { get; set; } + /// + /// 节拍单位 + /// + [ExporterHeader(DisplayName = "节拍单位")] + [ImporterHeader(Name = "节拍单位")] + public string RhythmUnit { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_PROCESS_EQUIPMENT_DT.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_PROCESS_EQUIPMENT_DT.cs new file mode 100644 index 0000000..3e0f034 --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_PROCESS_EQUIPMENT_DT.cs @@ -0,0 +1,192 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity.Entitys +{ + /// + /// 工艺装备 + /// + public class SUPPLIER_PRO_PROCESS_EQUIPMENT_DT + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 奇瑞零件号 + /// + [ExporterHeader(DisplayName = "奇瑞零件号")] + [ImporterHeader(Name = "奇瑞零件号")] + public string CheryProductNo { get; set; } + /// + /// 奇瑞零件名称 + /// + [ExporterHeader(DisplayName = "奇瑞零件名称")] + [ImporterHeader(Name = "奇瑞零件名称")] + public string CheryProductName { get; set; } + /// + /// 供应商总成零件号 + /// + [ExporterHeader(DisplayName = "供应商总成零件号")] + [ImporterHeader(Name = "供应商总成零件号")] + public string VendorProductNo { get; set; } + /// + /// 供应商总成零件名称 + /// + [ExporterHeader(DisplayName = "供应商总成零件名称")] + [ImporterHeader(Name = "供应商总成零件名称")] + public string VendorProductName { get; set; } + /// + /// 工艺装备类型分类(1模具;2检具;3夹具) + /// + [ExporterHeader(DisplayName = "工艺装备类型分类")] + [ImporterHeader(Name = "工艺装备类型分类")] + public decimal DeviceType { get; set; } + /// + /// 工艺装备编码 + /// + [ExporterHeader(DisplayName = "工艺装备编码")] + [ImporterHeader(Name = "工艺装备编码")] + public string DeviceCode { get; set; } + /// + /// 工艺装备名称 + /// + [ExporterHeader(DisplayName = "工艺装备名称")] + [ImporterHeader(Name = "工艺装备名称")] + public string DeviceName { get; set; } + /// + /// 生产厂家 + /// + [ExporterHeader(DisplayName = "生产厂家")] + [ImporterHeader(Name = "生产厂家")] + public string Manufacturer { get; set; } + /// + /// 工艺装备型号 + /// + [ExporterHeader(DisplayName = "工艺装备型号")] + [ImporterHeader(Name = "工艺装备型号")] + public string ModelNumber { get; set; } + /// + /// 工艺装备序列号 + /// + [ExporterHeader(DisplayName = "工艺装备序列号")] + [ImporterHeader(Name = "工艺装备序列号")] + public string SerialNumber { get; set; } + /// + /// 工艺装备制造日期,格式(yyyy-MM-dd) + /// + [ExporterHeader(DisplayName = "工艺装备制造日期")] + [ImporterHeader(Name = "工艺装备制造日期")] + public string ProductionDate { get; set; } + /// + /// 主要材质 + /// + [ExporterHeader(DisplayName = "主要材质")] + [ImporterHeader(Name = "主要材质")] + public string Material { get; set; } + /// + /// 当前存放地点 + /// + [ExporterHeader(DisplayName = "当前存放地点")] + [ImporterHeader(Name = "当前存放地点")] + public string CurrentLocation { get; set; } + /// + /// 工艺装备状态 + /// + [ExporterHeader(DisplayName = "工艺装备状态")] + [ImporterHeader(Name = "工艺装备状态")] + public string DeviceStatus { get; set; } + /// + /// 穴腔数量 + /// + [ExporterHeader(DisplayName = "穴腔数量")] + [ImporterHeader(Name = "穴腔数量")] + public decimal CavityCount { get; set; } + /// + /// 模具尺寸规格 + /// + [ExporterHeader(DisplayName = "模具尺寸规格")] + [ImporterHeader(Name = "模具尺寸规格")] + public string MoldSize { get; set; } + /// + /// 设计寿命单位 + /// + [ExporterHeader(DisplayName = "设计寿命单位")] + [ImporterHeader(Name = "设计寿命单位")] + public string DesignLifeUnits { get; set; } + /// + /// 设计寿命 + /// + [ExporterHeader(DisplayName = "设计寿命")] + [ImporterHeader(Name = "设计寿命")] + public string DesignLifeValue { get; set; } + /// + /// 当前剩余寿命, + /// + [ExporterHeader(DisplayName = "当前剩余寿命")] + [ImporterHeader(Name = "当前剩余寿命")] + public string CurrentUsageCount { get; set; } + /// + /// 模具大修次数 + /// + [ExporterHeader(DisplayName = "模具大修次数")] + [ImporterHeader(Name = "模具大修次数")] + public decimal OverhaulCount { get; set; } + /// + /// 图纸编号描述 + /// + [ExporterHeader(DisplayName = "图纸编号描述")] + [ImporterHeader(Name = "图纸编号描述")] + public string CoolingChannelLayout { get; set; } + /// + /// 检测精度 + /// + [ExporterHeader(DisplayName = "检测精度")] + [ImporterHeader(Name = "检测精度")] + public string DetectionAccuracy { get; set; } + /// + /// 最近校准日期,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "最近校准日期")] + [ImporterHeader(Name = "最近校准日期")] + public string CalibrationDate { get; set; } + /// + /// 校准到期天数 + /// + [ExporterHeader(DisplayName = "校准到期天数")] + [ImporterHeader(Name = "校准到期天数")] + public string CalibrationDueDays { get; set; } + /// + /// 允许误差范围 + /// + [ExporterHeader(DisplayName = "允许误差范围")] + [ImporterHeader(Name = "允许误差范围")] + public string ToleranceRange { get; set; } + /// + /// 磨损阈值 + /// + [ExporterHeader(DisplayName = "磨损阈值")] + [ImporterHeader(Name = "磨损阈值")] + public string WearThreshold { get; set; } + /// + /// 检测范围 + /// + [ExporterHeader(DisplayName = "检测范围")] + [ImporterHeader(Name = "检测范围")] + public string DetectionRange { get; set; } + /// + /// 检测单位 + /// + [ExporterHeader(DisplayName = "检测单位")] + [ImporterHeader(Name = "检测单位")] + public string UnitType { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_PROCESS_EQUIPMENT_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_PROCESS_EQUIPMENT_DTO.cs new file mode 100644 index 0000000..0cb3a83 --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_PRO_PROCESS_EQUIPMENT_DTO.cs @@ -0,0 +1,192 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity.Entitys +{ + /// + /// 工艺装备 + /// + public class SUPPLIER_PRO_PROCESS_EQUIPMENT_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 奇瑞零件号 + /// + [ExporterHeader(DisplayName = "奇瑞零件号")] + [ImporterHeader(Name = "奇瑞零件号")] + public string CheryProductNo { get; set; } + /// + /// 奇瑞零件名称 + /// + [ExporterHeader(DisplayName = "奇瑞零件名称")] + [ImporterHeader(Name = "奇瑞零件名称")] + public string CheryProductName { get; set; } + /// + /// 供应商总成零件号 + /// + [ExporterHeader(DisplayName = "供应商总成零件号")] + [ImporterHeader(Name = "供应商总成零件号")] + public string VendorProductNo { get; set; } + /// + /// 供应商总成零件名称 + /// + [ExporterHeader(DisplayName = "供应商总成零件名称")] + [ImporterHeader(Name = "供应商总成零件名称")] + public string VendorProductName { get; set; } + /// + /// 工艺装备类型分类(1模具;2检具;3夹具) + /// + [ExporterHeader(DisplayName = "工艺装备类型分类")] + [ImporterHeader(Name = "工艺装备类型分类")] + public decimal DeviceType { get; set; } + /// + /// 工艺装备编码 + /// + [ExporterHeader(DisplayName = "工艺装备编码")] + [ImporterHeader(Name = "工艺装备编码")] + public string DeviceCode { get; set; } + /// + /// 工艺装备名称 + /// + [ExporterHeader(DisplayName = "工艺装备名称")] + [ImporterHeader(Name = "工艺装备名称")] + public string DeviceName { get; set; } + /// + /// 生产厂家 + /// + [ExporterHeader(DisplayName = "生产厂家")] + [ImporterHeader(Name = "生产厂家")] + public string Manufacturer { get; set; } + /// + /// 工艺装备型号 + /// + [ExporterHeader(DisplayName = "工艺装备型号")] + [ImporterHeader(Name = "工艺装备型号")] + public string ModelNumber { get; set; } + /// + /// 工艺装备序列号 + /// + [ExporterHeader(DisplayName = "工艺装备序列号")] + [ImporterHeader(Name = "工艺装备序列号")] + public string SerialNumber { get; set; } + /// + /// 工艺装备制造日期,格式(yyyy-MM-dd) + /// + [ExporterHeader(DisplayName = "工艺装备制造日期")] + [ImporterHeader(Name = "工艺装备制造日期")] + public string ProductionDate { get; set; } + /// + /// 主要材质 + /// + [ExporterHeader(DisplayName = "主要材质")] + [ImporterHeader(Name = "主要材质")] + public string Material { get; set; } + /// + /// 当前存放地点 + /// + [ExporterHeader(DisplayName = "当前存放地点")] + [ImporterHeader(Name = "当前存放地点")] + public string CurrentLocation { get; set; } + /// + /// 工艺装备状态 + /// + [ExporterHeader(DisplayName = "工艺装备状态")] + [ImporterHeader(Name = "工艺装备状态")] + public string DeviceStatus { get; set; } + /// + /// 穴腔数量 + /// + [ExporterHeader(DisplayName = "穴腔数量")] + [ImporterHeader(Name = "穴腔数量")] + public decimal CavityCount { get; set; } + /// + /// 模具尺寸规格 + /// + [ExporterHeader(DisplayName = "模具尺寸规格")] + [ImporterHeader(Name = "模具尺寸规格")] + public string MoldSize { get; set; } + /// + /// 设计寿命单位 + /// + [ExporterHeader(DisplayName = "设计寿命单位")] + [ImporterHeader(Name = "设计寿命单位")] + public string DesignLifeUnits { get; set; } + /// + /// 设计寿命 + /// + [ExporterHeader(DisplayName = "设计寿命")] + [ImporterHeader(Name = "设计寿命")] + public string DesignLifeValue { get; set; } + /// + /// 当前剩余寿命, + /// + [ExporterHeader(DisplayName = "当前剩余寿命")] + [ImporterHeader(Name = "当前剩余寿命")] + public string CurrentUsageCount { get; set; } + /// + /// 模具大修次数 + /// + [ExporterHeader(DisplayName = "模具大修次数")] + [ImporterHeader(Name = "模具大修次数")] + public decimal OverhaulCount { get; set; } + /// + /// 图纸编号描述 + /// + [ExporterHeader(DisplayName = "图纸编号描述")] + [ImporterHeader(Name = "图纸编号描述")] + public string CoolingChannelLayout { get; set; } + /// + /// 检测精度 + /// + [ExporterHeader(DisplayName = "检测精度")] + [ImporterHeader(Name = "检测精度")] + public string DetectionAccuracy { get; set; } + /// + /// 最近校准日期,格式(yyyy-MM-ddHH:mm:ss) + /// + [ExporterHeader(DisplayName = "最近校准日期")] + [ImporterHeader(Name = "最近校准日期")] + public string CalibrationDate { get; set; } + /// + /// 校准到期天数 + /// + [ExporterHeader(DisplayName = "校准到期天数")] + [ImporterHeader(Name = "校准到期天数")] + public string CalibrationDueDays { get; set; } + /// + /// 允许误差范围 + /// + [ExporterHeader(DisplayName = "允许误差范围")] + [ImporterHeader(Name = "允许误差范围")] + public string ToleranceRange { get; set; } + /// + /// 磨损阈值 + /// + [ExporterHeader(DisplayName = "磨损阈值")] + [ImporterHeader(Name = "磨损阈值")] + public string WearThreshold { get; set; } + /// + /// 检测范围 + /// + [ExporterHeader(DisplayName = "检测范围")] + [ImporterHeader(Name = "检测范围")] + public string DetectionRange { get; set; } + /// + /// 检测单位 + /// + [ExporterHeader(DisplayName = "检测单位")] + [ImporterHeader(Name = "检测单位")] + public string UnitType { get; set; } + } + +} diff --git a/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_SINV_DATA_DTO.cs b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_SINV_DATA_DTO.cs new file mode 100644 index 0000000..5d9649f --- /dev/null +++ b/API/TaskManager.Contracts/Dtos/10_17/SUPPLIER_SINV_DATA_DTO.cs @@ -0,0 +1,90 @@ +using Magicodes.ExporterAndImporter.Core; + +namespace TaskManager.Entity +{ + /// + /// 供应商共享库存 + /// + public class SUPPLIER_SINV_DATA_DTO + { + /// + /// 供应商代码 + /// + [ExporterHeader(DisplayName = "供应商代码")] + [ImporterHeader(Name = "供应商代码")] + public string SupplierCode { get; set; } + /// + /// 供应商名称 + /// + [ExporterHeader(DisplayName = "供应商名称")] + [ImporterHeader(Name = "供应商名称")] + public string SupplierName { get; set; } + /// + /// 零件号 + /// + [ExporterHeader(DisplayName = "零件号")] + [ImporterHeader(Name = "零件号")] + public string MaterialCode { get; set; } + /// + /// 零件名称 + /// + [ExporterHeader(DisplayName = "零件名称")] + [ImporterHeader(Name = "零件名称")] + public string MaterialDescription { get; set; } + /// + /// 物料类型(成品,半成品,原材料) + /// + [ExporterHeader(DisplayName = "物料类型")] + [ImporterHeader(Name = "物料类型")] + public string MaterialType { get; set; } + /// + /// 当前库存数量 + /// + [ExporterHeader(DisplayName = "当前库存数量")] + [ImporterHeader(Name = "当前库存数量")] + public decimal QuantityCurrent { get; set; } + /// + /// 原材料在途数量 + /// + [ExporterHeader(DisplayName = "原材料在途数量")] + [ImporterHeader(Name = "原材料在途数量")] + public decimal QuantityPlan { get; set; } + /// + /// 库存状态(生产件,呆滞件,备件,KD件) + /// + [ExporterHeader(DisplayName = "库存状态")] + [ImporterHeader(Name = "库存状态")] + public string InventoryStatus { get; set; } + /// + /// 安全库存 + /// + [ExporterHeader(DisplayName = "安全库存")] + [ImporterHeader(Name = "安全库存")] + public decimal SafetyStock { get; set; } + /// + /// 生产/采购周期:成品即半成品为生产周期(天),原材料为采购周期(天) + /// + [ExporterHeader(DisplayName = "生产/采购周期")] + [ImporterHeader(Name = "生产/采购周期")] + public string ProductionCycle { get; set; } + /// + /// 库存更新时间-格式:yyyy-MM-ddHH:mm:ss + /// + [ExporterHeader(DisplayName = "库存更新时间")] + [ImporterHeader(Name = "库存更新时间")] + public string DataUpdateTime { get; set; } + /// + /// 批次 + /// + [ExporterHeader(DisplayName = "批次")] + [ImporterHeader(Name = "批次")] + public string? SupplierBatch { get; set; } + /// + /// 有效期截止日期 非必填 + /// + [ExporterHeader(DisplayName = "有效期截止日期")] + [ImporterHeader(Name = "有效期截止日期")] + public string? SupplieryxqDate { get; set; } + } + +} diff --git a/API/TaskManager.Entity/Entity.cs b/API/TaskManager.Entity/Entity.cs index 9cc3261..6adf0cd 100644 --- a/API/TaskManager.Entity/Entity.cs +++ b/API/TaskManager.Entity/Entity.cs @@ -240,7 +240,7 @@ namespace TaskManager.Entity /// 数据总量(任务处理的数据条目数) /// public int DataCount { get; set; } - [ExporterHeader(DisplayName = "发布客户")] + [ExporterHeader(DisplayName = "客户名")] /// /// 发布给那个客户 /// diff --git a/API/Wood.Admin.WebApi/Startup.cs b/API/Wood.Admin.WebApi/Startup.cs index f777392..042d041 100644 --- a/API/Wood.Admin.WebApi/Startup.cs +++ b/API/Wood.Admin.WebApi/Startup.cs @@ -97,50 +97,50 @@ namespace Wood.Admin.WebApi services.AddSqlSugar(Configuration); services.AddHttpClient(); - services.AddScoped(); + //services.AddScoped(); - services.AddScoped(); + //services.AddScoped(); - // 注册所有需要通过 GetRequiredService 获取的服务 + //// 注册所有需要通过 GetRequiredService 获取的服务 - // 1. 整车月度生产计划相关 - services.AddScoped(); + //// 1. 整车月度生产计划相关 + //services.AddScoped(); - // 2. M+6月物料需求计划相关 - services.AddScoped(); + //// 2. M+6月物料需求计划相关 + //services.AddScoped(); - // 3. 日物料需求计划相关 - services.AddScoped(); + //// 3. 日物料需求计划相关 + //services.AddScoped(); - // 4. 计划协议相关 - services.AddScoped(); + //// 4. 计划协议相关 + //services.AddScoped(); - // 5. 采购订单相关 - services.AddScoped(); + //// 5. 采购订单相关 + //services.AddScoped(); - // 6. 过焊装未过总装相关 - services.AddScoped(); + //// 6. 过焊装未过总装相关 + //services.AddScoped(); - // 7. 过涂装未过总装相关 - services.AddScoped(); // 注意类型名是否包含大小写问题(如驼峰命名) + //// 7. 过涂装未过总装相关 + //services.AddScoped(); // 注意类型名是否包含大小写问题(如驼峰命名) - // 8. 排序供货相关 - services.AddScoped(); + //// 8. 排序供货相关 + //services.AddScoped(); - // 9. 看板配送单相关 - services.AddScoped(); + //// 9. 看板配送单相关 + //services.AddScoped(); - // 10. 退货单相关 - services.AddScoped(); + //// 10. 退货单相关 + //services.AddScoped(); - // 11. 奇瑞RDC共享库存相关 - services.AddScoped(); + //// 11. 奇瑞RDC共享库存相关 + //services.AddScoped(); - // 12. 日MRP预警推移相关 - services.AddScoped(); + //// 12. 日MRP预警推移相关 + //services.AddScoped(); - // 13. 供应商共享库存相关 - services.AddScoped(); + //// 13. 供应商共享库存相关 + //services.AddScoped(); // 14. 风险确认相关服务(如果类型名正确) @@ -217,8 +217,22 @@ namespace Wood.Admin.WebApi //添加跨域 //services.AddCors(); - services.AddCors(); - + //services.AddCors(); + + + services.AddCors(options => + { + options.AddPolicy("AllowAll", builder => + { + builder + .AllowAnyOrigin() // 允许所有来源 + .AllowAnyMethod() // 允许所有 HTTP 方法(GET、POST 等) + .AllowAnyHeader(); // 允许所有请求头 + }); + }); + + + //添加缓存支持 services.AddMemoryCache(); @@ -265,10 +279,10 @@ namespace Wood.Admin.WebApi services.AddAuthorization(); // 添加 Quartz 服务 - services.AddQuartz(q => - { - q.UseSimpleTypeLoader(); - }); + //services.AddQuartz(q => + //{ + // q.UseSimpleTypeLoader(); + //}); //获取所有Service业务层进行扫描注入 //业务层命名格式:Wood.xxx.Service @@ -387,11 +401,15 @@ namespace Wood.Admin.WebApi //文件拦截中间件 app.UseMiddleware(); - app.UseCors(builder => - { - builder.WithOrigins(GlobalContext.SystemConfig!.AllowCorsSite.Split(',')).AllowAnyHeader().AllowAnyMethod().AllowCredentials(); - }); - app.UseRouting(); + + app.UseCors("AllowAll"); + + + //app.UseCors(builder => + //{ + // builder.WithOrigins(GlobalContext.SystemConfig!.AllowCorsSite.Split(',')).AllowAnyHeader().AllowAnyMethod().AllowCredentials(); + //}); + app.UseRouting(); // 使用身份验证中间件 app.UseAuthentication(); @@ -404,7 +422,7 @@ namespace Wood.Admin.WebApi }); //启用 自动job - app.UseAutoJob(); + //app.UseAutoJob(); //获取所有Service业务层 扫描事件 //业务层命名格式:Wood.xxx.Service diff --git a/API/Wood.Admin.WebApi/Wood.Admin.WebApi.csproj b/API/Wood.Admin.WebApi/Wood.Admin.WebApi.csproj index dd5fcd3..91eb673 100644 --- a/API/Wood.Admin.WebApi/Wood.Admin.WebApi.csproj +++ b/API/Wood.Admin.WebApi/Wood.Admin.WebApi.csproj @@ -59,3 +59,4 @@ + diff --git a/API/Wood.Admin.WebApi/appsettings.json b/API/Wood.Admin.WebApi/appsettings.json index 9fdde1b..abea926 100644 --- a/API/Wood.Admin.WebApi/appsettings.json +++ b/API/Wood.Admin.WebApi/appsettings.json @@ -8,7 +8,7 @@ }, "AllowedHosts": "*", "SystemConfig": { - "AllowCorsSite": "http://127.0.0.1:7005", // 允许的其他站点访问Api + "AllowCorsSite": "http://127.0.0.1:7005,http://localhost:7005,192.168.1.228:7005,192.168.1.228:7630", // 允许的其他站点访问Api "CacheProvider": "Memory", // 缓存使用方式 Memory Redis "RedisConnectionString": "127.0.0.1:6379", //redis 链接字符串 "EnableInitDb": true, //是否开启数据库初始化, diff --git a/API/Wood.Service/Controllers/CheryRecurringJobBaseController.cs b/API/Wood.Service/Controllers/CheryRecurringJobBaseController.cs index 65f6d96..cc3fccb 100644 --- a/API/Wood.Service/Controllers/CheryRecurringJobBaseController.cs +++ b/API/Wood.Service/Controllers/CheryRecurringJobBaseController.cs @@ -16,6 +16,7 @@ using System.Text.RegularExpressions; using System.Threading.Tasks; using TaskManager.Entity; using TaskManager.EntityFramework; +using Wood.Entity; @@ -23,7 +24,7 @@ using TaskManager.EntityFramework; namespace TaskManager.Controllers { [AllowAnonymous] - public class CheryRecurringJobBaseController :ControllerBase, IDoExecute + public class CheryRecurringJobBaseController :ControllerBase, IDoExecute,IScoped { protected string appKey = "8EG566b9bedd2bf46d"; protected string appSecret = "48edc4425647425d87f806a1ba492580"; @@ -35,8 +36,6 @@ namespace TaskManager.Controllers protected virtual string TaskName { set; get; } = "SupplierProPlaning"; protected readonly LogController _logger; - - public CheryRecurringJobBaseController( @@ -58,8 +57,6 @@ namespace TaskManager.Controllers /// 返回DTOJson protected async Task Post(string url, string path, string jsonData) { - - try { // 生成签名参数 diff --git a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs index cabf5ca..82fc756 100644 --- a/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs +++ b/API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs @@ -1,25 +1,31 @@ -using System.Data; -using System.Drawing.Printing; -using System.Linq.Expressions; -using System.Text; -using System.Text.Json; -using System.Text.Json.Serialization; -using Azure.Core; +using Azure.Core; using Dapper; using Magicodes.ExporterAndImporter.Core.Extension; using Magicodes.ExporterAndImporter.Excel; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.HttpResults; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; +using Omu.ValueInjecter; +using System.Data; +using System.Drawing.Printing; +using System.Linq.Expressions; +using System.Security.Policy; +using System.Text; +using System.Text.Json; +using System.Text.Json.Serialization; using TaskManager.Contracts.Dtos; using TaskManager.Entity; using TaskManager.EntityFramework; using TaskManager.EntityFramework.Repository; +using static Dapper.SqlMapper; namespace TaskManager.Controllers { - public class CheryRecurringJobInputPageController : RecurringJobBaseController where T : BaseEntity ,new() + public class CheryRecurringJobInputPageController : RecurringJobBaseController + where T : BaseEntity ,new() + where TDTO:class,new() { protected readonly IRepository _repository; public CheryRecurringJobInputPageController(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log) @@ -27,6 +33,32 @@ namespace TaskManager.Controllers _repository = repository; } + + + /// + /// 手工发送调用接口 + /// + /// 任务名称 + /// 请求日期 + /// 客户(Chery) + /// + [HttpGet] + public virtual async Task CustomInvokeAsync(string taskName, string client) + { + var first = _jobDbContext.TaskConifgure.FirstOrDefault(p => p.TaskName == taskName && p.Client == client); + if (first == null) + { + await _logger.AddError($"手工调用接口{taskName}任务没找到", taskName); + return; + } + Url = first.Url; + Path = first.Api; + TaskName = first.TaskName; + Client = client; + await SyncTaskSubTable(TaskName, Client); + } + + protected override async Task DoExecutingAsync(string url, string path, string takName, string client) { Url = url; @@ -36,7 +68,7 @@ namespace TaskManager.Controllers await SyncTaskSubTable(TaskName,Client); } - private async Task PostPageAsync(PagedRequest t) + private async Task PostPageAsync(PagedRequest t) { try { @@ -108,13 +140,11 @@ namespace TaskManager.Controllers private async Task SyncTaskSubTable(string taskName, string client) { - if (string.IsNullOrEmpty(taskName) || string.IsNullOrEmpty(client)) { await _logger.AddError("任务名称或客户端不能为空",taskName); return; } - var sublist = _jobDbContext.TaskSub.Where(p => p.TaskName == taskName && p.WriteState == false && p.Subscriber == client).ToList(); int pageSize = 1000; if (!sublist.Any()) @@ -129,20 +159,28 @@ namespace TaskManager.Controllers var total = entites.Count(); int totalPages = (int)Math.Ceiling((double)total / pageSize); - for (int i = 1; i <= totalPages; i++) + for (int i = sub.SyncedPageCount; i <= totalPages; i++) { var records = entites.Skip((i - 1) * pageSize) .Take(pageSize).ToList(); - - PagedRequest pagedRequest = new PagedRequest() + #region dto转换作为参数发给 + List dtos = new List(); + foreach (var itm in records) + { + TDTO dto = new TDTO(); + dto.InjectFrom(itm); + dtos.Add(dto); + } + PagedRequest pagedRequest = new PagedRequest() { batchNo = GenerateRandomStringWith8EG(), total = entites.Count(), pageSize = pageSize, - list = records, + list = dtos, pageNum = i }; + #endregion foreach (var itm in records) { itm.WriteState = true; @@ -217,7 +255,7 @@ namespace TaskManager.Controllers return new JsonResult(new { Code = 200, Message = "删除成功!" }); ; } [HttpGet] - public async Task>> GetPaged( + public async Task GetPaged( [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10, [FromQuery] string sortBy = "", diff --git a/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs b/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs index 719c98d..397557b 100644 --- a/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs +++ b/API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs @@ -7,6 +7,7 @@ using Magicodes.ExporterAndImporter.Excel; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.HttpResults; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.EntityFrameworkCore; @@ -30,9 +31,11 @@ namespace TaskManager.Controllers { _repository = repository; } + protected virtual async Task CreateTaskAsync(List plist,JobDbContext dbContext) + { - + } [NonAction] public async Task> FetchAllDataAsync(string inputdate) { @@ -47,8 +50,6 @@ namespace TaskManager.Controllers { PagedResponse firstResponse = await GetPageAsync(new PAGE_DTO() { Date = date, IsForce = false}); - - if (firstResponse == null || firstResponse.Code != 200) { await _logger.AddError("首次请求失败,无法获取分页信息。", TaskName); @@ -58,7 +59,6 @@ namespace TaskManager.Controllers { await _logger.AddError("首次请求失败,Total为0是否已经全部读取过。", TaskName); return allData; - } @@ -94,8 +94,8 @@ namespace TaskManager.Controllers } _jobDbContext.BulkInsert(pagefirstList); + await CreateTaskAsync(pagefirstList,_jobDbContext); - // 计算总页数 int totalPages = (int)Math.Ceiling((double)totalItems / pageSize); @@ -121,6 +121,7 @@ namespace TaskManager.Controllers entity.CreationTime = DateTime.Now; pageList.Add(entity); allData.Add(itm); + } } else @@ -136,10 +137,8 @@ namespace TaskManager.Controllers } } - - - _jobDbContext.BulkInsert(pageList); + await CreateTaskAsync(pageList, _jobDbContext); await _logger.AddInfo($"成功获取 {pageResponse.Data.Rows.Count} 条记录", TaskName); } else @@ -203,6 +202,7 @@ namespace TaskManager.Controllers } } _jobDbContext.BulkInsert(pagefirstList); + await CreateTaskAsync(pagefirstList, _jobDbContext); //Console.WriteLine($"总记录数: {totalItems}, 每页大小: {pageSize}"); // 计算总页数 int totalPages = (int)Math.Ceiling((double)totalItems / pageSize); @@ -242,6 +242,7 @@ namespace TaskManager.Controllers } } _jobDbContext.BulkInsert(pageList); + await CreateTaskAsync(pageList, _jobDbContext); await _logger.AddInfo($"成功获取 {pageResponse.Data.Rows.Count} 条记录", TaskName); } else @@ -302,11 +303,26 @@ namespace TaskManager.Controllers } } - [NonAction] - public virtual async Task TestAsync(string url, string path, string taskName, string inputdate) + /// + /// 手工获取调用接口 + /// + /// 任务名称 + /// 请求日期 + /// 客户(Chery) + /// + [HttpGet] + public virtual async Task CustomInvokeAsync(string taskName, string inputdate,string client) { - Url = url; - Path = path; + var first= _jobDbContext.TaskConifgure.FirstOrDefault(p => p.TaskName == taskName && p.Client == client); + if (first == null) + { + await _logger.AddError($"手工调用接口{taskName}没找到", taskName); + + return; + } + + Url =first.Url; + Path = first.Api; TaskName = taskName; await FetchAllDataAsync(inputdate); } @@ -388,7 +404,7 @@ namespace TaskManager.Controllers /// 过滤条件 /// [HttpGet] - public async Task>> GetPaged( + public async Task GetPaged( [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10, [FromQuery] string sortBy = "", @@ -408,7 +424,7 @@ namespace TaskManager.Controllers Expression> filter = null; var pagedResult = await _repository.GetPagedAsync(filter, pagingParams); - return Ok(pagedResult); + return Ok(pagedResult); } /// diff --git a/API/Wood.Service/Controllers/CherySupplierConDateService.cs b/API/Wood.Service/Controllers/CherySupplierConDateService.cs new file mode 100644 index 0000000..1364070 --- /dev/null +++ b/API/Wood.Service/Controllers/CherySupplierConDateService.cs @@ -0,0 +1,13 @@ +using TaskManager.Contracts.Dtos; +using TaskManager.Entity.Entitys; +using TaskManager.EntityFramework; + +namespace TaskManager.Controllers +{ + public class SupplierConDateService : CheryRecurringJobInputPageController + { + public SupplierConDateService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) + { + } + } +} diff --git a/API/Wood.Service/Controllers/CherySupplierConMmrpService.cs b/API/Wood.Service/Controllers/CherySupplierConMmrpService.cs new file mode 100644 index 0000000..988869a --- /dev/null +++ b/API/Wood.Service/Controllers/CherySupplierConMmrpService.cs @@ -0,0 +1,12 @@ +using TaskManager.Entity.Entitys; +using TaskManager.EntityFramework; + +namespace TaskManager.Controllers +{ + public class CherySupplierConMmrpService : CheryRecurringJobInputPageController + { + public CherySupplierConMmrpService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) + { + } + } +} diff --git a/API/Wood.Service/Controllers/NormalBaseController.cs b/API/Wood.Service/Controllers/NormalBaseController.cs index 7d7ee6d..6d434d9 100644 --- a/API/Wood.Service/Controllers/NormalBaseController.cs +++ b/API/Wood.Service/Controllers/NormalBaseController.cs @@ -17,13 +17,14 @@ using Microsoft.Extensions.DependencyInjection; using TaskManager.Entity; using TaskManager.EntityFramework; using TaskManager.EntityFramework.Repository; +using Wood.Entity; using Wood.Util; namespace Wood.Service.Controllers { [AllowAnonymous] - public class NormalBaseController:ControllerBase where T:BaseEntity ,new() + public class NormalBaseController:ControllerBase,IScoped where T:BaseEntity ,new() { protected readonly JobDbContext _context; @@ -130,7 +131,7 @@ namespace Wood.Service.Controllers Expression> filter = null; var pagedResult = await _repository.GetPagedAsync(filter, pagingParams); - return new JsonResult(pagedResult); + return Ok(pagedResult); } /// diff --git a/API/Wood.Service/Controllers/SupplierConDateService.cs b/API/Wood.Service/Controllers/SupplierConDateService.cs deleted file mode 100644 index 6c610cf..0000000 --- a/API/Wood.Service/Controllers/SupplierConDateService.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace TaskManager.Controllers -{ - public class SupplierConDateService - { - } -} diff --git a/API/Wood.Service/Controllers/SupplierConMmrpService.cs b/API/Wood.Service/Controllers/SupplierConMmrpService.cs deleted file mode 100644 index 78425e1..0000000 --- a/API/Wood.Service/Controllers/SupplierConMmrpService.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace TaskManager.Controllers -{ - public class SupplierConMmrpService - { - } -} diff --git a/API/Wood.Service/Controllers/TaskConifgureController.cs b/API/Wood.Service/Controllers/TaskConifgureController.cs index eccf650..81ba2cf 100644 --- a/API/Wood.Service/Controllers/TaskConifgureController.cs +++ b/API/Wood.Service/Controllers/TaskConifgureController.cs @@ -71,164 +71,164 @@ namespace TaskManager.Controllers - /// - /// 执行铁定任务 - /// - /// - /// - [NonAction] - public async Task testTask(string taskName) - { - var first = await _context.TaskConifgure.FirstOrDefaultAsync(p => p.TaskName == taskName); - var url = first.Url; - var path = first.Api; - var controller = _builder.GetRequiredService(); - await controller.TestAsync(url, path, taskName, "2025-04-21"); - - } - [NonAction] - public async Task TaskAllAsync(string date) - { - var tasks = _context.TaskConifgure.Where(p => p.IsAuto == true && !string.IsNullOrEmpty(p.Corn) - && !string.IsNullOrEmpty(p.Api) && !string.IsNullOrEmpty(p.Url)).ToList(); - - - foreach (var task in tasks) - { - try - { - var url = task.Url; - var path = task.Api; - var taskname = task.TaskName; - - switch (task.TaskName) - { - //case "整车月度生产计划1": + ///// + ///// 执行铁定任务 + ///// + ///// + ///// + //[NonAction] + //public async Task testTask(string taskName) + //{ + // var first = await _context.TaskConifgure.FirstOrDefaultAsync(p => p.TaskName == taskName); + // var url = first.Url; + // var path = first.Api; + // var controller = _builder.GetRequiredService(); + // await controller.TestAsync(url, path, taskName, "2025-04-21"); + + //} + //[NonAction] + //public async Task TaskAllAsync(string date) + //{ + // var tasks = _context.TaskConifgure.Where(p => p.IsAuto == true && !string.IsNullOrEmpty(p.Corn) + // && !string.IsNullOrEmpty(p.Api) && !string.IsNullOrEmpty(p.Url)).ToList(); + + + // foreach (var task in tasks) + // { + // try + // { + // var url = task.Url; + // var path = task.Api; + // var taskname = task.TaskName; + + // switch (task.TaskName) + // { + // //case "整车月度生产计划1": - // // 添加的代码块 - // var controller1 = _builder.GetRequiredService(); - // await controller1.TestAsync(url, path, taskname, "2025-05-29"); - // break; + // // // 添加的代码块 + // // var controller1 = _builder.GetRequiredService(); + // // await controller1.TestAsync(url, path, taskname, "2025-05-29"); + // // break; - case "M+6月物料需求计划1": + // case "M+6月物料需求计划1": - // 添加的代码块 - var controller2 = _builder.GetRequiredService(); - await controller2.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller2 = _builder.GetRequiredService(); + // await controller2.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "整车月度生产计划2": + // case "整车月度生产计划2": - // 添加的代码块 - var controller3 = _builder.GetRequiredService(); - await controller3.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller3 = _builder.GetRequiredService(); + // await controller3.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "M+6月物料需求计划2": + // case "M+6月物料需求计划2": - // 添加的代码块 - var controller4 = _builder.GetRequiredService(); - await controller4.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller4 = _builder.GetRequiredService(); + // await controller4.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "日物料需求计划": + // case "日物料需求计划": - // 添加的代码块 - var controller5 = _builder.GetRequiredService(); - await controller5.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller5 = _builder.GetRequiredService(); + // await controller5.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "计划协议": + // case "计划协议": - // 添加的代码块 - var controller6 = _builder.GetRequiredService(); - await controller6.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller6 = _builder.GetRequiredService(); + // await controller6.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "采购订单": + // case "采购订单": - // 添加的代码块 - var controller7 = _builder.GetRequiredService(); - await controller7.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller7 = _builder.GetRequiredService(); + // await controller7.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "过焊装未过总装": + // case "过焊装未过总装": - // 添加的代码块 - var controller8 = _builder.GetRequiredService(); - await controller8.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller8 = _builder.GetRequiredService(); + // await controller8.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "过涂装未过总装": + // case "过涂装未过总装": - // 添加的代码块 - var controller9 = _builder.GetRequiredService(); - await controller9.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller9 = _builder.GetRequiredService(); + // await controller9.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "排序供货": + // case "排序供货": - // 添加的代码块 - var controller10 = _builder.GetRequiredService(); - await controller10.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller10 = _builder.GetRequiredService(); + // await controller10.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "看板配送单": + // case "看板配送单": - // 添加的代码块 - var controller11 = _builder.GetRequiredService(); - await controller11.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller11 = _builder.GetRequiredService(); + // await controller11.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "退货单": + // case "退货单": - // 添加的代码块 - var controller12 = _builder.GetRequiredService(); - await controller12.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller12 = _builder.GetRequiredService(); + // await controller12.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "奇瑞RDC共享库存": + // case "奇瑞RDC共享库存": - // 添加的代码块 - var controller13 = _builder.GetRequiredService(); - await controller13.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller13 = _builder.GetRequiredService(); + // await controller13.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "日MRP状态监控": + // case "日MRP状态监控": - // 添加的代码块 - var controller14 = _builder.GetRequiredService(); - await controller14.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller14 = _builder.GetRequiredService(); + // await controller14.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "日MRP预警推移": + // case "日MRP预警推移": - // 添加的代码块 - var controller15 = _builder.GetRequiredService(); - await controller15.TestAsync(url, path, taskname, "2025-05-29"); - break; - case "供应商共享库存-上午": + // // 添加的代码块 + // var controller15 = _builder.GetRequiredService(); + // await controller15.TestAsync(url, path, taskname, "2025-05-29"); + // break; + // case "供应商共享库存-上午": - // 添加的代码块 - var controller19 = _builder.GetRequiredService(); - await controller19.TestAsync(url, path, taskname, "2025-05-29"); - break; + // // 添加的代码块 + // var controller19 = _builder.GetRequiredService(); + // await controller19.TestAsync(url, path, taskname, "2025-05-29"); + // break; - case "供应商共享库存-晚上": + // case "供应商共享库存-晚上": - // 添加的代码块 - var controller20 = _builder.GetRequiredService(); - await controller20.TestAsync(url, path, taskname, "2025-05-29"); - break; - } + // // 添加的代码块 + // var controller20 = _builder.GetRequiredService(); + // await controller20.TestAsync(url, path, taskname, "2025-05-29"); + // break; + // } - } - catch - { + // } + // catch + // { - } + // } @@ -241,8 +241,8 @@ namespace TaskManager.Controllers - } - } + // } + //} @@ -521,7 +521,7 @@ namespace TaskManager.Controllers ); break; case "M+6月物料需求计划风险确认": - RecurringJob.AddOrUpdate( + RecurringJob.AddOrUpdate( task.TaskName, x => ((IDoExecute)x).ExecuteAsync(url, path, task.TaskName, client), task.Corn, diff --git a/API/Wood.Service/SystemManage/UserService.cs b/API/Wood.Service/SystemManage/UserService.cs index 40320bd..a391fa5 100644 --- a/API/Wood.Service/SystemManage/UserService.cs +++ b/API/Wood.Service/SystemManage/UserService.cs @@ -165,10 +165,64 @@ namespace Wood.Service.SystemManage throw Oops.Oh("登录失败,没有相关用户信息!"); } - /// - /// 用户租户登录 - /// - [AllowAnonymous] + /// + /// 用户登录 + /// + /// 可用租户信息 + [AllowAnonymous] + public async Task LoginExtned(UserLoginParam param) + { + if (!(int.TryParse(param.CaptchaCode, out int val) && _cache.TryGetCache(param.Captcha, out int cacheVal) && val == cacheVal)) + { + _cache.RemoveCache(param.Captcha); + throw Oops.Oh("验证码错误!"); + } + + _cache.SetCache(param.Captcha, param.UserName, DateTime.Now.AddMinutes(5)); + + var users = await _userRepository.AsQueryable() + .Where(it => it.UserName == param.UserName) + .Where(it => it.Status == 1) + .ToListAsync(); + + if (users == null || users.Count < 1) + throw Oops.Oh($"不存在用户【{param.UserName}】!"); + List passOk = new List(); //密码验证通过的账户信息 + foreach (var item in users) + { + if (param!.Password == CryptogramHelper.GMSM4Decrypt(item.Password)) + passOk.Add(item); + } + + if (passOk.Any()) + { + var tenantIds = passOk.Select(it => it.TenantId).ToList(); + var tenants = await _tenantRepository.AsQueryable() + .Where(it => tenantIds.Contains(it.Id)) + .Select(it => new { it.Id, it.TenantName, it.Status }) + .ToListAsync(); + + if (tenants.All(it => it.Status != 1)) + throw Oops.Oh("登录失败,账号已经冻结!"); + + return tenants; + } + throw Oops.Oh("登录失败,没有相关用户信息!"); + } + + + + + + + + + + + /// + /// 用户租户登录 + /// + [AllowAnonymous] public async Task TenantLogin(UserTenantLoginParam param) { if (_cache.TryGetCache(param.Captcha, out string? cacheVal) && cacheVal == param.UserName)