From 655f97fce0dd87165ead1e3cce91aba34298af56 Mon Sep 17 00:00:00 2001 From: me Date: Wed, 6 Aug 2025 15:04:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91=E5=85=B6=E5=AE=83=EF=BC=8C?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E5=8F=91=E8=BF=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MenBanReports/MenBanPackingListDto.cs | 4 + .../MenBanReports/MenBanPackingRecDto.cs | 10 +- .../WY.NewJit.Application.Contracts.xml | 20 +- .../MsgCheck/BillM100s/BillM100AppService.cs | 268 ++++++++++-------- .../BillM100s/MenBanPackingRecService.cs | 62 ++-- .../MsgCheck/BillM110s/BillM110AppService.cs | 160 +++++------ .../WY.NewJit.Application.xml | 19 +- .../PaiGe/MenBanReports/MenBanPackingList.cs | 4 + .../PaiGe/MenBanReports/MenBanPackingRec.cs | 8 + 9 files changed, 306 insertions(+), 249 deletions(-) diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingListDto.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingListDto.cs index de20e8e..8dc0da3 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingListDto.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingListDto.cs @@ -32,6 +32,10 @@ namespace WY.NewJit.Extends /// public string VehicleModel { get; set; } + /// + /// 报表显示车型 + /// + public string VehicleModel_Disp { get; set; } /// /// 供应商厂家代码 diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingRecDto.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingRecDto.cs index ba07fbc..e4053fa 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingRecDto.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingRecDto.cs @@ -75,9 +75,15 @@ namespace WY.NewJit.Extends /// public virtual string SN { get; set; } + /// + /// 扫描零件号,供发运使用 + /// + public string ScanPartCode { get; set; } - - + /// + /// 备注 + /// + public string Remark { get; set; } } diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/WY.NewJit.Application.Contracts.xml b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/WY.NewJit.Application.Contracts.xml index d3d286b..c1281a7 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/WY.NewJit.Application.Contracts.xml +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/WY.NewJit.Application.Contracts.xml @@ -24,6 +24,11 @@ 左或右 + + + 报表显示车型 + + 供应商厂家代码 @@ -184,6 +189,16 @@ 上箱位号 + + + 扫描零件号,供发运使用 + + + + + 备注 + + 打印类型:提供初次打印、重新打印、针对重新解析后单据的补打功能 @@ -209,11 +224,6 @@ 装箱单主表ID列表,报废时传入一个,重打时可传入多个 - - - 补打时使用 - - 门板主实体列表 diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/BillM100AppService.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/BillM100AppService.cs index d26fff4..881ba53 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/BillM100AppService.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/BillM100AppService.cs @@ -157,6 +157,8 @@ namespace WY.NewJit.MsgCheck private List _zhbCacheList = new List(); private string _topBoxPositionNumPrefix; + + private List _partCfgLst; #endregion #region 构造函数 @@ -1132,17 +1134,27 @@ select * from /// 报表分类,对应DicItemSort4 /// 零件大类字典项 /// - private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, int pageIdx, double maxSN, List billLst, string reportSort, List partLargeTypeLst) + private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, int pageIdx, double maxSN, List billLst, string reportSort, List partLargeTypeLst, Guid sortId) { - const int _colNumberPerPage = 12; - string[] partLargeType = partLargeTypeLst.Select(itm => itm.DicItemCode).ToArray(); //取零件大类 - var partLargeTypeObj = partLargeTypeLst[0]; + const int _colNumberPerPage = 12; //??临时的,等 + var partLargeTypeObj = partLargeTypeLst.FirstOrDefault(itm => itm.DicItemCode == reportSort); + if (partLargeTypeObj == null) + { + throw new UserFriendlyException($"零件大类字典中,DicItemCode列没有配置{reportSort}"); + } + string[] partLargeTypes = partLargeTypeLst.Select(itm => itm.DicItemCode).ToArray(); //取零件大类 + //取扫描零件的索引 + int idx = partLargeTypeLst.FindIndex(itm => itm.Id == partLargeTypeObj.Id); + if (idx < 0) + { + idx = 0; + } //取当前页内容 List curPageLst = billLst.Skip(pageIdx * _colNumberPerPage).Take(_colNumberPerPage).ToList(); - var vmLst = curPageLst.Select(itm => itm.VehicleModelCode).Distinct().JoinAsString(","); //取车型 + //var vmLst = curPageLst.Select(itm => itm.VehicleModelCode).Distinct().JoinAsString(","); //取车型 string ymd = ServerHelper.CurrentDateTime.ToString("yyyyMMdd"); string serialNum = maxSN.ToString().PadLeft(3, '0'); //075 @@ -1150,11 +1162,13 @@ select * from packingMain.SetId(GuidGenerator.Create()); packingMain.BillNum = $"{partLargeTypeObj.DicItemSort8}{ymd}{serialNum}{reportSort}"; //partLargeTypeObj.DicItemSort8包含C或T - - packingMain.VehicleModel = partLargeTypeObj.DicItemSort6; //报表显示车型 //vmLst; packingMain.BillSerialNum = serialNum; + packingMain.VehicleModel = partLargeTypeObj.DicItemSort3; //车型 + packingMain.VehicleModel_Disp = partLargeTypeObj.DicItemSort6; //车型(报表显示的) packingMain.PrintDate = ServerHelper.CurrentDateTime; + packingMain.PartType = partLargeTypeObj.DicItemCode; //零件大类 packingMain.ProductLine = billLst[0].ProductLine; + packingMain.SortId = sortId; var tempLst = curPageLst.Where(itm => string.IsNullOrEmpty(itm.VIN) == false).OrderBy(itm => itm.OnlineTime).ThenBy(itm => itm.HostSN).ToList(); if (tempLst.Count > 0) @@ -1180,41 +1194,136 @@ select * from packingDetail.VIN += "*断号*"; } //第一个零件 - if (partLargeType.Length >= 1) + if (partLargeTypes.Length >= 1) { - var partObj = billObj.BillM100Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[0]); + var partObj = billObj.BillM100Parts.FirstOrDefault(itm => itm.PartType3 == partLargeTypes[0]); if (partObj != null) { packingDetail.PartCode1 = partObj.PartCode; } } //第二个零件 - if (partLargeType.Length >= 2) + if (partLargeTypes.Length >= 2) { - var partObj = billObj.BillM100Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[1]); + var partObj = billObj.BillM100Parts.FirstOrDefault(itm => itm.PartType3 == partLargeTypes[1]); if (partObj != null) { packingDetail.PartCode2 = partObj.PartCode; } } //第三个零件 - if (partLargeType.Length >= 3) + if (partLargeTypes.Length >= 3) { - var partObj = billObj.BillM100Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[2]); + var partObj = billObj.BillM100Parts.FirstOrDefault(itm => itm.PartType3 == partLargeTypes[2]); if (partObj != null) { packingDetail.PartCode3 = partObj.PartCode; } } //第四个零件 - if (partLargeType.Length >= 4) + if (partLargeTypes.Length >= 4) { - var partObj = billObj.BillM100Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[3]); + var partObj = billObj.BillM100Parts.FirstOrDefault(itm => itm.PartType3 == partLargeTypes[3]); if (partObj != null) { packingDetail.PartCode4 = partObj.PartCode; } } + + switch (idx) + { + case 0: + if (partLargeTypeLst[0].DicItemSort5 == "厂内零件号") + { + var partCfgObj = _partCfgLst.FirstOrDefault(itm => itm.PartCode == packingDetail.PartCode1); + if (partCfgObj == null) + { + packingDetail.Remark = $"根据客户零件{packingDetail.PartCode1}无法取得厂内零件"; + } + else + { + packingDetail.ScanPartCode = partCfgObj.RelationKey; + } + } + else + { + packingDetail.ScanPartCode = packingDetail.PartCode1; + } + break; + case 1: + if (partLargeTypeLst[0].DicItemSort5 == "厂内零件号") + { + var partCfgObj = _partCfgLst.FirstOrDefault(itm => itm.PartCode == packingDetail.PartCode2); + if (partCfgObj == null) + { + packingDetail.Remark = $"根据客户零件{packingDetail.PartCode2}无法取得厂内零件"; + } + else + { + packingDetail.ScanPartCode = partCfgObj.RelationKey; + } + } + else + { + packingDetail.ScanPartCode = packingDetail.PartCode2; + } + break; + case 2: + if (partLargeTypeLst[0].DicItemSort5 == "厂内零件号") + { + var partCfgObj = _partCfgLst.FirstOrDefault(itm => itm.PartCode == packingDetail.PartCode3); + if (partCfgObj == null) + { + packingDetail.Remark = $"根据客户零件{packingDetail.PartCode3}无法取得厂内零件"; + } + else + { + packingDetail.ScanPartCode = partCfgObj.RelationKey; + } + } + else + { + packingDetail.ScanPartCode = packingDetail.PartCode3; + } + break; + case 3: + if (partLargeTypeLst[0].DicItemSort5 == "厂内零件号") + { + var partCfgObj = _partCfgLst.FirstOrDefault(itm => itm.PartCode == packingDetail.PartCode4); + if (partCfgObj == null) + { + packingDetail.Remark = $"根据客户零件{packingDetail.PartCode4}无法取得厂内零件"; + } + else + { + packingDetail.ScanPartCode = partCfgObj.RelationKey; + } + } + else + { + packingDetail.ScanPartCode = packingDetail.PartCode4; + } + break; + case 4: + if (partLargeTypeLst[0].DicItemSort5 == "厂内零件号") + { + var partCfgObj = _partCfgLst.FirstOrDefault(itm => itm.PartCode == packingDetail.PartCode5); + if (partCfgObj == null) + { + packingDetail.Remark = $"根据客户零件{packingDetail.PartCode5}无法取得厂内零件"; + } + else + { + packingDetail.ScanPartCode = partCfgObj.RelationKey; + } + } + else + { + packingDetail.ScanPartCode = packingDetail.PartCode5; + } + break; + } + packingDetail.SN = sn.ToString(); packingMain.Details.Add(packingDetail); sn++; @@ -3583,9 +3692,11 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN } } + _partCfgLst = await _partCfgRepository.GetListAsync(); + //取零件大类字典 List partLargeTypeLst = await _dicItemRepository.GetListAsync(itm => itm.DicTypeCode == "零件大类"); partLargeTypeLst = partLargeTypeLst.OrderBy(itm => itm.DicItemSort2).ThenBy(itm => itm.DicItemSort1).ToList(); - + //取M100数据 ListResultDto tempLst = await GetMBReportDetailList(input, true); //----------------------------- List billLst = tempLst.Item; if (tempLst.Status == false) @@ -3595,18 +3706,18 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN return ret; } - _logger.LogWarning($"SaveMenBanReport读取数据 - {sw.ElapsedMilliseconds}毫秒"); + //_logger.LogWarning($"SaveMenBanReport读取数据 - {sw.ElapsedMilliseconds}毫秒"); int pageCnt = (int)Math.Ceiling(billLst.Count / 12.0); //每页打印12列,取打印页数 - //double maxBillNum = 0; - //DateTime printTime = ServerHelper.CurrentDateTime; //过滤产线(DicItemSort2),按“报表分类”(DicItemSort4)分组,分组后按DicItemSort7排序 Dictionary> reportSortDic = partLargeTypeLst .Where(itm => itm.DicItemSort2 == input.ProductLine && string.IsNullOrEmpty(itm.DicItemSort4) == false) .GroupBy(itm => itm.DicItemSort4) - .ToDictionary(itm => itm.Key, it2 => it2.OrderBy(itm => itm.DicItemSort7).ToList()); + .ToDictionary(itm => itm.Key, it2 => it2.OrderBy(itm => itm.DicItemSort7).ToList()); + + Guid sortId = GuidGenerator.Create(); //每次打印所有记录的SortId是相同的 for (int pageIdx = 0; pageIdx < pageCnt; pageIdx++) { @@ -3616,24 +3727,24 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN //生成顺序号:按生产线分组,取当前生产线的最大流水号:001至999往复循环 double maxSN = await _lineSNDomianService.GetMaxSN(ProductTypeEnum.门板, input.ProductLine, string.Empty); - MenBanPackingList packingObj = DoMBPrint(input, pageIdx, maxSN, billLst, reportSortItem.Key, reportSortItem.Value); + MenBanPackingList packingObj = DoMBPrint(input, pageIdx, maxSN, billLst, reportSortItem.Key, reportSortItem.Value, sortId); reportMainLst.Add(packingObj); } } - _logger.LogWarning($"SaveMenBanReport转换数据 - {sw.ElapsedMilliseconds}毫秒"); + //_logger.LogWarning($"SaveMenBanReport转换数据 - {sw.ElapsedMilliseconds}毫秒"); //插入门板打印记录表 await _menBanPackingListRepository.InsertManyAsync(reportMainLst, true); retLst.AddRange(reportMainLst.Select(itm => itm.Id)); - _logger.LogWarning($"SaveMenBanReport插入门板打印记录表 - {sw.ElapsedMilliseconds}毫秒"); + //_logger.LogWarning($"SaveMenBanReport插入门板打印记录表 - {sw.ElapsedMilliseconds}毫秒"); //调用派格版库存接口 //await SaveMiddleTable_MB(reportMainLst); - _logger.LogWarning($"SaveMenBanReport插入中间表 - {sw.ElapsedMilliseconds}毫秒"); + //_logger.LogWarning($"SaveMenBanReport插入中间表 - {sw.ElapsedMilliseconds}毫秒"); //更新M100的门板打印标志:BillStatus=3 @@ -3654,102 +3765,13 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN //} } - _logger.LogWarning($"SaveMenBanReport更新M100的门板打印标志 - {sw.ElapsedMilliseconds}毫秒"); + //_logger.LogWarning($"SaveMenBanReport更新M100的门板打印标志 - {sw.ElapsedMilliseconds}毫秒"); } //else if (input.PrintType == PrintTypeEnum.重新打印) //和正常打印单据完全一样,可以打印部分单据 //{ // throw new BusinessException("请调用LoadMenBanReport方法!"); //} - //else if (input.PrintType == PrintTypeEnum.补打) - //{ - // List billLst = _billM100Repository.Where(itm => input.M100IdList.Contains(itm.Id)).OrderBy(itm => itm.SerialNumStr).ToList(); - // if (billLst.Count == 0) - // { - // ret.Message = "没有补打的单据,请先选择要补打的单据!"; - // ret.Status = false; - // return ret; - // } - - // int pageCnt = (int)Math.Ceiling(billLst.Count / 12.0); //每页打印12列,取打印页数 - - // double maxBillNum = 0; - - // DateTime printTime = ServerHelper.CurrentDateTime; - - // for (int pageIdx = 0; pageIdx < pageCnt; pageIdx++) - // { - // //取右上角顺序号:按生产线分组,取当前生产线的最大流水号:01至99循环,例如01左、01右 - // double maxSN = 0; // await _lineSNDomianService.GetMaxSN(ProductTypeEnum.门板, input.ProductLine, string.Empty); - // // 先打印两张:左后左前,再打印两张:右后右前 - // List leftLst = DoMBPrint(input, pageIdx, ref maxBillNum, maxSN, printTime, billLst, "左"); - // List rightLst = DoMBPrint(input, pageIdx, ref maxBillNum, maxSN, printTime, billLst, "右"); - - // //作废时需要同时作废相同VIN的左右两页,SortId相同表示是同一组左右 - // Guid sortId = GuidGenerator.Create(); - // foreach (var leftItm in leftLst) - // { - // leftItm.SortId = sortId; - // } - // foreach (var rightItm in rightLst) - // { - // rightItm.SortId = sortId; - // } - - // reportMainLst.AddRange(rightLst); - // reportMainLst.AddRange(leftLst); - // } - // //校验底盘号、零件是否重复打印 - // string checkVinPartRepeatSql = @" - // select top 1 a.BillNum from FisMenBanPackingList a join FisMenBanPackingRec b - // on a.Id = b.MenBanPackingListId - // where a.ReportStatus = 0 - // and b.VIN = '{0}' and (TopSAPMaterialNum = '{1}' or BelowSAPMaterialNum = '{1}') - // "; - // foreach (MenBanPackingList reportMainObj in reportMainLst) - // { - // foreach (MenBanPackingRec reportRecObj in reportMainObj.Details) - // { - // string sql1 = string.Format(checkVinPartRepeatSql, reportRecObj.VIN, reportRecObj.PartCode2); - // string checkVinPartRepeatBillNum1 = _newJitDapperRepository.GetSingleBySql(sql1, true); - // if (string.IsNullOrEmpty(checkVinPartRepeatBillNum1) == false) - // { - // throw new BusinessException("1001", $"与装箱单号{checkVinPartRepeatBillNum1}中的底盘号{reportRecObj.VIN}、零件号{reportRecObj.PartCode2}之间重复!"); - // } - - // string sql2 = string.Format(checkVinPartRepeatSql, reportRecObj.VIN, reportRecObj.PartCode4); - // string checkVinPartRepeatBillNum2 = _newJitDapperRepository.GetSingleBySql(sql2, true); - // if (string.IsNullOrEmpty(checkVinPartRepeatBillNum2) == false) - // { - // throw new BusinessException("1001", $"与装箱单号{checkVinPartRepeatBillNum2}中的底盘号{reportRecObj.VIN}、零件号{reportRecObj.PartCode4}之间重复!"); - // } - // } - // } - - // //调用派格版库存接口 - // await SaveMiddleTable_MB(reportMainLst); - - // //插入门板打印记录表 - // //await _menBanPackingListRepository.InsertManyAsync(reportMainLst); - // foreach (var reportMainObj in reportMainLst) - // { - // var insObj = await _menBanPackingListRepository.InsertAsync(reportMainObj, true); - // if (insObj != null) - // { - // retLst.Add(insObj.Id); - // } - // } - // //更新M100的门板打印标志:BillStatus=3 - // foreach (BillM100 billObj in billLst) - // { - // if (billObj.BillStatus == BillStatusEnum.Match) - // { - // billObj.SetBillStatus(BillStatusEnum.Publish); - // billObj.PrintTime = ServerHelper.CurrentDateTime; - // await _billM100Repository.UpdateAsync(billObj); - // } - // } - //} //补打if await uow.CompleteAsync(); ret.Status = true; ret.Item = retLst; @@ -4652,7 +4674,7 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN // _zhbCacheList = _materialExtRepository.Where(itm => itm.MaterialType == "2").ToList(); //取柱护板零件 - // _logger.LogWarning($"SaveZhuHuBanReport 加载缓存 - {sw.ElapsedMilliseconds}毫秒"); + // //_logger.LogWarning($"SaveZhuHuBanReport 加载缓存 - {sw.ElapsedMilliseconds}毫秒"); @@ -4673,7 +4695,7 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN // forWMSLst.AddRange(acLstOnlyWMSUse); - // _logger.LogWarning($"SaveZhuHuBanReport 转换A上C上 - {sw.ElapsedMilliseconds}毫秒"); + // //_logger.LogWarning($"SaveZhuHuBanReport 转换A上C上 - {sw.ElapsedMilliseconds}毫秒"); @@ -4730,7 +4752,7 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN // forWMSLst.AddRange(hsLst2); - // _logger.LogWarning($"SaveZhuHuBanReport 转换除A上C上的其它 - {sw.ElapsedMilliseconds}毫秒"); + // //_logger.LogWarning($"SaveZhuHuBanReport 转换除A上C上的其它 - {sw.ElapsedMilliseconds}毫秒"); @@ -4739,7 +4761,7 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN // #endregion - // _logger.LogWarning($"SaveZhuHuBanReport 保存中间库 - {sw.ElapsedMilliseconds}毫秒"); + // //_logger.LogWarning($"SaveZhuHuBanReport 保存中间库 - {sw.ElapsedMilliseconds}毫秒"); @@ -4758,7 +4780,7 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN // await _zhuHuBanPackingListRepository.InsertManyAsync(reportMainLst); - // _logger.LogWarning($"SaveZhuHuBanReport 插入柱护板打印记录表 - {sw.ElapsedMilliseconds}毫秒"); + // //_logger.LogWarning($"SaveZhuHuBanReport 插入柱护板打印记录表 - {sw.ElapsedMilliseconds}毫秒"); @@ -4774,7 +4796,7 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN // await _billM100Repository.UpdateManyAsync(updLst); - // _logger.LogWarning($"SaveZhuHuBanReport 更新M100的柱护板打印标志 - {sw.ElapsedMilliseconds}毫秒"); + // //_logger.LogWarning($"SaveZhuHuBanReport 更新M100的柱护板打印标志 - {sw.ElapsedMilliseconds}毫秒"); // } // else if (input.PrintType == PrintTypeEnum.重新打印) //和正常打印单据完全一样,可以打印部分单据 @@ -4896,7 +4918,7 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN // await uow.CompleteAsync(); - // _logger.LogWarning($"SaveZhuHuBanReport CompleteAsync - {sw.ElapsedMilliseconds}毫秒"); + // //_logger.LogWarning($"SaveZhuHuBanReport CompleteAsync - {sw.ElapsedMilliseconds}毫秒"); // ret.Status = true; // ret.Item = retLst; @@ -4954,7 +4976,7 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN // } - // _logger.LogWarning($"LoadZhuHuBanReport 取柱护板数据 - {sw.ElapsedMilliseconds}毫秒"); + // //_logger.LogWarning($"LoadZhuHuBanReport 取柱护板数据 - {sw.ElapsedMilliseconds}毫秒"); // //按大众顺序号排序 @@ -5083,7 +5105,7 @@ select min(SerialNumStr) from FisBillM100 a left join d on a.VIN=d.VIN // #endregion - // _logger.LogWarning($"LoadZhuHuBanReport 排序及转换 - {sw.ElapsedMilliseconds}毫秒"); + // //_logger.LogWarning($"LoadZhuHuBanReport 排序及转换 - {sw.ElapsedMilliseconds}毫秒"); // ret.Status = true; // return ret; diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/MenBanPackingRecService.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/MenBanPackingRecService.cs index 4925f91..489d626 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/MenBanPackingRecService.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/MenBanPackingRecService.cs @@ -382,13 +382,13 @@ namespace Win.Sfs.SettleAccount.FISes #region 格拉默 [HttpGet] [Route("get-packinglist-by-billnum")] - public async Task> GetPackingListByBillNum(string billNum) + public async Task> GetPackingListByBillNum(string billNum) { _logger.LogDebug(_errorMessagePrefix + "GetPackingListByBillNum 进入"); - + WY.NewJit.ListResultDto ret = new WY.NewJit.ListResultDto(); try { - List dicItemLst = await _dicItemRepository.GetListAsync(itm => itm.DicTypeCode == "零件大类"); + List partLargeTypeLst = await _dicItemRepository.GetListAsync(itm => itm.DicTypeCode == "零件大类"); List partCfgLst = await _partCfgRepository.GetListAsync(); @@ -443,16 +443,17 @@ namespace Win.Sfs.SettleAccount.FISes //第一个零件 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 partLargeTypeObj = partLargeTypeLst.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 (partLargeTypeObj.DicItemSort5 == "客户零件号") { if (partCfgObj != null) { detailObj.PartCode1 = partCfgObj.PartCode; } } - else if (dicItemObj.DicItemSort5 == "厂内零件") + else if (partLargeTypeObj.DicItemSort5 == "厂内零件号") { if (partCfgObj != null) { @@ -463,16 +464,16 @@ namespace Win.Sfs.SettleAccount.FISes //第二个零件 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 dicItemObj = partLargeTypeLst.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 (dicItemObj.DicItemSort5 == "客户零件号") { if (partCfgObj != null) { detailObj.PartCode2 = partCfgObj.PartCode; } } - else if (dicItemObj.DicItemSort5 == "厂内零件") + else if (dicItemObj.DicItemSort5 == "厂内零件号") { if (partCfgObj != null) { @@ -483,16 +484,16 @@ namespace Win.Sfs.SettleAccount.FISes //第三个零件 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 dicItemObj = partLargeTypeLst.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 (dicItemObj.DicItemSort5 == "客户零件号") { if (partCfgObj != null) { detailObj.PartCode3 = partCfgObj.PartCode; } } - else if (dicItemObj.DicItemSort5 == "厂内零件") + else if (dicItemObj.DicItemSort5 == "厂内零件号") { if (partCfgObj != null) { @@ -503,16 +504,16 @@ namespace Win.Sfs.SettleAccount.FISes //第四个零件 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 dicItemObj = partLargeTypeLst.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 (dicItemObj.DicItemSort5 == "客户零件号") { if (partCfgObj != null) { detailObj.PartCode4 = partCfgObj.PartCode; } } - else if (dicItemObj.DicItemSort5 == "厂内零件") + else if (dicItemObj.DicItemSort5 == "厂内零件号") { if (partCfgObj != null) { @@ -526,27 +527,42 @@ namespace Win.Sfs.SettleAccount.FISes #endregion #endregion - return targetLst; + ret.Status = true; + ret.Item = targetLst; + return ret; } catch (Exception ex) { string errorMsg = _errorMessagePrefix + "GetPackingListByBillNum 执行出错:" + ex.Message; _logger.LogError(errorMsg); - throw new UserFriendlyException(errorMsg); + ret.Status = false; + ret.Message = errorMsg; + return ret; } } [HttpPost] [Route("update-scan-status")] - public virtual async Task UpdateScanStatus(string billNum) + public virtual async Task UpdateScanStatus(string billNum) { - var lst = await _menBanPackingListRepository.GetListAsync(itm => itm.BillNum == billNum); - foreach (var item in lst) + ObjectResultDto ret = new ObjectResultDto(); + try + { + var lst = await _menBanPackingListRepository.GetListAsync(itm => itm.BillNum == billNum); + foreach (var item in lst) + { + item.ReportStatus = ReportStatusEnum.已扫描; + var succ = await _menBanPackingListRepository.UpdateAsync(item); + } + ret.Status = true; + return ret; + } + catch (Exception ex) { - item.ReportStatus = ReportStatusEnum.已扫描; - var succ = await _menBanPackingListRepository.UpdateAsync(item); + ret.Status = false; + ret.Message = $"调用UpdateScanStatus方法报错:{ex.Message}"; + throw; } - return true; } #endregion diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM110s/BillM110AppService.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM110s/BillM110AppService.cs index 2dfb650..3d25573 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM110s/BillM110AppService.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM110s/BillM110AppService.cs @@ -897,90 +897,90 @@ select * from /// /// /// - private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, int pageIdx, double maxSN, List billLst, string reportSort, string[] partLargeType) - { - const int _colNumberPerPage = 12; + //private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, int pageIdx, double maxSN, List billLst, string reportSort, string[] partLargeType) + //{ + // const int _colNumberPerPage = 12; - //取当前页内容 - List curPageLst = billLst.Skip(pageIdx * _colNumberPerPage).Take(_colNumberPerPage).ToList(); + // //取当前页内容 + // List 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 + // var vmLst = curPageLst.Select(itm => itm.VehicleModelCode).Distinct().JoinAsString(","); //取车型 + // string ymd = ServerHelper.CurrentDateTime.ToString("yyyyMMdd"); + // string serialNum = maxSN.ToString().PadLeft(3, '0'); //075 - MenBanPackingList packingMain = new MenBanPackingList(); - packingMain.SetId(GuidGenerator.Create()); - packingMain.BillNum = $"C{ymd}{serialNum}{reportSort}"; - packingMain.VehicleModel = vmLst; - packingMain.BillSerialNum = serialNum; - packingMain.PrintDate = ServerHelper.CurrentDateTime; - packingMain.ProductLine = billLst[0].ProductLine; + // MenBanPackingList packingMain = new MenBanPackingList(); + // packingMain.SetId(GuidGenerator.Create()); + // packingMain.BillNum = $"C{ymd}{serialNum}{reportSort}"; + // packingMain.VehicleModel = vmLst; + // packingMain.BillSerialNum = serialNum; + // packingMain.PrintDate = ServerHelper.CurrentDateTime; + // packingMain.ProductLine = billLst[0].ProductLine; - var tempLst = curPageLst.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; - packingMain.EndVin = tempLst[tempLst.Count - 1].VIN; - packingMain.BeginHostSN = tempLst[0].HostSN.ToString(); - packingMain.EndHostSN = tempLst[tempLst.Count - 1].HostSN.ToString(); - } - packingMain.MinOnlineTime = tempLst.Min(itm => itm.OnlineTime); //本单据最早的上线时间 - //明细 - int sn = 1; - foreach (BillM110 billObj in curPageLst) - { - MenBanPackingRec packingDetail = new MenBanPackingRec(); - packingDetail.SetId(GuidGenerator.Create()); - packingDetail.M100BillId = billObj.Id; - packingDetail.KNR = billObj.KNR; - packingDetail.VIN = billObj.VIN; - packingDetail.HostSN = billObj.HostSN?.ToString(); - if (billObj.VIN == null) - { - packingDetail.VIN += "*断号*"; - } - //第一个零件 - if (partLargeType.Length >= 1) - { - var partObj = billObj.BillM110Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[0]); - if (partObj != null) - { - packingDetail.PartCode1 = partObj.PartCode; - } - } - //第二个零件 - if (partLargeType.Length >= 2) - { - var partObj = billObj.BillM110Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[1]); - if (partObj != null) - { - packingDetail.PartCode2 = partObj.PartCode; - } - } - //第三个零件 - if (partLargeType.Length >= 3) - { - var partObj = billObj.BillM110Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[2]); - if (partObj != null) - { - packingDetail.PartCode3 = partObj.PartCode; - } - } - //第四个零件 - if (partLargeType.Length >= 4) - { - var partObj = billObj.BillM110Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[3]); - if (partObj != null) - { - packingDetail.PartCode4 = partObj.PartCode; - } - } - packingDetail.SN = sn.ToString(); - packingMain.Details.Add(packingDetail); - sn++; - } - return packingMain; - } + // var tempLst = curPageLst.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; + // packingMain.EndVin = tempLst[tempLst.Count - 1].VIN; + // packingMain.BeginHostSN = tempLst[0].HostSN.ToString(); + // packingMain.EndHostSN = tempLst[tempLst.Count - 1].HostSN.ToString(); + // } + // packingMain.MinOnlineTime = tempLst.Min(itm => itm.OnlineTime); //本单据最早的上线时间 + // //明细 + // int sn = 1; + // foreach (BillM110 billObj in curPageLst) + // { + // MenBanPackingRec packingDetail = new MenBanPackingRec(); + // packingDetail.SetId(GuidGenerator.Create()); + // packingDetail.M100BillId = billObj.Id; + // packingDetail.KNR = billObj.KNR; + // packingDetail.VIN = billObj.VIN; + // packingDetail.HostSN = billObj.HostSN?.ToString(); + // if (billObj.VIN == null) + // { + // packingDetail.VIN += "*断号*"; + // } + // //第一个零件 + // if (partLargeType.Length >= 1) + // { + // var partObj = billObj.BillM110Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[0]); + // if (partObj != null) + // { + // packingDetail.PartCode1 = partObj.PartCode; + // } + // } + // //第二个零件 + // if (partLargeType.Length >= 2) + // { + // var partObj = billObj.BillM110Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[1]); + // if (partObj != null) + // { + // packingDetail.PartCode2 = partObj.PartCode; + // } + // } + // //第三个零件 + // if (partLargeType.Length >= 3) + // { + // var partObj = billObj.BillM110Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[2]); + // if (partObj != null) + // { + // packingDetail.PartCode3 = partObj.PartCode; + // } + // } + // //第四个零件 + // if (partLargeType.Length >= 4) + // { + // var partObj = billObj.BillM110Parts.FirstOrDefault(itm => itm.PartType3 == partLargeType[3]); + // if (partObj != null) + // { + // packingDetail.PartCode4 = partObj.PartCode; + // } + // } + // packingDetail.SN = sn.ToString(); + // packingMain.Details.Add(packingDetail); + // sn++; + // } + // return packingMain; + //} /// /// 上箱位号加前缀 diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml index eaa1594..b95e117 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml @@ -1045,15 +1045,15 @@ - + - 打印左侧或右侧门板 + 将M100转换成MenBanPackingList主子表 - 报表分类,dui + 报表分类,对应DicItemSort4 零件大类字典项 @@ -1410,19 +1410,6 @@ - - - 打印左侧或右侧门板 - - - - - - - - - - 根据筛选条件获取分页实体列表 diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingList.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingList.cs index 746dabb..6aa4fde 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingList.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingList.cs @@ -30,6 +30,10 @@ namespace WY.NewJit.Extends /// public string VehicleModel { get; set; } + /// + /// 报表显示车型 + /// + public string VehicleModel_Disp { get; set; } /// /// 供应商厂家代码 diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingRec.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingRec.cs index 06e74af..21d2c85 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingRec.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingRec.cs @@ -64,7 +64,15 @@ namespace WY.NewJit.Extends /// public virtual string SN { get; set; } + /// + /// 扫描零件号,供发运使用 + /// + public string ScanPartCode { get; set; } + /// + /// 备注 + /// + public string Remark { get; set; } public void SetId(Guid id) {