diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Consts/SpotInsRecordExecutionStatus.cs b/EquipMgr/Tnb.EquipMgr.Entities/Consts/SpotInsRecordExecutionStatus.cs index f847477a..d774afae 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Consts/SpotInsRecordExecutionStatus.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Consts/SpotInsRecordExecutionStatus.cs @@ -13,11 +13,11 @@ namespace Tnb.EquipMgr /// /// 待复核 /// - public const string TOBECHECK = "1"; + public const string TOBECHECK = "2"; /// /// 已完成 /// - public const string COMPLETED = "1"; + public const string COMPLETED = "3"; } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/BaseMoldMaintainInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/BaseMoldMaintainInput.cs new file mode 100644 index 00000000..e34be422 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/BaseMoldMaintainInput.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.EquipMgr.Entities.Dto +{ + public class BaseMoldMaintainInput + { + public string item_group_id { get; set; } + public List ids { get; set; } + } +} diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MaintainRuleMoldListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MaintainRuleMoldListOutput.cs new file mode 100644 index 00000000..4c5669bd --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MaintainRuleMoldListOutput.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.EquipMgr.Entities.Dto +{ + /// + /// 保养规则关联模具列表输出参数 + /// + public class MaintainRuleMoldListOutput + { + /// + /// 模具Id + /// + public string mold_id { get; set; } + /// + /// 模具编码 + /// + public string mold_code { get; set; } + /// + /// 模具名称 + /// + public string mold_name { get; set; } + } +} diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/ProducttListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MaterialListOutput.cs similarity index 70% rename from EquipMgr/Tnb.EquipMgr.Entities/Dto/ProducttListOutput.cs rename to EquipMgr/Tnb.EquipMgr.Entities/Dto/MaterialListOutput.cs index f4561ecb..bf1d1328 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/ProducttListOutput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MaterialListOutput.cs @@ -7,15 +7,14 @@ using System.Threading.Tasks; namespace Tnb.EquipMgr.Entities.Dto { /// - /// 产品列表输出类 + /// 物料列表输出类 /// - public class ProductListOutput + public class MaterialListOutput { public string id { get; set; } - public string product_code { get; set; } - public string product_name { get; set; } - public string product_standard { get; set; } - public string product_group { get; set; } + public string code { get; set; } + public string name { get; set; } + public string material_group { get; set; } public int real_cavity_qty { get; set; } } /// diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldListOutput.cs index d385c1bc..72a9bc91 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldListOutput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldListOutput.cs @@ -8,7 +8,7 @@ namespace Tnb.EquipMgr.Entities.Dto { public class RelevanceMoldListOutput { - + public string mold_id { get; set; } /// /// Desc:模具编号 /// Default:NULL::character varying diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainDelInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainDelInput.cs new file mode 100644 index 00000000..4bedda98 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainDelInput.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.EquipMgr.Entities.Dto +{ + /// + /// 模具保养删除参数 + /// + public class MoldMaintainDelInput : BaseMoldMaintainInput + { + /// + /// 删除的表名 + /// + public string table_name { get; set; } + } +} diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainGroupItemRelationInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainGroupItemRelationInput.cs index 98b11fef..0618d131 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainGroupItemRelationInput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainGroupItemRelationInput.cs @@ -9,15 +9,7 @@ namespace Tnb.EquipMgr.Entities.Dto /// /// 关联保养组与模具输入参数 /// - public class MoldMaintainGroupItemRelationInput + public class MoldMaintainGroupItemRelationInput :BaseMoldMaintainInput { - /// - /// 项目组Id - /// - public string item_group_id { get; set; } - /// - /// 模具Id - /// - public string mold_id { get; set; } } } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainItemInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainItemInput.cs index 75205ae8..8820e89a 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainItemInput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainItemInput.cs @@ -9,16 +9,8 @@ namespace Tnb.EquipMgr.Entities.Dto /// /// 模具保养项输入参数 /// - public class MoldMaintainGroupItemInput + public class MoldMaintainGroupItemInput : BaseMoldMaintainInput { - /// - /// 项目组Id - /// - public string item_group_id { get; set; } - /// - /// 保养项Id - /// - public string item_id { get; set; } - + } } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainItemListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainItemListOutput.cs index 93eefae1..c45b8ad4 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainItemListOutput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/MoldMaintainItemListOutput.cs @@ -11,6 +11,10 @@ namespace Tnb.EquipMgr.Entities.Dto /// public class MoldMaintainItemListOutput { + /// + /// 检查项Id + /// + public string item_id { get; set; } /// /// 项目名称 /// diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/RelevanceMoldInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/RelevanceMoldInput.cs index c64c5312..9c2ea796 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/RelevanceMoldInput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/RelevanceMoldInput.cs @@ -9,15 +9,11 @@ namespace Tnb.EquipMgr.Entities.Dto /// /// 模具规则定义,关键模具输入参数 /// - public class RelevanceMoldInput + public class RelevanceMoldInput : BaseMoldMaintainInput { /// /// 规则Id /// public string? rule_id { get; set; } - /// - /// 模具Id - /// - public string? mold_id { get; set;} } } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsTemPublishInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsTemPublishInput.cs new file mode 100644 index 00000000..bc1bfaec --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/SpotInsTemPublishInput.cs @@ -0,0 +1,9 @@ +namespace Tnb.EquipMgr.Entities.Dto +{ + public class SpotInsTemPublishInput + { + public string id { get; set; } + + public string[] equipIds { get; set; } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldInput.cs index 5b7ea819..64a6e2f7 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldInput.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldInput.cs @@ -10,9 +10,9 @@ namespace Tnb.EquipMgr.Entities.Dto { public string mold { get; set; } public string[] equipid { get; set; } - public string productid { get; set; } + public string materialid { get; set; } public int real_cavity_qty { get; set; } - public string[] productids { get; set; } + public string[] materialids { get; set; } public string[] molds { get; set; } } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/BasMaterial.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/BasMaterial.cs new file mode 100644 index 00000000..5e2a0e26 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/BasMaterial.cs @@ -0,0 +1,352 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +using Tnb.Common.Contracts; + +namespace Tnb.EquipMgr.Entities.Entity +{ + /// + ///物料信息 + /// + [SugarTable("bas_material")] + public partial class BasMaterial : BaseEntity + { + public BasMaterial() + { + + + } + /// + /// Desc:是否包含入库数 + /// Default: + /// Nullable:True + /// + public int? is_contain_into_num { get; set; } + + /// + /// Desc:批次管理 + /// Default: + /// Nullable:True + /// + public int? is_batch_enabled { get; set; } + + /// + /// Desc:标签管理 + /// Default: + /// Nullable:True + /// + public int? is_label_enabled { get; set; } + + /// + /// Desc:附件 + /// Default:NULL::character varying + /// Nullable:True + /// + public string attachment { get; set; } + + /// + /// Desc:先进先出 0否 1是 + /// Default: + /// Nullable:True + /// + public int? first_in_out { get; set; } + + /// + /// Desc:存储有效期(天) + /// Default: + /// Nullable:True + /// + public int? storage_valid_day { get; set; } + + /// + /// Desc:预警提前期(天) + /// Default: + /// Nullable:True + /// + public int? early_warn_day { get; set; } + + /// + /// Desc:安全库存 + /// Default: + /// Nullable:True + /// + public int? safe_stock { get; set; } + + /// + /// Desc:发料仓库id + /// Default: + /// Nullable:True + /// + public string send_warehouse_id { get; set; } + + /// + /// Desc:入厂单位id + /// Default: + /// Nullable:True + /// + public string into_factory_unit_id { get; set; } + + /// + /// Desc:安全库存包含状态 + /// Default:NULL::character varying + /// Nullable:True + /// + public string safe_stock_stauts { get; set; } + + /// + /// Desc:投料单位 + /// Default: + /// Nullable:True + /// + public string material_in_unit_id { get; set; } + + /// + /// Desc:产出单位 + /// Default: + /// Nullable:True + /// + public string material_out_unit_id { get; set; } + + /// + /// Desc:请料方式 1按计划排程请料 2自行管控 + /// Default: + /// Nullable:True + /// + public string material_request_method { get; set; } + + /// + /// Desc:物料代码 + /// Default: + /// Nullable:False + /// + public string code { get; set; } + + /// + /// Desc:物料名称 + /// Default: + /// Nullable:False + /// + public string name { get; set; } + + /// + /// Desc:物料分类ID + /// Default: + /// Nullable:False + /// + public string category_id { get; set; } + + /// + /// Desc:单位ID + /// Default: + /// Nullable:False + /// + public string unit_id { get; set; } + + /// + /// Desc:单价 + /// Default: + /// Nullable:True + /// + public decimal? cost { get; set; } + + /// + /// Desc:毛重 + /// Default: + /// Nullable:True + /// + public decimal? grossweight { get; set; } + + /// + /// Desc:净重 + /// Default: + /// Nullable:True + /// + public decimal? netweight { get; set; } + + /// + /// Desc:长 + /// Default: + /// Nullable:True + /// + public decimal? length { get; set; } + + /// + /// Desc:宽 + /// Default: + /// Nullable:True + /// + public decimal? width { get; set; } + + /// + /// Desc:高 + /// Default: + /// Nullable:True + /// + public decimal? high { get; set; } + + /// + /// Desc:体积 + /// Default: + /// Nullable:True + /// + public decimal? volumn { get; set; } + + /// + /// Desc:是否免检 + /// Default: + /// Nullable:True + /// + public int? isexemption { get; set; } + + /// + /// Desc:安全库存 + /// Default: + /// Nullable:True + /// + public decimal? safeqty { get; set; } + + /// + /// Desc:保质期 + /// Default: + /// Nullable:True + /// + public int? qualityperiod { get; set; } + + /// + /// Desc:最小包装 + /// Default: + /// Nullable:True + /// + public decimal? minpacking { get; set; } + + /// + /// Desc:先进先出间隔天数,批次间隔天数 + /// Default: + /// Nullable:True + /// + public int? fifo_interval_days { get; set; } + + /// + /// Desc:创建时间 + /// Default: + /// Nullable:True + /// + public DateTime? create_time { get; set; } + + /// + /// Desc:修改时间 + /// Default: + /// Nullable:True + /// + public DateTime? modify_time { get; set; } + + /// + /// Desc:扩展字段 + /// Default: + /// Nullable:True + /// + public string extras { get; set; } + + /// + /// Desc:所属组织 + /// Default:NULL::character varying + /// Nullable:True + /// + public string org_id { get; set; } + + /// + /// Desc:是否过期允许出库 + /// Default:NULL::character varying + /// Nullable:True + /// + public string expireout { get; set; } + + /// + /// Desc:是否先进先出管控 + /// Default:NULL::character varying + /// Nullable:True + /// + public string fifo { get; set; } + + /// + /// Desc:物料规格型号 + /// Default:NULL::character varying + /// Nullable:True + /// + public string material_standard { get; set; } + + /// + /// Desc:海关编码 + /// Default:NULL::character varying + /// Nullable:True + /// + public string fhscode { get; set; } + + /// + /// Desc:附属性 + /// Default:NULL::character varying + /// Nullable:True + /// + public string attribute { get; set; } + + /// + /// Desc:管控类型: 批管控:Lot 单管控:KeyParts 非管控:NoControl + /// Default:NULL::character varying + /// Nullable:True + /// + public string controltype { get; set; } + + /// + /// Desc:备注 + /// Default:NULL::character varying + /// Nullable:True + /// + public string remark { get; set; } + + /// + /// Desc:创建用户 + /// Default:NULL::character varying + /// Nullable:True + /// + public string create_id { get; set; } + + /// + /// Desc:修改用户 + /// Default:NULL::character varying + /// Nullable:True + /// + public string modify_id { get; set; } + + /// + /// Desc:状态 + /// Default:NULL::character varying + /// Nullable:True + /// + public string state { get; set; } + + /// + /// Desc:物料属性 + /// Default:NULL::character varying + /// Nullable:True + /// + public string material_property { get; set; } + + /// + /// Desc:标签 + /// Default:NULL::character varying + /// Nullable:True + /// + public string label { get; set; } + + /// + /// Desc:描述 + /// Default:NULL::character varying + /// Nullable:True + /// + public string descrip { get; set; } + + } +} diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/MoldMaintenance.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/MoldMaintenance.cs index 187a4940..f34d8433 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/MoldMaintenance.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/MoldMaintenance.cs @@ -8,7 +8,7 @@ namespace Tnb.EquipMgr.Entities /// ///模具保养 /// - [SugarTable("tool_mold_maintenance")] + [SugarTable("tool_mold_maintain_item")] public partial class MoldMaintenance { /// diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldMaintainRuleRelation.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldMaintainRuleRelation.cs index f27e7d3a..d2818d09 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldMaintainRuleRelation.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldMaintainRuleRelation.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using JNPF.Common.Security; using SqlSugar; +using Tnb.Common.Contracts; namespace Tnb.EquipMgr.Entities { @@ -10,20 +11,8 @@ namespace Tnb.EquipMgr.Entities ///模具保养规则与模具关联 /// [SugarTable("tool_mold_maintain_rule_relation")] - public partial class ToolMoldMaintainRuleRelation + public partial class ToolMoldMaintainRuleRelation:BaseEntity { - public ToolMoldMaintainRuleRelation(){ - - - } - /// - /// Desc:主键 - /// Default: - /// Nullable:False - /// - [SugarColumn(IsPrimaryKey=true)] - public string id {get;set;} = SnowflakeIdHelper.NextId(); - /// /// Desc:保养规则id /// Default: diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsProduct.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsMaterial.cs similarity index 75% rename from EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsProduct.cs rename to EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsMaterial.cs index 0144e379..78bdc13d 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsProduct.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsMaterial.cs @@ -11,21 +11,15 @@ namespace Tnb.EquipMgr.Entities /// ///模具产品关联表 /// - [SugarTable("tool_molds_product")] - public partial class ToolMoldsProduct + [SugarTable("tool_molds_material")] + public partial class ToolMoldsMaterial:BaseEntity { - public ToolMoldsProduct(){ + public ToolMoldsMaterial(){ } - /// - /// Desc:编号 - /// Default: - /// Nullable:False - /// - [SugarColumn(IsPrimaryKey=true)] - public string id {get;set;} = SnowflakeIdHelper.NextId(); + /// /// Desc:模具编号 @@ -35,11 +29,11 @@ namespace Tnb.EquipMgr.Entities public string mold_id {get;set;} = string.Empty; /// - /// Desc:产品编号 + /// Desc:物料编号 /// Default: /// Nullable:False /// - public string product_id {get;set;} = string.Empty; + public string material_id { get;set;} = string.Empty; /// /// Desc:创建用户 @@ -77,11 +71,11 @@ namespace Tnb.EquipMgr.Entities public int? real_cavity_qty {get;set;} /// - /// Desc:产品同组标识 + /// Desc:物料同组标识 /// Default:NULL::character varying /// Nullable:True /// - public string? product_group {get;set;} + public string? material_group { get;set;} } } diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Mapper/Mapper.cs b/EquipMgr/Tnb.EquipMgr.Entities/Mapper/Mapper.cs index 47984fa8..3b575108 100644 --- a/EquipMgr/Tnb.EquipMgr.Entities/Mapper/Mapper.cs +++ b/EquipMgr/Tnb.EquipMgr.Entities/Mapper/Mapper.cs @@ -8,6 +8,10 @@ namespace Tnb.EquipMgr.Entities.Mapper { public void Register(TypeAdapterConfig config) { + config.ForType() + .Map(dest => dest.item_id, src => src.id); + config.ForType() + .Map(dest => dest.mold_id, src => src.id); } } } \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Interfaces/IEqpSpotInsTemService.cs b/EquipMgr/Tnb.EquipMgr.Interfaces/IEqpSpotInsTemService.cs new file mode 100644 index 00000000..12bdb6e4 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Interfaces/IEqpSpotInsTemService.cs @@ -0,0 +1,12 @@ +using Tnb.EquipMgr.Entities.Dto; +namespace Tnb.EquipMgr.Interfaces +{ + public interface IEqpSpotInsTemService + { + /// + /// 根据模板id发布到设备 + /// + /// + public Task Publish(SpotInsTemPublishInput input); + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Interfaces/IEquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr.Interfaces/IEquSpotInsRecordService.cs new file mode 100644 index 00000000..887c7a87 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr.Interfaces/IEquSpotInsRecordService.cs @@ -0,0 +1,14 @@ +using JNPF.Common.Dtos.VisualDev; + +namespace Tnb.EquipMgr.Interfaces +{ + public interface IEquSpotInsRecordService + { + /// + /// 执行点巡检 + /// + /// + /// + public Task ExecuteSpotIns(string id,VisualDevModelDataUpInput input); + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldProductService.cs b/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldMaterialService.cs similarity index 82% rename from EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldProductService.cs rename to EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldMaterialService.cs index b7768fe7..be6af180 100644 --- a/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldProductService.cs +++ b/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldMaterialService.cs @@ -8,14 +8,14 @@ using Tnb.EquipMgr.Entities.Dto; namespace Tnb.EquipMgr.Interfaces { - public interface IToolMoldProductService + public interface IToolMoldMaterialService { /// - /// 根据模具id获取设备集合 + /// 根据模具id获取物料集合 /// /// /// - public Task> GetProductLists(ToolMoldInput ToolMoldInput); + public Task> GetMaterialLists(ToolMoldInput ToolMoldInput); /// /// 增加模具产品绑定 /// @@ -37,14 +37,14 @@ namespace Tnb.EquipMgr.Interfaces /// /// /// - public Task SaveProductGroup(ToolMoldInput ToolMoldInput); + public Task SaveMaterialGroup(ToolMoldInput ToolMoldInput); /// /// 取消产品同组 /// /// /// /// - public Task CancelProductGroup(ToolMoldInput ToolMoldInput); + public Task CancelMaterialGroup(ToolMoldInput ToolMoldInput); /// /// 根据产品id获取模具集合 @@ -59,6 +59,6 @@ namespace Tnb.EquipMgr.Interfaces /// /// - public Task DetachProductData(ToolMoldInput ToolMoldInput); + public Task DetachMaterialData(ToolMoldInput ToolMoldInput); } } diff --git a/EquipMgr/Tnb.EquipMgr/BaseMoldMaintainService.cs b/EquipMgr/Tnb.EquipMgr/BaseMoldMaintainService.cs new file mode 100644 index 00000000..4b73b973 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr/BaseMoldMaintainService.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; +using JNPF.Common.Enums; +using JNPF.Common.Security; +using JNPF.FriendlyException; +using SqlSugar; +using Tnb.Common.Contracts; +using Tnb.EquipMgr.Entities.Dto; +using Tnb.EquipMgr.Entities; +using Tnb.EquipMgr.Utils; +using Mapster; + +namespace Tnb.EquipMgr +{ + public class BaseMoldMaintainService + { + private readonly ISqlSugarClient _db; + public BaseMoldMaintainService(ISqlSugarClient db) + { + _db = db; + } + /// + /// 关联 + /// + /// 输入参数类型 + /// 目标数据库表类型 + /// 输入参数 + /// 主表属性名称 + /// 次表属性名称 + /// 删除条件 + /// + /// + protected async Task Relevance(TSrc input, string mColumnName, string name, Expression> deleleExp) where TDest : BaseEntity, new() + where TSrc : BaseMoldMaintainInput + { + await _db.Deleteable().Where(deleleExp).ExecuteCommandAsync(); + if (input == null) throw new ArgumentNullException(nameof(input)); + var entities = new List(); + if (input.ids?.Count > 0) + { + foreach (var id in input.ids) + { + var pk = id; + TDest entity = new(); + entity.id = SnowflakeIdHelper.NextId(); + if (!PropertySet.ValueFactories.TryGetValue(mColumnName, out Action? setGroupIdAction)) + { + setGroupIdAction = PropertySet.CreateSetPropertyValueAction(mColumnName); + PropertySet.ValueFactories.Add(mColumnName, setGroupIdAction); + } + setGroupIdAction(entity, input.item_group_id); + if (!PropertySet.ValueFactories.TryGetValue(name, out Action? setAction)) + { + setAction = PropertySet.CreateSetPropertyValueAction(name); + PropertySet.ValueFactories.Add(name, setAction); + } + setAction(entity, pk); + entities.Add(entity); + } + } + var row = await _db.Insertable(entities).ExecuteCommandAsync(); + if (row < 1) throw Oops.Oh(ErrorCode.COM1000); + } + + + protected async Task GetListByMasterId(string masterId, + Expression> masterFilterExp, + Expression> masterSelector, + Expression> relactionFilterExp) + { + var config = new TypeAdapterConfig(); + config.ForType(); + var list = new List(); + var itemIds = await _db.Queryable().Where(masterFilterExp).Select(masterSelector).ToListAsync(); + if (itemIds?.Count > 0) + { + var items = await _db.Queryable().Where(relactionFilterExp).ToListAsync(); + list = items.Adapt>(); + } + return list; + } + + } +} diff --git a/EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs b/EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs new file mode 100644 index 00000000..67d0f81c --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr/EqpSpotInsTemService.cs @@ -0,0 +1,111 @@ +using JNPF.Common.Core.Manager; +using JNPF.Common.Enums; +using JNPF.Common.Security; +using JNPF.DependencyInjection; +using JNPF.DynamicApiController; +using JNPF.FriendlyException; +using JNPF.VisualDev.Interfaces; +using Microsoft.AspNetCore.Mvc; +using SqlSugar; +using Tnb.EquipMgr.Entities; +using Tnb.EquipMgr.Interfaces; +using Tnb.EquipMgr.Entities.Dto; + +namespace Tnb.EquipMgr +{ + /// + /// 点巡检模板管理 + /// + [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] + [Route("api/[area]/[controller]/[action]")] + public class EqpSpotInsTemService : IEqpSpotInsTemService, IDynamicApiController, ITransient + { + private const string ModuleId = "26123080740885"; + private readonly ISqlSugarRepository _repository; + private readonly IUserManager _userManager; + + public EqpSpotInsTemService(ISqlSugarRepository repository, + IUserManager userManager, + IVisualDevService visualDevService) + { + _repository = repository; + _userManager = userManager; + } + + public async Task Publish(SpotInsTemPublishInput input) + { + var db = _repository.AsSugarClient(); + DbResult result = await db.Ado.UseTranAsync(async () => + { + EqpSpotInsTemH eqpSpotInsTemH = await _repository.GetSingleAsync(x => x.id == input.id); + List eqpSpotInsTemDs = await db.Queryable().Where(x=>x.spot_ins_item_id==input.id).ToListAsync(); + + if (input.equipIds != null && input.equipIds.Length > 0) + { + List insertEqpSpotInsTemEquipHs = new List(); + List insertEqpSpotInsTemEquipDs = new List(); + foreach (var equipId in input.equipIds) + { + string id = SnowflakeIdHelper.NextId(); + string code = $"{DateTime.Now.ToString("yyyy-MM-dd") + equipId}"; + EqpSpotInsTemEquipH eqpSpotInsTemEquipH = new EqpSpotInsTemEquipH() + { + id = id, + code = code, + name = eqpSpotInsTemH.name+equipId, + plan_cycle = eqpSpotInsTemH.plan_cycle, + plan_cycle_unit = eqpSpotInsTemH.plan_cycle_unit, + plan_run_notice = eqpSpotInsTemH.plan_run_notice, + plan_delay = eqpSpotInsTemH.plan_delay, + start_time = eqpSpotInsTemH.start_time, + is_start = eqpSpotInsTemH.is_start.ToString(), + is_repeat = eqpSpotInsTemH.is_repeat.ToString(), + is_send = eqpSpotInsTemH.is_send, + spot_ins_tem_id = input.id, + equip_id = equipId, + remark = eqpSpotInsTemH.remark, + plan_run_notice_unit = eqpSpotInsTemH.plan_run_notice_unit, + plan_delay_unit = eqpSpotInsTemH.plan_delay_unit, + repeat_post_info_user_id = eqpSpotInsTemH.repeat_post_info_user_id, + send_post_info_user_id = eqpSpotInsTemH.send_post_info_user_id, + send_post_id = eqpSpotInsTemH.send_post_id, + org_id = eqpSpotInsTemH.org_id, + create_id = _userManager.UserId, + create_time = DateTime.Now, + }; + insertEqpSpotInsTemEquipHs.Add(eqpSpotInsTemEquipH); + + if (eqpSpotInsTemDs != null && eqpSpotInsTemDs.Count > 0) + { + foreach (var eqpSpotInsTem in eqpSpotInsTemDs) + { + EqpSpotInsTemEquipD eqpSpotInsTemEquipD = new EqpSpotInsTemEquipD() + { + id = SnowflakeIdHelper.NextId(), + spot_ins_item_id = eqpSpotInsTem.id, + spot_ins_tem_equip_id = id, + }; + insertEqpSpotInsTemEquipDs.Add(eqpSpotInsTemEquipD); + } + } + } + + if (insertEqpSpotInsTemEquipHs != null && insertEqpSpotInsTemEquipHs.Count > 0) + { + await db.Insertable(insertEqpSpotInsTemEquipHs).ExecuteCommandAsync(); + } + + if (insertEqpSpotInsTemEquipDs != null && insertEqpSpotInsTemEquipDs.Count > 0) + { + await db.Insertable(insertEqpSpotInsTemEquipDs).ExecuteCommandAsync(); + } + + } + + }); + + if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); + return result.IsSuccess ? "发布成功" : result.ErrorMessage; + } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs new file mode 100644 index 00000000..6b752382 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr/EquSpotInsRecordService.cs @@ -0,0 +1,82 @@ +using JNPF.Common.Core.Manager; +using JNPF.Common.Dtos.VisualDev; +using JNPF.Common.Enums; +using JNPF.DependencyInjection; +using JNPF.DynamicApiController; +using JNPF.FriendlyException; +using JNPF.VisualDev; +using JNPF.VisualDev.Entitys; +using JNPF.VisualDev.Interfaces; +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; +using SqlSugar; +using Tnb.EquipMgr.Entities; +using Tnb.EquipMgr.Interfaces; + +namespace Tnb.EquipMgr +{ + /// + /// 点巡检执行管理 + /// + [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] + [Route("api/[area]/[controller]/[action]")] + [OverideVisualDev(ModuleId)] + public class EquSpotInsRecordService : IOverideVisualDevService, IEquSpotInsRecordService, IDynamicApiController, ITransient + { + public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); + private const string ModuleId = "26123080740885"; + private readonly ISqlSugarRepository _repository; + private readonly IVisualDevService _visualDevService; + private readonly IRunService _runService; + private readonly IUserManager _userManager; + + public EquSpotInsRecordService(ISqlSugarRepository repository, + IRunService runService, + IUserManager userManager, + IVisualDevService visualDevService) + { + _repository = repository; + _visualDevService = visualDevService; + _runService = runService; + _userManager = userManager; + OverideFuncs.UpdateAsync = ExecuteSpotIns; + } + + public async Task ExecuteSpotIns(string id,[FromBody]VisualDevModelDataUpInput input) + { + DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => + { + //string attachment = JsonConvert.SerializeObject(input.data["attachment"]); + // _repository.UpdateAsync(x => new EqpSpotInsRecordH() + // { + // result = (int)input.data["result"], + // attachment = attachment, + // result_remark = input.data["result_remark"].ToString(), + // }, x => x.id == input.data["id"]); + VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true); + await _runService.Update(id,templateEntity, input); + + EqpSpotInsRecordH eqpSpotInsRecordH = _repository.GetSingle(x=>x.id==input.data["id"].ToString()); + string status = ""; + if (eqpSpotInsRecordH.is_repeat == "1") + { + status = SpotInsRecordExecutionStatus.TOBECHECK; + } + else + { + status = SpotInsRecordExecutionStatus.COMPLETED; + } + _repository.UpdateAsync(x => new EqpSpotInsRecordH() + { + status = status, + spot_record_date_time = DateTime.Now, + spot_record_user_id = _userManager.UserId + }, x => x.id == input.data["id"]); + + }); + + if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); + return result.IsSuccess ? "执行成功" : result.ErrorMessage; + } + } +} \ No newline at end of file diff --git a/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainGroupService.cs b/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainGroupService.cs index 6c481337..5a94a02f 100644 --- a/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainGroupService.cs +++ b/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainGroupService.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Linq.Expressions; +using System.Reflection; using System.Text; using System.Threading.Tasks; using Aspose.Cells.Drawing; @@ -24,15 +26,12 @@ namespace Tnb.EquipMgr [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] - public class ToolMoldMaintainGroupService : IToolMoldMaintainGroupService, IDynamicApiController, ITransient + public class ToolMoldMaintainGroupService : BaseMoldMaintainService, IToolMoldMaintainGroupService, IDynamicApiController, ITransient { private readonly ISqlSugarRepository _repository; - private readonly IUserManager _userManager; private readonly ISqlSugarClient _db; - public ToolMoldMaintainGroupService(ISqlSugarRepository repository, IUserManager userManager) + public ToolMoldMaintainGroupService(ISqlSugarRepository repository) : base(repository.AsSugarClient()) { - _repository = repository; - _userManager = userManager; _db = repository.AsSugarClient(); } @@ -82,7 +81,7 @@ namespace Tnb.EquipMgr /// [HttpPost] public async Task RelevanceMaintianGroupAndItem(MoldMaintainGroupItemInput input) => - await Relevance(input); + await Relevance(input, nameof(ToolMoldMaintainGroupItem.item_group_id), nameof(ToolMoldMaintainGroupItem.item_id), it => it.item_group_id == input.item_group_id); /// /// 关联项目组与模具 @@ -91,20 +90,36 @@ namespace Tnb.EquipMgr /// [HttpPost] public async Task RelevanceMaintianGroupAndMold(MoldMaintainGroupItemRelationInput input) => - await Relevance(input); + await Relevance(input, nameof(ToolMoldMaintainGroupRelation.item_group_id), nameof(ToolMoldMaintainGroupRelation.mold_id), it => it.item_group_id == input.item_group_id); + /// + /// 删除项目组与模具检查项信息 + /// + /// + /// + [HttpPost] + public async Task Delete(MoldMaintainDelInput input) + { + if (input.table_name == "item") + { + await Delete(it => it.item_group_id == input.item_group_id && input.ids.Contains(it.item_id)); + } + else + { + await Delete(it => it.item_group_id == input.item_group_id && input.ids.Contains(it.mold_id)); + } + } #endregion - private async Task Relevance(TSrc input) where TDest : BaseEntity, new() + + private async Task Delete(Expression> deleteExp) where T : BaseEntity, new() { - if (input == null) throw new ArgumentNullException(nameof(input)); - var entity = input.Adapt(); - entity.id = SnowflakeIdHelper.NextId(); - var row = await _db.Insertable(entity).ExecuteCommandAsync(); - if (row < 1) throw Oops.Oh(ErrorCode.COM1000); + await _db.Deleteable().Where(deleteExp).ExecuteCommandAsync(); } } + + } diff --git a/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainRuleService.cs b/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainRuleService.cs index fbc88461..e8719ebb 100644 --- a/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainRuleService.cs +++ b/EquipMgr/Tnb.EquipMgr/ToolMoldMaintainRuleService.cs @@ -23,17 +23,32 @@ namespace Tnb.EquipMgr /// [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] - public class ToolMoldMaintainRuleService : IToolMoldMaintainRuleService, IDynamicApiController, ITransient + public class ToolMoldMaintainRuleService : BaseMoldMaintainService, IToolMoldMaintainRuleService, IDynamicApiController, ITransient { - private readonly ISqlSugarRepository _repository; - private readonly IUserManager _userManager; private readonly ISqlSugarClient _db; - public ToolMoldMaintainRuleService(ISqlSugarRepository repository, IUserManager userManager) + public ToolMoldMaintainRuleService(ISqlSugarRepository repository) : base(repository.AsSugarClient()) { - _repository = repository; - _userManager = userManager; _db = repository.AsSugarClient(); } + /// + /// 根据规则Id获取匹配的模具列表 + /// + /// 规则Id + /// + [HttpGet] + public async Task GetListById([FromRoute] string ruleId) + { + var result = new List(); + var list = await _db.Queryable().Where(it => it.rule_id == ruleId).ToListAsync(); + if (list?.Count > 0) + { + var ids = list.Select(it => it.mold_id).ToList(); + result = await _db.Queryable().Where(it => ids.Contains(it.id)) + .Select(it => new MaintainRuleMoldListOutput { mold_id = it.id }, true).ToListAsync(); + } + return result; + } + /// /// 关联模具 /// @@ -41,12 +56,18 @@ namespace Tnb.EquipMgr /// /// [HttpPost] - public async Task RelevanceMold(RelevanceMoldInput input) + public async Task RelevanceMold(RelevanceMoldInput input) => + await Relevance(input, nameof(ToolMoldMaintainRuleRelation.rule_id), nameof(ToolMoldMaintainRuleRelation.mold_id), it => it.rule_id == input.rule_id); + /// + /// 删除模具信息 + /// + /// + /// + [HttpPost] + public async Task DeleteMoldRelevance(RelevanceMoldInput input) { - if (input is null) throw new ArgumentNullException(nameof(input)); - var entity = input.Adapt(); - var row = await _db.Insertable(entity).ExecuteCommandAsync(); - if (row < 1) throw Oops.Oh(ErrorCode.COM1000); + var row = await _db.Deleteable().Where(it => it.rule_id == input.rule_id && input.ids.Contains(it.mold_id)).ExecuteCommandAsync(); + if (row < 1) throw Oops.Oh(ErrorCode.COM1002); } } } diff --git a/EquipMgr/Tnb.EquipMgr/ToolMoldProductService.cs b/EquipMgr/Tnb.EquipMgr/ToolMoldMaterialService.cs similarity index 70% rename from EquipMgr/Tnb.EquipMgr/ToolMoldProductService.cs rename to EquipMgr/Tnb.EquipMgr/ToolMoldMaterialService.cs index aa357dcd..a77b34d3 100644 --- a/EquipMgr/Tnb.EquipMgr/ToolMoldProductService.cs +++ b/EquipMgr/Tnb.EquipMgr/ToolMoldMaterialService.cs @@ -21,42 +21,41 @@ namespace Tnb.EquipMgr { [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)] [Route("api/[area]/[controller]/[action]")] - public class ToolMoldProductService : IToolMoldProductService, IDynamicApiController, ITransient + public class ToolMoldMaterialService : IToolMoldMaterialService, IDynamicApiController, ITransient { private readonly IUserManager _userManager; private readonly ISqlSugarRepository _repository; - public ToolMoldProductService(IUserManager userManager, ISqlSugarRepository repository) + public ToolMoldMaterialService(IUserManager userManager, ISqlSugarRepository repository) { _userManager = userManager; _repository = repository; } /// - /// 根据模具id获取产品集合 + /// 根据模具id获取物料集合 /// /// /// [HttpPost] - public async Task> GetProductLists(ToolMoldInput ToolMoldInput) + public async Task> GetMaterialLists(ToolMoldInput ToolMoldInput) { var db = _repository.AsSugarClient(); - var list = await db.Queryable((a, b) => new object[] + var list = await db.Queryable((a, b) => new object[] { - JoinType.Inner, a.id == b.product_id, + JoinType.Inner, a.id == b.material_id, }) .Where((a, b) => b.mold_id == ToolMoldInput.mold) - .Select((a, b) => new ProductListOutput + .Select((a, b) => new MaterialListOutput { id = a.id, - product_code = a.product_code, - product_name = a.product_name, - product_standard = a.product_standard, - product_group=b.product_group, + code = a.code, + name = a.name, + material_group=b.material_group, real_cavity_qty = b.real_cavity_qty.HasValue ? b.real_cavity_qty.Value : 0 }).ToListAsync(); return list; } /// - /// 增加模具产品绑定 + /// 增加模具物料绑定 /// /// /// @@ -67,21 +66,21 @@ namespace Tnb.EquipMgr { DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { - var ToolMoldsProduct= await _repository.AsSugarClient().Queryable().Where(p=>p.mold_id== ToolMoldInput.mold&&p.product_id== ToolMoldInput.productid).FirstAsync(); + var ToolMoldsProduct= await _repository.AsSugarClient().Queryable().Where(p=>p.mold_id== ToolMoldInput.mold&&p.material_id== ToolMoldInput.materialid).FirstAsync(); if (ToolMoldsProduct == null) { - var entity = new ToolMoldsProduct(); + var entity = new ToolMoldsMaterial(); entity.id = SnowflakeIdHelper.NextId(); entity.mold_id = ToolMoldInput.mold; - entity.product_id = ToolMoldInput.productid; + entity.material_id = ToolMoldInput.materialid; entity.real_cavity_qty = ToolMoldInput.real_cavity_qty; entity.create_time = DateTime.Now; entity.create_id = _userManager.UserId; - await _repository.AsSugarClient().Insertable(entity).ExecuteCommandAsync(); + await _repository.AsSugarClient().Insertable(entity).ExecuteCommandAsync(); } else { ToolMoldsProduct.real_cavity_qty= ToolMoldInput.real_cavity_qty; - await _repository.AsSugarClient().Updateable(ToolMoldsProduct).ExecuteCommandAsync(); + await _repository.AsSugarClient().Updateable(ToolMoldsProduct).ExecuteCommandAsync(); } @@ -92,7 +91,7 @@ namespace Tnb.EquipMgr } /// - /// 批量删除模具产品绑定 + /// 批量删除模具物料绑定 /// /// /// @@ -102,53 +101,53 @@ namespace Tnb.EquipMgr { DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { - var arr = _repository.AsSugarClient().Queryable().Where(x => x.mold_id == ToolMoldInput.mold && ToolMoldInput.productids.Contains(x.product_id)).ToList(); - await _repository.AsSugarClient().Deleteable(arr).ExecuteCommandAsync(); + var arr = _repository.AsSugarClient().Queryable().Where(x => x.mold_id == ToolMoldInput.mold && ToolMoldInput.materialids.Contains(x.material_id)).ToList(); + await _repository.AsSugarClient().Deleteable(arr).ExecuteCommandAsync(); }); if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); return result.IsSuccess ? "操作成功" : result.ErrorMessage; } /// - /// 产品同组 + /// 物料同组 /// /// /// /// [HttpPost] - public async Task SaveProductGroup(ToolMoldInput ToolMoldInput) + public async Task SaveMaterialGroup(ToolMoldInput ToolMoldInput) { DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { - var arr = _repository.AsSugarClient().Queryable().Where(x => x.mold_id == ToolMoldInput.mold && ToolMoldInput.productids.Contains(x.product_id)).ToList(); + var arr = _repository.AsSugarClient().Queryable().Where(x => x.mold_id == ToolMoldInput.mold && ToolMoldInput.materialids.Contains(x.material_id)).ToList(); var sign = SnowflakeIdHelper.NextId(); - arr.ForEach(p => { p.product_group = sign; }); - await _repository.AsSugarClient().Updateable(arr).ExecuteCommandAsync(); + arr.ForEach(p => { p.material_group = sign; }); + await _repository.AsSugarClient().Updateable(arr).ExecuteCommandAsync(); }); if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); return result.IsSuccess ? "操作成功" : result.ErrorMessage; } /// - /// 取消产品同组 + /// 取消物料同组 /// /// /// /// - public async Task CancelProductGroup(ToolMoldInput ToolMoldInput) + public async Task CancelMaterialGroup(ToolMoldInput ToolMoldInput) { DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { - var arr = _repository.AsSugarClient().Queryable().Where(x => x.mold_id == ToolMoldInput.mold && ToolMoldInput.productids.Contains(x.product_id)).ToList(); - arr.ForEach(p => { p.product_group = string.Empty; }); - await _repository.AsSugarClient().Updateable(arr).ExecuteCommandAsync(); + var arr = _repository.AsSugarClient().Queryable().Where(x => x.mold_id == ToolMoldInput.mold && ToolMoldInput.materialids.Contains(x.material_id)).ToList(); + arr.ForEach(p => { p.material_group = string.Empty; }); + await _repository.AsSugarClient().Updateable(arr).ExecuteCommandAsync(); }); if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); return result.IsSuccess ? "操作成功" : result.ErrorMessage; } /// - /// 根据产品id获取模具集合 + /// 根据物料id获取模具集合 /// /// /// @@ -156,11 +155,11 @@ namespace Tnb.EquipMgr public async Task> GetMoldLists(ToolMoldInput ToolMoldInput) { var db = _repository.AsSugarClient(); - var list = await db.Queryable((a, b) => new object[] + var list = await db.Queryable((a, b) => new object[] { JoinType.Inner, a.id == b.mold_id, }) - .Where((a, b) => b.product_id == ToolMoldInput.productid) + .Where((a, b) => b.material_id == ToolMoldInput.materialid) .Select((a, b) => new MoldListOutput { id = a.id, @@ -172,18 +171,18 @@ namespace Tnb.EquipMgr return list; } /// - /// 批量删除产品模具绑定 + /// 批量删除物料模具绑定 /// /// /// /// [HttpPost] - public async Task DetachProductData(ToolMoldInput ToolMoldInput) + public async Task DetachMaterialData(ToolMoldInput ToolMoldInput) { DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { - var arr = _repository.AsSugarClient().Queryable().Where(x => ToolMoldInput.molds.Contains(x.mold_id) && x.product_id == ToolMoldInput.productid).ToList(); - await _repository.AsSugarClient().Deleteable(arr).ExecuteCommandAsync(); + var arr = _repository.AsSugarClient().Queryable().Where(x => ToolMoldInput.molds.Contains(x.mold_id) && x.material_id == ToolMoldInput.materialid).ToList(); + await _repository.AsSugarClient().Deleteable(arr).ExecuteCommandAsync(); }); if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); return result.IsSuccess ? "操作成功" : result.ErrorMessage; diff --git a/EquipMgr/Tnb.EquipMgr/ToolMoldsService.cs b/EquipMgr/Tnb.EquipMgr/ToolMoldsService.cs index 0c5c02e5..43535cf9 100644 --- a/EquipMgr/Tnb.EquipMgr/ToolMoldsService.cs +++ b/EquipMgr/Tnb.EquipMgr/ToolMoldsService.cs @@ -68,9 +68,12 @@ namespace Tnb.EquipMgr { DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => { + var his= await _repository.AsSugarClient().Queryable().ToListAsync(); var list = new List(); foreach (var equip in ToolMoldInput.equipid) { + if (his.Where(p => p.mold_id == ToolMoldInput.mold && p.equipment_id == equip).ToList().Count > 0) + continue; var entity = new ToolMoldsEquipment(); entity.id = SnowflakeIdHelper.NextId(); entity.mold_id = ToolMoldInput.mold; @@ -83,8 +86,6 @@ namespace Tnb.EquipMgr }); if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008); return result.IsSuccess ? "保存成功" : result.ErrorMessage; - - } /// /// 批量删除模具设备绑定 diff --git a/EquipMgr/Tnb.EquipMgr/Utils/PropertySet.cs b/EquipMgr/Tnb.EquipMgr/Utils/PropertySet.cs new file mode 100644 index 00000000..81464052 --- /dev/null +++ b/EquipMgr/Tnb.EquipMgr/Utils/PropertySet.cs @@ -0,0 +1,23 @@ +using System.Linq.Expressions; + +namespace Tnb.EquipMgr.Utils +{ + public class PropertySet + { + public static Dictionary> ValueFactories = new Dictionary>(StringComparer.OrdinalIgnoreCase); + + public static Action CreateSetPropertyValueAction(string propertyName) + { + var property = typeof(T).GetProperty(propertyName); + var target = Expression.Parameter(typeof(object)); + var propertyValue = Expression.Parameter(typeof(object)); + var castTarget = Expression.Convert(target, typeof(T)); + var castPropertyValue = Expression.Convert(propertyValue, property!.PropertyType); + var setPropertyValue = Expression.Call(castTarget, property.GetSetMethod()!, castPropertyValue); + return Expression.Lambda>(setPropertyValue, target, propertyValue).Compile(); + } + + } + + +} diff --git a/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs b/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs index e4da44d1..fbce46ad 100644 --- a/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs +++ b/taskschedule/Tnb.TaskScheduler/Listener/GenerateSpotInspectionPlanTimeWorker.cs @@ -17,7 +17,7 @@ namespace JNPF.TaskScheduler.Listener // _repository = repository; // } - [SpareTime("0 0 0 * * ?", "生成点巡检计划", ExecuteType = SpareTimeExecuteTypes.Serial,StartNow = false)] + [SpareTime("0 0,30 * * * ?", "生成点巡检计划", ExecuteType = SpareTimeExecuteTypes.Serial,StartNow = false)] public void GenerateSpotInspectionPlan(SpareTimer timer, long count) { Log.Information("----------------------开始生成点巡检计划----------------------"); @@ -100,6 +100,7 @@ namespace JNPF.TaskScheduler.Listener repeat_post_info_user_id = item.repeat_post_info_user_id, is_send = item.is_send, create_time = DateTime.Now, + status = Tnb.EquipMgr.SpotInsRecordExecutionStatus.TOBEEXECUTED }); } }