371 lines
17 KiB
C#
371 lines
17 KiB
C#
using AutoMapper;
|
|
using BarCode.Web.Domain.Infrastructure;
|
|
using BarCode.Web.Domain.IService.Public;
|
|
using BarCode.Web.Domain.IService;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using BarCode.Web.Core.Dto.Box;
|
|
using BarCode.Web.Core.Internal.Results;
|
|
using BarCode.Web.Domain.Values;
|
|
using System.Text.RegularExpressions;
|
|
using NPOI.SS.Formula.Functions;
|
|
using System.Collections.Generic;
|
|
using Newtonsoft.Json;
|
|
using BarCode.Web.Core.Dto.SerialNumbers;
|
|
using BarCode.Web.Domain.Services.Public;
|
|
using BarCode.Web.Domain.Values.Single;
|
|
using System.ComponentModel.Design;
|
|
|
|
namespace BarCode.Web.Api.Controllers
|
|
{
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class WmsBoxController : ControllerBase
|
|
{
|
|
private readonly IBoxRepositories _boxRepositories;
|
|
private readonly IMapper _mapper;
|
|
private readonly ILoginService _loginService;
|
|
private readonly IBoxService _boxService;
|
|
private readonly ILogger<WmsBoxController> _logger;
|
|
private readonly ISerialNumbersRepositories _serialNumbersRepositories;
|
|
private readonly ISingleDataService _singleDataService;
|
|
public WmsBoxController(IMapper mapper, ILoginService loginService, IBoxRepositories boxRepositories,
|
|
IBoxService boxService, ILogger<WmsBoxController> logger,
|
|
ISerialNumbersRepositories serialNumbersRepositories, ISingleDataService singleDataService)
|
|
{
|
|
_boxRepositories = boxRepositories;
|
|
_mapper = mapper;
|
|
_loginService = loginService;
|
|
_boxService = boxService;
|
|
_logger = logger;
|
|
_serialNumbersRepositories = serialNumbersRepositories;
|
|
_singleDataService = singleDataService;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Wms获取箱信息-列表
|
|
/// </summary>
|
|
/// <param name="dto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("GetList")]
|
|
public async Task<OpsReponse> GetList(WmsBoxRequest dto)
|
|
{
|
|
_logger.LogInformation($"请求消息:{JsonConvert.SerializeObject(dto)}");
|
|
List<WmsBoxResponse> list = new List<WmsBoxResponse>();
|
|
int count = 0;
|
|
try
|
|
{
|
|
(list, count) = await _boxService.GetCartonListAsync(dto);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError($"wms系统获取箱信息异常:{ex.Message}");
|
|
return new OpsReponse()
|
|
{
|
|
succeeded = false
|
|
};
|
|
}
|
|
OpsInfo info = new OpsInfo()
|
|
{
|
|
date = JsonConvert.SerializeObject(list)
|
|
};
|
|
OpsReponse reponse = new OpsReponse()
|
|
{
|
|
succeeded = true,
|
|
data = info
|
|
};
|
|
return reponse;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Wms获取序列号信息
|
|
/// </summary>
|
|
/// <param name="dto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("GetSerialNumber")]
|
|
public async Task<Result<SerialNumbersWmsResponse>> GetSerialNumber(SerialNumbersWmsRequest dto)
|
|
{
|
|
|
|
_logger.LogInformation($"wms获取序列码:{JsonConvert.SerializeObject(dto)}");
|
|
var response = new SerialNumbersWmsResponse();
|
|
var list = new List<Domain.Entitys.SerialNumbers>();
|
|
var entity = await _serialNumbersRepositories.GetEntityWms(dto.SerialNumber);
|
|
if (entity == null) return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberNoData);
|
|
if (entity.BoxId > 0)
|
|
return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberBindBox);
|
|
if (entity.IsUse == true)
|
|
return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberIsUse);
|
|
if (entity.IsTwo > 1)
|
|
{
|
|
//把查询到的序列码修改成使用
|
|
|
|
|
|
string[] s = entity.TwoSerialNumber.Split(',');
|
|
|
|
string[] y = entity.TwoNumberCode.Split(',');
|
|
bool isNumberCode = false;
|
|
if (entity.TwoNumberCode.IndexOf(dto.SerialNumber, 0) >= 0)
|
|
{
|
|
isNumberCode = true;//说明是此次查的为数字序列号
|
|
}
|
|
|
|
if (isNumberCode)
|
|
{
|
|
for (int i = 0; i < s.Length; i++)
|
|
{
|
|
response = new SerialNumbersWmsResponse()
|
|
{
|
|
SerialNumber = y[i],//entity.SerialNumber.Equals(dto.SerialNumber) ? s[i] : sy[i],
|
|
// SerialNumber= entity.SerialNumber.Equals(dto.SerialNumber) ? entity.SerialNumber : entity.NumberCode,
|
|
MaterialNumber = entity.MaterialNumber,
|
|
CreateTime = entity.CreateTime,
|
|
Creator = _singleDataService.GetSingleData(SingleAction.Users, 1, entity.CreatorId),
|
|
IsTwo = entity.IsTwo,
|
|
// TwoSerialNumber = entity.TwoSerialNumber,
|
|
TwoSerialNumber = entity.TwoNumberCode,
|
|
TwoNumberCode = entity.TwoNumberCode,
|
|
IsNotCount = entity.IsNotCount,
|
|
NumberCode=entity.NumberCode
|
|
|
|
};
|
|
var entity2 = await _serialNumbersRepositories.GetEntityWms(y[i]);
|
|
entity2.WmsGet(s[i]);
|
|
list.Add(entity2);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// string[] sy = entity.TwoNumberCode.Split(',');
|
|
for (int i = 0; i < s.Length; i++)
|
|
{
|
|
response = new SerialNumbersWmsResponse()
|
|
{
|
|
SerialNumber = s[i],//entity.SerialNumber.Equals(dto.SerialNumber) ? s[i] : sy[i],
|
|
// SerialNumber= entity.SerialNumber.Equals(dto.SerialNumber) ? entity.SerialNumber : entity.NumberCode,
|
|
MaterialNumber = entity.MaterialNumber,
|
|
CreateTime = entity.CreateTime,
|
|
Creator = _singleDataService.GetSingleData(SingleAction.Users, 1, entity.CreatorId),
|
|
IsTwo = entity.IsTwo,
|
|
TwoSerialNumber = entity.TwoSerialNumber,
|
|
TwoNumberCode = entity.TwoNumberCode,
|
|
IsNotCount = entity.IsNotCount,
|
|
NumberCode = entity.NumberCode
|
|
};
|
|
var entity2 = await _serialNumbersRepositories.GetEntityWms(s[i]);
|
|
entity2.WmsGet(s[i]);
|
|
list.Add(entity2);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
response = new SerialNumbersWmsResponse()
|
|
{
|
|
SerialNumber = entity.SerialNumber.Equals(dto.SerialNumber) ? entity.SerialNumber : entity.NumberCode,
|
|
// SerialNumber = entity.SerialNumber.Equals(dto.SerialNumber) ? entity.SerialNumber : entity.NumberCode,
|
|
|
|
MaterialNumber = entity.MaterialNumber,
|
|
CreateTime = entity.CreateTime,
|
|
Creator = _singleDataService.GetSingleData(SingleAction.Users, 1, entity.CreatorId),
|
|
IsTwo = entity.IsTwo,
|
|
TwoSerialNumber = entity.TwoSerialNumber,
|
|
TwoNumberCode = entity.TwoNumberCode,
|
|
IsNotCount = entity.IsNotCount,
|
|
NumberCode = entity.NumberCode
|
|
};
|
|
entity.WmsGet(dto.SerialNumber);
|
|
list.Add(entity);
|
|
}
|
|
var res = await _serialNumbersRepositories.EditEntityList(list);
|
|
if (!res) return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.DateWriteError);
|
|
|
|
_logger.LogInformation($"wms获取序列码返回序列码信息:{JsonConvert.SerializeObject(response)}");
|
|
|
|
return Result<SerialNumbersWmsResponse>.ReSuccess(response);
|
|
|
|
//_logger.LogInformation($"wms获取序列码:{JsonConvert.SerializeObject(dto)}");
|
|
|
|
//var entity = await _serialNumbersRepositories.GetEntityWms(dto.SerialNumber);
|
|
//if (entity.IsTwo > 1)//说明是两件装
|
|
//{
|
|
|
|
//}
|
|
//else
|
|
//{
|
|
// var list = new List<Domain.Entitys.SerialNumbers>();
|
|
// var response = new SerialNumbersWmsResponse();
|
|
// if (entity == null) return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberNoData);
|
|
// if (entity.BoxId > 0)
|
|
// return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberBindBox);
|
|
// if (entity.IsUse == true)
|
|
// return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberIsUse);
|
|
// response = new SerialNumbersWmsResponse()
|
|
// {
|
|
// SerialNumber = entity.SerialNumber.Equals(dto.SerialNumber) ? entity.SerialNumber : entity.NumberCode,
|
|
// MaterialNumber = entity.MaterialNumber,
|
|
// CreateTime = entity.CreateTime,
|
|
// Creator = _singleDataService.GetSingleData(SingleAction.Users, 1, entity.CreatorId),
|
|
// IsTwo = entity.IsTwo,
|
|
// TwoSerialNumber = entity.TwoSerialNumber,
|
|
// TwoNumberCode = entity.TwoNumberCode,
|
|
// IsNotCount = entity.IsNotCount
|
|
// };
|
|
// entity.WmsGet(entityList.SerialNumber);
|
|
//}
|
|
//// var entityList = await _serialNumbersRepositories.GetEntityWmsBySuitNumber(dto.SerialNumber);
|
|
//var list = new List<Domain.Entitys.SerialNumbers>();
|
|
//var response = new SerialNumbersWmsResponse();
|
|
//for (int i = 0; i < entityList.Count; i++)
|
|
//{
|
|
// var entity = entityList[i];
|
|
// if (entity == null) return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberNoData);
|
|
// if (entity.BoxId > 0)
|
|
// return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberBindBox);
|
|
// if (entity.IsUse == true)
|
|
// return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberIsUse);
|
|
// response = new SerialNumbersWmsResponse()
|
|
// {
|
|
// SerialNumber = entity.SerialNumber.Equals(dto.SerialNumber) ? entity.SerialNumber : entity.NumberCode,
|
|
// MaterialNumber = entity.MaterialNumber,
|
|
// CreateTime = entity.CreateTime,
|
|
// Creator = _singleDataService.GetSingleData(SingleAction.Users, 1, entity.CreatorId),
|
|
// IsTwo = entity.IsTwo,
|
|
// TwoSerialNumber = entity.TwoSerialNumber,
|
|
// TwoNumberCode = entity.TwoNumberCode,
|
|
// IsNotCount = entity.IsNotCount
|
|
// };
|
|
// //把查询到的序列码修改成使用
|
|
// //if(entity.IsTwo>1)//说明是两件装
|
|
// //{
|
|
// // string[] s = entity.TwoSerialNumber.Split(',');
|
|
// // for (int i = 0; i < s.Length; i++)
|
|
// // {
|
|
// // entity.WmsGet(s[i]);
|
|
// // }
|
|
// //}
|
|
// //else
|
|
// //{
|
|
// entity.WmsGet(entityList[i].SerialNumber);
|
|
// //}
|
|
|
|
|
|
// list.Add(entity);
|
|
//}
|
|
|
|
//var res = await _serialNumbersRepositories.EditEntityList(list);
|
|
|
|
// if (!res) return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.DateWriteError);
|
|
|
|
// _logger.LogInformation($"wms获取序列码返回序列码信息:{JsonConvert.SerializeObject(response)}");
|
|
|
|
//return Result<SerialNumbersWmsResponse>.ReSuccess(response);
|
|
}
|
|
|
|
///// <summary>
|
|
///// Wms获取序列号信息
|
|
///// </summary>
|
|
///// <param name="dto"></param>
|
|
///// <returns></returns>
|
|
//[HttpPost]
|
|
//[Route("GetSerialNumber")]
|
|
//public async Task<Result<List<SerialNumbersWmsResponse>>> GetSerialNumber(SerialNumbersWmsRequest dto)
|
|
//{
|
|
// _logger.LogInformation($"wms获取序列码:{JsonConvert.SerializeObject(dto)}");
|
|
|
|
// //var entity = await _serialNumbersRepositories.GetEntityWms(dto.SerialNumber);
|
|
// //if (entity == null) return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberNoData);
|
|
// //if (entity.BoxId > 0)
|
|
// // return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberBindBox);
|
|
// //if (entity.IsUse == true)
|
|
// // return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.SerialNumberIsUse);
|
|
// //var response = new SerialNumbersWmsResponse()
|
|
// //{
|
|
// // SerialNumber = entity.SerialNumber.Equals(dto.SerialNumber) ? entity.SerialNumber : entity.NumberCode,
|
|
// // MaterialNumber = entity.MaterialNumber,
|
|
// // CreateTime = entity.CreateTime,
|
|
// // Creator = _singleDataService.GetSingleData(SingleAction.Users, 1, entity.CreatorId)
|
|
// //};
|
|
// ////把查询到的序列码修改成使用
|
|
// //entity.WmsGet(dto.SerialNumber);
|
|
// //var list = new List<Domain.Entitys.SerialNumbers>();
|
|
// //list.Add(entity);
|
|
// //var res = await _serialNumbersRepositories.EditEntityList(list);
|
|
|
|
// //以前是之前的
|
|
|
|
// var entity = await _serialNumbersRepositories.GetEntityListBySuitNumber(dto.SerialNumber);
|
|
// if (entity == null) return Result<List<SerialNumbersWmsResponse>>.ReFailure(ResultCodes.SerialNumberNoData);
|
|
// var response2 = new List<SerialNumbersWmsResponse>();
|
|
// for (int i = 0; i < entity.Count; i++)
|
|
// {
|
|
// if (entity[i].BoxId > 0)
|
|
// return Result< List<SerialNumbersWmsResponse>>.ReFailure(ResultCodes.SerialNumberBindBox);
|
|
// if (entity[i].IsUse == true)
|
|
// return Result< List<SerialNumbersWmsResponse>>.ReFailure(ResultCodes.SerialNumberIsUse);
|
|
// SerialNumbersWmsResponse response = new SerialNumbersWmsResponse()
|
|
// {
|
|
// // SerialNumber = entity[i].SerialNumber.Equals(dto.SerialNumber) ? entity[i].SerialNumber : entity[i].NumberCode,
|
|
// SerialNumber = entity[i].SerialNumber,
|
|
// MaterialNumber = entity[i].MaterialNumber,
|
|
// CreateTime = entity[i].CreateTime,
|
|
// Creator = _singleDataService.GetSingleData(SingleAction.Users, 1, entity[i].CreatorId),
|
|
// IsTwo=entity[i].IsTwo,
|
|
// TwoSerialNumber=entity[i].TwoSerialNumber,
|
|
// TwoNumberCode= entity[i].TwoNumberCode,
|
|
// IsNotCount = entity[i].IsNotCount
|
|
|
|
// };
|
|
// response2.Add(response);
|
|
// //把查询到的序列码修改成使用
|
|
// entity[i].WmsGet(dto.SerialNumber);
|
|
|
|
// var list = new List<Domain.Entitys.SerialNumbers>();
|
|
// list.Add(entity[i]);
|
|
// var res = await _serialNumbersRepositories.EditEntityList(list);
|
|
|
|
// if (!res) return Result< List<SerialNumbersWmsResponse>>.ReFailure(ResultCodes.DateWriteError);
|
|
|
|
// _logger.LogInformation($"wms获取序列码返回序列码信息:{JsonConvert.SerializeObject(response)}");
|
|
// }
|
|
// return Result<List<SerialNumbersWmsResponse>>.ReSuccess(response2);
|
|
|
|
//}
|
|
|
|
/// <summary>
|
|
/// 获取序列号信息
|
|
/// </summary>
|
|
/// <param name="serialNumber">序列号</param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
[Route("Get/{serialNumber}")]
|
|
public async Task<Result<SerialNumbersExternalResponse>> Get([FromRoute] string serialNumber)
|
|
{
|
|
if (string.IsNullOrEmpty(serialNumber))
|
|
return Result<SerialNumbersExternalResponse>.ReFailure(ResultCodes.SerialNumbersNoData);
|
|
|
|
var serial = await _serialNumbersRepositories.GetExternal(serialNumber);
|
|
if (serial == null) return Result<SerialNumbersExternalResponse>.ReFailure(ResultCodes.SerialNumbersNoData);
|
|
return Result<SerialNumbersExternalResponse>.ReSuccess(serial);
|
|
}
|
|
}
|
|
|
|
public class OpsInfo
|
|
{
|
|
public int code { get; set; }
|
|
public string message { get; set; }
|
|
public string date { get; set; }
|
|
public string token { get; set; }
|
|
}
|
|
public class OpsReponse
|
|
{
|
|
public int statusCode { get; set; }
|
|
public bool succeeded { get; set; }
|
|
public string errors { get; set; }
|
|
public string extras { get; set; }
|
|
|
|
public OpsInfo data { get; set; }
|
|
}
|
|
}
|