payne
2024-04-23 6097dd7e7d8a736729c4b8be66ea107eb740d9f1
基础数据新增实体
已添加3个文件
已修改4个文件
已删除4个文件
2554 ■■■■■ 文件已修改
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Admin.NET.Application.xml 524 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/BindEntrance/BindEntranceService.cs 944 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsMaterial/Dto/WmsMaterialDto.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsMaterial/Dto/WmsMaterialInput.cs 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsMaterial/Dto/WmsMaterialOutput.cs 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsMaterial/WmsMaterialService.cs 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterial.cs 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterialCustomer.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterialType.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterialUnit.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.EntityFramework.Core/Admin.NET.EntityFramework.Core.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Admin.NET.Application.xml
@@ -55,49 +55,6 @@
            </summary>
            <param name="config"></param>
        </member>
        <member name="T:Admin.NET.Application.BindEntranceService">
            <summary>
            å…¥åº“管理服务
            </summary>
        </member>
        <member name="M:Admin.NET.Application.BindEntranceService.#ctor(Furion.DatabaseAccessor.IRepository{Admin.NET.Core.WmsArea,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{Admin.NET.Core.WmsPlace,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{Admin.NET.Core.WmsTask,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{Admin.NET.Core.WmsContainer,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{Admin.NET.Core.WmsContainerPlace,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{Admin.NET.Core.WmsMaterial,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{Admin.NET.Core.WmsMaterialStock,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{Admin.NET.Core.WmsMaterialContainer,Furion.DatabaseAccessor.MasterDbContextLocator})">
            <summary>
            æž„造函数
            </summary>
        </member>
        <member name="M:Admin.NET.Application.BindEntranceService.GetContainer(Admin.NET.Application.BindEntranceInput)">
            <summary>
            æ‰˜ç›˜æŸ¥è¯¢ç»„盘物料
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.BindEntranceService.GetMaterial(Admin.NET.Application.GetMaterialInput)">
            <summary>
            æ‰«ç èŽ·å–ç‰©æ–™
            </summary>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.BindEntranceService.AutoWare(Admin.NET.Application.WarehousingInput)">
            <summary>
             ç»„盘
            </summary>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.BindEntranceService.AutomaticWarehousing(Admin.NET.Application.WarehousingInput)">
            <summary>
            è‡ªåŠ¨å…¥åº“
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.BindEntranceService.ManualWarehousing(Admin.NET.Application.WarehousingInput)">
            <summary>
            äººå·¥å…¥åº“
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="T:Admin.NET.Application.BindEntranceInput">
            <summary>
            
