Browse Source

吉香居初始化

master
747575620@qq.com 1 year ago
parent
commit
35696d6db3
100 changed files with 11432 additions and 0 deletions
  1. +3
    -0
      .gitignore
  2. +154
    -0
      Jenkinsfile
  3. +7
    -0
      NuGet.config
  4. +25
    -0
      backend/.dockerignore
  5. +35
    -0
      backend/BPA.MES.Base.Application/BPA.MES.Base.Application.csproj
  6. +5740
    -0
      backend/BPA.MES.Base.Application/BPA.MES.Base.Application.xml
  7. +80
    -0
      backend/BPA.MES.Base.Application/Const/ClaimConst.cs
  8. +20
    -0
      backend/BPA.MES.Base.Application/Const/DeviceTypeEnum.cs
  9. +40
    -0
      backend/BPA.MES.Base.Application/Const/WorkOrderStatusEnum.cs
  10. +33
    -0
      backend/BPA.MES.Base.Application/Entitys/Agv/AgvLineEntity.cs
  11. +21
    -0
      backend/BPA.MES.Base.Application/Entitys/Agv/AgvPointEntity.cs
  12. +22
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_BucketInfoEntity.cs
  13. +25
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_BucketMaterialsRecordEntity.cs
  14. +41
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_CraftStepsEntity.cs
  15. +25
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_CraftsInfoEntity.cs
  16. +39
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_DevicesInfoEntity.cs
  17. +33
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_FinalsInfoEntity.cs
  18. +21
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_LineDevicesEntity.cs
  19. +21
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_LineStocksEntity.cs
  20. +29
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_MaterialsInfoEntity.cs
  21. +30
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_StockInfoEntity.cs
  22. +33
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_WorkInfoEntity.cs
  23. +21
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_WorkInfoItemEntity.cs
  24. +25
    -0
      backend/BPA.MES.Base.Application/Entitys/App/Pztj_WorkInfoStatusEntity.cs
  25. +18
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/DeviceParmEntity.cs
  26. +22
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/DeviceRecipeEntity.cs
  27. +23
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/DevicesInfoEntity.cs
  28. +21
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/GroupInfoEntity.cs
  29. +25
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/MQTTInfoEntity.cs
  30. +31
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/MaterialsInfoEntity.cs
  31. +31
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/OperLogEntity.cs
  32. +13
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/OrderInfoEntity.cs
  33. +25
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/ProductLineEntity.cs
  34. +29
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/RecipeMaterialEntity.cs
  35. +21
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/RecipesGroupEntity.cs
  36. +22
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/RecipesInfoEntity.cs
  37. +30
    -0
      backend/BPA.MES.Base.Application/Entitys/Base/StoreInfoEntity.cs
  38. +29
    -0
      backend/BPA.MES.Base.Application/Entitys/Sys/AccountEntity.cs
  39. +29
    -0
      backend/BPA.MES.Base.Application/Entitys/Sys/AuthorizeTemplateEntity.cs
  40. +27
    -0
      backend/BPA.MES.Base.Application/Entitys/Sys/AuthorizeTemplateItemEntity.cs
  41. +30
    -0
      backend/BPA.MES.Base.Application/Entitys/Sys/AuthorizeTemplateMapEntity.cs
  42. +69
    -0
      backend/BPA.MES.Base.Application/Entitys/Sys/EmployeeEntity.cs
  43. +46
    -0
      backend/BPA.MES.Base.Application/Entitys/Sys/ModuleEntity.cs
  44. +32
    -0
      backend/BPA.MES.Base.Application/Entitys/Sys/RoleEntity.cs
  45. +46
    -0
      backend/BPA.MES.Base.Application/Filters/OperLogAttribute .cs
  46. +19
    -0
      backend/BPA.MES.Base.Application/GlobalUsings.cs
  47. +21
    -0
      backend/BPA.MES.Base.Application/MQTT/IMessage.cs
  48. +86
    -0
      backend/BPA.MES.Base.Application/MQTT/MQTTService.cs
  49. +11
    -0
      backend/BPA.MES.Base.Application/MQTT/MessageID.cs
  50. +24
    -0
      backend/BPA.MES.Base.Application/MQTT/MsgPackage.cs
  51. +31
    -0
      backend/BPA.MES.Base.Application/MQTT/Topics.cs
  52. +36
    -0
      backend/BPA.MES.Base.Application/Services/BaseService.cs
  53. +75
    -0
      backend/BPA.MES.Base.Application/Services/BucketInfoService/Dtos/BucketInfoDto.cs
  54. +85
    -0
      backend/BPA.MES.Base.Application/Services/BucketInfoService/Dtos/BucketMaterialsRecordDto.cs
  55. +147
    -0
      backend/BPA.MES.Base.Application/Services/BucketInfoService/Services/BucketInfoService.cs
  56. +103
    -0
      backend/BPA.MES.Base.Application/Services/BucketInfoService/Services/BucketMaterialsRecordServcie.cs
  57. +48
    -0
      backend/BPA.MES.Base.Application/Services/BucketInfoService/Services/IBucketInfoService.cs
  58. +43
    -0
      backend/BPA.MES.Base.Application/Services/BucketInfoService/Services/IBucketMaterialsRecordService.cs
  59. +86
    -0
      backend/BPA.MES.Base.Application/Services/CraftsInfoService/Dtos/CraftsInfoDto.cs
  60. +95
    -0
      backend/BPA.MES.Base.Application/Services/CraftsInfoService/Dtos/CraftsStepsDto.cs
  61. +118
    -0
      backend/BPA.MES.Base.Application/Services/CraftsInfoService/Services/CraftsInfoService.cs
  62. +120
    -0
      backend/BPA.MES.Base.Application/Services/CraftsInfoService/Services/CraftsStepsService.cs
  63. +48
    -0
      backend/BPA.MES.Base.Application/Services/CraftsInfoService/Services/ICraftsInfoService.cs
  64. +48
    -0
      backend/BPA.MES.Base.Application/Services/CraftsInfoService/Services/ICraftsStepsService.cs
  65. +99
    -0
      backend/BPA.MES.Base.Application/Services/DeviceService/Dtos/DeviceRecipeDto.cs
  66. +88
    -0
      backend/BPA.MES.Base.Application/Services/DeviceService/Dtos/DevicesInfoDto.cs
  67. +144
    -0
      backend/BPA.MES.Base.Application/Services/DeviceService/Services/DeviceRecipeService.cs
  68. +119
    -0
      backend/BPA.MES.Base.Application/Services/DeviceService/Services/DevicesInfoService.cs
  69. +49
    -0
      backend/BPA.MES.Base.Application/Services/DeviceService/Services/IDeviceRecipeService.cs
  70. +48
    -0
      backend/BPA.MES.Base.Application/Services/DeviceService/Services/IDevicesInfoService.cs
  71. +87
    -0
      backend/BPA.MES.Base.Application/Services/FinalsInfoService/Dtos/FinalsInfoDto.cs
  72. +123
    -0
      backend/BPA.MES.Base.Application/Services/FinalsInfoService/Services/FinalsInfoService.cs
  73. +49
    -0
      backend/BPA.MES.Base.Application/Services/FinalsInfoService/Services/IFinalsInfoService.cs
  74. +88
    -0
      backend/BPA.MES.Base.Application/Services/MaterialService/Dtos/MaterialsInfoDto.cs
  75. +48
    -0
      backend/BPA.MES.Base.Application/Services/MaterialService/Services/IMaterialsInfoService.cs
  76. +115
    -0
      backend/BPA.MES.Base.Application/Services/MaterialService/Services/MaterialsInfoService.cs
  77. +37
    -0
      backend/BPA.MES.Base.Application/Services/OperLogService/Dtos/OperLogDto.cs
  78. +17
    -0
      backend/BPA.MES.Base.Application/Services/OperLogService/Services/IOperLogService.cs
  79. +12
    -0
      backend/BPA.MES.Base.Application/Services/OperLogService/Services/OperLogService.cs
  80. +68
    -0
      backend/BPA.MES.Base.Application/Services/ProductLineService/Dtos/GroupInfoDto.cs
  81. +76
    -0
      backend/BPA.MES.Base.Application/Services/ProductLineService/Dtos/ProductLineDeviceDto.cs
  82. +76
    -0
      backend/BPA.MES.Base.Application/Services/ProductLineService/Dtos/ProductLineDto.cs
  83. +69
    -0
      backend/BPA.MES.Base.Application/Services/ProductLineService/Dtos/ProductLineStockDto.cs
  84. +116
    -0
      backend/BPA.MES.Base.Application/Services/ProductLineService/Services/GroupInfoService.cs
  85. +48
    -0
      backend/BPA.MES.Base.Application/Services/ProductLineService/Services/IGroupInfoService.cs
  86. +100
    -0
      backend/BPA.MES.Base.Application/Services/ProductLineService/Services/IProductLineService.cs
  87. +241
    -0
      backend/BPA.MES.Base.Application/Services/ProductLineService/Services/ProductLineService.cs
  88. +94
    -0
      backend/BPA.MES.Base.Application/Services/RecipesService/Dtos/RecipeMaterialDto.cs
  89. +84
    -0
      backend/BPA.MES.Base.Application/Services/RecipesService/Dtos/RecipesInfoDto.cs
  90. +49
    -0
      backend/BPA.MES.Base.Application/Services/RecipesService/Services/IRecipeMaterialService.cs
  91. +54
    -0
      backend/BPA.MES.Base.Application/Services/RecipesService/Services/IRecipesInfoService.cs
  92. +130
    -0
      backend/BPA.MES.Base.Application/Services/RecipesService/Services/RecipeMaterialService.cs
  93. +136
    -0
      backend/BPA.MES.Base.Application/Services/RecipesService/Services/RecipesInfoService.cs
  94. +83
    -0
      backend/BPA.MES.Base.Application/Services/StockInfoService/Dtos/StockInfoDto.cs
  95. +49
    -0
      backend/BPA.MES.Base.Application/Services/StockInfoService/Services/IStockInfoService.cs
  96. +123
    -0
      backend/BPA.MES.Base.Application/Services/StockInfoService/Services/StockInfoService.cs
  97. +94
    -0
      backend/BPA.MES.Base.Application/Services/SystemService/Dtos/AccountInput.cs
  98. +29
    -0
      backend/BPA.MES.Base.Application/Services/SystemService/Dtos/AccountOutput.cs
  99. +134
    -0
      backend/BPA.MES.Base.Application/Services/SystemService/Dtos/AuthorModuleInput.cs
  100. +70
    -0
      backend/BPA.MES.Base.Application/Services/SystemService/Dtos/AuthorModuleItemInput.cs

+ 3
- 0
.gitignore View File

@@ -0,0 +1,3 @@
.vs
obj
bin

+ 154
- 0
Jenkinsfile View File

@@ -0,0 +1,154 @@

pipeline{
agent any
parameters {
choice(
description: 'jxjwebi:开发环境1',
name: 'environment',
choices: ['jxj']
)

choice(
description: '前端or后端',
name: 'projectqh',
choices: ['backend','frontend']
)

choice(
description: '执行操作(发布|回滚)',
name: 'operation',
choices: ['develop', 'rollback']
)

choice(
description: '分支名',
name: 'branchName',
choices: ['master']
)

string(
name: 'tag',
defaultValue: '',
description: '版本tag'
)

}

stages
{
stage('Prepare') {
steps {
script{
echo "1.Prepare Stage"
echo "当前环境${params.environment}"
if(params.operation=='develop')
{
checkout scm
script {
build_tag = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim()
if (env.BRANCH_NAME != 'master') {
build_tag = "${env.BRANCH_NAME}-${build_tag}"
}
}
}
else{
script {
if(params.branchName!= 'master')
{
build_tag = "${params.branchName}-${params.tag}"
}
else
{
build_tag="${params.tag}"
}
}
}
}
}
}
stage('Test') {
steps {
script{
echo "2.Test Stage"
}
}
}
stage('Build') {
steps {
script{
echo "3.Build Docker Image Stage"
if(params.operation=='develop')
{
if(params.projectqh=='backend')
{
sh "cp -r backend/* ./"
sh "docker build -f backend/dockerfile -t 10.2.1.24:10242/bpa/jxjapi:${build_tag} ."
}
else if(params.projectqh=='frontend')
{
sh "docker build -f frontend/dockerfile -t 10.2.1.24:10242/bpa/jxjweb:${build_tag} ."
}
}
}
}
}
stage('Push') {
steps {
script{
echo "4.Push Docker Image Stage"
withCredentials([usernamePassword(credentialsId: 'harbor', passwordVariable: 'harborPassword', usernameVariable: 'harborUser')]) {
sh "docker login -u ${harborUser} -p ${harborPassword} 10.2.1.24:10242"
if(params.operation=='develop')
{
if(params.projectqh=='backend')
{
sh "docker push 10.2.1.24:10242/bpa/jxjapi:${build_tag}"

}
else if(params.projectqh=='frontend')
{
sh "docker push 10.2.1.24:10242/bpa/jxjweb:${build_tag}"
}
}
}
}
}

}
stage('Deploy') {

steps {
script{
echo "5. Deploy Stage"
// if(params.environment=='test')
// {
// input "确认要部署线上环境吗?"
// }
if(params.projectqh=='backend')
{

sh "sed -i 's/<BUILD_TAG>/${build_tag}/' k8s_jxjapi.yaml"
sh "sed -i 's/<BRANCH_NAME>/${env.BRANCH_NAME}/' k8s_jxjapi.yaml"
sh "sed -i 's/<NAMESPACES>/${params.environment}/' k8s_jxjapi.yaml"
sh "kubectl apply -f k8s_jxjapi.yaml --record"
}
else if(params.projectqh=='frontend')
{
sh "sed -i 's/<BUILD_TAG>/${build_tag}/' k8s_jxjweb.yaml"
sh "sed -i 's/<BRANCH_NAME>/${env.BRANCH_NAME}/' k8s_jxjweb.yaml"
sh "sed -i 's/<NAMESPACES>/${params.environment}/' k8s_jxjweb.yaml"
sh "kubectl apply -f k8s_jxjweb.yaml --record"
}
}
}
}
}
}

+ 7
- 0
NuGet.config View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json"/>
<add key="bpa" value="http://10.2.1.25:10243/repository/bpa/index.json"/>
</packageSources>
</configuration>

+ 25
- 0
backend/.dockerignore View File

@@ -0,0 +1,25 @@
**/.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

+ 35
- 0
backend/BPA.MES.Base.Application/BPA.MES.Base.Application.csproj View File

@@ -0,0 +1,35 @@
<Project Sdk="Microsoft.NET.Sdk">


<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<NoWarn>1701;1702;1591</NoWarn>
<DocumentationFile>BPA.MES.Base.Application.xml</DocumentationFile>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>


<ItemGroup>
<None Remove="applicationsettings.json" />
<None Remove="BPA.MES.Base.Application.xml" />
</ItemGroup>

<ItemGroup>
<Content Include="applicationsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\BPA.MES.Base.Core\BPA.MES.Base.Core.csproj" />
</ItemGroup>

<ItemGroup>
<Folder Include="Services\DeviceService\" />
<Folder Include="Services\MaterialService\" />
<Folder Include="Services\RecipesService\" />
<Folder Include="Services\CustomCodeService\" />
<Folder Include="Services\SystemService\" />
</ItemGroup>

</Project>

+ 5740
- 0
backend/BPA.MES.Base.Application/BPA.MES.Base.Application.xml
File diff suppressed because it is too large
View File


