using LikuServiceReference;
|
using LogLibrary.Log;
|
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;
|
using WIDESEA_Core;
|
using WIDESEA_Core.BaseRepository;
|
using WIDESEA_Core.BaseServices;
|
using WIDESEA_Core.Caches;
|
using WIDESEA_Core.DB;
|
using WIDESEA_Core.Enums;
|
using WIDESEA_Core.Helper;
|
using WIDESEA_Core.Log;
|
using WIDESEA_DTO.Inbound;
|
using WIDESEA_DTO.System;
|
using WIDESEA_IBasicRepository;
|
using WIDESEA_IInboundService;
|
using WIDESEA_InboundService;
|
using WIDESEA_IOutboundRepository;
|
using WIDESEA_IOutboundService;
|
using WIDESEA_ISystemRepository;
|
using WIDESEA_ISystemService;
|
using WIDESEA_Model;
|
using WIDESEA_Model.Models;
|
using WIDESEA_Model.Models.System.Reponse;
|
using WIDESEA_Model.Models.System.Request;
|
using static System.Collections.Specialized.BitVector32;
|
|
namespace WIDESEA_SystemService
|
{
|
public class Sys_JobService : ServiceBase<Sys_Job, ISys_JobRepository>, ISys_JobService
|
{
|
private readonly IUnitOfWorkManage _unitOfWorkManage;
|
private readonly ICacheService _cacheService;
|
private readonly ILabelMasterRepository _labelMasterRepository;
|
private readonly IOutBoundOrderBYDRepository _outBoundOrderBYDRepository;
|
private readonly IOutboundOrderDetailBYDRepository _outboundOrderDetailByDRepository;
|
private readonly IOutboundOrderDetail_LabelsBYDRepository _outboundOrderDetailLabelsByDRepository;
|
private readonly IOutboundOrderDetailRepository _outboundOrderDetailRepository;
|
private readonly IOutboundOrderRepository _outboundOrderRepository;
|
private readonly IInboundService _inboundService;
|
|
public Sys_JobService(ISys_JobRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService,ILabelMasterRepository labelMasterRepository, IOutBoundOrderBYDRepository outBoundOrderBYDRepository, IOutboundOrderDetailBYDRepository outboundOrderDetailByDRepository, IOutboundOrderDetail_LabelsBYDRepository outboundOrderDetailLabelsByDRepository, IOutboundOrderDetailRepository outboundOrderDetailRepository, IOutboundOrderRepository outboundOrderRepository) : base(BaseDal)
|
{
|
_unitOfWorkManage = unitOfWorkManage;
|
_cacheService = cacheService;
|
_labelMasterRepository = labelMasterRepository;
|
_outBoundOrderBYDRepository = outBoundOrderBYDRepository;
|
_outboundOrderDetailByDRepository = outboundOrderDetailByDRepository;
|
_outboundOrderDetailLabelsByDRepository = outboundOrderDetailLabelsByDRepository;
|
_outboundOrderRepository = outboundOrderRepository;
|
_outboundOrderDetailRepository = outboundOrderDetailRepository;
|
|
|
}
|
|
/// <summary>
|
/// 同步条码主数据
|
/// </summary>
|
/// <returns></returns>
|
public WebResponseContent SyncLabMaster()
|
{
|
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 = "";
|
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)
|
{
|
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("同步条码主数据成功");
|
}
|
}
|
|
}
|
catch (Exception ex)
|
{
|
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);
|
}
|
}
|
else
|
{
|
content = WebResponseContent.Instance.Error("根据条码同步条码主数据失败");
|
}
|
}
|
|
}
|
catch (Exception ex)
|
{
|
content = WebResponseContent.Instance.Error(ex.Message);
|
}
|
return content;
|
}
|
|
/// <summary>
|
/// 原材料上架接口,入库回传 LABEL _STATUS 条码状态 02已收料(无需质检)03 待进仓(已质检),并且,QC RESULT CODE质检状态为“02”
|
/// </summary>
|
/// <returns></returns>
|
public WebResponseContent CallPutAway(PutAwayRequest putAway)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
LikuServiceReference.WmsStereoWhServiceClient likuClient = new LikuServiceReference.WmsStereoWhServiceClient();
|
|
string inparam = JsonConvert.SerializeObject(putAway);
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPutAway", "请求", $"{inparam}");
|
string response = likuClient.putaway(inparam);
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPutAway", "响应", $"{response}");
|
if (response != null)
|
{
|
PutAwayResponse res = JsonConvert.DeserializeObject<PutAwayResponse>(response);
|
if (res != null && res.MSGTX == "S")
|
{
|
content = WebResponseContent.Instance.OK("上架回传成功");
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPutAway", "响应", $"上架回传成功!");
|
}
|
else
|
{
|
content = WebResponseContent.Instance.Error("上架回传失败");
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPutAway", "响应", $"上架回传失败!");
|
}
|
|
|
}
|
|
}
|
catch (Exception ex)
|
{
|
content = WebResponseContent.Instance.Error(ex.Message);
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPutAway", "异常", $"{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);
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPutAwayReturn", "请求", $"{inparam}");
|
string response = likuClient.putAwayReturn(inparam);
|
if (response != null)
|
{
|
PutAwayReturnResponse res = JsonConvert.DeserializeObject<PutAwayReturnResponse>(response);
|
if (res != null && res.MSGTX == "S")
|
{
|
content = WebResponseContent.Instance.OK("上架回传成功!");
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPutAwayReturn", "响应", $"上架回传成功!");
|
}
|
else
|
{
|
content = WebResponseContent.Instance.Error("上架回传失败!");
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPutAwayReturn", "响应", $"上架回传失败!");
|
}
|
}
|
|
}
|
catch (Exception ex)
|
{
|
content = WebResponseContent.Instance.Error(ex.Message);
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPutAwayReturn", "异常", $"{ex.Message}");
|
}
|
return content;
|
|
}
|
|
/// <summary>
|
/// 比亚迪WMS出库单指令获取
|
/// </summary>
|
/// <returns></returns>
|
public WebResponseContent SelectOutStoreOrder()
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
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)
|
{
|
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 bydOrder = _outBoundOrderBYDRepository.QueryFirst(x => x.REQUIREMENT_NO == item.REQUIREMENT_NO);
|
if (bydOrder != null)//更新
|
{
|
|
bydOrder.REQUIREMENT_NO = item.REQUIREMENT_NO;
|
bydOrder.WRKS = item.WERKS;
|
bydOrder.WH_NUMBER = item.WH_NUMBER;
|
bydOrder.SYSNOD = item.SYSNOD;
|
bydOrder.BUSINESS_CODE = item.BUSINESS_CODE;
|
bydOrder.BUSINESS_NAME = item.BUSINESS_NAME;
|
bydOrder.LGORT = item.LGORT;
|
bydOrder.STATION = item.STATION;
|
bydOrder.MO_NO = item.MO_NO;
|
bydOrder.SAP_OUT_NO = item.SAP_OUT_NO;
|
bydOrder.RECEIVE_LGORT = item.RECEIVE_LGORT;
|
bydOrder.OVERSTEP_REQ_FLAG = item.OVERSTEP_REQ_FLAG;
|
bydOrder.SPLIT = item.SPLIT;
|
bydOrder.STATUS = item.STATUS;
|
bydOrder.CREATE_PERSON = item.CREATE_PERSON;
|
bydOrder.CREATE_DATE = item.CREATE_DATE;
|
_outBoundOrderBYDRepository.UpdateData(bydOrder);
|
foreach (var detail in item.ITEMS)
|
{
|
Dt_OutboundOrderDetailBYD byddetail = _outboundOrderDetailByDRepository.QueryFirst(x => x.REQUIREMENT_NO == item.REQUIREMENT_NO && x.REQUIREMENT_ITEM_NO == detail.REQUIREMENT_ITEM_NO);
|
if (byddetail != null)
|
{
|
byddetail.REQUIREMENT_NO = item.REQUIREMENT_NO;
|
byddetail.REQUIREMENT_ITEM_NO = detail.REQUIREMENT_ITEM_NO;
|
byddetail.MATNR = detail.MATNR;
|
byddetail.BATCH = detail.BATCH;
|
byddetail.BATCH = detail.BATCH;
|
byddetail.QTY = detail.QTY;
|
byddetail.GEAR = detail.GEAR;
|
byddetail.PI_NO = detail.PI_NO;
|
_outboundOrderDetailByDRepository.UpdateData(byddetail);
|
}
|
else
|
{
|
Dt_OutboundOrderDetailBYD newdetail = new Dt_OutboundOrderDetailBYD();
|
newdetail.REQUIREMENT_NO = item.REQUIREMENT_NO;
|
newdetail.REQUIREMENT_ITEM_NO = detail.REQUIREMENT_ITEM_NO;
|
newdetail.MATNR = detail.MATNR;
|
newdetail.BATCH = detail.BATCH;
|
newdetail.BATCH = detail.BATCH;
|
newdetail.QTY = detail.QTY;
|
newdetail.GEAR = detail.GEAR;
|
newdetail.PI_NO = detail.PI_NO;
|
_outboundOrderDetailByDRepository.AddData(newdetail);
|
}
|
|
}
|
|
|
}
|
else
|
{
|
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);
|
}
|
}
|
}
|
}
|
}
|
|
//同步到WMS出库单中
|
foreach(var item in outStoreList)
|
{
|
if (item != null)
|
{
|
Dt_OutboundOrder outOrder =_outboundOrderRepository.QueryFirst(x=>x.OrderNo==item.REQUIREMENT_NO);
|
if (outOrder != null)
|
{
|
outOrder.OrderNo = item.REQUIREMENT_NO;
|
outOrder.UpperOrderNo = "";
|
outOrder.OrderType = (int)OutOrderTypeEnum.Issue;
|
outOrder.OrderStatus = (int)OutboundStatusEnum.未开始;
|
outOrder.CreateType = (int)CreateType.UpperSystemPush;
|
outOrder.Creater = "System";
|
|
_outboundOrderRepository.UpdateData(outOrder);
|
foreach (var orderdetail in item.ITEMS)
|
{
|
Dt_OutboundOrderDetail detail = _outboundOrderDetailRepository.QueryFirst(x => x.OrderId == outOrder.Id && x.Remark == orderdetail.REQUIREMENT_ITEM_NO);
|
if (detail != null)
|
{
|
detail.OrderId = outOrder.Id;
|
detail.MaterielCode = orderdetail.MATNR;
|
detail.BatchNo = orderdetail.BATCH;
|
detail.OrderQuantity = Convert.ToDecimal(orderdetail.QTY);
|
detail.LockQuantity = 0;
|
detail.OverOutQuantity = 0;
|
detail.OrderDetailStatus = (int)OrderDetailStatusEnum.New;
|
detail.Creater = "System";
|
detail.Remark = orderdetail.REQUIREMENT_ITEM_NO;
|
_outboundOrderDetailRepository.UpdateData(detail);
|
}
|
else
|
{
|
Dt_OutboundOrderDetail outboundOrderDetail = new Dt_OutboundOrderDetail();
|
outboundOrderDetail.OrderId = outOrder.Id;
|
outboundOrderDetail.MaterielCode = orderdetail.MATNR;
|
outboundOrderDetail.BatchNo = orderdetail.BATCH;
|
outboundOrderDetail.OrderQuantity = Convert.ToDecimal(orderdetail.QTY);
|
outboundOrderDetail.LockQuantity = 0;
|
outboundOrderDetail.OverOutQuantity = 0;
|
outboundOrderDetail.OrderDetailStatus = (int)OrderDetailStatusEnum.New;
|
outboundOrderDetail.Creater = "System";
|
outboundOrderDetail.Remark = orderdetail.REQUIREMENT_ITEM_NO;
|
_outboundOrderDetailRepository.AddData(outboundOrderDetail);
|
|
}
|
}
|
|
}
|
else
|
{
|
|
Dt_OutboundOrder outboundOrder = new Dt_OutboundOrder();
|
outboundOrder.OrderNo = item.REQUIREMENT_NO;
|
outboundOrder.UpperOrderNo = "";
|
outboundOrder.OrderType = (int)OutOrderTypeEnum.Issue;
|
outboundOrder.OrderStatus = (int)OutboundStatusEnum.未开始;
|
outboundOrder.CreateType = (int)CreateType.UpperSystemPush;
|
outboundOrder.Creater = "System";
|
_outboundOrderRepository.AddData(outboundOrder);
|
Dt_OutboundOrder outOrdertemp = _outboundOrderRepository.QueryFirst(x => x.OrderNo == item.REQUIREMENT_NO);
|
foreach (var orderdetail in item.ITEMS)
|
{
|
Dt_OutboundOrderDetail outboundOrderDetail = new Dt_OutboundOrderDetail();
|
outboundOrderDetail.OrderId = outOrdertemp.Id;
|
outboundOrderDetail.MaterielCode = orderdetail.MATNR;
|
outboundOrderDetail.BatchNo = orderdetail.BATCH;
|
outboundOrderDetail.OrderQuantity =Convert.ToDecimal(orderdetail.QTY);
|
outboundOrderDetail.LockQuantity = 0;
|
outboundOrderDetail.OverOutQuantity = 0;
|
outboundOrderDetail.OrderDetailStatus = (int)OrderDetailStatusEnum.New;
|
outboundOrderDetail.Creater="System";
|
outboundOrderDetail.Remark = orderdetail.REQUIREMENT_ITEM_NO;
|
_outboundOrderDetailRepository.AddData(outboundOrderDetail);
|
|
}
|
|
}
|
}
|
}
|
|
content = WebResponseContent.Instance.OK();
|
}
|
|
|
}
|
|
}
|
catch (Exception ex)
|
{
|
content = WebResponseContent.Instance.Error(ex.Message);
|
}
|
return content;
|
|
}
|
|
|
/// <summary>
|
/// 出库完成信息接口,出库回传
|
/// </summary>
|
/// <returns></returns>
|
public WebResponseContent CallPickAndPost(PickAndPostRequest pickAndPost)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
StereoServiceReference.WhStereoWebServiceClient client = new StereoServiceReference.WhStereoWebServiceClient();
|
|
string inparam = JsonConvert.SerializeObject(pickAndPost);
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPickAndPost", "请求", $"{inparam}");
|
string response = client.pickAndPost(inparam);
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPickAndPost", "响应", $"{response}");
|
if (response != null)
|
{
|
PickAndPostResponse res = JsonConvert.DeserializeObject<PickAndPostResponse>(response);
|
if (res != null && res.MSGTX == "S")
|
{
|
content = WebResponseContent.Instance.OK("出库回传成功!");
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPickAndPost", "响应", $"出库回传成功!");
|
}
|
}
|
else
|
{
|
content = WebResponseContent.Instance.Error("出库回传失败!");
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPickAndPost", "响应", $"出库回传失败!");
|
}
|
|
}
|
catch (Exception ex)
|
{
|
content = WebResponseContent.Instance.Error(ex.Message);
|
new LogFactory().GetLog("BYD_WMS接口").InfoFormat(true, "CallPickAndPost", "异常", $"{ex.Message}");
|
}
|
return content;
|
|
}
|
|
|
|
|
|
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;
|
}
|
|
}
|
}
|