@@ -1447,487 +1404,6 @@
            </summary>
            <param name="input">托盘信息查询参数</param>
            <returns>导出的Excel文件</returns>
        </member>
        <member name="T:Admin.NET.Application.WmsMaterialDto">
            <summary>
            ç‰©æ–™ä¿¡æ¯
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.MaterialName">
            <summary>
            ç‰©æ–™åç§°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.MaterialNo">
            <summary>
            ç‰©æ–™ç¼–号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.MaterialBatch">
            <summary>
            ç‰©æ–™æ‰¹æ¬¡
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.Description">
            <summary>
            æè¿°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.MaterialType">
            <summary>
            ç‰©æ–™ç±»åˆ«
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.MaterialSpec">
            <summary>
            ç‰©æ–™è§„æ ¼
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.MaterialDensity">
            <summary>
            ç‰©æ–™å¯†åº¦
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.AreaNameParameter">
            <summary>
            åº“区参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.StationNameParameter">
            <summary>
            å·¥ä½œåŒºå‚æ•°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.MaturationTime">
            <summary>
            ç†ŸåŒ–æ—¶é—´
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.IsMaturation">
            <summary>
            æ˜¯å¦éœ€è¦ç†ŸåŒ–
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialDto.Id">
            <summary>
            Id主键
            </summary>
        </member>
        <member name="T:Admin.NET.Application.WmsMaterialSearch">
            <summary>
            ç‰©æ–™ä¿¡æ¯æŸ¥è¯¢å‚æ•°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.MaterialName">
            <summary>
            ç‰©æ–™åç§°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.MaterialNo">
            <summary>
            ç‰©æ–™ç¼–号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.MaterialBatch">
            <summary>
            ç‰©æ–™æ‰¹æ¬¡
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.Description">
            <summary>
            æè¿°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.MaterialType">
            <summary>
            ç‰©æ–™ç±»åˆ«
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.MaterialSpec">
            <summary>
            ç‰©æ–™è§„æ ¼
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.MaterialDensity">
            <summary>
            ç‰©æ–™å¯†åº¦
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.MaterialUnit">
            <summary>
            ç‰©æ–™å•位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.AreaNameParameter">
            <summary>
            åº“区参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.StationNameParameter">
            <summary>
            å·¥ä½œåŒºå‚æ•°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.MaturationTime">
            <summary>
            ç†ŸåŒ–æ—¶é—´
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.IsMaturation">
            <summary>
            æ˜¯å¦éœ€è¦ç†ŸåŒ–
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.InspectionMethod">
            <summary>
            æ£€éªŒæ–¹å¼;数据字典
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.Safeqty">
            <summary>
            å®‰å…¨å­˜é‡
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.MaxImumqty">
            <summary>
            æœ€å¤§å­˜é‡
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.MinstorageAge">
            <summary>
            æœ€å°åº“龄
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialSearch.MaxstorageAge">
            <summary>
            æœ€å¤§åº“龄
            </summary>
        </member>
        <member name="T:Admin.NET.Application.WmsMaterialInput">
            <summary>
            ç‰©æ–™ä¿¡æ¯è¾“入参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.MaterialName">
            <summary>
            ç‰©æ–™åç§°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.MaterialNo">
            <summary>
            ç‰©æ–™ç¼–号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.MaterialBatch">
            <summary>
            ç‰©æ–™æ‰¹æ¬¡
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.Description">
            <summary>
            æè¿°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.MaterialType">
            <summary>
            ç‰©æ–™ç±»åˆ«
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.MaterialSpec">
            <summary>
            ç‰©æ–™è§„æ ¼
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.MaterialDensity">
            <summary>
            ç‰©æ–™å¯†åº¦
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.MaterialUnit">
            <summary>
            ç‰©æ–™å•位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.AreaIds">
            <summary>
            åº“区Ids
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.AreaNameParameter">
            <summary>
            åº“区参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.StationIds">
            <summary>
            å·¥ä½œåŒºIds
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.StationNameParameter">
            <summary>
            å·¥ä½œåŒºå‚æ•°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.MaturationTime">
            <summary>
            ç†ŸåŒ–æ—¶é—´
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.IsMaturation">
            <summary>
            æ˜¯å¦éœ€è¦ç†ŸåŒ–
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.LesWorkshopSection">
            <summary>
            å·¥æ®µ
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.InspectionMethod">
            <summary>
            æ£€éªŒæ–¹å¼;数据字典
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.Safeqty">
            <summary>
            å®‰å…¨å­˜é‡
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.MaxImumqty">
            <summary>
            æœ€å¤§å­˜é‡
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.MinstorageAge">
            <summary>
            æœ€å°åº“龄
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialInput.MaxstorageAge">
            <summary>
            æœ€å¤§åº“龄
            </summary>
        </member>
        <member name="T:Admin.NET.Application.AddWmsMaterialInput">
            <summary>
            </summary>
        </member>
        <member name="T:Admin.NET.Application.DeleteWmsMaterialInput">
            <summary>
            </summary>
        </member>
        <member name="T:Admin.NET.Application.UpdateWmsMaterialInput">
            <summary>
            </summary>
        </member>
        <member name="P:Admin.NET.Application.UpdateWmsMaterialInput.Id">
            <summary>
            Id主键
            </summary>
        </member>
        <member name="T:Admin.NET.Application.QueryeWmsMaterialInput">
            <summary>
            </summary>
        </member>
        <member name="T:Admin.NET.Application.WmsMaterialOutput">
            <summary>
            ç‰©æ–™ä¿¡æ¯è¾“出参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.MaterialName">
            <summary>
            ç‰©æ–™åç§°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.MaterialNo">
            <summary>
            ç‰©æ–™ç¼–号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.MaterialBatch">
            <summary>
            ç‰©æ–™æ‰¹æ¬¡
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.Description">
            <summary>
            æè¿°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.MaterialType">
            <summary>
            ç‰©æ–™ç±»åˆ«
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.MaterialSpec">
            <summary>
            ç‰©æ–™è§„æ ¼
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.MaterialDensity">
            <summary>
            ç‰©æ–™å¯†åº¦
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.MaterialUnit">
            <summary>
            ç‰©æ–™å•位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.AreaIds">
            <summary>
            åº“区Ids
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.AreaNameParameter">
            <summary>
            åº“区参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.StationIds">
            <summary>
            å·¥ä½œåŒºIds
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.StationNameParameter">
            <summary>
            å·¥ä½œåŒºå‚æ•°
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.MaturationTime">
            <summary>
            ç†ŸåŒ–æ—¶é—´
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.IsMaturation">
            <summary>
            æ˜¯å¦éœ€è¦ç†ŸåŒ–
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.Id">
            <summary>
            Id主键
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.InspectionMethod">
            <summary>
            æ£€éªŒæ–¹å¼;数据字典
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.Safeqty">
            <summary>
            å®‰å…¨å­˜é‡
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.MaxImumqty">
            <summary>
            æœ€å¤§å­˜é‡
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.MinstorageAge">
            <summary>
            æœ€å°åº“龄
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsMaterialOutput.MaxstorageAge">
            <summary>
            æœ€å¤§åº“龄
            </summary>
        </member>
        <member name="T:Admin.NET.Application.AreaListOutput">
            <summary>
            åº“区下拉框输出参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.AreaListOutput.AreaId">
            <summary>
            æ‰€åœ¨åº“区Id
            </summary>
        </member>
        <member name="P:Admin.NET.Application.AreaListOutput.AreaName">
            <summary>
            åº“区名称
            </summary>
        </member>
        <member name="T:Admin.NET.Application.StationListOutput">
            <summary>
            å·¥ä½œåŒºï¼ˆå·¥ä½ï¼‰ä¸‹æ‹‰æ¡†è¾“出参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.StationListOutput.StationId">
            <summary>
            ç«™ç‚¹Id
            </summary>
        </member>
        <member name="P:Admin.NET.Application.StationListOutput.StationName">
            <summary>
            ç«™ç‚¹åç§°
            </summary>
        </member>
        <member name="T:Admin.NET.Application.WmsMaterialService">
            <summary>
            ç‰©æ–™ä¿¡æ¯æœåŠ¡
            </summary>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.#ctor(Furion.DatabaseAccessor.IRepository{Admin.NET.Core.WmsMaterial,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{Admin.NET.Core.WmsArea,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{Admin.NET.Core.LesStation,Furion.DatabaseAccessor.MasterDbContextLocator})">
            <summary>
            æž„造函数
            </summary>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.Page(Admin.NET.Application.WmsMaterialSearch)">
            <summary>
            åˆ†é¡µæŸ¥è¯¢ç‰©æ–™ä¿¡æ¯
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.Add(Admin.NET.Application.AddWmsMaterialInput)">
            <summary>
            å¢žåŠ ç‰©æ–™ä¿¡æ¯
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.Delete(Admin.NET.Application.DeleteWmsMaterialInput)">
            <summary>
            åˆ é™¤ç‰©æ–™ä¿¡æ¯
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.Update(Admin.NET.Application.UpdateWmsMaterialInput)">
            <summary>
            æ›´æ–°ç‰©æ–™ä¿¡æ¯
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.Get(Admin.NET.Application.QueryeWmsMaterialInput)">
            <summary>
            èŽ·å–ç‰©æ–™ä¿¡æ¯
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.List(Admin.NET.Application.WmsMaterialInput)">
            <summary>
            èŽ·å–ç‰©æ–™ä¿¡æ¯åˆ—è¡¨
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.GetAreaList">
            <summary>
            åº“区下拉框
            </summary>
            <returns></returns>
        </member>
        <member name="T:Admin.NET.Application.WmsMerchantinfoDto">
            <summary>
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/BindEntrance/BindEntranceService.cs
@@ -1,518 +1,518 @@
using Furion.DatabaseAccessor;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Furion.FriendlyException;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Yitter.IdGenerator;
using Admin.NET.Core;
//using Furion.DatabaseAccessor;
//using Furion.DependencyInjection;
//using Furion.DynamicApiController;
//using Furion.FriendlyException;
//using Mapster;
//using Microsoft.AspNetCore.Mvc;
//using Microsoft.EntityFrameworkCore;
//using Yitter.IdGenerator;
//using Admin.NET.Core;
namespace Admin.NET.Application
{
    /// <summary>
    /// å…¥åº“管理服务
    /// </summary>
    [ApiDescriptionSettings("自己的业务", Name = "BindEntrance", Order = 100)]
    [Route("api/[Controller]")]
    public class BindEntranceService : IDynamicApiController, ITransient
    {
        private readonly IRepository<WmsArea, MasterDbContextLocator> _wmsAreaRep;
        private readonly IRepository<WmsPlace, MasterDbContextLocator> _wmsPlaceRep;
        private readonly IRepository<WmsTask, MasterDbContextLocator> _wmsTaskRep;
        private readonly IRepository<WmsContainer, MasterDbContextLocator> _wmsContainerRep;
        private readonly IRepository<WmsContainerPlace, MasterDbContextLocator> _wmsContainerPlaceRep;
        private readonly IRepository<WmsMaterial, MasterDbContextLocator> _wmsMaterialRep;
        private readonly IRepository<WmsMaterialStock, MasterDbContextLocator> _wmsMaterialStockRep;
        private readonly IRepository<WmsMaterialContainer, MasterDbContextLocator> _wmsMaterialContainerRep;
//namespace Admin.NET.Application
//{
//    /// <summary>
//    /// å…¥åº“管理服务
//    /// </summary>
//    [ApiDescriptionSettings("自己的业务", Name = "BindEntrance", Order = 100)]
//    [Route("api/[Controller]")]
//    public class BindEntranceService : IDynamicApiController, ITransient
//    {
//        private readonly IRepository<WmsArea, MasterDbContextLocator> _wmsAreaRep;
//        private readonly IRepository<WmsPlace, MasterDbContextLocator> _wmsPlaceRep;
//        private readonly IRepository<WmsTask, MasterDbContextLocator> _wmsTaskRep;
//        private readonly IRepository<WmsContainer, MasterDbContextLocator> _wmsContainerRep;
//        private readonly IRepository<WmsContainerPlace, MasterDbContextLocator> _wmsContainerPlaceRep;
//        private readonly IRepository<WmsMaterial, MasterDbContextLocator> _wmsMaterialRep;
//        private readonly IRepository<WmsMaterialStock, MasterDbContextLocator> _wmsMaterialStockRep;
//        private readonly IRepository<WmsMaterialContainer, MasterDbContextLocator> _wmsMaterialContainerRep;
        /// <summary>
        /// æž„造函数
        /// </summary>
        public BindEntranceService(
                        IRepository<WmsArea, MasterDbContextLocator> wmsAreaRep,
                        IRepository<WmsPlace, MasterDbContextLocator> wmsPlaceRep,
                        IRepository<WmsTask, MasterDbContextLocator> wmsTaskRep,
                        IRepository<WmsContainer, MasterDbContextLocator> wmsContainerRep,
                        IRepository<WmsContainerPlace, MasterDbContextLocator> wmsContainerPlaceRep,
                        IRepository<WmsMaterial, MasterDbContextLocator> wmsMaterialRep,
                        IRepository<WmsMaterialStock, MasterDbContextLocator> wmsMaterialStockRep,
                        IRepository<WmsMaterialContainer, MasterDbContextLocator> wmsMaterialContainerRep)
        {
            this._wmsAreaRep = wmsAreaRep;
            this._wmsPlaceRep = wmsPlaceRep;
            this._wmsTaskRep = wmsTaskRep;
            this._wmsContainerRep = wmsContainerRep;
            this._wmsContainerPlaceRep = wmsContainerPlaceRep;
            this._wmsMaterialRep = wmsMaterialRep;
            this._wmsMaterialStockRep = wmsMaterialStockRep;
            this._wmsMaterialContainerRep = wmsMaterialContainerRep;
        }
//        /// <summary>
//        /// æž„造函数
//        /// </summary>
//        public BindEntranceService(
//                        IRepository<WmsArea, MasterDbContextLocator> wmsAreaRep,
//                        IRepository<WmsPlace, MasterDbContextLocator> wmsPlaceRep,
//                        IRepository<WmsTask, MasterDbContextLocator> wmsTaskRep,
//                        IRepository<WmsContainer, MasterDbContextLocator> wmsContainerRep,
//                        IRepository<WmsContainerPlace, MasterDbContextLocator> wmsContainerPlaceRep,
//                        IRepository<WmsMaterial, MasterDbContextLocator> wmsMaterialRep,
//                        IRepository<WmsMaterialStock, MasterDbContextLocator> wmsMaterialStockRep,
//                        IRepository<WmsMaterialContainer, MasterDbContextLocator> wmsMaterialContainerRep)
//        {
//            this._wmsAreaRep = wmsAreaRep;
//            this._wmsPlaceRep = wmsPlaceRep;
//            this._wmsTaskRep = wmsTaskRep;
//            this._wmsContainerRep = wmsContainerRep;
//            this._wmsContainerPlaceRep = wmsContainerPlaceRep;
//            this._wmsMaterialRep = wmsMaterialRep;
//            this._wmsMaterialStockRep = wmsMaterialStockRep;
//            this._wmsMaterialContainerRep = wmsMaterialContainerRep;
//        }
        /// <summary>
        /// æ‰˜ç›˜æŸ¥è¯¢ç»„盘物料
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("getcontainer")]
        [UnifyResult(typeof(BindEntranceOutput))]
        public async Task<object> GetContainer([FromQuery] BindEntranceInput input)
        {
            var bindEntranceOutputModel = new BindEntranceOutput();
//        /// <summary>
//        /// æ‰˜ç›˜æŸ¥è¯¢ç»„盘物料
//        /// </summary>
//        /// <param name="input"></param>
//        /// <returns></returns>
//        [HttpGet("getcontainer")]
//        [UnifyResult(typeof(BindEntranceOutput))]
//        public async Task<object> GetContainer([FromQuery] BindEntranceInput input)
//        {
//            var bindEntranceOutputModel = new BindEntranceOutput();
            var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(n => n.ContainerCode == input.ContainerCode && n.ContainerStatus != ContainerStatus.JINYONG);
            if (wmsContainer == null)
            {
                var newWmsContainer = new WmsContainerDto();
                newWmsContainer.ContainerCode = input.ContainerCode;
                newWmsContainer.ContainerStatus = ContainerStatus.KOUXIAN;
                newWmsContainer.ContainerType = ContainerType.SULIAO;
//            var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(n => n.ContainerCode == input.ContainerCode && n.ContainerStatus != ContainerStatus.JINYONG);
//            if (wmsContainer == null)
//            {
//                var newWmsContainer = new WmsContainerDto();
//                newWmsContainer.ContainerCode = input.ContainerCode;
//                newWmsContainer.ContainerStatus = ContainerStatus.KOUXIAN;
//                newWmsContainer.ContainerType = ContainerType.SULIAO;
                bindEntranceOutputModel.ContainerCode = input.ContainerCode;
                bindEntranceOutputModel.WmsContainer = newWmsContainer;
//                bindEntranceOutputModel.ContainerCode = input.ContainerCode;
//                bindEntranceOutputModel.WmsContainer = newWmsContainer;
                if (wmsContainer != null)
                {
                    var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG);
                    if (isWmsTask) return XnRestfulResultProvider.RESTfulMesaage("周转箱号存在未完成任务!");
//                if (wmsContainer != null)
//                {
//                    var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG);
//                    if (isWmsTask) return XnRestfulResultProvider.RESTfulMesaage("周转箱号存在未完成任务!");
                    bindEntranceOutputModel.WmsContainer = wmsContainer.Adapt<WmsContainerDto>();
                    bindEntranceOutputModel.ContainerCode = wmsContainer.ContainerCode;
//                    bindEntranceOutputModel.WmsContainer = wmsContainer.Adapt<WmsContainerDto>();
//                    bindEntranceOutputModel.ContainerCode = wmsContainer.ContainerCode;
                    // å‘¨è½¬ç®±å·ç»„盘状态
                    if (wmsContainer.ContainerStatus == ContainerStatus.ZUPANG)
                    {
                        bindEntranceOutputModel.WmsMaterials = await _wmsMaterialContainerRep
                            .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ProjectToType<GetMaterialContainerOutput>().ToListAsync();
//                    // å‘¨è½¬ç®±å·ç»„盘状态
//                    if (wmsContainer.ContainerStatus == ContainerStatus.ZUPANG)
//                    {
//                        bindEntranceOutputModel.WmsMaterials = await _wmsMaterialContainerRep
//                            .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ProjectToType<GetMaterialContainerOutput>().ToListAsync();
                        return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel);
                    }
                    // å‘¨è½¬ç®±å·åº“位状态
                    if (wmsContainer.ContainerStatus == ContainerStatus.KUWEI)
                    {
                        // æŸ¥è¯¢å‘¨è½¬ç®±å·ä¸Žåº“位关系
                        var wmsContainerPlace = await _wmsContainerPlaceRep.FirstOrDefaultAsync(u => u.ContainerId == wmsContainer.Id && u.ContainerCode == wmsContainer.ContainerCode);
//                        return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel);
//                    }
//                    // å‘¨è½¬ç®±å·åº“位状态
//                    if (wmsContainer.ContainerStatus == ContainerStatus.KUWEI)
//                    {
//                        // æŸ¥è¯¢å‘¨è½¬ç®±å·ä¸Žåº“位关系
//                        var wmsContainerPlace = await _wmsContainerPlaceRep.FirstOrDefaultAsync(u => u.ContainerId == wmsContainer.Id && u.ContainerCode == wmsContainer.ContainerCode);
                        if (wmsContainerPlace != null) bindEntranceOutputModel.PlaceCode = wmsContainerPlace.PlaceCode;
//                        if (wmsContainerPlace != null) bindEntranceOutputModel.PlaceCode = wmsContainerPlace.PlaceCode;
                        return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel);
                    }
                }
            }
            return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel);
        }
