From 9742e7a70ac6e74d114e68ce1bc8f46670b55453 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Mon, 25 Jun 2018 16:39:48 +0800 Subject: [PATCH] 组织配置单位和页面布局 --- src/main/java/com/moral/controller/OrganizationLayoutController.java | 117 ++++++ src/main/java/com/moral/controller/SensorUnitController.java | 39 ++ src/main/java/com/moral/service/DeviceVersionService.java | 4 src/main/java/com/moral/service/impl/DictionaryDataServiceImpl.java | 21 + src/main/resources/mapper/DictionaryDataMapper.xml | 11 src/main/java/com/moral/mapper/DictionaryDataMapper.java | 3 src/main/java/com/moral/service/impl/SensorUnitServiceImpl.java | 90 +++++ src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java | 14 src/main/webapp/js/moralmap.js | 2 src/main/java/com/moral/service/SensorService.java | 6 src/main/java/com/moral/entity/layout/RtdLayoutUpload.java | 10 src/main/java/com/moral/mapper/SensorUnitMapper.java | 7 src/main/java/com/moral/service/impl/SensorServiceImpl.java | 17 src/main/resources/mapper/DeviceVersionMapper.xml | 17 src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java | 244 +++++++++++++ src/main/resources/mapper/SensorMapper.xml | 28 + src/main/java/com/moral/entity/Dictionary.java | 34 - src/main/java/com/moral/service/MonitorPointService.java | 2 src/main/java/com/moral/controller/ScreenController.java | 39 +- src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java | 4 src/main/java/com/moral/mapper/DeviceVersionMapper.java | 3 src/main/java/com/moral/service/OrganizationSensorUnitService.java | 14 src/main/java/com/moral/entity/DictionaryData.java | 62 --- src/main/java/com/moral/service/impl/OrganizationSensorUnitServiceImpl.java | 78 ++++ src/main/java/com/moral/service/DictionaryDataService.java | 9 src/main/java/com/moral/mapper/SensorMapper.java | 4 src/main/java/com/moral/controller/OrganizationSensorUnitController.java | 56 +++ src/main/java/com/moral/entity/layout/SensorComb.java | 18 + src/main/java/com/moral/service/SensorUnitService.java | 18 + src/main/resources/mapper/DictionaryMapper.xml | 8 src/main/java/com/moral/service/OrganizationLayoutService.java | 20 + src/main/resources/system/sysConfig.properties | 2 src/main/java/com/moral/entity/layout/RealTimeDeviceLayout.java | 23 + src/main/java/com/moral/mapper/DictionaryMapper.java | 1 src/main/java/com/moral/entity/SensorUnit.java | 25 + src/main/resources/application.yml | 6 36 files changed, 945 insertions(+), 111 deletions(-) diff --git a/src/main/java/com/moral/controller/OrganizationLayoutController.java b/src/main/java/com/moral/controller/OrganizationLayoutController.java new file mode 100644 index 0000000..8482391 --- /dev/null +++ b/src/main/java/com/moral/controller/OrganizationLayoutController.java @@ -0,0 +1,117 @@ +package com.moral.controller; + +import com.moral.common.bean.ResultBean; +import com.moral.entity.DeviceVersion; +import com.moral.entity.Sensor; +import com.moral.entity.layout.RealTimeDeviceLayout; +import com.moral.entity.layout.RtdLayoutUpload; +import com.moral.entity.layout.SensorComb; +import com.moral.service.DeviceVersionService; +import com.moral.service.OrganizationLayoutService; +import com.moral.service.SensorService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("org-layout") +public class OrganizationLayoutController { + @Resource + private OrganizationLayoutService organizationLayoutService; + @Resource + private SensorService sensorService; + @Resource + private DeviceVersionService deviceVersionService; + @GetMapping("rtd-config") + public ResultBean<Map<String,Object>> getRealTimeDevicetConfig(Integer orgId){ + Map<String,Object> resultMap = new HashMap(); + resultMap.put("deviceVersions",""); + resultMap.put("sensors",""); + resultMap.put("rtdLayout",""); + // ������������������������������������������ + List<DeviceVersion> deviceVersionList = deviceVersionService.queryByOrgId(orgId); + // ���������������version ������������������ + if (deviceVersionList!=null && deviceVersionList.size()>0) { + Integer versionId = deviceVersionList.get(0).getId(); + Integer versionNum = deviceVersionList.get(0).getVersion(); + // ������ SensorComb ������������������ + List<String> fixedItemKeys = organizationLayoutService.getFixedItemKeys(); + List<SensorComb> optionalFixedItems = new ArrayList<>(); + List<SensorComb> sensorCombList = sensorService.queryListByVersionId(versionId) + .stream() + .filter(item -> { + for (String key: fixedItemKeys) { + if( key.equals(item.getSensorKey()) ) { + SensorComb sensorComb = new SensorComb(); + sensorComb.setName(item.getDescription()); + sensorComb.setSensorKey(item.getSensorKey()); + optionalFixedItems.add(sensorComb); + return false; + } + } + return true; + }) + .map(item -> { + SensorComb sensorComb = new SensorComb(); + sensorComb.setName(item.getDescription()); + sensorComb.setSensorKey(item.getSensorKey()); + return sensorComb; + }).collect(Collectors.toList()); + RealTimeDeviceLayout realTimeDeviceLayout = organizationLayoutService.queryRealTimeDeviceLayout(orgId,versionNum); + resultMap.put("deviceVersions",deviceVersionList); + resultMap.put("sensorCombs",sensorCombList); + resultMap.put("rtdLayout",realTimeDeviceLayout); + resultMap.put("optionalFixedItems",optionalFixedItems); + } + return new ResultBean<>(resultMap); + } + @GetMapping("rtd-act-config") + public ResultBean<Map<String,Object>> getRealTimeDeviceConfigWithVer(Integer orgId,Integer versionNo){ + Map<String,Object> resultMap = new HashMap(); + resultMap.put("sensors",""); + resultMap.put("rtdLayout",""); + // ������ SensorComb ������������������ + List<String> fixedItemKeys = organizationLayoutService.getFixedItemKeys(); + List<SensorComb> optionalFixedItems = new ArrayList<>(); + List<SensorComb> sensorCombList = sensorService.queryListByVersionNo(versionNo) + .stream() + .filter(item -> { + for (String key: fixedItemKeys) { + if( key.equals(item.getSensorKey()) ) { + SensorComb sensorComb = new SensorComb(); + sensorComb.setName(item.getDescription()); + sensorComb.setSensorKey(item.getSensorKey()); + optionalFixedItems.add(sensorComb); + return false; + } + } + return true; + }) + .map(item -> { + SensorComb sensorComb = new SensorComb(); + sensorComb.setName(item.getDescription()); + sensorComb.setSensorKey(item.getSensorKey()); + return sensorComb; + }).collect(Collectors.toList()); + RealTimeDeviceLayout realTimeDeviceLayout = organizationLayoutService.queryRealTimeDeviceLayout(orgId,versionNo); + resultMap.put("sensorCombs",sensorCombList); + resultMap.put("rtdLayout",realTimeDeviceLayout); + resultMap.put("optionalFixedItems",optionalFixedItems); // ������������������ + return new ResultBean<>(resultMap); + } + @PostMapping("rtd-save") + public ResultBean RealTimeDeviceSave(@RequestBody RtdLayoutUpload rtdLayoutUpload) { + organizationLayoutService.saveRtdLayout(rtdLayoutUpload); + return ResultBean.success(); + } + @GetMapping("rtd-remove") + public ResultBean RealTimeDeviceRemove(Integer orgId,Integer version) { + organizationLayoutService.deleteRtdLayout(orgId,version); + return ResultBean.success(); + } +} diff --git a/src/main/java/com/moral/controller/OrganizationSensorUnitController.java b/src/main/java/com/moral/controller/OrganizationSensorUnitController.java new file mode 100644 index 0000000..5158d46 --- /dev/null +++ b/src/main/java/com/moral/controller/OrganizationSensorUnitController.java @@ -0,0 +1,56 @@ +package com.moral.controller; + +import com.moral.common.bean.ResultBean; +import com.moral.entity.OrganizationSensorUnit; +import com.moral.entity.SensorUnit; +import com.moral.service.OrganizationSensorUnitService; +import com.moral.service.SensorUnitService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("org-sunit") +public class OrganizationSensorUnitController { + @Resource + OrganizationSensorUnitService osuService; + @Resource + SensorUnitService sensorUnitService; + /** + * ������������������������������������������ + * @param orgId + * @return + */ + @GetMapping("gets-byoid") + public ResultBean getListByorgId(Integer orgId) { + Map resultData = new HashMap(); + List<OrganizationSensorUnit> osuList = osuService.queryAllByOrgId(orgId); + if(osuList!=null && osuList.size()>0) { + List<Integer> sensorIdList = osuList.stream().map(item -> { + return item.getSensor().getId(); + }).collect(Collectors.toList()); + Map sensorUnitMap = sensorUnitService.queryGroupSensorBySids(sensorIdList); + // ��������������������� + List resultOsuList = osuList.stream().filter(item -> { + Integer id = item.getSensor().getId(); + return sensorUnitMap.get(id)!=null; + }).collect(Collectors.toList()); + resultData.put("osuList",resultOsuList); + resultData.put("sensorUnitMap",sensorUnitMap); + }else { + resultData.put("osuList",new ArrayList<>()); // ��������������������� + resultData.put("sensorUnitMap",new Object()); // ������������ + } + return new ResultBean(resultData); + } + @PostMapping("saves") + public ResultBean saves(@RequestBody List<OrganizationSensorUnit> osuList){ + osuService.addsOrModifys(osuList); + return ResultBean.success(); + } +} diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index 66467dd..10915d3 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -15,6 +15,8 @@ import com.moral.entity.alarm.AlarmConfig; import com.moral.entity.alarm.AlarmConfigValue; import com.moral.entity.charts.DataSortCondition; +import com.moral.entity.layout.RealTimeDeviceLayout; +import com.moral.service.*; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.net.ftp.FTPClient; import org.apache.log4j.Logger; @@ -45,16 +47,6 @@ import com.moral.common.util.ValidateUtil; import com.moral.common.xml.Version; import com.moral.entity.alarm.AlarmSensorLevel; -import com.moral.service.AccountService; -import com.moral.service.AlarmConfigService; -import com.moral.service.AlarmDailyService; -import com.moral.service.AreaService; -import com.moral.service.DeviceService; -import com.moral.service.HistoryMinutelyService; -import com.moral.service.HistoryService; -import com.moral.service.MachineActivateService; -import com.moral.service.MonitorPointService; -import com.moral.service.SensorService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -80,6 +72,8 @@ SensorService sensorService; @Resource MonitorPointService monitorPointService; + @Resource + DeviceVersionService deviceVersionService; /** The screen service. */ @Resource @@ -112,6 +106,8 @@ @Resource private AlarmDailyService alarmDailyService; + @Resource + private OrganizationLayoutService orgLayoutService; /** * Screen login. ������������ * @@ -584,15 +580,22 @@ }) @GetMapping("rtm-layout") public ResultBean realTimeMonitorLayout(String primaryKey,String type){ - InputStreamReader reader = null; - Map<String,Object> map = null; - try { - reader = new InputStreamReader(resource.getInputStream(),"UTF-8"); - map = new JSONReader(reader).readObject(new TypeReference<Map<String,Object>>() {}); - } catch (IOException e) { - e.printStackTrace(); + RealTimeDeviceLayout rtdLayout = null; + if(type != null && type.equals("device")) { + Device device = deviceService.getDeviceByMac(primaryKey,false); + if(device!= null + && device.getOrganizationIds()!=null + && device.getOrganizationIds().size() >0 + && device.getDeviceVersionId()!=null) { + Integer orgId = device.getOrganizationIds().get(0); + DeviceVersion deviceVersion = deviceVersionService.queryVersionById(device.getDeviceVersionId()); + rtdLayout = orgLayoutService.queryRtdLayoutWithUnit(orgId,deviceVersion.getVersion()); + }else { + return ResultBean.fail(); + } + } - return new ResultBean(map); + return new ResultBean(rtdLayout); } } diff --git a/src/main/java/com/moral/controller/SensorUnitController.java b/src/main/java/com/moral/controller/SensorUnitController.java new file mode 100644 index 0000000..cd1a430 --- /dev/null +++ b/src/main/java/com/moral/controller/SensorUnitController.java @@ -0,0 +1,39 @@ +package com.moral.controller; + +import com.moral.common.bean.ResultBean; +import com.moral.entity.SensorUnit; +import com.moral.service.SensorUnitService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@RestController +@RequestMapping("sensor-unit") +@CrossOrigin(origins = "*", maxAge = 3600) +public class SensorUnitController { + @Resource + SensorUnitService sensorUnitService; + @PostMapping("add-or-modify") + public ResultBean addOrModify(@RequestBody SensorUnit sensorUnit){ + ResultBean resultBean = new ResultBean(ResultBean.SUCCESS); + if(!sensorUnitService.addOrModify(sensorUnit)){ + resultBean.setCode(ResultBean.FAIL); + } + return resultBean; + } + + /** + * ������������������ + * @param sensorId + * @return + */ + @GetMapping("gets-bysid") + public ResultBean getListBySensorId(Integer sensorId) { + return new ResultBean(sensorUnitService.queryListBySensorId(sensorId)); + } + @GetMapping("delete") + public ResultBean delete(Integer id) { + sensorUnitService.remove(id); + return ResultBean.success(); + } +} diff --git a/src/main/java/com/moral/entity/Dictionary.java b/src/main/java/com/moral/entity/Dictionary.java index be69fe8..e09ee42 100644 --- a/src/main/java/com/moral/entity/Dictionary.java +++ b/src/main/java/com/moral/entity/Dictionary.java @@ -1,33 +1,17 @@ package com.moral.entity; -public class Dictionary { - private String dictName; +import lombok.Data; - private Integer dictValue; +@Data +public class Dictionary { + private String dictKey; + + private Integer id; + + private String dictName; private Integer isDelete; - public String getDictName() { - return dictName; - } + private String description; - public void setDictName(String dictName) { - this.dictName = dictName == null ? null : dictName.trim(); - } - - public Integer getDictValue() { - return dictValue; - } - - public void setDictValue(Integer dictValue) { - this.dictValue = dictValue; - } - - public Integer getIsDelete() { - return isDelete; - } - - public void setIsDelete(Integer isDelete) { - this.isDelete = isDelete; - } } \ No newline at end of file diff --git a/src/main/java/com/moral/entity/DictionaryData.java b/src/main/java/com/moral/entity/DictionaryData.java index 05fdaf4..36893dd 100644 --- a/src/main/java/com/moral/entity/DictionaryData.java +++ b/src/main/java/com/moral/entity/DictionaryData.java @@ -1,9 +1,14 @@ package com.moral.entity; +import lombok.Data; + +@Data public class DictionaryData { private Integer id; - private Integer dictValue; + private Integer dictId; + + private String dictDataKey; private String dictDataName; @@ -15,59 +20,6 @@ private Integer parentId; - public Integer getId() { - return id; - } + private String description; - public void setId(Integer id) { - this.id = id; - } - - public Integer getDictValue() { - return dictValue; - } - - public void setDictValue(Integer dictValue) { - this.dictValue = dictValue; - } - - public String getDictDataName() { - return dictDataName; - } - - public void setDictDataName(String dictDataName) { - this.dictDataName = dictDataName == null ? null : dictDataName.trim(); - } - - public Object getDictDataValue() { - return dictDataValue; - } - - public void setDictDataValue(Object dictDataValue) { - this.dictDataValue = dictDataValue; - } - - public Integer getIsFixed() { - return isFixed; - } - - public void setIsFixed(Integer isFixed) { - this.isFixed = isFixed; - } - - public Integer getIsDelete() { - return isDelete; - } - - public void setIsDelete(Integer isDelete) { - this.isDelete = isDelete; - } - - public Integer getParentId() { - return parentId; - } - - public void setParentId(Integer parentId) { - this.parentId = parentId; - } } \ No newline at end of file diff --git a/src/main/java/com/moral/entity/SensorUnit.java b/src/main/java/com/moral/entity/SensorUnit.java new file mode 100644 index 0000000..16b9fff --- /dev/null +++ b/src/main/java/com/moral/entity/SensorUnit.java @@ -0,0 +1,25 @@ +package com.moral.entity; + +import lombok.Data; + +import javax.persistence.Id; +import java.util.Date; + +@Data +public class SensorUnit { + @Id + private Integer id; + + private Integer sensorId; + + private String name; + + private String rules; + + private Boolean isDelete; + + private Date createTime; + + private Date updateTime; + +} \ No newline at end of file diff --git a/src/main/java/com/moral/entity/layout/RealTimeDeviceLayout.java b/src/main/java/com/moral/entity/layout/RealTimeDeviceLayout.java new file mode 100644 index 0000000..9b9b96c --- /dev/null +++ b/src/main/java/com/moral/entity/layout/RealTimeDeviceLayout.java @@ -0,0 +1,23 @@ +package com.moral.entity.layout; + +import lombok.Data; + +import java.util.Arrays; +import java.util.List; + +@Data +public class RealTimeDeviceLayout { + public static String PageTypePrefix = "real_time_device_"; + public static String ChartSensorKey = "chartSensorKey"; + public static String BottomFixedMonitorItem = "leftBottomFixedMonitorItem"; + public static String DefaultMonitorItems = "defaultMonitorItems"; + public static String CoreMonitorItems = "coreMonitorItems"; + public static String FixedMonitorItems = "fixedMonitorItems"; + Integer id; + String name; + String chartSensorKey; + List<SensorComb> fixedMonitorItems; + List<SensorComb> defaultMonitorItems; + List<SensorComb> coreMonitorItems; + +} diff --git a/src/main/java/com/moral/entity/layout/RtdLayoutUpload.java b/src/main/java/com/moral/entity/layout/RtdLayoutUpload.java new file mode 100644 index 0000000..0fe814a --- /dev/null +++ b/src/main/java/com/moral/entity/layout/RtdLayoutUpload.java @@ -0,0 +1,10 @@ +package com.moral.entity.layout; + +import lombok.Data; + +@Data +public class RtdLayoutUpload { + RealTimeDeviceLayout realTimeDeviceLayout; + Integer organizationId; + Integer version; +} diff --git a/src/main/java/com/moral/entity/layout/SensorComb.java b/src/main/java/com/moral/entity/layout/SensorComb.java new file mode 100644 index 0000000..7c4e7ae --- /dev/null +++ b/src/main/java/com/moral/entity/layout/SensorComb.java @@ -0,0 +1,18 @@ +package com.moral.entity.layout; + +import lombok.Data; + +/** + * sensor������������ + */ +@Data +public class SensorComb { +// Integer Id; + Integer sensorId; + Integer index; + String sensorKey; + String name; + String sourceUnit; + String targetUnit; + String evaluator; +} diff --git a/src/main/java/com/moral/mapper/DeviceVersionMapper.java b/src/main/java/com/moral/mapper/DeviceVersionMapper.java index 62d949e..3629c23 100644 --- a/src/main/java/com/moral/mapper/DeviceVersionMapper.java +++ b/src/main/java/com/moral/mapper/DeviceVersionMapper.java @@ -3,5 +3,8 @@ import com.moral.common.mapper.BaseMapper; import com.moral.entity.DeviceVersion; +import java.util.List; + public interface DeviceVersionMapper extends BaseMapper<DeviceVersion> { + public List<DeviceVersion> selectListByOrgId(Integer orgId); } \ No newline at end of file diff --git a/src/main/java/com/moral/mapper/DictionaryDataMapper.java b/src/main/java/com/moral/mapper/DictionaryDataMapper.java index 038a4be..0bb1798 100644 --- a/src/main/java/com/moral/mapper/DictionaryDataMapper.java +++ b/src/main/java/com/moral/mapper/DictionaryDataMapper.java @@ -2,7 +2,8 @@ import com.moral.common.mapper.BaseMapper; import com.moral.entity.DictionaryData; +import org.apache.ibatis.annotations.Param; public interface DictionaryDataMapper extends BaseMapper<DictionaryData> { -// DictionaryData selectByPrimaryKey(Integer id); + public Integer selectSupperOrgId(); } \ No newline at end of file diff --git a/src/main/java/com/moral/mapper/DictionaryMapper.java b/src/main/java/com/moral/mapper/DictionaryMapper.java index 6ae4aa0..5be2ddd 100644 --- a/src/main/java/com/moral/mapper/DictionaryMapper.java +++ b/src/main/java/com/moral/mapper/DictionaryMapper.java @@ -4,5 +4,4 @@ import com.moral.entity.Dictionary; public interface DictionaryMapper extends BaseMapper<Dictionary> { -// Dictionary selectByPrimaryKey(String dictName); } \ No newline at end of file diff --git a/src/main/java/com/moral/mapper/SensorMapper.java b/src/main/java/com/moral/mapper/SensorMapper.java index c0cd5e8..c7f4ded 100644 --- a/src/main/java/com/moral/mapper/SensorMapper.java +++ b/src/main/java/com/moral/mapper/SensorMapper.java @@ -9,6 +9,10 @@ public interface SensorMapper extends BaseMapper<Sensor> { List<Sensor> selectByVersionId(Integer deviceVersionId); + List<Sensor> selectByVersionNo(Integer deviceVersionId); + + List<Sensor> selectByOrgId(Integer organizationId); + List<Map<String, Object>> getSensorsByDeviceVersionId(Integer deviceVersionId); List<Sensor> getSensorsByCriteria(Map<String, Object> parameters); diff --git a/src/main/java/com/moral/mapper/SensorUnitMapper.java b/src/main/java/com/moral/mapper/SensorUnitMapper.java new file mode 100644 index 0000000..85cb886 --- /dev/null +++ b/src/main/java/com/moral/mapper/SensorUnitMapper.java @@ -0,0 +1,7 @@ +package com.moral.mapper; + +import com.moral.common.mapper.BaseMapper; +import com.moral.entity.SensorUnit; + +public interface SensorUnitMapper extends BaseMapper<SensorUnit> { +} \ No newline at end of file diff --git a/src/main/java/com/moral/service/DeviceVersionService.java b/src/main/java/com/moral/service/DeviceVersionService.java index 44cf766..af8d202 100644 --- a/src/main/java/com/moral/service/DeviceVersionService.java +++ b/src/main/java/com/moral/service/DeviceVersionService.java @@ -15,4 +15,8 @@ void versionSensorConfig(Integer deviceVersionId, Integer[] sensorIds); List<Integer> getSensorIds(int deviceVersionId); + + List<DeviceVersion> queryByOrgId(Integer organizationId); + + DeviceVersion queryVersionById(Integer versionId); } diff --git a/src/main/java/com/moral/service/DictionaryDataService.java b/src/main/java/com/moral/service/DictionaryDataService.java new file mode 100644 index 0000000..d4e72bb --- /dev/null +++ b/src/main/java/com/moral/service/DictionaryDataService.java @@ -0,0 +1,9 @@ +package com.moral.service; + +import com.moral.entity.DictionaryData; + +import java.util.List; + +public interface DictionaryDataService { + List<DictionaryData> queryByKey(String dictDataKey); +} diff --git a/src/main/java/com/moral/service/MonitorPointService.java b/src/main/java/com/moral/service/MonitorPointService.java index 452a257..4328dc4 100644 --- a/src/main/java/com/moral/service/MonitorPointService.java +++ b/src/main/java/com/moral/service/MonitorPointService.java @@ -28,4 +28,6 @@ List<MonitorPoint> getMonitorPointsByRegion(Map<String, Object> parameters); List<Integer> queryVersionsById(Integer id); + + MonitorPoint queryMonitorPointById(Integer mpointId); } diff --git a/src/main/java/com/moral/service/OrganizationLayoutService.java b/src/main/java/com/moral/service/OrganizationLayoutService.java new file mode 100644 index 0000000..9f15695 --- /dev/null +++ b/src/main/java/com/moral/service/OrganizationLayoutService.java @@ -0,0 +1,20 @@ +package com.moral.service; + +import com.moral.entity.layout.RealTimeDeviceLayout; +import com.moral.entity.layout.RtdLayoutUpload; +import org.springframework.data.annotation.Transient; + +import java.util.List; + +public interface OrganizationLayoutService { + List<String> getFixedItemKeys(); + + RealTimeDeviceLayout queryRealTimeDeviceLayout(Integer orgId, Integer version); + + @Transient + void saveRtdLayout(RtdLayoutUpload rtdUpload); + + void deleteRtdLayout(Integer orgId, Integer version); + + RealTimeDeviceLayout queryRtdLayoutWithUnit(Integer orgId, Integer versionNo); +} diff --git a/src/main/java/com/moral/service/OrganizationSensorUnitService.java b/src/main/java/com/moral/service/OrganizationSensorUnitService.java new file mode 100644 index 0000000..e44a885 --- /dev/null +++ b/src/main/java/com/moral/service/OrganizationSensorUnitService.java @@ -0,0 +1,14 @@ +package com.moral.service; + +import com.moral.entity.OrganizationSensorUnit; +import org.springframework.data.annotation.Transient; + +import java.util.List; + +public interface OrganizationSensorUnitService { + List<OrganizationSensorUnit> queryAllByOrgId(Integer organizationId); + List<OrganizationSensorUnit> queryByOrgId(Integer organizationId); + + @Transient + void addsOrModifys(List<OrganizationSensorUnit> osuList); +} diff --git a/src/main/java/com/moral/service/SensorService.java b/src/main/java/com/moral/service/SensorService.java index 5d7bf3d..dd0f733 100644 --- a/src/main/java/com/moral/service/SensorService.java +++ b/src/main/java/com/moral/service/SensorService.java @@ -14,8 +14,14 @@ PageBean queryByVersionId(Integer deviceVersionId); + List<Sensor> queryListByVersionId(Integer deviceVersionId); + + List<Sensor> queryListByVersionNo(Integer versionNo); + public void addOrModify(Sensor sensor); public void deleteByIds(Integer... ids); + List<Sensor> queryByOrgId(Integer organizationId); + public List<Sensor> getAllSensors(); } diff --git a/src/main/java/com/moral/service/SensorUnitService.java b/src/main/java/com/moral/service/SensorUnitService.java new file mode 100644 index 0000000..94703af --- /dev/null +++ b/src/main/java/com/moral/service/SensorUnitService.java @@ -0,0 +1,18 @@ +package com.moral.service; + +import com.moral.entity.SensorUnit; + +import java.util.List; +import java.util.Map; + +public interface SensorUnitService { + public boolean addOrModify(SensorUnit sensorUnit); + + List<SensorUnit> queryListBySensorId(int sensorId); + + List<SensorUnit> queryListBySensorId(int sensorId, Boolean isDelete); + + void remove(Integer id); + + Map<Integer,List<SensorUnit>> queryGroupSensorBySids(List<Integer> sensorIds); +} diff --git a/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java index 9f15f47..2083175 100644 --- a/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java +++ b/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java @@ -4,6 +4,7 @@ import com.moral.common.util.MyBatisBaseMapUtil; import com.moral.entity.DeviceVersion; import com.moral.entity.DeviceVersionSensor; +import com.moral.entity.Sensor; import com.moral.mapper.DeviceVersionMapper; import com.moral.mapper.DeviceVersionSensorMapper; import com.moral.service.DeviceVersionService; @@ -66,6 +67,9 @@ deviceVersionSensorMapper.insertList(deviceVersionSensorList); } } + public List<DeviceVersion> getVersionsByOrgId(int organizationId){ + return null; + } @Override public List<Integer> getSensorIds(int deviceVersionId){ DeviceVersionSensor deviceVersionSensor = new DeviceVersionSensor(); @@ -77,4 +81,14 @@ } return sensorIds; } + @Override + public List<DeviceVersion> queryByOrgId(Integer organizationId){ + return this.deviceVersionMapper.selectListByOrgId(organizationId); + } + + @Override + public DeviceVersion queryVersionById(Integer versionId) { + return deviceVersionMapper.selectByPrimaryKey(versionId); + } + } diff --git a/src/main/java/com/moral/service/impl/DictionaryDataServiceImpl.java b/src/main/java/com/moral/service/impl/DictionaryDataServiceImpl.java new file mode 100644 index 0000000..38d4d52 --- /dev/null +++ b/src/main/java/com/moral/service/impl/DictionaryDataServiceImpl.java @@ -0,0 +1,21 @@ +package com.moral.service.impl; + +import com.moral.entity.DictionaryData; +import com.moral.mapper.DictionaryDataMapper; +import com.moral.service.DictionaryDataService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class DictionaryDataServiceImpl implements DictionaryDataService{ + @Resource + DictionaryDataMapper dataMapper; + @Override + public List<DictionaryData> queryByKey(String dictDataKey) { + DictionaryData query = new DictionaryData(); + query.setDictDataKey(dictDataKey); + return dataMapper.select(query); + } +} diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java index 200db4e..ed3b52e 100644 --- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java +++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java @@ -226,4 +226,8 @@ public List<Integer> queryVersionsById(Integer id){ return monitorPointMapper.selectVersionsById(id); } + @Override + public MonitorPoint queryMonitorPointById(Integer mpointId) { + return this.monitorPointMapper.selectByPrimaryKey(mpointId); + } } diff --git a/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java b/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java new file mode 100644 index 0000000..304ff2c --- /dev/null +++ b/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java @@ -0,0 +1,244 @@ +package com.moral.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.moral.entity.*; +import com.moral.entity.layout.RealTimeDeviceLayout; +import com.moral.entity.layout.RtdLayoutUpload; +import com.moral.entity.layout.SensorComb; +import com.moral.mapper.DictionaryDataMapper; +import com.moral.mapper.OrganizationLayoutMapper; +import com.moral.mapper.OrganizationSensorUnitMapper; +import com.moral.mapper.SensorMapper; +import com.moral.service.OrganizationLayoutService; +import org.springframework.data.annotation.Transient; +import org.springframework.stereotype.Service; +import tk.mybatis.mapper.entity.Example; + +import javax.annotation.Resource; +import javax.naming.Name; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class OrganizationLayoutServiceImpl implements OrganizationLayoutService{ + @Resource + SensorMapper sensorMapper; + @Resource + OrganizationLayoutMapper orgLayoutMapper; + @Resource + OrganizationSensorUnitMapper orgUnitMapper; + private static String pageLayoutFixedItems = "page_layout_fixed_items"; + @Resource + DictionaryDataMapper dataMapper; + private DictionaryData queryDictionaryData(String dictDataKey) { + DictionaryData query = new DictionaryData(); + query.setDictDataKey(dictDataKey); + List<DictionaryData> dataList = dataMapper.select(query); + List<String> fixedItemKeys = new ArrayList<>(); + if(dataList.size()>0) { + return dataList.get(0); + } + return null; + } + @Override + public List<String> getFixedItemKeys() { + DictionaryData dictionaryData = queryDictionaryData(pageLayoutFixedItems); + List<String> fixedItemKeys = new ArrayList<>(); + if(dictionaryData!=null && dictionaryData.getDictDataValue()!=null ) { + List<String> keyList = JSON.parseObject(dictionaryData.getDictDataValue().toString(), + new TypeReference<List<String>>(){}); + if(keyList!=null) { + fixedItemKeys.addAll(keyList); + } + } + return fixedItemKeys; + } + public Integer queryPageConfigCountByOrgId(Integer orgId,String pageType) { + OrganizationLayout query = new OrganizationLayout(); + query.setOrganizationId(orgId); + query.setPageType(pageType); + return orgLayoutMapper.selectCount(query); + } + @Override + public RealTimeDeviceLayout queryRealTimeDeviceLayout(Integer orgId,Integer version){ + String pageType = getPageType(version); + if(queryPageConfigCountByOrgId(orgId,pageType) > 0) { + RealTimeDeviceLayout rtdLayout = new RealTimeDeviceLayout(); + Example example = new Example(OrganizationLayout.class); + // ������������ + example.orderBy("pagePositionIndex").asc(); + // ������������key + example.or().andEqualTo("pageType",pageType) + .andEqualTo("organizationId",orgId) + .andEqualTo("pagePosition",RealTimeDeviceLayout.ChartSensorKey); + List<OrganizationLayout> ChartSensorKeys = orgLayoutMapper.selectByExample(example); + if(ChartSensorKeys.size()>0) { + rtdLayout.setChartSensorKey(ChartSensorKeys.get(0).getPagePositionValue()); + } + // ��������������� + example.clear(); + example.or().andEqualTo("pageType",pageType) + .andEqualTo("organizationId",orgId) + .andEqualTo("pagePosition",RealTimeDeviceLayout.DefaultMonitorItems); + List<OrganizationLayout> defaultMonitorItems = orgLayoutMapper.selectByExample(example); + List<SensorComb> defaultSensorCombList = defaultMonitorItems.stream().map( + item-> { + SensorComb sensorComb = new SensorComb(); + sensorComb.setSensorKey(item.getPagePositionValue()); + sensorComb.setIndex(item.getPagePositionIndex()); + return sensorComb; + } + ).collect(Collectors.toList()); + rtdLayout.setDefaultMonitorItems(defaultSensorCombList); + // ��������������� + example.clear(); + example.or().andEqualTo("pageType",pageType) + .andEqualTo("organizationId",orgId) + .andEqualTo("pagePosition",RealTimeDeviceLayout.CoreMonitorItems); + List<OrganizationLayout> coreMonitorItems = orgLayoutMapper.selectByExample(example); + List<SensorComb> coreSensorCombList = coreMonitorItems.stream().map( + item-> { + SensorComb sensorComb = new SensorComb(); + sensorComb.setSensorKey(item.getPagePositionValue()); + sensorComb.setIndex(item.getPagePositionIndex()); + return sensorComb; + } + ).collect(Collectors.toList()); + rtdLayout.setCoreMonitorItems(coreSensorCombList); + // ��������������� + example.clear(); + example.or().andEqualTo("pageType",pageType) + .andEqualTo("organizationId",orgId) + .andEqualTo("pagePosition",RealTimeDeviceLayout.FixedMonitorItems); + List<OrganizationLayout> fixedMonitorItems = orgLayoutMapper.selectByExample(example); + List<SensorComb> fixedSensorCombList = fixedMonitorItems.stream().map( + item-> { + SensorComb sensorComb = new SensorComb(); + sensorComb.setSensorKey(item.getPagePositionValue()); + sensorComb.setIndex(item.getPagePositionIndex()); + return sensorComb; + } + ).collect(Collectors.toList()); + rtdLayout.setFixedMonitorItems(fixedSensorCombList); + this.loadSensorToComb(rtdLayout); + return rtdLayout; + } + return null; + } + private void loadSensorToComb(RealTimeDeviceLayout rtdLayout) { + List<SensorComb> allSensorCombList = new ArrayList<>(); + allSensorCombList.addAll(rtdLayout.getCoreMonitorItems()); + allSensorCombList.addAll(rtdLayout.getDefaultMonitorItems()); + allSensorCombList.addAll(rtdLayout.getFixedMonitorItems()); + List<String> sensorKeyList = allSensorCombList.stream().map( + item -> { + return item.getSensorKey(); + } + ).collect(Collectors.toList()); + Example example = new Example(Sensor.class); + example.or().andIn("sensorKey",sensorKeyList); + List<Sensor> sensorList = sensorMapper.selectByExample(example); + for (SensorComb sensorComb: allSensorCombList) { + for (Sensor sensor :sensorList) { + if(sensor.getSensorKey()!=null + &&sensor.getSensorKey().equals(sensorComb.getSensorKey())){ + sensorComb.setName(sensor.getDescription()); + sensorComb.setSensorId(sensor.getId()); + sensorComb.setSourceUnit(sensor.getUnit()); + sensorComb.setTargetUnit(sensor.getUnit()); + } + } + } + } + public static String getPageType(Integer version) { + return RealTimeDeviceLayout.PageTypePrefix + version.toString(); + } + @Transient + @Override + public void saveRtdLayout(RtdLayoutUpload rtdUpload) { + + String pageType = getPageType(rtdUpload.getVersion()); + Integer orgId = rtdUpload.getOrganizationId(); + RealTimeDeviceLayout rtdLayout = rtdUpload.getRealTimeDeviceLayout(); + // ��������������� + this.deleteRtdLayout(orgId,rtdUpload.getVersion()); + OrganizationLayout orgLayout = new OrganizationLayout(); + orgLayout.setOrganizationId(orgId); + orgLayout.setPageType(pageType); + // ������chartSensorKey + orgLayout.setPagePosition(RealTimeDeviceLayout.ChartSensorKey); + orgLayout.setPagePositionIndex(0); + orgLayout.setPagePositionValue(rtdLayout.getChartSensorKey()); + orgLayoutMapper.insert(orgLayout); + // ��������������� + List<SensorComb> coreSensorList = rtdLayout.getCoreMonitorItems(); + orgLayout.setPagePosition(RealTimeDeviceLayout.CoreMonitorItems); + if( coreSensorList !=null ) { + for(int index=0;index< coreSensorList.size();index++) { + orgLayout.setPagePositionIndex(index); + orgLayout.setPagePositionValue(coreSensorList.get(index).getSensorKey()); + orgLayoutMapper.insert(orgLayout); + } + } + // ��������������� + List<SensorComb> defaultSensorList = rtdLayout.getDefaultMonitorItems(); + orgLayout.setPagePosition(RealTimeDeviceLayout.DefaultMonitorItems); + if ( defaultSensorList != null ){ + for(int index=0;index< defaultSensorList.size();index++) { + orgLayout.setPagePositionIndex(index); + orgLayout.setPagePositionValue(defaultSensorList.get(index).getSensorKey()); + orgLayoutMapper.insert(orgLayout); + } + } + + // ��������������� + List<SensorComb> fixedSensorList = rtdLayout.getFixedMonitorItems(); + orgLayout.setPagePosition(RealTimeDeviceLayout.FixedMonitorItems); + if( fixedSensorList != null ) { + for(int index=0;index< fixedSensorList.size();index++) { + orgLayout.setPagePositionIndex(index); + orgLayout.setPagePositionValue(fixedSensorList.get(index).getSensorKey()); + orgLayoutMapper.insert(orgLayout); + } + } + } + @Override + public void deleteRtdLayout(Integer orgId, Integer version) { + // ��������������� + OrganizationLayout query = new OrganizationLayout(); + query.setOrganizationId(orgId); + query.setPageType(getPageType(version)); + orgLayoutMapper.delete(query); + } + @Override + public RealTimeDeviceLayout queryRtdLayoutWithUnit(Integer orgId, Integer versionNo) { + String pageType = getPageType(versionNo); + if(queryPageConfigCountByOrgId(orgId,pageType) == 0 ){ + orgId = dataMapper.selectSupperOrgId(); + } + RealTimeDeviceLayout rtdLayout = queryRealTimeDeviceLayout(orgId,versionNo); + loadUnitToComb(orgId,rtdLayout); + return rtdLayout; + } + // ��������������������������������� + private void loadUnitToComb(Integer orgId,RealTimeDeviceLayout rtdLayout) { + List<SensorComb> allList = new ArrayList<>(); + allList.addAll(rtdLayout.getCoreMonitorItems()); + allList.addAll(rtdLayout.getDefaultMonitorItems()); + allList.addAll(rtdLayout.getFixedMonitorItems()); + List<OrganizationSensorUnit> orgUnitList = orgUnitMapper.selectByOrgId(orgId); + allList.forEach(item -> { + for(OrganizationSensorUnit orgUnit: orgUnitList) { + SensorUnit sensorUnit = orgUnit.getSensorUnit(); + if( sensorUnit!=null && sensorUnit.getSensorId() !=null) { + if(sensorUnit.getSensorId() == item.getSensorId()) { + item.setTargetUnit(sensorUnit.getName()); + item.setEvaluator(sensorUnit.getRules()); + } + } + } + }); + } +} diff --git a/src/main/java/com/moral/service/impl/OrganizationSensorUnitServiceImpl.java b/src/main/java/com/moral/service/impl/OrganizationSensorUnitServiceImpl.java new file mode 100644 index 0000000..39000d9 --- /dev/null +++ b/src/main/java/com/moral/service/impl/OrganizationSensorUnitServiceImpl.java @@ -0,0 +1,78 @@ +package com.moral.service.impl; + +import com.moral.entity.OrganizationSensorUnit; +import com.moral.entity.Sensor; +import com.moral.entity.SensorUnit; +import com.moral.mapper.OrganizationSensorUnitMapper; +import com.moral.mapper.SensorMapper; +import com.moral.service.OrganizationSensorUnitService; +import org.springframework.data.annotation.Transient; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class OrganizationSensorUnitServiceImpl implements OrganizationSensorUnitService{ + @Resource + OrganizationSensorUnitMapper osuMapper; + @Resource + SensorMapper sensorMapper; + + /** + * ��������������������������������������� + * @param organizationId + * @return + */ + @Override + public List<OrganizationSensorUnit> queryAllByOrgId(Integer organizationId) { + // ������������������������������������ + List<Sensor> sensorList = sensorMapper.selectByOrgId(organizationId); + // ������������������������������������������������ + List<OrganizationSensorUnit> organizationSensorUnits = osuMapper.selectByOrgId(organizationId); + List<OrganizationSensorUnit> returnList = new ArrayList<>(); + for (int index=0;index<sensorList.size();index++){ + Sensor sensor = sensorList.get(index); + OrganizationSensorUnit osuOutEntity = null; + for (int num =0; num< organizationSensorUnits.size();num++) { + OrganizationSensorUnit osuTemp = organizationSensorUnits.get(num); + SensorUnit sensorUnit = osuTemp.getSensorUnit(); + if(sensorUnit!=null&&sensor.getId() == sensorUnit.getSensorId() ){ + osuOutEntity = osuTemp; + break; + } + } + if(osuOutEntity==null) {osuOutEntity = new OrganizationSensorUnit();} + osuOutEntity.setOrganizationId(organizationId); + osuOutEntity.setSensor(sensor); + returnList.add(osuOutEntity); + } + return returnList; + } + + @Override + public List<OrganizationSensorUnit> queryByOrgId(Integer organizationId) { + return osuMapper.selectByOrgId(organizationId); + } + + @Override + @Transient + public void addsOrModifys(List<OrganizationSensorUnit> osuList) { + osuList.forEach( + item -> { + if(item.getId() != null) { + if(item.getSensorUnitId() == null) { + osuMapper.deleteByPrimaryKey(item); + }else { + osuMapper.updateByPrimaryKeySelective(item); + } + }else{ + item.setCreateTime(new Date()); + osuMapper.insertSelective(item); + } + } + ); + } +} diff --git a/src/main/java/com/moral/service/impl/SensorServiceImpl.java b/src/main/java/com/moral/service/impl/SensorServiceImpl.java index 727f319..c088849 100644 --- a/src/main/java/com/moral/service/impl/SensorServiceImpl.java +++ b/src/main/java/com/moral/service/impl/SensorServiceImpl.java @@ -35,6 +35,14 @@ List<Sensor> sensorList = sensorMapper.selectByVersionId(deviceVersionId); return new PageBean(sensorList); } + @Override + public List<Sensor> queryListByVersionId(Integer deviceVersionId){ + return sensorMapper.selectByVersionId(deviceVersionId); + } + @Override + public List<Sensor> queryListByVersionNo(Integer versionNo){ + return sensorMapper.selectByVersionNo(versionNo); + } public void addOrModify(Sensor sensor){ try{ if(sensor.getId()==null){ @@ -62,6 +70,15 @@ } } + /** + * ������������������������������������������ + * @param organizationId + * @return + */ + @Override + public List<Sensor> queryByOrgId(Integer organizationId) { + return sensorMapper.selectByOrgId(organizationId); + } @Override public List<Sensor> getAllSensors() { return sensorMapper.selectAll(); diff --git a/src/main/java/com/moral/service/impl/SensorUnitServiceImpl.java b/src/main/java/com/moral/service/impl/SensorUnitServiceImpl.java new file mode 100644 index 0000000..527b123 --- /dev/null +++ b/src/main/java/com/moral/service/impl/SensorUnitServiceImpl.java @@ -0,0 +1,90 @@ +package com.moral.service.impl; + +import com.moral.entity.SensorUnit; +import com.moral.mapper.SensorUnitMapper; +import com.moral.service.SensorService; +import com.moral.service.SensorUnitService; +import org.apache.log4j.Logger; +import org.springframework.data.annotation.Transient; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class SensorUnitServiceImpl implements SensorUnitService{ + private static Logger log = Logger.getLogger(SensorService.class); + @Resource + private SensorUnitMapper sensorUnitMapper; + @Override + public boolean addOrModify(SensorUnit sensorUnit) { + try { + if(sensorUnit.getId()!=null) { + sensorUnit.setUpdateTime(new Date()); + sensorUnitMapper.updateByPrimaryKeySelective(sensorUnit); + }else{ + sensorUnit.setIsDelete(false); + sensorUnit.setCreateTime(new Date()); + sensorUnitMapper.insertSelective(sensorUnit); + } + return true; + } catch (Exception ex) { + ex.printStackTrace(); + log.error(ex.getMessage()); + } + return false; + } + + @Override + public List<SensorUnit> queryListBySensorId(int sensorId) { + return queryListBySensorId(sensorId,false); + } + + /** + * ���������������id ������ ��������������������� + * @param sensorId + * @return + */ + @Override + public List<SensorUnit> queryListBySensorId(int sensorId, Boolean isDelete) { + SensorUnit sensorUnitQuery = new SensorUnit(); + sensorUnitQuery.setSensorId(sensorId); + sensorUnitQuery.setIsDelete(isDelete); + return sensorUnitMapper.select(sensorUnitQuery); + } + + /** + * ���������������������������id ������ + * @param id + */ + @Override + public void remove(Integer id) { + SensorUnit sensorUnit = new SensorUnit(); + sensorUnit.setId(id); + sensorUnit.setIsDelete(true); + sensorUnit.setUpdateTime(new Date()); + sensorUnitMapper.updateByPrimaryKeySelective(sensorUnit); + } + + /** + * ��������������������������������� + * @param sensorIds + * @return + */ + @Override + public Map<Integer,List<SensorUnit>> queryGroupSensorBySids(List<Integer> sensorIds){ + SensorUnit sensorUnitQuery = new SensorUnit(); + Map<Integer,List<SensorUnit>> resultList = new HashMap<>(); + for(Integer sensorId: sensorIds) { + sensorUnitQuery.setSensorId(sensorId); + List<SensorUnit> sensorUnitList = sensorUnitMapper.select(sensorUnitQuery); + if(sensorUnitList!=null&&sensorUnitList.size()>0){ + resultList.put(sensorId,sensorUnitList); + } + } + return resultList; + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0580053..b5a49fb 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -52,10 +52,10 @@ redis: - host: 47.96.19.115 + host: 47.100.8.247 port: 6379 - password: redis_pass - database: 0 + password: + database: 1 timeout: 0 pool: max-active: 8 diff --git a/src/main/resources/mapper/DeviceVersionMapper.xml b/src/main/resources/mapper/DeviceVersionMapper.xml index ef1aac2..ad7b3db 100644 --- a/src/main/resources/mapper/DeviceVersionMapper.xml +++ b/src/main/resources/mapper/DeviceVersionMapper.xml @@ -8,4 +8,21 @@ <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> <result column="description" jdbcType="VARCHAR" property="description" /> </resultMap> + <select id="selectListByOrgId" parameterType="java.lang.Integer" resultMap="BaseResultMap"> + SELECT + * + FROM + device_version dvn + WHERE + dvn.id IN ( + SELECT DISTINCT + dev.device_version_id + FROM + device dev + WHERE + dev.monitor_point_id IN + ( SELECT id FROM monitor_point mpt WHERE mpt.organization_id = #{orgId,jdbcType=INTEGER} ) + ) + order by dvn.create_time desc + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/DictionaryDataMapper.xml b/src/main/resources/mapper/DictionaryDataMapper.xml index 5d502f6..67efb58 100644 --- a/src/main/resources/mapper/DictionaryDataMapper.xml +++ b/src/main/resources/mapper/DictionaryDataMapper.xml @@ -3,14 +3,21 @@ <mapper namespace="com.moral.mapper.DictionaryDataMapper" > <resultMap id="BaseResultMap" type="com.moral.entity.DictionaryData" > <id column="id" property="id" jdbcType="INTEGER" /> - <result column="dict_value" property="dictValue" jdbcType="INTEGER" /> + <result column="dict_id" property="dictId" jdbcType="INTEGER" /> + <result column="dict_data_key" property="dictDataKey" jdbcType="VARCHAR" /> <result column="dict_data_name" property="dictDataName" jdbcType="VARCHAR" /> <result column="dict_data_value" property="dictDataValue" jdbcType="OTHER" /> <result column="is_fixed" property="isFixed" jdbcType="INTEGER" /> <result column="is_delete" property="isDelete" jdbcType="INTEGER" /> <result column="parent_id" property="parentId" jdbcType="INTEGER" /> + <result column="description" property="description" jdbcType="VARCHAR" /> </resultMap> <sql id="Base_Column_List" > - id, dict_value, dict_data_name, dict_data_value, is_fixed, is_delete, parent_id + id, dict_id, dict_data_key, dict_data_name, dict_data_value, is_fixed, is_delete, + parent_id, description </sql> + <select id="selectSupperOrgId" parameterType="java.lang.String" resultType="java.lang.Integer"> + select dict_data_value from dictionary_data + where dict_data_key = 'auth_config_super_org' + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/DictionaryMapper.xml b/src/main/resources/mapper/DictionaryMapper.xml index f81c477..3127ca3 100644 --- a/src/main/resources/mapper/DictionaryMapper.xml +++ b/src/main/resources/mapper/DictionaryMapper.xml @@ -2,11 +2,13 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.moral.mapper.DictionaryMapper" > <resultMap id="BaseResultMap" type="com.moral.entity.Dictionary" > - <id column="dict_name" property="dictName" jdbcType="VARCHAR" /> - <result column="dict_value" property="dictValue" jdbcType="INTEGER" /> + <id column="dict_key" property="dictKey" jdbcType="VARCHAR" /> + <result column="id" property="id" jdbcType="INTEGER" /> + <result column="dict_name" property="dictName" jdbcType="VARCHAR" /> <result column="is_delete" property="isDelete" jdbcType="INTEGER" /> + <result column="description" property="description" jdbcType="VARCHAR" /> </resultMap> <sql id="Base_Column_List" > - dict_name, dict_value, is_delete + dict_key, id, dict_name, is_delete, description </sql> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/SensorMapper.xml b/src/main/resources/mapper/SensorMapper.xml index 88cb11d..84e8794 100644 --- a/src/main/resources/mapper/SensorMapper.xml +++ b/src/main/resources/mapper/SensorMapper.xml @@ -23,6 +23,21 @@ where sen.id = dvs.sensor_id and dvs.device_version_id = #{deviceVersionId,jdbcType=INTEGER} ) </select> + <select id="selectByVersionNo" resultMap="BaseResultMap" parameterType="java.lang.Integer" > + select + <include refid="Base_Column_List" /> + from sensor sen + where EXISTS + ( select id + from device_version_sensor dvs + where sen.id = dvs.sensor_id + and dvs.device_version_id in + ( + select dev.id from device_version dev + where dev.version = #{versionNo,jdbcType=INTEGER} + ) + ) + </select> <select id="getSensorsByDeviceVersionId" resultType="java.util.Map"> SELECT @@ -66,5 +81,16 @@ AND d.profession_id = #{professionId} </if> </select> - + <select id="selectByOrgId" resultMap="BaseResultMap"> + select * from sensor sen where sen.id in + ( + select DISTINCT sensor_id from device_version_sensor dvs + where dvs.device_version_id in ( + select DISTINCT device_version_id from device dev where + EXISTS (select * from monitor_point mpt where + mpt.organization_id = #{organizationId,jdbcType=INTEGER} and mpt.id = dev.monitor_point_id + ) + ) + ) order by sen.id asc + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/system/sysConfig.properties b/src/main/resources/system/sysConfig.properties index d7432f1..0f6e6b7 100644 --- a/src/main/resources/system/sysConfig.properties +++ b/src/main/resources/system/sysConfig.properties @@ -28,4 +28,4 @@ orgId=5 password=123456 noFilters=/**/*.css,/**/*.json,/alarm/**,/screen/**,/**/*.jsp,/**/*.js,/**/*.gif,/**/*.png,/**/*.ico,/**/*.html,/**/*.map,/machineactivate/**,/device/**,/sensor/**,/mobile/**,/page/**,/swagger*/**,/v2/**,/webjars/** -specialOrgIds=-1,5 \ No newline at end of file +specialOrgIds=5 \ No newline at end of file diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js index 975ed08..276078c 100644 --- a/src/main/webapp/js/moralmap.js +++ b/src/main/webapp/js/moralmap.js @@ -436,7 +436,7 @@ state = stateObj["state"]; stateName = stateObj["stateName"]; var name = e['name']; - if(moralMap.getUtf8Length(name) > 24) { + if(moralMap.getUtf8Length(name) > 22) { var stop1 = 0; for(var stop1_i = 0, len = 0; stop1_i < name.length; stop1_i++) { len += ((name.charCodeAt(stop1_i) & 0xff00) != 0) ? 2 : 1; -- Gitblit v1.8.0