Commit 8795f8d1 by 熊鹏飞

Initial commit

parents
Showing with 4397 additions and 0 deletions

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hcxz.mes</groupId>
<artifactId>mes-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>mes-common</module>
<module>mes-ms-technology</module>
<module>mes-ms-system</module>
<module>mes-ms-equipment</module>
<module>mes-ms-model</module>
<module>mes-web-admin</module>
<module>mes-ms-product</module>
<module>mes-ms-ng</module>
<module>mes-generator</module>
<module>mes-ms-job</module>
<module>mes-third-call-api</module>
<module>mes-extension</module>
<module>mes-wms</module>
<module>mes-eam</module>
<module>mes-qms</module>
<module>mes-fixture</module>
</modules>
<distributionManagement>
<repository>
<id>hicxz-releases</id>
<name>Internal Releases</name>
<url>http://172.24.63.123:8080/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>hicxz-snapshots</id>
<name>Internal Releases</name>
<url>http://172.24.63.123:8080/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<properties>
<lombok.version>1.18.24</lombok.version>
<boot-dependencies.version>1.0.9-SNAPSHOT</boot-dependencies.version>
<hutool-all.version>5.8.34</hutool-all.version>
<hcxz-bom.version>1.0.0-SNAPSHOT</hcxz-bom.version>
<maven.compiler.target>8</maven.compiler.target>
<lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
<mapstruct.version>1.5.3.Final</mapstruct.version>
<spring-boot-starter-actuator.version>2.5.4</spring-boot-starter-actuator.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<revision>1.1.0-SNAPSHOT</revision>
<micrometer-registry-prometheus.version>1.7.3</micrometer-registry-prometheus.version>
<hcxz-base-framework.version>2.0.1-SNAPSHOT</hcxz-base-framework.version>
<maven.compiler.source>8</maven.compiler.source>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.hcxz</groupId>
<artifactId>hcxz-bom</artifactId>
<version>${hcxz-bom.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool-all.version}</version>
</dependency>
<dependency>
<groupId>com.hcxz.base</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${boot-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>${micrometer-registry-prometheus.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>${spring-boot-starter-actuator.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.2.7</version>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
</execution>
</executions>
<configuration>
<updatePomFile>true</updatePomFile>
<flattenMode>resolveCiFriendliesOnly</flattenMode>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.8.1</version>
<executions>
<execution>
<goals>
<goal>set</goal>
</goals>
<configuration>
<newVersion>1.1.0-SNAPSHOT</newVersion>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
# 默认忽略的文件
/shelf/
/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile default="true" name="Default" enabled="true" />
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="mes-fixture-api" />
<module name="mes-ms-product-api" />
<module name="mes-ms-equipment-api" />
<module name="mes-wms-api" />
<module name="mes-ms-ng-api" />
<module name="mes-qms-api" />
<module name="mes-ms-system-api" />
<module name="mes-third-call-api" />
<module name="mes-ms-job" />
<module name="mes-extension-controller" />
<module name="mes-ms-equipment-service" />
<module name="mes-extension-service" />
<module name="mes-extension-api" />
<module name="mes-eam-api" />
<module name="mes-ms-model-api" />
<module name="mes-ms-model-service" />
<module name="mes-web-admin" />
<module name="mes-generator" />
<module name="mes-ms-technology-api" />
<module name="mes-common" />
</profile>
<profile name="Annotation profile for mes-parent" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<processorPath useClasspath="false">
<entry name="$USER_HOME$/.m2/repository_eam/org/projectlombok/lombok/1.18.24/lombok-1.18.24.jar" />
<entry name="$USER_HOME$/.m2/repository_eam/org/projectlombok/lombok-mapstruct-binding/0.2.0/lombok-mapstruct-binding-0.2.0.jar" />
<entry name="$USER_HOME$/.m2/repository_eam/org/mapstruct/mapstruct-processor/1.5.3.Final/mapstruct-processor-1.5.3.Final.jar" />
<entry name="$USER_HOME$/.m2/repository_eam/org/mapstruct/mapstruct/1.5.3.Final/mapstruct-1.5.3.Final.jar" />
</processorPath>
<module name="mes-ms-ng-service" />
<module name="mes-fixture-service" />
<module name="mes-ms-system-service" />
<module name="mes-ms-technology-service" />
<module name="mes-eam-service" />
<module name="mes-qms-service" />
<module name="mes-wms-service" />
<module name="mes-ms-product-service" />
</profile>
</annotationProcessing>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/mes-common/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-common/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-eam/mes-eam-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-eam/mes-eam-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-eam/mes-eam-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-eam/mes-eam-service/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-eam/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-eam/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-extension/mes-extension-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-extension/mes-extension-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-extension/mes-extension-controller/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-extension/mes-extension-controller/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-extension/mes-extension-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-extension/mes-extension-service/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-extension/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-extension/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-fixture/mes-fixture-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-fixture/mes-fixture-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-fixture/mes-fixture-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-fixture/mes-fixture-service/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-fixture/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-fixture/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-generator/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-generator/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-equipment/mes-ms-equipment-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-equipment/mes-ms-equipment-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-equipment/mes-ms-equipment-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-equipment/mes-ms-equipment-service/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-equipment/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-equipment/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-job/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-job/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-model/mes-ms-model-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-model/mes-ms-model-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-model/mes-ms-model-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-model/mes-ms-model-service/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-model/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-model/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-ng/mes-ms-ng-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-ng/mes-ms-ng-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-ng/mes-ms-ng-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-ng/mes-ms-ng-service/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-ng/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-ng/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-product/mes-ms-product-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-product/mes-ms-product-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-product/mes-ms-product-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-product/mes-ms-product-service/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-product/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-product/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-system/mes-ms-system-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-system/mes-ms-system-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-system/mes-ms-system-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-system/mes-ms-system-service/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-system/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-system/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-technology/mes-ms-technology-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-technology/mes-ms-technology-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-technology/mes-ms-technology-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-technology/mes-ms-technology-service/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-technology/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-ms-technology/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-qms/mes-qms-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-qms/mes-qms-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-qms/mes-qms-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-qms/mes-qms-service/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-qms/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-qms/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-third-call-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-third-call-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-web-admin/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-web-admin/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-wms/mes-wms-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-wms/mes-wms-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-wms/mes-wms-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-wms/mes-wms-service/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-wms/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/mes-wms/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://maven.aliyun.com/repository/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="sun官方" project-jdk-type="JavaSDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings" defaultProject="true" />
</project>
\ No newline at end of file
node {
// 配置项
def remote1 = [:]
remote1.name = "test"
remote1.host = "124.71.33.17"
remote1.port = "23"
remote1.user = "root"
remote1.password = "Makeit@123"
remote1.allowAnyHosts = true
remote1.project = "/root/mes-web-admin"
// def remote2 = [:]
// remote2.name = "uat"
// remote2.host = "124.71.60.29"
// remote2.user = "root"
// remote2.password = "makeit@888"
// remote2.allowAnyHosts = true
//
// remote2.project = "/home/tianma"
//配置项
def remoteList = [remote1]
//配置项
def profileList = ["local"]
//配置项
def moduleList = ["top", "mes-web-admin"]
def remoteNameList = []
for (def a in remoteList) {
remoteNameList += a.name;
}
def module = "."
properties([
parameters([
gitParameter(branch: "",
branchFilter: "origin/(.*)",
defaultValue: "makeit",
description: "",
name: "branch",
quickFilterEnabled: false,
selectedValue: "NONE",
sortMode: "NONE",
tagFilter: "*",
type: "PT_BRANCH"),
choice(name: "profile", choices: profileList),
choice(name: "module", choices: moduleList),
choice(name: "server", choices: remoteNameList)
])
])
def branch = "${params.branch}"
def profile = "${params.profile}"
def moduleTmp = "${params.module}"
def server = "${params.server}"
echo branch
echo profile
echo moduleTmp
echo server
stage("Preparation") {
checkout([$class : "GitSCM",
branches : [[name: "${params.branch}"]], // 传入分支
doGenerateSubmoduleConfigurations: false,
extensions : [],
gitTool : "Default",
submoduleCfg : [],
userRemoteConfigs : scm.userRemoteConfigs // !重要,复用我们在 Jenkins 上 SCM 配置,如凭据、仓库地址
])
}
stage("Build") {
if ("top" != moduleTmp) {
module = moduleTmp
}
dir(module) {
sh "/dependencies/apache-maven-3.8.6/bin/mvn -s /dependencies/apache-maven-3.8.6/conf/settings.xml clean install -Dmaven.test.skip=true -U"
}
}
stage("Deploy") {
def remote = null;
for (def a in remoteList) {
if (a.name == server) {
remote = a
}
}
echo remote.name
def project = remote.project
if ("top" == moduleTmp) {
for (def a in moduleList) {
if ("top" != a) {
dir(a) {
sshPut remote: remote, from: "target/", filterRegex: /\.jar$/, into: project
sshCommand remote: remote, command: "mv " + project + "/target/*.jar " + project + "/tmp/" + "; rm -rf " + project + "/target"
}
sshPut remote: remote, from: "deploy.sh", into: project
sshCommand remote: remote, command: "chmod +x " + project + "/deploy.sh;" + project + "/deploy.sh " + project + " " + a + " " + profile
}
}
} else {
dir(module) {
sshPut remote: remote, from: "target/", filterRegex: /\.jar$/, into: project
sshCommand remote: remote, command: "mv " + project + "/target/*.jar " + project + "/tmp/" + "; rm -rf " + project + "/target"
}
sshPut remote: remote, from: "deploy.sh", into: project
sshCommand remote: remote, command: "chmod +x " + project + "/deploy.sh;" + project + "/deploy.sh " + project + " " + module + " " + profile
}
}
}
# 项目说明
MES项目
## 目录结构
- mes-common 通用模块,所有模块公用性内容统一在这个模块中实现
- constant 通用常量、枚举定义
- context 上下文工具类模块
- domain.entity 通用实体模块
- interceptor 拦截器模块
- request 通用请求入参模块
- service 通用业务处理模块
- util 工具类模块
- validation 校验模块
- mes-dock-api 对外api模块
- mes-generator 代码生成模块
- mes-mq-consumer 消费者模板
- consumer MQ模块
- kafka kafka模块
- mes-me-equipment 设备服务模块
- mes-ms-equipment-api 设备api模块,用于定义对其他模块提供的api接口定义
- mes-ms-equipment-service 设备业务模块
- mes-ms-job 定时任务模块
- task 定时任务
- mes-ms-model 基础模型模块
- mes-ms-model-api 基础模型api模块,用于定义对其他模块提供的api接口定义
- mes-ms-model-service 基础模型业务模块
- mes-ms-ng 不良服务模块
- mes-ms-ng-api 不良服务api模块,用于定义对其他模块提供的api接口定义
- mes-ms-ng-service 不良服务业务模块
- mes-ms-product 生产服务模块
- mes-ms-product-api 生产服务api模块,用于定义对其他模块提供的api接口定义
- mes-ms-product-service 生产服务业务模块
- mes-ms-system 系统管理模块
- mes-ms-system-api 系统管理api模块,用于定义对其他模块提供的api接口定义
- mes-ms-system-service 系统管理业务模块
- mes-ms-technology 工艺服务模块
- mes-ms-technology-api 工艺服务api模块,用于定义对其他模块提供的api接口定义
- mes-ms-technology-service 工艺服务业务模块
- mes-third-call-api 第三方接口模块
- mes-web-admin 项目启动模块
## 相关组件
- Redis
- RocketMQ
- Kafka
- 数据库
- OLTP:Mysql/Oracle
- OLAP:Doris
- Flink
\ No newline at end of file
DATE=$(date +%Y%m%d)
DIR=$1
JARFILE=$2.jar
echo $JARFILE
if [ ! -d $DIR/backup ];then
mkdir -p $DIR/backup
fi
cd $DIR
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
if [ -f $JARFILE ];then
mv $JARFILE backup/$JARFILE$DATE
fi
mv $DIR/tmp/$JARFILE ./
#nohup /usr/local/java/jdk1.8.0_202/bin/java -jar -Xms1024M -Xmx1024M -jar $JARFILE --spring.profiles.active=$3 > server.log 2>&1 &
nohup java -jar -Xms1024M -Xmx1024M -jar $JARFILE --spring.profiles.active=$3 > server.log 2>&1 &
#找出需要删除的备份
delfile=`ls -l -crt $DIR/backup/$JARFILE* | awk '{print $9 }' | head -1`
#判断现在的备份数量是否大于$number
count=`ls -l -crt $DIR/backup/$JARFILE* | awk '{print $9 }' | wc -l`
if [ $count -gt 3 ]
then
#删除最早生成的备份,只保留number数量的备份
rm $delfile
fi
[Unit]
Description=02-mes-admin
After=network.target
[Service]
#这里Type一定要写simple
Type=simple
#ExecStart和ExecStop分别在systemctl start和systemctl stop时候调动
ExecStart=java -jar -Dspring.profiles.active=jhn /home/mes/mes-web-admin.jar
StandardOutput=append:/home/mes/mes-admin.log
StandardError=append:/home/mes/mes-admin.log
[Install]
WantedBy=multi-user.target
\ No newline at end of file
数据库 mariadb
安装目录 /usr/bin/
数据目录 /var/lib/mysql/
启动 systemctl start mariadb
停止 systemctl stop mariadb
重启 systemctl restart mariadb
缓存 redis
启动 systemctl start redis-server
停止 systemctl stop redis-server
重启 systemctl restart redis-server
代理 nginx
启动 systemctl start nginx
停止 systemctl stop nginx
重启 systemctl restart nginx
消息队列 rocketmq
启动 systemctl start rocketmq-namesrv
systemctl start rocketmq-broker
停止 systemctl stop rocketmq-namesrv
systemctl stop rocketmq-broker
重启 systemctl restart rocketmq-namesrv
systemctl restart rocketmq-broker
后端
目录 /home/mes/
安装包 服务 脚本 日志
xxl-job-admin-2.2.0.jar 01-xxljob 01-xxljob.sh xxljob.log
mes-web-admin.jar 02-mes-admin 02-mes-admin.sh mes-admin.log
mes-webapi.jar 03-mes-webapi 03-mes-webapi.sh mes-webapi.log
mes-dock-api.jar 04-mes-dockapi 04-mes-dockapi.sh mes-dockapi.log
mes-ms-job.jar 05-mes-job 05-mes-job.sh mes-job.log
后端部署
替换/home/mes/里相应的安装包
启动
systemctl start 相应服务
或者./*.sh 相应脚本
一次性 启动所有 all.sh
停止
ps aux|grep jar 查看对应的进程号
kill -9 相应的进程号
前端部署
目录 /home/mes/ui/dist
保证 /home/mes/ui/dist要有index.html文件
\ No newline at end of file
[Unit]
Description=rmq_broker
After=network.target
[Service]
#这里Type一定要写simple
Type=simple
#ExecStart和ExecStop分别在systemctl start和systemctl stop时候调动
ExecStart=sh /root/rocketmq-all-5.3.0-bin-release/bin/mqbroker -c /root/rocketmq-all-5.3.0-bin-release/conf/broker.conf > /root/broker.log 2>&1 &
ExecStop=sh /root/rocketmq-all-5.3.0-bin-release/bin/mqshutdown broker
[Install]
WantedBy=multi-user.target
[Unit]
Description=rmq
After=network.target
[Service]
#这里Type一定要写simple
Type=simple
#ExecStart和ExecStop分别在systemctl start和systemctl stop时候调动
ExecStart=sh /root/rocketmq-all-5.3.0-bin-release/bin/mqnamesrv > /root/namesrv.log 2>&1 &
ExecStop=sh /root/rocketmq-all-5.3.0-bin-release/bin/mqshutdown namesrv
[Install]
WantedBy=multi-user.target
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
This diff could not be displayed because it is too large.
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hcxz.mes</groupId>
<artifactId>mes-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
</parent>
<groupId>com.hcxz.mes</groupId>
<artifactId>mes-common</artifactId>
<version>1.1.0-SNAPSHOT</version>
<name>mes-common</name>
<description>mes公共包</description>
<distributionManagement>
<repository>
<id>hicxz-releases</id>
<name>Internal Releases</name>
<url>http://172.24.63.123:8080/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>hicxz-snapshots</id>
<name>Internal Releases</name>
<url>http://172.24.63.123:8080/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.hcxz.base</groupId>
<artifactId>named-annotation</artifactId>
</dependency>
<dependency>
<groupId>com.hcxz.base</groupId>
<artifactId>named-interface</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool-all.version}</version>
</dependency>
<dependency>
<groupId>com.hcxz.base</groupId>
<artifactId>hcxz-base-framework-common</artifactId>
<version>${hcxz-base-framework.version}</version>
</dependency>
<dependency>
<groupId>com.hcxz.base</groupId>
<artifactId>hcxz-base-framework-api</artifactId>
<version>2.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.hcxz.base</groupId>
<artifactId>hcxz-base-framework-service</artifactId>
<version>2.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
</dependency>
</dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hcxz.mes</groupId>
<artifactId>mes-parent</artifactId>
<version>${revision}</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>mes-common</artifactId>
<packaging>jar</packaging>
<name>mes-common</name>
<description>mes公共包</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.hcxz.base</groupId>
<artifactId>named-annotation</artifactId>
</dependency>
<dependency>
<groupId>com.hcxz.base</groupId>
<artifactId>named-interface</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool-all.version}</version>
</dependency>
<dependency>
<groupId>com.hcxz.base</groupId>
<artifactId>hcxz-base-framework-common</artifactId>
<version>${hcxz-base-framework.version}</version>
</dependency>
<dependency>
<groupId>com.hcxz.base</groupId>
<artifactId>hcxz-base-framework-api</artifactId>
<version>2.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.hcxz.base</groupId>
<artifactId>hcxz-base-framework-service</artifactId>
<version>2.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
</dependency>
</dependencies>
<distributionManagement>
<!-- http://172.24.63.123:8080 -->
<repository>
<id>hicxz-releases</id>
<name>Internal Releases</name>
<url>http://172.24.63.123:8080/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>hicxz-snapshots</id>
<name>Internal Releases</name>
<url>http://172.24.63.123:8080/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>
package com.hcxz.baseframework.util.excel;
import cn.hutool.core.lang.Pair;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.read.builder.ExcelReaderBuilder;
import com.hcxz.baseframework.util.excel.listener.ReadAnalysisEventListener2;
import java.io.InputStream;
import java.util.List;
public final class ExcelUtils2 {
public static <T> Pair<Boolean, List<T>> analysisImport(InputStream inputStream, Class<T> headClazz) {
ReadAnalysisEventListener2<T> readAnalysisEventListener = new ReadAnalysisEventListener2<>(headClazz);
((ExcelReaderBuilder) EasyExcelFactory.read(inputStream, readAnalysisEventListener).headRowNumber(2)).sheet().doRead();
return new Pair(readAnalysisEventListener.isHasError(), readAnalysisEventListener.getValidRow());
}
public static <T> Pair<Boolean, List<T>> analysisImport(InputStream inputStream, Class<T> headClazz, Integer headRowNumber) {
if (headRowNumber == null) {
return analysisImport(inputStream, headClazz);
} else {
ReadAnalysisEventListener2<T> readAnalysisEventListener = new ReadAnalysisEventListener2<>(headClazz);
((ExcelReaderBuilder) EasyExcelFactory.read(inputStream, readAnalysisEventListener).headRowNumber(headRowNumber)).sheet().doRead();
return new Pair(readAnalysisEventListener.isHasError(), readAnalysisEventListener.getValidRow());
}
}
private ExcelUtils2() {
throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");
}
}
\ No newline at end of file
package com.hcxz.mes.common.annotation;
import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.hcxz.mes.common.util.BigDecimalSerialize;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* bigDecimal 格式化注解
*
*
* ex: JacksonBigDecimal(pattern = "#.##")
* 保留两位小数
*
* @author zengyt
* @version 1.0
* @date 2023/2/7 0007 14:19
*/
@Retention(RetentionPolicy.RUNTIME)
@JacksonAnnotationsInside
@JsonSerialize(using = BigDecimalSerialize.class)
public @interface JacksonBigDecimal {
/**
* BigDecimal格式,格式标准请参考{@link java.text.DecimalFormat}
*/
String pattern() default "";
}
//package com.hcxz.mes.common.config;
//
//
//import com.fasterxml.jackson.databind.ObjectMapper;
//import lombok.Data;
//import org.apache.commons.lang3.StringUtils;
//import org.redisson.Redisson;
//import org.redisson.api.RedissonClient;
//import org.redisson.config.Config;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Primary;
//
//import java.io.IOException;
//
//
//@Data
//@Configuration
////@ConfigurationProperties(prefix = "spring.redis")
//public class RedissonConfig {
//
// @Autowired
// private ObjectMapper objectMapper;
//
// /**
// * 地址
// */
//
// @Value("${spring.redis.host}")
// private String address;
// /**
// * 连接断开时间
// */
// private int connectTimeout = 10000;
// /**
// * 超时时间
// */
// private int timeout = 10000;
// /**
// * 密码
// */
// @Value("${spring.redis.AUTH}")
// private String password;
// /**
// * 数据库
// */
// @Value("${spring.redis.database}")
// private int database;
//
// /**
// * 单节点模式
// *
// * @return
// * @throws IOException
// */
// @Bean(destroyMethod = "shutdown")
//// @Primary
// public RedissonClient getClient() {
//
// Config config = new Config();
// String[] addressStr = address.split(",");
// //单机配置
// if (addressStr.length == 1) {
// config.useSingleServer().setAddress(address)
// .setDatabase(database)
// .setTimeout(timeout)
// .setConnectionMinimumIdleSize(12)
// .setConnectTimeout(connectTimeout);
// // 集群配置
// } else {
//
// config.useClusterServers().
// addNodeAddress(addressStr).
// setTimeout(timeout).
// setConnectTimeout(connectTimeout).
// setPassword(password);
// }
//
// if (!StringUtils.isEmpty(password)) {
// config.useSingleServer().setPassword(password);
// }
//
//// Codec codec = new JsonJacksonCodec(objectMapper);
//// config.setCodec(codec);
//
// return Redisson.create(config);
// }
//
//}
package com.hcxz.mes.common.config;
import org.springframework.boot.autoconfigure.task.TaskExecutionProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import javax.annotation.Resource;
@Configuration
public class ThreadPoolConfig {
@Resource
TaskExecutionProperties taskExecutionProperties;
@Bean
public ThreadPoolTaskExecutor threadPoolTaskExecutor(){
TaskExecutionProperties.Pool pool = taskExecutionProperties.getPool();
String threadNamePrefix = taskExecutionProperties.getThreadNamePrefix();
ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
// 设置线程前缀
threadPoolTaskExecutor.setThreadNamePrefix(threadNamePrefix);
threadPoolTaskExecutor.setAllowCoreThreadTimeOut(pool.isAllowCoreThreadTimeout());
threadPoolTaskExecutor.setMaxPoolSize(pool.getMaxSize());
threadPoolTaskExecutor.setCorePoolSize(pool.getCoreSize());
threadPoolTaskExecutor.setQueueCapacity(pool.getQueueCapacity());
return threadPoolTaskExecutor;
}
}
package com.hcxz.mes.common.constant;
public class DictConstants {
public final static String PLAN_STOP_CODE = "plan_stop_code";
public final static String OEE_LOSS_CODE = "oee_loss_code";
}
package com.hcxz.mes.common.constant;
import java.util.Arrays;
import java.util.List;
/**
* 系统常量
*
* @author zengyt
* @version 1.0
* @date 2022/11/6 0006 11:34
*/
public interface MesConstants {
/**
* 头信息:工号
*/
String HEADER_STAFF_NO = "ss_staffNo";
/**
* 头信息:工号名称
*/
String HEADER_STAFF_NAME = "ss_name";
/**
* 头信息:用户id
*/
String HEADER_USER_ID = "ss_userId";
//是否删除 0-未删除
String NO_DELETE = "0";
//是否删除 1-删除
String YES_DELETE = "1";
/**
* 是否替代料 0否
*/
String NO_LAC = "0";
/**
* 是否替代料 1是
*/
String YES_LAC = "1";
/**
* 通用 0否
*/
String COMMON_NO = "0";
/**
* 通用 1是
*/
String COMMON_YES = "1";
/**
* 启用状态:启用
*/
String ENABLE = "1";
/**
* 启用状态:禁用
*/
String DISABLE = "0";
/**
* 启用状态:启用
*/
int IS_ENABLE = 1;
/**
* 启用状态:禁用
*/
int IS_DISABLE = 0;
/**
* 设备通道只获取化成,分容的工序
*/
String PROCESS_CODE = "HCD,QRC";
class Datasource {
/**
* 数仓
*/
public static final String CLICK_HOUSE = "tsdb";
}
/**
* 工单状态
*
* @author zengyt
* @date 2022/11/26 0026 14:53
* @since 1.0.0
*/
class WorkOrderStatus {
/**
* 新建
*/
public static final String NEW_BUILD = "1";
/**
* 下达
*/
public static final String RELEASE = "2";
/**
* 暂停
*/
public static final String PAUSE = "3";
/**
* 关闭
*/
public static final String CLOSE = "4";
public static final String COMPLETE = "5";
public static final String CANCEL = "9";
}
/**
* 工单类型
*
* @author zengyt
* @date 2022/12/21 0021 10:22
* @since 1.0.0
*/
class WorkOrderType {
/**
* 标准生产订单
*/
public static final String PRODUCT = "1";
/**
* C样生产订单
*/
public static final String C_PRODUCT = "2";
/**
* 验证生产订单
*/
public static final String VERIFY_PRODUCT = "3";
/**
* 返工工单
*/
public static final String REWORK = "4";
}
/**
* 工单返工类型
*
* @author zengyt
* @date 2022/12/21 0021 10:22
* @since 1.0.0
*/
class WorkOrderReworkType {
/**
* 返工
*/
public static final String REWORK = "1";
/**
* 客退
*/
public static final String CUSTOMER_RETURN = "2";
}
/**
* 载具状态
*
* @author zengyt
* @date 2022/11/26 0026 14:53
* @since 1.0.0
*/
class ContainerStatus {
/**
* 正常
*/
public static final String NORMAL = "0";
/**
* 使用
*/
public static final String USE = "1";
/**
* 在仓
*/
public static final String WAREHOUSE = "2";
/**
* 维修
*/
public static final String REPAIR = "3";
/**
* 报废
*/
public static final String SCRAPPED = "4";
}
/**
* bom/配方初始版本
*/
int INIT_VERSION = 1;
/**
* 装箱步骤
*/
//装箱
String PACK_NEXT_PACKING = "packing";
//关箱
String PACK_NEXT_CLOSE = "close";
//二次复核
String PACK_NEXT_RECHECK = "recheck";
/**
* 工位使用状态
* used-使用中,unused-未使用
*/
String STATION_STATUS_USED = "used";
String STATION_STATUS_UNUSED = "unused";
/**
* 装箱打印公司地址
*/
String ADDRESS = "厦门市同安区同翔产业园12-12洪塘北片区";
/**
* 装箱打印公司名称
*/
String COMPANY_NAME = "厦门海辰储能科技股份有限公司";
/**
* 装箱打印公司地址(重庆)
*/
String CQ_ADDRESS = "重庆市铜梁区蒲吕街道产业大道57号";
/**
* 装箱打印公司名称(重庆)
*/
String CQ_COMPANY_NAME = "重庆海辰储能科技有限公司";
/**
* 批次运行状态缺参缺料
*/
class DataMissStatus {
/**
* 缺参
*/
public static final int MISS_PARAM = 1;
/**
* 缺料
*/
public static final int LACK_MATERIAL = 2;
/**
* 缺参缺料
*/
public static final int MISS_ALL = 3;
}
/**
* 批次工艺参数表
* ng结果
*/
class NgResult {
public static final String OK = "OK";
public static final String PL = "PL";
}
/**
* 工单设备下达提示状态
*
* @author zengyt
* @date 2022/12/16 0016 13:59
* @since 1.0.0
*/
class WorkorderRelease {
/**
* 无
*/
public static final String INFO = "0";
/**
* 提醒
*/
public static final String WARN = "1";
/**
* 异常
*/
public static final String ERROR = "2";
}
/**
* 工单设备下达提示状态
*
* @author zengyt
* @date 2022/12/16 0016 13:59
* @since 1.0.0
*/
class PairRecordStatus {
/**
* 配对
*/
public static final Integer PAIR = 1;
/**
* 绑定
*/
public static final Integer BIND = 2;
/**
* 解绑
*/
public static final Integer UNBIND = 3;
}
/**
* 顶盖码规则类型
*
* @author zengyt
* @date 2023/1/31 0031 13:54
* @since 1.0.0
*/
class CoverGenerateRuleType {
/**
* 设备
*/
public static final String EQ = "EQ";
/**
* 工段
*/
public static final String LINE = "LINE";
/**
* 产品
*/
public static final String PN = "PN";
}
/**
* 系统标识
*/
String SYSTEM_ID = "L6";
String USER_DEFAULT_PASSWORD = "123456";
/**
* @description:动态k值规则类型
* @author: lixd
* @return:
* @date: 2023/4/20 16:25
**/
class RuleType {
//首次
public static final String FIRST = "1";
//复测
public static final String RETEST = "2";
}
//入库校验工序
List<String> PROCESSS_STOCKCREATECHECK = Arrays.asList(
"CMQ",
"AMQ",
"BJB",
"AMP",
"AFT",
"CFT"
);
/**
* 没有工步的工步号
*/
public static final String EMPTY_STEP_CODE = "EMPTY_STEP_CODE";
//卷绕工序注销不可用
List<String> CANCEL_DISABLE_PROCESS = Arrays.asList("JRD", "RLJ");
//卷绕、超声波、软连接工序,复投按钮不可用
List<String> RESUMPTION_DISABLE_PROCESS = Arrays.asList("JRD", "CSH", "RLJ");
//卷绕、超声波、软连接工序不能作为转序的目的工序
List<String> REORDER_DISABLE_PROCESS = Arrays.asList("JRD", "CSH", "RLJ");
int MATERIAL_LINESIDE_OVERDUE = 118;
String MATERIAL_MIX_OVERDUE = "MATERIAL_MIX_OVERDUE";
public static final String ELA_PROCESS = "ela_process";
public final String HR_APP_ID = "9BDE1BF7-8E71-49C5-BAE3-C462267BDEB8";
public static final String SYSTEM_CODE_CM1 = "CM1";
public static final String SYSTEM_CODE_M2 = "M2";
public static final String SYSTEM_CODE_M3 = "M3";
}
package com.hcxz.mes.common.domain;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
/**
* Created by hocgin on 2020/3/31.
* email: hocgin@gmail.com
*
* @author hocgin
*/
@Getter
@Setter
@Accessors(chain = true)
public class CompleteRo {
private Integer pageSize = 30;
}
package com.hcxz.mes.common.domain;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
/**
* @Description: excel错误信息
* @Author: lixd
* @CreateTime: 2023-03-22 14:33
*/
@Data
public class ExcelErrorMsg {
@ColumnWidth(value = 50)
@ExcelProperty(value = "错误信息")
private String errorMsg;
}
package com.hcxz.mes.common.domain;
import com.hcxz.mes.common.enums.TargetValueDataTypeEnum;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
@Data
@Builder
public class FromToTime {
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 日期
*/
private String date;
/**
* 对应目标值中的类型
* */
private TargetValueDataTypeEnum dataType;
/**
* 年、季度、月、周、日的值
* */
private String dataValue;
}
package com.hcxz.mes.common.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* Created by hocgin on 2022/11/29
* email: hocgin@gmail.com
*
* @author hocgin
*/
@Data
@ApiModel
public class ImportFileRo {
@NotEmpty(message = "200065")
@ApiModelProperty("文件ID")
private String fid;
}
package com.hcxz.mes.common.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.util.Map;
/**
* Created by hocgin on 2022/11/29
* email: hocgin@gmail.com
*
* @author hocgin
*/
@Setter
@Getter
@Accessors(chain = true)
@ApiModel
public class ImportResp {
@ApiModelProperty("处理结果")
private Boolean result = Boolean.TRUE;
@ApiModelProperty("失败文件ID")
private String failFileId;
@ApiModelProperty("额外参数")
private Map<String, String> extraData;
}
package com.hcxz.mes.common.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
@Data
@Accessors(chain = true)
public class KeyTitleTuple {
@ApiModelProperty(value = "字段编码")
private String key;
@ApiModelProperty(value = "字段名称")
private String title;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "统计开始时间")
private Date dataStartTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "统计结束时间")
private Date dataEndTime;
}
package com.hcxz.mes.common.domain;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* Created by hocgin on 2022/11/28
* email: hocgin@gmail.com
*
* @author hocgin
*/
@Data
@Accessors(chain = true)
public class KeyValue {
private String key;
private Object value;
}
package com.hcxz.mes.common.domain;
import com.alibaba.fastjson2.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
/**
* 分页列表基础返回类
*
* @author zengyt
* @version 1.0
* @date 2022/8/15 0015 10:40
*/
@Getter
@Setter
public class PageBaseResp implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(name = "主键ID", notes = "主键ID")
private Long id;
@ApiModelProperty(name = "创建人工号", notes = "创建人工号")
private String createBy;
@ApiModelProperty(name = "创建人名称", notes = "创建人名称")
private String createByName;
@JSONField(format="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "创建时间", notes = "创建时间")
private Date createTime;
@ApiModelProperty(name = "修改人工号", notes = "修改人工号")
private String updateBy;
@ApiModelProperty(name = "修改人名称", notes = "修改人名称")
private String updateByName;
@JSONField(format="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "修改时间", notes = "修改时间")
private Date updateTime;
}
package com.hcxz.mes.common.domain;
import com.hcxz.common.domain.dto.resp.PageData;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* Created by hocgin on 2022/11/28
* email: hocgin@gmail.com
*
* @author hocgin
*/
@Data
@Accessors(chain = true)
@ApiModel
public class PageDataExt<E, T> implements Serializable {
@ApiModelProperty("附加信息")
private E extResult;
@ApiModelProperty("分页数据")
private PageData<T> pageResult;
}
package com.hcxz.mes.common.domain;
import com.hcxz.mes.common.request.ExportHeadReq;
import com.hcxz.mes.common.request.PageRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel
public class PageReq extends ExportHeadReq {
@ApiModelProperty("分页条件")
private PageRequest pageReq;
}
package com.hcxz.mes.common.domain.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class BaseInfoVO {
/**
* 工序
*/
private PjProcessVO process;
/**
* 设备
*/
private EqEquipmentVO eqEquipment;
/**
* 过程段
*/
private DmFactoryModelVO hierarchy;
/**
* 车间
*/
private DmFactoryModelVO workshop;
/**
* 厂区
*/
private DmFactoryModelVO factory;
/**
* 排班信息
*/
private CalSchedulingResultView scheduling;
}
package com.hcxz.mes.common.domain.dto;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.util.Date;
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class CacheParam {
/**
* 用于排序(OCV3存在createTime相同的情况)
*/
@JSONField(serialize = false)
private Integer index;
private String paramCode;
private String paramValue;
private Date createTime;
}
package com.hcxz.mes.common.domain.dto;
import lombok.Data;
import java.util.Date;
@Data
public class CalSchedulingResultVO {
private Long id;
/**
* 日期
*/
private Date schedulingDate;
/**
* 班组id
*/
private Long teamId;
/**
* 班次id
*/
private Long shiftId;
/**
* 开始时间
*/
private String startTime;
/**
* 结束时间
*/
private String endTime;
/**
* 是否休息
*/
private Boolean isDayOff;
/**
* 过程段编码
*/
private String processSegmentCode;
/**
* 实际开始时间
*/
private Date realStartTime;
/**
* 实际结束时间
*/
private Date realEndTime;
}
\ No newline at end of file
package com.hcxz.mes.common.domain.dto;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class CalSchedulingResultView {
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date schedulingdate;
private String shift;
private String team;
}
package com.hcxz.mes.common.domain.dto;
import lombok.Data;
@Data
public class CalShiftVO {
private Long id;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
}
\ No newline at end of file
package com.hcxz.mes.common.domain.dto;
import lombok.Data;
@Data
public class CalTeamVO {
private Long id;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
}
\ No newline at end of file
package com.hcxz.mes.common.domain.dto;
import com.hcxz.mes.common.domain.KeyTitleTuple;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
public class DateTimeRangeHeader extends KeyTitleTuple {
/**
* 对应目标值中的类型枚举 {@link TargetValueDataTypeEnum)}
*/
private Integer dataType;
}
package com.hcxz.mes.common.domain.dto;
import lombok.Data;
/**
* 工厂模型;- 工厂模型
*/
@Data
public class DmFactoryModelVO {
private Long id;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
/**
* 类型;0\1\2\3 集团\工厂\车间\过程段
*/
private String type;
/**
* 层级
*/
private Long rank;
/**
* 序号
*/
private Long orderNo;
/**
* 父节点ID
*/
private String parentCode;
}
\ No newline at end of file
package com.hcxz.mes.common.domain.dto;
import lombok.Data;
import java.util.Date;
@Data
public class EqEquipmentVO {
private Long id;
/**
* 类型id
*/
private Long typeId;
/**
* 编码
*/
private String code;
/**
* 名称
*/
private String name;
/**
* 所属模型节点code
*/
private String factoryModelCode;
/**
* 资产编号
*/
private String resourceCode;
/**
* 设备规格
*/
private String equipmentSpec;
/**
* 设备厂家
*/
private String equipmentFact;
/**
* 入厂时间
*/
private Date entryDate;
/**
* 生产日期
*/
private Date madeDate;
/**
* 是否可用
*/
private Boolean isEnable;
}
\ No newline at end of file
package com.hcxz.mes.common.domain.dto;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class FourMinPpmDTO {
private Integer dateHour;
private Integer bucketNum;
private BigDecimal monitorPpm;
private String equipmentCode;
}
package com.hcxz.mes.common.domain.dto;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* 缓存至redis中的对象
*/
@Data
@ApiModel(value = "装箱-装箱层数对于电芯信息(缓存)", description = "装箱-装箱层数对于电芯信息(缓存)")
@AllArgsConstructor
@NoArgsConstructor
public class LayerNumInfoDTO {
@ApiModelProperty("二次复核(0-未校验,1-已校验)")
private String checkStatus = "0";
/**
* 格式:电芯码&校验状态
*/
@ApiModelProperty("电芯信息")
private List<String> items = new ArrayList<>();
/**
* 格式:电芯码&错误原因
*/
@ApiModelProperty("校验错误电芯信息")
private List<String> errorItems = new ArrayList<>();
/**
* 格式:电芯码&校验状态
*/
@ApiModelProperty("电芯信息")
@JSONField(serialize = false)
private List<ItemDTO> itemDTOs = new ArrayList<>();
/**
* 格式:电芯码&错误原因
*/
@ApiModelProperty("校验错误电芯信息")
@JSONField(serialize = false)
private List<ErrorItemDTO> errorItemDTOs = new ArrayList<>();
@Data
@AllArgsConstructor
public static class ItemDTO {
@ApiModelProperty("电池条码")
private String productBatchNo;
@ApiModelProperty("二次复核(0-未校验,1-已校验)")
private String checkStatus;
}
@Data
@AllArgsConstructor
public static class ErrorItemDTO {
@ApiModelProperty("电池条码")
private String productBatchNo;
@ApiModelProperty("错误原因")
private String msg;
}
/**
* @param recheckFlag true 重新进行二次校验
*/
public void initDTO(boolean recheckFlag) {
itemDTOs = new ArrayList<>(items.size());
errorItemDTOs = new ArrayList<>(items.size());
if (recheckFlag) {
//重新进行二次校验,初始化【校验错误电芯信息】
errorItems = new ArrayList<>(items.size());
}
items.forEach(item -> {
List<String> infos = StrUtil.split(item, CharUtil.AMP);
LayerNumInfoDTO.ItemDTO itemDTO = new LayerNumInfoDTO.ItemDTO(infos.get(0), infos.get(1));
itemDTOs.add(itemDTO);
if (recheckFlag && !StrUtil.equals("1", infos.get(1))) {
LayerNumInfoDTO.ErrorItemDTO errorItemDTO = new LayerNumInfoDTO.ErrorItemDTO(infos.get(0), "电芯未复核");
errorItems.add(infos.get(0) + CharUtil.AMP + "电芯未复核");
errorItemDTOs.add(errorItemDTO);
}
});
if (recheckFlag) {
//重新进行二次校验,errorItemDTOs已经由items中派生出,不需要从errorItems中解析errorItemDTOs。
return;
}
errorItems.forEach(item -> {
List<String> infos = StrUtil.split(item, CharUtil.AMP);
LayerNumInfoDTO.ErrorItemDTO errorItemDTO = new LayerNumInfoDTO.ErrorItemDTO(infos.get(0), infos.get(1));
errorItemDTOs.add(errorItemDTO);
});
}
public void addErrorItem(String productBatchNo, String errorMsg) {
String errorItem = productBatchNo + CharUtil.AMP + errorMsg;
errorItems.add(errorItem);
checkStatus = "0";
}
/**
* @param productBatchNo
* @param changeCheckStatus true 需要变更二次复核状态
* @return
*/
public boolean removeItem(String productBatchNo, boolean changeCheckStatus) {
String prefix = productBatchNo + CharUtil.AMP;
boolean result = items.removeIf(item -> StrUtil.startWith(item, prefix));
if (!changeCheckStatus) {
return result;
}
if (ObjectUtil.isEmpty(items)) {
checkStatus = "1";
return result;
}
if (result) {
checkStatus = "0";
//由已二次复核变为未二次复核
replaceAllEndWith(CharUtil.AMP + "1", CharUtil.AMP + "0");
}
return result;
}
public boolean layerNumCheckStatus(String checkStatus) {
boolean empty = ObjectUtil.isEmpty(items);
if (StrUtil.equals(checkStatus, "1")) {
//未装电芯或者电芯已全部二次复核通过
return empty || StrUtil.equals(this.checkStatus, checkStatus);
}
return !empty && StrUtil.equals(this.checkStatus, checkStatus);
}
/**
* 替换对应的后缀,只改变二次复核状态
*
* @param suffix – 结尾字符串
* @param replacement 被替换的字符串
* @return
*/
public boolean replaceAllEndWith(String suffix, String replacement) {
if (ObjectUtil.isEmpty(items)) {
return false;
}
int size = items.size();
boolean result = false;
for (int index = 0; index < size; index++) {
String s = items.get(index);
if (StrUtil.endWith(s, suffix)) {
items.set(index, StrUtil.replace(s, suffix, replacement));
result = true;
}
}
return result;
}
}
package com.hcxz.mes.common.domain.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @author: lintt
* @since: 2023/9/7 09:01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MaterialLinesideOverdueDTO {
private Long id;
private Date oprTime;
}
package com.hcxz.mes.common.domain.dto;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class OeeDataJob {
private Boolean checkFlag;
private List<String> dateStr;
private List<LocalDateTime> dateList;
}
package com.hcxz.mes.common.domain.dto;
import lombok.Data;
@Data
public class PjProcessVO {
private Long id;
/**
* 工序编码
*/
private String processCode;
/**
* 工序名称
*/
private String processName;
private Long orderNo;
}
\ No newline at end of file
package com.hcxz.mes.common.domain.dto;
import lombok.Data;
/**
* @author: lintt
* @since: 2023/9/25 15:37
*/
@Data
public class WorkLicenseKeyVO {
private int code;
private String msg;
private String data;
}
\ No newline at end of file
package com.hcxz.mes.common.domain.dto;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: mjj
* @create: 2023-07-12
* @Version 1.0
**/
@Data
public class WorkLicenseVO {
public static final String HAS_DEPART = "5";
private int code;
private String msg;
private List<WorkLicenseInfo> data;
@Data
public static class WorkLicenseInfo{
//记录ID
private int RecordId;
//门禁卡号
private String WorkCardNumber;
//工号
private String WorkNumber;
//姓名
private String EmployeeName;
//1 在职 5离职
private String Userstatus;
private List<licenseInfo> CertificateList;
}
@Data
public static class licenseInfo{
//权限等级
private String AuthorityLevel;
//资格证过期日期
private String ExpirationDate;
//资格证编码
private String CertificateCode;
//是否有效
private String IsValid;
}
}
package com.hcxz.mes.common.domain.dto;
import java.util.Date;
/**
* xxl-job info
*
* @author xuxueli 2016-1-12 18:25:49
*/
public class XxlJobInfo {
private Integer id; // 主键ID
private int jobGroup; // 执行器主键ID
private String jobCron; // 任务执行CRON表达式
private String jobDesc;
private Date addTime;
private Date updateTime;
private String author; // 负责人
private String alarmEmail; // 报警邮件
private String executorRouteStrategy; // 执行器路由策略
private String executorHandler; // 执行器,任务Handler名称
private String executorParam; // 执行器,任务参数
private String executorBlockStrategy; // 阻塞处理策略
private int executorTimeout; // 任务执行超时时间,单位秒
private int executorFailRetryCount; // 失败重试次数
private String glueType; // GLUE类型 #com.xxl.job.core.glue.GlueTypeEnum
private String glueSource; // GLUE源代码
private String glueRemark; // GLUE备注
private Date glueUpdatetime; // GLUE更新时间
private String childJobId; // 子任务ID,多个逗号分隔
private int triggerStatus; // 调度状态:0-停止,1-运行
private long triggerLastTime; // 上次调度时间
private long triggerNextTime; // 下次调度时间
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public int getJobGroup() {
return jobGroup;
}
public void setJobGroup(int jobGroup) {
this.jobGroup = jobGroup;
}
public String getJobCron() {
return jobCron;
}
public void setJobCron(String jobCron) {
this.jobCron = jobCron;
}
public String getJobDesc() {
return jobDesc;
}
public void setJobDesc(String jobDesc) {
this.jobDesc = jobDesc;
}
public Date getAddTime() {
return addTime;
}
public void setAddTime(Date addTime) {
this.addTime = addTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getAlarmEmail() {
return alarmEmail;
}
public void setAlarmEmail(String alarmEmail) {
this.alarmEmail = alarmEmail;
}
public String getExecutorRouteStrategy() {
return executorRouteStrategy;
}
public void setExecutorRouteStrategy(String executorRouteStrategy) {
this.executorRouteStrategy = executorRouteStrategy;
}
public String getExecutorHandler() {
return executorHandler;
}
public void setExecutorHandler(String executorHandler) {
this.executorHandler = executorHandler;
}
public String getExecutorParam() {
return executorParam;
}
public void setExecutorParam(String executorParam) {
this.executorParam = executorParam;
}
public String getExecutorBlockStrategy() {
return executorBlockStrategy;
}
public void setExecutorBlockStrategy(String executorBlockStrategy) {
this.executorBlockStrategy = executorBlockStrategy;
}
public int getExecutorTimeout() {
return executorTimeout;
}
public void setExecutorTimeout(int executorTimeout) {
this.executorTimeout = executorTimeout;
}
public int getExecutorFailRetryCount() {
return executorFailRetryCount;
}
public void setExecutorFailRetryCount(int executorFailRetryCount) {
this.executorFailRetryCount = executorFailRetryCount;
}
public String getGlueType() {
return glueType;
}
public void setGlueType(String glueType) {
this.glueType = glueType;
}
public String getGlueSource() {
return glueSource;
}
public void setGlueSource(String glueSource) {
this.glueSource = glueSource;
}
public String getGlueRemark() {
return glueRemark;
}
public void setGlueRemark(String glueRemark) {
this.glueRemark = glueRemark;
}
public Date getGlueUpdatetime() {
return glueUpdatetime;
}
public void setGlueUpdatetime(Date glueUpdatetime) {
this.glueUpdatetime = glueUpdatetime;
}
public String getChildJobId() {
return childJobId;
}
public void setChildJobId(String childJobId) {
this.childJobId = childJobId;
}
public int getTriggerStatus() {
return triggerStatus;
}
public void setTriggerStatus(int triggerStatus) {
this.triggerStatus = triggerStatus;
}
public long getTriggerLastTime() {
return triggerLastTime;
}
public void setTriggerLastTime(long triggerLastTime) {
this.triggerLastTime = triggerLastTime;
}
public long getTriggerNextTime() {
return triggerNextTime;
}
public void setTriggerNextTime(long triggerNextTime) {
this.triggerNextTime = triggerNextTime;
}
}
package com.hcxz.mes.common.domain.dto.convert;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.hcxz.mes.common.exception.BusinessExceptionCode;
/**
* 阴阳极类型
*/
public class ExtTypeExcelConverter implements Converter<String> {
@Override
public Class<?> supportJavaTypeKey() {
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public String convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
String value = cellData.getStringValue();
String resp = null;
switch (value) {
case "阴极":
resp = "1";
break;
case "阳极":
resp = "2";
break;
case "裸电芯":
resp = "3";
break;
default:
}
return resp;
}
@Override
public WriteCellData<String> convertToExcelData(String value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
WriteCellData writeCellData = null;
switch (value) {
case "1":
writeCellData = new WriteCellData("阴极");
break;
case "2":
writeCellData = new WriteCellData("阳极");
break;
case "3":
writeCellData = new WriteCellData("裸电芯");
break;
default:
throw BusinessExceptionCode.COMMON_FILE_FIELD_ERROR.exception();
}
return writeCellData;
}
}
package com.hcxz.mes.common.domain.dto.convert;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.hcxz.mes.common.exception.BusinessExceptionCode;
/**
* 注液前/后
*/
public class IsYzdExcelConverter implements Converter<String> {
@Override
public Class<?> supportJavaTypeKey() {
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public String convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
String value = cellData.getStringValue();
String resp = null;
switch (value) {
case "注液前":
resp = "0";
break;
case "注液后":
resp = "1";
break;
default:
}
return resp;
}
@Override
public WriteCellData<String> convertToExcelData(String value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
WriteCellData writeCellData = null;
switch (value) {
case "0":
writeCellData = new WriteCellData("注液前");
break;
case "1":
writeCellData = new WriteCellData("注液后");
break;
default:
throw BusinessExceptionCode.COMMON_FILE_FIELD_ERROR.exception();
}
return writeCellData;
}
}
package com.hcxz.mes.common.domain.dto.convert;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.hcxz.mes.common.exception.BusinessExceptionCode;
/**
* 是否 0-否 1-是
*
* @author hocgin
*/
public class MaterialClassExcelConverter implements Converter<String> {
@Override
public Class<?> supportJavaTypeKey() {
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public String convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
String value = cellData.getStringValue();
String resp = null;
switch (value) {
case "成品":
resp = "1";
break;
case "半成品":
resp = "2";
break;
case "原材料":
resp = "3";
break;
case "包材":
resp = "4";
break;
case "其他":
resp = "5";
break;
default:
}
return resp;
}
@Override
public WriteCellData<String> convertToExcelData(String value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
WriteCellData writeCellData = null;
switch (value) {
case "1":
writeCellData = new WriteCellData("成品");
break;
case "2":
writeCellData = new WriteCellData("半成品");
break;
case "3":
writeCellData = new WriteCellData("原材料");
break;
case "4":
writeCellData = new WriteCellData("包材");
break;
case "5":
writeCellData = new WriteCellData("其他");
break;
default:
throw BusinessExceptionCode.COMMON_FILE_FIELD_ERROR.exception();
}
return writeCellData;
}
}
package com.hcxz.mes.common.domain.dto.convert;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.hcxz.mes.common.exception.BusinessExceptionCode;
/**
* 报废来源,0-投入,1-制程
*/
public class ScrapTypeExcelConverter implements Converter<String> {
@Override
public Class<?> supportJavaTypeKey() {
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public String convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
String value = cellData.getStringValue();
String resp = null;
switch (value) {
case "投入":
resp = "0";
break;
case "制程":
resp = "1";
break;
default:
}
return resp;
}
@Override
public WriteCellData<String> convertToExcelData(String value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
WriteCellData writeCellData = null;
switch (value) {
case "0":
writeCellData = new WriteCellData("投入");
break;
case "1":
writeCellData = new WriteCellData("制程");
break;
default:
throw BusinessExceptionCode.COMMON_FILE_FIELD_ERROR.exception();
}
return writeCellData;
}
}
package com.hcxz.mes.common.domain.dto.convert;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.hcxz.mes.common.enums.YesOrNoEnum;
/**
* 是否 0-否 1-是
*
* @author hocgin
*/
public class YesOrNoExcelConverter implements Converter<String> {
@Override
public Class<?> supportJavaTypeKey() {
return String.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public String convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return YesOrNoEnum.YES.getValue().equals(cellData.getStringValue()) ? YesOrNoEnum.YES.getValue() : YesOrNoEnum.NO.getValue();
}
@Override
public WriteCellData<String> convertToExcelData(String value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new WriteCellData(YesOrNoEnum.YES.getValue().equals(value) ? "是" : "否");
}
}
package com.hcxz.mes.common.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.FieldNameConstants;
/**
* 自动分配id 基础 基础实体对象
*
* @author zengyt
* @version 1.0
* @date 2022/11/4 0004 14:20
*/
@FieldNameConstants
@Getter
@Setter
public class AssignIdBaseDO extends BaseDO {
/**
* 主键id
*/
@ApiModelProperty(name = "主键id", notes = "主键id")
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
}
package com.hcxz.mes.common.domain.entity;
import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.apache.ibatis.type.JdbcType;
import java.io.Serializable;
import java.util.Date;
/**
* 基础实体对象
*
* @author zengyt
* @version 1.0
* @date 2022/8/15 0015 10:40
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class BaseDO implements Serializable {
private static final long serialVersionUID = 1L;
@TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.VARCHAR, updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(name = "创建人工号", notes = "创建人工号")
@JSONField(serialize = false)
protected String createBy;
@TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.VARCHAR, updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(name = "创建人名称", notes = "创建人名称")
@JSONField(serialize = false)
protected String createByName;
@TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.TIMESTAMP, updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(name = "创建时间", notes = "创建时间")
@JSONField(serialize = false)
protected Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.VARCHAR)
@ApiModelProperty(name = "修改人工号", notes = "修改人工号")
@JSONField(serialize = false)
protected String updateBy;
@TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.VARCHAR)
@ApiModelProperty(name = "修改人名称", notes = "修改人名称")
@JSONField(serialize = false)
protected String updateByName;
@TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.TIMESTAMP)
@ApiModelProperty(name = "修改时间", notes = "修改时间")
@JSONField(serialize = false)
protected Date updateTime;
}
package com.hcxz.mes.common.domain.entity.doris;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
/**
* @description:
* @author: mjj
* @create: 2023-10-20
* @Version 1.0
**/
@ApiModel(value = "DwdPeBatchProcess", description = "产能记录")
@TableName(value = "dwd_pe_batch_process")
@Data
public class DwdPeBatchProcess {
/**
* 主键id
*/
@ApiModelProperty(name = "主键id", notes = "主键id")
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
@TableField(value = "batch_no")
@ApiModelProperty("批次号")
private String batchNo;
@TableField(value = "process_code")
@ApiModelProperty("工序编码")
private String processCode;
@TableField(value = "process_name")
@ApiModelProperty("工序名称")
private String processName;
@TableField(value = "work_order_no")
@ApiModelProperty("工单号")
private String workOrderNo;
@TableField(value = "production_batch_id")
@ApiModelProperty("履历表id")
private String productionBatchId;
/**
*
*/
@TableField(value = "qualified_status")
@ApiModelProperty("质量状态")
private Integer qualifiedStatus;
/**
*
*/
@TableField(value = "production_status")
@ApiModelProperty("生产状态")
private Integer productionStatus;
@TableField(value = "area_code")
@ApiModelProperty("车间代码")
private String areaCode;
@TableField(value = "area_name")
@ApiModelProperty("车间名称")
private String areaName;
@TableField(value = "line_code")
@ApiModelProperty("产线编码")
private String lineCode;
@TableField(value = "line_name")
@ApiModelProperty("产线名称")
private String lineName;
@TableField(value = "process_segment_code")
@ApiModelProperty("工段代码")
private String processSegmentCode;
@TableField(value = "process_segment_name")
@ApiModelProperty("工段名称")
private String processSegmentName;
@TableField(value = "equipment_code")
@ApiModelProperty("设备代码")
private String equipmentCode;
@TableField(value = "equipment_name")
@ApiModelProperty("设备名称")
private String equipmentName;
@TableField(value = "product_code")
@ApiModelProperty("产品代码")
private String productCode;
@TableField(value = "product_name")
@ApiModelProperty("产品名称")
private String productName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(value = "start_time")
@ApiModelProperty("开始时间")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(value = "end_time")
@ApiModelProperty("完工时间")
private Date endTime;
@TableField(value = "year")
@ApiModelProperty("统计年")
private Integer year;
@TableField(value = "month")
@ApiModelProperty("统计月")
private Integer month;
@TableField(value = "week")
@ApiModelProperty("统计周")
private Integer week;
@TableField(value = "day")
@ApiModelProperty("统计日(DOM)")
private Integer day;
@TableField(value = "production_month")
@ApiModelProperty("统计月(完整)")
private String productionMonth;
@JsonFormat(pattern = "yyyy-MM-dd")
@TableField(value = "production_date")
@ApiModelProperty("统计日期(完整)")
private LocalDate productionDate;
@TableField(value = "production_hour")
@ApiModelProperty("统计小时")
private String productionHour;
/**
*
*/
@TableField(value = "shift")
@ApiModelProperty("班次")
private String shift;
@TableField(value = "quantity")
@ApiModelProperty("合格数")
private BigDecimal quantity;
@TableField(value = "quantity_scrap")
@ApiModelProperty("报废数")
private BigDecimal quantityScrap;
/* */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(value = "create_time")
@ApiModelProperty("创建时间")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(value = "update_time")
@ApiModelProperty("更新时间")
private Date updateTime;
@TableField(value = "create_by")
@ApiModelProperty("创建人")
private String createBy;
@TableField(value = "create_by_name")
@ApiModelProperty("创建人名称")
private String createByName;
@TableField(value = "update_by")
@ApiModelProperty("更新人")
private String updateBy;
@TableField(value = "update_by_name")
@ApiModelProperty("更新人名称")
private String updateByName;
@TableField(value = "remark")
@ApiModelProperty("备注")
private String remark;
@TableField(value = "report_no")
@ApiModelProperty("报工状态")
private String reportNo;
/**
* 极片报废,如果是阴极涂布/阳极涂布工序,本字段1-涂布单面,2-涂布双面
* 极片报废,如果是AGY/CGY工序,本字段:1-辊压前,2-辊压后
*/
@TableField(value = "scrap_type")
@ApiModelProperty("极片报废类型")
private Integer scrapType;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss.SSSZ")
@TableField(value = "scrap_apply_time")
@ApiModelProperty("报废申请时间")
private Date scrapApplyTime;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss.SSSZ")
@TableField(value = "scrap_time")
@ApiModelProperty("报废通过时间")
private Date scrapTime;
@TableField(value = "wip_flag")
@ApiModelProperty("纳入WIP统计")
private Integer wipFlag = 1;
/**
* 是否为完美膜卷(1:是 0:否)
*/
@TableField(value = "is_perfect_roll")
private Integer isPerfectRoll;
@TableField(value = "is_receive")
@ApiModelProperty("领用标记")
private Integer isReceive;
@TableField(value = "source")
@ApiModelProperty("数据来源系统")
private String source;
@TableField(value = "grade")
@ApiModelProperty("等级")
private String grade;
@TableField(value = "gear")
@ApiModelProperty("档位")
private String gear;
}
package com.hcxz.mes.common.domain.entity.doris;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description:
* @author: mjj
* @create: 2023-10-16
* @Version 1.0
**/
@EqualsAndHashCode(callSuper = false)
@Data
@TableName("dwd_production_ng")
@ApiModel(value = "NG记录表")
public class DwdProductionNg {
private Long id;
@ApiModelProperty("创建时间")
@TableField(value = "create_time")
private Date createTime;
@ApiModelProperty("生产日期")
@TableField(value = "product_date")
private Date productDate;
@TableField(value = "batch_no")
@ApiModelProperty("条码")
private String batchNo;
@ApiModelProperty("班次")
@TableField(value = "shift")
private String shift;
@TableField(value = "work_order_no")
@ApiModelProperty("工单号")
private String workOrderNo;
@TableField(value = "product_code")
@ApiModelProperty("产品编码")
private String productCode;
@TableField(value = "product_name")
@ApiModelProperty("产品名称")
private String productName;
@TableField(value = "area_code")
@ApiModelProperty("工厂编码")
private String areaCode;
@TableField(value = "area_name")
@ApiModelProperty("工厂名称")
private String areaName;
@TableField(value = "line_code")
@ApiModelProperty("拉线编码")
private String lineCode;
@TableField(value = "line_name")
@ApiModelProperty("拉线名称")
private String lineName;
@TableField(value = "process_code")
@ApiModelProperty("工序编码")
private String processCode;
@TableField(value = "process_name")
@ApiModelProperty("工序名称")
private String processName;
@TableField(value = "equipment_code")
@ApiModelProperty("设备编码")
private String equipmentCode;
@TableField(value = "equipment_name")
@ApiModelProperty("设备名称")
private String equipmentName;
@TableField(value = "ng_qty")
@ApiModelProperty("ng数量")
private BigDecimal ngQty;
@TableField(value = "unit")
@ApiModelProperty("单位")
private String unit;
@TableField(value = "ng_code")
@ApiModelProperty("NG编码")
private String ngCode;
@TableField(value = "ng_name")
@ApiModelProperty("NG名称")
private String ngName;
@TableField(value = "ng_type")
@ApiModelProperty("NG分类")
private String ngType;
@TableField(value = "product_batch_id")
@ApiModelProperty("履历id")
private String productBatchId;
@TableField(value = "input_count")
@ApiModelProperty("投入次数")
private String inputCount;
@TableField(value = "status")
@ApiModelProperty("状态")
private String status;
@TableField(exist = false)
@ApiModelProperty("产品型号")
private String productType;
}
package com.hcxz.mes.common.domain.entity.doris;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Data
@TableName("dws_fty_day")
@ApiModel(value = "fty数据表-天")
public class DwsFtyDay {
@ApiModelProperty("ID")
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
@ApiModelProperty("数据归属时间")
@TableField(value = "data_date")
private Date dataDate;
@ApiModelProperty("生产日期")
@TableField(value = "product_date")
private Date productDate;
@ApiModelProperty("班次")
@TableField(value = "shift")
private String shift;
@TableField(exist = false)
@ApiModelProperty("产品编码")
private String productCode;
@TableField(value = "product_type")
@ApiModelProperty("产品型号")
private String productType;
@TableField(value = "area_code")
@ApiModelProperty("工厂编码")
private String areaCode;
@TableField(value = "area_name")
@ApiModelProperty("工厂名称")
private String areaName;
@TableField(value = "line_code")
@ApiModelProperty("拉线编码")
private String lineCode;
@TableField(value = "line_name")
@ApiModelProperty("拉线名称")
private String lineName;
@TableField(value = "work_order_no")
@ApiModelProperty("工单号")
private String workOrderNo;
@TableField(value = "process_code")
@ApiModelProperty("工序编码")
private String processCode;
@TableField(value = "process_name")
@ApiModelProperty("工序名称")
private String processName;
@TableField(value = "grade")
@ApiModelProperty("等级")
private String grade;
@TableField(value = "equipment_code")
@ApiModelProperty("设备编码")
private String equipmentCode;
@TableField(value = "equipment_name")
@ApiModelProperty("设备名称")
private String equipmentName;
@TableField(value = "product_qty")
@ApiModelProperty("生产总数")
private BigDecimal productQty;
@TableField(value = "quantity_qty")
@ApiModelProperty("合格数")
private BigDecimal quantityQty;
@TableField(value = "work_order_type")
@ApiModelProperty("工单类型")
private String workOrderType;
}
package com.hcxz.mes.common.domain.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.service.IService;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
/**
* Created by hocgin on 2020/2/11.
* email: hocgin@gmail.com
*
* @author hocgin
*/
public interface AbstractService<T> extends IService<T> {
/**
* 获取查询条件的第一条记录
*
* @param wrapper 查询条件
* @return 结果
*/
Optional<T> first(Wrapper<T> wrapper);
/**
* 获取条件的前面几条数据
*
* @param queryWrapper 条件
* @param limit 条数
* @return
*/
List<T> limit(Wrapper<T> queryWrapper, Integer limit);
/**
* 是否存在某个字段等于某个值的
*
* @param field
* @param fieldVal
* @param ignoreField
* @param ignoreVal
* @return
*/
boolean has(SFunction<T, ?> field, Object fieldVal,
SFunction<T, ?> ignoreField, Serializable... ignoreVal);
List<T> listBy(SFunction<T, ?> field, Collection<?> data);
}
package com.hcxz.mes.common.domain.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.conditions.query.ChainQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hcxz.mes.common.domain.entity.AssignIdBaseDO;
import java.io.Serializable;
import java.util.*;
import java.util.stream.Collectors;
/**
* Created by hocgin on 2020/1/5.
* email: hocgin@gmail.com
*
* @author hocgin
*/
public abstract class AbstractServiceImpl<M extends BaseMapper<T>, T extends AssignIdBaseDO> extends ServiceImpl<M, T>
implements AbstractService<T> {
@Override
public Optional<T> first(Wrapper<T> queryWrapper) {
List<T> records = limit(queryWrapper, 1);
if (records.isEmpty()) {
return Optional.empty();
}
return Optional.of(records.get(0));
}
@Override
public List<T> limit(Wrapper<T> queryWrapper, Integer limit) {
Page<T> limitPage = new Page<>(1, limit, false);
if (queryWrapper instanceof ChainQuery) {
return ((ChainQuery<T>) queryWrapper).page(limitPage).getRecords();
}
return page(limitPage, queryWrapper).getRecords();
}
@Override
public boolean has(SFunction<T, ?> field, Object val, SFunction<T, ?> ignoreField, Serializable... ignoreVal) {
List<Serializable> ignoreIds = Arrays.asList(ignoreVal).parallelStream()
.filter(Objects::nonNull).collect(Collectors.toList());
return !lambdaQuery().eq(field, val)
.notIn(!ignoreIds.isEmpty(), ignoreField, Arrays.stream(ignoreVal).toArray())
.page(new Page<>(1, 1, false)).getRecords().isEmpty();
}
@Override
public List<T> listBy(SFunction<T, ?> field, Collection<?> data) {
if (CollUtil.isEmpty(data)) {
return Collections.emptyList();
}
return lambdaQuery().in(field, data).list();
}
}
package com.hcxz.mes.common.enums;
import com.hcxz.utils.enums.DataDictEnum;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
/**
* 阳极辊压参数编号
* @author fenglj
*/
@Getter
@RequiredArgsConstructor
public enum AGYParamCodeEnums implements DataDictEnum {
AGY024("AGY024", "极片厚度"),
;
private final String code;
private final String name;
public static AGYParamCodeEnums getByCode(String code) {
if (StringUtils.isBlank(code)) {
return null;
}
for (AGYParamCodeEnums AGYEnum : AGYParamCodeEnums.values()) {
if (AGYEnum.getCode().equalsIgnoreCase(code)) {
return AGYEnum;
}
}
return null;
}
}
package com.hcxz.mes.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author: lintt
* @since: 2023/5/17 10:11
*/
@Getter
@AllArgsConstructor
public enum BatchExecuteTypeEnum {
CANCEL("CANCEL","注销",null),
RESUMPTION("RESUMPTION","复投","1"),
REORDER("REORDER","转序","2"),
;
private String value;
private String name;
private String code;
public boolean match(String value){
return this.value.equals(value);
}
public static String getCodeByValue(String value){
for (BatchExecuteTypeEnum batchExecuteTypeEnum : values()) {
if (batchExecuteTypeEnum.match(value)){
return batchExecuteTypeEnum.code;
}
}
return null;
}
}
package com.hcxz.mes.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 生产履历表质量状态
*/
@Getter
@AllArgsConstructor
public enum BatchQualityStatusEnum {
OK("ok", 1),
NG("ng", 2),
CONCESSION("让步", 3),
RELEASE("放行", 4),
REPAIR("返修", 5),
RETEST("复测", 6),
SHORT_RETEST("简容复测", 7),
DEMOTION("降级", 8),
SCRAP("报废", 9);
private String name;
private Integer value;
public static String getNameByValue(Integer value) {
if (value == null) {
return "";
}
for (BatchQualityStatusEnum statusEnum : BatchQualityStatusEnum.values()) {
if (statusEnum.getValue().equals(value)) {
return statusEnum.getName();
}
}
return "";
}
}
package com.hcxz.mes.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum BatchRuntimeQualityStatusEnum {
OK("ok", 1),
NG("ng", 2),
CONCESSION("让步", 3),
RELEASE("放行", 4),
REPAIR("返修", 5),
RETEST("复测", 6),
SHORT_RETEST("简容复测", 7),
DEMOTION("降级", 8),
SCRAP("报废", 9);
private String name;
private Integer value;
}
package com.hcxz.mes.common.enums;
import com.hcxz.utils.enums.DataDictEnum;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
/**
* 阴极辊压参数编号
* @author fenglj
*/
@Getter
@RequiredArgsConstructor
public enum CGYParamCodeEnums implements DataDictEnum {
CGY026("CGY026", "极片厚度"),
;
private final String code;
private final String name;
public static CGYParamCodeEnums getByCode(String code) {
if (StringUtils.isBlank(code)) {
return null;
}
for (CGYParamCodeEnums CGYEnum : CGYParamCodeEnums.values()) {
if (CGYEnum.getCode().equalsIgnoreCase(code)) {
return CGYEnum;
}
}
return null;
}
}
package com.hcxz.mes.common.enums;
import com.hcxz.utils.enums.DataDictEnum;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
/**
* 阴极模切参数编号
* @author fenglj
*/
@Getter
@RequiredArgsConstructor
public enum CMQParamCodeEnums implements DataDictEnum {
CMQ031("CMQ031", "分切极宽"),
CMQ032("CMQ032", "极片总长"),
CMQ033("CMQ033", "极耳宽度"),
CMQ034("CMQ034", "极耳数量"),
CMQ035("CMQ035", "极耳高度"),
CMQ036("CMQ036", "极耳间距"),
CMQ037("CMQ037", "总极宽"),
CMQ038("CMQ038", "膜区亮度"),
CMQ039("CMQ039", "总膜宽"),
CMQ040("CMQ040", "反面AT9宽度"),
CMQ041("CMQ041", "正面AT9宽度"),
CMQ042("CMQ042", "分切膜宽"),
CMQ043("CMQ043", "接带或单面涂布"),
CMQ044("CMQ044", "未辊压"),
CMQ045("CMQ045", "暗痕裂纹"),
CMQ046("CMQ046", "直边余料"),
CMQ047("CMQ047", "极耳余料"),
CMQ048("CMQ048", "膜片漏金属"),
CMQ049("CMQ049", "气泡亮纹"),
CMQ050("CMQ050", "直边破损"),
CMQ051("CMQ051", "极耳破损"),
CMQ052("CMQ052", "极片总长"),
CMQ053("CMQ053", "AT9漏金属"),
CMQ054("CMQ054", "亮纹裂纹"),
;
private final String code;
private final String name;
public static CMQParamCodeEnums getByCode(String code) {
if (StringUtils.isBlank(code)) {
return null;
}
for (CMQParamCodeEnums CMQEnum : CMQParamCodeEnums.values()) {
if (CMQEnum.getCode().equalsIgnoreCase(code)) {
return CMQEnum;
}
}
return null;
}
}
package com.hcxz.mes.common.enums;
public enum CacheDataBusinessPreKeyEnum {
/**
* 业务级缓存
*/
BusinessKeyPreFix("mesL6:biz:", "缓存key值前缀-业务级缓存"),
PackInfo(BusinessKeyPreFix.getCode() + "pack:packInfo", "装箱管理-装箱信息"),
PackBoxCode(BusinessKeyPreFix.getCode() + "pack:boxCode", "装箱管理-正式箱码"),
PackLockKey(BusinessKeyPreFix.getCode() + "pack:lock:", "装箱管理-redis锁"),
batchParam(BusinessKeyPreFix.code + "batchParam", "工艺参数缓存"),
ngCodeList(BusinessKeyPreFix.code + "ngCodeList", "批次ngCodeList列表"),
topBarCode(BusinessKeyPreFix.code + "topBarCode", "顶盖码序列号"),
topBarCodeWorkOrder(BusinessKeyPreFix.code + "topBarCodeWorkOrder", "顶盖码和工单关系"),
preEquipmentProcessSurplus(BusinessKeyPreFix.code + "preEquipmentProcessSurplus", "正在投产列表"),
batchParamArchiveIdStart(BusinessKeyPreFix.code + "batchParamArchiveIdStart", "工艺参数归档-ID起点"),
WorkorderPlanNo(BusinessKeyPreFix.getCode() + "workorder:plan", "计划管理-工单计划"),
WMSSequenceNo(BusinessKeyPreFix.code + "sequenceNo:prefix", "WMS序列号"),
WorkorderReport(BusinessKeyPreFix.getCode() + "workorder:report", "工单报工"),
WorkorderReportBarcode(BusinessKeyPreFix.getCode() + "workorder:report:barcode", "工单报工条形码"),
AbnormalOrderNo(BusinessKeyPreFix.getCode() + "abnormalOrder:no", "异常单号"),
InoutRecordNo(BusinessKeyPreFix.getCode() + "inoutRecord:no", "出入库单号"),
ApplyRecordNo(BusinessKeyPreFix.getCode() + "applyRecord:no", "申请单号"),
ApplyRecordReturnNo(BusinessKeyPreFix.getCode() + "applyRecordReturn:no", "退库申请单号"),
ChangeShiftsNo(BusinessKeyPreFix.getCode() + "changeShifts:no", "eam交接班"),
DeliveryOrder(BusinessKeyPreFix.getCode() + "deliveryOrder", "交接单"),
FixtureReplace(BusinessKeyPreFix.getCode() + "fixture:replace:no", "工装更换"),
PartsBarcode(BusinessKeyPreFix.getCode() + "parts:barcode", "备件条码"),
;
private final String code;
private final String name;
/**
* @param code 编码
* @param name 名称
*/
CacheDataBusinessPreKeyEnum(String code, String name) {
this.code = code;
this.name = name;
}
/**
* 获取code
*
* @return String
*/
public String getCode() {
return code;
}
/**
* 获取name
*
* @return String
*/
public String getName() {
return name;
}
public static String getNameByCode(String code) {
for (CacheDataBusinessPreKeyEnum value : CacheDataBusinessPreKeyEnum.values()) {
if (value.getCode().equalsIgnoreCase(code)) {
return value.getName();
}
}
return null;
}
}
package com.hcxz.mes.common.enums;
public enum CacheDataTablePreKeyEnum {
/**
* 表级缓存
*/
TableKeyPreFix("mesL6:tab:", "缓存key值前缀-表级缓存"),
PeWorkorderBom(TableKeyPreFix.code + "PeWorkorderBom", "工单BOM"),
PeFirstInspectionEquipmentControl(TableKeyPreFix.code + "PeFirstInspectionEquipmentControl", "首检设备启停控制表"),
PeWorkorderBomListByWorkOrderNoAndProcessCode(PeWorkorderBom.code + ":tokeys:workOrderNoAndProcessCode", "工单BOM"),
QmNgDefinition(TableKeyPreFix.code + "QmNgDefinition", "NG定义"),
QmNgDefinitionListByNgCode(QmNgDefinition.code + ":tokeys:ngCode", "NG定义"),
QmFqcInspecStandard(TableKeyPreFix.code + "QmFqcInspecStandard", "FQC检验标准配置表"),
MmMaterial(TableKeyPreFix.code + "MmMaterial", "物料"),
MmUnit(TableKeyPreFix.code + "MmUnit", "单位"),
MmMaterialType(TableKeyPreFix.code + "MmMaterialType", "物料类型"),
EqEquipment(TableKeyPreFix.code + "EqEquipment", "设备"),
EqContainerType(TableKeyPreFix.code + "EqContainerType", "载具类型表"),
PeWorkorder(TableKeyPreFix.code + "PeWorkorder", "工单"),
PeWorkorderRecipe(TableKeyPreFix.code + "PeWorkorderRecipe", "工单工艺参数"),
PeWorkorderRecipeListByWorkorderNoAndProcessCode(PeWorkorderRecipe.code + ":tokeys:workorderNoAndProcessCode", "工单工艺参数"),
PjProductWipTime(TableKeyPreFix.code + "PjProductWipTime", "wip时间"),
PjProcess(TableKeyPreFix.code + "PjProcess", "工序"),
PjRecipe(TableKeyPreFix.code + "PjRecipe", "配方主表"),
PjProductWorkflow(TableKeyPreFix.code + "PjProductWorkflow", "配方"),
PjProductWorkflowListByWorkflowCode(PjProductWorkflow.code + ":tokeys:workflowCode", "workflowCode对于配方keys"),
PjWorkflow(TableKeyPreFix.code + "PjWorkflow", "工艺路线"),
PjProductValidaterule(TableKeyPreFix.code + "PjProductValidaterule", "工艺路线校验规则"),
PjProductValidateruleListByProductCodeAndWorkflowCodeAndProcessCodeAndRuletypeCode(PjProductValidaterule.code + ":tokeys:productCodeAndWorkflowCodeAndProcessCodeAndRuletypeCode", "工艺路线校验规则"),
PjWorkflowEquipment(TableKeyPreFix.code + "PjWorkflowEquipment", "工艺路线设备清单"),
PjWorkflowEquipmentListByEquipmentCodeAndProcessCode(PjWorkflowEquipment.code + ":tokeys:equipmentCodeAndProcessCode", "工艺路线设备清单"),
PjRecipeParam(TableKeyPreFix.code + "PjRecipeParam", "配方参数"),
PjRecipeParamListByProcessCodeAndRecipeCode(PjRecipeParam.code + ":tokeys:processCodeAndRecipeCode", "配方参数"),
PjProcessStep(TableKeyPreFix.code + "PjProcessStep", "工序工步"),
PjWorkflowProcess(TableKeyPreFix.code + "PjWorkflowProcess", "工艺路线工序关系"),
PjWorkflowProcessListByWorkflowCode(PjWorkflowProcess.code + ":tokeys:workflowCode", "工艺路线工序关系"),
PjWorkflowRelation(TableKeyPreFix.code + "PjWorkflowRelation", "工艺路线路由表"),
PjWorkflowRelationListByWorkflowCodeAndSourceCode(PjWorkflowRelation.code + ":tokeys:workflowCodeAndSourceCode", "工艺路线路由表"),
PjEquipmentPackingRule(TableKeyPreFix.code + "PjEquipmentPackingRule", "自动包装机打包规则绑定表"),
PjPackingRule(TableKeyPreFix.code + "PjPackingRule", "打包规则表"),
PjPackingEquipmentRule(TableKeyPreFix.code + "PjPackingEquipmentRule", "设备打包规则关系表"),
PjPackingEquipmentRuleListByEquipmentCode(PjPackingEquipmentRule.code + ":tokeys:equipmentCode", "设备打包规则关系表"),
PjProductWip(TableKeyPreFix.code + "PjProductWip", "工艺路线工序物料合批拆批表"),
PjGearRule(TableKeyPreFix.code + "PjGearRule", "分档规则表"),
PjProductParamValuerule(TableKeyPreFix.code + "PjProductParamValuerule", "产品参数值处理规则表"),
PjGearRuleListByProductCode(PjGearRule.code + ":tokeys:productCode", "分档规则表"),
DmFactoryModel(TableKeyPreFix.code + "DmFactoryModel", "工厂模型"),
CalSchedulingResult(TableKeyPreFix.code + "CalSchedulingResult", "排班结果表"),
CalSchedulingResultListByProcessSegmentCodeAndDate(CalSchedulingResult.code + ":tokeys:processSegmentCodeAndDate", "排班结果表"),
CalShift(TableKeyPreFix.code + "CalShift", "班次"),
CalTeam(TableKeyPreFix.code + "CalTeam", "班组"),
PjProductGrade(TableKeyPreFix.code + "PjProductGrade", "产品等级"),
PjProductGradeAll(PjProductGrade.code + ":tokeys:all", "产品等级(所有)"),
PjProcessStation(TableKeyPreFix.code + "PjProcessStation", "工位"),
PjProcessParam(TableKeyPreFix.code + "PjProcessParam:isFormulaParam", "工序参数-公式计算"),
CoverGenerateRule(TableKeyPreFix.code + "CoverGenerateRule", "顶盖码规则"),
PjProductFlowChannelParam(TableKeyPreFix.code + "PjProductFlowChannelParam", "产品流程通道参数明细"),
WMSSequenceRule(TableKeyPreFix.code + "SequenceRule", "WMS编码规则"),
;
private final String code;
private final String name;
/**
* @param code 编码
* @param name 名称
*/
CacheDataTablePreKeyEnum(String code, String name) {
this.code = code;
this.name = name;
}
/**
* 获取code
*
* @return String
*/
public String getCode() {
return code;
}
/**
* 获取name
*
* @return String
*/
public String getName() {
return name;
}
public static String getNameByCode(String code) {
for (CacheDataTablePreKeyEnum value : CacheDataTablePreKeyEnum.values()) {
if (value.getCode().equalsIgnoreCase(code)) {
return value.getName();
}
}
return null;
}
}
package com.hcxz.mes.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
/**
* 模切打标推移图-维度类型
*/
@Getter
@AllArgsConstructor
public enum CuttingChartAngleEnum {
SHIFT("shift", "班次"),
EQUIPMENT("equipment", "机台"),
;
private String code;
private String value;
public static String getCodeByValue(String value) {
if (StringUtils.isBlank(value)) {
return "";
}
for (CuttingChartAngleEnum paramTypeEnum : CuttingChartAngleEnum.values()) {
if (paramTypeEnum.getValue().equalsIgnoreCase(value)) {
return paramTypeEnum.getCode();
}
}
return "";
}
public static String getValueByCode(String code) {
if (StringUtils.isBlank(code)) {
return "";
}
for (CuttingChartAngleEnum paramTypeEnum : CuttingChartAngleEnum.values()) {
if (paramTypeEnum.getCode().equalsIgnoreCase(code)) {
return paramTypeEnum.getValue();
}
}
return "";
}
}
package com.hcxz.mes.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
/**
* 模切打标推移图-字典类型
*/
@Getter
@AllArgsConstructor
public enum CuttingChartDictEnum {
CUTTING_INDEX_CMQ("cutting_index_cmq", "模切打标数据指标-阴极"),
CUTTING_INDEX_AMQ("cutting_index_amq", "模切打标数据指标-阳极"),
CUTTING_EQUIPMENT("cutting_equipment", "模切打标数据指标设备简称"),
FACTORY_MODEL_QGX("factory_model_qgx", "工厂模型-前工序拉线编号"),
;
private String code;
private String value;
public static String getCodeByValue(String value) {
if (StringUtils.isBlank(value)) {
return "";
}
for (CuttingChartDictEnum paramTypeEnum : CuttingChartDictEnum.values()) {
if (paramTypeEnum.getValue().equalsIgnoreCase(value)) {
return paramTypeEnum.getCode();
}
}
return "";
}
public static String getValueByCode(String code) {
if (StringUtils.isBlank(code)) {
return "";
}
for (CuttingChartDictEnum paramTypeEnum : CuttingChartDictEnum.values()) {
if (paramTypeEnum.getCode().equalsIgnoreCase(code)) {
return paramTypeEnum.getValue();
}
}
return "";
}
}
package com.hcxz.mes.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
/**
* 模切打标推移图-范围类型
*/
@Getter
@AllArgsConstructor
public enum CuttingChartRangeEnum {
DAY("day", "天"),
WEEK("week", "星期"),
MONTH("month", "月"),
;
private String code;
private String value;
public static String getCodeByValue(String value) {
if (StringUtils.isBlank(value)) {
return "";
}
for (CuttingChartRangeEnum paramTypeEnum : CuttingChartRangeEnum.values()) {
if (paramTypeEnum.getValue().equalsIgnoreCase(value)) {
return paramTypeEnum.getCode();
}
}
return "";
}
public static String getValueByCode(String code) {
if (StringUtils.isBlank(code)) {
return "";
}
for (CuttingChartRangeEnum paramTypeEnum : CuttingChartRangeEnum.values()) {
if (paramTypeEnum.getCode().equalsIgnoreCase(code)) {
return paramTypeEnum.getValue();
}
}
return "";
}
}
package com.hcxz.mes.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
/**
* 模切打标推移图-统计类型
*/
@Getter
@AllArgsConstructor
public enum CuttingChartTypeEnum {
TOTAL("total", "总计"),
DETAIL("detail", "明细"),
;
private String code;
private String value;
public static String getCodeByValue(String value) {
if (StringUtils.isBlank(value)) {
return "";
}
for (CuttingChartTypeEnum paramTypeEnum : CuttingChartTypeEnum.values()) {
if (paramTypeEnum.getValue().equalsIgnoreCase(value)) {
return paramTypeEnum.getCode();
}
}
return "";
}
public static String getValueByCode(String code) {
if (StringUtils.isBlank(code)) {
return "";
}
for (CuttingChartTypeEnum paramTypeEnum : CuttingChartTypeEnum.values()) {
if (paramTypeEnum.getCode().equalsIgnoreCase(code)) {
return paramTypeEnum.getValue();
}
}
return "";
}
}
package com.hcxz.mes.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum DataDimensionEnum {
SHIFT("shift"),
DAY("day"),
WEEK("week"),
MONTH("month");
private final String code;
}
package com.hcxz.mes.common.enums;
import com.hcxz.utils.enums.DataDictEnum;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* Created by hocgin on 2022/11/30
* email: hocgin@gmail.com
*
* @author hocgin
*/
@Getter
@RequiredArgsConstructor
public enum DataSource implements DataDictEnum {
Mes("1", "设备采集"),
Manual("2", "人工录入");
private final String code;
private final String name;
public static final String KEY = "data_source";
}
package com.hcxz.mes.common.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor
public enum DateTypeEnum {
NONE("", "未定义"),
HOUR("hour", "小时"),
DAY("day", "天"),
WEEK("week", "周"),
MONTH("month", "月"),
SHIFT("shift", "班次"),
YEAR("year","年"),
QUARTER("quarter","季度")
;
private final String code;
private final String name;
public static String getName(String code) {
for (DateTypeEnum value : values()) {
if (value.code.equals(code)) {
return value.name;
}
}
return "未定义";
}
public static DateTypeEnum get(String code) {
for (DateTypeEnum value : values()) {
if (value.code.equals(code)) {
return value;
}
}
return NONE;
}
}
package com.hcxz.mes.common.enums;
import com.hcxz.utils.enums.DataDictEnum;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* Created by hocgin on 2022/11/28
* email: hocgin@gmail.com
*
* @author hocgin
*/
@Getter
@RequiredArgsConstructor
public enum DisposalMethodEnum implements DataDictEnum {
// 3让步 4放行 5返修 6复测 7 简易复测 8降级 9报废
OK("1", "ok"),
NG("2", "NG"),
Concession("3", "让步"),
Pass("4", "自动放行"),
Rework("5", "返修"),
Retest("6", "复测"),
SiRetest("7", "简容复测"),
Downgrade("8", "降级"),
Scrapped("9", "报废"),
REORDER("12", "转序"),
SiRetest_1("17", "简容1复测"),
;
private final String code;
private final String name;
}
package com.hcxz.mes.common.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.baomidou.mybatisplus.annotation.IEnum;
public enum DmFactoryModelTypeEnum implements IEnum<String> {
// 类型;0\1\2\3 集团\工厂\车间\过程段
GROUP("0", "集团"),
FACTORY("1", "工厂"),
WORKSHOP("2", "车间"),
PROCESS_SEGMENT("3", "过程段"),
PROCESS("4", "工序"),
;
DmFactoryModelTypeEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
@EnumValue
private final String code;
private String desc;
@Override
public String getValue() {
return this.code;
}
public String getCode() {
return this.code;
}
public String getDesc() {
return this.desc;
}
}
package com.hcxz.mes.common.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import java.util.Arrays;
import java.util.List;
/**
* @author: lintt
* @since: 2023/10/19 10:27
*/
@Getter
@RequiredArgsConstructor
public enum DowngradingOrderStatusEnum {
NEW(0, "新建"),
AUDITING(1, "审批中"),
PASS(2, "审批通过"),
REFUSE(3, "审批不通过"),
;
private final Integer code;
private final String name;
public boolean match(Integer value){
return this.code.equals(value);
}
public static String getNameByCode(Integer value) {
if (value == null) {
return "";
}
for (DowngradingOrderStatusEnum statusEnum : DowngradingOrderStatusEnum.values()) {
if (statusEnum.getCode().equals(value)) {
return statusEnum.getName();
}
}
return "";
}
public static List<Integer> canDeleteStatus(){
return Arrays.asList(NEW.code,REFUSE.code);
}
public static List<Integer> canModifyStatus(){
return Arrays.asList(NEW.code);
}
}
package com.hcxz.mes.common.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.baomidou.mybatisplus.annotation.IEnum;
public enum EqContainerStatusEnum implements IEnum<String> {
NORMAL("0", "正常"),
USED("1", "使用"),
IN("2", "在仓"),
FIX("3", "维修"),
SCARP("4", "报废");
EqContainerStatusEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
@EnumValue
private final String code;
private String desc;
@Override
public String getValue() {
return this.code;
}
public String getCode() {
return this.code;
}
public String getDesc() {
return this.desc;
}
}
package com.hcxz.mes.common.enums;
import com.hcxz.utils.enums.DataDictEnum;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor
public enum FinalDisposalMethodEnum implements DataDictEnum {
OK(1, "ok"),
NG(2, "NG"),
Concession(3, "让步"),
Pass(4, "自动放行"),
Rework(5, "返修"),
Retest(6, "复测"),
SiRetest(7, "简容复测"),
Downgrade(8, "降级"),
Scrapped(9, "报废"),
RECEIVED(10, "领用"),
RESPROCESS(11, "复投"),
REORDER(12, "转序"),
;
private final Integer code;
private final String name;
public static String getName(Integer code){
for (FinalDisposalMethodEnum methodEnum : values()) {
if (methodEnum.code == code){
return methodEnum.name;
}
}
return "";
}
}
package com.hcxz.mes.common.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.baomidou.mybatisplus.annotation.IEnum;
public enum FqcInspecStandardDetailParamTypeEnum implements IEnum<String> {
AMOUNT("1", "计量"),
COUNT("2", "计数"),
DIST("3", "字典维护"),
;
FqcInspecStandardDetailParamTypeEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
@EnumValue
private final String code;
private String desc;
@Override
public String getValue() {
return this.code;
}
public String getCode() {
return this.code;
}
public String getDesc() {
return this.desc;
}
}
package com.hcxz.mes.common.enums;
import com.hcxz.utils.enums.DataDictEnum;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
/**
* 上料扩展属性
* @author fenglj
*/
@Getter
@RequiredArgsConstructor
public enum InputMaterialParamEnums implements DataDictEnum {
ELECTRODE_THICKNESS("electrodeThickness", "极片厚度"),
;
private final String code;
private final String name;
public static InputMaterialParamEnums getByCode(String code) {
if (StringUtils.isBlank(code)) {
return null;
}
for (InputMaterialParamEnums paramEnum : InputMaterialParamEnums.values()) {
if (paramEnum.getCode().equalsIgnoreCase(code)) {
return paramEnum;
}
}
return null;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment