1
hutongqing
2024-12-16 c5238c1b78e8e7a066d6a82e4bbd5118de6b6efb
1
已删除10个文件
已修改18个文件
已添加5个文件
463 ■■■■ 文件已修改
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0f396786-d098-488f-b62f-cb56f597e742.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/2890c663-d711-4602-bdad-56852b6a51bc.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/433da193-e6b4-48ed-bdc6-2332b099c9c2.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/5d85e8a3-a7a8-453e-a30d-0eea1a0362a4.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/5e0bd2ed-63f0-464e-b65d-6e328058f9ca.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/776b31ca-b3d0-487d-8a56-85a65dead3f1.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/7c6138bc-3140-4505-80bf-ce7e49063d2e.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/8ec046b0-40f2-4e27-acac-8986b42cfae0.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/90452a76-738e-47ca-a3e0-da8f36d31ada.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/993667d3-2068-4ea5-8fda-e1b10b53b187.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9b53cffc-065b-40ee-a779-a99d0cdd29b8.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9d9a63aa-14be-4604-afce-498fd93c2f7a.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9ec6694e-5882-4f4c-83dc-d548cd406f48.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b6698150-4fc6-4ad0-a0c8-f0d9b263a855.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/e77473e6-bb6a-4e6e-9958-ad4a0f7b3f2c.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ApprovalService/ApprovalTaskService.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/LocationInfoService.cs 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/MaterielInfoService.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/WarehouseService.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/BasicService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/MaterielInfoService.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IApprovalService/IApprovalTaskService.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IMaterielInfoService.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IWarehouseService.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderResultService.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IReceiveOrderService.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/ReceiveOrderController.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0f396786-d098-488f-b62f-cb56f597e742.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/2890c663-d711-4602-bdad-56852b6a51bc.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/433da193-e6b4-48ed-bdc6-2332b099c9c2.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/5d85e8a3-a7a8-453e-a30d-0eea1a0362a4.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/5e0bd2ed-63f0-464e-b65d-6e328058f9ca.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/776b31ca-b3d0-487d-8a56-85a65dead3f1.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/7c6138bc-3140-4505-80bf-ce7e49063d2e.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/8ec046b0-40f2-4e27-acac-8986b42cfae0.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/90452a76-738e-47ca-a3e0-da8f36d31ada.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/993667d3-2068-4ea5-8fda-e1b10b53b187.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9b53cffc-065b-40ee-a779-a99d0cdd29b8.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9d9a63aa-14be-4604-afce-498fd93c2f7a.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9ec6694e-5882-4f4c-83dc-d548cd406f48.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b6698150-4fc6-4ad0-a0c8-f0d9b263a855.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/e77473e6-bb6a-4e6e-9958-ad4a0f7b3f2c.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ApprovalService/ApprovalTaskService.cs
@@ -40,8 +40,11 @@
            _userRepository = userRepository;
        }
        /// <summary>
        /// å®¡æ‰¹åŒæ„
        /// </summary>
        /// <param name="sourceKey">源主键</param>
        /// <returns></returns>
        public WebResponseContent AuditAgree(int sourceKey)
        {
            try
@@ -149,6 +152,11 @@
            }
        }
        /// <summary>
        /// å®¡æ‰¹é©³å›ž
        /// </summary>
        /// <param name="sourceKey">源主键</param>
        /// <returns></returns>
        public WebResponseContent AuditReject(int sourceKey)
        {
            try
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/LocationInfoService.cs
@@ -31,27 +31,11 @@
            _unitOfWorkManage = unitOfWorkManage;
        }
        public override PageGridData<Dt_LocationInfo> GetPageData(PageDataOptions options)
        {
            return base.GetPageData(options);
        }
        public override WebResponseContent AddData(SaveModel saveModel)
        {
            Dt_LocationInfo locationInfo = saveModel.MainData.DicToModel<Dt_LocationInfo>();
            return base.AddData(locationInfo);
        }
        public override WebResponseContent UpdateData(SaveModel saveModel)
        {
            return base.UpdateData(saveModel);
        }
        public override WebResponseContent DeleteData(object[] keys)
        {
            return base.DeleteData(keys);
        }
        /// <summary>
        /// æ‰¹é‡å¯ç”¨è´§ä½
        /// </summary>
        /// <param name="keys">货位主键数组</param>
        /// <returns></returns>
        public WebResponseContent LocationEnableStatus(int[] keys)
        {
            List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => keys.Contains(x.Id));
