Jelajahi Sumber

初步完成追溯页面

zhaoyaxiong 2 tahun lalu
induk
melakukan
90a0ab4584

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

@@ -64,6 +64,13 @@ namespace ZR.Admin.WebApi.Controllers.Inspect
             var response = _QaInspectRecordService.GetList(parm, isPDA);
             return SUCCESS(response);
         }
+        [HttpGet("report")]
+        [ActionPermissionFilter(Permission = "business:qainspectrecord:report")]
+        public IActionResult QaReport([FromQuery] QaInspectRecordQueryDto parm)
+        {
+            var response = _QaInspectRecordService.GetReport(parm);
+            return SUCCESS(response);
+        }
         /// <summary>
         /// 获取每日质检物料数
         /// </summary>

+ 55 - 0
ZrAdminNetCore-net7.0/ZR.Admin.WebApi/ZRModel.xml

@@ -93,6 +93,26 @@
             质检管理/质检记录表输入输出对象
             </summary>
         </member>
+        <member name="P:ZR.Model.Dto.Inspect.QaInspectRecordDto.SumQaQty">
+            <summary>
+            质检数量
+            </summary>
+        </member>
+        <member name="P:ZR.Model.Dto.Inspect.QaInspectRecordDto.SumInstoreQty">
+            <summary>
+            入库数量
+            </summary>
+        </member>
+        <member name="P:ZR.Model.Dto.Inspect.QaInspectRecordDto.SumOutstoreQty">
+            <summary>
+            出库数量
+            </summary>
+        </member>
+        <member name="P:ZR.Model.Dto.Inspect.QaInspectRecordDto.SumAssQty">
+            <summary>
+            装配数量
+            </summary>
+        </member>
         <member name="T:ZR.Model.Dto.Inspect.SapDeliverRecordQueryDto">
             <summary>
             接口管理/SAP交验单记录表查询对象
@@ -565,6 +585,26 @@
             入库结果。0:未入库;99:入库完成。 
             </summary>
         </member>
+        <member name="P:ZR.Model.Models.Inspect.QaInspectRecord.SumQaQty">
+            <summary>
+            质检数量
+            </summary>
+        </member>
+        <member name="P:ZR.Model.Models.Inspect.QaInspectRecord.SumInstoreQty">
+            <summary>
+            入库数量
+            </summary>
+        </member>
+        <member name="P:ZR.Model.Models.Inspect.QaInspectRecord.SumOutstoreQty">
+            <summary>
+            出库数量
+            </summary>
+        </member>
+        <member name="P:ZR.Model.Models.Inspect.QaInspectRecord.SumAssQty">
+            <summary>
+            装配数量
+            </summary>
+        </member>
         <member name="T:ZR.Model.Models.Inspect.SapDeliverRecord">
              <summary>
              接口管理/SAP交验单记录表,数据实体对象
@@ -821,6 +861,11 @@
             质检合格数量 
             </summary>
         </member>
+        <member name="P:ZR.Model.Models.InStore.InInstoreRecord.SumInstoreQty">
+            <summary>
+            入库数量
+            </summary>
+        </member>
         <member name="T:ZR.Model.Models.InStore.InRetreatRecord">
              <summary>
              入库管理/退料记录表,数据实体对象
@@ -967,6 +1012,11 @@
             BN/SN码 
             </summary>
         </member>
+        <member name="P:ZR.Model.Models.OutStore.OutAssembleRecord.SumAssQty">
+            <summary>
+            装配数量
+            </summary>
+        </member>
         <member name="T:ZR.Model.Models.OutStore.OutOutstoreRecord">
              <summary>
              出库管理/出库记录表,数据实体对象
@@ -1030,6 +1080,11 @@
             BN/SN码 
             </summary>
         </member>
+        <member name="P:ZR.Model.Models.OutStore.OutOutstoreRecord.SumOutstoreQty">
+            <summary>
+            出库数量
+            </summary>
+        </member>
         <member name="T:ZR.Model.Models.OutStore.SapBomRecord">
              <summary>
              接口管理/SAP关键件清单记录表,数据实体对象

+ 23 - 0
ZrAdminNetCore-net7.0/ZR.Model/Dto/Inspect/QaInspectRecordDto.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
 using Newtonsoft.Json;
+using SqlSugar;
 using ZR.Model.Models;
 
 namespace ZR.Model.Dto.Inspect
@@ -109,5 +110,27 @@ namespace ZR.Model.Dto.Inspect
         public int InstoreResult { get; set; }
 
 
+        #region 表外字段
+        /// <summary>
+        /// 质检数量
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int? SumQaQty { get; set; }
+        /// <summary>
+        /// 入库数量
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int? SumInstoreQty { get; set; }
+        /// <summary>
+        /// 出库数量
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int? SumOutstoreQty { get; set; }
+        /// <summary>
+        /// 装配数量
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int? SumAssQty { get; set; }
+        #endregion
     }
 }

+ 9 - 0
ZrAdminNetCore-net7.0/ZR.Model/Models/InStore/InInstoreRecord.cs

@@ -94,5 +94,14 @@ namespace ZR.Model.Models.InStore
         /// </summary>
         public int CheckQty { get; set; }
 
+        #region 表外字段
+       
+        /// <summary>
+        /// 入库数量
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int? SumInstoreQty { get; set; }
+      
+        #endregion
     }
 }

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

@@ -108,5 +108,28 @@ namespace ZR.Model.Models.Inspect
         [SugarColumn(ColumnName = "instore_result")]
         public int InstoreResult { get; set; }
 
+
+        #region 表外字段
+        /// <summary>
+        /// 质检数量
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int? SumQaQty { get; set; }
+        /// <summary>
+        /// 入库数量
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int? SumInstoreQty { get; set; }
+        /// <summary>
+        /// 出库数量
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int? SumOutstoreQty { get; set; }
+        /// <summary>
+        /// 装配数量
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int? SumAssQty { get; set; }
+        #endregion
     }
 }

+ 7 - 0
ZrAdminNetCore-net7.0/ZR.Model/Models/OutStore/OutAssembleRecord.cs

@@ -69,5 +69,12 @@ namespace ZR.Model.Models.OutStore
         /// </summary>
         public string BnSnCode { get; set; }
 
+        #region 表外字段
+        /// <summary>
+        /// 装配数量
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int? SumAssQty { get; set; }
+        #endregion
     }
 }

+ 8 - 0
ZrAdminNetCore-net7.0/ZR.Model/Models/OutStore/OutOutstoreRecord.cs

@@ -69,5 +69,13 @@ namespace ZR.Model.Models.OutStore
         /// </summary>
         public string BnSnCode { get; set; }
 
+        #region 表外字段
+      
+        /// <summary>
+        /// 出库数量
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int? SumOutstoreQty { get; set; }
+        #endregion
     }
 }

+ 1 - 1
ZrAdminNetCore-net7.0/ZR.Service/Business/BaseSet/BasBinService.cs

@@ -50,7 +50,7 @@ namespace ZR.Service.Business
                 .Select((b,region)=>new BasBin 
                 {
                     RegionId = b.RegionId.SelectAll(),
-                    RegionName=region.RegionName,
+                    RegionName =region.RegionName,
                     RegionCode=region.RegionCode,
                 })
                 .ToPage<BasBin, BasBinDto>(parm);

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

