Browse Source

发运接口

master
me 2 weeks ago
parent
commit
04be04f1bd
  1. 215
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/MenBanPackingRecService.cs
  2. 7
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml
  3. 6
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain.Shared/Extends/PaiGe/PrintTypeEnum.cs

215
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/MenBanPackingRecService.cs

@ -1,10 +1,4 @@
using System; using EFCore.BulkExtensions;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using EFCore.BulkExtensions;
using Magicodes.ExporterAndImporter.Core; using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Csv; using Magicodes.ExporterAndImporter.Csv;
using Magicodes.ExporterAndImporter.Excel; using Magicodes.ExporterAndImporter.Excel;
@ -13,7 +7,14 @@ using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Caching.Distributed; using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.Logging;
using Shouldly; using Shouldly;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
@ -55,22 +56,46 @@ namespace Win.Sfs.SettleAccount.FISes
private readonly IRepository<FisTB_BILL_SCRAP> _tbBillScrapRepository; private readonly IRepository<FisTB_BILL_SCRAP> _tbBillScrapRepository;
/// <summary>
/// 日志
/// </summary>
private ILogger<BillM100AppService> _logger;
private readonly IRepository<DicItem> _dicItemRepository;
private readonly IRepository<PartCfg> _partCfgRepository;
private string _errorMessagePrefix
{
get
{
return System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + ".";
}
}
/// <summary> /// <summary>
/// 门板装箱单仓储明细 /// 门板装箱单仓储明细
/// </summary> /// </summary>
public MenBanPackingRecService( public MenBanPackingRecService(
NewJitEfCoreRepository1<MenBanPackingList,Guid> menBanPackingListRepository, NewJitEfCoreRepository1<MenBanPackingList, Guid> menBanPackingListRepository,
IRepository<BillM100, Guid> billM100Repository, IRepository<BillM100, Guid> billM100Repository,
WMSDapperRepository wmsRepository, WMSDapperRepository wmsRepository,
LineSNDomianService lineSNDomianServic, LineSNDomianService lineSNDomianServic,
IRepository<FisTB_BILL_SCRAP> tbBillScrapRepository IRepository<FisTB_BILL_SCRAP> tbBillScrapRepository,
) ILogger<BillM100AppService> logger,
IRepository<DicItem> dicItemRepository,
IRepository<PartCfg> partCfgRepository)
{ {
_menBanPackingListRepository = menBanPackingListRepository; _menBanPackingListRepository = menBanPackingListRepository;
_billM100Repository = billM100Repository; _billM100Repository = billM100Repository;
_wmsRepository = wmsRepository; _wmsRepository = wmsRepository;
_lineSNDomianServic = lineSNDomianServic; _lineSNDomianServic = lineSNDomianServic;
_tbBillScrapRepository = tbBillScrapRepository; _tbBillScrapRepository = tbBillScrapRepository;
_logger = logger;
_dicItemRepository = dicItemRepository;
_partCfgRepository = partCfgRepository;
} }
private void DelOrScrapWMSInterface(string billNum, bool isSynchronousMode = false) private void DelOrScrapWMSInterface(string billNum, bool isSynchronousMode = false)
@ -354,6 +379,176 @@ namespace Win.Sfs.SettleAccount.FISes
return wmsLst.Select(p => p.BillNum).ToList(); return wmsLst.Select(p => p.BillNum).ToList();
} }
#region 格拉默
[HttpGet]
[Route("get-packinglist-by-billnum")]
public async Task<List<MenBanPackingListDto>> GetPackingListByBillNum(string billNum)
{
_logger.LogDebug(_errorMessagePrefix + "GetPackingListByBillNum 进入");
try
{
List<DicItem> dicItemLst = await _dicItemRepository.GetListAsync(itm => itm.DicTypeCode == "零件大类");
List<PartCfg> partCfgLst = await _partCfgRepository.GetListAsync();
List<MenBanPackingList> reportMainLst = new List<MenBanPackingList>();
reportMainLst = await _menBanPackingListRepository.GetListAsync(itm => itm.BillNum == billNum, true);
//按大众顺序号排序
foreach (var reportMainObj in reportMainLst)
{
List<MenBanPackingRec> recLst = reportMainObj.Details;
if (recLst == null)
continue;
bool has1999 = recLst.Any(itm => itm.HostSN.Contains("1999") || itm.HostSN.Contains("1998") || itm.HostSN.Contains("1997")
|| itm.HostSN.Contains("1996") || itm.HostSN.Contains("1995") || itm.HostSN.Contains("1994")
|| itm.HostSN.Contains("1993") || itm.HostSN.Contains("1992") || itm.HostSN.Contains("1991")
|| itm.HostSN.Contains("1990") || itm.HostSN.Contains("1989") || itm.HostSN.Contains("1988")
|| itm.HostSN.Contains("1987") || itm.HostSN.Contains("1986") || itm.HostSN.Contains("1985")
|| itm.HostSN.Contains("1984") || itm.HostSN.Contains("1983") || itm.HostSN.Contains("1982")
|| itm.HostSN.Contains("1981") || itm.HostSN.Contains("1980") || itm.HostSN.Contains("1979")
|| itm.HostSN.Contains("1978") || itm.HostSN.Contains("1977") || itm.HostSN.Contains("1976")
);
bool has0001 = recLst.Any(itm => itm.HostSN.Contains("0001") || itm.HostSN.Contains("0002") || itm.HostSN.Contains("0003")
|| itm.HostSN.Contains("0004") || itm.HostSN.Contains("0005") || itm.HostSN.Contains("0006")
|| itm.HostSN.Contains("0007") || itm.HostSN.Contains("0008") || itm.HostSN.Contains("0009")
|| itm.HostSN.Contains("0010") || itm.HostSN.Contains("0011") || itm.HostSN.Contains("0012")
|| itm.HostSN.Contains("0013") || itm.HostSN.Contains("0014") || itm.HostSN.Contains("0015")
|| itm.HostSN.Contains("0016") || itm.HostSN.Contains("0017") || itm.HostSN.Contains("0018")
|| itm.HostSN.Contains("0019") || itm.HostSN.Contains("0020") || itm.HostSN.Contains("0021")
|| itm.HostSN.Contains("0022") || itm.HostSN.Contains("0023") || itm.HostSN.Contains("0024")
);
if (has1999 && has0001)
{
reportMainObj.Details = recLst.OrderBy(itm => (itm.HostSN.TryToIntZero() % 10000) < 240 ? (itm.HostSN.TryToIntZero() % 10000 + 1999) : (itm.HostSN.TryToIntZero() % 10000)).ToList();
}
else
{
reportMainObj.Details = recLst.OrderBy(itm => itm.HostSN).ToList();
}
}
#region 格式转换
//实体 转 DTO
List<MenBanPackingListDto> targetLst = ObjectMapper.Map<List<MenBanPackingList>, List<MenBanPackingListDto>>(reportMainLst);
targetLst = targetLst.OrderBy(itm => itm.BillNum).ToList();
#region 扫描依据的列表, C8返回的客户零件号,其它车型返回厂内零件号
foreach (var targetObj in targetLst)
{
foreach (var detailObj in targetObj.Details)
{
//第一个零件
if (detailObj.PartCode1.HasValue() && detailObj.PartCode1.Length >= 9)
{
var dicItemObj = dicItemLst.FirstOrDefault(itm => itm.DicItemSort3 == targetObj.VehicleModel && itm.DicItemCode == detailObj.PartCode1.Substring(6, 3));
var partCfgObj = partCfgLst.FirstOrDefault(itm => itm.PartCode == detailObj.PartCode1);
if (dicItemObj.DicItemSort5 == "客户零件")
{
if (partCfgObj != null)
{
detailObj.PartCode1 = partCfgObj.PartCode;
}
}
else if (dicItemObj.DicItemSort5 == "厂内零件")
{
if (partCfgObj != null)
{
detailObj.PartCode1 = partCfgObj.RelationKey;
}
}
}
//第二个零件
if (detailObj.PartCode2.HasValue() && detailObj.PartCode2.Length >= 9)
{
var dicItemObj = dicItemLst.FirstOrDefault(itm => itm.DicItemSort3 == targetObj.VehicleModel && itm.DicItemCode == detailObj.PartCode2.Substring(6, 3));
var partCfgObj = partCfgLst.FirstOrDefault(itm => itm.PartCode == detailObj.PartCode2);
if (dicItemObj.DicItemSort5 == "客户零件")
{
if (partCfgObj != null)
{
detailObj.PartCode2 = partCfgObj.PartCode;
}
}
else if (dicItemObj.DicItemSort5 == "厂内零件")
{
if (partCfgObj != null)
{
detailObj.PartCode2 = partCfgObj.RelationKey;
}
}
}
//第三个零件
if (detailObj.PartCode3.HasValue() && detailObj.PartCode3.Length >= 9)
{
var dicItemObj = dicItemLst.FirstOrDefault(itm => itm.DicItemSort3 == targetObj.VehicleModel && itm.DicItemCode == detailObj.PartCode3.Substring(6, 3));
var partCfgObj = partCfgLst.FirstOrDefault(itm => itm.PartCode == detailObj.PartCode3);
if (dicItemObj.DicItemSort5 == "客户零件")
{
if (partCfgObj != null)
{
detailObj.PartCode3 = partCfgObj.PartCode;
}
}
else if (dicItemObj.DicItemSort5 == "厂内零件")
{
if (partCfgObj != null)
{
detailObj.PartCode3 = partCfgObj.RelationKey;
}
}
}
//第四个零件
if (detailObj.PartCode4.HasValue() && detailObj.PartCode4.Length >= 9)
{
var dicItemObj = dicItemLst.FirstOrDefault(itm => itm.DicItemSort3 == targetObj.VehicleModel && itm.DicItemCode == detailObj.PartCode4.Substring(6, 3));
var partCfgObj = partCfgLst.FirstOrDefault(itm => itm.PartCode == detailObj.PartCode4);
if (dicItemObj.DicItemSort5 == "客户零件")
{
if (partCfgObj != null)
{
detailObj.PartCode4 = partCfgObj.PartCode;
}
}
else if (dicItemObj.DicItemSort5 == "厂内零件")
{
if (partCfgObj != null)
{
detailObj.PartCode4 = partCfgObj.RelationKey;
}
}
}
}
}
#endregion
#endregion
return targetLst;
}
catch (Exception ex)
{
string errorMsg = _errorMessagePrefix + "GetPackingListByBillNum 执行出错:" + ex.Message;
_logger.LogError(errorMsg);
throw new UserFriendlyException(errorMsg);
}
}
[HttpPost]
[Route("update-scan-status")]
public virtual async Task<bool> UpdateScanStatus(string billNum)
{
var lst = await _menBanPackingListRepository.GetListAsync(itm => itm.BillNum == billNum);
foreach (var item in lst)
{
item.ReportStatus = ReportStatusEnum.;
var succ = await _menBanPackingListRepository.UpdateAsync(item);
}
return true;
}
#endregion
} }
} }

