Compare commits

..

10 Commits

Author SHA1 Message Date
b1c7e750c1 测试 2025-07-15 11:04:35 +08:00
32b851ac69 测试 2025-07-15 10:44:39 +08:00
41ef8ff89b 修改了同步 2025-07-15 10:35:37 +08:00
e8e4992dbe 去重 2025-07-11 15:38:16 +08:00
fdd9a20a16 修改了出库任务单导出出库数量 2025-07-10 16:20:10 +08:00
c862dd4930 修改了不显示同步状态 2025-07-10 11:02:02 +08:00
75e3523652 修改了客户显示 2025-07-10 10:37:39 +08:00
4b1426b16b 修改了出库是否作废 2025-07-09 17:30:12 +08:00
b0da28a375 修改了上传 2025-07-09 15:10:48 +08:00
07c3efb853 22 2025-07-09 09:19:01 +08:00
16 changed files with 183 additions and 24 deletions

View File

@@ -1372,6 +1372,11 @@
产品分组(3级)名称 产品分组(3级)名称
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpMaterialDto.FProductIDS">
<summary>
物料32进制
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Erp.Org.ErpOrgDto"> <member name="T:WMS.Web.Core.Dto.Erp.Org.ErpOrgDto">
<summary> <summary>
金蝶组织-基本信息 金蝶组织-基本信息
@@ -6140,11 +6145,6 @@
创建时间(出库时间) 创建时间(出库时间)
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.OutStock.OutStockQueryInfoResponse.SuccessSync">
<summary>
同步成功或者失败 null 就是未同步
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStock.OutStockQueryInfoResponse.SourceBillNoList"> <member name="P:WMS.Web.Core.Dto.OutStock.OutStockQueryInfoResponse.SourceBillNoList">
<summary> <summary>
来源单号(集合) 来源单号(集合)

View File

@@ -1579,6 +1579,11 @@
产品分组(3级)名称 产品分组(3级)名称
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.Materials.FProductIDS">
<summary>
物料32进制Id
</summary>
</member>
<member name="T:WMS.Web.Domain.Entitys.MoveBoxRecord"> <member name="T:WMS.Web.Domain.Entitys.MoveBoxRecord">
<summary> <summary>
wms移箱记录 wms移箱记录

View File

@@ -20,6 +20,7 @@ namespace WMS.Web.Core.Dto.Erp
this.Id = id; this.Id = id;
} }
/// <summary> /// <summary>
/// 单据Id /// 单据Id
/// </summary> /// </summary>

View File

@@ -115,5 +115,11 @@ namespace WMS.Web.Core.Dto.Erp
public string FMaterialGroupFName { get; set; } public string FMaterialGroupFName { get; set; }
/// <summary>
/// 物料32进制
/// </summary>
public string FProductIDS { get; set; }
} }
} }

View File

@@ -86,12 +86,12 @@ namespace WMS.Web.Core.Dto.OutStock
/// </summary> /// </summary>
[Column("出库时间")] [Column("出库时间")]
public string CreateTime { get; set; } public string CreateTime { get; set; }
/// <summary> ///// <summary>
/// 同步成功或者失败 null 就是未同步 ///// 同步成功或者失败 null 就是未同步
/// </summary> ///// </summary>
[Column("金蝶同步状态")] //[Column("金蝶同步状态")]
public string SuccessSync { get; set; } //public string SuccessSync { get; set; }
/// <summary> /// <summary>
/// 来源单号(集合) /// 来源单号(集合)
///</summary> ///</summary>

View File

@@ -161,9 +161,9 @@ namespace WMS.Web.Core.Dto.OutStockTask
/// 是否作废 /// 是否作废
///</summary> ///</summary>
[Column("是否作废")] [Column("是否作废")]
public bool IsRepeal { get; set; } // public bool IsRepeal { get; set; }
public string IsRepeal { get; set; }
} }
} }

View File

@@ -102,8 +102,15 @@ namespace WMS.Web.Domain.Entitys
this.SuccessSync = SyncStatus.SyncIng; this.SuccessSync = SyncStatus.SyncIng;
this.ErpDetails.ForEach(f => f.SuccessSync = SyncStatus.SyncIng); this.ErpDetails.ForEach(f => f.SuccessSync = SyncStatus.SyncIng);
} }
else if (this.Type == InstockType.ProduceSotck)
{
this.SuccessSync = SyncStatus.SyncIng;
this.ErpDetails.ForEach(f => f.SuccessSync = SyncStatus.SyncIng);
}
else//非采购订单这里就没有记录erpdetails的数据了 else//非采购订单这里就没有记录erpdetails的数据了
{
this.SuccessSync = SyncStatus.Success; this.SuccessSync = SyncStatus.Success;
}
} }
/// <summary> /// <summary>

View File

@@ -103,6 +103,11 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
public string FMaterialGroupFName { get; set; } public string FMaterialGroupFName { get; set; }
/// <summary>
/// 物料32进制Id
/// </summary>
public string FProductIDS { get; set; }

View File

@@ -24,6 +24,9 @@ namespace WMS.Web.Domain.Infrastructure
Task<List<OutStockTask>> GetEntityList(List<int> ids); Task<List<OutStockTask>> GetEntityList(List<int> ids);
/// 查询实体集合 /// 查询实体集合
Task<List<OutStockTask>> GetEntityListByStatus(); Task<List<OutStockTask>> GetEntityListByStatus();
Task<List<SerialNumbers>> GetEntityList(List<string> serialNumbers);
Task<List<SerialNumbers>> GetEntityListBySuitNumber(string suitNumber);
/// 查询实体集合(明细Id) /// 查询实体集合(明细Id)
Task<List<OutStockTask>> GetEntityListByDetailIds(List<int> ids); Task<List<OutStockTask>> GetEntityListByDetailIds(List<int> ids);
/// <summary> /// <summary>

View File

@@ -707,8 +707,16 @@ namespace WMS.Web.Domain.Services
} }
else else
{ {
string hadsavel = "";
foreach (var s in d.SerialNumberList) foreach (var s in d.SerialNumberList)
{ {
//先跟据条码查询对应的
List<string> l= new List<string>();
l.Add(s.ToString());
var serialNumbers = await _outStockTaskRepositories.GetEntityList(l);
// hadsavel = hadsavel + serialNumbers[0].TwoSerialNumber;
list.Add(new ExportInfoResponse() list.Add(new ExportInfoResponse()
{ {
SourceBillNo = response.SourceBillNo, SourceBillNo = response.SourceBillNo,
@@ -725,15 +733,28 @@ namespace WMS.Web.Domain.Services
BoxWide = d.BoxWide, BoxWide = d.BoxWide,
BoxHigh = d.BoxHigh, BoxHigh = d.BoxHigh,
BoxWeight = d.BoxWeight, BoxWeight = d.BoxWeight,
SerialNumbers = s Qty = d.Qty,
AccruedQty = d.AccruedQty,
SerialNumbers = serialNumbers[0].TwoSerialNumber
}); });
} }
} }
} }
} }
var list2 = list.GroupBy(p => new { p.SourceBillNo, p.SaleBillNo,p.ReceiptCustomer, p.CreateTime, p.BoxBillNo, p.Specifications, p.MaterialName, p.MaterialNumber, p.BarCode, p.IndexNumber, p.BoxLength, p.BoxWide, p.BoxHigh, p.BoxWeight, p.Qty, p.AccruedQty, p.SerialNumbers }) // Group by Name and Age properties
.Select(g => g.First()) // Select the first item of each group (arbitrary choice)
.ToList(); // Convert back to list if needed. If you only need the distinct items, you can skip this step.
// list.Distinct().ToList();
var _exportExcelService = scope.ServiceProvider.GetRequiredService<IExportExcelService>(); var _exportExcelService = scope.ServiceProvider.GetRequiredService<IExportExcelService>();
await _exportExcelService.Export(list, fileName, loginInfo.UserInfo.StaffId, loginInfo.UserInfo.CompanyId, FileDownLoadOrderType.OutStockTaskInfo); await _exportExcelService.Export(list2, fileName, loginInfo.UserInfo.StaffId, loginInfo.UserInfo.CompanyId, FileDownLoadOrderType.OutStockTaskInfo);
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@@ -1154,7 +1154,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶物料:拼接参数和条件 //3.获取金蝶物料:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data); var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString()); var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString());
param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FBaseUnitId,FBaseUnitId.FName,FBaseUnitId.FNumber,FBARCODE,FUseOrgId,FUseOrgId.FNumber,FIsBatchManage,FProductLines1,FProductCATs1,FMaterialGroup,F_Product,FModifyDate,FCreateDate,FProductLines1.FName,FProductCATs1.FName,FMaterialGroup.FName"; param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FBaseUnitId,FBaseUnitId.FName,FBaseUnitId.FNumber,FBARCODE,FUseOrgId,FUseOrgId.FNumber,FIsBatchManage,FProductLines1,FProductCATs1,FMaterialGroup,F_Product,FModifyDate,FCreateDate,FProductLines1.FName,FProductCATs1.FName,FMaterialGroup.FName,FProductIDS";
param.Limit = 10000; param.Limit = 10000;
//查询条件:备注其中的条件值以金蝶的值为准!!! //查询条件:备注其中的条件值以金蝶的值为准!!!
@@ -1214,6 +1214,7 @@ namespace WMS.Web.Domain.Services.Public
lis.FProductLines1FName=item[17]; lis.FProductLines1FName=item[17];
lis.FProductCATs1FName = item[18]; lis.FProductCATs1FName = item[18];
lis.FMaterialGroupFName = item[19]; lis.FMaterialGroupFName = item[19];
lis.FProductIDS = item[20];
erp_materials_list.Add(lis); erp_materials_list.Add(lis);
} }

