设备线体管理系统:批量导入设备线体数据
设备线体管理系统:批量导入设备线体数据
实体类:ApsProcessConfig
@Data
@EqualsAndHashCode(callSuper = true)
@TableName('APS_PROCESS_CONFIG')
public class ApsProcessConfig extends BaseEntity {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = 'id', type=IdType.AUTO)
private Long id;
/**
* 设备编号
*/
private Long deviceCode;
/**
* wiotCode
*/
private Long wiotCode;
/**
* 设备名称
*/
private String wiotDeviceName;
/**
* mes设备编号
*/
private String mesDeviceNo;
/**
* aps系统内设备名称
*/
private String apsDeviceName;
/**
* 工序编号
*/
private Integer processNo;
/**
* 工序名称
*/
private String processName;
/**
* 工作中心
*/
private String workStation;
/**
* 月度产能
*/
private String monthlyCapacity;
/**
* 单位
*/
private String unit;
/**
* 是否删除
*/
@TableLogic
private Boolean isDeleted;
/**
* 产线分组
*/
private String processGroup;
/**
* 公司编码
*/
private String companyCode;
}
说明:
wiotCode在系统中是唯一的。- 同一个产线分组下,设备名称是唯一的。
数据传输对象:ApsProcessConfigDTO
public class ApsProcessConfigDTO {
/**
* 设备编号
*/
private Long deviceCode;
/**
* wiotCode
*/
private Long wiotCode;
/**
* 设备名称
*/
private String wiotDeviceName;
/**
* mes设备编号
*/
private String mesDeviceNo;
/**
* aps系统内设备名称
*/
private String apsDeviceName;
/**
* 工序编号
*/
private Integer processNo;
/**
* 工序名称
*/
private String processName;
/**
* 工作中心
*/
private String workStation;
/**
* 月度产能
*/
private String monthlyCapacity;
/**
* 单位
*/
private String unit;
/**
* 产线分组
*/
private String processGroup;
/**
* 公司编码
*/
private String companyCode;
}
批量导入设备线体接口
接口参数: List<ApsProcessConfigDTO>
接口返回值: boolean
接口实现逻辑:
- 遍历传入的设备线体列表,对于每个设备线体,进行以下判断:
- 判断
wiotCode是否为空,如果为空,则返回导入失败。 - 判断
wiotCode是否已存在于数据库中,如果存在,则返回导入失败。 - 判断设备名称是否已存在于同一个产线分组中,如果存在,则返回导入失败。
- 判断
- 验证通过后,将设备线体数据插入数据库中。可以使用 MyBatis-Plus 提供的
saveBatch方法,可以批量插入设备线体数据,提高插入效率。 - 返回导入成功的结果。
示例代码:
public boolean importProcessConfig(List<ApsProcessConfigDTO> processConfigDTOs) {
// 遍历设备线体列表
for (ApsProcessConfigDTO processConfigDTO : processConfigDTOs) {
// 判断wiotCode是否为空
if (processConfigDTO.getWiotCode() == null) {
return false;
}
// 判断wiotCode是否已存在于数据库中
if (processConfigDao.existsByWiotCode(processConfigDTO.getWiotCode())) {
return false;
}
// 判断设备名称是否已存在于同一个产线分组中
if (processConfigDao.existsByWiotDeviceNameAndProcessGroup(
processConfigDTO.getWiotDeviceName(), processConfigDTO.getProcessGroup())) {
return false;
}
}
// 验证通过后,将设备线体数据插入数据库中
List<ApsProcessConfig> processConfigs = processConfigDTOs.stream()
.map(this::convertDtoToEntity)
.collect(Collectors.toList());
processConfigDao.saveBatch(processConfigs);
return true;
}
private ApsProcessConfig convertDtoToEntity(ApsProcessConfigDTO dto) {
// 将数据传输对象转换为实体类
ApsProcessConfig entity = new ApsProcessConfig();
// ...
return entity;
}
注意:
- 以上代码仅供参考,具体的实现逻辑需要根据实际需求进行调整。
- 在插入数据库时,需要确保数据库表结构与实体类属性一致。
- 可以根据实际情况添加其他验证逻辑,例如验证设备编号是否为空等。
- 为了提高导入效率,建议使用异步任务或多线程来处理批量导入操作。
希望以上内容对您有所帮助。如果您还有其他问题,请随时提出。
原文地址: https://www.cveoy.top/t/topic/pIv2 著作权归作者所有。请勿转载和采集!