//                        return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel);
//                    }
//                }
//            }
//            return XnRestfulResultProvider.RESTfulResult(bindEntranceOutputModel);
//        }
        /// <summary>
        /// æ‰«ç èŽ·å–ç‰©æ–™
        /// </summary>
        /// <returns></returns>
        [HttpGet("GetMaterial")]
        [UnifyResult(typeof(MaterialOutput))]
        public async Task<object> GetMaterial([FromQuery] GetMaterialInput input)
        {
            var material = new MaterialOutput();
            material.MaterialName = "胶合板";
            material.MaterialNo = "JHB20110101";
            material.MaterialId = 43214325321513;
            material.MaterialBatch = "DIYIPICI001";
            material.MaterialType = MaterialType.BAOZHUANGCAILIAO;
            material.InspectionMethod = MaterialInspection.MIANJIAN;
            material.MaterialSpec = "";
            material.MaterialDensity = "";
            material.MaterialUnit = "";
            material.LesWorkshopSection = LesWorkshopSection.CNC;
            return XnRestfulResultProvider.RESTfulResult(material);
//        /// <summary>
//        /// æ‰«ç èŽ·å–ç‰©æ–™
//        /// </summary>
//        /// <returns></returns>
//        [HttpGet("GetMaterial")]
//        [UnifyResult(typeof(MaterialOutput))]
//        public async Task<object> GetMaterial([FromQuery] GetMaterialInput input)
//        {
//            var material = new MaterialOutput();
//            material.MaterialName = "胶合板";
//            material.MaterialNo = "JHB20110101";
//            material.MaterialId = 43214325321513;
//            material.MaterialBatch = "DIYIPICI001";
//            material.MaterialType = MaterialType.BAOZHUANGCAILIAO;
//            material.InspectionMethod = MaterialInspection.MIANJIAN;
//            material.MaterialSpec = "";
//            material.MaterialDensity = "";
//            material.MaterialUnit = "";
//            material.LesWorkshopSection = LesWorkshopSection.CNC;
//            return XnRestfulResultProvider.RESTfulResult(material);
        }
//        }
        /// <summary>
        ///  ç»„盘
        /// </summary>
        /// <returns></returns>
        [HttpPost("AutoWare")]
        public async Task AutoWare(WarehousingInput input)
        {
            // æ ¹æ®æ‰˜ç›˜å·æŸ¥è¯¢æ‰˜ç›˜å·ä¿¡æ¯æ˜¯å¦å·²å­˜åœ¨
            var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode);
            if (wmsContainer == null)
            {
                // ä¸å­˜åœ¨åˆ™æ·»åŠ æ‰˜ç›˜å·ä¿¡æ¯
                wmsContainer = new WmsContainer
                {
                    ContainerCode = input.ContainerCode,
                    ContainerType = ContainerType.SULIAO,
                    ContainerStatus = ContainerStatus.KOUXIAN,
                    AssetNo = "N/A",
                    ErpNo = "N/A"
                };
                await _wmsContainerRep.InsertNowAsync(wmsContainer);
            }
            // æŸ¥è¯¢æ˜¯å¦ä»»åŠ¡å·²å­˜åœ¨
            var isExit = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG);
            if (isExit) throw Oops.Oh("托盘号存在未完成任务中!");
//        /// <summary>
//        ///  ç»„盘
//        /// </summary>
//        /// <returns></returns>
//        [HttpPost("AutoWare")]
//        public async Task AutoWare(WarehousingInput input)
//        {
//            // æ ¹æ®æ‰˜ç›˜å·æŸ¥è¯¢æ‰˜ç›˜å·ä¿¡æ¯æ˜¯å¦å·²å­˜åœ¨
//            var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode);
//            if (wmsContainer == null)
//            {
//                // ä¸å­˜åœ¨åˆ™æ·»åŠ æ‰˜ç›˜å·ä¿¡æ¯
//                wmsContainer = new WmsContainer
//                {
//                    ContainerCode = input.ContainerCode,
//                    ContainerType = ContainerType.SULIAO,
//                    ContainerStatus = ContainerStatus.KOUXIAN,
//                    AssetNo = "N/A",
//                    ErpNo = "N/A"
//                };
//                await _wmsContainerRep.InsertNowAsync(wmsContainer);
//            }
//            // æŸ¥è¯¢æ˜¯å¦ä»»åŠ¡å·²å­˜åœ¨
//            var isExit = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG);
//            if (isExit) throw Oops.Oh("托盘号存在未完成任务中!");
            // æŸ¥è¯¢å·²ç»„盘信息
            var wmsMaterialContainerList = await _wmsMaterialContainerRep
                .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync();
            await _wmsMaterialContainerRep.DeleteAsync(wmsMaterialContainerList);
            var orderNo = "N/A";
            if (input.WmsMaterials.Count > 0)
            {
                wmsContainer.ContainerStatus = ContainerStatus.ZUPANG;
                orderNo = YitIdHelper.NextId().ToString();
                await _wmsContainerRep.UpdateAsync(wmsContainer);
            }
            // åˆ›å»ºæ–°ç»„盘记录
            foreach (var item in input.WmsMaterials)
            {
                //创建组盘记录
                var bindentranceModel = new WmsMaterialContainer();
                bindentranceModel.ContainerId = wmsContainer.Id;
                bindentranceModel.ContainerCode = wmsContainer.ContainerCode;
                bindentranceModel.MaterialNo = item.MaterialNo;
                bindentranceModel.MaterialId = 478183507525701;
                bindentranceModel.MaterialBatch = item.MaterialBatch;
                bindentranceModel.BindQuantity = 1;
                bindentranceModel.BindStatus = CommonStatus.ENABLE;
                bindentranceModel.OrderNo = orderNo;
                bindentranceModel.MaterialName = item.MaterialName;
                bindentranceModel.MaterialDensity = "N/A";
                await _wmsMaterialContainerRep.InsertNowAsync(bindentranceModel);
            }
        }
