Commit 64006e7e authored by zhuangzhuang's avatar zhuangzhuang

增加首页数据,增加博士专用预警接口,修改告警记录的接口

parent e7eae89e
...@@ -51,6 +51,7 @@ dependencies { ...@@ -51,6 +51,7 @@ dependencies {
compile files('libs/javacsv-2.0.jar') compile files('libs/javacsv-2.0.jar')
compile ('com.github.miwurster:spring-data-influxdb:1.6') compile ('com.github.miwurster:spring-data-influxdb:1.6')
compile('org.springframework.boot:spring-boot-starter-mail') compile('org.springframework.boot:spring-boot-starter-mail')
compile('com.aliyun:aliyun-java-sdk-core:4.0.3')
} }
jar { jar {
......
...@@ -15,10 +15,10 @@ public class MyWebMvcConfigurer extends WebMvcConfigurerAdapter { ...@@ -15,10 +15,10 @@ public class MyWebMvcConfigurer extends WebMvcConfigurerAdapter {
return new LoginInterceptor(); return new LoginInterceptor();
} }
@Bean // @Bean
public PermissionInterceptor permissionInterceptor(){ // public PermissionInterceptor permissionInterceptor(){
return new PermissionInterceptor(); // return new PermissionInterceptor();
} // }
@Override @Override
public void addInterceptors(InterceptorRegistry registry) { public void addInterceptors(InterceptorRegistry registry) {
...@@ -26,14 +26,14 @@ public class MyWebMvcConfigurer extends WebMvcConfigurerAdapter { ...@@ -26,14 +26,14 @@ public class MyWebMvcConfigurer extends WebMvcConfigurerAdapter {
.excludePathPatterns("/alarmLog/addAlarmLog") .excludePathPatterns("/alarmLog/addAlarmLog")
.excludePathPatterns("/login/**") .excludePathPatterns("/login/**")
.excludePathPatterns("/getData"); .excludePathPatterns("/getData");
registry.addInterceptor(permissionInterceptor()) // registry.addInterceptor(permissionInterceptor())
.excludePathPatterns("/login/**") // .excludePathPatterns("/login/**")
.excludePathPatterns("/alarmLog/addAlarmLog") // .excludePathPatterns("/alarmLog/addAlarmLog")
.excludePathPatterns("/side/**") // .excludePathPatterns("/side/**")
.excludePathPatterns("/downLoad") // .excludePathPatterns("/downLoad")
.excludePathPatterns("/getAddress") // .excludePathPatterns("/getAddress")
.excludePathPatterns("/test") // .excludePathPatterns("/test")
.excludePathPatterns("/getData"); // .excludePathPatterns("/getData");
super.addInterceptors(registry); super.addInterceptors(registry);
} }
......
...@@ -67,6 +67,13 @@ public class ScheduleConfig { ...@@ -67,6 +67,13 @@ public class ScheduleConfig {
} }
@Scheduled(cron ="0 0 0 1 * ? ")
public void scheduler2(){
//获取每个仓库的历史数据并生成报表发给每个人
}
public String message(String warehouseNo,String startTime,String endTime,Integer tempCount,String tempTime,Integer humCount,String humTime){ public String message(String warehouseNo,String startTime,String endTime,Integer tempCount,String tempTime,Integer humCount,String humTime){
String html="<!DOCTYPE html>\n" + String html="<!DOCTYPE html>\n" +
"<html lang=\"en\">\n" + "<html lang=\"en\">\n" +
......
...@@ -13,6 +13,8 @@ public class AddAlarmLogVo { ...@@ -13,6 +13,8 @@ public class AddAlarmLogVo {
private Long ts; private Long ts;
private Integer alarmno;
private List<AlarmData> alarm; private List<AlarmData> alarm;
public static class AlarmData { public static class AlarmData {
...@@ -121,6 +123,14 @@ public class AddAlarmLogVo { ...@@ -121,6 +123,14 @@ public class AddAlarmLogVo {
this.ts = ts; this.ts = ts;
} }
public Integer getAlarmno() {
return alarmno;
}
public void setAlarmno(Integer alarmno) {
this.alarmno = alarmno;
}
public List<AlarmData> getAlarm() { public List<AlarmData> getAlarm() {
return alarm; return alarm;
} }
......
package com.example.tdl.domain.vo;
public class AddBoschAlarmVo {
private String alarmType;
private Float temUpper;//温度上限
private Float temMax;//温度上限
private Float temMin;//温度下限
private Float temLower;//温度下限
private Float humidityUpper;//湿度上限
private Float humidityMax;//湿度上限
private Float humidityMin;//湿度下限
private Float humidityLower;//湿度下限
private Float tiltUpper;//倾斜度
private Float tilt;//倾斜度
private Integer shockUpper;//震度
private Integer shock;//震度
private String remark;
private String companyNo;
public String getAlarmType() {
return alarmType;
}
public void setAlarmType(String alarmType) {
this.alarmType = alarmType;
}
public Float getTemUpper() {
return temUpper;
}
public void setTemUpper(Float temUpper) {
this.temUpper = temUpper;
}
public Float getTemMax() {
return temMax;
}
public void setTemMax(Float temMax) {
this.temMax = temMax;
}
public Float getTemMin() {
return temMin;
}
public void setTemMin(Float temMin) {
this.temMin = temMin;
}
public Float getTemLower() {
return temLower;
}
public void setTemLower(Float temLower) {
this.temLower = temLower;
}
public Float getHumidityUpper() {
return humidityUpper;
}
public void setHumidityUpper(Float humidityUpper) {
this.humidityUpper = humidityUpper;
}
public Float getHumidityMax() {
return humidityMax;
}
public void setHumidityMax(Float humidityMax) {
this.humidityMax = humidityMax;
}
public Float getHumidityMin() {
return humidityMin;
}
public void setHumidityMin(Float humidityMin) {
this.humidityMin = humidityMin;
}
public Float getHumidityLower() {
return humidityLower;
}
public void setHumidityLower(Float humidityLower) {
this.humidityLower = humidityLower;
}
public Float getTiltUpper() {
return tiltUpper;
}
public void setTiltUpper(Float tiltUpper) {
this.tiltUpper = tiltUpper;
}
public Float getTilt() {
return tilt;
}
public void setTilt(Float tilt) {
this.tilt = tilt;
}
public Integer getShockUpper() {
return shockUpper;
}
public void setShockUpper(Integer shockUpper) {
this.shockUpper = shockUpper;
}
public Integer getShock() {
return shock;
}
public void setShock(Integer shock) {
this.shock = shock;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getCompanyNo() {
return companyNo;
}
public void setCompanyNo(String companyNo) {
this.companyNo = companyNo;
}
}
...@@ -4,9 +4,13 @@ public class AlarmRuleVo { ...@@ -4,9 +4,13 @@ public class AlarmRuleVo {
private String rule; private String rule;
private String maxval; private Double upperval;
private String minval; private Double maxval;
private Double minval;
private Double lowerval;
private String mode; private String mode;
...@@ -20,22 +24,38 @@ public class AlarmRuleVo { ...@@ -20,22 +24,38 @@ public class AlarmRuleVo {
this.rule = rule; this.rule = rule;
} }
public String getMaxval() { public Double getUpperval() {
return upperval;
}
public void setUpperval(Double upperval) {
this.upperval = upperval;
}
public Double getMaxval() {
return maxval; return maxval;
} }
public void setMaxval(String maxval) { public void setMaxval(Double maxval) {
this.maxval = maxval; this.maxval = maxval;
} }
public String getMinval() { public Double getMinval() {
return minval; return minval;
} }
public void setMinval(String minval) { public void setMinval(Double minval) {
this.minval = minval; this.minval = minval;
} }
public Double getLowerval() {
return lowerval;
}
public void setLowerval(Double lowerval) {
this.lowerval = lowerval;
}
public String getMode() { public String getMode() {
return mode; return mode;
} }
......
package com.example.tdl.domain.vo;
import java.util.List;
public class BoschHomepageVo {
private Integer sum;//总线路
private Integer onRoute;//在途线路数量
private Integer alarmed;//报警线路数量
private Integer delay;//迟到线路数量
private Integer total;//仓库总数
private Integer alert;//仓库报警数量
private List<CircuitVo> circuitList;
private List<ResultWarehouseVo> warehouseVoList;
private List<HistogramData> circuitHistogramDataList;
private List<HistogramData> warehouseHistogramDataList;
public Integer getSum() {
return sum;
}
public void setSum(Integer sum) {
this.sum = sum;
}
public Integer getOnRoute() {
return onRoute;
}
public void setOnRoute(Integer onRoute) {
this.onRoute = onRoute;
}
public Integer getAlarmed() {
return alarmed;
}
public void setAlarmed(Integer alarmed) {
this.alarmed = alarmed;
}
public Integer getDelay() {
return delay;
}
public void setDelay(Integer delay) {
this.delay = delay;
}
public Integer getTotal() {
return total;
}
public void setTotal(Integer total) {
this.total = total;
}
public Integer getAlert() {
return alert;
}
public void setAlert(Integer alert) {
this.alert = alert;
}
public List<CircuitVo> getCircuitList() {
return circuitList;
}
public void setCircuitList(List<CircuitVo> circuitList) {
this.circuitList = circuitList;
}
public List<ResultWarehouseVo> getWarehouseVoList() {
return warehouseVoList;
}
public void setWarehouseVoList(List<ResultWarehouseVo> warehouseVoList) {
this.warehouseVoList = warehouseVoList;
}
public List<HistogramData> getCircuitHistogramDataList() {
return circuitHistogramDataList;
}
public void setCircuitHistogramDataList(List<HistogramData> circuitHistogramDataList) {
this.circuitHistogramDataList = circuitHistogramDataList;
}
public List<HistogramData> getWarehouseHistogramDataList() {
return warehouseHistogramDataList;
}
public void setWarehouseHistogramDataList(List<HistogramData> warehouseHistogramDataList) {
this.warehouseHistogramDataList = warehouseHistogramDataList;
}
}
package com.example.tdl.domain.vo;
public class ResultBoschAlarmVo {
private String alarmType;
private Double temUpper;//温度上限
private Double temMax;//温度上限
private Double temMin;//温度下限
private Double temLower;//温度下限
private Double humidityUpper;//湿度上限
private Double humidityMax;//湿度上限
private Double humidityMin;//湿度下限
private Double humidityLower;//湿度下限
private Double tiltUpper;//倾斜度
private Double tilt;//倾斜度
private Integer shockUpper;//震度
private Integer shock;//震度
private String remark;
public String getAlarmType() {
return alarmType;
}
public void setAlarmType(String alarmType) {
this.alarmType = alarmType;
}
public Double getTemUpper() {
return temUpper;
}
public void setTemUpper(Double temUpper) {
this.temUpper = temUpper;
}
public Double getTemMax() {
return temMax;
}
public void setTemMax(Double temMax) {
this.temMax = temMax;
}
public Double getTemMin() {
return temMin;
}
public void setTemMin(Double temMin) {
this.temMin = temMin;
}
public Double getTemLower() {
return temLower;
}
public void setTemLower(Double temLower) {
this.temLower = temLower;
}
public Double getHumidityUpper() {
return humidityUpper;
}
public void setHumidityUpper(Double humidityUpper) {
this.humidityUpper = humidityUpper;
}
public Double getHumidityMax() {
return humidityMax;
}
public void setHumidityMax(Double humidityMax) {
this.humidityMax = humidityMax;
}
public Double getHumidityMin() {
return humidityMin;
}
public void setHumidityMin(Double humidityMin) {
this.humidityMin = humidityMin;
}
public Double getHumidityLower() {
return humidityLower;
}
public void setHumidityLower(Double humidityLower) {
this.humidityLower = humidityLower;
}
public Double getTiltUpper() {
return tiltUpper;
}
public void setTiltUpper(Double tiltUpper) {
this.tiltUpper = tiltUpper;
}
public Double getTilt() {
return tilt;
}
public void setTilt(Double tilt) {
this.tilt = tilt;
}
public Integer getShockUpper() {
return shockUpper;
}
public void setShockUpper(Integer shockUpper) {
this.shockUpper = shockUpper;
}
public Integer getShock() {
return shock;
}
public void setShock(Integer shock) {
this.shock = shock;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
...@@ -13,6 +13,8 @@ public class ResultTDLDeviceVo { ...@@ -13,6 +13,8 @@ public class ResultTDLDeviceVo {
private String warehouseName; private String warehouseName;
private String warehouseNo;
private String transportationNo; private String transportationNo;
private String gatewaySN; private String gatewaySN;
...@@ -77,6 +79,14 @@ public class ResultTDLDeviceVo { ...@@ -77,6 +79,14 @@ public class ResultTDLDeviceVo {
this.warehouseName = warehouseName; this.warehouseName = warehouseName;
} }
public String getWarehouseNo() {
return warehouseNo;
}
public void setWarehouseNo(String warehouseNo) {
this.warehouseNo = warehouseNo;
}
public String getTransportationNo() { public String getTransportationNo() {
return transportationNo; return transportationNo;
} }
......
package com.example.tdl.domain.vo;
public class ResultWarehouseDetailsVo {
private String warehouseNo;//仓库编号
private String img;
private String warehouseName;
private String country;
private String city;
private String regions;
private String addressDetail;
private String regionName;
private String property;//属性
private String type;//类型
private String hardwareLevel;//硬件等级
private Double areaIndoor;//室内平面面积
private Double areaRack;//货架面积
private Double areaOutdoor;//实际室内总面积
private Double areaPlanIndoor;//实际室内总面积
private String office;//办事处
private String timeZone;//时区
private String warehouseInfo;//基础描述
private String companyNo;
private String companyName;
private String temp;
private String humi;
private String alarmDesciption;
private String remark;
public String getWarehouseNo() {
return warehouseNo;
}
public void setWarehouseNo(String warehouseNo) {
this.warehouseNo = warehouseNo;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getWarehouseName() {
return warehouseName;
}
public void setWarehouseName(String warehouseName) {
this.warehouseName = warehouseName;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getRegions() {
return regions;
}
public void setRegions(String regions) {
this.regions = regions;
}
public String getAddressDetail() {
return addressDetail;
}
public void setAddressDetail(String addressDetail) {
this.addressDetail = addressDetail;
}
public String getRegionName() {
return regionName;
}
public void setRegionName(String regionName) {
this.regionName = regionName;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getHardwareLevel() {
return hardwareLevel;
}
public void setHardwareLevel(String hardwareLevel) {
this.hardwareLevel = hardwareLevel;
}
public Double getAreaIndoor() {
return areaIndoor;
}
public void setAreaIndoor(Double areaIndoor) {
this.areaIndoor = areaIndoor;
}
public Double getAreaRack() {
return areaRack;
}
public void setAreaRack(Double areaRack) {
this.areaRack = areaRack;
}
public Double getAreaOutdoor() {
return areaOutdoor;
}
public void setAreaOutdoor(Double areaOutdoor) {
this.areaOutdoor = areaOutdoor;
}
public Double getAreaPlanIndoor() {
return areaPlanIndoor;
}
public void setAreaPlanIndoor(Double areaPlanIndoor) {
this.areaPlanIndoor = areaPlanIndoor;
}
public String getOffice() {
return office;
}
public void setOffice(String office) {
this.office = office;
}
public String getTimeZone() {
return timeZone;
}
public void setTimeZone(String timeZone) {
this.timeZone = timeZone;
}
public String getWarehouseInfo() {
return warehouseInfo;
}
public void setWarehouseInfo(String warehouseInfo) {
this.warehouseInfo = warehouseInfo;
}
public String getCompanyNo() {
return companyNo;
}
public void setCompanyNo(String companyNo) {
this.companyNo = companyNo;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getTemp() {
return temp;
}
public void setTemp(String temp) {
this.temp = temp;
}
public String getHumi() {
return humi;
}
public void setHumi(String humi) {
this.humi = humi;
}
public String getAlarmDesciption() {
return alarmDesciption;
}
public void setAlarmDesciption(String alarmDesciption) {
this.alarmDesciption = alarmDesciption;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
package com.example.tdl.domain.vo;
public class UpdateBoschAlarmVo {
private String alarmType;
private Float temUpper;//温度上限
private Float temMax;//温度上限
private Float temMin;//温度下限
private Float temLower;//温度下限
private Float humidityUpper;//湿度上限
private Float humidityMax;//湿度上限
private Float humidityMin;//湿度下限
private Float humidityLower;//湿度下限
private Float tiltUpper;//倾斜度
private Float tilt;//倾斜度
private Integer shockUpper;//震度
private Integer shock;//震度
private String remark;
private String companyNo;
private String oldAlarmType;
public String getAlarmType() {
return alarmType;
}
public void setAlarmType(String alarmType) {
this.alarmType = alarmType;
}
public Float getTemUpper() {
return temUpper;
}
public void setTemUpper(Float temUpper) {
this.temUpper = temUpper;
}
public Float getTemMax() {
return temMax;
}
public void setTemMax(Float temMax) {
this.temMax = temMax;
}
public Float getTemMin() {
return temMin;
}
public void setTemMin(Float temMin) {
this.temMin = temMin;
}
public Float getTemLower() {
return temLower;
}
public void setTemLower(Float temLower) {
this.temLower = temLower;
}
public Float getHumidityUpper() {
return humidityUpper;
}
public void setHumidityUpper(Float humidityUpper) {
this.humidityUpper = humidityUpper;
}
public Float getHumidityMax() {
return humidityMax;
}
public void setHumidityMax(Float humidityMax) {
this.humidityMax = humidityMax;
}
public Float getHumidityMin() {
return humidityMin;
}
public void setHumidityMin(Float humidityMin) {
this.humidityMin = humidityMin;
}
public Float getHumidityLower() {
return humidityLower;
}
public void setHumidityLower(Float humidityLower) {
this.humidityLower = humidityLower;
}
public Float getTiltUpper() {
return tiltUpper;
}
public void setTiltUpper(Float tiltUpper) {
this.tiltUpper = tiltUpper;
}
public Float getTilt() {
return tilt;
}
public void setTilt(Float tilt) {
this.tilt = tilt;
}
public Integer getShockUpper() {
return shockUpper;
}
public void setShockUpper(Integer shockUpper) {
this.shockUpper = shockUpper;
}
public Integer getShock() {
return shock;
}
public void setShock(Integer shock) {
this.shock = shock;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getCompanyNo() {
return companyNo;
}
public void setCompanyNo(String companyNo) {
this.companyNo = companyNo;
}
public String getOldAlarmType() {
return oldAlarmType;
}
public void setOldAlarmType(String oldAlarmType) {
this.oldAlarmType = oldAlarmType;
}
}
...@@ -20,10 +20,12 @@ public class WarehouseAlarmLog { ...@@ -20,10 +20,12 @@ public class WarehouseAlarmLog {
private Integer alarmNo; private Integer alarmNo;
private String classify;
public WarehouseAlarmLog() { public WarehouseAlarmLog() {
} }
public WarehouseAlarmLog(String warehouseNo, String gSN, String gType, String TDLSN, String description, Float data, Long alarmTime, String desp, Integer alarmNo) { public WarehouseAlarmLog(String warehouseNo, String gSN, String gType, String TDLSN, String description, Float data, Long alarmTime, String desp, Integer alarmNo,String classify) {
this.warehouseNo = warehouseNo; this.warehouseNo = warehouseNo;
this.gSN = gSN; this.gSN = gSN;
this.gType = gType; this.gType = gType;
...@@ -33,6 +35,7 @@ public class WarehouseAlarmLog { ...@@ -33,6 +35,7 @@ public class WarehouseAlarmLog {
this.alarmTime = alarmTime; this.alarmTime = alarmTime;
this.desp = desp; this.desp = desp;
this.alarmNo = alarmNo; this.alarmNo = alarmNo;
this.classify = classify;
} }
public String getWarehouseNo() { public String getWarehouseNo() {
...@@ -106,4 +109,12 @@ public class WarehouseAlarmLog { ...@@ -106,4 +109,12 @@ public class WarehouseAlarmLog {
public void setAlarmNo(Integer alarmNo) { public void setAlarmNo(Integer alarmNo) {
this.alarmNo = alarmNo; this.alarmNo = alarmNo;
} }
public String getClassify() {
return classify;
}
public void setClassify(String classify) {
this.classify = classify;
}
} }
package com.example.tdl.mapper;
import com.example.tdl.domain.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface BoschAlarmMapper {
List<ResultBoschAlarmVo> getAll(String companyNo);
List<ResultBoschAlarmVo> getAllByAlarmType(@Param("companyNo") String companyNo, @Param("alarmType") String alarmType);
int addAlarm(AddBoschAlarmVo addAlarmVo);
int updateAlarm(UpdateBoschAlarmVo updateAlarmVo);
int delAlarm(DelAlarmVo delAlarmVo);
ResultBoschAlarmVo getByType(@Param("alarmType") String alarmType,@Param("companyNo") String companyNo);
ResultBoschAlarmVo getAlarmByWarehouseNo(@Param("warehouseNo") String warehouseNo ,@Param("gatewaySN")String gatewaySN,@Param("TDLSN")String TDLSN);
}
...@@ -59,6 +59,8 @@ public interface CircuitMapper { ...@@ -59,6 +59,8 @@ public interface CircuitMapper {
List<ResultCircuitVo> getByTime(String companyNo); List<ResultCircuitVo> getByTime(String companyNo);
List<CircuitVo> getHomepageCircuit(String companyNo);
CircuitMessage getMessage(String transportationNo); CircuitMessage getMessage(String transportationNo);
String getStartCity(String transportationNo); String getStartCity(String transportationNo);
......
...@@ -39,4 +39,6 @@ public interface GatewayMapper { ...@@ -39,4 +39,6 @@ public interface GatewayMapper {
List<TypeVo> getGatewayType(@Param("companyNo") String companyNo); List<TypeVo> getGatewayType(@Param("companyNo") String companyNo);
Integer getModeByGateway(@Param("SN") String SN,@Param("type") String type);
} }
package com.example.tdl.mapper; package com.example.tdl.mapper;
import com.example.tdl.domain.vo.HistogramData;
import com.example.tdl.domain.vo.WarehouseAlarmLog; import com.example.tdl.domain.vo.WarehouseAlarmLog;
import com.example.tdl.domain.vo.WarehouseCountVo; import com.example.tdl.domain.vo.WarehouseCountVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
...@@ -15,5 +16,11 @@ public interface WarehouseAlarmLogMapper { ...@@ -15,5 +16,11 @@ public interface WarehouseAlarmLogMapper {
List<WarehouseCountVo> getCount(@Param("warehouseNo") String warehouseNo, @Param("startTime") Long startTime,@Param("endTime") Long endTime ,@Param("desp")String desp); List<WarehouseCountVo> getCount(@Param("warehouseNo") String warehouseNo, @Param("startTime") Long startTime,@Param("endTime") Long endTime ,@Param("desp")String desp);
String getLastAlarm(String warehouseNo);
List<HistogramData> getByCount(@Param("time")String time, @Param("companyNo")String companyNo);
Integer getAlarmCount(@Param("time")String time, @Param("companyNo")String companyNo);
} }
...@@ -56,4 +56,9 @@ public interface WarehouseMapper { ...@@ -56,4 +56,9 @@ public interface WarehouseMapper {
List<WarehouseNameVo> getWarehouseName(@Param("warehouseName") String warehouseName,@Param("companyNo") String companyNo ); List<WarehouseNameVo> getWarehouseName(@Param("warehouseName") String warehouseName,@Param("companyNo") String companyNo );
List<String> getEmailByWarehouse(String warehouseNo); List<String> getEmailByWarehouse(String warehouseNo);
ResultWarehouseDetailsVo getDetailsBywarehouseNo(String warehouseNo);
} }
package com.example.tdl.service;
import com.example.tdl.domain.vo.*;
import com.example.tdl.mapper.AlarmMapper;
import com.example.tdl.mapper.BoschAlarmMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BoschAlarmService {
@Autowired
private BoschAlarmMapper alarmMapper;
public List<ResultBoschAlarmVo> getAll(String companyNo){
return alarmMapper.getAll(companyNo);
}
public List<ResultBoschAlarmVo> getAllByAlarmType(String companyNo,String alarmType){
return alarmMapper.getAllByAlarmType(companyNo,alarmType);
}
public int addAlarm(AddBoschAlarmVo addAlarmVo){
return alarmMapper.addAlarm(addAlarmVo);
}
public int updateAlarm(UpdateBoschAlarmVo updateAlarmVo){
return alarmMapper.updateAlarm(updateAlarmVo);
}
public int delAlarm(DelAlarmVo delAlarmVo){
return alarmMapper.delAlarm(delAlarmVo);
}
public ResultBoschAlarmVo getByType(String alarmType,String companyNo){
return alarmMapper.getByType(alarmType,companyNo);
}
public ResultBoschAlarmVo getAlarmByWarehouseNo(String warehouseNo,String SN, String TDLSN){
return alarmMapper.getAlarmByWarehouseNo(warehouseNo,SN, TDLSN);
}
}
...@@ -116,6 +116,10 @@ public class CircuitService { ...@@ -116,6 +116,10 @@ public class CircuitService {
return circuitMapper.getByTime(companyNo); return circuitMapper.getByTime(companyNo);
} }
public List<CircuitVo> getHomepageCircuit(String companyNo){
return circuitMapper.getHomepageCircuit(companyNo);
}
public CircuitMessage getMessage(String transportationNo){ public CircuitMessage getMessage(String transportationNo){
return circuitMapper.getMessage(transportationNo); return circuitMapper.getMessage(transportationNo);
......
...@@ -75,4 +75,9 @@ public class GatewayService { ...@@ -75,4 +75,9 @@ public class GatewayService {
public List<TypeVo> getGatewayType(String companyNo){ public List<TypeVo> getGatewayType(String companyNo){
return gatewayMapper.getGatewayType(companyNo); return gatewayMapper.getGatewayType(companyNo);
} }
public Integer getModeByGateway(String SN,String type){
return gatewayMapper.getModeByGateway(SN,type);
}
} }
package com.example.tdl.service; package com.example.tdl.service;
import com.example.tdl.domain.vo.HistogramData;
import com.example.tdl.domain.vo.WarehouseAlarmLog; import com.example.tdl.domain.vo.WarehouseAlarmLog;
import com.example.tdl.domain.vo.WarehouseCountVo; import com.example.tdl.domain.vo.WarehouseCountVo;
import com.example.tdl.mapper.WarehouseAlarmLogMapper; import com.example.tdl.mapper.WarehouseAlarmLogMapper;
...@@ -23,4 +24,16 @@ public class WarehouseAlarmLogService { ...@@ -23,4 +24,16 @@ public class WarehouseAlarmLogService {
public List<WarehouseCountVo> getCount(String warehouseNo, Long startTime, Long endTime,String desp ){ public List<WarehouseCountVo> getCount(String warehouseNo, Long startTime, Long endTime,String desp ){
return warehouseAlarmLogMapper.getCount(warehouseNo,startTime,endTime,desp); return warehouseAlarmLogMapper.getCount(warehouseNo,startTime,endTime,desp);
} }
public String getLastAlarm(String warehouseNo){
return warehouseAlarmLogMapper.getLastAlarm(warehouseNo);
}
public List<HistogramData> getByCount(String time,String companyNo){
return warehouseAlarmLogMapper.getByCount(time,companyNo);
}
public Integer getAlarmCount(String time,String companyNo){
return warehouseAlarmLogMapper.getAlarmCount(time,companyNo);
}
} }
...@@ -105,4 +105,8 @@ public class WarehouseService { ...@@ -105,4 +105,8 @@ public class WarehouseService {
public List<String> getEmailByWarehouse(String warehouseNo){ public List<String> getEmailByWarehouse(String warehouseNo){
return warehouseMapper.getEmailByWarehouse(warehouseNo); return warehouseMapper.getEmailByWarehouse(warehouseNo);
} }
public ResultWarehouseDetailsVo getDetailsBywarehouseNo(String warehouseNo){
return warehouseMapper.getDetailsBywarehouseNo(warehouseNo);
}
} }
package com.example.tdl.shiro;
import org.apache.shiro.cache.ehcache.EhCacheManager;
import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO;
import org.apache.shiro.session.mgt.eis.JavaUuidSessionIdGenerator;
import org.apache.shiro.spring.LifecycleBeanPostProcessor;
import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.filter.authc.LogoutFilter;
import org.apache.shiro.web.mgt.CookieRememberMeManager;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.apache.shiro.web.servlet.SimpleCookie;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import javax.servlet.Filter;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* shiro配置类
* Created by cdyoue on 2016/10/21.
*/
@Configuration
public class ShiroConfiguration{
/**
* LifecycleBeanPostProcessor,这是个DestructionAwareBeanPostProcessor的子类,
* 负责org.apache.shiro.util.Initializable类型bean的生命周期的,初始化和销毁。
* 主要是AuthorizingRealm类的子类,以及EhCacheManager类。
*/
@Bean(name = "lifecycleBeanPostProcessor")
public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
return new LifecycleBeanPostProcessor();
}
/**
* HashedCredentialsMatcher,这个类是为了对密码进行编码的,
* 防止密码在数据库里明码保存,当然在登陆认证的时候,
* 这个类也负责对form里输入的密码进行编码。
*/
/*@Bean(name = "hashedCredentialsMatcher")
public HashedCredentialsMatcher hashedCredentialsMatcher() {
HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher();
credentialsMatcher.setHashAlgorithmName("MD5");
credentialsMatcher.setHashIterations(2);
credentialsMatcher.setStoredCredentialsHexEncoded(true);
return credentialsMatcher;
}*/
@Bean(name="userCredentialsMatcher")
public UserCredentialsMatcher userCredentialsMatcher(){
UserCredentialsMatcher credentialsMatcher = new UserCredentialsMatcher();
return credentialsMatcher;
}
/**
* ShiroRealm,这是个自定义的认证类,继承自AuthorizingRealm,
* 负责用户的认证和权限的处理,可以参考JdbcRealm的实现。
*/
@Bean(name = "shiroRealm")
@DependsOn("lifecycleBeanPostProcessor")
public ShiroRealm shiroRealm() {
ShiroRealm realm = new ShiroRealm();
// realm.setCredentialsMatcher(hashedCredentialsMatcher());
return realm;
}
/**
* EhCacheManager,缓存管理,用户登陆成功后,把用户信息和权限信息缓存起来,
* 然后每次用户请求时,放入用户的session中,如果不设置这个bean,每个请求都会查询一次数据库。
*/
@Bean(name = "ehCacheManager")
@DependsOn("lifecycleBeanPostProcessor")
public EhCacheManager ehCacheManager() {
return new EhCacheManager();
}
/**
* SecurityManager,权限管理,这个类组合了登陆,登出,权限,session的处理,是个比较重要的类。
* //
*/
@Bean(name = "securityManager")
public DefaultWebSecurityManager securityManager() {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(shiroRealm());
securityManager.setCacheManager(ehCacheManager());
return securityManager;
}
/**
* ShiroFilterFactoryBean,是个factorybean,为了生成ShiroFilter。
* 它主要保持了三项数据,securityManager,filters,filterChainDefinitionManager。
*/
@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean shiroFilterFactoryBean() {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager());
Map<String, Filter> filters = new LinkedHashMap<String, Filter>();
LogoutFilter logoutFilter = new LogoutFilter();
logoutFilter.setRedirectUrl("/login");
// filters.put("logout",null);
shiroFilterFactoryBean.setFilters(filters);
Map<String, String> filterChainDefinitionManager = new LinkedHashMap<String, String>();
filterChainDefinitionManager.put("/logout", "logout");
filterChainDefinitionManager.put("/demo/**", "authc");
//filterChainDefinitionManager.put("/user/**", "authc,roles[ROLE_USER]");
//filterChainDefinitionManager.put("/events/**", "authc,roles[ROLE_ADMIN]");
// filterChainDefinitionManager.put("/user/edit/**", "authc,perms[user:edit]");// 这里为了测试,固定写死的值,也可以从数据库或其他配置中读取
filterChainDefinitionManager.put("/**", "anon");
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionManager);
shiroFilterFactoryBean.setSuccessUrl("/demo/all");
shiroFilterFactoryBean.setUnauthorizedUrl("/demo/all");
return shiroFilterFactoryBean;
}
/**
* DefaultAdvisorAutoProxyCreator,Spring的一个bean,由Advisor决定对哪些类的方法进行AOP代理。
*/
@Bean
@ConditionalOnMissingBean
public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
DefaultAdvisorAutoProxyCreator defaultAAP = new DefaultAdvisorAutoProxyCreator();
defaultAAP.setProxyTargetClass(true);
return defaultAAP;
}
/**
* AuthorizationAttributeSourceAdvisor,shiro里实现的Advisor类,
* 内部使用AopAllianceAnnotationsAuthorizingMethodInterceptor来拦截用以下注解的方法。
*/
@Bean
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor() {
AuthorizationAttributeSourceAdvisor aASA = new AuthorizationAttributeSourceAdvisor();
aASA.setSecurityManager(securityManager());
return aASA;
}
/*
* cookie对象;
*
* @return*/
@Bean
public SimpleCookie rememberMeCookie() {
// 这个参数是cookie的名称,对应前端的checkbox 的name = rememberMe
SimpleCookie simpleCookie = new SimpleCookie("rememberMe");
//设置httpOnly为false
simpleCookie.setHttpOnly(false);
// <!-- 记住我cookie生效时间30天(259200) ,单位秒;-->
simpleCookie.setMaxAge(259200);
simpleCookie.setPath("/test/dist");
return simpleCookie;
}
/*
记住我管理器 cookie管理对象;*/
@Bean(name = "cookieRememberMeManager")
public CookieRememberMeManager rememberMeManager() {
CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();
cookieRememberMeManager.setCookie(rememberMeCookie());
return cookieRememberMeManager;
}
@Bean
public DefaultWebSessionManager defaultWebSessionManager(){
DefaultWebSessionManager defaultWebSessionManager = new DefaultWebSessionManager();
defaultWebSessionManager.setGlobalSessionTimeout(-1000l);
defaultWebSessionManager.setDeleteInvalidSessions(true);
defaultWebSessionManager.setSessionDAO(sessionDAO());
defaultWebSessionManager.setSessionIdCookieEnabled(true);
return defaultWebSessionManager;
}
@Bean
public EnterpriseCacheSessionDAO sessionDAO(){
EnterpriseCacheSessionDAO sessionDAO = new EnterpriseCacheSessionDAO();
sessionDAO.setActiveSessionsCacheName("shiro-activeSessionCache");
sessionDAO.setSessionIdGenerator(new JavaUuidSessionIdGenerator());
return sessionDAO;
}
}
package com.example.tdl.shiro;
import com.example.tdl.domain.vo.UserVo;
import com.example.tdl.service.UserService;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.PrincipalCollection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.PostConstruct;
import java.util.HashSet;
import java.util.Set;
/**
* Created by cdyoue on 2016/10/21.
*/
public class ShiroRealm extends AuthorizingRealm {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@PostConstruct
public void initCredentialsMatcher() {
setCredentialsMatcher(new UserCredentialsMatcher());
}
@Autowired
private UserService userService;
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
//授权
logger.info("doGetAuthorizationInfo+"+principalCollection.toString());
UserVo user = userService.getByUserName((String) principalCollection.getPrimaryPrincipal());
//把principals放session中 key=userId value=principals
SecurityUtils.getSubject().getSession().setAttribute(String.valueOf(user.getUserNumber()),SecurityUtils.getSubject().getPrincipals());
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
//赋予角色
// for(Role userRole:user.getRoles()){
// info.addRole(userRole.getName());
// }
//赋予权限
// for(Permission permission:permissionService.getByUserId(user.getId())){
//// if(StringUtils.isNotBlank(permission.getPermCode()))
// info.addStringPermission(permission.getName());
// }
//权限
Set<String> s = new HashSet<String>();
s.add("printer:print");
s.add("printer:query");
info.setStringPermissions(s);
//角色
Set<String> r = new HashSet<String>();
r.add("role1");
info.setRoles(r);
return info;
}
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
//认证
logger.info("doGetAuthenticationInfo +" + authenticationToken.toString());
UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;
UserVo user = userService.getByUserName(token.getUsername());
if(user == null){
return null;
}
//设置用户session
Session session = SecurityUtils.getSubject().getSession();
session.setAttribute("user", user);
session.setTimeout(-1000l);
session.setAttribute("isLogin","true");
return new SimpleAuthenticationInfo(user,user.getPassword(),this.getName());
}
}
package com.example.tdl.shiro;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class UserCredentialsMatcher extends HashedCredentialsMatcher {
private Logger logger = LoggerFactory.getLogger(UserCredentialsMatcher.class);
//密码比较器
public boolean doCredentialsMatch(AuthenticationToken token,
AuthenticationInfo info){
UsernamePasswordToken upToken = (UsernamePasswordToken) token;
char[] pwd = upToken.getPassword();
//String newPwd = Encrypt.md5(new String(pwd), upToken.getUsername());
String newPwd = DigestUtils.sha256Hex(new String(pwd));
// logger.info(newPwd);
Object dbPwd = info.getCredentials();
Boolean boo = equals(newPwd, dbPwd);
return boo;
}
}
package com.example.tdl.util;
public class AlarmLogUtil {
public static String ALARM_NONE = "正常";
public static String ALARM_LMin = "过低";
public static String ALARM_EQMax = "等于最大值";
public static String ALARM_UEQMax = "不等于最大值";
public static String ALARM_UMax = "过高";
public static String ALARM_UUMax = "超高";
public static String ALARM_LLMin = "超低";
public static String ALARM_LMaxUMin = "上下限区间告警";
public static String ALARM_OFFLINE = "离线";
public static String getDescription(Integer alalrmNo){
String desp = "";
switch (alalrmNo){
case 0 :
desp = ALARM_NONE;
break;
case 1:
desp = ALARM_EQMax;
break;
case 2:
desp = ALARM_UEQMax;
break;
case 3:
desp = ALARM_UMax;
break;
case 4:
desp = ALARM_LMin;
break;
case 5:
desp = ALARM_LMaxUMin;
break;
case 6:
desp = ALARM_UUMax;
break;
case 7:
desp = ALARM_LLMin;
break;
case 99:
desp = ALARM_OFFLINE;
break;
default:
break;
}
return desp;
}
}
...@@ -2,7 +2,9 @@ package com.example.tdl.util; ...@@ -2,7 +2,9 @@ package com.example.tdl.util;
import com.example.tdl.domain.vo.AlarmRuleVo; import com.example.tdl.domain.vo.AlarmRuleVo;
import com.example.tdl.domain.vo.ResultAlarmVo; import com.example.tdl.domain.vo.ResultAlarmVo;
import com.example.tdl.domain.vo.ResultBoschAlarmVo;
import com.example.tdl.service.AlarmService; import com.example.tdl.service.AlarmService;
import com.example.tdl.service.BoschAlarmService;
import com.example.tdl.service.redis.AlarmRedisService; import com.example.tdl.service.redis.AlarmRedisService;
import com.google.gson.Gson; import com.google.gson.Gson;
...@@ -13,37 +15,68 @@ public class AlarmRule { ...@@ -13,37 +15,68 @@ public class AlarmRule {
private static Gson gson = new Gson(); private static Gson gson = new Gson();
private static List<String> list = new ArrayList<String>(){{ private static List<String> list = new ArrayList<String>(){{
add("T"); add("T");
add("h"); add("h");
add("a1"); add("a1");
add("ta"); add("ta");
}}; }};
public static void saveAlarmRule(String topic, String TDLSN, String alarmType, String companyNo, BoschAlarmService alarmService, AlarmRedisService alarmRedisService){
public static void saveAlarmRule(String topic, String TDLSN, String alarmType, String companyNo, AlarmService alarmService, AlarmRedisService alarmRedisService){ ResultBoschAlarmVo alarmVo = alarmService.getByType(alarmType,companyNo);
ResultAlarmVo alarmVo = alarmService.getByType(alarmType,companyNo);
for(String alias :list){ for(String alias :list){
List<AlarmRuleVo> alarmRuleVos = new ArrayList<>(); List<AlarmRuleVo> alarmRuleVos = new ArrayList<>();
AlarmRuleVo alarmRuleVo = new AlarmRuleVo(); AlarmRuleVo alarmRuleVo = new AlarmRuleVo();
if(alias.equals("T")){ alarmRuleVo.setPriority("1");
alarmRuleVo.setMinval(String.valueOf(alarmVo.getTemMin())); switch(alias) {
alarmRuleVo.setMaxval(String.valueOf(alarmVo.getTemMax())); case "T" :
alarmRuleVo.setMode("twoway"); if(alarmVo.getTemLower() !=null && alarmVo.getTiltUpper() !=null){
alarmRuleVo.setPriority("1"); alarmRuleVo.setLowerval(alarmVo.getTemLower());
}else if(alias.equals("h")){ alarmRuleVo.setUpperval(alarmVo.getTemUpper());
alarmRuleVo.setMinval(String.valueOf(alarmVo.getHumidityMin())); alarmRuleVo.setMaxval(alarmVo.getTemMax());
alarmRuleVo.setMaxval(String.valueOf(alarmVo.getHumidityMax())); alarmRuleVo.setMinval(alarmVo.getTemMin());
alarmRuleVo.setMode("twoway"); alarmRuleVo.setMode("full_normal");
alarmRuleVo.setPriority("1"); }else {
}else if(alias.equals("ta")){ alarmRuleVo.setMaxval(alarmVo.getTemMax());
alarmRuleVo.setMaxval(String.valueOf(alarmVo.getTilt())); alarmRuleVo.setMinval(alarmVo.getTemMin());
alarmRuleVo.setMode("greater"); alarmRuleVo.setMode("twoway");
alarmRuleVo.setPriority("1"); }
}else if(alias.equals("a1")){ break;
alarmRuleVo.setMaxval(String.valueOf(alarmVo.getShock())); case "h":
alarmRuleVo.setMode("greater"); if(alarmVo.getHumidityLower() !=null && alarmVo.getHumidityUpper() !=null){
alarmRuleVo.setPriority("1"); alarmRuleVo.setLowerval(alarmVo.getHumidityUpper());
alarmRuleVo.setUpperval(alarmVo.getHumidityLower());
alarmRuleVo.setMaxval(alarmVo.getHumidityMax());
alarmRuleVo.setMinval(alarmVo.getHumidityMin());
alarmRuleVo.setMode("full_normal");
}else {
alarmRuleVo.setMaxval(alarmVo.getHumidityMax());
alarmRuleVo.setMinval(alarmVo.getHumidityMin());
alarmRuleVo.setMode("twoway");
}
break;
case "ta":
if(alarmVo.getTiltUpper() !=null ){
alarmRuleVo.setUpperval(alarmVo.getTiltUpper());
alarmRuleVo.setMaxval(alarmVo.getTilt());
alarmRuleVo.setMode("upper_half");
}else {
alarmRuleVo.setMaxval(alarmVo.getTilt());
alarmRuleVo.setMode("greater");
}
break;
case "a1":
if(alarmVo.getShockUpper() !=null ){
alarmRuleVo.setUpperval(alarmVo.getShockUpper().doubleValue());
alarmRuleVo.setMaxval(alarmVo.getShock().doubleValue());
alarmRuleVo.setMode("upper_half");
}else {
alarmRuleVo.setMaxval(alarmVo.getShock().doubleValue());
alarmRuleVo.setMode("greater");
}
break;
default:
break;
} }
alarmRuleVos.add(alarmRuleVo); alarmRuleVos.add(alarmRuleVo);
//向redis中写入报警信息 //向redis中写入报警信息
......
package com.example.tdl.util;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class AlidayuUtils {
private static Logger logger = LoggerFactory.getLogger(AlidayuUtils.class);
static final String product = "Dysmsapi";
static final String domain = "dysmsapi.aliyuncs.com";
static final String accessKeyId = "LTAI6OYfcrwJ1LfV";
static final String accessKeySecret = "VxLAFqp0sdXjukhND4acGPTuDyrnyh";
public static CommonResponse sendMessage(String telList,String templateCode, String signName, String message){
CommonResponse response = null;
Gson gson = new Gson();
DefaultProfile profile = DefaultProfile.getProfile("default", accessKeyId, accessKeySecret);
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
//request.setProtocol(ProtocolType.HTTPS);
request.setMethod(MethodType.POST);
request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setAction("SendSms");
request.putQueryParameter("PhoneNumbers", telList);
request.putQueryParameter("SignName", signName);
request.putQueryParameter("TemplateCode", templateCode);
request.putQueryParameter("TemplateParam", message);
try {
response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
return response;
}
public static void main(String[] args){
sendMessage("13584678050","SMS_166477417","辉泰云平台","{\"pool\":\"123\"}");
}
}
...@@ -16,12 +16,10 @@ import org.springframework.data.influxdb.InfluxDBTemplate; ...@@ -16,12 +16,10 @@ import org.springframework.data.influxdb.InfluxDBTemplate;
import retrofit2.http.POST; import retrofit2.http.POST;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.text.DecimalFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class DataUtil { public class DataUtil {
...@@ -29,7 +27,7 @@ public class DataUtil { ...@@ -29,7 +27,7 @@ public class DataUtil {
private static Gson gson = new Gson(); private static Gson gson = new Gson();
private static CommFeedback fb = new CommFeedback(); private static CommFeedback fb = new CommFeedback();
public static String getData(String transportationNo, HttpServletRequest request, I18nController i18n, String companyNo, CircuitService circuitService, TDLLogService tdlLogService, InfluxDBTemplate influxDBTemplate, String database, String field, String event, AlarmLogService alarmLogService,String classify){ public static String getData(String transportationNo, HttpServletRequest request, I18nController i18n, String companyNo, CircuitService circuitService, TDLLogService tdlLogService, InfluxDBTemplate influxDBTemplate, String database, String field, String event, AlarmLogService alarmLogService,String classify){
Long t1 = System.currentTimeMillis(); Long t1 = System.currentTimeMillis();
...@@ -94,7 +92,7 @@ public class DataUtil { ...@@ -94,7 +92,7 @@ public class DataUtil {
String sql = ""; String sql = "";
if (count > 500) { if (count > 500) {
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) { if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
sql = getSQL( gatewayVo.getgSN(),field, device, devList.get(i), event,startTime, resultCircuitVo.getEndTime() * 1000000l); sql = getSQL( gatewayVo.getgSN(),field, device, devList.get(i), event,startTime, resultCircuitVo.getEndTime() * 1000000l);
} else { } else {
sql = getSQL(gatewayVo.getgSN(), field, device, devList.get(i),event, startTime, System.currentTimeMillis() * 1000000l); sql = getSQL(gatewayVo.getgSN(), field, device, devList.get(i),event, startTime, System.currentTimeMillis() * 1000000l);
} }
...@@ -248,5 +246,62 @@ public class DataUtil { ...@@ -248,5 +246,62 @@ public class DataUtil {
return String.valueOf(calendar.getTimeInMillis()); return String.valueOf(calendar.getTimeInMillis());
} }
public static SimpleWarehouseVo dataData(QueryResult queryResult){
SimpleWarehouseVo simpleWarehouseVo = new SimpleWarehouseVo();
List<List<Object>> value = new ArrayList<>();
for(QueryResult.Result result : queryResult.getResults()){
if(result.getSeries() !=null){
for (QueryResult.Series series : result.getSeries()) {
if(series !=null){
value.add(series.getValues().get(0));
}else{
continue;
}
}
}else{
continue;
}
}
List<Double> tempList = new ArrayList<>();
List<Double> humList = new ArrayList<>();
for(int i = 0,length = value.size();i<length;i++){
DecimalFormat df = new DecimalFormat(".0");
tempList.add(value.get(i).get(1)==null ? 0 :Double.valueOf(df.format(Double.valueOf(value.get(i).get(1).toString()))));
humList.add(value.get(i).get(2)==null ? 0 :Double.valueOf(df.format(Double.valueOf(value.get(i).get(2).toString()))));
}
//设置数据
simpleWarehouseVo.setTemp(getValue(tempList));
simpleWarehouseVo.setHumidity(getValue(humList));
return simpleWarehouseVo;
}
public static String getValue(List<Double> data){
String s = "";
Collections.sort(data);
if(data.size() == 1){
if(data.get(0) == 0){
return "~";
}
return data.get(0) +"~" +data.get(0);
}else{
if(data.get(0)!=0 && data.get(data.size()-1)!=0){
return data.get(0) +"~" +data.get(data.size()-1);
}else{
for(int i=0;i<data.size();i++){
if(data.get(0)==0){
continue;
}else{
s=data.get(i).toString();
}
}
if(StringUtils.isEmpty(s)){
return "~";
}
return s+"~"+data.get(data.size()-1);
}
}
}
} }
...@@ -62,9 +62,7 @@ public class AlarmController { ...@@ -62,9 +62,7 @@ public class AlarmController {
}) })
@RequestMapping(value="/getAll",method = RequestMethod.GET) @RequestMapping(value="/getAll",method = RequestMethod.GET)
public Object getAll(HttpServletRequest request){ public Object getAll(HttpServletRequest request){
String token = request.getHeader("Account_token"); UserRedisVo user = gson.fromJson(tokenRedisService.get("TOKEN_" +request.getHeader("Account_token")),UserRedisVo.class);
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
return alarmService.getAll(user.getCompanyNo()); return alarmService.getAll(user.getCompanyNo());
} }
...@@ -84,9 +82,7 @@ public class AlarmController { ...@@ -84,9 +82,7 @@ public class AlarmController {
}) })
@RequestMapping(value="/getAllByAlarmType",method = RequestMethod.POST) @RequestMapping(value="/getAllByAlarmType",method = RequestMethod.POST)
public Object getAllByAlarmType(@RequestBody String alarmType,HttpServletRequest request){ public Object getAllByAlarmType(@RequestBody String alarmType,HttpServletRequest request){
String token = request.getHeader("Account_token"); UserRedisVo user = gson.fromJson(tokenRedisService.get("TOKEN_" +request.getHeader("Account_token")),UserRedisVo.class);
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
JSONObject jsonObject= JSON.parseObject(alarmType); JSONObject jsonObject= JSON.parseObject(alarmType);
alarmType=(String)jsonObject.get("alarmType"); alarmType=(String)jsonObject.get("alarmType");
return alarmService.getAllByAlarmType(user.getCompanyNo(),alarmType); return alarmService.getAllByAlarmType(user.getCompanyNo(),alarmType);
...@@ -108,10 +104,7 @@ public class AlarmController { ...@@ -108,10 +104,7 @@ public class AlarmController {
}) })
@RequestMapping(value="/addAlarm",method = RequestMethod.POST) @RequestMapping(value="/addAlarm",method = RequestMethod.POST)
public Object addAlarm(@RequestBody AddAlarmVo addAlarmVo,HttpServletRequest request){ public Object addAlarm(@RequestBody AddAlarmVo addAlarmVo,HttpServletRequest request){
String port =request.getHeader("AccountLanguage"); UserRedisVo user = gson.fromJson(tokenRedisService.get("TOKEN_" +request.getHeader("Account_token")),UserRedisVo.class);
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if (StringUtils.isEmpty(addAlarmVo.getAlarmType())){ if (StringUtils.isEmpty(addAlarmVo.getAlarmType())){
fb.setCode(0); fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"alarmType")); fb.setMessage(i18n.getMessage(request,"alarmType"));
...@@ -221,10 +214,7 @@ public class AlarmController { ...@@ -221,10 +214,7 @@ public class AlarmController {
}) })
@RequestMapping(value="/updateAlarm",method = RequestMethod.POST) @RequestMapping(value="/updateAlarm",method = RequestMethod.POST)
public Object updateAlarm(@RequestBody UpdateAlarmVo updateAlarmVo,HttpServletRequest request){ public Object updateAlarm(@RequestBody UpdateAlarmVo updateAlarmVo,HttpServletRequest request){
String token = request.getHeader("Account_token"); UserRedisVo user = gson.fromJson(tokenRedisService.get("TOKEN_" +request.getHeader("Account_token")),UserRedisVo.class);
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
String port = request.getHeader("AccountLanguage");
if (StringUtils.isEmpty(updateAlarmVo.getOldAlarmType())){ if (StringUtils.isEmpty(updateAlarmVo.getOldAlarmType())){
fb.setCode(0); fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"modifiedAlarmType")); fb.setMessage(i18n.getMessage(request,"modifiedAlarmType"));
...@@ -333,10 +323,7 @@ public class AlarmController { ...@@ -333,10 +323,7 @@ public class AlarmController {
}) })
@RequestMapping(value="/delAlarm",method = RequestMethod.POST) @RequestMapping(value="/delAlarm",method = RequestMethod.POST)
public Object delAlarm(@RequestBody DelAlarmVo delAlarmVo,HttpServletRequest request){ public Object delAlarm(@RequestBody DelAlarmVo delAlarmVo,HttpServletRequest request){
String token = request.getHeader("Account_token"); UserRedisVo user = gson.fromJson(tokenRedisService.get("TOKEN_" +request.getHeader("Account_token")),UserRedisVo.class);
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
String port = request.getHeader("AccountLanguage");
if (StringUtils.isEmpty(delAlarmVo.getAlarmType())){ if (StringUtils.isEmpty(delAlarmVo.getAlarmType())){
fb.setCode(0); fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"deletedAlarmType")); fb.setMessage(i18n.getMessage(request,"deletedAlarmType"));
......
...@@ -5,6 +5,7 @@ import com.example.tdl.domain.vo.*; ...@@ -5,6 +5,7 @@ import com.example.tdl.domain.vo.*;
import com.example.tdl.entity.AlarmLog; import com.example.tdl.entity.AlarmLog;
import com.example.tdl.service.*; import com.example.tdl.service.*;
import com.example.tdl.service.redis.TokenRedisService; import com.example.tdl.service.redis.TokenRedisService;
import com.example.tdl.util.AlarmLogUtil;
import com.google.gson.Gson; import com.google.gson.Gson;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
...@@ -50,7 +51,7 @@ public class AlarmLogController { ...@@ -50,7 +51,7 @@ public class AlarmLogController {
private TokenRedisService tokenRedisService; private TokenRedisService tokenRedisService;
@Autowired @Autowired
private CompanyService companyService; private WarehouseService warehouseService;
@Autowired @Autowired
private TDLLogService tdlLogService; private TDLLogService tdlLogService;
...@@ -75,12 +76,12 @@ public class AlarmLogController { ...@@ -75,12 +76,12 @@ public class AlarmLogController {
//获取报警信息 //获取报警信息
@ApiOperation(value = "获取报警信息",notes = "获取报警信息" + @ApiOperation(value = "获取报警信息",notes = "获取报警信息" +
" transportationNo:运输编号" + " transportationNo:运输编号" +
" description:报警内容" + " description:报警内容" +
" startCity:启运城市" + " startCity:启运城市" +
" endCity:目的城市" + " endCity:目的城市" +
" startTime:出发时间(时间戳)" + " startTime:出发时间(时间戳)" +
" endTime:结束时间(时间戳)" + " endTime:结束时间(时间戳)" +
"返回值: transportationNo:运输编号" + "返回值: transportationNo:运输编号" +
" cargoNo:货号" + " cargoNo:货号" +
" startCity:启运城市" + " startCity:启运城市" +
...@@ -169,22 +170,20 @@ public class AlarmLogController { ...@@ -169,22 +170,20 @@ public class AlarmLogController {
fb.setCode(0); fb.setCode(0);
fb.setMessage("网关类型不能为空"); fb.setMessage("网关类型不能为空");
} }
if(addAlarmLogVo.getAlarm()==null){
fb.setCode(0);
fb.setMessage("报警数据不能为空");
}
if(addAlarmLogVo.getTs() == null){ if(addAlarmLogVo.getTs() == null){
fb.setCode(0); fb.setCode(0);
fb.setMessage("时间不能为空"); fb.setMessage("时间不能为空");
} }
Map<Integer,String> map = new HashMap<>(); //判断当前报警状态
map.put(0,"正常"); if(addAlarmLogVo.getAlarmno() !=null){
map.put(1,"等于最大值"); //网关离线报警
map.put(2,"不等于最大值");
map.put(3,"过高");
map.put(4,"过低"); }
map.put(5,"未知");
if(addAlarmLogVo.getMode() == 1){ //获取使用场景
Integer mode = gatewayService.getModeByGateway(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype());
if(mode == 1){
//根据gateway的信息获取线路信息 //根据gateway的信息获取线路信息
String transportationNo = gatewayService.getTransportationNo(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype()); String transportationNo = gatewayService.getTransportationNo(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype());
//获取终点,起点 //获取终点,起点
...@@ -193,20 +192,23 @@ public class AlarmLogController { ...@@ -193,20 +192,23 @@ public class AlarmLogController {
if(addAlarmLogVo.getAlarm().get(i).getAlarmno() !=null && addAlarmLogVo.getAlarm().get(i).getAlarmno() == 0){ if(addAlarmLogVo.getAlarm().get(i).getAlarmno() !=null && addAlarmLogVo.getAlarm().get(i).getAlarmno() == 0){
continue; continue;
} }
String classify=""; String classify;
String desp = ""; String desp = AlarmLogUtil.getDescription(addAlarmLogVo.getAlarm().get(i).getAlarmno());
if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("T")){ if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("T")){
desp = "温度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); desp = "温度" + desp;
classify = "1"; classify = "1";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")){ } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")){
desp = "湿度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); desp = "湿度" +desp;
classify = "2"; classify = "2";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")){ } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")){
desp = "震动" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); desp = "震动" +desp;
classify = "3"; classify = "3";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) { } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) {
desp = "倾角" + map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); desp = "倾角" + desp;
classify = "4"; classify = "4";
}else{
desp = addAlarmLogVo.getAlarm().get(i).getTdlsn() +desp;
classify = "6";
} }
Long time = addAlarmLogVo.getAlarm().get(i).getTs(); Long time = addAlarmLogVo.getAlarm().get(i).getTs();
if(time.toString().length() == 10){ if(time.toString().length() == 10){
...@@ -224,33 +226,41 @@ public class AlarmLogController { ...@@ -224,33 +226,41 @@ public class AlarmLogController {
} }
}else{ }else{
//根据gateway获取仓库编号 //根据gateway获取仓库编号
String warehouseNo = gatewayService.getWarehouseNo(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype()); String warehouseNo = gatewayService.getWarehouseNo(addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype());
for(int i = 0,length=addAlarmLogVo.getAlarm().size();i<length;i++){ for(int i = 0,length=addAlarmLogVo.getAlarm().size();i<length;i++){
if(addAlarmLogVo.getAlarm().get(i).getAlarmno() !=null && addAlarmLogVo.getAlarm().get(i).getAlarmno() == 0){ if(addAlarmLogVo.getAlarm().get(i).getAlarmno() !=null && addAlarmLogVo.getAlarm().get(i).getAlarmno() == 0){
continue; continue;
} }
String desp = ""; String desp = AlarmLogUtil.getDescription(addAlarmLogVo.getAlarm().get(i).getAlarmno());
if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("T")){ String classify;
desp = "温度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("T")){
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")){ desp = "温度" +desp;
desp = "湿度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); classify = "1";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")){ } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")){
desp = "震动" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); desp = "湿度" +desp;
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) { classify = "2";
desp = "倾角" + map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno()); } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")){
} desp = "震动" +desp;
WarehouseAlarmLog alarmLog = new WarehouseAlarmLog(warehouseNo,addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype(),addAlarmLogVo.getAlarm().get(i).getTdlsn().replace("TDL-","").trim(),desp,addAlarmLogVo.getAlarm().get(i).getValue(),addAlarmLogVo.getAlarm().get(i).getTs()*1000,addAlarmLogVo.getAlarm().get(i).getDesp(),addAlarmLogVo.getAlarm().get(i).getAlarmno()); classify = "3";
int a = warehouseAlarmLogService.add(alarmLog); } else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) {
if(a == 0){ desp = "倾角" + desp;
fb.setCode(0); classify = "4";
fb.setMessage("添加失败"); }else{
}else{ desp = addAlarmLogVo.getAlarm().get(i).getTdlsn() +desp;
fb.setCode(1); classify = "6";
fb.setMessage("添加成功"); }
} List<String> emailList = warehouseService.getEmailByWarehouse(warehouseNo);
} WarehouseAlarmLog alarmLog = new WarehouseAlarmLog(warehouseNo,addAlarmLogVo.getGsn(),addAlarmLogVo.getGtype(),addAlarmLogVo.getAlarm().get(i).getTdlsn().replace("TDL-","").trim(),desp,addAlarmLogVo.getAlarm().get(i).getValue(),addAlarmLogVo.getAlarm().get(i).getTs()*1000,addAlarmLogVo.getAlarm().get(i).getDesp(),addAlarmLogVo.getAlarm().get(i).getAlarmno(),classify);
int a = warehouseAlarmLogService.add(alarmLog);
if(a == 0){
fb.setCode(0);
fb.setMessage("添加失败");
}else{
fb.setCode(1);
fb.setMessage("添加成功");
}
}
} }
return gson.toJson(fb); return gson.toJson(fb);
} }
......
This diff is collapsed.
...@@ -58,6 +58,10 @@ public class CircuitController { ...@@ -58,6 +58,10 @@ public class CircuitController {
@Autowired @Autowired
private AlarmLogService alarmLogService; private AlarmLogService alarmLogService;
@Autowired
private BoschAlarmService boschAlarmService;
@Autowired @Autowired
private AlarmRedisService alarmRedisService; private AlarmRedisService alarmRedisService;
...@@ -889,7 +893,7 @@ public class CircuitController { ...@@ -889,7 +893,7 @@ public class CircuitController {
alarmTypeVar =alarmTypeVar + addCircuitVo.getTdlAlarmList().get(j).getAlarmType() +"&"; alarmTypeVar =alarmTypeVar + addCircuitVo.getTdlAlarmList().get(j).getAlarmType() +"&";
TDLSNVar =TDLSNVar + addCircuitVo.getTdlAlarmList().get(j).getTDLSN() +"&"; TDLSNVar =TDLSNVar + addCircuitVo.getTdlAlarmList().get(j).getTDLSN() +"&";
devList.add("TDL-"+addCircuitVo.getTdlAlarmList().get(j).getTDLSN()); devList.add("TDL-"+addCircuitVo.getTdlAlarmList().get(j).getTDLSN());
AlarmRule.saveAlarmRule("TDL/"+type+"/" +addCircuitVo.getSN()+"/Data",addCircuitVo.getTdlAlarmList().get(j).getTDLSN(),addCircuitVo.getTdlAlarmList().get(j).getAlarmType(),user.getCompanyNo(),alarmService,alarmRedisService); AlarmRule.saveAlarmRule("TDL/"+type+"/" +addCircuitVo.getSN()+"/Data",addCircuitVo.getTdlAlarmList().get(j).getTDLSN(),addCircuitVo.getTdlAlarmList().get(j).getAlarmType(),user.getCompanyNo(),boschAlarmService,alarmRedisService);
} }
if(StringUtils.isEmpty(addCircuitVo.getCargoNo())){ if(StringUtils.isEmpty(addCircuitVo.getCargoNo())){
fb.setCode(0); fb.setCode(0);
......
...@@ -50,6 +50,9 @@ public class EquipmentBindingController { ...@@ -50,6 +50,9 @@ public class EquipmentBindingController {
@Autowired @Autowired
private AlarmRedisService alarmRedisService; private AlarmRedisService alarmRedisService;
@Autowired
private BoschAlarmService boschAlarmService;
@Autowired @Autowired
private AlarmService alarmService; private AlarmService alarmService;
...@@ -148,13 +151,8 @@ public class EquipmentBindingController { ...@@ -148,13 +151,8 @@ public class EquipmentBindingController {
fb.setMessage("该TDL已经被使用"); fb.setMessage("该TDL已经被使用");
return gson.toJson(fb); return gson.toJson(fb);
} }
// if(StringUtils.isEmpty(bindingVo.getTransportationNo()) && !StringUtils.isEmpty(bindingVo.getWarehouseNo())){ Integer gpsPeriod ;
// bindingVo.setTransportationNo(""); Integer gprsPeriod ;
// }else if(StringUtils.isEmpty(bindingVo.getWarehouseNo()) && !StringUtils.isEmpty(bindingVo.getTransportationNo())){
// bindingVo.setWarehouseNo("");
// }
Integer gpsPeriod = null;
Integer gprsPeriod = null;
if(bindingVo.getMode() == 2){ if(bindingVo.getMode() == 2){
gpsPeriod = 43200; gpsPeriod = 43200;
gprsPeriod= 60; gprsPeriod= 60;
...@@ -225,7 +223,7 @@ public class EquipmentBindingController { ...@@ -225,7 +223,7 @@ public class EquipmentBindingController {
fb.setCode(1); fb.setCode(1);
fb.setMessage("配置网关成功"); fb.setMessage("配置网关成功");
//根据报警类型货报警信息 //根据报警类型货报警信息
AlarmRule.saveAlarmRule("TDL/"+bindingVo.getType()+"/" +bindingVo.getgSN()+"/Data",bindingVo.getTDLSN(),bindingVo.getAlarmType(),user.getCompanyNo(),alarmService,alarmRedisService); AlarmRule.saveAlarmRule("TDL/"+bindingVo.getType()+"/" +bindingVo.getgSN()+"/Data",bindingVo.getTDLSN(),bindingVo.getAlarmType(),user.getCompanyNo(),boschAlarmService,alarmRedisService);
List<ResultTopicVo> topicList = topicService.getByGateway(new GatewaySNAndTypeVo(bindingVo.getgSN(),bindingVo.getType())); List<ResultTopicVo> topicList = topicService.getByGateway(new GatewaySNAndTypeVo(bindingVo.getgSN(),bindingVo.getType()));
for (ResultTopicVo topic : topicList) { for (ResultTopicVo topic : topicList) {
infoRedisService.delHashKey("TopicConfig", topic.getTopicName()); infoRedisService.delHashKey("TopicConfig", topic.getTopicName());
...@@ -270,7 +268,6 @@ public class EquipmentBindingController { ...@@ -270,7 +268,6 @@ public class EquipmentBindingController {
TDLSN=(String)jsonObject.get("TDLSN"); TDLSN=(String)jsonObject.get("TDLSN");
//判断当前tdl是否有网关在使用 //判断当前tdl是否有网关在使用
ResultTDLDeviceVo resultTDLDeviceVo = tdlDeviceService.getByTDLSN(TDLSN); ResultTDLDeviceVo resultTDLDeviceVo = tdlDeviceService.getByTDLSN(TDLSN);
// List<String> devList = tdlDeviceService.getByGatewaySN(resultTDLDeviceVo.getGatewaySN(),resultTDLDeviceVo.getGatewayType());
ConfigVo configVo =configService.getConfig(resultTDLDeviceVo.getGatewaySN(),resultTDLDeviceVo.getGatewayType()); ConfigVo configVo =configService.getConfig(resultTDLDeviceVo.getGatewaySN(),resultTDLDeviceVo.getGatewayType());
ConfigCMDVo config = gson.fromJson(configVo.getMessage(),ConfigCMDVo.class); ConfigCMDVo config = gson.fromJson(configVo.getMessage(),ConfigCMDVo.class);
ConfigCMDVo configCMDVo ; ConfigCMDVo configCMDVo ;
...@@ -305,8 +302,7 @@ public class EquipmentBindingController { ...@@ -305,8 +302,7 @@ public class EquipmentBindingController {
} }
} }
configCMDVo = new ConfigCMDVo("config",config.getGpsPeriod(),config.getGprsPeriod(),devList,tempL,tempH,humiL,humiH,pressL,pressH,sugEnergy,accThreshold,timeThreshold,tiltThreshold,config.getMode(),System.currentTimeMillis()/1000l); configCMDVo = new ConfigCMDVo("config",config.getGpsPeriod(),config.getGprsPeriod(),devList,tempL,tempH,humiL,humiH,pressL,pressH,sugEnergy,accThreshold,timeThreshold,tiltThreshold,config.getMode(),System.currentTimeMillis()/1000l);
// configCMDVo = new ConfigCMDVo("config",config.getGpsPeriod(),config.getGprsPeriod(),devList,config.getMode(),System.currentTimeMillis()/1000l); }else{
}else{
configCMDVo = null; configCMDVo = null;
boo = true; boo = true;
} }
......
...@@ -15,8 +15,6 @@ import io.swagger.annotations.ApiImplicitParams; ...@@ -15,8 +15,6 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -73,8 +71,6 @@ public class LoginController { ...@@ -73,8 +71,6 @@ public class LoginController {
} }
try { try {
UserVo userVo=userService.getByUserName(loginUserVo.getUserName()); UserVo userVo=userService.getByUserName(loginUserVo.getUserName());
//将封装好的用户名和密码交给shiro安全框架并实现登陆
SecurityUtils.getSubject().login(new UsernamePasswordToken(loginUserVo.getUserName(), loginUserVo.getPassword()));
//生成token //生成token
String token = DigestUtils.md5Hex(System.currentTimeMillis() + userVo.getUserName()); String token = DigestUtils.md5Hex(System.currentTimeMillis() + userVo.getUserName());
UserRedisVo redisVo = new UserRedisVo(userVo.getUserName(),userVo.getUserNumber(),userVo.getNickName(),userVo.getEmail(),userVo.getPhone(),userVo.getRoleName(),userVo.getCompanyName(),userVo.getCompanyNo()); UserRedisVo redisVo = new UserRedisVo(userVo.getUserName(),userVo.getUserNumber(),userVo.getNickName(),userVo.getEmail(),userVo.getPhone(),userVo.getRoleName(),userVo.getCompanyName(),userVo.getCompanyNo());
......
spring.datasource.url=jdbc:mysql://172.16.1.200:3306/tdlcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.url=jdbc:mysql://172.16.1.24:3306/tdlcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=37774020
spring.redis.host=172.16.1.200 spring.redis.host=172.16.1.14
server.port=8092 server.port=8092
tdl.influxdb.host=http://172.16.1.200:8086 tdl.influxdb.host=http://172.16.1.24:8086
spring.datasource.url=jdbc:mysql://47.97.184.225:3306/tdlcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.url=jdbc:mysql://127.0.0.1:3306/tdlcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false
#spring.datasource.url=jdbc:mysql://47.97.184.225:3306/tdlcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false
#spring.datasource.password=37774020
#spring.datasource.url=jdbc:mysql://47.110.153.44:3306/tdlcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false #spring.datasource.url=jdbc:mysql://47.110.153.44:3306/tdlcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false
#spring.datasource.url=jdbc:mysql://172.16.1.13:3306/tdlcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false #spring.datasource.url=jdbc:mysql://172.16.1.13:3306/tdlcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=37774020 spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.driver-class-name=com.mysql.jdbc.Driver
...@@ -68,8 +70,8 @@ spring.influxdb.write-timeout=10 ...@@ -68,8 +70,8 @@ spring.influxdb.write-timeout=10
spring.influxdb.gzip=true spring.influxdb.gzip=true
tdl.core.add =http://172.16.1.52:8079/witium/addMount tdl.core.add =http://172.16.1.24:8079/witium/addMount
tdl.core.delete =http://172.16.52:8079/witium/delMount tdl.core.delete =http://172.16.24:8079/witium/delMount
mqtt.userName = ugen mqtt.userName = ugen
mqtt.password = ugen mqtt.password = ugen
......
...@@ -13,10 +13,16 @@ humidityMin = \u6E7F\u5EA6\u4E0B\u9650\u4E0D\u80FD\u4E3A\u7A7A ...@@ -13,10 +13,16 @@ humidityMin = \u6E7F\u5EA6\u4E0B\u9650\u4E0D\u80FD\u4E3A\u7A7A
humidityMaxLimit = \u6E7F\u5EA6\u4E0A\u9650\u4E0D\u80FD\u8D85\u8FC7100% humidityMaxLimit = \u6E7F\u5EA6\u4E0A\u9650\u4E0D\u80FD\u8D85\u8FC7100%
humidityMinLimit = \u6E7F\u5EA6\u4E0B\u9650\u4E0D\u80FD\u4F4E\u4E8E0% humidityMinLimit = \u6E7F\u5EA6\u4E0B\u9650\u4E0D\u80FD\u4F4E\u4E8E0%
wrongHumidity=\u6E7F\u5EA6\u4E0A\u9650\u4E0D\u80FD\u5C0F\u4E8E\u6E7F\u5EA6\u4E0B\u9650 wrongHumidity=\u6E7F\u5EA6\u4E0A\u9650\u4E0D\u80FD\u5C0F\u4E8E\u6E7F\u5EA6\u4E0B\u9650
tilt = \u503E\u659C\u5EA6\u4E0D\u80FD\u4E3A\u7A7A tilt = \u503E\u659C\u5EA6\u4E0A\u9650\u4E0D\u80FD\u4E3A\u7A7A
tiltLimit = \u503E\u659C\u5EA6\u5FC5\u987B\u57280\u00B0-180\u00B0\u4E4B\u95F4\uFF0C\u4E14\u5FC5\u987B\u662F30\u7684\u500D\u6570 tiltLimit = \u503E\u659C\u5EA6\u5FC5\u987B\u57280\u00B0-180\u00B0\u4E4B\u95F4\uFF0C\u4E14\u5FC5\u987B\u662F30\u7684\u500D\u6570
shock = \u9707\u5EA6\u4E0D\u80FD\u4E3A\u7A7A shock = \u9707\u52A8\u4E0A\u9650\u4E0D\u80FD\u4E3A\u7A7A
shockLimit=\u9707\u52A8\u5FC5\u987B\u57281.5g-13.8g\u4E4B\u95F4 shockLimit=\u9707\u52A8\u5FC5\u987B\u57281.5g-13.8g\u4E4B\u95F4
tempLower = \u6E29\u5EA6\u4E0B\u4E0B\u9650\u4E0D\u80FD\u4E3A\u7A7A
tempUpper = \u6E29\u5EA6\u4E0A\u4E0A\u9650\u4E0D\u80FD\u4E3A\u7A7A
humidityLower = \u6E7F\u5EA6\u4E0B\u4E0B\u9650\u4E0D\u80FD\u4E3A\u7A7A
humidityUpper = \u6E7F\u5EA6\u4E0A\u4E0A\u9650\u4E0D\u80FD\u4E3A\u7A7A
tiltUpper = \u503E\u659C\u89D2\u4E0A\u4E0A\u9650\u4E0D\u80FD\u4E3A\u7A7A
shockUpper = \u9707\u52A8\u4E0A\u4E0A\u9650\u4E0D\u80FD\u4E3A\u7A7A
alarmExist = \u6DFB\u52A0\u7684\u9884\u8B66\u7C7B\u578B\u5728\u8BE5\u573A\u666F\u4E2D\u5DF2\u5B58\u5728 alarmExist = \u6DFB\u52A0\u7684\u9884\u8B66\u7C7B\u578B\u5728\u8BE5\u573A\u666F\u4E2D\u5DF2\u5B58\u5728
addSuccess = \u6DFB\u52A0\u9884\u8B66\u4FE1\u606F\u6210\u529F addSuccess = \u6DFB\u52A0\u9884\u8B66\u4FE1\u606F\u6210\u529F
addFailure = \u6DFB\u52A0\u9884\u8B66\u4FE1\u606F\u5931\u8D25 addFailure = \u6DFB\u52A0\u9884\u8B66\u4FE1\u606F\u5931\u8D25
......
...@@ -36,7 +36,8 @@ ...@@ -36,7 +36,8 @@
#{alarmTime,jdbcType=INTEGER}, #{alarmTime,jdbcType=INTEGER},
#{classify,jdbcType=VARCHAR}, #{classify,jdbcType=VARCHAR},
#{desp,jdbcType=VARCHAR}, #{desp,jdbcType=VARCHAR},
#{alarmNo,jdbcType=VARCHAR} #{alarmNo,jdbcType=VARCHAR},
0
) )
</insert> </insert>
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.tdl.mapper.BoschAlarmMapper">
<!--查询所有预警信息-->
<select id="getAll" resultType="com.example.tdl.domain.vo.ResultBoschAlarmVo" parameterType="String">
SELECT alarmType,temUpper,temMax,temMin,temLower,humidityUpper,humidityMax,humidityMin,humidityLower,tilt,tiltUpper,shock,shockUpper,remark
from alarm a INNER JOIN company c ON a.company_id=c.id
WHERE c.companyNo=#{companyNo,jdbcType=VARCHAR}
</select>
<!--根据预警类型模糊查询-->
<select id="getAllByAlarmType" resultType="com.example.tdl.domain.vo.ResultBoschAlarmVo" parameterType="String">
SELECT alarmType,temUpper,temMax,temMin,temLower,humidityUpper,humidityMax,humidityMin,humidityLower,tilt,tiltUpper,shock,shockUpper,remark
from alarm a INNER JOIN company c ON a.company_id=c.id
WHERE c.companyNo=#{companyNo,jdbcType=VARCHAR}
AND alarmType LIKE CONCAT(CONCAT('%',#{alarmType,jdbcType=VARCHAR}), '%')
</select>
<!--添加预警信息-->
<insert id="addAlarm" parameterType="com.example.tdl.domain.vo.AddBoschAlarmVo">
INSERT INTO alarm VALUES (
NULL ,
#{alarmType,jdbcType=VARCHAR},
#{temUpper,jdbcType=FLOAT},
#{temMax,jdbcType=FLOAT},
#{temMin,jdbcType=FLOAT},
#{temLower,jdbcType=FLOAT},
#{humidityUpper,jdbcType=FLOAT},
#{humidityMax,jdbcType=FLOAT},
#{humidityMin,jdbcType=FLOAT},
#{humidityLower,jdbcType=FLOAT},
#{tiltUpper,jdbcType=FLOAT},
#{tilt,jdbcType=FLOAT},
#{shockUpper,jdbcType=INTEGER},
#{shock,jdbcType=INTEGER},
(SELECT id from company where companyNo=#{companyNo,jdbcType=VARCHAR}),
#{remark,jdbcType=VARCHAR}
)
</insert>
<!--修改预警信息-->
<update id="updateAlarm" parameterType="com.example.tdl.domain.vo.UpdateBoschAlarmVo">
UPDATE alarm SET
alarmType=#{alarmType,jdbcType=VARCHAR},
temUpper = #{temUpper,jdbcType=FLOAT},
temMax = #{temMax,jdbcType=FLOAT},
temMin = #{temMin,jdbcType=FLOAT},
temLower =#{temLower,jdbcType=FLOAT},
humidityUpper = #{humidityUpper,jdbcType=FLOAT},
humidityMax = #{humidityMax,jdbcType=FLOAT},
humidityMin =#{humidityMin,jdbcType=FLOAT},
humidityLower =#{humidityLower,jdbcType=FLOAT},
tiltUpper = #{tiltUpper,jdbcType=FLOAT},
tilt = #{tilt,jdbcType=FLOAT},
shockUpper = #{shockUpper,jdbcType=INTEGER},
shock = #{shock,jdbcType=INTEGER},
remark=#{remark,jdbcType=VARCHAR}
WHERE alarmType=#{oldAlarmType,jdbcType=VARCHAR}
AND company_id=(SELECT id from company where companyNo=#{companyNo,jdbcType=VARCHAR})
</update>
<!--删除预警信息-->
<delete id="delAlarm" parameterType="com.example.tdl.domain.vo.DelAlarmVo">
DELETE from alarm WHERE alarmType=#{alarmType,jdbcType=VARCHAR}
AND company_id=(SELECT id from company where companyNo=#{companyNo,jdbcType=VARCHAR})
</delete>
<!--根据预警类型和预警场景查询-->
<select id="getByType" parameterType="String" resultType="com.example.tdl.domain.vo.ResultBoschAlarmVo">
SELECT alarmType,temUpper,temMax,temMin,temLower,humidityUpper,humidityMax,humidityMin,humidityLower,tilt,tiltUpper,shock,shockUpper,remark
from alarm a INNER JOIN company c ON a.company_id=c.id
WHERE c.companyNo=#{companyNo,jdbcType=VARCHAR}
AND alarmType=#{alarmType,jdbcType=VARCHAR}
</select>
<select id="getAlarmByWarehouseNo" parameterType="String" resultType="com.example.tdl.domain.vo.ResultBoschAlarmVo">
SELECT DISTINCT alarmType,temUpper,temMax,temMin,temLower,humidityUpper,humidityMax,humidityMin,humidityLower,tilt,tiltUpper,shock,shockUpper,remark
FROM tdl_gateway_log tgl INNER JOIN alarm a ON tgl.alarm_id=a.id
where warehouseNo=#{warehouseNo,jdbcType=VARCHAR}
AND gatewaySN=#{gatewaySN,jdbcType=VARCHAR}
AND TDLSN=#{TDLSN,jdbcType=VARCHAR}
AND endTime is null
</select>
</mapper>
\ No newline at end of file
...@@ -349,6 +349,14 @@ ...@@ -349,6 +349,14 @@
AND company_id=(SELECT id from company where companyNo=#{companyNo,jdbcType=VARCHAR}) AND company_id=(SELECT id from company where companyNo=#{companyNo,jdbcType=VARCHAR})
</select> </select>
<select id="getHomepageCircuit" parameterType="java.lang.String" resultType="com.example.tdl.domain.vo.CircuitVo">
SELECT c.transportationNo,cargoNo,(SELECT city from city WHERE id =(SELECT city_id from circuit_transfer WHERE circuit_id=c.id ORDER BY sequence LIMIT 1)) startCity,startTime,
(SELECT city from city WHERE id =(SELECT city_id from circuit_transfer WHERE circuit_id=c.id ORDER BY sequence DESC LIMIT 1)) endCity,endTime
from circuit c where c.state=1
and c.circuitState = 1
AND company_id=(SELECT id from company where companyNo=#{companyNo,jdbcType=VARCHAR})
</select>
<select id="getDelay" resultType="java.lang.Integer"> <select id="getDelay" resultType="java.lang.Integer">
select count(transportationNo) from circuit select count(transportationNo) from circuit
where #{compTime,jdbcType=BIGINT}> compTime where #{compTime,jdbcType=BIGINT}> compTime
......
...@@ -134,6 +134,10 @@ ...@@ -134,6 +134,10 @@
</if> </if>
</select> </select>
<select id="getModeByGateway" parameterType="String" resultType="java.lang.Integer">
SELECT useScene from gateway where SN=#{SN,jdbcType=VARCHAR} and type=#{type,jdbcType=VARCHAR}
</select>
<!-- <insert id="addGateway" parameterType="com.example.tdl.domain.vo.AddGatewayVo"> <!-- <insert id="addGateway" parameterType="com.example.tdl.domain.vo.AddGatewayVo">
INSERT into gateway VALUES ( INSERT into gateway VALUES (
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
#{data,jdbcType=FLOAT}, #{data,jdbcType=FLOAT},
#{alarmTime,jdbcType=BIGINT}, #{alarmTime,jdbcType=BIGINT},
#{desp,jdbcType=VARCHAR}, #{desp,jdbcType=VARCHAR},
#{alarmNo,jdbcType=VARCHAR} #{alarmNo,jdbcType=VARCHAR},
0
) )
</insert> </insert>
...@@ -25,4 +26,39 @@ ...@@ -25,4 +26,39 @@
GROUP BY hours ,desp GROUP BY hours ,desp
</select> </select>
<select id="getLastAlarm" resultType="String" parameterType="String">
select description from warehouse_alarmlog where warehouseNo=#{warehouseNo,jdbcType=VARCHAR}
and DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;= date(FROM_UNIXTIME(alarmTime/1000,'%Y-%m-%d %H:%i:%s'))
</select>
<select id = "getByCount" parameterType="String" resultType="com.example.tdl.domain.vo.HistogramData" >
SELECT ifnull(classify,"1") classify,count(description) count FROM warehouse_alarmlog WHERE classify = "1"
and warehouseNo in (select warehouseNo from warehouse where company_id =(select id from company where companyNo =#{companyNo,jdbcType=VARCHAR}))
AND DATE_SUB(CURDATE(), INTERVAL #{time,jdbcType=VARCHAR} DAY) &lt;= date(FROM_UNIXTIME(alarmTime/1000,'%Y-%m-%d %H:%i:%s'))
UNION ALL
SELECT ifnull(classify,"2") classify,count(description) count FROM warehouse_alarmlog WHERE classify = "2"
and warehouseNo in (select warehouseNo from warehouse where company_id =(select id from company where companyNo =#{companyNo,jdbcType=VARCHAR}))
AND DATE_SUB(CURDATE(), INTERVAL #{time,jdbcType=VARCHAR} DAY) &lt;= date(FROM_UNIXTIME(alarmTime/1000,'%Y-%m-%d %H:%i:%s'))
UNION ALL
SELECT ifnull(classify,"3") classify,count(description) count FROM warehouse_alarmlog WHERE classify = "3"
and warehouseNo in (select warehouseNo from warehouse where company_id =(select id from company where companyNo =#{companyNo,jdbcType=VARCHAR}))
AND DATE_SUB(CURDATE(), INTERVAL #{time,jdbcType=VARCHAR} DAY) &lt;= date(FROM_UNIXTIME(alarmTime/1000,'%Y-%m-%d %H:%i:%s'))
UNION ALL
SELECT ifnull(classify,"4") classify,count(description) count FROM warehouse_alarmlog WHERE classify = "4"
and warehouseNo in (select warehouseNo from warehouse where company_id =(select id from company where companyNo =#{companyNo,jdbcType=VARCHAR}))
AND DATE_SUB(CURDATE(), INTERVAL #{time,jdbcType=VARCHAR} DAY) &lt;= date(FROM_UNIXTIME(alarmTime/1000,'%Y-%m-%d %H:%i:%s'))
UNION ALL
SELECT ifnull(classify,"6") classify,count(description) count FROM warehouse_alarmlog WHERE classify = "6"
and warehouseNo in (select warehouseNo from warehouse where company_id =(select id from company where companyNo =#{companyNo,jdbcType=VARCHAR}))
AND DATE_SUB(CURDATE(), INTERVAL #{time,jdbcType=VARCHAR} DAY) &lt;= date(FROM_UNIXTIME(alarmTime/1000,'%Y-%m-%d %H:%i:%s'))
</select>
<select id="getAlarmCount" parameterType="String" resultType="java.lang.Integer">
select count(DISTINCT warehouseNo) from warehouse_alarmlog
where warehouseNo in (select warehouseNo from circuit where company_id =(
select id from company where companyNo =#{companyNo,jdbcType=VARCHAR}))
and DATE_SUB(CURDATE(), INTERVAL #{time,jdbcType=VARCHAR} DAY) &lt;= date(FROM_UNIXTIME(alarmTime/1000,'%Y-%m-%d %H:%i:%s'))
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
order by createTime desc order by createTime desc
</select> </select>
<!-- 根据条件查询仓库信息--> <!-- 根据条件查询仓库信息-->
<select id="getAllByTerm" resultType="com.example.tdl.domain.vo.ResultWarehouseVo" parameterType="com.example.tdl.domain.vo.WarehouseTermVo"> <select id="getAllByTerm" resultType="com.example.tdl.domain.vo.ResultWarehouseVo" parameterType="com.example.tdl.domain.vo.WarehouseTermVo">
select warehouseNo,w.img,warehouseName,ct.country,ct.city,CONCAT_WS("-",ct.country,ct.city) regions ,w.addressDetail,r.regionName,lng,lat,property, select warehouseNo,w.img,warehouseName,ct.country,ct.city,CONCAT_WS("-",ct.country,ct.city) regions ,w.addressDetail,r.regionName,lng,lat,property,
...@@ -290,4 +290,15 @@ ...@@ -290,4 +290,15 @@
and u.id = wu.user_id and u.id = wu.user_id
and w.warehouseNo=#{warehouseNo,jdbcType=VARCHAR} and w.warehouseNo=#{warehouseNo,jdbcType=VARCHAR}
</select> </select>
<select id="getDetailsBywarehouseNo" parameterType="String" resultType="com.example.tdl.domain.vo.ResultWarehouseDetailsVo">
select w.warehouseNo,w.img,warehouseName,ct.country,ct.city,CONCAT_WS("-",ct.country,ct.city) regions ,w.addressDetail,r.regionName,lng,lat,property,
type,hardwareLevel,areaIndoor,areaRack,areaOutdoor,areaPlanIndoor,office,timeZone,warehouseInfo,companyNo,companyName,w.remark
from warehouse w,region r,city ct ,company c
where c.id = w.company_id
and r.id = w.region_id
and ct.id = w.city_id
and w.warehouseNo=#{warehouseNo,jdbcType=VARCHAR}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -59,5 +59,6 @@ ...@@ -59,5 +59,6 @@
<mapper resource="mapper/CarMapper.xml"/> <mapper resource="mapper/CarMapper.xml"/>
<mapper resource="mapper/SideMapper.xml"/> <mapper resource="mapper/SideMapper.xml"/>
<mapper resource="mapper/WarehouseAlarmLogMapper.xml"/> <mapper resource="mapper/WarehouseAlarmLogMapper.xml"/>
<mapper resource="mapper/BoschAlarmMapper.xml"/>
</mappers> </mappers>
</configuration> </configuration>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment