lyfO_o
2021-06-25 9c83533710bee14511ff454d092e20dcc8359105
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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);
    }
 
 
}