Browse Source

修改质检操作后台逻辑

SunYaLong 1 year ago
parent
commit
99aa47232c

+ 60 - 0
ZrAdminNetCore-net7.0/ZR.Admin.WebApi/Controllers/Inspect/QaInspectRecordController.cs

@@ -280,6 +280,66 @@ namespace ZR.Admin.WebApi.Controllers.Inspect
                     QaInspectList.Add(qaInspectRecord);
                 }
             }
+
+            if(parm.CheckNgQty > 0)
+            {
+                int allotNgNum = 0;
+                while (true)
+                {
+                    SapDeliverRecord? sapDeliverMd = sapDeliverList.FirstOrDefault(x => x.CheckQty < x.Qty);
+                    if (sapDeliverMd == null || allotNgNum >= parm.CheckNgQty)
+                    {
+                        break;
+                    }
+                    int tmpNeedNum = sapDeliverMd.Qty - (int)sapDeliverMd.CheckQty;
+
+                    if ((allotNgNum + tmpNeedNum) > parm.CheckNgQty)
+                    {
+                        int realNeedNum = parm.CheckNgQty - allotNgNum;
+                        allotNgNum += realNeedNum;
+                        sapDeliverMd.CheckQty += realNeedNum;
+                        sapDeliverMd.CheckResult = "PartOk";
+                        sapDeliverMd.UpdateBy = HttpContext.GetName();
+                        sapDeliverMd.UpdateTime = DateTime.Now;
+                        allotList.Add(sapDeliverMd);
+                        QaInspectRecord qaInspectRecord = sapDeliverMd.Adapt<QaInspectRecord>();
+                        qaInspectRecord.InspectNo = parm.DeliverNo;
+                        qaInspectRecord.InspectedBy = HttpContext.GetName();
+                        qaInspectRecord.InspectTime = DateTime.Now;
+                        qaInspectRecord.CreateBy = HttpContext.GetName();
+                        qaInspectRecord.CreateTime = DateTime.Now;
+                        qaInspectRecord.UpdateBy = HttpContext.GetName();
+                        qaInspectRecord.UpdateTime = DateTime.Now;
+                        qaInspectRecord.Result = "NG";
+                        qaInspectRecord.CheckQty = realNeedNum;
+                        qaInspectRecord.BnSnCode = parm.BnSnCode;
+                        QaInspectList.Add(qaInspectRecord);
+                        break;
+                    }
+                    else
+                    {
+                        allotNgNum += tmpNeedNum;
+                        sapDeliverMd.CheckQty += tmpNeedNum;
+                        sapDeliverMd.CheckResult = "NG";
+                        sapDeliverMd.UpdateBy = HttpContext.GetName();
+                        sapDeliverMd.UpdateTime = DateTime.Now;
+                        allotList.Add(sapDeliverMd);
+                        QaInspectRecord qaInspectRecord = sapDeliverMd.Adapt<QaInspectRecord>();
+                        qaInspectRecord.InspectNo = parm.DeliverNo;
+                        qaInspectRecord.InspectedBy = HttpContext.GetName();
+                        qaInspectRecord.InspectTime = DateTime.Now;
+                        qaInspectRecord.CreateBy = HttpContext.GetName();
+                        qaInspectRecord.CreateTime = DateTime.Now;
+                        qaInspectRecord.UpdateBy = HttpContext.GetName();
+                        qaInspectRecord.UpdateTime = DateTime.Now;
+                        qaInspectRecord.Result = "NG";
+                        qaInspectRecord.CheckQty = tmpNeedNum;
+                        qaInspectRecord.BnSnCode = parm.BnSnCode;
+                        QaInspectList.Add(qaInspectRecord);
+                    }
+                }
+            }
+
             int response = 0;
             int response1 = 0;
             for (int i = 0; i < allotList.Count; i++)

+ 19 - 2
ZrAdminNetCore-net7.0/ZR.Admin.WebApi/Controllers/Inspect/SapDeliverRecordController.cs

@@ -77,7 +77,7 @@ namespace ZR.Admin.WebApi.Controllers.Inspect
         /// <returns></returns>
         [HttpPost]
         [ActionPermissionFilter(Permission = "business:sapdeliverrecord:add")]
-        [Log(Title = "接口管理/SAP交验单记录表", BusinessType = BusinessType.INSERT)]
+         [Log(Title = "接口管理/SAP交验单记录表", BusinessType = BusinessType.INSERT)]
         public IActionResult AddSapDeliverRecord([FromBody] SapDeliverRecordDto parm)
         {
             if (parm == null)
@@ -352,7 +352,24 @@ namespace ZR.Admin.WebApi.Controllers.Inspect
             var response = _SapDeliverRecordService.GetSapDeliverRecordSum(materialSpecCode, deliverNo);
             return SUCCESS(response);
         }
-
+        [HttpGet("GetSapDeliverRecordSumList")]
+        public IActionResult  GetSapDeliverRecordSumList([FromQuery] SapDeliverRecordSumQueryDto parm)
+        {
+            var response = _SapDeliverRecordService.GetSapDeliverRecordSumList(parm);
+            return SUCCESS(response);
+        }
+        [HttpGet("GetSapDeliverIsAllChecked")]
+        public IActionResult GetSapDeliverIsAllChecked(string deliverNo)
+        {
+            var response = _SapDeliverRecordService.GetSapDeliverIsAllChecked(deliverNo);
+            return SUCCESS(response);
+        }
+        [HttpGet("SubmitInspectResult")]
+        public IActionResult SubmitInspectResult(string deliverNo)
+        {
+            var response = _SapDeliverRecordService.SubmitInspectResult(deliverNo);
+            return SUCCESS(response);
+        }
         #endregion
     }
 }

+ 0 - 20
ZrAdminNetCore-net7.0/ZR.Admin.WebApi/Properties/PublishProfiles/FolderProfile.pubxml

@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-https://go.microsoft.com/fwlink/?LinkID=208121.
--->
-<Project>
-  <PropertyGroup>
-    <DeleteExistingFiles>true</DeleteExistingFiles>
-    <ExcludeApp_Data>false</ExcludeApp_Data>
-    <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
-    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
-    <LastUsedPlatform>Any CPU</LastUsedPlatform>
-    <PublishProvider>FileSystem</PublishProvider>
-    <PublishUrl>bin\Release\net6.0\publish\</PublishUrl>
-    <WebPublishMethod>FileSystem</WebPublishMethod>
-    <SiteUrlToLaunchAfterPublish />
-    <TargetFramework>net6.0</TargetFramework>
-    <ProjectGuid>e5497bb4-b0c1-4794-9fae-163f626ec399</ProjectGuid>
-    <SelfContained>false</SelfContained>
-  </PropertyGroup>
-</Project>

+ 8 - 3
ZrAdminNetCore-net7.0/ZR.Admin.WebApi/Properties/PublishProfiles/FolderProfile1.pubxml

@@ -4,13 +4,18 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
 -->
 <Project>
   <PropertyGroup>
-    <DeleteExistingFiles>False</DeleteExistingFiles>
-    <ExcludeApp_Data>False</ExcludeApp_Data>
-    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
+    <DeleteExistingFiles>true</DeleteExistingFiles>
+    <ExcludeApp_Data>false</ExcludeApp_Data>
+    <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
     <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
     <LastUsedPlatform>Any CPU</LastUsedPlatform>
     <PublishProvider>FileSystem</PublishProvider>
     <PublishUrl>bin\Release\net6.0\publish\</PublishUrl>
     <WebPublishMethod>FileSystem</WebPublishMethod>
+    <SiteUrlToLaunchAfterPublish />
+    <TargetFramework>net7.0</TargetFramework>
+    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
+    <ProjectGuid>e5497bb4-b0c1-4794-9fae-163f626ec399</ProjectGuid>
+    <SelfContained>false</SelfContained>
   </PropertyGroup>
 </Project>

+ 1 - 1
ZrAdminNetCore-net7.0/ZR.Admin.WebApi/Properties/launchSettings.json

@@ -13,7 +13,7 @@
       "commandName": "Project",
       "dotnetRunMessages": true,
       "launchUrl": "",
-      "applicationUrl": "http://localhost:8888;http://192.168.137.1:8888",
+      "applicationUrl": "http://localhost:8888",
       "environmentVariables": {
         "ASPNETCORE_ENVIRONMENT": ""
       }

+ 4 - 4
ZrAdminNetCore-net7.0/ZR.Admin.WebApi/appsettings.json

@@ -7,8 +7,8 @@
     }
   },
   "ConnectionStrings": {
-    //"conn_db": "Data Source=localhost;port=3306;User ID=sa;Password=sa123456;Database=mytest_db;CharSet=utf8;sslmode=none;",
-    "conn_db": "Data Source=39.106.7.239;port=3306;User ID=sa;Password=123456;Database=mytest_db;CharSet=utf8;sslmode=none;",
+    "conn_db": "Data Source=localhost;port=3306;User ID=sa;Password=sa123456;Database=mytest_db;CharSet=utf8;sslmode=none;",
+    //"conn_db": "Data Source=39.106.7.239;port=3306;User ID=sa;Password=123456;Database=mytest_db;CharSet=utf8;sslmode=none;",
     //"conn_db": "Data Source=192.168.0.1;port=3306;User ID=sa;Password=123456;Database=mytest_db;CharSet=utf8;sslmode=none;",
     "conn_db_type": "0" //数据库类型 MySql = 0, SqlServer = 1, Oracle = 3
   },
