Browse Source

测试前

master
me 20 hours ago
parent
commit
c38a0e57cc
  1. 10
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingListDto.cs
  2. 8
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgBaseData/PartCfgs/Dtos/PartCfgDto.cs
  3. 15
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM100s/Dtos/BillM100Dto.cs
  4. 6
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM100s/Dtos/ResultBillM100Dto.cs
  5. 24
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/WY.NewJit.Application.Contracts.xml
  6. 215
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/BillM100AppService.cs
  7. 60
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/MenBanPackingRecService.cs
  8. 208
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/ZhuHuBanPackingRecService.cs
  9. 34
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml
  10. 23
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain.Shared/Common/ExtMethod.cs
  11. 7
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain.Shared/Common/ObjectResultDto.cs
  12. 5
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain.Shared/Extends/PaiGe/PrintTypeEnum.cs
  13. 5
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingList.cs
  14. 2
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Entitys/LineSN.cs
  15. 84
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Services/LineSNDomianService.cs
  16. BIN
      Shared/Win.Sfs.Shared/bin/Debug/Win.Sfs.Shared.2.0.0.nupkg
  17. BIN
      Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.dll
  18. BIN
      Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.pdb
  19. BIN
      Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Utils.dll
  20. BIN
      Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Utils.pdb
  21. 2
      Shared/Win.Sfs.Shared/obj/Debug/Win.Sfs.Shared.2.0.0.nuspec
  22. 2
      Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfo.cs
  23. 2
      Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfoInputs.cache
  24. BIN
      Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.csproj.AssemblyReference.cache
  25. BIN
      Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.dll
  26. BIN
      Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.pdb
  27. BIN
      Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/ref/Win.Sfs.Shared.dll
  28. BIN
      Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/refint/Win.Sfs.Shared.dll
  29. BIN
      Shared/Win.Utils/bin/Debug/Win.Utils.2.0.0.nupkg
  30. BIN
      Shared/Win.Utils/bin/Debug/netcoreapp5/Win.Utils.dll
  31. BIN
      Shared/Win.Utils/bin/Debug/netcoreapp5/Win.Utils.pdb
  32. 2
      Shared/Win.Utils/obj/Debug/Win.Utils.2.0.0.nuspec
  33. 2
      Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfo.cs
  34. 2
      Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfoInputs.cache
  35. BIN
      Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.dll
  36. BIN
      Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.pdb
  37. BIN
      Shared/Win.Utils/obj/Debug/netcoreapp5/ref/Win.Utils.dll
  38. BIN
      Shared/Win.Utils/obj/Debug/netcoreapp5/refint/Win.Utils.dll

10
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingListDto.cs

@ -43,7 +43,7 @@ namespace WY.NewJit.Extends
public string ProviderCode { get; set; }
/// <summary>
/// 零件类型
/// 零件类型(对应字典大类)
/// </summary>
public string PartType { get; set; }
@ -110,11 +110,19 @@ namespace WY.NewJit.Extends
/// </summary>
public string EndHostSN { set; get; }
public Guid? SortId { get; set; }
/// <summary>
/// 排序字段
/// </summary>
public int SN { get; set; }
/// <summary>
/// 是否报废
/// </summary>
public bool IsScrap { get; set; }
public MenBanPackingListDto()
{
Details = new List<MenBanPackingRecDto>();

8
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgBaseData/PartCfgs/Dtos/PartCfgDto.cs

@ -47,6 +47,13 @@ namespace WY.NewJit.MsgBaseData
[ImporterHeader(Name = "描述")]
public string Description { get; set; }
/// <summary>
/// 厂内零件
/// </summary>
[ExporterHeader(DisplayName = "厂内零件")]
[ImporterHeader(Name = "厂内零件")]
public string RelationKey { get; set; }
#region 派格扩展
///// <summary>
///// 门板代号
@ -68,6 +75,5 @@ namespace WY.NewJit.MsgBaseData
///// </summary>
//public string DaXiaoLiangGang { get; set; }
#endregion
}
}

15
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM100s/Dtos/BillM100Dto.cs

@ -150,6 +150,21 @@ namespace WY.NewJit.MsgCheck
[ImporterHeader(Name = "零件6")]
public string PartCode6 { get; set; }
/// <summary>
/// 打印时间
/// </summary>
[ExporterHeader(DisplayName = "打印时间")]
[ImporterHeader(Name = "打印时间")]
public virtual DateTime? PrintTime { get; set; }
/// <summary>
/// 是否打印,打印后值是“已打印”
/// </summary>
[ExporterHeader(DisplayName = "是否打印")]
[ImporterHeader(Name = "是否打印")]
public virtual string PrintBillNum { get; set; }
}
}

6
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/MsgCheck/BillM100s/Dtos/ResultBillM100Dto.cs

@ -144,10 +144,10 @@ namespace WY.NewJit.MsgCheck
public virtual bool? CanNotPrint { get; set; }
/// <summary>
/// 柱护板打印状态(不为空时表示已打印)
/// 是否打印,打印后值是“已打印”
/// </summary>
[ExporterHeader(IsIgnore = true)]
[ImporterHeader(IsIgnore = true)]
[ExporterHeader(DisplayName = "是否打印")]
[ImporterHeader(Name = "是否打印")]
public virtual string PrintBillNum { get; set; }

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

@ -36,7 +36,7 @@
</member>
<member name="P:WY.NewJit.Extends.MenBanPackingListDto.PartType">
<summary>
零件类型
零件类型(对应字典大类)
</summary>
</member>
<member name="P:WY.NewJit.Extends.MenBanPackingListDto.Capacity">
@ -104,6 +104,11 @@
排序字段
</summary>
</member>
<member name="P:WY.NewJit.Extends.MenBanPackingListDto.IsScrap">
<summary>
是否报废
</summary>
</member>
<member name="P:WY.NewJit.Extends.MenBanPackingListRequestDto.ProductLine">
<summary>
生产线
@ -1308,6 +1313,11 @@
描述
</summary>
</member>
<member name="P:WY.NewJit.MsgBaseData.PartCfgDto.RelationKey">
<summary>
厂内零件
</summary>
</member>
<member name="P:WY.NewJit.MsgBaseData.QueryPartCfgDto.PartCode">
<summary>
零件编码
@ -1601,6 +1611,16 @@
手工操作日期
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM100Dto.PrintTime">
<summary>
打印时间
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.BillM100Dto.PrintBillNum">
<summary>
是否打印,打印后值是“已打印”
</summary>
</member>
<member name="T:WY.NewJit.MsgCheck.BillM100PartDto">
<summary>
零件查询结果DTO
@ -1948,7 +1968,7 @@
</member>
<member name="P:WY.NewJit.MsgCheck.ResultBillM100Dto.PrintBillNum">
<summary>
柱护板打印状态(不为空时表示已打印)
是否打印,打印后值是“已打印”
</summary>
</member>
<member name="P:WY.NewJit.MsgCheck.TimeOutRemindResultDto.ProductLine">

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

