44673626 3 years ago
parent
commit
ab5a460b4b
  1. 2374
      src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/Logs/log-20211124.txt
  2. 168
      src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/Logs/log-20211125.txt
  3. 71
      src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/InvoiceSettledDetailDiffDapperRepository.cs
  4. 17
      src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/InvoiceSettledDiffDapperRepository.cs
  5. 10
      src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettleFisDiffDetailDapperRepository.cs
  6. 13
      src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettledPriceDiffDapperRepository.cs
  7. BIN
      src/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.csproj.AssemblyReference.cache
  8. 22
      vue/src/router/modules/fis.js
  9. 2
      vue/src/views/pg-fis/basedate/assemblyCfg/index.vue
  10. 481
      vue/src/views/pg-fis/basedate/logRemind/index.vue
  11. 9
      vue/src/views/pg-fis/basedate/m100BIll/detail.vue
  12. 407
      vue/src/views/pg-fis/basedate/m100BIll/index.vue
  13. 285
      vue/src/views/pg-fis/basedate/repeatR100/detail.vue
  14. 567
      vue/src/views/pg-fis/basedate/repeatR100/index.vue

2374
src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/Logs/log-20211124.txt

File diff suppressed because it is too large

168
src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/Logs/log-20211125.txt

@ -0,0 +1,168 @@
2021-11-25 08:05:11.625 G Execution DelayedJobScheduler is in the Failed state now due to an exception, execution will be retried no more than in 00:00:09
System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerConnection.AcquireLock(String resource, TimeSpan timeout)
at Hangfire.SqlServer.SqlServerConnection.AcquireDistributedLock(String resource, TimeSpan timeout)
at Hangfire.Server.DelayedJobScheduler.UseConnectionDistributedLock[T](JobStorage storage, Func`2 action)
at Hangfire.Server.DelayedJobScheduler.EnqueueNextScheduledJobs(BackgroundProcessContext context)
at Hangfire.Server.DelayedJobScheduler.Execute(BackgroundProcessContext context)
at Hangfire.Server.BackgroundProcessDispatcherBuilder.ExecuteProcess(Guid executionId, Object state)
at Hangfire.Processing.BackgroundExecution.Run(Action`2 callback, Object state)
2021-11-25 08:05:11.625 G Execution DelayedJobScheduler is in the Failed state now due to an exception, execution will be retried no more than in 00:00:09
System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerConnection.AcquireLock(String resource, TimeSpan timeout)
at Hangfire.SqlServer.SqlServerConnection.AcquireDistributedLock(String resource, TimeSpan timeout)
at Hangfire.Server.DelayedJobScheduler.UseConnectionDistributedLock[T](JobStorage storage, Func`2 action)
at Hangfire.Server.DelayedJobScheduler.EnqueueNextScheduledJobs(BackgroundProcessContext context)
at Hangfire.Server.DelayedJobScheduler.Execute(BackgroundProcessContext context)
at Hangfire.Server.BackgroundProcessDispatcherBuilder.ExecuteProcess(Guid executionId, Object state)
at Hangfire.Processing.BackgroundExecution.Run(Action`2 callback, Object state)
2021-11-25 08:05:11.625 G Execution RecurringJobScheduler is in the Failed state now due to an exception, execution will be retried no more than in 00:00:09
System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerConnection.AcquireLock(String resource, TimeSpan timeout)
at Hangfire.SqlServer.SqlServerConnection.AcquireDistributedLock(String resource, TimeSpan timeout)
at Hangfire.Server.RecurringJobScheduler.UseConnectionDistributedLock[T](JobStorage storage, Func`2 action)
at Hangfire.Server.RecurringJobScheduler.EnqueueNextRecurringJobs(BackgroundProcessContext context)
at Hangfire.Server.RecurringJobScheduler.Execute(BackgroundProcessContext context)
at Hangfire.Server.BackgroundProcessDispatcherBuilder.ExecuteProcess(Guid executionId, Object state)
at Hangfire.Processing.BackgroundExecution.Run(Action`2 callback, Object state)
2021-11-25 08:05:15.606 G Execution Worker is in the Failed state now due to an exception, execution will be retried no more than in 00:05:00
System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerJobQueue.DequeueUsingTransaction(String[] queues, CancellationToken cancellationToken)
at Hangfire.SqlServer.SqlServerJobQueue.Dequeue(String[] queues, CancellationToken cancellationToken)
at Hangfire.SqlServer.SqlServerConnection.FetchNextJob(String[] queues, CancellationToken cancellationToken)
at Hangfire.Server.Worker.Execute(BackgroundProcessContext context)
at Hangfire.Server.BackgroundProcessDispatcherBuilder.ExecuteProcess(Guid executionId, Object state)
at Hangfire.Processing.BackgroundExecution.Run(Action`2 callback, Object state)
2021-11-25 08:05:15.622 G Execution Worker is in the Failed state now due to an exception, execution will be retried no more than in 00:00:49
System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerJobQueue.DequeueUsingTransaction(String[] queues, CancellationToken cancellationToken)
at Hangfire.SqlServer.SqlServerJobQueue.Dequeue(String[] queues, CancellationToken cancellationToken)
at Hangfire.SqlServer.SqlServerConnection.FetchNextJob(String[] queues, CancellationToken cancellationToken)
at Hangfire.Server.Worker.Execute(BackgroundProcessContext context)
at Hangfire.Server.BackgroundProcessDispatcherBuilder.ExecuteProcess(Guid executionId, Object state)
at Hangfire.Processing.BackgroundExecution.Run(Action`2 callback, Object state)
2021-11-25 08:05:20.065 G Server sk-20210819huao:132:d40b9d06 encountered an exception while sending heartbeat
System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerStorage.UseConnection[T](DbConnection dedicatedConnection, Func`2 func)
at Hangfire.SqlServer.SqlServerStorage.UseConnection(DbConnection dedicatedConnection, Action`1 action)
at Hangfire.SqlServer.SqlServerConnection.Heartbeat(String serverId)
at Hangfire.Server.ServerHeartbeatProcess.Execute(BackgroundProcessContext context)
2021-11-25 08:05:20.065 G Server sk-20210819huao:132:d293512d encountered an exception while sending heartbeat
System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerStorage.UseConnection[T](DbConnection dedicatedConnection, Func`2 func)
at Hangfire.SqlServer.SqlServerStorage.UseConnection(DbConnection dedicatedConnection, Action`1 action)
at Hangfire.SqlServer.SqlServerConnection.Heartbeat(String serverId)
at Hangfire.Server.ServerHeartbeatProcess.Execute(BackgroundProcessContext context)
2021-11-25 08:05:50.639 G Server sk-20210819huao:132:d40b9d06 encountered an exception while sending heartbeat
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
---> System.ComponentModel.Win32Exception (53): 找不到网络路径。
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerStorage.UseConnection[T](DbConnection dedicatedConnection, Func`2 func)
at Hangfire.SqlServer.SqlServerStorage.UseConnection(DbConnection dedicatedConnection, Action`1 action)
at Hangfire.SqlServer.SqlServerConnection.Heartbeat(String serverId)
at Hangfire.Server.ServerHeartbeatProcess.Execute(BackgroundProcessContext context)
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:53,State:0,Class:20
2021-11-25 08:05:50.639 G Server sk-20210819huao:132:d293512d encountered an exception while sending heartbeat
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
---> System.ComponentModel.Win32Exception (53): 找不到网络路径。
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerStorage.UseConnection[T](DbConnection dedicatedConnection, Func`2 func)
at Hangfire.SqlServer.SqlServerStorage.UseConnection(DbConnection dedicatedConnection, Action`1 action)
at Hangfire.SqlServer.SqlServerConnection.Heartbeat(String serverId)
at Hangfire.Server.ServerHeartbeatProcess.Execute(BackgroundProcessContext context)
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:53,State:0,Class:20
2021-11-25 08:05:50.639 G Execution RecurringJobScheduler is in the Failed state now due to an exception, execution will be retried no more than in 00:00:09
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
---> System.ComponentModel.Win32Exception (53): 找不到网络路径。
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerConnection.AcquireLock(String resource, TimeSpan timeout)
at Hangfire.SqlServer.SqlServerConnection.AcquireDistributedLock(String resource, TimeSpan timeout)
at Hangfire.Server.RecurringJobScheduler.UseConnectionDistributedLock[T](JobStorage storage, Func`2 action)
at Hangfire.Server.RecurringJobScheduler.EnqueueNextRecurringJobs(BackgroundProcessContext context)
at Hangfire.Server.RecurringJobScheduler.Execute(BackgroundProcessContext context)
at Hangfire.Server.BackgroundProcessDispatcherBuilder.ExecuteProcess(Guid executionId, Object state)
at Hangfire.Processing.BackgroundExecution.Run(Action`2 callback, Object state)
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:53,State:0,Class:20
2021-11-25 08:06:35.677 G Server sk-20210819huao:132:d293512d encountered an exception while sending heartbeat
System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerStorage.UseConnection[T](DbConnection dedicatedConnection, Func`2 func)
at Hangfire.SqlServer.SqlServerStorage.UseConnection(DbConnection dedicatedConnection, Action`1 action)
at Hangfire.SqlServer.SqlServerConnection.Heartbeat(String serverId)
at Hangfire.Server.ServerHeartbeatProcess.Execute(BackgroundProcessContext context)
2021-11-25 08:06:35.677 G Server sk-20210819huao:132:d40b9d06 encountered an exception while sending heartbeat
System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Hangfire.SqlServer.SqlServerStorage.CreateAndOpenConnection()
at Hangfire.SqlServer.SqlServerStorage.UseConnection[T](DbConnection dedicatedConnection, Func`2 func)
at Hangfire.SqlServer.SqlServerStorage.UseConnection(DbConnection dedicatedConnection, Action`1 action)
at Hangfire.SqlServer.SqlServerConnection.Heartbeat(String serverId)
at Hangfire.Server.ServerHeartbeatProcess.Execute(BackgroundProcessContext context)

