diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs index 7af0180e..1e0c4ff8 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/WmsWareHouseConst.cs @@ -27,6 +27,17 @@ namespace Tnb.WarehouseMgr.Entities.Consts /// 预任务生成EnCode /// public const string WMS_PRETASK_H_ENCODE = "PreTaskGen"; + /// 齐套出库生成Encode + /// + public const string WMS_KITTINGOUTSTK_ENCODE = "WmsKittingOutStk"; + /// + /// 空载具出库生成Encode + /// + public const string WMS_EMPTYOUTSTK_ENCODE = "EptyCarryOutStk"; + /// + /// 空载具入库生成Encode + /// + public const string WMS_EMPTYINSTK_ENCODE = "EptyCarryInbound"; /// /// 载具移入生成Encode /// diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCarryQueryInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCarryQueryInput.cs new file mode 100644 index 00000000..4215b2fc --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCarryQueryInput.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.WarehouseMgr.Entities.Dto.Inputs +{ + /// + /// MES载具查询接口输入 + /// + public class MESCarryQueryInput + { + /// + /// 组织ID + /// + public string org_id { get; set; } + /// + /// 载具编号 + /// + public string carry_code { get; set; } + /// + /// 齐套搭配方案名称 + /// + public string collocation_scheme_name { get; set; } + } +} + diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCarryQueryResultInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCarryQueryResultInput.cs new file mode 100644 index 00000000..668a580c --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCarryQueryResultInput.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.WarehouseMgr.Entities.Dto.Inputs +{ + /// + /// MES载具查询返回接口输入 + /// + public class MESCarryQueryResultInput + { + /// + /// 组织ID + /// + public string org_id { get; set; } + /// + /// 载具编号 + /// + public string carry_code { get; set; } + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCarrySignInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCarrySignInput.cs new file mode 100644 index 00000000..8c6ae151 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCarrySignInput.cs @@ -0,0 +1,21 @@ +namespace Tnb.WarehouseMgr +{ + /// + /// MES载具签收接口输入 + /// + public class MESCarrySignInput + { + /// + /// 组织ID + /// + public string? org_id { get; set; } + /// + /// 载具Id + /// + public string? carry_id { get; set;} + /// + /// 创建热Id + /// + public string? create_id { get; set; } + } +} \ No newline at end of file diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCollocationSchemeQueryInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCollocationSchemeQueryInput.cs new file mode 100644 index 00000000..9ad7c3c1 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCollocationSchemeQueryInput.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.WarehouseMgr.Entities.Dto.Inputs +{ + public class MESCollocationSchemeQueryInput + { + /// + /// 齐套出库主表 + /// + //public WmsCollocationSchemeH wmsCollocationSchemeH { get; set; } + + /// + /// 产品ID + /// + public string material_id { get; set; } + + /// + /// 组织ID + /// + public string org_id { get; set; } + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCreateInstockInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCreateInstockInput.cs index fc452810..1b126500 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCreateInstockInput.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCreateInstockInput.cs @@ -6,6 +6,9 @@ using System.Threading.Tasks; namespace Tnb.WarehouseMgr.Entities.Dto.Inputs { + /// + /// MES入库输入 + /// public class MESCreateInstockInput { /// diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCreateOutstockInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCreateOutstockInput.cs index 7b955ca4..ad5d3924 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCreateOutstockInput.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESCreateOutstockInput.cs @@ -6,6 +6,9 @@ using System.Threading.Tasks; namespace Tnb.WarehouseMgr.Entities.Dto.Inputs { + /// + /// MES出库输入 + /// public class MESCreateOutstockInput { /// diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESEmptyCarryInStockInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESEmptyCarryInStockInput.cs new file mode 100644 index 00000000..f72c2175 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESEmptyCarryInStockInput.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.WarehouseMgr.Entities.Dto.Inputs +{ + /// + /// MES空载具入库输入 + /// + public class MESEmptyCarryInStockInput + { + /// + /// 组织ID + /// + public string? org_id { get; set; } + /// + /// 库位编号 + /// + public string? location_code { get; set; } + /// + /// 载具编号 + /// + public string? carry_code { get; set; } + /// + /// 创建用户 + /// + public string? create_id { get; set; } + /// + /// 入库仓库 + /// + public string? warehouse_id { get; set; } + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESEmptyCarryOutStkInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESEmptyCarryOutStkInput.cs new file mode 100644 index 00000000..93f5856d --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESEmptyCarryOutStkInput.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.WarehouseMgr.Entities.Dto.Inputs +{ + /// + /// MES空载具出库输入 + /// + public class MESEmptyCarryOutStkInput + { + + /// + /// 组织ID + /// + public string org_id { get; set; } + + /// + /// 库位编号 + /// + public string location_code { get; set; } + + /// + /// 创建用户 + /// + public string? create_id { get; set; } + /// + /// 入库仓库 + /// + public string? warehouse_id { get; set; } + + /// + /// 载具规格编号 + /// + public string? carrystd_id { get; set; } + + /// + /// 数量 + /// + public int? qty { get; set; } + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESKittingOutStkInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESKittingOutStkInput.cs new file mode 100644 index 00000000..4382e398 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/MESKittingOutStkInput.cs @@ -0,0 +1,140 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.WarehouseMgr.Entities.Dto.Inputs +{ + /// + /// MES齐套出库输入类 + /// + public class MESKittingOutStkInput + { + /// + /// 所属组织ID + /// + public string? org_id { get; set; } + + /// + /// 出库单创建日期 + /// + public DateTime bill_date { get; set; } = DateTime.Now; + + /// + /// 业务类型 + /// + public string biz_type { get; set; } = string.Empty; + + /// + /// 发料仓库ID + /// + public string warehouse_id { get; set; } = string.Empty; + + /// + /// 库位ID + /// + public string? location_id { get; set; } + + /// + /// 库位编号 + /// + public string? location_code { get; set; } + + /// + /// 载具ID + /// + public string? carry_id { get; set; } + + /// + /// 载具编号 + /// + public string? carry_code { get; set; } + + /// + /// 产品ID + /// + public string? material_id { get; set; } + + /// + /// 产品编号 + /// + public string? material_code { get; set; } + + /// + /// 齐套搭配方案ID + /// + public string? collocation_scheme_id { get; set; } + + /// + /// 齐套搭配方案编号 + /// + public string collocation_scheme_code { get; set; } = string.Empty; + + /// + /// 来源单据ID + /// + public string? source_id { get; set; } + + + /// + /// 顺序号 + /// + public int seq { get; set; } + + /// + /// 创建用户ID + /// + public string? create_id { get; set; } + + /// + /// MES齐套出库明细表输入 + /// + public List? wmsKittingoutDs { get; set; } + } + + /// + /// MES齐套出库明细表输入类 + /// + public class MESKittingOutStkDInput + { + + /// + /// 单位ID + /// + public string unit_id { get; set; } = string.Empty; + + + /// + /// 单位编号 + /// + public string? unit_code { get; set; } + + + /// + /// 产品ID + /// + public string? material_id { get; set; } + + /// + /// 产品编号 + /// + public string? material_code { get; set; } + + /// + /// 批次 + /// + public string? code_batch { get; set; } + + /// + /// 数量(件数) + /// + public decimal? pr_qty { get; set; } + + /// + /// 箱数 + /// + public int? box { get; set; } + + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/SignForDeliveryInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/SignForDeliveryInput.cs index c1de744a..c4069841 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/SignForDeliveryInput.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/SignForDeliveryInput.cs @@ -22,6 +22,8 @@ namespace Tnb.WarehouseMgr.Entities.Dto.Inputs public string new_carry_code { get; set; } + public string org_id { get; set; } + /// /// 任务执行条码表 /// diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Outputs/CarryQueryOutput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Outputs/CarryQueryOutput.cs new file mode 100644 index 00000000..3cf3487c --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Outputs/CarryQueryOutput.cs @@ -0,0 +1,146 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.WarehouseMgr.Entities.Dto.Outputs +{ + /// + /// 载具查询输出类 + /// + public class CarryQueryOutput + { + public string id { get; set; } + + /// + /// 所属组织ID + /// ? + public string? org_id { get; set; } + + /// + /// 载具编号 + /// + public string carry_code { get; set; } = string.Empty; + + /// + /// 载具名称 + /// + public string carry_name { get; set; } = string.Empty; + + + /// + /// 载具分类ID + /// + public string carrystd_id { get; set; } = string.Empty; + + /// + /// 载具库位ID + /// + public string? location_id { get; set; } + + /// + /// 载具库位编号 + /// + public string? location_code { get; set; } + + /// + /// 来源单据ID + /// + public string? source_id { get; set; } + + /// + /// 打包号 + /// + public string? bale_num { get; set; } + + /// + /// 齐套搭配方案ID + /// + public string? collocation_scheme_id { get; set; } + + /// + /// 齐套搭配方案编号 + /// + public string? collocation_scheme_code { get; set; } + /// + /// 载具条码明细输出 + /// + public List? wmsCarryCodes { get; set; } + + } + /// + /// 载具查询明细输出类 + /// + public class CarryCodeQueryOutput + { + /// + /// 主键ID + /// + public string id { get; set; } + /// + /// 所属组织ID + /// + public string? org_id { get; set; } + + /// + /// 上级载具ID + /// + public string carry_id { get; set; } + + /// + /// 物品ID + /// + public string material_id { get; set; } = string.Empty; + + /// + /// 物品代码 + /// + public string material_code { get; set; } = string.Empty; + + /// + /// 条码编号 + /// + public string barcode { get; set; } = string.Empty; + + /// + /// 批次 + /// + public string? code_batch { get; set; } + + /// + /// 条码数量 + /// + public decimal codeqty { get; set; } + + /// + /// 是否出库 + /// + public int is_out { get; set; } + + /// + /// 库位ID + /// + public string location_id { get; set; } = string.Empty; + + /// + /// 库位编号 + /// + public string location_code { get; set; } = string.Empty; + + /// + /// 单位ID + /// + public string unit_id { get; set; } = string.Empty; + + /// + /// 单位代码 + /// + public string unit_code { get; set; } = string.Empty; + + /// + /// 仓库ID + /// + public string? warehouse_id { get; set; } + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Outputs/CollocationSchemeOutput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Outputs/CollocationSchemeOutput.cs new file mode 100644 index 00000000..24ef9f82 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Outputs/CollocationSchemeOutput.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.WarehouseMgr.Entities.Dto.Outputs +{ + /// + /// 搭配方案输出类 + /// + public class CollocationSchemeOutput + { + /// + /// 主键 + /// + public string id { get; set; } + /// + /// 所属组织ID + /// + public string org_id { get; set; } + + /// + /// 搭配方案编号 + /// + public string bill_code { get; set; } = string.Empty; + + /// + /// 搭配方案名称 + /// + public string bill_name { get; set; } = string.Empty; + + /// + /// 顺序号 + /// + public int seq { get; set; } + + /// + /// 产品ID + /// + public string material_id { get; set; } = string.Empty; + + /// + /// 产品代码 + /// + public string material_code { get; set; } = string.Empty; + + /// + /// 配送次数 + /// + public int count { get; set; } + + /// + /// 最低库存 + /// + public int minimum { get; set; } + + /// + /// 库位ID + /// + public string? location_id { get; set; } + /// + /// 齐套明细输出 + /// + public List? CollocationSchemeDs { get; set; } + + public List list{ get; set; } + } + + public class CollocationSchemeDOutput + { + /// + /// 主键ID + /// + public string? id { get; set; } + /// + /// 所属组织ID + /// + public string? org_id { get; set; } + + /// + /// 搭配方案ID + /// + public string bill_id { get; set; } = string.Empty; + + /// + /// 物料ID + /// + public string material_id { get; set; } = string.Empty; + + /// + /// 物料代码 + /// + public string material_code { get; set; } = string.Empty; + + /// + /// 载具规格ID + /// + public string carrystd_id { get; set; } = string.Empty; + + /// + /// 数量(件数) + /// + public decimal qty { get; set; } + + /// + /// 箱数 + /// + public int box { get; set; } + + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Mapper/Mapper.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Mapper/Mapper.cs index c40a0dc2..8cffe67e 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Mapper/Mapper.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Mapper/Mapper.cs @@ -1,6 +1,7 @@ using Mapster; using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities.Dto; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; namespace Tnb.WarehouseMgr.Entities.Mapper { @@ -11,6 +12,10 @@ namespace Tnb.WarehouseMgr.Entities.Mapper config.ForType() .Map(dest => dest.pretask_id, src => src.id) .Map(dest => dest.pretask_code, src => src.bill_code); + + config.ForType() + .Map(dest => dest.carryId, src => src.carry_id) + ; } } } \ No newline at end of file diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWareHouseService.cs index 35f0acb4..0128222d 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWareHouseService.cs @@ -1,8 +1,58 @@ -using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions; -using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Tnb.BasicData.Entities;
using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Dto; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Tnb.BasicData.Entities; +using Tnb.WarehouseMgr.Entities; +using Tnb.WarehouseMgr.Entities.Dto; using Tnb.WarehouseMgr.Entities.Dto.Inputs; -namespace Tnb.WarehouseMgr.Interfaces
{ - /// 
 /// 库房业务(出入库)接口
 /// 
 public interface IWareHouseService
 {
 /// 
 /// 入库策略
 /// 
 /// 
 /// 
 Task> InStockStrategy([FromQuery] InStockStrategyQuery input);
 /// 
 /// 出库策略
 /// 
 /// 
 /// 
 //Task> OutStockStrategy([FromQuery] OutStockStrategyQuery input);
 /// 
 /// 路径算法
 /// 
 /// 
 /// 
 /// 
 Task> PathAlgorithms(string pStartId, string pEndId);
 /// 
 /// 生成预任务
 /// 
 /// 
 /// 
 Task GenPreTask(List preTasks,List preTaskCodes);
 /// 
 /// 生成预任务成功后操作
 /// 
 /// 
 /// 
 Task GenInStockTaskHandleAfter(GenPreTaskUpInput input,Expression> setCarryColumnsExp,Expression> setLocaionColumbExp);
 /// 
 /// 任务完成
 /// 
 /// 
 /// +namespace Tnb.WarehouseMgr.Interfaces +{ + /// + /// 库房业务(出入库)接口 + /// + public interface IWareHouseService + { + /// + /// 入库策略 + /// + /// + /// + Task> InStockStrategy([FromQuery] InStockStrategyQuery input); + /// + /// 出库策略 + /// + /// + /// + //Task> OutStockStrategy([FromQuery] OutStockStrategyQuery input); + /// + /// 路径算法 + /// + /// + /// + /// + Task> PathAlgorithms(string pStartId, string pEndId); + /// + /// 生成预任务 + /// + /// + /// + Task GenPreTask(List preTasks,List preTaskCodes); + /// + /// 生成预任务成功后操作 + /// + /// + /// + Task GenInStockTaskHandleAfter(GenPreTaskUpInput input,Expression> setCarryColumnsExp,Expression> setLocaionColumbExp); + /// + /// 任务完成 + /// + /// + /// Task TaskComplate(TaskCompleUpInput input); - }
}
 \ No newline at end of file + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCarryQueryService.cs b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCarryQueryService.cs new file mode 100644 index 00000000..ddcfaf51 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCarryQueryService.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; + +namespace Tnb.WarehouseMgr.Interfaces +{ + /// + /// WMS载具查询接口 + /// + public interface IWmsCarryQueryService + { + /// + /// MES载具查询接口 + /// + /// + /// + Task MESCarryQuery(MESCarryQueryInput input); + /// + /// MES载具查询返回接口 + /// + /// + /// + Task MESCarryQueryResult(MESCarryQueryResultInput input); + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCollocationSchemeSevice.cs b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCollocationSchemeSevice.cs index 372cf65d..9e25e026 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCollocationSchemeSevice.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsCollocationSchemeSevice.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; namespace Tnb.WarehouseMgr.Interfaces { @@ -11,5 +12,11 @@ namespace Tnb.WarehouseMgr.Interfaces /// public interface IWmsCollocationSchemeSevice { + /// + /// MES齐套搭配方案接口 + /// + /// + /// + Task MESCollocationSchemeQuery(MESCollocationSchemeQueryInput input); } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsEmptyInstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsEmptyInstockService.cs new file mode 100644 index 00000000..915cd531 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsEmptyInstockService.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; + +namespace Tnb.WarehouseMgr.Interfaces +{ + /// + /// WMS空载具入库接口 + /// + public interface IWmsEmptyInstockService + { + /// + /// MES空载具入库接口 + /// + /// + /// + Task MesEmptyCarryInStock(MESEmptyCarryInStockInput input); + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsEmptyOutstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsEmptyOutstockService.cs new file mode 100644 index 00000000..8948cbfe --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsEmptyOutstockService.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; + +namespace Tnb.WarehouseMgr.Interfaces +{ + /// + /// WMS空载具出库接口 + /// + public interface IWmsEmptyOutstockService + { + /// + /// MES空载具出库接口 + /// + /// + /// + Task MESEmptyCarryOutStk(MESEmptyCarryOutStkInput input); + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsSignForDeliveryService.cs b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsSignForDeliveryService.cs new file mode 100644 index 00000000..84fdc879 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmsSignForDeliveryService.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.WarehouseMgr.Interfaces +{ + /// + /// WMS签收接口 + /// + public interface IWmsSignForDeliveryService + { + /// + /// MES载具签收接口 + /// + /// + /// + public Task MESCarrySign(MESCarrySignInput input); + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmskittingOutService.cs index db94d4ad..9267f90b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmskittingOutService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWmskittingOutService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; namespace Tnb.WarehouseMgr.Interfaces { @@ -11,5 +12,11 @@ namespace Tnb.WarehouseMgr.Interfaces /// public interface IWmskittingOutService { + /// + /// MES齐套出库接口 + /// + /// + /// + Task MESKittingOutStk(List input); } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs index d3ea2b73..53bbc964 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs @@ -78,6 +78,20 @@ namespace Tnb.WarehouseMgr result.data = data; return Task.FromResult(result); } + + + + /// + /// Api响应结果 + /// + /// + [NonAction] + protected Task ToApiResult( object data) + { + DataResult result = new(); + result.data = data; + return Task.FromResult(result); + } /// /// Api响应结果 /// diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs new file mode 100644 index 00000000..793e4e37 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryQueryService.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Aop.Api.Domain; +using Mapster; +using Microsoft.AspNetCore.Mvc; +using SqlSugar; +using Tnb.WarehouseMgr.Entities; +using Tnb.WarehouseMgr.Entities.Dto; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; +using Tnb.WarehouseMgr.Entities.Dto.Outputs; +using Tnb.WarehouseMgr.Interfaces; + +namespace Tnb.WarehouseMgr +{ + public class WmsCarryQueryService : BaseWareHouseService, IWmsCarryQueryService + { + private readonly ISqlSugarClient _db; + public WmsCarryQueryService(ISqlSugarRepository repository) + { + _db = repository.AsSugarClient(); + } + + /// + /// 载具查询接口 + /// + /// + /// + [HttpPost] + public async Task MESCarryQuery(MESCarryQueryInput input) + { + var results = new List(); + try + { + var carrys = await _db.Queryable() + .InnerJoin((a, b) => a.collocation_scheme_id == b.id) + .Where((a, b) => a.carry_code.Contains(input.carry_code) || b.bill_name.Contains(input.collocation_scheme_name)) + .ToListAsync(); + + results = carrys.Adapt>(); + + } + catch (Exception ex) + { + await _db.Ado.RollbackTranAsync(); + return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message); + } + return ToApiResult(results); + } + /// + /// 载具查询返回接口 + /// + /// + /// + [HttpPost] + public async Task MESCarryQueryResult(MESCarryQueryResultInput input) + { + var result = new CarryQueryOutput(); + try + { + var carry = await _db.Queryable().SingleAsync(it => it.carry_code == input.carry_code); + var carryCodes = await _db.Queryable().Where(it => it.carry_id == carry.id).ToListAsync(); + result = carry.Adapt(); + result.wmsCarryCodes = carryCodes.Adapt>(); + + } + catch (Exception ex) + { + await _db.Ado.RollbackTranAsync(); + return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message); + } + return ToApiResult(JNPF.Common.Enums.HttpStatusCode.OK, result); + } + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCollocationSchemeSevice.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCollocationSchemeSevice.cs index 9150fd9a..88f7cdc4 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCollocationSchemeSevice.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCollocationSchemeSevice.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Aop.Api.Domain; using Aspose.Cells.Drawing; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Extension; @@ -12,9 +13,12 @@ using JNPF.FriendlyException; using JNPF.VisualDev; using JNPF.VisualDev.Entitys; using JNPF.VisualDev.Interfaces; +using Mapster; using Microsoft.AspNetCore.Mvc; using SqlSugar; using Tnb.WarehouseMgr.Entities; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; +using Tnb.WarehouseMgr.Entities.Dto.Outputs; using Tnb.WarehouseMgr.Interfaces; namespace Tnb.WarehouseMgr @@ -78,5 +82,32 @@ namespace Tnb.WarehouseMgr } return await Task.FromResult(true); } + /// + /// MES齐套搭配方案查询接口 + /// + /// + /// + [HttpPost] + public async Task MESCollocationSchemeQuery(MESCollocationSchemeQueryInput input) + { + var results = new List(); + try + { + results = await _db.Queryable() + .LeftJoin((a, b) => b.bill_id == a.id) + .Where(a => a.material_id == input.material_id) + .Select((a, b) => new CollocationSchemeOutput + { + list = SqlFunc.Subqueryable().Where(b => b.bill_id == a.id).ToList(), + }, true) + .Mapper(it=> it.CollocationSchemeDs = it.list.Adapt>()) + .ToListAsync(); + } + catch (Exception ex) + { + return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message); + } + return await ToApiResult(results); + } } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs index 02c57517..75bbfd88 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using JNPF.Common.Contracts; using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; @@ -22,6 +23,7 @@ using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities.Attributes; using Tnb.WarehouseMgr.Entities.Consts; using Tnb.WarehouseMgr.Entities.Dto; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; using Tnb.WarehouseMgr.Interfaces; namespace Tnb.WarehouseMgr @@ -33,7 +35,7 @@ namespace Tnb.WarehouseMgr [OverideVisualDev(ModuleConsts.MODULE_WMSEMPTYINSTOCK_ID)] [ServiceModule(BizTypeId)] - public class WmsEmptyInstockService : BaseWareHouseService + public class WmsEmptyInstockService : BaseWareHouseService, IWmsEmptyInstockService { private const string BizTypeId = "26121986416677"; private readonly ISqlSugarClient _db; @@ -116,7 +118,7 @@ namespace Tnb.WarehouseMgr preTask.create_time = DateTime.Now; return preTask; }).ToList(); - var isOk = await _wareHouseService.GenPreTask(preTasks,null!); + var isOk = await _wareHouseService.GenPreTask(preTasks, null!); if (isOk) { var preTaskUpInput = new GenPreTaskUpInput(); @@ -161,7 +163,55 @@ namespace Tnb.WarehouseMgr } return Task.FromResult(true); } + /// + /// MES空载具入库 + /// + /// + /// + [HttpPost] + public async Task MesEmptyCarryInStock(MESEmptyCarryInStockInput input) + { + try + { + var carry = await _db.Queryable().SingleAsync(it => it.carry_code == input.carry_code); + var location = await _db.Queryable().SingleAsync(it => it.location_code == input.location_code); + var emptyInstock = await _db.Queryable().FirstAsync(it => it.carry_code == input.carry_code && it.status == WmsWareHouseConst.BILLSTATUS_ADD_ID); + if (emptyInstock != null) + { + return ToApiResult(HttpStatusCode.InternalServerError, $"空载具{emptyInstock.carry_code},预任务已生成"); + } + if (carry != null && location != null) + { + var cols = new List(); + var dic = new Dictionary(); + dic[nameof(WmsEmptyInstock.id)] = SnowflakeIdHelper.NextId(); + dic[nameof(WmsEmptyInstock.org_id)] = input.org_id; + dic[nameof(WmsEmptyInstock.location_id)] = location.id; + dic[nameof(WmsEmptyInstock.bill_code)] = await _billRullService.GetBillNumber(WmsWareHouseConst.WMS_EMPTYINSTK_ENCODE); + dic[nameof(WmsEmptyInstock.status)] = WmsWareHouseConst.BILLSTATUS_ADD_ID; + dic[nameof(WmsEmptyInstock.carry_id)] = carry.id; + dic[nameof(WmsEmptyInstock.carry_code)] = input.carry_code; + dic[nameof(WmsEmptyInstock.biz_type)] = WmsWareHouseConst.BIZTYPE_WMSEMPTYINSTOCK_ID; + dic[nameof(WmsEmptyInstock.create_id)] = input.create_id; + dic[nameof(WmsEmptyInstock.create_time)] = DateTime.Now; + dic[nameof(WmsEmptyInstock.warehouse_id)] = input.warehouse_id; + VisualDevModelDataCrInput visualDevModelDataCrInput = new () + { + data = dic + }; + await WmsEmptyIn(visualDevModelDataCrInput); + + } + } + catch (Exception ex) + { + await _db.Ado.RollbackTranAsync(); + return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message); + } + return ToApiResult(); + + } public async override Task ModifyAsync(WareHouseUpInput input) { if (input == null) throw new ArgumentNullException(nameof(input)); diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs index 440ed7ae..9714d409 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Aop.Api.Domain; using JNPF.Common.Core.Manager; using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; @@ -21,6 +22,7 @@ using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities.Attributes; using Tnb.WarehouseMgr.Entities.Consts; using Tnb.WarehouseMgr.Entities.Dto; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; using Tnb.WarehouseMgr.Entities.Enums; using Tnb.WarehouseMgr.Interfaces; @@ -33,7 +35,7 @@ namespace Tnb.WarehouseMgr [OverideVisualDev(ModuleConsts.MODULE_WMSEMPTYOUTSTK_ID)] [ServiceModule(BizTypeId)] - public class WmsEmptyOutstockService : BaseWareHouseService + public class WmsEmptyOutstockService : BaseWareHouseService, IWmsEmptyOutstockService { private const string BizTypeId = "26122265173285"; private readonly ISqlSugarClient _db; @@ -59,6 +61,8 @@ namespace Tnb.WarehouseMgr OverideFuncs.CreateAsync = PDAWmsEmptyOut; } + + private async Task PDAWmsEmptyOut(VisualDevModelDataCrInput input) { @@ -209,5 +213,42 @@ namespace Tnb.WarehouseMgr throw; } } + + /// + /// MES空载具出库接口 + /// + /// + /// + [HttpPost] + public async Task MESEmptyCarryOutStk(MESEmptyCarryOutStkInput input) + { + try + { + var location = await _db.Queryable().SingleAsync(it => it.location_code == input.location_code); + var dic = new Dictionary(); + dic[nameof(WmsEmptyOutstockH.id)] = SnowflakeIdHelper.NextId(); + dic[nameof(WmsEmptyOutstockH.org_id)] = input.org_id; + dic[nameof(WmsEmptyOutstockH.location_id)] = location.id; + dic[nameof(WmsEmptyOutstockH.carrystd_id)] = input.carrystd_id; + dic[nameof(WmsEmptyOutstockH.bill_code)] = _billRullService.GetBillNumber(WmsWareHouseConst.WMS_EMPTYOUTSTK_ENCODE).GetAwaiter().GetResult(); + dic[nameof(WmsEmptyOutstockH.status)] = WmsWareHouseConst.BILLSTATUS_ADD_ID; + dic[nameof(WmsEmptyOutstockH.qty)] = input.qty; + dic[nameof(WmsEmptyOutstockH.biz_type)] = WmsWareHouseConst.BIZTYPE_WMSEPTYOUTSTK_ID; + dic[nameof(WmsEmptyOutstockH.create_id)] = input.create_id; + dic[nameof(WmsEmptyOutstockH.create_time)] = DateTime.Now; + + VisualDevModelDataCrInput visualDevModelDataCrInput = new VisualDevModelDataCrInput + { + data = dic, + }; + await PDAWmsEmptyOut(visualDevModelDataCrInput); + } + catch (Exception ex) + { + await _db.Ado.RollbackTranAsync(); + return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message); + } + return ToApiResult(); + } } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs index 2fd9e112..eb5ed107 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsSignForDeliveryService.cs @@ -9,6 +9,7 @@ using JNPF.Common.Enums; using JNPF.Common.Extension; using JNPF.FriendlyException; using JNPF.Systems.Interfaces.System; +using Mapster; using Microsoft.AspNetCore.Mvc; using Microsoft.CodeAnalysis.Operations; using SqlSugar; @@ -25,7 +26,7 @@ namespace Tnb.WarehouseMgr /// /// 出库签收 /// - public class WmsSignForDeliveryService : BaseWareHouseService + public class WmsSignForDeliveryService : BaseWareHouseService, IWmsSignForDeliveryService { private readonly ISqlSugarClient _db; private readonly IWmsCarryService _wareCarryService; @@ -112,6 +113,17 @@ namespace Tnb.WarehouseMgr throw; } } + /// + /// MES调用载具签收接口 + /// + /// + /// + [HttpPost] + public async Task MESCarrySign(MESCarrySignInput input) + { + var signInput = input.Adapt(); + await SignForDelivery(signInput); + } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs index 1e03b01e..cf41c1dc 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs @@ -5,12 +5,14 @@ using System.Text; using System.Threading.Tasks; using Aop.Api.Domain; using JNPF.Common.Core.Manager; +using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Enums; using JNPF.Common.Extension; using JNPF.Common.Security; using JNPF.FriendlyException; using JNPF.Systems.Interfaces.System; using Mapster; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using SqlSugar; using Tnb.BasicData.Entities; @@ -18,6 +20,8 @@ using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities.Attributes; using Tnb.WarehouseMgr.Entities.Consts; using Tnb.WarehouseMgr.Entities.Dto; +using Tnb.WarehouseMgr.Entities.Dto.Inputs; +using Tnb.WarehouseMgr.Entities.Dto.Outputs; using Tnb.WarehouseMgr.Entities.Enums; using Tnb.WarehouseMgr.Interfaces; @@ -278,6 +282,53 @@ namespace Tnb.WarehouseMgr throw; } } + /// + /// MES齐套出库接口 + /// + /// + /// + [HttpPost] + public async Task MESKittingOutStk(List input) + { + try + { + await _db.Ado.BeginTranAsync(); + List kittingOutDs = new(); + var kittingOuts = input.Adapt>(); + + for (int i = 0; i < kittingOuts.Count; i++) + { + var x= kittingOuts[i]; + x.id = SnowflakeIdHelper.NextId(); + x.bill_code = _billRullService.GetBillNumber(WmsWareHouseConst.WMS_KITTINGOUTSTK_ENCODE).GetAwaiter().GetResult(); + x.bill_date = DateTime.Now; + x.bill_type = WmsWareHouseConst.BIZTYPE_WMSKITTINGOUTSTK_ID; + x.status = WmsWareHouseConst.BILLSTATUS_ADD_ID; + x.biz_type = WmsWareHouseConst.BIZTYPE_WMSKITTINGOUTSTK_ID; + var d = input[i]?.wmsKittingoutDs?.Adapt>(); + d?.ForEach(it => + { + it.id = SnowflakeIdHelper.NextId(); + it.bill_id = x.id; + it.qty = 0; + it.real_box = 0; + it.warehouse_id = x.warehouse_id; + }); + kittingOutDs.AddRange(d!); + } + await _db.Insertable(kittingOuts).ExecuteCommandAsync(); + await _db.Insertable(kittingOutDs).ExecuteCommandAsync(); + await _db.Ado.CommitTranAsync(); + } + catch (Exception ex) + { + await _db.Ado.RollbackTranAsync(); + return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message); + } + await KittingOutByAdd(); + return ToApiResult(); + } + }