@@ -16,6 +16,7 @@ namespace ZR.Service.Business.IBusinessService.Inspect
     public interface IQaInspectRecordService : IBaseService<QaInspectRecord>
     {
         PagedInfo<QaInspectRecordDto> GetList(QaInspectRecordQueryDto parm, bool isPdaQuery = false);
+        PagedInfo<QaInspectRecordDto> GetReport(QaInspectRecordQueryDto parm);
         List<GroupByKey> GetDailyStatistics(DateTime BeginTime, DateTime EndTime);
 
         int AddQaInspectRecord(QaInspectRecord parm);

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

@@ -14,6 +14,9 @@ using ZR.Model.Models.Inspect;
 using Mapster;
 using System.Collections.Generic;
 using ZR.Model.Models.Statistics;
+using ZR.Model.Models.BaseSet;
+using ZR.Model.Models.InStore;
+using ZR.Model.Models.OutStore;
 
 namespace ZR.Service.Business.Inspect
 {
@@ -67,6 +70,67 @@ namespace ZR.Service.Business.Inspect
 
             return response;
         }
+        public PagedInfo<QaInspectRecordDto> GetReport(QaInspectRecordQueryDto parm)
+        {
+            //开始拼装查询条件
+            var predicate = Expressionable.Create<QaInspectRecord>();
+            predicate.AndIF(!string.IsNullOrEmpty(parm.MaterialCode), d => d.MaterialCode.Contains(parm.MaterialCode));
+            predicate.AndIF(!string.IsNullOrEmpty(parm.MaterialName), d => d.MaterialName.Contains(parm.MaterialName));
+            predicate.AndIF(!string.IsNullOrEmpty(parm.MaterialSpec), d => d.MaterialSpec.Contains(parm.MaterialSpec));
+            predicate.AndIF(!string.IsNullOrEmpty(parm.BnSnCode), d => d.BnSnCode.Contains(parm.BnSnCode));
+            predicate.AndIF(!string.IsNullOrEmpty(parm.Category), d => d.Category == parm.Category);
+            predicate.AndIF(parm.KeyFlag != null, d => d.KeyFlag == parm.KeyFlag);
+
+
+            //搜索条件查询语法参考Sqlsugar
+            var queryIn = Context.Queryable<InInstoreRecord>()
+                .GroupBy(instore => new { instore.MaterialCode, instore.BnSnCode })
+                .Select(instore => new InInstoreRecord
+                {
+                    MaterialCode = instore.MaterialCode,
+                    BnSnCode = instore.BnSnCode,
+                    SumInstoreQty = SqlFunc.AggregateSumNoNull(instore.InStoreQty)
+                });
+            var queryOut = Context.Queryable<OutOutstoreRecord>()
+                .GroupBy(outstore => new { outstore.MaterialCode, outstore.BnSnCode })
+                .Select(outstore => new OutOutstoreRecord
+                {
+                    MaterialCode = outstore.MaterialCode,
+                    BnSnCode = outstore.BnSnCode,
+                    SumOutstoreQty = SqlFunc.AggregateSumNoNull(outstore.OutStoreQty)
+                });
+            var queryAss = Context.Queryable<OutAssembleRecord>()
+                .GroupBy(ass => new { ass.MaterialCode, ass.BnSnCode })
+                .Select(ass => new OutAssembleRecord
+                {
+                    MaterialCode = ass.MaterialCode,
+                    BnSnCode = ass.BnSnCode,
+                    SumAssQty = SqlFunc.AggregateSumNoNull(ass.AssembleQty)
+                });
+            var response = Queryable()
+                .GroupBy(d => new { d.MaterialCode, d.BnSnCode })
+                .LeftJoin(queryIn, (d, instore) => d.MaterialCode == instore.MaterialCode && d.BnSnCode == instore.BnSnCode)
+                .LeftJoin(queryOut, (d, instore, outstore) => d.MaterialCode == outstore.MaterialCode && d.BnSnCode == outstore.BnSnCode)
+                .LeftJoin(queryAss, (d, instore, outstore, assemble) => d.MaterialCode == assemble.MaterialCode && d.BnSnCode == assemble.BnSnCode)
+                .Where(predicate.ToExpression())
+                .Select((d, instore, outstore, assemble) => new QaInspectRecord
+                {
+                    Category = d.Category,
+                    MaterialCode = d.MaterialCode,
+                    BnSnCode = d.BnSnCode,
+                    MaterialName = d.MaterialName,
+                    MaterialSpec = d.MaterialSpec,
+                    KeyFlag = d.KeyFlag,
+                    SumQaQty = SqlFunc.AggregateSumNoNull(d.CheckQty),
+                    SumInstoreQty = instore.SumInstoreQty,
+                    SumOutstoreQty = outstore.SumOutstoreQty,
+                    SumAssQty = assemble.SumAssQty
+
+                })
+                .ToPage<QaInspectRecord, QaInspectRecordDto>(parm);
+
+            return response;
+        }
 
         public List<GroupByKey> GetDailyStatistics(DateTime BeginTime, DateTime EndTime)
         {
@@ -79,7 +143,7 @@ namespace ZR.Service.Business.Inspect
                 .Where(predicate.ToExpression())
                 .Select(d => new GroupByKey
                 {
-                    KeyFlag=d.KeyFlag,
+                    KeyFlag = d.KeyFlag,
                     SumQty = SqlFunc.AggregateSum(d.CheckQty),
                 })
                 .ToList();