+ 80
- 0
backend/BPA.MES.Base.Application/Const/ClaimConst.cs View File

@@ -0,0 +1,80 @@
namespace BPA.MES.Base.Application
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/3/4 10:15:54
/// 描 述 :
/// </summary>
public class ClaimConst
{
/// <summary>
/// 用户Id
/// </summary>
public const string CLAINM_USERID = "UserId";
/// <summary>
/// 账号
/// </summary>
public const string CLAINM_ACCOUNT = "Account";
/// <summary>
/// 名称
/// </summary>
public const string CLAINM_NAME = "Name";
/// <summary>
/// 头像
/// </summary>
public const string CLAINM_AVATARURL = "AvatarUrl";
/// <summary>
/// 电话
/// </summary>
public const string CLAINM_PHONE = "Phone";
/// <summary>
/// 性别
/// </summary>
public const string CLAINM_SEX = "0";
/// <summary>
/// 是否授权
/// </summary>
public const string CLAINM_ISAUTH = "0";
/// <summary>
/// 微信session_key
/// </summary>
public const string SESSION_KEY = "session_key";
/// <summary>
/// 是否超级管理
/// </summary>
public const string CLAINM_SUPERADMIN = "SuperAdmin";
/// <summary>
/// 租户Id
/// </summary>
public const string TENANT_ID = "TenantId";
/// <summary>
/// 用户组织机构Id
/// </summary>
public const string CLAINM_ORGID = "OrgId";
/// <summary>
/// 用户组织机构名称
/// </summary>
public const string CLAINM_ORGNAME = "OrgName";
/// <summary>
/// 是否是管理员
/// </summary>
public const bool ISADMIN = false;
}

public class MQTTConfig
{
/// <summary>
/// 地址
/// </summary>
public static string Address { get; set; }
/// <summary>
/// 密码
/// </summary>
public static string Pwd { get; set; }
/// <summary>
/// 账号
/// </summary>
public static string Account { get; set; }
}
}

+ 20
- 0
backend/BPA.MES.Base.Application/Const/DeviceTypeEnum.cs View File

@@ -0,0 +1,20 @@
namespace BPA.MES.Base.Application
{
/// <summary>
/// 名 称 :产线设备类型
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/24 16:56:13
/// 描 述 :
/// </summary>
public enum DeviceTypeEnum
{
/// <summary>
/// 锅
/// </summary>
Pot,
/// <summary>
/// 釜
/// </summary>
Kettle
}
}

+ 40
- 0
backend/BPA.MES.Base.Application/Const/WorkOrderStatusEnum.cs View File

@@ -0,0 +1,40 @@
namespace BPA.MES.Base.Application
{
/// <summary>
/// 名 称 :工单枚举
/// 创 建 人 :yangxiao
/// 创建时间 :2023/7/21 15:04:24
/// 描 述 :
/// </summary>
public enum WorkOrderStatusEnum
{
/// <summary>
/// 未知
/// </summary>
Unkown = -1,
/// <summary>
/// 草稿
/// </summary>
Draft = 0,
/// <summary>
/// 已下发
/// </summary>
Issued = 1,
/// <summary>
/// 已接受
/// </summary>
Receive = 2,
/// <summary>
/// 已启动
/// </summary>
Started = 3,
/// <summary>
/// 已完成
/// </summary>
Completed = 4,
/// <summary>
/// 废弃
/// </summary>
Obsolete = 5,
}
}

+ 33
- 0
backend/BPA.MES.Base.Application/Entitys/Agv/AgvLineEntity.cs View File

@@ -0,0 +1,33 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/27 9:35:27
/// 描 述 :
/// </summary>
[SugarTable("agv_line")]
public class AgvLineEntity : DEntityBase
{
/// <summary>
/// 自定义编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 线路名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 开始点位
/// </summary>
public string StartPointId { get; set; }
/// <summary>
/// 结束点位
/// </summary>
public string EndPointId { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
}
}

+ 21
- 0
backend/BPA.MES.Base.Application/Entitys/Agv/AgvPointEntity.cs View File

@@ -0,0 +1,21 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/27 9:36:07
/// 描 述 :
/// </summary>
[SugarTable("agv_point")]
public class AgvPointEntity : DEntityBase
{
/// <summary>
/// 点位名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 点位编码
/// </summary>
public string Code { get; set; }
}
}

+ 22
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_BucketInfoEntity.cs View File

@@ -0,0 +1,22 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :胖子天骄桶管理
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/14 11:33:10
/// 描 述 :
/// </summary>
[SugarTable("bucket_info")]
public class Pztj_BucketInfoEntity : DEntityBase
{
/// <summary>
/// 桶名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 桶编号
/// </summary>
public string Code { get; set; }

}
}

+ 25
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_BucketMaterialsRecordEntity.cs View File

@@ -0,0 +1,25 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :桶原料记录
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/14 11:47:33
/// 描 述 :
/// </summary>
[SugarTable("bucket_material_record")]
public class Pztj_BucketMaterialsRecordEntity : DEntityBase
{
/// <summary>
/// 桶Id
/// </summary>
public string BucketId { get; set; }
/// <summary>
/// 物料Id
/// </summary>
public string MaterialId { get; set; }
/// <summary>
/// 添加时间
/// </summary>
public DateTime? CreateTime { get; set; }
}
}

+ 41
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_CraftStepsEntity.cs View File

@@ -0,0 +1,41 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :工艺路线
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/17 17:01:26
/// 描 述 :
/// </summary>
[SugarTable("craft_Steps")]
public class Pztj_CraftStepsEntity : DEntityBase
{
/// <summary>
/// 步骤Id
/// </summary>
public string CraftId { get; set; }
/// <summary>
/// 步骤
/// </summary>
public string Step { get; set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 单位
/// </summary>
public string Unit { get; set; }
/// <summary>
/// 功能参数
/// </summary>
public string Value { get; set; }
/// <summary>
/// 功能值 物料信息
/// </summary>
public string Materials { get; set; }
/// <summary>
/// 功能描述
/// </summary>
public string Describe { get; set; }
}
}

+ 25
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_CraftsInfoEntity.cs View File

@@ -0,0 +1,25 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :胖子天骄工艺基础信息
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/14 14:43:37
/// 描 述 :
/// </summary>
[SugarTable("craft_info")]
public class Pztj_CraftsInfoEntity : DEntityBase
{
/// <summary>
/// 工艺名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 设备区分
/// </summary>
public DeviceTypeEnum DeviceType { get; set; }
/// <summary>
/// 工艺描述
/// </summary>
public string Description { get; set; }
}
}

+ 39
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_DevicesInfoEntity.cs View File

@@ -0,0 +1,39 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :胖子天骄设备基础表
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/14 11:26:34
/// 描 述 :
/// </summary>
[SugarTable("device_info")]
public class Pztj_DevicesInfoEntity: DEntityBase
{
/// <summary>
/// 名称
/// </summary>
[Required(ErrorMessage = "名称不能为空")]
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
[Required(ErrorMessage = "编码不能为空")]
public string Code { get; set; }
/// <summary>
/// 设备类型
/// </summary>
public string DeviceType { get; set; }
/// <summary>
/// 设备描述
/// </summary>
public string Describe { get; set; }
/// <summary>
/// 设备维保时间
/// </summary>
public string RepairDate { get; set; }
/// <summary>
/// 设备创建时间
/// </summary>
public string CreateTime { get; set; }
}
}

+ 33
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_FinalsInfoEntity.cs View File

@@ -0,0 +1,33 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :胖子天骄成品基础信息管理
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/14 14:07:56
/// 描 述 :
/// </summary>
[SugarTable("final_info")]
public class Pztj_FinalsInfoEntity : DEntityBase
{
/// <summary>
/// 成品编号
/// </summary>
public string Code { get; set; }
/// <summary>
/// 成品名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 配方Id
/// </summary>
public string RecipeId { get; set; }
/// <summary>
/// 工艺Id
/// </summary>
public string CraftId { get; set; }
/// <summary>
/// 添加时间
/// </summary>
public DateTime? CreateTime { get; set; }
}
}

+ 21
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_LineDevicesEntity.cs View File

@@ -0,0 +1,21 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :产线设备
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/20 16:45:05
/// 描 述 :
/// </summary>
[SugarTable("productline_devices")]
public class Pztj_LineDevicesEntity : DEntityBase
{
/// <summary>
/// 产线Id
/// </summary>
public string LineId { get; set; }
/// <summary>
/// 产线设备
/// </summary>
public string DeviceId { get; set; }
}
}

+ 21
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_LineStocksEntity.cs View File

@@ -0,0 +1,21 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :产线料仓
/// 创 建 人 :yangxiao
/// 创建时间 :2023/7/20 16:45:40
/// 描 述 :
/// </summary>
[SugarTable("productline_stocks")]
public class Pztj_LineStocksEntity : DEntityBase
{
/// <summary>
/// 产线Id
/// </summary>
public string LineId { get; set; }
/// <summary>
/// 产线料仓
/// </summary>
public string StockId { get; set; }
}
}

+ 29
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_MaterialsInfoEntity.cs View File

@@ -0,0 +1,29 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :胖子天骄原料管理
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/14 11:32:06
/// 描 述 :
/// </summary>
[SugarTable("material_Info")]
public class Pztj_MaterialsInfoEntity : DEntityBase
{
/// <summary>
/// 原料名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 原料编号
/// </summary>
public string Code { get; set; }
/// <summary>
/// 原料单位
/// </summary>
public string Unit { get; set; }
/// <summary>
/// 原料分组
/// </summary>
public string Gourp { get; set; }
}
}

+ 30
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_StockInfoEntity.cs View File

@@ -0,0 +1,30 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :胖子天骄料仓管理
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/14 11:31:34
/// 描 述 :
/// </summary>
[SugarTable("stock_info")]
public class Pztj_StockInfoEntity : DEntityBase
{
/// <summary>
/// 料仓编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 料仓名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 物料Id
/// </summary>
public string MaterialId { get; set; }
/// <summary>
/// 料仓容积
/// </summary>
public string Volume { get; set; }

}
}

+ 33
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_WorkInfoEntity.cs View File

@@ -0,0 +1,33 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :工单基础信息
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/18 17:54:43
/// 描 述 :
/// </summary>
[SugarTable("work_info")]
public class Pztj_WorkInfoEntity : DEntityBase
{
/// <summary>
/// 工单名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 产线Id
/// </summary>
public string LineId { get; set; }
/// <summary>
/// 成品Id
/// </summary>
public string FinalId { get; set; }
/// <summary>
/// 产量
/// </summary>
public string Number { get;set; }
/// <summary>
/// 创建时间
/// </summary>
public string CreateTime { get; set; }
}
}

+ 21
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_WorkInfoItemEntity.cs View File

@@ -0,0 +1,21 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :工单拆分
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/18 18:12:55
/// 描 述 :
/// </summary>
[SugarTable("work_info_item")]
public class Pztj_WorkInfoItemEntity : DEntityBase
{
/// <summary>
/// 工单名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 产量
/// </summary>
public string Number { get; set; }
}
}

+ 25
- 0
backend/BPA.MES.Base.Application/Entitys/App/Pztj_WorkInfoStatusEntity.cs View File

@@ -0,0 +1,25 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :工单状态
/// 创 建 人 :yangxiao
/// 创建时间 :2023/7/18 18:07:21
/// 描 述 :
/// </summary>
[SugarTable("work_info_status")]
public class Pztj_WorkInfoStatusEntity : DEntityBase
{
/// <summary>
/// 工单Id
/// </summary>
public string WorkId { get; set; }
/// <summary>
/// 工单状态
/// </summary>
public WorkOrderStatusEnum? Status { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
}

+ 18
- 0
backend/BPA.MES.Base.Application/Entitys/Base/DeviceParmEntity.cs View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BPA.MES.Base.Application.Entitys.Base
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/31 15:06:00
/// 描 述 :
/// </summary>
public class DeviceParmEntity
{
}
}

+ 22
- 0
backend/BPA.MES.Base.Application/Entitys/Base/DeviceRecipeEntity.cs View File

@@ -0,0 +1,22 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :设备配方表
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 13:57:00
/// 描 述 :
/// </summary>
[SugarTable("devices_recipes")]
public class DeviceRecipeEntity : DEntityBase
{
/// <summary>
/// 设备Id
/// </summary>
public string DeviceId { get; set; }
/// <summary>
/// 配方Id
/// </summary>
public string RecipesId { get; set; }
}
}

+ 23
- 0
backend/BPA.MES.Base.Application/Entitys/Base/DevicesInfoEntity.cs View File

@@ -0,0 +1,23 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :设备
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 13:51:45
/// 描 述 :
/// </summary>
[SugarTable("devices_info")]
public class DevicesInfoEntity: DEntityBase
{
/// <summary>
/// 名称
/// </summary>
[Required(ErrorMessage = "名称不能为空")]
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
[Required(ErrorMessage = "编码不能为空")]
public string Code { get; set; }
}
}

+ 21
- 0
backend/BPA.MES.Base.Application/Entitys/Base/GroupInfoEntity.cs View File

@@ -0,0 +1,21 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :分组信息
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/3/10 14:01:15
/// 描 述 :
/// </summary>
[SugarTable("group_info")]
public class GroupInfoEntity: DEntityBase
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 介绍
/// </summary>
public string Des { get; set; }
}
}

+ 25
- 0
backend/BPA.MES.Base.Application/Entitys/Base/MQTTInfoEntity.cs View File

@@ -0,0 +1,25 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/24 17:28:56
/// 描 述 :
/// </summary>
[SugarTable("mqtt")]
public class MQTTInfoEntity
{
/// <summary>
/// 地址
/// </summary>
public string Address { get; set; }
/// <summary>
/// 密码
/// </summary>
public string Pwd { get; set; }
/// <summary>
/// 账号
/// </summary>
public string Account { get; set; }
}
}

+ 31
- 0
backend/BPA.MES.Base.Application/Entitys/Base/MaterialsInfoEntity.cs View File

@@ -0,0 +1,31 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :物料
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 13:52:00
/// 描 述 :
/// </summary>
[SugarTable("materials_info")]
public class MaterialsInfoEntity: DEntityBase
{
/// <summary>
/// 名称
/// </summary>
[Required(ErrorMessage = "名称不能为空")]
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
[Required(ErrorMessage = "编码不能为空")]
public string Code { get; set; }
/// <summary>
/// 单位
/// </summary>
public string Unit { get; set; }
/// <summary>
/// 每秒出水量(g)
/// </summary>
public string Wos { get; set; }
}
}

+ 31
- 0
backend/BPA.MES.Base.Application/Entitys/Base/OperLogEntity.cs View File

@@ -0,0 +1,31 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :操作日志
/// 创 建 人 :yangxiao
/// 创建时间 :2023/7/20 15:10:59
/// 描 述 :
/// </summary>
[SugarTable("oper_log")]
public class OperLogEntity : DEntityBase
{
/// <summary>
/// 操作标题
/// </summary>
public string Name { get; set; }
/// <summary>
/// 内容
/// </summary>
public string Context { get; set; }
/// <summary>
/// 返回值
/// </summary>
[SugarColumn(IsNullable = true)]
public string Result { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[SugarColumn(IsNullable = true)]
public DateTime? CreateTime { get; set; }
}
}

+ 13
- 0
backend/BPA.MES.Base.Application/Entitys/Base/OrderInfoEntity.cs View File

@@ -0,0 +1,13 @@
namespace BPA.MES.Base.Application.Entitys.Base
{
/// <summary>
/// 名 称 :订单服务
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/18 18:11:48
/// 描 述 :
/// </summary>
public class OrderInfoEntity
{

}
}