View File

@@ -92,7 +92,7 @@ namespace WMS.Web.Domain.Services
//修改有更新的数据 //修改有更新的数据
if (mats.Count != 0) if (mats.Count != 0)
{ {
var isFModifyDateMatNumbs = mats.Where(x => x.FModifyDate>=DateTime.Now.AddDays(-10)).Select(x =>new { MaterialNumber= x.MaterialNumber, Specifications=x.Specifications }).ToList(); var isFModifyDateMatNumbs = mats.Where(x => x.FModifyDate>=DateTime.Now.AddDays(-5)).Select(x =>new { MaterialNumber= x.MaterialNumber, Specifications=x.Specifications, MaterialName =x.MaterialName, BarCode =x.BarCode, OrgId = x.OrgId, FProductLines1 =x.FProductLines1 , FProductCATs1 =x.FProductCATs1 , FMaterialGroup =x.FMaterialGroup , F_Product =x.F_Product , FProductLines1FName =x.FProductLines1FName , FProductCATs1FName =x.FProductCATs1FName , FMaterialGroupFName =x.FMaterialGroupFName , MaterialId =x.MaterialId , FProductIDS =x.FProductIDS }).ToList();
// //
_logger.LogInformation("取到需要同步的金蝶修改物料规格yzh" + isFModifyDateMatNumbs.Count+"个"); _logger.LogInformation("取到需要同步的金蝶修改物料规格yzh" + isFModifyDateMatNumbs.Count+"个");
@@ -112,9 +112,21 @@ namespace WMS.Web.Domain.Services
// entity.Specifications = mats_result[]; // entity.Specifications = mats_result[];
foreach (var mat in isFModifyDateMatNumbs) foreach (var mat in isFModifyDateMatNumbs)
{ {
if (entity.MaterialNumber== mat.MaterialNumber) if (entity.MaterialNumber== mat.MaterialNumber )
{ {
entity.Specifications = mat.Specifications; entity.Specifications = mat.Specifications;
entity.MaterialName = mat.MaterialName;
entity.BarCode = mat.BarCode;
//entity.OrgId = mat.OrgId;
entity.FProductLines1 = mat.FProductLines1;
entity.FProductCATs1 = mat.FProductCATs1;
entity.FMaterialGroup = mat.FMaterialGroup;
entity.F_Product = mat.F_Product;
entity.FProductLines1FName = mat.FProductLines1FName;
entity.FProductCATs1FName = mat.FProductCATs1FName;
entity.FMaterialGroupFName = mat.FMaterialGroupFName;
entity.MaterialId = mat.MaterialId;
entity.FProductIDS = mat.FProductIDS;
continue; continue;
} }
} }

View File

@@ -403,7 +403,8 @@ namespace WMS.Web.Domain.Services
//序列号操作记录 //
//操作记录
var res = await this.SerialNumberOperate(sList, false); var res = await this.SerialNumberOperate(sList, false);
//提交事务 //提交事务
if (isTransaction) if (isTransaction)

View File

@@ -108,6 +108,7 @@ namespace WMS.Web.Repositories
var res = await query.FirstOrDefaultAsync(); var res = await query.FirstOrDefaultAsync();
return res.Clone(); return res.Clone();
} }
/// <summary> /// <summary>
@@ -120,6 +121,7 @@ namespace WMS.Web.Repositories
return numbers.Clone().Distinct().ToList(); return numbers.Clone().Distinct().ToList();
} }
/// <summary> /// <summary>
/// 获取全部的物料编码 /// 获取全部的物料编码
/// </summary> /// </summary>