71
src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/InvoiceSettledDetailDiffDapperRepository.cs

@ -0,0 +1,71 @@
using Magicodes.ExporterAndImporter.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Repositories.Dapper;
using Volo.Abp.EntityFrameworkCore;
using Win.Sfs.SettleAccount.Reports;
namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report
{
public class InvoiceSettledDetilDiff : ReportDetailBase
{
//结算数量
[ExporterHeader(DisplayName = "结算数量")]
public decimal SettleQty { set; get; }
//结算日期
[ExporterHeader(DisplayName = "结算日期")]
public decimal CP7Time { set; get; }
//结算与发货差异
[ExporterHeader(DisplayName = "结算与发货差异")]
public decimal DiffFisQty{ set; get; }
//结算与开票差异
[ExporterHeader(DisplayName = "结算与开票差异")]
public decimal DiffSettleInvQty { set; get; }
//开票数量
[ExporterHeader(DisplayName = "开票数量")]
public decimal InvoiceQty { set; get; }
//开票单价
[ExporterHeader(DisplayName = "开票单价")]
public decimal InvoicePrice { set; get; }
//开票金额
[ExporterHeader(DisplayName = "开票金额")]
public decimal InvocieAmt { set; get; }
//结算金额
[ExporterHeader(DisplayName = "结算金额")]
public decimal SettleAmt { set; get; }
//单价差异
[ExporterHeader(DisplayName = "单价差异")]
public decimal DiffPrice { set; get; }
//总金额差异
[ExporterHeader(DisplayName = "交货单号 ")]
public decimal AmtDiffPrice { set; get; }
}
public class InvoiceSettledDetailDiffDapperRepository: DapperRepository<SettleAccountDbContext>, ITransientDependency
{
public InvoiceSettledDetailDiffDapperRepository(IDbContextProvider<SettleAccountDbContext> dbContextProvider)
: base(dbContextProvider)
{
}
public virtual List<InvoiceSettledDetilDiff> GetInvoiceSettledDetailDiffReportList(string version, string year, string tablename, string materialcode)
{
List<InvoiceSettledDetilDiff> _list = new List<InvoiceSettledDetilDiff>();
string str = string.Empty;
return _list;
}
}
}

17
src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/InvoiceSettledDiffDapperRepository.cs

@ -53,8 +53,7 @@ string.Format(" '{0}' as Version ,", version)+"\n" +
" b.InvoiceQty - ISnull(\n" +
" c.Qty,\n" +
" IsNull( d.qty, 0 ))) DiffQty,\n" +
//" Isnull( f.Price, 0 ) SalePrice,\n" +
//" b.InvoicePrice - Isnull( f.Price, 0 ) DiffPrice,\n" +
" g.MaterialCode AS SapMaterialCode,\n" +
" g.MaterialDesc AS MaterialDesc \n" +
" FROM\n" +
@ -102,7 +101,7 @@ string.Format(" '{0}' as Version ,", version)+"\n" +
var _query = DbConnection.Query<InvoiceSettledDiff>(_sql);
var _list = _query.ToList();
var _list = _query.OrderBy(p=>p.Factory).ToList();
if (!string.IsNullOrEmpty(materialcode))
{
@ -113,17 +112,7 @@ string.Format(" '{0}' as Version ,", version)+"\n" +
return _list;
}
//public virtual async Task<List<string>> GetUpFileAsync(string taskid)
//{
// var _ls = await GetTaskJobsAsync(new Job() { TaskId = taskid });
// var _first = _ls.FirstOrDefault();
// var options = new JsonSerializerOptions
// {
// Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping
// };
// var _task = System.Text.Json.JsonSerializer.Deserialize<List<string>>(_first.FileName, options);
// return _task;
//}
}
}

10
src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettleFisDiffDetailDapperRepository.cs

@ -75,19 +75,15 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report
public decimal DiffPrice { set; get; }
}
/// <summary>
/// 3.大众准时化结算数量差异比对表
/// </summary>
public class SettleFisDiffDetailDapperRepository : DapperRepository<SettleAccountDbContext>, ITransientDependency
{
public SettleFisDiffDetailDapperRepository(IDbContextProvider<SettleAccountDbContext> dbContextProvider) : base(dbContextProvider)
{
}
//public virtual List<SettleFisDiffSum> GetSumList(string state, string version, string year, string begintime, string endtime)
//{
// GetReportList(state, version, year, begintime, endtime);
//}

13
src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettledPriceDiffDapperRepository.cs

@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report
{
class SettledPriceDiffDapperRepository
{
}
}

BIN
src/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.csproj.AssemblyReference.cache

Binary file not shown.

22
vue/src/router/modules/fis.js

@ -95,7 +95,27 @@ const pgfis = {
roles: ['SettleAccount.Reports'],
icon: '客户零件'
}
}
},
{
path: '/pg-logRemind',
component: () => import('@/views/pg-fis/basedate/logRemind'),
name: 'pg-logRemind',//命名路由
meta: {
title: '系统内通知',
roles: ['SettleAccount.Reports'],
icon: '客户零件'
}
},
// {
// path: '/pg-repeatR100',
// component: () => import('@/views/pg-fis/basedate/repeatR100'),
// name: 'pg-repeatR100',//命名路由
// meta: {
// title: '系统内通知',
// roles: ['SettleAccount.Reports'],
// icon: '客户零件'
// }
// }
]
}

2
vue/src/views/pg-fis/basedate/assemblyCfg/index.vue