+ 25
- 0
backend/BPA.MES.Base.Application/Entitys/Base/ProductLineEntity.cs View File

@@ -0,0 +1,25 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :产线管理
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/18 10:42:35
/// 描 述 :
/// </summary>
[SugarTable("product_line")]
public class ProductLineEntity : DEntityBase
{
/// <summary>
/// 产线名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 产线编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 产线描述
/// </summary>
public string Describe { get; set; }
}
}

+ 29
- 0
backend/BPA.MES.Base.Application/Entitys/Base/RecipeMaterialEntity.cs View File

@@ -0,0 +1,29 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :配方物料信息
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/3/2 13:58:19
/// 描 述 :
/// </summary>
[SugarTable("recipes_material")]
public class RecipeMaterialEntity : DEntityBase
{
/// <summary>
/// 物料Id
/// </summary>
public string MaterialId { get; set; }
/// <summary>
/// 配方Id
/// </summary>
public string RecipesId { get; set; }
/// <summary>
/// 重量
/// </summary>
public string Weight { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Describe { get; set; }
}
}

+ 21
- 0
backend/BPA.MES.Base.Application/Entitys/Base/RecipesGroupEntity.cs View File

@@ -0,0 +1,21 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :配方分组
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/3/10 14:56:03
/// 描 述 :
/// </summary>
[SugarTable("recipes_group")]
public class RecipesGroupEntity
{
/// <summary>
/// 组Id
/// </summary>
public string GroupId { get; set; }
/// <summary>
/// 产品Id
/// </summary>
public string RecipesId { get; set; }
}
}

+ 22
- 0
backend/BPA.MES.Base.Application/Entitys/Base/RecipesInfoEntity.cs View File

@@ -0,0 +1,22 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :配方信息
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/3/2 13:57:15
/// 描 述 :
/// </summary>
[SugarTable("recipes_info")]
public class RecipesInfoEntity : DEntityBase
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 自定义编码
/// </summary>
public string Code { get; set; }
}
}

+ 30
- 0
backend/BPA.MES.Base.Application/Entitys/Base/StoreInfoEntity.cs View File

@@ -0,0 +1,30 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :店铺信息
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/3/2 13:52:13
/// 描 述 :
/// </summary>
[SugarTable("store_info")]
public class StoreInfoEntity : DEntityBase
{
/// <summary>
/// 名称
/// </summary>
[Required(ErrorMessage = "名称不能为空")]
public string Name { get; set; }
/// <summary>
/// 地址
/// </summary>
public string Address { get; set; }
/// <summary>
/// 联系电话
/// </summary>
public string Phone { get; set; }
/// <summary>
/// 负责人
/// </summary>
public string Directors { get; set; }
}
}

+ 29
- 0
backend/BPA.MES.Base.Application/Entitys/Sys/AccountEntity.cs View File

@@ -0,0 +1,29 @@

namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :账户信息
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/1/3 10:18:43
/// 描 述 :
/// </summary>
[SugarTable("sys_account")]
public class AccountEntity : DEntityBase
{
/// <summary>
/// 账号
/// </summary>
[SugarColumn(IsNullable = false)]
public string Account { get; set; }
/// <summary>
/// 密码
/// </summary>
[SugarColumn(IsNullable = false)]
public string Pwd { get; set; }
/// <summary>
/// 员工表Id
/// </summary>
[SugarColumn(IsNullable = false)]
public string EmployeeId { get; set; }
}
}

+ 29
- 0
backend/BPA.MES.Base.Application/Entitys/Sys/AuthorizeTemplateEntity.cs View File

@@ -0,0 +1,29 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 授权模板表
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/1/4 17:31:11
/// 描 述 :
/// </summary>
[SugarTable("sys_authorizetemplate")]
public class AuthorizeTemplateEntity : DEntityBase
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateAt { get; set; }
/// <summary>
/// 是否删除
/// </summary>
public bool IsDeleted { get; set; }
}
}

+ 27
- 0
backend/BPA.MES.Base.Application/Entitys/Sys/AuthorizeTemplateItemEntity.cs View File

@@ -0,0 +1,27 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 : 授权模板子项表
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/1/4 17:31:27
/// 描 述 :
/// </summary>
[SugarTable("sys_authorizetemplate_item")]
public class AuthorizeTemplateItemEntity : DEntityBase
{
/// <summary>
/// 模板编号
/// </summary>
public string TB_TemplateId { get; set; }

/// <summary>
/// 模块编号
/// </summary>
public string TB_ModuleId { get; set; }

/// <summary>
/// 是否删除
/// </summary>
public bool IsDeleted { get; set; }
}
}

+ 30
- 0
backend/BPA.MES.Base.Application/Entitys/Sys/AuthorizeTemplateMapEntity.cs View File

@@ -0,0 +1,30 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :授权对象表
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/1/4 17:31:39
/// 描 述 :
/// </summary>
[SugarTable("sys_authorizetemplatemap")]
public class AuthorizeTemplateMapEntity : DEntityBase
{
/// <summary>
/// 授权模板编号
/// </summary>
public string TemplateId { get; set; }

/// <summary>
/// 授权对象编号(用户编号,角色编号)
/// </summary>
public string ObjectId { get; set; }
/// <summary>
/// 授权类型 1:用户,2:角色
/// </summary>
public int AuthorizeType { get; set; }
/// <summary>
/// 是否删除
/// </summary>
public bool IsDeleted { get; set; }
}
}

+ 69
- 0
backend/BPA.MES.Base.Application/Entitys/Sys/EmployeeEntity.cs View File

@@ -0,0 +1,69 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :员工信息
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/1/4 17:44:31
/// 描 述 :
/// </summary>
[SugarTable("sys_employee")]
public class EmployeeEntity : DEntityBase
{
/// <summary>
/// 员工姓名
/// </summary>
[SugarColumn(IsNullable = false)]
public string Name { get; set; }
/// <summary>
/// 1男2女
/// </summary>
[SugarColumn(IsNullable = true)]
public int Gender { get; set; }
/// <summary>
/// 手机号
/// </summary>
[SugarColumn(IsNullable = false)]
public string Phone { get; set; }
/// <summary>
/// 员工IC卡
/// </summary>
[SugarColumn(IsNullable = true)]
public string ICCard { get; set; }
/// <summary>
/// 头像
/// </summary>
[SugarColumn(IsNullable = true)]
public string Header { get; set; }

[SugarColumn(IsNullable = false)]
public DateTime JoinDate { get; set; }
/// <summary>
/// 入职时间
/// </summary>
[SugarColumn(IsNullable = true)]
public DateTime? OutDate { get; set; }
/// <summary>
/// 身份证
/// </summary>
[SugarColumn(IsNullable = true)]
public string IdCard { get; set; }
/// <summary>
/// 1在职2出差3离职
/// </summary>
[SugarColumn(IsNullable = false)]
public int Stutas { get; set; }
/// <summary>
/// 超管
/// </summary>
[SugarColumn(IsNullable = false)]
public bool IsAdmin { get; set; }
/// <summary>
/// 角色Id
/// </summary>
public string TB_RoleId { get; set; }
/// <summary>
/// 是否删除
/// </summary>
public bool IsDeleted { get; set; }
}
}

+ 46
- 0
backend/BPA.MES.Base.Application/Entitys/Sys/ModuleEntity.cs View File

@@ -0,0 +1,46 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :模块菜单表
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/1/4 17:32:15
/// 描 述 :
/// </summary>
[SugarTable("sys_module")]
public class ModuleEntity : DEntityBase
{
/// <summary>
/// 类别 1:菜单,2:视图,3:功能
/// </summary>
public int Category { get; set; }

/// <summary>
/// 菜单打开方式 0:框架内嵌,1:新开页面
/// </summary>
public int OpenType { get; set; }

/// <summary>
/// 父级编号
/// </summary>
public string ParentId { get; set; }

/// <summary>
/// 名称
/// </summary>
public string Name { set; get; }

/// <summary>
/// 图标
/// </summary>
public string Icon { set; get; }

/// <summary>
/// 地址
/// </summary>
public string Url { set; get; }
/// <summary>
/// 状态
/// </summary>
public bool IsDisabled { get; set; }
}
}

+ 32
- 0
backend/BPA.MES.Base.Application/Entitys/Sys/RoleEntity.cs View File

@@ -0,0 +1,32 @@
namespace BPA.MES.Base.Application.Entitys
{
/// <summary>
/// 名 称 :角色信息
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/1/4 17:32:32
/// 描 述 :
/// </summary>
[SugarTable("sys_role")]
public class RoleEntity : DEntityBase
{
/// <summary>
/// 角色名称
/// </summary>
public string Name { get; set; }

/// <summary>
/// 角色类型 1超级管理员,2其他
/// </summary>
public int? RoleType { get; set; }

/// <summary>
/// 角色描述
/// </summary>
public string Description { get; set; }

/// <summary>
/// 是否删除
/// </summary>
public bool IsDeleted { get; set; }
}
}

+ 46
- 0
backend/BPA.MES.Base.Application/Filters/OperLogAttribute .cs View File

@@ -0,0 +1,46 @@
using Furion.EventBus;
using Furion.JsonSerialization;
using Microsoft.AspNetCore.Mvc.Filters;
using System.Diagnostics;
using System.Security.Claims;

namespace BPA.MES.Base.Application
{
/// <summary>
/// 名 称 :接口AOP
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/20 15:04:06
/// 描 述 :
/// </summary>
public class OperLogAttribute : ActionFilterAttribute
{
public string _name;
public OperLogAttribute(string name)
{
_name = name;
}
/// <summary>
/// 执行操作前后
/// </summary>
/// <param name="context"></param>
/// <param name="next"></param>
/// <returns></returns>
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
// 获取 HttpContext 和 HttpRequest 对象
var httpContext = context.HttpContext;
var httpRequest = httpContext.Request;
var sw = new Stopwatch();
sw.Start();
var actionContext = await next();
sw.Stop();
var userName = httpContext.User?.FindFirstValue(ClaimConst.CLAINM_NAME);
await MessageCenter.PublishAsync("ToDo:OperLog", new OperLogEntity()
{
Context = context.ActionArguments.Count < 1 ? string.Empty : JSON.Serialize(context.ActionArguments),
Name = $"[{userName}]{_name}",
Result = actionContext.Exception == null? "true" : EnhancedStackTrace.Current().ToString()
});
}
}
}

+ 19
- 0
backend/BPA.MES.Base.Application/GlobalUsings.cs View File

@@ -0,0 +1,19 @@
global using Furion;
global using Furion.DataEncryption;
global using Furion.DataValidation;
global using Furion.DependencyInjection;
global using Furion.DynamicApiController;
global using Furion.Extensions;
global using Furion.FriendlyException;
global using Furion.Logging;
global using Mapster;
global using Microsoft.AspNetCore.Authorization;
global using Microsoft.AspNetCore.Http;
global using Microsoft.AspNetCore.Mvc;
global using Microsoft.CodeAnalysis;
global using BPA.MES.Base.Core;
global using static BPA.MES.Base.Core.TreeExtensions;
global using System.ComponentModel.DataAnnotations;
global using BPA.MES.Base.Application.Entitys;
global using Furion.DataEncryption.Extensions;
global using SqlSugar;

+ 21
- 0
backend/BPA.MES.Base.Application/MQTT/IMessage.cs View File

@@ -0,0 +1,21 @@
namespace BPA.MES.Base.Application
{
/// <summary>
/// 名 称 :MQTT消息基类
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/21 10:24:24
/// 描 述 :
/// </summary>
public class IMessage
{
/// <summary>
/// 消息ID
/// </summary>
public int MessageId { get; set; }

/// <summary>
/// 消息版本
/// </summary>
public Version MsgVersion { get; set; } = new Version("1.0");
}
}

+ 86
- 0
backend/BPA.MES.Base.Application/MQTT/MQTTService.cs View File

@@ -0,0 +1,86 @@
using Furion.JsonSerialization;
using Furion.RemoteRequest.Extensions;
using System.Text;

namespace BPA.MES.Base.Application
{
/// <summary>
/// 名 称 :MQTT通信库
/// 创 建 人 :yangxiao
/// 创建时间 : 2022/11/18 15:38:40
/// 描 述 :
/// </summary>
public class MQTTService : IMQTTService, ITransient
{
private readonly ISqlSugarClient _dbContext;
public MQTTService(ISqlSugarClient db)
{
_dbContext = db;
}
public async Task GetMQTTConfig()
{
var entity = await _dbContext.Queryable<MQTTInfoEntity>().FirstAsync();
if (entity != null)
{
MQTTConfig.Address = entity.Address;
MQTTConfig.Account = entity.Account;
MQTTConfig.Pwd = entity.Pwd;
}
}
/// <summary>
/// Mqtt通用服务
/// </summary>
public async Task<bool> MqttPublish<T>(T payload, string topic,int messageId)
{
bool result = false;
var mqttentity = await _dbContext.Queryable<MQTTInfoEntity>().FirstAsync();
string mqttAddress = mqttentity.Address;
try
{
//组装MQTT消息
var entity = new MsgPackage<T>()
{
MessageId = messageId,
Message = payload,
MessageLen = JSON.Serialize(payload).Length
};
var tem = await $"http://{mqttAddress}/api/v4/mqtt/publish".SetHeaders(new
{
Authorization = "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes($"{mqttentity.Account}:{mqttentity.Pwd}"))
}).SetBody(new
{
topic,
payload = JSON.Serialize(entity),
qos = 2,
retain = false,
clientid = "pztj_service"
}).PostAsStringAsync();
var res = JSON.Deserialize<MqttResult>(tem);
if (res.Code == 0)
{
result = true;
}
}
catch
{
}
return result;
}
}

public class MqttResult
{
/// <summary>
/// code
/// </summary>
public int Code { get; set; }
}

public interface IMQTTService
{
Task<bool> MqttPublish<T>(T payload, string topic, int messageId);

Task GetMQTTConfig();
}
}

+ 11
- 0
backend/BPA.MES.Base.Application/MQTT/MessageID.cs View File

@@ -0,0 +1,11 @@
namespace BPA.MES.Base.Application
{
public class MessageID
{
public const int DevcieControl = 1;//设备控制ID
public const int WorkOrderIssued = 2;//工单下发ID
public const int DeviceData = 3;//设备上报数据
public const int PowerId = 12;// 权限验证
public const int StateChange = 13;//状态改变
}
}

+ 24
- 0
backend/BPA.MES.Base.Application/MQTT/MsgPackage.cs View File

@@ -0,0 +1,24 @@
namespace BPA.MES.Base.Application
{
public class MsgPackage<T>
{
/// <summary>
/// 消息ID
/// </summary>
public int MessageId { get; set; }

/// <summary>
/// 消息内容
/// </summary>
//[JsonProperty(TypeNameHandling = TypeNameHandling.Auto)]
public T Message { get; set; }
/// <summary>
/// 消息长度
/// </summary>
public int MessageLen { get; set; }
/// <summary>
/// 消息版本
/// </summary>
public Version MsgVersion { get; set; } = new Version(1, 0, 0, 0);
}
}

+ 31
- 0
backend/BPA.MES.Base.Application/MQTT/Topics.cs View File