View File

@@ -190,7 +190,7 @@ namespace WMS.Web.Repositories
Type = s.order.Type.GetRemark(), Type = s.order.Type.GetRemark(),
Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.order.CreatorId), Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.order.CreatorId),
CreateTime = s.order.CreateTime.DateToStringSeconds(), CreateTime = s.order.CreateTime.DateToStringSeconds(),
SuccessSync = s.order.SuccessSync == SyncStatus.Success ? "成功" : (s.order.SuccessSync == SyncStatus.SyncIng ? "同步中" : "失败"), // SuccessSync = s.order.SuccessSync == SyncStatus.Success ? "成功" : (s.order.SuccessSync == SyncStatus.SyncIng ? "同步中" : "失败"),
Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.order.StockCode + s.order.OrgCode), Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.order.StockCode + s.order.OrgCode),
SourceBillNoList = s.detail.ErpDetails.Select(s => s.SourceBillNo).ToList(), SourceBillNoList = s.detail.ErpDetails.Select(s => s.SourceBillNo).ToList(),
SaleBillNoList = s.detail.ErpDetails.Select(s => s.SaleBillNo).ToList(), SaleBillNoList = s.detail.ErpDetails.Select(s => s.SaleBillNo).ToList(),
@@ -374,6 +374,37 @@ namespace WMS.Web.Repositories
} }
return details; return details;
} }
/// <summary>
/// 根据序列号查询
/// </summary>
/// <param name="serialNumbers"></param>
/// <returns></returns>
public async Task<List<SerialNumbers>> GetEntityList(List<string> serialNumbers)
{
var res = await _context.SerialNumbers
// .Where(f => serialNumbers.Contains(f.SerialNumber))
.Where(f => serialNumbers.Contains(f.SerialNumber))
.ToListAsync();
var res_c = res.Clone();
//var s_e = res.Select(s => s.SerialNumber).ToList();
var s_e = res.Select(s => s.TwoSerialNumber).ToList();
//在序列表里没找到的序列码 则到老ops序列码数据里去处理 list比较 取差集
var s_c = serialNumbers.Except(s_e);
if (s_c.Count() > 0)
{
var entitys_ops = serialNumbers.Where(w => s_c.Contains(w)).ToList();
var r_o = await _context.SerialNumbers_Ops
.Where(f => serialNumbers.Contains(f.SerialNumber))
.ToListAsync();
res_c.AddRange(_mapper.Map<List<SerialNumbers>>(r_o.Clone()));
}
return res_c;
}
/// <summary> /// <summary>
/// 根据序列号搜索 /// 根据序列号搜索
/// </summary> /// </summary>

View File