@@ -45,8 +45,8 @@
     "SendUser": "@all"
   },
   "gen": {
-    //"conn": "Data Source=localhost;port=3306;User ID=sa;Password=sa123456;Database=mytest_db;CharSet=utf8;sslmode=none;",
-    "conn": "Data Source=39.106.7.239;port=3306;User ID=sa;Password=123456;Database=mytest_db;CharSet=utf8;sslmode=none;",
+    "conn": "Data Source=localhost;port=3306;User ID=sa;Password=sa123456;Database=mytest_db;CharSet=utf8;sslmode=none;",
+    //"conn": "Data Source=39.106.7.239;port=3306;User ID=sa;Password=123456;Database=mytest_db;CharSet=utf8;sslmode=none;",
     //"conn": "Data Source=192.168.0.1;port=3306;User ID=sa;Password=123456;Database=mytest_db;CharSet=utf8;sslmode=none;",
     "dbType": 0, //MySql = 0, SqlServer = 1
     "autoPre": true, //自动去除表前缀

+ 7 - 1
ZrAdminNetCore-net7.0/ZR.Model/Dto/Inspect/SapDeliverRecordDto.cs

@@ -115,6 +115,7 @@ namespace ZR.Model.Dto.Inspect
         [Required(ErrorMessage = "规格型号/图号不能为空")]
         public string MaterialSpec { get; set; }
         public int CheckOkQty { get; set; }
+        public int CheckNgQty { get; set; }
         /// <summary>
         /// BN/SN码 
         /// </summary>
@@ -135,6 +136,11 @@ namespace ZR.Model.Dto.Inspect
         [Required(ErrorMessage = "交验单数量不能为空")]
         public int SumQty { get; set; }
 
-        public int? SumCheckQty { get; set; }
+        public int SumCheckQty { get; set; }
+    }
+    public class SapDeliverRecordSumQueryDto : PagerInfo
+    {
+        public string DeliverNo { get; set; }
+        public string MaterialSpec { get; set; }
     }
 }

+ 2 - 0
ZrAdminNetCore-net7.0/ZR.Model/Models/Inspect/QaInspectRecord.cs

@@ -107,6 +107,8 @@ namespace ZR.Model.Models.Inspect
         /// </summary>
         [SugarColumn(ColumnName = "instore_result")]
         public int InstoreResult { get; set; }
+        [SugarColumn(ColumnName = "allow_instore")]
+        public bool AllowInstore { get; set; }
 
 
         #region 表外字段

+ 2 - 0
ZrAdminNetCore-net7.0/ZR.Model/Models/Inspect/SapDeliverRecord.cs

@@ -101,6 +101,8 @@ namespace ZR.Model.Models.Inspect
         /// </summary>
         [SugarColumn(ColumnName = "instore_result")]
         public int InstoreResult { get; set; }
+        [SugarColumn(ColumnName = "submit_inspect_result")]
+        public bool SubmitInspectResult { get; set; }
 
 
     }

+ 3 - 0
ZrAdminNetCore-net7.0/ZR.Service/Business/IBusinessService/Inspect/ISapDeliverRecordService.cs

@@ -33,6 +33,9 @@ namespace ZR.Service.Business.IBusinessService.Inspect
         List<SapDeliverDto> GetListNoPage(SapDeliverQueryNoPageDto parm);
         List<SapDeliverRecordDto> GetSapDeliverRecordList(string deliverNo);
         SapDeliverRecordSumDto GetSapDeliverRecordSum(string materialSpecCode, string deliverNo);
+        bool GetSapDeliverIsAllChecked(string deliverNo);
+        PagedInfo<SapDeliverRecordSumDto> GetSapDeliverRecordSumList(SapDeliverRecordSumQueryDto parm);
+        bool SubmitInspectResult(string deliverNo);
         #endregion
     }
 }

+ 1 - 0
ZrAdminNetCore-net7.0/ZR.Service/Business/Inspect/QaInspectRecordService.cs

@@ -210,6 +210,7 @@ namespace ZR.Service.Business.Inspect
             predicate.AndIF(parm != null && !string.IsNullOrEmpty(parm.DeliverNo), x => x.DeliverNo.Contains(parm.DeliverNo));
             predicate.AndIF(parm != null && !string.IsNullOrEmpty(parm.BomNo), x => x.BomNo.Contains(parm.BomNo));
             predicate.And(x => x.CheckQty > x.InstoreQty);
+            predicate.And(x => x.AllowInstore == true);
             //搜索条件查询语法参考Sqlsugar
             var response = Queryable()
                 .Distinct()

+ 76 - 1
ZrAdminNetCore-net7.0/ZR.Service/Business/Inspect/SapDeliverRecordService.cs