@@ -0,0 +1,31 @@
namespace BPA.MES.Base.Application
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2022/11/18 15:37:07
/// 描 述 :
/// </summary>
public class Topics
{
/// <summary>
/// 设备控制主题,前端通过消息控制设备动作(客户端/前端 --> 设备)
/// </summary>
public const string DeviceControl = "BPAProline/Client/Device/Control";

/// <summary>
/// 工单推送主题,中控将创建的工单推送到对应的产线 (中控系统 --> 产线)
/// </summary>
public const string WorkOrderPush = "BPAPROLINE/MES/SERVER/WORKORDER/DOWN";

/// <summary>
/// 前端展示数据推送,数据服务将设备数据推送到前端界面展示 (数据中心服务 --> 客户端/前端)
/// </summary>
public const string DeviceDataPush = "BPAProline/DataServer/Client/Data";
/// <summary>
/// 工单状态(信息系统 --> 中控系统)
/// </summary>
public const string STWorkState = "BPAProline/CentralControl/Proline/WorkState";
}
}

+ 36
- 0
backend/BPA.MES.Base.Application/Services/BaseService.cs View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/17 16:13:10
/// 描 述 :
/// </summary>
public class BaseService: ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public BaseService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 初始化数据库
/// </summary>
/// <returns></returns>
public string CreateDB()
{
var types = Assembly.Load("BPA.MES.Base.Application").GetTypes()
.Where(x => x.GetCustomAttribute<SugarTable>() != null
&& x.Namespace == "BPA.MES.Base.Application.Entitys").ToArray();
_dbContext.CodeFirst.InitTables(types);
return "成功";
}
}
}

+ 75
- 0
backend/BPA.MES.Base.Application/Services/BucketInfoService/Dtos/BucketInfoDto.cs View File

@@ -0,0 +1,75 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/17 15:43:00
/// 描 述 :
/// </summary>
public class BucketInfoDto
{
/// <summary>
/// 桶名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 桶编号
/// </summary>
public string Code { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class BucketInfoAddInput : BucketInfoDto
{

}
/// <summary>
/// 更新
/// </summary>
public class BucketInfoUpdateInput : BucketInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class BucketInfoDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class BucketInfoQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
public string Code { get; set; }
}
/// <summary>
/// 输出
/// </summary>
public class BucketInfoOutput : BucketInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
/// <summary>
/// 当前原料名称
/// </summary>
public string MaterialName { get; set; }
}
}

+ 85
- 0
backend/BPA.MES.Base.Application/Services/BucketInfoService/Dtos/BucketMaterialsRecordDto.cs View File

@@ -0,0 +1,85 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/17 17:29:52
/// 描 述 :
/// </summary>
public class BucketMaterialsRecordDto
{
/// <summary>
/// 桶Id
/// </summary>
public string BucketId { get; set; }
/// <summary>
/// 物料Id
/// </summary>
public string MaterialId { get; set; }
/// <summary>
/// 添加时间
/// </summary>
public DateTime? CreateTime { get; set; }
}
public class BucketMaterialsRecordAddInput : BucketMaterialsRecordDto
{

}
/// <summary>
/// 更新
/// </summary>
public class BucketMaterialsRecordUpdateInput : BucketMaterialsRecordDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class BucketMaterialsRecordDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class BucketMaterialsRecordQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 桶Id
/// </summary>
public string BucketId { get; set; }
}
/// <summary>
/// 输出
/// </summary>
public class BucketMaterialsRecordOutput : BucketMaterialsRecordDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
/// <summary>
/// 原料名称
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// 桶名称
/// </summary>
public string BucketName { get; set; }
}
}

+ 147
- 0
backend/BPA.MES.Base.Application/Services/BucketInfoService/Services/BucketInfoService.cs View File

