@@ -0,0 +1,3 @@ | |||
.vs | |||
obj | |||
bin |
@@ -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" | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} |
@@ -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> |
@@ -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 |
@@ -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> |
@@ -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; } | |||
} | |||
} |
@@ -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 | |||
} | |||
} |
@@ -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, | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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 | |||
{ | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -0,0 +1,13 @@ | |||
namespace BPA.MES.Base.Application.Entitys.Base | |||
{ | |||
/// <summary> | |||
/// 名 称 :订单服务 | |||
/// 创 建 人 :yangxiao | |||
/// 创建时间 : 2023/7/18 18:11:48 | |||
/// 描 述 : | |||
/// </summary> | |||
public class OrderInfoEntity | |||
{ | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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() | |||
}); | |||
} | |||
} | |||
} |
@@ -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; |
@@ -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"); | |||
} | |||
} |
@@ -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(); | |||
} | |||
} |
@@ -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;//状态改变 | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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"; | |||
} | |||
} |
@@ -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 "成功"; | |||
} | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; | |||
//} | |||
} | |||
} | |||
@@ -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; | |||
} | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; | |||
} | |||
} | |||
} |
@@ -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; | |||
} | |||
} | |||
} | |||
@@ -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); | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; | |||
} | |||
} | |||
} |
@@ -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; | |||
} | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; | |||
} | |||
} | |||
} | |||
@@ -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); | |||
} | |||
} | |||
@@ -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; } | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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; | |||
} | |||
} | |||
} |
@@ -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 | |||
{ | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -0,0 +1,12 @@ | |||
namespace BPA.MES.Base.Application.Services | |||
{ | |||
/// <summary> | |||
/// 名 称 :操作日志 | |||
/// 创 建 人 :yangxiao | |||
/// 创建时间 : 2023/7/20 15:17:24 | |||
/// 描 述 : | |||
/// </summary> | |||
public class OperLogService | |||
{ | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} | |||
@@ -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; | |||
} | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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; | |||
} | |||
} | |||
} | |||
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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; | |||
} | |||
} | |||
} |
@@ -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(); | |||
} | |||
} | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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; | |||
} | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |
@@ -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; } | |||
} | |||
} |