From 254504ab1de7dcb6e3c5a09d75485d0ff3f07424 Mon Sep 17 00:00:00 2001
From: qianjiawei <1184704771@qq.com>
Date: Wed, 17 May 2023 09:00:44 +0800
Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=85=B7=E8=AE=BE=E5=A4=87=E4=BA=A7?=
=?UTF-8?q?=E5=93=81=E5=85=B3=E8=81=94?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Dto/ProducttListOutput.cs | 32 +++
.../Dto/ToolMoldInput.cs | 20 ++
.../Entity/BasProduct.cs | 128 ++++++++++++
.../Tnb.EquipMgr.Entities/Entity/ToolMolds.cs | 192 ++++++++++++++++++
.../Entity/ToolMoldsEquipment.cs | 63 ++++++
.../Entity/ToolMoldsProduct.cs | 78 +++++++
.../IToolMoldProductService.cs | 64 ++++++
.../IToolMoldsService.cs | 33 +++
.../Tnb.EquipMgr/ToolMoldProductService.cs | 192 ++++++++++++++++++
EquipMgr/Tnb.EquipMgr/ToolMoldsService.cs | 108 ++++++++++
10 files changed, 910 insertions(+)
create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/ProducttListOutput.cs
create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldInput.cs
create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Entity/BasProduct.cs
create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMolds.cs
create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsEquipment.cs
create mode 100644 EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsProduct.cs
create mode 100644 EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldProductService.cs
create mode 100644 EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldsService.cs
create mode 100644 EquipMgr/Tnb.EquipMgr/ToolMoldProductService.cs
create mode 100644 EquipMgr/Tnb.EquipMgr/ToolMoldsService.cs
diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/ProducttListOutput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/ProducttListOutput.cs
new file mode 100644
index 00000000..f4561ecb
--- /dev/null
+++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/ProducttListOutput.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tnb.EquipMgr.Entities.Dto
+{
+ ///
+ /// 产品列表输出类
+ ///
+ public class ProductListOutput
+ {
+ 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 int real_cavity_qty { get; set; }
+ }
+ ///
+ /// 模具列表输出类
+ ///
+ public class MoldListOutput
+ {
+ public string id { get; set; }
+ public string mold_code { get; set; }
+ public string mold_name { get; set; }
+ public int cavity_qty { get; set; }
+ public int real_cavity_qty { get; set; }
+ }
+}
diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldInput.cs b/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldInput.cs
new file mode 100644
index 00000000..5b7ea819
--- /dev/null
+++ b/EquipMgr/Tnb.EquipMgr.Entities/Dto/ToolMoldInput.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tnb.EquipMgr.Entities.Dto
+{
+ public class ToolMoldInput
+ {
+ public string mold { get; set; }
+ public string[] equipid { get; set; }
+ public string productid { get; set; }
+ public int real_cavity_qty { get; set; }
+ public string[] productids { get; set; }
+
+ public string[] molds { get; set; }
+ }
+
+}
diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/BasProduct.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/BasProduct.cs
new file mode 100644
index 00000000..d6ff9f62
--- /dev/null
+++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/BasProduct.cs
@@ -0,0 +1,128 @@
+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_product")]
+ public partial class BasProduct : BaseEntity
+ {
+ public BasProduct()
+ {
+
+
+ }
+
+ ///
+ /// Desc:产品分类ID
+ /// Default:
+ /// Nullable:False
+ ///
+ public string categoryid { get; set; }
+
+ ///
+ /// Desc:关联比例
+ /// Default:
+ /// Nullable:True
+ ///
+ public decimal? relation_ratio { 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 product_standard { get; set; }
+
+ ///
+ /// Desc:产品类型: 半成品:SemiManufacture 成品:FinishedProduct
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string product_type { get; set; }
+
+ ///
+ /// Desc:物料ID,BAS_MATERIAL.ID
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string material_id { get; set; }
+
+ ///
+ /// Desc:备注
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string remark { get; set; }
+
+ ///
+ /// Desc:时间戳(用于并发控制)
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string timestamp { 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 product_name { get; set; }
+
+ ///
+ /// Desc:产品代码
+ /// Default:
+ /// Nullable:False
+ ///
+ public string product_code { get; set; }
+
+ }
+}
diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMolds.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMolds.cs
new file mode 100644
index 00000000..c3ea7e12
--- /dev/null
+++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMolds.cs
@@ -0,0 +1,192 @@
+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("tool_molds")]
+ public partial class ToolMolds : BaseEntity
+ {
+ public ToolMolds()
+ {
+
+
+ }
+ ///
+ /// Desc:模穴数
+ /// Default:
+ /// Nullable:True
+ ///
+ public int? mold_cavity { get; set; }
+
+
+ ///
+ /// Desc:生产模数
+ /// Default:
+ /// Nullable:True
+ ///
+ public int? production_modulus { get; set; }
+
+ ///
+ /// Desc:日定额
+ /// Default:
+ /// Nullable:True
+ ///
+ public decimal? daily_rate { get; set; }
+
+ ///
+ /// Desc:工时定额(H/PCS)
+ /// Default:
+ /// Nullable:True
+ ///
+ public decimal? hour_norm { get; set; }
+
+ ///
+ /// Desc:成长周期
+ /// Default:
+ /// Nullable:True
+ ///
+ public int? growth_cycle { get; set; }
+
+ ///
+ /// Desc:模具寿命
+ /// Default:
+ /// Nullable:True
+ ///
+ public int? mold_life { get; set; }
+
+ ///
+ /// Desc:备注
+ /// Default:
+ /// Nullable:True
+ ///
+ public string remark { get; set; }
+
+ ///
+ /// Desc:模具编号
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string mold_code { get; set; }
+
+ ///
+ /// Desc:模具名称
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string mold_name { get; set; }
+
+ ///
+ /// Desc:设备Id
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string eqp_id { get; set; }
+
+ ///
+ /// Desc:设备代码
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string eqp_code { get; set; }
+
+ ///
+ /// Desc:磨具使用状态
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string mold_status { get; set; }
+
+ ///
+ /// Desc:保养模次
+ /// Default:
+ /// Nullable:True
+ ///
+ public int? maintain_qty { get; set; }
+
+ ///
+ /// Desc:型腔数
+ /// Default:
+ /// Nullable:True
+ ///
+ public int? cavity_qty { 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 mold_remaining_life { get; set; }
+
+ ///
+ /// Desc:库房编号
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string warehosue_id { get; set; }
+
+ ///
+ /// Desc:库位编号
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string location_id { 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:
+ /// Nullable:True
+ ///
+ public string mold_type_code { get; set; }
+
+ ///
+ /// Desc:物料Id
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string material_id { get; set; }
+
+ }
+}
diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsEquipment.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsEquipment.cs
new file mode 100644
index 00000000..d3739642
--- /dev/null
+++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsEquipment.cs
@@ -0,0 +1,63 @@
+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("tool_molds_equipment")]
+ public partial class ToolMoldsEquipment : BaseEntity
+ {
+ public ToolMoldsEquipment() { }
+
+ ///
+ /// Desc:模具编号
+ /// Default:
+ /// Nullable:False
+ ///
+ public string mold_id { get; set; }
+
+ ///
+ /// Desc:设备编号
+ /// Default:
+ /// Nullable:False
+ ///
+ public string equipment_id { get; set; }
+
+ ///
+ /// Desc:创建用户
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string create_id { get; set; }
+
+ ///
+ /// Desc:创建时间
+ /// Default:
+ /// Nullable:False
+ ///
+ public DateTime create_time { get; set; }
+
+ ///
+ /// Desc:修改用户
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string modify_id { get; set; }
+
+ ///
+ /// Desc:修改时间
+ /// Default:
+ /// Nullable:True
+ ///
+ public DateTime? modify_time { get; set; }
+
+
+ }
+}
diff --git a/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsProduct.cs b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsProduct.cs
new file mode 100644
index 00000000..452adec2
--- /dev/null
+++ b/EquipMgr/Tnb.EquipMgr.Entities/Entity/ToolMoldsProduct.cs
@@ -0,0 +1,78 @@
+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("tool_molds_product")]
+ public partial class ToolMoldsProduct : BaseEntity
+ {
+ public ToolMoldsProduct()
+ {
+
+
+ }
+
+ ///
+ /// Desc:模具编号
+ /// Default:
+ /// Nullable:False
+ ///
+ public string mold_id { get; set; }
+
+ ///
+ /// Desc:产品编号
+ /// Default:
+ /// Nullable:False
+ ///
+ public string product_id { get; set; }
+
+ ///
+ /// Desc:创建时间
+ /// Default:
+ /// Nullable:False
+ ///
+ public DateTime create_time { 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:
+ /// Nullable:True
+ ///
+ public DateTime? modify_time { get; set; }
+
+ ///
+ /// Desc:实际使用型腔数
+ /// Default:
+ /// Nullable:True
+ ///
+ public int? real_cavity_qty { get; set; }
+ ///
+ /// Desc:产品同组标识
+ /// Default:NULL::character varying
+ /// Nullable:True
+ ///
+ public string product_group { get; set; }
+ }
+}
diff --git a/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldProductService.cs b/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldProductService.cs
new file mode 100644
index 00000000..b7768fe7
--- /dev/null
+++ b/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldProductService.cs
@@ -0,0 +1,64 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Tnb.EquipMgr.Entities.Dto;
+
+namespace Tnb.EquipMgr.Interfaces
+{
+ public interface IToolMoldProductService
+ {
+ ///
+ /// 根据模具id获取设备集合
+ ///
+ ///
+ ///
+ public Task> GetProductLists(ToolMoldInput ToolMoldInput);
+ ///
+ /// 增加模具产品绑定
+ ///
+ ///
+ ///
+ ///
+ ///
+ public Task SaveData(ToolMoldInput ToolMoldInput);
+ ///
+ /// 批量删除模具产品绑定
+ ///
+ ///
+ ///
+ ///
+ public Task DetachMoldData(ToolMoldInput ToolMoldInput);
+ ///
+ /// 产品同组
+ ///
+ ///
+ ///
+ ///
+ public Task SaveProductGroup(ToolMoldInput ToolMoldInput);
+ ///
+ /// 取消产品同组
+ ///
+ ///
+ ///
+ ///
+ public Task CancelProductGroup(ToolMoldInput ToolMoldInput);
+
+ ///
+ /// 根据产品id获取模具集合
+ ///
+ ///
+ ///
+ public Task> GetMoldLists(ToolMoldInput ToolMoldInput);
+ ///
+ /// 批量删除产品模具绑定
+ ///
+ ///
+ ///
+ ///
+
+ public Task DetachProductData(ToolMoldInput ToolMoldInput);
+ }
+}
diff --git a/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldsService.cs b/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldsService.cs
new file mode 100644
index 00000000..18539dc2
--- /dev/null
+++ b/EquipMgr/Tnb.EquipMgr.Interfaces/IToolMoldsService.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tnb.EquipMgr.Entities.Dto;
+
+namespace Tnb.EquipMgr.Interfaces
+{
+ public interface IToolMoldsService
+ {
+ ///
+ /// 根据模具id获取设备集合
+ ///
+ ///
+ ///
+ public Task> GetEquipmentLists(ToolMoldInput ToolMoldInput);
+ ///
+ /// 增加模具设备绑定
+ ///
+ ///
+ ///
+ ///
+ public Task SaveData(ToolMoldInput ToolMoldInput);
+ ///
+ /// 批量删除模具设备绑定
+ ///
+ ///
+ ///
+ ///
+ public Task DetachData(ToolMoldInput ToolMoldInput);
+ }
+}
diff --git a/EquipMgr/Tnb.EquipMgr/ToolMoldProductService.cs b/EquipMgr/Tnb.EquipMgr/ToolMoldProductService.cs
new file mode 100644
index 00000000..aa357dcd
--- /dev/null
+++ b/EquipMgr/Tnb.EquipMgr/ToolMoldProductService.cs
@@ -0,0 +1,192 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Aspose.Cells.Drawing;
+using JNPF.Common.Core.Manager;
+using JNPF.Common.Enums;
+using JNPF.Common.Security;
+using JNPF.DependencyInjection;
+using JNPF.DynamicApiController;
+using JNPF.FriendlyException;
+using Microsoft.AspNetCore.Mvc;
+using SqlSugar;
+using Tnb.EquipMgr.Entities;
+using Tnb.EquipMgr.Entities.Dto;
+using Tnb.EquipMgr.Entities.Entity;
+using Tnb.EquipMgr.Interfaces;
+
+namespace Tnb.EquipMgr
+{
+ [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)]
+ [Route("api/[area]/[controller]/[action]")]
+ public class ToolMoldProductService : IToolMoldProductService, IDynamicApiController, ITransient
+ {
+ private readonly IUserManager _userManager;
+ private readonly ISqlSugarRepository _repository;
+ public ToolMoldProductService(IUserManager userManager, ISqlSugarRepository repository)
+ {
+ _userManager = userManager;
+ _repository = repository;
+ }
+ ///
+ /// 根据模具id获取产品集合
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetProductLists(ToolMoldInput ToolMoldInput)
+ {
+ var db = _repository.AsSugarClient();
+ var list = await db.Queryable((a, b) => new object[]
+ {
+ JoinType.Inner, a.id == b.product_id,
+ })
+ .Where((a, b) => b.mold_id == ToolMoldInput.mold)
+ .Select((a, b) => new ProductListOutput
+ {
+ id = a.id,
+ product_code = a.product_code,
+ product_name = a.product_name,
+ product_standard = a.product_standard,
+ product_group=b.product_group,
+ real_cavity_qty = b.real_cavity_qty.HasValue ? b.real_cavity_qty.Value : 0
+ }).ToListAsync();
+ return list;
+ }
+ ///
+ /// 增加模具产品绑定
+ ///
+ ///
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task SaveData(ToolMoldInput ToolMoldInput)
+ {
+ 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();
+ if (ToolMoldsProduct == null)
+ {
+ var entity = new ToolMoldsProduct();
+ entity.id = SnowflakeIdHelper.NextId();
+ entity.mold_id = ToolMoldInput.mold;
+ entity.product_id = ToolMoldInput.productid;
+ entity.real_cavity_qty = ToolMoldInput.real_cavity_qty;
+ entity.create_time = DateTime.Now;
+ entity.create_id = _userManager.UserId;
+ await _repository.AsSugarClient().Insertable(entity).ExecuteCommandAsync();
+ }
+ else {
+ ToolMoldsProduct.real_cavity_qty= ToolMoldInput.real_cavity_qty;
+ await _repository.AsSugarClient().Updateable(ToolMoldsProduct).ExecuteCommandAsync();
+ }
+
+
+ });
+ if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008);
+ return result.IsSuccess ? "保存成功" : result.ErrorMessage;
+
+
+ }
+ ///
+ /// 批量删除模具产品绑定
+ ///
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task DetachMoldData(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();
+ 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)
+ {
+ 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 sign = SnowflakeIdHelper.NextId();
+ arr.ForEach(p => { p.product_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)
+ {
+ 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();
+
+ });
+ if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008);
+ return result.IsSuccess ? "操作成功" : result.ErrorMessage;
+ }
+ ///
+ /// 根据产品id获取模具集合
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetMoldLists(ToolMoldInput ToolMoldInput)
+ {
+ var db = _repository.AsSugarClient();
+ var list = await db.Queryable((a, b) => new object[]
+ {
+ JoinType.Inner, a.id == b.mold_id,
+ })
+ .Where((a, b) => b.product_id == ToolMoldInput.productid)
+ .Select((a, b) => new MoldListOutput
+ {
+ id = a.id,
+ mold_code = a.mold_code,
+ mold_name = a.mold_name,
+ cavity_qty = a.cavity_qty.HasValue ? a.cavity_qty.Value : 0,
+ real_cavity_qty = b.real_cavity_qty.HasValue ? b.real_cavity_qty.Value : 0
+ }).ToListAsync();
+ return list;
+ }
+ ///
+ /// 批量删除产品模具绑定
+ ///
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task DetachProductData(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();
+ });
+ 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
new file mode 100644
index 00000000..0c5c02e5
--- /dev/null
+++ b/EquipMgr/Tnb.EquipMgr/ToolMoldsService.cs
@@ -0,0 +1,108 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Aop.Api.Domain;
+using Aspose.Cells.Drawing;
+using JNPF.Common.Core.Manager;
+using JNPF.Common.Enums;
+using JNPF.Common.Filter;
+using JNPF.Common.Security;
+using JNPF.DependencyInjection;
+using JNPF.DynamicApiController;
+using JNPF.FriendlyException;
+using Microsoft.AspNetCore.Identity;
+using Microsoft.AspNetCore.Mvc;
+using SqlSugar;
+using Tnb.EquipMgr.Entities;
+using Tnb.EquipMgr.Entities.Dto;
+using Tnb.EquipMgr.Entities.Entity;
+using Tnb.EquipMgr.Interfaces;
+
+namespace Tnb.EquipMgr
+{ ///
+ /// 模具管理
+ ///
+ [ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)]
+ [Route("api/[area]/[controller]/[action]")]
+ public class ToolMoldsService : IToolMoldsService, IDynamicApiController, ITransient
+ {
+ private readonly IUserManager _userManager;
+ private readonly ISqlSugarRepository _repository;
+ public ToolMoldsService(IUserManager userManager, ISqlSugarRepository repository)
+ {
+ _userManager = userManager;
+ _repository = repository;
+ }
+ ///
+ /// 根据模具id获取设备集合
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetEquipmentLists(ToolMoldInput ToolMoldInput)
+ {
+ var db = _repository.AsSugarClient();
+ var list = await db.Queryable((a, b) => new object[]
+ {
+ JoinType.Inner, a.id == b.equipment_id,
+ })
+ .Where((a, b) => b.mold_id == ToolMoldInput.mold)
+ .Select((a, b) => new EquipmentListOutput
+ {
+ id = a.id,
+ eqp_code=a.code,
+ eqp_name=a.name
+ }).ToListAsync();
+ return list;
+ }
+ ///
+ /// 增加模具设备绑定
+ ///
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task SaveData(ToolMoldInput ToolMoldInput)
+ {
+ DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
+ {
+ var list = new List();
+ foreach (var equip in ToolMoldInput.equipid)
+ {
+ var entity = new ToolMoldsEquipment();
+ entity.id = SnowflakeIdHelper.NextId();
+ entity.mold_id = ToolMoldInput.mold;
+ entity.equipment_id = equip;
+ entity.create_time = DateTime.Now;
+ entity.create_id = _userManager.UserId;
+ list.Add(entity);
+ }
+ await _repository.AsSugarClient().Insertable(list).ExecuteCommandAsync();
+ });
+ if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008);
+ return result.IsSuccess ? "保存成功" : result.ErrorMessage;
+
+
+ }
+ ///
+ /// 批量删除模具设备绑定
+ ///
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task DetachData(ToolMoldInput ToolMoldInput)
+ {
+ DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
+ {
+ var arr = _repository.AsSugarClient().Queryable().Where(x => x.mold_id == ToolMoldInput.mold && ToolMoldInput.equipid.Contains(x.equipment_id)).ToList();
+ await _repository.AsSugarClient().Deleteable(arr).ExecuteCommandAsync();
+
+ });
+ if (!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008);
+ return result.IsSuccess ? "操作成功" : result.ErrorMessage;
+ }
+ }
+}