From 5e572577c7e765690c979c4766356bb2e5711162 Mon Sep 17 00:00:00 2001
From: majian <780924089@qq.com>
Date: Wed, 16 Oct 2024 15:17:57 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8E=9F=E6=9D=90=E6=9D=A5=E8=B4=A8=E6=A3=80?=
=?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=8A=A5=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Consts/ModuleConsts.cs | 4 +-
.../Consts/WmsWareHouseConst.cs | 2 +-
.../Entity/WmsPurchaseQcrecord.cs | 7 ++
.../WmsPurchaseQcrecordService.cs | 106 +++++++++++++++++-
4 files changed, 115 insertions(+), 4 deletions(-)
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs
index edf3e1c3..e04b50f0 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs
@@ -145,9 +145,9 @@ public class ModuleConsts
///
public const string MODULE_WmsRawmatOutstock_ID = "MODULE_WmsRawmatOutstock_ID";
///
- /// 模块标识-材料出库单 todo
+ /// 模块标识-原材料仓质检记录 todo
///
- public const string MODULE_WmsPurchaseQcrecord_ID = "MODULE_WmsPurchaseQcrecord_ID";
+ public const string MODULE_WmsPurchaseQcrecord_ID = "36720594904085";
///
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
index 35894a7b..e31e3815 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs
@@ -391,7 +391,7 @@ namespace Tnb.WarehouseMgr.Entities.Consts
///
/// 预任务生成业务类型-原材料仓质检记录
///
- public const string BIZTYPE_WmsPurchaseQcrecord_ID = "BIZTYPE_WmsPurchaseQcrecord_ID";
+ public const string BIZTYPE_WmsPurchaseQcrecord_ID = "37601556997653";
///
/// 预任务生成业务类型-生产退料单
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsPurchaseQcrecord.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsPurchaseQcrecord.cs
index 8de1df42..30c519b4 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsPurchaseQcrecord.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsPurchaseQcrecord.cs
@@ -103,4 +103,11 @@ public partial class WmsPurchaseQcrecord : BaseEntity
/// 批次
///
public string? batchno { get; set; }
+ ///
+ ///
+ ///
+ [SugarColumn(IsIgnore = true)]
+ public string? material_specification { get; set; }
+
+
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseQcrecordService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseQcrecordService.cs
index ef8d49d3..e6caf1cf 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseQcrecordService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseQcrecordService.cs
@@ -1,25 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Reactive;
using System.Text;
using System.Threading.Tasks;
using JNPF.Common.Core.Manager;
+using JNPF.Common.Filter;
+using JNPF.Systems.Entitys.System;
using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
+using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
using JNPF.VisualDev.Interfaces;
+using Mapster;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json.Linq;
+using Senparc.CO2NET.Extensions;
using SqlSugar;
+using Tnb.BasicData.Entities;
using Tnb.BasicData.Interfaces;
using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Attributes;
using Tnb.WarehouseMgr.Entities.Consts;
using Tnb.WarehouseMgr.Entities.Entity;
+using Tnb.WarehouseMgr.Entities.Enums;
using Tnb.WarehouseMgr.Interfaces;
namespace Tnb.WarehouseMgr
{
[OverideVisualDev(ModuleConsts.MODULE_WmsPurchaseQcrecord_ID)]
[ServiceModule(BizTypeId)]
- public class WmsPurchaseQcrecordService
+ public class WmsPurchaseQcrecordService : BaseWareHouseService
{
private const string BizTypeId = WmsWareHouseConst.BIZTYPE_WmsPurchaseQcrecord_ID;
private readonly ISqlSugarClient _db;
@@ -52,5 +63,98 @@ namespace Tnb.WarehouseMgr
}
+ [HttpPost, AllowAnonymous]
+ public async Task ReportData(VisualDevModelListQueryInput input)
+ {
+ var type = "";
+ var material_code = "";
+ var material_specification = "";
+ var batchno = "";
+ var container_no = "";
+ var time = new JArray();
+ if (!input.queryJson.IsNullOrWhiteSpace())
+ {
+ type = JObject.Parse(input.queryJson).Value("type");
+ material_code = JObject.Parse(input.queryJson).Value(nameof(WmsCarryCode.material_code));
+ batchno = JObject.Parse(input.queryJson).Value("batchno");
+ material_specification = JObject.Parse(input.queryJson).Value(nameof(WmsCarryCode.material_specification));
+ container_no = JObject.Parse(input.queryJson).Value(nameof(WmsCarryCode.container_no));
+ time = JObject.Parse(input.queryJson).Value("time");
+ }
+
+ decimal total_qty = 0;
+ decimal ok_qty = 0;
+ decimal await_qty = 0;
+ decimal vergeOk_qty = 0;
+ decimal no_qty = 0;
+ var _start_time = time.Count > 0 ? (long)time[0] : 0;
+ var _end_time = time.Count > 1 ? (long)time[1] : 0;
+
+ DateTimeOffset _start_timeofs = DateTimeOffset.FromUnixTimeSeconds((long)_start_time);
+ DateTime start_time = _start_timeofs.DateTime;
+ DateTimeOffset _end_timeofs = DateTimeOffset.FromUnixTimeSeconds((long)_end_time);
+ DateTime end_time = _end_timeofs.DateTime;
+
+ var data = await _db.Queryable()
+ .InnerJoin((a, b) => a.material_id == b.id)
+ .LeftJoin((a, b, c) => c.EnCode == b.unit_id && c.DictionaryTypeId == WmsWareHouseConst.UNITTYPEID)
+ .LeftJoin((a, b, c, d) => d.id == a.ori_detail_id)
+ .WhereIF(!string.IsNullOrEmpty(material_specification), (a, b, c, d) => b.material_specification.Contains(material_specification))
+ .WhereIF(!string.IsNullOrEmpty(batchno), (a, b, c, d) => a.batchno.Contains(batchno))
+ .WhereIF(!string.IsNullOrEmpty(container_no), (a, b, c, d) => b.material_standard.Contains(container_no))
+ .WhereIF(!string.IsNullOrEmpty(material_code), (a, b, c, d) => a.material_code.Contains(material_code))
+ .WhereIF(!string.IsNullOrEmpty(type), (a, b, c, d) => a.type == type)
+ .WhereIF(_start_time != 0, (a, b, c, d) => a.create_time >= start_time)
+ .WhereIF(_end_time != 0, (a, b, c, d) => a.create_time <= end_time)
+ .Select((a, b, c, d) => new WmsPurchaseQcrecord
+ {
+ material_id = a.material_id,
+ material_code = a.material_code,
+ material_name = a.material_name,
+ material_specification = b.material_specification,
+ unit_id = c.FullName,
+ purchase_qty = a.purchase_qty,
+ purchase_prqty = a.purchase_prqty,
+ purchase_arriveqty = a.purchase_prqty,
+ batchno = a.batchno,
+ result = SqlFunc.IF(a.result.Equals("await") || string.IsNullOrEmpty(a.result)).Return("待检")
+ .ElseIF(a.result.Equals("vergeOk")).Return("让步接收").ElseIF(a.result.Equals("ok")).Return("合格")
+ .ElseIF(a.result.Equals("no")).Return("不合格").End(""),
+ create_time = d.create_time
+ }).ToListAsync();
+
+ total_qty = data.Count;
+ ok_qty = data.Where(r => r.result == "合格").Count();
+ await_qty = data.Where(r => r.result == "待检").Count();
+ vergeOk_qty = data.Where(r => r.result == "让步接收").Count();
+ no_qty = data.Where(r => r.result == "不合格").Count();
+
+ List pages = data.Skip((input.currentPage - 1) * input.pageSize).Take(input.pageSize).ToList();
+ WmsPurchaseQcrecordSqlSugarPagedList pagedList = new()
+ {
+ total_qty = total_qty,
+ ok_qty = ok_qty,
+ await_qty = await_qty,
+ vergeOk_qty = vergeOk_qty,
+ no_qty = no_qty,
+ list = pages,
+ pagination = new()
+ {
+ CurrentPage = input.currentPage,
+ PageSize = input.pageSize,
+ Total = data.Count()
+ }
+ };
+ return pagedList;
+ }
+ }
+
+ public class WmsPurchaseQcrecordSqlSugarPagedList : SqlSugarPagedList
+ {
+ public decimal total_qty { get; set; }
+ public decimal ok_qty { get; set; }
+ public decimal await_qty { get; set; }
+ public decimal vergeOk_qty { get; set; }
+ public decimal no_qty { get; set; }
}
}