@ -870,7 +870,7 @@ export default {
<style lang="scss" scoped>
@import "../../../ux/styles/crmtable.scss";
@import "../../../pg-fis/styles/crmtable.scss";
// /**/
// .el-table >>> .DisabledSelection .cell .el-checkbox__inner {

481
vue/src/views/pg-fis/basedate/logRemind/index.vue

@ -0,0 +1,481 @@
<!--系统日志信息页-->
<template>
<div class="cr-body-content">
<div ref="box">
<flexbox class="content-header">
<el-form
:model="listQuery"
ref="queryForm"
v-show="showSearch"
:inline="true"
>
<el-form-item label="日志标题" prop="LogTitle">
<el-input
v-model="listQuery.LogTitle"
placeholder="请输入日志标题"
clearable
size="small"
style="width: 150px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="日志类别" prop="LogType">
<el-select
v-model="listQuery.LogType"
placeholder="请选择"
style="width: 200px"
>
<el-option label="报文传输异常" :value="1"></el-option>
<el-option label="报文转换异常" :value="2"></el-option>
<el-option label="报文解析、校验异常" :value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="严重程度" prop="SeriousLevel">
<el-select
v-model="listQuery.SeriousLevel"
placeholder="请选择"
style="width: 200px"
>
<el-option label="轻微" :value="1"></el-option>
<el-option label="一般" :value="2"></el-option>
<el-option label="严重" :value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleFilter"
>搜索</el-button
>
<el-button
icon="el-icon-refresh"
size="mini"
@click="resetQuery('queryForm')"
>重置</el-button
>
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
style="margin-left: 15px"
@click="handleDownload()"
>导出(Excel)查询信息
</el-button>
</el-form-item>
</el-form>
</flexbox>
</div>
<div class="l-table">
<!--表格渲染-->
<el-table
ref="multipleTable"
v-loading="listLoading"
element-loading-text="拼命加载中..."
element-loading-spinner="el-icon-loading"
class="cr-table"
:data="list"
:height="tableHeight"
:cell-style="cellStyle"
:header-cell-style="headerRowStyle"
size="small"
stripe
border
highlight-current-row
style="width: 100%"
@sort-change="sortChange"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<el-table-column
v-for="(item, index) in getDefaultField"
:key="index"
:prop="item.prop"
:label="item.label"
:min-width="item.width"
:formatter="fieldFormatter"
sortable="custom"
show-overflow-tooltip
:gutter="0"
>
<template slot="header" slot-scope="scope">
{{ scope.column.label }}
</template>
</el-table-column >
<el-table-column
label="操作"
width="150">
<template slot-scope="scope">
<el-button @click="handleEdit(scope.row)" type="primary" size="small">处理</el-button><!-- type="text" -->
<el-button @click="handleIgnore(scope.row)" type="primary" size="small">忽略</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="table-footer">
<!-- 分页控件 style="margin-top: -25px;margin-bottom:-25px;float:right;"-->
<pagination
v-show="totalCount > 0"
:total="totalCount"
:page.sync="page"
:limit.sync="listQuery.MaxResultCount"
@pagination="getList"
/>
<!-- 导入Excel组件 -->
<importExcel
ref="importexcel"
:show="showExcelImport"
:crmType="crmType"
@close="importExcelData"
/>
</div>
</div>
</template>
<script>
import Pagination from "@/components/Pagination";
import permission from "@/directive/permission/index.js";
import CRMTableHead from "../../components/CRMTableHead";
import importExcel from "@/components/ImportExcel-vw";
import Lockr from "lockr";
import moment from "moment";
import { mapGetters } from "vuex";
import { downloadFile } from "@/utils/crmindex.js";
//
const bomUnit = [
{ key: 0, display_name: "PC" },
{ key: 1, display_name: "TON" },
{ key: 2, display_name: "Other" },
];
const projectTypeKeyValue = bomUnit.reduce((acc, cur) => {
acc[cur.key] = cur.display_name;
return acc;
}, {});
export default {
name: "BillM100",
components: { Pagination, CRMTableHead, importExcel },
directives: { permission },
filters: {
IsCustomerSignFilter(status) {
//
const statusMap = {
true: "是",
false: "否",
};
return statusMap[status];
},
},
props: {
customerInfos: {
type: Array,
default: () => {
return [];
},
},
},
data() {
return {
crmType: "bomdatabase",
versionValue: "",
versionList: [], //
searchContent: "", //
showExcelImport: false,
form: {},
drawer: false,
list: null,
totalCount: 0,
listLoading: true,
customerInfo: {
bomId: "",
},
//
filterObj: {
type: Object,
default: () => {
return {};
},
},
listQuery: {
SkipCount: 0,
MaxResultCount: 15,
LogTitle: undefined,
LogType: undefined,
SeriousLevel: undefined,
},
operationQuery:{
id:undefined,
},
page: 1,
//
showSearch: true,
bomUnit,
multipleSelection: [],
drawer: false,
tableHeight: document.documentElement.clientHeight - 260,
};
},
mounted() {
this.$nextTick(() => {
var offsetHei = document.documentElement.clientHeight;
//console.log(offsetHei);
let boxH = this.$refs.box.offsetHeight;
this.tableHeight = offsetHei - boxH - 57 - 79;//57footer79
});
},
created() {
this.getList();
},
computed: {
...mapGetters(["messageNum"]),
getDefaultField() {
var tempsTabs = [];
tempsTabs.push({ label: "日志类别", prop: "logType", width: 120 });
tempsTabs.push({ label: "日志标题", prop: "logTitle", width: 150 });
tempsTabs.push({
label: "严重程度",
prop: "seriousLevel",
width: 100,
});
tempsTabs.push({ label: "创建日期", prop: "creationTime", width: 120 });
tempsTabs.push({
label: "日志描述",
prop: "logDesc",
width: 400,
});
return tempsTabs;
},
},
methods: {
/** 导出功能 */
handleDownload() {
this.listLoading = true;
console.log("系统日志导出条件:"+JSON.stringify(this.listQuery))
this.$axios
.posts("/api/newjit/log-remind/export", this.listQuery)
.then((res) => {
let filename = res.item;
this.$axios
.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename)
.then((response) => {
if (filename.indexOf("_") != -1) {
let downName =
filename.slice(0, filename.lastIndexOf("_")) +
filename.slice(filename.lastIndexOf("."));
downloadFile(response, downName);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
} else {
downloadFile(response, filename);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
}
this.listLoading = false;
});
});
},
/** 重置按钮操作 */
resetQuery(refName) {
this.$refs[refName].resetFields();
this.handleQuery();
},
/** 搜索按钮操作 */
handleQuery() {
this.listQuery.SkipCount = 1;
this.getList();
},
selectValue(params) {
//
this.versionValue = params.value;
this.getList();
},
selectOptionsChange(item) {
this.getList();
},
importExcelData() {
//
this.showExcelImport = false;
//this.getList();
},
/** 刷新列表 */
handleHandle(data) {
if (data.type !== "edit") {
this.getList();
}
},
/** 格式化字段 */
fieldFormatter(row, column) {
if (column.property === "seriousLevel") {
return { 1: "轻微", 2: "一般", 3: "严重" }[row[column.property]];
}
if (column.property === "logType") {
return {
1: "报文传输异常",
2: "报文转换异常",
3: "报文解析、校验异常",
}[row[column.property]];
}
if (column.property == "creationTime") {
var date = row[column.property];
if (date == undefined) {
return "";
}
return moment(date).format("YYYY-MM-DD HH:mm:ss");
}
return row[column.property] || "--";
},
roleFilter(type) {
return projectTypeKeyValue[type];
},
getList() {
this.listLoading = true;
this.listQuery.SkipCount = (this.page - 1) * 10;
this.$axios
.gets("/api/newjit/log-remind/list", this.listQuery)
.then((response) => {
this.list = response.items;
this.totalCount = response.totalCount;
this.$store.commit("SET_MESSAGENUM", this.totalCount);
setTimeout(() => {
//
this.listLoading = false;
}, 500);
})
.catch(() => {
this.listLoading = false;
});
},
handleFilter() {
this.page = 1;
this.getList();
},
sortChange(data) {
const { prop, order } = data;
if (!prop || !order) {
this.handleFilter();
return;
}
this.listQuery.Sorting = prop + " " + order;
this.handleFilter();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
/** 通过回调控制style */
cellStyle({ row, column, rowIndex, columnIndex }) {
if (column.property === "qty") {
return { textAlign: "right" };
} else {
return { textAlign: "left" };
}
},
/** 通过回调控制表头style */
headerRowStyle({ row, column, rowIndex, columnIndex }) {
if (column.property === "qty") {
return { textAlign: "right", background: "#FAFAFA" };
} else {
return { textAlign: "left", background: "#FAFAFA" };
}
},
handleRowClick(row, column, event) {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleRowSelection(row);
},
handleEdit(row)
{
this.operationQuery.id = row.id;
this.$axios
.posts("/api/newjit/log-remind/do-process", this.operationQuery)
.then((response) => {
if(response.status === "true")
{
this.$notify({
title: "成功",
message: "处理成功!",
type: "success",
duration: 2000,
});
}
else
{
this.$notify({
title: "失败",
message: "处理失败!",
type: "success",
duration: 2000,
});
}
})
.catch(() => {
this.$notify({
title: "失败",
message: "处理失败!",
type: "warning",
duration: 2000,
});
});
},
handleIgnore(row)
{
this.operationQuery.id = row.id;
this.$axios
.posts("/api/newjit/log-remind/do-ignore", this.operationQuery)
.then((response) => {
if(response.status === "true")
{
this.$notify({
title: "成功",
message: "忽略成功!",
type: "success",
duration: 2000,
});
}
else
{
this.$notify({
title: "失败",
message: "忽略失败!",
type: "success",
duration: 2000,
});
}
})
.catch(() => {
this.$notify({
title: "失败",
message: "忽略失败!",
type: "warning",
duration: 2000,
});
});
}
},
};
</script>
<style lang="scss" scoped>
@import "../../../pg-fis/styles/crmtable.scss";
</style>

9
vue/src/views/pg-fis/basedate/m100BIll/detail.vue

@ -219,6 +219,11 @@ export default {
/** 列表字段 */
getDefaultField() {
var tempsTabs = [];
tempsTabs.push({
label: "总成编号",
prop: "erpAssemblyCode",
width: 160,
});
tempsTabs.push({
label: "总成名称",
prop: "erpAssemblyName",
@ -264,8 +269,10 @@ export default {
getList() {
this.listLoading = true;
console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId));
//alert("" + JSON.stringify(this.customerInfo.parentId));
let vehicleAssemblyId = { vehicleAssemblyId: this.customerInfo.parentId };
this.$axios
.gets("/api/newjit/bill-m100/"+ this.customerInfo.parentId)
.gets("/api/newjit/assembly-cfg-vehicle/list", vehicleAssemblyId)
.then((response) => {
this.list = response;
setTimeout(() => {

407
vue/src/views/pg-fis/basedate/m100BIll/index.vue

@ -272,12 +272,20 @@
<el-row>
<el-col :span="12">
<el-form-item label="KNR:" prop="knr" required >
<el-input
<el-select
style="width: 350px"
v-model="form.knr"
:disabled="isEdit"
placeholder="请选择添加M100信息对应的KNR号"
/>
filterable
:disabled="false"
@change="getVModel"
>
<el-option
v-for="item in KNRlist"
:key="item.knr"
:label="item.knr"
:value="item.knr"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
@ -288,7 +296,8 @@
<el-select
style="width: 350px"
v-model="form.vehicleModelCode"
:disabled="isEdit"
:disabled="false"
@change="vMchange"
>
<el-option
v-for="item in vehicleModelList"
@ -303,7 +312,7 @@
<el-input
style="width: 350px"
v-model="form.vin"
:disabled="isEdit"
:disabled="false"
/>
</el-form-item>
</el-col>
@ -315,7 +324,7 @@
<el-input
style="width: 350px"
v-model="form.hostSN"
:disabled="isEdit"
:disabled="false"
/>
</el-form-item>
</el-col>
@ -327,7 +336,7 @@
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择时间"
:disabled="isEdit"
:disabled="false"
>
</el-date-picker>
</el-form-item>
@ -344,7 +353,7 @@
</el-row>
<el-row>
<el-table
ref="ERPDetialTable"
ref="LeftDetialTable"
v-loading="listLoading"
element-loading-text="拼命加载中..."
element-loading-spinner="el-icon-loading"
@ -358,7 +367,8 @@
border
highlight-current-row
style="width: 95%;margin:10px"
@row-click="handleRowClick"
@row-click="handleLeftRowClick"
@selection-change="handleLeftSelectionChange"
>
<!-- <el-table-column type="selection" width="44px"></el-table-column> -->
<el-table-column prop="erpAssemblyCode" label="ERP总成编号" width="150px" >
@ -446,7 +456,6 @@
border
highlight-current-row
style="width: 95%;margin:10px"
@row-click="handleRowClick"
>
<!-- <el-table-column type="selection" width="44px"></el-table-column> -->
<el-table-column prop="partCode" label="客户零件代码" width="150px" >
@ -652,20 +661,55 @@ export default {
BillType: 2,
//UserId: "00000000-0000-0000-0000-000000000000",
},
form:{
knr:"",
vehicleModelCode:"",
vin:"",
hostSN:"",
onlineTimeVale:"",
knrQuery:{
knr: undefined,
},
form:
{
leftdetails:[],
rightdetails:[],
},
saveform:{
m100Bill:
{
knr:undefined,
vehicleModelCode:undefined,
vin:undefined,
hostSN:undefined,
onlineTime:undefined,
billStatus:2,
billM100Parts:[],
},
erpAssemblyList:
[
// {
// erpAssemblyCode:undefined,
// erpAssemblyName:undefined,
// vehicleModel:undefined,
// //isCover: true,
// details: undefined,
// // {
// // partCode: undefined,
// // partNum: 1,
// // description: undefined,
// // isKey: false
// // }
// },
]
// #region
/*
*/
// #endregion
},
rightAlldetails:[],
page: 1,
//
showSearch: true,
bomUnit,
multipleSelection: [],
multipLeLeftSelection:[],
drawer: false,
dialogFormVisible: false,
formTitle: "",
@ -673,14 +717,16 @@ export default {
formLoading: false,
tableHeight: document.documentElement.clientHeight - 335,
detailTableHeight:250,
details:[], //
//details:[], //
PLList:[],//线
PLChildList:[],//线
vehicleModelQuery:{
dicTypeName:"派格车型",
},
vehicleModelList:[],//list
productTypeList:[{id:1,name:'门板'},{id:2,name:'柱护板'}]
productTypeList:[{id:1,name:'门板'},{id:2,name:'柱护板'}],
gettime:"",
KNRlist:null,
};
},
mounted() {
@ -694,6 +740,7 @@ export default {
});
},
created() {
//this.getKNRList();
this.getList();
this.getProductLine();
},
@ -750,7 +797,8 @@ export default {
//
handleDrawerOpen(param) {
this.drawer = true;
var parentId = param.id; //id
//console.log(param)
var parentId = param.assemblyID; //id
this.customerInfos = [
{
ParentId: parentId,
@ -760,17 +808,73 @@ export default {
handleDrawerClose(done) {
done();
},
getCurrentTime() {
//
var _this = this;
let yy = new Date().getFullYear();
let mm = new Date().getMonth()+1;
let dd = new Date().getDate();
let hh = new Date().getHours()<10 ? '0'+new Date().getHours() : new Date().getHours();;
let mf = new Date().getMinutes()<10 ? '0'+new Date().getMinutes() : new Date().getMinutes();
let ss = new Date().getSeconds()<10 ? '0'+new Date().getSeconds() : new Date().getSeconds();
_this.gettime = yy+'-'+mm+'-'+dd+' '+hh+':'+mf+':'+ss;
},
save() {
this.$refs.form.validate((valid) => {
if (valid) {
console.log("保存参数:" + JSON.stringify(this.form));
console.log(this.form);
this.saveform.m100Bill.hostSN = this.form.hostSN;
this.saveform.m100Bill.knr = this.form.knr;
this.saveform.m100Bill.vin = this.form.vin;
this.saveform.m100Bill.onlineTime = this.form.onlineTime;
this.saveform.m100Bill.vehicleModelCode = this.form.vehicleModelCode;
this.getCurrentTime();
this.saveform.m100Bill.description = "无";
this.saveform.m100Bill.receiveTime = this.gettime;
//rightdetailsrightAlldetails
this.form.rightdetails.forEach(element => {
var tlist = this.rightAlldetails.filter(u => u.erpAssemblyCode === element.erpAssemblyCode && u.partCode === element.partCode
&& u.partName === element.partName && u.partNum === element.partNum);
if(tlist.length === 0)
{
this.rightAlldetails.push(element);
}
});
//this.saveform.erpAssemblyList.details = {};
//console.log("");
//console.log(this.form.leftdetails);
//console.log("");
//console.log(this.form.rightdetails);
//console.log("");
//console.log(this.rightAlldetails);
/**左右关联拼接最终erpAssemblyList格式 */
this.form.leftdetails.forEach((element,i) => {
var templist = this.rightAlldetails.filter(u => u.erpAssemblyCode === element.erpAssemblyCode);
let obj = {};
obj.erpAssemblyCode = element.erpAssemblyCode;
obj.erpAssemblyName = element.erpAssemblyName;
obj.vehicleModel = element.vehicleModel;
obj.details = [];
templist.forEach(detail => {
if(detail.partCode !== "" && detail.partCode !== undefined)
{
obj.details.push(detail);
}
});
this.saveform.erpAssemblyList.push(obj);
});
//console.log(this.saveform);
console.log("保存参数:" + JSON.stringify(this.saveform));
this.formLoading = true;
if (this.isEdit) {
//
this.$axios
.puts("/api/newjit/new-m100" + this.form.id, this.form)
.puts("/api/newjit/new-m100/" + this.multipleSelection[0].id,this.saveform)
.then((response) => {
console.log(response);
this.formLoading = false;
this.$notify({
title: "成功",
@ -783,12 +887,28 @@ export default {
})
.catch(() => {
this.formLoading = false;
console.log("error");
this.saveform = {
m100Bill:
{
knr:undefined,
vehicleModelCode:undefined,
vin:undefined,
hostSN:undefined,
onlineTime:undefined,
billStatus:2,
billM100Parts:[],
},
erpAssemblyList:[],
};
this.dialogFormVisible = false;
this.getList();
});
} else {
//insert
console.log(JSON.stringify(this.form));
console.log(JSON.stringify(this.saveform));
this.$axios
.posts("/api/newjit/assembly-cfg-erp", this.form)
.posts("/api/newjit/new-m100", this.saveform)
.then((response) => {
this.formLoading = false;
this.$notify({
@ -802,6 +922,19 @@ export default {
})
.catch(() => {
this.formLoading = false;
this.saveform = {
m100Bill:
{
knr:undefined,
vehicleModelCode:undefined,
vin:undefined,
hostSN:undefined,
onlineTime:undefined,
billStatus:2,
billM100Parts:[],
},
erpAssemblyList:[],
};
});
}
}
@ -809,6 +942,7 @@ export default {
},
/** 新增 */
handleCreate() {
this.getKNRList();
if (this.$refs["form"] !== undefined) {
this.$nextTick(() => {
this.$refs["form"].resetFields();
@ -817,15 +951,44 @@ export default {
this.formTitle = "新增";
this.isEdit = false;
this.form = {};
this.details = [];
this.rightAlldetails = [];
this.saveform = {
m100Bill:
{
knr:undefined,
vehicleModelCode:undefined,
vin:undefined,
hostSN:undefined,
onlineTime:undefined,
billStatus:2,
billM100Parts:[],
},
erpAssemblyList:[],
};
//this.details = [];
this.getvehicleModel();
this.dialogFormVisible = true;
},
/** 修改 */
handleUpdate(row) {
this.getKNRList();
this.formTitle = "修改";
this.isEdit = true;
this.details = [];
this.rightAlldetails = [];
this.saveform = {
m100Bill:
{
knr:undefined,
vehicleModelCode:undefined,
vin:undefined,
hostSN:undefined,
onlineTime:undefined,
billStatus:2,
billM100Parts:[],
},
erpAssemblyList:[],
};
//this.details = [];
this.getvehicleModel();
if (this.multipleSelection.length != 1) {
this.$message({
@ -853,14 +1016,14 @@ export default {
// //
// },
// });
this.$confirm("是否删除" + this.multipleSelection[0].erpAssemblyCode + "?", "提示", {
this.$confirm("是否删除底盘号" + this.multipleSelection[0].vin + "的数据?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$axios
.deletes("/api/newjit/assembly-cfg-erp/", this.multipleSelection[0].id)
.deletes("/api/newjit/new-m100/"+ this.multipleSelection[0].id)
.then((response) => {
const index = this.list.indexOf(this.multipleSelection[0]);
this.$notify({
@ -884,9 +1047,22 @@ export default {
this.$axios
.gets("/api/newjit/new-m100/" + id)
.then((response) => {
//console.log(response);
this.form = response.item.m100Bill;
//this.details = response.item.details;
//console.log(this.details);
this.form.rightdetails = [];
this.form.leftdetails = response.item.erpAssemblyList;
response.item.erpAssemblyList.forEach((element,i) => {
element.details.forEach(item => {
item.erpAssemblyCode = element.erpAssemblyCode;
this.rightAlldetails.push(item);
if( i === 0 )
{
this.form.rightdetails.push(item);
}
});
//console.log(this.rightAlldetails);
//console.log(this.form.rightdetails);
});
});
},
/** 导出功能 */
@ -975,6 +1151,7 @@ export default {
}
},
/**左增加 */
handleAddLeftDetails() {
this.$forceUpdate();
if (this.form.leftdetails === undefined) {
@ -984,33 +1161,64 @@ export default {
let obj = {};
obj.erpAssemblyCode = "";
obj.erpAssemblyName = "";
obj.vehicleModel = this.form.vehicleModel;
obj.vehicleModel = this.form.vehicleModelCode;
console.log(this.form.leftdetails);
//console.log(this.form.leftdetails);
this.form.leftdetails.push(obj);
//console.log(688);
},
/**右增加 */
handleAddRightDetails() {
this.$forceUpdate();
if (this.form.rightdetails === undefined) {
this.form.rightdetails = [];
//console.log(679);
}
let obj = {};
obj.customerPartCode = "";
obj.customerpartName = "";
obj.partQty= "";
//
//console.log(this.multipLeLeftSelection);
if(this.multipLeLeftSelection.length !== 1)
{
this.$message({
message: "必须选择单行总成",
type: "warning",
});
return;
}
else
{
// if (this.form.rightdetails === undefined) {
// this.form.rightdetails = [];
// this.form.rightdetails.erpAssemblyCode = this.multipLeLeftSelection[0].erpAssemblyCode;
// //console.log(679);
// }
}
obj.erpAssemblyCode = this.multipLeLeftSelection[0].erpAssemblyCode;
obj.partCode = "";
obj.description = "";
obj.partNum= 1;
console.log(this.form.rightdetails);
//console.log(this.form.rightdetails);
this.form.rightdetails.push(obj);
//console.log(688);
},
handleLeftDeleteDetails(index){
/**左侧删除 */
handleLeftDeleteDetails(index,row){
this.form.leftdetails.splice(index, 1);
this.rightAlldetails = this. rightAlldetails.filter(u => u.erpAssemblyCode !== row.erpAssemblyCode);
//console.log(693);
},
handleRightDeleteDetails(index){
/**右侧删除 */
handleRightDeleteDetails(index,row){
this.form.rightdetails.splice(index, 1);
this.rightAlldetails.forEach((element,i) => {
if(element === row)
{
//console.log("");
this.rightAlldetails.splice(i, 1);
//console.log(this.rightAlldetails);
return;
}
});
// .filter(u => u.erpAssemblyCode !== row.erpAssemblyCode && u.partCode !== row.partCode
// && u.partName !== row.partName && u.partNum !== row.partNum);
//console.log(693);
},
@ -1034,15 +1242,11 @@ export default {
getList() {
this.listLoading = true;
this.listQuery.SkipCount = (this.page - 1) * 10;
console.log(1030)
if(this.listQuery.OnlineTimeValue!== undefined)
{
console.log(1033)
console.log(this.listQuery.OnlineTimeValue)
this.listQuery.OnlineTimeBegin = this.listQuery.OnlineTimeValue[0];
this.listQuery.OnlineTimeEnd = this.listQuery.OnlineTimeValue[1];
}
console.log(this.listQuery.OnlineTimeValue)
if(this.listQuery.ReceiveTimeValue!== undefined)
{
this.listQuery.ReceiveTimeBegin = this.listQuery.ReceiveTimeValue[0];
@ -1063,34 +1267,59 @@ export default {
});
},
getDetialList(partCode) {
this.listLoading = true;
console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId));
getKNRList() {
var lq = {};
var tlist = [];
this.$axios
.gets("/api/newjit/assembly-cfg-erp/" + this.customerInfo.parentId)
.gets("/api/newjit/bill-r100/list", lq)
.then((response) => {
console.log(partCode)
if(partCode !== "" && partCode !== undefined)
this.KNRlist = response.items;
console.log("获取R100的KNR信息");
console.log(this.KNRlist);
})
.catch(() => {
console.log("error");
});
},
getVModel()
{
this.form.vehicleModelCode = this.KNRlist.filter(u => u.knr === this.form.knr)[0].vehicleModelCode;
this.knrQuery.knr = this.form.knr;
this.form.rightdetails = [];
this.$axios
.gets("/api/newjit/new-m100/get-erp-assembly-list", this.knrQuery)
.then((response) => {
if(response.status === true)
{
//console.log(partCode)
this.list = response.item.details.filter(u => u.partCode === partCode);
this.KNREClist = response.item;
//console.log("KNR");
//console.log(this.KNREClist);
this.form.leftdetails = response.item;
this.$forceUpdate();
response.item.forEach((element,i) => {
element.details.forEach(detail => {
detail.erpAssemblyCode = element.erpAssemblyCode;
this.rightAlldetails.push(detail);
if( i === 0 )
{
this.form.rightdetails.push(detail);
}
});
});
}
else
{
this.list = response.item.details;
console.log("接口返回结果为错误");
}
//alert(JSON.stringify(response.Items))
//this.totalCount = response.totalCount;
setTimeout(() => {
//
this.listLoading = false;
}, 500);
})
.catch(() => {
this.listLoading = false;
console.log("error");
});
},
vMchange()
{
this.$forceUpdate();
},
valueselectChange(){},
handleImportSAP(){},
@ -1111,6 +1340,15 @@ export default {
},
handleSelectionChange(val) {
this.multipleSelection = val;
//console.log(this.multipleSelection);
},
handleLeftSelectionChange(val)
{
// console.log("");
// console.log(val);
// this.multipLeLeftSelection = [];
// this.multipLeLeftSelection.push(val);
// console.log(this.multipLeLeftSelection);
},
/** 通过回调控制style */
cellStyle({ row, column, rowIndex, columnIndex }) {
@ -1128,10 +1366,53 @@ export default {
return { textAlign: "left", background: "#FAFAFA" };
}
},
/**主表点击*/
handleRowClick(row, column, event) {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleRowSelection(row);
},
/**左点击*/
handleLeftRowClick(row, column, event) {
this.$forceUpdate();
//console.log("");
this.$refs.LeftDetialTable.clearSelection();
this.$refs.LeftDetialTable.toggleRowSelection(row);
this.multipLeLeftSelection = [];
this.multipLeLeftSelection.push(row);
if(this.form.rightdetails === undefined)
{
this.form.rightdetails = []
}
if(this.form.rightdetails.length > 0)
{
var templist = this.rightAlldetails.filter(u => u.erpAssemblyCode === this.form.rightdetails[0].erpAssemblyCode);
this.form.rightdetails.forEach(element => {
var temp = templist.filter(u => u.erpAssemblyCode === element.erpAssemblyCode && u.partCode === element.partCode
&& u.partName === element.partName && u.partNum === element.partNum);
if(temp.length >= 1)
{
//console.log("");
//console.log(templist);
//console.log(element);
}
else
{
//console.log("");
//console.log(element);
this.rightAlldetails.push(element);
}
});
}
else
{
var templist = [];
}
//.log("");
//console.log(this.rightAlldetails);
this.form.rightdetails = this.rightAlldetails.filter(u => u.erpAssemblyCode === this.multipLeLeftSelection[0].erpAssemblyCode);
//console.log("");
//console.log(this.form.rightdetails);
},
//线
getProductLine()
{

285
vue/src/views/pg-fis/basedate/repeatR100/detail.vue

@ -0,0 +1,285 @@
<!--重复报文查询-明细数据-->
<template>
<div class="cr-body-content">
<!--表格渲染-->
<el-table
ref="multipleTable"
v-loading="listLoading"
element-loading-text="拼命加载中..."
element-loading-spinner="el-icon-loading"
class="cr-table"
:data="list"
:height="tableHeight"
:cell-style="cellStyle"
:header-cell-style="headerRowStyle"
size="small"
stripe
border
highlight-current-row
style="width: 100%"
@sort-change="sortChange"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
:row-key="getRowKeys"
:expand-row-keys="expands"
@expand-change="exChange"
>
<el-table-column prop="partCode" label="客户零件代码"></el-table-column>
<el-table-column prop="partNum" label="客户零件数量"></el-table-column>
<el-table-column prop="description" label="描述"></el-table-column>
</el-table>
<div class="table-footer">
<!-- 分页控件 style="margin-top: -25px;margin-bottom:-25px;float:right;"-->
<pagination
v-show="totalCount > 0"
:total="totalCount"
:page.sync="page"
:limit.sync="listQuery.MaxResultCount"
@pagination="getList"
/>
</div>
</div>
</template>
<script>
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
import permission from "@/directive/permission/index.js";
import CRMTableHead from "../../components/CRMTableHead";
import { downloadFile } from "@/utils/crmindex.js";
import Detail from "./detail";
export default {
name: "sendUnsettledDiffReport",
components: { Pagination, CRMTableHead, Detail },
directives: { permission },
filters: {
IsCustomerSignFilter(status) {
//
const statusMap = {
true: "是",
false: "否",
};
return statusMap[status];
},
},
props: {
customerInfos: {
type: Array,
default: () => {
return [];
},
},
},
data() {
return {
crmType: "stockFisDiffReport",
rules: {
//
erpMaterialCode: [
{ required: true, message: "必须输入!", trigger: "blur" },
],
},
expands: [], //id
getRowKeys: (row) => {
return row.id; //id
},
searchContent: "", //
customerInfo: {
parentId: "",
},
form: {
dicDetailID: "",
customerId: "",
projectId: "",
},
list: null,
totalCount: 0,
listLoading: true,
formLoading: false,
//
filterObj: {
type: Object,
default: () => {
return {};
},
},
listQuery: {
Filters: [
{
logic: 0,
column: "Enabled",
action: 0,
value: "true",
}, //
],
SkipCount: 0,
MaxResultCount: 15,
id: "",
},
page: 1,
dialogFormVisible: false,
multipleSelection: [],
formTitle: "",
drawer: false,
showExcelImport: false,
tableHeight: document.documentElement.clientHeight - 260,
isEdit: false,
};
},
mounted() {
var self = this;
window.onresize = function () {
var offsetHei = document.documentElement.clientHeight;
self.tableHeight = offsetHei - 190;
};
},
created() {
this.getList();
},
watch: {
customerInfos: {
handler(newVal) {
if (newVal == "" || newVal == "undefined") {
//TODO
} else {
newVal.forEach((element) => {
this.customerInfo.parentId = element.ParentId;
});
if (this.customerInfo.parentId != "") {
this.getList();
}
}
},
immediate: true,
},
},
computed: {
/** 列表字段 */
getDefaultField() {
var tempsTabs = [];
tempsTabs.push({
label: "总成名称",
prop: "erpAssemblyName",
width: 160,
});
// tempsTabs.push({
// label: "",
// prop: "erpAssemblyName",
// width: 160,
// });
return tempsTabs;
},
},
methods: {
exChange(row, rowList) {
this.loading = true;
var that = this;
if (rowList.length) {
that.expands = [];
if (row) {
that.expands.push(row.id); // id
}
} else {
that.expands = [];
}
},
/** 刷新列表 */
handleHandle(data) {
if (data.type !== "edit") {
this.getList();
}
},
/** 格式化字段 */
fieldFormatter(row, column) {
return row[column.property] || "--";
},
importExcelData() {
//
this.showExcelImport = false;
this.getList();
},
getList() {
this.listLoading = true;
console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId));
this.$axios
.gets("/api/newjit/repeat-m100/" + this.customerInfo.parentId)
.then((response) => {
this.list = response.item.m100RepeatParts;
setTimeout(() => {
//
this.listLoading = false;
}, 500);
})
.catch(() => {
this.listLoading = false;
});
},
/** 筛选操作 */
handleFilter() {
this.page = 1;
this.getList();
this.listQuery.Filters = [];
if (this.searchContent != "") {
var column = "partCode";
let filter = {
logic: 0,
column: column,
action: 6,
value: this.searchContent,
};
this.listQuery.Filters.push(filter);
}
this.getList();
},
resetQuery() {},
sortChange(data) {
const { prop, order } = data;
if (!prop || !order) {
this.handleFilter();
return;
}
this.listQuery.Sorting = prop + " " + order;
this.handleFilter();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
/** 通过回调控制style */
cellStyle({ row, column, rowIndex, columnIndex }) {
if (
column.property === "fisQty" ||
column.property === "diffQty" ||
column.property === "stockQty"
) {
return { textAlign: "right" };
} else {
return { textAlign: "left" };
}
},
/** 通过回调控制表头style */
headerRowStyle({ row, column, rowIndex, columnIndex }) {
if (
column.property === "fisQty" ||
column.property === "diffQty" ||
column.property === "stockQty"
) {
return { textAlign: "right", background: "#FAFAFA" };
} else {
return { textAlign: "left", background: "#FAFAFA" };
}
},
handleRowClick(row, column, event) {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleRowSelection(row);
},
},
};
</script>
<style lang="scss" scoped>
@import "../../../pg-fis/styles/crmtable.scss";
</style>

567
vue/src/views/pg-fis/basedate/repeatR100/index.vue

@ -0,0 +1,567 @@
<!--重复报文信息页-->
<template>
<div class="cr-body-content">
<div ref="box">
<flexbox class="content-header">
<el-form
:model="listQuery"
ref="queryForm"
v-show="showSearch"
:inline="true"
>
<el-form-item label="起始顺序号" prop="HostSNBegin">
<el-input
v-model="listQuery.HostSNBegin"
placeholder="起始顺序号"
clearable
size="small"
style="width: 120px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="结束顺序号" prop="HostSNEnd">
<el-input
v-model="listQuery.HostSNEnd"
placeholder="结束顺序号"
clearable
size="small"
style="width: 120px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="KNR" prop="KNR">
<el-input
v-model="listQuery.KNR"
placeholder="请输入KNR号"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="底盘号" prop="VIN">
<el-input
v-model="listQuery.VIN"
placeholder="请输入底盘号"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="车型代码" prop="VehicleModelCode">
<el-input
v-model="listQuery.VehicleModelCode"
placeholder="请输入总成名称"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="版本" prop="Version">
<el-input
v-model="listQuery.Version"
placeholder="请输入总成名称"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="上线日期">
<el-date-picker
v-model="OnlineTimeVale"
size="small"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="接收日期">
<el-date-picker
v-model="ReceiveTimeVale"
size="small"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<!-- <el-form-item label="单据状态" prop="BillStatus">
<el-select
v-model="listQuery.BillStatus"
placeholder="请选择"
style="width: 200px"
>
<el-option label="未领取生产任务" :value="1"></el-option>
<el-option label="已领取生产任务" :value="2"></el-option>
<el-option label="完成生产任务" :value="3"></el-option>
</el-select>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleFilter"
>搜索</el-button
>
<el-button
icon="el-icon-refresh"
size="mini"
@click="resetQuery('queryForm')"
>重置</el-button
>
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
style="margin-left: 15px"
@click="handleDownload()"
>导出(Excel)查询信息
</el-button>
</el-form-item>
</el-form>
</flexbox>
</div>
<div class="l-table">
<!--表格渲染-->
<el-table
ref="multipleTable"
v-loading="listLoading"
element-loading-text="拼命加载中..."
element-loading-spinner="el-icon-loading"
class="cr-table"
:data="list"
:height="tableHeight"
:cell-style="cellStyle"
:header-cell-style="headerRowStyle"
size="small"
stripe
border
highlight-current-row
style="width: 100%"
@sort-change="sortChange"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<el-table-column
label="底盘号"
prop="vin "
sortable="custom"
align="center"
fixed
width="180px"
>
<template slot-scope="scope">
<span class="link-type" @click="handleDrawerOpen(scope.row)">{{
scope.row.vin
}}</span>
</template>
</el-table-column>
<el-table-column
v-for="(item, index) in getDefaultField"
:key="index"
:prop="item.prop"
:label="item.label"
:min-width="item.width"
:formatter="fieldFormatter"
sortable="custom"
show-overflow-tooltip
:gutter="0"
>
<template slot="header" slot-scope="scope">
{{ scope.column.label }}
</template>
</el-table-column>
</el-table>
</div>
<div class="table-footer">
<!-- 分页控件 style="margin-top: -25px;margin-bottom:-25px;float:right;"-->
<pagination
v-show="totalCount > 0"
:total="totalCount"
:page.sync="page"
:limit.sync="listQuery.MaxResultCount"
@pagination="getList"
/>
<!-- 导入Excel组件 -->
<importExcel
ref="importexcel"
:show="showExcelImport"
:crmType="crmType"
@close="importExcelData"
/>
</div>
<!-- 抽屉控件 -->
<el-drawer
title="信息详细页"
size="75%"
direction="rtl"
:visible.sync="drawer"
:before-close="handleDrawerClose"
>
<div>
<Detail
v-bind:customerInfos="customerInfos"
style="margin-top: -35px"
></Detail>
</div>
</el-drawer>
</div>
</template>
<script>
import Pagination from "@/components/Pagination";
import permission from "@/directive/permission/index.js";
import CRMTableHead from "../../components/CRMTableHead";
import importExcel from "@/components/ImportExcel-vw";
import Lockr from "lockr";
import moment from "moment";
import message_table from "../../components/mixins/message_table";
import Detail from "./detail.vue";
import { downloadFile } from "@/utils/crmindex.js";
//
const bomUnit = [
{ key: 0, display_name: "PC" },
{ key: 1, display_name: "TON" },
{ key: 2, display_name: "Other" },
];
const projectTypeKeyValue = bomUnit.reduce((acc, cur) => {
acc[cur.key] = cur.display_name;
return acc;
}, {});
export default {
name: "RepeatM100",
components: { Pagination, CRMTableHead, importExcel, Detail },
directives: { permission },
filters: {
IsCustomerSignFilter(status) {
//
const statusMap = {
true: "是",
false: "否",
};
return statusMap[status];
},
},
mixins: [message_table],
data() {
return {
crmType: "bomdatabase",
customerInfos: [],
OnlineTimeVale: [],
ReceiveTimeVale: [],
versionValue: "",
versionList: [], //
searchContent: "", //
showExcelImport: false,
form: {},
drawer: false,
list: null,
totalCount: 0,
listLoading: true,
customerInfo: {
bomId: "",
},
//
filterObj: {
type: Object,
default: () => {
return {};
},
},
listQuery: {
SkipCount: 0,
MaxResultCount: 15,
HostSNBegin: undefined,
HostSNEnd: undefined,
VIN: undefined,
OnlineTimeBegin: undefined,
OnlineTimeEnd: undefined,
ReceiveTimeBegin: undefined,
ReceiveTimeEnd: undefined,
VehicleModelCode: undefined,
Version: undefined,
KNR: undefined,
},
page: 1,
//
showSearch: true,
bomUnit,
multipleSelection: [],
drawer: false,
//tableHeight: document.documentElement.clientHeight - 260,
};
},
mounted() {
this.$nextTick(() => {
var offsetHei = document.documentElement.clientHeight;
//console.log(offsetHei);
let boxH = this.$refs.box.offsetHeight;
this.tableHeight = offsetHei - boxH - 57 - 79;//57footer79
});
},
created() {
this.getList();
},
computed: {
getDefaultField() {
var tempsTabs = [];
tempsTabs.push({ label: "流水号", prop: "serialNum", width: 100 });
tempsTabs.push({ label: "大众顺序号", prop: "hostSN", width: 120 });
tempsTabs.push({
label: "KNR",
prop: "knr",
width: 120,
});
// tempsTabs.push({
// label: "",
// prop: "vin",
// width: 130,
// });
tempsTabs.push({
label: "上线时间",
prop: "onlineTime",
width: 150,
});
tempsTabs.push({
label: "接收时间",
prop: "receiveTime",
width: 180,
});
tempsTabs.push({
label: "车型代码",
prop: "vehicleModelCode",
width: 120,
});
tempsTabs.push({
label: "版本",
prop: "version",
width: 150,
});
tempsTabs.push({ label: "单据状态", prop: "billStatus", width: 120 });
tempsTabs.push({
label: "车型名称",
prop: "vehicleModelName",
width: 120,
});
return tempsTabs;
},
},
methods: {
//
handleDrawerOpen(param) {
this.drawer = true;
var parentId = param.id; //id
this.customerInfos = [
{
ParentId: parentId,
},
];
},
handleDrawerClose(done) {
done();
},
/** 导出功能 */
handleDownload() {
this.listLoading = true;
// if (this.OnlineTimeVale != []) {
// this.listQuery.OnlineTimeBegin = this.OnlineTimeVale[0];
// this.listQuery.OnlineTimeEnd = this.OnlineTimeVale[1];
// }
// if (this.ReceiveTimeVale != []) {
// this.listQuery.ReceiveTimeBegin = this.ReceiveTimeVale[0];
// this.listQuery.ReceiveTimeEnd = this.ReceiveTimeVale[1];
// }
if (this.OnlineTimeVale != []) {
this.listQuery.OnlineTimeBegin = this.OnlineTimeVale
? this.OnlineTimeVale[0] || undefined
: undefined;
this.listQuery.OnlineTimeEnd = this.OnlineTimeVale
? this.OnlineTimeVale[1] || undefined
: undefined;
}
if (this.ReceiveTimeVale != []) {
this.listQuery.ReceiveTimeBegin = this.ReceiveTimeVale
? this.ReceiveTimeVale[0] || undefined
: undefined;
this.listQuery.ReceiveTimeEnd = this.ReceiveTimeVale
? this.ReceiveTimeVale[1] || undefined
: undefined;
}
console.log("重复报文导出条件:" + JSON.stringify(this.listQuery));
this.$axios
.posts("/api/newjit/repeat-m100/export", this.listQuery)
.then((res) => {
let filename = res.item;
this.$axios
.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename)
.then((response) => {
if (filename.indexOf("_") != -1) {
let downName =
filename.slice(0, filename.lastIndexOf("_")) +
filename.slice(filename.lastIndexOf("."));
downloadFile(response, downName);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
} else {
downloadFile(response, filename);
this.$notify({
title: "成功",
message: "数据-导出成功!",
type: "success",
duration: 2000,
});
}
this.listLoading = false;
})
.catch(() => {
this.listLoading = false;
});
});
},
/** 重置按钮操作 */
resetQuery(refName) {
this.OnlineTimeVale = [];
this.ReceiveTimeVale = [];
this.$refs[refName].resetFields();
this.handleQuery();
},
/** 搜索按钮操作 */
handleQuery() {
this.listQuery.SkipCount = 1;
this.getList();
},
selectValue(params) {
//
this.versionValue = params.value;
this.getList();
},
selectOptionsChange(item) {
this.getList();
},
importExcelData() {
//
this.showExcelImport = false;
//this.getList();
},
/** 刷新列表 */
handleHandle(data) {
if (data.type !== "edit") {
this.getList();
}
},
/** 格式化字段 */
fieldFormatter(row, column) {
if (column.property === "billStatus") {
return { 1: "未领取生产任务", 2: "已领取生产任务", 3: "完成生产任务" }[
row[column.property]
];
}
if (column.property == "onlineTime" || column.property == "receiveTime") {
var date = row[column.property];
if (date == undefined) {
return "";
}
return moment(date).format("YYYY-MM-DD HH:mm:ss");
}
return row[column.property] || "--";
},
roleFilter(type) {
return projectTypeKeyValue[type];
},
getList() {
this.listLoading = true;
this.listQuery.SkipCount = (this.page - 1) * 10;
if (this.OnlineTimeVale != []) {
this.listQuery.OnlineTimeBegin = this.OnlineTimeVale[0];
this.listQuery.OnlineTimeEnd = this.OnlineTimeVale[1];
}
if (this.ReceiveTimeVale != []) {
this.listQuery.ReceiveTimeBegin = this.ReceiveTimeVale[0];
this.listQuery.ReceiveTimeEnd = this.ReceiveTimeVale[1];
}
this.$axios
.gets("/api/newjit/repeat-m100/list", this.listQuery)
.then((response) => {
this.list = response.items;
this.totalCount = response.totalCount;
setTimeout(() => {
//
this.listLoading = false;
}, 500);
})
.catch(() => {
this.listLoading = false;
});
},
handleFilter() {
this.page = 1;
this.getList();
},
sortChange(data) {
const { prop, order } = data;
if (!prop || !order) {
this.handleFilter();
return;
}
this.listQuery.Sorting = prop + " " + order;
this.handleFilter();
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
/** 通过回调控制style */
cellStyle({ row, column, rowIndex, columnIndex }) {
if (column.property === "qty") {
return { textAlign: "right" };
} else {
return { textAlign: "left" };
}
},
/** 通过回调控制表头style */
headerRowStyle({ row, column, rowIndex, columnIndex }) {
if (column.property === "qty") {
return { textAlign: "right", background: "#FAFAFA" };
} else {
return { textAlign: "left", background: "#FAFAFA" };
}
},
handleRowClick(row, column, event) {
this.$refs.multipleTable.clearSelection();
this.$refs.multipleTable.toggleRowSelection(row);
},
},
};
</script>
<style lang="scss" scoped>
@import "../../../pg-fis/styles/crmtable.scss";
</style>
Loading…
Cancel
Save