Commit 0f6bd5c3 孙克

重构layer

1 个父辈 66a0239c
正在显示 1000 个修改的文件 包含 2525 行增加870 行删除

要显示的修改太多。

为保证性能只显示 1000 of 1000+ 个文件。

版权所有声明 (Copyright Notice)
© 2023 SMF Core Team. 保留所有权利。
本软件及其相关文档是受版权保护的专有软件。未经版权所有者明确书面许可,不得以任何形式或通过任何方式(电子、机械、影印、录制或其他方式)使用、复制、修改、分发、传播本软件的任何部分。
使用许可限制
1. 本软件仅供授权用户在授权环境中使用。
2. 禁止将本软件用于商业目的,除非获得明确的商业许可。
3. 禁止对本软件进行逆向工程、反编译或反汇编。
4. 禁止向任何第三方转让、出租或分发本软件。
免责声明
本软件按"原样"提供,不附带任何形式的明示或暗示保证,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,版权所有者及其供应商均不对因使用或无法使用本软件而导致的任何直接、间接、附带、特殊、惩戒性或后果性损害(包括但不限于采购替代产品或服务、数据丢失、利润损失或业务中断)承担责任,无论是基于合同责任、严格责任还是侵权行为(包括疏忽或其他方面),即使已被告知此类损害的可能性。
如果您对本软件的使用有任何疑问,请联系版权所有者获取授权。
\ No newline at end of file
# SMF Core
## 1. 项目描述
SMF Core 是一个基于Java开发的企业级核心服务框架,为各类Java应用提供坚实的基础设施支持。该框架专注于提供高度可复用的数据访问、对象映射、多语言国际化等核心功能模块,旨在简化企业应用开发流程,提高开发效率和代码质量。
**核心功能特性:**
- 基于MongoDB的数据访问抽象层,提供通用CRUD操作和高级查询支持
- 灵活的对象映射框架,简化DTO与Entity之间的转换
- 完整的多语言国际化支持,内置6种语言资源
- 统一的异常处理和日志记录机制
- 模块化设计,支持按需集成和扩展
## 2. 安装说明
### 2.1 环境要求
- JDK 1.8或更高版本
- Maven 3.6或更高版本
- MongoDB 4.0或更高版本
- Spring Boot环境
### 2.2 项目构建
```bash
# 克隆项目(假设示例)
git clone https://example.com/smf-core.git
cd smf-core
# 使用Maven包装器构建项目(Linux/Mac)
./mvnw clean package
# 使用Maven包装器构建项目(Windows)
mvnw.cmd clean package
# 或使用本地已安装的Maven
mvn clean package
```
### 2.3 集成到现有项目
在您的项目的pom.xml文件中添加SMF Core依赖:
```xml
<dependency>
<groupId>com.neotel.smfcore</groupId>
<artifactId>smf-core</artifactId>
<version>1.0.0</version> <!-- 使用实际版本号 -->
</dependency>
```
## 3. 使用示例
### 3.1 对象映射(BaseMapper)
```java
// 创建映射器实例
TestMapper mapper = new TestMapperImpl();
// DTO转换为Entity
TestDto dto = new TestDto();
dto.setId("user-123");
dto.setName("张三");
dto.setValue(95);
TestEntity entity = mapper.toEntity(dto);
// Entity转换为DTO
TestDto resultDto = mapper.toDto(entity);
// 批量转换
List<TestDto> dtoList = Arrays.asList(dto1, dto2);
List<TestEntity> entityList = mapper.toEntity(dtoList);
```
### 3.2 数据访问(AbstractBaseDao)
```java
// 使用自动注入的DAO
@Autowired
private UserDao userDao;
// 创建并保存实体
UserEntity user = new UserEntity();
user.setId("user-001");
user.setUsername("admin");
userDao.save(user);
// 按ID查询
UserEntity foundUser = userDao.findById("user-001");
// 条件查询
Query query = new Query(Criteria.where("username").is("admin"));
List<UserEntity> users = userDao.findByQuery(query);
// 分页查询
Pageable pageable = PageRequest.of(0, 10); // 第1页,每页10条
List<UserEntity> pagedUsers = userDao.findByQuery(query, pageable);
```
### 3.3 国际化功能
```java
// 注入消息源
@Autowired
private MessageSource messageSource;
// 获取当前语言环境的消息
String welcomeMessage = messageSource.getMessage(
"welcome.message",
new Object[]{user.getUsername()},
LocaleContextHolder.getLocale()
);
// 获取指定语言环境的消息
String chineseMessage = messageSource.getMessage(
"error.not.found",
new Object[]{"用户"},
Locale.SIMPLIFIED_CHINESE
);
```
## 4. 配置选项
### 4.1 核心配置文件
**smfcore.json** - 框架核心配置:
```json
{
"database": {
"mongo": {
"uri": "mongodb://localhost:27017/smf-core",
"connections": 10,
"maxWaitTime": 10000
}
},
"service": {
"port": 8080,
"contextPath": "/smf-core"
},
"logging": {
"level": "INFO",
"file": "./logs/smf-core.log"
},
"i18n": {
"defaultLocale": "zh_CN",
"supportedLocales": ["zh_CN", "zh_TW", "en_US", "de_DE", "fr_FR", "ja_JP"]
}
}
```
### 4.2 日志配置
通过**log4j2-spring.xml**配置日志行为:
- 日志输出格式和级别
- 日志文件路径和轮转策略
- 控制台和文件输出配置
### 4.3 国际化配置
- 在resources目录下创建`messages_*.properties`文件
- 支持的语言:zh_CN, zh_TW, en_US, de_DE, fr_FR, ja_JP
- 通过`i18n.defaultLocale`设置默认语言
## 5. 测试说明
### 5.1 运行单元测试
```bash
# 运行所有测试
./mvnw test
# 运行特定测试类
./mvnw test -Dtest=BaseMapperTest
# 运行特定测试方法
./mvnw test -Dtest=BaseMapperTest#testDtoToEntityConversion
```
### 5.2 测试覆盖率报告
```bash
# 生成测试覆盖率报告
./mvnw jacoco:report
```
测试覆盖率报告将生成在`target/site/jacoco/index.html`
### 5.3 主要测试组件
- **BaseMapperTest**: 测试对象映射功能
- **AbstractBaseDaoTest**: 测试数据访问层功能
- **国际化测试**: 验证多语言支持功能
## 6. 贡献指南
我们欢迎社区贡献来改进SMF Core框架。在参与贡献前,请阅读以下指南:
### 6.1 代码提交规范
1. **提交消息格式**: 使用清晰简洁的提交消息,遵循以下格式:
```
[类型]: 简短描述
详细描述(可选)
```
类型包括:feat(功能)、fix(修复)、docs(文档)、style(格式)、refactor(重构)、test(测试)
2. **代码风格**: 遵循项目现有的代码风格和约定
3. **单元测试**: 为新功能或修改添加适当的单元测试
### 6.2 贡献流程
1. Fork项目仓库到您的GitHub账户
2. 创建功能分支(feature/your-feature-name)或修复分支(fix/issue-number)
3. 在您的分支上进行开发和测试
4. 提交Pull Request,详细描述您的更改
5. 项目维护者将审核您的贡献并合并(如有必要,可能会要求您进行调整)
## 7. 许可信息
**SMF Core** 是一个专有软件项目,受版权保护。
© 2023 SMF Core Team. 保留所有权利。
未经版权所有者明确书面许可,不得以任何形式或通过任何方式使用、复制、修改、分发或传播本软件。
详细许可条款请参阅项目根目录下的**LICENSE**文件。
## 8. 联系/支持信息
### 8.1 获取支持
- **技术支持**: 发送邮件至 support@smf-core.com
- **问题报告**: 在项目的Issue跟踪系统中提交问题(如适用)
- **文档**: 请参考项目docs目录下的文档文件
### 8.2 项目维护团队
- 项目负责人:[项目负责人姓名]
- 技术架构师:[架构师姓名]
- 开发团队:[团队名称]
### 8.3 商务合作
如需商务合作或定制化需求,请联系:
- 邮箱:business@smf-core.com
- 电话:+86-XXX-XXXXXXXX
---
*最后更新时间:2024年*
---
**注意**: 本文档中的示例代码和配置仅供参考,实际使用时请根据您的具体环境和需求进行调整。
\ No newline at end of file
# SMF Core 版本变更日志
本文档记录SMF Core框架的所有重要变更。
## [1.0.0] - 2024年
### 新增特性
- **核心框架架构**
- 实现了基于Spring Boot的模块化核心架构
- 创建了AbstractBaseDao抽象类,提供统一的数据访问层
- 实现了BaseMapper接口,简化对象转换操作
- **数据持久层**
- 集成MongoDB作为主要数据存储
- 实现数据访问的CRUD操作封装
- 支持复杂查询条件构建
- **国际化支持**
- 实现多语言国际化机制
- 支持动态切换语言
- 提供默认的中英文资源文件
- **异常处理**
- 统一的异常处理机制
- 支持自定义异常类型
- 提供友好的错误响应格式
- **日志系统**
- 基于Log4j2的日志框架集成
- 支持多种日志级别配置
- 提供结构化日志输出
### 改进
- **性能优化**
- 优化数据库连接池配置
- 改进对象转换效率
- **开发体验**
- 提供完整的单元测试支持
- 集成Maven构建工具
- 提供代码质量检查配置
### 修复
- 修复BaseMapper接口在处理null参数时的类型歧义问题
- 修复多线程环境下的资源访问安全问题
## [0.1.0] - 2023年
### 初始版本
- **核心功能**
- 基本的项目结构搭建
- 主要接口定义
- 简单的业务逻辑实现
- **技术栈选择**
- Java 11
- Spring Boot 2.7.x
- MongoDB
- Maven
---
### 版本号格式说明
本项目使用语义化版本号(Semantic Versioning)格式:
**主版本号.次版本号.修订号**
- **主版本号**: 当有不兼容的API变更时递增
- **次版本号**: 当添加向下兼容的功能时递增
- **修订号**: 当进行向下兼容的问题修复时递增
---
*最后更新时间:2024年*
\ No newline at end of file
此文件的差异被折叠, 点击展开。
# SMF Core 架构文档
## 1. 系统概述
SMF Core 是一个模块化设计的核心服务框架,采用分层架构模式,提供了灵活、可扩展的数据访问和业务处理能力。本文档描述了框架的整体架构设计、主要组件及其交互关系。
## 2. 架构层次
SMF Core 框架采用经典的分层架构,从上到下依次为:
1. **接口层 (API Layer)**
- 提供对外的服务接口
- 处理请求路由和参数验证
2. **业务逻辑层 (Service Layer)**
- 实现核心业务逻辑
- 协调各组件之间的交互
3. **对象映射层 (Mapper Layer)**
- 负责DTO和Entity之间的转换
- 简化数据传输和对象关系映射
4. **数据访问层 (DAO Layer)**
- 提供数据持久化和检索功能
- 封装数据库操作细节
5. **基础设施层 (Infrastructure Layer)**
- 提供通用工具和辅助功能
- 包括国际化、日志、配置管理等
## 3. 核心组件
### 3.1 AbstractBaseDao
抽象基础数据访问对象,提供MongoDB数据操作的核心实现:
- **主要功能**
- 通用CRUD操作
- 分页查询支持
- 多条件查询
- 数据排序和过滤
- **设计特点**
- 使用泛型支持不同类型的实体
- 提供可扩展的查询接口
- 内置事务支持
### 3.2 BaseMapper
对象映射框架,提供DTO和Entity对象间的转换功能:
- **主要功能**
- 单个对象转换
- 集合对象批量转换
- 支持自定义转换规则
- **设计特点**
- 接口式设计,便于实现和扩展
- 类型安全的转换方法
- 支持null值处理
### 3.3 国际化支持组件
提供多语言国际化功能的核心组件:
- **主要功能**
- 多语言消息资源管理
- 动态语言切换
- 支持语言地区设置
- **设计特点**
- 基于Spring MessageSource构建
- 支持属性文件和JSON格式的资源文件
- 缓存优化的消息检索
### 3.4 日志记录系统
统一的日志管理组件:
- **主要功能**
- 多级日志记录
- 自定义日志格式
- 日志轮转和归档
- **设计特点**
- 基于Log4j2实现
- 支持多种输出目标
- 异步日志处理
## 4. 组件交互
### 4.1 数据流程
系统处理请求的数据流程如下:
1. 客户端发起请求到API层
2. API层进行参数验证并调用相应Service
3. Service层执行业务逻辑,必要时调用Mapper进行对象转换
4. Service层通过DAO层与数据库交互
5. DAO层执行数据操作并返回结果
6. 结果沿调用链返回给客户端
### 4.2 依赖关系
各核心组件之间的依赖关系:
- Service组件依赖Mapper和DAO组件
- Mapper组件作为独立功能,不依赖其他核心组件
- DAO组件依赖基础设施层提供的工具类
- 所有组件共享国际化和日志系统
## 5. 扩展性设计
### 5.1 接口扩展
框架提供了多个扩展点,允许用户自定义功能:
- 自定义Repository:继承AbstractBaseDao实现特定的数据访问需求
- 自定义Mapper:实现BaseMapper接口提供特定的对象转换逻辑
- 自定义转换器:实现Converter接口支持复杂对象转换
### 5.2 配置扩展
支持多种配置方式:
- JSON配置文件
- Spring环境变量
- 注解配置
- 运行时动态配置
## 6. 性能考量
### 6.1 缓存策略
- 多级缓存设计
- 查询结果缓存
- 配置缓存
- 对象转换缓存
### 6.2 并发处理
- 线程安全设计
- 异步操作支持
- 并行查询优化
## 7. 安全设计
### 7.1 数据安全
- 敏感数据加密
- 输入验证和净化
- 防SQL注入保护
### 7.2 访问控制
- 基于角色的权限控制
- 细粒度的API访问限制
- 操作审计日志
---
*最后更新时间:2024年*
\ No newline at end of file
此文件的差异被折叠, 点击展开。
# SMF Core 配置指南
## 1. 配置文件概述
SMF Core 框架使用多种配置文件管理不同方面的设置。本文档详细介绍了所有配置文件的结构、位置和可用选项,帮助您正确配置和定制框架行为。
## 2. 配置文件位置
所有配置文件均位于项目的 `src/main/resources/` 目录下:
```
src/main/resources/
├── config/ # 配置子目录
├── log4j2-spring.xml # 日志配置文件
├── smfclient.json # SMF客户端配置
└── smfcore.json # SMF核心配置
```
## 3. 核心配置文件 (smfcore.json)
`smfcore.json` 是框架最核心的配置文件,控制数据库连接、服务设置和全局行为。
### 3.1 完整配置示例
```json
{
"database": {
"mongo": {
"uri": "mongodb://localhost:27017/smf-core",
"connections": 10,
"maxWaitTime": 10000,
"connectionTimeout": 5000,
"socketTimeout": 5000,
"writeConcern": "ACKNOWLEDGED",
"readPreference": "PRIMARY"
}
},
"service": {
"port": 8080,
"contextPath": "/smf-core",
"threadPool": {
"coreSize": 10,
"maxSize": 50,
"queueCapacity": 100
}
},
"logging": {
"level": "INFO",
"file": "./logs/smf-core.log",
"maxFileSize": "10MB",
"maxHistory": 10
},
"i18n": {
"defaultLocale": "zh_CN",
"supportedLocales": ["zh_CN", "zh_TW", "en_US", "de_DE", "fr_FR", "ja_JP"],
"cacheDuration": 3600
},
"security": {
"enableXssProtection": true,
"enableCsrfProtection": true,
"allowedOrigins": ["*"]
},
"features": {
"enableAuditLog": true,
"enablePerformanceMonitoring": false,
"enableCaching": true
}
}
```
### 3.2 配置详解
#### 3.2.1 数据库配置
- `uri`: MongoDB连接字符串
- `connections`: 连接池大小
- `maxWaitTime`: 最大等待时间(毫秒)
- `connectionTimeout`: 连接超时时间(毫秒)
- `socketTimeout`: Socket超时时间(毫秒)
- `writeConcern`: 写入策略(ACKNOWLEDGED, W1, W2, JOURNALED等)
- `readPreference`: 读取偏好(PRIMARY, PRIMARY_PREFERRED, SECONDARY等)
#### 3.2.2 服务配置
- `port`: 服务端口
- `contextPath`: 应用上下文路径
- `threadPool`: 线程池配置
- `coreSize`: 核心线程数
- `maxSize`: 最大线程数
- `queueCapacity`: 队列容量
#### 3.2.3 日志配置
- `level`: 全局日志级别(TRACE, DEBUG, INFO, WARN, ERROR)
- `file`: 日志文件路径
- `maxFileSize`: 单个日志文件最大大小
- `maxHistory`: 保留的日志文件历史数量
#### 3.2.4 国际化配置
- `defaultLocale`: 默认语言环境
- `supportedLocales`: 支持的语言列表
- `cacheDuration`: 资源缓存持续时间(秒)
#### 3.2.5 安全配置
- `enableXssProtection`: 是否启用XSS保护
- `enableCsrfProtection`: 是否启用CSRF保护
- `allowedOrigins`: 允许的跨域来源
#### 3.2.6 功能开关
- `enableAuditLog`: 是否启用审计日志
- `enablePerformanceMonitoring`: 是否启用性能监控
- `enableCaching`: 是否启用缓存
## 4. 日志配置文件 (log4j2-spring.xml)
### 4.1 基本配置示例
```xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Properties>
<Property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Property>
<Property name="LOG_FILE">./logs/smf-core.log</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
<RollingFile name="File" fileName="${LOG_FILE}"
filePattern="./logs/smf-core-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
<!-- 自定义日志级别 -->
<Logger name="com.neotel.smfcore" level="DEBUG" additivity="false">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Logger>
</Loggers>
</Configuration>
```
## 5. 客户端配置文件 (smfclient.json)
客户端配置文件定义了连接SMF服务时的客户端行为和参数。
```json
{
"serverUrl": "http://localhost:8080/smf-core",
"connectTimeout": 5000,
"readTimeout": 10000,
"retryCount": 3,
"retryInterval": 1000,
"auth": {
"enabled": false,
"token": ""
},
"compression": {
"enabled": true,
"threshold": 1024
}
}
```
## 6. 环境变量配置
SMF Core 支持通过环境变量覆盖配置文件中的设置,格式为:
```
SMF_{配置路径}_{配置项}={值}
```
例如:
```
SMF_DATABASE_MONGO_URI=mongodb://user:pass@prod-db:27017/smf-core
SMF_SERVICE_PORT=8081
```
## 7. 运行时配置
### 7.1 通过JVM参数配置
您可以通过JVM参数覆盖配置:
```bash
java -jar smf-core.jar --smf.database.mongo.uri=mongodb://localhost:27017/smf-core
```
### 7.2 配置优先级
配置的应用优先级(从高到低):
1. JVM参数
2. 环境变量
3. 配置文件
## 8. 自定义配置
要创建自定义配置项,您可以:
1.`smfcore.json`的适当位置添加自定义部分
2. 使用Spring的`@ConfigurationProperties`注解绑定到Java类
示例:
```json
{
"custom": {
"myFeature": {
"enabled": true,
"settings": {
"param1": "value1",
"param2": 42
}
}
}
}
```
---
*最后更新时间:2024年*
\ No newline at end of file
此文件的差异被折叠, 点击展开。
# SMF Core 常见问题解答 (FAQ)
本文档汇总了使用SMF Core框架时常见的问题和解决方案,帮助开发者快速解决使用过程中遇到的困难。
## 1. 安装与配置问题
### 1.1 如何更改MongoDB连接设置?
**解答**:在`src/main/resources/smfcore.json`文件中修改数据库连接配置:
```json
{
"database": {
"mongo": {
"uri": "mongodb://username:password@host:port/database",
"connections": 20, // 连接池大小
"maxWaitTime": 15000 // 最大等待时间(毫秒)
}
}
}
```
### 1.2 如何更改服务端口?
**解答**:可以通过以下几种方式修改:
1.`smfcore.json`中设置:
```json
{
"service": {
"port": 8081
}
}
```
2. 通过环境变量:
```bash
export SMF_SERVICE_PORT=8081
```
3. 通过JVM参数:
```bash
java -jar smf-core.jar --smf.service.port=8081
```
### 1.3 如何启用日志调试模式?
**解答**:修改`smfcore.json`中的日志级别:
```json
{
"logging": {
"level": "DEBUG"
}
}
```
或者在`log4j2-spring.xml`中针对特定包设置更低的日志级别:
```xml
<Logger name="com.example.mysmfproject" level="DEBUG" additivity="false">
<AppenderRef ref="Console"/>
</Logger>
```
## 2. 数据访问问题
### 2.1 如何使用AbstractBaseDao进行复杂查询?
**解答**:可以使用Spring Data MongoDB的Query对象进行复杂查询:
```java
// 创建查询对象
Query query = new Query();
// 添加条件
query.addCriteria(Criteria.where("status").is("ACTIVE"));
query.addCriteria(Criteria.where("createdDate").gte(startDate).lte(endDate));
// 添加排序
query.with(Sort.by(Sort.Direction.DESC, "createdDate"));
// 执行查询
List<MyEntity> results = myDao.findByQuery(query);
```
### 2.2 如何处理分页查询?
**解答**:使用Pageable对象进行分页:
```java
// 创建分页请求
Pageable pageable = PageRequest.of(0, 10); // 第1页,每页10条
// 执行分页查询
List<MyEntity> entities = myDao.findByQuery(query, pageable);
// 获取总数
long totalCount = myDao.countByQuery(query);
```
### 2.3 如何处理数据库事务?
**解答**:SMF Core支持Spring的事务管理,在Service方法上添加`@Transactional`注解:
```java
@Service
public class UserService {
@Autowired
private UserDao userDao;
@Transactional
public void updateUserAndLogActivity(UserDto userDto) {
// 更新用户信息
UserEntity user = userDao.findById(userDto.getId());
user.setName(userDto.getName());
userDao.save(user);
// 记录操作日志
// 如果这里发生异常,前面的用户更新也会回滚
logActivity(user.getId(), "UPDATE");
}
}
```
## 3. 对象映射问题
### 3.1 BaseMapper接口的方法名与实现不一致怎么办?
**解答**:确保实现类正确实现了BaseMapper接口中定义的方法:
```java
// 正确的方法名是toEntity和toDto,不是dtoToEntity和entityToDto
public interface UserMapper extends BaseMapper<UserDto, UserEntity> {
}
@Component
class UserMapperImpl implements UserMapper {
@Override
public UserEntity toEntity(UserDto dto) {
// 实现代码
}
@Override
public UserDto toDto(UserEntity entity) {
// 实现代码
}
// 实现其他必需的方法...
}
```
### 3.2 如何处理null参数的情况?
**解答**:在实现类中添加null检查:
```java
@Override
public UserEntity toEntity(UserDto dto) {
if (dto == null) {
return null;
}
// 正常转换逻辑
}
```
调用时也可以添加类型转换避免歧义:
```java
UserEntity entity = mapper.toEntity((UserDto) null);
```
### 3.3 如何实现复杂的对象转换逻辑?
**解答**:在实现类中添加自定义转换逻辑:
```java
@Override
public UserEntity toEntity(UserDto dto) {
if (dto == null) return null;
UserEntity entity = new UserEntity();
entity.setId(dto.getId());
entity.setName(dto.getName());
// 复杂转换 - 例如枚举值转换
entity.setUserType(UserType.valueOf(dto.getUserType().toUpperCase()));
// 复杂转换 - 处理嵌套对象
if (dto.getAddress() != null) {
AddressEntity address = new AddressEntity();
address.setStreet(dto.getAddress().getStreet());
address.setCity(dto.getAddress().getCity());
entity.setAddress(address);
}
return entity;
}
```
## 4. 国际化问题
### 4.1 如何添加新的语言支持?
**解答**:
1. 在`src/main/resources/`目录下创建语言文件,例如`messages_en_US.properties`
2. 在`smfcore.json`中添加新语言到支持列表:
```json
{
"i18n": {
"defaultLocale": "zh_CN",
"supportedLocales": ["zh_CN", "en_US", "ja_JP"] // 添加新语言
}
}
```
### 4.2 如何动态切换语言?
**解答**:可以使用Spring的LocaleContextHolder来设置当前线程的语言环境:
```java
@RestController
public class LanguageController {
@GetMapping("/setLanguage")
public String setLanguage(@RequestParam String lang) {
Locale locale;
switch (lang) {
case "en": locale = Locale.US; break;
case "ja": locale = Locale.JAPAN; break;
default: locale = Locale.SIMPLIFIED_CHINESE;
}
LocaleContextHolder.setLocale(locale);
return "Language set to: " + lang;
}
}
```
## 5. 测试问题
### 5.1 如何模拟DAO层进行单元测试?
**解答**:使用Mockito来模拟DAO操作:
```java
@RunWith(MockitoJUnitRunner.class)
public class UserServiceTest {
@Mock
private UserDao userDao;
@Mock
private UserMapper userMapper;
@InjectMocks
private UserService userService;
@Test
public void testGetUserById() {
// 准备测试数据
String userId = "123";
UserEntity mockEntity = new UserEntity();
mockEntity.setId(userId);
mockEntity.setName("Test User");
UserDto expectedDto = new UserDto();
expectedDto.setId(userId);
expectedDto.setName("Test User");
// 设置模拟行为
when(userDao.findById(userId)).thenReturn(mockEntity);
when(userMapper.toDto(mockEntity)).thenReturn(expectedDto);
// 测试方法
UserDto result = userService.getUserById(userId);
// 验证结果
assertEquals(userId, result.getId());
assertEquals("Test User", result.getName());
// 验证交互
verify(userDao).findById(userId);
verify(userMapper).toDto(mockEntity);
}
}
```
### 5.2 如何测试AbstractBaseDao的方法?
**解答**:可以使用@DataMongoTest注解和嵌入式MongoDB进行集成测试:
```java
@DataMongoTest
public class UserDaoTest {
@Autowired
private UserDao userDao;
@Test
public void testSaveAndFindById() {
// 创建测试实体
UserEntity user = new UserEntity();
user.setName("Test User");
// 保存实体
user = userDao.save(user);
assertNotNull(user.getId());
// 查询并验证
UserEntity foundUser = userDao.findById(user.getId());
assertNotNull(foundUser);
assertEquals("Test User", foundUser.getName());
}
}
```
## 6. 性能优化问题
### 6.1 如何优化数据库查询性能?
**解答**:
1. **使用索引**:为常用查询字段创建索引
2. **限制返回字段**:只查询需要的字段
3. **使用分页**:避免一次性返回大量数据
4. **使用批量操作**:对多条记录的操作使用批量API
### 6.2 如何配置连接池以获得最佳性能?
**解答**:在`smfcore.json`中调整连接池参数:
```json
{
"database": {
"mongo": {
"connections": 30, // 根据并发需求调整
"maxWaitTime": 15000, // 连接等待超时
"connectionTimeout": 10000 // 连接建立超时
}
}
}
```
### 6.3 如何缓存常用数据?
**解答**:SMF Core支持Spring Cache,可以在Service方法上添加缓存注解:
```java
@Service
@EnableCaching
public class ProductService {
@Cacheable(value = "products", key = "#id")
public ProductDto getProductById(String id) {
// 这里的代码只会在缓存未命中时执行
return productDao.findById(id).map(productMapper::toDto).orElse(null);
}
@CacheEvict(value = "products", key = "#productDto.id")
public ProductDto updateProduct(ProductDto productDto) {
// 更新操作会清除对应缓存
// ...
}
}
```
## 7. 部署与维护问题
### 7.1 如何在生产环境部署SMF Core应用?
**解答**:
1. **构建可执行JAR**:
```bash
mvn clean package
```
2. **准备配置文件**:为生产环境准备专用配置文件
3. **使用系统服务**:配置为systemd服务或其他进程管理工具
4. **使用容器化部署**:创建Dockerfile并部署到Kubernetes
### 7.2 如何监控SMF Core应用的运行状态?
**解答**:SMF Core可以集成Spring Boot Actuator提供监控端点:
1. 添加依赖
2. 配置端点暴露
3. 集成Prometheus和Grafana等监控工具
### 7.3 如何进行健康检查?
**解答**:实现Spring的HealthIndicator接口:
```java
@Component
public class DatabaseHealthIndicator implements HealthIndicator {
@Autowired
private MongoTemplate mongoTemplate;
@Override
public Health health() {
try {
// 检查数据库连接
mongoTemplate.getDb().runCommand(new Document("ping", 1));
return Health.up().withDetail("database", "MongoDB is healthy").build();
} catch (Exception e) {
return Health.down().withException(e).build();
}
}
}
```
---
如果您遇到的问题在此FAQ中未得到解答,请联系技术支持团队获取进一步帮助。
---
*最后更新时间:2024年*
\ No newline at end of file
# SMF Core 迁移指南
本文档提供了SMF Core框架版本升级的迁移指南,帮助开发者顺利完成从旧版本到新版本的过渡。
## 从0.1.0版本迁移到1.0.0版本
### 1. 依赖升级
**Spring Boot版本升级**
确保在`pom.xml`中更新Spring Boot版本:
```xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.x</version> <!-- 或更新版本 -->
<relativePath/>
</parent>
```
### 2. BaseMapper接口使用变更
**方法命名调整**
在1.0.0版本中,BaseMapper接口的方法名称更加规范化,请确保您的实现类正确实现了新的方法名称:
**0.1.0版本(旧)**:
```java
public interface UserMapper {
UserEntity dtoToEntity(UserDto dto);
UserDto entityToDto(UserEntity entity);
List<UserEntity> dtosToEntities(List<UserDto> dtos);
List<UserDto> entitiesToDtos(List<UserEntity> entities);
}
```
**1.0.0版本(新)**:
```java
public interface UserMapper extends BaseMapper<UserDto, UserEntity> {
// 方法名称变为toEntity、toDto等
// 实现BaseMapper接口中的所有方法
}
```
### 3. null参数处理
1.0.0版本修复了BaseMapper接口在处理null参数时的类型歧义问题。在调用接口方法传递null值时,建议添加明确的类型转换以避免潜在的问题:
```java
// 推荐的方式
UserEntity entity = mapper.toEntity((UserDto) null);
UserDto dto = mapper.toDto((UserEntity) null);
```
### 4. 配置文件结构变更
配置文件`smfcore.json`的结构在1.0.0版本中更加规范化:
**1.0.0版本配置文件示例**:
```json
{
"database": {
"mongo": {
"uri": "mongodb://username:password@host:port/database",
"connections": 20,
"maxWaitTime": 15000
}
},
"service": {
"port": 8080,
"contextPath": "/api"
},
"logging": {
"level": "INFO",
"file": "logs/smf-core.log"
},
"i18n": {
"defaultLocale": "zh_CN",
"supportedLocales": ["zh_CN", "en_US"]
}
}
```
请根据上述格式调整您的配置文件。
### 5. 包结构变更
1.0.0版本调整了部分包结构,确保您的导入语句正确更新为新的包路径:
**0.1.0版本(旧)**:
```java
import com.smf.core.dao.BaseDao;
import com.smf.core.mapper.ObjectMapper;
```
**1.0.0版本(新)**:
```java
import com.smf.core.dao.AbstractBaseDao;
import com.smf.core.mapper.BaseMapper;
```
### 6. 异常处理方式变更
1.0.0版本实现了统一的异常处理机制,请使用新的异常类型:
```java
// 使用新的异常类
throw new ServiceException("业务处理失败", ErrorCode.BUSINESS_ERROR);
```
### 7. 测试代码调整
BaseMapperTest类中修复了null参数处理,在您自己的测试类中也应做相应调整:
```java
@Test
public void testToEntityWithNull() {
assertNull(mapper.toEntity((TestDto) null));
}
```
## 迁移建议
1. **增量迁移**:建议分模块、分批次进行迁移,而不是一次性迁移所有内容
2. **全面测试**:每次迁移后进行全面的单元测试、集成测试和回归测试
3. **备份**:在开始迁移前,确保对项目代码和配置文件进行完整备份
4. **查阅API文档**:详细了解新版本中的API变更,避免使用已废弃的方法
## 迁移常见问题
### 编译错误:找不到方法或类
**解决方法**:检查包路径和方法名称是否已按新版本要求更新,确认导入语句正确。
### 运行时错误:类型转换异常
**解决方法**:特别注意null参数的处理,添加明确的类型转换。
### 配置无法加载
**解决方法**:检查配置文件结构是否符合新版本要求,确保所有必要的配置项都已正确设置。
---
如果在迁移过程中遇到其他问题,请参考项目文档或联系技术支持团队获取进一步帮助。
---
*最后更新时间:2024年*
\ No newline at end of file
此文件的差异被折叠, 点击展开。
此文件的差异被折叠, 点击展开。
package com.neotel.smfcore.core.agv;
package com.neotel.smfcore.smfPlatform.agv;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.core.agv.util.AgvCache;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.smfPlatform.agv.util.AgvCache;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......
package com.neotel.smfcore.core.agv.bean;
package com.neotel.smfcore.smfPlatform.agv.bean;
import lombok.Data;
......
package com.neotel.smfcore.core.agv.util;
package com.neotel.smfcore.smfPlatform.agv.util;
import com.google.common.collect.Maps;
import org.springframework.stereotype.Component;
import java.util.Collection;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Component
public class AgvCache {
......
package com.neotel.smfcore.core.device.bean;
package com.neotel.smfcore.apiGateway.device.bean;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.enums.BOX_STATUS;
import lombok.Data;
import java.util.HashMap;
......
package com.neotel.smfcore.core.device.bean;
package com.neotel.smfcore.apiGateway.device.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
@Data
@AllArgsConstructor
......
package com.neotel.smfcore.core.device.bean;
package com.neotel.smfcore.apiGateway.device.bean;
import lombok.Data;
......
package com.neotel.smfcore.core.device.bean;
package com.neotel.smfcore.apiGateway.device.bean;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.message.enums.MessageType;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.system.service.po.AlarmInfo;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.apiGateway.device.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.enums.OP;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.smfPlatform.message.enums.MessageType;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.smfPlatform.system.service.po.AlarmInfo;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import lombok.Data;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;
......
package com.neotel.smfcore.core.device.bean;
package com.neotel.smfcore.apiGateway.device.bean;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import lombok.Data;
@Data
......
package com.neotel.smfcore.core.device.enums;
package com.neotel.smfcore.apiGateway.device.enums;
/**
* Created by sunke on 2021/7/13.
......
package com.neotel.smfcore.core.device.enums;
package com.neotel.smfcore.apiGateway.device.enums;
/**
* 操作码(0无操作(发送料仓状态给服务器),1扫码入库(扫码成功后发送给服务器),2 出库(服务器发送) )
......
package com.neotel.smfcore.core.device.enums;
package com.neotel.smfcore.apiGateway.device.enums;
/**
* 操作状态
......
package com.neotel.smfcore.core.device.handler;
package com.neotel.smfcore.apiGateway.device.handler;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.apiGateway.device.bean.StatusBean;
import javax.servlet.http.HttpServletRequest;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.core.api.SmfApi;
import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.bean.CodeBean;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.core.barcode.enums.SOLDER_STATUS;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.MsgInfo;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.handler.IDeviceHandler;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.inout.service.manager.IInOutDataManager;
import com.neotel.smfcore.core.inout.service.po.InOutData;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.message.util.DeviceMessageUtil;
import com.neotel.smfcore.core.msd.bean.MSDSettiings;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.core.selfAudit.enums.SELFAUDIT_STATUS;
import com.neotel.smfcore.core.selfAudit.service.manager.ISelfAuditManager;
import com.neotel.smfcore.core.selfAudit.service.po.SelfAudit;
import com.neotel.smfcore.core.selfAudit.util.SelfAuditUtil;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import com.neotel.smfcore.core.system.service.dao.IAlarmInfoDao;
import com.neotel.smfcore.core.system.service.manager.IHumitureManager;
import com.neotel.smfcore.core.system.service.po.AlarmInfo;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.service.po.Humiture;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.custom.micron20031.Micron20031Api;
import com.neotel.smfcore.custom.micron20031.bean.MInOutType;
import com.neotel.smfcore.security.service.manager.IGroupManager;
import com.neotel.smfcore.custom.siemens.bean.LotCheckInfo;
import com.neotel.smfcore.apiGateway.device.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.bean.MsgInfo;
import com.neotel.smfcore.apiGateway.device.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.enums.OP;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.apiGateway.device.handler.IDeviceHandler;
import com.neotel.smfcore.apiGateway.device.util.DataCache;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.shared.utils.ReelLockPosUtil;
import com.neotel.smfcore.integrations.apiInteraction.api.SmfApi;
import com.neotel.smfcore.integrations.apiInteraction.api.bean.CodeValidateParam;
import com.neotel.smfcore.businessServices.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.businessServices.barcode.enums.SOLDER_STATUS;
import com.neotel.smfcore.businessServices.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.businessServices.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.utils.CodeResolve;
import com.neotel.smfcore.businessServices.production.inout.manager.IInOutDataManager;
import com.neotel.smfcore.businessServices.production.inout.po.InOutData;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.smfPlatform.message.util.DeviceMessageUtil;
import com.neotel.smfcore.businessServices.production.msd.bean.MSDSettiings;
import com.neotel.smfcore.businessServices.order.LiteOrderCache;
import com.neotel.smfcore.businessServices.order.service.po.LiteOrder;
import com.neotel.smfcore.businessServices.order.service.po.LiteOrderItem;
import com.neotel.smfcore.businessServices.selfAudit.enums.SELFAUDIT_STATUS;
import com.neotel.smfcore.businessServices.selfAudit.service.po.SelfAudit;
import com.neotel.smfcore.businessServices.selfAudit.util.SelfAuditUtil;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.bean.OrderSetting;
import com.neotel.smfcore.smfPlatform.system.service.dao.IAlarmInfoDao;
import com.neotel.smfcore.smfPlatform.system.service.manager.IHumitureManager;
import com.neotel.smfcore.smfPlatform.system.service.po.AlarmInfo;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.service.po.Humiture;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import com.neotel.smfcore.smfPlatform.system.util.TaskService;
import com.neotel.smfcore.integrations.custom.micron20031.Micron20031Api;
import com.neotel.smfcore.integrations.custom.micron20031.bean.MInOutType;
import com.neotel.smfcore.smfPlatform.security.service.manager.IGroupManager;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -472,7 +468,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
} else if (BOX_STATUS.IN_FAILED == status) {//入库失败
//暂不处理
} else if (BOX_STATUS.OUT_FINISHED == status) {//出仓完成
finishedOutPos(statusBean.getCid(),posName,barcode,executeTime,OP_STATUS.OUT_BOX);
finishedOutPos(statusBean.getCid(),posName,barcode,executeTime, OP_STATUS.OUT_BOX);
} else if (BOX_STATUS.OUT_END == status) {//出库完成(放到仓门口
endOutTask(statusBean.getCid(),posName,barcode);
}
......
package com.neotel.smfcore.core.device.rest;
package com.neotel.smfcore.apiGateway.device.rest;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.neotel.smfcore.common.bean.ReelLockPosInfo;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.api.SmfApi;
import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.bean.CodeBean;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.bean.PosInfo;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.message.util.DeviceMessageUtil;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.storage.service.manager.IStorageManager;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.dao.IAlarmInfoDao;
import com.neotel.smfcore.core.system.service.manager.IDataLogManager;
import com.neotel.smfcore.core.system.service.po.AlarmInfo;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.device.handler.IDeviceHandler;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.security.service.manager.IGroupManager;
import com.neotel.smfcore.apiGateway.device.common.bean.PosInfo;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.device.common.enums.OP_STATUS;
import com.neotel.smfcore.apiGateway.device.common.handler.IDeviceHandler;
import com.neotel.smfcore.shared.bean.ReelLockPosInfo;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.shared.utils.ReelLockPosUtil;
import com.neotel.smfcore.shared.utils.SecurityUtils;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.integrations.apiInteraction.api.SmfApi;
import com.neotel.smfcore.integrations.apiInteraction.api.bean.CodeValidateParam;
import com.neotel.smfcore.businessServices.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.businessServices.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.service.po.Component;
import com.neotel.smfcore.businessServices.barcode.utils.CodeResolve;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.smfPlatform.message.util.DeviceMessageUtil;
import com.neotel.smfcore.businessServices.storage.service.manager.IStorageManager;
import com.neotel.smfcore.businessServices.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.dao.IAlarmInfoDao;
import com.neotel.smfcore.smfPlatform.system.service.manager.IDataLogManager;
import com.neotel.smfcore.smfPlatform.system.service.po.AlarmInfo;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.TaskService;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.apiGateway.device.common.util.DataCache;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......
package com.neotel.smfcore.core.device.rest;
package com.neotel.smfcore.apiGateway.device.rest;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.neotel.smfcore.common.bean.ReelLockPosInfo;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.api.SmfApi;
import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.message.util.DeviceMessageUtil;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.dao.IAlarmInfoDao;
import com.neotel.smfcore.core.system.service.po.AlarmInfo;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.device.common.enums.OP_STATUS;
import com.neotel.smfcore.shared.bean.ReelLockPosInfo;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.shared.utils.ReelLockPosUtil;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.integrations.apiInteraction.api.SmfApi;
import com.neotel.smfcore.integrations.apiInteraction.api.bean.CodeValidateParam;
import com.neotel.smfcore.businessServices.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.utils.CodeResolve;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.util.DataCache;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.smfPlatform.message.util.DeviceMessageUtil;
import com.neotel.smfcore.businessServices.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.dao.IAlarmInfoDao;
import com.neotel.smfcore.smfPlatform.system.service.po.AlarmInfo;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.TaskService;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......
package com.neotel.smfcore.core.device.rest;
package com.neotel.smfcore.apiGateway.device.rest;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.core.system.util.EquipStatusUtil;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.smfPlatform.system.util.EquipStatusUtil;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......
package com.neotel.smfcore.core.device.util;
package com.neotel.smfcore.shared.util;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
......@@ -6,51 +6,41 @@ import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.inList.util.InListCache;
import com.neotel.smfcore.core.inout.service.manager.IInOutDataManager;
import com.neotel.smfcore.core.inout.service.po.InOutData;
import com.neotel.smfcore.core.language.service.bean.LanguageInfo;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.storage.bean.InventoryItem;
import com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE;
import com.neotel.smfcore.core.storage.enums.COMPATIBLE_TYPE;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.rest.dto.InventoryItemDto;
import com.neotel.smfcore.core.storage.rest.query.InventoryQueryCriteria;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import com.neotel.smfcore.core.system.service.dao.ICacheItemDao;
import com.neotel.smfcore.core.system.service.dao.ISettingsDao;
import com.neotel.smfcore.core.barcode.bean.PlateSizeBean;
import com.neotel.smfcore.core.storage.service.manager.IStorageManager;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.system.service.po.CacheItem;
import com.neotel.smfcore.core.system.service.po.Settings;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.businessServices.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.service.po.Component;
import com.neotel.smfcore.businessServices.barcode.utils.CodeResolve;
import com.neotel.smfcore.businessServices.inList.util.InListCache;
import com.neotel.smfcore.businessServices.production.inout.manager.IInOutDataManager;
import com.neotel.smfcore.businessServices.production.inout.po.InOutData;
import com.neotel.smfcore.smfPlatform.language.service.bean.LanguageInfo;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.businessServices.storage.bean.InventoryItem;
import com.neotel.smfcore.businessServices.storage.enums.CHECKOUT_TYPE;
import com.neotel.smfcore.businessServices.storage.enums.COMPATIBLE_TYPE;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.bean.OrderSetting;
import com.neotel.smfcore.smfPlatform.system.service.dao.ICacheItemDao;
import com.neotel.smfcore.smfPlatform.system.service.dao.ISettingsDao;
import com.neotel.smfcore.businessServices.barcode.bean.PlateSizeBean;
import com.neotel.smfcore.businessServices.storage.service.manager.IStorageManager;
import com.neotel.smfcore.businessServices.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.smfPlatform.system.service.po.CacheItem;
import com.neotel.smfcore.smfPlatform.system.service.po.Settings;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import javax.annotation.PostConstruct;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
* 缓存
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RestController;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Service
@Slf4j
public class LineBoxHandler extends BaseDeviceHandler {
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.storage.bean.InventoryItem;
import com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.custom.djk20388.util.AgvDataUtil;
import com.neotel.smfcore.security.annotation.AnonymousPostMapping;
import com.neotel.smfcore.custom.siemens.SiemensApi;
import com.neotel.smfcore.apiGateway.device.common.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.shared.utils.SecurityUtils;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.storage.bean.InventoryItem;
import com.neotel.smfcore.businessServices.storage.enums.CHECKOUT_TYPE;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import com.neotel.smfcore.integrations.custom.djk20388.util.AgvDataUtil;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousPostMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......@@ -104,7 +101,7 @@ public class MimoBoxHandler extends BaseDeviceHandler {
} else if (BOX_STATUS.IN_FAILED == status) {//入库失败
//暂不处理
} else if (BOX_STATUS.OUT_FINISHED == status) {//出仓完成
finishedOutPos(statusBean.getCid(), posName,barcode,executeTime,OP_STATUS.OUT_BOX);
finishedOutPos(statusBean.getCid(), posName,barcode,executeTime, OP_STATUS.OUT_BOX);
} else if (BOX_STATUS.OUT_END == status) {//出库完成(放到仓门口
endOutTask(statusBean.getCid(), posName, barcode);
}
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.custom.djk20388.util.AgvDataUtil;
import com.neotel.smfcore.apiGateway.device.common.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import com.neotel.smfcore.integrations.custom.djk20388.util.AgvDataUtil;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.custom.djk20388.util.AgvDataUtil;
import com.neotel.smfcore.apiGateway.device.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.apiGateway.device.common.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import com.neotel.smfcore.integrations.custom.djk20388.util.AgvDataUtil;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......
package com.neotel.smfcore.core.dashboard.mimo;
package com.neotel.smfcore.smfPlatform.dashboard.mimo;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.BetweenData;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.dashboard.bean.dto.first.ElecKanbanBoxStatusDto;
import com.neotel.smfcore.core.dashboard.bean.dto.first.InOutDataDto;
import com.neotel.smfcore.core.inout.service.manager.IInOutDataManager;
import com.neotel.smfcore.core.inout.service.po.InOutData;
import com.neotel.smfcore.core.kanban.rest.bean.dto.BoxStatusDto;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.message.rest.bean.dto.MessageDto;
import com.neotel.smfcore.core.message.rest.bean.mapstruct.MessageMapper;
import com.neotel.smfcore.core.message.rest.bean.query.MessageCriteria;
import com.neotel.smfcore.core.message.service.manager.IMessageManager;
import com.neotel.smfcore.core.message.service.po.Message;
import com.neotel.smfcore.core.msd.bean.MSDSettiings;
import com.neotel.smfcore.core.report.rest.dto.InventoryBoxDto;
import com.neotel.smfcore.core.report.rest.dto.InventoryGroupDto;
import com.neotel.smfcore.core.report.rest.query.ReportExtQuery;
import com.neotel.smfcore.core.storage.bean.UsageItem;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.security.service.manager.IGroupManager;
import com.neotel.smfcore.security.service.po.Group;
import com.neotel.smfcore.shared.bean.BetweenData;
import com.neotel.smfcore.shared.bean.PageData;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.shared.utils.QueryHelp;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.apiGateway.device.common.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.common.util.DataCache;
import com.neotel.smfcore.smfPlatform.dashboard.bean.dto.first.ElecKanbanBoxStatusDto;
import com.neotel.smfcore.smfPlatform.dashboard.bean.dto.first.InOutDataDto;
import com.neotel.smfcore.businessServices.production.inout.manager.IInOutDataManager;
import com.neotel.smfcore.businessServices.production.inout.po.InOutData;
import com.neotel.smfcore.smfPlatform.kanban.rest.bean.dto.BoxStatusDto;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.smfPlatform.message.rest.bean.dto.MessageDto;
import com.neotel.smfcore.smfPlatform.message.rest.bean.mapstruct.MessageMapper;
import com.neotel.smfcore.smfPlatform.message.rest.bean.query.MessageCriteria;
import com.neotel.smfcore.smfPlatform.message.service.manager.IMessageManager;
import com.neotel.smfcore.smfPlatform.message.service.po.Message;
import com.neotel.smfcore.businessServices.production.msd.bean.MSDSettiings;
import com.neotel.smfcore.businessServices.reporting.rest.dto.InventoryBoxDto;
import com.neotel.smfcore.businessServices.reporting.rest.dto.InventoryGroupDto;
import com.neotel.smfcore.businessServices.reporting.rest.query.ReportExtQuery;
import com.neotel.smfcore.businessServices.storage.bean.UsageItem;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import com.neotel.smfcore.smfPlatform.system.util.TaskService;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import com.neotel.smfcore.smfPlatform.security.service.manager.IGroupManager;
import com.neotel.smfcore.smfPlatform.security.service.po.Group;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
......@@ -207,8 +207,8 @@ public class SmdBoxMimoController {
}
}
if (StringUtils.isNotBlank(cid)) {
Date currentDate = com.neotel.smfcore.common.utils.DateUtil.getCurrentDate("yyyy-MM-dd");
List<InOutData> inOutDataList = inOutDataManager.findByDate(currentDate, com.neotel.smfcore.common.utils.DateUtil.addDays(currentDate, 1), null);
Date currentDate = com.neotel.smfcore.shared.utils.DateUtil.getCurrentDate("yyyy-MM-dd");
List<InOutData> inOutDataList = inOutDataManager.findByDate(currentDate, com.neotel.smfcore.shared.utils.DateUtil.addDays(currentDate, 1), null);
ElecKanbanBoxStatusDto dto = new ElecKanbanBoxStatusDto();
StatusBean statusBean = DevicesStatusUtil.getStatusBean(cid);
if (statusBean != null) {
......
package com.neotel.smfcore.core.device.bean;
package com.neotel.smfcore.apiGateway.device.common.bean;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
public class NLShelfOperateBean {
private String sessionId;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.order.enums.ORDER_COLOR;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import com.neotel.smfcore.core.system.service.po.DataLog;
import lombok.Data;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.businessServices.order.enums.ORDER_COLOR;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.smfPlatform.system.bean.OrderSetting;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.alibaba.fastjson.JSON;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.barcode.rest.bean.dto.BarcodeDto;
import com.neotel.smfcore.core.barcode.rest.bean.mapstruct.BarcodeMapper;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.apiGateway.device.common.util.DataCache;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.SecurityUtils;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.businessServices.barcode.rest.bean.dto.BarcodeDto;
import com.neotel.smfcore.businessServices.barcode.rest.bean.mapstruct.BarcodeMapper;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import com.neotel.smfcore.smfPlatform.system.util.TaskService;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.barcode.bean.CodeBean;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.inList.util.InListCache;
import com.neotel.smfcore.core.order.enums.ORDER_COLOR;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.security.TokenProvider;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.shared.utils.SecurityUtils;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.businessServices.barcode.bean.CodeBean;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.service.po.Component;
import com.neotel.smfcore.businessServices.inList.util.InListCache;
import com.neotel.smfcore.businessServices.order.enums.ORDER_COLOR;
import com.neotel.smfcore.businessServices.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.businessServices.order.service.po.LiteOrder;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.bean.OrderSetting;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import com.neotel.smfcore.smfPlatform.security.TokenProvider;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -32,7 +32,6 @@ import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.awt.*;
import java.util.*;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.message.enums.MessageType;
import com.neotel.smfcore.core.message.service.manager.IMessageManager;
import com.neotel.smfcore.core.message.service.po.Message;
import com.neotel.smfcore.core.order.enums.ORDER_COLOR;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.security.TokenProvider;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.security.service.manager.IUserManager;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.SecurityUtils;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.integrations.apiInteraction.api.bean.CodeValidateParam;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.smfPlatform.message.enums.MessageType;
import com.neotel.smfcore.smfPlatform.message.service.manager.IMessageManager;
import com.neotel.smfcore.smfPlatform.message.service.po.Message;
import com.neotel.smfcore.businessServices.order.enums.ORDER_COLOR;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.bean.OrderSetting;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import com.neotel.smfcore.smfPlatform.security.TokenProvider;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import com.neotel.smfcore.smfPlatform.security.service.manager.IUserManager;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.order.enums.ORDER_COLOR;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.businessServices.order.enums.ORDER_COLOR;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.bean.OrderSetting;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......
package com.neotel.smfcore.core.device.handler.impl;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.order.enums.ORDER_COLOR;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.businessServices.order.enums.ORDER_COLOR;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.smfPlatform.system.bean.OrderSetting;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.NLShelfOperateBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.inList.util.InListCache;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.order.enums.ORDER_COLOR;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.TokenProvider;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.SecurityUtils;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.integrations.apiInteraction.api.bean.CodeValidateParam;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.apiGateway.device.common.bean.NLShelfOperateBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.businessServices.inList.util.InListCache;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.businessServices.order.enums.ORDER_COLOR;
import com.neotel.smfcore.businessServices.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.businessServices.order.service.po.LiteOrder;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.bean.OrderSetting;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import com.neotel.smfcore.smfPlatform.security.TokenProvider;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import net.bytebuddy.asm.Advice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.ObjectUtils;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.security.TokenProvider;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.smfPlatform.security.TokenProvider;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.core.barcode.bean.CodeBean;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.materialLog.service.manager.IMaterialLogManager;
import com.neotel.smfcore.core.materialLog.service.po.MaterialLog;
import com.neotel.smfcore.core.message.util.DeviceMessageUtil;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.dao.IAlarmInfoDao;
import com.neotel.smfcore.core.system.service.po.AlarmInfo;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.custom.micron1053.util.MicronDataCache;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.apiGateway.device.common.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP_STATUS;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.businessServices.barcode.bean.CodeBean;
import com.neotel.smfcore.businessServices.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.utils.CodeResolve;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.businessServices.production.materialLog.service.manager.IMaterialLogManager;
import com.neotel.smfcore.businessServices.production.materialLog.service.po.MaterialLog;
import com.neotel.smfcore.smfPlatform.message.util.DeviceMessageUtil;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.dao.IAlarmInfoDao;
import com.neotel.smfcore.smfPlatform.system.service.po.AlarmInfo;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.integrations.custom.micron1053.util.MicronDataCache;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......@@ -218,7 +219,7 @@ public class RobotBoxHandler extends BaseDeviceHandler {
} else if (BOX_STATUS.IN_FAILED == status) {//入库失败
//暂不处理
} else if (BOX_STATUS.OUT_FINISHED == status) {//出仓完成
finishedOutPos(statusBean.getCid(), posName,barcode, executeTime,OP_STATUS.OUT_BOX);
finishedOutPos(statusBean.getCid(), posName,barcode, executeTime, OP_STATUS.OUT_BOX);
} else if (BOX_STATUS.OUT_END == status) {//出库完成(放到仓门口
//更改出库状态为OUT_DOOR
List<DataLog> finishedTasks = taskService.getFinishedTasks();
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import lombok.ToString;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
@Service
......
package com.neotel.smfcore.apiGateway.device.rest.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class SpBoxDto {
@ApiModelProperty(value="料仓 cid")
private String cid;
@ApiModelProperty("是否是单盘出库(联电指出库项目,默认为false即默认批量出库)")
private boolean singleOut = false;
@ApiModelProperty("入料区门状态")
private String inDoorStatus;
@ApiModelProperty("出料区门状态")
private String outDoorStatus;
@ApiModelProperty("库位号ID")
private String posId;
@ApiModelProperty("库位号")
private String posName;
@ApiModelProperty("二维码(Reel ID)")
private String barcode;
@ApiModelProperty("物料编号")
private String partNumber;
@ApiModelProperty("数量")
private int num;
@ApiModelProperty("出入库类型")
private int type;
private String status;
@ApiModelProperty("状态:OP_STATUS")
private String taskStatus;
public String getTaskStatus(){return status;}
@ApiModelProperty("指定批次Id")
private String batchId;
@ApiModelProperty("批次显示内容")
private String batchInfo;
@ApiModelProperty("指令来源:站位列表 指定订单工单 MES")
private String sourceType;
@ApiModelProperty("来源 id")
private String sourceId;
@ApiModelProperty("来源名称")
private String sourceName;
@ApiModelProperty("子来源 ID(单个站位)")
private String subSourceId;
@ApiModelProperty("子来源名称")
private String subSourceInfo;
@ApiModelProperty("创建人")
private String creator;
@ApiModelProperty("操作人")
private String operator;
@ApiModelProperty("关联条码,夹具时关联相关的物料,用于入库完成时插入相关物料")
private List<String> relationCodes;
private String memo;
@ApiModelProperty("搅拌时间(锡膏搅拌任务使用)")
private int mixTime;
@ApiModelProperty("亮灯料架颜色")
private String lightColor = "";
@ApiModelProperty("创建时间")
private Date createDate = new Date();
@ApiModelProperty("更新时间")
private Date updateDate=new Date();
}
package com.neotel.smfcore.core.dashboard.bean.dto.sp;
package com.neotel.smfcore.smfPlatform.dashboard.bean.dto.sp;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
package com.neotel.smfcore.apiGateway.device.rest.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SpSettingsDto {
@ApiModelProperty("冷藏区最低温度")
private float minColdAreaTemp = -5.0F;
@ApiModelProperty("冷藏区最高温度")
private float maxColdAreaTemp = 10.0F;
@ApiModelProperty("搅拌速度倍数:搅拌自转是公转的多少倍")
private float spMixSpeedFactor=1.5F;
@ApiModelProperty("最低温度")
private float minTemperature = 22.0F;
@ApiModelProperty("最高温度")
private float maxTemperature = 38.0F;
@ApiModelProperty("回温完成自动开始搅拌")
private boolean autoStartMixed=false;
}
package com.neotel.smfcore.apiGateway.device.rest.dto;
import com.neotel.smfcore.businessServices.barcode.enums.SOLDER_STATUS;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.io.Serializable;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SpTaskDto implements Serializable {
@ApiModelProperty("ID")
private String id;
@ApiModelProperty("料仓 ID")
private String storageId;
@ApiModelProperty("料仓 ID")
private String posId;
@ApiModelProperty("仓位名称")
private String posName;
@ApiModelProperty("二维码(Reel ID)")
private String barcode;
@ApiModelProperty("物料编号")
private String partNumber;
@ApiModelProperty("重量")
private int amount;
@ApiModelProperty("锡膏状态")
private String solderStatus = SOLDER_STATUS.NONE.name();
@ApiModelProperty("锡膏指定时间出库")
private Date needOutDate;
}
package com.neotel.smfcore.apiGateway.device.common.bean.mapstruct;
import com.neotel.smfcore.apiGateway.device.sp.dto.SpSettingsDto;
import com.neotel.smfcore.shared.base.BaseMapper;
import com.neotel.smfcore.businessServices.solder.bean.SpSettings;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring" ,unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface SpSettingsMapper extends BaseMapper<SpSettingsDto, SpSettings> {
}
package com.neotel.smfcore.core.solder.handler;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.bean.BarcodeRule;
import com.neotel.smfcore.core.barcode.bean.CodeBean;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.core.barcode.enums.SOLDER_STATUS;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.handler.impl.BaseDeviceHandler;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.ReelLockPosUtil;
import com.neotel.smfcore.shared.utils.StorageConstants;
import com.neotel.smfcore.integrations.apiInteraction.api.bean.CodeValidateParam;
import com.neotel.smfcore.businessServices.barcode.bean.BarcodeRule;
import com.neotel.smfcore.businessServices.barcode.bean.CodeBean;
import com.neotel.smfcore.businessServices.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.businessServices.barcode.enums.SOLDER_STATUS;
import com.neotel.smfcore.businessServices.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.businessServices.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.service.po.Component;
import com.neotel.smfcore.apiGateway.device.common.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
......
package com.neotel.smfcore.core.device.rest;
package com.neotel.smfcore.apiGateway.device.rest;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.shared.util.DataCache;
import com.neotel.smfcore.businessServices.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.util.TaskService;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......
package com.neotel.smfcore.core.solder.rest;
package com.neotel.smfcore.businessServices.solder.rest;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.core.api.SmfApi;
import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.core.barcode.enums.SOLDER_STATUS;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.solder.rest.bean.dto.SpTaskDto;
import com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE;
import com.neotel.smfcore.core.storage.rest.dto.CheckOutDto;
import com.neotel.smfcore.core.storage.rest.dto.InventoryItemDto;
import com.neotel.smfcore.core.storage.rest.dto.StoragePosDto;
import com.neotel.smfcore.core.storage.rest.mapstruct.StoragePosMapper;
import com.neotel.smfcore.core.storage.rest.query.StoragePosFindCriteria;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.manager.impl.StoragePosManagerImpl;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.rest.bean.query.TaskQueryCondition;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.annotation.AnonymousGetMapping;
import com.neotel.smfcore.shared.bean.PageData;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.DateUtil;
import com.neotel.smfcore.shared.utils.QueryHelp;
import com.neotel.smfcore.integrations.apiInteraction.api.SmfApi;
import com.neotel.smfcore.integrations.apiInteraction.api.bean.CodeValidateParam;
import com.neotel.smfcore.businessServices.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.businessServices.barcode.enums.SOLDER_STATUS;
import com.neotel.smfcore.businessServices.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.businessServices.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.service.po.Component;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.device.util.DataCache;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.apiGateway.device.rest.dto.SpTaskDto;
import com.neotel.smfcore.businessServices.storage.enums.CHECKOUT_TYPE;
import com.neotel.smfcore.businessServices.storage.rest.dto.CheckOutDto;
import com.neotel.smfcore.businessServices.storage.rest.dto.InventoryItemDto;
import com.neotel.smfcore.businessServices.storage.rest.dto.StoragePosDto;
import com.neotel.smfcore.businessServices.storage.rest.mapstruct.StoragePosMapper;
import com.neotel.smfcore.businessServices.storage.rest.query.StoragePosFindCriteria;
import com.neotel.smfcore.businessServices.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.businessServices.storage.service.manager.impl.StoragePosManagerImpl;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.rest.bean.query.TaskQueryCondition;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.TaskService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
......
package com.neotel.smfcore.core.solder.rest;
package com.neotel.smfcore.businessServices.solder.rest;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.base.IExcelDownLoad;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.*;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.core.barcode.enums.SOLDER_STATUS;
import com.neotel.smfcore.core.barcode.rest.bean.dto.ComponentDto;
import com.neotel.smfcore.core.barcode.rest.bean.mapstruct.ComponentMapper;
import com.neotel.smfcore.core.barcode.rest.bean.query.ComponentQueryCriteria;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.msd.bean.MSDSettiings;
import com.neotel.smfcore.core.solder.bean.SpSettings;
import com.neotel.smfcore.core.solder.rest.bean.dto.SpSettingsDto;
import com.neotel.smfcore.core.solder.rest.bean.mapstruct.SpSettingsMapper;
import com.neotel.smfcore.core.storage.rest.dto.CheckOutDto;
import com.neotel.smfcore.core.storage.rest.dto.StoragePosDto;
import com.neotel.smfcore.core.storage.rest.mapstruct.StoragePosMapper;
import com.neotel.smfcore.core.storage.rest.query.StoragePosFindCriteria;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.shared.base.IExcelDownLoad;
import com.neotel.smfcore.shared.bean.PageData;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.*;
import com.neotel.smfcore.businessServices.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.businessServices.barcode.enums.SOLDER_STATUS;
import com.neotel.smfcore.businessServices.barcode.rest.bean.dto.ComponentDto;
import com.neotel.smfcore.businessServices.barcode.rest.bean.mapstruct.ComponentMapper;
import com.neotel.smfcore.businessServices.barcode.rest.bean.query.ComponentQueryCriteria;
import com.neotel.smfcore.businessServices.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.businessServices.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.service.po.Component;
import com.neotel.smfcore.apiGateway.device.util.DataCache;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.businessServices.production.msd.bean.MSDSettiings;
import com.neotel.smfcore.businessServices.solder.bean.SpSettings;
import com.neotel.smfcore.apiGateway.device.rest.dto.SpSettingsDto;
import com.neotel.smfcore.apiGateway.device.common.bean.mapstruct.SpSettingsMapper;
import com.neotel.smfcore.businessServices.storage.rest.dto.CheckOutDto;
import com.neotel.smfcore.businessServices.storage.rest.dto.StoragePosDto;
import com.neotel.smfcore.businessServices.storage.rest.mapstruct.StoragePosMapper;
import com.neotel.smfcore.businessServices.storage.rest.query.StoragePosFindCriteria;
import com.neotel.smfcore.businessServices.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.util.TaskService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.ReelLockPosInfo;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.bean.NLShelfOperateBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.inList.util.InListCache;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.order.enums.ORDER_COLOR;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.bean.OrderSetting;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.TokenProvider;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.device.common.enums.OP_STATUS;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.utils.DateUtil;
import com.neotel.smfcore.shared.utils.SecurityUtils;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.service.po.Component;
import com.neotel.smfcore.businessServices.barcode.utils.CodeResolve;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.common.util.DataCache;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import com.neotel.smfcore.smfPlatform.system.util.TaskService;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import java.awt.*;
import java.util.*;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.message.util.DeviceMessageUtil;
import com.neotel.smfcore.core.storage.bean.UsageItem;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.custom.micron1053.util.MicronDataCache;
import com.neotel.smfcore.apiGateway.device.common.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.device.common.enums.OP_STATUS;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.shared.utils.ReelLockPosUtil;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.smfPlatform.message.util.DeviceMessageUtil;
import com.neotel.smfcore.businessServices.storage.bean.UsageItem;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.integrations.custom.micron1053.util.MicronDataCache;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.handler.impl.BaseDeviceHandler;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.apiGateway.device.common.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP_STATUS;
import com.neotel.smfcore.shared.utils.StorageConstants;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.NLShelfOperateBean;
import com.neotel.smfcore.core.device.bean.VirtualOperateBean;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.security.TokenProvider;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.SecurityUtils;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.apiGateway.device.common.bean.VirtualOperateBean;
import com.neotel.smfcore.businessServices.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.businessServices.order.service.po.LiteOrder;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.security.TokenProvider;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -29,7 +26,6 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.handler.impl.BaseDeviceHandler;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.device.common.enums.OP_STATUS;
import com.neotel.smfcore.shared.utils.StorageConstants;
import com.neotel.smfcore.apiGateway.device.common.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
......
package com.neotel.smfcore.core.device.rest.dto;
package com.neotel.smfcore.apiGateway.device.sp.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
@Getter
@Setter
......
package com.neotel.smfcore.core.device.rest.dto;
package com.neotel.smfcore.apiGateway.device.sp.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.stereotype.Service;
import java.io.Serializable;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.NLShelfOperateBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.rest.dto.XLCPosBarcodeDto;
import com.neotel.smfcore.core.device.rest.dto.XLCPosDetailDto;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.rest.dto.CheckOutDto;
import com.neotel.smfcore.core.storage.rest.dto.StoragePosDto;
import com.neotel.smfcore.core.storage.rest.mapstruct.StoragePosMapper;
import com.neotel.smfcore.core.storage.rest.query.StoragePosQueryCriteria;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.apiGateway.device.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.shared.utils.QueryHelp;
import com.neotel.smfcore.shared.utils.StorageConstants;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.apiGateway.device.common.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.apiGateway.device.sp.dto.XLCPosBarcodeDto;
import com.neotel.smfcore.apiGateway.device.sp.dto.XLCPosDetailDto;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.rest.mapstruct.StoragePosMapper;
import com.neotel.smfcore.businessServices.storage.rest.query.StoragePosQueryCriteria;
import com.neotel.smfcore.businessServices.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
......
package com.neotel.smfcore.core.device.handler.impl;
package com.neotel.smfcore.apiGateway.device.common.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.enums.OP;
import com.neotel.smfcore.apiGateway.device.common.enums.OP_STATUS;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.apiGateway.device.common.bean.BoxStatusBean;
import com.neotel.smfcore.apiGateway.device.common.bean.StatusBean;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.businessServices.storage.enums.DeviceType;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.DevicesStatusUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......@@ -75,7 +76,7 @@ public class XLRBoxHandler extends BaseDeviceHandler {
if (BOX_STATUS.IN_FINISHED == status) {//入仓完成
finishedPutIn(statusBean.getCid(),posName,barcode,executeTime);
} else if (BOX_STATUS.OUT_FINISHED == status) {//出仓完成
finishedOutPos(statusBean.getCid(),posName,barcode,executeTime,OP_STATUS.OUT_BOX);
finishedOutPos(statusBean.getCid(),posName,barcode,executeTime, OP_STATUS.OUT_BOX);
} else if (BOX_STATUS.OUT_END == status) {//出库完成(放到仓门口
log.info(statusBean.getCid() +"将物料从库位["+posName+"]出库到门口/料串完成");
reelOnShelf(statusBean.getCid(),posName);
......
package com.neotel.smfcore.core.equipment.bean;
package com.neotel.smfcore.smfPlatform.equipment.bean;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......
package com.neotel.smfcore.core.equipment.bean;
package com.neotel.smfcore.smfPlatform.equipment.bean;
import com.google.common.base.Strings;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.core.message.enums.MessageType;
import com.neotel.smfcore.smfPlatform.equipment.enums.EquipmentType;
import com.neotel.smfcore.smfPlatform.message.enums.MessageType;
import lombok.Data;
import lombok.ToString;
......
package com.neotel.smfcore.core.equipment.enums;
package com.neotel.smfcore.smfPlatform.equipment.enums;
import com.google.common.collect.Lists;
......
package com.neotel.smfcore.core.equipment.handler;
package com.neotel.smfcore.smfPlatform.equipment.handler;
import com.neotel.smfcore.core.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.smfPlatform.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.smfPlatform.equipment.enums.EquipmentType;
import javax.servlet.http.HttpServletRequest;
......
package com.neotel.smfcore.core.equipment.handler.impl;
package com.neotel.smfcore.smfPlatform.equipment.handler.impl;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.core.agv.util.AgvCache;
import com.neotel.smfcore.core.dashboard.bean.dto.box.MesInfoDto;
import com.neotel.smfcore.core.equipment.bean.EquipMsg;
import com.neotel.smfcore.core.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.core.equipment.handler.IEquipmentHandler;
import com.neotel.smfcore.core.message.util.DeviceMessageUtil;
import com.neotel.smfcore.core.system.util.EquipStatusUtil;
import com.neotel.smfcore.apiGateway.agv.util.AgvCache;
import com.neotel.smfcore.smfPlatform.dashboard.bean.dto.box.MesInfoDto;
import com.neotel.smfcore.smfPlatform.equipment.bean.EquipMsg;
import com.neotel.smfcore.smfPlatform.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.smfPlatform.equipment.enums.EquipmentType;
import com.neotel.smfcore.smfPlatform.equipment.handler.IEquipmentHandler;
import com.neotel.smfcore.smfPlatform.message.util.DeviceMessageUtil;
import com.neotel.smfcore.smfPlatform.system.util.EquipStatusUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......
package com.neotel.smfcore.core.equipment.rest;
package com.neotel.smfcore.smfPlatform.equipment.rest;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.equipment.util.EquipmentCache;
import com.neotel.smfcore.core.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.core.equipment.handler.IEquipmentHandler;
import com.neotel.smfcore.core.equipment.service.po.Equipment;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.smfPlatform.equipment.util.EquipmentCache;
import com.neotel.smfcore.smfPlatform.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.smfPlatform.equipment.enums.EquipmentType;
import com.neotel.smfcore.smfPlatform.equipment.handler.IEquipmentHandler;
import com.neotel.smfcore.smfPlatform.equipment.service.po.Equipment;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......
package com.neotel.smfcore.core.equipment.rest;
package com.neotel.smfcore.smfPlatform.equipment.rest;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.HttpHelper;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.core.equipment.rest.dto.EquipConfigInfoDto;
import com.neotel.smfcore.core.equipment.rest.mapstruct.EquipConfigInfoMapper;
import com.neotel.smfcore.core.equipment.util.EquipConfigUtil;
import com.neotel.smfcore.core.equipment.util.bean.EquipConfigInfo;
import com.neotel.smfcore.custom.hanwha.handler.TMSApis;
import com.neotel.smfcore.custom.hanwha.handler.TMSCommunicator;
import com.neotel.smfcore.custom.panacim.PanaApiController;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.shared.utils.HttpHelper;
import com.neotel.smfcore.smfPlatform.equipment.enums.EquipmentType;
import com.neotel.smfcore.smfPlatform.equipment.rest.dto.EquipConfigInfoDto;
import com.neotel.smfcore.smfPlatform.equipment.rest.mapstruct.EquipConfigInfoMapper;
import com.neotel.smfcore.smfPlatform.equipment.util.EquipConfigUtil;
import com.neotel.smfcore.smfPlatform.equipment.util.bean.EquipConfigInfo;
import com.neotel.smfcore.integrations.custom.hanwha.handler.TMSApis;
import com.neotel.smfcore.integrations.custom.hanwha.handler.TMSCommunicator;
import com.neotel.smfcore.integrations.custom.panacim.PanaApiController;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.neotel.smfcore.core.equipment.rest;
package com.neotel.smfcore.smfPlatform.equipment.rest;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.dashboard.bean.dto.box.MesInfoDto;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.core.equipment.rest.dto.EquipGroupDto;
import com.neotel.smfcore.core.equipment.rest.dto.EquipKanbanDto;
import com.neotel.smfcore.core.equipment.rest.dto.NsViewDto;
import com.neotel.smfcore.core.equipment.util.EquipmentCache;
import com.neotel.smfcore.core.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.core.equipment.rest.dto.EquipStatusDto;
import com.neotel.smfcore.core.equipment.service.po.Equipment;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.system.util.EquipStatusUtil;
import com.neotel.smfcore.custom.hanwha.handler.TMSCommunicator;
import com.neotel.smfcore.custom.nexim.bean.NeximConfig;
import com.neotel.smfcore.custom.nexim.config.NeximCacheConfig;
import com.neotel.smfcore.custom.nexim.util.NeximUtil;
import com.neotel.smfcore.custom.panacim.PanaApiController;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.smfPlatform.dashboard.bean.dto.box.MesInfoDto;
import com.neotel.smfcore.apiGateway.device.util.DataCache;
import com.neotel.smfcore.smfPlatform.equipment.enums.EquipmentType;
import com.neotel.smfcore.smfPlatform.equipment.rest.dto.EquipGroupDto;
import com.neotel.smfcore.smfPlatform.equipment.rest.dto.EquipKanbanDto;
import com.neotel.smfcore.smfPlatform.equipment.rest.dto.NsViewDto;
import com.neotel.smfcore.smfPlatform.equipment.util.EquipmentCache;
import com.neotel.smfcore.smfPlatform.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.smfPlatform.equipment.rest.dto.EquipStatusDto;
import com.neotel.smfcore.smfPlatform.equipment.service.po.Equipment;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.smfPlatform.system.util.EquipStatusUtil;
import com.neotel.smfcore.integrations.custom.hanwha.handler.TMSCommunicator;
import com.neotel.smfcore.integrations.custom.nexim.bean.NeximConfig;
import com.neotel.smfcore.integrations.custom.nexim.config.NeximCacheConfig;
import com.neotel.smfcore.integrations.custom.nexim.util.NeximUtil;
import com.neotel.smfcore.integrations.custom.panacim.PanaApiController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
......
package com.neotel.smfcore.core.equipment.rest;
package com.neotel.smfcore.smfPlatform.equipment.rest;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.core.equipment.rest.dto.EquipmentDto;
import com.neotel.smfcore.core.equipment.rest.mapstruct.EquipmentMapper;
import com.neotel.smfcore.core.equipment.rest.query.EquipmentQueryCriteria;
import com.neotel.smfcore.core.equipment.service.manager.IEquipmentManager;
import com.neotel.smfcore.core.equipment.service.po.Equipment;
import com.neotel.smfcore.core.equipment.util.EquipmentCache;
import com.neotel.smfcore.core.storage.rest.dto.StorageDto;
import com.neotel.smfcore.core.storage.rest.query.StorageQueryCriteria;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.shared.bean.PageData;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.QueryHelp;
import com.neotel.smfcore.shared.utils.SecurityUtils;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.smfPlatform.equipment.enums.EquipmentType;
import com.neotel.smfcore.smfPlatform.equipment.rest.dto.EquipmentDto;
import com.neotel.smfcore.smfPlatform.equipment.rest.mapstruct.EquipmentMapper;
import com.neotel.smfcore.smfPlatform.equipment.rest.query.EquipmentQueryCriteria;
import com.neotel.smfcore.smfPlatform.equipment.service.manager.IEquipmentManager;
import com.neotel.smfcore.smfPlatform.equipment.service.po.Equipment;
import com.neotel.smfcore.smfPlatform.equipment.util.EquipmentCache;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
......@@ -28,7 +25,6 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......
package com.neotel.smfcore.core.equipment.rest.dto;
package com.neotel.smfcore.smfPlatform.equipment.rest.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
package com.neotel.smfcore.core.equipment.rest.dto;
package com.neotel.smfcore.smfPlatform.equipment.rest.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
......
package com.neotel.smfcore.core.equipment.rest.dto;
package com.neotel.smfcore.smfPlatform.equipment.rest.dto;
import com.neotel.smfcore.core.kanban.rest.bean.dto.GroupStatusDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
......
package com.neotel.smfcore.core.equipment.rest.dto;
package com.neotel.smfcore.smfPlatform.equipment.rest.dto;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.smfPlatform.equipment.enums.EquipmentType;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
......
package com.neotel.smfcore.core.equipment.rest.dto;
package com.neotel.smfcore.smfPlatform.equipment.rest.dto;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.smfPlatform.equipment.enums.EquipmentType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
......
package com.neotel.smfcore.core.equipment.rest.dto;
package com.neotel.smfcore.smfPlatform.equipment.rest.dto;
import com.neotel.smfcore.core.dashboard.bean.dto.box.MesInfoDto;
import com.neotel.smfcore.core.equipment.bean.EquipMsg;
import com.neotel.smfcore.smfPlatform.dashboard.bean.dto.box.MesInfoDto;
import com.neotel.smfcore.smfPlatform.equipment.bean.EquipMsg;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
package com.neotel.smfcore.core.equipment.rest.mapstruct;
package com.neotel.smfcore.smfPlatform.equipment.rest.mapstruct;
import com.neotel.smfcore.common.base.BaseMapper;
import com.neotel.smfcore.core.equipment.rest.dto.EquipConfigInfoDto;
import com.neotel.smfcore.core.equipment.util.bean.EquipConfigInfo;
import com.neotel.smfcore.shared.base.BaseMapper;
import com.neotel.smfcore.smfPlatform.equipment.rest.dto.EquipConfigInfoDto;
import com.neotel.smfcore.smfPlatform.equipment.util.bean.EquipConfigInfo;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.neotel.smfcore.core.equipment.rest.mapstruct;
package com.neotel.smfcore.smfPlatform.equipment.rest.mapstruct;
import com.neotel.smfcore.common.base.BaseMapper;
import com.neotel.smfcore.core.equipment.rest.dto.EquipmentDto;
import com.neotel.smfcore.core.equipment.service.po.Equipment;
import com.neotel.smfcore.shared.base.BaseMapper;
import com.neotel.smfcore.smfPlatform.equipment.rest.dto.EquipmentDto;
import com.neotel.smfcore.smfPlatform.equipment.service.po.Equipment;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
......
package com.neotel.smfcore.core.equipment.rest.query;
package com.neotel.smfcore.smfPlatform.equipment.rest.query;
import com.neotel.smfcore.common.annotation.QueryCondition;
import com.neotel.smfcore.common.bean.BetweenData;
import com.neotel.smfcore.shared.annotation.QueryCondition;
import com.neotel.smfcore.shared.bean.BetweenData;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
......
package com.neotel.smfcore.core.equipment.service.dao;
package com.neotel.smfcore.smfPlatform.equipment.service.dao;
import com.neotel.smfcore.common.base.IBaseDao;
import com.neotel.smfcore.shared.base.IBaseDao;
public interface IEquipmentDao extends IBaseDao {
}
package com.neotel.smfcore.core.equipment.service.dao.impl;
package com.neotel.smfcore.smfPlatform.equipment.service.dao.impl;
import com.neotel.smfcore.common.base.AbstractBaseDao;
import com.neotel.smfcore.core.equipment.service.dao.IEquipmentDao;
import com.neotel.smfcore.core.equipment.service.po.Equipment;
import com.neotel.smfcore.shared.base.AbstractBaseDao;
import com.neotel.smfcore.smfPlatform.equipment.service.dao.IEquipmentDao;
import com.neotel.smfcore.smfPlatform.equipment.service.po.Equipment;
import org.springframework.stereotype.Service;
@Service
......
package com.neotel.smfcore.core.equipment.service.manager;
package com.neotel.smfcore.smfPlatform.equipment.service.manager;
import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.equipment.service.po.Equipment;
import com.neotel.smfcore.shared.base.IBaseManager;
import com.neotel.smfcore.smfPlatform.equipment.service.po.Equipment;
import java.util.List;
......
package com.neotel.smfcore.core.equipment.service.manager.impl;
package com.neotel.smfcore.smfPlatform.equipment.service.manager.impl;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.equipment.service.dao.IEquipmentDao;
import com.neotel.smfcore.core.equipment.service.manager.IEquipmentManager;
import com.neotel.smfcore.core.equipment.service.po.Equipment;
import com.neotel.smfcore.shared.bean.PageData;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.smfPlatform.equipment.service.dao.IEquipmentDao;
import com.neotel.smfcore.smfPlatform.equipment.service.manager.IEquipmentManager;
import com.neotel.smfcore.smfPlatform.equipment.service.po.Equipment;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
......
package com.neotel.smfcore.core.equipment.service.po;
package com.neotel.smfcore.smfPlatform.equipment.service.po;
import com.neotel.smfcore.common.base.BasePo;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.shared.base.BasePo;
import com.neotel.smfcore.smfPlatform.equipment.enums.EquipmentType;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
......
package com.neotel.smfcore.core.equipment.util;
package com.neotel.smfcore.smfPlatform.equipment.util;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.core.equipment.util.bean.EquipConfigInfo;
import com.neotel.smfcore.shared.utils.Constants;
import com.neotel.smfcore.shared.utils.JsonUtil;
import com.neotel.smfcore.apiGateway.device.util.DataCache;
import com.neotel.smfcore.smfPlatform.equipment.enums.EquipmentType;
import com.neotel.smfcore.smfPlatform.equipment.util.bean.EquipConfigInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......
package com.neotel.smfcore.core.equipment.util;
package com.neotel.smfcore.smfPlatform.equipment.util;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.equipment.service.manager.IEquipmentManager;
import com.neotel.smfcore.core.equipment.service.po.Equipment;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.smfPlatform.equipment.service.manager.IEquipmentManager;
import com.neotel.smfcore.smfPlatform.equipment.service.po.Equipment;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
......
package com.neotel.smfcore.core.equipment.util.bean;
package com.neotel.smfcore.smfPlatform.equipment.util.bean;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.util.LinkedHashMap;
import java.util.Map;
@Data
@Slf4j
......
package com.neotel.smfcore.core.humiture.rest.bean.dto;
package com.neotel.smfcore.smfPlatform.humiture.rest.bean.dto;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.core.kanban.rest.bean.dto.BoxStatusDto;
import com.neotel.smfcore.core.system.service.po.Humiture;
import com.neotel.smfcore.shared.bean.PageData;
import com.neotel.smfcore.smfPlatform.system.service.po.Humiture;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @date 2022-12-05
* @author sunke
......
package com.neotel.smfcore.core.humiture.rest.bean.query;
package com.neotel.smfcore.smfPlatform.humiture.rest.bean.query;
import com.neotel.smfcore.common.annotation.QueryCondition;
import com.neotel.smfcore.common.bean.BetweenData;
import com.neotel.smfcore.shared.annotation.QueryCondition;
import com.neotel.smfcore.shared.bean.BetweenData;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
......
package com.neotel.smfcore.core.humiture.rest;
package com.neotel.smfcore.smfPlatform.humiture.rest;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.base.IExcelDownLoad;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.utils.*;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.humiture.rest.bean.dto.HumitureDto;
import com.neotel.smfcore.core.humiture.rest.bean.query.HumitureQueryCriteria;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.msd.bean.MSDSettiings;
import com.neotel.smfcore.core.solder.bean.SpSettings;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.system.service.manager.IHumitureManager;
import com.neotel.smfcore.core.system.service.po.Humiture;
import com.neotel.smfcore.shared.base.IExcelDownLoad;
import com.neotel.smfcore.shared.bean.PageData;
import com.neotel.smfcore.shared.utils.*;
import com.neotel.smfcore.apiGateway.device.util.DataCache;
import com.neotel.smfcore.smfPlatform.humiture.rest.bean.dto.HumitureDto;
import com.neotel.smfcore.smfPlatform.humiture.rest.bean.query.HumitureQueryCriteria;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
import com.neotel.smfcore.smfPlatform.msd.bean.MSDSettiings;
import com.neotel.smfcore.businessServices.solder.bean.SpSettings;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.smfPlatform.system.service.manager.IHumitureManager;
import com.neotel.smfcore.smfPlatform.system.service.po.Humiture;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......
package com.neotel.smfcore.core.virtual.controller;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.barcode.bean.CodeBean;
import com.neotel.smfcore.core.barcode.enums.BARCODE_SOURCE;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.core.barcode.rest.bean.dto.BarcodeDto;
import com.neotel.smfcore.core.barcode.rest.bean.mapstruct.BarcodeMapper;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.rest.bean.mapstruct.TaskMapper;
import com.neotel.smfcore.core.system.service.manager.IDataLogManager;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.core.virtual.util.ShortUniqueCodeUtil;
package com.neotel.smfcore.smfPlatform.virtual.controller;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.DateUtil;
import com.neotel.smfcore.shared.utils.SecurityUtils;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.businessServices.barcode.bean.CodeBean;
import com.neotel.smfcore.businessServices.barcode.enums.BARCODE_SOURCE;
import com.neotel.smfcore.businessServices.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.businessServices.barcode.rest.bean.dto.BarcodeDto;
import com.neotel.smfcore.businessServices.barcode.rest.bean.mapstruct.BarcodeMapper;
import com.neotel.smfcore.businessServices.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.businessServices.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.service.po.Component;
import com.neotel.smfcore.businessServices.barcode.utils.CodeResolve;
import com.neotel.smfcore.apiGateway.device.enums.OP;
import com.neotel.smfcore.apiGateway.agv.device.enums.OP_STATUS;
import com.neotel.smfcore.apiGateway.device.util.DataCache;
import com.neotel.smfcore.businessServices.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.businessServices.storage.service.po.Storage;
import com.neotel.smfcore.businessServices.storage.service.po.StoragePos;
import com.neotel.smfcore.smfPlatform.system.rest.bean.mapstruct.TaskMapper;
import com.neotel.smfcore.smfPlatform.system.service.manager.IDataLogManager;
import com.neotel.smfcore.smfPlatform.system.service.po.DataLog;
import com.neotel.smfcore.smfPlatform.system.util.TaskService;
import com.neotel.smfcore.smfPlatform.virtual.util.ShortUniqueCodeUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......
package com.neotel.smfcore.smfPlatform.virtual.util;
import java.util.concurrent.atomic.AtomicInteger;
public class ShortUniqueCodeUtil {
// 使用36进制(0-9,a-z)可以表示更多组合
private static final int RADIX = 36;
// 最后时间戳和序列号
private static volatile long lastTimestamp = 0L;
private static final AtomicInteger sequence = new AtomicInteger(0);
// 序列号最大值(保留2位36进制数)
private static final int MAX_SEQUENCE = RADIX * RADIX;
/**
* 生成6位不重复的唯一码
*
* @return 6位36进制的唯一码(包含数字和小写字母)
*/
public static synchronized String generate() {
long currentTime = System.currentTimeMillis();
// 如果同一毫秒内,增加序列号
if (currentTime == lastTimestamp) {
int seq = sequence.incrementAndGet();
if (seq >= MAX_SEQUENCE) {
// 序列号用尽,等待到下一毫秒
while (currentTime <= lastTimestamp) {
currentTime = System.currentTimeMillis();
}
sequence.set(0);
}
} else {
sequence.set(0);
}
lastTimestamp = currentTime;
// 将时间戳和序列号转换为36进制字符串
String timePart = Long.toString(currentTime, RADIX);
String seqPart = String.format("%02d", sequence.get());
// 组合并确保长度为6
String fullCode = timePart + seqPart;
if (fullCode.length() > 6) {
fullCode = fullCode.substring(fullCode.length() - 6);
} else if (fullCode.length() < 6) {
fullCode = String.format("%6s", fullCode).replace(' ', '0');
}
return fullCode;
}
}
package com.neotel.smfcore.smfPlatform.xRay.rest;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.shared.bean.ResultBean;
import com.neotel.smfcore.shared.exception.ValidateException;
import com.neotel.smfcore.shared.utils.DateUtil;
import com.neotel.smfcore.shared.utils.StringUtils;
import com.neotel.smfcore.businessServices.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.utils.CodeResolve;
import com.neotel.smfcore.smfPlatform.xRay.service.manager.IXrayPrintDataManager;
import com.neotel.smfcore.smfPlatform.xRay.service.po.XrayPrintData;
import com.neotel.smfcore.smfPlatform.security.annotation.AnonymousAccess;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@Slf4j
@RestController
@RequestMapping("service/equipment/xRay")
public class XrayDeviceController {
@Autowired
private IXrayPrintDataManager xrayPrintDataManager;
@Autowired
private CodeResolve codeResolve;
@Autowired
private IBarcodeManager barcodeManager;
@ApiOperation("1584手动点料功能:上传打印参数")
@PostMapping("/uploadMResult")
@AnonymousAccess
public ResultBean uploadMResult(@RequestBody Map<String,String> paramMap) {
String reelId=paramMap.get("reelId");
String fullCode=paramMap.get("fullCode");
String printParam=paramMap.get("printParam");
int qty=0;
if(paramMap.containsKey("qty")){
qty= Convert.toInt(paramMap.get("qty"));
}
if (ObjectUtil.isEmpty(reelId)) {
return ResultBean.newErrorResult(1, "smfcore.valueCanotNull", "{0}不能为空", new String[]{"reelId"});
}
if (ObjectUtil.isEmpty(fullCode)) {
return ResultBean.newErrorResult(1, "smfcore.valueCanotNull", "{0}不能为空", new String[]{"fullCode"});
}
if (ObjectUtil.isEmpty(printParam)) {
return ResultBean.newErrorResult(1, "smfcore.valueCanotNull", "{0}不能为空", new String[]{"printParam"});
}
XrayPrintData printData=new XrayPrintData(reelId,fullCode,qty,printParam);
log.info("uploadMResult: reelID="+reelId+",qty="+qty+",fullCode="+fullCode+",printParam="+printParam);
xrayPrintDataManager.save(printData);
return ResultBean.newOkResult("");
}
@ApiOperation("1584手动点料功能:获取打印参数")
@PostMapping("/getMResult")
@AnonymousAccess
public ResultBean getMResult(@RequestBody Map<String,String> paramMap) {
String barcodeStr = paramMap.get("barcodes");
if (ObjectUtil.isEmpty(barcodeStr)) {
return ResultBean.newErrorResult(1, "smfcore.valueCanotNull", "{0}不能为空", new String[]{"barcodes"});
}
XrayPrintData data = xrayPrintDataManager.findByReelID(barcodeStr);
if (data == null) {
//解析条码
Barcode barcode = codeResolve.resolveOneValideBarcode(barcodeStr);
if (barcode != null) {
data = xrayPrintDataManager.findByReelID(barcodeStr);
}
}
if (data != null) {
return ResultBean.newOkResult(data);
}
return ResultBean.newErrorResult(-1, "", "not find data");
}
@ApiOperation("1588点料验证:是否需要点料,未入库条码不需要点料")
@PostMapping("/isNeedCounting")
@AnonymousAccess
public ResultBean isNeedCounting(@RequestBody Map<String,String> paramMap) {
String barcodeStr = paramMap.get("barcodes");
log.info("isNeedCounting: 条码:barcodes:" + barcodeStr);
if (ObjectUtil.isEmpty(barcodeStr)) {
return ResultBean.newErrorResult(1, "smfcore.valueCanotNull", "{0}不能为空", new String[]{"barcodes"});
}
Barcode barcode = null;
try {
barcode = codeResolve.resolveOneValideBarcode(barcodeStr);
} catch (ValidateException ex) {
log.error(ex.getDefaultMsg());
}
//已入库的条码需要点料
if (barcode == null) {
return ResultBean.newErrorResult(-1, "smfcore.valueNotExist", "{0}[{1}]不存在", new String[]{"barcode", barcodeStr});
}
if (barcode.getPutInTime() <= -1) {
log.info("isNeedCounting: 条码:" + barcode.getBarcode() + "未入库过,不需要点料");
return ResultBean.newErrorResult(1, "", "new barcode");
} else {
DateTime putIntime = new DateTime(barcode.getPutInTime());
log.info("isNeedCounting: 条码:" + barcode.getBarcode() + "首次入库时间=" + DateUtil.toDateString(putIntime, "yyyy-MM-dd HH:mm:ss") + ",需要点料");
return ResultBean.newOkResult("true");
}
// return ResultBean.newErrorResult(-1, "", "not find data");
}
@ApiOperation("1588点料:传点料数量到服务器")
@RequestMapping(value = "xrayUpdateAmount")
@AnonymousAccess
public ResultBean xrayUpdateAmount(@RequestBody Map<String,String> paramMaps) {
String amountStr = paramMaps.get("amount");
String barcodeStr = paramMaps.get("barcode");
String fullBarcode = paramMaps.get("fullCode");
boolean needResolve = false;
String offlineMode = paramMaps.get("offlineMode");
if (ObjectUtil.isNotEmpty(offlineMode) && offlineMode.equalsIgnoreCase("true")) {
needResolve = true;
}
log.info("xrayUpdateAmount: 点料信息:barcode:" + barcodeStr + ",amount为:" + amountStr + ",offlineMode=" + offlineMode);
if (StringUtils.isNotBlank(barcodeStr)) {
Barcode barcode = barcodeManager.findByBarcode(barcodeStr);
if (needResolve && barcode == null && ObjectUtil.isNotEmpty(fullBarcode)) {
try {
//解析条码
barcode = codeResolve.resolveOneValideBarcode(fullBarcode);
} catch (ValidateException ex) {
log.error(ex.getDefaultMsg());
}
}
if (barcode != null) {
int oldQty = barcode.getAmount();
int qty = NumberUtil.parseInt(amountStr);
barcode.setAmount(qty);
barcodeManager.save(barcode);
log.info("点料信息:barcode:" + barcodeStr + ",旧数量:" + oldQty + ",新数量=" + qty + "");
return ResultBean.newOkResult(qty);
}
}
return ResultBean.newErrorResult(-1, "smfcore.valueNotExist", "{0}[{1}]不存在", new String[]{"barcode", barcodeStr});
}
}
package com.neotel.smfcore.smfPlatform.xRay.service.dao;
import com.neotel.smfcore.shared.base.IBaseDao;
public interface IXrayPrintDataDao extends IBaseDao {
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!