Browse Source

开发其它,开发发运接口

master
me 1 day ago
parent
commit
655f97fce0
  1. 4
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingListDto.cs
  2. 10
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/Extends/MenBanReports/MenBanPackingRecDto.cs
  3. 20
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application.Contracts/WY.NewJit.Application.Contracts.xml
  4. 268
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/BillM100AppService.cs
  5. 62
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/MenBanPackingRecService.cs
  6. 160
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM110s/BillM110AppService.cs
  7. 19
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml
  8. 4
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingList.cs
  9. 8
      Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/Extends/PaiGe/MenBanReports/MenBanPackingRec.cs

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

@ -32,6 +32,10 @@ namespace WY.NewJit.Extends
/// </summary>
public string VehicleModel { get; set; }
/// <summary>
/// 报表显示车型
/// </summary>
public string VehicleModel_Disp { get; set; }
/// <summary>
/// 供应商厂家代码

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

@ -75,9 +75,15 @@ namespace WY.NewJit.Extends
/// </summary>
public virtual string SN { get; set; }
/// <summary>
/// 扫描零件号,供发运使用
/// </summary>
public string ScanPartCode { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
}

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

@ -24,6 +24,11 @@
左或右
</summary>
</member>
<member name="P:WY.NewJit.Extends.MenBanPackingListDto.VehicleModel_Disp">
<summary>
报表显示车型
</summary>
</member>
<member name="P:WY.NewJit.Extends.MenBanPackingListDto.ProviderCode">
<summary>
供应商厂家代码
@ -184,6 +189,16 @@
上箱位号
</summary>
</member>
<member name="P:WY.NewJit.Extends.MenBanPackingRecDto.ScanPartCode">
<summary>
扫描零件号,供发运使用
</summary>
</member>
<member name="P:WY.NewJit.Extends.MenBanPackingRecDto.Remark">
<summary>
备注
</summary>
</member>
<member name="P:WY.NewJit.Extends.MenBanPrintInputDto.PrintType">
<summary>
打印类型:提供初次打印、重新打印、针对重新解析后单据的补打功能
@ -209,11 +224,6 @@
装箱单主表ID列表,报废时传入一个,重打时可传入多个
</summary>
</member>
<member name="P:WY.NewJit.Extends.MenBanPrintInputDto.M100IdList">
<summary>
补打时使用
</summary>
</member>
<member name="P:WY.NewJit.Extends.MenBanPrintResultDto.MasterList">
<summary>
门板主实体列表

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

@ -157,6 +157,8 @@ namespace WY.NewJit.MsgCheck
private List<MaterialExt> _zhbCacheList = new List<MaterialExt>();
private string _topBoxPositionNumPrefix;
private List<PartCfg> _partCfgLst;
#endregion
#region 构造函数
@ -1132,17 +1134,27 @@ select * from
/// <param name="reportSort">报表分类,对应DicItemSort4</param>
/// <param name="partLargeTypeLst">零件大类字典项</param>
/// <returns></returns>
private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, int pageIdx, double maxSN, List<BillM100> billLst, string reportSort, List<DicItem> partLargeTypeLst)
private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, int pageIdx, double maxSN, List<BillM100> billLst, string reportSort, List<DicItem> 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<BillM100> 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<DicItem> partLargeTypeLst = await _dicItemRepository.GetListAsync(itm => itm.DicTypeCode == "零件大类");
partLargeTypeLst = partLargeTypeLst.OrderBy(itm => itm.DicItemSort2).ThenBy(itm => itm.DicItemSort1).ToList();
//取M100数据
ListResultDto<BillM100> tempLst = await GetMBReportDetailList(input, true); //-----------------------------
List<BillM100> 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<string, List<DicItem>> 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<BillM100> 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<MenBanPackingList> leftLst = DoMBPrint(input, pageIdx, ref maxBillNum, maxSN, printTime, billLst, "左");
// List<MenBanPackingList> 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<string>(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<string>(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;

62
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<List<MenBanPackingListDto>> GetPackingListByBillNum(string billNum)
public async Task<WY.NewJit.ListResultDto<MenBanPackingListDto>> GetPackingListByBillNum(string billNum)
{
_logger.LogDebug(_errorMessagePrefix + "GetPackingListByBillNum 进入");
WY.NewJit.ListResultDto<MenBanPackingListDto> ret = new WY.NewJit.ListResultDto<MenBanPackingListDto>();
try
{
List<DicItem> dicItemLst = await _dicItemRepository.GetListAsync(itm => itm.DicTypeCode == "零件大类");
List<DicItem> partLargeTypeLst = await _dicItemRepository.GetListAsync(itm => itm.DicTypeCode == "零件大类");
List<PartCfg> 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<bool> UpdateScanStatus(string billNum)
public virtual async Task<ObjectResultDto> 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

160
Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM110s/BillM110AppService.cs

@ -897,90 +897,90 @@ select * from
/// <param name="billLst"></param>
/// <param name="partLargeType"></param>
/// <returns></returns>
private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, int pageIdx, double maxSN, List<BillM110> billLst, string reportSort, string[] partLargeType)
{
const int _colNumberPerPage = 12;
//private MenBanPackingList DoMBPrint(MenBanPrintInputDto input, int pageIdx, double maxSN, List<BillM110> billLst, string reportSort, string[] partLargeType)
//{
// const int _colNumberPerPage = 12;
//取当前页内容
List<BillM110> curPageLst = billLst.Skip(pageIdx * _colNumberPerPage).Take(_colNumberPerPage).ToList();
// //取当前页内容
// List<BillM110> 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;
//}
/// <summary>
/// 上箱位号加前缀

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

@ -1045,15 +1045,15 @@
<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})">
<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)">
<summary>
打印左侧或右侧门板
将M100转换成MenBanPackingList主子表
</summary>
<param name="input"></param>
<param name="pageIdx"></param>
<param name="maxSN"></param>
<param name="billLst"></param>
<param name="reportSort">报表分类,dui</param>
<param name="reportSort">报表分类,对应DicItemSort4</param>
<param name="partLargeTypeLst">零件大类字典项</param>
<returns></returns>
</member>
@ -1410,19 +1410,6 @@
<param name="billLst"></param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.DoMBPrint(WY.NewJit.Extends.MenBanPrintInputDto,System.Int32,System.Double,System.Collections.Generic.List{WY.NewJit.MsgCheck.BillM110},System.String,System.String[])">
<summary>
打印左侧或右侧门板
</summary>
<param name="input"></param>
<param name="pageIdx"></param>
<param name="maxBillNum"></param>
<param name="maxSN"></param>
<param name="printTime"></param>
<param name="billLst"></param>
<param name="partLargeType"></param>
<returns></returns>
</member>
<member name="M:WY.NewJit.MsgCheck.BillM110AppService.GetListAsync(WY.NewJit.MsgCheck.QueryBillM110Dto)">
<summary>
根据筛选条件获取分页实体列表

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

@ -30,6 +30,10 @@ namespace WY.NewJit.Extends
/// </summary>
public string VehicleModel { get; set; }
/// <summary>
/// 报表显示车型
/// </summary>
public string VehicleModel_Disp { get; set; }
/// <summary>
/// 供应商厂家代码

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

@ -64,7 +64,15 @@ namespace WY.NewJit.Extends
/// </summary>
public virtual string SN { get; set; }
/// <summary>
/// 扫描零件号,供发运使用
/// </summary>
public string ScanPartCode { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
public void SetId(Guid id)
{

Loading…
Cancel
Save