//            // æŸ¥è¯¢å·²ç»„盘信息
//            var wmsMaterialContainerList = await _wmsMaterialContainerRep
//                .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync();
//            await _wmsMaterialContainerRep.DeleteAsync(wmsMaterialContainerList);
//            var orderNo = "N/A";
//            if (input.WmsMaterials.Count > 0)
//            {
//                wmsContainer.ContainerStatus = ContainerStatus.ZUPANG;
//                orderNo = YitIdHelper.NextId().ToString();
//                await _wmsContainerRep.UpdateAsync(wmsContainer);
//            }
//            // åˆ›å»ºæ–°ç»„盘记录
//            foreach (var item in input.WmsMaterials)
//            {
//                //创建组盘记录
//                var bindentranceModel = new WmsMaterialContainer();
//                bindentranceModel.ContainerId = wmsContainer.Id;
//                bindentranceModel.ContainerCode = wmsContainer.ContainerCode;
//                bindentranceModel.MaterialNo = item.MaterialNo;
//                bindentranceModel.MaterialId = 478183507525701;
//                bindentranceModel.MaterialBatch = item.MaterialBatch;
//                bindentranceModel.BindQuantity = 1;
//                bindentranceModel.BindStatus = CommonStatus.ENABLE;
//                bindentranceModel.OrderNo = orderNo;
//                bindentranceModel.MaterialName = item.MaterialName;
//                bindentranceModel.MaterialDensity = "N/A";
//                await _wmsMaterialContainerRep.InsertNowAsync(bindentranceModel);
//            }
//        }
        /// <summary>
        /// è‡ªåŠ¨å…¥åº“
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("automaticWarehousing")]
        [UnitOfWork]
        public async Task AutomaticWarehousing(WarehousingInput input)
        {
            // æŸ¥è¯¢æ··åˆæ–™åº“区信息
            var wmsArea = await _wmsAreaRep.FirstOrDefaultAsync(u => u.AreaName.Contains("绝缘立库"));
            // æ ¹æ®æ–™ç®±å·æŸ¥è¯¢å‘¨è½¬ç®±å·ä¿¡æ¯æ˜¯å¦å·²å­˜åœ¨
            var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode);
            if (wmsContainer == null)
            {
                // ä¸å­˜åœ¨åˆ™æ·»åŠ å‘¨è½¬ç®±å·ä¿¡æ¯
                wmsContainer = new WmsContainer
                {
                    ContainerCode = input.ContainerCode,
                    ContainerType = ContainerType.JINSHU,
                    ContainerStatus = ContainerStatus.KOUXIAN,
                    AssetNo = "N/A",
                    ErpNo = "N/A"
                };
                await _wmsContainerRep.InsertNowAsync(wmsContainer);
            }
            else
            {
                // æ›´æ–°å‘¨è½¬ç®±å·çŠ¶æ€ä¸ºâ€œåº“ä½â€
                wmsContainer.ContainerStatus = ContainerStatus.KOUXIAN;
                await _wmsContainerRep.UpdateAsync(wmsContainer);
            }
//        /// <summary>
//        /// è‡ªåŠ¨å…¥åº“
//        /// </summary>
//        /// <param name="input"></param>
//        /// <returns></returns>
//        [HttpPost("automaticWarehousing")]
//        [UnitOfWork]
//        public async Task AutomaticWarehousing(WarehousingInput input)
//        {
//            // æŸ¥è¯¢æ··åˆæ–™åº“区信息
//            var wmsArea = await _wmsAreaRep.FirstOrDefaultAsync(u => u.AreaName.Contains("绝缘立库"));
//            // æ ¹æ®æ–™ç®±å·æŸ¥è¯¢å‘¨è½¬ç®±å·ä¿¡æ¯æ˜¯å¦å·²å­˜åœ¨
//            var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode);
//            if (wmsContainer == null)
//            {
//                // ä¸å­˜åœ¨åˆ™æ·»åŠ å‘¨è½¬ç®±å·ä¿¡æ¯
//                wmsContainer = new WmsContainer
//                {
//                    ContainerCode = input.ContainerCode,
//                    ContainerType = ContainerType.JINSHU,
//                    ContainerStatus = ContainerStatus.KOUXIAN,
//                    AssetNo = "N/A",
//                    ErpNo = "N/A"
//                };
//                await _wmsContainerRep.InsertNowAsync(wmsContainer);
//            }
//            else
//            {
//                // æ›´æ–°å‘¨è½¬ç®±å·çŠ¶æ€ä¸ºâ€œåº“ä½â€
//                wmsContainer.ContainerStatus = ContainerStatus.KOUXIAN;
//                await _wmsContainerRep.UpdateAsync(wmsContainer);
//            }
            // æŸ¥è¯¢å‘¨è½¬ç®±å·æ˜¯å¦å·²å­˜åœ¨ä»»åŠ¡
            var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG);
            if (isWmsTask) throw Oops.Oh("周转箱号存在未完成任务中!");
//            // æŸ¥è¯¢å‘¨è½¬ç®±å·æ˜¯å¦å·²å­˜åœ¨ä»»åŠ¡
//            var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG);
//            if (isWmsTask) throw Oops.Oh("周转箱号存在未完成任务中!");
            // åˆ é™¤å·²ç»„盘信息
            var oldWmsMaterialContainerList = await _wmsMaterialContainerRep
                .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync();
//            // åˆ é™¤å·²ç»„盘信息
//            var oldWmsMaterialContainerList = await _wmsMaterialContainerRep
//                .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync();
            foreach (var item in oldWmsMaterialContainerList)
            {
                await _wmsMaterialContainerRep.DeleteAsync(item);
            }
//            foreach (var item in oldWmsMaterialContainerList)
//            {
//                await _wmsMaterialContainerRep.DeleteAsync(item);
//            }
            // ç»„盘单据 é»˜è®¤ç©ºæ–™ç®±å•据
            var source = ""; //定义入库来源
            var orderNo = "N/A";
            if (input.WmsMaterials.Count > 0)
            {
                wmsContainer.ContainerStatus = ContainerStatus.ZUPANG;
                orderNo = YitIdHelper.NextId().ToString();
                await _wmsContainerRep.UpdateAsync(wmsContainer);
                source = "物料";
            }
            else
            {
                source = "空托";
            }
            // æŸ¥è¯¢ç‰©æ–™Id
            var wmsMaterial = await _wmsMaterialRep.FirstOrDefaultAsync(u => u.MaterialNo == "N/A" && u.MaterialName == "N/A" && u.MaterialBatch == "N/A");
//            // ç»„盘单据 é»˜è®¤ç©ºæ–™ç®±å•据
//            var source = ""; //定义入库来源
//            var orderNo = "N/A";
//            if (input.WmsMaterials.Count > 0)
//            {
//                wmsContainer.ContainerStatus = ContainerStatus.ZUPANG;
//                orderNo = YitIdHelper.NextId().ToString();
//                await _wmsContainerRep.UpdateAsync(wmsContainer);
//                source = "物料";
//            }
//            else
//            {
//                source = "空托";
//            }
//            // æŸ¥è¯¢ç‰©æ–™Id
//            var wmsMaterial = await _wmsMaterialRep.FirstOrDefaultAsync(u => u.MaterialNo == "N/A" && u.MaterialName == "N/A" && u.MaterialBatch == "N/A");
            // åˆ›å»ºæ–°ç»„盘记录
            foreach (var item in input.WmsMaterials)
            {
                var wmsMaterialContainer = item.Adapt<WmsMaterialContainer>();
                wmsMaterialContainer.OrderNo = orderNo;
                wmsMaterialContainer.ContainerId = wmsContainer.Id;
                wmsMaterialContainer.ContainerCode = wmsContainer.ContainerCode;
                wmsMaterialContainer.MaterialId = wmsMaterial.Id;
                wmsMaterialContainer.BindStatus = CommonStatus.ENABLE;
                await _wmsMaterialContainerRep.InsertNowAsync(wmsMaterialContainer);
            }
//            // åˆ›å»ºæ–°ç»„盘记录
//            foreach (var item in input.WmsMaterials)
//            {
//                var wmsMaterialContainer = item.Adapt<WmsMaterialContainer>();
//                wmsMaterialContainer.OrderNo = orderNo;
//                wmsMaterialContainer.ContainerId = wmsContainer.Id;
//                wmsMaterialContainer.ContainerCode = wmsContainer.ContainerCode;
//                wmsMaterialContainer.MaterialId = wmsMaterial.Id;
//                wmsMaterialContainer.BindStatus = CommonStatus.ENABLE;
//                await _wmsMaterialContainerRep.InsertNowAsync(wmsMaterialContainer);
//            }
            //if (input.Source == RuKuSourceEnum.KONGTUO)
            //else if (input.Source == RuKuSourceEnum.WULIAO)
