0612
|
@ -4,7 +4,7 @@ namespace Admin.NET.Application.Entity;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 汇报单
|
/// 汇报单
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarTable("ReportTable","汇报单")]
|
[SugarTable("reporttable","汇报单")]
|
||||||
public class ReportTable : EntityTenant
|
public class ReportTable : EntityTenant
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -48,17 +48,23 @@ public class ReportTable : EntityTenant
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnName = "SourceNumber", ColumnDescription = "源单号", Length = 32)]
|
[SugarColumn(ColumnName = "SourceNumber", ColumnDescription = "源单号", Length = 32)]
|
||||||
public string? SourceNumber { get; set; }
|
public string? SourceNumber { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 物料ID
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "MaterialsId", ColumnDescription = "物料ID")]
|
|
||||||
public long? MaterialsId { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 备注
|
/// 备注
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnName = "Remarks", ColumnDescription = "备注", Length = 64)]
|
[SugarColumn(ColumnName = "Remarks", ColumnDescription = "备注", Length = 64)]
|
||||||
public string? Remarks { get; set; }
|
public string? Remarks { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 物料ID
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "MaterialsId", ColumnDescription = "物料ID")]
|
||||||
|
public long? MaterialsId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 源单ID
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "SourceId", ColumnDescription = "源单ID")]
|
||||||
|
public long? SourceId { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,9 +10,27 @@ namespace Admin.NET.Application;
|
||||||
public class InvoiceService : IDynamicApiController, ITransient
|
public class InvoiceService : IDynamicApiController, ITransient
|
||||||
{
|
{
|
||||||
private readonly SqlSugarRepository<Invoice> _rep;
|
private readonly SqlSugarRepository<Invoice> _rep;
|
||||||
public InvoiceService(SqlSugarRepository<Invoice> rep)
|
private readonly MaterialsService _materialsService;
|
||||||
|
private readonly SysUnitService _sysUnitService;
|
||||||
|
private readonly PrintCodeDetailService _codeDetailService;
|
||||||
|
private readonly ProductRetrospectService _productRetrospect;
|
||||||
|
private readonly ReportTableService _reportTableService;
|
||||||
|
private readonly UserManager _userManager;
|
||||||
|
public InvoiceService(SqlSugarRepository<Invoice> rep,
|
||||||
|
UserManager userManager,
|
||||||
|
MaterialsService materialsService,
|
||||||
|
SysUnitService sysUnitService,
|
||||||
|
PrintCodeDetailService codeDetailService,
|
||||||
|
ReportTableService reportTableService,
|
||||||
|
ProductRetrospectService productRetrospect)
|
||||||
{
|
{
|
||||||
_rep = rep;
|
_rep = rep;
|
||||||
|
_userManager = userManager;
|
||||||
|
_materialsService = materialsService;
|
||||||
|
_sysUnitService = sysUnitService;
|
||||||
|
_codeDetailService = codeDetailService;
|
||||||
|
_productRetrospect = productRetrospect;
|
||||||
|
_reportTableService = reportTableService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -136,6 +154,74 @@ public class InvoiceService : IDynamicApiController, ITransient
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 商品出货
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="input"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
[ApiDescriptionSettings(Name = "ShipmentProduct")]
|
||||||
|
public async Task ShipmentProduct(AddProductCodeInput input)
|
||||||
|
{
|
||||||
|
if (input == null || input.WarehousingTableId == null || input.CodeDatas == null || input.CodeDatas.Count == 0)
|
||||||
|
{
|
||||||
|
throw Oops.Oh(ErrorCodeEnum.xg1002);
|
||||||
|
}
|
||||||
|
|
||||||
|
var repeatCodes = await _codeDetailService.GetRepeat(input.CodeDatas);
|
||||||
|
|
||||||
|
var invoice = await Detail(new QueryByIdInvoiceInput() { Id = input.WarehousingTableId.Value });
|
||||||
|
if (invoice == null)
|
||||||
|
{
|
||||||
|
throw Oops.Oh(ErrorCodeEnum.xg1002);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//var units = await _sysUnitService.ListByGroupId(materials.UnitGroupId);
|
||||||
|
//var baseUnit = units.FirstOrDefault().Name;
|
||||||
|
//var userId = _userManager.UserId;
|
||||||
|
//var userName = _userManager.RealName;
|
||||||
|
//var topDatas = input.CodeDatas.FindAll(a => string.IsNullOrEmpty(a.FatherCode));
|
||||||
|
|
||||||
|
//foreach (var dic in list)
|
||||||
|
//{
|
||||||
|
// var item = dic.Key;
|
||||||
|
// var retrospect1 = new AddProductRetrospectInput()
|
||||||
|
// {
|
||||||
|
// BaseCount = item.BaseCount,
|
||||||
|
// BaseUnit = baseUnit,
|
||||||
|
// Batch = warehousing.Batch,
|
||||||
|
// BusinessType = "生产任务单",
|
||||||
|
// CodeType = item.CodeName,
|
||||||
|
// Department = warehousing.ProductionLine,
|
||||||
|
// //WarehouseID = input.WarehouseId,
|
||||||
|
// WarehousingDate = DateTime.Now,
|
||||||
|
// Count = 1,
|
||||||
|
// CreateTime = DateTime.Now,
|
||||||
|
// ScanCodeTime = DateTime.Now,
|
||||||
|
// CreateUserId = userId,
|
||||||
|
// CreateUserName = userName,
|
||||||
|
// MaterialsId = dic.Value,
|
||||||
|
// OddNumber = warehousing.OddNumber,
|
||||||
|
// Receipt = "汇报单",
|
||||||
|
// SourceId = warehousing.Id,
|
||||||
|
// Unit = item.Unit,
|
||||||
|
// Name = materials.Name,
|
||||||
|
// Code = item.Code
|
||||||
|
// };//Destination = warehousing.Supplier,
|
||||||
|
// await _productRetrospect.Add(retrospect1);
|
||||||
|
//}
|
||||||
|
|
||||||
|
//var report = await _reportTableService.GetBySource(input.WarehousingTableId);
|
||||||
|
//if (report == null)
|
||||||
|
//{
|
||||||
|
// var newReport = new AddReportTableInput() { CreateTime = DateTime.Now, IsDelete = false, OddNumber = warehousing.OddNumber, State = 0, MaterialsId = warehousing.MaterialsId, SourceId = input.WarehousingTableId, ProductType = warehousing.ProductType, ProductionLine = warehousing.ProductionLine };
|
||||||
|
// var addReport = await _reportTableService.Add(newReport);
|
||||||
|
//}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,23 @@ public class PrintCodeDetailService : IDynamicApiController, ITransient
|
||||||
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<PrintCodeDetailOutput>().ToListAsync();
|
return await _rep.AsQueryable().Where(a => !a.IsDelete).Select<PrintCodeDetailOutput>().ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取打印条码详情列表
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
[ApiDescriptionSettings(Name = "GetRepeat")]
|
||||||
|
public async Task<List<PrintCodeDetailOutput>> GetRepeat(List<PrintData> printDatas)
|
||||||
|
{
|
||||||
|
if (printDatas.Count<1)
|
||||||
|
{
|
||||||
|
return new List<PrintCodeDetailOutput>();
|
||||||
|
}
|
||||||
|
var codes = string.IsNullOrEmpty(printDatas[0].BarCode) ? printDatas.ConvertAll(a => a.QrCode) : printDatas.ConvertAll(a => a.BarCode);
|
||||||
|
return await _rep.AsQueryable().Where(a => !a.IsDelete && codes.Any(b => b == a.Code)).Select<PrintCodeDetailOutput>().ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取打印条码详情
|
/// 获取打印条码详情
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -11,19 +11,21 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
|
||||||
{
|
{
|
||||||
private readonly SqlSugarRepository<ReportDetailTable> _rep;
|
private readonly SqlSugarRepository<ReportDetailTable> _rep;
|
||||||
//private readonly WarehouseDetailsService _warehouseDetails;
|
//private readonly WarehouseDetailsService _warehouseDetails;
|
||||||
private readonly MaterialsService _materialsService;
|
|
||||||
private readonly SysUnitService _sysUnitService;
|
|
||||||
//private readonly MaterialClassifyService _materialClassifyService;
|
//private readonly MaterialClassifyService _materialClassifyService;
|
||||||
//private readonly WarehousingStatisticsService _warehousingStatisticsService;
|
//private readonly WarehousingStatisticsService _warehousingStatisticsService;
|
||||||
|
private readonly MaterialsService _materialsService;
|
||||||
|
private readonly SysUnitService _sysUnitService;
|
||||||
private readonly PrintCodeDetailService _codeDetailService;
|
private readonly PrintCodeDetailService _codeDetailService;
|
||||||
private readonly ProductRetrospectService _productRetrospect;
|
private readonly ProductRetrospectService _productRetrospect;
|
||||||
//private readonly ProductWarehousingService _productWarehousing;
|
private readonly ReportTableService _reportTableService;
|
||||||
private readonly UserManager _userManager;
|
private readonly UserManager _userManager;
|
||||||
|
//private readonly ProductWarehousingService _productWarehousing;
|
||||||
public ReportDetailTableService(SqlSugarRepository<ReportDetailTable> rep,
|
public ReportDetailTableService(SqlSugarRepository<ReportDetailTable> rep,
|
||||||
UserManager userManager,
|
UserManager userManager,
|
||||||
MaterialsService materialsService,
|
MaterialsService materialsService,
|
||||||
SysUnitService sysUnitService,
|
SysUnitService sysUnitService,
|
||||||
PrintCodeDetailService codeDetailService,
|
PrintCodeDetailService codeDetailService,
|
||||||
|
ReportTableService reportTableService,
|
||||||
ProductRetrospectService productRetrospect)
|
ProductRetrospectService productRetrospect)
|
||||||
{
|
{
|
||||||
_rep = rep;
|
_rep = rep;
|
||||||
|
@ -32,6 +34,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
|
||||||
_sysUnitService = sysUnitService;
|
_sysUnitService = sysUnitService;
|
||||||
_codeDetailService = codeDetailService;
|
_codeDetailService = codeDetailService;
|
||||||
_productRetrospect = productRetrospect;
|
_productRetrospect = productRetrospect;
|
||||||
|
_reportTableService = reportTableService;
|
||||||
//_warehouseDetails = warehouseDetails;
|
//_warehouseDetails = warehouseDetails;
|
||||||
//_materialClassifyService = materialClassifyService;
|
//_materialClassifyService = materialClassifyService;
|
||||||
//_warehousingStatisticsService = warehousingStatisticsService;
|
//_warehousingStatisticsService = warehousingStatisticsService;
|
||||||
|
@ -162,6 +165,14 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
|
||||||
{
|
{
|
||||||
throw Oops.Oh(ErrorCodeEnum.xg1002);
|
throw Oops.Oh(ErrorCodeEnum.xg1002);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var repeatCodes = await _codeDetailService.GetRepeat(input.CodeDatas);
|
||||||
|
if (repeatCodes!=null&&repeatCodes.Count>0)
|
||||||
|
{
|
||||||
|
var repeats = repeatCodes.ConvertAll(a => a.Code).Distinct();
|
||||||
|
throw Oops.Oh($"条码重复:{string.Join("、", repeats)}");
|
||||||
|
}
|
||||||
|
|
||||||
var warehousing = await Detail(new QueryByIdReportDetailTableInput() { Id = input.WarehousingTableId.Value });
|
var warehousing = await Detail(new QueryByIdReportDetailTableInput() { Id = input.WarehousingTableId.Value });
|
||||||
if (warehousing == null)
|
if (warehousing == null)
|
||||||
{
|
{
|
||||||
|
@ -173,7 +184,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
|
||||||
throw Oops.Oh(ErrorCodeEnum.xg1002);
|
throw Oops.Oh(ErrorCodeEnum.xg1002);
|
||||||
}
|
}
|
||||||
var units = await _sysUnitService.ListByGroupId(materials.UnitGroupId);
|
var units = await _sysUnitService.ListByGroupId(materials.UnitGroupId);
|
||||||
var baseUnit = units.LastOrDefault().Name;
|
var baseUnit = units.FirstOrDefault().Name;
|
||||||
var userId = _userManager.UserId;
|
var userId = _userManager.UserId;
|
||||||
var userName = _userManager.RealName;
|
var userName = _userManager.RealName;
|
||||||
var topDatas = input.CodeDatas.FindAll(a => string.IsNullOrEmpty(a.FatherCode));
|
var topDatas = input.CodeDatas.FindAll(a => string.IsNullOrEmpty(a.FatherCode));
|
||||||
|
@ -226,7 +237,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
|
||||||
list.Add(detail2, detailId2);
|
list.Add(detail2, detailId2);
|
||||||
|
|
||||||
var childs3 = input.CodeDatas.FindAll(a => a.FatherCode == code2);
|
var childs3 = input.CodeDatas.FindAll(a => a.FatherCode == code2);
|
||||||
foreach (var child3 in childs)
|
foreach (var child3 in childs3)
|
||||||
{
|
{
|
||||||
var code3 = string.IsNullOrEmpty(child3.BarCode) ? child3.QrCode : child3.BarCode;
|
var code3 = string.IsNullOrEmpty(child3.BarCode) ? child3.QrCode : child3.BarCode;
|
||||||
var unit3 = units.Find(a => a.Name == child3.PackageName);
|
var unit3 = units.Find(a => a.Name == child3.PackageName);
|
||||||
|
@ -251,7 +262,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
|
||||||
if (input.CodeDatas.Any(a => a.FatherCode == code3))
|
if (input.CodeDatas.Any(a => a.FatherCode == code3))
|
||||||
{
|
{
|
||||||
var childs4 = input.CodeDatas.FindAll(a => a.FatherCode == code3);
|
var childs4 = input.CodeDatas.FindAll(a => a.FatherCode == code3);
|
||||||
foreach (var child4 in childs)
|
foreach (var child4 in childs4)
|
||||||
{
|
{
|
||||||
var code4 = string.IsNullOrEmpty(child4.BarCode) ? child4.QrCode : child4.BarCode;
|
var code4 = string.IsNullOrEmpty(child4.BarCode) ? child4.QrCode : child4.BarCode;
|
||||||
var unit4 = units.Find(a => a.Name == child4.PackageName);
|
var unit4 = units.Find(a => a.Name == child4.PackageName);
|
||||||
|
@ -276,7 +287,7 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
|
||||||
if (input.CodeDatas.Any(a => a.FatherCode == code4))
|
if (input.CodeDatas.Any(a => a.FatherCode == code4))
|
||||||
{
|
{
|
||||||
var childs5 = input.CodeDatas.FindAll(a => a.FatherCode == code4);
|
var childs5 = input.CodeDatas.FindAll(a => a.FatherCode == code4);
|
||||||
foreach (var child5 in childs)
|
foreach (var child5 in childs5)
|
||||||
{
|
{
|
||||||
var code5 = string.IsNullOrEmpty(child5.BarCode) ? child5.QrCode : child5.BarCode;
|
var code5 = string.IsNullOrEmpty(child5.BarCode) ? child5.QrCode : child5.BarCode;
|
||||||
var unit5 = units.Find(a => a.Name == child5.PackageName);
|
var unit5 = units.Find(a => a.Name == child5.PackageName);
|
||||||
|
@ -335,7 +346,13 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
|
||||||
await _productRetrospect.Add(retrospect1);
|
await _productRetrospect.Add(retrospect1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var report = await _reportTableService.GetBySource(input.WarehousingTableId);
|
||||||
|
if (report == null)
|
||||||
|
{
|
||||||
|
var newReport = new AddReportTableInput() { CreateTime = DateTime.Now, IsDelete = false, OddNumber = warehousing.OddNumber, State = 0, MaterialsId = warehousing.MaterialsId, SourceId = input.WarehousingTableId, ProductType = warehousing.ProductType, ProductionLine = warehousing.ProductionLine };
|
||||||
|
var addReport = await _reportTableService.Add(newReport);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//var details = await _warehouseDetails.List();
|
//var details = await _warehouseDetails.List();
|
||||||
//if (details != null && details.Any(a => a.MaterialsId == warehousing.MaterialsId && a.Unit == warehousing.Unit))
|
//if (details != null && details.Any(a => a.MaterialsId == warehousing.MaterialsId && a.Unit == warehousing.Unit))
|
||||||
|
@ -363,7 +380,6 @@ public class ReportDetailTableService : IDynamicApiController, ITransient
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 删除汇报单详情
|
/// 删除汇报单详情
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -50,6 +50,10 @@ public class ReportTableDto
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long? MaterialsId { get; set; }
|
public long? MaterialsId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 源单ID
|
||||||
|
/// </summary>
|
||||||
|
public long? SourceId { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 备注
|
/// 备注
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -43,6 +43,10 @@ public class ReportTableBaseInput
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public virtual string? SourceNumber { get; set; }
|
public virtual string? SourceNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 源单ID
|
||||||
|
/// </summary>
|
||||||
|
public long? SourceId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 物料ID
|
/// 物料ID
|
||||||
|
@ -151,6 +155,10 @@ public class ReportTableInput : BasePageInput
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long? MaterialsId { get; set; }
|
public long? MaterialsId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 源单ID
|
||||||
|
/// </summary>
|
||||||
|
public long? SourceId { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 备注
|
/// 备注
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -196,5 +204,5 @@ public class UpdateReportTableInput : ReportTableBaseInput
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class QueryByIdReportTableInput : DeleteReportTableInput
|
public class QueryByIdReportTableInput : DeleteReportTableInput
|
||||||
{
|
{
|
||||||
|
public string? Code { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,10 @@ public class ReportTableOutput
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? SourceNumber { get; set; }
|
public string? SourceNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 源单ID
|
||||||
|
/// </summary>
|
||||||
|
public long? SourceId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 物料ID
|
/// 物料ID
|
||||||
|
|
|
@ -17,7 +17,7 @@ public class ReportTableService : IDynamicApiController, ITransient
|
||||||
private readonly SysUnitService _repUnit;
|
private readonly SysUnitService _repUnit;
|
||||||
private readonly SysUnitGroupService _repUnitGroup;
|
private readonly SysUnitGroupService _repUnitGroup;
|
||||||
private readonly PrintCodeDetailService _codeDetailService;
|
private readonly PrintCodeDetailService _codeDetailService;
|
||||||
private readonly ReportDetailTableService _reportDetailTable;
|
//private readonly ReportDetailTableService _reportDetailTable;
|
||||||
private readonly UserManager _userManager;
|
private readonly UserManager _userManager;
|
||||||
private readonly PrintDataService _printDataService;
|
private readonly PrintDataService _printDataService;
|
||||||
|
|
||||||
|
@ -26,14 +26,14 @@ public class ReportTableService : IDynamicApiController, ITransient
|
||||||
SysUnitService repUnit,
|
SysUnitService repUnit,
|
||||||
SysUnitGroupService repUnitGroup,
|
SysUnitGroupService repUnitGroup,
|
||||||
PrintCodeDetailService codeDetailService,
|
PrintCodeDetailService codeDetailService,
|
||||||
ReportDetailTableService reportDetailTable,
|
//ReportDetailTableService reportDetailTable,
|
||||||
PrintDataService printDataService)
|
PrintDataService printDataService)
|
||||||
{
|
{
|
||||||
_rep = rep;
|
_rep = rep;
|
||||||
_repUnit = repUnit;
|
_repUnit = repUnit;
|
||||||
_repUnitGroup = repUnitGroup;
|
_repUnitGroup = repUnitGroup;
|
||||||
_codeDetailService = codeDetailService;
|
_codeDetailService = codeDetailService;
|
||||||
_reportDetailTable = reportDetailTable;
|
//_reportDetailTable = reportDetailTable;
|
||||||
_userManager = userManager;
|
_userManager = userManager;
|
||||||
_printDataService = printDataService;
|
_printDataService = printDataService;
|
||||||
}
|
}
|
||||||
|
@ -86,25 +86,32 @@ public class ReportTableService : IDynamicApiController, ITransient
|
||||||
[ApiDescriptionSettings(Name = "Add")]
|
[ApiDescriptionSettings(Name = "Add")]
|
||||||
public async Task<long> Add(AddReportTableInput input)
|
public async Task<long> Add(AddReportTableInput input)
|
||||||
{
|
{
|
||||||
//input.UpdateUserId
|
|
||||||
var details = await _codeDetailService.List();
|
|
||||||
if (details == null || details.Count < 1)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
var printDetails = details.FindAll(a => a.TempListId == input.UpdateUserId);
|
|
||||||
if (printDetails.Count < 1)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
var entity = input.Adapt<ReportTable>();
|
var entity = input.Adapt<ReportTable>();
|
||||||
await _rep.InsertAsync(entity);
|
if (input.UpdateUserId > 0)
|
||||||
for (int i = 0; i < printDetails.Count; i++)
|
|
||||||
{
|
{
|
||||||
var item = printDetails[i];
|
entity.SourceId = input.UpdateUserId;
|
||||||
item.ReportTableId = entity.Id;
|
|
||||||
await _codeDetailService.Update(item.Adapt<UpdatePrintCodeDetailInput>());
|
|
||||||
}
|
}
|
||||||
|
await _rep.InsertAsync(entity);
|
||||||
|
|
||||||
|
if (input.UpdateUserId > 0)
|
||||||
|
{
|
||||||
|
var details = await _codeDetailService.List();
|
||||||
|
if (details == null || details.Count < 1)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
var printDetails = details.FindAll(a => a.TempListId == input.UpdateUserId);
|
||||||
|
if (printDetails.Count > 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < printDetails.Count; i++)
|
||||||
|
{
|
||||||
|
var item = printDetails[i];
|
||||||
|
item.ReportTableId = entity.Id;
|
||||||
|
await _codeDetailService.Update(item.Adapt<UpdatePrintCodeDetailInput>());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return entity.Id;
|
return entity.Id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,6 +154,37 @@ public class ReportTableService : IDynamicApiController, ITransient
|
||||||
return await _rep.GetFirstAsync(u => u.Id == input.Id);
|
return await _rep.GetFirstAsync(u => u.Id == input.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取汇报单
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="input"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
[ApiDescriptionSettings(Name = "GetByCode")]
|
||||||
|
public async Task<ReportTable> GetByCode([FromQuery] QueryByIdReportTableInput input)
|
||||||
|
{
|
||||||
|
var codeModel = await _codeDetailService.GetByProductCode(input.Code);
|
||||||
|
if (codeModel == null)
|
||||||
|
{
|
||||||
|
throw Oops.Oh(ErrorCodeEnum.D1002);
|
||||||
|
}
|
||||||
|
return await _rep.GetFirstAsync(u => u.SourceId == codeModel.ReportTableId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取汇报单
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sourceId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
[ApiDescriptionSettings(Name = "GetBySource")]
|
||||||
|
public async Task<ReportTable> GetBySource(long? sourceId)
|
||||||
|
{
|
||||||
|
return await _rep.GetFirstAsync(u => u.SourceId == sourceId);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取汇报单列表
|
/// 获取汇报单列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -304,11 +342,6 @@ public class ReportTableService : IDynamicApiController, ITransient
|
||||||
public async Task<List<PrintCodeTreeData>> GetPrintDetail(long? id)
|
public async Task<List<PrintCodeTreeData>> GetPrintDetail(long? id)
|
||||||
{
|
{
|
||||||
var result = new List<PrintCodeTreeData>();
|
var result = new List<PrintCodeTreeData>();
|
||||||
//var report = await Detail(new QueryByIdReportTableInput() { Id = id });
|
|
||||||
//if (report==null)
|
|
||||||
//{
|
|
||||||
// return result;
|
|
||||||
//}
|
|
||||||
var details = await _codeDetailService.List();
|
var details = await _codeDetailService.List();
|
||||||
if (details == null || details.Count < 1)
|
if (details == null || details.Count < 1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,4 +2,4 @@
|
||||||
ENV = development
|
ENV = development
|
||||||
|
|
||||||
# 本地环境接口地址http://localhost:5005 http://139.199.191.197:9005
|
# 本地环境接口地址http://localhost:5005 http://139.199.191.197:9005
|
||||||
VITE_API_URL = http://localhost:5005
|
VITE_API_URL = http://139.199.191.197:9005
|
|
@ -7,6 +7,7 @@ enum Api {
|
||||||
DetailReportTable = '/api/reportTable/detail',
|
DetailReportTable = '/api/reportTable/detail',
|
||||||
AddPrintDetail = '/api/reportTable/addPrintDetail',
|
AddPrintDetail = '/api/reportTable/addPrintDetail',
|
||||||
GetPrintDetail = '/api/reportTable/getPrintDetail',
|
GetPrintDetail = '/api/reportTable/getPrintDetail',
|
||||||
|
GetByCode = '/api/reportTable/getByCode',
|
||||||
}
|
}
|
||||||
|
|
||||||
// 增加汇报单
|
// 增加汇报单
|
||||||
|
@ -63,4 +64,12 @@ export const getPrintDetail = (id: any) =>
|
||||||
url: Api.GetPrintDetail,
|
url: Api.GetPrintDetail,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
data: { id },
|
data: { id },
|
||||||
|
});
|
||||||
|
|
||||||
|
// 详情汇报单
|
||||||
|
export const getByCodeReportTable = (code: any) =>
|
||||||
|
request({
|
||||||
|
url: Api.GetByCode,
|
||||||
|
method: 'get',
|
||||||
|
data: { code },
|
||||||
});
|
});
|
Before Width: | Height: | Size: 527 KiB After Width: | Height: | Size: 123 KiB |
Before Width: | Height: | Size: 527 KiB |
Before Width: | Height: | Size: 527 KiB |
Before Width: | Height: | Size: 527 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 221 KiB After Width: | Height: | Size: 522 KiB |
Before Width: | Height: | Size: 527 KiB |
|
@ -154,7 +154,6 @@
|
||||||
<el-form-item label="源ID" prop="sourceId">
|
<el-form-item label="源ID" prop="sourceId">
|
||||||
<el-input v-model="ruleForm.sourceId" placeholder="请输入源ID" maxlength="20" show-word-limit clearable />
|
<el-input v-model="ruleForm.sourceId" placeholder="请输入源ID" maxlength="20" show-word-limit clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
<el-form-item label="仓库" prop="warehouseId" :rules="[{ required: true, message: '仓库不能为空', trigger: 'blur' }]">
|
<el-form-item label="仓库" prop="warehouseId" :rules="[{ required: true, message: '仓库不能为空', trigger: 'blur' }]">
|
||||||
|
@ -168,7 +167,6 @@
|
||||||
<el-form-item label="拓展字段" prop="expandField">
|
<el-form-item label="拓展字段" prop="expandField">
|
||||||
<el-input v-model="ruleForm.expandField" placeholder="请输入拓展字段" maxlength="32" show-word-limit clearable />
|
<el-input v-model="ruleForm.expandField" placeholder="请输入拓展字段" maxlength="32" show-word-limit clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
<el-form-item label="入库类型" prop="warehousingType">
|
<el-form-item label="入库类型" prop="warehousingType">
|
||||||
|
@ -180,13 +178,11 @@
|
||||||
<el-form-item label="物料编码" prop="codeNum">
|
<el-form-item label="物料编码" prop="codeNum">
|
||||||
<el-input v-model="ruleForm.codeNum" placeholder="请输入物料编码" maxlength="32" show-word-limit clearable />
|
<el-input v-model="ruleForm.codeNum" placeholder="请输入物料编码" maxlength="32" show-word-limit clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
<el-form-item label="入库日期" prop="warehousingDate">
|
<el-form-item label="入库日期" prop="warehousingDate">
|
||||||
<el-date-picker v-model="ruleForm.warehousingDate" type="date" placeholder="入库日期" />
|
<el-date-picker v-model="ruleForm.warehousingDate" type="date" placeholder="入库日期" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
<el-form-item label="供应商" prop="supplier" >
|
<el-form-item label="供应商" prop="supplier" >
|
||||||
|
|
|
@ -8,6 +8,25 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div>
|
<div>
|
||||||
|
<el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" labelWidth="90">
|
||||||
|
<el-row>
|
||||||
|
<el-col :xs="48" :sm="24" :md="24" :lg="18" :xl="8" class="mb10">
|
||||||
|
<el-form-item label="条码" >
|
||||||
|
<el-input v-model="queryParams.code" clearable="" :width="200" placeholder="请输入条码"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
|
||||||
|
<el-form-item>
|
||||||
|
<el-button-group style="display: flex; align-items: center;">
|
||||||
|
<el-button type="primary" icon="ele-Search" @click="barCodeQuery" > 条码查询 </el-button>
|
||||||
|
</el-button-group>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</el-card>
|
||||||
<el-table
|
<el-table
|
||||||
:data="ruleForm"
|
:data="ruleForm"
|
||||||
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
|
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
|
||||||
|
@ -49,10 +68,8 @@
|
||||||
</style>
|
</style>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref,onMounted,reactive } from "vue";
|
import { ref,onMounted,reactive } from "vue";
|
||||||
import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
|
|
||||||
import { ElMessage } from "element-plus";
|
|
||||||
import type { FormRules } from "element-plus";
|
import type { FormRules } from "element-plus";
|
||||||
import { addReportTable, updateReportTable, detailReportTable ,getPrintDetail} from "/@/api/main/reportTable";
|
import { getPrintDetail} from "/@/api/main/reportTable";
|
||||||
|
|
||||||
//父级传递来的参数
|
//父级传递来的参数
|
||||||
var props = defineProps({
|
var props = defineProps({
|
||||||
|
@ -63,35 +80,64 @@
|
||||||
});
|
});
|
||||||
//父级传递来的函数,用于回调
|
//父级传递来的函数,用于回调
|
||||||
const emit = defineEmits(["reloadTable"]);
|
const emit = defineEmits(["reloadTable"]);
|
||||||
const ruleFormRef = ref();
|
|
||||||
const isShowDialog = ref(false);
|
const isShowDialog = ref(false);
|
||||||
const ruleForm = ref<any>([]);
|
const ruleForm = ref<any>([]);
|
||||||
//自行添加其他规则
|
const tempRuleForm = ref<any>([]);
|
||||||
const rules = ref<FormRules>({
|
const loading = ref(false);
|
||||||
});
|
const queryParams = ref<any>({});
|
||||||
const state = reactive({
|
|
||||||
loading: false,
|
|
||||||
isShowCheckbox: false,
|
|
||||||
ownOrgData: [],
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// 打开弹窗
|
// 打开弹窗
|
||||||
const openDialog = async (row: any) => {
|
const openDialog = async (row: any) => {
|
||||||
// ruleForm.value = JSON.parse(JSON.stringify(row));
|
// ruleForm.value = JSON.parse(JSON.stringify(row));
|
||||||
//console.log(row);
|
//console.log(row);
|
||||||
|
ruleForm.value=[];
|
||||||
|
|
||||||
if(typeof(row) === 'number'){
|
if(typeof(row) === 'number'){
|
||||||
var res = await getPrintDetail(row);
|
var res = await getPrintDetail(row);
|
||||||
//console.log(res);
|
|
||||||
ruleForm.value = res.data.result;
|
ruleForm.value = res.data.result;
|
||||||
}else{
|
}else{
|
||||||
ruleForm.value=row;
|
ruleForm.value=row;
|
||||||
}
|
}
|
||||||
//console.log(ruleForm.value);
|
//console.log(ruleForm.value);
|
||||||
|
tempRuleForm.value=ruleForm.value;
|
||||||
isShowDialog.value = true;
|
isShowDialog.value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 查询操作
|
||||||
|
const barCodeQuery = async () => {
|
||||||
|
loading.value = true;
|
||||||
|
let cuCode=queryParams.value.code;
|
||||||
|
if(cuCode){
|
||||||
|
ruleForm.value = findNodeWithName(ruleForm.value,cuCode);
|
||||||
|
}else{
|
||||||
|
ruleForm.value=tempRuleForm.value;
|
||||||
|
}
|
||||||
|
loading.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
function findNodeWithName(tree: any[], nameToFind: string): any[] {
|
||||||
|
const foundNodes: any[] = [];
|
||||||
|
|
||||||
|
function search(nodes: any[]) {
|
||||||
|
nodes.forEach(node => {
|
||||||
|
if (node.code==nameToFind) {
|
||||||
|
foundNodes.push(node);
|
||||||
|
}
|
||||||
|
if (node.children) {
|
||||||
|
search(node.children);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
search(tree);
|
||||||
|
return foundNodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 关闭弹窗
|
// 关闭弹窗
|
||||||
const closeDialog = () => {
|
const closeDialog = () => {
|
||||||
emit("reloadTable");
|
emit("reloadTable");
|
||||||
|
|
|
@ -56,8 +56,8 @@ import { useThemeConfig } from '/@/stores/themeConfig';
|
||||||
import { NextLoading } from '/@/utils/loading';
|
import { NextLoading } from '/@/utils/loading';
|
||||||
import logoMini from '/@/assets/logo-mini.svg';
|
import logoMini from '/@/assets/logo-mini.svg';
|
||||||
import loginIconTwo from '/@/assets/login-icon-two.svg';
|
import loginIconTwo from '/@/assets/login-icon-two.svg';
|
||||||
import loginIconTwo1 from '/@/assets/login-icon-two1.svg';
|
import loginIconTwo1 from '/@/assets/login-icon-two.svg';
|
||||||
import loginIconTwo2 from '/@/assets/login-icon-two2.svg';
|
import loginIconTwo2 from '/@/assets/login-icon-two.svg';
|
||||||
|
|
||||||
// 引入组件
|
// 引入组件
|
||||||
const Account = defineAsyncComponent(() => import('/@/views/login/component/account.vue'));
|
const Account = defineAsyncComponent(() => import('/@/views/login/component/account.vue'));
|
||||||
|
|
|
@ -13,9 +13,9 @@
|
||||||
<el-input v-model="ruleForm.id" />
|
<el-input v-model="ruleForm.id" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
<el-form-item label="产品名称" prop="productName" :rules="[{ required: true, message: '产品名称不能为空', trigger: 'blur' }]">
|
<el-form-item label="产品名称" prop="materialsId" :rules="[{ required: true, message: '产品名称不能为空', trigger: 'blur' }]">
|
||||||
<el-select v-model="ruleForm.materials" placeholder="请选择" clearable @change="materialsChange">
|
<el-select v-model="ruleForm.materialsId" placeholder="请选择" clearable @change="materialsChange">
|
||||||
<el-option :label="item.name" :value="item" v-for="item, index in materials"
|
<el-option :label="item.name" :value="item.id" v-for="item, index in materials"
|
||||||
:key="index" />
|
:key="index" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -31,16 +31,19 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
<el-form-item label="状态" prop="state">
|
<el-form-item label="状态" prop="state" >
|
||||||
<el-select v-model="ruleForm.codeType" placeholder="请选择" clearable>
|
<el-select v-model="ruleForm.state" placeholder="请选择" clearable>
|
||||||
<el-option label="待审核" value= 0 />
|
<el-option label="待审核" :value= "0" />
|
||||||
<el-option label="已审核" value= 1 />
|
<el-option label="已审核" :value= "1" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
<el-form-item label="生产类型" prop="productType">
|
<el-form-item label="生产类型" prop="productType">
|
||||||
<el-input v-model="ruleForm.productType" placeholder="请输入生产类型" maxlength="32" show-word-limit clearable />
|
<el-select v-model="ruleForm.productType" placeholder="请选择" clearable>
|
||||||
|
<el-option label="普通生产" value= '普通生产' />
|
||||||
|
<el-option label="返工生产" value= '返工生产' />
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
@ -60,8 +63,8 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>-->
|
</el-col>-->
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
<el-form-item label="完工数量" prop="productCount">
|
<el-form-item label="生产数量" prop="productCount">
|
||||||
<el-input-number v-model="ruleForm.productCount" placeholder="请输入完工数量" clearable />
|
<el-input-number v-model="ruleForm.productCount" placeholder="请输入生产数量" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
|
@ -70,8 +73,8 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
<el-form-item label="基本完工数量" prop="baseProductCount">
|
<el-form-item label="基本生产数量" prop="baseProductCount">
|
||||||
<el-input-number v-model="ruleForm.baseProductCount" placeholder="请输入基本完工数量" clearable />
|
<el-input-number v-model="ruleForm.baseProductCount" placeholder="请输入基本生产数量" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
|
@ -188,7 +191,7 @@
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import type { FormRules } from "element-plus";
|
import type { FormRules } from "element-plus";
|
||||||
import { addReportDetailTable, updateReportDetailTable, detailReportDetailTable } from "/@/api/main/reportDetailTable";
|
import { addReportDetailTable, updateReportDetailTable, detailReportDetailTable } from "/@/api/main/reportDetailTable";
|
||||||
import { pageMaterials, listMaterials, detailMaterials } from '/@/api/main/materials';
|
import { listMaterials, detailMaterials } from '/@/api/main/materials';
|
||||||
import { listUnitGroup } from '/@/api/main/unit';
|
import { listUnitGroup } from '/@/api/main/unit';
|
||||||
import { listProductionLine } from '/@/api/main/productionLine';
|
import { listProductionLine } from '/@/api/main/productionLine';
|
||||||
import { listWarehouse } from '/@/api/main/warehouse';
|
import { listWarehouse } from '/@/api/main/warehouse';
|
||||||
|
@ -282,9 +285,11 @@
|
||||||
* @param clearBindUserId 是否清空
|
* @param clearBindUserId 是否清空
|
||||||
*/
|
*/
|
||||||
const materialsChange = async (value : any) => {
|
const materialsChange = async (value : any) => {
|
||||||
currentMaterial.value = value;
|
let mt= (await detailMaterials(value)).data.result;
|
||||||
ruleForm.value.materialsId=value.id;
|
console.log(mt);
|
||||||
var res = await listUnitGroup(value.unitGroupId ?? 0);
|
currentMaterial.value = mt;
|
||||||
|
ruleForm.value.productName=mt.name;
|
||||||
|
var res = await listUnitGroup(mt.unitGroupId ?? 0);
|
||||||
units.value = res.data.result ?? [];
|
units.value = res.data.result ?? [];
|
||||||
//console.log(value);
|
//console.log(value);
|
||||||
};
|
};
|
||||||
|
|
|
@ -188,15 +188,15 @@
|
||||||
<el-table-column prop="productName" label="产品名称" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="productName" label="产品名称" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="productCodeNum" label="产品编码" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="productCodeNum" label="产品编码" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="oddNumber" label="单号" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="oddNumber" label="单号" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="state" label="状态" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="state" label="状态" width="60" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="productType" label="生产类型" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="productType" label="生产类型" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="productionLine" label="生产线" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="productionLine" label="生产线" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="codeNum" label="生产线编码" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="codeNum" label="生产线编码" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="sourceNumber" label="源单号" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="sourceNumber" label="源单号" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="specifications" label="规格型号" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="specifications" label="规格型号" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="productCount" label="完工数量" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="productCount" label="生产数量" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="putWarehouse" label="入库数量" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="putWarehouse" label="入库数量" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="baseProductCount" label="基本完工数量" width="90" show-overflow-tooltip="" />
|
<el-table-column prop="baseProductCount" label="基本生产数量" width="90" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="basePutWarehouse" label="基本入库数量" width="90" show-overflow-tooltip="" />
|
<el-table-column prop="basePutWarehouse" label="基本入库数量" width="90" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="unit" label="单位" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="unit" label="单位" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="baseUnit" label="基本单位" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="baseUnit" label="基本单位" width="140" show-overflow-tooltip="" />
|
||||||
|
@ -213,7 +213,7 @@
|
||||||
<el-table-column label="操作" width="200" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('reportDetailTable:update') || auth('reportDetailTable:delete')">
|
<el-table-column label="操作" width="200" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('reportDetailTable:update') || auth('reportDetailTable:delete')">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditReportDetailTable(scope.row)" v-auth="'reportDetailTable:update'"> 编辑 </el-button>
|
<el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditReportDetailTable(scope.row)" v-auth="'reportDetailTable:update'"> 编辑 </el-button>
|
||||||
<el-button icon="ele-Edit" size="small" text="" type="primary" @click="readReportDetailTable(scope.row.id)" v-auth="'reportDetailTable:update'"> 详情 </el-button>
|
<!-- <el-button icon="ele-Edit" size="small" text="" type="primary" @click="readReportDetailTable(scope.row.id)" v-auth="'reportDetailTable:update'"> 详情 </el-button> -->
|
||||||
<el-button icon="ele-Delete" size="small" text="" type="primary" @click="delReportDetailTable(scope.row)" v-auth="'reportDetailTable:delete'"> 删除 </el-button>
|
<el-button icon="ele-Delete" size="small" text="" type="primary" @click="delReportDetailTable(scope.row)" v-auth="'reportDetailTable:delete'"> 删除 </el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -246,8 +246,6 @@
|
||||||
import { ref } from "vue";
|
import { ref } from "vue";
|
||||||
import { ElMessageBox, ElMessage } from "element-plus";
|
import { ElMessageBox, ElMessage } from "element-plus";
|
||||||
import { auth } from '/@/utils/authFunction';
|
import { auth } from '/@/utils/authFunction';
|
||||||
import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
|
|
||||||
import { formatDate } from '/@/utils/formatTime';
|
|
||||||
|
|
||||||
import editDialog from '/@/views/productionCenter/reportDetailTable/component/editDialog.vue'
|
import editDialog from '/@/views/productionCenter/reportDetailTable/component/editDialog.vue'
|
||||||
import printDetailDialog from '/@/views/labelPrinting/printDataDetail/component/editDialog.vue'
|
import printDetailDialog from '/@/views/labelPrinting/printDataDetail/component/editDialog.vue'
|
||||||
|
|
|
@ -6,66 +6,62 @@
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
|
||||||
<el-form-item label="关键字">
|
<el-form-item label="关键字">
|
||||||
<el-input v-model="queryParams.searchKey" clearable="" placeholder="请输入模糊查询关键字"/>
|
<el-input v-model="queryParams.searchKey" clearable="" placeholder="请输入模糊查询关键字"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
|
||||||
|
<el-form-item label="条码">
|
||||||
|
<el-input v-model="queryParams.code" clearable="" placeholder="请输入条码"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
||||||
<el-form-item label="单号">
|
<el-form-item label="单号">
|
||||||
<el-input v-model="queryParams.oddNumber" clearable="" placeholder="请输入单号"/>
|
<el-input v-model="queryParams.oddNumber" clearable="" placeholder="请输入单号"/>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
||||||
<el-form-item label="业务日期">
|
<el-form-item label="业务日期">
|
||||||
<el-date-picker placeholder="请选择业务日期" value-format="YYYY/MM/DD" type="daterange" v-model="queryParams.startDateRange" />
|
<el-date-picker placeholder="请选择业务日期" value-format="YYYY/MM/DD" type="daterange" v-model="queryParams.startDateRange" />
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
||||||
<el-form-item label="状态">
|
<el-form-item label="状态">
|
||||||
<el-input-number v-model="queryParams.state" clearable="" placeholder="请输入状态"/>
|
<el-input-number v-model="queryParams.state" clearable="" placeholder="请输入状态"/>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
||||||
<el-form-item label="生产类型">
|
<el-form-item label="生产类型">
|
||||||
<el-input v-model="queryParams.productType" clearable="" placeholder="请输入生产类型"/>
|
<el-input v-model="queryParams.productType" clearable="" placeholder="请输入生产类型"/>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
||||||
<el-form-item label="生产线">
|
<el-form-item label="生产线">
|
||||||
<el-input v-model="queryParams.productionLine" clearable="" placeholder="请输入生产线"/>
|
<el-input v-model="queryParams.productionLine" clearable="" placeholder="请输入生产线"/>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
||||||
<el-form-item label="生产线编码">
|
<el-form-item label="生产线编码">
|
||||||
<el-input v-model="queryParams.codeNum" clearable="" placeholder="请输入生产线编码"/>
|
<el-input v-model="queryParams.codeNum" clearable="" placeholder="请输入生产线编码"/>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
||||||
<el-form-item label="源单号">
|
<el-form-item label="源单号">
|
||||||
<el-input v-model="queryParams.sourceNumber" clearable="" placeholder="请输入源单号"/>
|
<el-input v-model="queryParams.sourceNumber" clearable="" placeholder="请输入源单号"/>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
||||||
<el-form-item label="备注">
|
<el-form-item label="备注">
|
||||||
<el-input v-model="queryParams.remarks" clearable="" placeholder="请输入备注"/>
|
<el-input v-model="queryParams.remarks" clearable="" placeholder="请输入备注"/>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
|
<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button-group style="display: flex; align-items: center;">
|
<el-button-group style="display: flex; align-items: center;">
|
||||||
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'reportTable:page'"> 查询 </el-button>
|
<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'reportTable:page'"> 查询 </el-button>
|
||||||
|
<el-button type="primary" icon="ele-Search" @click="barCodeQuery" v-auth="'reportTable:page'"> 条码查询 </el-button>
|
||||||
<el-button icon="ele-Refresh" @click="() => queryParams = {}"> 重置 </el-button>
|
<el-button icon="ele-Refresh" @click="() => queryParams = {}"> 重置 </el-button>
|
||||||
<el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left:5px;"> 高级查询 </el-button>
|
<el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left:5px;"> 高级查询 </el-button>
|
||||||
<el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left:5px;"> 隐藏 </el-button>
|
<el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left:5px;"> 隐藏 </el-button>
|
||||||
<el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddReportTable" v-auth="'reportTable:add'"> 新增 </el-button>
|
<el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddReportTable" v-auth="'reportTable:add'"> 新增 </el-button>
|
||||||
|
|
||||||
</el-button-group>
|
</el-button-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
@ -84,16 +80,17 @@
|
||||||
border="">
|
border="">
|
||||||
<el-table-column type="index" label="序号" width="55" align="center"/>
|
<el-table-column type="index" label="序号" width="55" align="center"/>
|
||||||
<el-table-column prop="oddNumber" label="单号" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="oddNumber" label="单号" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="startDate" label="业务日期" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="startDate" label="业务日期" width="200" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="state" label="状态" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="state" label="状态" width="80" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="productType" label="生产类型" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="productType" label="生产类型" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="productionLine" label="生产线" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="productionLine" label="生产线" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="codeNum" label="生产线编码" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="codeNum" label="生产线编码" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="sourceNumber" label="源单号" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="sourceNumber" label="源单号" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column prop="remarks" label="备注" width="140" show-overflow-tooltip="" />
|
<el-table-column prop="remarks" label="备注" width="140" show-overflow-tooltip="" />
|
||||||
<el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('reportTable:update') || auth('reportTable:delete')">
|
<el-table-column label="操作" width="200" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('reportTable:update') || auth('reportTable:delete')">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditReportTable(scope.row)" v-auth="'reportTable:update'"> 编辑 </el-button>
|
<el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditReportTable(scope.row)" v-auth="'reportTable:update'"> 编辑 </el-button>
|
||||||
|
<el-button icon="ele-Edit" size="small" text="" type="primary" @click="readReportDetailTable(scope.row)" v-auth="'reportDetailTable:update'"> 详情 </el-button>
|
||||||
<el-button icon="ele-Delete" size="small" text="" type="primary" @click="delReportTable(scope.row)" v-auth="'reportTable:delete'"> 删除 </el-button>
|
<el-button icon="ele-Delete" size="small" text="" type="primary" @click="delReportTable(scope.row)" v-auth="'reportTable:delete'"> 删除 </el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -114,6 +111,10 @@
|
||||||
:title="editReportTableTitle"
|
:title="editReportTableTitle"
|
||||||
@reloadTable="handleQuery"
|
@reloadTable="handleQuery"
|
||||||
/>
|
/>
|
||||||
|
<printDetailDialog
|
||||||
|
ref="printDetailDialogRef"
|
||||||
|
:title="printDetailTableTitle"
|
||||||
|
/>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -122,16 +123,15 @@
|
||||||
import { ref } from "vue";
|
import { ref } from "vue";
|
||||||
import { ElMessageBox, ElMessage } from "element-plus";
|
import { ElMessageBox, ElMessage } from "element-plus";
|
||||||
import { auth } from '/@/utils/authFunction';
|
import { auth } from '/@/utils/authFunction';
|
||||||
import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
|
|
||||||
import { formatDate } from '/@/utils/formatTime';
|
|
||||||
|
|
||||||
|
|
||||||
|
import printDetailDialog from '/@/views/labelPrinting/printDataDetail/component/editDialog.vue'
|
||||||
import editDialog from '/@/views/productionCenter/reportTable/component/editDialog.vue'
|
import editDialog from '/@/views/productionCenter/reportTable/component/editDialog.vue'
|
||||||
import { pageReportTable, deleteReportTable } from '/@/api/main/reportTable';
|
import { pageReportTable, deleteReportTable ,getByCodeReportTable} from '/@/api/main/reportTable';
|
||||||
|
|
||||||
|
|
||||||
const showAdvanceQueryUI = ref(false);
|
const showAdvanceQueryUI = ref(false);
|
||||||
const editDialogRef = ref();
|
const editDialogRef = ref();
|
||||||
|
const printDetailDialogRef = ref();
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const tableData = ref<any>([]);
|
const tableData = ref<any>([]);
|
||||||
const queryParams = ref<any>({});
|
const queryParams = ref<any>({});
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
const editReportTableTitle = ref("");
|
const editReportTableTitle = ref("");
|
||||||
|
const printDetailTableTitle = ref("");
|
||||||
// 改变高级查询的控件显示状态
|
// 改变高级查询的控件显示状态
|
||||||
const changeAdvanceQueryUI = () => {
|
const changeAdvanceQueryUI = () => {
|
||||||
showAdvanceQueryUI.value = !showAdvanceQueryUI.value;
|
showAdvanceQueryUI.value = !showAdvanceQueryUI.value;
|
||||||
|
@ -158,6 +158,18 @@
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 查询操作
|
||||||
|
const barCodeQuery = async () => {
|
||||||
|
loading.value = true;
|
||||||
|
var res = await getByCodeReportTable(queryParams.value.code);
|
||||||
|
let model = res.data.result ?? {};
|
||||||
|
//console.log(res.data.result);
|
||||||
|
tableData.value = [model];
|
||||||
|
tableParams.value.total = 1;
|
||||||
|
loading.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// 列排序
|
// 列排序
|
||||||
const sortChange = async (column: any) => {
|
const sortChange = async (column: any) => {
|
||||||
queryParams.value.field = column.prop;
|
queryParams.value.field = column.prop;
|
||||||
|
@ -178,6 +190,13 @@
|
||||||
editDialogRef.value.openDialog(row);
|
editDialogRef.value.openDialog(row);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 打开查看详情页面
|
||||||
|
const readReportDetailTable = (row: any) => {
|
||||||
|
printDetailTableTitle.value = '条码详情';
|
||||||
|
console.log(row.sourceId);
|
||||||
|
printDetailDialogRef.value.openDialog(row.sourceId);
|
||||||
|
};
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
const delReportTable = (row: any) => {
|
const delReportTable = (row: any) => {
|
||||||
ElMessageBox.confirm(`确定要删除吗?`, "提示", {
|
ElMessageBox.confirm(`确定要删除吗?`, "提示", {
|
||||||
|
|