You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
584 lines
24 KiB
584 lines
24 KiB
using EFCore.BulkExtensions;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Volo.Abp.Application.Dtos;
|
|
using Volo.Abp.Caching;
|
|
using Volo.Abp.Domain.Repositories;
|
|
using Volo.Abp.Uow;
|
|
using Win.Abp.Snowflakes;
|
|
using Win.Sfs.BaseData.ImportExcelCommon;
|
|
using Win.Sfs.SettleAccount.CommonManagers;
|
|
using Win.Sfs.SettleAccount.Constant;
|
|
using Win.Sfs.SettleAccount.Entities.TaskJobs;
|
|
using Win.Sfs.SettleAccount.Entities.Wms;
|
|
using Win.Sfs.SettleAccount.ExcelImporter;
|
|
using Win.Sfs.SettleAccount.ExportReports;
|
|
using Win.Sfs.SettleAccount.Repository;
|
|
using Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report;
|
|
using Win.Sfs.Shared.Filter;
|
|
using WY.NewJit.Extends.PaiGe.WMS;
|
|
|
|
namespace Win.Sfs.SettleAccount.Entities.WMS
|
|
{
|
|
[Route("api/settleaccount/wmsSharePart90output")]
|
|
//[Authorize(SettleAccountPermissions.WMSJIT.Default)]
|
|
public class WMSSharePart90AppService :
|
|
SettleAccountApplicationBase<WmsSharePart90OutPutDetial>
|
|
{
|
|
private readonly ISettleAccountBranchEfCoreRepository<WmsSharePart90OutPutDetial, Guid> _wmsRepository;
|
|
private readonly ISettleAccountBranchEfCoreRepository<WmsSharePart90OutPut, Guid> _wmsVersionRepository;
|
|
private readonly WMSEfCoreRepository<WmsSharePart90OutPutDetial> _wmsefRespository;
|
|
private readonly WmsDapperRepository _wmsDapper;
|
|
|
|
private readonly WMSEfCoreRepository<TB_BILL> _wmstbRespository;
|
|
private readonly ISettleAccountBranchEfCoreRepository<TaskJob, Guid> _job;
|
|
private readonly IExcelImportAppService _excelImportService;
|
|
|
|
private readonly TaskJobService _service;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="wmsRepository"></param>
|
|
/// <param name="job"></param>
|
|
/// <param name="wmsVersionRepository"></param>
|
|
/// <param name="wmsefRespository"></param>
|
|
/// <param name="wmstbRespository"></param>
|
|
/// <param name="excelImportService"></param>
|
|
/// <param name="cache"></param>
|
|
/// <param name="snowflakeIdGenerator"></param>
|
|
/// <param name="wmsDapper"></param>
|
|
/// <param name="commonManager"></param>
|
|
public WMSSharePart90AppService(
|
|
|
|
ISettleAccountBranchEfCoreRepository<WmsSharePart90OutPutDetial, Guid> wmsRepository,
|
|
ISettleAccountBranchEfCoreRepository<TaskJob, Guid> job,
|
|
ISettleAccountBranchEfCoreRepository<WmsSharePart90OutPut, Guid> wmsVersionRepository,
|
|
WMSEfCoreRepository<WmsSharePart90OutPutDetial> wmsefRespository,
|
|
WMSEfCoreRepository<TB_BILL> wmstbRespository,
|
|
IExcelImportAppService excelImportService,
|
|
IDistributedCache<WmsSharePart90OutPutDetial> cache,
|
|
ISnowflakeIdGenerator snowflakeIdGenerator,
|
|
WmsDapperRepository wmsDapper,
|
|
ICommonManager commonManager
|
|
) : base(cache, excelImportService, snowflakeIdGenerator, commonManager)
|
|
{
|
|
_excelImportService = excelImportService;
|
|
_job = job;
|
|
_wmstbRespository = wmstbRespository;
|
|
_wmsRepository = wmsRepository;
|
|
_wmsVersionRepository = wmsVersionRepository;
|
|
_wmsefRespository = wmsefRespository;
|
|
_wmsDapper = wmsDapper;
|
|
}
|
|
|
|
private async Task<long> GetCountAsync(WmsSharePartOutPutDetialRequestDto input)
|
|
{
|
|
input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "BillNum", Logic = EnumFilterLogic.And, Value = input.BillNum });
|
|
return await _wmsRepository.GetCountByFilterAsync(GuidGenerator.Create(), input.Filters);
|
|
}
|
|
|
|
private async Task<long> GetCountAsync(WmsSharePartOutPutRequestDto input)
|
|
{
|
|
return await _wmsVersionRepository.GetCountByFilterAsync(GuidGenerator.Create(), input.Filters);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 准时化出库主表
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("WmsSharePartList")]
|
|
//[Authorize(SettleAccountPermissions.SettleAccounts.Default)]
|
|
virtual public async Task<PagedResultDto<WmsSharePart90OutPut>> GetListAsync(WmsSharePartOutPutRequestDto input)
|
|
{
|
|
|
|
var entities = await _wmsVersionRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, input.MaxResultCount,
|
|
input.SkipCount, true);
|
|
|
|
var totalCount = await GetCountAsync(input);
|
|
|
|
|
|
return new PagedResultDto<WmsSharePart90OutPut>(totalCount, entities);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改出库数量
|
|
/// </summary>
|
|
/// <param name="files">上传的文件(前端已经限制只能上传一个附件)</param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("WmsSharePartOutPutModify")]
|
|
[DisableRequestSizeLimit]
|
|
|
|
public async Task<bool> WmsSharePartUpdate(WmsSharePart90OutPutDetial detial)
|
|
{
|
|
var _entityList = _wmsRepository.Where(p => p.Id == detial.BranchId).ToList();
|
|
if (_entityList.Count() > 0)
|
|
{
|
|
foreach (var itm in _entityList)
|
|
{
|
|
itm.OutPutQty = detial.OutPutQty;
|
|
await _wmsRepository.UpdateAsync(itm);
|
|
}
|
|
}
|
|
return true;
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 准时化出库明细
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("WmsSharePartDetailList")]
|
|
[UnitOfWork(false)]
|
|
//[Authorize(SettleAccountPermissions.SettleAccounts.Default)]
|
|
virtual public async Task<PagedResultDto<WmsSharePart90OutPutDetial>> GetListAsync(WmsSharePartOutPutDetialRequestDto input)
|
|
{
|
|
input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "BillNum", Logic = EnumFilterLogic.And, Value = input.BillNum });
|
|
var entities = await _wmsRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, input.MaxResultCount,
|
|
input.SkipCount, true);
|
|
|
|
var totalCount = await GetCountAsync(input);
|
|
|
|
|
|
var stockList = _wmsDapper.GetSalesStock();
|
|
var query = from itm in entities
|
|
join itm1 in stockList on itm.MaterialCode equals itm1.SapCode
|
|
into temp1
|
|
from tm1 in temp1.DefaultIfEmpty()
|
|
select new WmsSharePart90OutPutDetial(//少加个发货,由于零件有重复
|
|
itm.Id,
|
|
itm.WmsBillNum,
|
|
itm.OrderBillNum,
|
|
itm.MaterialCode,
|
|
itm.MaterialDesc,
|
|
itm.MaterialGroup,
|
|
itm.OutPut,
|
|
itm.InPut,
|
|
itm.State,
|
|
itm.Extend1,
|
|
itm.Extend2,
|
|
itm.Version,
|
|
itm.ParentMaterialCode,
|
|
itm.BillNum,
|
|
itm.TaskId,
|
|
itm.Remark,
|
|
itm.Qty,
|
|
tm1 == null ? 0 : tm1.Qty,
|
|
itm.OutPutQty != 0 ? itm.OutPutQty : itm.Qty,
|
|
itm.Price,
|
|
itm.Amt
|
|
);
|
|
|
|
|
|
|
|
return new PagedResultDto<WmsSharePart90OutPutDetial>(totalCount, entities);
|
|
}
|
|
/// <summary>
|
|
/// 任务明细标记已确认
|
|
/// </summary>
|
|
/// <param name="files">上传的文件(前端已经限制只能上传一个附件)</param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("WmsSharePartOutPutAudit")]
|
|
[DisableRequestSizeLimit]
|
|
|
|
public async Task<bool> WmsSharePartAudit(List<Guid> ids)
|
|
{
|
|
var _joblist = await _job.Where(p => ids.Contains(p.Id)).ToListAsync();
|
|
foreach (var itm in _joblist)
|
|
{
|
|
itm.FileName = "已确认";
|
|
await _job.UpdateAsync(itm);
|
|
}
|
|
return false;
|
|
}
|
|
/// <summary>
|
|
/// 选择任务,生成出库单,只包含已确认的单据
|
|
/// </summary>
|
|
/// <param name="ids"></param>
|
|
/// <param name="version"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("WmsSharePartOutPut")]
|
|
public async Task<string> WmsSharePartOutPut(WmsJitRequestDto input)
|
|
{
|
|
var _billNum = "B" + DateTime.Now.ToString("yyyyMMddhhmmss");
|
|
var _joblist = _job.Where(p => input.Guids.Contains(p.Id) && p.FileName == "已确认").ToList();
|
|
if (_joblist.Count() > 0)
|
|
{
|
|
var fileList = _joblist.Select(p => p.RealDownFileName).ToList();
|
|
List<WmsSharePart90OutPutDetial> _lst = new List<WmsSharePart90OutPutDetial>();
|
|
foreach (var filename in fileList)
|
|
{
|
|
string fileSavePath = Environment.CurrentDirectory + @"\wwwroot\files\host\my-file-container\" + filename;
|
|
ExcelHelper _excelHelper = new ExcelHelper(fileSavePath);
|
|
var _list = _excelHelper.ExcelToList<WmsSharePart90OutPutDetial>();
|
|
if (_list.Count() > 0)
|
|
{
|
|
var _lsAry = _list.Select(p => new
|
|
WmsSharePart90OutPutDetial(
|
|
GuidGenerator.Create(),
|
|
p.WmsBillNum,
|
|
p.OrderBillNum,
|
|
p.MaterialCode,
|
|
p.MaterialDesc,
|
|
p.MaterialGroup,
|
|
string.Empty,
|
|
string.Empty,
|
|
0,
|
|
!string.IsNullOrEmpty(p.Extend1) ? p.Extend1 : string.Empty,
|
|
string.Empty,
|
|
p.Version,
|
|
p.MaterialCode,
|
|
_billNum,
|
|
GuidGenerator.Create(),
|
|
string.Empty,
|
|
p.Qty,
|
|
p.StockQty,
|
|
p.Qty,
|
|
p.Price,
|
|
p.Amt
|
|
));
|
|
_lst.AddRange(_list.ToArray());
|
|
}
|
|
}
|
|
|
|
var outPutDetail = await _wmsRepository.Where(p => p.Version == input.Version).ToListAsync();
|
|
|
|
var error = from itm1 in outPutDetail
|
|
join itm2 in _lst on
|
|
new { itm1.MaterialCode, itm1.OrderBillNum, itm1.WmsBillNum }
|
|
equals
|
|
new { itm2.MaterialCode, itm2.OrderBillNum, itm2.WmsBillNum }
|
|
select itm1;
|
|
|
|
var errList = error.GroupBy(p => new { p.BillNum }).Select(p => new { BillNum = p.Key.BillNum, Number = p.Sum(itm => itm.Qty) });
|
|
if (errList.Count() == 0)
|
|
{
|
|
var query = from itm1 in _lst
|
|
join itm2 in outPutDetail on
|
|
new { itm1.MaterialCode, itm1.OrderBillNum, itm1.WmsBillNum }
|
|
equals
|
|
new { itm2.MaterialCode, itm2.OrderBillNum, itm2.WmsBillNum } into temp1
|
|
from tm1 in temp1.DefaultIfEmpty()
|
|
where tm1 == null
|
|
select itm1;
|
|
var _wmslst = query.ToList();
|
|
_wmslst = _wmslst.Select(p => new
|
|
WmsSharePart90OutPutDetial(
|
|
GuidGenerator.Create(),
|
|
p.WmsBillNum,
|
|
p.OrderBillNum,
|
|
p.MaterialCode,
|
|
p.MaterialDesc,
|
|
p.MaterialGroup,
|
|
string.Empty,
|
|
string.Empty,
|
|
0,
|
|
string.Empty,
|
|
string.Empty,
|
|
input.Version,
|
|
p.MaterialCode,
|
|
_billNum,
|
|
GuidGenerator.Create(),
|
|
string.Empty,
|
|
p.Qty,
|
|
p.StockQty,
|
|
p.Qty,
|
|
p.Price,
|
|
p.Amt
|
|
)).ToList();
|
|
await _wmsRepository.GetDbContext().BulkInsertAsync(_wmslst, new BulkConfig() { BulkCopyTimeout = 0, BatchSize = 10000 });
|
|
int _count = _wmsVersionRepository.Count(p => p.Version == input.Version && p.BillNum == _billNum);
|
|
if (_wmslst.Count() > 0 && _count == 0)
|
|
{
|
|
var _version = new WmsSharePart90OutPut(GuidGenerator.Create(), input.Version, _billNum, CurrentUser.Email);
|
|
await _wmsVersionRepository.InsertAsync(_version, true);
|
|
}
|
|
foreach (var job in _joblist)
|
|
{
|
|
job.FileName = _billNum;
|
|
await _job.UpdateAsync(job);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
StringBuilder _buffer = new StringBuilder();
|
|
foreach (var itm in errList)
|
|
{
|
|
_buffer.AppendFormat("出库单号:{0}重复记录数:{1}条", itm.BillNum, itm.Number);
|
|
}
|
|
var _errinfo = _buffer.ToString();
|
|
|
|
foreach (var job in _joblist)
|
|
{
|
|
job.FileName = _errinfo;
|
|
await _job.UpdateAsync(job);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
_billNum = string.Empty;
|
|
}
|
|
return ApplicationConsts.SuccessStr;
|
|
}
|
|
/// <summary>
|
|
/// 出库界面功能,核准出库功能
|
|
/// </summary>
|
|
/// <param name="version"></param>
|
|
/// <param name="p_list"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("WmsSharePartOutPut-Pass")]
|
|
[UnitOfWork(false)]
|
|
public async Task<bool> WmsSharePartOutPutPass(WmsJitRequestDto input)
|
|
{
|
|
if (input.Guids != null)
|
|
{
|
|
List<WmsSharePart90OutPutDetial> _ls = new List<WmsSharePart90OutPutDetial>();
|
|
if (input.Guids.Count() > 0)
|
|
{
|
|
_ls = await _wmsRepository.Where(p => input.Guids.Contains(p.Id) && p.Version == input.Version && p.BillNum == input.BillNum && p.State != 2).ToListAsync();
|
|
}
|
|
else
|
|
{
|
|
_ls = await _wmsRepository.Where(p => p.Version == input.Version && p.BillNum == input.BillNum && p.State != 2).ToListAsync();
|
|
}
|
|
if (_ls.Count() > 0)
|
|
{
|
|
var sql = "DECLARE @return_value int\n" +
|
|
"EXEC @return_value = [dbo].[p_wms_output]\n" +
|
|
" @billnum = N'{0}',\n" +
|
|
" @type = 10,\n" +
|
|
" @date = N'{1}'\n" +
|
|
"SELECT 'Return Value' = @return_value";
|
|
await _wmsRepository.GetDbContext().Database.ExecuteSqlRawAsync(
|
|
string.Format(sql, input.BillNum, input.AccountDate.ToShortDateString()));
|
|
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
/// <summary>
|
|
///出库界面功能, 撤销核准出库
|
|
/// </summary>
|
|
/// <param name="ids"></param>
|
|
/// <param name="version"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("WmsSharePartOutPut-Cancel")]
|
|
public async Task<bool> WmsSharePartOutPutCancel(WmsJitRequestDto input)
|
|
{
|
|
if (input.Guids != null && input.Guids.Count() > 0)
|
|
{
|
|
List<string> _ls = new List<string>();
|
|
foreach (var itm in input.Guids)
|
|
{
|
|
_ls.Add(string.Format("{0}", itm));
|
|
}
|
|
|
|
string str = string.Join(",", _ls.ToArray());
|
|
|
|
var sql = "DECLARE @return_value int\n" +
|
|
"EXEC @return_value = [dbo].[p_wms_output_cancel]\n" +
|
|
" @Guids ='{0}', \n" +
|
|
" @billnum = N'{1}',\n" +
|
|
" @type = 10,\n" +
|
|
" @accountdate = N'{2}'\n" +
|
|
"SELECT 'Return Value' = @return_value";
|
|
|
|
sql = string.Format(sql, str, input.BillNum, input.AccountDate.ToShortDateString());
|
|
|
|
await _wmsRepository.GetDbContext().Database.ExecuteSqlRawAsync(
|
|
sql
|
|
);
|
|
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 出库界面功能删除
|
|
/// </summary>
|
|
/// <param name="version"></param>
|
|
/// <param name="p_list"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("WmsOutPutDelete")]
|
|
[UnitOfWork(false)]
|
|
public async Task<bool> WmsOutPutDelete(WmsJitRequestDto input)
|
|
{
|
|
var count = _wmsRepository.Count(p => p.BillNum == input.BillNum && p.State != 0);
|
|
|
|
if (count > 0)
|
|
{
|
|
return false;
|
|
}
|
|
var sql = "DECLARE @return_value int\n" +
|
|
"EXEC @return_value = [dbo].[p_wms_output_cancel_all]\n" +
|
|
" @billnum = N'{0}',\n" +
|
|
" @type = 10\n" +
|
|
"SELECT 'Return Value' = @return_value";
|
|
await _wmsRepository.GetDbContext().Database.ExecuteSqlRawAsync(
|
|
string.Format(sql, input.BillNum)
|
|
);
|
|
|
|
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
[Route("ExcelImport")]
|
|
[DisableRequestSizeLimit]
|
|
//[Authorize(SettleAccountPermissions.SettleAccounts.Default)]
|
|
public async Task<string> ExcelImport([FromForm] IFormFileCollection files, string version)
|
|
{
|
|
var _billNum = "B" + DateTime.Now.ToString("yyyyMMddhhmmss");
|
|
ExportImporter _exportImporter = new ExportImporter();
|
|
var result = await _exportImporter.ExtendExcelImport<WmsSharePart90OutPutDetial>(files, _excelImportService);
|
|
List<WmsSharePart90OutPutDetial> _lst = new List<WmsSharePart90OutPutDetial>();
|
|
|
|
var _lsCopy = new List<WmsSharePart90OutPutDetial>();
|
|
foreach (var itm in result)
|
|
{
|
|
WmsSharePart90OutPutDetial _detail = new WmsSharePart90OutPutDetial(
|
|
GuidGenerator.Create(),
|
|
//itm.WmsBillNum,
|
|
string.Empty,
|
|
itm.OrderBillNum,
|
|
|
|
itm.MaterialCode,
|
|
itm.MaterialDesc,
|
|
itm.MaterialGroup,
|
|
string.Empty,
|
|
string.Empty,
|
|
0,
|
|
string.Empty,
|
|
string.Empty,
|
|
version,
|
|
itm.ParentMaterialCode,
|
|
itm.BillNum,
|
|
GuidGenerator.Create()
|
|
, string.Empty
|
|
, itm.Qty
|
|
, 0
|
|
, itm.Qty,
|
|
itm.Price,
|
|
itm.Amt
|
|
);
|
|
_lsCopy.Add(_detail);
|
|
}
|
|
_lst.AddRange(_lsCopy.ToArray());
|
|
|
|
var outPutDetail = await _wmsRepository.Where(p => p.Version == version).ToListAsync();
|
|
|
|
var error = from itm1 in outPutDetail
|
|
join itm2 in _lst on
|
|
new { itm1.MaterialCode }
|
|
equals
|
|
new { itm2.MaterialCode }
|
|
select itm1;
|
|
var errList = error.GroupBy(p => new { p.BillNum }).Select(p => new { BillNum = p.Key.BillNum, Number = p.Sum(itm => itm.Qty) });
|
|
|
|
var checkList = new List<ErrorExportDto>();
|
|
foreach (var itm in errList)
|
|
{
|
|
checkList.Add(new ErrorExportDto() { Message = string.Format("出库单号:{0}重复记录数:{1}条", itm.BillNum, itm.Number) });
|
|
}
|
|
if (checkList.Count > 0)
|
|
{
|
|
|
|
return await ExportErrorReportAsync(checkList);
|
|
}
|
|
|
|
var query = from itm1 in _lst
|
|
join itm2 in outPutDetail on
|
|
new { itm1.MaterialCode }
|
|
equals
|
|
new { itm2.MaterialCode } into temp1
|
|
from tm1 in temp1.DefaultIfEmpty()
|
|
where tm1 == null
|
|
select itm1;
|
|
var _wmslst = query.ToList();
|
|
foreach (var itm in _wmslst)
|
|
{
|
|
itm.BillNum = _billNum;
|
|
}
|
|
await _wmsRepository.GetDbContext().BulkInsertAsync(_wmslst, new BulkConfig() { BulkCopyTimeout = 0, BatchSize = 10000 });
|
|
int _count = _wmsVersionRepository.Count(p => p.Version == version && p.BillNum == _billNum);
|
|
if (_count == 0 && _wmslst.Count() > 0)
|
|
{
|
|
var _version = new WmsSharePart90OutPut(GuidGenerator.Create(), version, _billNum, CurrentUser.Email);
|
|
await _wmsVersionRepository.InsertAsync(_version, true);
|
|
}
|
|
return ApplicationConsts.SuccessStr;
|
|
}
|
|
|
|
private async Task<bool> CheckIsOutPut(List<WmsSharePart90OutPutDetial> p_list)
|
|
{
|
|
if (p_list.Count() > 0)
|
|
{
|
|
var entity= p_list.FirstOrDefault();
|
|
var day = entity.OrderBillNum.Right(3);
|
|
int _count = 0;
|
|
if (day == "D60")
|
|
{
|
|
_count= _wmsRepository.Count(p => p.Version == entity.Version && p.OrderBillNum.Contains("D30") && p.State!=2);
|
|
}
|
|
if (day == "D90")
|
|
{
|
|
_count = _wmsRepository.Count(p => p.Version == entity.Version && p.State != 2 && (p.OrderBillNum.Contains("D60") || p.OrderBillNum.Contains("D30")));
|
|
}
|
|
if (_count > 0)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
///单据列表
|
|
/// </summary>
|
|
/// <param name="version"></param>
|
|
/// <param name="p_list"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("GetBillList")]
|
|
[UnitOfWork(false)]
|
|
|
|
|
|
public async Task<List<string>> GetBillList(string version)
|
|
{
|
|
var _query=_wmsRepository.Where(p => p.Version == version
|
|
&& (p.OrderBillNum.Contains("D60")
|
|
|| p.OrderBillNum.Contains("D30")
|
|
|| p.OrderBillNum.Contains("D90"))).Select(p=>p.OrderBillNum).Distinct();
|
|
return _query.ToList();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|