//            //if (input.Source == RuKuSourceEnum.KONGTUO)
//            //else if (input.Source == RuKuSourceEnum.WULIAO)
            //创建巷道分配
            var wmsPlace = await _wmsPlaceRep.Where(u => u.PlaceStatus == PlaceStatus.KONGXIAN).ToListAsync();
            var one = wmsPlace.Where(s => s.Aisle==1).ToList().Count;
            var two = wmsPlace.Where(s => s.Aisle == 2).ToList().Count;
            var three = wmsPlace.Where(s => s.Aisle == 3).ToList().Count;
            var Aisle = 0;
            if (one >= two && one >= three)
            {
                Aisle = 1;
            }
            else if (two >= one && two >= three)
            {
                Aisle = 2;
            }
            else
            {
                Aisle = 3;
            }
//            //创建巷道分配
//            var wmsPlace = await _wmsPlaceRep.Where(u => u.PlaceStatus == PlaceStatus.KONGXIAN).ToListAsync();
//            var one = wmsPlace.Where(s => s.Aisle==1).ToList().Count;
//            var two = wmsPlace.Where(s => s.Aisle == 2).ToList().Count;
//            var three = wmsPlace.Where(s => s.Aisle == 3).ToList().Count;
//            var Aisle = 0;
//            if (one >= two && one >= three)
//            {
//                Aisle = 1;
//            }
//            else if (two >= one && two >= three)
//            {
//                Aisle = 2;
//            }
//            else
//            {
//                Aisle = 3;
//            }
            string taskNo = "RUKU"+ DateTime.Today.ToString("yyyyMMdd");
            var wmsTaskModel = await _wmsTaskRep.DetachedEntities.FirstOrDefaultAsync(u => EF.Functions.Like(u.TaskNo, $"%{taskNo}%"));
            if (wmsTaskModel == null)
            {
                taskNo = taskNo + "0001";
            }
            else
            {
                //获取流水号最大的数据
                var maxSerialNumber = await _wmsTaskRep.MaxAsync(t => t.TaskNo);
                taskNo = Comm.GenerateNewInvoiceNumber(maxSerialNumber, 1);
            }
//            string taskNo = "RUKU"+ DateTime.Today.ToString("yyyyMMdd");
//            var wmsTaskModel = await _wmsTaskRep.DetachedEntities.FirstOrDefaultAsync(u => EF.Functions.Like(u.TaskNo, $"%{taskNo}%"));
//            if (wmsTaskModel == null)
//            {
//                taskNo = taskNo + "0001";
//            }
//            else
//            {
//                //获取流水号最大的数据
//                var maxSerialNumber = await _wmsTaskRep.MaxAsync(t => t.TaskNo);
//                taskNo = Comm.GenerateNewInvoiceNumber(maxSerialNumber, 1);
//            }
            // åˆ›å»ºä»»åŠ¡
            var takmodel = new WmsTask()
            {
                TaskNo = taskNo,//YitIdHelper.NextId().ToString(),
                TaskModel = TaskModel.QUANZIDONG,
                TaskType = TaskType.RUKU,
                TaskLevel = 1,
                Aisle = Aisle,
                TaskStatus = TaskStatusEnum.WEIZHIXING,
                ContainerCode = wmsContainer.ContainerCode,
                SourcePlace = "入库口",
                ToPlace = "",
                AreaName = wmsArea != null ? wmsArea.AreaName : "",
                OrderNo = orderNo,
                Description = source, //入库来源
                TaskDodeviceStatus = TaskDodeviceStatusEnum.WZX,
                IsRead = true
            };
            await _wmsTaskRep.InsertAsync(takmodel);
        }
//            // åˆ›å»ºä»»åŠ¡
//            var takmodel = new WmsTask()
//            {
//                TaskNo = taskNo,//YitIdHelper.NextId().ToString(),
//                TaskModel = TaskModel.QUANZIDONG,
//                TaskType = TaskType.RUKU,
//                TaskLevel = 1,
//                Aisle = Aisle,
//                TaskStatus = TaskStatusEnum.WEIZHIXING,
//                ContainerCode = wmsContainer.ContainerCode,
//                SourcePlace = "入库口",
//                ToPlace = "",
//                AreaName = wmsArea != null ? wmsArea.AreaName : "",
//                OrderNo = orderNo,
//                Description = source, //入库来源
//                TaskDodeviceStatus = TaskDodeviceStatusEnum.WZX,
//                IsRead = true
//            };
//            await _wmsTaskRep.InsertAsync(takmodel);
//        }
        /// <summary>
        /// äººå·¥å…¥åº“
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("manualWarehousing")]
        [UnitOfWork]
        public async Task ManualWarehousing(WarehousingInput input)
        {
            // æŸ¥è¯¢æ··åˆæ–™åº“区信息
            var wmsArea = await _wmsAreaRep.FirstOrDefaultAsync(u => u.AreaName.Contains("绝缘立库"));
            // æ ¹æ®æ–™ç®±å·æŸ¥è¯¢å‘¨è½¬ç®±å·ä¿¡æ¯æ˜¯å¦å·²å­˜åœ¨
            var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode);
            if (wmsContainer == null)
            {
                // ä¸å­˜åœ¨åˆ™æ·»åŠ å‘¨è½¬ç®±å·ä¿¡æ¯
                wmsContainer = new WmsContainer
                {
                    ContainerCode = input.ContainerCode,
                    ContainerType = ContainerType.JINSHU,
                    ContainerStatus = ContainerStatus.KUWEI,
                    AssetNo = "N/A",
                    ErpNo = "N/A"
                };
                await _wmsContainerRep.InsertNowAsync(wmsContainer);
            }
            else
            {
                // æ›´æ–°å‘¨è½¬ç®±å·çŠ¶æ€ä¸ºâ€œåº“ä½â€
                wmsContainer.ContainerStatus = ContainerStatus.KUWEI;
                await _wmsContainerRep.UpdateAsync(wmsContainer);
            }
//        /// <summary>
//        /// äººå·¥å…¥åº“
//        /// </summary>
//        /// <param name="input"></param>
//        /// <returns></returns>
//        [HttpPost("manualWarehousing")]
//        [UnitOfWork]
//        public async Task ManualWarehousing(WarehousingInput input)
//        {
//            // æŸ¥è¯¢æ··åˆæ–™åº“区信息
//            var wmsArea = await _wmsAreaRep.FirstOrDefaultAsync(u => u.AreaName.Contains("绝缘立库"));
//            // æ ¹æ®æ–™ç®±å·æŸ¥è¯¢å‘¨è½¬ç®±å·ä¿¡æ¯æ˜¯å¦å·²å­˜åœ¨
//            var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.ContainerCode == input.ContainerCode);
//            if (wmsContainer == null)
//            {
//                // ä¸å­˜åœ¨åˆ™æ·»åŠ å‘¨è½¬ç®±å·ä¿¡æ¯
//                wmsContainer = new WmsContainer
//                {
//                    ContainerCode = input.ContainerCode,
//                    ContainerType = ContainerType.JINSHU,
//                    ContainerStatus = ContainerStatus.KUWEI,
//                    AssetNo = "N/A",
//                    ErpNo = "N/A"
//                };
//                await _wmsContainerRep.InsertNowAsync(wmsContainer);
//            }
//            else
//            {
//                // æ›´æ–°å‘¨è½¬ç®±å·çŠ¶æ€ä¸ºâ€œåº“ä½â€
//                wmsContainer.ContainerStatus = ContainerStatus.KUWEI;
//                await _wmsContainerRep.UpdateAsync(wmsContainer);
//            }
            // æŸ¥è¯¢å‘¨è½¬ç®±å·æ˜¯å¦å·²å­˜åœ¨ä»»åŠ¡
            var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG);
            if (isWmsTask) throw Oops.Oh("周转箱号存在未完成任务中!");
//            // æŸ¥è¯¢å‘¨è½¬ç®±å·æ˜¯å¦å·²å­˜åœ¨ä»»åŠ¡
//            var isWmsTask = await _wmsTaskRep.AnyAsync(p => p.ContainerCode == wmsContainer.ContainerCode && p.TaskStatus != TaskStatusEnum.WANCHENG);
//            if (isWmsTask) throw Oops.Oh("周转箱号存在未完成任务中!");
            // åˆ é™¤å·²ç»„盘信息
            var oldWmsMaterialContainerList = await _wmsMaterialContainerRep
                .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync();
//            // åˆ é™¤å·²ç»„盘信息
//            var oldWmsMaterialContainerList = await _wmsMaterialContainerRep
//                .Where(p => p.ContainerCode == wmsContainer.ContainerCode && p.BindStatus == CommonStatus.ENABLE).ToListAsync();
            foreach (var item in oldWmsMaterialContainerList)
            {
                await _wmsMaterialContainerRep.DeleteAsync(item);
            }
