Explorar o código

fix(s0): add uniqueness checks for manufacturing data

Bump backend version to 1.0.167.
YY968XX hai 4 meses
pai
achega
521751948a

+ 3 - 3
server/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj

@@ -11,9 +11,9 @@
     <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
     <Copyright>Admin.NET</Copyright>
     <Description>Admin.NET 通用权限开发平台</Description>
-    <AssemblyVersion>1.0.166</AssemblyVersion>
-    <FileVersion>1.0.166</FileVersion>
-    <Version>1.0.166</Version>
+    <AssemblyVersion>1.0.167</AssemblyVersion>
+    <FileVersion>1.0.167</FileVersion>
+    <Version>1.0.167</Version>
   </PropertyGroup>
 
   <ItemGroup>

+ 11 - 0
server/Plugins/Admin.NET.Plugin.AiDOP/Controllers/S0/Manufacturing/AdoS0MfgLineMaterialsController.cs

@@ -123,6 +123,11 @@ public class AdoS0MfgLineMaterialsController : ControllerBase
     [HttpPost]
     public async Task<IActionResult> CreateAsync([FromBody] AdoS0ProdLineDetailUpsertDto dto)
     {
+        var part = dto.Part.Trim();
+        var domain = dto.Domain.Trim();
+        if (await _rep.IsAnyAsync(x => x.Domain == domain && x.Part == part && x.Op == dto.Op && x.Line == dto.Line))
+            return AdoS0ApiErrors.Conflict(AdoS0ErrorCodes.DuplicateCode, "该生产线物料配置已存在");
+
         var now = DateTime.Now;
         var entity = new AdoS0ProdLineDetail
         {
@@ -154,6 +159,12 @@ public class AdoS0MfgLineMaterialsController : ControllerBase
     {
         var entity = await _rep.GetByIdAsync(id);
         if (entity == null) return NotFound();
+
+        var part = dto.Part.Trim();
+        var domain = dto.Domain.Trim();
+        if (await _rep.IsAnyAsync(x => x.Id != id && x.Domain == domain && x.Part == part && x.Op == dto.Op && x.Line == dto.Line))
+            return AdoS0ApiErrors.Conflict(AdoS0ErrorCodes.DuplicateCode, "该生产线物料配置已存在");
+
         entity.Part = dto.Part.Trim();
         entity.Op = dto.Op;
         entity.Site = dto.Site;

+ 11 - 0
server/Plugins/Admin.NET.Plugin.AiDOP/Controllers/S0/Manufacturing/AdoS0MfgWorkCentersController.cs

@@ -75,6 +75,11 @@ public class AdoS0MfgWorkCentersController : ControllerBase
             return AdoS0ApiErrors.InvalidReference(AdoS0ErrorCodes.ReferenceNotFound,
                 $"部门编码 '{dto.Department}' 不存在于部门主数据");
 
+        var workCtr = dto.WorkCtr.Trim();
+        var domain = dto.Domain.Trim();
+        if (await _rep.IsAnyAsync(x => x.Domain == domain && x.WorkCtr == workCtr))
+            return AdoS0ApiErrors.Conflict(AdoS0ErrorCodes.DuplicateCode, "工作中心编码已存在");
+
         var now = DateTime.Now;
         var entity = new AdoS0WorkCtrMaster
         {
@@ -101,6 +106,12 @@ public class AdoS0MfgWorkCentersController : ControllerBase
 
         var entity = await _rep.GetByIdAsync(id);
         if (entity == null) return NotFound();
+
+        var workCtr = dto.WorkCtr.Trim();
+        var domain = dto.Domain.Trim();
+        if (await _rep.IsAnyAsync(x => x.Id != id && x.Domain == domain && x.WorkCtr == workCtr))
+            return AdoS0ApiErrors.Conflict(AdoS0ErrorCodes.DuplicateCode, "工作中心编码已存在");
+
         entity.WorkCtr = dto.WorkCtr.Trim();
         entity.Descr = dto.Descr;
         entity.Department = dto.Department;