添加项目文件。
This commit is contained in:
30
.dockerignore
Normal file
30
.dockerignore
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
**/.classpath
|
||||||
|
**/.dockerignore
|
||||||
|
**/.env
|
||||||
|
**/.git
|
||||||
|
**/.gitignore
|
||||||
|
**/.project
|
||||||
|
**/.settings
|
||||||
|
**/.toolstarget
|
||||||
|
**/.vs
|
||||||
|
**/.vscode
|
||||||
|
**/*.*proj.user
|
||||||
|
**/*.dbmdl
|
||||||
|
**/*.jfm
|
||||||
|
**/azds.yaml
|
||||||
|
**/bin
|
||||||
|
**/charts
|
||||||
|
**/docker-compose*
|
||||||
|
**/Dockerfile*
|
||||||
|
**/node_modules
|
||||||
|
**/npm-debug.log
|
||||||
|
**/obj
|
||||||
|
**/secrets.dev.yaml
|
||||||
|
**/values.dev.yaml
|
||||||
|
LICENSE
|
||||||
|
README.md
|
||||||
|
!**/.gitignore
|
||||||
|
!.git/HEAD
|
||||||
|
!.git/config
|
||||||
|
!.git/packed-refs
|
||||||
|
!.git/refs/heads/**
|
||||||
63
.gitattributes
vendored
Normal file
63
.gitattributes
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
###############################################################################
|
||||||
|
# Set default behavior to automatically normalize line endings.
|
||||||
|
###############################################################################
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set default behavior for command prompt diff.
|
||||||
|
#
|
||||||
|
# This is need for earlier builds of msysgit that does not have it on by
|
||||||
|
# default for csharp files.
|
||||||
|
# Note: This is only used by command line
|
||||||
|
###############################################################################
|
||||||
|
#*.cs diff=csharp
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Set the merge driver for project and solution files
|
||||||
|
#
|
||||||
|
# Merging from the command prompt will add diff markers to the files if there
|
||||||
|
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
||||||
|
# the diff markers are never inserted). Diff markers may cause the following
|
||||||
|
# file extensions to fail to load in VS. An alternative would be to treat
|
||||||
|
# these files as binary and thus will always conflict and require user
|
||||||
|
# intervention with every merge. To do so, just uncomment the entries below
|
||||||
|
###############################################################################
|
||||||
|
#*.sln merge=binary
|
||||||
|
#*.csproj merge=binary
|
||||||
|
#*.vbproj merge=binary
|
||||||
|
#*.vcxproj merge=binary
|
||||||
|
#*.vcproj merge=binary
|
||||||
|
#*.dbproj merge=binary
|
||||||
|
#*.fsproj merge=binary
|
||||||
|
#*.lsproj merge=binary
|
||||||
|
#*.wixproj merge=binary
|
||||||
|
#*.modelproj merge=binary
|
||||||
|
#*.sqlproj merge=binary
|
||||||
|
#*.wwaproj merge=binary
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# behavior for image files
|
||||||
|
#
|
||||||
|
# image files are treated as binary by default.
|
||||||
|
###############################################################################
|
||||||
|
#*.jpg binary
|
||||||
|
#*.png binary
|
||||||
|
#*.gif binary
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# diff behavior for common document formats
|
||||||
|
#
|
||||||
|
# Convert binary document formats to text before diffing them. This feature
|
||||||
|
# is only available from the command line. Turn it on by uncommenting the
|
||||||
|
# entries below.
|
||||||
|
###############################################################################
|
||||||
|
#*.doc diff=astextplain
|
||||||
|
#*.DOC diff=astextplain
|
||||||
|
#*.docx diff=astextplain
|
||||||
|
#*.DOCX diff=astextplain
|
||||||
|
#*.dot diff=astextplain
|
||||||
|
#*.DOT diff=astextplain
|
||||||
|
#*.pdf diff=astextplain
|
||||||
|
#*.PDF diff=astextplain
|
||||||
|
#*.rtf diff=astextplain
|
||||||
|
#*.RTF diff=astextplain
|
||||||
366
.gitignore
vendored
Normal file
366
.gitignore
vendored
Normal file
@@ -0,0 +1,366 @@
|
|||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
##
|
||||||
|
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.rsuser
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.userosscache
|
||||||
|
*.sln.docstates
|
||||||
|
|
||||||
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
|
*.userprefs
|
||||||
|
|
||||||
|
# Mono auto generated files
|
||||||
|
mono_crash.*
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
|
x64/
|
||||||
|
x86/
|
||||||
|
[Ww][Ii][Nn]32/
|
||||||
|
[Aa][Rr][Mm]/
|
||||||
|
[Aa][Rr][Mm]64/
|
||||||
|
bld/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
[Oo]ut/
|
||||||
|
[Ll]og/
|
||||||
|
[Ll]ogs/
|
||||||
|
|
||||||
|
# Visual Studio 2015/2017 cache/options directory
|
||||||
|
.vs/
|
||||||
|
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||||
|
#wwwroot/
|
||||||
|
|
||||||
|
# Visual Studio 2017 auto generated files
|
||||||
|
Generated\ Files/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
|
||||||
|
# NUnit
|
||||||
|
*.VisualState.xml
|
||||||
|
TestResult.xml
|
||||||
|
nunit-*.xml
|
||||||
|
|
||||||
|
# Build Results of an ATL Project
|
||||||
|
[Dd]ebugPS/
|
||||||
|
[Rr]eleasePS/
|
||||||
|
dlldata.c
|
||||||
|
|
||||||
|
# Benchmark Results
|
||||||
|
BenchmarkDotNet.Artifacts/
|
||||||
|
|
||||||
|
# .NET Core
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
|
||||||
|
# ASP.NET Scaffolding
|
||||||
|
ScaffoldingReadMe.txt
|
||||||
|
|
||||||
|
# StyleCop
|
||||||
|
StyleCopReport.xml
|
||||||
|
|
||||||
|
# Files built by Visual Studio
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_h.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.iobj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.ipdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*_wpftmp.csproj
|
||||||
|
*.log
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
*.sap
|
||||||
|
|
||||||
|
# Visual Studio Trace Files
|
||||||
|
*.e2e
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# AxoCover is a Code Coverage Tool
|
||||||
|
.axoCover/*
|
||||||
|
!.axoCover/settings.json
|
||||||
|
|
||||||
|
# Coverlet is a free, cross platform Code Coverage Tool
|
||||||
|
coverage*.json
|
||||||
|
coverage*.xml
|
||||||
|
coverage*.info
|
||||||
|
|
||||||
|
# Visual Studio code coverage results
|
||||||
|
*.coverage
|
||||||
|
*.coveragexml
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
nCrunchTemp_*
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||||
|
# but database connection strings (with potential passwords) will be unencrypted
|
||||||
|
*.pubxml
|
||||||
|
*.publishproj
|
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||||
|
# in these scripts will be unencrypted
|
||||||
|
PublishScripts/
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# NuGet Symbol Packages
|
||||||
|
*.snupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/[Pp]ackages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/[Pp]ackages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/[Pp]ackages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignorable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Microsoft Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Microsoft Azure Emulator
|
||||||
|
ecf/
|
||||||
|
rcf/
|
||||||
|
|
||||||
|
# Windows Store app package directories and files
|
||||||
|
AppPackages/
|
||||||
|
BundleArtifacts/
|
||||||
|
Package.StoreAssociation.xml
|
||||||
|
_pkginfo.txt
|
||||||
|
*.appx
|
||||||
|
*.appxbundle
|
||||||
|
*.appxupload
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!?*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
# Including strong name files can present a security risk
|
||||||
|
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||||
|
#*.snk
|
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||||
|
#bower_components/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
ServiceFabricBackup/
|
||||||
|
*.rptproj.bak
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
*.ndf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
*.rptproj.rsuser
|
||||||
|
*- [Bb]ackup.rdl
|
||||||
|
*- [Bb]ackup ([0-9]).rdl
|
||||||
|
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# GhostDoc plugin setting file
|
||||||
|
*.GhostDoc.xml
|
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio
|
||||||
|
.ntvs_analysis.dat
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Visual Studio 6 build log
|
||||||
|
*.plg
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file
|
||||||
|
*.opt
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||||
|
*.vbw
|
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output
|
||||||
|
**/*.HTMLClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/ModelManifest.xml
|
||||||
|
**/*.Server/GeneratedArtifacts
|
||||||
|
**/*.Server/ModelManifest.xml
|
||||||
|
_Pvt_Extensions
|
||||||
|
|
||||||
|
# Paket dependency manager
|
||||||
|
.paket/paket.exe
|
||||||
|
paket-files/
|
||||||
|
|
||||||
|
# FAKE - F# Make
|
||||||
|
.fake/
|
||||||
|
|
||||||
|
# CodeRush personal settings
|
||||||
|
.cr/personal
|
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS)
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Cake - Uncomment if you are using it
|
||||||
|
# tools/**
|
||||||
|
# !tools/packages.config
|
||||||
|
|
||||||
|
# Tabs Studio
|
||||||
|
*.tss
|
||||||
|
|
||||||
|
# Telerik's JustMock configuration file
|
||||||
|
*.jmconfig
|
||||||
|
|
||||||
|
# BizTalk build output
|
||||||
|
*.btp.cs
|
||||||
|
*.btm.cs
|
||||||
|
*.odx.cs
|
||||||
|
*.xsd.cs
|
||||||
|
|
||||||
|
# OpenCover UI analysis results
|
||||||
|
OpenCover/
|
||||||
|
|
||||||
|
# Azure Stream Analytics local run output
|
||||||
|
ASALocalRun/
|
||||||
|
|
||||||
|
# MSBuild Binary and Structured Log
|
||||||
|
*.binlog
|
||||||
|
|
||||||
|
# NVidia Nsight GPU debugger configuration file
|
||||||
|
*.nvuser
|
||||||
|
|
||||||
|
# MFractors (Xamarin productivity tool) working folder
|
||||||
|
.mfractor/
|
||||||
|
|
||||||
|
# Local History for Visual Studio
|
||||||
|
.localhistory/
|
||||||
|
|
||||||
|
# BeatPulse healthcheck temp database
|
||||||
|
healthchecksdb
|
||||||
|
|
||||||
|
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||||
|
MigrationBackup/
|
||||||
|
|
||||||
|
# Ionide (cross platform F# VS Code tools) working folder
|
||||||
|
.ionide/
|
||||||
|
|
||||||
|
# Fody - auto-generated XML schema
|
||||||
|
FodyWeavers.xsd
|
||||||
|
/BarCode.Web.sln
|
||||||
|
/src/BarCode.Web.Api/BarCode.Web.Api.csproj
|
||||||
|
/src/BarCode.Web.Api/BarCode.Web.Api.csproj
|
||||||
40
Dockerfile
Normal file
40
Dockerfile
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
||||||
|
#<23>ĵ<EFBFBD><C4B5><EFBFBD>ַ https://github.com/dotnet/dotnet-docker/
|
||||||
|
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
|
||||||
|
WORKDIR /app
|
||||||
|
EXPOSE 8080
|
||||||
|
EXPOSE 80
|
||||||
|
EXPOSE 443
|
||||||
|
|
||||||
|
#<23><>װapt-get <20><>װ libc6-dev , libgdiplus <20><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>system.drawing <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ĭ<><C4AC>ubuntu<74><75><EFBFBD><EFBFBD>
|
||||||
|
#RUN apt-get update -qq && apt-get -y install libgdiplus libc6-dev
|
||||||
|
#<23><>װ curl
|
||||||
|
RUN apt-get update && apt-get install -y curl
|
||||||
|
|
||||||
|
COPY ["src/BarCode.Web.Api/wwwroot/BarCode.Web.Api.xml", "/app/BarCode.Web.Api.xml"]
|
||||||
|
COPY ["src/BarCode.Web.Api/wwwroot/BarCode.Web.Core.xml", "/app/BarCode.Web.Core.xml"]
|
||||||
|
COPY ["src/BarCode.Web.Api/wwwroot/BarCode.Web.Domain.xml", "/app/BarCode.Web.Domain.xml"]
|
||||||
|
|
||||||
|
USER app
|
||||||
|
|
||||||
|
#FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
||||||
|
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
||||||
|
ARG BUILD_CONFIGURATION=Release
|
||||||
|
WORKDIR /src
|
||||||
|
COPY ["src/BarCode.Web.Api/BarCode.Web.Api.csproj", "src/BarCode.Web.Api/"]
|
||||||
|
COPY ["src/BarCode.Web.Repositories/BarCode.Web.Repositories.csproj", "src/BarCode.Web.Repositories/"]
|
||||||
|
COPY ["src/BarCode.Web.Core/BarCode.Web.Core.csproj", "src/BarCode.Web.Core/"]
|
||||||
|
COPY ["src/BarCode.Web.Domain/BarCode.Web.Domain.csproj", "src/BarCode.Web.Domain/"]
|
||||||
|
RUN dotnet restore "./src/BarCode.Web.Api/BarCode.Web.Api.csproj"
|
||||||
|
COPY . .
|
||||||
|
WORKDIR "/src/src/BarCode.Web.Api"
|
||||||
|
RUN dotnet build "./BarCode.Web.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build
|
||||||
|
|
||||||
|
FROM build AS publish
|
||||||
|
ARG BUILD_CONFIGURATION=Release
|
||||||
|
RUN dotnet publish "./BarCode.Web.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
|
||||||
|
|
||||||
|
FROM base AS final
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=publish /app/publish .
|
||||||
|
ENTRYPOINT ["dotnet", "BarCode.Web.Api.dll"]
|
||||||
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>();
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user