diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 60701fad..16c6b4cc 100644 Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index 04fda4d8..445f1069 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -46,6 +46,7 @@ namespace WMS.Web.Api.Controllers [Route("hj")] public async Task TestHJ() { + var result = await this._outStockTaskService.Sync(null); //var t=await _outStockTaskRepositories.Get(1); // t.Details[0].Remark = "sdf"; // t.Details[0].ErpDetails[0].SaleBillNo = "sdfsfsbbbb"; diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index ba136800..0f8bdafa 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -999,7 +999,7 @@ 备注 - + 明细 diff --git a/src/WMS.Web.Domain/Entitys/OutStock.cs b/src/WMS.Web.Domain/Entitys/OutStock.cs index a8af87ed..71bab547 100644 --- a/src/WMS.Web.Domain/Entitys/OutStock.cs +++ b/src/WMS.Web.Domain/Entitys/OutStock.cs @@ -84,7 +84,7 @@ namespace WMS.Web.Domain.Entitys /// /// 明细 /// - public List Details = new List(); + public List Details { get; set; } = new List(); /// /// 创建(需要在明细都生成后最后调用) /// diff --git a/src/WMS.Web.Domain/Services/OutStockTaskService.cs b/src/WMS.Web.Domain/Services/OutStockTaskService.cs index 57eb2c08..08abcd2c 100644 --- a/src/WMS.Web.Domain/Services/OutStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/OutStockTaskService.cs @@ -139,44 +139,43 @@ namespace WMS.Web.Domain.Services } } - //2.2.提交修改 - var isSuccess = await _outStockTaskRepositories.EditEntityList(data_list, isTransaction); + } + //2.2.提交修改 + var isSuccess = await _outStockTaskRepositories.EditEntityList(data_list, isTransaction); + if (!isSuccess) + return Result.ReFailure(ResultCodes.DateWriteError); + + //2.3剔除:已修改的单据 + foreach (var item in erp_removeList) + erp_list.Remove(item); + + //3.wms任务单的来源单据编号不存在于erp中,那么就新增 + if (erp_list.Count != 0) + { + var add_entitys = new List(); + var billNos = erp_list.GroupBy(x => x.SourceBillNo).Select(x => x.Key).ToList(); + foreach (var item in billNos) + { + var e = erp_list.FirstOrDefault(f => f.SourceBillNo == item); + var entity = new OutStockTask(); + entity.Create((OutStockType)e.Type, e.DeliveryOrgId, e.ReceiptCustomerId, (DateTime)e.CreateTime); + + //找到当前对应来源单据编号的集合数据 + var current_erp_details = erp_list.Where(x => x.SourceBillNo == item).ToList(); + //给到dto的实体明细中 + foreach (var erp in current_erp_details) + { + var detail = _mapper.Map(erp); + var erpDetail = _mapper.Map(erp); + detail.ErpDetails.Add(erpDetail); + entity.Details.Add(detail); + } + add_entitys.Add(entity); + } + //3.1提交新增 + isSuccess = await _outStockTaskRepositories.AddRange(add_entitys, isTransaction); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); - - //2.3剔除:已修改的单据 - foreach (var item in erp_removeList) - erp_list.Remove(item); - - //3.wms任务单的来源单据编号不存在于erp中,那么就新增 - if (erp_list.Count != 0) - { - var add_entitys = new List(); - var billNos = erp_list.GroupBy(x => x.SourceBillNo).Select(x => x.Key).ToList(); - foreach (var item in billNos) - { - var e = erp_list.FirstOrDefault(f => f.SourceBillNo == item); - var entity = new OutStockTask(); - entity.Create((OutStockType)e.Type, e.DeliveryOrgId, e.ReceiptCustomerId, (DateTime)e.CreateTime); - - //找到当前对应来源单据编号的集合数据 - var current_erp_details = erp_list.Where(x => x.SourceBillNo == item).ToList(); - //给到dto的实体明细中 - foreach (var erp in current_erp_details) - { - var detail = _mapper.Map(erp); - var erpDetail = _mapper.Map(erp); - detail.ErpDetails.Add(erpDetail); - entity.Details.Add(detail); - } - add_entitys.Add(entity); - } - //3.1提交新增 - isSuccess = await _outStockTaskRepositories.AddRange(add_entitys, isTransaction); - if (!isSuccess) - return Result.ReFailure(ResultCodes.DateWriteError); - } - } return Result.ReSuccess(); @@ -310,7 +309,7 @@ namespace WMS.Web.Domain.Services foreach (var entity in taskList) { if (entity.Type == OutStockType.Sal) - DeliveryNotice_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s=>s.SourceBillNo)); + DeliveryNotice_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo)); else if (entity.Type == OutStockType.Stkdirecttransfers) TransferDirect_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo)); else if (entity.Type == OutStockType.StktransferInst) diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index cbd4067b..07dc914e 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -1362,7 +1362,8 @@ namespace WMS.Web.Domain.Services.Public var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId); if (stocks.Count == 0) return ResultList.ReFailure(ResultCodes.ErpStockNoData); - var stocks_codes = string.Join(",",stocks.Select(x => x.Id)); + //var stocks_codes = string.Join(",",stocks.Select(x => x.Id)); + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); //string.Join(",",stocks.Select(x => $"'{x.Code}'")); //1.先登录金蝶-拿到token @@ -1372,8 +1373,8 @@ namespace WMS.Web.Domain.Services.Public //2.时间条件:可能还有其它条件 - var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd 00:00:00"); - if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00"); + var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd HH:mm:ss"); + if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd HH:mm:ss"); var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); @@ -1387,7 +1388,7 @@ namespace WMS.Web.Domain.Services.Public //4.日期>=系统上线之日 //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 param.FilterString = "FDocumentStatus='C' and FRemainOutQty>=0"; - param.FilterString += " and FStockID in (" + stocks_codes + ")"; + param.FilterString += " and FStockID.FNumber in (" + stocks_codes + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0) @@ -1444,7 +1445,7 @@ namespace WMS.Web.Domain.Services.Public var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId); if (stocks.Count == 0) return ResultList.ReFailure(ResultCodes.ErpStockNoData); - var stocks_codes = string.Join(",", stocks.Select(x => x.Id)); + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); //1.先登录金蝶-拿到token var token_result = await this.Init(); @@ -1452,8 +1453,8 @@ namespace WMS.Web.Domain.Services.Public return ResultList.ReFailure(token_result); //2.时间条件:可能还有其它条件 - var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd 00:00:00"); - if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00"); + var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd HH:mm:ss"); + if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd HH:mm:ss"); var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); @@ -1467,7 +1468,7 @@ namespace WMS.Web.Domain.Services.Public //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 param.FilterString = "FDocumentStatus='C' and FBillTypeID='ce8f49055c5c4782b65463a3f863bb4a'"; //string srt = JsonConvert.SerializeObject(stocks_codes); - param.FilterString += " and FSrcStockId in (" + stocks_codes + ")"; + param.FilterString += " and FSrcStockId.FNumber in (" + stocks_codes + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0) @@ -1522,7 +1523,7 @@ namespace WMS.Web.Domain.Services.Public var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId); if (stocks.Count == 0) return ResultList.ReFailure(ResultCodes.ErpStockNoData); - var stocks_codes = string.Join(",", stocks.Select(x => x.Id)); + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); //1.先登录金蝶-拿到token var token_result = await this.Init(); @@ -1530,8 +1531,8 @@ namespace WMS.Web.Domain.Services.Public return ResultList.ReFailure(token_result); //2.时间条件:可能还有其它条件 - var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd 00:00:00"); - if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00"); + var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd HH:mm:ss"); + if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd HH:mm:ss"); var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); @@ -1545,7 +1546,7 @@ namespace WMS.Web.Domain.Services.Public //4.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 param.FilterString = "FDocumentStatus='C' and FBillTypeID='de3bcacc98434ec68a358aa5abcd9183'"; //string srt = JsonConvert.SerializeObject(stocks_codes); - param.FilterString += " and FSrcStockID in (" + stocks_codes + ")"; + param.FilterString += " and FSrcStockID.FNumber in (" + stocks_codes + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0) @@ -1600,7 +1601,7 @@ namespace WMS.Web.Domain.Services.Public var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId); if (stocks.Count == 0) return ResultList.ReFailure(ResultCodes.ErpStockNoData); - var stocks_codes = string.Join(",", stocks.Select(x => x.Id)); + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); //1.先登录金蝶-拿到token var token_result = await this.Init(); @@ -1608,8 +1609,8 @@ namespace WMS.Web.Domain.Services.Public return ResultList.ReFailure(token_result); //2.时间条件:可能还有其它条件 - var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd 00:00:00"); - if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00"); + var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd HH:mm:ss"); + if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd HH:mm:ss"); var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); @@ -1623,7 +1624,7 @@ namespace WMS.Web.Domain.Services.Public //4.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 FBillTypeID param.FilterString = "FDocumentStatus='C' and FAffairType='Dassembly' and FBillTypeID='3441ac133848446f824d0ab760c8b3c7'"; //string srt = JsonConvert.SerializeObject(stocks_codes); - param.FilterString += " and FStockID in (" + stocks_codes + ")"; + param.FilterString += " and FStockID.FNumber in (" + stocks_codes + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0) @@ -1678,7 +1679,7 @@ namespace WMS.Web.Domain.Services.Public var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId); if (stocks.Count == 0) return ResultList.ReFailure(ResultCodes.ErpStockNoData); - var stocks_codes = string.Join(",", stocks.Select(x => x.Id)); + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); //1.先登录金蝶-拿到token var token_result = await this.Init(); @@ -1686,8 +1687,8 @@ namespace WMS.Web.Domain.Services.Public return ResultList.ReFailure(token_result); //2.时间条件:可能还有其它条件 - var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd 00:00:00"); - if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00"); + var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd HH:mm:ss"); + if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd HH:mm:ss"); var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); @@ -1701,7 +1702,7 @@ namespace WMS.Web.Domain.Services.Public //4.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 param.FilterString = "FDocumentStatus='C' and FBillTypeID='54533291F9A44D38809F70000499BEE9'"; //string srt = JsonConvert.SerializeObject(stocks_codes); - param.FilterString += " and FStockId in (" + stocks_codes + ")"; + param.FilterString += " and FStockId.FNumber in (" + stocks_codes + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0) @@ -1756,7 +1757,7 @@ namespace WMS.Web.Domain.Services.Public var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId); if (stocks.Count == 0) return ResultList.ReFailure(ResultCodes.ErpStockNoData); - var stocks_codes = string.Join(",", stocks.Select(x => x.Id)); + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); //1.先登录金蝶-拿到token var token_result = await this.Init(); @@ -1764,8 +1765,8 @@ namespace WMS.Web.Domain.Services.Public return ResultList.ReFailure(token_result); //2.时间条件:可能还有其它条件 - var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd 00:00:00"); - if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd 00:00:00"); + var beginStr = DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd HH:mm:ss"); + if (beginTime != null) beginStr = beginTime?.ToString("yyyy-MM-dd HH:mm:ss"); var endStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); @@ -1779,7 +1780,7 @@ namespace WMS.Web.Domain.Services.Public //4.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 FBillTypeID param.FilterString = "FDocumentStatus='C' and FAffairType='Assembly' and FBillTypeID='3441ac133848446f824d0ab760c8b3c7'"; //string srt = JsonConvert.SerializeObject(stocks_codes); - param.FilterString += " and FStockIDSETY in (" + stocks_codes + ")"; + param.FilterString += " and FStockIDSETY.FNumber in (" + stocks_codes + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0)