@@ -375,7 +375,8 @@ namespace WMS.Web.Repositories
AccruedQty = s.detail.AccruedQty, AccruedQty = s.detail.AccruedQty,
RealityQty = s.detail.RealityQty, RealityQty = s.detail.RealityQty,
CreateTime = s.order.CreateTime.DateToStringSeconds(), CreateTime = s.order.CreateTime.DateToStringSeconds(),
IsRepeal = s.detail.IsRepeal ?? false, // IsRepeal = s.detail.IsRepeal ?? false,
IsRepeal = (bool)s.detail.IsRepeal ? "是" : "否",
OperateTime = s.order.OperateTime.DateToStringSeconds(), OperateTime = s.order.OperateTime.DateToStringSeconds(),
Operator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.order.OperatorId ?? 0), Operator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.order.OperatorId ?? 0),
OutStockTime = s.order.OutStockTime.DateToStringSeconds(), OutStockTime = s.order.OutStockTime.DateToStringSeconds(),
@@ -386,9 +387,9 @@ namespace WMS.Web.Repositories
SourceBillNoList = s.detail.ErpDetails.Select(s => s.SourceBillNo).ToList(), SourceBillNoList = s.detail.ErpDetails.Select(s => s.SourceBillNo).ToList(),
SaleBillNoList = s.detail.ErpDetails.Select(s => s.SaleBillNo).ToList(), SaleBillNoList = s.detail.ErpDetails.Select(s => s.SaleBillNo).ToList(),
DeliveryOrg = _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId), DeliveryOrg = _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId),
ReceiptCustomer = s.order.Type == OutStockType.Sal ReceiptCustomer = s.order.Type == OutStockType.Sal
? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId) ? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId)
: _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId), : (s.order.Type== OutStockType.PickingOut? "": _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId)),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber), MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber),
MaterialNumber = s.detail.MaterialNumber, MaterialNumber = s.detail.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber), Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber),
@@ -616,10 +617,73 @@ namespace WMS.Web.Repositories
.Include(s => s.Details).ThenInclude(s => s.ErpDetails) .Include(s => s.Details).ThenInclude(s => s.ErpDetails)
.Where(f => f.Status == OutStockStatus.Wait || f.Status == OutStockStatus.Part) .Where(f => f.Status == OutStockStatus.Wait || f.Status == OutStockStatus.Part)
.ToListAsync(); .ToListAsync();
return res.Clone(); return res.Clone();
} }
/// <summary>
/// 根据序列号查询
/// </summary>
/// <param name="serialNumbers"></param>
/// <returns></returns>
public async Task<List<SerialNumbers>> GetEntityList(List<string> serialNumbers)
{
var res = await _context.SerialNumbers
// .Where(f => serialNumbers.Contains(f.SerialNumber))
.Where(f => serialNumbers.Contains(f.SerialNumber))
.ToListAsync();
var res_c = res.Clone();
//var s_e = res.Select(s => s.SerialNumber).ToList();
var s_e = res.Select(s => s.TwoSerialNumber).ToList();
//在序列表里没找到的序列码 则到老ops序列码数据里去处理 list比较 取差集
var s_c = serialNumbers.Except(s_e);
if (s_c.Count() > 0)
{
var entitys_ops = serialNumbers.Where(w => s_c.Contains(w)).ToList();
var r_o = await _context.SerialNumbers_Ops
.Where(f => serialNumbers.Contains(f.SerialNumber))
.ToListAsync();
res_c.AddRange(_mapper.Map<List<SerialNumbers>>(r_o.Clone()));
}
return res_c;
}
/// <summary>
/// 根据套装码获取序列码
/// </summary>
/// <param name="boxIds"></param>
/// <returns></returns>
public async Task<List<SerialNumbers>> GetEntityListBySuitNumber(string suitNumber)
{
return await _context.SerialNumbers.AsNoTracking()
.Where(f => f.SerialNumber.Contains(suitNumber))
.ToListAsync();
//var res = await _context.SerialNumbers
// .Where(f => serialNumbers.Contains(f.SerialNumber))
// .ToListAsync();
//var res_c = res.Clone();
//var s_e = res.Select(s => s.SerialNumber).ToList();
////在序列表里没找到的序列码 则到老ops序列码数据里去处理 list比较 取差集
//var s_c = serialNumbers.Except(s_e);
//if (s_c.Count() > 0)
//{
// var entitys_ops = serialNumbers.Where(w => s_c.Contains(w)).ToList();
// var r_o = await _context.SerialNumbers_Ops
// .Where(f => serialNumbers.Contains(f.SerialNumber))
// .ToListAsync();
// res_c.AddRange(_mapper.Map<List<SerialNumbers>>(r_o.Clone()));
//}
//return res_c;
}
public string GetInStock(List<string> codes, int companyId, string orgCode) public string GetInStock(List<string> codes, int companyId, string orgCode)
{ {
var list = codes.Where(w => w != null).ToList(); var list = codes.Where(w => w != null).ToList();