duyongjia
2024-12-19 fbfbc83d25477cf191e327e034ed996f0a2239d0
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_JobService.cs
@@ -1,10 +1,15 @@
using Newtonsoft.Json;
using LikuServiceReference;
using Newtonsoft.Json;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
using Org.BouncyCastle.Tls;
using StackExchange.Profiling.Internal;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Net.NetworkInformation;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
@@ -17,10 +22,14 @@
using WIDESEA_Core.Helper;
using WIDESEA_Core.Log;
using WIDESEA_DTO.System;
using WIDESEA_IBasicRepository;
using WIDESEA_ISystemRepository;
using WIDESEA_ISystemService;
using WIDESEA_Model;
using WIDESEA_Model.Models;
using WIDESEA_SystemService.Scheduler;
using WIDESEA_Model.Models.System.Reponse;
using WIDESEA_Model.Models.System.Request;
using static System.Collections.Specialized.BitVector32;
namespace WIDESEA_SystemService
{
@@ -28,85 +37,429 @@
    {
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly ICacheService _cacheService;
        SchedulerCenter scheduler = new SchedulerCenter();
        private readonly ILabelMasterRepository _labelMasterRepository;
        private readonly IOutBoundOrderBYDRepository _outBoundOrderBYDRepository;
        private readonly IOutboundOrderDetailBYDRepository _outboundOrderDetailByDRepository;
        private readonly IOutboundOrderDetail_LabelsBYDRepository _outboundOrderDetailLabelsByDRepository;
        public Sys_JobService(ISys_JobRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService) : base(BaseDal)
        public Sys_JobService(ISys_JobRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService,ILabelMasterRepository labelMasterRepository, IOutBoundOrderBYDRepository outBoundOrderBYDRepository, IOutboundOrderDetailBYDRepository outboundOrderDetailByDRepository, IOutboundOrderDetail_LabelsBYDRepository outboundOrderDetailLabelsByDRepository) : base(BaseDal)
        {
            _unitOfWorkManage = unitOfWorkManage;
            _cacheService = cacheService;
            _labelMasterRepository = labelMasterRepository;
            _outBoundOrderBYDRepository = outBoundOrderBYDRepository;
            _outboundOrderDetailByDRepository = outboundOrderDetailByDRepository;
            _outboundOrderDetailLabelsByDRepository = outboundOrderDetailLabelsByDRepository;
        }
        public WebResponseContent StartServe()
        /// <summary>
        /// åŒæ­¥æ¡ç ä¸»æ•°æ®
        /// </summary>
        /// <returns></returns>
        public WebResponseContent SyncLabMaster()
        {
            WebResponseContent webResponse = new WebResponseContent();
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (!scheduler.IsRun())
                LabelServiceReference.LabelWebServiceClient lableClient = new LabelServiceReference.LabelWebServiceClient();
                getLabelMasterRequest lab = new getLabelMasterRequest();
                lab.WERKS = AppSettings.Configuration["WERKS"];
                lab.SYSNO = AppSettings.Configuration["SYSNO"];
                lab.BATCH = "";
                lab.LABEL_NO = "";
                string inparam = "[" + JsonConvert.SerializeObject(lab) + "]";
                //string response = lableClient.getLabelMaster(inparam);
                string  response = "{\r\n    \"msg\": \"传输成功!\",\r\n    \"data\": [\r\n        {\r\n            \"WH_NUMBER\": \"GX25\",\r\n            \"WERKS\": \"GX25\",\r\n            \"PSTYP\": \"0\",\r\n            \"PO_NO\": \"5907427563\",\r\n            \"PRODUCT_DATE\": \"2024-12-16\",\r\n            \"EFFECT_DATE\": \"2025-06-17\",\r\n            \"LABEL_NO\": \"XAGX25001020914\",\r\n            \"EDIT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"BATCH\": \"2412160004\",\r\n            \"BSART\": \"QH00\",\r\n            \"RECEIPT_NO\": \"XASHGX25001000923\",\r\n            \"RECEIPT_ITEM_NO\": \"1\",\r\n            \"MATNR\": \"12825222-00\",\r\n            \"LABEL_LEVEL\": \"1\",\r\n            \"MAKTX\": \"胶袋_1000×110×0.02mm_HDPE_短边开口_透明_防静电_无印刷\",\r\n            \"LIKTX\": \"深圳市龙共实业有限公司\",\r\n            \"UNIT\": \"PCS\",\r\n            \"SOBKZ\": \"Z\",\r\n            \"LABEL_STATUS\": \"01\",\r\n            \"QC_PEOPLE\": \"\",\r\n            \"BOX_QTY\": 10,\r\n            \"INSPECTION_ITEM_NO\": \"1\",\r\n            \"CREATE_DATE\": \"2024-12-16 15:10:16\",\r\n            \"QC_DATE\": \"\",\r\n            \"RECEIPT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"LIFNR\": \"106247\",\r\n            \"PO_ITEM_NO\": \"00010\",\r\n            \"INSPECTION_NO\": \"XASJGX25001000720\"\r\n        },\r\n        {\r\n            \"WH_NUMBER\": \"GX25\",\r\n            \"WERKS\": \"GX25\",\r\n            \"PSTYP\": \"0\",\r\n            \"PO_NO\": \"5907427563\",\r\n            \"PRODUCT_DATE\": \"2024-12-16\",\r\n            \"EFFECT_DATE\": \"2025-06-17\",\r\n            \"LABEL_NO\": \"XAGX25001020913\",\r\n            \"EDIT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"BATCH\": \"2412160004\",\r\n            \"BSART\": \"QH00\",\r\n            \"RECEIPT_NO\": \"XASHGX25001000923\",\r\n            \"RECEIPT_ITEM_NO\": \"1\",\r\n            \"MATNR\": \"12825222-00\",\r\n            \"LABEL_LEVEL\": \"1\",\r\n            \"MAKTX\": \"胶袋_1000×110×0.02mm_HDPE_短边开口_透明_防静电_无印刷\",\r\n            \"LIKTX\": \"深圳市龙共实业有限公司\",\r\n            \"UNIT\": \"PCS\",\r\n            \"SOBKZ\": \"Z\",\r\n            \"LABEL_STATUS\": \"01\",\r\n            \"QC_PEOPLE\": \"\",\r\n            \"BOX_QTY\": 10,\r\n            \"INSPECTION_ITEM_NO\": \"1\",\r\n            \"CREATE_DATE\": \"2024-12-16 15:10:16\",\r\n            \"QC_DATE\": \"\",\r\n            \"RECEIPT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"LIFNR\": \"106247\",\r\n            \"PO_ITEM_NO\": \"00010\",\r\n            \"INSPECTION_NO\": \"XASJGX25001000720\"\r\n        },\r\n        {\r\n            \"WH_NUMBER\": \"GX25\",\r\n            \"WERKS\": \"GX25\",\r\n            \"PSTYP\": \"0\",\r\n            \"PO_NO\": \"5907427563\",\r\n            \"PRODUCT_DATE\": \"2024-12-16\",\r\n            \"EFFECT_DATE\": \"2025-06-17\",\r\n            \"LABEL_NO\": \"XAGX25001020912\",\r\n            \"EDIT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"BATCH\": \"2412160004\",\r\n            \"BSART\": \"QH00\",\r\n            \"RECEIPT_NO\": \"XASHGX25001000923\",\r\n            \"RECEIPT_ITEM_NO\": \"1\",\r\n            \"MATNR\": \"12825222-00\",\r\n            \"LABEL_LEVEL\": \"1\",\r\n            \"MAKTX\": \"胶袋_1000×110×0.02mm_HDPE_短边开口_透明_防静电_无印刷\",\r\n            \"LIKTX\": \"深圳市龙共实业有限公司\",\r\n            \"UNIT\": \"PCS\",\r\n            \"SOBKZ\": \"Z\",\r\n            \"LABEL_STATUS\": \"01\",\r\n            \"QC_PEOPLE\": \"\",\r\n            \"BOX_QTY\": 10,\r\n            \"INSPECTION_ITEM_NO\": \"1\",\r\n            \"CREATE_DATE\": \"2024-12-16 15:10:16\",\r\n            \"QC_DATE\": \"\",\r\n            \"RECEIPT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"LIFNR\": \"106247\",\r\n            \"PO_ITEM_NO\": \"00010\",\r\n            \"INSPECTION_NO\": \"XASJGX25001000720\"\r\n        },\r\n        {\r\n            \"WH_NUMBER\": \"GX25\",\r\n            \"WERKS\": \"GX25\",\r\n            \"PSTYP\": \"0\",\r\n            \"PO_NO\": \"5907427563\",\r\n            \"PRODUCT_DATE\": \"2024-12-16\",\r\n            \"EFFECT_DATE\": \"2025-06-17\",\r\n            \"LABEL_NO\": \"XAGX25001020911\",\r\n            \"EDIT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"BATCH\": \"2412160004\",\r\n            \"BSART\": \"QH00\",\r\n            \"RECEIPT_NO\": \"XASHGX25001000923\",\r\n            \"RECEIPT_ITEM_NO\": \"1\",\r\n            \"MATNR\": \"12825222-00\",\r\n            \"LABEL_LEVEL\": \"1\",\r\n            \"MAKTX\": \"胶袋_1000×110×0.02mm_HDPE_短边开口_透明_防静电_无印刷\",\r\n            \"LIKTX\": \"深圳市龙共实业有限公司\",\r\n            \"UNIT\": \"PCS\",\r\n            \"SOBKZ\": \"Z\",\r\n            \"LABEL_STATUS\": \"01\",\r\n            \"QC_PEOPLE\": \"\",\r\n            \"BOX_QTY\": 10,\r\n            \"INSPECTION_ITEM_NO\": \"1\",\r\n            \"CREATE_DATE\": \"2024-12-16 15:10:16\",\r\n            \"QC_DATE\": \"\",\r\n            \"RECEIPT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"LIFNR\": \"106247\",\r\n            \"PO_ITEM_NO\": \"00010\",\r\n            \"INSPECTION_NO\": \"XASJGX25001000720\"\r\n        },\r\n        {\r\n            \"WH_NUMBER\": \"GX25\",\r\n            \"WERKS\": \"GX25\",\r\n            \"PSTYP\": \"0\",\r\n            \"PO_NO\": \"5907427563\",\r\n            \"PRODUCT_DATE\": \"2024-12-16\",\r\n            \"EFFECT_DATE\": \"2025-06-17\",\r\n            \"LABEL_NO\": \"XAGX25001020910\",\r\n            \"EDIT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"BATCH\": \"2412160004\",\r\n            \"BSART\": \"QH00\",\r\n            \"RECEIPT_NO\": \"XASHGX25001000923\",\r\n            \"RECEIPT_ITEM_NO\": \"1\",\r\n            \"MATNR\": \"12825222-00\",\r\n            \"LABEL_LEVEL\": \"1\",\r\n            \"MAKTX\": \"胶袋_1000×110×0.02mm_HDPE_短边开口_透明_防静电_无印刷\",\r\n            \"LIKTX\": \"深圳市龙共实业有限公司\",\r\n            \"UNIT\": \"PCS\",\r\n            \"SOBKZ\": \"Z\",\r\n            \"LABEL_STATUS\": \"01\",\r\n            \"QC_PEOPLE\": \"\",\r\n            \"BOX_QTY\": 10,\r\n            \"INSPECTION_ITEM_NO\": \"1\",\r\n            \"CREATE_DATE\": \"2024-12-16 15:10:16\",\r\n            \"QC_DATE\": \"\",\r\n            \"RECEIPT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"LIFNR\": \"106247\",\r\n            \"PO_ITEM_NO\": \"00010\",\r\n            \"INSPECTION_NO\": \"XASJGX25001000720\"\r\n        },\r\n        {\r\n            \"WH_NUMBER\": \"GX25\",\r\n            \"WERKS\": \"GX25\",\r\n            \"PSTYP\": \"0\",\r\n            \"PO_NO\": \"5907427563\",\r\n            \"PRODUCT_DATE\": \"2024-12-16\",\r\n            \"EFFECT_DATE\": \"2025-06-17\",\r\n            \"LABEL_NO\": \"XAGX25001020909\",\r\n            \"EDIT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"BATCH\": \"2412160004\",\r\n            \"BSART\": \"QH00\",\r\n            \"RECEIPT_NO\": \"XASHGX25001000923\",\r\n            \"RECEIPT_ITEM_NO\": \"1\",\r\n            \"MATNR\": \"12825222-00\",\r\n            \"LABEL_LEVEL\": \"1\",\r\n            \"MAKTX\": \"胶袋_1000×110×0.02mm_HDPE_短边开口_透明_防静电_无印刷\",\r\n            \"LIKTX\": \"深圳市龙共实业有限公司\",\r\n            \"UNIT\": \"PCS\",\r\n            \"SOBKZ\": \"Z\",\r\n            \"LABEL_STATUS\": \"01\",\r\n            \"QC_PEOPLE\": \"\",\r\n            \"BOX_QTY\": 10,\r\n            \"INSPECTION_ITEM_NO\": \"1\",\r\n            \"CREATE_DATE\": \"2024-12-16 15:10:16\",\r\n            \"QC_DATE\": \"\",\r\n            \"RECEIPT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"LIFNR\": \"106247\",\r\n            \"PO_ITEM_NO\": \"00010\",\r\n            \"INSPECTION_NO\": \"XASJGX25001000720\"\r\n        },\r\n        {\r\n            \"WH_NUMBER\": \"GX25\",\r\n            \"WERKS\": \"GX25\",\r\n            \"PSTYP\": \"0\",\r\n            \"PO_NO\": \"5907427563\",\r\n            \"PRODUCT_DATE\": \"2024-12-16\",\r\n            \"EFFECT_DATE\": \"2025-06-17\",\r\n            \"LABEL_NO\": \"XAGX25001020908\",\r\n            \"EDIT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"BATCH\": \"2412160004\",\r\n            \"BSART\": \"QH00\",\r\n            \"RECEIPT_NO\": \"XASHGX25001000923\",\r\n            \"RECEIPT_ITEM_NO\": \"1\",\r\n            \"MATNR\": \"12825222-00\",\r\n            \"LABEL_LEVEL\": \"1\",\r\n            \"MAKTX\": \"胶袋_1000×110×0.02mm_HDPE_短边开口_透明_防静电_无印刷\",\r\n            \"LIKTX\": \"深圳市龙共实业有限公司\",\r\n            \"UNIT\": \"PCS\",\r\n            \"SOBKZ\": \"Z\",\r\n            \"LABEL_STATUS\": \"01\",\r\n            \"QC_PEOPLE\": \"\",\r\n            \"BOX_QTY\": 10,\r\n            \"INSPECTION_ITEM_NO\": \"1\",\r\n            \"CREATE_DATE\": \"2024-12-16 15:10:16\",\r\n            \"QC_DATE\": \"\",\r\n            \"RECEIPT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"LIFNR\": \"106247\",\r\n            \"PO_ITEM_NO\": \"00010\",\r\n            \"INSPECTION_NO\": \"XASJGX25001000720\"\r\n        },\r\n        {\r\n            \"WH_NUMBER\": \"GX25\",\r\n            \"WERKS\": \"GX25\",\r\n            \"PSTYP\": \"0\",\r\n            \"PO_NO\": \"5907427563\",\r\n            \"PRODUCT_DATE\": \"2024-12-16\",\r\n            \"EFFECT_DATE\": \"2025-06-17\",\r\n            \"LABEL_NO\": \"XAGX25001020907\",\r\n            \"EDIT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"BATCH\": \"2412160004\",\r\n            \"BSART\": \"QH00\",\r\n            \"RECEIPT_NO\": \"XASHGX25001000923\",\r\n            \"RECEIPT_ITEM_NO\": \"1\",\r\n            \"MATNR\": \"12825222-00\",\r\n            \"LABEL_LEVEL\": \"1\",\r\n            \"MAKTX\": \"胶袋_1000×110×0.02mm_HDPE_短边开口_透明_防静电_无印刷\",\r\n            \"LIKTX\": \"深圳市龙共实业有限公司\",\r\n            \"UNIT\": \"PCS\",\r\n            \"SOBKZ\": \"Z\",\r\n            \"LABEL_STATUS\": \"01\",\r\n            \"QC_PEOPLE\": \"\",\r\n            \"BOX_QTY\": 10,\r\n            \"INSPECTION_ITEM_NO\": \"1\",\r\n            \"CREATE_DATE\": \"2024-12-16 15:10:16\",\r\n            \"QC_DATE\": \"\",\r\n            \"RECEIPT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"LIFNR\": \"106247\",\r\n            \"PO_ITEM_NO\": \"00010\",\r\n            \"INSPECTION_NO\": \"XASJGX25001000720\"\r\n        },\r\n        {\r\n            \"WH_NUMBER\": \"GX25\",\r\n            \"WERKS\": \"GX25\",\r\n            \"PSTYP\": \"0\",\r\n            \"PO_NO\": \"5907427563\",\r\n            \"PRODUCT_DATE\": \"2024-12-16\",\r\n            \"EFFECT_DATE\": \"2025-06-17\",\r\n            \"LABEL_NO\": \"XAGX25001020906\",\r\n            \"EDIT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"BATCH\": \"2412160004\",\r\n            \"BSART\": \"QH00\",\r\n            \"RECEIPT_NO\": \"XASHGX25001000923\",\r\n            \"RECEIPT_ITEM_NO\": \"1\",\r\n            \"MATNR\": \"12825222-00\",\r\n            \"LABEL_LEVEL\": \"1\",\r\n            \"MAKTX\": \"胶袋_1000×110×0.02mm_HDPE_短边开口_透明_防静电_无印刷\",\r\n            \"LIKTX\": \"深圳市龙共实业有限公司\",\r\n            \"UNIT\": \"PCS\",\r\n            \"SOBKZ\": \"Z\",\r\n            \"LABEL_STATUS\": \"01\",\r\n            \"QC_PEOPLE\": \"\",\r\n            \"BOX_QTY\": 10,\r\n            \"INSPECTION_ITEM_NO\": \"1\",\r\n            \"CREATE_DATE\": \"2024-12-16 15:10:16\",\r\n            \"QC_DATE\": \"\",\r\n            \"RECEIPT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"LIFNR\": \"106247\",\r\n            \"PO_ITEM_NO\": \"00010\",\r\n            \"INSPECTION_NO\": \"XASJGX25001000720\"\r\n        },\r\n        {\r\n            \"WH_NUMBER\": \"GX25\",\r\n            \"WERKS\": \"GX25\",\r\n            \"PSTYP\": \"0\",\r\n            \"PO_NO\": \"5907427563\",\r\n            \"PRODUCT_DATE\": \"2024-12-16\",\r\n            \"EFFECT_DATE\": \"2025-06-17\",\r\n            \"LABEL_NO\": \"XAGX25001020905\",\r\n            \"EDIT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"BATCH\": \"2412160004\",\r\n            \"BSART\": \"QH00\",\r\n            \"RECEIPT_NO\": \"XASHGX25001000923\",\r\n            \"RECEIPT_ITEM_NO\": \"1\",\r\n            \"MATNR\": \"12825222-00\",\r\n            \"LABEL_LEVEL\": \"1\",\r\n            \"MAKTX\": \"胶袋_1000×110×0.02mm_HDPE_短边开口_透明_防静电_无印刷\",\r\n            \"LIKTX\": \"深圳市龙共实业有限公司\",\r\n            \"UNIT\": \"PCS\",\r\n            \"SOBKZ\": \"Z\",\r\n            \"LABEL_STATUS\": \"01\",\r\n            \"QC_PEOPLE\": \"\",\r\n            \"BOX_QTY\": 10,\r\n            \"INSPECTION_ITEM_NO\": \"1\",\r\n            \"CREATE_DATE\": \"2024-12-16 15:10:16\",\r\n            \"QC_DATE\": \"\",\r\n            \"RECEIPT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"LIFNR\": \"106247\",\r\n            \"PO_ITEM_NO\": \"00010\",\r\n            \"INSPECTION_NO\": \"XASJGX25001000720\"\r\n        }\r\n    ],\r\n    \"success\": true\r\n}";
                if (response != null)
                {
                    var startRes = SrartScheduler();
                    if (startRes.Status)
                    {
                       return webResponse.OK("服务启动成功!");
                    }
                    else
                    getLabelMasterReponse responsetest = JsonConvert.DeserializeObject<getLabelMasterReponse>(response);
                    if (responsetest != null && responsetest.data.Count() > 0)
                    {
                        //调度启动失败,关闭全部
                        WriteLog.Write_Log("服务", "服务", "启动服务\n[调度异常]" + startRes.Message);
                        return startRes;
                        foreach (var item in responsetest.data)
                        {
                            //查询本地是否存在
                           Dt_LabelMaster labMaster =  _labelMasterRepository.QueryFirst(x=>x.LABEL_NO == item.LABEL_NO);
                            if (labMaster != null)//更新状态
                            {
                                labMaster.LABEL_STATUS = item.LABEL_STATUS;
                                _labelMasterRepository.UpdateData(labMaster);
                            }
                            else
                            {
                                _labelMasterRepository.AddData(item);
                            }
                        }
                        content = WebResponseContent.Instance.OK("同步条码主数据成功");
                    }
                }
                else
                {
                    return webResponse.Error("请勿重复启动!");
                }
            }
            catch (Exception ex)
            {
                WriteLog.Write_Log("服务", "服务", "启动服务\n[异常]" + ex.Message);
                return webResponse.Error($"异常,{ex.Message}");
                content = WebResponseContent.Instance.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// æ ¹æ®æ¡ç èŽ·å–æ¡ç å…¥åº“ä¸»æ•°æ®
        /// </summary>
        /// <returns></returns>
        public WebResponseContent GetLabMaster(string barcode)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                LabelServiceReference.LabelWebServiceClient lableClient = new LabelServiceReference.LabelWebServiceClient();
                getLabelMasterRequest lab = new getLabelMasterRequest();
                lab.WERKS = AppSettings.Configuration["WERKS"];
                lab.SYSNO = AppSettings.Configuration["SYSNO"];
                lab.BATCH = "";
                lab.LABEL_NO = barcode;
                string inparam = "[" + JsonConvert.SerializeObject(lab) + "]";
                //string response = lableClient.getLabelMaster(inparam);
                string response = "{\r\n    \"msg\": \"传输成功!\",\r\n    \"data\": [\r\n        {\r\n            \"WH_NUMBER\": \"GX25\",\r\n            \"WERKS\": \"GX25\",\r\n            \"PSTYP\": \"0\",\r\n            \"PO_NO\": \"5907427563\",\r\n            \"PRODUCT_DATE\": \"2024-12-16\",\r\n            \"EFFECT_DATE\": \"2025-06-17\",\r\n            \"LABEL_NO\": \"XAGX25001020914\",\r\n            \"EDIT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"BATCH\": \"2412160004\",\r\n            \"BSART\": \"QH00\",\r\n            \"RECEIPT_NO\": \"XASHGX25001000923\",\r\n            \"RECEIPT_ITEM_NO\": \"1\",\r\n            \"MATNR\": \"12825222-00\",\r\n            \"LABEL_LEVEL\": \"1\",\r\n            \"MAKTX\": \"胶袋_1000×110×0.02mm_HDPE_短边开口_透明_防静电_无印刷\",\r\n            \"LIKTX\": \"深圳市龙共实业有限公司\",\r\n            \"UNIT\": \"PCS\",\r\n            \"SOBKZ\": \"Z\",\r\n            \"LABEL_STATUS\": \"01\",\r\n            \"QC_PEOPLE\": \"\",\r\n            \"BOX_QTY\": 10,\r\n            \"INSPECTION_ITEM_NO\": \"1\",\r\n            \"CREATE_DATE\": \"2024-12-16 15:10:16\",\r\n            \"QC_DATE\": \"\",\r\n            \"RECEIPT_DATE\": \"2024-12-16 15:11:27\",\r\n            \"LIFNR\": \"106247\",\r\n            \"PO_ITEM_NO\": \"00010\",\r\n            \"INSPECTION_NO\": \"XASJGX25001000720\"\r\n        }\r\n    ],\r\n    \"success\": true\r\n}";
                if (response != null)
                {
                    getLabelMasterReponse responsetest = JsonConvert.DeserializeObject<getLabelMasterReponse>(response);
                    if (responsetest != null && responsetest.data.Count() > 0)
                    {
                        foreach (var item in responsetest.data)
                        {
                            //查询本地是否存在
                            Dt_LabelMaster labMaster = _labelMasterRepository.QueryFirst(x => x.LABEL_NO == item.LABEL_NO);
                            if (labMaster != null)//更新状态
                            {
                                labMaster.LABEL_STATUS = item.LABEL_STATUS;
                                _labelMasterRepository.UpdateData(labMaster);
                            }
                            else
                            {
                                _labelMasterRepository.AddData(item);
                            }
                            content = WebResponseContent.Instance.OK("获取条码主数据成功", item);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                content = WebResponseContent.Instance.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// åŽŸææ–™ä¸Šæž¶æŽ¥å£ï¼Œå…¥åº“å›žä¼ 
        /// </summary>
        /// <returns></returns>
        public WebResponseContent CallPutAway(PutAwayRequest putAway)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                LikuServiceReference.WmsStereoWhServiceClient likuClient = new LikuServiceReference.WmsStereoWhServiceClient();
                string inparam = JsonConvert.SerializeObject(putAway);
                string response = likuClient.putaway(inparam);
                if (response != null)
                {
                    PutAwayResponse res = JsonConvert.DeserializeObject<PutAwayResponse>(response);
                    if(res!=null&&res.MSGTX=="S")
                    {
                        content = WebResponseContent.Instance.OK("上架回传成功!");
                    }
                }
            }
            catch (Exception ex)
            {
                content = WebResponseContent.Instance.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// ä½™æ–™å›žåº“结果回传
        /// </summary>
        /// <returns></returns>
        public WebResponseContent CallPutAwayReturn(PutAwayReturnRequest putAwayReturn)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                LikuServiceReference.WmsStereoWhServiceClient likuClient = new LikuServiceReference.WmsStereoWhServiceClient();
                string inparam = JsonConvert.SerializeObject(putAwayReturn);
                string response = likuClient.putAwayReturn(inparam);
                if (response != null)
                {
                    PutAwayReturnResponse res = JsonConvert.DeserializeObject<PutAwayReturnResponse>(response);
                    if (res != null && res.MSGTX == "S")
                    {
                        content = WebResponseContent.Instance.OK("余料回库回传成功!");
                    }
                }
            }
            catch (Exception ex)
            {
                content = WebResponseContent.Instance.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// å¯åŠ¨è°ƒåº¦
        /// æ¯”亚迪WMS出库单指令获取
        /// </summary>
        private WebResponseContent SrartScheduler()
        /// <returns></returns>
        public WebResponseContent SelectOutStoreOrder()
        {
            WebResponseContent webResponse = new WebResponseContent();
            var jobs = BaseDal.QueryData();
            WebResponseContent content = new WebResponseContent();
            try
            {
                foreach (var job in jobs)
                StereoServiceReference.WhStereoWebServiceClient client = new StereoServiceReference.WhStereoWebServiceClient();
                SelectOutStoreOrderRequest outStoreOrder = new SelectOutStoreOrderRequest();
                outStoreOrder.WERKS = AppSettings.Configuration["WERKS"];
                outStoreOrder.WH_NUMBER = AppSettings.Configuration["SYSNO"];
                string inparam = JsonConvert.SerializeObject(outStoreOrder);
                //string response = client.selectOutStoreOrder(inparam);
                string response = "{\r\n    \"MSGTY\": \"S\",\r\n    \"DATA\": \"[{REQUIREMENT_NO=XAXQGX25012005354, WERKS=GX25, WH_NUMBER=null, SYSNOD=G30, BUSINESS_CODE=00, BUSINESS_NAME=47, LGORT=0030, STATION=null, MO_NO=null, SAP_OUT_NO=null, RECEIVE_LGORT=W001, OVERSTEP_REQ_FLAG=0, SPLIT=null, STATUS=01, CREATE_PERSON=66694:宋子超, CREATE_DATE=2024-12-18 11:36:17, ITEMS=[{REQUIREMENT_ITEM_NO=1, MATNR=12825222-00, BATCH=null, QTY=10.0, GEAR=null, PI_NO=null, LABELS=[]}]}, {REQUIREMENT_NO=XAXQGX25012005353, WERKS=GX25, WH_NUMBER=null, SYSNOD=G30, BUSINESS_CODE=00, BUSINESS_NAME=47, LGORT=0030, STATION=null, MO_NO=null, SAP_OUT_NO=null, RECEIVE_LGORT=W001, OVERSTEP_REQ_FLAG=0, SPLIT=null, STATUS=01, CREATE_PERSON=66694:宋子超, CREATE_DATE=2024-12-18 11:35:22, ITEMS=[{REQUIREMENT_ITEM_NO=1, MATNR=12825222-00, BATCH=null, QTY=10.0, GEAR=null, PI_NO=null, LABELS=[]}]}]\",\r\n    \"MSGTX\": \"success\"\r\n}";
                if (response != null)
                {
                    scheduler.AddJob(job);
                    SelectOutStoreOrderResponse res = JsonConvert.DeserializeObject<SelectOutStoreOrderResponse>(response);
                    if (res != null && res.MSGTY == "S"&&!string.IsNullOrEmpty(res.DATA))
                    {
                        string data = stringToJson(res.DATA);
                        string newdata = data.Replace("},\"", "},").Replace("\" ", "\"");
                        List<OutStoreData> outStoreList = JsonConvert.DeserializeObject<List<OutStoreData>>(newdata);
                        foreach (var item in outStoreList)
                        {
                            Dt_OutBoundOrderBYD outBoundOrderBYD = new Dt_OutBoundOrderBYD();
                            outBoundOrderBYD.REQUIREMENT_NO = item.REQUIREMENT_NO;
                            outBoundOrderBYD.WRKS = item.WERKS;
                            outBoundOrderBYD.WH_NUMBER = item.WH_NUMBER;
                            outBoundOrderBYD.SYSNOD = item.SYSNOD;
                            outBoundOrderBYD.BUSINESS_CODE = item.BUSINESS_CODE;
                            outBoundOrderBYD.BUSINESS_NAME = item.BUSINESS_NAME;
                            outBoundOrderBYD.LGORT=item.LGORT;
                            outBoundOrderBYD.STATION=item.STATION;
                            outBoundOrderBYD.MO_NO = item.MO_NO;
                            outBoundOrderBYD.SAP_OUT_NO = item.SAP_OUT_NO;
                            outBoundOrderBYD.RECEIVE_LGORT = item.RECEIVE_LGORT;
                            outBoundOrderBYD.OVERSTEP_REQ_FLAG = item.OVERSTEP_REQ_FLAG;
                            outBoundOrderBYD.SPLIT=item.SPLIT;
                            outBoundOrderBYD.STATUS=item.STATUS;
                            outBoundOrderBYD.CREATE_PERSON=item.CREATE_PERSON;
                            outBoundOrderBYD.CREATE_DATE=item.CREATE_DATE;
                            _outBoundOrderBYDRepository.AddData(outBoundOrderBYD);
                            foreach (var detail in item.ITEMS)
                            {
                                Dt_OutboundOrderDetailBYD outboundOrderDetailBYD = new Dt_OutboundOrderDetailBYD();
                                outboundOrderDetailBYD.REQUIREMENT_NO = outBoundOrderBYD.REQUIREMENT_NO;
                                outboundOrderDetailBYD.REQUIREMENT_ITEM_NO = detail.REQUIREMENT_ITEM_NO;
                                outboundOrderDetailBYD.MATNR=detail.MATNR;
                                outboundOrderDetailBYD.BATCH=detail.BATCH;
                                outboundOrderDetailBYD.QTY=detail.QTY;
                                outboundOrderDetailBYD.GEAR=detail.GEAR;
                                outboundOrderDetailBYD.PI_NO=detail.PI_NO;
                                _outboundOrderDetailByDRepository.AddData(outboundOrderDetailBYD);
                                foreach (var label in detail.LABELS)
                                {
                                    if (label != null)
                                    {
                                        Dt_OutboundOrderDetail_LabelsBYD outboundOrderDetail_LabelsBYD = new Dt_OutboundOrderDetail_LabelsBYD();
                                        outboundOrderDetail_LabelsBYD.LABEL_NO = label.LABLEL_NO;
                                        outboundOrderDetail_LabelsBYD.CONTENT_LABEL_NO = label.CONTENT_LABLEL_NO;
                                        outboundOrderDetail_LabelsBYD.REQUIREMENT_NO = item.REQUIREMENT_NO;
                                        outboundOrderDetail_LabelsBYD.REQUIREMENT_ITEM_NO = detail.REQUIREMENT_ITEM_NO;
                                        _outboundOrderDetailLabelsByDRepository.AddData(outboundOrderDetail_LabelsBYD);
                                    }
                                }
                            }
                        }
                        content = WebResponseContent.Instance.OK();
                    }
                }
                scheduler.Start();
            }
            catch (Exception ex)
            {
                return webResponse.Error(ex.Message);
                content = WebResponseContent.Instance.Error(ex.Message);
            }
            Console.WriteLine("服务启动成功!");
            return webResponse.OK();
            return content;
        }
        public WebResponseContent CloseServe()
        /// <summary>
        /// å‡ºåº“完成信息接口,出库回传
        /// </summary>
        /// <returns></returns>
        public WebResponseContent CallPickAndPost(PickAndPostRequest pickAndPost)
        {
            WebResponseContent webResponse = new WebResponseContent();
            WebResponseContent content = new WebResponseContent();
            try
            {
                scheduler.Shutdown();
                Console.WriteLine("服务关闭成功!");
                WriteLog.Write_Log("服务", "服务", "服务关闭成功!");
                StereoServiceReference.WhStereoWebServiceClient client = new StereoServiceReference.WhStereoWebServiceClient();
                string inparam = JsonConvert.SerializeObject(pickAndPost);
                string response = client.pickAndPost(inparam);
                if (response != null)
                {
                    PickAndPostResponse res = JsonConvert.DeserializeObject<PickAndPostResponse>(response);
                    if (res != null && res.MSGTX == "S")
                    {
                        content = WebResponseContent.Instance.OK("出库回传成功!");
                    }
                }
            }
            catch (Exception ex)
            {
                WriteLog.Write_Log("服务", "服务", "关闭服务\n[异常]" + ex.Message);
                content = WebResponseContent.Instance.Error(ex.Message);
            }
            return webResponse.OK("服务关闭成功!");
            return content;
        }
        /// <summary>
        /// ç«‹åº“退回信息接口,供上游系统调用,立库生成退货任务
        /// </summary>
        /// <returns></returns>
        public ReturnInventoryResponse returnInventory(ReturnInventoryRequest inventoryRequest)
        {
            ReturnInventoryResponse returnInventoryResponse = new ReturnInventoryResponse();
            try
            {
                //todo:WMS生成退货任务
            }
            catch (Exception)
            {
            }
            return returnInventoryResponse;
        }
        /// <summary>
        /// ç«‹åº“WMS库存信息接口,供上游系统调用
        /// </summary>
        /// <param name="inventoryQueryRequest"></param>
        /// <returns></returns>
        public InventoryQueryResponse  InventoryQuery(InventoryQueryRequest inventoryQueryRequest)
        {
            InventoryQueryResponse inventoryQueryResponse = new InventoryQueryResponse();
            try
            {
                //todo:WMS查询实时库存
            }
            catch (Exception)
            {
            }
            return inventoryQueryResponse;
        }
        /// <summary>
        /// ç«‹åº“WMS冻结/解冻信息接口,供上游系统调用
        /// </summary>
        /// <param name="freezeByCustomerResponse"></param>
        /// <returns></returns>
        public freezeByCustomerResponse freezeByCustomer(freezeByCustomerRequest freezeRequest)
        {
            freezeByCustomerResponse freezeResponse = new freezeByCustomerResponse();
            try
            {
                //todo:WMS查询冻结解冻信息
            }
            catch (Exception)
            {
            }
            return freezeResponse;
        }
        public String stringToJson(String message)
        {
            String result = "";
            //替换=为":"
            if (message.Contains("="))
            {
                message = message.Replace("=", "\":\"");
            }
            //替换{为{"
            if (message.Contains("{"))
            {
                message = message.Replace("{", "{\"");
            }
            //替换}为"}
            if (message.Contains("}"))
            {
                message = message.Replace("}", "\"}");
            }
            //替换[为["
            if (message.Contains("["))
            {
                message = message.Replace("[", "[\"");
            }
            //替换]为"]
            if (message.Contains("]"))
            {
                message = message.Replace("]", "\"]");
            }
            //替换,为","
            if (message.Contains(","))
            {
                message = message.Replace(",", "\",\"");
            }
            //替换"[为[
            if (message.Contains("\"["))
            {
                message = message.Replace("\"[", "[");
            }
            //替换]"为]
            if (message.Contains("]\""))
            {
                message = message.Replace("]\"", "]");
            }
            //替换"{为{
            if (message.Contains("\"{"))
            {
                message = message.Replace("\"{", "{");
            }
            //替换}"为}
            if (message.Contains("}\""))
            {
                message = message.Replace("}\"", "}");
            }
            result = message;
            return result;
        }
    }
}