From f28149d8183a62f87fa9c8df9ae589070d83f612 Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Thu, 24 Dec 2020 13:47:50 +0800
Subject: [PATCH] 波动补偿

---
 src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java |  110 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 97 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java
index 6c6f0de..4dce55d 100644
--- a/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java
@@ -1,32 +1,44 @@
 package com.moral.service.impl;
 
-import com.moral.common.bean.PageBean;
-import com.moral.common.util.ExampleUtil;
-import com.moral.common.util.MyBatisBaseMapUtil;
-import com.moral.entity.DeviceVersion;
-import com.moral.mapper.DeviceVersionMapper;
-import com.moral.service.DeviceVersionService;
-import org.springframework.stereotype.Service;
-import tk.mybatis.mapper.entity.Example;
-
-import javax.annotation.Resource;
-import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.moral.common.bean.PageBean;
+import com.moral.common.util.MyBatisBaseMapUtil;
+import com.moral.common.util.RedisUtils;
+import com.moral.entity.DeviceVersion;
+import com.moral.entity.DeviceVersionSensor;
+import com.moral.mapper.DeviceVersionMapper;
+import com.moral.mapper.DeviceVersionSensorMapper;
+import com.moral.service.DeviceVersionService;
+
+import tk.mybatis.mapper.entity.Example;
 
 @Service
 public class DeviceVersionServiceImpl implements DeviceVersionService {
       @Resource
       private DeviceVersionMapper deviceVersionMapper;
+      @Resource
+      private DeviceVersionSensorMapper deviceVersionSensorMapper;
       private static Class ENTITY_CLASS = DeviceVersion.class;
+      @Override
       public PageBean queryByPageBean(PageBean pageBean){
            return MyBatisBaseMapUtil.queryPage(deviceVersionMapper,pageBean,ENTITY_CLASS);
       }
+      @Override
       public void addOrModify(DeviceVersion deviceVersion){
             try{
                   if(deviceVersion.getId()==null){
+                        deviceVersion.setUpdateTime(new Date());
                         deviceVersionMapper.insertSelective(deviceVersion);
                   }else{
+                        deviceVersion.setUpdateTime(new Date());
                         deviceVersionMapper.updateByPrimaryKeySelective(deviceVersion);
                   }
             }
@@ -39,13 +51,85 @@
       public void deleteByIds(Integer... ids) {
             if(ids!=null&&ids.length>0){
                   if(ids.length==1){
-                        deviceVersionMapper.deleteByPrimaryKey(ids[0]);
+                        DeviceVersion deviceVersion = new DeviceVersion();
+                        deviceVersion.setId(ids[0]);
+                        deviceVersion.setIsDelete(true);
+                        deviceVersion.setUpdateTime(new Date());
+                        deviceVersionMapper.updateByPrimaryKeySelective(deviceVersion);
                   }else{
+                        DeviceVersion deviceVersion = new DeviceVersion();
+                        deviceVersion.setIsDelete(true);
+                        deviceVersion.setUpdateTime(new Date());
                         Example example = new Example(ENTITY_CLASS);
                         example.or().andIn("id", Arrays.asList(ids));
-                        deviceVersionMapper.deleteByExample(example);
+                        deviceVersionMapper.updateByExampleSelective(deviceVersion,example);
                   }
 
             }
       }
+      
+      @Resource
+      private RedisUtils redisUtils;
+      @Override
+      public void versionSensorConfig(Integer deviceVersionId, Integer[] sensorIds){
+            Example example = new Example(DeviceVersionSensor.class);
+            example.or().andEqualTo("deviceVersionId",deviceVersionId);
+            deviceVersionSensorMapper.deleteByExample(example);
+            redisUtils.remove("deviceVersion_" + deviceVersionId);
+            if(sensorIds!=null && sensorIds.length >0){
+                  List<DeviceVersionSensor> deviceVersionSensorList = new ArrayList<DeviceVersionSensor>();
+                  for(int sensorId:sensorIds){
+                        DeviceVersionSensor deviceVersionSensor = new DeviceVersionSensor();
+                        deviceVersionSensor.setDeviceVersionId(deviceVersionId);
+                        deviceVersionSensor.setSensorId(sensorId);
+                        deviceVersionSensorList.add(deviceVersionSensor);
+                  }
+                  deviceVersionSensorMapper.insertList(deviceVersionSensorList);
+            }
+      }
+      public List<DeviceVersion> getVersionsByOrgId(int organizationId){
+            return null;
+      }
+
+      @Override
+      public Integer queryMaxVersionNo() {
+            Example example = new Example(DeviceVersion.class);
+            example.orderBy("version").desc();
+            List<DeviceVersion> deviceVersionList = deviceVersionMapper.selectByExample(example);
+            if(deviceVersionList.size()>0){
+                  return deviceVersionList.get(0).getVersion();
+            }
+            return null;
+      }
+      @Override
+      public DeviceVersion queryByVersionNo(int versionNo) {
+            DeviceVersion query = new DeviceVersion();
+            query.setVersion(versionNo);
+            return deviceVersionMapper.selectOne(query);
+      }
+      @Override
+      public List<Integer> getSensorIds(int deviceVersionId){
+            DeviceVersionSensor deviceVersionSensor = new DeviceVersionSensor();
+            deviceVersionSensor.setDeviceVersionId(deviceVersionId);
+            List<DeviceVersionSensor> deviceVersionSensorList = deviceVersionSensorMapper.select(deviceVersionSensor);
+            List<Integer> sensorIds = new ArrayList<>();
+            for(DeviceVersionSensor dvSensor:deviceVersionSensorList ){
+                  sensorIds.add(dvSensor.getSensorId());
+            }
+            return sensorIds;
+      }
+      @Override
+      public  List<DeviceVersion> queryByOrgId(Integer organizationId){
+            return  this.deviceVersionMapper.selectListByOrgId(organizationId);
+      }
+      @Override
+      public  List<DeviceVersion> queryByMpointId(Integer mpointId){
+            return  this.deviceVersionMapper.selectListByMpointId(mpointId);
+      }
+
+      @Override
+      public DeviceVersion queryVersionById(Integer versionId) {
+            return deviceVersionMapper.selectByPrimaryKey(versionId);
+      }
+
 }

--
Gitblit v1.8.0