@ -1128,15 +1128,14 @@ select * from
/// 将M100转换成MenBanPackingList主子表
/// </summary>
/// <param name="input"></param>
/// <param name="pageIdx"></param>
/// <param name="maxSN"></param>
/// <param name="billLst"></param>
/// <param name="maxSN">最大顺序号加一</param>
/// <param name="pageBillLst">当前页的记录</param>
/// <param name="reportSort">报表分类,对应DicItemSort4</param>
/// <param name="partLargeTypeLst">零件大类字典项</param>
/// <param name="partLargeTypeLst">零件大类字典项(已经排序)</param>
/// <param name="sortId">本次打印的sortId相同</param>
/// <returns></returns>
private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, int pageIdx, double maxSN, List<BillM100> billLst, string reportSort, List<DicItem> partLargeTypeLst, Guid sortId)
private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, double maxSN, List<BillM100> pageBillLst, string reportSort, List<DicItem> partLargeTypeLst, Guid sortId)
{
const int _colNumberPerPage = 12; //??临时的,等
var partLargeTypeObj = partLargeTypeLst.FirstOrDefault(itm => itm.DicItemCode == reportSort);
if (partLargeTypeObj == null)
{
@ -1150,10 +1149,6 @@ select * from
{
idx = 0;
}
//取当前页内容
List<BillM100> curPageLst = billLst.Skip(pageIdx * _colNumberPerPage).Take(_colNumberPerPage).ToList();
//var vmLst = curPageLst.Select(itm => itm.VehicleModelCode).Distinct().JoinAsString(","); //取车型
string ymd = ServerHelper.CurrentDateTime.ToString("yyyyMMdd");
string serialNum = maxSN.ToString().PadLeft(3, '0'); //075
@ -1167,10 +1162,10 @@ select * from
packingMain.VehicleModel_Disp = partLargeTypeObj.DicItemSort6; //车型(报表显示的)
packingMain.PrintDate = ServerHelper.CurrentDateTime;
packingMain.PartType = partLargeTypeObj.DicItemCode; //零件大类
packingMain.ProductLine = billLst[0].ProductLine;
packingMain.ProductLine = pageBillLst[0].ProductLine;
packingMain.SortId = sortId;
var tempLst = curPageLst.Where(itm => string.IsNullOrEmpty(itm.VIN) == false).OrderBy(itm => itm.OnlineTime).ThenBy(itm => itm.HostSN).ToList();
var tempLst = pageBillLst.Where(itm => string.IsNullOrEmpty(itm.VIN) == false).OrderBy(itm => itm.OnlineTime).ThenBy(itm => itm.HostSN).ToList();
if (tempLst.Count > 0)
{
packingMain.BeginVin = tempLst[0].VIN;
@ -1181,7 +1176,7 @@ select * from
packingMain.MinOnlineTime = tempLst.Min(itm => itm.OnlineTime); //本单据最早的上线时间
//明细
int sn = 1;
foreach (BillM100 billObj in curPageLst)
foreach (BillM100 billObj in pageBillLst)
{
MenBanPackingRec packingDetail = new MenBanPackingRec();
packingDetail.SetId(GuidGenerator.Create());
@ -2407,10 +2402,51 @@ select * from
}
}
}
//if (retLst.Count == 0 && billLst.Count < input.EndHostSN - input.BeginHostSN + 1)
//{
// retLst.Add($"本车装箱单不满架!");
//}
return new ListResultDto<string>(retLst);
}
catch (Exception ex)
{
ListResultDto<string> ret = new ListResultDto<string>();
ret.Status = false;
ret.Message = _errorMessagePrefix + "打印前检查大众顺序号是否断号ChecMBkHostSNBreakNum 执行出错:" + ex.Message;
_logger.LogError(ret.Message);
return ret;
}
}
[UnitOfWork(false)]
[HttpPost]
[Route("check-already-print")]
public virtual async Task<ListResultDto<string>> CheckAlreadyPrint(MenBanPrintInputDto input)
{
List<string> retLst = new List<string>();
try
{
ListResultDto<BillM100> tempLst = await GetMBReportDetailList(input, false);
List<BillM100> billLst = tempLst.Item;
if (retLst.Count == 0 && billLst.Count < input.EndHostSN - input.BeginHostSN + 1)
{
retLst.Add($"本车装箱单不满架!");
}
var m100Obj = billLst[0];
if (m100Obj.PrintBillNum.HasValue())
{
var alreadyPrintLst = billLst.Where(itm => string.IsNullOrEmpty(itm.PrintBillNum) == false).ToList();
var sortId = await GetPackingListByM100Id(input.ProductLine, m100Obj.Id);
if (sortId != null)
{
var allMBLst = await _menBanPackingListRepository.GetListAsync(itm => itm.SortId == sortId);
string billNumStr = allMBLst.OrderBy(itm => itm.BillNum).JoinAsString(",");
retLst.Add($"从{alreadyPrintLst[0].HostSN}到{alreadyPrintLst[alreadyPrintLst.Count - 1].HostSN}的大众顺序号已经打印,打印对应的单号是{billNumStr}");
}
}
return new ListResultDto<string>(retLst);
}
@ -2418,12 +2454,26 @@ select * from
{
ListResultDto<string> ret = new ListResultDto<string>();
ret.Status = false;
ret.Message = _errorMessagePrefix + "打印前检查大众顺序号是否断号ChecMBkHostSNBreakNum 执行出错:" + ex.Message;
ret.Message = _errorMessagePrefix + "CheckIsAlreadyPrint执行出错:" + ex.Message;
_logger.LogError(ret.Message);
return ret;
}
}
/// <summary>
/// 根据M100的Id取打印主表
/// </summary>
/// <param name="m100Id"></param>
/// <returns></returns>
private async Task<Guid?> GetPackingListByM100Id(string productLine, Guid m100Id, bool isTrans = false)
{
string sql = $@"
select top 1 SortId from FisMenBanPackingList where ProductLine = '{productLine}'
and Id in (select MenBanPackingListId from FisMenBanPackingRec where M100BillId = '{m100Id}')
";
var sortIdLst = await _newJitDapperRepository.GetListBySqlAsync<Guid?>(sql, isTrans);
return sortIdLst.Count > 0 ? sortIdLst[0] : null;
}
/// <summary>
/// 打印前检查大众顺序号是否断号
@ -2511,36 +2561,36 @@ select * from
int? beginHostSN = null;
try
{
if (isZhuHuBan == "1") //是柱护板, 根据PrintBillNum非空判断是柱护板
{
//string minSNStr = await _billM100Repository.Where(itm =>
// itm.ProductLine == productLine //指定生产线
// && itm.CanNotPrint != true //能打印
// && string.IsNullOrEmpty(itm.PrintBillNum) == true //等于 未打印
// && itm.NeedReplenishPrint != 1 //排除补打
// ).MinAsync(itm => itm.SerialNumStr);
string sql = @"
with d as
(
select *from [dbo].[FisZHBPrintStatus] where groupName='{1}'
)
// if (isZhuHuBan == "1") //是柱护板, 根据PrintBillNum非空判断是柱护板
// {
// //string minSNStr = await _billM100Repository.Where(itm =>
// // itm.ProductLine == productLine //指定生产线
// // && itm.CanNotPrint != true //能打印
// // && string.IsNullOrEmpty(itm.PrintBillNum) == true //等于 未打印
// // && itm.NeedReplenishPrint != 1 //排除补打
// // ).MinAsync(itm => itm.SerialNumStr);
// string sql = @"
//with d as
//(
// select *from [dbo].[FisZHBPrintStatus] where groupName='{1}'
//)
select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
//select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
where ProductLine='{0}' and (CanNotPrint !=1 or CanNotPrint is null) and (PrintBillNum is null or PrintBillNum ='') and (NeedReplenishPrint!=1 or NeedReplenishPrint is null) and d.BillStatus is null";
// where ProductLine='{0}' and (CanNotPrint !=1 or CanNotPrint is null) and (PrintBillNum is null or PrintBillNum ='') and (NeedReplenishPrint!=1 or NeedReplenishPrint is null) and d.BillStatus is null";
sql = string.Format(sql, productLine, GroupName);
var minSNStr = await _newJitDapperRepository.GetSingleBySqlAsync<string>(sql);
// sql = string.Format(sql, productLine, GroupName);
// var minSNStr = await _newJitDapperRepository.GetSingleBySqlAsync<string>(sql);
beginHostSN = await _billM100Repository.Where(itm =>
itm.ProductLine == productLine //指定生产线
&& itm.CanNotPrint != true //能打印
&& string.IsNullOrEmpty(itm.PrintBillNum) == true //等于 未打印
&& itm.SerialNumStr == minSNStr
).MinAsync(itm => itm.HostSN);
}
else //---------------门板-----------------------------------------------------------------------------------
// beginHostSN = await _billM100Repository.Where(itm =>
// itm.ProductLine == productLine //指定生产线
// && itm.CanNotPrint != true //能打印
// && string.IsNullOrEmpty(itm.PrintBillNum) == true //等于 未打印
// && itm.SerialNumStr == minSNStr
// ).MinAsync(itm => itm.HostSN);
// }
// else //---------------门板-----------------------------------------------------------------------------------
{
string minSNStr2 = await _billM100Repository.Where(itm =>
itm.ProductLine == productLine //指定生产线
@ -3705,12 +3755,6 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
ret.Status = false;
return ret;
}
//_logger.LogWarning($"SaveMenBanReport读取数据 - {sw.ElapsedMilliseconds}毫秒");
int pageCnt = (int)Math.Ceiling(billLst.Count / 12.0); //每页打印12列,取打印页数
//过滤产线(DicItemSort2),按“报表分类”(DicItemSort4)分组,分组后按DicItemSort7排序
Dictionary<string, List<DicItem>> reportSortDic = partLargeTypeLst
.Where(itm => itm.DicItemSort2 == input.ProductLine && string.IsNullOrEmpty(itm.DicItemSort4) == false)
@ -3719,41 +3763,36 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
Guid sortId = GuidGenerator.Create(); //每次打印所有记录的SortId是相同的
for (int pageIdx = 0; pageIdx < pageCnt; pageIdx++)
foreach (var reportSortItem in reportSortDic) //先按分组(01产线有C8扶手、C8头枕两个分组)、然后按分页
{
foreach (var reportSortItem in reportSortDic)
DicItem dicItem = reportSortItem.Value[0];
int pageSize = dicItem.DicItemSort9.TryToInt() ?? 24; //每页记录数
int pageCount = (int)Math.Ceiling(billLst.Count / (decimal)pageSize); //页数
for (int pageIdx = 0; pageIdx < pageCount; pageIdx++)
{
//生成顺序号:按生产线分组,取当前生产线的最大流水号:001至999往复循环
double maxSN = await _lineSNDomianService.GetMaxSN(ProductTypeEnum., input.ProductLine, string.Empty);
double maxSN = await _lineSNDomianService.GetMaxSN(ProductTypeEnum., input.ProductLine, reportSortItem.Key);
//取当前页内容
List<BillM100> pageBillLst = billLst.Skip(pageIdx * pageSize).Take(pageSize).ToList();
MenBanPackingList packingObj = DoMBPrint(input, pageIdx, maxSN, billLst, reportSortItem.Key, reportSortItem.Value, sortId);
MenBanPackingList packingObj = DoMBPrint(input, maxSN, pageBillLst, reportSortItem.Key, reportSortItem.Value, sortId);
reportMainLst.Add(packingObj);
}
}
//_logger.LogWarning($"SaveMenBanReport转换数据 - {sw.ElapsedMilliseconds}毫秒");
//插入门板打印记录表
await _menBanPackingListRepository.InsertManyAsync(reportMainLst, true);
retLst.AddRange(reportMainLst.Select(itm => itm.Id));
//_logger.LogWarning($"SaveMenBanReport插入门板打印记录表 - {sw.ElapsedMilliseconds}毫秒");
//调用派格版库存接口
//await SaveMiddleTable_MB(reportMainLst);
//_logger.LogWarning($"SaveMenBanReport插入中间表 - {sw.ElapsedMilliseconds}毫秒");
//更新M100的门板打印标志:BillStatus=3
foreach (BillM100 billObj in billLst)
{
if (billObj.BillStatus == BillStatusEnum.Match)
{
billObj.SetBillStatus(BillStatusEnum.Publish);
//billObj.SetBillStatus(BillStatusEnum.Publish);
billObj.PrintTime = ServerHelper.CurrentDateTime;
billObj.PrintBillNum = "已打印";
billObj.NeedReplenishPrint = 0; //不需要补打
await _billM100Repository.UpdateAsync(billObj, true);
}
@ -3764,17 +3803,27 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
// await _billM100Repository.UpdateAsync(billObj, true);
//}
}
//_logger.LogWarning($"SaveMenBanReport更新M100的门板打印标志 - {sw.ElapsedMilliseconds}毫秒");
}
//4.校验1 - 4张单据都没有扫描提交,可以重复打印1 - 4张单据,或者打印1 - 5,
//5.重复打印后,原单据作废,原单据即使扫描也无法提交
var m100Id = billLst[0].Id;
var sortId2 = await GetPackingListByM100Id(input.ProductLine, m100Id, true);
if (sortId2 != null)
{
var allMBLst = await _menBanPackingListRepository.GetListAsync(itm => itm.SortId == sortId2);
foreach (var mbObj in allMBLst)
{
mbObj.IsScrap = true;
}
await _menBanPackingListRepository.UpdateManyAsync(allMBLst);
}
} //if 正常打印
//else if (input.PrintType == PrintTypeEnum.重新打印) //和正常打印单据完全一样,可以打印部分单据
//{
// throw new BusinessException("请调用LoadMenBanReport方法!");
//}
await uow.CompleteAsync();
ret.Status = true;
ret.Item = retLst;
ret.Item = reportMainLst.Select(itm => itm.Id).ToList();
return ret;
}
catch (Exception ex)
@ -3874,7 +3923,7 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
MenBanPackingListResultDto ret = new MenBanPackingListResultDto();
try
{
List<MenBanPackingListDto> reportLst = await LoadMenBanReport(input);
List<MenBanPackingListDto> reportLst = await LoadMenBanReport(input); //例如:包含两条C8扶手、两条C8头枕
List<DicItem> partLargeTypeLst = await _dicItemRepository.GetListAsync(itm => itm.DicTypeCode == "零件大类");
foreach (MenBanPackingListDto report in reportLst)
@ -3886,17 +3935,29 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN
}
}
reportLst = reportLst.OrderBy(itm => itm.SN).ToList();
if (reportLst.Count > 0)
var partTypeLst = reportLst.Select(itm => itm.PartType).Distinct().ToList();
if (partTypeLst.Count > 0)
{
ret.MainList1.Add(reportLst[0]);
ret.DetailList1.AddRange(reportLst[0].Details);
reportLst[0].Details = null;
var mainLst1 = reportLst.Where(itm => itm.PartType == partTypeLst[0]).OrderBy(itm => itm.SN).ToList();
var detailLst1 = mainLst1.SelectMany(itm => itm.Details).OrderBy(itm => itm.SN).ToList();
foreach (var item in mainLst1)
{
item.Details = null;
}
ret.MainList1 = mainLst1;
ret.DetailList1 = detailLst1;
}
if (reportLst.Count > 1)
if (partTypeLst.Count > 1)
{
ret.MainList2.Add(reportLst[1]);
ret.DetailList2.AddRange(reportLst[1].Details);
reportLst[1].Details = null;
var mainLst2 = reportLst.Where(itm => itm.PartType == partTypeLst[1]).OrderBy(itm => itm.SN).ToList();
var detailLst2 = mainLst2.SelectMany(itm => itm.Details).OrderBy(itm => itm.SN).ToList();
foreach (var item in mainLst2)
{
item.Details = null;
}
ret.MainList2 = mainLst2;
ret.DetailList2 = detailLst2;
}
return ret;
}

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

