package com.nanometer.smartlab.service;
|
|
import com.nanometer.smartlab.dao.SysContainerSensorsDao;
|
import com.nanometer.smartlab.dao.SysLaboratoryContainerDao;
|
import com.nanometer.smartlab.dao.SysWarehouseContainerDao;
|
import com.nanometer.smartlab.entity.SysContainerSensors;
|
import com.nanometer.smartlab.entity.SysLaboratoryContainer;
|
import com.nanometer.smartlab.entity.SysWarehouseContainer;
|
import com.nanometer.smartlab.entity.dto.ContainerStatusMngDto;
|
import com.nanometer.smartlab.util.Constants;
|
import com.nanometer.smartlab.util.IDUtils;
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
import org.apache.commons.lang3.time.DateUtils;
|
import org.apache.log4j.Logger;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.Assert;
|
|
import javax.annotation.Resource;
|
import java.sql.SQLException;
|
import java.util.*;
|
|
|
@Service("sysContainerSensorsService")
|
public class SysContainerSensorsServiceImpl implements SysContainerSensorsService {
|
|
private static Logger logger = Logger.getLogger(SysContainerSensorsServiceImpl.class);
|
|
|
@Resource(name = "sysContainerSensorsDao")
|
private SysContainerSensorsDao sysContainerSensorsDao;
|
@Resource
|
private SysLaboratoryContainerDao sysLaboratoryContainerDao;
|
@Resource
|
private SysWarehouseContainerDao sysWarehouseContainerDao;
|
|
@Override
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = {RuntimeException.class, SQLException.class,})
|
public int add(SysContainerSensors sysContainerSensors) throws RuntimeException {
|
return sysContainerSensorsDao.insertSelective(sysContainerSensors);
|
}
|
|
@Override
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = {RuntimeException.class, SQLException.class,})
|
public void syncSysContainerSensors(List<LinkedHashMap> sensorsList) throws Exception {
|
Assert.notNull(sensorsList, "请求参数不能为空!");
|
for (Map params : sensorsList) {
|
String containerCode = params.containsKey("containerCode")?params.get("containerCode").toString():"";
|
SysContainerSensors sensors = new SysContainerSensors();
|
sensors.setId(IDUtils.uuid());
|
sensors.setFlag(params.containsKey("Flag")?String.valueOf(params.get("Flag")):"");
|
sensors.setHumidity(params.containsKey("Humidity")?(int) params.get("Humidity"):0);
|
sensors.setTemp(params.containsKey("Temp")?(double) params.get("Temp"):0);
|
sensors.setVoc1(params.containsKey("voc1")?(double) params.get("voc1"):0);
|
|
SysLaboratoryContainer laboratoryContainer = sysLaboratoryContainerDao.getSysLaboratoryContainerByContainerCode(containerCode);
|
if (Objects.isNull(laboratoryContainer)) {
|
SysWarehouseContainer warehouseContainer = sysWarehouseContainerDao.getSysWarehouseContainerByContainerCode(containerCode);
|
if (Objects.isNull(warehouseContainer)) {
|
logger.error("The containerCode:"+containerCode+" has not been exists!");
|
continue;
|
} else {
|
sensors.setType(SysContainerSensors.TYPE_WAREHOUSE_CONTAINER);
|
sensors.setContainerId(warehouseContainer.getId());
|
}
|
} else {
|
sensors.setType(SysContainerSensors.TYPE_LABORATORY_CONTAINER);
|
sensors.setContainerId(laboratoryContainer.getId());
|
}
|
sensors.setUpdateTime(DateUtils.parseDate(params.get("updateTime").toString(), Constants.TIME_PATTERN_YYYY_MM_DD_HH_MM_SS));
|
sysContainerSensorsDao.insertSelective(sensors);
|
}
|
|
}
|
|
@Override
|
@Transactional(readOnly = true)
|
public SysContainerSensors get(String id) throws RuntimeException {
|
return sysContainerSensorsDao.selectByPrimaryKey(id);
|
}
|
|
@Override
|
@Transactional(readOnly = true)
|
public List<SysContainerSensors> getListBySelective(Map<String, Object> params) throws RuntimeException {
|
return sysContainerSensorsDao.getListBySelective(params);
|
}
|
|
@Override
|
@Transactional(readOnly = true)
|
public int countBySelective(Map<String, Object> params) throws RuntimeException {
|
return sysContainerSensorsDao.countBySelective(params);
|
}
|
|
/**
|
* @discription 返回所有信息
|
* @author celin
|
* @param params
|
* @return 暂存列表list
|
* @throws RuntimeException
|
*/
|
@Override
|
public List<ContainerStatusMngDto> selectInfo(Map<String, Object> params) throws RuntimeException {
|
return sysContainerSensorsDao.selectAll(params);
|
}
|
|
@Override
|
public int countAll(Map<String, Object> params) throws RuntimeException {
|
return sysContainerSensorsDao.countAll(params);
|
}
|
|
@Override
|
public ContainerStatusMngDto getRowData(String rowKey) {
|
return sysContainerSensorsDao.getRowData(rowKey);
|
}
|
|
|
}
|