7
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml

@ -1736,7 +1736,12 @@
区域相关应用服务 区域相关应用服务
</summary> </summary>
</member> </member>
<member name="M:Win.Sfs.SettleAccount.FISes.MenBanPackingRecService.#ctor(Win.Sfs.SettleAccount.Repository.NewJitEfCoreRepository1{WY.NewJit.Extends.MenBanPackingList,System.Guid},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgCheck.BillM100,System.Guid},WY.NewJit.EntityFrameworkCore.WMSDapperRepository,WY.NewJit.MsgBaseData.LineSNDomianService,Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.Extends.PaiGe.WMS.FisTB_BILL_SCRAP})"> <member name="F:Win.Sfs.SettleAccount.FISes.MenBanPackingRecService._logger">
<summary>
日志
</summary>
</member>
<member name="M:Win.Sfs.SettleAccount.FISes.MenBanPackingRecService.#ctor(Win.Sfs.SettleAccount.Repository.NewJitEfCoreRepository1{WY.NewJit.Extends.MenBanPackingList,System.Guid},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgCheck.BillM100,System.Guid},WY.NewJit.EntityFrameworkCore.WMSDapperRepository,WY.NewJit.MsgBaseData.LineSNDomianService,Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.Extends.PaiGe.WMS.FisTB_BILL_SCRAP},Microsoft.Extensions.Logging.ILogger{WY.NewJit.MsgCheck.BillM100AppService},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgBaseData.DicItem},Volo.Abp.Domain.Repositories.IRepository{WY.NewJit.MsgBaseData.PartCfg})">
<summary> <summary>
门板装箱单仓储明细 门板装箱单仓储明细
</summary> </summary>

6
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain.Shared/Extends/PaiGe/PrintTypeEnum.cs

@ -13,8 +13,8 @@ namespace WY.NewJit.Extends.PaiGe
public enum ReportStatusEnum public enum ReportStatusEnum
{ {
, = 0,
= 1,
= 2
} }
} }

Loading…
Cancel
Save