@ -10,6 +10,7 @@ using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.Logging;
using Shouldly;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@ -166,7 +167,7 @@ namespace Win.Sfs.SettleAccount.FISes
public async Task<PagedResultDto<MenBanPackingListDto>> GetMainListAsync(MenBanPackingListRequestDto input)
{
List<FilterCondition> filters = new List<FilterCondition>();
filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ReportStatus", Logic = EnumFilterLogic.And, Value = ((int)ReportStatusEnum.).ToString() });
filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ReportStatus", Logic = EnumFilterLogic.And, Value = ((int)ReportStatusEnum.).ToString() });
if (!string.IsNullOrEmpty(input.ProductLine))
{
@ -543,17 +544,64 @@ namespace Win.Sfs.SettleAccount.FISes
[HttpPost]
[Route("update-scan-status")]
public virtual async Task<ObjectResultDto> UpdateScanStatus(string billNum)
public virtual async Task<ObjectResultDto> UpdateScanStatus(List<string> billNumList)
{
ObjectResultDto ret = new ObjectResultDto();
try
{
var lst = await _menBanPackingListRepository.GetListAsync(itm => itm.BillNum == billNum);
foreach (var item in lst)
#region 校验
if (billNumList.Count == 0)
{
item.ReportStatus = ReportStatusEnum.;
var succ = await _menBanPackingListRepository.UpdateAsync(item);
throw new Exception($"传入的单号不能为空!");
}
string billNumStr = billNumList.JoinAsString(",");
var menBanLst = await _menBanPackingListRepository.GetListAsync(itm => billNumList.Contains(itm.BillNum));
bool isScrap = menBanLst.Any(itm => itm.IsScrap == true);
if (isScrap)
{
throw new Exception($"传入的单号,存在已经报废的单据(FIS操作人员重新打印引起)" + billNumStr);
}
if (menBanLst.Count != billNumList.Count)
{
throw new Exception($"传入的单号,有的在打印表不存在:" + billNumStr);
}
var distLst = menBanLst.Select(itm => itm.SortId).Distinct().ToList();
if (distLst.Count > 1)
{
throw new Exception($"传入的单号,不是一个打印批次:" + billNumStr);
}
var sortId = menBanLst[0].SortId;
var batchMenBanLst = await _menBanPackingListRepository.GetListAsync(itm => itm.SortId == sortId, true);
var batchSortIdLst = batchMenBanLst.Select(itm => itm.BillNum).ToList();
var exceptLst1 = batchSortIdLst.OrderBy(itm => itm).Except(billNumList.OrderBy(itm => itm)).ToList();
if (exceptLst1.Count > 0)
{
throw new Exception($"和一个打印批次比较,传入的单号缺失:" + exceptLst1.JoinAsString(","));
}
var exceptLst2 = billNumList.OrderBy(itm => itm).Except(batchSortIdLst.OrderBy(itm => itm)).ToList();
if (exceptLst2.Count > 0)
{
throw new Exception($"和一个打印批次比较,传入的单号多了:" + exceptLst1.JoinAsString(","));
}
#endregion
//更新状态
foreach (var batchMenBan in batchMenBanLst)
{
batchMenBan.ReportStatus = ReportStatusEnum.;
var updateObj = await _menBanPackingListRepository.UpdateAsync(batchMenBan);
}
var billIdLst = batchMenBanLst.SelectMany(itm => itm.Details).Select(itm => itm.M100BillId).ToList();
var m100Lst = await _billM100Repository.GetListAsync(itm => billIdLst.Contains(itm.Id));
foreach (var m100 in m100Lst)
{
m100.SetBillStatus(BillStatusEnum.Publish);
}
await _billM100Repository.UpdateManyAsync(m100Lst);
ret.Status = true;
return ret;
}

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

@ -154,7 +154,7 @@ namespace Win.Sfs.SettleAccount.FISes
{
List<FilterCondition> filters = new List<FilterCondition>();
filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ReportStatus", Logic = EnumFilterLogic.And, Value = ((int)ReportStatusEnum.).ToString() });
filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ReportStatus", Logic = EnumFilterLogic.And, Value = ((int)ReportStatusEnum.).ToString() });
if (!string.IsNullOrEmpty(input.ProductLine))
{
@ -271,109 +271,109 @@ namespace Win.Sfs.SettleAccount.FISes
/// <param name="ids">IDs</param>
/// /// <param name="groupName">IDs</param>
/// <returns>是否执行成功</returns>
[HttpPost]
[Route("scrap")]
[UnitOfWork(isTransactional: false)]
virtual public async Task<List<string>> ScrapAsync(List<Guid> ids)
{
var selLst = await _ZhuHuBanPackingListRepository.Where(p => ids.Contains(p.Id)).ToListAsync();
if (selLst == null || selLst.Count == 0)
{
throw new BusinessException("1001", "没有选中要作废的已打印装箱单!!");
}
foreach (var selObj in selLst)
{
string maxBillNum = await _ZhuHuBanPackingListRepository.Where(itm => itm.ProductLine == selObj.ProductLine && itm.ReportStatus == ReportStatusEnum.).MaxAsync(itm => itm.BillNum); //取当前生产线的最大装箱单号
if (string.IsNullOrEmpty(maxBillNum) == false)
{
ZhuHuBanPackingList firObj = await _ZhuHuBanPackingListRepository.FirstOrDefaultAsync(itm => itm.BillNum == maxBillNum);
if (firObj != null)
{
if (selObj.SortId != firObj.SortId)
{
throw new BusinessException("1001", "只能报废当前生产线的最后打印单据,要报废的单据不是最后打印单据!");
}
}
}
}
var sortList = selLst.Select(p => p.SortId).Distinct().ToList();//筛选出匹配门板
List<ZhuHuBanPackingList> pairlist = _ZhuHuBanPackingListRepository.Where(p => sortList.Contains(p.SortId)).ToList();
var idList = pairlist.Select(p => p.Id).ToList();
var _ls = pairlist.Select(p => p.BillNum).ToList();
var _strList = new List<string>();
_ls.ForEach(p => {
_strList.Add(string.Format("'{0}'", p));
});
string str = string.Join(",", _strList.ToArray());
var wmsLst = _wmsRepository.GetListBySql<TB_BILL>(string.Format("select * from TB_BILL where (state=1 or state=2) and BillNum in ({0}) ", str));
if (wmsLst.Count() == 0) //库存没有排序
{
//调用库存系统接口
List<string> billNumLst = pairlist.Select(itm => itm.BillNum).Distinct().ToList();
foreach (string billNumStr in billNumLst)
{
DelOrScrapWMSInterface(billNumStr, true);
}
#region 作废时单据序号减一
string curProductLine = selLst[0].ProductLine;
DateTime curPrintDate = selLst[0].PrintDate;
var partTypeLst = pairlist.Select(itm => itm.PartType).ToList();
foreach (string curPartType in partTypeLst)
{
var priorLst = _ZhuHuBanPackingListRepository.Where(itm =>
itm.ReportStatus == ReportStatusEnum.
&& itm.ProductLine == curProductLine
&& itm.PartType == curPartType
&& idList.Contains(itm.Id) == false);
if (priorLst.Any())
{
string maxBillNum = priorLst.Max(itm => itm.BillNum); //扣除要作废记录,取当前生产线的最大单据号
ZhuHuBanPackingList priorObj = priorLst.FirstOrDefault(itm => itm.BillNum == maxBillNum); //扣除要作废记录,取当前生产线的最后打印记录
double updRecCnt = await _lineSNDomianServic.SetMaxSN(ProductTypeEnum., curProductLine, curPartType, priorObj.PrintDate, priorObj.BillSerialNum.TryToDoubleZero(), null); //调用减号接口
}
else
{
double updRecCnt2 = await _lineSNDomianServic.SetMaxSN(ProductTypeEnum., curProductLine, curPartType, curPrintDate, 0, null); //调用减号接口,没有上条记录时 单据号传0
}
}
#endregion
//打印记录表更新成 已作废 状态
foreach (var itm in pairlist)
{
itm.ReportStatus = WY.NewJit.Extends.PaiGe.ReportStatusEnum.;
}
await _ZhuHuBanPackingListRepository.UpdateManyAsync(pairlist);
//批量改为未打印
var _childList = await _ZhuHuBanPackingListRepository.Where(p => idList.Contains(p.Id)).SelectMany(p => p.Details).ToListAsync();
var _child = _childList.Select(p => p.M100BillId).Distinct().ToList();
var _lst1 = await _billM100Repository.Where(p => _child.Contains(p.Id)).ToListAsync();
_lst1.ForEach(p =>
{
p.SetZHBBillStatus(ZHBBillStatusEnum.NotPrint);
p.PrintTime2 = null;
});
await _billM100Repository.UpdateManyAsync(_lst1);
var types = await _ZhuHuBanPackingListRepository.Where(p => idList.Contains(p.Id)).Select(p => p.PartType).Distinct().ToListAsync();
var groupName = await _printTemplateConfigurationRepository.FirstOrDefaultAsync(r => types.Contains(r.PartType));
var vins = _childList.Select(p => p.VIN).Distinct().ToList();
await _zHBPrintStatusRepository.DeleteAsync(r => vins.Contains(r.VIN) && r.GroupName == groupName.GroupName);
}
else
{
throw new BusinessException("1001", "WMS已经排序,不能报废!");
}
return wmsLst.Select(p => p.BillNum).ToList();
}
//[HttpPost]
//[Route("scrap")]
//[UnitOfWork(isTransactional: false)]
//virtual public async Task<List<string>> ScrapAsync(List<Guid> ids)
//{
// var selLst = await _ZhuHuBanPackingListRepository.Where(p => ids.Contains(p.Id)).ToListAsync();
// if (selLst == null || selLst.Count == 0)
// {
// throw new BusinessException("1001", "没有选中要作废的已打印装箱单!!");
// }
// foreach (var selObj in selLst)
// {
// string maxBillNum = await _ZhuHuBanPackingListRepository.Where(itm => itm.ProductLine == selObj.ProductLine && itm.ReportStatus == ReportStatusEnum.未扫描).MaxAsync(itm => itm.BillNum); //取当前生产线的最大装箱单号
// if (string.IsNullOrEmpty(maxBillNum) == false)
// {
// ZhuHuBanPackingList firObj = await _ZhuHuBanPackingListRepository.FirstOrDefaultAsync(itm => itm.BillNum == maxBillNum);
// if (firObj != null)
// {
// if (selObj.SortId != firObj.SortId)
// {
// throw new BusinessException("1001", "只能报废当前生产线的最后打印单据,要报废的单据不是最后打印单据!");
// }
// }
// }
// }
// var sortList = selLst.Select(p => p.SortId).Distinct().ToList();//筛选出匹配门板
// List<ZhuHuBanPackingList> pairlist = _ZhuHuBanPackingListRepository.Where(p => sortList.Contains(p.SortId)).ToList();
// var idList = pairlist.Select(p => p.Id).ToList();
// var _ls = pairlist.Select(p => p.BillNum).ToList();
// var _strList = new List<string>();
// _ls.ForEach(p => {
// _strList.Add(string.Format("'{0}'", p));
// });
// string str = string.Join(",", _strList.ToArray());
// var wmsLst = _wmsRepository.GetListBySql<TB_BILL>(string.Format("select * from TB_BILL where (state=1 or state=2) and BillNum in ({0}) ", str));
// if (wmsLst.Count() == 0) //库存没有排序
// {
// //调用库存系统接口
// List<string> billNumLst = pairlist.Select(itm => itm.BillNum).Distinct().ToList();
// foreach (string billNumStr in billNumLst)
// {
// DelOrScrapWMSInterface(billNumStr, true);
// }
// #region 作废时单据序号减一
// string curProductLine = selLst[0].ProductLine;
// DateTime curPrintDate = selLst[0].PrintDate;
// var partTypeLst = pairlist.Select(itm => itm.PartType).ToList();
// foreach (string curPartType in partTypeLst)
// {
// var priorLst = _ZhuHuBanPackingListRepository.Where(itm =>
// itm.ReportStatus == ReportStatusEnum.未扫描
// && itm.ProductLine == curProductLine
// && itm.PartType == curPartType
// && idList.Contains(itm.Id) == false);
// if (priorLst.Any())
// {
// string maxBillNum = priorLst.Max(itm => itm.BillNum); //扣除要作废记录,取当前生产线的最大单据号
// ZhuHuBanPackingList priorObj = priorLst.FirstOrDefault(itm => itm.BillNum == maxBillNum); //扣除要作废记录,取当前生产线的最后打印记录
// double updRecCnt = await _lineSNDomianServic.SetMaxSN(ProductTypeEnum.柱护板, curProductLine, curPartType, priorObj.PrintDate, priorObj.BillSerialNum.TryToDoubleZero(), null); //调用减号接口
// }
// else
// {
// double updRecCnt2 = await _lineSNDomianServic.SetMaxSN(ProductTypeEnum.柱护板, curProductLine, curPartType, curPrintDate, 0, null); //调用减号接口,没有上条记录时 单据号传0
// }
// }
// #endregion
// //打印记录表更新成 已作废 状态
// foreach (var itm in pairlist)
// {
// itm.ReportStatus = WY.NewJit.Extends.PaiGe.ReportStatusEnum.已作废;
// }
// await _ZhuHuBanPackingListRepository.UpdateManyAsync(pairlist);
// //批量改为未打印
// var _childList = await _ZhuHuBanPackingListRepository.Where(p => idList.Contains(p.Id)).SelectMany(p => p.Details).ToListAsync();
// var _child = _childList.Select(p => p.M100BillId).Distinct().ToList();
// var _lst1 = await _billM100Repository.Where(p => _child.Contains(p.Id)).ToListAsync();
// _lst1.ForEach(p =>
// {
// p.SetZHBBillStatus(ZHBBillStatusEnum.NotPrint);
// p.PrintTime2 = null;
// });
// await _billM100Repository.UpdateManyAsync(_lst1);
// var types = await _ZhuHuBanPackingListRepository.Where(p => idList.Contains(p.Id)).Select(p => p.PartType).Distinct().ToListAsync();
// var groupName = await _printTemplateConfigurationRepository.FirstOrDefaultAsync(r => types.Contains(r.PartType));
// var vins = _childList.Select(p => p.VIN).Distinct().ToList();
// await _zHBPrintStatusRepository.DeleteAsync(r => vins.Contains(r.VIN) && r.GroupName == groupName.GroupName);
// }
// else
// {
// throw new BusinessException("1001", "WMS已经排序,不能报废!");
// }
// return wmsLst.Select(p => p.BillNum).ToList();
//}
}

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

@ -1045,16 +1045,16 @@
<param name="billLst"></param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM100AppService.DoMBPrint(WY.NewJit.Extends.MenBanPrintInputDto,System.Int32,System.Double,System.Collections.Generic.List{WY.NewJit.MsgCheck.BillM100},System.String,System.Collections.Generic.List{WY.NewJit.MsgBaseData.DicItem},System.Guid)">
<member name="M:WY.NewJit.MsgCheck.BillM100AppService.DoMBPrint(WY.NewJit.Extends.MenBanPrintInputDto,System.Double,System.Collections.Generic.List{WY.NewJit.MsgCheck.BillM100},System.String,System.Collections.Generic.List{WY.NewJit.MsgBaseData.DicItem},System.Guid)">
<summary>
将M100转换成MenBanPackingList主子表
</summary>
<param name="input"></param>
<param name="pageIdx"></param>
<param name="maxSN"></param>
<param name="billLst"></param>
<param name="maxSN">最大顺序号加一</param>
<param name="pageBillLst">当前页的记录</param>
<param name="reportSort">报表分类,对应DicItemSort4</param>
<param name="partLargeTypeLst">零件大类字典项</param>
<param name="partLargeTypeLst">零件大类字典项(已经排序)</param>
<param name="sortId">本次打印的sortId相同</param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM100AppService.CheckMBHostSNBreakNum(WY.NewJit.Extends.MenBanPrintInputDto)">
@ -1064,6 +1064,13 @@
<param name="input"></param>
<returns>断号时Item不为空</returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM100AppService.GetPackingListByM100Id(System.String,System.Guid,System.Boolean)">
<summary>
根据M100的Id取打印主表
</summary>
<param name="m100Id"></param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM100AppService.GetPrintStartHostSN2(System.String,System.String,System.String)">
<summary>
根据生产线获取正常打印单据的起始大众顺序号2
@ -2053,13 +2060,6 @@
<param name="input">请求条件</param>
<returns>实体DTO列表</returns>
</member>
<member name="M:Win.Sfs.SettleAccount.FISes.MenBanPackingRecService.DeleteListAsync(System.Collections.Generic.List{System.Guid})">
<summary>
按IDs删除实体列表
</summary>
<param name="ids">IDs</param>
<returns>是否执行成功</returns>
</member>
<member name="M:Win.Sfs.SettleAccount.FISes.MenBanPackingRecService.GetAllScrapListAsync(System.Collections.Generic.List{System.Guid})">
<summary>
取待报废的全部数据,用于展示
@ -2067,7 +2067,7 @@
<param name="ids">请求条件</param>
<returns>实体DTO列表</returns>
</member>
<member name="M:Win.Sfs.SettleAccount.FISes.MenBanPackingRecService.ScrapAsync(System.Collections.Generic.List{System.Guid})">
<member name="M:Win.Sfs.SettleAccount.FISes.MenBanPackingRecService.GetPackingListByBillNum(System.String)">
<summary>
报废
</summary>
@ -2118,13 +2118,5 @@
<param name="ids">请求条件</param>
<returns>实体DTO列表</returns>
</member>
<member name="M:Win.Sfs.SettleAccount.FISes.ZhuHuBanPackingRecService.ScrapAsync(System.Collections.Generic.List{System.Guid})">
<summary>
报废
</summary>
<param name="ids">IDs</param>
/// <param name="groupName">IDs</param>
<returns>是否执行成功</returns>
</member>
</members>
</doc>

23
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain.Shared/Common/ExtMethod.cs

@ -66,6 +66,29 @@ namespace WY.NewJit.Common
}
}
public static decimal? TryToDecimal(this string p_str)
{
if (p_str == null)
{
return null;
}
decimal ret;
bool isSucc = Decimal.TryParse(p_str, out ret);
if (isSucc)
{
return ret;
}
else
{
return null;
}
}
public static decimal TryToDecimalZero(this string p_str)
{
return p_str.TryToDecimal() ?? 0.0M;
}
public static double TryToDoubleZero(this string p_str)
{
double resu;

7
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain.Shared/Common/ObjectResultDto.cs

@ -61,6 +61,13 @@ namespace WY.NewJit
this.Item = item;
}
public ListResultDto(List<T> item, bool status)
: base(status, "")
{
this.Item = item;
}
public List<T> Item { get; set; }
}

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

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

5
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingList.cs

@ -103,6 +103,11 @@ namespace WY.NewJit.Extends
/// </summary>
public virtual DateTime? MinOnlineTime { get; set; }
/// <summary>
/// 是否报废
/// </summary>
public bool IsScrap { get; set; }
public MenBanPackingList()
{
Details = new List<MenBanPackingRec>();

2
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Entitys/LineSN.cs

@ -68,7 +68,7 @@ namespace WY.NewJit.MsgBaseData
Remark = remark;
}
public void Update(double sn, DateTime lastPrintTime, string remark)
public void Update(double sn, DateTime lastPrintTime, string remark = "")
{
SN = sn;
LastPrintTime = lastPrintTime;

84
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Services/LineSNDomianService.cs

@ -19,20 +19,20 @@ namespace WY.NewJit.MsgBaseData
}
/// <summary>
/// 生成门板或柱护板右上角顺序号,每天零点开始往复循环1-99
/// 生成顺序号,每天零点开始往复循环1-99
/// </summary>
/// <param name="productType">门板或柱护板</param>
/// <param name="productLine">产线</param>
/// <param name="partType">门板时传入""</param>
/// <param name="reportType">报表分类,对应产品大类的DicItemSort4</param>
/// <returns></returns>
public async Task<double> GetMaxSN(ProductTypeEnum productType, string productLine, string partType)
public async Task<double> GetMaxSN(ProductTypeEnum productType, string productLine, string reportType)
{
bool isExist = true;
var typeObj = await _lineSNRepository.FirstOrDefaultAsync(p => p.ProductType == productType && p.ProductLine == productLine && p.PartType == partType);
var lineSNObj = await _lineSNRepository.FirstOrDefaultAsync(p => p.ProductType == productType && p.ProductLine == productLine && p.PartType == reportType);
if (typeObj == null)
if (lineSNObj == null)
{
isExist = false;
}
@ -40,75 +40,75 @@ namespace WY.NewJit.MsgBaseData
DateTime now = DateTime.Now;
DateTime today8 = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0);
if (typeObj != null)
if (lineSNObj != null) //之前生成过顺序号
{
if (typeObj.LastPrintTime < today8 && now >= today8)
if (lineSNObj.LastPrintTime < today8 && now >= today8)
{
typeObj.Update(1, now, string.Empty);
lineSNObj.Update(1, now);
}
else
{
if (typeObj.SN == 99)
if (lineSNObj.SN == 99)
{
typeObj.Update(1, now, string.Empty);
lineSNObj.Update(1, now);
}
else
{
typeObj.Update(typeObj.SN + 1, now, string.Empty);
lineSNObj.Update(lineSNObj.SN + 1, now);
}
}
}
else
else //第一次生成顺序号
{
typeObj = new LineSN(Guid.NewGuid(), productType, productLine, partType, 1, now, string.Empty);
lineSNObj = new LineSN(Guid.NewGuid(), productType, productLine, reportType, 1, now, string.Empty);
}
if (isExist)
{
await _lineSNRepository.UpdateAsync(typeObj, true);
await _lineSNRepository.UpdateAsync(lineSNObj, true);
}
else
{
await _lineSNRepository.InsertAsync(typeObj, true);
await _lineSNRepository.InsertAsync(lineSNObj, true);
}
return typeObj.SN;
return lineSNObj.SN;
}
public async Task<double> SetMaxSN(ProductTypeEnum productType, string productLine, string partType, DateTime lastPrintTime, double sn, string remark)
{
bool isExist = true;
//public async Task<double> SetMaxSN(ProductTypeEnum productType, string productLine, string partType, DateTime lastPrintTime, double sn, string remark)
//{
// bool isExist = true;
var typeObj = _lineSNRepository.FirstOrDefault(p => p.ProductType == productType && p.ProductLine == productLine && p.PartType == partType);
// var typeObj = _lineSNRepository.FirstOrDefault(p => p.ProductType == productType && p.ProductLine == productLine && p.PartType == partType);
if (typeObj == null)
{
isExist = false;
}
// if (typeObj == null)
// {
// isExist = false;
// }
if (typeObj != null)
{
// if (typeObj != null)
// {
typeObj.Update(sn, lastPrintTime, remark);
}
else
{
typeObj = new LineSN(Guid.NewGuid(), productType, productLine, partType, sn, lastPrintTime, remark);
}
// typeObj.Update(sn, lastPrintTime, remark);
// }
// else
// {
// typeObj = new LineSN(Guid.NewGuid(), productType, productLine, partType, sn, lastPrintTime, remark);
// }
if (isExist)
{
await _lineSNRepository.UpdateAsync(typeObj);
}
else
{
await _lineSNRepository.InsertAsync(typeObj);
}
// if (isExist)
// {
// await _lineSNRepository.UpdateAsync(typeObj);
// }
// else
// {
// await _lineSNRepository.InsertAsync(typeObj);
// }
return typeObj.SN;
}
// return typeObj.SN;
//}
}
}