@@ -10,6 +10,7 @@ using ZR.Service.Business.IBusinessService.Inspect;
 using ZR.Model.Dto.Inspect;
 using ZR.Model.Models.Inspect;
 using Mapster;
+using Aliyun.OSS;
 
 namespace ZR.Service.Business.Inspect
 {
@@ -22,6 +23,14 @@ namespace ZR.Service.Business.Inspect
     [AppService(ServiceType = typeof(ISapDeliverRecordService), ServiceLifetime = LifeTime.Transient)]
     public class SapDeliverRecordService : BaseService<SapDeliverRecord>, ISapDeliverRecordService
     {
+        #region 依赖注入
+        private IQaInspectRecordService QaInspectRecordService { get; set; }
+        public SapDeliverRecordService(IQaInspectRecordService qaInspectRecordService) 
+        {
+            QaInspectRecordService = qaInspectRecordService;
+        }
+        #endregion
+
         #region 业务逻辑代码
 
         /// <summary>
@@ -146,7 +155,9 @@ namespace ZR.Service.Business.Inspect
             var predicate = Expressionable.Create<SapDeliverRecord>();
             predicate.AndIF(parm != null && !string.IsNullOrEmpty(parm.DeliverNo), x => x.DeliverNo.Contains(parm.DeliverNo));
             predicate.AndIF(parm != null && !string.IsNullOrEmpty(parm.BomNo), x => x.BomNo.Contains(parm.BomNo));
-            predicate.And(x => x.Qty > x.CheckQty);
+            //predicate.And(x => x.Qty > x.CheckQty);
+            //predicate.And(x => x.CheckResult == "Wait");
+            predicate.And(x => x.SubmitInspectResult == false);
             //搜索条件查询语法参考Sqlsugar
             var response = Queryable()
                 .Distinct()
@@ -196,6 +207,70 @@ namespace ZR.Service.Business.Inspect
                 return null;
             }
         }
+        public PagedInfo<SapDeliverRecordSumDto> GetSapDeliverRecordSumList(SapDeliverRecordSumQueryDto parm)
+        {
+            //开始拼装查询条件
+            var predicate = Expressionable.Create<SapDeliverRecord>();
+            predicate.AndIF(!string.IsNullOrEmpty(parm.MaterialSpec), x => x.MaterialSpec == parm.MaterialSpec);
+            predicate.And(x => x.DeliverNo == parm.DeliverNo);
+            //搜索条件查询语法参考Sqlsugar
+            var response = Queryable()
+                .GroupBy(x => new { x.MaterialCode, x.MaterialName, x.MaterialSpec })
+                .Where(predicate.ToExpression())
+                .Select(x => new SapDeliverRecordSumDto
+                {
+                    MaterialCode = x.MaterialCode,
+                    MaterialName = x.MaterialName,
+                    MaterialSpec = x.MaterialSpec,
+                    SumQty = SqlFunc.AggregateSum(x.Qty),
+                    SumCheckQty = (int)SqlFunc.AggregateSum(x.CheckQty),
+                }).ToPage(parm);
+                return response;
+        }
+        public bool GetSapDeliverIsAllChecked(string deliverNo)
+        {
+            //开始拼装查询条件
+            var predicate = Expressionable.Create<SapDeliverRecord>();
+            predicate.And(x => x.DeliverNo == deliverNo);
+            predicate.And(x => x.CheckQty < x.Qty);
+            //搜索条件查询语法参考Sqlsugar
+            var response = Queryable()
+                .Where(predicate.ToExpression()).ToList();
+            if (response.Count > 0)
+            {
+                return false;
+            }
+            else
+            {
+                //Update(new SysUser(){ }, it => new { it.Status }, f => f.Userid == 1));
+                QaInspectRecordService.Update(new QaInspectRecord { AllowInstore = true }, it => new { it.AllowInstore }, f => f.DeliverNo == deliverNo);
+                return true;
+            }
+        }
+        public bool SubmitInspectResult(string deliverNo)
+        {
+            //开始拼装查询条件
+            var predicate = Expressionable.Create<SapDeliverRecord>();
+            predicate.And(x => x.DeliverNo == deliverNo);
+            predicate.And(x => x.CheckQty < x.Qty);
+            //搜索条件查询语法参考Sqlsugar
+            var response = Queryable()
+                .Where(predicate.ToExpression()).ToList();
+            if (response.Count > 0)
+            {
+                return false;
+            }
+            int rows = Update(new SapDeliverRecord { SubmitInspectResult = true }, it => new { it.SubmitInspectResult},f => f.DeliverNo == deliverNo);
+            int rows1 = QaInspectRecordService.Update(new QaInspectRecord { AllowInstore = true }, it => new { it.AllowInstore }, f => f.DeliverNo == deliverNo);
+            if (rows > 0 && rows1 > 0)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
         #endregion
     }
 }