添加项目文件。
This commit is contained in:
12
src/BarCode.Web.Api/.config/dotnet-tools.json
Normal file
12
src/BarCode.Web.Api/.config/dotnet-tools.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"version": 1,
|
||||
"isRoot": true,
|
||||
"tools": {
|
||||
"dotnet-ef": {
|
||||
"version": "9.0.0",
|
||||
"commands": [
|
||||
"dotnet-ef"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
199
src/BarCode.Web.Api/Controllers/BoxController.cs
Normal file
199
src/BarCode.Web.Api/Controllers/BoxController.cs
Normal file
@@ -0,0 +1,199 @@
|
||||
using AutoMapper;
|
||||
using BarCode.Web.Core.Dto;
|
||||
using BarCode.Web.Core.Dto.Box;
|
||||
using BarCode.Web.Core.Dto.SerialNumbers;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using BarCode.Web.Domain.Infrastructure;
|
||||
using BarCode.Web.Domain.IService;
|
||||
using BarCode.Web.Domain.IService.Public;
|
||||
using BarCode.Web.Domain.Services;
|
||||
using BarCode.Web.Domain.Values;
|
||||
using BarCode.Web.Repositories;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 箱子
|
||||
/// </summary>
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class BoxController : ControllerBase
|
||||
{
|
||||
private readonly IBoxRepositories _boxRepositories;
|
||||
private readonly IMapper _mapper;
|
||||
private readonly ILoginService _loginService;
|
||||
private readonly IBoxService _boxService;
|
||||
public BoxController(IMapper mapper, ILoginService loginService, IBoxRepositories boxRepositories,
|
||||
IBoxService boxService)
|
||||
{
|
||||
_boxRepositories = boxRepositories;
|
||||
_mapper = mapper;
|
||||
_loginService = loginService;
|
||||
_boxService = boxService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 箱信息-列表
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("GetList")]
|
||||
public async Task<ResultPagedList<BoxInfoResponse>> GetPagedList([FromBody] BoxQueryRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultPagedList<BoxInfoResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
if (!string.IsNullOrEmpty(dto.BoxBeginNo)
|
||||
&& !Regex.Match(dto.BoxBeginNo.ToUpper().Replace("CTN", ""), "^[0-9]*$").Success)
|
||||
return ResultPagedList<BoxInfoResponse>.ReFailure(ResultCodes.BoxNO_Invalid_Error);
|
||||
if (!string.IsNullOrEmpty(dto.BoxEndNo)
|
||||
&& !Regex.Match(dto.BoxEndNo.ToUpper().Replace("CTN", ""), "^[0-9]*$").Success)
|
||||
return ResultPagedList<BoxInfoResponse>.ReFailure(ResultCodes.BoxNO_Invalid_Error);
|
||||
|
||||
var (list, count) = await _boxRepositories.GetListAsync(dto, loginInfo);
|
||||
var result = ResultPagedList<BoxInfoResponse>.ReSuccess(list, count);
|
||||
return result;
|
||||
}
|
||||
///// <summary>
|
||||
///// 获取详情
|
||||
///// </summary>
|
||||
///// <param name="id"></param>
|
||||
///// <returns></returns>
|
||||
//[HttpGet]
|
||||
//[Route("GetInfo/{id}")]
|
||||
//public async Task<Result<OutStockInfoResponse>> GetInfo([FromRoute] int id)
|
||||
//{
|
||||
// var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
// if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
// return Result<OutStockInfoResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
// var response = await _repositories.GetInfo(id);
|
||||
// return Result<OutStockInfoResponse>.ReSuccess(response);
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 生成箱码
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("Generate")]
|
||||
public async Task<Result> Generate(GenerateBoxRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _boxService.Generate(dto, loginInfo);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 装箱保存
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("Save")]
|
||||
public async Task<Result> Save(SaveBoxRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
return await _boxService.Save(dto, loginInfo);
|
||||
}
|
||||
/// <summary>
|
||||
/// 打印
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("Print")]
|
||||
public async Task<Result> Print(OperateRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _boxService.Print(dto);
|
||||
}
|
||||
/// <summary>
|
||||
/// 删除
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("Delete")]
|
||||
public async Task<Result> Delete(DeleteBoxSerialNumberRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _boxService.Delete(dto, loginInfo);
|
||||
}
|
||||
/// <summary>
|
||||
/// 清空装箱信息
|
||||
/// </summary>
|
||||
/// <param name="boxId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("Clear")]
|
||||
public async Task<Result> Clear([FromQuery] int boxId)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _boxService.Clear(boxId, loginInfo);
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据箱号获取箱信息
|
||||
/// </summary>
|
||||
/// <param name="boxBillNo"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("GetBoxByNo")]
|
||||
public async Task<Result<BoxResponse>> GetBoxByNo([FromQuery] string boxBillNo)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result<BoxResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
var entity = await _boxRepositories.GetByNo(boxBillNo);
|
||||
if (entity == null)
|
||||
return Result<BoxResponse>.ReFailure(ResultCodes.BoxNoDataError);
|
||||
|
||||
return Result<BoxResponse>.ReSuccess(_mapper.Map<BoxResponse>(entity));
|
||||
}
|
||||
/// <summary>
|
||||
/// 重新装箱
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("Restart")]
|
||||
public async Task<Result> Restart(OperateRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _boxService.Restart(dto, loginInfo);
|
||||
}
|
||||
/// <summary>
|
||||
/// 开始装箱
|
||||
/// </summary>
|
||||
/// <param name="boxId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("BeginCarton")]
|
||||
public async Task<Result> BeginCarton([FromQuery] int boxId)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _boxService.BeginCarton(boxId, loginInfo);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
89
src/BarCode.Web.Api/Controllers/BoxMarkController.cs
Normal file
89
src/BarCode.Web.Api/Controllers/BoxMarkController.cs
Normal file
@@ -0,0 +1,89 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BarCode.Web.Core.Dto;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using BarCode.Web.Domain.Infrastructure;
|
||||
using BarCode.Web.Domain.IService;
|
||||
using BarCode.Web.Domain.IService.Public;
|
||||
using BarCode.Web.Domain.Values;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 箱唛-接口
|
||||
/// </summary>
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class BoxMarkController : ControllerBase
|
||||
{
|
||||
|
||||
private readonly ILoginService _loginService;
|
||||
private readonly IBoxMarkService _boxMarkService;
|
||||
private readonly IBoxMarkRepositories _boxMarkRepositories;
|
||||
private readonly IExportExcelService _exportExcelService;
|
||||
public BoxMarkController(
|
||||
ILoginService loginService,
|
||||
IBoxMarkRepositories boxMarkRepositories,
|
||||
IBoxMarkService boxMarkService,
|
||||
IExportExcelService exportExcelService)
|
||||
{
|
||||
this._loginService = loginService;
|
||||
this._boxMarkService = boxMarkService;
|
||||
this._exportExcelService = exportExcelService;
|
||||
this._boxMarkRepositories = boxMarkRepositories;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 箱唛--列表
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("GetList")]
|
||||
public async Task<ResultPagedList<BoxMarkQueryResponse>> GetPagedList([FromBody] BoxMarkQueryRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultPagedList<BoxMarkQueryResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
var (list, count) = await _boxMarkService.GetPagedList(dto, loginInfo);
|
||||
return ResultPagedList<BoxMarkQueryResponse>.ReSuccess(list, count);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生成
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("generate")]
|
||||
public async Task<ResultList<BoxMarkQueryResponse>> GenerateAsync([FromBody] GenerateBoxMarkDto dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultPagedList<BoxMarkQueryResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _boxMarkService.Generate(dto, loginInfo);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量删除
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("delete")]
|
||||
public async Task<Result> Delete([FromBody] OperateRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultPagedList<BoxMarkQueryResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
var isSuccess= await _boxMarkRepositories.DeleteRange(dto.Ids);
|
||||
if(!isSuccess)
|
||||
return Result.ReFailure(ResultCodes.DateWriteError);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
}
|
||||
}
|
||||
82
src/BarCode.Web.Api/Controllers/ClientLogController.cs
Normal file
82
src/BarCode.Web.Api/Controllers/ClientLogController.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 前端记录日志
|
||||
/// </summary>
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class ClientLogController : ControllerBase
|
||||
{
|
||||
private readonly ILogger<ClientLogController> _Logger;
|
||||
public IWebHostEnvironment _webHostEnvironment { get; set; }
|
||||
public ClientLogController(ILogger<ClientLogController> Logger, IWebHostEnvironment webHostEnvironment)
|
||||
{
|
||||
_Logger = Logger;
|
||||
_webHostEnvironment = webHostEnvironment;
|
||||
}
|
||||
/// <summary>
|
||||
/// 前端记录日志
|
||||
/// </summary>
|
||||
/// <param name="log"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("Log")]
|
||||
public Task<Result> Log([FromQuery] string log)
|
||||
{
|
||||
if (!_webHostEnvironment.IsDevelopment())
|
||||
_Logger.LogInformation($"前端日志 时间:{DateTime.Now} 内容:{log}");
|
||||
|
||||
return Task.FromResult(Result.ReSuccess());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 前端记录日志
|
||||
/// </summary>
|
||||
/// <param name="log"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("test")]
|
||||
public Task<Result> Log()
|
||||
{
|
||||
return Task.FromResult(Result.ReSuccess());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 前端记录日志(数组)
|
||||
/// </summary>
|
||||
/// <param name="logs"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("Logs")]
|
||||
public Task<Result> Logs(List<string> logs)
|
||||
{
|
||||
if (!_webHostEnvironment.IsDevelopment())
|
||||
_Logger.LogInformation($"前端日志(数组) 时间:{DateTime.Now} 内容:{JsonConvert.SerializeObject(logs)}");
|
||||
|
||||
return Task.FromResult(Result.ReSuccess());
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 消息数组
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class LogRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 消息内容数组
|
||||
/// </summary>
|
||||
public List<string> logs { get; set; } = new List<string>();
|
||||
}
|
||||
}
|
||||
107
src/BarCode.Web.Api/Controllers/FileDownManagerController.cs
Normal file
107
src/BarCode.Web.Api/Controllers/FileDownManagerController.cs
Normal file
@@ -0,0 +1,107 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BarCode.Web.Core;
|
||||
using BarCode.Web.Core.Dto;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using BarCode.Web.Domain.Infrastructure;
|
||||
using BarCode.Web.Domain.IService.Public;
|
||||
using BarCode.Web.Domain.Values;
|
||||
using Microsoft.AspNetCore.StaticFiles;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using Npoi.Mapper;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 上传下载中心
|
||||
/// </summary>
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class FileDownManagerController : ControllerBase
|
||||
{
|
||||
private readonly ILoginService _loginService;
|
||||
private readonly IFileDownManagerRepositories _repositories;
|
||||
public FileDownManagerController(ILoginService loginService, IFileDownManagerRepositories repositories)
|
||||
{
|
||||
_loginService = loginService;
|
||||
_repositories = repositories;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取需要的状态列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("GetStatus")]
|
||||
public Task<Result<FileDownManagerStatusResponse>> GetStatus()
|
||||
{
|
||||
FileDownManagerStatusResponse response = new FileDownManagerStatusResponse();
|
||||
foreach (FileDownLoadOrderType enumv in Enum.GetValues(typeof(FileDownLoadOrderType)))
|
||||
{
|
||||
response.Type.Add((int)enumv, enumv.GetRemark());
|
||||
}
|
||||
foreach (ExportStatus enumv in Enum.GetValues(typeof(ExportStatus)))
|
||||
{
|
||||
response.Status.Add((int)enumv, enumv.GetRemark());
|
||||
}
|
||||
return Task.FromResult(Result<FileDownManagerStatusResponse>.ReSuccess(response));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 下载导出文件 列表
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("FileDownManagerQuery")]
|
||||
public async Task<Result<FileDownManagerResponse>> FileDownManagerQuery(FileDownManagerRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null)
|
||||
return Result<FileDownManagerResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
dto.SupplierId = loginInfo.UserInfo.SupplierId;
|
||||
|
||||
var result = await _repositories.GetList(dto, loginInfo);
|
||||
return Result<FileDownManagerResponse>.ReSuccess(result);
|
||||
}
|
||||
/// <summary>
|
||||
/// 模板(生成序列码)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("TemplateExcel")]
|
||||
public IActionResult TemplateExcel()
|
||||
{
|
||||
Mapper mapper = new Mapper();
|
||||
|
||||
//第一个参数为导出Excel名称
|
||||
//第二个参数为Excel数据来源
|
||||
//第三个参数为导出的Sheet名称
|
||||
//overwrite参数如果是要覆盖已存在的Excel或者新建Excel则为true,如果在原有Excel上追加数据则为false
|
||||
//xlsx参数是用于区分导出的数据格式为xlsx还是xls
|
||||
byte[] buffer = null;
|
||||
using (MemoryStream stream = new MemoryStream())
|
||||
{
|
||||
try
|
||||
{
|
||||
List<TemplateExcel> list = new List<TemplateExcel>();
|
||||
mapper.Put<TemplateExcel>(list, "sheet1", true);
|
||||
|
||||
mapper.Save(stream);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
|
||||
buffer = stream.ToArray();
|
||||
}
|
||||
// .xlsx文件对应的Mime信息
|
||||
var mime = new FileExtensionContentTypeProvider().Mappings[".xlsx"];
|
||||
return File(buffer, mime, "批量生成条码模板.xlsx");
|
||||
}
|
||||
}
|
||||
}
|
||||
20
src/BarCode.Web.Api/Controllers/HeartController.cs
Normal file
20
src/BarCode.Web.Api/Controllers/HeartController.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class HeartController : ControllerBase
|
||||
{
|
||||
[HttpGet]
|
||||
public Task<string> Heart()
|
||||
{
|
||||
return Task.FromResult("Success");
|
||||
}
|
||||
}
|
||||
}
|
||||
143
src/BarCode.Web.Api/Controllers/LoginController.cs
Normal file
143
src/BarCode.Web.Api/Controllers/LoginController.cs
Normal file
@@ -0,0 +1,143 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BarCode.Web.Core.Dto.Login;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using BarCode.Web.Domain.IService.Public;
|
||||
using BarCode.Web.Domain.Values;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 登录接口
|
||||
/// </summary>
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class LoginController : ControllerBase
|
||||
{
|
||||
private readonly ILoginService _loginService;
|
||||
private readonly ILogger<LoginController> _logger;
|
||||
public LoginController(ILoginService loginService,ILogger<LoginController> logger)
|
||||
{
|
||||
this._logger = logger;
|
||||
this._loginService = loginService;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 登录
|
||||
/// </summary>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("LoginIn")]
|
||||
public async Task<Result<LoginInDto>> LoginIn([FromQuery] string code)
|
||||
{
|
||||
//var result = await _loginService.GetUserInfoAsync(code);
|
||||
var result = await _loginService.GetUserInfoByCode(code);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 登录-APP和小程序
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("LoginInPwd")]
|
||||
public async Task<Result<LoginInDto>> LoginInPwd([FromBody] LoginRequest dto)
|
||||
{
|
||||
var result = await _loginService.GetUserInfo(dto.UserName,dto.Password);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 退出登录
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("LoginOut")]
|
||||
public async Task<Result> LoginOut()
|
||||
{
|
||||
string authorization = this.HttpContext.Request.Headers["Authorization"];
|
||||
//if (string.IsNullOrEmpty(authorization))
|
||||
//{
|
||||
// return Result.ReFailure(BaseResultCodes.UnAuthorized);
|
||||
//}
|
||||
|
||||
//if (logininfo == null || logininfo.UserInfo == null)
|
||||
// return Result.ReFailure(BaseResultCodes.UnAuthorized);
|
||||
if (!string.IsNullOrEmpty(authorization))
|
||||
{
|
||||
var logininfo = _loginService.GetLoginInfo(authorization);
|
||||
if (logininfo != null && logininfo.UserInfo != null)
|
||||
{
|
||||
var dto = new LoginOutDto()
|
||||
{
|
||||
UcId = logininfo.UserInfo.UcId.ToString(),
|
||||
SessionId = logininfo.UserInfo.SeesionId,
|
||||
Token = logininfo.TokenInfo.Token,
|
||||
AccessToken = logininfo.TokenInfo.PhpToken,
|
||||
RefreshToken=logininfo.TokenInfo.RefreshToken,
|
||||
ExpiresIn = logininfo.TokenInfo.Expired
|
||||
};
|
||||
var res = await _loginService.LoginOut(dto);
|
||||
}
|
||||
}
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
/// <summary>
|
||||
/// PHP单点退出使用
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("LoginOutSingle")]
|
||||
public async Task<Result> LoginOutSingle()
|
||||
{
|
||||
this.HttpContext.Request.Cookies.TryGetValue("PHPSESSID", out string value);
|
||||
if (string.IsNullOrEmpty(value))
|
||||
value = string.Empty;
|
||||
if (!string.IsNullOrEmpty(value))
|
||||
await _loginService.LoginOutSingleAsync(value);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 菜单列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("Menus")]
|
||||
public async Task<Result<List<MenuResponse>>> GetMenuList()
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result<List<MenuResponse>>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
_logger.LogInformation($"用户ID:{loginInfo.UserInfo.UcId}");
|
||||
var list = await _loginService.GetMenuList(loginInfo.UserInfo.UcId);
|
||||
_logger.LogInformation($"菜单数量:{list.Count}");
|
||||
if (list.Count == 0)
|
||||
{
|
||||
//调用单点的退出接口
|
||||
var dto = new LoginOutDto()
|
||||
{
|
||||
UcId = loginInfo.UserInfo.UcId.ToString(),
|
||||
SessionId = loginInfo.UserInfo.SeesionId,
|
||||
Token = loginInfo.TokenInfo.Token,
|
||||
AccessToken = loginInfo.TokenInfo.PhpToken,
|
||||
ExpiresIn = loginInfo.TokenInfo.Expired
|
||||
|
||||
};
|
||||
await _loginService.LoginOut(dto);
|
||||
return Result<List<MenuResponse>>.ReFailure(ResultCodes.NoRoot);
|
||||
}
|
||||
var res = Result<List<MenuResponse>>.ReSuccess(list);
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
118
src/BarCode.Web.Api/Controllers/MaterialController.cs
Normal file
118
src/BarCode.Web.Api/Controllers/MaterialController.cs
Normal file
@@ -0,0 +1,118 @@
|
||||
using AutoMapper;
|
||||
using BarCode.Web.Core.Dto.Erp;
|
||||
using BarCode.Web.Core.Help;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using BarCode.Web.Domain.Entitys;
|
||||
using BarCode.Web.Domain.Infrastructure;
|
||||
using BarCode.Web.Domain.IService.Public;
|
||||
using BarCode.Web.Domain.Options;
|
||||
using BarCode.Web.Domain.Services;
|
||||
using BarCode.Web.Domain.Services.Public;
|
||||
using BarCode.Web.Domain.Values;
|
||||
using BarCode.Web.Repositories;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 物料
|
||||
/// </summary>
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class MaterialController : ControllerBase
|
||||
{
|
||||
private IMapper _mapper;
|
||||
private ILogger<MaterialController> _logger;
|
||||
private IErpService _erpService;
|
||||
private IMaterialsRepositories _materialsRepositories;
|
||||
private ErpOptions _erpOptions;
|
||||
private readonly IMemoryCache _memoryCache;
|
||||
public MaterialController(IMapper mapper, ILogger<MaterialController> logger, IErpService erpService,
|
||||
IMaterialsRepositories materialsRepositories, IOptions<ErpOptions> erpOptions, IMemoryCache memoryCache)
|
||||
{
|
||||
_mapper = mapper;
|
||||
_logger = logger;
|
||||
_erpService = erpService;
|
||||
_materialsRepositories = materialsRepositories;
|
||||
this._erpOptions = erpOptions.Value;
|
||||
this._memoryCache = memoryCache;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 刷新物料 69条码或id32进制
|
||||
/// </summary>
|
||||
/// <param name="number">物料编码</param>
|
||||
/// <param name="type">69 条码,id id32进制,other 名字和规格型号</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("Refresh/{number}/{type}")]
|
||||
public async Task<Result> Refresh([FromRoute] string number, [FromRoute] string type)
|
||||
{
|
||||
if (string.IsNullOrEmpty(number))
|
||||
return Result.ReFailure("物料编码不能为空", 556677);
|
||||
if (string.IsNullOrEmpty(type) || (!type.Equals("69") && !type.Equals("id")&& !type.Equals("other")))
|
||||
return Result.ReFailure("类型只能是69或id或other", 556677);
|
||||
|
||||
List<string> numbers = new List<string>();
|
||||
numbers.Add(number);
|
||||
|
||||
var list = await _materialsRepositories.GetEntityList(numbers);
|
||||
if (list.Count() <= 0) return Result.ReFailure(ResultCodes.MateriaNoData);
|
||||
|
||||
var mDtos = await _erpService.BillQueryForMaterialByNumbers(numbers);
|
||||
if (!mDtos.IsSuccess) return Result.ReFailure(mDtos.Message, mDtos.Status);
|
||||
if (mDtos.Data.Count() <= 0) return Result.ReFailure(ResultCodes.MateriaNoData);
|
||||
|
||||
var materials = _memoryCache.Get<List<ErpMaterialDto>>(_erpOptions.cache_materail_key);
|
||||
|
||||
List<Materials> update_list = new List<Materials>();
|
||||
foreach (var m in mDtos.Data)
|
||||
{
|
||||
var entity = list.FirstOrDefault(f => f.MaterialNumber.Equals(m.MaterialNumber));
|
||||
if (entity == null) continue;
|
||||
if (type.Equals("69"))
|
||||
{
|
||||
entity.BarCode = m.BarCode.Trim();
|
||||
update_list.Add(entity);
|
||||
}
|
||||
if (type.Equals("id"))
|
||||
{
|
||||
entity.IdConvertBar = m.IdConvertBar.Trim();
|
||||
update_list.Add(entity);
|
||||
}
|
||||
if (type.Equals("other"))
|
||||
{
|
||||
entity.MaterialName = m.MaterialName;
|
||||
entity.Specifications = m.Specifications;
|
||||
update_list.Add(entity);
|
||||
}
|
||||
|
||||
//修改缓存
|
||||
if (materials == null) continue;
|
||||
var entity_cache = materials.FirstOrDefault(f => f.MaterialNumber.Equals(m.MaterialNumber));
|
||||
if (entity_cache == null) continue;
|
||||
if (type.Equals("69"))
|
||||
entity_cache.BarCode = m.BarCode.Trim();
|
||||
if (type.Equals("id"))
|
||||
entity_cache.IdConvertBar = m.IdConvertBar.Trim();
|
||||
if (type.Equals("other"))
|
||||
{
|
||||
entity_cache.MaterialName = m.MaterialName;
|
||||
entity_cache.Specifications = m.Specifications;
|
||||
}
|
||||
|
||||
}
|
||||
//修改缓存
|
||||
if (materials != null && materials.Count() > 0)
|
||||
{
|
||||
_memoryCache.Set(_erpOptions.cache_materail_key, materials, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(DateTimeUtil.GetTotalMinutesTimeSpan())));
|
||||
}
|
||||
await _materialsRepositories.UpdateRange(update_list);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
}
|
||||
}
|
||||
59
src/BarCode.Web.Api/Controllers/SecurityController.cs
Normal file
59
src/BarCode.Web.Api/Controllers/SecurityController.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using BarCode.Web.Core.Dto.SecurityNumbers;
|
||||
using BarCode.Web.Core.Dto.SerialNumbers;
|
||||
using BarCode.Web.Core.Help;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using BarCode.Web.Domain.Infrastructure;
|
||||
using BarCode.Web.Domain.Values;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class SecurityController : ControllerBase
|
||||
{
|
||||
public readonly ISecurityNumbersRepositories _securityNumbersRepositories;
|
||||
public readonly ILogger<SecurityController> _logger;
|
||||
public SecurityController(ISecurityNumbersRepositories securityNumbersRepositories, ILogger<SecurityController> logger)
|
||||
{
|
||||
_securityNumbersRepositories = securityNumbersRepositories;
|
||||
_logger = logger;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取序列号信息
|
||||
/// </summary>
|
||||
/// <param name="security">防伪码</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("Get")]
|
||||
public async Task<Result<SecurityResponse>> Get([FromQuery] string security)
|
||||
{
|
||||
_logger.LogInformation($"请求防伪码:{security}");
|
||||
var zz = "^[0-9A-Za-z]{6,15}$";
|
||||
Regex regex = new Regex(zz);
|
||||
if (!regex.IsMatch(security)) return Result<SecurityResponse>.ReSuccess(new SecurityResponse());
|
||||
|
||||
var res = await _securityNumbersRepositories.GetEntity(security);
|
||||
if (res == null) return Result<SecurityResponse>.ReSuccess(new SecurityResponse());
|
||||
|
||||
res.Get();
|
||||
res = await _securityNumbersRepositories.Edit(res);
|
||||
//为了让前端可以做语言判断 这个接口所有错误都提示500
|
||||
if (res == null) return Result<SecurityResponse>.ReFailure(BaseResultCodes.UnknowError);
|
||||
|
||||
var response = new SecurityResponse()
|
||||
{
|
||||
Security = res.SecurityNumber,
|
||||
QueryCount = res.QueryCount,
|
||||
IsOneQuery = res.QueryCount == 1 ? true : false,
|
||||
QueryTime = res.QueryTime.DateToStringSeconds()
|
||||
};
|
||||
_logger.LogInformation($"请求防伪码返回:{JsonConvert.SerializeObject(response)}");
|
||||
return Result<SecurityResponse>.ReSuccess(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
189
src/BarCode.Web.Api/Controllers/SecurityNumberController.cs
Normal file
189
src/BarCode.Web.Api/Controllers/SecurityNumberController.cs
Normal file
@@ -0,0 +1,189 @@
|
||||
using AutoMapper;
|
||||
using BarCode.Web.Core.Dto.SecurityNumbers;
|
||||
using BarCode.Web.Core.Dto;
|
||||
using BarCode.Web.Core.Help;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using BarCode.Web.Domain.Infrastructure;
|
||||
using BarCode.Web.Domain.IService.Public;
|
||||
using BarCode.Web.Domain.IService;
|
||||
using BarCode.Web.Domain.Options;
|
||||
using BarCode.Web.Domain.Values;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Options;
|
||||
using BarCode.Web.Core.Dto.SerialNumbers;
|
||||
using BarCode.Web.Domain.Services;
|
||||
using BarCode.Web.Core;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 防伪码
|
||||
/// </summary>
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class SecurityNumberController : ControllerBase
|
||||
{
|
||||
private readonly IMapper _mapper;
|
||||
private readonly ILoginService _loginService;
|
||||
private readonly ISecurityNumbersRepositories _securityNumbersRepositories;
|
||||
private readonly ISecurityNumberService _securityNumberService;
|
||||
private readonly IExportExcelService _exportExcelService;
|
||||
private readonly QiniuOptions _option;
|
||||
private readonly ISecurityGenerateRecordRepositories _sGenerateRecordRepositories;
|
||||
public SecurityNumberController(IMapper mapper, ILoginService loginService, ISecurityNumbersRepositories SecurityNumbersRepositories,
|
||||
ISecurityNumberService SecurityNumberService, IExportExcelService exportExcelService,
|
||||
IOptions<QiniuOptions> option, ISecurityGenerateRecordRepositories sGenerateRecordRepositories)
|
||||
{
|
||||
_mapper = mapper;
|
||||
_loginService = loginService;
|
||||
_securityNumbersRepositories = SecurityNumbersRepositories;
|
||||
_securityNumberService = SecurityNumberService;
|
||||
_exportExcelService = exportExcelService;
|
||||
_option = option?.Value;
|
||||
_sGenerateRecordRepositories = sGenerateRecordRepositories;
|
||||
}
|
||||
/// <summary>
|
||||
/// 防伪码生成记录列表
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("GetGenerateRecordList")]
|
||||
public async Task<ResultPagedList<SecurityGenerateRecordInfoResponse>> GetGenerateRecordList([FromBody] SecurityGenerateRecordQueryRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultPagedList<SecurityGenerateRecordInfoResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
var (list, count) = await _sGenerateRecordRepositories.GetListAsync(dto, loginInfo);
|
||||
var result = ResultPagedList<SecurityGenerateRecordInfoResponse>.ReSuccess(list, count);
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// 防伪码列表
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("GetList")]
|
||||
public async Task<ResultPagedList<SecurityNumberInfoResponse>> GetPagedList([FromBody] SecurityNumberQueryRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultPagedList<SecurityNumberInfoResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
var (list, count) = await _securityNumbersRepositories.GetListAsync(dto, loginInfo);
|
||||
var result = ResultPagedList<SecurityNumberInfoResponse>.ReSuccess(list, count);
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// 防伪码生成记录页面-下载条码
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("ExportAll")]
|
||||
public Task<Result<string>> ExportAll(OperateRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null)
|
||||
return Task.FromResult(Result<string>.ReFailure(ResultCodes.Token_Invalid_Error));
|
||||
|
||||
var entityList = _sGenerateRecordRepositories.GetEntityList(dto.Ids).GetAwaiter().GetResult();
|
||||
if (entityList.Count < 0)return Task.FromResult(Result<string>.ReFailure(ResultCodes.NoDateError));
|
||||
string orgCode = entityList.First().OrgCode;
|
||||
//反写下载数据
|
||||
var resSuccess = this.DownLoad(new OperateSecurityNumberRequest() { GenerateRecordIds = dto.Ids, IsAll = true }).GetAwaiter().GetResult();
|
||||
if (!resSuccess.IsSuccess) Task.FromResult(Result<string>.ReFailure(resSuccess.Message, resSuccess.Status));
|
||||
|
||||
string fileName = FileDownLoadOrderType.SecurityNumbers.GetRemark() + DateTime.Now.DateToStringSecondsNoSpace() + ".xlsx";
|
||||
string res = _option.Url + fileName;
|
||||
|
||||
SecurityNumbersExportRequest request = new SecurityNumbersExportRequest();
|
||||
request.Ids = dto.Ids;
|
||||
|
||||
Task.Run(async () =>
|
||||
{
|
||||
await _exportExcelService.ExportList<SecurityNumbersExportReponse, SecurityNumbersExportRequest>(request, fileName, loginInfo.UserInfo.UcId, loginInfo, FileDownLoadOrderType.SecurityNumbers, orgCode);
|
||||
});
|
||||
|
||||
return Task.FromResult(Result<string>.ReSuccess(res));
|
||||
}
|
||||
/// <summary>
|
||||
/// 防伪码页面-条码下载
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("Export")]
|
||||
public Task<Result<string>> Export([FromBody] SecurityNumberQueryRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null)
|
||||
return Task.FromResult(Result<string>.ReFailure(ResultCodes.Token_Invalid_Error));
|
||||
|
||||
var entity = _sGenerateRecordRepositories.GetEntity(dto.GenerateRecordId).GetAwaiter().GetResult();
|
||||
if (entity==null) return Task.FromResult(Result<string>.ReFailure(ResultCodes.NoDateError));
|
||||
string orgCode = entity.OrgCode;
|
||||
//反写下载数据
|
||||
Result resSuccess;
|
||||
if (dto.SecurityNumbers.Count() > 0)
|
||||
{
|
||||
resSuccess = this.DownLoad(new OperateSecurityNumberRequest()
|
||||
{
|
||||
GenerateRecordIds = new List<int>() { dto.GenerateRecordId },
|
||||
IsAll = false,
|
||||
SecurityNumbers = dto.SecurityNumbers
|
||||
}).GetAwaiter().GetResult();
|
||||
}
|
||||
else
|
||||
{
|
||||
resSuccess = this.DownLoad(new OperateSecurityNumberRequest()
|
||||
{
|
||||
GenerateRecordIds = new List<int>() { dto.GenerateRecordId },
|
||||
IsAll = true
|
||||
}).GetAwaiter().GetResult();
|
||||
}
|
||||
if (!resSuccess.IsSuccess) return Task.FromResult(Result<string>.ReFailure(resSuccess.Message, resSuccess.Status));
|
||||
|
||||
string fileName = FileDownLoadOrderType.SecurityNumberInfo.GetRemark() + DateTime.Now.DateToStringSecondsNoSpace() + ".xlsx";
|
||||
string res = _option.Url + fileName;
|
||||
|
||||
Task.Run(async () =>
|
||||
{
|
||||
await _exportExcelService.ExportList<SecurityNumberInfoResponse, SecurityNumberQueryRequest>(dto, fileName, loginInfo.UserInfo.UcId, loginInfo, FileDownLoadOrderType.SecurityNumberInfo, orgCode);
|
||||
});
|
||||
|
||||
return Task.FromResult(Result<string>.ReSuccess(res));
|
||||
}
|
||||
/// <summary>
|
||||
/// 下载(一般后端内部调用)
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("DownLoad")]
|
||||
public async Task<Result> DownLoad(OperateSecurityNumberRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _securityNumberService.DownLoad(dto);
|
||||
}
|
||||
/// <summary>
|
||||
/// 生成序列号
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("Generate")]
|
||||
public async Task<Result> Generate(GenerateSecurityNumberRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _securityNumberService.Generate(dto, loginInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
309
src/BarCode.Web.Api/Controllers/SerialNumberController.cs
Normal file
309
src/BarCode.Web.Api/Controllers/SerialNumberController.cs
Normal file
@@ -0,0 +1,309 @@
|
||||
using AutoMapper;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using BarCode.Web.Domain.Infrastructure;
|
||||
using BarCode.Web.Domain.IService.Public;
|
||||
using BarCode.Web.Domain.Values;
|
||||
using BarCode.Web.Core.Dto.SerialNumbers;
|
||||
using BarCode.Web.Repositories;
|
||||
using BarCode.Web.Core.Dto;
|
||||
using BarCode.Web.Domain.IService;
|
||||
using BarCode.Web.Core.Help;
|
||||
using BarCode.Web.Core;
|
||||
using BarCode.Web.Domain.Services;
|
||||
using BarCode.Web.Domain.Options;
|
||||
using Microsoft.Extensions.Options;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using System.Diagnostics.Eventing.Reader;
|
||||
using BarCode.Web.Core.Dto.Box;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 序列号
|
||||
/// </summary>
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class SerialNumberController : ControllerBase
|
||||
{
|
||||
private readonly IMapper _mapper;
|
||||
private readonly ILoginService _loginService;
|
||||
private readonly ISerialNumbersRepositories _serialNumbersRepositories;
|
||||
private readonly ISerialNumberService _serialNumberService;
|
||||
private readonly IExportExcelService _exportExcelService;
|
||||
private readonly QiniuOptions _option;
|
||||
private readonly ISGenerateRecordRepositories _sGenerateRecordRepositories;
|
||||
public SerialNumberController(IMapper mapper, ILoginService loginService, ISerialNumbersRepositories serialNumbersRepositories,
|
||||
ISerialNumberService serialNumberService, IExportExcelService exportExcelService,
|
||||
IOptions<QiniuOptions> option, ISGenerateRecordRepositories sGenerateRecordRepositories)
|
||||
{
|
||||
_mapper = mapper;
|
||||
_loginService = loginService;
|
||||
_serialNumbersRepositories = serialNumbersRepositories;
|
||||
_serialNumberService = serialNumberService;
|
||||
_exportExcelService = exportExcelService;
|
||||
_option = option?.Value;
|
||||
_sGenerateRecordRepositories = sGenerateRecordRepositories;
|
||||
}
|
||||
/// <summary>
|
||||
/// 序列码生成记录列表
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("GetGenerateRecordList")]
|
||||
public async Task<ResultPagedList<SGenerateRecordInfoResponse>> GetGenerateRecordList([FromBody] SGenerateRecordQueryRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultPagedList<SGenerateRecordInfoResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
var (list, count) = await _sGenerateRecordRepositories.GetListAsync(dto, loginInfo);
|
||||
var result = ResultPagedList<SGenerateRecordInfoResponse>.ReSuccess(list, count);
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// 序列码列表
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("GetList")]
|
||||
public async Task<ResultPagedList<SerialNumberInfoResponse>> GetPagedList([FromBody] SerialNumberQueryRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultPagedList<SerialNumberInfoResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
if (!string.IsNullOrEmpty(dto.NumberCodeBegin)
|
||||
&& (!Regex.Match(dto.NumberCodeBegin, "^[0-9]*$").Success || dto.NumberCodeBegin.Length < 12))
|
||||
return ResultPagedList<SerialNumberInfoResponse>.ReFailure(ResultCodes.NumberCode_Invalid_Error);
|
||||
if (!string.IsNullOrEmpty(dto.NumberCodeEnd)
|
||||
&& (!Regex.Match(dto.NumberCodeEnd, "^[0-9]*$").Success || dto.NumberCodeEnd.Length < 12))
|
||||
return ResultPagedList<SerialNumberInfoResponse>.ReFailure(ResultCodes.NumberCode_Invalid_Error);
|
||||
|
||||
var (list, count) = await _serialNumbersRepositories.GetListAsync(dto, loginInfo);
|
||||
var result = ResultPagedList<SerialNumberInfoResponse>.ReSuccess(list, count);
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// 条码生成记录页面-下载条码
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("ExportAll")]
|
||||
public Task<Result<string>> ExportAll(OperateRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null)
|
||||
return Task.FromResult(Result<string>.ReFailure(ResultCodes.Token_Invalid_Error));
|
||||
|
||||
var entityList = _sGenerateRecordRepositories.GetEntityList(dto.Ids).GetAwaiter().GetResult();
|
||||
if (entityList.Count < 0) return Task.FromResult(Result<string>.ReFailure(ResultCodes.NoDateError));
|
||||
string orgCode = entityList.First().OrgCode;
|
||||
|
||||
//反写下载数据
|
||||
var resSuccess = this.DownLoad(new OperateSerialNumberRequest() { GenerateRecordIds = dto.Ids, IsAll = true }).GetAwaiter().GetResult();
|
||||
if (!resSuccess.IsSuccess) Task.FromResult(Result<string>.ReFailure(resSuccess.Message, resSuccess.Status));
|
||||
|
||||
string fileName = FileDownLoadOrderType.SerialNumbers.GetRemark() + DateTime.Now.DateToStringSecondsNoSpace() + ".xlsx";
|
||||
string res = _option.Url + fileName;
|
||||
|
||||
SerialNumbersExportRequest request = new SerialNumbersExportRequest();
|
||||
request.Ids = dto.Ids;
|
||||
|
||||
Task.Run(async () =>
|
||||
{
|
||||
await _exportExcelService.ExportList<SerialNumbersExportReponse, SerialNumbersExportRequest>(request, fileName, loginInfo.UserInfo.UcId, loginInfo, FileDownLoadOrderType.SerialNumbers, orgCode);
|
||||
});
|
||||
|
||||
return Task.FromResult(Result<string>.ReSuccess(res));
|
||||
}
|
||||
/// <summary>
|
||||
/// 序列码页面-条码下载
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("Export")]
|
||||
public Task<Result<string>> Export([FromBody] SerialNumberQueryRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null)
|
||||
return Task.FromResult(Result<string>.ReFailure(ResultCodes.Token_Invalid_Error));
|
||||
|
||||
var entity = _sGenerateRecordRepositories.GetEntity(dto.GenerateRecordId).GetAwaiter().GetResult();
|
||||
if (entity == null) return Task.FromResult(Result<string>.ReFailure(ResultCodes.NoDateError));
|
||||
string orgCode = entity.OrgCode;
|
||||
|
||||
//反写下载数据
|
||||
Result resSuccess;
|
||||
if (dto.SerialNumbers.Count() > 0)
|
||||
{
|
||||
resSuccess = this.DownLoad(new OperateSerialNumberRequest()
|
||||
{
|
||||
GenerateRecordIds = new List<int>() { dto.GenerateRecordId },
|
||||
IsAll = false,
|
||||
SerialNumbers = dto.SerialNumbers
|
||||
}).GetAwaiter().GetResult();
|
||||
}
|
||||
else
|
||||
{
|
||||
resSuccess = this.DownLoad(new OperateSerialNumberRequest()
|
||||
{
|
||||
GenerateRecordIds = new List<int>() { dto.GenerateRecordId },
|
||||
IsAll = true
|
||||
}).GetAwaiter().GetResult();
|
||||
}
|
||||
if (!resSuccess.IsSuccess) return Task.FromResult(Result<string>.ReFailure(resSuccess.Message, resSuccess.Status));
|
||||
|
||||
string fileName = FileDownLoadOrderType.SerialNumberInfo.GetRemark() + DateTime.Now.DateToStringSecondsNoSpace() + ".xlsx";
|
||||
string res = _option.Url + fileName;
|
||||
|
||||
Task.Run(async () =>
|
||||
{
|
||||
await _exportExcelService.ExportList<SerialNumberInfoResponse, SerialNumberQueryRequest>(dto, fileName, loginInfo.UserInfo.UcId, loginInfo, FileDownLoadOrderType.SerialNumberInfo, orgCode);
|
||||
});
|
||||
|
||||
return Task.FromResult(Result<string>.ReSuccess(res));
|
||||
}
|
||||
/// <summary>
|
||||
/// 生成序列号
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("Generate")]
|
||||
public async Task<Result> Generate(GenerateSerialNumberRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _serialNumberService.Generate(dto, loginInfo);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 打印
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("Print")]
|
||||
public async Task<Result> Print(OperateSerialNumberRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _serialNumberService.Print(dto);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 下载(一般后端内部调用)
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("DownLoad")]
|
||||
public async Task<Result> DownLoad(OperateSerialNumberRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _serialNumberService.DownLoad(dto);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取序列号信息
|
||||
/// </summary>
|
||||
/// <param name="boxId">箱Id</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("GetByBoxId")]
|
||||
public async Task<ResultPagedList<SerialNumbersResponse>> GetByBoxId(SerialNumberByBoxIdQueryRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultPagedList<SerialNumbersResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
if (dto.BoxId == 0)
|
||||
return ResultPagedList<SerialNumbersResponse>.ReFailure(ResultCodes.NoDateError);
|
||||
|
||||
var (list, count) = await _serialNumbersRepositories.GetEntityListByBoxId(dto);
|
||||
var result = ResultPagedList<SerialNumbersResponse>.ReSuccess(list, count);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
///// <summary>
|
||||
///// 获取序列号信息
|
||||
///// </summary>
|
||||
///// <param name="serialNumber">序列号</param>
|
||||
///// <param name="orgCode">组织或供应商编码</param>
|
||||
///// <returns></returns>
|
||||
//[HttpGet]
|
||||
//[Route("Get")]
|
||||
//public async Task<ResultList<SerialNumbersResponse>> Get([FromQuery] string serialNumber, [FromQuery] string orgCode)
|
||||
//{
|
||||
// var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
// if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
// return ResultList<SerialNumbersResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
// if (string.IsNullOrEmpty(orgCode))
|
||||
// return ResultList<SerialNumbersResponse>.ReFailure(ResultCodes.NoOrgError);
|
||||
|
||||
// var res = await _serialNumbersRepositories.GetEntityList(serialNumber, orgCode, loginInfo);
|
||||
// // var res = await _serialNumbersRepositories.GetEntityList(serialNumber, orgCode, loginInfo);
|
||||
// if (res == null) return ResultList<SerialNumbersResponse>.ReFailure(ResultCodes.SerialNumberNoData);
|
||||
|
||||
// // return ResultList<SerialNumbersResponse>.ReSuccess(res);
|
||||
// return ResultList<SerialNumbersResponse>.ReSuccess(res.ToList());
|
||||
//}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取序列号信息
|
||||
/// </summary>
|
||||
/// <param name="serialNumber">序列号</param>
|
||||
/// <param name="orgCode">组织或供应商编码</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("Get")]
|
||||
public async Task<Result<SerialNumbersResponse>> Get([FromQuery] string serialNumber, [FromQuery] string orgCode)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result<SerialNumbersResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
if (string.IsNullOrEmpty(orgCode))
|
||||
return Result<SerialNumbersResponse>.ReFailure(ResultCodes.NoOrgError);
|
||||
|
||||
var res = await _serialNumbersRepositories.GetEntity(serialNumber, orgCode, loginInfo);
|
||||
// var res = await _serialNumbersRepositories.GetEntityList(serialNumber, orgCode, loginInfo);
|
||||
if (res == null) return Result<SerialNumbersResponse>.ReFailure(ResultCodes.SerialNumberNoData);
|
||||
|
||||
// return ResultList<SerialNumbersResponse>.ReSuccess(res);
|
||||
return Result<SerialNumbersResponse>.ReSuccess(res);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改序列码物料
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("UpdateMaterial")]
|
||||
public async Task<Result> UpdateMaterial(UpdateMaterialRequest dto)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
return await _serialNumberService.UpdateMaterial(dto);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
180
src/BarCode.Web.Api/Controllers/SysConfigController.cs
Normal file
180
src/BarCode.Web.Api/Controllers/SysConfigController.cs
Normal file
@@ -0,0 +1,180 @@
|
||||
using AutoMapper;
|
||||
using BarCode.Web.Core.Dto.Erp;
|
||||
using BarCode.Web.Core.Dto.Erp.Org;
|
||||
using BarCode.Web.Core.Dto.Erp.Supplier;
|
||||
using BarCode.Web.Core.Dto.Login;
|
||||
using BarCode.Web.Core.Dto.SingleData;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using BarCode.Web.Domain.Infrastructure;
|
||||
using BarCode.Web.Domain.IService.Public;
|
||||
using BarCode.Web.Domain.Options;
|
||||
using BarCode.Web.Domain.Values;
|
||||
using BarCode.Web.Domain.Values.Single;
|
||||
using BarCode.Web.Repositories;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Microsoft.Extensions.Options;
|
||||
using NPOI.POIFS.FileSystem;
|
||||
using System.ComponentModel.Design;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 系统配置
|
||||
/// </summary>
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class SysConfigController : ControllerBase
|
||||
{
|
||||
private readonly ILoginService _loginService;
|
||||
private readonly IBasicsRepositories _basicsRepositories;
|
||||
private readonly IErpService _erpService;
|
||||
private readonly ISingleDataService _singleDataService;
|
||||
private readonly IMapper _mapper;
|
||||
private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
|
||||
private readonly ILogger<SysConfigController> _logger;
|
||||
private ErpOptions _erpOptions;
|
||||
private readonly IMemoryCache _memoryCache;
|
||||
|
||||
public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories, IOptions<ErpOptions> erpOptions, IErpService erpService, ISingleDataService singleDataService, IMemoryCache memoryCache,
|
||||
IMapper mapper, IErpBasicDataExtendService erpBasicDataExtendService,
|
||||
ILogger<SysConfigController> logger)
|
||||
{
|
||||
this._erpOptions = erpOptions?.Value;
|
||||
this._memoryCache = memoryCache;
|
||||
_loginService = loginService;
|
||||
_basicsRepositories = basicsRepositories;
|
||||
_erpService = erpService;
|
||||
_singleDataService = singleDataService;
|
||||
_mapper = mapper;
|
||||
_erpBasicDataExtendService = erpBasicDataExtendService;
|
||||
_logger = logger;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取物料;通过规格型号
|
||||
/// </summary>
|
||||
/// <param name="speci"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("GetMaterialList")]
|
||||
public async Task<ResultList<ErpMaterialDto>> GetMaterialList([FromQuery] string speci)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultList<ErpMaterialDto>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
var materials = _memoryCache.Get<List<ErpMaterialDto>>(_erpOptions.cache_materail_key);
|
||||
if (materials == null)
|
||||
{
|
||||
var res = await _erpService.BillQueryForMaterial();
|
||||
if (res.IsSuccess)
|
||||
materials = res.Data.ToList();
|
||||
}
|
||||
if (materials == null) return ResultList<ErpMaterialDto>.ReFailure(ResultCodes.MateriaNoData);
|
||||
//没有物料Id 32进制的也过滤掉
|
||||
var result = materials.Where(x => x.Specifications.Contains(speci)
|
||||
&& !string.IsNullOrEmpty(x.IdConvertBar.Trim())).Take(30).ToList();
|
||||
return ResultList<ErpMaterialDto>.ReSuccess(result);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取供应商-erp基础数据
|
||||
/// 使用code做键
|
||||
/// </summary>
|
||||
/// <param name="name">供应商名字</param>
|
||||
/// <param name="orgCode">组织编码</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("GetSupplierOrOrg")]
|
||||
public async Task<ResultList<PullDownStrResponse>> GetSupplierOrOrg([FromQuery] string? name, [FromQuery] string orgCode)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null)
|
||||
return ResultList<PullDownStrResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
var result = await _singleDataService.GetSingleDataNoCache<ResultList<SingleDataResponse>, NameRequest, SysConfigAction>(
|
||||
new NameRequest(name, loginInfo.UserInfo.CompanyId), SysConfigAction.GetSupplierByNameAndCompany, SingleControllerType.SysConfig);
|
||||
if (!result.IsSuccess)
|
||||
return ResultList<PullDownStrResponse>.ReFailure(result.Message, result.Status);
|
||||
|
||||
List<SingleDataResponse> suppliers = result.Data.ToList();
|
||||
//suppliers = suppliers.Where(w => w.ErpOrgCode.Equals(orgCode)).ToList();
|
||||
if (!string.IsNullOrEmpty(name))
|
||||
suppliers = suppliers.Where(w => w.Name.Contains(name)).ToList();
|
||||
List<PullDownStrResponse> pullList = new List<PullDownStrResponse>();
|
||||
foreach (var c in suppliers)
|
||||
{
|
||||
pullList.Add(new PullDownStrResponse()
|
||||
{
|
||||
Id = "s_" + c.Id.ToString(),
|
||||
Name = c.Name,
|
||||
Code = "s_" + c.Code
|
||||
});
|
||||
}
|
||||
|
||||
//var org_result = await _erpService.BillQueryForOrg();
|
||||
//List<ErpOrgDto> orgs = org_result.Data.ToList();
|
||||
//if (!string.IsNullOrEmpty(name))
|
||||
// orgs = orgs.Where(w => w.Name.Contains(name)).ToList();
|
||||
//foreach (var c in orgs)
|
||||
//{
|
||||
// pullList.Add(new PullDownStrResponse()
|
||||
// {
|
||||
// Id = "o_" + c.Id.ToString(),
|
||||
// Name = c.Name,
|
||||
// Code = "o_" + c.Number
|
||||
// });
|
||||
//}
|
||||
|
||||
return ResultList<PullDownStrResponse>.ReSuccess(pullList);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取组织-erp基础数据
|
||||
/// 使用 code做键
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("GetOrg")]
|
||||
public async Task<ResultList<PullDownStrResponse>> GetOrg([FromQuery] string? name)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null)
|
||||
return ResultList<PullDownStrResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
List<PullDownStrResponse> pullList = new List<PullDownStrResponse>();
|
||||
|
||||
if (loginInfo.UserInfo.Identity == 2)
|
||||
{
|
||||
pullList.Add(new PullDownStrResponse()
|
||||
{
|
||||
Id = loginInfo.UserInfo.SupplierId.ToString(),
|
||||
Name = loginInfo.UserInfo.SupplierName,
|
||||
Code = "s_" + loginInfo.UserInfo.SupplierCode,
|
||||
IsDefault = true
|
||||
}); ;
|
||||
return ResultList<PullDownStrResponse>.ReSuccess(pullList);
|
||||
}
|
||||
var result = await _singleDataService.GetSingleDataNoCache<ResultList<OrgAllResponse>, UserRequest, SysConfigAction>(
|
||||
new UserRequest(loginInfo.UserInfo.UcId), SysConfigAction.GetOrgByUser, SingleControllerType.SysConfig);
|
||||
if (!result.IsSuccess)
|
||||
return ResultList<PullDownStrResponse>.ReFailure(result.Message, result.Status);
|
||||
|
||||
List<OrgAllResponse> orgs = result.Data.ToList();
|
||||
if (!string.IsNullOrEmpty(name))
|
||||
orgs = orgs.Where(w => w.Name.Contains(name)).ToList();
|
||||
foreach (var c in orgs)
|
||||
{
|
||||
pullList.Add(new PullDownStrResponse()
|
||||
{
|
||||
Id = c.Id.ToString(),
|
||||
Name = c.Name,
|
||||
Code = "o_" + c.ErpOrgCode
|
||||
});
|
||||
}
|
||||
//默认显示第一个
|
||||
pullList.First().IsDefault = true;
|
||||
|
||||
return ResultList<PullDownStrResponse>.ReSuccess(pullList);
|
||||
}
|
||||
}
|
||||
}
|
||||
508
src/BarCode.Web.Api/Controllers/TestController.cs
Normal file
508
src/BarCode.Web.Api/Controllers/TestController.cs
Normal file
@@ -0,0 +1,508 @@
|
||||
using AutoMapper;
|
||||
using AutoMapper.Internal.Mappers;
|
||||
using BarCode.Web.Core.Dto.Box;
|
||||
using BarCode.Web.Core.Dto.Erp.Org;
|
||||
using BarCode.Web.Core.Dto.SerialNumbers;
|
||||
using BarCode.Web.Core.Help;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using BarCode.Web.Domain.Entitys;
|
||||
using BarCode.Web.Domain.Infrastructure;
|
||||
using BarCode.Web.Domain.IService;
|
||||
using BarCode.Web.Domain.IService.Public;
|
||||
using BarCode.Web.Domain.Services;
|
||||
using BarCode.Web.Domain.Services.Public;
|
||||
using BarCode.Web.Domain.Values;
|
||||
using BarCode.Web.Repositories;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore.Storage;
|
||||
using Newtonsoft.Json;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using StackExchange.Redis;
|
||||
using System.ComponentModel.Design;
|
||||
using System.Diagnostics.Eventing.Reader;
|
||||
using System.Json;
|
||||
using System.Runtime.InteropServices.JavaScript;
|
||||
using System.Text.Json.Nodes;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace BarCode.Web.Api.Controllers
|
||||
{
|
||||
[Route("api/[controller]")]
|
||||
[ApiController]
|
||||
public class TestController : ControllerBase
|
||||
{
|
||||
private readonly ILoginService _loginService;
|
||||
private readonly IFileDownManagerRepositories _repositories;
|
||||
private readonly IMaterialService _materialService;
|
||||
private readonly ISerialNumberService _serialNumberService;
|
||||
private readonly IBoxRepositories _boxRepositories;
|
||||
private readonly IMapper _mapper;
|
||||
private readonly ISecurityGenerateRecordRepositories _securityGenerateRecordRepositories;
|
||||
private IBasicsRepositories _transactionRepositories;
|
||||
private readonly IBoxService _boxService;
|
||||
private readonly IErpService _erpService;
|
||||
private readonly ISGenerateRecordRepositories _sGenerateRecordRepositories;
|
||||
private readonly ISerialNumbersRepositories _serialNumbersRepositories;
|
||||
private readonly ISecurityNumbersRepositories _securityNumbersRepositories;
|
||||
public TestController(ILoginService loginService, IFileDownManagerRepositories repositories, IMaterialService materialService,
|
||||
ISerialNumberService serialNumberService, IBoxRepositories boxRepositories, IMapper mapper,
|
||||
ISecurityGenerateRecordRepositories securityGenerateRecordRepositories, IBasicsRepositories transactionRepositories,
|
||||
IBoxService boxService, IErpService erpService, ISGenerateRecordRepositories sGenerateRecordRepositories,
|
||||
ISerialNumbersRepositories serialNumbersRepositories, ISecurityNumbersRepositories securityNumbersRepositories)
|
||||
{
|
||||
_loginService = loginService;
|
||||
_repositories = repositories;
|
||||
_materialService = materialService;
|
||||
_serialNumberService = serialNumberService;
|
||||
_boxRepositories = boxRepositories;
|
||||
_mapper = mapper;
|
||||
_securityGenerateRecordRepositories = securityGenerateRecordRepositories;
|
||||
_transactionRepositories = transactionRepositories;
|
||||
_boxService = boxService;
|
||||
_erpService = erpService;
|
||||
_sGenerateRecordRepositories = sGenerateRecordRepositories;
|
||||
_serialNumbersRepositories = serialNumbersRepositories;
|
||||
_securityNumbersRepositories = securityNumbersRepositories;
|
||||
}
|
||||
[HttpGet]
|
||||
[Route("Get")]
|
||||
public async Task<Result> Get()
|
||||
{
|
||||
//await GetFSer();
|
||||
|
||||
//Dictionary<string, string> dic = new Dictionary<string, string>();
|
||||
//dic.Add("ABCD", "1111");
|
||||
//dic.Add("ABCE", "2222");
|
||||
//dic.Add("ABCF", "3333");
|
||||
//dic.Add("BCDD", "4444");
|
||||
//var v = from d in dic where d.Value.Equals("2222") select d;
|
||||
|
||||
//var b = v.Select(s => s.Key).ToList();
|
||||
|
||||
//await _materialService.SyncBar();
|
||||
|
||||
//await GetSer();
|
||||
|
||||
//await GetSer();
|
||||
//GetBox();
|
||||
//await GetBox();
|
||||
//string msg = "o_sdf";
|
||||
//string s = msg.Substring(0, 2);
|
||||
//string s2 = msg.Substring(2, msg.Length-2);
|
||||
|
||||
//var supplier_result = await _erpService.BillQueryForSupplier();
|
||||
|
||||
//DateTime begin = DateTime.Now.AddDays(-1);
|
||||
//begin = begin.AddHours(-1);
|
||||
//WmsBoxRequest request = new WmsBoxRequest(begin, DateTime.Now);
|
||||
//var b = await _boxService.GetCartonListAsync(request);
|
||||
|
||||
// List<int> ids = new List<int>();
|
||||
// ids.Add(1);ids.Add(2);
|
||||
// var bList = await _boxRepositories.GetEntityList(ids);
|
||||
// foreach(var b in bList)
|
||||
// {
|
||||
// //var d= b.Details.FirstOrDefault(f=>f.MaterialNumber=="1");
|
||||
// // d.Qty = 2;
|
||||
// if (b.Id == 1)
|
||||
// {
|
||||
// var d = b.Details.FirstOrDefault(f => f.MaterialNumber == "1");
|
||||
// d.Qty = 10;
|
||||
// b.Details.Add(new BoxDetails()
|
||||
// {
|
||||
// MaterialNumber = "3",
|
||||
// Qty = 3
|
||||
// });
|
||||
// }else
|
||||
// {
|
||||
// var d= b.Details.FirstOrDefault(f=>f.MaterialNumber=="2");
|
||||
// b.Details.Remove(d);
|
||||
// }
|
||||
// }
|
||||
//var s= await _boxRepositories.EditEntityList(bList);
|
||||
|
||||
|
||||
//提交事务
|
||||
// var isSuccess = _transactionRepositories.CommitTransaction(true, _transaction);
|
||||
//var b=await _boxRepositories.Get(1);
|
||||
|
||||
|
||||
|
||||
//var c=_mapper.Map<BoxResponse>(b);
|
||||
//string exclude = "WXYZ";
|
||||
//int? FLength = 9;
|
||||
//for (int i = 1; i < 100; i++)
|
||||
//{
|
||||
// var bc = Radix.ConvertRadix36((ulong)i, exclude.ToCharArray()).PadLeft(FLength ?? 0, '0');
|
||||
// Console.WriteLine($"防伪码{i} : {bc}");
|
||||
//}
|
||||
//var b = await _boxRepositories.Get(1);
|
||||
//GenerateSerialNumberRequest r = new GenerateSerialNumberRequest();
|
||||
//r.OrgCode = "101";
|
||||
//r.Details = new List<GenerateSerialNumberInfoRequest>();
|
||||
////r.Details.Add(new GenerateSerialNumberInfoRequest()
|
||||
////{
|
||||
//// MaterialId = 260845,
|
||||
//// MaterialNumber = "AS-005-000-002",
|
||||
//// Number = 10
|
||||
////});
|
||||
//r.Details.Add(new GenerateSerialNumberInfoRequest()
|
||||
//{
|
||||
// IdConvertBar = "",
|
||||
// MaterialNumber = "G01-12-005834",
|
||||
// Number = 3
|
||||
//});
|
||||
//await _serialNumberService.Generate(r, null);
|
||||
|
||||
// await _materialService.SyncNewMaterials();
|
||||
//var s= await _repositories.GetList(new Core.Dto.FileDownManagerRequest(), 0);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
|
||||
private async Task GetBox()
|
||||
{
|
||||
string[] arr = System.IO.File.ReadAllLines("E:\\1\\x.txt");
|
||||
var sList = GetS();
|
||||
//var sList = new List<SerialNumbers>();
|
||||
List<Box> boxs = new List<Box>();
|
||||
int i = 0;
|
||||
foreach (string str in arr)
|
||||
{
|
||||
i++;
|
||||
Console.WriteLine("操作条数:" + i);
|
||||
var strarr = str.Split('\t');
|
||||
if (strarr[3] == "NULL")
|
||||
{
|
||||
Box box = new Box()
|
||||
{
|
||||
CompanyId = 1,
|
||||
Id = Convert.ToInt32(strarr[2].Replace("CTN", "")),
|
||||
BoxBillNo = strarr[2],
|
||||
OrgCode = strarr[0].Replace("-", ""),
|
||||
SupplierCode = strarr[1].Replace("-", ""),
|
||||
CreateTime = strarr[6] != "-" ? Convert.ToDateTime(strarr[6]) : DateTime.Now
|
||||
};
|
||||
if (string.IsNullOrEmpty(box.OrgCode) && string.IsNullOrEmpty(box.SupplierCode))
|
||||
box.OrgCode = "101";
|
||||
boxs.Add(box);
|
||||
}
|
||||
else
|
||||
{
|
||||
var box = boxs.FirstOrDefault(w => w.BoxBillNo.Equals(strarr[2]));
|
||||
if (box == null)
|
||||
{
|
||||
box = new Box()
|
||||
{
|
||||
CompanyId = 1,
|
||||
Id = Convert.ToInt32(strarr[2].Replace("CTN", "")),
|
||||
BoxBillNo = strarr[2],
|
||||
OrgCode = strarr[0].Replace("-", ""),
|
||||
SupplierCode = strarr[1].Replace("-", ""),
|
||||
CreateTime = strarr[6] != "-" ? Convert.ToDateTime(strarr[6]) : DateTime.Now,
|
||||
CartonBeginTime = strarr[7] != "-" ? Convert.ToDateTime(strarr[7]) : null,
|
||||
CartonEndTime = strarr[8] != "-" ? Convert.ToDateTime(strarr[8]) : null,
|
||||
Status = strarr[8] != "-" ? BoxStatus.Complete : BoxStatus.NoComplete,
|
||||
PrintNumber = Convert.ToInt32(strarr[10])
|
||||
};
|
||||
if (string.IsNullOrEmpty(box.OrgCode) && string.IsNullOrEmpty(box.SupplierCode))
|
||||
box.OrgCode = "101";
|
||||
|
||||
var sers = sList.Where(w => w.BoxId == box.Id && w.MaterialNumber == strarr[3]).Select(s => s.SerialNumber).ToList();
|
||||
|
||||
box.Details.Add(new BoxDetails()
|
||||
{
|
||||
MaterialNumber = strarr[3],
|
||||
Qty = Convert.ToInt32(strarr[4]),
|
||||
SerialNumbers = sers
|
||||
});
|
||||
boxs.Add(box);
|
||||
}
|
||||
else
|
||||
{
|
||||
var sers = sList.Where(w => w.BoxId == box.Id && w.MaterialNumber == strarr[3]).Select(s => s.SerialNumber).ToList();
|
||||
|
||||
box.Details.Add(new BoxDetails()
|
||||
{
|
||||
MaterialNumber = strarr[3],
|
||||
Qty = Convert.ToInt32(strarr[4]),
|
||||
SerialNumbers = sers
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
var lis = boxs.GroupBy(g => new { g.OrgCode, g.SupplierCode }).Select(s => s.Key).ToList();
|
||||
|
||||
var c = boxs.Where(w => w.CreateTime > DateTime.Now.AddHours(-1)).Count();
|
||||
var c1 = boxs.Where(w => w.Status == BoxStatus.Complete).Count();
|
||||
var c2 = boxs.Where(w => w.Status == BoxStatus.NoComplete).Count();
|
||||
|
||||
var res = await _boxRepositories.AddRange(boxs);
|
||||
}
|
||||
|
||||
private List<SerialNumbers> GetS()
|
||||
{
|
||||
List<SerialNumbers> serialNumbers = new List<SerialNumbers>();
|
||||
|
||||
string[] arr_t = System.IO.File.ReadAllLines("E:\\1\\t.txt");
|
||||
long number = 200000000;
|
||||
foreach (var str in arr_t)
|
||||
{
|
||||
var strarr = str.Split('\t');
|
||||
try
|
||||
{
|
||||
number = number - 1;
|
||||
var s = new SerialNumbers();
|
||||
|
||||
s.Id = number;
|
||||
s.SerialNumber = strarr[1];
|
||||
s.OrgCode = strarr[2].Replace("-", "");
|
||||
s.SupplierCode = strarr[3].Replace("-", "");
|
||||
s.MaterialNumber = strarr[5];
|
||||
if (string.IsNullOrEmpty(strarr[6]) || strarr[6] == "-")
|
||||
s.BoxId = 0;
|
||||
else
|
||||
s.BoxId = Convert.ToInt32(strarr[6].ToUpper().Replace("CTN", ""));
|
||||
if (string.IsNullOrEmpty(strarr[6]) || strarr[6] == "-")
|
||||
s.IsUse = false;
|
||||
else
|
||||
s.IsUse = true;
|
||||
if (!string.IsNullOrEmpty(strarr[7]) && strarr[7] != "-")
|
||||
s.CreateTime = Convert.ToDateTime(strarr[7]);
|
||||
if (!string.IsNullOrEmpty(strarr[8]) && strarr[8] != "-")
|
||||
s.CompleteCartonTime = Convert.ToDateTime(strarr[8]);
|
||||
s.NumberCode = "";
|
||||
|
||||
if (string.IsNullOrEmpty(s.OrgCode) && string.IsNullOrEmpty(s.SupplierCode))
|
||||
s.OrgCode = "101";
|
||||
serialNumbers.Add(s);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("数据处理错误:" + str);
|
||||
}
|
||||
}
|
||||
return serialNumbers;
|
||||
//int couont_1 = serialNumbers.Where(w => w.OrgCode == "" && w.SupplierCode == "").Count();
|
||||
//int couont_2 = serialNumbers.GroupBy(g =>new { g.MaterialNumber ,g.OrgCode,g.SupplierCode}).Count();
|
||||
|
||||
//var lis= serialNumbers.GroupBy(g => new { g.OrgCode, g.SupplierCode }).Select(s=>s.Key).ToList();
|
||||
}
|
||||
|
||||
private List<SerialNumbers> GetE()
|
||||
{
|
||||
List<SerialNumbers> serialNumbers = new List<SerialNumbers>();
|
||||
|
||||
string[] arr_t = System.IO.File.ReadAllLines("E:\\1\\e.txt");
|
||||
long number = 199000000;
|
||||
foreach (var str in arr_t)
|
||||
{
|
||||
var strarr = str.Split('\t');
|
||||
try
|
||||
{
|
||||
number = number - 1;
|
||||
var s = new SerialNumbers();
|
||||
|
||||
s.Id = number;
|
||||
s.SerialNumber = strarr[5];
|
||||
s.OrgCode = "101";
|
||||
s.SupplierCode = "";
|
||||
s.MaterialNumber = strarr[0];
|
||||
s.BoxId = 0;
|
||||
s.IsUse = false;
|
||||
s.CreateTime = Convert.ToDateTime("2023-09-06 00:00:05");
|
||||
s.NumberCode = "";
|
||||
serialNumbers.Add(s);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("数据处理错误:" + str);
|
||||
}
|
||||
}
|
||||
return serialNumbers;
|
||||
//int couont_1 = serialNumbers.Where(w => w.OrgCode == "" && w.SupplierCode == "").Count();
|
||||
//int couont_2 = serialNumbers.GroupBy(g =>new { g.MaterialNumber ,g.OrgCode,g.SupplierCode}).Count();
|
||||
|
||||
//var lis= serialNumbers.GroupBy(g => new { g.OrgCode, g.SupplierCode }).Select(s=>s.Key).ToList();
|
||||
}
|
||||
|
||||
|
||||
private async Task GetSer()
|
||||
{
|
||||
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
|
||||
|
||||
Result res_Rollback = Result.ReSuccess();
|
||||
bool isSuccess = true;
|
||||
|
||||
// var sList = GetS();
|
||||
var sList = GetE();
|
||||
var mList = sList.GroupBy(g => new { g.MaterialNumber, g.OrgCode, g.SupplierCode }).Select(s => s.Key).ToList();
|
||||
int numberid = 2620;
|
||||
List<SerialNumberGenerateRecord> records = new List<SerialNumberGenerateRecord>();
|
||||
int bid = 0;
|
||||
foreach (var m in mList)
|
||||
{
|
||||
bid++;
|
||||
Console.WriteLine($"处理生成计划数据{bid}");
|
||||
|
||||
var scountList = sList.Where(w => w.MaterialNumber == m.MaterialNumber && w.OrgCode == m.OrgCode && w.SupplierCode == m.SupplierCode).ToList();
|
||||
var scount = scountList.Count();
|
||||
SerialNumberGenerateRecord record = new SerialNumberGenerateRecord()
|
||||
{
|
||||
Id = numberid,
|
||||
MaterialNumber = m.MaterialNumber,
|
||||
OrgCode = m.OrgCode,
|
||||
SupplierCode = m.SupplierCode,
|
||||
CompanyId = 1,
|
||||
IsGenerateComplete = true,
|
||||
Number = scount,
|
||||
GenerateCompleteTime = Convert.ToDateTime("2023-09-06 00:00:05"),
|
||||
CreateTime = Convert.ToDateTime("2023-09-06 00:00:05")
|
||||
};
|
||||
records.Add(record);
|
||||
scountList.ForEach(f => f.GenerateRecordId = numberid);
|
||||
numberid++;
|
||||
}
|
||||
var cs = sList.Where(w => w.GenerateRecordId == 0).Count();
|
||||
try
|
||||
{
|
||||
if (res_Rollback.IsSuccess)
|
||||
{
|
||||
var res = await _sGenerateRecordRepositories.AddRange(records, false);
|
||||
if (!res) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError);
|
||||
}
|
||||
if (res_Rollback.IsSuccess)
|
||||
{
|
||||
for (int i = 1; i <= 7; i++)
|
||||
{
|
||||
Console.WriteLine($"正在处理第{i}页数据");
|
||||
var sis = sList.Skip((i - 1) * 100000).Take(100000).ToList();
|
||||
if (sis.Count() <= 0) break;
|
||||
var res = await _serialNumbersRepositories.AddRange(sis, false);
|
||||
if (!res)
|
||||
{
|
||||
res_Rollback = Result.ReFailure(ResultCodes.DateWriteError);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
throw ex;
|
||||
}
|
||||
|
||||
//提交事务An error occurred while saving the entity changes. See the inner exception for details.”
|
||||
|
||||
isSuccess = _transactionRepositories.CommitTransaction(res_Rollback.IsSuccess ? false : true, _transaction);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private List<SecurityNumbers> GetFE()
|
||||
{
|
||||
List<SecurityNumbers> serialNumbers = new List<SecurityNumbers>();
|
||||
|
||||
string[] arr_t = System.IO.File.ReadAllLines("E:\\1\\b6.txt");
|
||||
|
||||
foreach (var str in arr_t)
|
||||
{
|
||||
var strarr = str.Split('\t');
|
||||
try
|
||||
{
|
||||
var s = new SecurityNumbers();
|
||||
|
||||
s.SecurityNumber = strarr[3];
|
||||
s.OrgCode = "101";
|
||||
s.SupplierCode = "";
|
||||
s.MaterialNumber = strarr[0];
|
||||
s.CreateTime = Convert.ToDateTime("2024-06-13 12:10:00");
|
||||
serialNumbers.Add(s);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("数据处理错误:" + str);
|
||||
}
|
||||
}
|
||||
return serialNumbers;
|
||||
//int couont_1 = serialNumbers.Where(w => w.OrgCode == "" && w.SupplierCode == "").Count();
|
||||
//int couont_2 = serialNumbers.GroupBy(g =>new { g.MaterialNumber ,g.OrgCode,g.SupplierCode}).Count();
|
||||
|
||||
//var lis= serialNumbers.GroupBy(g => new { g.OrgCode, g.SupplierCode }).Select(s=>s.Key).ToList();
|
||||
}
|
||||
|
||||
|
||||
private async Task GetFSer()
|
||||
{
|
||||
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
|
||||
|
||||
Result res_Rollback = Result.ReSuccess();
|
||||
bool isSuccess = true;
|
||||
|
||||
// var sList = GetS();
|
||||
var sList = GetFE();
|
||||
var mList = sList.GroupBy(g => new { g.MaterialNumber }).Select(s => s.Key).ToList();
|
||||
int numberid = 30872924;
|
||||
List<SecurityNumberGenerateRecord> records = new List<SecurityNumberGenerateRecord>();
|
||||
int bid = 0;
|
||||
foreach (var m in mList)
|
||||
{
|
||||
bid++;
|
||||
Console.WriteLine($"处理生成计划数据{bid}");
|
||||
|
||||
var scountList = sList.Where(w => w.MaterialNumber == m.MaterialNumber).ToList();
|
||||
var scount = scountList.Count();
|
||||
SecurityNumberGenerateRecord record = new SecurityNumberGenerateRecord()
|
||||
{
|
||||
Id = numberid,
|
||||
LotNumber = "",
|
||||
MaterialNumber = m.MaterialNumber,
|
||||
OrgCode = "101",
|
||||
SupplierCode = "",
|
||||
CompanyId = 1,
|
||||
IsGenerateComplete = true,
|
||||
Number = scount,
|
||||
GenerateCompleteTime = Convert.ToDateTime("2024-06-13 12:15:00"),
|
||||
CreateTime = Convert.ToDateTime("2024-06-13 12:10:00")
|
||||
};
|
||||
records.Add(record);
|
||||
scountList.ForEach(f => f.GenerateRecordId = numberid);
|
||||
numberid++;
|
||||
}
|
||||
var cs = sList.Where(w => w.GenerateRecordId == 0).Count();
|
||||
try
|
||||
{
|
||||
if (res_Rollback.IsSuccess)
|
||||
{
|
||||
var res = await _securityGenerateRecordRepositories.AddRange(records, false);
|
||||
if (!res) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError);
|
||||
}
|
||||
if (res_Rollback.IsSuccess)
|
||||
{
|
||||
for (int i = 1; i <= 7; i++)
|
||||
{
|
||||
Console.WriteLine($"正在处理第{i}页数据");
|
||||
var sis = sList.Skip((i - 1) * 100000).Take(100000).ToList();
|
||||
if (sis.Count() <= 0) break;
|
||||
var res = await _securityNumbersRepositories.AddRange(sis, false);
|
||||
if (!res)
|
||||
{
|
||||
res_Rollback = Result.ReFailure(ResultCodes.DateWriteError);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
throw ex;
|
||||
}
|
||||
|
||||
//提交事务An error occurred while saving the entity changes. See the inner exception for details.”
|
||||
|
||||
isSuccess = _transactionRepositories.CommitTransaction(res_Rollback.IsSuccess ? false : true, _transaction);
|
||||
}
|
||||
}
|
||||
}
|
||||
150
src/BarCode.Web.Api/Controllers/WmsBoxController.cs
Normal file
150
src/BarCode.Web.Api/Controllers/WmsBoxController.cs
Normal file
@@ -0,0 +1,150 @@
|
||||
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 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);
|
||||
if (!res) return Result<SerialNumbersWmsResponse>.ReFailure(ResultCodes.DateWriteError);
|
||||
|
||||
_logger.LogInformation($"wms获取序列码返回序列码信息:{JsonConvert.SerializeObject(response)}");
|
||||
|
||||
return Result<SerialNumbersWmsResponse>.ReSuccess(response);
|
||||
}
|
||||
|
||||
/// <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; }
|
||||
}
|
||||
}
|
||||
40
src/BarCode.Web.Api/CustomResultFilter .cs
Normal file
40
src/BarCode.Web.Api/CustomResultFilter .cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.Filters;
|
||||
using BarCode.Web.Core.Internal.Results;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Api
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误拦截
|
||||
/// </summary>
|
||||
public class CustomResultFilter : ActionFilterAttribute
|
||||
{
|
||||
public override void OnResultExecuting(ResultExecutingContext context)
|
||||
{
|
||||
if (!context.ModelState.IsValid)
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
foreach (var item in context.ModelState.Values)
|
||||
{
|
||||
foreach (var error in item.Errors)
|
||||
{
|
||||
result.Message += error.ErrorMessage + ",";
|
||||
result.Status = 4204004;
|
||||
}
|
||||
}
|
||||
result.Message = result.Message.TrimEnd(',');
|
||||
context.Result = new JsonResult(result);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnActionExecuting(ActionExecutingContext context)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
60
src/BarCode.Web.Api/Program.cs
Normal file
60
src/BarCode.Web.Api/Program.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using BarCode.Web.Api;
|
||||
using BarCode.Web.Domain.Options;
|
||||
using BarCode.Web.Repositories.DependencyInjection;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.OpenApi.Models;
|
||||
using Swashbuckle.AspNetCore.SwaggerUI;
|
||||
using System.Configuration;
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
// Add services to the container.
|
||||
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
|
||||
var option = builder.Configuration.GetSection("AppOptions").Get<AppOptions>();
|
||||
var option_soa = builder.Configuration.GetSection("SoaOptions").Get<SoaOptions>();
|
||||
|
||||
var isDevelopment = builder.Configuration.GetSection("IsDevelopment").Get<bool>();
|
||||
var serverVersion = new MySqlServerVersion(new Version(8, 0, 18));
|
||||
//<2F><><EFBFBD>ݿ<EFBFBD>ע<EFBFBD><D7A2>
|
||||
builder.Services.AddApp(builder.Configuration, isDevelopment, builder =>
|
||||
{
|
||||
builder.AddDbContext(
|
||||
opt => { opt.UseMySql(option.DBConnectionString, serverVersion); });
|
||||
});
|
||||
|
||||
|
||||
builder.Services.AddControllers(options =>
|
||||
{
|
||||
options.Filters.Add<CustomResultFilter>();
|
||||
});
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
// Swagger<65>м<EFBFBD><D0BC><EFBFBD>
|
||||
if (isDevelopment)
|
||||
{
|
||||
app.UseSwagger();
|
||||
// SwaggerUI
|
||||
app.UseSwaggerUI(c =>
|
||||
{
|
||||
c.SwaggerEndpoint($"/swagger/v1/swagger.json", "BarCode-Api");
|
||||
c.RoutePrefix = string.Empty;
|
||||
c.DocExpansion(DocExpansion.None);
|
||||
});
|
||||
}
|
||||
|
||||
app.UseHttpsRedirection();
|
||||
app.UseStaticFiles();
|
||||
app.UseCors("AllowAllOrigin");
|
||||
//ͳһ<CDB3>쳣<EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD>
|
||||
app.UseMiddleware<AuthorizationTokenSecurityPolicy>();
|
||||
app.UseMiddleware<ErrorHandlingMiddleware>();
|
||||
|
||||
//app.UseAuthorization();
|
||||
|
||||
app.MapControllers();
|
||||
|
||||
app.Run();
|
||||
50
src/BarCode.Web.Api/Properties/launchSettings.json
Normal file
50
src/BarCode.Web.Api/Properties/launchSettings.json
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"profiles": {
|
||||
"http": {
|
||||
"commandName": "Project",
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "weatherforecast",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
},
|
||||
"dotnetRunMessages": true,
|
||||
"applicationUrl": "http://localhost:5050"
|
||||
},
|
||||
"IIS Express": {
|
||||
"commandName": "IISExpress",
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "weatherforecast",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
"Container (Dockerfile)": {
|
||||
"commandName": "Docker",
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/weatherforecast",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_HTTP_PORTS": "8080"
|
||||
},
|
||||
"publishAllPorts": true
|
||||
},
|
||||
"WSL": {
|
||||
"commandName": "WSL2",
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "http://localhost:5050/weatherforecast",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||
"ASPNETCORE_URLS": "http://localhost:5050"
|
||||
},
|
||||
"distributionName": ""
|
||||
}
|
||||
},
|
||||
"$schema": "http://json.schemastore.org/launchsettings.json",
|
||||
"iisSettings": {
|
||||
"windowsAuthentication": false,
|
||||
"anonymousAuthentication": true,
|
||||
"iisExpress": {
|
||||
"applicationUrl": "http://localhost:56505",
|
||||
"sslPort": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
8
src/BarCode.Web.Api/appsettings.Development.json
Normal file
8
src/BarCode.Web.Api/appsettings.Development.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
}
|
||||
100
src/BarCode.Web.Api/appsettings.json
Normal file
100
src/BarCode.Web.Api/appsettings.json
Normal file
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*", //允许所有主机
|
||||
"IsDevelopment": true, //是否是开发模式
|
||||
"AllowedCores": "localhost,http://localhost:8080,http://192.168.1.188:8080",//跨域
|
||||
"AppOptions": {
|
||||
"DBConnectionString": "Server=rm-wz9215skklas0287pwo.mysql.rds.aliyuncs.com; Database=test_barcode_db;User Id=orico_erp;password=Orico2023;port=3306;CharSet=gb2312;Connect Timeout=150;", //数据库连接地址
|
||||
"RedisConnectionString": "47.106.232.90:6379,password=orico.2020,DefaultDatabase=7", //redis连接地址
|
||||
"RedisIpRateLimitingConnectionString": "47.110.156.96:16379,password=123456,DefaultDatabase=3", //redis连接地址
|
||||
"SingleBaseUrl": "http://127.0.0.1:8066/api", //单点服务连接地址
|
||||
"DBType": "Mysql", //数据库类型
|
||||
"CompanyId": 1, //公司Id
|
||||
"AllowCache": false, //允许缓存
|
||||
"RedisDirectory": "Test" //redis标记
|
||||
},
|
||||
"SoaOptions": {
|
||||
"ModuleID": 30,//系统在单点系统的标记
|
||||
"AdminUser": [ 1 ],//管理员用户
|
||||
"Url_V3": "https://dev.uc.v3.f2b211.com", //正式http://uc.v3.f2b211.com //单点系统的连接地址v3版
|
||||
"Url": "http://dev.uc.f2b211.com",//单点系统的连接地址(老版 应该没用了)
|
||||
"AppId": "100829382855098368",//系统Id
|
||||
"AppSecret": "d0ebed53e67ec9b0be4e23918bb11792",//系统授权
|
||||
"PublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs7b9r5qLgy4R/caQi2ZwfCULhOOZsfyBwlhqL0Y/nyBI/bFwc0+iIVHp/gq78PYXAUOplQC5YnaLMHsAV4y3pfGPiA7jD5ZmnoEJq1MLIDBCbm7H8JaBdW4b48w7afccTgnkqFQP3vs7JS8VSTkOEO32lyX6LYjP6o32juUsDu4VKZH922BHvaNC0ewt1dOT4v6XHiGPOyJs3dW86yqhCWRDRGZjUPMZDlZfQx1qF3thMc4DObgKWYVS5RWsKvDg5DwbQznUuhneCABHpqZ0ICtkq187K29dHmk8KmCNtsHM8+zwP+j1GU9/zVT4XVw+oGJcO6II0ZTWkA/ESSUTmQIDAQAB",//公钥
|
||||
"PrivateKey": "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCztv2vmouDLhH9xpCLZnB8JQuE45mx/IHCWGovRj+fIEj9sXBzT6IhUen+Crvw9hcBQ6mVALlidoswewBXjLel8Y+IDuMPlmaegQmrUwsgMEJubsfwloF1bhvjzDtp9xxOCeSoVA/e+zslLxVJOQ4Q7faXJfotiM/qjfaO5SwO7hUpkf3bYEe9o0LR7C3V05Pi/pceIY87Imzd1bzrKqEJZENEZmNQ8xkOVl9DHWoXe2ExzgM5uApZhVLlFawq8ODkPBtDOdS6Gd4IAEempnQgK2SrXzsrb10eaTwqYI22wczz7PA/6PUZT3/NVPhdXD6gYlw7ogjRlNaQD8RJJROZAgMBAAECggEABeEWq4gCyGfZbtPwJp9TTrxnhBFuFcSM+i6qSqGhszL7MFF9vEf+pdhoL0dqnpduaTwtcBJ1/iKiqxNbD4Iq/+LHL0xNYVUqRkUya8hrtMHfan11TQmfcpgHkYw85VqQMn1gXaFiY4kUhkLkD2EudJ9UUd2MMbEoHCRIzKPyrQpO3We/4iwYFh96DW+iSzxRuqjtWE4+rnWaQECPzeOu7TMaktnccqw+dPM49EXPmtGCCqfSwLAAYEewL0q4dcaLgFL4qugABsTM7NQaS8AgE5so2RErcpeGSIy0s1aNgSPmdhJ8Msc+AMVc6xYpkylYYmmSNMKVnnQgVhAJsIrmAQKBgQDSFh/V52LffsYV69ePtgMnNlp+fGeYb1zqSAREKJlPjEB24BTPbbUhPQSrdi9ZFa0W93lEPTPyokWx8Rj/1GnHd5k9QPkPzIejO3ljuCtEXBn0Y+4S24T1gMEgGpiMgOQdmTI1xQ2btifvLFsu+63TDPeYiXJclTjFMtGGHMHw1QKBgQDa/aQmxLV+5/2hzf+ijsklJ4w3DTzzXl1OTdcyQia2oxs6fJ/9YEs0zzVLvcs3JA+evuJtuzteXmexUEv8hH9OGMJFbSiJ2ePwGNJ1JKPN4zRAA2FVtrmVdS4rVwjb/kuVU+4KFxpM98R/YZAnymhD9obepD23kxOdhVFgff0ZtQKBgQCqwBSr9F6mLBGvq3oOce7qJgEzIMXKXWj1egcNprnEr8eNVt9TIGXBWCi9e1dMXpPKQOWtEtlv8XgYAk9BT1GSL6C66l4D+0aa4zHsXLm92+W0fqv3Y7gTGczd3P/z4qaFcAghL8G5tzmJ6VFLRH+pM7bhoYTzvszfakhlamYu6QKBgQCYeoMRe2XkNyQixYx5Y3IqrJ60tkL6MXpGS2zLUcQi5u7OinfbtHCpFJ3HXx9gBXvazI5cWUG9M35/t6kw6hC6EAM01Ayl71EGnEHtztU/RjPbXn8nb1NI/Y5oHvHMPAPktcvIus1VSi9HgmcdTZHLwJun6jQO3hmKVImU5iSVAQKBgQC2xZ9KkzAui1YSadtD6jNtBzdXgEQ0K2MziRBlVslFfxmlJ/0X9r4lIw4RJJmsCS6To9n1h0DGK9uveVwE+oGPLD95ISala+OYj9ewiBnZwbkDD201q0Ui2ji4PCZa462ZNKJw/G8vQ5oc/zu2EBER/85Y5h+RtJfFs3b5TKtNxA=="//私钥
|
||||
},
|
||||
"ErpOptions": {
|
||||
"EndpointAddress": "http://erp.orico.com.cn/k3cloud/ERPGW.asmx",//金蝶连接地址
|
||||
"UserName": "mes",//金蝶账户名
|
||||
"Password": "A1B2C3Dh.",//金蝶密码
|
||||
"ErpId": "ce20210909"//金蝶Id
|
||||
},
|
||||
"WmsOptions": {
|
||||
"Url": "https://api.wms.test.f2b211.com/" //WMS系统的连接地址
|
||||
},
|
||||
"Qiniu": {
|
||||
"AccessKey": "dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms",//七牛云账号
|
||||
"SecretKey": "KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q",//七牛云授权
|
||||
"Bucket": "orico-wms-test", //正式 orico-wms //七牛云文件下的文件名
|
||||
"Url": "https://wmstestfile.f2b211.com/" //测试 https://wmstestfile.f2b211.com/ 正式 https://wmsfile.f2b211.com/ //访问七牛云文件的链接地址
|
||||
}, //定时任务配置项
|
||||
"QuartzJobOptions": {
|
||||
//存储类型:键和值
|
||||
"JobStoreTypeKey": "quartz.jobStore.type",
|
||||
"JobStoreTypeValue": "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz",
|
||||
|
||||
//数据库驱动类型-这里是mysql:键和值
|
||||
"JobStoreDriverDelegateTypeKey": "quartz.jobStore.driverDelegateType",
|
||||
"JobStoreDriverDelegateTypeValue": "Quartz.Impl.AdoJobStore.MySQLDelegate, Quartz",
|
||||
|
||||
//数据库表名前缀:键和值
|
||||
"JobStoreTablePrefixKey": "quartz.jobStore.tablePrefix",
|
||||
"JobStoreTablePrefixValue": "QRTZ_",
|
||||
|
||||
//数据源的名称:键和值
|
||||
"JobStoreDataSourceKey": "quartz.jobStore.dataSource",
|
||||
"JobStoreDataSourceValue": "myDS",
|
||||
|
||||
//连接字符串:键和值
|
||||
"JobStoreConnectionStringKey": "quartz.dataSource.myDS.connectionString",
|
||||
"JobStoreConnectionStringValue": "Server=rm-wz9215skklas0287pwo.mysql.rds.aliyuncs.com; Database=test_barcode_db;User Id=orico_erp;password=Orico2023;port=3306;CharSet=gb2312;Connect Timeout=150;",
|
||||
|
||||
//mysql提供器:键和值
|
||||
"JobStoreProviderKey": "quartz.dataSource.myDS.provider",
|
||||
"JobStoreProviderValue": "MySql",
|
||||
|
||||
//几点开始执行
|
||||
"JobStartHour": [ 15, 11, 1, 0, 0, 10 ],
|
||||
//几分钟开始执行
|
||||
"JobStartMinute": [ 30, 39, 30, 20, 5, 5 ],
|
||||
|
||||
//执行Cron表达式:可以是几小时or几分钟or几秒钟or几天or几周;
|
||||
"JobStartExpre": "0 0 * * * ?",
|
||||
"JobStartExpreAmount": "0 50 23 * * ?",
|
||||
"JobStartExpreSend": "0 0 12,16,20 * * ?",
|
||||
"JobStartExpreMaterial": "0 30 23 * * ?",
|
||||
"JobStartExpreCenerateData": "0 1 0 * * ?", //凌晨0点1分执行
|
||||
|
||||
//a.是否启用集群:键和值
|
||||
"JobStoreClusteredKey": "quartz.jobStore.clustered",
|
||||
"JobStoreClusteredValue": true,
|
||||
|
||||
//b.集群中的每个节点都必须有一个唯一的 instanceId
|
||||
// 通过将“AUTO”设置为该属性的值来完成
|
||||
//备注:a属性和b属性配套使用;如果不开启集群这两个属性去掉
|
||||
"JobStoreInstanceIdKey": "quartz.scheduler.instanceId",
|
||||
"JobStoreInstanceIdValue": "AUTO",
|
||||
|
||||
//以下可以自定义配置
|
||||
"QuartzJobKey": "OpsJob",
|
||||
"QuartzJobValue": "OpsJobGroup",
|
||||
"QuartzJobDescription": "OpsJob",
|
||||
"QuartzTriggerIdentity": "OpsTrigger",
|
||||
"QuartzTriggerDescription": "OpsJobTrigger"
|
||||
}
|
||||
}
|
||||
396
src/BarCode.Web.Api/wwwroot/BarCode.Web.Api.xml
Normal file
396
src/BarCode.Web.Api/wwwroot/BarCode.Web.Api.xml
Normal file
@@ -0,0 +1,396 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>BarCode.Web.Api</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:BarCode.Web.Api.Controllers.BoxController">
|
||||
<summary>
|
||||
箱子
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxController.GetPagedList(BarCode.Web.Core.Dto.Box.BoxQueryRequest)">
|
||||
<summary>
|
||||
箱信息-列表
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxController.Generate(BarCode.Web.Core.Dto.Box.GenerateBoxRequest)">
|
||||
<summary>
|
||||
生成箱码
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxController.Save(BarCode.Web.Core.Dto.Box.SaveBoxRequest)">
|
||||
<summary>
|
||||
装箱保存
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxController.Print(BarCode.Web.Core.Dto.OperateRequest)">
|
||||
<summary>
|
||||
打印
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxController.Delete(BarCode.Web.Core.Dto.Box.DeleteBoxSerialNumberRequest)">
|
||||
<summary>
|
||||
删除
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxController.Clear(System.Int32)">
|
||||
<summary>
|
||||
清空装箱信息
|
||||
</summary>
|
||||
<param name="boxId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxController.GetBoxByNo(System.String)">
|
||||
<summary>
|
||||
根据箱号获取箱信息
|
||||
</summary>
|
||||
<param name="boxBillNo"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxController.Restart(BarCode.Web.Core.Dto.OperateRequest)">
|
||||
<summary>
|
||||
重新装箱
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxController.BeginCarton(System.Int32)">
|
||||
<summary>
|
||||
开始装箱
|
||||
</summary>
|
||||
<param name="boxId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:BarCode.Web.Api.Controllers.BoxMarkController">
|
||||
<summary>
|
||||
箱唛-接口
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxMarkController.GetPagedList(BarCode.Web.Core.Dto.BoxMarkQueryRequest)">
|
||||
<summary>
|
||||
箱唛--列表
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxMarkController.GenerateAsync(BarCode.Web.Core.Dto.GenerateBoxMarkDto)">
|
||||
<summary>
|
||||
生成
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.BoxMarkController.Delete(BarCode.Web.Core.Dto.OperateRequest)">
|
||||
<summary>
|
||||
批量删除
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:BarCode.Web.Api.Controllers.ClientLogController">
|
||||
<summary>
|
||||
前端记录日志
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.ClientLogController.Log(System.String)">
|
||||
<summary>
|
||||
前端记录日志
|
||||
</summary>
|
||||
<param name="log"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.ClientLogController.Log">
|
||||
<summary>
|
||||
前端记录日志
|
||||
</summary>
|
||||
<param name="log"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.ClientLogController.Logs(System.Collections.Generic.List{System.String})">
|
||||
<summary>
|
||||
前端记录日志(数组)
|
||||
</summary>
|
||||
<param name="logs"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:BarCode.Web.Api.Controllers.LogRequest">
|
||||
<summary>
|
||||
消息数组
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:BarCode.Web.Api.Controllers.LogRequest.logs">
|
||||
<summary>
|
||||
消息内容数组
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:BarCode.Web.Api.Controllers.FileDownManagerController">
|
||||
<summary>
|
||||
上传下载中心
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.FileDownManagerController.GetStatus">
|
||||
<summary>
|
||||
获取需要的状态列表
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.FileDownManagerController.FileDownManagerQuery(BarCode.Web.Core.Dto.FileDownManagerRequest)">
|
||||
<summary>
|
||||
下载导出文件 列表
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.FileDownManagerController.TemplateExcel">
|
||||
<summary>
|
||||
模板(生成序列码)
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:BarCode.Web.Api.Controllers.LoginController">
|
||||
<summary>
|
||||
登录接口
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.LoginController.LoginIn(System.String)">
|
||||
<summary>
|
||||
登录
|
||||
</summary>
|
||||
<param name="code"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.LoginController.LoginInPwd(BarCode.Web.Core.Dto.Login.LoginRequest)">
|
||||
<summary>
|
||||
登录-APP和小程序
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.LoginController.LoginOut">
|
||||
<summary>
|
||||
退出登录
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.LoginController.LoginOutSingle">
|
||||
<summary>
|
||||
PHP单点退出使用
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.LoginController.GetMenuList">
|
||||
<summary>
|
||||
菜单列表
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:BarCode.Web.Api.Controllers.MaterialController">
|
||||
<summary>
|
||||
物料
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.MaterialController.Refresh(System.String,System.String)">
|
||||
<summary>
|
||||
刷新物料 69条码或id32进制
|
||||
</summary>
|
||||
<param name="number">物料编码</param>
|
||||
<param name="type">69 条码,id id32进制,other 名字和规格型号</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SecurityController.Get(System.String)">
|
||||
<summary>
|
||||
获取序列号信息
|
||||
</summary>
|
||||
<param name="security">防伪码</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:BarCode.Web.Api.Controllers.SecurityNumberController">
|
||||
<summary>
|
||||
防伪码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SecurityNumberController.GetGenerateRecordList(BarCode.Web.Core.Dto.SecurityNumbers.SecurityGenerateRecordQueryRequest)">
|
||||
<summary>
|
||||
防伪码生成记录列表
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SecurityNumberController.GetPagedList(BarCode.Web.Core.Dto.SecurityNumbers.SecurityNumberQueryRequest)">
|
||||
<summary>
|
||||
防伪码列表
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SecurityNumberController.ExportAll(BarCode.Web.Core.Dto.OperateRequest)">
|
||||
<summary>
|
||||
防伪码生成记录页面-下载条码
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SecurityNumberController.Export(BarCode.Web.Core.Dto.SecurityNumbers.SecurityNumberQueryRequest)">
|
||||
<summary>
|
||||
防伪码页面-条码下载
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SecurityNumberController.DownLoad(BarCode.Web.Core.Dto.SecurityNumbers.OperateSecurityNumberRequest)">
|
||||
<summary>
|
||||
下载(一般后端内部调用)
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SecurityNumberController.Generate(BarCode.Web.Core.Dto.SecurityNumbers.GenerateSecurityNumberRequest)">
|
||||
<summary>
|
||||
生成序列号
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:BarCode.Web.Api.Controllers.SerialNumberController">
|
||||
<summary>
|
||||
序列号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SerialNumberController.GetGenerateRecordList(BarCode.Web.Core.Dto.SerialNumbers.SGenerateRecordQueryRequest)">
|
||||
<summary>
|
||||
序列码生成记录列表
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SerialNumberController.GetPagedList(BarCode.Web.Core.Dto.SerialNumbers.SerialNumberQueryRequest)">
|
||||
<summary>
|
||||
序列码列表
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SerialNumberController.ExportAll(BarCode.Web.Core.Dto.OperateRequest)">
|
||||
<summary>
|
||||
条码生成记录页面-下载条码
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SerialNumberController.Export(BarCode.Web.Core.Dto.SerialNumbers.SerialNumberQueryRequest)">
|
||||
<summary>
|
||||
序列码页面-条码下载
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SerialNumberController.Generate(BarCode.Web.Core.Dto.SerialNumbers.GenerateSerialNumberRequest)">
|
||||
<summary>
|
||||
生成序列号
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SerialNumberController.Print(BarCode.Web.Core.Dto.SerialNumbers.OperateSerialNumberRequest)">
|
||||
<summary>
|
||||
打印
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SerialNumberController.DownLoad(BarCode.Web.Core.Dto.SerialNumbers.OperateSerialNumberRequest)">
|
||||
<summary>
|
||||
下载(一般后端内部调用)
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SerialNumberController.GetByBoxId(BarCode.Web.Core.Dto.SerialNumbers.SerialNumberByBoxIdQueryRequest)">
|
||||
<summary>
|
||||
获取序列号信息
|
||||
</summary>
|
||||
<param name="boxId">箱Id</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SerialNumberController.Get(System.String,System.String)">
|
||||
<summary>
|
||||
获取序列号信息
|
||||
</summary>
|
||||
<param name="serialNumber">序列号</param>
|
||||
<param name="orgCode">组织或供应商编码</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SerialNumberController.UpdateMaterial(BarCode.Web.Core.Dto.SerialNumbers.UpdateMaterialRequest)">
|
||||
<summary>
|
||||
修改序列码物料
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:BarCode.Web.Api.Controllers.SysConfigController">
|
||||
<summary>
|
||||
系统配置
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SysConfigController.GetMaterialList(System.String)">
|
||||
<summary>
|
||||
获取物料;通过规格型号
|
||||
</summary>
|
||||
<param name="speci"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SysConfigController.GetSupplierOrOrg(System.String,System.String)">
|
||||
<summary>
|
||||
获取供应商-erp基础数据
|
||||
使用code做键
|
||||
</summary>
|
||||
<param name="name">供应商名字</param>
|
||||
<param name="orgCode">组织编码</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.SysConfigController.GetOrg(System.String)">
|
||||
<summary>
|
||||
获取组织-erp基础数据
|
||||
使用 code做键
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.WmsBoxController.GetList(BarCode.Web.Core.Dto.Box.WmsBoxRequest)">
|
||||
<summary>
|
||||
Wms获取箱信息-列表
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.WmsBoxController.GetSerialNumber(BarCode.Web.Core.Dto.SerialNumbers.SerialNumbersWmsRequest)">
|
||||
<summary>
|
||||
Wms获取序列号信息
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:BarCode.Web.Api.Controllers.WmsBoxController.Get(System.String)">
|
||||
<summary>
|
||||
获取序列号信息
|
||||
</summary>
|
||||
<param name="serialNumber">序列号</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:BarCode.Web.Api.CustomResultFilter">
|
||||
<summary>
|
||||
错误拦截
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
4526
src/BarCode.Web.Api/wwwroot/BarCode.Web.Core.xml
Normal file
4526
src/BarCode.Web.Api/wwwroot/BarCode.Web.Core.xml
Normal file
File diff suppressed because it is too large
Load Diff
4028
src/BarCode.Web.Api/wwwroot/BarCode.Web.Domain.xml
Normal file
4028
src/BarCode.Web.Api/wwwroot/BarCode.Web.Domain.xml
Normal file
File diff suppressed because it is too large
Load Diff
33
src/BarCode.Web.Core/BarCode.Web.Core.csproj
Normal file
33
src/BarCode.Web.Core/BarCode.Web.Core.csproj
Normal file
@@ -0,0 +1,33 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||
<DocumentationFile>../BarCode.Web.Api/wwwroot/BarCode.Web.Core.xml</DocumentationFile>
|
||||
<ServerGarbageCollection>true</ServerGarbageCollection>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="7.5.1" />
|
||||
<PackageReference Include="MySql.Data" Version="8.3.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="Npoi.Mapper" Version="3.5.1" />
|
||||
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
|
||||
<PackageReference Include="Quartz" Version="3.8.1" />
|
||||
<PackageReference Include="Quartz.AspNetCore" Version="3.8.1" />
|
||||
<PackageReference Include="Quartz.Serialization.Json" Version="3.8.1" />
|
||||
<PackageReference Include="StackExchange.Redis" Version="2.7.33" />
|
||||
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
|
||||
<PackageReference Include="System.Json" Version="4.7.1" />
|
||||
<PackageReference Include="System.ServiceModel.Duplex" Version="6.0.0" />
|
||||
<PackageReference Include="System.ServiceModel.Federation" Version="6.0.*" />
|
||||
<PackageReference Include="System.ServiceModel.Http" Version="8.0.0" />
|
||||
<PackageReference Include="System.ServiceModel.NetTcp" Version="8.0.0" />
|
||||
<PackageReference Include="System.ServiceModel.Security" Version="6.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"ExtendedData": {
|
||||
"inputs": [
|
||||
"http://119.23.206.129/K3cloud/erpgw.asmx?WSDL"
|
||||
],
|
||||
"collectionTypes": [
|
||||
"System.Array",
|
||||
"System.Collections.Generic.Dictionary`2"
|
||||
],
|
||||
"namespaceMappings": [
|
||||
"*, ERP"
|
||||
],
|
||||
"references": [
|
||||
"BouncyCastle.Cryptography, {BouncyCastle.Cryptography, 2.2.1}",
|
||||
"Enums.NET, {Enums.NET, 4.0.1}",
|
||||
"Google.Protobuf, {Google.Protobuf, 3.25.1}",
|
||||
"ICSharpCode.SharpZipLib, {SharpZipLib, 1.3.3}",
|
||||
"K4os.Compression.LZ4, {K4os.Compression.LZ4, 1.3.5}",
|
||||
"K4os.Compression.LZ4.Streams, {K4os.Compression.LZ4.Streams, 1.3.5}",
|
||||
"K4os.Hash.xxHash, {K4os.Hash.xxHash, 1.0.8}",
|
||||
"LogicExtensions, {LogicExtensions, 0.0.3}",
|
||||
"MathNet.Numerics, {MathNet.Numerics.Signed, 4.15.0}",
|
||||
"Microsoft.EntityFrameworkCore, {Microsoft.EntityFrameworkCore, 8.0.2}",
|
||||
"Microsoft.EntityFrameworkCore.Abstractions, {Microsoft.EntityFrameworkCore.Abstractions, 8.0.2}",
|
||||
"Microsoft.EntityFrameworkCore.Relational, {Microsoft.EntityFrameworkCore.Relational, 8.0.2}",
|
||||
"Microsoft.Extensions.Caching.Abstractions, {Microsoft.Extensions.Caching.Abstractions, 8.0.0}",
|
||||
"Microsoft.Extensions.Caching.Memory, {Microsoft.Extensions.Caching.Memory, 8.0.0}",
|
||||
"Microsoft.Extensions.Configuration.Abstractions, {Microsoft.Extensions.Configuration.Abstractions, 8.0.0}",
|
||||
"Microsoft.Extensions.DependencyInjection, {Microsoft.Extensions.DependencyInjection, 8.0.0}",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions, {Microsoft.Extensions.DependencyInjection.Abstractions, 8.0.0}",
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions, {Microsoft.Extensions.Diagnostics.Abstractions, 8.0.0}",
|
||||
"Microsoft.Extensions.Diagnostics.HealthChecks, {Microsoft.Extensions.Diagnostics.HealthChecks, 8.0.0}",
|
||||
"Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, {Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions, 8.0.0}",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions, {Microsoft.Extensions.FileProviders.Abstractions, 8.0.0}",
|
||||
"Microsoft.Extensions.Hosting.Abstractions, {Microsoft.Extensions.Hosting.Abstractions, 8.0.0}",
|
||||
"Microsoft.Extensions.Logging, {Microsoft.Extensions.Logging, 8.0.0}",
|
||||
"Microsoft.Extensions.Logging.Abstractions, {Microsoft.Extensions.Logging.Abstractions, 8.0.0}",
|
||||
"Microsoft.Extensions.ObjectPool, {Microsoft.Extensions.ObjectPool, 6.0.16}",
|
||||
"Microsoft.Extensions.Options, {Microsoft.Extensions.Options, 8.0.0}",
|
||||
"Microsoft.Extensions.Primitives, {Microsoft.Extensions.Primitives, 8.0.0}",
|
||||
"Microsoft.IdentityModel.Abstractions, {Microsoft.IdentityModel.Abstractions, 7.5.1}",
|
||||
"Microsoft.IdentityModel.Logging, {Microsoft.IdentityModel.Logging, 7.5.1}",
|
||||
"Microsoft.IdentityModel.Tokens, {Microsoft.IdentityModel.Tokens, 7.5.1}",
|
||||
"Microsoft.IO.RecyclableMemoryStream, {Microsoft.IO.RecyclableMemoryStream, 2.3.2}",
|
||||
"Microsoft.Win32.SystemEvents, {Microsoft.Win32.SystemEvents, 6.0.0}",
|
||||
"MySql.Data, {MySql.Data, 8.3.0}",
|
||||
"MySqlConnector, {MySqlConnector, 2.3.5}",
|
||||
"Newtonsoft.Json, {Newtonsoft.Json, 13.0.3}",
|
||||
"NPOI.Core, {NPOI, 2.6.2}",
|
||||
"Npoi.Mapper, {Npoi.Mapper, 6.2.1}",
|
||||
"NPOI.OOXML, {NPOI, 2.6.2}",
|
||||
"NPOI.OpenXml4Net, {NPOI, 2.6.2}",
|
||||
"NPOI.OpenXmlFormats, {NPOI, 2.6.2}",
|
||||
"Pipelines.Sockets.Unofficial, {Pipelines.Sockets.Unofficial, 2.2.8}",
|
||||
"Pomelo.EntityFrameworkCore.MySql, {Pomelo.EntityFrameworkCore.MySql, 8.0.2}",
|
||||
"Quartz, {Quartz, 3.8.1}",
|
||||
"Quartz.AspNetCore, {Quartz.AspNetCore, 3.8.1}",
|
||||
"Quartz.Extensions.DependencyInjection, {Quartz.Extensions.DependencyInjection, 3.8.1}",
|
||||
"Quartz.Extensions.Hosting, {Quartz.Extensions.Hosting, 3.8.1}",
|
||||
"Quartz.Serialization.Json, {Quartz.Serialization.Json, 3.8.1}",
|
||||
"SixLabors.Fonts, {SixLabors.Fonts, 1.0.0}",
|
||||
"SixLabors.ImageSharp, {SixLabors.ImageSharp, 2.1.4}",
|
||||
"StackExchange.Redis, {StackExchange.Redis, 2.7.33}",
|
||||
"System.ComponentModel.Annotations, {System.ComponentModel.Annotations, 5.0.0}",
|
||||
"System.Configuration.ConfigurationManager, {System.Configuration.ConfigurationManager, 6.0.1}",
|
||||
"System.Diagnostics.DiagnosticSource, {System.Diagnostics.DiagnosticSource, 8.0.0}",
|
||||
"System.Drawing.Common, {System.Drawing.Common, 6.0.0}",
|
||||
"System.Formats.Asn1, {System.Formats.Asn1, 6.0.0}",
|
||||
"System.IO, {System.IO, 4.3.0}",
|
||||
"System.IO.Pipelines, {System.IO.Pipelines, 6.0.3}",
|
||||
"System.Json, {System.Json, 4.7.1}",
|
||||
"System.Reflection, {System.Reflection, 4.3.0}",
|
||||
"System.Reflection.Primitives, {System.Reflection.Primitives, 4.3.0}",
|
||||
"System.Runtime, {System.Runtime, 4.3.0}",
|
||||
"System.Runtime.CompilerServices.Unsafe, {System.Runtime.CompilerServices.Unsafe, 6.0.0}",
|
||||
"System.Runtime.Loader, {System.Runtime.Loader, 4.3.0}",
|
||||
"System.Security.AccessControl, {System.Security.AccessControl, 6.0.0}",
|
||||
"System.Security.Cryptography.Pkcs, {System.Security.Cryptography.Pkcs, 6.0.1}",
|
||||
"System.Security.Cryptography.ProtectedData, {System.Security.Cryptography.ProtectedData, 6.0.0}",
|
||||
"System.Security.Cryptography.Xml, {System.Security.Cryptography.Xml, 6.0.1}",
|
||||
"System.Security.Permissions, {System.Security.Permissions, 6.0.0}",
|
||||
"System.ServiceModel.Duplex, {System.ServiceModel.Duplex, 6.0.0}",
|
||||
"System.ServiceModel.Http, {System.ServiceModel.Http, 8.0.0}",
|
||||
"System.ServiceModel.NetFramingBase, {System.ServiceModel.NetFramingBase, 8.0.0}",
|
||||
"System.ServiceModel.NetTcp, {System.ServiceModel.NetTcp, 8.0.0}",
|
||||
"System.ServiceModel.Primitives, {System.ServiceModel.Primitives, 8.0.0}",
|
||||
"System.ServiceModel.Security, {System.ServiceModel.Security, 6.0.0}",
|
||||
"System.Text.Encoding, {System.Text.Encoding, 4.3.0}",
|
||||
"System.Text.Encoding.CodePages, {System.Text.Encoding.CodePages, 5.0.0}",
|
||||
"System.Text.Encodings.Web, {System.Text.Encodings.Web, 7.0.0}",
|
||||
"System.Text.Json, {System.Text.Json, 7.0.1}",
|
||||
"System.Threading.Tasks, {System.Threading.Tasks, 4.3.0}",
|
||||
"System.Windows.Extensions, {System.Windows.Extensions, 6.0.0}",
|
||||
"ZstdSharp, {ZstdSharp.Port, 0.7.1}"
|
||||
],
|
||||
"targetFramework": "net8.0",
|
||||
"typeReuseMode": "All"
|
||||
}
|
||||
}
|
||||
1236
src/BarCode.Web.Core/Connected Services/ERP/Reference.cs
Normal file
1236
src/BarCode.Web.Core/Connected Services/ERP/Reference.cs
Normal file
File diff suppressed because it is too large
Load Diff
31
src/BarCode.Web.Core/Dto/Box/BoxDetailsResponse.cs
Normal file
31
src/BarCode.Web.Core/Dto/Box/BoxDetailsResponse.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Box
|
||||
{
|
||||
/// <summary>
|
||||
/// 箱明细信息
|
||||
/// </summary>
|
||||
public class BoxDetailsResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 数量(装箱数量)
|
||||
/// </summary>
|
||||
public decimal Qty { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 序列号
|
||||
/// </summary>
|
||||
public List<string> SerialNumbers { get; set; } = new List<string>();
|
||||
}
|
||||
}
|
||||
83
src/BarCode.Web.Core/Dto/Box/BoxInfoResponse.cs
Normal file
83
src/BarCode.Web.Core/Dto/Box/BoxInfoResponse.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Box
|
||||
{
|
||||
/// <summary>
|
||||
/// 箱列表返回信息
|
||||
/// </summary>
|
||||
public class BoxInfoResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
/// <summary>
|
||||
/// 明细Id(可能为0)
|
||||
/// </summary>
|
||||
public int DetailId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 箱编号
|
||||
/// </summary>
|
||||
public string BoxBillNo { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 供应商或组织
|
||||
/// </summary>
|
||||
public string SupplierOrOrg { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料规格型号
|
||||
/// </summary>
|
||||
public string Specifications { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料名称
|
||||
/// </summary>
|
||||
public string MaterialName { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料条码
|
||||
/// </summary>
|
||||
public string BarCode { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 序列号
|
||||
/// </summary>
|
||||
public string SerialNumbers { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 数量(装箱数量)
|
||||
/// </summary>
|
||||
public decimal Qty { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 箱状态
|
||||
/// </summary>
|
||||
public string Status { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 装箱开始时间
|
||||
/// </summary>
|
||||
public string CartonBeginTime { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 装箱结束时间(完成装箱时间)
|
||||
/// </summary>
|
||||
public string CartonEndTime { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 装箱人
|
||||
/// </summary>
|
||||
public string CartonUser { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 生成人
|
||||
/// </summary>
|
||||
public string Creator { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public string CreateTime { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 箱号打印次数
|
||||
/// </summary>
|
||||
public int PrintNumber { get; set; } = 0;
|
||||
}
|
||||
}
|
||||
69
src/BarCode.Web.Core/Dto/Box/BoxQueryRequest.cs
Normal file
69
src/BarCode.Web.Core/Dto/Box/BoxQueryRequest.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Box
|
||||
{
|
||||
/// <summary>
|
||||
/// 箱信息列表
|
||||
/// </summary>
|
||||
public class BoxQueryRequest : PaginationBaseRequestDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织Code
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "组织不能为空")]
|
||||
public string OrgCode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 箱号(开始)
|
||||
/// </summary>
|
||||
public string BoxBeginNo { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 箱号(结束)
|
||||
/// </summary>
|
||||
public string BoxEndNo { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 箱状态
|
||||
/// </summary>
|
||||
public int? Status { get; set; }
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime? CreateBeginDate { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime? CreateEndDate { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 装箱完成时间
|
||||
/// </summary>
|
||||
public DateTime? CartonBeginDate { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 装箱完成时间
|
||||
/// </summary>
|
||||
public DateTime? CartonEndDate { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 物料编码/名称/型号规格
|
||||
///</summary>
|
||||
public string MaterialNumber { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 序列号
|
||||
/// </summary>
|
||||
public List<string> SerialNumbers { get; set; } = new List<string>();
|
||||
/// <summary>
|
||||
/// 箱号打印状态 打印 true 未打印false
|
||||
/// </summary>
|
||||
public bool? BoxPrintStatus { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 供应商或组织
|
||||
/// </summary>
|
||||
public string SupplierOrOrg { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 生成人
|
||||
/// </summary>
|
||||
public string CreateUser { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
67
src/BarCode.Web.Core/Dto/Box/BoxResponse.cs
Normal file
67
src/BarCode.Web.Core/Dto/Box/BoxResponse.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Box
|
||||
{
|
||||
/// <summary>
|
||||
/// 箱信息
|
||||
/// </summary>
|
||||
public class BoxResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
public int Id { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 箱编号
|
||||
/// </summary>
|
||||
public string BoxBillNo { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 供应商Code
|
||||
/// </summary>
|
||||
public string SupplierCode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 组织Code
|
||||
/// </summary>
|
||||
public string OrgCode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 箱状态
|
||||
/// </summary>
|
||||
public string Status { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 装箱开始时间
|
||||
/// </summary>
|
||||
public string CartonBeginTime { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 装箱结束时间(完成装箱时间)
|
||||
/// </summary>
|
||||
public string CartonEndTime { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 完成装箱用户
|
||||
/// </summary>
|
||||
public int CartonUserId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 箱子创建用户
|
||||
/// </summary>
|
||||
public int CreatorId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public string CreateTime { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 箱号打印次数
|
||||
/// </summary>
|
||||
public int PrintNumber { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 最新打印时间
|
||||
/// </summary>
|
||||
public string PrintTime { get; set; }
|
||||
/// <summary>
|
||||
/// 明细
|
||||
/// </summary>
|
||||
public List<BoxDetailsResponse> Details { get; set; } = new List<BoxDetailsResponse>();
|
||||
}
|
||||
}
|
||||
31
src/BarCode.Web.Core/Dto/Box/DeleteBoxSerialNumberRequest.cs
Normal file
31
src/BarCode.Web.Core/Dto/Box/DeleteBoxSerialNumberRequest.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Box
|
||||
{
|
||||
/// <summary>
|
||||
/// 删除箱和序列码绑定
|
||||
/// </summary>
|
||||
public class DeleteBoxSerialNumberRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 箱Id
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "箱不能为空")]
|
||||
public int BoxId { get; set; }
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "物料不能为空")]
|
||||
public string MaterialNumber { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 序列号
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "序列号不能为空")]
|
||||
public string SerialNumber { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
27
src/BarCode.Web.Core/Dto/Box/GenerateBoxRequest.cs
Normal file
27
src/BarCode.Web.Core/Dto/Box/GenerateBoxRequest.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Box
|
||||
{
|
||||
/// <summary>
|
||||
/// 生成箱码
|
||||
/// </summary>
|
||||
public class GenerateBoxRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织Code
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "组织不能为空")]
|
||||
public string OrgCode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 生成数量
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "数量不能为空")]
|
||||
[Range(0.0000000001, 10000000000, ErrorMessage = "0<数量<=10000000000")]
|
||||
public int Number { get; set; } = 0;
|
||||
}
|
||||
}
|
||||
26
src/BarCode.Web.Core/Dto/Box/SaveBoxDetailsRequest.cs
Normal file
26
src/BarCode.Web.Core/Dto/Box/SaveBoxDetailsRequest.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Box
|
||||
{
|
||||
/// <summary>
|
||||
/// 箱信息明细
|
||||
/// </summary>
|
||||
public class SaveBoxDetailsRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "物料不能为空")]
|
||||
public string MaterialNumber { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 序列号
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "序列号不能为空")]
|
||||
public string SerialNumber { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
30
src/BarCode.Web.Core/Dto/Box/SaveBoxRequest.cs
Normal file
30
src/BarCode.Web.Core/Dto/Box/SaveBoxRequest.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Box
|
||||
{
|
||||
/// <summary>
|
||||
/// 保存箱信息(装箱保存,完成装箱)
|
||||
/// </summary>
|
||||
public class SaveBoxRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 箱Id
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "箱不能为空")]
|
||||
public int BoxId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 是否完成装箱(保存 false 完成装箱 true)
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "装箱状态不能为空")]
|
||||
public bool IsCarton { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 明细信息
|
||||
/// </summary>
|
||||
public List<SaveBoxDetailsRequest> Details { get; set; } = new List<SaveBoxDetailsRequest>();
|
||||
}
|
||||
}
|
||||
47
src/BarCode.Web.Core/Dto/Box/WmsBoxRequest.cs
Normal file
47
src/BarCode.Web.Core/Dto/Box/WmsBoxRequest.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Box
|
||||
{
|
||||
/// <summary>
|
||||
/// 老ops箱信息请求
|
||||
/// </summary>
|
||||
public class WmsBoxRequest
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public WmsBoxRequest() { }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="strartTime"></param>
|
||||
/// <param name="endTime"></param>
|
||||
public WmsBoxRequest(DateTime strartTime, DateTime endTime)
|
||||
{
|
||||
this.StrartTime = strartTime;
|
||||
this.EndTime = endTime;
|
||||
}
|
||||
/// <summary>
|
||||
/// 开始时间
|
||||
/// </summary>
|
||||
public DateTime? StrartTime { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 结束时间
|
||||
/// </summary>
|
||||
public DateTime? EndTime { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 箱号
|
||||
/// </summary>
|
||||
public string? BoxBillNo { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 页码
|
||||
/// </summary>
|
||||
public int Page { get; set; } = 1;
|
||||
/// <summary>
|
||||
/// 每页条数
|
||||
/// </summary>
|
||||
public int Limit { get; set; } = 10000000;
|
||||
}
|
||||
}
|
||||
95
src/BarCode.Web.Core/Dto/Box/WmsBoxResponse.cs
Normal file
95
src/BarCode.Web.Core/Dto/Box/WmsBoxResponse.cs
Normal file
@@ -0,0 +1,95 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Box
|
||||
{
|
||||
/// <summary>
|
||||
/// 老ops箱信息
|
||||
/// </summary>
|
||||
public class WmsBoxResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 对应老OPS的箱ID
|
||||
/// </summary>
|
||||
[JsonProperty("CartonId")]
|
||||
public int OpsBoxId { get; set; }
|
||||
/// <summary>
|
||||
/// 箱编号(老OPS生成的箱号)
|
||||
/// </summary>
|
||||
[JsonProperty("CartonNo")]
|
||||
public string BoxBillNo { get; set; }
|
||||
/// <summary>
|
||||
/// 供应商Id
|
||||
/// </summary>
|
||||
[JsonProperty("GysNo")]
|
||||
public int? SupplierId { get; set; }
|
||||
/// <summary>
|
||||
/// 组织Id
|
||||
/// </summary>
|
||||
[JsonProperty("orgId")]
|
||||
public int? OrgId { get; set; }
|
||||
/// <summary>
|
||||
/// 完成装箱时间
|
||||
/// </summary>
|
||||
[JsonProperty("CompleteCartonTime")]
|
||||
public DateTime CompleteCartonTime { get; set; } = DateTime.Now;
|
||||
/// <summary>
|
||||
/// 完成装箱用户
|
||||
/// </summary>
|
||||
[JsonProperty("BoxUser")]
|
||||
public string CompleteCartonUser { get; set; }
|
||||
/// <summary>
|
||||
/// 箱子创建用户
|
||||
/// </summary>
|
||||
[JsonProperty("Create_user")]
|
||||
public string CreateUser { get; set; }
|
||||
/// <summary>
|
||||
/// 创建时间(对应老OPS的创建时间)
|
||||
/// </summary>
|
||||
[JsonProperty("cartonCreateTime")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.Now;
|
||||
/// <summary>
|
||||
/// 明细
|
||||
/// </summary>
|
||||
[JsonProperty("BoxReturnDetails")]
|
||||
public List<OpsBoxDetailsResponse> Details { get; set; } = new List<OpsBoxDetailsResponse>();
|
||||
}
|
||||
public class OpsSerialNumbersResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 序列号
|
||||
/// </summary>
|
||||
[JsonProperty("sn")]
|
||||
public string SerialNumber { get; set; }
|
||||
/// <summary>
|
||||
/// 序列号生成时间
|
||||
/// </summary>
|
||||
[JsonProperty("barCreateTime")]
|
||||
public DateTime? BarCreateTime { get; set; } = DateTime.Now;
|
||||
/// <summary>
|
||||
/// 序列号生成用户
|
||||
/// </summary>
|
||||
[JsonProperty("barCereateUser")]
|
||||
public string BarCereateUser { get; set; }
|
||||
|
||||
}
|
||||
public class OpsBoxDetailsResponse {
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
[JsonProperty("FMaterialNo")]
|
||||
public string MaterialNumber { get; set; }
|
||||
/// <summary>
|
||||
/// 数量(装箱数量)
|
||||
/// </summary>
|
||||
[JsonProperty("Qty")]
|
||||
public decimal Qty { get; set; }
|
||||
/// <summary>
|
||||
/// 序列号集
|
||||
/// </summary>
|
||||
[JsonProperty("SerialNumbers")]
|
||||
public List<OpsSerialNumbersResponse> SerialNumbers { get; set; } = new List<OpsSerialNumbersResponse>();
|
||||
}
|
||||
}
|
||||
52
src/BarCode.Web.Core/Dto/BoxMark/BoxMarkQueryRequest.cs
Normal file
52
src/BarCode.Web.Core/Dto/BoxMark/BoxMarkQueryRequest.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 请求对象
|
||||
/// </summary>
|
||||
public class BoxMarkQueryRequest : PaginationBaseRequestDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织Code
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "组织不能为空")]
|
||||
public string OrgCode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 订单编号集合字符串
|
||||
/// </summary>
|
||||
public string OrderBillNos { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 物料三件套搜索
|
||||
/// </summary>
|
||||
public string Material { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 开始的箱唛编号
|
||||
/// </summary>
|
||||
public string BeginBillNo { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 结束的箱唛编号
|
||||
/// </summary>
|
||||
public string EndBillNo { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 操作人
|
||||
/// </summary>
|
||||
public string Creator { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 生成开始时间
|
||||
/// </summary>
|
||||
public DateTime? CreateBeginDate { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 生成结束时间
|
||||
/// </summary>
|
||||
public DateTime? CreateEndDate { get; set; } = null;
|
||||
}
|
||||
}
|
||||
124
src/BarCode.Web.Core/Dto/BoxMark/BoxMarkQueryResponse.cs
Normal file
124
src/BarCode.Web.Core/Dto/BoxMark/BoxMarkQueryResponse.cs
Normal file
@@ -0,0 +1,124 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 列表响应对象
|
||||
/// </summary>
|
||||
public class BoxMarkQueryResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 唯一ID
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 明细编号ID
|
||||
/// </summary>
|
||||
public int DetailId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 箱唛编号
|
||||
/// </summary>
|
||||
public string BillNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单编号
|
||||
/// </summary>
|
||||
public string OrderBillNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物料规格型号
|
||||
/// </summary>
|
||||
public string Specifications { get; set; }
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物料名称
|
||||
/// </summary>
|
||||
public string MaterialName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 69条码
|
||||
/// </summary>
|
||||
public string BarCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 装箱数量
|
||||
/// </summary>
|
||||
public decimal CratingQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 装箱净重
|
||||
/// </summary>
|
||||
public decimal CratingNetWeightQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 装箱毛重
|
||||
/// </summary>
|
||||
public decimal CratingGrossWeightQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 尾箱数量
|
||||
/// </summary>
|
||||
public decimal TailboxQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 尾箱净重
|
||||
/// </summary>
|
||||
public decimal TailboxNetWeightQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 尾箱毛重
|
||||
/// </summary>
|
||||
public decimal TailboxGrossWeightQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string Remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人
|
||||
/// </summary>
|
||||
public string Creator { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间(生成时间)
|
||||
/// </summary>
|
||||
public string CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否是尾箱
|
||||
/// </summary>
|
||||
public bool IsTail { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 装箱总数
|
||||
/// </summary>
|
||||
public int BoxSortCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品数量
|
||||
/// </summary>
|
||||
public decimal ProductQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int Sort { get; set; }
|
||||
/// <summary>
|
||||
/// 流水号(开始)
|
||||
/// </summary>
|
||||
public Int64? BeginNumber { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 流水号(结束)
|
||||
/// </summary>
|
||||
public Int64? EndNumber { get; set; } = null;
|
||||
}
|
||||
}
|
||||
83
src/BarCode.Web.Core/Dto/BoxMark/GenerateBoxMarkDto.cs
Normal file
83
src/BarCode.Web.Core/Dto/BoxMark/GenerateBoxMarkDto.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 生成箱唛dto
|
||||
/// </summary>
|
||||
public class GenerateBoxMarkDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织Code
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "组织不能为空")]
|
||||
public string OrgCode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 订单编号
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
[Required(ErrorMessage = "订单编号不能为空")]
|
||||
public string OrderBillNo { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 物料
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "物料不能为空")]
|
||||
public string MaterialNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品数量
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "产品数量不能为空")]
|
||||
[Range(1, int.MaxValue, ErrorMessage = "产品数量不能为0")]
|
||||
public decimal ProductQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 装箱数量
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "装箱数量不能为空")]
|
||||
[Range(1, int.MaxValue, ErrorMessage = "装箱数量不能为0")]
|
||||
public decimal CratingQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 装箱净重
|
||||
/// </summary>
|
||||
public decimal CratingNetWeightQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 装箱毛重
|
||||
/// </summary>
|
||||
public decimal CratingGrossWeightQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 尾箱数量
|
||||
/// </summary>
|
||||
public decimal TailboxQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 尾箱净重
|
||||
/// </summary>
|
||||
public decimal TailboxNetWeightQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 尾箱毛重
|
||||
/// </summary>
|
||||
public decimal TailboxGrossWeightQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string Remark { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 流水号(开始)
|
||||
/// </summary>
|
||||
public Int64? BeginNumber { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 流水号(结束)
|
||||
/// </summary>
|
||||
public Int64? EndNumber { get; set; } = null;
|
||||
}
|
||||
}
|
||||
71
src/BarCode.Web.Core/Dto/EnumStatusResponse.cs
Normal file
71
src/BarCode.Web.Core/Dto/EnumStatusResponse.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 所有枚举信息
|
||||
/// </summary>
|
||||
public class EnumStatusResponse
|
||||
{
|
||||
public EnumStatusResponse() { }
|
||||
/// <summary>
|
||||
/// 出库单类型
|
||||
/// </summary>
|
||||
public Dictionary<int, string> OutStockType { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 移库单类型
|
||||
/// </summary>
|
||||
public Dictionary<int, string> MoveBoxType { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 盘点结果类型
|
||||
/// </summary>
|
||||
public Dictionary<int, string> TakeStockType { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 入库单类型
|
||||
/// </summary>
|
||||
public Dictionary<int, string> InstockType { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 入库状态
|
||||
/// </summary>
|
||||
public Dictionary<int, string> InstockStatus { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 类型:1为入库回退下架,2为出库回退上架
|
||||
/// </summary>
|
||||
public Dictionary<int, string> BackRecordType { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 类型:1为入库,2为出库
|
||||
/// </summary>
|
||||
public Dictionary<int, string> InventoryInOutType { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 单据类型
|
||||
/// </summary>
|
||||
public Dictionary<int, string> OrderType { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 非采购上架方式
|
||||
/// </summary>
|
||||
public Dictionary<int, string> ShelfMethod { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 下载导出订单类型
|
||||
/// </summary>
|
||||
public Dictionary<int, string> FileDownLoadOrderType { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 下载导出状态
|
||||
/// </summary>
|
||||
public Dictionary<int, string> ExportStatus { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 出入库方式:按箱或者按产品
|
||||
/// </summary>
|
||||
public Dictionary<int, string> InventoryInOutMethod { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 出库状态
|
||||
/// </summary>
|
||||
public Dictionary<int, string> OutStockStatus { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 同步金蝶状态
|
||||
/// </summary>
|
||||
public Dictionary<int, string> SyncStatus { get; set; } = new Dictionary<int, string>();
|
||||
|
||||
}
|
||||
}
|
||||
27
src/BarCode.Web.Core/Dto/Erp/Customer/ErpCustomerDto.cs
Normal file
27
src/BarCode.Web.Core/Dto/Erp/Customer/ErpCustomerDto.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp.Customer
|
||||
{
|
||||
/// <summary>
|
||||
/// 客户
|
||||
/// </summary>
|
||||
public class ErpCustomerDto
|
||||
{
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 编码
|
||||
/// </summary>
|
||||
public string Number { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
||||
15
src/BarCode.Web.Core/Dto/Erp/ErpBaseDto.cs
Normal file
15
src/BarCode.Web.Core/Dto/Erp/ErpBaseDto.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
public class ErpBaseDto
|
||||
{
|
||||
public string Id { get; set; }
|
||||
|
||||
public string Number { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
||||
40
src/BarCode.Web.Core/Dto/Erp/ErpBillQueryDto.cs
Normal file
40
src/BarCode.Web.Core/Dto/Erp/ErpBillQueryDto.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// ERP:单据查询-dto
|
||||
/// </summary>
|
||||
public class ErpBillQueryDto
|
||||
{
|
||||
public ErpBillQueryDto() { }
|
||||
|
||||
public ErpBillQueryDto(string accessToken)
|
||||
{
|
||||
this.AccessToken = accessToken;
|
||||
}
|
||||
public ErpBillQueryDto(string accessToken,string formid)
|
||||
{
|
||||
this.AccessToken = accessToken;
|
||||
this.FormId = formid;
|
||||
}
|
||||
/// <summary>
|
||||
/// 令牌
|
||||
/// </summary>
|
||||
[JsonProperty(PropertyName = "ACCESSTOKEN")]
|
||||
public string AccessToken { get; set; }
|
||||
/// <summary>
|
||||
/// 参数
|
||||
/// </summary>
|
||||
[JsonProperty(PropertyName = "data")]
|
||||
public string Data { get; set; }
|
||||
/// <summary>
|
||||
/// 参数(保存提交审核formId在外层)
|
||||
/// </summary>
|
||||
[JsonProperty(PropertyName = "formid")]
|
||||
public string FormId { get; set; }
|
||||
}
|
||||
}
|
||||
55
src/BarCode.Web.Core/Dto/Erp/ErpBillQueryParamDto.cs
Normal file
55
src/BarCode.Web.Core/Dto/Erp/ErpBillQueryParamDto.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// ERP:单据查询-参数-dto
|
||||
/// </summary>
|
||||
public class ErpBillQueryParamDto
|
||||
{
|
||||
public ErpBillQueryParamDto() { }
|
||||
|
||||
public ErpBillQueryParamDto(string formId)
|
||||
{
|
||||
this.FormId = formId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 业务对象表单Id(必录)
|
||||
/// </summary>
|
||||
public string FormId { get; set; }
|
||||
/// <summary>
|
||||
/// 需查询的字段key集合,字符串类型,格式:"key1,key2,..."(必录) 注(查询单据体内码,需加单据体Key和下划线,如:FEntryKey_FEntryId)
|
||||
/// </summary>
|
||||
public string FieldKeys { get; set; }
|
||||
/// <summary>
|
||||
/// 过滤条件,数组类型,如:[{"Left":"(","FieldName":"Field1","Compare":"=","Value":"111","Right":")","Logic":"AND"},{"Left":"(","FieldName":"Field2","Compare":"=","Value":"222","Right":")","Logic":""}]
|
||||
/// </summary>
|
||||
public string FilterString { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序字段,字符串类型(非必录)
|
||||
/// </summary>
|
||||
public string OrderString { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 返回总行数,整型(非必录)
|
||||
/// </summary>
|
||||
public int TopRowCount { get; set; }
|
||||
/// <summary>
|
||||
/// 开始行索引,整型(非必录)
|
||||
/// </summary>
|
||||
public int StartRow { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 最大行数,整型,不能超过10000(非必录)
|
||||
/// </summary>
|
||||
public int Limit { get; set; } = 1;
|
||||
|
||||
/// <summary>
|
||||
/// 表单所在的子系统内码,字符串类型(非必录)
|
||||
/// </summary>
|
||||
public string SubSystemId { get; set; }
|
||||
}
|
||||
}
|
||||
92
src/BarCode.Web.Core/Dto/Erp/ErpInStockResultDto.cs
Normal file
92
src/BarCode.Web.Core/Dto/Erp/ErpInStockResultDto.cs
Normal file
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// ERP:入库单-统一响应对象
|
||||
/// </summary>
|
||||
public class ErpInStockResultDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 单据编号
|
||||
/// </summary>
|
||||
public string BillNo { get; set; }
|
||||
/// <summary>
|
||||
/// 组织
|
||||
/// </summary>
|
||||
public int OrgId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// erp的明细ID
|
||||
/// </summary>
|
||||
public int ErpDetailId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 组织编码
|
||||
/// </summary>
|
||||
public string OrgCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应商
|
||||
/// </summary>
|
||||
public int SupplierId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 仓库ID
|
||||
/// </summary>
|
||||
public int StockId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 仓库code
|
||||
/// </summary>
|
||||
public string StockCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
public decimal Qty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 出厂价
|
||||
/// </summary>
|
||||
public decimal FactoryPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 已交数量(对应金蝶的已交数量-对应物料),目前只有采购订单有
|
||||
/// </summary>
|
||||
public decimal DeliveredQty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 明细备注
|
||||
/// </summary>
|
||||
public string Remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 单据类型
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销售订单
|
||||
/// </summary>
|
||||
public string SaleBillNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 客户编码
|
||||
/// </summary>
|
||||
public string CustomerCode { get; set; }
|
||||
}
|
||||
}
|
||||
30
src/BarCode.Web.Core/Dto/Erp/ErpInventoryDto.cs
Normal file
30
src/BarCode.Web.Core/Dto/Erp/ErpInventoryDto.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
public class ErpInventoryDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; }
|
||||
/// <summary>
|
||||
/// 组织编码
|
||||
/// </summary>
|
||||
public string OrgCode { get; set; }
|
||||
/// <summary>
|
||||
/// 仓库
|
||||
/// </summary>
|
||||
public string StockCode { get; set; }
|
||||
/// <summary>
|
||||
/// 子仓库(跟金蝶交互字段)
|
||||
/// </summary>
|
||||
public int Erp_SubStockId { get; set; }
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
public decimal Qty { get; set; }
|
||||
}
|
||||
}
|
||||
50
src/BarCode.Web.Core/Dto/Erp/ErpNumberDto.cs
Normal file
50
src/BarCode.Web.Core/Dto/Erp/ErpNumberDto.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// 编码
|
||||
/// </summary>
|
||||
public class ErpNumberDto
|
||||
{
|
||||
public ErpNumberDto() { }
|
||||
public ErpNumberDto(string number)
|
||||
{
|
||||
this.Number = number;
|
||||
}
|
||||
/// <summary>
|
||||
/// 编码
|
||||
/// </summary>
|
||||
[JsonProperty("FNumber")]
|
||||
public string Number { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 盘点子仓库
|
||||
/// </summary>
|
||||
public class ErpSubStockDto
|
||||
{
|
||||
public ErpSubStockDto() { }
|
||||
public ErpSubStockDto(string stockCode, string subCode)
|
||||
{
|
||||
if (stockCode != null && stockCode.Equals("GD"))
|
||||
this.GD = new ErpNumberDto(subCode ?? "");
|
||||
if (stockCode != null && stockCode.Equals("HD"))
|
||||
this.HD = new ErpNumberDto(subCode ?? "");
|
||||
}
|
||||
/// <summary>
|
||||
/// GD仓
|
||||
/// </summary>
|
||||
[JsonProperty("FSTOCKLOCID__FF100005")]
|
||||
public ErpNumberDto GD { get; set; } = new ErpNumberDto("");
|
||||
|
||||
/// <summary>
|
||||
/// HD仓
|
||||
/// </summary>
|
||||
[JsonProperty("FSTOCKLOCID__FF100007")]
|
||||
public ErpNumberDto HD { get; set; } = new ErpNumberDto("");
|
||||
}
|
||||
}
|
||||
28
src/BarCode.Web.Core/Dto/Erp/ErpOperateDto.cs
Normal file
28
src/BarCode.Web.Core/Dto/Erp/ErpOperateDto.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// erp 提交和审核
|
||||
/// </summary>
|
||||
public class ErpOperateDto
|
||||
{
|
||||
public ErpOperateDto(string formId, string number)
|
||||
{
|
||||
this.FormId = formId;
|
||||
this.Numbers =new List<string>() { number };
|
||||
}
|
||||
/// <summary>
|
||||
/// 业务对象表单Id(必录)
|
||||
/// </summary>
|
||||
[JsonProperty("FormId")]
|
||||
public string FormId { get; set; }
|
||||
/// <summary>
|
||||
/// 单据编码
|
||||
/// </summary>
|
||||
public List<string> Numbers { get; set; }
|
||||
}
|
||||
}
|
||||
74
src/BarCode.Web.Core/Dto/Erp/ErpPurchaseInStockSaveDto.cs
Normal file
74
src/BarCode.Web.Core/Dto/Erp/ErpPurchaseInStockSaveDto.cs
Normal file
@@ -0,0 +1,74 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// 修改采购入库单
|
||||
/// </summary>
|
||||
public class ErpPurchaseInStockSaveDto
|
||||
{
|
||||
public ErpPurchaseInStockSaveDto() { }
|
||||
public ErpPurchaseInStockSaveDto(string id)
|
||||
{
|
||||
this.Id = id;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单据Id
|
||||
/// </summary>
|
||||
[JsonProperty("FID")]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 明细
|
||||
/// </summary>
|
||||
[JsonProperty("FInStockEntry")]
|
||||
public List<ErpPurchaseInStockDetailsSaveDto> Details { get; set; } = new List<ErpPurchaseInStockDetailsSaveDto>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 明细
|
||||
/// </summary>
|
||||
public class ErpPurchaseInStockDetailsSaveDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 明细Id
|
||||
/// </summary>
|
||||
[JsonProperty("FEntryID")]
|
||||
public string DetailId { get; set; }
|
||||
/// <summary>
|
||||
/// 采购订单明细Id
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public string PurchaseDetailId { get; set; }
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
[JsonProperty("FRealQty")]
|
||||
public decimal Qty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批号
|
||||
/// </summary>
|
||||
[JsonProperty("FLot")]
|
||||
public ErpLotSaveDto Lot { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批号
|
||||
/// </summary>
|
||||
public class ErpLotSaveDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 批号
|
||||
/// </summary>
|
||||
[JsonProperty("FNumber")]
|
||||
public string Number { get; set; }
|
||||
}
|
||||
}
|
||||
62
src/BarCode.Web.Core/Dto/Erp/ErpPushDto.cs
Normal file
62
src/BarCode.Web.Core/Dto/Erp/ErpPushDto.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// 下推
|
||||
/// </summary>
|
||||
public class ErpPushDto
|
||||
{
|
||||
public ErpPushDto() { }
|
||||
|
||||
public ErpPushDto(string formId,List<int> detailIds,string targetFormId)
|
||||
{
|
||||
this.FormId = formId;
|
||||
//this.Numbers.Add(number);
|
||||
this.DetailsId = detailIds.ToString();
|
||||
this.TargetFormId = targetFormId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 业务对象表单Id(必录)
|
||||
/// </summary>
|
||||
[JsonProperty("FormId")]
|
||||
public string FormId { get; set; }
|
||||
///// <summary>
|
||||
///// 业务对象表单Id(必录)
|
||||
///// </summary>
|
||||
//[JsonProperty("Numbers")]
|
||||
//public List<string> Numbers { get; set; }
|
||||
/// <summary>
|
||||
/// 分录内码集合,逗号分隔(分录下推时必录) 注(按分录下推时,单据内码和编码不需要填,否则按整单下推)
|
||||
/// </summary>
|
||||
[JsonProperty("EntryIds")]
|
||||
public string DetailsId { get; set; }
|
||||
/// <summary>
|
||||
/// 目标单据类型
|
||||
/// </summary>
|
||||
[JsonProperty("TargetFormId")]
|
||||
public string TargetFormId { get; set; }
|
||||
/// <summary>
|
||||
/// 是否启用默认转换规则,布尔类型,默认false(非必录)
|
||||
/// false 需要穿 RuleId true 不需要传RuleId
|
||||
/// </summary>
|
||||
[JsonProperty("IsEnableDefaultRule")]
|
||||
public bool IsEnableDefaultRule { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 转换规则内码
|
||||
/// </summary>
|
||||
[JsonProperty("RuleId")]
|
||||
public string RuleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 保存失败时是否暂存,布尔类型,默认false(非必录) 注(暂存的单据是没有编码的)
|
||||
/// </summary>
|
||||
[JsonProperty("IsDraftWhenSaveFail")]
|
||||
public bool IsDraftWhenSaveFail { get; set; } = false;
|
||||
|
||||
}
|
||||
}
|
||||
28
src/BarCode.Web.Core/Dto/Erp/ErpSave.cs
Normal file
28
src/BarCode.Web.Core/Dto/Erp/ErpSave.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// Erp同步数据时单据头
|
||||
/// </summary>
|
||||
public class ErpSave<T>
|
||||
{
|
||||
public ErpSave(string formId,T model)
|
||||
{
|
||||
this.FormId = formId;
|
||||
this.Model = model;
|
||||
}
|
||||
/// <summary>
|
||||
/// 业务对象表单Id(必录)
|
||||
/// </summary>
|
||||
[JsonProperty("FormId")]
|
||||
public string FormId { get; set; }
|
||||
/// <summary>
|
||||
/// 单据体
|
||||
/// </summary>
|
||||
public T Model { get; set; }
|
||||
}
|
||||
}
|
||||
68
src/BarCode.Web.Core/Dto/Erp/Material/ErpMaterialDto.cs
Normal file
68
src/BarCode.Web.Core/Dto/Erp/Material/ErpMaterialDto.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// 对应金蝶,物料信息
|
||||
/// </summary>
|
||||
public class ErpMaterialDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织ID
|
||||
/// </summary>
|
||||
public int OrgId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 组织编码
|
||||
/// </summary>
|
||||
public string OrgCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物料ID
|
||||
/// </summary>
|
||||
public int MaterialId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物料名称
|
||||
/// </summary>
|
||||
public string MaterialName { get; set; }
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; }
|
||||
/// <summary>
|
||||
/// 物料规格型号
|
||||
/// </summary>
|
||||
public string Specifications { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 基本单位
|
||||
/// </summary>
|
||||
public int BaseUnitId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 基本单位名称
|
||||
/// </summary>
|
||||
public string BaseUnitName { get; set; }
|
||||
/// <summary>
|
||||
/// 基本单位编码
|
||||
/// </summary>
|
||||
public string BaseUnitNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 条码
|
||||
/// </summary>
|
||||
public string BarCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用批号管理
|
||||
/// </summary>
|
||||
public bool IsBatchManage { get; set; }
|
||||
/// <summary>
|
||||
/// 物料Id 32进制字符串
|
||||
/// </summary>
|
||||
public string IdConvertBar { get; set; }
|
||||
}
|
||||
}
|
||||
27
src/BarCode.Web.Core/Dto/Erp/Org/ErpOrgDto.cs
Normal file
27
src/BarCode.Web.Core/Dto/Erp/Org/ErpOrgDto.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp.Org
|
||||
{
|
||||
/// <summary>
|
||||
/// 金蝶组织-基本信息
|
||||
/// </summary>
|
||||
public class ErpOrgDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Id
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 编码
|
||||
/// </summary>
|
||||
public string Number { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp.OutStock
|
||||
{
|
||||
/// <summary>
|
||||
/// 发货通知单转出库任务
|
||||
/// </summary>
|
||||
public class ErpDeliveryNoticeOutStockResultDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 来源单号
|
||||
///</summary>
|
||||
public string SourceBillNo { get; set; }
|
||||
/// <summary>
|
||||
/// 销售订单号
|
||||
///</summary>
|
||||
public string SaleBillNo { get; set; }
|
||||
/// <summary>
|
||||
/// 发货组织
|
||||
///</summary>
|
||||
public int DeliveryOrgId { get; set; }
|
||||
/// <summary>
|
||||
/// 组织编码
|
||||
///</summary>
|
||||
public string OrgCode { get; set; }
|
||||
/// <summary>
|
||||
/// 收货客户
|
||||
///</summary>
|
||||
public int ReceiptCustomerId { get; set; }
|
||||
/// <summary>
|
||||
/// 对应金蝶单据明细id(销售出库同步金蝶下推使用)
|
||||
/// </summary>
|
||||
public int Erp_DetailId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
///</summary>
|
||||
public string MaterialNumber { get; set; }
|
||||
/// <summary>
|
||||
/// 仓库ID
|
||||
///</summary>
|
||||
public string StockCode { get; set; }
|
||||
/// <summary>
|
||||
/// 仓位ID
|
||||
///</summary>
|
||||
public int? SubStockId { get; set; }
|
||||
/// <summary>
|
||||
/// 应出库数量
|
||||
///</summary>
|
||||
public decimal AccruedQty { get; set; }
|
||||
/// <summary>
|
||||
/// 订单明细备注
|
||||
///</summary>
|
||||
public string Remark { get; set; }
|
||||
/// <summary>
|
||||
/// 创建时间(erp那边的创建时间)
|
||||
///</summary>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
/// <summary>
|
||||
/// 用来自动构建单据类型 跟OutStockType 一致
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
}
|
||||
}
|
||||
94
src/BarCode.Web.Core/Dto/Erp/OutStock/ErpOutStockSaveDto.cs
Normal file
94
src/BarCode.Web.Core/Dto/Erp/OutStock/ErpOutStockSaveDto.cs
Normal file
@@ -0,0 +1,94 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp.OutStock
|
||||
{
|
||||
/// <summary>
|
||||
/// 出库单同步金蝶
|
||||
/// </summary>
|
||||
public class ErpOutStockSaveDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 单据编号
|
||||
/// </summary>
|
||||
[JsonProperty("BillNo")]
|
||||
public string BillNo { get; set; }
|
||||
/// <summary>
|
||||
/// 单据类型
|
||||
/// </summary>
|
||||
[JsonProperty("BillNo")]
|
||||
public string Type { get; set; }
|
||||
/// <summary>
|
||||
/// 发货组织
|
||||
///</summary>
|
||||
[JsonProperty("DeliveryOrgId")]
|
||||
public int DeliveryOrgId { get; set; }
|
||||
/// <summary>
|
||||
/// 收货客户
|
||||
///</summary>
|
||||
[JsonProperty("ReceiptCustomerId")]
|
||||
public int ReceiptCustomerId { get; set; }
|
||||
/// <summary>
|
||||
/// 创建时间(出库时间)
|
||||
/// </summary>
|
||||
[JsonProperty("CreateTime")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.Now;
|
||||
/// <summary>
|
||||
/// 结算币别默认为: 人民币
|
||||
///</summary>
|
||||
[JsonProperty("Currency")]
|
||||
public string Currency { get; set; }
|
||||
/// <summary>
|
||||
/// 销售组织取对应发货通知单的销售组织
|
||||
///</summary>
|
||||
[JsonProperty("Currency")]
|
||||
public string SalOrg { get; set; }
|
||||
/// <summary>
|
||||
/// 销售部门取对应发货通知单的销售部门
|
||||
///</summary>
|
||||
[JsonProperty("Currency")]
|
||||
public string SalDept { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class ErpOutStockSaveDetailsDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 物料Id
|
||||
///</summary>
|
||||
[JsonProperty("MaterialId")]
|
||||
public string MaterialId { get; set; }
|
||||
/// <summary>
|
||||
/// 仓库ID
|
||||
///</summary>
|
||||
[JsonProperty("StockId")]
|
||||
public string StockId { get; set; }
|
||||
/// <summary>
|
||||
/// 出库数量
|
||||
///</summary>
|
||||
[JsonProperty("UnitId")]
|
||||
public string UnitId { get; set; }
|
||||
/// <summary>
|
||||
/// 出库数量
|
||||
///</summary>
|
||||
[JsonProperty("Qty")]
|
||||
public decimal Qty { get; set; }
|
||||
/// <summary>
|
||||
/// 应发数量,取对应发货通知单的销售数量
|
||||
///</summary>
|
||||
[JsonProperty("YFQty")]
|
||||
public string YFQty { get; set; }
|
||||
/// <summary>
|
||||
/// 单价 取对应发货通知单对应物料编码行的 单价
|
||||
///</summary>
|
||||
[JsonProperty("Price")]
|
||||
public string Price { get; set; }
|
||||
/// <summary>
|
||||
///含税单价 取对应发货通知单对应物料编码行的 含税单价
|
||||
///</summary>
|
||||
[JsonProperty("HSPrice")]
|
||||
public string HSPrice { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp.OutStock
|
||||
{
|
||||
/// <summary>
|
||||
/// 修改销售出库单
|
||||
/// </summary>
|
||||
public class ErpSalOutStockSaveDto
|
||||
{
|
||||
public ErpSalOutStockSaveDto() { }
|
||||
public ErpSalOutStockSaveDto(string id)
|
||||
{
|
||||
this.Id = id;
|
||||
}
|
||||
/// <summary>
|
||||
/// 单据Id
|
||||
/// </summary>
|
||||
[JsonProperty("FID")]
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// 明细
|
||||
/// </summary>
|
||||
[JsonProperty("FEntity")]
|
||||
public List<ErpSalOutStockDetailsSaveDto> Details { get; set; } = new List<ErpSalOutStockDetailsSaveDto>();
|
||||
}
|
||||
public class ErpSalOutStockDetailsSaveDto
|
||||
{
|
||||
public ErpSalOutStockDetailsSaveDto(){}
|
||||
/// <summary>
|
||||
/// 明细Id
|
||||
/// </summary>
|
||||
[JsonProperty("FENTRYID")]
|
||||
public string DetailId { get; set; }
|
||||
/// <summary>
|
||||
/// 发货通知单明细Id
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public string DeliveryNoticeDetailId { get; set; }
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
[JsonProperty("FRealQty")]
|
||||
public decimal Qty { get; set; }
|
||||
}
|
||||
}
|
||||
29
src/BarCode.Web.Core/Dto/Erp/PullDownStrResponse.cs
Normal file
29
src/BarCode.Web.Core/Dto/Erp/PullDownStrResponse.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// key为string 下拉列表对象
|
||||
/// </summary>
|
||||
public class PullDownStrResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// id
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// 编码
|
||||
/// </summary>
|
||||
public string Code { get; set; }
|
||||
/// <summary>
|
||||
/// 名字
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 是否默认选中
|
||||
/// </summary>
|
||||
public bool IsDefault { get; set; } = false;
|
||||
}
|
||||
}
|
||||
33
src/BarCode.Web.Core/Dto/Erp/Stock/ErpStockDto.cs
Normal file
33
src/BarCode.Web.Core/Dto/Erp/Stock/ErpStockDto.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// 仓库信息
|
||||
/// </summary>
|
||||
public class ErpStockDto
|
||||
{
|
||||
/// <summary>
|
||||
/// id
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
/// <summary>
|
||||
/// 编码
|
||||
/// </summary>
|
||||
public string Code { get; set; }
|
||||
/// <summary>
|
||||
/// 名字
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 业务组织(使用组织)
|
||||
/// </summary>
|
||||
public int OrgId { get; set; }
|
||||
/// <summary>
|
||||
/// 业务组织(使用组织)编码
|
||||
/// </summary>
|
||||
public string OrgCode { get; set; }
|
||||
}
|
||||
}
|
||||
37
src/BarCode.Web.Core/Dto/Erp/Stock/ErpSubStockDto.cs
Normal file
37
src/BarCode.Web.Core/Dto/Erp/Stock/ErpSubStockDto.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// 子仓库信息
|
||||
/// </summary>
|
||||
public class Erp_SubStockDto
|
||||
{
|
||||
/// <summary>
|
||||
/// id
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
/// <summary>
|
||||
/// 编码
|
||||
/// </summary>
|
||||
public string Code { get; set; }
|
||||
/// <summary>
|
||||
/// 名字
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 业务组织(使用组织)
|
||||
/// </summary>
|
||||
public int OrgId { get; set; }
|
||||
/// <summary>
|
||||
/// 业务组织(使用组织)编码
|
||||
/// </summary>
|
||||
public string OrgCode { get; set; }
|
||||
/// <summary>
|
||||
/// 仓库编码
|
||||
/// </summary>
|
||||
public string StockCode { get; set; }
|
||||
}
|
||||
}
|
||||
31
src/BarCode.Web.Core/Dto/Erp/Supplier/ErpSupplierDto.cs
Normal file
31
src/BarCode.Web.Core/Dto/Erp/Supplier/ErpSupplierDto.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp.Supplier
|
||||
{
|
||||
/// <summary>
|
||||
/// erp供应商基础数据
|
||||
/// </summary>
|
||||
public class ErpSupplierDto
|
||||
{
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 编码
|
||||
/// </summary>
|
||||
public string Number { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 组织编码
|
||||
/// </summary>
|
||||
public string OrgCode { get; set; }
|
||||
}
|
||||
}
|
||||
138
src/BarCode.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs
Normal file
138
src/BarCode.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs
Normal file
@@ -0,0 +1,138 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Erp.TakeStock
|
||||
{
|
||||
/// <summary>
|
||||
/// 盘点单
|
||||
/// </summary>
|
||||
public class ErpTakeStockSaveDto
|
||||
{
|
||||
|
||||
public ErpTakeStockSaveDto() { }
|
||||
/*
|
||||
* 单据编号:FBillNo
|
||||
日期:FDate (必填项)
|
||||
|
||||
库存组织:FStockOrgId (必填项)
|
||||
单据类型:FBillTypeID (必填项)
|
||||
货主类型:FOwnerTypeIdHead (必填项) BD_OwnerOrg
|
||||
|
||||
物料编码:FMaterialId (必填项)
|
||||
单位:FUnitID (必填项)
|
||||
仓库:FStockId (必填项)
|
||||
库存状态:FStockStatusId (必填项)
|
||||
货主类型:FOwnerTypeId (必填项) BD_OwnerOrg
|
||||
货主:FOwnerid (必填项)
|
||||
保管者类型:FKeeperTypeId (必填项) BD_KeeperOrg
|
||||
保管者:FKeeperId (必填项)
|
||||
子仓库:FStockLocId
|
||||
*/
|
||||
|
||||
/// <summary>
|
||||
/// 单据类型(标准盘亏单; 标准盘盈单 PY01_SYS) 盘亏 PK01_SYS
|
||||
/// </summary>
|
||||
[JsonProperty("FBillTypeID")]
|
||||
public ErpNumberDto Type { get; set; }
|
||||
/// <summary>
|
||||
/// 库存组织 (取仓库对应的库存组织)
|
||||
/// </summary>
|
||||
[JsonProperty("FStockOrgId")]
|
||||
public ErpNumberDto StockOrgId { get; set; }
|
||||
/// <summary>
|
||||
/// 货主类型: 默认为业务组织 BD_OwnerOrg
|
||||
/// </summary>
|
||||
[JsonProperty("FOwnerTypeIdHead")]
|
||||
public string FOwnerTypeIdHead { get; set; } = "BD_OwnerOrg";
|
||||
/// <summary>
|
||||
/// 单据编号
|
||||
/// </summary>
|
||||
[JsonProperty("FBillNo")]
|
||||
public string BillNo { get; set; }
|
||||
/// <summary>
|
||||
/// 盘点日期
|
||||
/// </summary>
|
||||
[JsonProperty("FDate")]
|
||||
public DateTime Date { get; set; }
|
||||
/// <summary>
|
||||
/// 明细
|
||||
/// </summary>
|
||||
[JsonProperty("FBillEntry")]
|
||||
public List<ErpTakeStockDetailsSaveDto> Details = new List<ErpTakeStockDetailsSaveDto>();
|
||||
}
|
||||
public class ErpTakeStockDetailsSaveDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 库存状态 KCZT01_SYS
|
||||
/// </summary>
|
||||
[JsonProperty("FStockStatusId")]
|
||||
public ErpNumberDto FStockStatusId { get; set; } = new ErpNumberDto("KCZT01_SYS");
|
||||
/// <summary>
|
||||
/// 货主类型: 默认为业务组织 BD_OwnerOrg
|
||||
/// </summary>
|
||||
[JsonProperty("FOwnerTypeId")]
|
||||
public string FOwnerTypeId { get; set; } = "BD_OwnerOrg";
|
||||
/// <summary>
|
||||
/// 取仓库对应的货主信息 货主: 等于库存组织
|
||||
/// </summary>
|
||||
[JsonProperty("FOwnerid")]
|
||||
public ErpNumberDto FOwnerid { get; set; }
|
||||
/// <summary>
|
||||
/// 保管者类型
|
||||
/// </summary>
|
||||
[JsonProperty("FKeeperTypeId")]
|
||||
public string FKeeperTypeId { get; set; } = "BD_KeeperOrg";
|
||||
/// <summary>
|
||||
/// 保管者 仓库”库存组织”
|
||||
/// </summary>
|
||||
[JsonProperty("FKeeperId")]
|
||||
public ErpNumberDto FKeeperId { get; set; }
|
||||
/// <summary>
|
||||
/// 物料ID
|
||||
/// </summary>
|
||||
[JsonProperty("FMaterialId")]
|
||||
public ErpNumberDto MaterialId { get; set; }
|
||||
/// <summary>
|
||||
/// 单位ID
|
||||
/// </summary>
|
||||
[JsonProperty("FUnitID")]
|
||||
public ErpNumberDto UnitId { get; set; }
|
||||
/// <summary>
|
||||
/// 仓库ID
|
||||
/// </summary>
|
||||
[JsonProperty("FStockId")]
|
||||
public ErpNumberDto StockId { get; set; }
|
||||
/// <summary>
|
||||
/// 仓位ID
|
||||
/// </summary>
|
||||
[JsonProperty("FStockLocId")]
|
||||
public ErpSubStockDto SubStockId { get; set; }
|
||||
/// <summary>
|
||||
/// 盘点前数量(wms系统数量)
|
||||
/// </summary>
|
||||
[JsonProperty("FAcctQty")]
|
||||
public decimal BeforeQty { get; set; }
|
||||
/// <summary>
|
||||
/// 盘点实际数量(实际仓库数量)
|
||||
/// </summary>
|
||||
[JsonProperty("FCountQty")]
|
||||
public decimal AfterQty { get; set; }
|
||||
/// <summary>
|
||||
/// 盘盈数量
|
||||
/// </summary>
|
||||
[JsonProperty("FGainQty")]
|
||||
public decimal FinalQty { get; set; }
|
||||
/// <summary>
|
||||
/// 盘亏数量
|
||||
/// </summary>
|
||||
[JsonProperty("FLossQty")]
|
||||
public decimal LossQty { get; set; }
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
[JsonProperty("Fnote")]
|
||||
public string Fnote { get; set; }
|
||||
}
|
||||
}
|
||||
43
src/BarCode.Web.Core/Dto/FileDownManagerRequest.cs
Normal file
43
src/BarCode.Web.Core/Dto/FileDownManagerRequest.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 上传下载列表
|
||||
/// </summary>
|
||||
public class FileDownManagerRequest: PaginationBaseRequestDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织Code
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "组织不能为空")]
|
||||
public string OrgCode { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 单据类型(任务类型)
|
||||
/// </summary>
|
||||
public int? Type { get; set; }
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int? Status { get; set; }
|
||||
/// <summary>
|
||||
/// 下单时间 开始
|
||||
/// </summary>
|
||||
public DateTime? BeginDate { get; set; }
|
||||
/// <summary>
|
||||
/// 下单时间 结束
|
||||
/// </summary>
|
||||
public DateTime? EndDate { get; set; }
|
||||
/// <summary>
|
||||
/// 操作人
|
||||
/// </summary>
|
||||
public string User { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 供应商用户Id
|
||||
/// </summary>
|
||||
public int? SupplierId { get; set; } = null;
|
||||
}
|
||||
}
|
||||
73
src/BarCode.Web.Core/Dto/FileDownManagerResponse.cs
Normal file
73
src/BarCode.Web.Core/Dto/FileDownManagerResponse.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using BarCode.Web.Core.Help;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 上传下载列表
|
||||
/// </summary>
|
||||
public class FileDownManagerResponse
|
||||
{
|
||||
public FileDownManagerResponse(List<FileDownInfoManagerResponse> list, int? total)
|
||||
{
|
||||
this.List = list;
|
||||
this.Total = total;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询列表内容
|
||||
/// </summary>
|
||||
public List<FileDownInfoManagerResponse> List { get; set; } = new List<FileDownInfoManagerResponse>();
|
||||
/// <summary>
|
||||
/// 总条数
|
||||
/// </summary>
|
||||
public int? Total { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 上传下载列表
|
||||
/// </summary>
|
||||
public class FileDownInfoManagerResponse
|
||||
{
|
||||
public FileDownInfoManagerResponse() { }
|
||||
public FileDownInfoManagerResponse(FileDownInfoManagerResponse response)
|
||||
{
|
||||
response.CopyPropertiesToD(this);
|
||||
}
|
||||
/// <summary>
|
||||
/// 主键 订单编号
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
/// <summary>
|
||||
/// 日期
|
||||
/// </summary>
|
||||
public string Date { get; set; }
|
||||
/// <summary>
|
||||
/// 单据类型(任务类型)
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
/// <summary>
|
||||
/// 状态(Key)
|
||||
/// </summary>
|
||||
public int StatusKey { get; set; }
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public string Status { get; set; }
|
||||
/// <summary>
|
||||
/// 文件地址
|
||||
/// </summary>
|
||||
public string FilePath { get; set; }
|
||||
/// <summary>
|
||||
/// 操作人
|
||||
/// </summary>
|
||||
public string UserName { get; set; }
|
||||
/// <summary>
|
||||
/// 失败原因
|
||||
/// </summary>
|
||||
public string Reason { get; set; }
|
||||
}
|
||||
}
|
||||
19
src/BarCode.Web.Core/Dto/FileDownManagerStatusResponse.cs
Normal file
19
src/BarCode.Web.Core/Dto/FileDownManagerStatusResponse.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
public class FileDownManagerStatusResponse
|
||||
{
|
||||
public FileDownManagerStatusResponse() { }
|
||||
/// <summary>
|
||||
/// 任务类型
|
||||
/// </summary>
|
||||
public Dictionary<int, string> Type { get; set; } = new Dictionary<int, string>();
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public Dictionary<int, string> Status { get; set; } = new Dictionary<int, string>();
|
||||
}
|
||||
}
|
||||
37
src/BarCode.Web.Core/Dto/Login/AccessTokenDto.cs
Normal file
37
src/BarCode.Web.Core/Dto/Login/AccessTokenDto.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
public class AccessTokenDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 客户端名称
|
||||
/// </summary>
|
||||
public string ClientName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 授权token -- 给前端用的验证token
|
||||
/// </summary>
|
||||
public string Token { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 授权token -- 单点给过来的token
|
||||
/// </summary>
|
||||
public string PhpToken { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// token头标识
|
||||
/// </summary>
|
||||
public string TokenType { get; set; } = "Bearer";
|
||||
/// <summary>
|
||||
/// 刷新token
|
||||
/// </summary>
|
||||
public string RefreshToken { get; set; }
|
||||
/// <summary>
|
||||
/// 过期时间
|
||||
/// </summary>
|
||||
public DateTime Expired { get; set; }
|
||||
}
|
||||
}
|
||||
17
src/BarCode.Web.Core/Dto/Login/DeptInfoDto.cs
Normal file
17
src/BarCode.Web.Core/Dto/Login/DeptInfoDto.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
public class DeptInfoDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string DeptCode { get; set; }
|
||||
|
||||
public string DeptName { get; set; }
|
||||
|
||||
public int? ManagerId { get; set; }
|
||||
}
|
||||
}
|
||||
25
src/BarCode.Web.Core/Dto/Login/LoginInDto.cs
Normal file
25
src/BarCode.Web.Core/Dto/Login/LoginInDto.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
/// <summary>
|
||||
/// 登录后要保存的信息
|
||||
/// </summary>
|
||||
public class LoginInDto
|
||||
{
|
||||
|
||||
public bool SignedIn { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户信息
|
||||
/// </summary>
|
||||
public UserInfoDto UserInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// token信息
|
||||
/// </summary>
|
||||
public AccessTokenDto TokenInfo { get; set; }
|
||||
}
|
||||
}
|
||||
14
src/BarCode.Web.Core/Dto/Login/LoginOutAuthorizeRequest.cs
Normal file
14
src/BarCode.Web.Core/Dto/Login/LoginOutAuthorizeRequest.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
public class LoginOutAuthorizeRequest
|
||||
{
|
||||
public string AccessToken { get; set; }
|
||||
|
||||
public string RefreshToken { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
44
src/BarCode.Web.Core/Dto/Login/LoginOutDto.cs
Normal file
44
src/BarCode.Web.Core/Dto/Login/LoginOutDto.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
/// <summary>
|
||||
/// 登出的dto
|
||||
/// </summary>
|
||||
public class LoginOutDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 授权token
|
||||
/// </summary>
|
||||
public string Authorization { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户ID
|
||||
/// </summary>
|
||||
public string UcId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PHP-session-ID
|
||||
/// </summary>
|
||||
public string SessionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PHP登录返回的token
|
||||
/// </summary>
|
||||
public string AccessToken { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PHP登录的过期时间
|
||||
/// </summary>
|
||||
public DateTime ExpiresIn { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///ops自己产生的token 给前端验证用的
|
||||
/// </summary>
|
||||
public string Token { get; set; }
|
||||
|
||||
public string RefreshToken { get; set; }
|
||||
}
|
||||
}
|
||||
86
src/BarCode.Web.Core/Dto/Login/LoginRequest.cs
Normal file
86
src/BarCode.Web.Core/Dto/Login/LoginRequest.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
/// <summary>
|
||||
/// 登录请求对象
|
||||
/// </summary>
|
||||
public class LoginRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 账号
|
||||
/// </summary>
|
||||
public string UserName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 密码
|
||||
/// </summary>
|
||||
public string Password { get; set; }
|
||||
}
|
||||
|
||||
public class LoginAuthorizeRequest : LoginRequest
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string ClientId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string ClientSecret { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string GrantType { get; set; }
|
||||
|
||||
public string Scope { get; set; }
|
||||
}
|
||||
|
||||
public class LoginAuthorizeCodeRequest
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string ClientId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string ClientSecret { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string GrantType { get; set; }
|
||||
|
||||
public string Code { get; set; }
|
||||
|
||||
public string Scope { get; set; }
|
||||
}
|
||||
|
||||
public class LoginAuthorizeRefreshTokenRequest
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string ClientId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string ClientSecret { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string GrantType { get; set; }
|
||||
|
||||
public string RefreshToken { get; set; }
|
||||
|
||||
public string Scope { get; set; }
|
||||
}
|
||||
}
|
||||
29
src/BarCode.Web.Core/Dto/Login/Menu/MenuRequest.cs
Normal file
29
src/BarCode.Web.Core/Dto/Login/Menu/MenuRequest.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单的请求对象
|
||||
/// </summary>
|
||||
public class MenuRequest
|
||||
{
|
||||
public MenuRequest() { }
|
||||
public MenuRequest(int userId, int moduleId)
|
||||
{
|
||||
this.UserId = userId;
|
||||
this.ModuleID = moduleId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户ID(不是人员ID)
|
||||
/// </summary>
|
||||
public int UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 应用ID
|
||||
/// </summary>
|
||||
public int ModuleID { get; set; }
|
||||
}
|
||||
}
|
||||
105
src/BarCode.Web.Core/Dto/Login/Menu/MenuResponse.cs
Normal file
105
src/BarCode.Web.Core/Dto/Login/Menu/MenuResponse.cs
Normal file
@@ -0,0 +1,105 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单响应对象
|
||||
/// </summary>
|
||||
public class MenuResponse
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
///</summary>
|
||||
|
||||
public int ID { get; set; }
|
||||
/// <summary>
|
||||
/// 上级菜单
|
||||
///</summary>
|
||||
|
||||
public int? Pid { get; set; }
|
||||
/// <summary>
|
||||
/// 模块ID,对应apps表ID
|
||||
///</summary>
|
||||
|
||||
public int? Module { get; set; }
|
||||
/// <summary>
|
||||
/// 菜单标题
|
||||
///</summary>
|
||||
|
||||
public string Title { get; set; }
|
||||
/// <summary>
|
||||
/// 菜单标签
|
||||
///</summary>
|
||||
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 菜单路径
|
||||
///</summary>
|
||||
|
||||
public string Path { get; set; }
|
||||
/// <summary>
|
||||
/// 操作,比如 /admin/info
|
||||
///</summary>
|
||||
|
||||
public string Component { get; set; }
|
||||
/// <summary>
|
||||
/// 图标
|
||||
///</summary>
|
||||
|
||||
public string Icon { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
///</summary>
|
||||
|
||||
public string Redirect { get; set; }
|
||||
/// <summary>
|
||||
/// 排序
|
||||
///</summary>
|
||||
|
||||
public int? Sort { get; set; }
|
||||
/// <summary>
|
||||
/// 0为普通按钮/连接,1为左侧菜单
|
||||
///</summary>
|
||||
|
||||
public int? Type { get; set; }
|
||||
/// <summary>
|
||||
/// 是否显示:0为否,1为是
|
||||
///</summary>
|
||||
|
||||
public bool Hidden { get; set; }
|
||||
/// <summary>
|
||||
/// 是否禁用:0为否,1为是
|
||||
///</summary>
|
||||
|
||||
public bool Closed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否禁用:true为禁用,false为启用
|
||||
/// </summary>
|
||||
public bool Disable { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 子集
|
||||
/// </summary>
|
||||
public List<MenuResponse> Children { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// meta
|
||||
/// </summary>
|
||||
public Meta meta { get; set; }
|
||||
}
|
||||
|
||||
public class Meta
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单名字
|
||||
/// </summary>
|
||||
public string title { get; set; }
|
||||
/// <summary>
|
||||
/// 菜单图标
|
||||
/// </summary>
|
||||
public string icon { get; set; }
|
||||
}
|
||||
}
|
||||
27
src/BarCode.Web.Core/Dto/Login/Single/LoginSingleRequest.cs
Normal file
27
src/BarCode.Web.Core/Dto/Login/Single/LoginSingleRequest.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
/// <summary>
|
||||
/// 登录后:请求相关全部信息对象
|
||||
/// </summary>
|
||||
public class LoginSingleRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户ID
|
||||
/// </summary>
|
||||
public int UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应商
|
||||
/// </summary>
|
||||
public int SupplierId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 客户
|
||||
/// </summary>
|
||||
public int CustomerId { get; set; }
|
||||
}
|
||||
}
|
||||
33
src/BarCode.Web.Core/Dto/Login/Single/LoginSingleResponse.cs
Normal file
33
src/BarCode.Web.Core/Dto/Login/Single/LoginSingleResponse.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using BarCode.Web.Core.Dto.SingleData;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
/// <summary>
|
||||
/// 登录后:响应相关全部信息对象
|
||||
/// </summary>
|
||||
public class LoginSingleResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 人员
|
||||
/// </summary>
|
||||
public SingleDataResponse Staff { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 公司
|
||||
/// </summary>
|
||||
public SingleDataResponse Company { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应商
|
||||
/// </summary>
|
||||
public SingleDataResponse Supplier { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 客户
|
||||
/// </summary>
|
||||
public SingleDataResponse Customer { get; set; }
|
||||
}
|
||||
}
|
||||
13
src/BarCode.Web.Core/Dto/Login/TagInfoDto.cs
Normal file
13
src/BarCode.Web.Core/Dto/Login/TagInfoDto.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
public class TagInfoDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string Code { get; set; }
|
||||
}
|
||||
}
|
||||
19
src/BarCode.Web.Core/Dto/Login/Temp/LoginJsonDeptTempDto.cs
Normal file
19
src/BarCode.Web.Core/Dto/Login/Temp/LoginJsonDeptTempDto.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login.Temp
|
||||
{
|
||||
/// <summary>
|
||||
/// 部门
|
||||
/// </summary>
|
||||
public class LoginJsonDeptTempDto
|
||||
{
|
||||
public int id { get; set; }
|
||||
|
||||
public string dept_code { get; set; }
|
||||
public string dept_name { get; set; }
|
||||
|
||||
public int? manager { get; set; }
|
||||
}
|
||||
}
|
||||
107
src/BarCode.Web.Core/Dto/Login/Temp/LoginJsonTokenTempDto.cs
Normal file
107
src/BarCode.Web.Core/Dto/Login/Temp/LoginJsonTokenTempDto.cs
Normal file
@@ -0,0 +1,107 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login.Temp
|
||||
{
|
||||
/// <summary>
|
||||
/// 基本信息人员--和单点系统的字段一一对应
|
||||
/// </summary>
|
||||
public class LoginJsonTokenTempDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户在单点中维一ID
|
||||
/// </summary>
|
||||
public int uc_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户编码
|
||||
/// </summary>
|
||||
public string staff_code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户业务员编码
|
||||
/// </summary>
|
||||
public string business_code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色id
|
||||
/// </summary>
|
||||
public string role_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 姓名
|
||||
/// </summary>
|
||||
public string nickname { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 头像
|
||||
/// </summary>
|
||||
public string avatar { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户手机
|
||||
/// </summary>
|
||||
public string mobile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户邮件
|
||||
/// </summary>
|
||||
public string email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 公司id
|
||||
/// </summary>
|
||||
public int? company_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 组织id
|
||||
/// </summary>
|
||||
public int? org_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应商id
|
||||
/// </summary>
|
||||
public int? supplier_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 客户id
|
||||
/// </summary>
|
||||
public int? customer_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public string created_at { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
public string updated_at { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 签名(登录)时间
|
||||
/// </summary>
|
||||
public string signin_at { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 签名(登录)ip
|
||||
/// </summary>
|
||||
public string signin_ip { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关闭状态,0为未关闭
|
||||
/// </summary>
|
||||
public string closed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户类型 1为员工,2为供应商,3为客户
|
||||
/// </summary>
|
||||
public int? identity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 部门
|
||||
/// </summary>
|
||||
public List<LoginJsonDeptTempDto> depts { get; set; }
|
||||
}
|
||||
}
|
||||
70
src/BarCode.Web.Core/Dto/Login/Temp/LoginTempDto.cs
Normal file
70
src/BarCode.Web.Core/Dto/Login/Temp/LoginTempDto.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login.Temp
|
||||
{
|
||||
/// <summary>
|
||||
/// 登录后获取的:token 信息-和单点系统的字段一一对应
|
||||
/// </summary>
|
||||
public class LoginTempDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户在单点中维一ID
|
||||
/// </summary>
|
||||
public int uc_id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 单点访问的session id
|
||||
/// </summary>
|
||||
public string uc_sessid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 后续与单点通信验证token
|
||||
/// </summary>
|
||||
public string access_token { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///access token过期时间
|
||||
/// </summary>
|
||||
public int expires_in { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 用于access_token过期后刷新用
|
||||
/// </summary>
|
||||
public string refresh_token { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 加密后的用户数据
|
||||
/// </summary>
|
||||
public string encryptedData { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 登录后获取的:token 信息-和单点系统的字段一一对应
|
||||
/// </summary>
|
||||
public class LoginTempV2Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 后续与单点通信验证token
|
||||
/// </summary>
|
||||
public string access_token { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///access token过期时间
|
||||
/// </summary>
|
||||
public int access_expired_at { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 用于access_token过期后刷新用
|
||||
/// </summary>
|
||||
public string refresh_token { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 加密后的用户数据
|
||||
/// </summary>
|
||||
public string encrypted_data { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login.Temp
|
||||
{
|
||||
public class LoginJsonCompanyTempDto
|
||||
{
|
||||
public int company_id { get; set; }
|
||||
public string company_name { get; set; }
|
||||
public string company_code { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login.Temp.v3
|
||||
{
|
||||
public class LoginJsonDeptV3TempDto
|
||||
{
|
||||
public int dept_id { get; set; }
|
||||
public string dept_name { get; set; }
|
||||
public string dept_code { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login.Temp
|
||||
{
|
||||
public class LoginJsonOrgTempDto
|
||||
{
|
||||
public int org_id { get; set; }
|
||||
public string org_name { get; set; }
|
||||
public string org_code { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login.Temp.v3
|
||||
{
|
||||
public class LoginJsonRoleTempDto
|
||||
{
|
||||
public int role_id { get; set; }
|
||||
public string role_name { get; set; }
|
||||
public string role_code { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login.Temp.v3
|
||||
{
|
||||
public class LoginJsonTokenV3TempDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户在单点中维一ID
|
||||
/// </summary>
|
||||
public int id { get; set; }
|
||||
|
||||
public string dingtalk_uid { get; set; }
|
||||
|
||||
public string dingtalk_unionid { get; set; }
|
||||
|
||||
public string nickname { get; set; }
|
||||
public string realname { get; set; }
|
||||
|
||||
public string mobile { get; set; }
|
||||
|
||||
public int identity { get; set; }
|
||||
|
||||
public LoginJsonCompanyTempDto company { get; set; }
|
||||
public List<LoginJsonOrgTempDto> orgs { get; set; }
|
||||
public List<LoginJsonDeptV3TempDto> depts { get; set; }
|
||||
public List<LoginJsonRoleTempDto> roles { get; set; }
|
||||
}
|
||||
}
|
||||
101
src/BarCode.Web.Core/Dto/Login/UserInfoDto.cs
Normal file
101
src/BarCode.Web.Core/Dto/Login/UserInfoDto.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
public class UserInfoDto
|
||||
{
|
||||
public string SeesionId { get; set; }
|
||||
|
||||
public int UcId { get; set; }
|
||||
|
||||
public List<DeptInfoDto> Depts { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 人员ID
|
||||
/// </summary>
|
||||
public int StaffId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户编码
|
||||
/// </summary>
|
||||
public string staff_code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户业务员编码
|
||||
/// </summary>
|
||||
public string business_code { get; set; }
|
||||
/// <summary>
|
||||
/// 头像
|
||||
/// </summary>
|
||||
public string Avatar { get; set; }
|
||||
/// <summary>
|
||||
/// 是否是admin账户
|
||||
/// </summary>
|
||||
public bool IsAdmin { get; set; } = false;
|
||||
|
||||
public int Closed { get; set; }
|
||||
|
||||
public string CreatedAt { get; set; }
|
||||
|
||||
public string Email { get; set; }
|
||||
|
||||
public string Mobile { get; set; }
|
||||
|
||||
public string Nickname { get; set; }
|
||||
|
||||
public string RoleId { get; set; }
|
||||
|
||||
public string SigninAt { get; set; }
|
||||
|
||||
public string UpdatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 公司id
|
||||
/// </summary>
|
||||
public int CompanyId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 公司名称
|
||||
/// </summary>
|
||||
public string CompanyName { get; set; }
|
||||
|
||||
//org_id, supplier_id ,customer_id, identity: 1为员工,2为供应商,3为客户
|
||||
|
||||
/// <summary>
|
||||
/// 组织id 用户类型为内部员工的时候才有值
|
||||
/// </summary>
|
||||
public int? OrgId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应商id 用户类型为供应商的时候才有值
|
||||
/// </summary>
|
||||
public int? SupplierId { get; set; }
|
||||
/// <summary>
|
||||
/// 供应商Code 用户类型为供应商的时候才有值
|
||||
/// </summary>
|
||||
public string SupplierCode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 供应商名称
|
||||
/// </summary>
|
||||
public string SupplierName { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// 客户id 用户类型为客户的时候才有值
|
||||
/// </summary>
|
||||
public int? CustomerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 客户名称
|
||||
/// </summary>
|
||||
public string CustomerName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户类型:1为员工,2为供应商,3为客户
|
||||
/// </summary>
|
||||
public int? Identity { get; set; }
|
||||
|
||||
//public string AuthList { get; set; }
|
||||
}
|
||||
}
|
||||
30
src/BarCode.Web.Core/Dto/Login/UserInfoV3Dto.cs
Normal file
30
src/BarCode.Web.Core/Dto/Login/UserInfoV3Dto.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.Login
|
||||
{
|
||||
public class UserInfoV3Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户在单点中维一ID
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
public string DingtalkUid { get; set; }
|
||||
|
||||
public string DingtalkUnionid { get; set; }
|
||||
|
||||
public string Nickname { get; set; }
|
||||
public string Realname { get; set; }
|
||||
|
||||
public string Mobile { get; set; }
|
||||
|
||||
public int Identity { get; set; }
|
||||
|
||||
public TagInfoDto Company { get; set; }
|
||||
public List<TagInfoDto> Orgs { get; set; } = new List<TagInfoDto>();
|
||||
public List<TagInfoDto> Depts { get; set; }= new List<TagInfoDto>();
|
||||
public List<TagInfoDto> Roles { get; set; }= new List<TagInfoDto>();
|
||||
}
|
||||
}
|
||||
65
src/BarCode.Web.Core/Dto/MaterialResponse.cs
Normal file
65
src/BarCode.Web.Core/Dto/MaterialResponse.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 序列号信息
|
||||
/// </summary>
|
||||
public class MaterialResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 箱Id
|
||||
/// </summary>
|
||||
public int BoxId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 箱号
|
||||
/// </summary>
|
||||
public string BoxBillNo { get; set; }
|
||||
///// <summary>
|
||||
///// 仓位Id(序列号不存在库存的话仓位是0)
|
||||
///// </summary>
|
||||
//public int SubStockId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 仓位编码(序列号不存在库存的话仓位是"")
|
||||
/// </summary>
|
||||
public string SubStockCode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 仓库编码
|
||||
/// </summary>
|
||||
public string StockCode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 是否存在于箱库存中
|
||||
/// </summary>
|
||||
public bool IsBoxInventory { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 序列号
|
||||
/// </summary>
|
||||
public string SerialNumber { get; set; }
|
||||
/// <summary>
|
||||
/// 物料名称
|
||||
/// </summary>
|
||||
public string MaterialName { get; set; }
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; }
|
||||
/// <summary>
|
||||
/// 物料规格型号
|
||||
/// </summary>
|
||||
public string Specifications { get; set; }
|
||||
/// <summary>
|
||||
/// 是否是老Ops条码
|
||||
/// </summary>
|
||||
public bool IsOldOps { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 是否冻结
|
||||
///</summary>
|
||||
public bool IsDelete { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 是否激活过(只有做过 盘点 采购和非采购上架 出库回退上架 才算激活)
|
||||
///</summary>
|
||||
public bool IsActivate { get; set; } = false;
|
||||
}
|
||||
}
|
||||
37
src/BarCode.Web.Core/Dto/MaterialSubStock.cs
Normal file
37
src/BarCode.Web.Core/Dto/MaterialSubStock.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 物料对应的仓位有哪些
|
||||
/// </summary>
|
||||
public class MaterialSubStock
|
||||
{
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 仓位编码
|
||||
/// </summary>
|
||||
public string SubStockCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 仓位名称
|
||||
/// </summary>
|
||||
public string SubStock { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 组织
|
||||
/// </summary>
|
||||
public string OrgCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 仓库
|
||||
/// </summary>
|
||||
public string StockCode { get; set; }
|
||||
}
|
||||
}
|
||||
29
src/BarCode.Web.Core/Dto/OperateRequest.cs
Normal file
29
src/BarCode.Web.Core/Dto/OperateRequest.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 操作 Id集合
|
||||
/// </summary>
|
||||
public class OperateRequest
|
||||
{
|
||||
public List<int> Ids { get; set; } = new List<int>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 操作 Id集合
|
||||
/// </summary>
|
||||
public class OperatePagedRequest : PaginationBaseRequestDto
|
||||
{
|
||||
public List<int> Ids { get; set; } = new List<int>();
|
||||
}
|
||||
/// <summary>
|
||||
/// 操作 string集合
|
||||
/// </summary>
|
||||
public class OperateStrRequest
|
||||
{
|
||||
public List<string> Ids { get; set; } = new List<string>();
|
||||
}
|
||||
}
|
||||
28
src/BarCode.Web.Core/Dto/PaginationRequestDto.cs
Normal file
28
src/BarCode.Web.Core/Dto/PaginationRequestDto.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
public class PaginationRequestDto: PaginationBaseRequestDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织Id(所有列表页都需要 全局)
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "组织不能为空")]
|
||||
public virtual int OrgId { get; set; }
|
||||
}
|
||||
|
||||
public class PaginationBaseRequestDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 页数 不传默认为1
|
||||
/// </summary>
|
||||
public int PageNo { get; set; } = 1;
|
||||
/// <summary>
|
||||
/// 每页条数 不传默认每页10 条
|
||||
/// </summary>
|
||||
public int PageSize { get; set; } = 10;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.SecurityNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// 生成防伪码
|
||||
/// </summary>
|
||||
public class GenerateSecurityNumberRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织Code
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "组织不能为空")]
|
||||
public string OrgCode { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "数量不能为空")]
|
||||
public int Number { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.SecurityNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// 防伪码下载
|
||||
/// </summary>
|
||||
public class OperateSecurityNumberRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 生成记录Id
|
||||
/// </summary>
|
||||
public List<int> GenerateRecordIds { get; set; } = new List<int>();
|
||||
/// <summary>
|
||||
/// 是否全部操作
|
||||
/// </summary>
|
||||
public bool IsAll { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 如果是部分操作(防伪码) 全部操作的话可不传
|
||||
/// </summary>
|
||||
public List<string> SecurityNumbers { get; set; } = new List<string>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.SecurityNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// 防伪码生成列表记录
|
||||
/// </summary>
|
||||
public class SecurityGenerateRecordInfoResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 主键 订单编号
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
/// <summary>
|
||||
/// 防伪码批次
|
||||
/// </summary>
|
||||
public string LotNumber { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料规格型号
|
||||
/// </summary>
|
||||
public string Specifications { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料名称
|
||||
/// </summary>
|
||||
public string MaterialName { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料条码
|
||||
/// </summary>
|
||||
public string BarCode { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 生成完成 1 生成中 0
|
||||
///</summary>
|
||||
public string GenerateComplete { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 生成条码数量
|
||||
///</summary>
|
||||
public int Number { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 下载数
|
||||
///</summary>
|
||||
public int DownLoadNumber { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 创建人
|
||||
/// </summary>
|
||||
public string Creator { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 生成时间
|
||||
/// </summary>
|
||||
public string CreateTime { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 生成完成时间
|
||||
/// </summary>
|
||||
public string GenerateCompleteTime { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.SecurityNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// 防伪码生成列表
|
||||
/// </summary>
|
||||
public class SecurityGenerateRecordQueryRequest : PaginationBaseRequestDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织Code
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "组织不能为空")]
|
||||
public string OrgCode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime? CreateBeginDate { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime? CreateEndDate { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 防伪码集合
|
||||
/// </summary>
|
||||
public List<string> SecurityNumbers { get; set; } = new List<string>();
|
||||
/// <summary>
|
||||
/// 防伪码批号
|
||||
/// </summary>
|
||||
public List<string> LotNumbers { get; set; } = new List<string>();
|
||||
/// <summary>
|
||||
/// 生成完成 true 生成中 false 不搜 null或不传
|
||||
///</summary>
|
||||
public bool? GenerateComplete { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
using Npoi.Mapper.Attributes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.SecurityNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// 防伪码列表
|
||||
/// </summary>
|
||||
public class SecurityNumberInfoResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 流水号
|
||||
/// </summary>
|
||||
[Column("流水号")]
|
||||
public long Id { get; set; }
|
||||
/// <summary>
|
||||
/// 生成记录Id
|
||||
/// </summary>
|
||||
[Ignore]
|
||||
public int GenerateRecordId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 防伪码
|
||||
/// </summary>
|
||||
[Column("防伪码")]
|
||||
public string SecurityNumber { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料规格型号
|
||||
/// </summary>
|
||||
[Column("规格型号")]
|
||||
public string Specifications { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
[Column("数量")]
|
||||
public int Number { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 生成时间
|
||||
/// </summary>
|
||||
[Column("生成时间")]
|
||||
public string CreateTime { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 下载次数
|
||||
/// </summary>
|
||||
[Column("下载次数")]
|
||||
public int DownLoadNumber { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 最新下载时间
|
||||
/// </summary>
|
||||
[Column("最近下载时间")]
|
||||
public string DownLoadTime { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 创建人
|
||||
/// </summary>
|
||||
[Ignore]
|
||||
public string Creator { get; set; } = string.Empty;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.SecurityNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// 防伪码列表
|
||||
/// </summary>
|
||||
public class SecurityNumberQueryRequest : PaginationBaseRequestDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织Code
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "组织不能为空")]
|
||||
public string OrgCode { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 生成记录Id
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "生成记录不能为空")]
|
||||
public int GenerateRecordId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 流水号区间-开始
|
||||
/// </summary>
|
||||
public int? IdBegin { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 流水号区间-结束
|
||||
/// </summary>
|
||||
public int? IdEnd { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 是否下载 true 下载 false 未下载
|
||||
/// </summary>
|
||||
public bool? IsDownLoad { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 下载时间
|
||||
/// </summary>
|
||||
public DateTime? DownLoadBeginDate { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 下载时间
|
||||
/// </summary>
|
||||
public DateTime? DownLoadEndDate { get; set; } = null;
|
||||
/// <summary>
|
||||
/// 防伪码
|
||||
/// </summary>
|
||||
public List<string> SecurityNumbers { get; set; } = new List<string>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
using Npoi.Mapper.Attributes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.SecurityNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// 防伪码导出
|
||||
/// </summary>
|
||||
public class SecurityNumbersExportReponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 防伪码
|
||||
/// </summary>
|
||||
[Column("防伪码")]
|
||||
public string SecurityNumber { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料规格型号
|
||||
/// </summary>
|
||||
[Column("规格型号")]
|
||||
public string Specifications { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
[Column("数量")]
|
||||
public int Number { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 下载次数
|
||||
/// </summary>
|
||||
[Column("下载次数")]
|
||||
public int DownLoadNumber { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 最新下载时间
|
||||
/// </summary>
|
||||
[Column("最近下载时间")]
|
||||
public string DownLoadTime { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.SecurityNumbers
|
||||
{
|
||||
public class SecurityNumbersExportRequest : PaginationBaseRequestDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 生成记录Ids
|
||||
/// </summary>
|
||||
public List<int> Ids { get; set; } = new List<int>();
|
||||
}
|
||||
}
|
||||
31
src/BarCode.Web.Core/Dto/SecurityNumbers/SecurityResponse.cs
Normal file
31
src/BarCode.Web.Core/Dto/SecurityNumbers/SecurityResponse.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.SecurityNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// 防伪码信息
|
||||
/// </summary>
|
||||
public class SecurityResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 防伪码
|
||||
/// </summary>
|
||||
public string Security { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 是否第一次查询 true 第一次 false 不是第一次
|
||||
/// </summary>
|
||||
public bool IsOneQuery { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 查询次数
|
||||
/// </summary>
|
||||
public int QueryCount { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 第一次查询时间
|
||||
/// </summary>
|
||||
public string QueryTime { get; set; } = "";
|
||||
}
|
||||
}
|
||||
98
src/BarCode.Web.Core/Dto/SendDataDto.cs
Normal file
98
src/BarCode.Web.Core/Dto/SendDataDto.cs
Normal file
@@ -0,0 +1,98 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace BarCode.Web.Core.Dto
|
||||
{
|
||||
public class SendDataDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 客户编码
|
||||
/// </summary>
|
||||
public string CustomerCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 客户名称
|
||||
/// </summary>
|
||||
public string CustomerName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 手机号码
|
||||
/// </summary>
|
||||
public string PhoneNumbers { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 邮箱
|
||||
/// </summary>
|
||||
public string Emails { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 邮箱
|
||||
/// </summary>
|
||||
public List<MailAddress> EmailList { get; set; } = new List<MailAddress>();
|
||||
|
||||
/// <summary>
|
||||
/// 明细
|
||||
/// </summary>
|
||||
public List<SendDataDetailsDto> Details { get; set; } = new List<SendDataDetailsDto>();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 邮箱
|
||||
/// </summary>
|
||||
public class MailAddress
|
||||
{
|
||||
public MailAddress(string name,string email)
|
||||
{
|
||||
this.Name = name;
|
||||
this.Email = email;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 地址
|
||||
/// </summary>
|
||||
public string Email { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 明细
|
||||
/// </summary>
|
||||
public class SendDataDetailsDto
|
||||
{
|
||||
|
||||
///// <summary>
|
||||
///// 任务明细ID
|
||||
///// </summary>
|
||||
//public int TaskDetailId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 入库明细ID
|
||||
/// </summary>
|
||||
public int InStockDetailId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物料名称
|
||||
/// </summary>
|
||||
public string MaterialName { get; set; }
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; }
|
||||
/// <summary>
|
||||
/// 物料规格型号
|
||||
/// </summary>
|
||||
public string Specifications { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
public decimal Qty { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.SerialNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// 生成序列号请求参数
|
||||
/// </summary>
|
||||
public class GenerateSerialNumberRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织Code
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "组织不能为空")]
|
||||
public string OrgCode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 明细数据
|
||||
/// </summary>
|
||||
public List<GenerateSerialNumberInfoRequest> Details { get; set; } = new List<GenerateSerialNumberInfoRequest>();
|
||||
}
|
||||
/// <summary>
|
||||
/// 生成序列号请求参数详情
|
||||
/// </summary>
|
||||
public class GenerateSerialNumberInfoRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 物料Id转32进制
|
||||
/// </summary>
|
||||
public string IdConvertBar { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 规格型号
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "物料不能为空")]
|
||||
public string Specifications { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "数量不能为空")]
|
||||
public int Number { get; set; }
|
||||
/// <summary>
|
||||
/// 采购单号
|
||||
///</summary>
|
||||
[Required(ErrorMessage = "采购订单号不能为空")]
|
||||
public string PurchaseBillNo { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// 是否套装
|
||||
/// </summary>
|
||||
public int isTwo { get; set; } = 1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BarCode.Web.Core.Dto.SerialNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// 操作序列号请求接口(打印 下载)
|
||||
/// </summary>
|
||||
public class OperateSerialNumberRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 生成记录Id
|
||||
/// </summary>
|
||||
public List<int> GenerateRecordIds { get; set; } = new List<int>();
|
||||
/// <summary>
|
||||
/// 是否全部操作
|
||||
/// </summary>
|
||||
public bool IsAll { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 如果是部分操作(序列号) 全部操作的话可不传
|
||||
/// </summary>
|
||||
public List<string> SerialNumbers { get; set; } = new List<string>();
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user