BIN
Shared/Win.Sfs.Shared/bin/Debug/Win.Sfs.Shared.2.0.0.nupkg

Binary file not shown.

BIN
Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.dll

Binary file not shown.

BIN
Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.pdb

Binary file not shown.

BIN
Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Utils.dll

Binary file not shown.

BIN
Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Utils.pdb

Binary file not shown.

2
Shared/Win.Sfs.Shared/obj/Debug/Win.Sfs.Shared.2.0.0.nuspec

@ -5,7 +5,7 @@
<version>2.0.0</version>
<authors>Win.Sfs.Shared</authors>
<description>Package Description</description>
<repository type="git" commit="a5a9bdc002c0bde27fed59155b4f42778c8a586e" />
<repository type="git" commit="ec1383591dce0935576a66bebfe8f243eb6bb935" />
<dependencies>
<group targetFramework="net5.0">
<dependency id="Win.Utils" version="2.0.0" exclude="Build,Analyzers" />

2
Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfo.cs

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Win.Sfs.Shared")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0+a5a9bdc002c0bde27fed59155b4f42778c8a586e")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0+ec1383591dce0935576a66bebfe8f243eb6bb935")]
[assembly: System.Reflection.AssemblyProductAttribute("Win.Sfs.Shared")]
[assembly: System.Reflection.AssemblyTitleAttribute("Win.Sfs.Shared")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.0.0.0")]

2
Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfoInputs.cache

@ -1 +1 @@
ce8bce8f0148848382678a78ba43b96b07f28bbbffd2234bcd66f38b2eecf85f
8cadcfdfe2ca4a85dd62aac09e5df76d11c27163dfcd557ec04e1ee675ca7a8d

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

Binary file not shown.

BIN
Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.dll

Binary file not shown.

BIN
Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.pdb

Binary file not shown.

BIN
Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/ref/Win.Sfs.Shared.dll

Binary file not shown.

BIN
Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/refint/Win.Sfs.Shared.dll

Binary file not shown.

BIN
Shared/Win.Utils/bin/Debug/Win.Utils.2.0.0.nupkg

Binary file not shown.

BIN
Shared/Win.Utils/bin/Debug/netcoreapp5/Win.Utils.dll

Binary file not shown.

BIN
Shared/Win.Utils/bin/Debug/netcoreapp5/Win.Utils.pdb

Binary file not shown.

2
Shared/Win.Utils/obj/Debug/Win.Utils.2.0.0.nuspec

@ -5,7 +5,7 @@
<version>2.0.0</version>
<authors>Win.Utils</authors>
<description>Package Description</description>
<repository type="git" commit="655f97fce0dd87165ead1e3cce91aba34298af56" />
<repository type="git" commit="ec1383591dce0935576a66bebfe8f243eb6bb935" />
<dependencies>
<group targetFramework="net5.0">
<dependency id="NPOI" version="2.5.2" exclude="Build,Analyzers" />

2
Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfo.cs

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Win.Utils")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0+655f97fce0dd87165ead1e3cce91aba34298af56")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0+ec1383591dce0935576a66bebfe8f243eb6bb935")]
[assembly: System.Reflection.AssemblyProductAttribute("Win.Utils")]
[assembly: System.Reflection.AssemblyTitleAttribute("Win.Utils")]
[assembly: System.Reflection.AssemblyVersionAttribute("2.0.0.0")]

2
Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfoInputs.cache

@ -1 +1 @@
d35c56c2a77531ab3e36b55a499477cd4f9db824953aa80b990cafe5b4adf800
3305b1f11584cc8e77f0485edbdb433ff1bf37be83db08c9968f87ced8aa9106

BIN
Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.dll

Binary file not shown.

BIN
Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.pdb

Binary file not shown.

BIN
Shared/Win.Utils/obj/Debug/netcoreapp5/ref/Win.Utils.dll

Binary file not shown.

BIN
Shared/Win.Utils/obj/Debug/netcoreapp5/refint/Win.Utils.dll

Binary file not shown.
Loading…
Cancel
Save