wangxinhui
2024-12-26 bc3e001d093c3d6cbddc7e008aa99c12f850c1e5
更新
已删除6个文件
已修改34个文件
已添加6个文件
595 ■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0397a60b-c71f-4284-85ef-52044ecfbb47.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6ddb89a1-3fb5-42aa-a799-c08181483993.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d02ec307-551b-4de2-b989-3f41b8cc227f.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d9caedcd-b643-4a2a-bf28-68c2ccd0a7aa.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/1e920e33-148d-49c7-8f92-7c522736eb31.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/50a4a68c-d15a-4c06-92d2-58d3ca8fbb54.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/6f175d71-07e6-45dd-8008-da0dcbb0a76c.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/83e3b476-d887-46bd-be7e-12e5279adff6.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d1c62139-7bae-4df6-b13e-daefe3114894.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicRepository/ApiInfoRepository.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/UserInfoService.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/WIDESEA_CheckService.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/CommonEnum/RecyclingEnum.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/CheckOrderEnum.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/ERP/ErpInOrderDTO.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPInboundModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPIssueModel.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPOutboundModel.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPReceiveModel.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IBasicRepository/IApiInfoRepository.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_UserInfo.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_PurchaseOrderDetail.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrderDetail.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/ReceiveOrderController.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/接口文档/海康AGV/20240115WMS&AGV接口-HikV1.1(1).xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/接口文档/特创ERP&WMS接口清单072520241126.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0397a60b-c71f-4284-85ef-52044ecfbb47.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6ddb89a1-3fb5-42aa-a799-c08181483993.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d02ec307-551b-4de2-b989-3f41b8cc227f.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d9caedcd-b643-4a2a-bf28-68c2ccd0a7aa.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/1e920e33-148d-49c7-8f92-7c522736eb31.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/50a4a68c-d15a-4c06-92d2-58d3ca8fbb54.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/6f175d71-07e6-45dd-8008-da0dcbb0a76c.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/83e3b476-d887-46bd-be7e-12e5279adff6.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d1c62139-7bae-4df6-b13e-daefe3114894.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicRepository/ApiInfoRepository.cs
@@ -16,5 +16,6 @@
        public ApiInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
        {
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/UserInfoService.cs
@@ -33,8 +33,7 @@
                        DeptNo = model.DeptNo,
                        InvOrgId = model.InvOrgId,
                        Name = model.Name,
                        State = model.State,
                        Type = model.Type,
                        State = model.State
                    };
                    BaseDal.AddData(userInfo);
@@ -47,7 +46,6 @@
                        return WebResponseContent.Instance.Error($"未找到该员工号【{model.Code}】信息");
                    }
                    userInfo.State = model.State;
                    userInfo.Type = model.Type;
                    userInfo.DeptName = model.DeptName;
                    userInfo.DeptNo = model.DeptNo;
                    userInfo.InvOrgId = model.InvOrgId;
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs
@@ -5,11 +5,13 @@
using System.Threading.Tasks;
using WIDESEA_Common.OrderEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
using WIDESEA_IApprovalRepository;
using WIDESEA_ICheckRepository;
using WIDESEA_ICheckService;
using WIDESEA_IInboundRepository;
using WIDESEA_Model.Models;
namespace WIDESEA_CheckService
@@ -17,10 +19,13 @@
    public class CheckOrderResultService : ServiceBase<Dt_CheckOrderResult, ICheckOrderResultRepository>, ICheckOrderResultService
    {
        private readonly ICheckOrderRepository _checkOrderRepository;
        public CheckOrderResultService(ICheckOrderResultRepository BaseDal, ICheckOrderRepository checkOrderRepository) : base(BaseDal)
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly IReceiveOrderRepository _receiveOrderRepository;
        public CheckOrderResultService(ICheckOrderResultRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICheckOrderRepository checkOrderRepository, IReceiveOrderRepository receiveOrderRepository) : base(BaseDal)
        {
            _checkOrderRepository = checkOrderRepository;
            _unitOfWorkManage = unitOfWorkManage;
            _receiveOrderRepository = receiveOrderRepository;
        }
        /// <summary>
@@ -29,11 +34,17 @@
        /// <param name="checkOrderId">质检单主键</param>
        /// <param name="checkResult">质检结果对象</param>
        /// <returns></returns>
        public WebResponseContent CommitCheckResult(int checkOrderId, Dt_CheckOrderResult checkResult)
        public WebResponseContent CommitCheckResult(int checkOrderId,Dt_CheckOrderResult checkResult)
        {
            try
            {
                Dt_CheckOrder checkOrder = _checkOrderRepository.QueryFirst(x => x.CheckOrderId == checkOrderId);
                //获取质检单对应的收货单
                Dt_ReceiveOrder receiveOrder = _receiveOrderRepository.QueryFirst(x=>x.ReceiveOrderNo==checkOrder.ReceiveOrderNo);
                if (receiveOrder.ReceiveOrderStatus!=ReceiveOrderStatusEnum.Completed.ObjToInt())
                {
                    return WebResponseContent.Instance.Error($"{receiveOrder.ReceiveOrderNo}收货单未完成无法质检");
                }
                if (checkOrder == null)
                {
                    return WebResponseContent.Instance.Error($"未找到该质检单");
@@ -75,8 +86,10 @@
                    Result = checkResult.Result,
                    Note = checkResult.Note
                };
                _unitOfWorkManage.BeginTran();
                _checkOrderRepository.UpdateData(checkOrder);
                BaseDal.AddData(checkOrderResult);
                _unitOfWorkManage.CommitTran();
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs
@@ -125,11 +125,16 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// è´¨æ£€å®Œä¸ŠæŠ¥è‡³ERP
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public WebResponseContent FeedbackCheckResult(int id)
        {
            try
            {
                //增加个上传状态 è´¨æ£€å•结果
                Dt_CheckOrder checkOrder = Db.Queryable<Dt_CheckOrder>().Where(x => x.CheckOrderId == id).Includes(x => x.Details).First();
                if (checkOrder == null)
                {
@@ -156,21 +161,21 @@
                ERPCheckModel model = new ERPCheckModel()
                {
                    Code = checkOrder.CheckOrderNo,
                    CompanyId = "",
                    CompanyId = "HATC",
                    Result = checkOrder.Result,
                    CreatorCode = checkOrder.Creater,
                    CreatorCode = "TC20082",//测试
                    DefectedNote = checkOrder.DefectedNote,
                    MaterialsCode = checkOrder.MaterielCode,
                    PlantsId = "",
                    PlantsId = "HA02",
                    QtyDefected = checkOrder.DefectedQuantity.GetValueOrDefault().ToString(),
                    QtyInspected = checkOrder.ReceivedQuantity.ToString(),
                    QtyQualified = checkOrder.QualifiedQuantity.GetValueOrDefault().ToString(),
                    QtyReturn = checkOrder.ReturnQuantity.GetValueOrDefault().ToString(),
                    QtyScrapped = checkOrder.ScrappedQuantity.GetValueOrDefault().ToString(),
                    ReceiptCode = checkOrder.ReceiveOrderNo,
                    ReceiveDate = "",
                    ReceiveDate = checkOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
                    SerNo = checkOrder.ReceiveDetailRowNo.ToString(),
                    TestDate = "",
                    TestDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    UniqueTag = checkOrder.CheckOrderId.ToString(),
                    Way = 1,
                    Details = checkResults
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/WIDESEA_CheckService.csproj
@@ -10,6 +10,7 @@
    <ProjectReference Include="..\WIDESEA_External\WIDESEA_External.csproj" />
    <ProjectReference Include="..\WIDESEA_IApprovalRepository\WIDESEA_IApprovalRepository.csproj" />
    <ProjectReference Include="..\WIDESEA_ICheckService\WIDESEA_ICheckService.csproj" />
    <ProjectReference Include="..\WIDESEA_IInboundRepository\WIDESEA_IInboundRepository.csproj" />
    <ProjectReference Include="..\WIDESEA_ISystemRepository\WIDESEA_ISystemRepository.csproj" />
  </ItemGroup>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs
@@ -23,25 +23,10 @@
        [Description("AGV安全信号回复")]
        AgvSecureReply,
        /// <summary>
        /// ERP收货接口调用
        /// ERP接口调用
        /// </summary>
        [Description("ERP收货接口调用")]
        InvokeMatReceiveApi,
        /// <summary>
        /// ERP物料IQC检验接口调用
        /// </summary>
        [Description("ERP物料IQC检验接口调用")]
        InvokeCheckOrderApi,
        /// <summary>
        /// ERP物料入库接口调用
        /// </summary>
        [Description("ERP物料入库接口调用")]
        InvokeInboundOrderApi,
        /// <summary>
        /// ERP物料出库接口调用
        /// </summary>
        [Description("ERP物料出库接口调用")]
        InvokeOutboundOrderApi,
        [Description("ERP接口调用")]
        InvokeErpApi,
        /// <summary>
        /// MES同步测试架台账信息
        /// </summary>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Common/CommonEnum/RecyclingEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEA_Common.CommonEnum
{
    /// <summary>
    /// å›žæ”¶ç±»åž‹
    /// </summary>
    public enum RecyclingEnum
    {
        /// <summary>
        /// å®¢ä¾›
        /// </summary>
        Return,
        /// <summary>
        /// å›žæ”¶
        /// </summary>
        RepairStock,
        /// <summary>
        /// å›žé€€
        /// </summary>
        CMStock,
        /// <summary>
        /// ç»´ä¿®ç‰©æ–™å›žæ”¶
        /// </summary>
        RMStock
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/CheckOrderEnum.cs
@@ -42,4 +42,20 @@
        [Description("报废")]
        Scrapped
    }
    /// <summary>
    /// æ£€éªŒä¸Šä¼ çŠ¶æ€
    /// </summary>
    public enum CheckUploadEnum
    {
        /// <summary>
        /// æœªä¸Šä¼ 
        /// </summary>
        [Description("未上传")]
        UploadNo,
        /// <summary>
        /// å·²ä¸Šä¼ 
        /// </summary>
        [Description("已上传")]
        UploadOk
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_DTO/ERP/ErpInOrderDTO.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.Attributes;
namespace WIDESEA_DTO.ERP
{
    /// <summary>
    /// å…¶ä»–入库订单
    /// </summary>
    [ModelValidate]
    public class ErpInOrderDTO
    {
        /// <summary>
        /// æ“ä½œç±»åž‹<br/>
        /// 1:新增<br/>
        /// 2:修改<br/>
        /// 3:删除(删除只要明细行号和领料单号)
        /// </summary>
        [PropertyValidate("操作类型", NotNullAndEmpty = true, Check = new object[] { 1, 2, 3 })]
        public int Way { get; set; }
        /// <summary>
        /// æ˜Žç»†è¡Œå·
        /// </summary>
        [PropertyValidate("明细行号", NotNullAndEmpty = true)]
        public string RowNo { get; set; }
        /// <summary>
        /// å…¥åº“订单号
        /// </summary>
        [PropertyValidate("入库订单号", NotNullAndEmpty = true)]
        public string OrderNo { get; set; }
        /// <summary>
        /// ä»“库编号
        /// </summary>
        [PropertyValidate("仓库编号", NotNullAndEmpty = true)]
        public string WaId { get; set; }
        /// <summary>
        /// è®¢å•类型<br/>
        /// 1:调拨入库<br/>
        /// 3:客供回收<br/>
        /// 6:物料销售退货<br/>
        /// </summary>
        [PropertyValidate("订单类型", NotNullAndEmpty = true, Check = new object[] { 1,  3, 6 })]
        public int OType { get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–码
        /// </summary>
        [PropertyValidate("物料编码", NotNullAndEmpty = true)]
        public string MCode { get; set; }
        /// <summary>
        /// æ•°é‡
        /// </summary>
        [PropertyValidate("数量", NotNullAndEmpty = true, MinValue = 0, IsContainMinValue = false)]
        public float Qty { get; set; }
        /// <summary>
        /// å•位
        /// </summary>
        [PropertyValidate("单位", NotNullAndEmpty = true)]
        public string Unit { get; set; }
        /// <summary>
        /// ä¸‹å•日期
        /// </summary>
        [PropertyValidate("下单日期", NotNullAndEmpty = true)]
        public string OrderData { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        [PropertyValidate("备注")]
        public string Node { get; set; }
        /// <summary>
        /// å›žæ”¶ç±»åž‹
        /// </summary>
        [PropertyValidate("回收类型")]
        public string Type { get; set; }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs
@@ -1,4 +1,6 @@
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -21,6 +23,11 @@
        {
            _apiInfoRepository= apiInfoRepository;
        }
        // åˆ›å»ºä¸€ä¸ªä½¿ç”¨å°é©¼å³°å‘½åæ³•的序列化设置
        JsonSerializerSettings settings = new JsonSerializerSettings
        {
            ContractResolver = new CamelCasePropertyNamesContractResolver()
        };
        /// <summary>
        /// ERP收货单接口调用
        /// </summary>
@@ -28,15 +35,18 @@
        /// <returns></returns>
        public string InvokeMatReceiveApi(ERPReceiveModel receiveModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x=>x.ApiCode==APIEnum.InvokeMatReceiveApi.ToString());
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x=>x.ApiCode==APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPReceiveModel> model = new ERPBaseModel<ERPReceiveModel>()
            {
                Data = receiveModel,
                Desc = "收货单",
                Type = "toTCWMSReceive",
                SecurityCode = ""
                SecurityCode = "TeChuang"
            };
            string response = HttpHelper.Post(apiInfo.ApiAddress, model.Serialize());
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
@@ -47,16 +57,17 @@
        /// <returns></returns>
        public string InvokeCheckOrderApi(ERPCheckModel checkModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeCheckOrderApi.ToString());
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPCheckModel> model = new ERPBaseModel<ERPCheckModel>()
            {
                Data = checkModel,
                Desc = "收货单",
                Desc = "物料IQC检验单",
                Type = "toTCWMSIQCTest",
                SecurityCode = ""
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, model.Serialize());
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
@@ -67,16 +78,33 @@
        /// <returns></returns>
        public string InvokeInboundOrderApi(ERPInboundModel inboundModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeInboundOrderApi.ToString());
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPInboundModel> model = new ERPBaseModel<ERPInboundModel>()
            {
                Data = inboundModel,
                Desc = "收货单",
                Desc = "物料入库单",
                Type = "toTCWMSMaterialWarehousing",
                SecurityCode = ""
                SecurityCode = "TeChuang"
            };
            string response = HttpHelper.Post(apiInfo.ApiAddress, model.Serialize());
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
        /// ERP领料通知单出库
        /// </summary>
        public string InvokeOutStandardsApi(ERPIssueModel issueModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPIssueModel> model = new ERPBaseModel<ERPIssueModel>()
            {
                Data = issueModel,
                Desc = "领料出库通知单",
                Type = "toStandardPickList",
                SecurityCode = "TeChuang"
            };
            string request = JsonConvert.SerializeObject(model, settings).Replace("issitem", "Issitem");
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
        /// <summary>
@@ -86,15 +114,16 @@
        /// <returns></returns>
        public string InvokeOutboundOrderApi(ERPOutboundModel outboundModel)
        {
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeOutboundOrderApi.ToString());
            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
            ERPBaseModel<ERPOutboundModel> model = new ERPBaseModel<ERPOutboundModel>()
            {
                Data = outboundModel,
                Desc = "材料出库",
                Type = "toBomMaterialOutTC",
                SecurityCode = "LxkgPgN3$U"
                SecurityCode = "TeChuang"
            };
            string response = HttpHelper.Post(apiInfo.ApiAddress, model.Serialize());
            string request = JsonConvert.SerializeObject(model, settings);
            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
            return response;
        }
    }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs
@@ -39,5 +39,6 @@
        /// <param name="outboundModel"></param>
        /// <returns></returns>
        string InvokeOutboundOrderApi(ERPOutboundModel outboundModel);
        string InvokeOutStandardsApi(ERPIssueModel issueModel);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPInboundModel.cs
@@ -64,7 +64,7 @@
        /// <summary>
        /// åˆ›å»ºæ—¥æœŸ
        /// </summary>
        public string EndDate { get; set; }
        public string EntDate { get; set; }
        /// <summary>
        /// å¤‡æ³¨
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPIssueModel.cs
@@ -29,37 +29,37 @@
        /// <summary>
        /// éƒ¨é—¨ä»£ç 
        /// </summary>
        public string DetNo { get; set; }
        public string Deptno { get; set; }
        /// <summary>
        /// éƒ¨é—¨åç§°
        /// </summary>
        public string DetName { get; set; }
        public string Deptname { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        public string DecRemark { get; set; }
        public string Docremark { get; set; }
        /// <summary>
        /// æ—¥æœŸ
        /// </summary>
        public string CreateTime { get; set; }
        public string Createtime { get; set; }
        /// <summary>
        /// äººå‘˜
        /// </summary>
        public string CreateUser { get; set; }
        public string Createuser { get; set; }
        /// <summary>
        /// ç ”发
        /// </summary>
        public int IsDev { get; set; }
        public int IsDev { get; set; } = 0;
        /// <summary>
        /// è¯¦æƒ…
        /// </summary>
        public List<ERPIssueItemModel> IssItem { get; set; }
        public List<ERPIssueItemModel> Issitem { get; set; }
    }
    /// <summary>
@@ -70,12 +70,12 @@
        /// <summary>
        /// é¢†æ–™å•号
        /// </summary>
        public string PickCode { get; set; }
        public string Pickcode { get; set; }
        /// <summary>
        /// å‘放详情
        /// </summary>
        public List<ERPPickModel> PickItem { get; set; }
        public List<ERPPickModel> PickList { get; set; }
    }
    /// <summary>
@@ -86,7 +86,7 @@
        /// <summary>
        /// å‘料明细行号
        /// </summary>
        public int RowIndex { get; set; }
        public int Rowindex { get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–码
@@ -101,7 +101,7 @@
        /// <summary>
        /// åº“存详情
        /// </summary>
        public List<ERPPickItemModel> DataItem { get; set; }
        public List<ERPPickItemModel> Dataitem { get; set; }
    }
    /// <summary>
@@ -112,7 +112,7 @@
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        public string LotNo { get; set; }
        public string Lotno { get; set; }
        /// <summary>
        /// æ•°é‡
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPOutboundModel.cs
@@ -7,7 +7,7 @@
namespace WIDESEA_External.Model
{
    /// <summary>
    /// å‡ºåº“单回传ERP
    /// ç‰©æ–™å‘仓出库回传ERP
    /// </summary>
    public class ERPOutboundModel
    {
@@ -20,7 +20,7 @@
        /// </summary>
        public string UniqueTag { get; set; }
        /// <summary>
        /// å‡ºåº“单号
        /// å‘料单号
        /// </summary>
        public string Code { get; set; }
        /// <summary>
@@ -42,7 +42,7 @@
        /// <summary>
        /// å‘料时间
        /// </summary
        public DateTime? Createtime { get; set; }
        public string Createtime { get; set; }
        /// <summary>
        /// å‘料人员
        /// </summary
@@ -65,7 +65,7 @@
        /// <summary>
        /// æ€»æ•°é‡
        /// </summary>
        public float Qty { get; set; }
        public int Qty { get; set; }
        /// <summary>
        /// 
        /// </summary>
@@ -80,6 +80,6 @@
        /// <summary>
        /// æ•°é‡
        /// </summary>
        public float Qty { get; set; }
        public int Qty { get; set; }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPReceiveModel.cs
@@ -54,7 +54,7 @@
        /// <summary>
        /// æ”¶è´§æ—¥æœŸ
        /// </summary>
        public DateTime ReceiveDate { get; set; }
        public string ReceiveDate { get; set; }
        /// <summary>
        /// é€è´§å•号
@@ -74,7 +74,7 @@
        /// <summary>
        /// åˆ›å»ºæ—¶é—´
        /// </summary>
        public DateTime EndDate { get; set; }
        public string EntDate { get; set; }
        public List<RecevieOrderDetailModel> Details { get; set; }
    }
@@ -104,7 +104,7 @@
        /// <summary>
        /// æ”¶è´§æ•°é‡
        /// </summary>
        public float QtyReceived { get; set; }
        public int QtyRecieved { get; set; }
        /// <summary>
        /// æ”¶è´§æ‰¹æ¬¡
@@ -124,7 +124,7 @@
        /// <summary>
        /// å«ç¨Žä»·æ ¼
        /// </summary>
        public double PriceInTax { get; set; } = 0;
        public int PriceInTax { get; set; } = 0;
        /// <summary>
        /// ç¨Žçއ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IBasicRepository/IApiInfoRepository.cs
@@ -13,5 +13,6 @@
    /// </summary>
    public interface IApiInfoRepository : IRepository<Dt_ApiInfo>
    {
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs
@@ -18,5 +18,6 @@
        IOutboundOrderRepository Repository { get; }
        WebResponseContent ReceiveOutOrder(ErpOutOrderDTO model);
        WebResponseContent TestOutUpload(int id);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
@@ -21,6 +21,7 @@
using WIDESEA_Core.Utilities;
using WIDESEA_DTO;
using WIDESEA_DTO.Basic;
using WIDESEA_DTO.ERP;
using WIDESEA_DTO.Inbound;
using WIDESEA_External.ERPService;
using WIDESEA_External.Model;
@@ -61,6 +62,46 @@
            _invokeERPService = invokeERPService;
            _warehouseService = warehouseService;
        }
        /// <summary>
        /// å…¶ä»–入库单创建
        /// </summary>
        /// <returns></returns>
        public WebResponseContent ReceiveWarehousingOrder(ErpInOrderDTO erpInOrder)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                //获取仓库信息
                Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x=>x.WarehouseCode==erpInOrder.WaId);
                if (warehouse==null)
                {
                    return content.Error("未找到仓库信息");
                }
                //获取是否存在订单
                Dt_InboundOrder inboundOrder = BaseDal.QueryFirst(x=>x.InboundOrderNo== erpInOrder.OrderNo);
                if (erpInOrder.Way==1)
                {
                    if (inboundOrder!=null)
                    {
                    }
                }
                else if(erpInOrder.Way==2)
                {
                }
                else
                {
                }
                return content.OK();
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
        public WebResponseContent GetInboundOrders(SaveModel saveModel)
        {
            WebResponseContent content = new WebResponseContent();
@@ -87,7 +128,13 @@
            }
            return content;
        }
        /// <summary>
        /// å•个物料码组盘
        /// </summary>
        /// <param name="inboundOrderId"></param>
        /// <param name="palletCode"></param>
        /// <param name="serNum"></param>
        /// <returns></returns>
        public WebResponseContent MaterielGroup(int inboundOrderId, string palletCode, string serNum)
        {
            try
@@ -114,7 +161,25 @@
                List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList();
                MatSerNumAnalysisModel model = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNum);
                MatSerNumAnalysisModel model = new MatSerNumAnalysisModel()
                {
                    MaterielCode= "307000309",
                    LotNo= "20241216001",
                    ProductionDate= "2024-12-16",
                    EffectiveDate= "2025-12-16",
                    PurchaseOrderNo= "POHA02241216275",
                    Quantity=1,
                    SerialNumber= "M:307000309,BS:20241216001,DM:2024-12-16,DE:2025-12-16,Q:4,PO:POHA02241216275"
                };//测试
                //CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNum);
                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == model.MaterielCode);
                if (materielInfo == null)
                {
                    return WebResponseContent.Instance.Error($"未找到该物料的信息");
                }
                List<Dt_InboundOrderDetail> inboundOrderDetails = inboundOrder.Details.Where(x => x.MaterielCode == model.MaterielCode).ToList();
@@ -138,19 +203,6 @@
                    return WebResponseContent.Instance.Error($"该物料在该入库单中已全部组盘完成");
                }
                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == model.MaterielCode);
                if (materielInfo == null)
                {
                    return WebResponseContent.Instance.Error($"未找到该物料的信息");
                }
                Dt_StockInfo stockInfo = new Dt_StockInfo()
                {
                    PalletCode = palletCode,
                    StockStatus = StockStatusEmun.组盘暂存.ObjToInt(),
                    WarehouseId = inboundOrder.WarehouseId
                };
                Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
                {
                    BatchNo = model.LotNo,
@@ -164,6 +216,14 @@
                    ProductionDate = model.ProductionDate,
                    EffectiveDate = model.EffectiveDate,
                    InboundOrderRowNo = notGroupDetail.RowNo,
                };
                Dt_StockInfo stockInfo = new Dt_StockInfo()
                {
                    PalletCode = palletCode,
                    StockStatus = StockStatusEmun.组盘暂存.ObjToInt(),
                    WarehouseId = inboundOrder.WarehouseId,
                    Details=new List<Dt_StockInfoDetail> { stockInfoDetail }
                };
                _stockRepository.StockInfoRepository.Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand();
@@ -484,7 +544,11 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// å…¥åº“完成回传到ERP
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public WebResponseContent FeedbackInboundOrder(int id)
        {
            try
@@ -547,9 +611,9 @@
                ERPInboundModel model = new ERPInboundModel()
                {
                    Code = inboundOrder.InboundOrderNo,
                    CreatorCode = inboundOrder.Creater,
                    EndDate = inboundOrder.CreateDate.ToString(),
                    StockDate = inboundOrder.CreateDate.ToString(),
                    CreatorCode = "TC20082",//测试
                    EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
                    StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    SuppliersId = inboundOrder.SupplierId,
                    Type = "S",
                    UniqueTag = inboundOrder.Id.ToString(),
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs
@@ -87,6 +87,7 @@
                    {
                        MaterielCode = item.MCode,
                        PurchaseDetailQuantity = item.Qty,
                        PurchaseDetailReceiveQty=0,
                        PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(),
                        Unit = item.Unit,
                        WarehouseId = warehouse.WarehouseId,
@@ -157,6 +158,7 @@
                        {
                            MaterielCode = item.MCode,
                            PurchaseDetailQuantity = item.Qty,
                            PurchaseDetailReceiveQty = 0,
                            PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(),
                            Unit = item.Unit,
                            WarehouseId = warehouse.WarehouseId,
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs
@@ -11,7 +11,9 @@
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
using WIDESEA_DTO;
using WIDESEA_DTO.Basic;
using WIDESEA_DTO.ERP;
using WIDESEA_External.ERPService;
using WIDESEA_External.Model;
using WIDESEA_IBasicRepository;
@@ -79,7 +81,11 @@
            return base.AddData(saveModel);
        }
        /// <summary>
        /// æ”¶è´§å®Œæˆå¹¶å›žä¼ ERP
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public WebResponseContent FeedbackReceiveOrder(int orderId)
        {
            try
@@ -88,6 +94,10 @@
                if (receiveOrder == null)
                {
                    return WebResponseContent.Instance.Error($"未找到收货单");
                }
                if (receiveOrder.ReceiveOrderStatus==ReceiveOrderStatusEnum.Completed.ObjToInt())
                {
                    return WebResponseContent.Instance.Error($"收货单已完成");
                }
                if (receiveOrder.Details == null || receiveOrder.Details.Count == 0)
                {
@@ -112,10 +122,11 @@
                        PriceInTax = 0,
                        PurchaseOrderCode = item.PurchaseOrderNo,
                        PurchaseOrderSerno = item.PurchaseOrderDetailRowNo,
                        QtyReceived = item.ReceivedQuantity,
                        QtyRecieved = item.ReceivedQuantity.ObjToInt(),
                        Serno = item.RowNo,
                        Supplotno = "",
                        Taxrate = ""
                        Taxrate = "",
                    };
                    recevieOrderDetails.Add(recevieOrderDetail);
                }
@@ -123,23 +134,33 @@
                ERPReceiveModel receiveModel = new ERPReceiveModel()
                {
                    Code = receiveOrder.ReceiveOrderNo,
                    CompanyId = "",
                    CompanyId = "HATC",
                    DeliveryCode = receiveOrder.DeliveryCode,
                    CustomerId = receiveOrder.CustomerId,
                    CreatorId = receiveOrder.Creater,
                    EndDate = receiveOrder.CreateDate,
                    ReceiveDate = receiveOrder.CreateDate,
                    PlantsId = "",
                    CreatorId = "TC20082",//测试 receiveOrder.Creater
                    EntDate = receiveOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
                    ReceiveDate = receiveOrder.ReceiveDate.ToString("yyyy-MM-dd HH:mm:ss"),
                    PlantsId = "HA02",
                    SuppliersId = receiveOrder.SuppliersId,
                    Type = "PO",
                    Type = Enum.GetName(typeof(ReceiveOrderTypeEnum),receiveOrder.ReceiveOrderType),
                    UniqueTag = receiveOrder.ReceiveOrderId.ToString(),
                    WarehouseCode = warehouse.WarehouseCode,
                    Way = 1,
                    Details = recevieOrderDetails
                };
                string response = _invokeERPService.InvokeMatReceiveApi(receiveModel);
                //收货推送至ERP
                string Content = _invokeERPService.InvokeMatReceiveApi(receiveModel);
                ErpRequestContent erpRequest=Content.DeserializeObject<ErpRequestContent>();
                if (erpRequest.res==0)
                {
                    return WebResponseContent.Instance.Error(erpRequest.Data);
                }
                receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Completed.ObjToInt();
                receiveOrder.UploadStatus = WhetherEnum.True.ObjToInt();
                //更新收货单信息
                _unitOfWorkManage.BeginTran();
                BaseDal.UpdateData(receiveOrder);
                _unitOfWorkManage.CommitTran();
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
@@ -174,7 +195,11 @@
            }
            return content;
        }
        /// <summary>
        /// åˆ›å»ºå…¥åº“单
        /// </summary>
        /// <param name="receiveOrderId">收货单编号</param>
        /// <returns></returns>
        public WebResponseContent CreateInboundOrder(int receiveOrderId)
        {
            try
@@ -206,6 +231,7 @@
                Dt_InboundOrder inboundOrder = new Dt_InboundOrder()
                {
                    InboundOrderNo="TestInboundNo1",//测试
                    UpperOrderNo = receiveOrder.ReceiveOrderNo,
                    CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(),
                    OrderStatus = InOrderStatusEnum.未开始.ObjToInt(),
@@ -311,20 +337,23 @@
                        if (materielInfo.IsCheck == WhetherEnum.True)
                        {
                            Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
                            checkOrder.CheckOrderNo = "TestCheckNo11";//测试
                            checkOrder.ReceiveOrderNo = "";
                            checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
                            checkOrder.ScrappedQuantity = 0;
                            checkOrder.ReturnQuantity = 0;
                            checkOrder.DefectedQuantity = 0;
                            checkOrder.ReceiveDetailRowNo = rowNo;
                            checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
                            checkOrders.Add(checkOrder);
                        }
                    }
                    receiveOrder = new Dt_ReceiveOrder()
                    {
                        ReceiveOrderNo= "TestReceiveOrderNo11",//测试
                        ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(),
                        CustomerId = "",
                        DeliveryCode = "",
                        DeliveryCode = "/",
                        ReceiveDate = DateTime.Now,
                        ReceiveOrderType = ReceiveOrderTypeEnum.PO.ObjToInt(),
                        SuppliersId = purchaseOrder.SupplierCode,
@@ -371,12 +400,14 @@
                        if (materielInfo.IsCheck == WhetherEnum.True)
                        {
                            Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
                            checkOrder.CheckOrderNo = "Test-CheckNo1";//测试
                            checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
                            checkOrder.ScrappedQuantity = 0;
                            checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
                            checkOrder.ReturnQuantity = 0;
                            checkOrder.DefectedQuantity = 0;
                            checkOrder.ReceiveDetailRowNo = rowNo;
                            checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
                            checkOrders.Add(checkOrder);
                        }
                    }
@@ -395,11 +426,13 @@
                    Db.InsertNav(receiveOrder).Include(x => x.Details).ExecuteCommand();
                    checkOrders.ForEach(x => x.ReceiveOrderNo = receiveOrder.ReceiveOrderNo);
                }
                _checkOrderRepository.AddData(checkOrders);
                if (checkOrders.Count > 0)
                {
                    _checkOrderRepository.AddData(checkOrders);
                }
                _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
                _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrder.Details);
                _unitOfWorkManage.CommitTran();
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_UserInfo.cs
@@ -52,7 +52,7 @@
        /// <summary>
        /// ç±»åž‹ 1=仓管员,2=质检员
        /// </summary>
        [SugarColumn(IsNullable = false, ColumnDescription = "类型")]
        public int Type { get; set; }
        //[SugarColumn(IsNullable = false, ColumnDescription = "类型")]
        //public int Type { get; set; }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs
@@ -106,7 +106,11 @@
        /// </summary>
        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "检验人")]
        public string CheckUserName { get; set; }
        /// <summary>
        /// æ£€éªŒä¸Šä¼ çŠ¶æ€
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "检验上传状态")]
        public int UploadStatus { get; set; }
        /// <summary>
        /// è´¨æ£€ç»“æžœ
        /// </summary>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_PurchaseOrderDetail.cs
@@ -56,6 +56,11 @@
        /// </summary>
        [SugarColumn(IsNullable = false, ColumnDescription = "数量")]
        public float PurchaseDetailQuantity { get; set; }
        /// <summary>
        /// å·²æ”¶è´§æ•°é‡
        /// </summary>
        [SugarColumn(IsNullable = false, ColumnDescription = "已收货数量")]
        public float PurchaseDetailReceiveQty { get; set; }
        /// <summary>
        /// å•位
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrderDetail.cs
@@ -41,7 +41,7 @@
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "批次号")]
        [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "批次号")]
        public string BatchNo { get; set; }
        /// <summary>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs
@@ -47,7 +47,7 @@
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "批次号")]
        [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "批次号")]
        public string BatchNo { get; set; }
        /// <summary>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
@@ -1,4 +1,5 @@
using AutoMapper;
using MailKit.Search;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
@@ -138,6 +139,7 @@
                        Dt_OutboundOrder outboundOrder = new Dt_OutboundOrder()
                        {
                            OrderNo=model.OrderNo,
                            UpperOrderNo = model.OrderNo,
                            OrderStatus = OutOrderStatusEnum.未开始.ObjToInt(),
                            OrderType = OutOrderTypeEnum.Issue.ObjToInt(),
@@ -215,6 +217,63 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        //上报出库完成
        public WebResponseContent TestOutUpload(int id)
        {
            try
            {
                Dt_OutboundOrder outboundOrder = Db.Queryable<Dt_OutboundOrder>().Where(x=>x.Id==id).Includes(x=>x.Details).First();
                Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == outboundOrder.WarehouseId);
                //测试架库给ERP上报出库完成
                ERPPickItemModel eRPOutPick = new ERPPickItemModel()
                {
                    Lotno = "20241226001",
                    Qty = "5",
                    Location = warehouse.WarehouseCode
                };
                ERPPickModel pickModel = new ERPPickModel()
                {
                    Rowindex = outboundOrder.Details[0].RowNo,
                    Material = outboundOrder.Details[0].MaterielCode,
                    Qty = (outboundOrder.Details[0].OrderQuantity.ObjToInt()).ToString(),
                    Dataitem=new List<ERPPickItemModel> { eRPOutPick }
                };
                ERPIssueItemModel issueItemModel = new ERPIssueItemModel()
                {
                    Pickcode = outboundOrder.UpperOrderNo,
                    PickList = new List<ERPPickModel>() { pickModel }
                };
                ERPIssueModel issueModel = new ERPIssueModel()
                {
                    UniqueTag = id.ToString(),
                    Code = "FL20241226001",
                    WarehouseCode = warehouse.WarehouseCode,
                    Docremark = "",
                    Deptno = "F2HAECZSQZ",
                    Deptname = "淮安二厂制三区阻焊",
                    Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    Createuser = "TC20082",
                    Issitem = new List<ERPIssueItemModel>() { issueItemModel },
                };
                string response = _invokeERPService.InvokeOutStandardsApi(issueModel);
                ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
                if (requestContent.res == 1)
                {
                    return WebResponseContent.Instance.OK(requestContent.Data);
                }
                else
                {
                    return WebResponseContent.Instance.Error(requestContent.Data);
                }
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
            return WebResponseContent.Instance.OK();
        }
        /// <summary>
        /// æ›´æ”¹å‡ºåº“单库存状态
        /// </summary>
@@ -252,13 +311,13 @@
                List<ERPOutPickDetail> pickDetails = stockInfos.Select(x => new ERPOutPickDetail()
                {
                    Lotno = x.Details[0].BatchNo,
                    Qty = x.Details[0].StockQuantity
                    Qty = x.Details[0].StockQuantity.ObjToInt()
                }).ToList();
                ERPOutPick outPick = new ERPOutPick()
                {
                    Rowindex = model.RowNo,
                    Material = model.MCode,
                    Qty = model.Qty,
                    Qty = model.Qty.ObjToInt(),
                    Dataitem = pickDetails
                };
                ERPOutboundModel inboundModel = new ERPOutboundModel()
@@ -270,7 +329,7 @@
                    Docremark = "",
                    Deptno = model.DepartmentCode,
                    DeptName = model.DepartmentName,
                    Createtime = DateTime.Now,
                    Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    Createuser = "WMS",
                    Picklist = new List<ERPOutPick>() { outPick },
                };
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs
@@ -83,7 +83,7 @@
                //加入货位变动记录
                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, locationStatus, LocationChangeType.OutboundAssignLocation, stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", taskOut.TaskNum);
                //加入库存变动记录
                //_recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup);
                //_recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.StockLock);
                _unitOfWorkManage.CommitTran();
                //将任务推送到WCS
                PushTasksToWCS(new List<Dt_Task>() { taskOut },"AGV");
@@ -127,7 +127,7 @@
                    SourceAddress = backModel.SourceAddressCode,
                    TargetAddress = "",
                    TaskStatus = (int)TaskStatusEnum.New,
                    TaskType = (int)TaskTypeEnum.Outbound,
                    TaskType = (int)TaskTypeEnum.ProductionReturn,
                    TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
                    PalletType = stockInfo.PalletType,
                    WarehouseId = stockInfo.WarehouseId,
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -257,7 +257,7 @@
                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, (LocationStatusEnum)beforeStatus, LocationChangeType.OutboundCompleted, stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
                _unitOfWorkManage.CommitTran();
                //推送出库完成
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderController.cs
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core;
using WIDESEA_Core.BaseController;
@@ -31,7 +32,7 @@
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpGet, HttpPost, Route("FeedbackCheckResult")]
        [HttpGet, HttpPost, Route("FeedbackCheckResult"),AllowAnonymous]
        public WebResponseContent FeedbackCheckResult(int id)
        {
            return Service.FeedbackCheckResult(id);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs
@@ -22,7 +22,7 @@
        /// <param name="checkResult"></param>
        /// <returns></returns>
        [HttpPost, Route("CommitCheckResult")]
        public WebResponseContent CommitCheckResult(int checkOrderId, Dt_CheckOrderResult checkResult)
        public WebResponseContent CommitCheckResult(int checkOrderId,[FromBody] Dt_CheckOrderResult checkResult)
        {
            return Service.CommitCheckResult(checkOrderId, checkResult);
        }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs
@@ -50,7 +50,7 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("ReceivePurchaseOrderSingle"), AllowAnonymous, MethodParamsValidate]
        [HttpPost, Route("ReceivePurchaseOrder"), AllowAnonymous, MethodParamsValidate]
        public ErpResponseContent ReceivePurchaseOrder([FromBody] Root<PurchaseOrderModel> model)
        {
            WebResponseContent content = _purchaseOrderService.ReceivePurchaseOrder(model.Content);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs
@@ -33,7 +33,7 @@
        /// <param name="palletCode"></param>
        /// <param name="serNum"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("MaterielGroupSingle")]
        [HttpPost, HttpGet, Route("MaterielGroupSingle"),AllowAnonymous]
        public WebResponseContent MaterielGroup(int inboundOrderId, string palletCode, string serNum)
        {
            return Service.MaterielGroup(inboundOrderId, palletCode, serNum);
@@ -67,7 +67,7 @@
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("FeedbackInboundOrder")]
        [HttpPost, HttpGet, Route("FeedbackInboundOrder"),AllowAnonymous]
        public WebResponseContent FeedbackInboundOrder(int id)
        {
            return Service.FeedbackInboundOrder(id);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/ReceiveOrderController.cs
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core;
using WIDESEA_Core.BaseController;
@@ -18,9 +19,9 @@
        /// <summary>
        /// æ ¹æ®æ”¶è´§å•创建入库单
        /// </summary>
        /// <param name="receiveOrderId"></param>
        /// <param name="receiveOrderId">收货单编号</param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("CreateInboundOrder")]
        [HttpPost, HttpGet, Route("CreateInboundOrder"),AllowAnonymous]
        public WebResponseContent CreateInboundOrder(int receiveOrderId)
        {
            return Service.CreateInboundOrder(receiveOrderId);
@@ -31,7 +32,7 @@
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("FeedbackReceiveOrder")]
        [HttpPost, HttpGet, Route("FeedbackReceiveOrder"),AllowAnonymous]
        public WebResponseContent FeedbackReceiveOrder(int orderId)
        {
            return Service.FeedbackReceiveOrder(orderId);
@@ -52,7 +53,7 @@
        /// <param name="purchaseOrderId"></param>
        /// <param name="lotNo"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("ReceiveAllOrder")]
        [HttpPost, HttpGet, Route("ReceiveAllOrder"),AllowAnonymous]
        public WebResponseContent ReceiveAllOrder(int purchaseOrderId, string lotNo)
        {
            return Service.ReceiveAllOrder(purchaseOrderId, lotNo);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs
@@ -19,6 +19,11 @@
        {
        }
        [HttpPost,Route("TestOutUpload"),AllowAnonymous]
        public WebResponseContent TestOutUpload(int id)
        {
            return Service.TestOutUpload(id);
        }
    }
}
ÏîÄ¿×ÊÁÏ/½Ó¿ÚÎĵµ/º£¿µAGV/20240115WMS&AGV½Ó¿Ú-HikV1.1(1).xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/½Ó¿ÚÎĵµ/ÌØ´´ERP&WMS½Ó¿ÚÇåµ¥072520241126.xlsx
Binary files differ