//            foreach (var item in oldWmsMaterialContainerList)
//            {
//                await _wmsMaterialContainerRep.DeleteAsync(item);
//            }
            // æŸ¥è¯¢åº“位信息 éšæœºåˆ†é…åº“位
            var wmsPlace = new WmsPlace();
            if (string.IsNullOrEmpty(input.PlaceCode))
                wmsPlace = await _wmsPlaceRep.FirstOrDefaultAsync(u => u.AreaId == wmsArea.Id && u.Islock == YesOrNot.N && u.PlaceStatus == PlaceStatus.KONGXIAN);
            else
                wmsPlace = await _wmsPlaceRep.FirstOrDefaultAsync(u => u.AreaId == wmsArea.Id && u.PlaceCode == input.PlaceCode);
            if (wmsPlace == null) throw Oops.Oh("库位不存在!");
            if (wmsPlace.Islock == YesOrNot.Y) throw Oops.Oh("库位被锁定!");
            if (wmsPlace.PlaceStatus != PlaceStatus.KONGXIAN) throw Oops.Oh("库位已存货!");
            // æ›´æ–°åº“位状态为“存货”
            wmsPlace.PlaceStatus = PlaceStatus.CUNHUO;
//            // æŸ¥è¯¢åº“位信息 éšæœºåˆ†é…åº“位
//            var wmsPlace = new WmsPlace();
//            if (string.IsNullOrEmpty(input.PlaceCode))
//                wmsPlace = await _wmsPlaceRep.FirstOrDefaultAsync(u => u.AreaId == wmsArea.Id && u.Islock == YesOrNot.N && u.PlaceStatus == PlaceStatus.KONGXIAN);
//            else
//                wmsPlace = await _wmsPlaceRep.FirstOrDefaultAsync(u => u.AreaId == wmsArea.Id && u.PlaceCode == input.PlaceCode);
//            if (wmsPlace == null) throw Oops.Oh("库位不存在!");
//            if (wmsPlace.Islock == YesOrNot.Y) throw Oops.Oh("库位被锁定!");
//            if (wmsPlace.PlaceStatus != PlaceStatus.KONGXIAN) throw Oops.Oh("库位已存货!");
//            // æ›´æ–°åº“位状态为“存货”
//            wmsPlace.PlaceStatus = PlaceStatus.CUNHUO;
            // ç»„盘单据 é»˜è®¤ç©ºæ–™ç®±å•据
            var orderNo = "N/A";
            var source = ""; //定义入库来源
            if (input.WmsMaterials.Count > 0)
            {
                orderNo = YitIdHelper.NextId().ToString();
                source = "物料";
            }
            else
            {
                wmsPlace.EmptyContainer = YesOrNot.Y;  //是否空托
                source = "空托";
            }
            // æŸ¥è¯¢ç‰©æ–™Id
            var wmsMaterial = await _wmsMaterialRep.FirstOrDefaultAsync(u => u.MaterialNo == "N/A" && u.MaterialName == "N/A" && u.MaterialBatch == "N/A");
//            // ç»„盘单据 é»˜è®¤ç©ºæ–™ç®±å•据
//            var orderNo = "N/A";
//            var source = ""; //定义入库来源
//            if (input.WmsMaterials.Count > 0)
//            {
//                orderNo = YitIdHelper.NextId().ToString();
//                source = "物料";
//            }
//            else
//            {
//                wmsPlace.EmptyContainer = YesOrNot.Y;  //是否空托
//                source = "空托";
//            }
//            // æŸ¥è¯¢ç‰©æ–™Id
//            var wmsMaterial = await _wmsMaterialRep.FirstOrDefaultAsync(u => u.MaterialNo == "N/A" && u.MaterialName == "N/A" && u.MaterialBatch == "N/A");
            // åˆ›å»ºæ–°ç»„盘记录
            foreach (var item in input.WmsMaterials)
            {
                var wmsMaterialContainer = item.Adapt<WmsMaterialContainer>();
                wmsMaterialContainer.OrderNo = orderNo;
                wmsMaterialContainer.ContainerId = wmsContainer.Id;
                wmsMaterialContainer.ContainerCode = wmsContainer.ContainerCode;
                wmsMaterialContainer.MaterialId = wmsMaterial.Id;
                wmsMaterialContainer.BindStatus = CommonStatus.ENABLE;
//            // åˆ›å»ºæ–°ç»„盘记录
//            foreach (var item in input.WmsMaterials)
//            {
//                var wmsMaterialContainer = item.Adapt<WmsMaterialContainer>();
//                wmsMaterialContainer.OrderNo = orderNo;
//                wmsMaterialContainer.ContainerId = wmsContainer.Id;
//                wmsMaterialContainer.ContainerCode = wmsContainer.ContainerCode;
//                wmsMaterialContainer.MaterialId = wmsMaterial.Id;
//                wmsMaterialContainer.BindStatus = CommonStatus.ENABLE;
                await _wmsMaterialContainerRep.InsertNowAsync(wmsMaterialContainer);
            }
//                await _wmsMaterialContainerRep.InsertNowAsync(wmsMaterialContainer);
//            }
            string taskNo = "RUKU" + DateTime.Today.ToString("yyyyMMdd");
            var wmsTaskModel = await _wmsTaskRep.DetachedEntities.FirstOrDefaultAsync(u => EF.Functions.Like(u.TaskNo, $"%{taskNo}%"));
            if (wmsTaskModel == null)
            {
                taskNo = taskNo + "0001";
            }
            else
            {
                //获取流水号最大的数据
                var maxSerialNumber = await _wmsTaskRep.MaxAsync(t => t.TaskNo);
                taskNo = Comm.GenerateNewInvoiceNumber(maxSerialNumber, 1);
            }
//            string taskNo = "RUKU" + DateTime.Today.ToString("yyyyMMdd");
//            var wmsTaskModel = await _wmsTaskRep.DetachedEntities.FirstOrDefaultAsync(u => EF.Functions.Like(u.TaskNo, $"%{taskNo}%"));
//            if (wmsTaskModel == null)
//            {
//                taskNo = taskNo + "0001";
//            }
//            else
//            {
//                //获取流水号最大的数据
//                var maxSerialNumber = await _wmsTaskRep.MaxAsync(t => t.TaskNo);
//                taskNo = Comm.GenerateNewInvoiceNumber(maxSerialNumber, 1);
//            }
            // åˆ›å»ºä»»åŠ¡
            var takmodel = new WmsTask()
            {
                TaskNo = taskNo,//YitIdHelper.NextId().ToString(),
                TaskModel = TaskModel.SHOUDONG,
                TaskType = TaskType.RUKU,
                TaskLevel = 1,
                Aisle = wmsPlace.Aisle,
                TaskStatus = TaskStatusEnum.WANCHENG,
                ContainerCode = wmsContainer.ContainerCode,
                SourcePlace = "入库口",
                ToPlace = wmsPlace.PlaceCode,
                AreaName = wmsArea != null ? wmsArea.AreaName : "",
                OrderNo = orderNo,
                Description = source, //入库来源
                TaskDodeviceStatus = TaskDodeviceStatusEnum.W,
                UpdatedTime = DateTime.Now,
            };
            await _wmsTaskRep.InsertAsync(takmodel);
//            // åˆ›å»ºä»»åŠ¡
//            var takmodel = new WmsTask()
//            {
//                TaskNo = taskNo,//YitIdHelper.NextId().ToString(),
//                TaskModel = TaskModel.SHOUDONG,
//                TaskType = TaskType.RUKU,
//                TaskLevel = 1,
//                Aisle = wmsPlace.Aisle,
//                TaskStatus = TaskStatusEnum.WANCHENG,
//                ContainerCode = wmsContainer.ContainerCode,
//                SourcePlace = "入库口",
//                ToPlace = wmsPlace.PlaceCode,
//                AreaName = wmsArea != null ? wmsArea.AreaName : "",
//                OrderNo = orderNo,
//                Description = source, //入库来源
//                TaskDodeviceStatus = TaskDodeviceStatusEnum.W,
//                UpdatedTime = DateTime.Now,
//            };
//            await _wmsTaskRep.InsertAsync(takmodel);
            // åˆ›å»ºæ‰˜ç›˜å·åº“位关系表
            var wmsContainerPlaceModel = new WmsContainerPlace()
            {
                PlaceId = wmsPlace.Id,
                PlaceCode = wmsPlace.PlaceCode,
                ContainerId = wmsContainer.Id,
                ContainerCode = wmsContainer.ContainerCode,
                ContainerPlaceStatus = CommonStatus.ENABLE
            };
            await _wmsContainerPlaceRep.InsertAsync(wmsContainerPlaceModel);
//            // åˆ›å»ºæ‰˜ç›˜å·åº“位关系表
//            var wmsContainerPlaceModel = new WmsContainerPlace()
//            {
//                PlaceId = wmsPlace.Id,
//                PlaceCode = wmsPlace.PlaceCode,
//                ContainerId = wmsContainer.Id,
//                ContainerCode = wmsContainer.ContainerCode,
//                ContainerPlaceStatus = CommonStatus.ENABLE
//            };
//            await _wmsContainerPlaceRep.InsertAsync(wmsContainerPlaceModel);
            // æ›´æ–°åº“å­˜
            var wmsMaterialContainerList = await _wmsMaterialContainerRep.DetachedEntities
                .Where(p => p.OrderNo == orderNo && p.BindStatus == CommonStatus.ENABLE).ProjectToType<WmsMaterialContainer>().ToListAsync();