@@ -0,0 +1,147 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :桶服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:11:04
/// 描 述 :基础数据管理
/// </summary>
[ApiDescriptionSettings("基础数据管理", Order = 3, Tag = "桶服务", Name = "BucketInfo", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class BucketInfoService : IBucketInfoService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public BucketInfoService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(BucketInfoAddInput input)
{
var r_entity = await _dbContext.Queryable<Pztj_BucketInfoEntity>().FirstAsync(x => x.Name == input.Name || x.Code == input.Code);
if (r_entity != null)
{
throw Oops.Bah("名称已存在!");
}
Pztj_BucketInfoEntity entity = input.Adapt<Pztj_BucketInfoEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(BucketInfoDelInput input)
{
var res = await _dbContext.Deleteable<Pztj_BucketInfoEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<BucketInfoOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<Pztj_BucketInfoEntity>().FirstAsync(x => x.Id == Id);
BucketInfoOutput output = entity.Adapt<BucketInfoOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<List<BucketInfoOutput>> List()
{
var entity = await _dbContext.Queryable<Pztj_BucketInfoEntity>().ToListAsync();
List<BucketInfoOutput> output = entity.Adapt<List<BucketInfoOutput>>();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<BucketInfoOutput>> PagedList(BucketInfoQueryPageInput input)
{
var entity = await _dbContext.Queryable<Pztj_BucketInfoEntity>()
.LeftJoin<Pztj_BucketMaterialsRecordEntity>((a,b)=>a.Id==b.BucketId && b.Id == SqlFunc.Subqueryable<Pztj_BucketMaterialsRecordEntity>().Where(s => s.BucketId == a.Id).OrderByDesc(s => s.CreateTime).Select(s => s.Id))
.LeftJoin<Pztj_MaterialsInfoEntity>((a,b,c)=>b.MaterialId==c.Id)
.Select((a,b,c)=>new BucketInfoOutput
{
Id = a.Id.SelectAll(),
MaterialName = c.Name
})
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<BucketInfoOutput> output = entity.Adapt<SqlSugarPagedList<BucketInfoOutput>>();
return output;
}




/// <summary>
/// 下拉
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<dynamic> SelectList()
{
var entity = await _dbContext.Queryable<Pztj_BucketInfoEntity>().Select(x => new
{
key = x.Id,
value = x.Name
}).ToListAsync();
return entity;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(BucketInfoUpdateInput input)
{
var isExit =await _dbContext.Queryable<Pztj_BucketInfoEntity>().Where(x => x.Id != input.Id && (x.Name == input.Name || x.Code == input.Code)).FirstAsync();
if (isExit != null)
{
throw Oops.Bah("名称或编码已存在!");
}
Pztj_BucketInfoEntity entity = input.Adapt<Pztj_BucketInfoEntity>();
var res = await _dbContext.Updateable(entity).IgnoreColumns(true).ExecuteCommandHasChangeAsync();
return res;
}
///// <summary>
///// 根据桶Id查询记录
///// </summary>
///// <param name="bucketId"></param>
///// <returns></returns>
//public async Task<BucketMaterialsRecordOutput> RecordList(string bucketId)
//{
// var entity = await _dbContext.Queryable<Pztj_BucketMaterialsRecordEntity>()
// .LeftJoin<Pztj_MaterialsInfoEntity>((a, b) => a.MaterialId == b.Id)
// .Select((a, b) => new BucketMaterialsRecordOutput
// {
// Id = a.Id.SelectAll(),
// MaterialName = b.Name
// })
// .ToListAsync();
// SqlSugarPagedList<BucketMaterialsRecordOutput> output = entity.Adapt<SqlSugarPagedList<BucketMaterialsRecordOutput>>();
// return output;
//}
}
}


+ 103
- 0
backend/BPA.MES.Base.Application/Services/BucketInfoService/Services/BucketMaterialsRecordServcie.cs View File

@@ -0,0 +1,103 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :桶记录
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:11:04
/// 描 述 :基础数据管理
/// </summary>
[ApiDescriptionSettings("基础数据管理", Order = 3, Tag = "桶服务", Name = "BucketMaterialsRecord", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class BucketMaterialsRecordServcie : IBucketMaterialsRecordService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public BucketMaterialsRecordServcie(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(BucketMaterialsRecordAddInput input)
{
Pztj_BucketMaterialsRecordEntity entity = input.Adapt<Pztj_BucketMaterialsRecordEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(BucketMaterialsRecordDelInput input)
{
var res = await _dbContext.Deleteable<Pztj_BucketMaterialsRecordEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<BucketMaterialsRecordOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<Pztj_BucketMaterialsRecordEntity>().FirstAsync(x => x.Id == Id);
BucketMaterialsRecordOutput output = entity.Adapt<BucketMaterialsRecordOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<List<BucketMaterialsRecordOutput>> List()
{
var entity = await _dbContext.Queryable<Pztj_BucketMaterialsRecordEntity>().ToListAsync();
List<BucketMaterialsRecordOutput> output = entity.Adapt<List<BucketMaterialsRecordOutput>>();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<BucketMaterialsRecordOutput>> PagedList(BucketMaterialsRecordQueryPageInput input)
{
var entity = await _dbContext.Queryable<Pztj_BucketMaterialsRecordEntity>()
.LeftJoin<Pztj_BucketInfoEntity>((a,b)=>a.BucketId==b.Id)
.LeftJoin<Pztj_MaterialsInfoEntity>((a,b,c)=>a.MaterialId==c.Id)
.WhereIF(!string.IsNullOrEmpty(input.BucketId),(a,b,c)=>a.BucketId==input.BucketId)
.OrderByDescending((a,b,c)=>a.CreateTime)
.Select((a,b,c)=>new BucketMaterialsRecordOutput
{
Id = a.Id.SelectAll(),
MaterialName = c.Name,
BucketName = b.Name
})
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<BucketMaterialsRecordOutput> output = entity.Adapt<SqlSugarPagedList<BucketMaterialsRecordOutput>>();
return output;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(BucketMaterialsRecordUpdateInput input)
{
Pztj_BucketMaterialsRecordEntity entity = input.Adapt<Pztj_BucketMaterialsRecordEntity>();
var res = await _dbContext.Updateable(entity).IgnoreColumns(true).ExecuteCommandHasChangeAsync();
return res;
}
}
}

+ 48
- 0
backend/BPA.MES.Base.Application/Services/BucketInfoService/Services/IBucketInfoService.cs View File

@@ -0,0 +1,48 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/17 15:43:10
/// 描 述 :
/// </summary>
public interface IBucketInfoService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(BucketInfoAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(BucketInfoDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(BucketInfoUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<BucketInfoOutput>> List();
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<BucketInfoOutput>> PagedList(BucketInfoQueryPageInput input);
/// <summary>
/// 下拉列表
/// </summary>
/// <returns></returns>
Task<dynamic> SelectList();
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<BucketInfoOutput> Detail(string Id);
}
}

+ 43
- 0
backend/BPA.MES.Base.Application/Services/BucketInfoService/Services/IBucketMaterialsRecordService.cs View File

@@ -0,0 +1,43 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :桶记录
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/17 17:37:03
/// 描 述 :
/// </summary>
public interface IBucketMaterialsRecordService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(BucketMaterialsRecordAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(BucketMaterialsRecordDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(BucketMaterialsRecordUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<BucketMaterialsRecordOutput>> List();
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<BucketMaterialsRecordOutput>> PagedList(BucketMaterialsRecordQueryPageInput input);
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<BucketMaterialsRecordOutput> Detail(string Id);
}
}

+ 86
- 0
backend/BPA.MES.Base.Application/Services/CraftsInfoService/Dtos/CraftsInfoDto.cs View File

@@ -0,0 +1,86 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :产品分组
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/3/10 13:59:43
/// 描 述 :
/// </summary>
public class CraftsInfoDto
{
/// <summary>
/// 工艺名称
/// </summary>
[Required(ErrorMessage = "设备类型不能为空")]
public string Name { get; set; }
/// <summary>
/// 设备类型 0:炒锅 1:反应釜
/// </summary>
[Required(ErrorMessage = "设备类型不能为空")]
public string DeviceType { get; set; }
/// <summary>
/// 工艺描述
/// </summary>
public string Description { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class CraftsInfoAddInput : CraftsInfoDto
{

}
/// <summary>
/// 更新
/// </summary>
public class CraftsInfoUpdateInput : CraftsInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class CraftsInfoDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class CraftsInfoQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 设备类型 0:炒锅 1:反应釜
/// </summary>
[Required(ErrorMessage = "设备类型不能为空")]
public DeviceTypeEnum DeviceType { get; set; }
}
/// <summary>
/// 不分页
/// </summary>
public class CraftsInfoQueryInput
{

}
/// <summary>
/// 输出
/// </summary>
public class CraftsInfoOutput : CraftsInfoDto
{
/// <summary>
/// 主键
/// </summary>
/// <example></example>
public string Id { get; set; }
}
}

+ 95
- 0
backend/BPA.MES.Base.Application/Services/CraftsInfoService/Dtos/CraftsStepsDto.cs View File

@@ -0,0 +1,95 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :产线管理
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/18 14:03:27
/// 描 述 :
/// </summary>
public class CraftsStepsDto
{
/// <summary>
/// 步骤Id
/// </summary>
public string CraftId { get; set; }
/// <summary>
/// 步骤
/// </summary>
public string Step { get; set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 单位
/// </summary>
public string Unit { get; set; }
/// <summary>
/// 功能参数
/// </summary>
public string Value { get; set; }
/// <summary>
/// 功能值 物料信息
/// </summary>
public string Materials { get; set; }
/// <summary>
/// 功能描述
/// </summary>
public string Describe { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class CraftsStepsAddInput : CraftsStepsDto
{

}
/// <summary>
/// 更新
/// </summary>
public class CraftsStepsUpdateInput : CraftsStepsDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class CraftsStepsDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class CraftsStepsQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 工艺Id
/// </summary>
public string CraftId { get; set; }
}
/// <summary>
/// 输出
/// </summary>
public class CraftsStepsOutput : CraftsStepsDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
}

+ 118
- 0
backend/BPA.MES.Base.Application/Services/CraftsInfoService/Services/CraftsInfoService.cs View File

@@ -0,0 +1,118 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :工艺信息
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/10 14:03:06
/// 描 述 :配方工艺管理
/// </summary>
[ApiDescriptionSettings("配方工艺管理", Order = 0, Tag = "工艺服务", Name = "CraftsInfo", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class CraftsInfoService : ICraftsInfoService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public CraftsInfoService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(CraftsInfoAddInput input)
{
Pztj_CraftsInfoEntity entity = await _dbContext.Queryable<Pztj_CraftsInfoEntity>().FirstAsync(x => x.Name ==input.Name);
if (entity != null)
{
throw Oops.Bah("名称已存在!");
}
entity = input.Adapt<Pztj_CraftsInfoEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(CraftsInfoDelInput input)
{
var res = await _dbContext.Deleteable<Pztj_CraftsInfoEntity>().Where(x=>x.Id==input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<CraftsInfoOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<Pztj_CraftsInfoEntity>().FirstAsync();
CraftsInfoOutput output = entity.Adapt<CraftsInfoOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost, AllowAnonymous]
public async Task<List<CraftsInfoOutput>> List(CraftsInfoQueryInput input)
{
var entity = await _dbContext.Queryable<Pztj_CraftsInfoEntity>().ToListAsync();
List<CraftsInfoOutput> output = entity.Adapt<List<CraftsInfoOutput>>();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<CraftsInfoOutput>> PagedList(CraftsInfoQueryPageInput input)
{
var entity = await _dbContext.Queryable<Pztj_CraftsInfoEntity>()
.Where(x=>x.DeviceType == input.DeviceType)
.WhereIF(!string.IsNullOrEmpty(input.Name),x=>x.Name.Contains(input.Name))
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<CraftsInfoOutput> output = entity.Adapt<SqlSugarPagedList<CraftsInfoOutput>>();
return output;
}
/// <summary>
/// 下拉
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<dynamic> SelectList()
{
var entity = await _dbContext.Queryable<Pztj_CraftsInfoEntity>().Select(x => new
{
key = x.Id,
value = x.Name
}).ToListAsync();
return entity;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(CraftsInfoUpdateInput input)
{
var entity = await _dbContext.Queryable<Pztj_CraftsInfoEntity>().FirstAsync(x => x.Id != input.Id && x.Name == input.Name);
if (entity != null)
{
throw Oops.Bah("名称已存在!");
}
entity = input.Adapt<Pztj_CraftsInfoEntity>();
var res = await _dbContext.Updateable(entity).IgnoreColumns(true).ExecuteCommandHasChangeAsync();
return res;
}
}
}

+ 120
- 0
backend/BPA.MES.Base.Application/Services/CraftsInfoService/Services/CraftsStepsService.cs View File

@@ -0,0 +1,120 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :工艺路线服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:11:04
/// 描 述 :CraftsInfo 工艺管理 CraftsSteps工艺步骤管理
/// </summary>
[ApiDescriptionSettings("配方工艺管理", Order = 0, Tag = "工艺服务", Name = "CraftsSteps", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class CraftsStepsService : ICraftsStepsService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public CraftsStepsService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(CraftsStepsAddInput input)
{
var r_entity = await _dbContext.Queryable<Pztj_CraftStepsEntity>().FirstAsync(x => x.Name == input.Name);
if (r_entity != null)
{
throw Oops.Bah("名称已存在!");
}
Pztj_CraftStepsEntity entity = input.Adapt<Pztj_CraftStepsEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(CraftsStepsDelInput input)
{
var res = await _dbContext.Deleteable<Pztj_CraftStepsEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<CraftsStepsOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<Pztj_CraftStepsEntity>().FirstAsync(x => x.Id == Id);
CraftsStepsOutput output = entity.Adapt<CraftsStepsOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<List<CraftsStepsOutput>> List()
{
var entity = await _dbContext.Queryable<Pztj_CraftStepsEntity>().ToListAsync();
List<CraftsStepsOutput> output = entity.Adapt<List<CraftsStepsOutput>>();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<CraftsStepsOutput>> PagedList(CraftsStepsQueryPageInput input)
{
var entity = await _dbContext.Queryable<Pztj_CraftStepsEntity>()
.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name.Contains(input.Name))
.WhereIF(!string.IsNullOrEmpty(input.CraftId), x => x.CraftId == input.CraftId)
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<CraftsStepsOutput> output = entity.Adapt<SqlSugarPagedList<CraftsStepsOutput>>();
return output;
}
/// <summary>
/// 下拉
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<dynamic> SelectList()
{
var entity = await _dbContext.Queryable<Pztj_CraftStepsEntity>().Select(x => new
{
key = x.Id,
value = x.Name
}).ToListAsync();
return entity;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(CraftsStepsUpdateInput input)
{
var isExit =await _dbContext.Queryable<Pztj_CraftStepsEntity>().Where(x => x.Id != input.Id && x.Name == input.Name).FirstAsync();
if (isExit != null)
{
throw Oops.Bah("名称或编码已存在!");
}
Pztj_CraftStepsEntity entity = input.Adapt<Pztj_CraftStepsEntity>();
var res = await _dbContext.Updateable(entity).IgnoreColumns(true).ExecuteCommandHasChangeAsync();
return res;
}
}
}


+ 48
- 0
backend/BPA.MES.Base.Application/Services/CraftsInfoService/Services/ICraftsInfoService.cs View File

@@ -0,0 +1,48 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :工艺信息
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/10 14:03:21
/// 描 述 :
/// </summary>
public interface ICraftsInfoService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(CraftsInfoAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(CraftsInfoDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(CraftsInfoUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<CraftsInfoOutput>> List(CraftsInfoQueryInput Input);
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<CraftsInfoOutput>> PagedList(CraftsInfoQueryPageInput input);
/// <summary>
/// 下拉列表
/// </summary>
/// <returns></returns>
Task<dynamic> SelectList();
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<CraftsInfoOutput> Detail(string Id);
}
}

+ 48
- 0
backend/BPA.MES.Base.Application/Services/CraftsInfoService/Services/ICraftsStepsService.cs View File

@@ -0,0 +1,48 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :产线管理
/// 创 建 人 :yangxiao
/// 创建时间 :2023/7/18 14:05:16
/// 描 述 :
/// </summary>
public interface ICraftsStepsService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(CraftsStepsAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(CraftsStepsDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(CraftsStepsUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<CraftsStepsOutput>> List();
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<CraftsStepsOutput>> PagedList(CraftsStepsQueryPageInput input);
/// <summary>
/// 下拉列表
/// </summary>
/// <returns></returns>
Task<dynamic> SelectList();
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<CraftsStepsOutput> Detail(string Id);
}
}

+ 99
- 0
backend/BPA.MES.Base.Application/Services/DeviceService/Dtos/DeviceRecipeDto.cs View File

@@ -0,0 +1,99 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :设备Dto类
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/3/2 16:12:06
/// 描 述 :
/// </summary>
public class DeviceRecipeDto : DeviceRecipeEntity
{

}
/// <summary>
/// 增加
/// </summary>
public class DeviceRecipeAddInput : DeviceRecipeDto
{

}
/// <summary>
/// 更新
/// </summary>
public class DeviceRecipeUpdateInput : DeviceRecipeDto
{

}
/// <summary>
/// 删除
/// </summary>
public class DeviceRecipeDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 不分页
/// </summary>
public class DeviceRecipeQueryInput
{
/// <summary>
/// 设备Id
/// </summary>
public string DeviceId { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class DeviceRecipeQueryPageInput : RequestPage
{

}

public class DeviceRecipeBatchAddInput
{
/// <summary>
/// 设备Id
/// </summary>
public string DeviceId { get; set; }
/// <summary>
/// 配方数组
/// </summary>
public List<string> RecipesIds { get; set; } = new();
}


/// <summary>
/// 输出
/// </summary>
public class DeviceRecipeOutput : DeviceRecipeDto
{
/// <summary>
/// 设备名称
/// </summary>
public string DeviceName { get; set; }
/// <summary>
/// 配方名称
/// </summary>
public string RecipeName { get; set; }
/// <summary>
/// 配方代码
/// </summary>
public string RecipeCode { get; set; }
/// <summary>
/// 分组Id
/// </summary>
public string GroupId { get; set; }
/// <summary>
/// 分组名称
/// </summary>
public string GroupName { get; set; }
/// <summary>
/// 配方图片地址
/// </summary>
public string RecipesPic { get; set; }
}
}

+ 88
- 0
backend/BPA.MES.Base.Application/Services/DeviceService/Dtos/DevicesInfoDto.cs View File

@@ -0,0 +1,88 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :设备Dto类
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/3/2 16:12:06
/// 描 述 :
/// </summary>
public class DevicesInfoDto
{
/// <summary>
/// 名称
/// </summary>
/// <example>设备名称</example>
[Required(ErrorMessage = "名称不能为空")]
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
[Required(ErrorMessage = "编码不能为空")]
public string Code { get; set; }
/// <summary>
/// 设备类型
/// </summary>
public string DeviceType { get; set; }
/// <summary>
/// 设备描述
/// </summary>
/// <example>设备描述</example>
public string Describe { get; set; }
/// <summary>
/// 设备维保时间
/// </summary>
/// <example>2023-7-17</example>
public string RepairDate { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class DevicesInfoAddInput : DevicesInfoDto
{

}
/// <summary>
/// 更新
/// </summary>
public class DevicesInfoUpdateInput : DevicesInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class DevicesInfoDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class DevicesInfoQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
public string Code { get; set; }
}
/// <summary>
/// 输出
/// </summary>
public class DevicesInfoOutput : DevicesInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
}

+ 144
- 0
backend/BPA.MES.Base.Application/Services/DeviceService/Services/DeviceRecipeService.cs View File

@@ -0,0 +1,144 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :设备服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:11:04
/// 描 述 :基础信息管理
/// </summary>
[ApiDescriptionSettings("基础数据管理", Name = "DeviceRecipe", Tag = "设备服务", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class DeviceRecipeService : IDeviceRecipeService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public DeviceRecipeService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(DeviceRecipeAddInput input)
{
var r_entity = await _dbContext.Queryable<DeviceRecipeEntity>().FirstAsync(x => x.DeviceId == input.DeviceId && x.RecipesId==input.RecipesId);
if (r_entity != null)
{
throw Oops.Bah("名称已存在!");
}
DeviceRecipeEntity entity = input.Adapt<DeviceRecipeEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 批量下发配方
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>

public async Task<bool> BatchUpdate(DeviceRecipeBatchAddInput input)
{
bool result = false;
List<DeviceRecipeEntity> dr_entitys = new();
foreach (var item in input.RecipesIds)
{
DeviceRecipeEntity entity = new();
entity.RecipesId = item;
entity.DeviceId = input.DeviceId;
dr_entitys.Add(entity);
}
try
{
_dbContext.Ado.BeginTran();
await _dbContext.Deleteable<DeviceRecipeEntity>().Where(x => x.DeviceId == input.DeviceId).ExecuteCommandAsync();
if (input.RecipesIds.Any())
{
await _dbContext.Insertable(dr_entitys).ExecuteCommandAsync();
}
_dbContext.Ado.CommitTran();
result = true;
}
catch (Exception ex)
{
throw Oops.Bah("更新失败!");
}
return result;
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(DeviceRecipeDelInput input)
{
var res = await _dbContext.Deleteable<DeviceRecipeEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<DeviceRecipeOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<DeviceRecipeEntity>().FirstAsync(x => x.Id == Id);
DeviceRecipeOutput output = entity.Adapt<DeviceRecipeOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost,AllowAnonymous]
public async Task<List<DeviceRecipeOutput>> List(DeviceRecipeQueryInput input)
{
var output = await _dbContext.Queryable<DeviceRecipeEntity>()
.LeftJoin<RecipesInfoEntity>((a,b)=>a.RecipesId==b.Id)
.LeftJoin<RecipesGroupEntity>((a,b,c)=>a.RecipesId==c.RecipesId)
.LeftJoin<GroupInfoEntity>((a, b, c,d)=>c.GroupId==d.Id)
.WhereIF(!string.IsNullOrEmpty(input.DeviceId),a=>a.DeviceId==input.DeviceId)
.Select((a, b, c,d) => new DeviceRecipeOutput
{
DeviceId = a.DeviceId,
RecipeName = b.Name,
RecipeCode = b.Code,
RecipesId = a.RecipesId,
GroupId = c.GroupId,
GroupName = d.Name
})
.ToListAsync();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<DeviceRecipeOutput>> PagedList(DeviceRecipeQueryPageInput input)
{
var entity = await _dbContext.Queryable<DeviceRecipeEntity>()
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<DeviceRecipeOutput> output = entity.Adapt<SqlSugarPagedList<DeviceRecipeOutput>>();
return output;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(DeviceRecipeUpdateInput input)
{
var res = await _dbContext.Updateable<DeviceRecipeEntity>().ExecuteCommandHasChangeAsync();
return res;
}
}
}

+ 119
- 0
backend/BPA.MES.Base.Application/Services/DeviceService/Services/DevicesInfoService.cs View File

@@ -0,0 +1,119 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :设备服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:11:04
/// 描 述 :基础数据管理
/// </summary>
[ApiDescriptionSettings("基础数据管理",Order = 0, Tag = "设备服务", Name = "DevicesInfo", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class DevicesInfoService : IDevicesInfoService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public DevicesInfoService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(DevicesInfoAddInput input)
{
var r_entity = await _dbContext.Queryable<Pztj_DevicesInfoEntity>().FirstAsync(x => x.Name == input.Name || x.Code == input.Code);
if (r_entity != null)
{
throw Oops.Bah("名称或编码已存在!");
}
Pztj_DevicesInfoEntity entity = input.Adapt<Pztj_DevicesInfoEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(DevicesInfoDelInput input)
{
var res = await _dbContext.Deleteable<Pztj_DevicesInfoEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<DevicesInfoOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<Pztj_DevicesInfoEntity>().FirstAsync(x => x.Id == Id);
DevicesInfoOutput output = entity.Adapt<DevicesInfoOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<List<DevicesInfoOutput>> List()
{
var entity = await _dbContext.Queryable<Pztj_DevicesInfoEntity>().ToListAsync();
List<DevicesInfoOutput> output = entity.Adapt<List<DevicesInfoOutput>>();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<DevicesInfoOutput>> PagedList(DevicesInfoQueryPageInput input)
{
var entity = await _dbContext.Queryable<Pztj_DevicesInfoEntity>()
.WhereIF(!string.IsNullOrEmpty(input.Name),x=>x.Name.Contains(input.Name))
.WhereIF(!string.IsNullOrEmpty(input.Code), x => x.Name.Contains(input.Code))
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<DevicesInfoOutput> output = entity.Adapt<SqlSugarPagedList<DevicesInfoOutput>>();
return output;
}
/// <summary>
/// 下拉
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<dynamic> SelectList()
{
var entity = await _dbContext.Queryable<Pztj_DevicesInfoEntity>().Select(x => new
{
key = x.Id,
value = x.Name
}).ToListAsync();
return entity;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(DevicesInfoUpdateInput input)
{
var isExit =await _dbContext.Queryable<Pztj_DevicesInfoEntity>().Where(x => x.Id != input.Id && (x.Name == input.Name || x.Code == input.Code)).FirstAsync();
if (isExit != null)
{
throw Oops.Bah("名称或编码已存在!");
}
Pztj_DevicesInfoEntity entity = input.Adapt<Pztj_DevicesInfoEntity>();
var res = await _dbContext.Updateable(entity).IgnoreColumns(true).ExecuteCommandHasChangeAsync();
return res;
}
}
}

+ 49
- 0
backend/BPA.MES.Base.Application/Services/DeviceService/Services/IDeviceRecipeService.cs View File

@@ -0,0 +1,49 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :设备配方服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 18:30:58
/// 描 述 :
/// </summary>
public interface IDeviceRecipeService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(DeviceRecipeAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(DeviceRecipeDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(DeviceRecipeUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<DeviceRecipeOutput>> List(DeviceRecipeQueryInput input);
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<DeviceRecipeOutput>> PagedList(DeviceRecipeQueryPageInput input);
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<DeviceRecipeOutput> Detail(string Id);
/// <summary>
/// 批量下发配方
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<bool> BatchUpdate(DeviceRecipeBatchAddInput input);
}
}

+ 48
- 0
backend/BPA.MES.Base.Application/Services/DeviceService/Services/IDevicesInfoService.cs View File

@@ -0,0 +1,48 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :设备服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 18:30:58
/// 描 述 :
/// </summary>
public interface IDevicesInfoService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(DevicesInfoAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(DevicesInfoDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(DevicesInfoUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<DevicesInfoOutput>> List();
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<DevicesInfoOutput>> PagedList(DevicesInfoQueryPageInput input);
/// <summary>
/// 下拉列表
/// </summary>
/// <returns></returns>
Task<dynamic> SelectList();
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<DevicesInfoOutput> Detail(string Id);
}
}

+ 87
- 0
backend/BPA.MES.Base.Application/Services/FinalsInfoService/Dtos/FinalsInfoDto.cs View File

@@ -0,0 +1,87 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :成品管理
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/17 15:59:39
/// 描 述 :
/// </summary>
public class FinalsInfoDto
{
/// <summary>
/// 成品编号
/// </summary>
public string Code { get; set; }
/// <summary>
/// 成品名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 配方Id
/// </summary>
public string RecipeId { get; set; }
/// <summary>
/// 工艺Id
/// </summary>
public string CraftId { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class FinalsInfoAddInput : FinalsInfoDto
{

}
/// <summary>
/// 更新
/// </summary>
public class FinalsInfoUpdateInput : FinalsInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class FinalsInfoDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class FinalsInfoQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
public string Code { get; set; }
}
/// <summary>
/// 输出
/// </summary>
public class FinalsInfoOutput : FinalsInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
/// <summary>
/// 配方名称
/// </summary>
public string RecipeName { get; set; }
/// <summary>
/// 工艺名称
/// </summary>
public string CraftName { get; set; }
}
}

+ 123
- 0
backend/BPA.MES.Base.Application/Services/FinalsInfoService/Services/FinalsInfoService.cs View File

@@ -0,0 +1,123 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :成品管理服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:11:04
/// 描 述 :基础数据管理
/// </summary>
[ApiDescriptionSettings("基础数据管理", Order = 4, Name = "FinalsInfo", Tag = "成品管理服务", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class FinalsInfoService : IFinalsInfoService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public FinalsInfoService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(FinalsInfoAddInput input)
{
var r_entity = await _dbContext.Queryable<Pztj_FinalsInfoEntity>().FirstAsync(x => x.Name == input.Name);
if (r_entity != null)
{
throw Oops.Bah("名称已存在!");
}
Pztj_FinalsInfoEntity entity = input.Adapt<Pztj_FinalsInfoEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(FinalsInfoDelInput input)
{
var res = await _dbContext.Deleteable<Pztj_FinalsInfoEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<FinalsInfoOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<Pztj_FinalsInfoEntity>().FirstAsync(x => x.Id == Id);
FinalsInfoOutput output = entity.Adapt<FinalsInfoOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<List<FinalsInfoOutput>> List()
{
var entity = await _dbContext.Queryable<Pztj_FinalsInfoEntity>().ToListAsync();
List<FinalsInfoOutput> output = entity.Adapt<List<FinalsInfoOutput>>();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<FinalsInfoOutput>> PagedList(FinalsInfoQueryPageInput input)
{
var entity = await _dbContext.Queryable<Pztj_FinalsInfoEntity>()
.LeftJoin<Pztj_CraftsInfoEntity>((a,b)=>a.CraftId==b.Id)
.LeftJoin<RecipesInfoEntity>((a, b, c) => a.RecipeId == c.Id)
.WhereIF(!string.IsNullOrEmpty(input.Name),a=>a.Name.Contains(input.Name))
.WhereIF(!string.IsNullOrEmpty(input.Code), a => a.Name.Contains(input.Code))
.Select((a,b,c)=> new FinalsInfoOutput
{
Id = a.Id.SelectAll(),
RecipeName = c.Name,
CraftName = b.Name
})
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<FinalsInfoOutput> output = entity.Adapt<SqlSugarPagedList<FinalsInfoOutput>>();
return output;
}
/// <summary>
/// 下拉
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<dynamic> SelectList()
{
var entity = await _dbContext.Queryable<Pztj_FinalsInfoEntity>().Select(x => new
{
key = x.Id,
value = x.Name
}).ToListAsync();
return entity;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(FinalsInfoUpdateInput input)
{
Pztj_FinalsInfoEntity entity = input.Adapt<Pztj_FinalsInfoEntity>();
var res = await _dbContext.Updateable(entity).IgnoreColumns(true).ExecuteCommandHasChangeAsync();
return res;
}
}
}


+ 49
- 0
backend/BPA.MES.Base.Application/Services/FinalsInfoService/Services/IFinalsInfoService.cs View File

@@ -0,0 +1,49 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :成品信息管理
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/17 16:02:25
/// 描 述 :
/// </summary>
public interface IFinalsInfoService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(FinalsInfoAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(FinalsInfoDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(FinalsInfoUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<FinalsInfoOutput>> List();
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<FinalsInfoOutput>> PagedList(FinalsInfoQueryPageInput input);
/// <summary>
/// 下拉列表
/// </summary>
/// <returns></returns>
Task<dynamic> SelectList();
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<FinalsInfoOutput> Detail(string Id);
}
}


+ 88
- 0
backend/BPA.MES.Base.Application/Services/MaterialService/Dtos/MaterialsInfoDto.cs View File

@@ -0,0 +1,88 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :设备Dto类
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/3/2 16:12:06
/// 描 述 :
/// </summary>
public class MaterialsInfoDto
{
/// <summary>
/// 原料名称
/// </summary>
/// <example></example>
public string Name { get; set; }
/// <summary>
/// 原料编号
/// </summary>
/// <example></example>
public string Code { get; set; }
/// <summary>
/// 原料单位
/// </summary>
/// <example></example>
public string Unit { get; set; }
/// <summary>
/// 原料分组
/// </summary>
/// <example></example>
public string Gourp { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class MaterialsInfoAddInput : MaterialsInfoDto
{

}
/// <summary>
/// 更新
/// </summary>
public class MaterialsInfoUpdateInput : MaterialsInfoDto
{
/// <summary>
/// 主键
/// </summary>
/// <example></example>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class MaterialsInfoDelInput
{
/// <summary>
/// 主键
/// </summary>
/// <example></example>
public string Id { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class MaterialsInfoQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
/// <example></example>
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
/// <example></example>
public string Code { get; set; }
}
/// <summary>
/// 输出
/// </summary>
public class MaterialsInfoOutput : MaterialsInfoDto
{
/// <summary>
/// 主键
/// </summary>
/// <example></example>
public string Id { get; set; }
}
}

+ 48
- 0
backend/BPA.MES.Base.Application/Services/MaterialService/Services/IMaterialsInfoService.cs View File

@@ -0,0 +1,48 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :物料服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 18:31:53
/// 描 述 :
/// </summary>
public interface IMaterialsInfoService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(MaterialsInfoAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(MaterialsInfoDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(MaterialsInfoUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<MaterialsInfoOutput>> List();
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<MaterialsInfoOutput>> PagedList(MaterialsInfoQueryPageInput input);
/// <summary>
/// 下拉列表
/// </summary>
/// <returns></returns>
Task<dynamic> SelectList();
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<MaterialsInfoOutput> Detail(string Id);
}
}

+ 115
- 0
backend/BPA.MES.Base.Application/Services/MaterialService/Services/MaterialsInfoService.cs View File

@@ -0,0 +1,115 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :原料服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023年7月17日15:41:09
/// 描 述 :基础数据管理
/// </summary>
[ApiDescriptionSettings("基础数据管理", Order = 2, Name = "MaterialsInfo", Tag = "原料服务", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class MaterialsInfoService : IMaterialsInfoService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public MaterialsInfoService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(MaterialsInfoAddInput input)
{
var r_entity = await _dbContext.Queryable<Pztj_MaterialsInfoEntity>().FirstAsync(x => x.Name == input.Name);
if (r_entity != null)
{
throw Oops.Bah("名称已存在!");
}
Pztj_MaterialsInfoEntity entity = input.Adapt<Pztj_MaterialsInfoEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(MaterialsInfoDelInput input)
{
var res = await _dbContext.Deleteable<Pztj_MaterialsInfoEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<MaterialsInfoOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<Pztj_MaterialsInfoEntity>().FirstAsync(x => x.Id == Id);
MaterialsInfoOutput output = entity.Adapt<MaterialsInfoOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<List<MaterialsInfoOutput>> List()
{
var entity = await _dbContext.Queryable<Pztj_MaterialsInfoEntity>().ToListAsync();
List<MaterialsInfoOutput> output = entity.Adapt<List<MaterialsInfoOutput>>();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<MaterialsInfoOutput>> PagedList(MaterialsInfoQueryPageInput input)
{
var entity = await _dbContext.Queryable<Pztj_MaterialsInfoEntity>()
.WhereIF(!string.IsNullOrEmpty(input.Name),x=>x.Name.Contains(input.Name))
.WhereIF(!string.IsNullOrEmpty(input.Code), x => x.Code.Contains(input.Code))
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<MaterialsInfoOutput> output = entity.Adapt<SqlSugarPagedList<MaterialsInfoOutput>>();
return output;
}
/// <summary>
/// 下拉
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<dynamic> SelectList()
{
var entity = await _dbContext.Queryable<Pztj_MaterialsInfoEntity>().Select(x => new
{
key = x.Id,
value = x.Name
}).ToListAsync();
return entity;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(MaterialsInfoUpdateInput input)
{
var entity = await _dbContext.Queryable<Pztj_MaterialsInfoEntity>().Where(x => x.Id == input.Id).FirstAsync();
entity = input.Adapt<Pztj_MaterialsInfoEntity>();
var res = await _dbContext.Updateable(entity).IgnoreColumns(true).ExecuteCommandHasChangeAsync();
return res;
}
}
}

+ 37
- 0
backend/BPA.MES.Base.Application/Services/OperLogService/Dtos/OperLogDto.cs View File

@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/20 15:15:48
/// 描 述 :
/// </summary>
public class OperLogDto
{
/// <summary>
/// 操作标题
/// </summary>
public string Name { get; set; }
/// <summary>
/// 内容
/// </summary>
public string Context { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class OperLogAddInput: OperLogDto
{
}
}

+ 17
- 0
backend/BPA.MES.Base.Application/Services/OperLogService/Services/IOperLogService.cs View File

@@ -0,0 +1,17 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :日志服务
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/20 15:17:58
/// 描 述 :
/// </summary>
public interface IOperLogService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(WorkInfoAddInput input);
}
}

+ 12
- 0
backend/BPA.MES.Base.Application/Services/OperLogService/Services/OperLogService.cs View File

@@ -0,0 +1,12 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :操作日志
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/20 15:17:24
/// 描 述 :
/// </summary>
public class OperLogService
{
}
}

+ 68
- 0
backend/BPA.MES.Base.Application/Services/ProductLineService/Dtos/GroupInfoDto.cs View File

@@ -0,0 +1,68 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :产品分组
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/3/10 13:59:43
/// 描 述 :
/// </summary>
public class GroupInfoDto
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 介绍
/// </summary>
public string Des { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class GroupInfoAddInput : GroupInfoDto
{

}
/// <summary>
/// 更新
/// </summary>
public class GroupInfoUpdateInput : GroupInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class GroupInfoDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class GroupInfoQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
}
/// <summary>
/// 输出
/// </summary>
public class GroupInfoOutput : GroupInfoDto
{
/// <summary>
/// 主键
/// </summary>
/// <example></example>
public string Id { get; set; }
}
}

+ 76
- 0
backend/BPA.MES.Base.Application/Services/ProductLineService/Dtos/ProductLineDeviceDto.cs View File

@@ -0,0 +1,76 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :产线设备
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/20 17:00:32
/// 描 述 :
/// </summary>
public class ProductLineDeviceDto
{
/// <summary>
/// 产线Id
/// </summary>
public string LineId { get; set; }
/// <summary>
/// 产线设备
/// </summary>
public string DeviceId { get; set; }
}
public class ProductLineDeviceAddInput: ProductLineDeviceDto {
}
/// <summary>
/// 产线设备分页
/// </summary>
public class ProductLineDeviceQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 产线Id
/// </summary>
public string LineId { get; set; }
}
/// <summary>
/// 删除产线设备
/// </summary>
public class ProductLineDeviceDelInput: ProductLineDeviceDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 产线设备关联信息
/// </summary>
public class ProductLineDeviceOutput: ProductLineDeviceDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
/// <summary>
/// 名称
/// </summary>
/// <example>设备名称</example>
public string DeviceName { get; set; }
/// <summary>
/// 编码
/// </summary>
public string DeviceCode { get; set; }
/// <summary>
/// 设备类型
/// </summary>
public string DeviceType { get; set; }
/// <summary>
/// 设备描述
/// </summary>
/// <example>设备描述</example>
public string Describe { get; set; }
}
}

+ 76
- 0
backend/BPA.MES.Base.Application/Services/ProductLineService/Dtos/ProductLineDto.cs View File

@@ -0,0 +1,76 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :产线管理
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/18 14:03:27
/// 描 述 :
/// </summary>
public class ProductLineDto
{
/// <summary>
/// 产线名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 产线编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 产线描述
/// </summary>
public string Describe { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class ProductLineAddInput : ProductLineDto
{

}
/// <summary>
/// 更新
/// </summary>
public class ProductLineUpdateInput : ProductLineDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class ProductLineDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class ProductLineQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
public string Code { get; set; }
}
/// <summary>
/// 输出
/// </summary>
public class ProductLineOutput : ProductLineDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
}

+ 69
- 0
backend/BPA.MES.Base.Application/Services/ProductLineService/Dtos/ProductLineStockDto.cs View File

@@ -0,0 +1,69 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/20 18:25:18
/// 描 述 :
/// </summary>
public class ProductLineStockDto
{
/// <summary>
/// 产线Id
/// </summary>
public string LineId { get; set; }
/// <summary>
/// 产线设备
/// </summary>
public string StockId { get; set; }
}
public class ProductLineStockAddInput : ProductLineStockDto
{


}
/// <summary>
/// 产线设备分页
/// </summary>
public class ProductLineStockQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 产线Id
/// </summary>
public string LineId { get; set; }
}
/// <summary>
/// 删除产线设备
/// </summary>
public class ProductLineStockDelInput : ProductLineStockDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 产线设备关联信息
/// </summary>
public class ProductLineStockOutput : ProductLineStockDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
/// <summary>
/// 名称
/// </summary>
/// <example>设备名称</example>
public string StockName { get; set; }
/// <summary>
/// 编码
/// </summary>
public string StockCode { get; set; }
}
}


+ 116
- 0
backend/BPA.MES.Base.Application/Services/ProductLineService/Services/GroupInfoService.cs View File

@@ -0,0 +1,116 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :分组信息
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/10 14:03:06
/// 描 述 :
/// </summary>
[ApiDescriptionSettings("产线管理", Order = 0, Name = "GroupInfo", Tag = "分组服务", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class GroupInfoService : IGroupInfoService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public GroupInfoService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(GroupInfoAddInput input)
{
GroupInfoEntity entity = await _dbContext.Queryable<GroupInfoEntity>().FirstAsync(x => x.Name == input.Name);
if (entity != null)
{
throw Oops.Bah("名称已存在!");
}
entity = input.Adapt<GroupInfoEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(GroupInfoDelInput input)
{
var res = await _dbContext.Deleteable<GroupInfoEntity>().Where(x=>x.Id==input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<GroupInfoOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<GroupInfoEntity>().FirstAsync();
GroupInfoOutput output = entity.Adapt<GroupInfoOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost, AllowAnonymous]
public async Task<List<GroupInfoOutput>> List()
{
var entity = await _dbContext.Queryable<GroupInfoEntity>().ToListAsync();
List<GroupInfoOutput> output = entity.Adapt<List<GroupInfoOutput>>();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<GroupInfoOutput>> PagedList(GroupInfoQueryPageInput input)
{
var entity = await _dbContext.Queryable<GroupInfoEntity>()
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<GroupInfoOutput> output = entity.Adapt<SqlSugarPagedList<GroupInfoOutput>>();
return output;
}
/// <summary>
/// 下拉
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<dynamic> SelectList()
{
var entity = await _dbContext.Queryable<GroupInfoEntity>().Select(x => new
{
key = x.Id,
value = x.Name
}).ToListAsync();
return entity;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(GroupInfoUpdateInput input)
{
var entity = await _dbContext.Queryable<GroupInfoEntity>().FirstAsync(x => x.Id != input.Id && x.Name == input.Name);
if (entity != null)
{
throw Oops.Bah("名称已存在!");
}
entity = input.Adapt<GroupInfoEntity>();
var res = await _dbContext.Updateable(entity).IgnoreColumns(true).ExecuteCommandHasChangeAsync();
return res;
}
}
}

+ 48
- 0
backend/BPA.MES.Base.Application/Services/ProductLineService/Services/IGroupInfoService.cs View File

@@ -0,0 +1,48 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :分组信息
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/10 14:03:21
/// 描 述 :
/// </summary>
public interface IGroupInfoService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(GroupInfoAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(GroupInfoDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(GroupInfoUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<GroupInfoOutput>> List();
/// <summary>
/// 下拉列表
/// </summary>
/// <returns></returns>
Task<dynamic> SelectList();
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<GroupInfoOutput>> PagedList(GroupInfoQueryPageInput input);
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<GroupInfoOutput> Detail(string Id);
}
}

+ 100
- 0
backend/BPA.MES.Base.Application/Services/ProductLineService/Services/IProductLineService.cs View File

@@ -0,0 +1,100 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :产线管理
/// 创 建 人 :yangxiao
/// 创建时间 :2023/7/18 14:05:16
/// 描 述 :
/// </summary>
public interface IProductLineService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(ProductLineAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(ProductLineDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(ProductLineUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<ProductLineOutput>> List();
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<ProductLineOutput>> PagedList(ProductLineQueryPageInput input);
/// <summary>
/// 下拉列表
/// </summary>
/// <returns></returns>
Task<dynamic> SelectList();
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<ProductLineOutput> Detail(string Id);
/// <summary>
/// 产线添加设备
/// </summary>
/// <returns></returns>
Task<bool> AddDevice(ProductLineDeviceAddInput input);
/// <summary>
/// 产线删除设备
/// </summary>
/// <returns></returns>
Task<bool> DeleteDevice(ProductLineDeviceDelInput input);
///// <summary>
///// 产线更新设备
///// </summary>
///// <returns></returns>
//Task<bool> UpdateDevice(string DeviceId);
/// <summary>
/// 产线设备不分页
/// </summary>
/// <returns></returns>
Task<List<ProductLineDeviceOutput>> DeviceList();
/// <summary>
/// 产线设备分页
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<ProductLineDeviceOutput>> DevicePageList(ProductLineDeviceQueryPageInput input);


/// <summary>
/// 产线添加料仓
/// </summary>
/// <returns></returns>
Task<bool> AddStock(ProductLineStockAddInput input);
/// <summary>
/// 产线删除料仓
/// </summary>
/// <returns></returns>
Task<bool> DeleteStock(ProductLineStockDelInput input);
///// <summary>
///// 产线更新料仓
///// </summary>
///// <returns></returns>
//Task<bool> UpdateStock(string StockId);
/// <summary>
/// 产线料仓不分页
/// </summary>
/// <returns></returns>
Task<List<ProductLineStockOutput>> StockList();
/// <summary>
/// 产线料仓分页
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<ProductLineStockOutput>> StockPageList(ProductLineStockQueryPageInput input);
}
}

+ 241
- 0
backend/BPA.MES.Base.Application/Services/ProductLineService/Services/ProductLineService.cs View File

@@ -0,0 +1,241 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :产线服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:11:04
/// 描 述 :基础数据管理
/// </summary>
[ApiDescriptionSettings("产线管理", Order = 0, Name = "ProductLine", Tag = "产线服务", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class ProductLineService : IProductLineService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public ProductLineService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(ProductLineAddInput input)
{
var r_entity = await _dbContext.Queryable<ProductLineEntity>().FirstAsync(x => x.Name == input.Name);
if (r_entity != null)
{
throw Oops.Bah("名称已存在!");
}
ProductLineEntity entity = input.Adapt<ProductLineEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(ProductLineDelInput input)
{
var res = await _dbContext.Deleteable<ProductLineEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<ProductLineOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<ProductLineEntity>().FirstAsync(x => x.Id == Id);
ProductLineOutput output = entity.Adapt<ProductLineOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<List<ProductLineOutput>> List()
{
var entity = await _dbContext.Queryable<ProductLineEntity>().ToListAsync();
List<ProductLineOutput> output = entity.Adapt<List<ProductLineOutput>>();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<ProductLineOutput>> PagedList(ProductLineQueryPageInput input)
{
var entity = await _dbContext.Queryable<ProductLineEntity>()
.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name.Contains(input.Name))
.WhereIF(!string.IsNullOrEmpty(input.Code), x => x.Name.Contains(input.Code))
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<ProductLineOutput> output = entity.Adapt<SqlSugarPagedList<ProductLineOutput>>();
return output;
}
/// <summary>
/// 下拉
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<dynamic> SelectList()
{
var entity = await _dbContext.Queryable<ProductLineEntity>().Select(x => new
{
key = x.Id,
value = x.Name
}).ToListAsync();
return entity;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(ProductLineUpdateInput input)
{
var isExit =await _dbContext.Queryable<ProductLineEntity>().Where(x => x.Id != input.Id && (x.Name == input.Name || x.Code == input.Code)).FirstAsync();
if (isExit != null)
{
throw Oops.Bah("名称或编码已存在!");
}
ProductLineEntity entity = input.Adapt<ProductLineEntity>();
var res = await _dbContext.Updateable(entity).IgnoreColumns(true).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 产线添加设备
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<bool> AddDevice(ProductLineDeviceAddInput input)
{
var r_entity = await _dbContext.Queryable<Pztj_LineDevicesEntity>().FirstAsync(x => x.DeviceId == input.DeviceId);
if (r_entity != null)
{
throw Oops.Bah("设备已存在!");
}
Pztj_LineDevicesEntity entity = input.Adapt<Pztj_LineDevicesEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 产线删除设备
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<bool> DeleteDevice(ProductLineDeviceDelInput input)
{
var res = await _dbContext.Deleteable<Pztj_LineDevicesEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 产线设备不分页
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<List<ProductLineDeviceOutput>> DeviceList()
{
var entity = await _dbContext.Queryable<Pztj_LineDevicesEntity>().ToListAsync();
List<ProductLineDeviceOutput> output = entity.Adapt<List<ProductLineDeviceOutput>>();
return output;
}
/// <summary>
/// 产线设备分页
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<ProductLineDeviceOutput>> DevicePageList(ProductLineDeviceQueryPageInput input)
{
var entity = await _dbContext.Queryable<Pztj_LineDevicesEntity>()
.LeftJoin<Pztj_DevicesInfoEntity>((a,b)=>a.DeviceId==b.Id)
.WhereIF(!string.IsNullOrEmpty(input.Name), (a, b) => b.Name.Contains(input.Name))
.Where((a, b) => a.LineId == input.LineId)
.Select((a,b)=>new ProductLineDeviceOutput
{
DeviceId = a.DeviceId,
DeviceCode = b.Code,
DeviceName = b.Name,
Describe = b.Describe,
DeviceType = b.DeviceType,
Id = a.Id,
LineId = a.LineId
})
.ToPagedListAsync(input.PageIndex, input.PageSize);
return entity;
}


/// <summary>
/// 产线添加料仓
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<bool> AddStock(ProductLineStockAddInput input)
{
var r_entity = await _dbContext.Queryable<Pztj_LineStocksEntity>().FirstAsync(x => x.StockId == input.StockId);
if (r_entity != null)
{
throw Oops.Bah("设备已存在!");
}
Pztj_LineStocksEntity entity = input.Adapt<Pztj_LineStocksEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 产线删除料仓
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<bool> DeleteStock(ProductLineStockDelInput input)
{
var res = await _dbContext.Deleteable<Pztj_LineStocksEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 产线料仓不分页
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<List<ProductLineStockOutput>> StockList()
{
var entity = await _dbContext.Queryable<Pztj_LineStocksEntity>().ToListAsync();
List<ProductLineStockOutput> output = entity.Adapt<List<ProductLineStockOutput>>();
return output;
}
/// <summary>
/// 产线料仓分页
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<ProductLineStockOutput>> StockPageList(ProductLineStockQueryPageInput input)
{
var entity = await _dbContext.Queryable<Pztj_LineStocksEntity>()
.LeftJoin<Pztj_StockInfoEntity>((a, b) => a.StockId == b.Id)
.WhereIF(!string.IsNullOrEmpty(input.Name), (a, b) => b.Name.Contains(input.Name))
.Where((a, b) => a.LineId == input.LineId)
.Select((a, b) => new ProductLineStockOutput
{
StockId = a.StockId,
StockCode = b.Code,
StockName = b.Name,
Id = a.Id,
LineId = a.LineId
})
.ToPagedListAsync(input.PageIndex, input.PageSize);
return entity;
}
}
}


+ 94
- 0
backend/BPA.MES.Base.Application/Services/RecipesService/Dtos/RecipeMaterialDto.cs View File

@@ -0,0 +1,94 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :配方物料Dto类
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:12:06
/// 描 述 :
/// </summary>
public class RecipeMaterialDto
{
/// <summary>
/// 物料Id
/// </summary>
public string MaterialId { get; set; }
/// <summary>
/// 配方Id
/// </summary>
public string RecipesId { get; set; }
/// <summary>
/// 重量
/// </summary>
public string Weight { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Describe { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class RecipeMaterialAddInput: RecipeMaterialDto
{
}
/// <summary>
/// 更新
/// </summary>
public class RecipeMaterialUpdateInput : RecipeMaterialDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class RecipeMaterialDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 不分页
/// </summary>
public class RecipeMaterialQueryInput
{
/// <summary>
/// 配方Id
/// </summary>
public string RecipesId { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class RecipeMaterialQueryPageInput : RequestPage
{

}
/// <summary>
/// 输出
/// </summary>
public class RecipeMaterialOutput : RecipeMaterialDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
/// <summary>
/// 配方名称
/// </summary>
public string RecipesName { get; set; }
/// <summary>
/// 物料名称
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// 物料编码
/// </summary>
public string MaterialCode { get; set; }
}
}

+ 84
- 0
backend/BPA.MES.Base.Application/Services/RecipesService/Dtos/RecipesInfoDto.cs View File

@@ -0,0 +1,84 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :配方Dto类
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:12:06
/// 描 述 :
/// </summary>
public class RecipesInfoDto
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 自定义编码
/// </summary>
public string Code { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class RecipesInfoAddInput : RecipesInfoDto
{

}
/// <summary>
/// 更新
/// </summary>
public class RecipesInfoUpdateInput : RecipesInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class RecipesInfoDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class RecipesInfoQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 分组id
/// </summary>
public string GroupId { get; set; }
}
/// <summary>
/// 输出
/// </summary>
public class RecipesInfoOutput : RecipesInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
/// <summary>
/// 分组Id
/// </summary>
public string GroupId { get; set; }
}

public class RecipesGroupInput : RecipesGroupEntity
{
/// <summary>
/// 主键
/// </summary>
/// <example></example>
public string Id { get; set; }
}
}

+ 49
- 0
backend/BPA.MES.Base.Application/Services/RecipesService/Services/IRecipeMaterialService.cs View File

@@ -0,0 +1,49 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :配方物料服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 18:33:18
/// 描 述 :
/// </summary>
public interface IRecipeMaterialService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(RecipeMaterialAddInput input);
/// <summary>
/// 批量增加
/// </summary>
/// <param name="inputs"></param>
/// <returns></returns>
Task<bool> BatchAdd(List<RecipeMaterialAddInput> inputs);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(RecipeMaterialDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(RecipeMaterialUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<RecipeMaterialOutput>> List(RecipeMaterialQueryInput input);
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<RecipeMaterialOutput>> PagedList(RecipeMaterialQueryPageInput input);
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<RecipeMaterialOutput> Detail(string Id);
}
}

+ 54
- 0
backend/BPA.MES.Base.Application/Services/RecipesService/Services/IRecipesInfoService.cs View File

@@ -0,0 +1,54 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :配方服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 18:33:18
/// 描 述 :
/// </summary>
public interface IRecipesInfoService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(RecipesInfoAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(RecipesInfoDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(RecipesInfoUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<RecipesInfoOutput>> List();
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<RecipesInfoOutput>> PagedList(RecipesInfoQueryPageInput input);
/// <summary>
/// 下拉列表
/// </summary>
/// <returns></returns>
Task<dynamic> SelectList();
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<RecipesInfoOutput> Detail(string Id);
/// <summary>
/// 更改物料分组
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<bool> ChangeGroup(RecipesGroupInput input);
}
}

+ 130
- 0
backend/BPA.MES.Base.Application/Services/RecipesService/Services/RecipeMaterialService.cs View File

@@ -0,0 +1,130 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :配方物料服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:11:04
/// 描 述 :配方物料数据维护
/// </summary>
[ApiDescriptionSettings("配方工艺管理", Name = "RecipeMaterial", Tag = "配方物料服务", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class RecipeMaterialService : IRecipeMaterialService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public RecipeMaterialService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(RecipeMaterialAddInput input)
{
RecipeMaterialEntity entity = input.Adapt<RecipeMaterialEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 批量增加
/// </summary>
/// <param name="inputs"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public async Task<bool> BatchAdd(List<RecipeMaterialAddInput> inputs)
{
bool result = false;
List<RecipeMaterialEntity> entitys = inputs.Adapt<List<RecipeMaterialEntity>>();
try
{
_dbContext.Ado.BeginTran();
await _dbContext.Deleteable<RecipeMaterialEntity>().Where(x => x.RecipesId == inputs[0].RecipesId).ExecuteCommandAsync();
await _dbContext.Insertable(entitys).ExecuteCommandAsync();
_dbContext.Ado.CommitTran();
result = true;
}
catch (Exception ex)
{
_dbContext.Ado.RollbackTran();
throw Oops.Bah("保存失败!");
}
return result;
}

/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(RecipeMaterialDelInput input)
{
var res = await _dbContext.Deleteable<RecipeMaterialEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<RecipeMaterialOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<RecipeMaterialEntity>().FirstAsync(x => x.Id == Id);
RecipeMaterialOutput output = entity.Adapt<RecipeMaterialOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost,AllowAnonymous]
public async Task<List<RecipeMaterialOutput>> List(RecipeMaterialQueryInput input)
{
var output = await _dbContext.Queryable<RecipeMaterialEntity>()
.LeftJoin<RecipesInfoEntity>((a,b)=>a.RecipesId==b.Id)
.LeftJoin<Pztj_MaterialsInfoEntity>((a,b,c)=>a.MaterialId==c.Id)
.WhereIF(!string.IsNullOrEmpty(input.RecipesId),(a,b,c)=>a.RecipesId==input.RecipesId)
.Select((a,b,c)=>new RecipeMaterialOutput
{
Id = a.Id,
MaterialName = c.Name,
MaterialCode = c.Code,
MaterialId = c.Id,
RecipesId = a.RecipesId,
RecipesName = b.Name,
Weight = a.Weight
})
.ToListAsync();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<RecipeMaterialOutput>> PagedList(RecipeMaterialQueryPageInput input)
{
var entity = await _dbContext.Queryable<RecipeMaterialEntity>()
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<RecipeMaterialOutput> output = entity.Adapt<SqlSugarPagedList<RecipeMaterialOutput>>();
return output;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(RecipeMaterialUpdateInput input)
{
var res = await _dbContext.Updateable<RecipeMaterialEntity>().ExecuteCommandHasChangeAsync();
return res;
}
}
}

+ 136
- 0
backend/BPA.MES.Base.Application/Services/RecipesService/Services/RecipesInfoService.cs View File

@@ -0,0 +1,136 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :配方管理
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:11:04
/// 描 述 :店铺数据维护
/// </summary>
[ApiDescriptionSettings("配方工艺管理", Name = "RecipesInfo", Tag = "配方服务", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class RecipesInfoService : IRecipesInfoService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public RecipesInfoService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(RecipesInfoAddInput input)
{
var r_entity = await _dbContext.Queryable<RecipesInfoEntity>().FirstAsync(x => x.Name == input.Name || x.Code==input.Code);
if (r_entity != null)
{
throw Oops.Bah("名称或者编码已存在!");
}
RecipesInfoEntity entity = input.Adapt<RecipesInfoEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(RecipesInfoDelInput input)
{
var res = await _dbContext.Deleteable<RecipesInfoEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<RecipesInfoOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<RecipesInfoEntity>().FirstAsync(x => x.Id == Id);
RecipesInfoOutput output = entity.Adapt<RecipesInfoOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<List<RecipesInfoOutput>> List()
{
var entity = await _dbContext.Queryable<RecipesInfoEntity>().ToListAsync();
List<RecipesInfoOutput> output = entity.Adapt<List<RecipesInfoOutput>>();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<RecipesInfoOutput>> PagedList(RecipesInfoQueryPageInput input)
{
var entity = await _dbContext.Queryable<RecipesInfoEntity>()
.LeftJoin<RecipesGroupEntity>((a,b)=>a.Id==b.RecipesId)
.WhereIF(!string.IsNullOrEmpty(input.Name), (a, b) => a.Name.Contains(input.Name))
.WhereIF(!string.IsNullOrEmpty(input.GroupId), (a, b) => b.GroupId==input.GroupId)
.Select<RecipesInfoOutput>()
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<RecipesInfoOutput> output = entity.Adapt<SqlSugarPagedList<RecipesInfoOutput>>();
return output;
}
/// <summary>
/// 下拉
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<dynamic> SelectList()
{
var entity = await _dbContext.Queryable<RecipesInfoEntity>().Select(x => new
{
key = x.Id,
value = x.Name
}).ToListAsync();
return entity;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(RecipesInfoUpdateInput input)
{
RecipesInfoEntity entity = await _dbContext.Queryable<RecipesInfoEntity>().FirstAsync(x => x.Id != input.Id && (x.Name == input.Name || x.Code == input.Code));
if (entity != null)
{
throw Oops.Bah("名称或者编码已存在!");
}
entity = input.Adapt<RecipesInfoEntity>();
var res = await _dbContext.Updateable(entity).IgnoreColumns(true).ExecuteCommandHasChangeAsync();
return res;
}
[HttpPost]
public async Task<bool> ChangeGroup(RecipesGroupInput input)
{
var isExit =await _dbContext.Queryable<RecipesGroupEntity>().FirstAsync(x=>x.RecipesId==input.RecipesId);
var entity = input.Adapt<RecipesGroupEntity>();
if (isExit==null)
{
return await _dbContext.Insertable(entity).ExecuteCommandIdentityIntoEntityAsync();
}
else
{
return await _dbContext.Updateable(entity).IgnoreColumns(true).Where(x => x.RecipesId == input.RecipesId).ExecuteCommandHasChangeAsync();
}
}
}
}

+ 83
- 0
backend/BPA.MES.Base.Application/Services/StockInfoService/Dtos/StockInfoDto.cs View File

@@ -0,0 +1,83 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 : 料仓服务
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/17 15:27:20
/// 描 述 :
/// </summary>
public class StockInfoDto
{
/// <summary>
/// 料仓编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 料仓名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 物料Id
/// </summary>
public string MaterialId { get; set; }
/// <summary>
/// 料仓容积
/// </summary>
public string Volume { get; set; }
}
/// <summary>
/// 增加
/// </summary>
public class StockInfoAddInput : StockInfoDto
{

}
/// <summary>
/// 更新
/// </summary>
public class StockInfoUpdateInput : StockInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 删除
/// </summary>
public class StockInfoDelInput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
}
/// <summary>
/// 分页
/// </summary>
public class StockInfoQueryPageInput : RequestPage
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 编码
/// </summary>
public string Code { get; set; }
}
/// <summary>
/// 输出
/// </summary>
public class StockInfoOutput : StockInfoDto
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
/// <summary>
/// 物料Name
/// </summary>
public string MaterialName { get; set; }
}
}

+ 49
- 0
backend/BPA.MES.Base.Application/Services/StockInfoService/Services/IStockInfoService.cs View File

@@ -0,0 +1,49 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :料仓服务
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/7/17 15:32:17
/// 描 述 :
/// </summary>
public interface IStockInfoService
{
/// <summary>
/// 增加
/// </summary>
/// <returns></returns>
Task<bool> Add(StockInfoAddInput input);
/// <summary>
/// 移除
/// </summary>
/// <returns></returns>
Task<bool> Del(StockInfoDelInput input);
/// <summary>
/// 更新
/// </summary>
/// <returns></returns>
Task<bool> Update(StockInfoUpdateInput input);
/// <summary>
/// 不分页列表
/// </summary>
/// <returns></returns>
Task<List<StockInfoOutput>> List();
/// <summary>
/// 分页列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<StockInfoOutput>> PagedList(StockInfoQueryPageInput input);
/// <summary>
/// 下拉列表
/// </summary>
/// <returns></returns>
Task<dynamic> SelectList();
/// <summary>
/// 查询单条
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
Task<StockInfoOutput> Detail(string Id);

}
}

+ 123
- 0
backend/BPA.MES.Base.Application/Services/StockInfoService/Services/StockInfoService.cs View File

@@ -0,0 +1,123 @@
namespace BPA.MES.Base.Application.Services
{
/// <summary>
/// 名 称 :料仓服务
/// 创 建 人 :yangxiao
/// 创建时间 :2023/3/2 16:11:04
/// 描 述 :基础数据管理
/// </summary>
[ApiDescriptionSettings("基础数据管理", Order = 1, Name = "StockInfo", Tag = "料仓服务", KeepName = true, SplitCamelCase = true, KeepVerb = true)]
public class StockInfoService : IStockInfoService, ITransient, IDynamicApiController
{
private readonly ISqlSugarClient _dbContext;
public StockInfoService(ISqlSugarClient db)
{
_dbContext = db;
}
/// <summary>
/// 增加
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> Add(StockInfoAddInput input)
{
var r_entity = await _dbContext.Queryable<Pztj_StockInfoEntity>().FirstAsync(x => x.Name == input.Name || x.Code==input.Code);
if (r_entity != null)
{
throw Oops.Bah("名称或编码已存在!");
}
Pztj_StockInfoEntity entity = input.Adapt<Pztj_StockInfoEntity>();
return await _dbContext.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandIdentityIntoEntityAsync();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Del(StockInfoDelInput input)
{
var res = await _dbContext.Deleteable<Pztj_StockInfoEntity>().Where(x => x.Id == input.Id).ExecuteCommandHasChangeAsync();
return res;
}
/// <summary>
/// 详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<StockInfoOutput> Detail(string Id)
{
var entity = await _dbContext.Queryable<Pztj_StockInfoEntity>().FirstAsync(x => x.Id == Id);
StockInfoOutput output = entity.Adapt<StockInfoOutput>();
return output;
}
/// <summary>
/// 列表
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<List<StockInfoOutput>> List()
{
var entity = await _dbContext.Queryable<Pztj_StockInfoEntity>().ToListAsync();
List<StockInfoOutput> output = entity.Adapt<List<StockInfoOutput>>();
return output;
}
/// <summary>
/// 分页
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<SqlSugarPagedList<StockInfoOutput>> PagedList(StockInfoQueryPageInput input)
{
var entity = await _dbContext.Queryable<Pztj_StockInfoEntity>()
.LeftJoin<Pztj_MaterialsInfoEntity>((a,b)=>a.MaterialId==b.Id)
.Select((a,b)=>new StockInfoOutput
{
Id=a.Id.SelectAll(),
MaterialName= b.Name
})
.ToPagedListAsync(input.PageIndex, input.PageSize);
SqlSugarPagedList<StockInfoOutput> output = entity.Adapt<SqlSugarPagedList<StockInfoOutput>>();
return output;
}
/// <summary>
/// 下拉
/// </summary>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpGet]
public async Task<dynamic> SelectList()
{
var entity = await _dbContext.Queryable<Pztj_StockInfoEntity>().Select(x => new
{
key = x.Id,
value = x.Name
}).ToListAsync();
return entity;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
public async Task<bool> Update(StockInfoUpdateInput input)
{
var isExit =await _dbContext.Queryable<Pztj_StockInfoEntity>().Where(x => x.Id != input.Id && (x.Name==input.Name || x.Code==input.Code)).FirstAsync();
if (isExit != null)
{
throw Oops.Bah("名称或编码已存在!");
}
Pztj_StockInfoEntity entity = input.Adapt<Pztj_StockInfoEntity>();
var res = await _dbContext.Updateable(entity).IgnoreColumns(true).ExecuteCommandHasChangeAsync();
return res;
}
}
}

+ 94
- 0
backend/BPA.MES.Base.Application/Services/SystemService/Dtos/AccountInput.cs View File

@@ -0,0 +1,94 @@
/// <summary>
/// 名 称 :[账号信息]实体基础
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/1/3 10:21:42
/// 描 述 :
/// </summary>
namespace BPA.MES.Base.Application
{
/// <summary>
/// [账号信息]入参基础
/// </summary>
public class AccountInput
{
/// <summary>
/// 账号
/// </summary>
/// <example>admin</example>
public string Account { get; set; }
/// <summary>
/// 密码
/// </summary>
/// <example>e10adc3949ba59abbe56e057f20f883e</example>
public string Pwd { get; set; }
}
/// <summary>
/// [账号信息]添加入参
/// </summary>
public class AccountAddInput : AccountInput
{
/// <summary>
/// 员工编号
/// </summary>
public string TB_Employee_Id { get; set; }
}
/// <summary>
/// [账号信息]修改入参
/// </summary>
public class AccountUpdateInput : AccountInput
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
/// <summary>
/// 员工编号
/// </summary>
public string TB_Employee_Id { get; set; }
}
/// <summary>
/// [账号信息]修改密码
/// </summary>
public class AccountUpdatePwdInput: AccountInput
{
/// <summary>
/// 新密码
/// </summary>
public string NewPwd { get; set; }
}
/// <summary>
/// [账号信息]删除入参
/// </summary>
public class AccountDelInput
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
}
/// <summary>
/// [账号信息]普通查询入参
/// </summary>
public class AccountQueryInput
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
}
/// <summary>
/// [账号信息]分页查询入参
/// </summary>
public class AccountQueryPageInput : RequestPage
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
/// <summary>
/// 设备名称
/// </summary>
public string Name { get; set; }
}
}

+ 29
- 0
backend/BPA.MES.Base.Application/Services/SystemService/Dtos/AccountOutput.cs View File

@@ -0,0 +1,29 @@
namespace BPA.MES.Base.Application
{
/// <summary>
/// 名 称 :[账号信息]输出实体
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/1/3 10:22:37
/// 描 述 :
/// </summary>
public class AccountOutput
{
/// <summary>
/// 主键
/// </summary>
public string Id { get;set; }
/// <summary>
/// 账号
/// </summary>
public string Account { get; set; }
/// <summary>
/// 密码
/// </summary>
public string Pwd { get; set; }
/// <summary>
/// 员工id
/// </summary>
public string TB_Employee_Id { get; set; }

}
}

+ 134
- 0
backend/BPA.MES.Base.Application/Services/SystemService/Dtos/AuthorModuleInput.cs View File

@@ -0,0 +1,134 @@
///<summary>
/// 名 称 :[授权模块]实体基础
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/1/3 10:21:42
/// 描 述
/// </summary>
namespace BPA.MES.Base.Application
{
/// <summary>
/// [授权模块]入参基础
/// </summary>
public class AuthorModuleInput
{
/// <summary>
/// 子级列表
/// </summary>
public List<AuthorModuleInput>? Childrens { get; set; }
/// <summary>
/// 拥有权限
/// </summary>
public bool HasPermission { get; set; }
/// <summary>
/// 模块编号
/// </summary>
public string Id { get; set; }

/// <summary>
/// 类别 1:菜单,2:视图,3:功能
/// </summary>
public int Category { get; set; }

/// <summary>
/// 菜单打开方式 0:框架内嵌,1:新开页面
/// </summary>
public int OpenType { get; set; }

/// <summary>
/// 父级编号
/// </summary>
public string ParentId { get; set; }

/// <summary>
/// 名称
/// </summary>
public string Name { set; get; }

/// <summary>
/// 图标
/// </summary>
public string Icon { set; get; }

/// <summary>
/// 地址
/// </summary>
public string Url { set; get; }
/// <summary>
/// 排序码
/// </summary>
public int Sort { set; get; }
/// <summary>
/// 启用禁用
/// </summary>
public bool IsDisabled { get; set; }

/// <summary>
/// 子集
/// </summary>
public List<ModuleTreeInput>? Children { get; set; }
}
/// <summary>
/// [授权模块]添加入参
/// </summary>
public class AuthorModuleAddInput : AuthorModuleInput
{

}

/// <summary>
/// [授权模块]批量授权信息
/// </summary>
public class AuthorModulesAddInput
{
/// <summary>
/// 模板名称
/// </summary>
public string TemplateName { set; get; }

/// <summary>
/// 授权模块
/// </summary>
public List<string> ModuleIds { get; set; }
}

/// <summary>
/// [授权模块]修改入参
/// </summary>
public class AuthorModuleUpdateInput : AuthorModuleInput
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
}
/// <summary>
/// [授权模块]删除入参
/// </summary>
public class AuthorModuleDelInput
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
}
/// <summary>
/// [授权模块]普通查询入参
/// </summary>
public class AuthorModuleQueryInput
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
}
/// <summary>
/// [授权模块]分页查询入参
/// </summary>
public class AuthorModuleQueryPageInput : RequestPage
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
}
}

+ 70
- 0
backend/BPA.MES.Base.Application/Services/SystemService/Dtos/AuthorModuleItemInput.cs View File

@@ -0,0 +1,70 @@
///<summary>
/// 名 称 :[账号信息]实体基础
/// 创 建 人 :yangxiao
/// 创建时间 : 2023/1/3 10:21:42
/// 描 述
/// </summary>
namespace BPA.MES.Base.Application
{
/// <summary>
/// [账号信息]入参基础
/// </summary>
public class AuthorModuleItemInput
{
/// <summary>
/// 模板Id
/// </summary>
public string TB_TemplateId { get; set; }
/// <summary>
/// 模块Id
/// </summary>
public List<string> TB_ModuleIds { get; set; }
}
/// <summary>
/// [账号信息]添加入参
/// </summary>
public class AuthorModuleItemAddInput : AuthorModuleItemInput
{

}
/// <summary>
/// [账号信息]修改入参
/// </summary>
public class AuthorModuleItemUpdateInput : AuthorModuleItemInput
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
}
/// <summary>
/// [账号信息]删除入参
/// </summary>
public class AuthorModuleItemDelInput
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
}
/// <summary>
/// [账号信息]普通查询入参
/// </summary>
public class AuthorModuleItemQueryInput
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
}
/// <summary>
/// [账号信息]分页查询入参
/// </summary>
public class AuthorModuleItemQueryPageInput : RequestPage
{
/// <summary>
/// 主键
/// </summary>
public string? Id { get; set; }
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save