@@ -64,6 +48,11 @@
            return WebResponseContent.Instance.OK();
        }
        /// <summary>
        /// æ‰¹é‡ç¦ç”¨è´§ä½
        /// </summary>
        /// <param name="keys">货位主键数组</param>
        /// <returns></returns>
        public WebResponseContent LocationDisableStatus(int[] keys)
        {
            List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => keys.Contains(x.Id));
@@ -76,16 +65,31 @@
            return WebResponseContent.Instance.OK();
        }
        /// <summary>
        /// å•个启用货位
        /// </summary>
        /// <param name="key">货位主键</param>
        /// <returns></returns>
        public WebResponseContent LocationEnableStatus(int key)
        {
            return LocationEnableStatus(new int[] { key });
        }
        /// <summary>
        /// å•个禁用货位
        /// </summary>
        /// <param name="key">货位主键</param>
        /// <returns></returns>
        public WebResponseContent LocationDisableStatus(int key)
        {
            return LocationDisableStatus(new int[] { key });
        }
        /// <summary>
        /// åˆå§‹åŒ–货位
        /// </summary>
        /// <param name="initializationLocationDTO"></param>
        /// <returns></returns>
        public WebResponseContent InitializationLocation(InitializationLocationDTO initializationLocationDTO)
        {
            try
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/MaterielInfoService.cs
@@ -19,19 +19,5 @@
        public IMaterielInfoRepository Repository => BaseDal;
        public override WebResponseContent AddData(SaveModel saveModel)
        {
            return base.AddData(saveModel);
        }
        public override WebResponseContent UpdateData(SaveModel saveModel)
        {
            return base.UpdateData(saveModel);
        }
        public override WebResponseContent DeleteData(object[] keys)
        {
            return base.DeleteData(keys);
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/WarehouseService.cs
@@ -22,22 +22,11 @@
        public IWarehouseRepository Repository => BaseDal;
        public override WebResponseContent AddData(SaveModel saveModel)
        {
            Dt_Warehouse warehouse = saveModel.MainData.DicToModel<Dt_Warehouse>();
            return base.AddData(warehouse);
        }
        public override WebResponseContent UpdateData(SaveModel saveModel)
        {
            return base.UpdateData(saveModel);
        }
        public override WebResponseContent DeleteData(object[] keys)
        {
            return base.DeleteData(keys);
        }
        /// <summary>
        /// æ‰¹é‡å¯ç”¨ä»“库
        /// </summary>
        /// <param name="keys">仓库主键数组</param>
        /// <returns></returns>
        public WebResponseContent WarehouseEnableStatus(int[] keys)
        {
            List<Dt_Warehouse> warehouses = Repository.QueryData(x => keys.Contains(x.WarehouseId));
@@ -50,6 +39,11 @@
            return WebResponseContent.Instance.OK();
        }
        /// <summary>
        /// æ‰¹é‡ç¦ç”¨ä»“库
        /// </summary>
        /// <param name="keys">仓库主键数组</param>
        /// <returns></returns>
        public WebResponseContent WarehouseDisableStatus(int[] keys)
        {
            List<Dt_Warehouse> warehouses = Repository.QueryData(x => keys.Contains(x.WarehouseId));
@@ -62,11 +56,21 @@
            return WebResponseContent.Instance.OK();
        }
        /// <summary>
        /// å•个启用仓库
        /// </summary>
        /// <param name="key">仓库主键</param>
        /// <returns></returns>
        public WebResponseContent WarehouseEnableStatus(int key)
        {
            return WarehouseEnableStatus(new int[] { key });
        }
        /// <summary>
        /// å•个禁用仓库
        /// </summary>
        /// <param name="key">仓库主键</param>
        /// <returns></returns>
        public WebResponseContent WarehouseDisableStatus(int key)
        {
            return WarehouseDisableStatus(new int[] { key });
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/BasicService.cs
@@ -14,6 +14,9 @@
{
    public class BasicService : IBasicService
    {
        /// <summary>
        ///
        /// </summary>
        public ILocationInfoService LocationInfoService { get; }
        public IMaterielInfoService MaterielInfoService { get; }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs
@@ -27,6 +27,13 @@
        private readonly static object _locker = new object();
        static List<LocationCache> locationCaches = new List<LocationCache>();
        /// <summary>
        /// è´§ä½åˆ†é…é€»è¾‘
        /// </summary>
        /// <param name="roadwayNo">巷道号</param>
        /// <param name="palletType">托盘类型</param>
        /// <returns></returns>
        public Dt_LocationInfo? AssignLocation(string roadwayNo, PalletTypeEnum palletType)
        {
            lock (_locker)
@@ -141,6 +148,12 @@
            return null;
        }
        /// <summary>
        /// ä¿®æ”¹è´§ä½çŠ¶æ€åŠç±»åž‹
        /// </summary>
        /// <param name="locationCode">货位编号</param>
        /// <param name="palletType">托盘类型</param>
        /// <param name="locationStatus">货位状态</param>
        public void UpdateLocationStatus(string locationCode, PalletTypeEnum palletType, LocationStatusEnum locationStatus)
        {
            Dt_LocationInfo location = Repository.QueryFirst(x => x.LocationCode == locationCode);
@@ -181,6 +194,12 @@
            Repository.UpdateData(locations);
        }
        /// <summary>
        /// ä¿®æ”¹è´§ä½çŠ¶æ€åŠç±»åž‹
        /// </summary>
        /// <param name="location">货位对象</param>
        /// <param name="palletType">托盘类型</param>
        /// <param name="locationStatus">货位状态</param>
        public void UpdateLocationStatus(Dt_LocationInfo location, PalletTypeEnum palletType, LocationStatusEnum locationStatus)
        {
            List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/MaterielInfoService.cs
@@ -17,16 +17,31 @@
{
    public partial class MaterielInfoService : ServiceBase<Dt_MaterielInfo, IMaterielInfoRepository>, IMaterielInfoService
    {
        /// <summary>
        /// åˆ¤æ–­ç‰©æ–™æ˜¯å¦å­˜åœ¨
        /// </summary>
        /// <param name="materielCode">物料编号</param>
        /// <returns></returns>
        public bool ExsitMateriel(string materielCode)
        {
            return BaseDal.QueryFirst(x => x.MaterielCode == materielCode) != null;
        }
        /// <summary>
        /// åˆ¤æ–­ç‰©æ–™æ˜¯å¦å­˜åœ¨
        /// </summary>
        /// <param name="materielCodes">物料编号集合</param>
        /// <returns></returns>
        public bool ExsitMateriels(List<string> materielCodes)
        {
            return BaseDal.QueryFirst(x => materielCodes.Contains(x.MaterielCode)) != null;
            return BaseDal.QueryData(x => materielCodes.Contains(x.MaterielCode)).Count == materielCodes.Count;
        }
        /// <summary>
        /// èŽ·å–ç‰©æ–™ä¿¡æ¯
        /// </summary>
        /// <param name="materielCode">物料编号</param>
        /// <returns></returns>
        public Dt_MaterielInfo GetMaterielInfo(string materielCode)
        {
            return BaseDal.QueryFirst(x => x.MaterielCode == materielCode);
@@ -35,13 +50,18 @@
        /// <summary>
        /// æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯
        /// </summary>
        /// <param name="materielCodes"></param>
        /// <param name="materielCodes">物料编号</param>
        /// <returns></returns>
        public List<Dt_MaterielInfo> GetMaterielInfos(List<string> materielCodes)
        {
            return BaseDal.QueryData(x => materielCodes.Contains(x.MaterielCode));
        }
        /// <summary>
        /// æŽ¥æ”¶ERP物料信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public WebResponseContent ReceiveMaterial(MaterielInfoDTO model)
        {
            try
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs
@@ -23,6 +23,12 @@
            _checkOrderRepository = checkOrderRepository;
        }
        /// <summary>
        /// æäº¤è´¨æ£€ç»“æžœ
        /// </summary>
        /// <param name="checkOrderId">质检单主键</param>
        /// <param name="checkResult">质检结果对象</param>
        /// <returns></returns>
        public WebResponseContent CommitCheckResult(int checkOrderId, Dt_CheckOrderResult checkResult)
        {
            try
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs
@@ -3,6 +3,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core;
using WIDESEA_External.Model;
namespace WIDESEA_External.ERPService
@@ -10,7 +11,7 @@
    /// <summary>
    /// è°ƒç”¨ERP接口
    /// </summary>
    public interface IInvokeERPService
    public interface IInvokeERPService : IDependency
    {
        /// <summary>
        /// ERP收货单接口调用
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IApprovalService/IApprovalTaskService.cs
@@ -14,8 +14,18 @@
    {
        IApprovalTaskRepository Repository { get; }
        /// <summary>
        /// å®¡æ‰¹åŒæ„
        /// </summary>
        /// <param name="sourceKey">源主键</param>
        /// <returns></returns>
        WebResponseContent AuditAgree(int sourceKey);
        /// <summary>
        /// å®¡æ‰¹é©³å›ž
        /// </summary>
        /// <param name="sourceKey">源主键</param>
        /// <returns></returns>
        WebResponseContent AuditReject(int sourceKey);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs
@@ -17,20 +17,63 @@
    {
        ILocationInfoRepository Repository { get; }
        /// <summary>
        /// æ‰¹é‡å¯ç”¨è´§ä½
        /// </summary>
        /// <param name="keys">货位主键数组</param>
        /// <returns></returns>
        WebResponseContent LocationEnableStatus(int[] keys);
        /// <summary>
        /// æ‰¹é‡ç¦ç”¨è´§ä½
        /// </summary>
        /// <param name="keys">货位主键数组</param>
        /// <returns></returns>
        WebResponseContent LocationDisableStatus(int[] keys);
        /// <summary>
        /// å•个启用货位
        /// </summary>
        /// <param name="key">货位主键</param>
        /// <returns></returns>
        WebResponseContent LocationEnableStatus(int key);
        /// <summary>
        /// å•个禁用货位
        /// </summary>
        /// <param name="key">货位主键</param>
        /// <returns></returns>
        WebResponseContent LocationDisableStatus(int key);
        /// <summary>
        /// åˆå§‹åŒ–货位
        /// </summary>
        /// <param name="initializationLocationDTO"></param>
        /// <returns></returns>
        WebResponseContent InitializationLocation(InitializationLocationDTO initializationLocationDTO);
        /// <summary>
        /// è´§ä½åˆ†é…é€»è¾‘
        /// </summary>
        /// <param name="roadwayNo">巷道号</param>
        /// <param name="palletType">托盘类型</param>
        /// <returns></returns>
        Dt_LocationInfo? AssignLocation(string roadwayNo, PalletTypeEnum palletType);
        /// <summary>
        /// ä¿®æ”¹è´§ä½çŠ¶æ€åŠç±»åž‹
        /// </summary>
        /// <param name="locationCode">货位编号</param>
        /// <param name="palletType">托盘类型</param>
        /// <param name="locationStatus">货位状态</param>
        void UpdateLocationStatus(string locationCode, PalletTypeEnum palletType, LocationStatusEnum locationStatus);
        /// <summary>
        /// ä¿®æ”¹è´§ä½çŠ¶æ€åŠç±»åž‹
        /// </summary>
        /// <param name="location">货位对象</param>
        /// <param name="palletType">托盘类型</param>
        /// <param name="locationStatus">货位状态</param>
        void UpdateLocationStatus(Dt_LocationInfo location, PalletTypeEnum palletType, LocationStatusEnum locationStatus);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IMaterielInfoService.cs
@@ -15,14 +15,39 @@
    {
        IMaterielInfoRepository Repository { get; }
        /// <summary>
        /// åˆ¤æ–­ç‰©æ–™æ˜¯å¦å­˜åœ¨
        /// </summary>
        /// <param name="materielCode">物料编号</param>
        /// <returns></returns>
        bool ExsitMateriel(string materielCode);
        /// <summary>
        /// åˆ¤æ–­ç‰©æ–™æ˜¯å¦å­˜åœ¨
        /// </summary>
        /// <param name="materielCodes">物料编号集合</param>
        /// <returns></returns>
        bool ExsitMateriels(List<string> materielCodes);
        /// <summary>
        /// èŽ·å–ç‰©æ–™ä¿¡æ¯
        /// </summary>
        /// <param name="materielCode">物料编号</param>
        /// <returns></returns>
        Dt_MaterielInfo GetMaterielInfo(string materielCode);
        /// <summary>
        /// æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯
        /// </summary>
        /// <param name="materielCodes"></param>
        /// <returns></returns>
        List<Dt_MaterielInfo> GetMaterielInfos(List<string> materielCodes);
        /// <summary>
        /// æŽ¥æ”¶ERP物料信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        WebResponseContent ReceiveMaterial(MaterielInfoDTO model);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IWarehouseService.cs
@@ -14,12 +14,32 @@
    {
        IWarehouseRepository Repository { get; }
        /// <summary>
        /// æ‰¹é‡å¯ç”¨ä»“库
        /// </summary>
        /// <param name="keys">仓库主键数组</param>
        /// <returns></returns>
        WebResponseContent WarehouseEnableStatus(int[] keys);
        /// <summary>
        /// æ‰¹é‡ç¦ç”¨ä»“库
        /// </summary>
        /// <param name="keys">仓库主键数组</param>
        /// <returns></returns>
        WebResponseContent WarehouseDisableStatus(int[] keys);
        /// <summary>
        /// å•个启用仓库
        /// </summary>
        /// <param name="key">仓库主键</param>
        /// <returns></returns>
        WebResponseContent WarehouseEnableStatus(int key);
        /// <summary>
        /// å•个禁用仓库
        /// </summary>
        /// <param name="key">仓库主键</param>
        /// <returns></returns>
        WebResponseContent WarehouseDisableStatus(int key);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderResultService.cs
@@ -11,6 +11,12 @@
{
    public interface ICheckOrderResultService : IService<Dt_CheckOrderResult>
    {
        /// <summary>
        /// æäº¤è´¨æ£€ç»“æžœ
        /// </summary>
        /// <param name="checkOrderId">质检单主键</param>
        /// <param name="checkResult">质检结果对象</param>
        /// <returns></returns>
        WebResponseContent CommitCheckResult(int checkOrderId, Dt_CheckOrderResult checkResult);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IReceiveOrderService.cs
@@ -25,5 +25,13 @@
        /// <returns></returns>
        WebResponseContent FeedbackReceiveOrder(int orderId);
        WebResponseContent GetReceiveOrders(SaveModel saveModel);
        /// <summary>
        ///
        /// </summary>
        /// <param name="purchaseOrderId"></param>
        /// <param name="lotNo"></param>
        /// <returns></returns>
        WebResponseContent ReceiveAllOrder(int purchaseOrderId, string lotNo);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs
@@ -5,6 +5,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.CommonEnum;
using WIDESEA_Common.OrderEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
@@ -134,7 +135,7 @@
                    _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder);
                    _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail);
                    if (materielInfo.IsCheck == WIDESEA_Common.CommonEnum.WhetherEnum.True)
                    if (materielInfo.IsCheck == WhetherEnum.True)
                    {
                        Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
                        checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs
@@ -1,4 +1,5 @@
using MailKit.Search;
using AutoMapper;
using MailKit.Search;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -7,8 +8,10 @@
using WIDESEA_Common.CommonEnum;
using WIDESEA_Common.OrderEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
using WIDESEA_DTO.Basic;
using WIDESEA_External.ERPService;
using WIDESEA_External.Model;
using WIDESEA_IBasicRepository;
@@ -21,13 +24,17 @@
{
    public class ReceiveOrderService : ServiceBase<Dt_ReceiveOrder, IReceiveOrderRepository>, IReceiveOrderService
    {
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly IMapper _mapper;
        private readonly ICheckOrderRepository _checkOrderRepository;
        private readonly IInboundRepository _inboundRepository;
        private readonly IBasicRepository _basicRepository;
        private readonly IInvokeERPService _invokeERPService;
        public ReceiveOrderService(IReceiveOrderRepository BaseDal, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository, IBasicRepository basicRepository, IInvokeERPService invokeERPService) : base(BaseDal)
        public ReceiveOrderService(IReceiveOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IMapper mapper, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository, IBasicRepository basicRepository, IInvokeERPService invokeERPService) : base(BaseDal)
        {
            _mapper = mapper;
            _unitOfWorkManage = unitOfWorkManage;
            _checkOrderRepository = checkOrderRepository;
            _inboundRepository = inboundRepository;
            _basicRepository = basicRepository;
@@ -119,7 +126,7 @@
                    CompanyId = "",
                    DeliveryCode = receiveOrder.DeliveryCode,
                    CustomerId = receiveOrder.CustomerId,
                    CreatorId = receiveOrder.CustomerId,
                    CreatorId = receiveOrder.Creater,
                    EndDate = receiveOrder.CreateDate,
                    ReceiveDate = receiveOrder.CreateDate,
                    PlantsId = "",
@@ -139,6 +146,8 @@
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public WebResponseContent GetReceiveOrders(SaveModel saveModel)
        {
            WebResponseContent content = new WebResponseContent();
@@ -241,5 +250,163 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public WebResponseContent ReceiveAllOrder(int purchaseOrderId, string lotNo)
        {
            try
            {
                Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x => x.Id == purchaseOrderId).Includes(x => x.Details).First();
                if (purchaseOrder == null)
                {
                    return WebResponseContent.Instance.Error($"未找到该采购单");
                }
                if (purchaseOrder.Details == null || purchaseOrder.Details.Count == 0)
                {
                    return WebResponseContent.Instance.Error($"未找到采购单明细信息");
                }
                if (purchaseOrder.PurchaseOrderStatus == PurchaseOrderStatusEnum.Received.ObjToInt())
                {
                    return WebResponseContent.Instance.Error($"已收货完成");
                }
                if (purchaseOrder.Details.FirstOrDefault(x => x.PurchaseDetailStatus == PurchaseOrderStatusEnum.NotReceived.ObjToInt()) == null)
                {
                    return WebResponseContent.Instance.Error($"已收货完成");
                }
                List<Dt_CheckOrder> checkOrders = new List<Dt_CheckOrder>();
                List<Dt_MaterielInfo> materielInfos = new List<Dt_MaterielInfo>();
                List<Dt_ReceiveOrderDetail> receiveOrderDetails = new List<Dt_ReceiveOrderDetail>();
                Dt_ReceiveOrder receiveOrder = BaseDal.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.SuppliersId == purchaseOrder.SupplierCode && x.ReceiveOrderStatus != ReceiveOrderStatusEnum.Completed.ObjToInt()).Includes(x => x.Details).First();
                if (receiveOrder == null)
                {
                    int rowNo = 0;
                    foreach (var item in purchaseOrder.Details)
                    {
                        Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode);
                        if (materielInfo == null)
                        {
                            materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == item.MaterielCode);
                            if (materielInfo == null)
                            {
                                return WebResponseContent.Instance.Error($"未找到该物料的信息");
                            }
                            materielInfos.Add(materielInfo);
                        }
                        Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail()
                        {
                            PurchaseOrderNo = purchaseOrder.PurchaseOrderNo,
                            ReceivedQuantity = item.PurchaseDetailQuantity,
                            MaterielCode = item.MaterielCode,
                            LotNo = lotNo,
                            PurchaseOrderDetailRowNo = item.RowNo,
                            IfInspection = materielInfo.IsCheck.ObjToInt(),
                            CurrCode = "",
                            PriceInTax = 0,
                            TaxRate = "",
                            RowNo = rowNo + 1,
                            Unit = item.Unit
                        };
                        rowNo += 1;
                        receiveOrderDetails.Add(receiveOrderDetail);
                        if (materielInfo.IsCheck == WhetherEnum.True)
                        {
                            Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
                            checkOrder.ReceiveOrderNo = "";
                            checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
                            checkOrder.ScrappedQuantity = 0;
                            checkOrder.ReturnQuantity = 0;
                            checkOrder.DefectedQuantity = 0;
                            checkOrder.ReceiveDetailRowNo = rowNo;
                            checkOrders.Add(checkOrder);
                        }
                    }
                    receiveOrder = new Dt_ReceiveOrder()
                    {
                        ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(),
                        CustomerId = "",
                        DeliveryCode = "",
                        ReceiveDate = DateTime.Now,
                        ReceiveOrderType = ReceiveOrderTypeEnum.PO.ObjToInt(),
                        SuppliersId = purchaseOrder.SupplierCode,
                        WarehouseId = purchaseOrder.Details.FirstOrDefault()?.WarehouseId ?? 0,
                        UploadStatus = WhetherEnum.False.ObjToInt(),
                        Details = receiveOrderDetails
                    };
                }
                else
                {
                    int rowNo = receiveOrder.Details.Count > 0 ? receiveOrder.Details.Max(x => x.RowNo) : 0;
                    foreach (var item in purchaseOrder.Details)
                    {
                        Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode);
                        if (materielInfo == null)
                        {
                            materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == item.MaterielCode);
                            if (materielInfo == null)
                            {
                                return WebResponseContent.Instance.Error($"未找到该物料的信息");
                            }
                            materielInfos.Add(materielInfo);
                        }
                        Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail()
                        {
                            PurchaseOrderNo = purchaseOrder.PurchaseOrderNo,
                            ReceivedQuantity = item.PurchaseDetailQuantity,
                            MaterielCode = item.MaterielCode,
                            LotNo = lotNo,
                            ReceiveOrderId = receiveOrder.ReceiveOrderId,
                            PurchaseOrderDetailRowNo = item.RowNo,
                            IfInspection = materielInfo.IsCheck.ObjToInt(),
                            CurrCode = "",
                            PriceInTax = 0,
                            TaxRate = "",
                            RowNo = rowNo + 1,
                            Unit = item.Unit,
                        };
                        rowNo += 1;
                        receiveOrderDetails.Add(receiveOrderDetail);
                        if (materielInfo.IsCheck == WhetherEnum.True)
                        {
                            Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
                            checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
                            checkOrder.ScrappedQuantity = 0;
                            checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
                            checkOrder.ReturnQuantity = 0;
                            checkOrder.DefectedQuantity = 0;
                            checkOrder.ReceiveDetailRowNo = rowNo;
                            checkOrders.Add(checkOrder);
                        }
                    }
                }
                purchaseOrder.Details.ForEach(x => x.PurchaseDetailStatus = PurchaseOrderStatusEnum.Received.ObjToInt());
                purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt();
                _unitOfWorkManage.BeginTran();
                if (receiveOrder.ReceiveOrderId > 0)
                {
                    Db.Insertable(receiveOrderDetails).ExecuteCommand();
                }
                else
                {
                    Db.InsertNav(receiveOrder).Include(x => x.Details).ExecuteCommand();
                    checkOrders.ForEach(x => x.ReceiveOrderNo = receiveOrder.ReceiveOrderNo);
                }
                _checkOrderRepository.AddData(checkOrders);
                _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
                _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrder.Details);
                _unitOfWorkManage.CommitTran();
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/ReceiveOrderController.cs
@@ -45,5 +45,17 @@
        {
            return Service.GetReceiveOrders(saveModel);
        }
        /// <summary>
        /// æ”¶è´§
        /// </summary>
        /// <param name="purchaseOrderId"></param>
        /// <param name="lotNo"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("ReceiveAllOrder")]
        public WebResponseContent ReceiveAllOrder(int purchaseOrderId, string lotNo)
        {
            return Service.ReceiveAllOrder(purchaseOrderId, lotNo);
        }
    }
}