//            // æ›´æ–°åº“å­˜
//            var wmsMaterialContainerList = await _wmsMaterialContainerRep.DetachedEntities
//                .Where(p => p.OrderNo == orderNo && p.BindStatus == CommonStatus.ENABLE).ProjectToType<WmsMaterialContainer>().ToListAsync();
            foreach (var item in wmsMaterialContainerList)
            {
                var wmsMaterialStock = await _wmsMaterialStockRep.FirstOrDefaultAsync(p => p.ContainerCode == wmsContainer.ContainerCode
                && p.MaterialBatch == item.MaterialBatch );
                if (wmsMaterialStock != null)
                {
                    wmsMaterialStock.Source = RuKuSourceEnum.WULIAO;
                    wmsMaterialStock.AreaId = wmsPlace.AreaId;
                    wmsMaterialStock.PlaceCode = wmsPlace.PlaceCode;
                    wmsMaterialStock.StockNumber += item.BindQuantity;
                    await _wmsMaterialStockRep.UpdateAsync(wmsMaterialStock);
                }
                else
                {
                    wmsMaterialStock = new WmsMaterialStock()
                    {
                        InspectionMethod = MaterialInspection.MIANJIAN,
                        UnitType = UnitType.ZHONGLIANG,
                        UnitNo = UnitNoType.T,
                        MaterialNo = item.MaterialNo,
                        MaterialType = MaterialType.CHENGPING,
                        MaterialName = item.MaterialName,
                        MaterialSpec = item.MaterialSpec,
                        MaterialBatch = item.MaterialBatch,
                        MaterialDensity = item.MaterialDensity,
                        StockNumber = 1,
                        PlaceCode = wmsPlace.PlaceCode,
                        ContainerId = wmsContainer.Id,
                        ContainerCode = wmsContainer.ContainerCode,
                        AreaId = wmsPlace.AreaId,
                        Source = RuKuSourceEnum.WULIAO
                };
                    await _wmsMaterialStockRep.InsertAsync(wmsMaterialStock);
                }
            }
            // ç©ºæ–™ç®±å…¥åº“
            if (orderNo == "N/A")
            {
                var wmsMaterialStock = new WmsMaterialStock()
                {
                    InspectionMethod = MaterialInspection.MIANJIAN,
                    UnitType = UnitType.ZHONGLIANG,
                    UnitNo = UnitNoType.T,
                    MaterialNo = "N/A",
                    MaterialType = MaterialType.KONGTUO,
                    MaterialName = "N/A",
                    MaterialSpec = "N/A",
                    MaterialBatch = "N/A",
                    MaterialDensity = "N/A",
                    StockNumber = 0,
                    PlaceCode = wmsPlace.PlaceCode,
                    ContainerId = wmsContainer.Id,
                    ContainerCode = wmsContainer.ContainerCode,
                    AreaId = wmsPlace.AreaId,
                    Source = RuKuSourceEnum.KONGTUO
            };
                await _wmsMaterialStockRep.InsertAsync(wmsMaterialStock);
            }
        }
    }
}
//            foreach (var item in wmsMaterialContainerList)
//            {
//                var wmsMaterialStock = await _wmsMaterialStockRep.FirstOrDefaultAsync(p => p.ContainerCode == wmsContainer.ContainerCode
//                && p.MaterialBatch == item.MaterialBatch );
//                if (wmsMaterialStock != null)
//                {
//                    wmsMaterialStock.Source = RuKuSourceEnum.WULIAO;
//                    wmsMaterialStock.AreaId = wmsPlace.AreaId;
//                    wmsMaterialStock.PlaceCode = wmsPlace.PlaceCode;
//                    wmsMaterialStock.StockNumber += item.BindQuantity;
//                    await _wmsMaterialStockRep.UpdateAsync(wmsMaterialStock);
//                }
//                else
//                {
//                    wmsMaterialStock = new WmsMaterialStock()
//                    {
//                        InspectionMethod = MaterialInspection.MIANJIAN,
//                        UnitType = UnitType.ZHONGLIANG,
//                        UnitNo = UnitNoType.T,
//                        MaterialNo = item.MaterialNo,
//                        MaterialType = MaterialType.CHENGPING,
//                        MaterialName = item.MaterialName,
//                        MaterialSpec = item.MaterialSpec,
//                        MaterialBatch = item.MaterialBatch,
//                        MaterialDensity = item.MaterialDensity,
//                        StockNumber = 1,
//                        PlaceCode = wmsPlace.PlaceCode,
//                        ContainerId = wmsContainer.Id,
//                        ContainerCode = wmsContainer.ContainerCode,
//                        AreaId = wmsPlace.AreaId,
//                        Source = RuKuSourceEnum.WULIAO
//                };
//                    await _wmsMaterialStockRep.InsertAsync(wmsMaterialStock);
//                }
//            }
//            // ç©ºæ–™ç®±å…¥åº“
//            if (orderNo == "N/A")
//            {
//                var wmsMaterialStock = new WmsMaterialStock()
//                {
//                    InspectionMethod = MaterialInspection.MIANJIAN,
//                    UnitType = UnitType.ZHONGLIANG,
//                    UnitNo = UnitNoType.T,
//                    MaterialNo = "N/A",
//                    MaterialType = MaterialType.KONGTUO,
//                    MaterialName = "N/A",
//                    MaterialSpec = "N/A",
//                    MaterialBatch = "N/A",
//                    MaterialDensity = "N/A",
//                    StockNumber = 0,
//                    PlaceCode = wmsPlace.PlaceCode,
//                    ContainerId = wmsContainer.Id,
//                    ContainerCode = wmsContainer.ContainerCode,
//                    AreaId = wmsPlace.AreaId,
//                    Source = RuKuSourceEnum.KONGTUO
//            };
//                await _wmsMaterialStockRep.InsertAsync(wmsMaterialStock);
//            }
//        }
//    }
//}
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsMaterial/Dto/WmsMaterialDto.cs
ÎļþÒÑɾ³ý
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsMaterial/Dto/WmsMaterialInput.cs
ÎļþÒÑɾ³ý
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsMaterial/Dto/WmsMaterialOutput.cs
ÎļþÒÑɾ³ý
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsMaterial/WmsMaterialService.cs
ÎļþÒÑɾ³ý
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterial.cs
@@ -1,9 +1,12 @@
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
/*
 * @author : åˆ˜æ–‡å¥‡
 * @date : 2024/4/23下午1:36:22
 * @desc : ç‰©æ–™ä¿¡æ¯è¡¨
 */
