diff --git a/Admin.NET/Admin.NET.Application/Entity/Invoice.cs b/Admin.NET/Admin.NET.Application/Entity/Invoice.cs index c020b32..0131af7 100644 --- a/Admin.NET/Admin.NET.Application/Entity/Invoice.cs +++ b/Admin.NET/Admin.NET.Application/Entity/Invoice.cs @@ -112,4 +112,10 @@ public class Invoice : EntityTenant [SugarColumn(ColumnName = "State", ColumnDescription = "状态")] public int? State { get; set; } + /// + /// 审核状态 + /// + [SugarColumn(ColumnName = "AuditState", ColumnDescription = "状态")] + public int? AuditState { get; set; } + } diff --git a/Admin.NET/Admin.NET.Application/Entity/MaterialList.cs b/Admin.NET/Admin.NET.Application/Entity/MaterialList.cs index fbff537..8375f57 100644 --- a/Admin.NET/Admin.NET.Application/Entity/MaterialList.cs +++ b/Admin.NET/Admin.NET.Application/Entity/MaterialList.cs @@ -36,5 +36,36 @@ public class MaterialList : EntityBaseId /// [SugarColumn(ColumnName = "Remarks", ColumnDescription = "备注", Length = 32)] public string? Remarks { get; set; } - + + /// + /// 编码 + /// + [SugarColumn(ColumnName = "CodeNum", ColumnDescription = "编码", Length = 32)] + public string? CodeNum { get; set; } + + + /// + /// 规格型号 + /// + [SugarColumn(ColumnName = "Specifications", ColumnDescription = "规格型号", Length = 32)] + public string? Specifications { get; set; } + + /// + /// 计划数量 + /// + [SugarColumn(ColumnName = "PlanQty", ColumnDescription = "计划数量")] + public int? PlanQty { get; set; } + + /// + /// 发货数量 + /// + [SugarColumn(ColumnName = "ShipmentQty", ColumnDescription = "发货数量")] + public int? ShipmentQty { get; set; } + + /// + /// 行扫描率 + /// + [SugarColumn(ColumnName = "ScanRate", ColumnDescription = "行扫描率", Length = 32)] + public string? ScanRate { get; set; } + } diff --git a/Admin.NET/Admin.NET.Application/Service/Invoice/Dto/InvoiceInput.cs b/Admin.NET/Admin.NET.Application/Service/Invoice/Dto/InvoiceInput.cs index b4f7be0..fb28bab 100644 --- a/Admin.NET/Admin.NET.Application/Service/Invoice/Dto/InvoiceInput.cs +++ b/Admin.NET/Admin.NET.Application/Service/Invoice/Dto/InvoiceInput.cs @@ -276,3 +276,20 @@ public class QueryByIdInvoiceInput : DeleteInvoiceInput { } + +/// +/// 更新发货单审核状态 +/// +public class UpdateInvoiceAuditStateInput +{ + /// + /// 主键 + /// + public virtual string[] Ids { get; set; } + + /// + /// + /// + public virtual int? AuditStatus { get; set; } + +} \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Application/Service/Invoice/Dto/InvoiceOutput.cs b/Admin.NET/Admin.NET.Application/Service/Invoice/Dto/InvoiceOutput.cs index eab0523..35c7f67 100644 --- a/Admin.NET/Admin.NET.Application/Service/Invoice/Dto/InvoiceOutput.cs +++ b/Admin.NET/Admin.NET.Application/Service/Invoice/Dto/InvoiceOutput.cs @@ -129,6 +129,11 @@ public class InvoiceOutput /// 软删除 /// public bool IsDelete { get; set; } + + /// + /// 审核状态 + /// + public int? AuditState { get; set; } } diff --git a/Admin.NET/Admin.NET.Application/Service/Invoice/InvoiceService.cs b/Admin.NET/Admin.NET.Application/Service/Invoice/InvoiceService.cs index e0a76de..f433025 100644 --- a/Admin.NET/Admin.NET.Application/Service/Invoice/InvoiceService.cs +++ b/Admin.NET/Admin.NET.Application/Service/Invoice/InvoiceService.cs @@ -4,6 +4,7 @@ using Admin.NET.Application.Entity; using Microsoft.AspNetCore.Http; using NewLife.Reflection; using Nest; +using AngleSharp.Dom; namespace Admin.NET.Application; /// @@ -362,5 +363,26 @@ public class InvoiceService : IDynamicApiController, ITransient await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); } + /// + /// 更新发货单审核状态 + /// + /// + /// + [HttpPost] + [ApiDescriptionSettings(Name = "UpdateAuditState")] + public async Task UpdateAuditState(UpdateInvoiceAuditStateInput input) + { + var list = await _rep.AsQueryable() + .Where(a => !a.IsDelete) + .Where(t => input.Ids.Contains(t.Id.ToString())) + .ToListAsync(); + foreach (var item in list) + { + item.AuditState = input.AuditStatus; + await _rep.AsUpdateable(item).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); + } + + + } } diff --git a/Admin.NET/Admin.NET.Application/Service/MaterialList/Dto/MaterialListInput.cs b/Admin.NET/Admin.NET.Application/Service/MaterialList/Dto/MaterialListInput.cs index 4924af3..d3a0061 100644 --- a/Admin.NET/Admin.NET.Application/Service/MaterialList/Dto/MaterialListInput.cs +++ b/Admin.NET/Admin.NET.Application/Service/MaterialList/Dto/MaterialListInput.cs @@ -3,106 +3,135 @@ using System.ComponentModel.DataAnnotations; namespace Admin.NET.Application; +/// +/// 物料列表基础输入参数 +/// +public class MaterialListBaseInput +{ /// - /// 物料列表基础输入参数 + /// 物料ID /// - public class MaterialListBaseInput - { - /// - /// 物料ID - /// - public virtual long? MaterialsId { get; set; } - - /// - /// 单位 - /// - public virtual string? Unit { get; set; } - - /// - /// 数量 - /// - public virtual int? Count { get; set; } - - /// - /// 来源ID - /// - public virtual long? SourceId { get; set; } - - /// - /// 备注 - /// - public virtual string? Remarks { get; set; } - - } + public virtual long? MaterialsId { get; set; } /// - /// 物料列表分页查询输入参数 + /// 单位 /// - public class MaterialListInput : BasePageInput - { - /// - /// 关键字查询 - /// - public string? SearchKey { get; set; } - - /// - /// 物料ID - /// - public long? MaterialsId { get; set; } - - /// - /// 单位 - /// - public string? Unit { get; set; } - - /// - /// 数量 - /// - public int? Count { get; set; } - - /// - /// 来源ID - /// - public long? SourceId { get; set; } - - /// - /// 备注 - /// - public string? Remarks { get; set; } - - } + public virtual string? Unit { get; set; } /// - /// 物料列表增加输入参数 + /// 数量 /// - public class AddMaterialListInput : MaterialListBaseInput - { - } + public virtual int? Count { get; set; } /// - /// 物料列表删除输入参数 + /// 来源ID /// - public class DeleteMaterialListInput : BaseIdInput - { - } + public virtual long? SourceId { get; set; } /// - /// 物料列表更新输入参数 + /// 编码 /// - public class UpdateMaterialListInput : MaterialListBaseInput - { - /// - /// 主键Id - /// - [Required(ErrorMessage = "主键Id不能为空")] - public long Id { get; set; } - - } + + public string? CodeNum { get; set; } /// - /// 物料列表主键查询输入参数 + /// 备注 /// - public class QueryByIdMaterialListInput : DeleteMaterialListInput - { + public virtual string? Remarks { get; set; } - } + /// + /// 规格型号 + /// + + public virtual string? Specifications { get; set; } + + /// + /// 计划数量 + /// + public virtual int? PlanQty { get; set; } + + /// + /// 发货数量 + /// + + public virtual int? ShipmentQty { get; set; } + + /// + /// 行扫描率 + /// + + public virtual string? ScanRate { get; set; } + +} + +/// +/// 物料列表分页查询输入参数 +/// +public class MaterialListInput : BasePageInput +{ + /// + /// 关键字查询 + /// + public string? SearchKey { get; set; } + + /// + /// 物料ID + /// + public long? MaterialsId { get; set; } + + /// + /// 单位 + /// + public string? Unit { get; set; } + + /// + /// 数量 + /// + public int? Count { get; set; } + + /// + /// 来源ID + /// + public long? SourceId { get; set; } + + /// + /// 备注 + /// + public string? Remarks { get; set; } + +} + +/// +/// 物料列表增加输入参数 +/// +public class AddMaterialListInput : MaterialListBaseInput +{ +} + +/// +/// 物料列表删除输入参数 +/// +public class DeleteMaterialListInput : BaseIdInput +{ +} + +/// +/// 物料列表更新输入参数 +/// +public class UpdateMaterialListInput : MaterialListBaseInput +{ + /// + /// 主键Id + /// + [Required(ErrorMessage = "主键Id不能为空")] + public long Id { get; set; } + +} + +/// +/// 物料列表主键查询输入参数 +/// +public class QueryByIdMaterialListInput : DeleteMaterialListInput +{ + +} diff --git a/Admin.NET/Admin.NET.Application/Service/MaterialList/Dto/MaterialListOutput.cs b/Admin.NET/Admin.NET.Application/Service/MaterialList/Dto/MaterialListOutput.cs index 60ed24b..57388b0 100644 --- a/Admin.NET/Admin.NET.Application/Service/MaterialList/Dto/MaterialListOutput.cs +++ b/Admin.NET/Admin.NET.Application/Service/MaterialList/Dto/MaterialListOutput.cs @@ -34,7 +34,32 @@ public class MaterialListOutput /// 备注 /// public string? Remarks { get; set; } - - } + + /// + /// 编码 + /// + public string? CodeNum { get; set; } + + + /// + /// 规格型号 + /// + public string? Specifications { get; set; } + + /// + /// 计划数量 + /// + public int? PlanQty { get; set; } + + /// + /// 发货数量 + /// + public int? ShipmentQty { get; set; } + + /// + /// 行扫描率 + /// + public string? ScanRate { get; set; } +} diff --git a/Admin.NET/Admin.NET.Application/Service/ProductRetrospect/Dto/ProductRetrospectInput.cs b/Admin.NET/Admin.NET.Application/Service/ProductRetrospect/Dto/ProductRetrospectInput.cs index c71d54b..6f081d9 100644 --- a/Admin.NET/Admin.NET.Application/Service/ProductRetrospect/Dto/ProductRetrospectInput.cs +++ b/Admin.NET/Admin.NET.Application/Service/ProductRetrospect/Dto/ProductRetrospectInput.cs @@ -303,3 +303,16 @@ public class QueryByIdProductRetrospectInput : DeleteProductRetrospectInput { } + +/// +/// +/// + +public class CheckCodeStatusOutInput +{ + /// + /// 状态 + /// + public long State { get; set; } + +} diff --git a/Admin.NET/Admin.NET.Application/Service/ProductRetrospect/ProductRetrospectService.cs b/Admin.NET/Admin.NET.Application/Service/ProductRetrospect/ProductRetrospectService.cs index d595536..6835ec8 100644 --- a/Admin.NET/Admin.NET.Application/Service/ProductRetrospect/ProductRetrospectService.cs +++ b/Admin.NET/Admin.NET.Application/Service/ProductRetrospect/ProductRetrospectService.cs @@ -172,32 +172,33 @@ public class ProductRetrospectService : IDynamicApiController, ITransient /// [HttpGet] [ApiDescriptionSettings(Name = "CheckCodeStatus")] - public async Task CheckCodeStatus(string? productCode) + public async Task CheckCodeStatus(string? productCode) { + int state = 0; var codeEnt = await _rep.AsQueryable().Where(u => !u.IsDelete && u.Code == productCode).Select().ToListAsync(); if (codeEnt == null || codeEnt.Count<1) { - return 0; + state = 0; } var last = codeEnt.OrderBy(a => a.WarehousingDate).FirstOrDefault(); var receipt = last.Receipt == null ? "" : last.Receipt; if (receipt.Contains("汇报单")) { - return 1; + state = 1; } else if (receipt.Contains("仓库")) { - return 2; + state = 2; } else if (receipt.Contains("发货")) { - return 3; + state = 3; } else if (receipt.Contains("分销")) { - return 3; + state = 3; } - return 3; + return new CheckCodeStatusOutInput { State = state }; } public async Task AddRetrospect(PrintCodeDetail item ,ReportTable report,string receipt, string location ,long? sourceId,long? warehousingId) { diff --git a/Web/src/views/inventoryManagement/warehouseDetails/component/editDialog.vue b/Web/src/views/inventoryManagement/warehouseDetails/component/editDialog.vue new file mode 100644 index 0000000..734621d --- /dev/null +++ b/Web/src/views/inventoryManagement/warehouseDetails/component/editDialog.vue @@ -0,0 +1,252 @@ + + + + + + + diff --git a/Web/src/views/inventoryManagement/warehouseDetails/index.vue b/Web/src/views/inventoryManagement/warehouseDetails/index.vue new file mode 100644 index 0000000..8ef57f5 --- /dev/null +++ b/Web/src/views/inventoryManagement/warehouseDetails/index.vue @@ -0,0 +1,344 @@ + + + + + diff --git a/Web/src/views/inventoryManagement/warehousingStatistics/component/editDialog.vue b/Web/src/views/inventoryManagement/warehousingStatistics/component/editDialog.vue new file mode 100644 index 0000000..0504001 --- /dev/null +++ b/Web/src/views/inventoryManagement/warehousingStatistics/component/editDialog.vue @@ -0,0 +1,203 @@ + + + + + + + diff --git a/Web/src/views/inventoryManagement/warehousingStatistics/index.vue b/Web/src/views/inventoryManagement/warehousingStatistics/index.vue new file mode 100644 index 0000000..331c080 --- /dev/null +++ b/Web/src/views/inventoryManagement/warehousingStatistics/index.vue @@ -0,0 +1,287 @@ + + + + +