namespace Admin.NET.Core
{
    /// <summary>
@@ -11,164 +14,193 @@
    /// </summary>
    [Table("wms_material")]
    [Comment("物料信息表")]
    public class WmsMaterial : DEntityBase, IEntityTypeBuilder<WmsMaterial>
    public class WmsMaterial : DEntityBase
    {
        /// <summary>
        /// ç‰©æ–™åç§°
        /// </summary>
        [Comment("物料名称")]
        [Required]
        [MaxLength(50)]
        [MaxLength(255)]
        public string MaterialName { get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–号
        /// </summary>
        [Comment("物料编号")]
        [Required]
        [MaxLength(255)]
        public string MaterialCode { get; set; }
        /// <summary>
        /// ERP编号
        /// </summary>
        [Comment("ERP编号")]
        [MaxLength(255)]
        public string ErpCode { get; set; }
        /// <summary>
        /// ç‰©æ–™ç±»åž‹åç§°
        /// </summary>
        [Comment("物料类型名称")]
        [Required]
        [MaxLength(50)]
        public string MaterialNo { get; set; }
        public string MaterialTypeName { get; set; }
        /// <summary>
        /// ç‰©æ–™æ‰¹æ¬¡
        /// ç‰©æ–™ç±»åž‹æè¿°
        /// </summary>
        [Comment("物料批次")]
        [Comment("物料类型描述")]
        [MaxLength(255)]
        public string MaterialTypeDescr { get; set; }
        /// <summary>
        /// ç‰©æ–™ç±»åž‹
        /// </summary>
        [Comment("物料类型")]
        [Required]
        public int MaterialType { get; set; }
        /// <summary>
        /// ç‰©æ–™ç»„
        /// </summary>
        [Comment("物料组")]
        [MaxLength(50)]
        public string MaterialBatch { get; set; }
        public string MaterialGroup { get; set; }
        /// <summary>
        /// ç‰©æ–™ç±»åˆ«;数据字典
        /// ABC分类名称
        /// </summary>
        [Comment("物料类别")]
        public MaterialType MaterialType { get; set; }
        [Comment("ABC分类名称")]
        [MaxLength(50)]
        public string ABCClassName { get; set; }
        /// <summary>
        /// ç‰©æ–™æ£€éªŒ
        /// ABC分类
        /// </summary>
        [Comment("物料检验")]
        public MaterialInspection InspectionMethod { get; set; }
        [Comment("ABC分类")]
        public int? ABCClass { get; set; }
        /// <summary>
        /// ç‰©æ–™è§„æ ¼
        /// </summary>
        [Comment("物料规格")]
        [MaxLength(50)]
        [MaxLength(255)]
        public string MaterialSpec { get; set; }
        /// <summary>
        /// ç‰©æ–™å¯†åº¦
        /// </summary>
        [Comment("物料密度")]
        [MaxLength(50)]
        public string MaterialDensity { get; set; }
        /// <summary>
        /// ç‰©æ–™å•位
        /// é»˜è®¤å…¥åº“库位
        /// </summary>
        [Comment("物料单位")]
        [Comment("默认入库库位")]
        [MaxLength(50)]
        public string InPlaceCode { get; set; }
        /// <summary>
        /// åº“存单位
        /// </summary>
        [Comment("库存单位")]
        [Required]
        [MaxLength(50)]
        public string MaterialUnit { get; set; }
        /// <summary>
        /// åº“区Ids
        /// </summary>
        [Comment("库区Ids")]
        public string AreaIds { get; set; }
        /// <summary>
        /// åº“区参数
        /// é‡‡è´­å•位
        /// </summary>
        [Comment("库区参数")]
        public string AreaNameParameter { get; set; }
        [Comment("采购单位")]
        [Required]
        [MaxLength(50)]
        public string POUnit { get; set; }
        /// <summary>
        /// å·¥ä½œåŒºIds
        /// é¢œè‰²
        /// </summary>
        [Comment("工作区Ids")]
        public string StationIds { get; set; }
        [Comment("颜色")]
        [MaxLength(50)]
        public string Color { get; set; }
        /// <summary>
        /// å·¥ä½œåŒºå‚æ•°
        /// é‡é‡
        /// </summary>
        [Comment("工作区参数")]
        public string StationNameParameter { get; set; }
        [Comment("重量")]
        [MaxLength(50)]
        public string Weight { get; set; }
        /// <summary>
        /// å·¥æ®µ
        /// æ ‡åŒ…数量
        /// </summary>
        //[Comment("工段")]
        //[Required]
        //public LesWorkshopSection LesWorkshopSection { get; set; }
        [Comment("标包数量")]
        //1215
        [Column("SNP", TypeName = "decimal(10,3)")]
        public decimal? SNP { get; set; }
        /// <summary>
        /// æ¢ç®—率
        /// </summary>
        [Comment("换算率")]
        [Column("TranslateRate", TypeName = "decimal(10,3)")]
        public decimal? TranslateRate { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å±žæ€§è§„则
        /// </summary>
        [Comment("批次属性规则")]
        public long? BatchRuleId { get; set; }
        /// <summary>
        /// æŽ§åˆ¶å±žæ€§è§„则
        /// </summary>
        [Comment("控制属性规则")]
        public long? ControlRuleId { get; set; }
        /// <summary>
        /// æ˜¯å¦ç¦ç”¨
        /// </summary>
        [Comment("是否禁用")]
        [Required]
        public bool IsDisabled { get; set; }
        /// <summary>
        /// æè¿°
        /// </summary>
        [Comment("描述")]
        [MaxLength(500)]
        public string Description { get; set; }
        /// <summary>
        /// å®‰å…¨å­˜é‡
        /// </summary>
        [Comment("安全存量")]
        public decimal Safeqty { get; set; }
        /// <summary>
        /// æœ€å¤§å­˜é‡
        /// </summary>
        [Comment("最大存量")]
        public decimal MaxImumqty { get; set; }
        /// <summary>
        /// æœ€å°åº“龄
        /// </summary>
        [Comment("最小库龄")]
        public decimal MinstorageAge { get; set; }
        /// <summary>
        /// æœ€å¤§åº“龄
        /// </summary>
        [Comment("最大库龄")]
        public decimal MaxstorageAge { get; set; }
        [MaxLength(255)]
        public string MaterialDesc { get; set; }
        /// <summary>
        /// ç‰©æ–™æ‰˜ç›˜å…³ç³»è¡¨
        /// </summary>
        public ICollection<WmsMaterialContainer> WmsFoamingMaterialContainer { get; set; }
        /// <summary>
        /// ç‰©æ–™æ‰˜ç›˜åŽ†å²è¡¨
        /// </summary>
        public ICollection<WmsHistoryMaterialContainer> WmsFoamingHistoryMaterialContainer { get; set; }
        /// <summary>
        /// æž„建一对多的关系
        /// </summary>
        /// <param name="entityBuilder"></param>
        /// <param name="dbContext"></param>
        /// <param name="dbContextLocator"></param>
        public void Configure(EntityTypeBuilder<WmsMaterial> entityBuilder, DbContext dbContext, Type dbContextLocator)
        {
            entityBuilder.HasMany(x => x.WmsFoamingMaterialContainer)
                .WithOne(x => x.WmsMaterial)
                .HasForeignKey(x => x.MaterialId).IsRequired(false);
            entityBuilder.HasMany(x => x.WmsFoamingHistoryMaterialContainer)
                .WithOne(x => x.WmsMaterial)
                .HasForeignKey(x => x.MaterialId).IsRequired(false);
        }
    }
}
}
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterialCustomer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
/*
 * @author : åˆ˜æ–‡å¥‡
 * @date : 2024/4/23下午1:44:59
 * @desc : ç‰©æ–™å®¢æˆ·å…³è”表
 */
namespace Admin.NET.Core
{
    /// <summary>
    /// ç‰©æ–™å®¢æˆ·å…³è”表
    /// </summary>
    [Table("wms_material_customer")]
    [Comment("物料客户关联表")]
    public class WmsMaterialCustomer : DEntityBase
    {
        /// <summary>
        /// ç‰©æ–™ID
        /// </summary>
        [Comment("物料ID")]
        [Required]
        public long MaterialId { get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–号
        /// </summary>
        [Comment("物料编号")]
        [Required]
        [MaxLength(50)]
        public string MaterialNo { get; set; }
        /// <summary>
        /// ç‰©æ–™åç§°
        /// </summary>
        [Comment("物料名称")]
        [Required]
        [MaxLength(50)]
        public string MaterialName { get; set; }
        /// <summary>
        /// å®¢æˆ·ID
        /// </summary>
        [Comment("客户ID")]
        [Required]
        public long CustId { get; set; }
        /// <summary>
        /// å®¢æˆ·ç¼–号
        /// </summary>
        [Comment("客户编号")]
        [Required]
        [MaxLength(50)]
        public string CustCode { get; set; }
        /// <summary>
        /// å®¢æˆ·åç§°
        /// </summary>
        [Comment("客户名称")]
        [Required]
        [MaxLength(50)]
        public string CustName { get; set; }
    }
}
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterialType.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
/*
 * @author : åˆ˜æ–‡å¥‡
 * @date : 2024/4/23下午1:41:23
 * @desc : ç‰©æ–™ç±»åž‹è¡¨
 */
namespace Admin.NET.Core
{
    /// <summary>
    /// ç‰©æ–™ç±»åž‹è¡¨
    /// </summary>
    [Table("wms_material_type")]
    [Comment("物料类型表")]
    public class WmsMaterialType : DEntityBase
    {
        /// <summary>
        /// ç±»åž‹ç¼–号
        /// </summary>
        [Comment("类型编号")]
        [Required]
        [MaxLength(255)]
        public string MaterialTypeCode { get; set; }
        /// <summary>
        /// ç±»åž‹æè¿°
        /// </summary>
        [Comment("类型描述")]
        [MaxLength(255)]
        public string MaterialTypeDescr { get; set; }
        /// <summary>
        /// ç±»åž‹åç§°
        /// </summary>
        [Comment("类型名称")]
        [Required]
        [MaxLength(255)]
        public string MaterialTypeName { get; set; }
        /// <summary>
        /// æ˜¯å¦ç¦ç”¨
        /// </summary>
        [Comment("是否禁用")]
        [Required]
        public bool IsDisabled { get; set; }
    }
}
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterialUnit.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
/*
 * @author : åˆ˜æ–‡å¥‡
 * @date : 2024/4/23下午1:40:37
 * @desc : å•位基础信息
 */
namespace Admin.NET.Core
{
    /// <summary>
    /// å•位基础信息
    /// </summary>
    [Table("wms_unit")]
    [Comment("单位基础信息")]
    public class WmsUnit : DEntityBase
    {
        /// <summary>
        /// ç¼–号
        /// </summary>
        [Comment("编号")]
        [Required]
        [MaxLength(50)]
        public string UnitCode { get; set; }
        /// <summary>
        /// åç§°
        /// </summary>
        [Comment("名称")]
        [Required]
        [MaxLength(50)]
        public string UnitName { get; set; }
        /// <summary>
        /// æè¿°
        /// </summary>
        [Comment("描述")]
        [MaxLength(50)]
        public string UnitDesc { get; set; }
        /// <summary>
        /// æ˜¯å¦ç¦ç”¨
        /// </summary>
        [Comment("是否禁用")]
        [Required]
        public bool IsDisabled { get; set; }
    }
}
iWare_RawMaterialWarehouse_Wms/Admin.NET.EntityFramework.Core/Admin.NET.EntityFramework.Core.csproj
@@ -9,6 +9,7 @@
  <ItemGroup>
    <None Remove="dbsettings.Development-166.json" />
    <None Remove="dbsettings.Development-本机.json" />
    <None Remove="dbsettings.Development.json" />
  </ItemGroup>