Commit 8c237834 authored by chenying's avatar chenying

2018.12.19

(1)修改权限
(2)添加ABB线路接口
parent f1f2026f
......@@ -51,6 +51,7 @@ dependencies {
compile files('libs/javacsv-2.0.jar')
compile ('com.github.miwurster:spring-data-influxdb:1.6')
compile('org.springframework.boot:spring-boot-starter-mail')
}
jar {
String someString = ''
......
package com.example.tdl.domain.vo;
import java.util.List;
public class AddCircuitForABBVo {
private String SN;
private List<TDLAlarmVo> tdlAlarmList;
private String cargoNo;//货物编号
private String cargoName;
private String remark;
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getCargoNo() {
return cargoNo;
}
public void setCargoNo(String cargoNo) {
this.cargoNo = cargoNo;
}
public String getCargoName() {
return cargoName;
}
public void setCargoName(String cargoName) {
this.cargoName = cargoName;
}
public String getSN() {
return SN;
}
public void setSN(String SN) {
this.SN = SN;
}
public List<TDLAlarmVo> getTdlAlarmList() {
return tdlAlarmList;
}
public void setTdlAlarmList(List<TDLAlarmVo> tdlAlarmList) {
this.tdlAlarmList = tdlAlarmList;
}
}
package com.example.tdl.domain.vo;
import java.util.List;
public class CircuitMessageForABBVo {
private String transportationNo;//运输编号
private String routeName;//线路
private String cargoName;//货物名称
private String transportation;//运输方式
private String alarmType;//预警类型
private String SN;//网关编号
private String battery;
private List<ResultAlarmLog> alarmLogList;
private List<CircuitMessageForABBVo.TDL> tdlList;
public static class TDL {
private String tdlsn;
private String batteryVoltage;
public TDL() {
}
public TDL(String tdlsn, String batteryVoltage) {
this.tdlsn = tdlsn;
this.batteryVoltage = batteryVoltage;
}
public String getTdlsn() {
return tdlsn;
}
public void setTdlsn(String tdlsn) {
this.tdlsn = tdlsn;
}
public String getBatteryVoltage() {
return batteryVoltage;
}
public void setBatteryVoltage(String batteryVoltage) {
this.batteryVoltage = batteryVoltage;
}
}
public CircuitMessageForABBVo() {
}
public CircuitMessageForABBVo(String transportationNo,String routeName,String cargoName,String transportation,String alarmType) {
this.transportationNo = transportationNo;
this.routeName = routeName;
this.cargoName = cargoName;
this.transportation = transportation;
this.alarmType = alarmType;
}
public CircuitMessageForABBVo(String transportationNo,String cargoName,String transportation,String alarmType,String SN, List<ResultAlarmLog> alarmLogList) {
this.transportationNo = transportationNo;
this.cargoName = cargoName;
this.transportation = transportation;
this.alarmType = alarmType;
this.SN = SN;
this.alarmLogList = alarmLogList;
}
public String getRouteName() {
return routeName;
}
public void setRouteName(String routeName) {
this.routeName = routeName;
}
public String getTransportationNo() {
return transportationNo;
}
public void setTransportationNo(String transportationNo) {
this.transportationNo = transportationNo;
}
public String getCargoName() {
return cargoName;
}
public void setCargoName(String cargoName) {
this.cargoName = cargoName;
}
public String getTransportation() {
return transportation;
}
public void setTransportation(String transportation) {
this.transportation = transportation;
}
public String getAlarmType() {
return alarmType;
}
public void setAlarmType(String alarmType) {
this.alarmType = alarmType;
}
public String getSN() {
return SN;
}
public void setSN(String SN) {
this.SN = SN;
}
public String getBattery() {
return battery;
}
public void setBattery(String battery) {
this.battery = battery;
}
public List<ResultAlarmLog> getAlarmLogList() {
return alarmLogList;
}
public void setAlarmLogList(List<ResultAlarmLog> alarmLogList) {
this.alarmLogList = alarmLogList;
}
public List<CircuitMessageForABBVo.TDL> getTdlList() {
return tdlList;
}
public void setTdlList(List<CircuitMessageForABBVo.TDL> tdlList) {
this.tdlList = tdlList;
}
}
package com.example.tdl.domain.vo;
public class ResultCircuitForABBVo {
private String transportationNo;
private String cargoNo;
private String cargoName;
private Integer circuitState;
private String alarmType;
private String alarm;
private String transportation;
private String gSN;
private String gType;
public String getTransportationNo() {
return transportationNo;
}
public void setTransportationNo(String transportationNo) {
this.transportationNo = transportationNo;
}
public String getCargoNo() {
return cargoNo;
}
public void setCargoNo(String cargoNo) {
this.cargoNo = cargoNo;
}
public String getCargoName() {
return cargoName;
}
public void setCargoName(String cargoName) {
this.cargoName = cargoName;
}
public Integer getCircuitState() {
return circuitState;
}
public void setCircuitState(Integer circuitState) {
this.circuitState = circuitState;
}
public String getAlarmType() {
return alarmType;
}
public void setAlarmType(String alarmType) {
this.alarmType = alarmType;
}
public String getAlarm() {
return alarm;
}
public void setAlarm(String alarm) {
this.alarm = alarm;
}
public String getTransportation() {
return transportation;
}
public void setTransportation(String transportation) {
this.transportation = transportation;
}
public String getgSN() {
return gSN;
}
public void setgSN(String gSN) {
this.gSN = gSN;
}
public String getgType() {
return gType;
}
public void setgType(String gType) {
this.gType = gType;
}
}
package com.example.tdl.domain.vo;
public class UpdateCircuitForABBVo {
private String transportationNo;
private String cargoNo;
private String cargoName;
private String remark;
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getTransportationNo() {
return transportationNo;
}
public void setTransportationNo(String transportationNo) {
this.transportationNo = transportationNo;
}
public String getCargoNo() {
return cargoNo;
}
public void setCargoNo(String cargoNo) {
this.cargoNo = cargoNo;
}
public String getCargoName() {
return cargoName;
}
public void setCargoName(String cargoName) {
this.cargoName = cargoName;
}
}
package com.example.tdl.domain.vo;
public class UpdateCircuitStartTimeVo {
private String transportationNo;
private Long startTime;
public String getTransportationNo() {
return transportationNo;
}
public void setTransportationNo(String transportationNo) {
this.transportationNo = transportationNo;
}
public Long getStartTime() {
return startTime;
}
public void setStartTime(Long startTime) {
this.startTime = startTime;
}
}
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;
import java.util.Map;
@Mapper
public interface CircuitABBMapper {
List<ResultCircuitForABBVo> getAll(@Param("companyNo") String companyNo);
List<ResultCircuitForABBVo> getByTerm(CircuitTermVo circuitTermVo);
int addCircuitForABB(Map<Object, Object> map);
int startCircuitForABB(UpdateCircuitStartTimeVo updateCircuitStartTimeVo);
int endCircuitForABB(Map<Object, Object> map);
int updateCircuitForABB(UpdateCircuitForABBVo updateCircuitForABBVo);
int delCircuit(String transportationNo);
ResultCircuitForABBVo getByTransportationNo(@Param("transportationNo") String transportationNo, @Param("companyNo") String companyNo);
ResultCircuitForABBVo getCircuit(@Param("transportationNo") String transportationNo);
Integer getNo(String transportationNo);
List<ResultCircuitForABBVo> getByCompanyNoAndCircuitState(String companyNo);
}
package com.example.tdl.service;
import com.example.tdl.domain.vo.*;
import com.example.tdl.mapper.CircuitABBMapper;
import com.example.tdl.mapper.CircuitMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class CircuitABBService {
@Autowired
private CircuitABBMapper circuitABBMapper;
public List<ResultCircuitForABBVo> getAll(String companyNo){
return circuitABBMapper.getAll(companyNo);
}
public List<ResultCircuitForABBVo> getByTerm(CircuitTermVo circuitTermVo){
return circuitABBMapper.getByTerm(circuitTermVo);
}
public int addCircuitForABB(Map<Object,Object> map){
return circuitABBMapper.addCircuitForABB(map);
}
public int startCircuitForABB(UpdateCircuitStartTimeVo updateCircuitStartTimeVo){
return circuitABBMapper.startCircuitForABB(updateCircuitStartTimeVo);
}
public int endCircuitForABB(Map<Object,Object> map){
return circuitABBMapper.endCircuitForABB(map);
}
public int updateCircuitForABB(UpdateCircuitForABBVo updateCircuitForABBVo){
return circuitABBMapper.updateCircuitForABB(updateCircuitForABBVo);
}
public int delCircuit(String transportationNo){
return circuitABBMapper.delCircuit(transportationNo);
}
public ResultCircuitForABBVo getByTransportationNo(String transportationNo,String companyNo){
return circuitABBMapper.getByTransportationNo(transportationNo,companyNo);
}
public ResultCircuitForABBVo getCircuit(String transportationNo){
return circuitABBMapper.getCircuit(transportationNo);
}
public Integer getNo(String transportationNo){
return circuitABBMapper.getNo(transportationNo);
}
public List<ResultCircuitForABBVo> getByCompanyNoAndCircuitState(String companyNo){
return circuitABBMapper.getByCompanyNoAndCircuitState(companyNo);
}
}
package com.example.tdl.web;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.example.tdl.domain.dto.CommFeedback;
import com.example.tdl.domain.vo.*;
import com.example.tdl.service.*;
import com.example.tdl.service.redis.AlarmRedisService;
import com.example.tdl.service.redis.InfoRedisService;
import com.example.tdl.service.redis.TokenRedisService;
import com.example.tdl.util.AlarmRule;
import com.google.gson.Gson;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.influxdb.dto.Query;
import org.influxdb.dto.QueryResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.influxdb.InfluxDBTemplate;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@RestController
@RequestMapping("/circuitABB")
public class CircuitABBController {
private Logger logger = LoggerFactory.getLogger(CircuitABBController.class);
CommFeedback fb=new CommFeedback();
Gson gson=new Gson();
@Autowired
private CircuitABBService circuitABBService;
@Autowired
private CircuitService circuitService;
@Autowired
private GatewayService gatewayService;
@Autowired
private TDLDeviceService tdlDeviceService;
@Autowired
private AlarmLogService alarmLogService;
@Autowired
private AlarmRedisService alarmRedisService;
@Autowired
private TokenRedisService tokenRedisService;
@Autowired
private AlarmService alarmService;
@Autowired
private TDLLogService tdlLogService;
@Autowired
private ConfigService configService;
@Autowired
private CompanyService companyService;
@Autowired
private InfoRedisService infoRedisService;
@Autowired
private InfluxDBTemplate influxDBTemplate;
@Autowired
private I18nController i18n;
@Autowired
private TopicService topicService;
@Autowired
private TopicConfigService topicConfigService;
private final static String database ="original";
//获取本公司的线路信息
@ApiOperation(value = "获取本公司的线路信息",notes = "获取本公司的线路信息,返回值说明:" +
" transportationNo:运输编号," +
" cargoNo:货物编号," +
" cargoName:货物别名" +
" circuitState:线路状态(0未开始,1运输中,2完成)," +
" alarmType:预警类型," +
" alarm:报警详情(1-温度,2-湿度,3-震动,4-倾角,5-延误,6-离线,7--在线)," +
" transportation:运输方式," +
" gSN:网关编号," +
" gType:网关类型。")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@RequestMapping(value="/getAll",method = RequestMethod.GET)
public Object getAll(HttpServletRequest request){
String datum = tokenRedisService.get("TOKEN_" +request.getHeader("Account_token"));
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
List<ResultCircuitForABBVo> list = circuitABBService.getAll(user.getCompanyNo());
for(int i = 0,length=list.size();i<length;i++){
if(list.get(i).getCircuitState() == 1){
//获取设备在线情况
Object data = infoRedisService.getHash("DeviceOnline",list.get(i).getgType()+"_"+list.get(i).getgSN());
if(data == null){
if(StringUtils.isEmpty(list.get(i).getAlarm())){
list.get(i).setAlarm("6");
}else{
list.get(i).setAlarm(list.get(i).getAlarm()+",6");
}
}else{
OnlineVo onlineVo = gson.fromJson(data.toString(),OnlineVo.class);
if(onlineVo.getOnline() == 0){
if(StringUtils.isEmpty(list.get(i).getAlarm())){
list.get(i).setAlarm("6");
}else{
list.get(i).setAlarm(list.get(i).getAlarm()+",6");
}
}else if(onlineVo.getOnline() == 1) {
if(StringUtils.isEmpty(list.get(i).getAlarm())){
list.get(i).setAlarm("7");
}else{
list.get(i).setAlarm(list.get(i).getAlarm()+",7");
}
}
}
}else{
continue;
}
}
return list;
}
//根据条件查询
@ApiOperation(value = "根据条件查询本公司的线路信息",notes = "companyName不用传,根据条件查询:" +
" cargoNo:货物编号" +
" startTime:出发时间,(时间戳)" +
" endTime:目的时间,(时间戳)" +
" circuitState:线路状态(0未开始,1运输中,2完成)," +
" time:日期"+
"返回值说明:" +
" transportationNo:运输编号," +
" cargoNo:货物编号," +
" cargoName:货物别名" +
" circuitState:线路状态(0未开始,1运输中,2完成)," +
" alarmType:预警类型," +
" alarm:报警详情(1-温度,2-湿度,3-震动,4-倾角,5-延误,6-离线,7--在线)," +
" transportation:运输方式," +
" gSN:网关编号," +
" gType:网关类型。")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@RequestMapping(value="/getByTerm",method = RequestMethod.POST)
public Object getByTerm(@RequestBody CircuitTermVo circuitTermVo,HttpServletRequest request){
String datum = tokenRedisService.get("TOKEN_" +request.getHeader("Account_token"));
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if(StringUtils.isEmpty(circuitTermVo.getCargoNo())){
circuitTermVo.setCargoNo(null);
}
if(circuitTermVo.getCircuitState() == null || circuitTermVo.getCircuitState() == 3){
circuitTermVo.setCircuitState(null);
}
if(circuitTermVo.getStartTime()==null){
circuitTermVo.setStartTime(null);
}
if(circuitTermVo.getEndTime()==null){
circuitTermVo.setEndTime(null);
}
if(circuitTermVo.getStartTime()!=null && circuitTermVo.getEndTime()!=null && circuitTermVo.getStartTime()>circuitTermVo.getEndTime()){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"wrongTime"));
return gson.toJson(fb);
}
if(StringUtils.isEmpty(circuitTermVo.getTime())){
circuitTermVo.setTime(null);
}else{
circuitTermVo.setTime(circuitTermVo.getTime().replace("天","").trim());
}
circuitTermVo.setCompanyNo(user.getCompanyNo());
List<ResultCircuitForABBVo> list=circuitABBService.getByTerm(circuitTermVo);
for(int i = 0,length=list.size();i<length;i++){
if(list.get(i).getCircuitState() == 1){
//获取设备在线情况
Object data = infoRedisService.getHash("DeviceOnline",list.get(i).getgType()+"_"+list.get(i).getgSN());
if(data == null){
if(StringUtils.isEmpty(list.get(i).getAlarm())){
list.get(i).setAlarm("6");
}else{
list.get(i).setAlarm(list.get(i).getAlarm()+",6");
}
}else{
OnlineVo onlineVo = gson.fromJson(data.toString(),OnlineVo.class);
if(onlineVo.getOnline() == 0){
if(StringUtils.isEmpty(list.get(i).getAlarm())){
list.get(i).setAlarm("6");
}else{
list.get(i).setAlarm(list.get(i).getAlarm()+",6");
}
}else if(onlineVo.getOnline() == 1) {
if(StringUtils.isEmpty(list.get(i).getAlarm())){
list.get(i).setAlarm("7");
}else{
list.get(i).setAlarm(list.get(i).getAlarm()+",7");
}
}
}
}else{
continue;
}
}
return list;
}
//根据线路编号获取线路详细信息
@ApiOperation(value = "根据线路编号获取线路详细信息",notes = "根据线路编号获取线路详细信息,传值说明:" +
" transportationNo:运输编号; " +
"返回值说明:" +
" transportationNo:运输编号," +
" routeName:线路," +
" cargoName:货物别名," +
" transportation:运输方式," +
" alarmType:预警类型," +
" SN:gateway序列号," +
" tdlList:{" +
" tdlsn:TDLSN序列号" +
" batteryVoltage:电池电压}," +
" alarmLogList:{" +
" transportationNo:运输编号;" +
" TDLSN:tag序列号;" +
" description:报警描述;" +
" data:数值;" +
" alarmTime:报警时间;" +
" classify:分类}" +
" " )
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@PostMapping("/getDetails")
public Object getDetails(@RequestBody String transportationNo,HttpServletRequest request) {
if(StringUtils.isEmpty(transportationNo)){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"transportationNo"));
return gson.toJson(fb);
}
JSONObject jsonObject= JSON.parseObject(transportationNo);
transportationNo=(String)jsonObject.get("transportationNo");
//获取线路信息
CircuitMessage circuitVo = circuitService.getMessage(transportationNo);
if(circuitVo == null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"noCircuit"));
return gson.toJson(fb);
}
CircuitMessageForABBVo messageVo = new CircuitMessageForABBVo(circuitVo.getTransportationNo(),circuitVo.getRouteName(),circuitVo.getCargoName(),circuitVo.getTransportation(),circuitVo.getAlarmType());
//获取gateway信息
TDLLogVo gatewayVo = tdlLogService.getByTransportationNo(transportationNo);
List<String> TDL= tdlLogService.getTdlSN(transportationNo);
List<ResultAlarmLog> alarmLogList = new ArrayList<>();
List<CircuitMessageForABBVo.TDL> tdlList = new ArrayList<>();
if(gatewayVo == null || TDL.size() == 0){
messageVo.setSN("NA");
messageVo.setBattery("NA");
messageVo.setAlarmLogList(alarmLogList);
messageVo.setTdlList(tdlList);
return gson.toJson(messageVo);
}
messageVo.setSN(gatewayVo.getgSN());
alarmLogList= alarmLogService.getByTransportationNo(transportationNo);
messageVo.setAlarmLogList(alarmLogList);
String sql ="";
if (circuitVo.getEndTime() != null && circuitVo.getEndTime() != 0) {
sql = "SELECT \"battery\" FROM \"tdl_policy\".\"" + gatewayVo.getgType() + "_" + gatewayVo.getgSN() + "\" where time >=" + circuitVo.getStartTime() + " and time<=" + circuitVo.getEndTime() * 1000000l + " ORDER BY time desc limit 1";
} else {
sql = "SELECT \"battery\" FROM \"tdl_policy\".\"" + gatewayVo.getgType() + "_" + gatewayVo.getgSN() + "\" where time >=" + circuitVo.getStartTime() + " ORDER BY time desc limit 1";
}
QueryResult queryResult = influxDBTemplate.query(new Query(sql, database));
if (queryResult.getResults().get(0).getSeries() == null) {
messageVo.setBattery("NA");
}else{
DecimalFormat df = new DecimalFormat("######0.0");
String val = queryResult.getResults().get(0).getSeries().get(0).getValues().get(0).get(1) == null ? "" : queryResult.getResults().get(0).getSeries().get(0).getValues().get(0).get(1).toString();
Boolean boo = Double.valueOf(val) <0;
if(Double.valueOf(val) <0){
messageVo.setBattery("NA");
}else{
messageVo.setBattery(df.format(Double.valueOf(val)));
}
}
for(int i=0;i<TDL.size();i++){
CircuitMessageForABBVo.TDL tdl = new CircuitMessageForABBVo.TDL();
tdl.setTdlsn(TDL.get(i).replace("TDL-", "").trim());
if(circuitVo.getStartTime() == null || circuitVo.getStartTime() == 0){
tdl.setBatteryVoltage("NA");
}else {
String sql1 ="";
if (circuitVo.getEndTime() != null && circuitVo.getEndTime() != 0) {
sql1= "SELECT \"b\" FROM \"tdl_policy\".\"" + gatewayVo.getgType() + "_" + gatewayVo.getgSN() + "\" where \"tdl\"='" + TDL.get(i) + "' and time >=" + circuitVo.getStartTime() + " and time<=" + circuitVo.getEndTime() * 1000000l + " ORDER BY time desc limit 1";
} else {
sql1 = "SELECT \"b\" FROM \"tdl_policy\".\"" + gatewayVo.getgType() + "_" + gatewayVo.getgSN() + "\" where \"tdl\"='" + TDL.get(i) + "' and time >=" + circuitVo.getStartTime() + " ORDER BY time desc limit 1";
}
QueryResult queryResult1 = influxDBTemplate.query(new Query(sql1, database));
if (queryResult1.getResults().get(0).getSeries() == null) {
tdl.setBatteryVoltage("NA");
}else{
DecimalFormat df = new DecimalFormat("######0.0");
String value = queryResult1.getResults().get(0).getSeries().get(0).getValues().get(0).get(1) == null ? "" : queryResult1.getResults().get(0).getSeries().get(0).getValues().get(0).get(1).toString();
if(Double.valueOf(value) <0){
tdl.setBatteryVoltage("NA");
}else{
tdl.setBatteryVoltage(df.format(Double.valueOf(value)));
}
}
}
tdlList.add(tdl);
}
messageVo.setTdlList(tdlList);
return gson.toJson(messageVo);
}
//添加线路信息ABB
@ApiOperation(value = "添加线路信息ABB",notes = "添加线路信息ABB," +
" SN:网关编号," +
" tdlAlarmList: " +
" {" +
" TDLSN:tdl编号," +
" alarmType:报警类型," +
" }" +
" cargoNo:货物编号," +
" cargoName:货物别名," +
" remark:备注。")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@RequestMapping(value="/addCircuitForABB",method = RequestMethod.POST)
public Object addCircuitForABB(@RequestBody AddCircuitForABBVo addCircuitForABBVo,HttpServletRequest request){
UserRedisVo user = gson.fromJson(tokenRedisService.get("TOKEN_" +request.getHeader("Account_token")),UserRedisVo.class);
ResultCompanyVo companyVo = companyService.getByCompanyNo(user.getCompanyNo());
if(StringUtils.isEmpty(addCircuitForABBVo.getSN())){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"gateway"));
return gson.toJson(fb);
}
if (StringUtils.isEmpty(addCircuitForABBVo.getCargoNo())){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"cargoNo"));
return gson.toJson(fb);
}
String type =gatewayService.getBySN(addCircuitForABBVo.getSN(),user.getCompanyNo());
//判断当前gateWay是否存在
if(StringUtils.isEmpty(type)){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"gatewayExist"));
return gson.toJson(fb);
}
ResultGatewayVo resultGatewayVo = gatewayService.getBySNAndType(addCircuitForABBVo.getSN(),type);
if(!resultGatewayVo.getState()){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"gatewayMounted"));
return gson.toJson(fb);
}
//获取gateway的场景
if(resultGatewayVo.getUseScene()== 2){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"gatewayConsistent"));
return gson.toJson(fb);
}
String alarmTypeVar="";
String TDLSNVar="";
List<String> devList = tdlDeviceService.getByGatewaySN(addCircuitForABBVo.getSN(),type);
List<Float> tempL = new ArrayList<>();
List<Float> tempH = new ArrayList<>();
List<Float> humiL = new ArrayList<>();
List<Float> humiH = new ArrayList<>();
List<Integer> pressL = new ArrayList<>();
List<Integer> pressH = new ArrayList<>();
List<Integer> sugEnergy = new ArrayList<>();
List<Float> accThreshold = new ArrayList<>();
List<Integer> timeThreshold = new ArrayList<>();
List<Integer> tiltThreshold = new ArrayList<>();
if (addCircuitForABBVo.getTdlAlarmList().size()==0){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"tdl"));
return gson.toJson(fb);
}
for(int j = 0,length =addCircuitForABBVo.getTdlAlarmList().size();j<length;j++){
if(StringUtils.isEmpty(addCircuitForABBVo.getTdlAlarmList().get(j).getTDLSN())){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"tdl"));
return gson.toJson(fb);
}
//判断当前tdl是否存在
ResultTDLDeviceVo tdlDeviceVo = tdlDeviceService.getByTDLSN(addCircuitForABBVo.getTdlAlarmList().get(j).getTDLSN());
if(tdlDeviceVo == null){
fb.setCode(0);
Object[] args ={addCircuitForABBVo.getTdlAlarmList().get(j).getTDLSN()};
fb.setMessage(i18n.getMessage(request, args,"tdlExist"));
return gson.toJson(fb);
}
if(!StringUtils.isEmpty(tdlDeviceVo.getGatewaySN())){
fb.setCode(0);
Object[] args ={addCircuitForABBVo.getTdlAlarmList().get(j).getTDLSN()};
fb.setMessage(i18n.getMessage(request,args,"tdlUsed"));
return gson.toJson(fb);
}
if(StringUtils.isEmpty(addCircuitForABBVo.getTdlAlarmList().get(j).getAlarmType())){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"alarmType"));
return gson.toJson(fb);
}
//获取阈值信息
ResultAlarmVo resultAlarmVo = alarmService.getByType(addCircuitForABBVo.getTdlAlarmList().get(j).getAlarmType(),user.getCompanyNo());
tempL.add(resultAlarmVo.getTemMin());
tempH.add(resultAlarmVo.getTemMax());
humiL.add(resultAlarmVo.getHumidityMin());
humiH.add(resultAlarmVo.getHumidityMax());
pressL.add(255);
pressH.add(255);
sugEnergy.add(1);
accThreshold.add(Float.valueOf(resultAlarmVo.getShock()));
timeThreshold.add(5);
tiltThreshold.add((int)Double.parseDouble(resultAlarmVo.getTilt().toString()));
alarmTypeVar =alarmTypeVar + addCircuitForABBVo.getTdlAlarmList().get(j).getAlarmType() +"&";
TDLSNVar =TDLSNVar + addCircuitForABBVo.getTdlAlarmList().get(j).getTDLSN() +"&";
devList.add("TDL-"+addCircuitForABBVo.getTdlAlarmList().get(j).getTDLSN());
AlarmRule.saveAlarmRule("TDL/"+type+"/" +addCircuitForABBVo.getSN()+"/Data",addCircuitForABBVo.getTdlAlarmList().get(j).getTDLSN(),addCircuitForABBVo.getTdlAlarmList().get(j).getAlarmType(),user.getCompanyNo(),alarmService,alarmRedisService);
}
//根据sn获取type
ConfigCMDVo configCMDVo = new ConfigCMDVo("config",5,15,devList,tempL,tempH,humiL,humiH,pressL,pressH,sugEnergy,accThreshold,timeThreshold,tiltThreshold,1,System.currentTimeMillis()/1000l);
Map<Object,Object> map=new HashMap<>();
String transportation = "公路";
String transportationType="本地运输";
String transportationNo =getTransportNo(transportation,transportationType);
map.put("transportationNo",transportationNo);
map.put("cargoNo",addCircuitForABBVo.getCargoNo());
map.put("cargoName",addCircuitForABBVo.getCargoName());
map.put("deliveryAddress","站点");
map.put("transportation",transportation);
map.put("transportationType",transportationType);
map.put("createTime",System.currentTimeMillis());
map.put("remark",addCircuitForABBVo.getRemark());
map.put("companyNo",user.getCompanyNo());
map.put("SN",addCircuitForABBVo.getSN());
map.put("type",type);
map.put("TDLSNVar",TDLSNVar);
map.put("alarmTypeVar",alarmTypeVar);
map.put("TDLCounts",addCircuitForABBVo.getTdlAlarmList()== null ? 0 : addCircuitForABBVo.getTdlAlarmList().size());
map.put("message",configCMDVo == null ? "" :gson.toJson(configCMDVo));
map.put("flag",false);
map.put("untie",false);
circuitABBService.addCircuitForABB(map);
Map<Object,Object> msg=new HashMap<>();
msg.put("msg",map.get("msg"));
if (msg.get("msg").equals("添加线路成功")){
fb.setCode(1);
fb.setMessage(i18n.getMessage(request,"circuitSuccess"));
//增加配置(公司以及线路信息)
AlarmMqttConfig alarmMqttConfig = new AlarmMqttConfig(transportationNo,companyVo.getCompanyNo());
infoRedisService.hmSet("AlarmMqttConfig",type+"_"+addCircuitForABBVo.getSN(),gson.toJson(alarmMqttConfig));
List<ResultTopicVo> topicList = topicService.getByGateway(new GatewaySNAndTypeVo(addCircuitForABBVo.getSN(),type));
for (ResultTopicVo topic : topicList) {
infoRedisService.delHashKey("TopicConfig", topic.getTopicName());
//配置发布还是订阅
ProbesConfigVo channel_config = new ProbesConfigVo();
//根据设备的主题名,获取所有的通道
List<ResultTopicConfigVo> devChannelList = topicConfigService.getProbes(topic.getTopicName(),addCircuitForABBVo.getSN(),type);
List<ChannelConfigVo> channelConfigs = new ArrayList<>();
for (ResultTopicConfigVo devChannel : devChannelList) {
ChannelConfigVo channelConfig = new ChannelConfigVo(devChannel.getPort(),devChannel.getUnti(),devChannel.getDescription(),devChannel.getAlias());
channelConfigs.add(channelConfig);
}
channel_config.setIntervalTime(topic.getIntervalTime());
channel_config.setChannelConfigs(channelConfigs);
infoRedisService.hmSet("TopicConfig", topic.getTopicName(), channel_config.toString());
}
}else {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"circuitFailure"));
}
return gson.toJson(fb);
}
//修改线路
@ApiOperation(value = "修改线路",notes = "修改线路,传值说明:" +
" transportationNo:运输编号," +
" cargoNo:货物编号," +
" cargoName:货物名称。" )
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@RequestMapping(value="/updateCircuitForABB",method = RequestMethod.POST)
public Object updateCircuitForABB(@RequestBody UpdateCircuitForABBVo updateCircuitForABBVo,HttpServletRequest request){
String datum = tokenRedisService.get("TOKEN_" +request.getHeader("Account_token"));
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if (StringUtils.isEmpty(updateCircuitForABBVo.getTransportationNo())){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"transportationNo"));
return gson.toJson(fb);
}
if (StringUtils.isEmpty(updateCircuitForABBVo.getCargoNo())){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"cargoNo"));
return gson.toJson(fb);
}
ResultCircuitForABBVo resultCircuitVo = circuitABBService.getByTransportationNo(updateCircuitForABBVo.getTransportationNo(),user.getCompanyNo());
if (resultCircuitVo==null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"noCircuit"));
return gson.toJson(fb);
}
if (resultCircuitVo.getCircuitState()==1){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"inTransit"));
return gson.toJson(fb);
}
int a = circuitABBService.updateCircuitForABB(updateCircuitForABBVo);
try {
if (a > 0) {
fb.setCode(1);
fb.setMessage(i18n.getMessage(request,"updateCircuitForABBSuccess"));
} else {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"updateCircuitForABBFailure"));
}
} catch (Exception e){
e.printStackTrace();
logger.info(e.toString());
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"updateCircuitForABBFailure"));
}
return gson.toJson(fb);
}
//删除线路
@ApiOperation(value = "删除线路",notes = "删除线路,传值说明:" +
" transportationNo:运输编号" )
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@RequestMapping(value="/delCircuit",method = RequestMethod.POST)
public Object delCircuit(@RequestBody String transportationNo,HttpServletRequest request){
String datum = tokenRedisService.get("TOKEN_" +request.getHeader("Account_token"));
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if (StringUtils.isEmpty(transportationNo)){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"transportationNo"));
return gson.toJson(fb);
}
JSONObject jsonObject= JSON.parseObject(transportationNo);
transportationNo=(String)jsonObject.get("transportationNo");
ResultCircuitForABBVo resultCircuitVo = circuitABBService.getByTransportationNo(transportationNo,user.getCompanyNo());
if (resultCircuitVo==null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"noCircuit"));
return gson.toJson(fb);
}
if (resultCircuitVo.getCircuitState()==1){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"inTransit"));
return gson.toJson(fb);
}
int a = circuitABBService.delCircuit(transportationNo);
try {
if (a > 0) {
fb.setCode(1);
fb.setMessage(i18n.getMessage(request,"circuitDeleteSuccess"));
} else {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"circuitDeleteFailure"));
}
} catch (Exception e){
e.printStackTrace();
logger.info(e.toString());
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"circuitDeleteFailure"));
}
return gson.toJson(fb);
}
//开始运输
@ApiOperation(value = "开始运输",notes = "开始运输" +
"startTime:开始时间(13位时间戳)" +
"transportationNo:运输编号")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@PostMapping("/startTransportation")
public Object startTransportation(@RequestBody UpdateCircuitStartTimeVo updateCircuitStartTimeVo,HttpServletRequest request){
String datum = tokenRedisService.get("TOKEN_" +request.getHeader("Account_token"));
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if (StringUtils.isEmpty(updateCircuitStartTimeVo.getTransportationNo())){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"transportationNo"));
return gson.toJson(fb);
}
if (circuitABBService.getByTransportationNo(updateCircuitStartTimeVo.getTransportationNo(),user.getCompanyNo())==null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"noCircuit"));
return gson.toJson(fb);
}
if (updateCircuitStartTimeVo.getStartTime()==null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"startTime"));
return gson.toJson(fb);
}
//判断该线路是否绑定
ResultGatewayVo gatewayVo = tdlLogService.getByNo(updateCircuitStartTimeVo.getTransportationNo());
if(gatewayVo == null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"notBound"));
return gson.toJson(fb);
}
int a=circuitABBService.startCircuitForABB(updateCircuitStartTimeVo);
if (a>=0){
fb.setCode(1);
fb.setMessage(i18n.getMessage(request,"startCircuitSuccess"));
}else {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"startCircuitFailure"));
}
return gson.toJson(fb);
}
//修改线路结束时间
@ApiOperation(value = "修改线路结束时间",notes = "修改线路结束时间,传值说明:" +
" transportationNo:运输编号," +
" endTime:到达时间 " )
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@RequestMapping(value="/updateEndTime",method = RequestMethod.POST)
public Object updateEndTime(@RequestBody UpdateCircuitVo updateCircuitVo,HttpServletRequest request){
String datum = tokenRedisService.get("TOKEN_" +request.getHeader("Account_token"));
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if (StringUtils.isEmpty(updateCircuitVo.getTransportationNo())){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"transportationNo"));
return gson.toJson(fb);
}
if (updateCircuitVo.getEndTime()==null){
updateCircuitVo.setEndTime(System.currentTimeMillis());
}
ResultCircuitForABBVo resultCircuitForABBVo=circuitABBService.getByTransportationNo(updateCircuitVo.getTransportationNo(),user.getCompanyNo());
if (resultCircuitForABBVo==null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"noCircuit"));
return gson.toJson(fb);
}
if (resultCircuitForABBVo.getCircuitState() ==0){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"notStarted"));
return gson.toJson(fb);
}
//获取当前线路的gateway 和tdl信息
TDLLogVo tdlLogVo = tdlLogService.getByTransportationNo(updateCircuitVo.getTransportationNo());
if(tdlLogVo == null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"notBound"));
return gson.toJson(fb);
}
List<String> dev = tdlLogService.getTdlSN(updateCircuitVo.getTransportationNo());
if(dev == null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"notBound"));
return gson.toJson(fb);
}
List<String> devList = tdlDeviceService.getByGatewaySN(tdlLogVo.getgSN(),tdlLogVo.getgType());
if(devList == null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"notBound"));
return gson.toJson(fb);
}
String tdl = tdlDeviceService.getTdl(tdlLogVo.getgSN(),tdlLogVo.getgType());
if(tdl == null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"notBound"));
return gson.toJson(fb);
}
ConfigCMDVo configCMDVo;
ConfigVo configVo =configService.getConfig(tdlLogVo.getgSN(),tdlLogVo.getgType());
if(configVo == null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"notBound"));
return gson.toJson(fb);
}
if(StringUtils.isEmpty(configVo.getMessage())){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"notBound"));
return gson.toJson(fb);
}
ConfigCMDVo config = gson.fromJson(configVo.getMessage(),ConfigCMDVo.class);
Boolean untie = false;
if(tdl.equals(tdlLogVo.getTDLSN())){
configCMDVo =null;
untie = true;
}else{
devList.removeAll(dev);
configCMDVo = new ConfigCMDVo("config",config.getGpsPeriod(),config.getGprsPeriod(),devList,config.getMode(),System.currentTimeMillis()/1000l);
}
Map<Object,Object> map=new HashMap<>();
map.put("transportationNo",updateCircuitVo.getTransportationNo());
map.put("gSN",tdlLogVo.getgSN());
map.put("gType",tdlLogVo.getgType());
map.put("message",configCMDVo == null ? "" : gson.toJson(configCMDVo));
map.put("endTime",updateCircuitVo.getEndTime());
map.put("untie",untie);
circuitABBService.endCircuitForABB(map);
Map<Object,Object> msg=new HashMap<>();
msg.put("msg",map.get("msg"));
if (msg.get("msg").equals("修改成功")){
fb.setCode(1);
fb.setMessage(i18n.getMessage(request,"endCircuitSuccess"));
String key ="TDL/"+tdlLogVo.getgType()+"/" +tdlLogVo.getgSN() +"/Data";
alarmRedisService.delKey(key);
infoRedisService.delHashKey("AlarmMqttConfig",tdlLogVo.getgType()+"_"+tdlLogVo.getgSN());
}else{
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"endCircuitFailure"));
}
return gson.toJson(fb);
}
//生成运输编号
public String getTransportNo(String transportation,String transportationType){
String transportationNo="";
if(transportationType.equals("本地运输")){
transportationNo = transportationNo+"CHN";
}else{
transportationNo = transportationNo+"HUN";
}
transportationNo=transportationNo+new SimpleDateFormat("yyyyMMdd").format(new Date());
if(transportation.equals("公路")){
transportationNo = transportationNo +"G";
} else if (transportation.equals("铁路")){
transportationNo = transportationNo +"T";
}else if (transportation.equals("空运")){
transportationNo = transportationNo +"K";
}else if (transportation.equals("快递")){
transportationNo = transportationNo +"D";
}else if (transportation.equals("海运")){
transportationNo = transportationNo +"H";
}
transportationNo=transportationNo+((int)(Math.random()*(9999-1000+1))+1000);
if (circuitABBService.getNo(transportationNo)>0){
while (circuitABBService.getNo(transportationNo)>0){
transportationNo=transportationNo+((int)(Math.random()*(9999-1000+1))+1000);
}
}
return transportationNo;
}
//两个时间戳之间相差多少
public String getMistiming(Long startTime,Long arrivalTime,HttpServletRequest request){
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
long ns = 1000;
// 获得两个时间的毫秒时间差异
long diff = startTime- arrivalTime;
// 计算差多少天
long day = diff / nd;
// 计算差多少小时
long hour = diff % nd / nh;
// 计算差多少分钟
long min = diff % nd % nh / nm;
// 计算差多少秒//输出结果
long sec = diff % nd % nh % nm / ns;
return day + i18n.getMessage(request,"day")+" " + hour + i18n.getMessage(request,"hour") +" " + min +i18n.getMessage(request,"min") ;
}
}
......@@ -60,6 +60,7 @@ public class PermissionController {
@ApiOperation(value = "查询所有权限信息",notes = "查询所有权限信息")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@RequestMapping(value="/getAll",method = RequestMethod.GET)
public Object getAll(HttpServletRequest request){
......@@ -88,7 +89,7 @@ public class PermissionController {
for (String permissionName1:permissionNames){
if(permissionLists.contains(permissionName1)) {
PermissionShowVo permissionShowVo = new PermissionShowVo();
permissionShowVo.setPermissionName(permissionName1);
permissionShowVo.setPermissionName(i18n.getMessage(request,permissionName1.replace(" ","")));
permissionShowVo.setChecked(false);
permissionShowVoList.add(permissionShowVo);
}
......@@ -113,6 +114,7 @@ public class PermissionController {
@ApiOperation(value = "根据角色获取所有的权限",notes = "获取该公司最高权限")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@RequestMapping(value = "/getPermissionByRoleName",method = RequestMethod.POST)
public Object getPermissionByRoleName(@RequestBody String roleName,HttpServletRequest request){
......@@ -151,7 +153,7 @@ public class PermissionController {
for (String permissionName1:permissionNames){
if(permissionLists.contains(permissionName1)) {
PermissionShowVo permissionShowVo = new PermissionShowVo();
permissionShowVo.setPermissionName(permissionName1);
permissionShowVo.setPermissionName(i18n.getMessage(request,permissionName1.replace(" ","")));
if (rolePermission.contains(permissionName1)) {
permissionShowVo.setChecked(true);
} else {
......@@ -181,6 +183,7 @@ public class PermissionController {
@RequestMapping(value = "/addOrSavePermission",method = RequestMethod.POST)
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
public String addOrSavePermission(@RequestBody AddOrUpdatePermissionVo addOrUpdatePermissionVo, HttpServletRequest request){
String token = request.getHeader("Account_token");
......
#spring.datasource.url=jdbc:mysql://47.97.184.225:3306/tdlcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.url=jdbc:mysql://192.168.1.14:3306/tdlcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=37774020
......
......@@ -267,26 +267,7 @@ hour=Hour
min=Min
sec=Sec
DataOverview=Data Overview
TransportationState=Transportation State
SystemSetup=System Setup
WarehouseStatus=Warehouse Status
InformationManagement=Information Management
Devicemanagement=Device management
DataOverviewDetails=Data Overview Details
TransportationList=Transportation List
Usermanagement=User management
Commonaddress=Common address
CompanyManagement=Company Management
Warningmanagement=Warning management
AlarmManagement=Alarm Management
WarehouseList=Warehouse List
WarehouseManagement=Warehouse Management
RegionManagement=Region Management
GatewayManagement=Gateway Management
SensorManagement=Sensor Management
AccountManagement=Account Management
VehicleManagement=Vehicle Management
themeColors=Theme color cannot be empty
fontColors=Font color cannot be empty
postCode=Zip code cannot be empty
......@@ -319,3 +300,79 @@ Temperature=Temperature(\u2103)
EnableAllert=Enable allert
NoData=No data for this time period
DataOverview=Data Overview
TransportationState=Transportation State
WarehouseStatus=Warehouse Status
SystemSetup=System Setup
InformationManagement=Information Management
Devicemanagement=Device management
DataOverviewDetails=Data Overview Details
TransportationList=Transportation List
WarehouseList=Warehouse List
Usermanagement=User management
Commonaddress=Common address
CompanyManagement=Company Management
Warningmanagement=Warning management
AlarmManagement=Alarm Management
AccountManagement=Account Management
WarehouseManagement=Warehouse Management
RegionManagement=Region Management
VehicleManagement=Vehicle Management
GatewayManagement=Gateway Management
SensorManagement=Sensor Management
HomeDataQuery=Home Data Query
RouteQuery=Route Query
AddRoute=Add Route
ModifyRoute=Modify Route
DeleteRoute=Delete Route
StartTransportation=Start Transportation
StopTransportation=Stop Transportation
DownloadRouteDetails=Download Route Details
AccountQuery=Account Query
AddAccount=Add Account
ModifyAccount=Modify Account
DeleteAccount=Delete Account
CommonAddressQuery=Common Address Query
AddCommonAddress=Add Common Address
ModifyCommonAddress=Modify Common Address
DeleteCommonAddress=Delete Common Address
CompanyQuery=Company Query
AddCompany=Add Company
ModifyCompany=Modify Company
DeleteCompany=Delete Company
EarlyWarningQuery=Early Warning Query
AddEarlyWarning=Add Early Warning
ModifyEarlyWarning=Modify Early Warning
DeleteEarlyWarning=Delete Early Warning
AlarmQuery=Alarm Query
UserQuery=User Query
AddUser=Add User
ModifyUser=Modify User
DeleteUser=Delete User
WarehouseListQuery=Warehouse List Query
WarehouseQuery=Warehouse Query
AddWarehouse=Add Warehouse
ModifyWarehouse=Modify Warehouse
DeleteWarehouse=Delete Warehouse
DownloadWarehouseDetails=Download Warehouse Details
RegionQuery=Region Query
AddRegion=Add Region
ModifyRegion=Modify Region
DeleteRegion=Delete Region
VehicleQuery=Vehicle Query
AddVehicle=Add Vehicle
ModifyVehicle=Modify Vehicle
DeleteVehicle=Delete Vehicle
GatewayQuery=Gateway Query
AddGateway=Add Gateway
ModifyGateway=Modify Gateway
DeleteGateway=Delete Gateway
GatewayAssignment=Gateway Assignment
GatewayMounting=Gateway Mounting
SensorQuery=Sensor Query
AddSensor=Add Sensor
ModifySensor=Modify Sensor
DeleteSensor=Delete Sensor
SensorAssignment=Sensor Assignment
\ No newline at end of file
......@@ -198,3 +198,25 @@ humidityMinLimit=\u6E7F\u5EA6\u306E\u4E0B\u9650\u306F0\uFF05\u3092\u4E0B\u56DE\u
humidityMaxLimit=\u6E7F\u5EA6\u306E\u4E0A\u9650\u306F100\uFF05\u3092\u8D85\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
temMinLimit=\u4E0B\u9650\u6E29\u5EA6\u306F-25\u2103\u4EE5\u4E0B\u306B\u3067\u304D\u307E\u305B\u3093
temMaxLimit=\u4E0A\u9650\u6E29\u5EA6\u306F85\u2103\u3092\u8D85\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
DataOverview=Data Overview
TransportationState=Transportation State
WarehouseStatus=Warehouse Status
SystemSetup=System Setup
InformationManagement=Information Management
Devicemanagement=Device management
DataOverviewDetails=Data Overview Details
TransportationList=Transportation List
WarehouseList=Warehouse List
Usermanagement=User management
Commonaddress=Common address
CompanyManagement=Company Management
Warningmanagement=Warning management
AlarmManagement=Alarm Management
AccountManagement=Account Management
WarehouseManagement=Warehouse Management
RegionManagement=Region Management
VehicleManagement=Vehicle Management
GatewayManagement=Gateway Management
SensorManagement=Sensor Management
......@@ -98,6 +98,8 @@ circuitDeleteFailure = \u7EBF\u8DEF\u5220\u9664\u5931\u8D25
startTime = \u7EBF\u8DEF\u5F00\u59CB\u65F6\u95F4\u4E0D\u80FD\u4E3A\u7A7A
startCircuitSuccess = \u7EBF\u8DEF\u5F00\u59CB\u8FD0\u8F93\u6210\u529F
startCircuitFailure = \u7EBF\u8DEF\u5F00\u59CB\u8FD0\u8F93\u5931\u8D25
updateCircuitForABBSuccess = \u4FEE\u6539\u7EBF\u8DEF\u6210\u529F
updateCircuitForABBFailure = \u4FEE\u6539\u7EBF\u8DEF\u5931\u8D25
#\u516C\u53F8
companyName = \u516C\u53F8\u540D\u4E0D\u80FD\u4E3A\u7A7A
alias= \u516C\u53F8\u7B80\u79F0\u4E0D\u80FD\u4E3A\u7A7A
......@@ -330,22 +332,79 @@ updateconfigFailure = \u4FEE\u6539\u5931\u8D25
DataOverview=\u6570\u636E\u6982\u89C8
TransportationState=\u8FD0\u8F93\u72B6\u6001
SystemSetup=\u7CFB\u7EDF\u8BBE\u7F6E
WarehouseStatus=\u4ED3\u5E93\u72B6\u6001
SystemSetup=\u7CFB\u7EDF\u8BBE\u7F6E
InformationManagement=\u4FE1\u606F\u7BA1\u7406
Devicemanagement=\u8BBE\u5907\u7BA1\u7406
DataOverviewDetails=\u6570\u636E\u6982\u89C8\u8BE6\u60C5
TransportationList=\u8FD0\u8F93\u5217\u8868
WarehouseList=\u4ED3\u5E93\u5217\u8868
Usermanagement=\u7528\u6237\u7BA1\u7406
Commonaddress=\u5E38\u7528\u5730\u5740
CompanyManagement=\u516C\u53F8\u7BA1\u7406
Warningmanagement=\u9884\u8B66\u7BA1\u7406
AlarmManagement=\u62A5\u8B66\u7BA1\u7406
WarehouseList=\u4ED3\u5E93\u5217\u8868
AccountManagement=\u89D2\u8272\u7BA1\u7406
WarehouseManagement=\u4ED3\u5E93\u7BA1\u7406
RegionManagement=\u533A\u57DF\u7BA1\u7406
VehicleManagement=\u8F66\u8F86\u7BA1\u7406
GatewayManagement=\u7F51\u5173\u7BA1\u7406
SensorManagement=\u4F20\u611F\u5668\u7BA1\u7406
AccountManagement=\u89D2\u8272\u7BA1\u7406
VehicleManagement=\u8F66\u8F86\u7BA1\u7406
HomeDataQuery=\u9996\u9875\u6570\u636E\u67E5\u8BE2
RouteQuery=\u7EBF\u8DEF\u67E5\u8BE2
AddRoute=\u7EBF\u8DEF\u6DFB\u52A0
ModifyRoute=\u7EBF\u8DEF\u4FEE\u6539
DeleteRoute=\u7EBF\u8DEF\u5220\u9664
StartTransportation=\u7EBF\u8DEF\u5F00\u59CB\u8FD0\u8F93
StopTransportation=\u7EBF\u8DEF\u7ED3\u675F\u8FD0\u8F93
DownloadRouteDetails=\u7EBF\u8DEF\u6570\u636E\u4E0B\u8F7D
AccountQuery=\u7528\u6237\u67E5\u8BE2
AddAccount=\u7528\u6237\u6DFB\u52A0
ModifyAccount=\u7528\u6237\u4FEE\u6539
DeleteAccount=\u7528\u6237\u5220\u9664
CommonAddressQuery=\u5E38\u7528\u5730\u5740\u67E5\u8BE2
AddCommonAddress=\u5E38\u7528\u5730\u5740\u6DFB\u52A0
ModifyCommonAddress=\u5E38\u7528\u5730\u5740\u4FEE\u6539
DeleteCommonAddress=\u5E38\u7528\u5730\u5740\u5220\u9664
CompanyQuery=\u516C\u53F8\u67E5\u8BE2
AddCompany=\u516C\u53F8\u6DFB\u52A0
ModifyCompany=\u516C\u53F8\u4FEE\u6539
DeleteCompany=\u516C\u53F8\u5220\u9664
EarlyWarningQuery=\u9884\u8B66\u67E5\u8BE2
AddEarlyWarning=\u9884\u8B66\u6DFB\u52A0
ModifyEarlyWarning=\u9884\u8B66\u4FEE\u6539
DeleteEarlyWarning=\u9884\u8B66\u5220\u9664
AlarmQuery=\u62A5\u8B66\u67E5\u8BE2
UserQuery=\u89D2\u8272\u67E5\u8BE2
AddUser=\u89D2\u8272\u6DFB\u52A0
ModifyUser=\u89D2\u8272\u4FEE\u6539
DeleteUser=\u89D2\u8272\u5220\u9664
WarehouseListQuery=\u4ED3\u5E93\u5217\u8868\u67E5\u8BE2
WarehouseQuery=\u4ED3\u5E93\u67E5\u8BE2
AddWarehouse=\u4ED3\u5E93\u6DFB\u52A0
ModifyWarehouse=\u4ED3\u5E93\u4FEE\u6539
DeleteWarehouse=\u4ED3\u5E93\u5220\u9664
DownloadWarehouseDetails=\u4ED3\u5E93\u6570\u636E\u4E0B\u8F7D
RegionQuery=\u533A\u57DF\u67E5\u8BE2
AddRegion=\u533A\u57DF\u6DFB\u52A0
ModifyRegion=\u533A\u57DF\u4FEE\u6539
DeleteRegion=\u533A\u57DF\u5220\u9664
VehicleQuery=\u8F66\u8F86\u67E5\u8BE2
AddVehicle=\u8F66\u8F86\u6DFB\u52A0
ModifyVehicle=\u8F66\u8F86\u4FEE\u6539
DeleteVehicle=\u8F66\u8F86\u5220\u9664
GatewayQuery=\u7F51\u5173\u67E5\u8BE2
AddGateway=\u7F51\u5173\u6DFB\u52A0
ModifyGateway=\u7F51\u5173\u4FEE\u6539
DeleteGateway=\u7F51\u5173\u5220\u9664
GatewayAssignment=\u5206\u914D\u7F51\u5173
GatewayMounting=\u7F51\u5173\u6302\u8F7D
SensorQuery=\u4F20\u611F\u5668\u67E5\u8BE2
AddSensor=\u4F20\u611F\u5668\u6DFB\u52A0
ModifySensor=\u4F20\u611F\u5668\u4FEE\u6539
DeleteSensor=\u4F20\u611F\u5668\u5220\u9664
SensorAssignment=\u5206\u914D\u4F20\u611F\u5668
<?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.CircuitABBMapper">
<!--获取所有线路的信息-->
<select id="getAll" resultType="com.example.tdl.domain.vo.ResultCircuitForABBVo" parameterType="String">
SELECT c.transportationNo,cargoNo,cargoName,circuitState,(SELECT GROUP_CONCAT(alarmType) FROM alarm WHERE id IN (
SELECT alarm_id from tdl_gateway_log WHERE transportationNo=c.transportationNo)) alarmType,(select GROUP_CONCAT(DISTINCT classify)
from alarm_log al where al.transportationNo = c.transportationNo) alarm,transportation,
(select DISTINCT gatewaySN from tdl_gateway_log WHERE transportationNo=c.transportationNo) gSN,
(select DISTINCT gatewayType from tdl_gateway_log WHERE transportationNo=c.transportationNo) gType
from circuit c
where c.state=1
AND company_id=(SELECT id from company where companyNo=#{companyNo,jdbcType=VARCHAR})
order by c.createTime desc
</select>
<!--根据条件查询线路信息-->
<select id="getByTerm" resultType="com.example.tdl.domain.vo.ResultCircuitForABBVo" parameterType="com.example.tdl.domain.vo.CircuitTermVo">
SELECT c.transportationNo,cargoNo,cargoName,circuitState,(SELECT GROUP_CONCAT(alarmType) FROM alarm WHERE id IN (
SELECT alarm_id from tdl_gateway_log WHERE transportationNo=c.transportationNo)) alarmType,(select GROUP_CONCAT(DISTINCT classify)
from alarm_log al where al.transportationNo = c.transportationNo) alarm,transportation,
(select DISTINCT gatewaySN from tdl_gateway_log WHERE transportationNo=c.transportationNo) gSN,
(select DISTINCT gatewayType from tdl_gateway_log WHERE transportationNo=c.transportationNo) gType
from circuit c
where c.state=1
AND company_id=(SELECT id from company where companyNo=#{companyNo,jdbcType=VARCHAR})
<if test="time !=null">
AND DATE_SUB(CURDATE(), INTERVAL #{time,jdbcType=VARCHAR} DAY) &lt;= date(FROM_UNIXTIME(createTime/1000,'%Y-%m-%d %H:%i:%s'))
</if>
<if test="circuitState!=null">
AND c.circuitState=#{circuitState,jdbcType=INTEGER}
</if>
<if test="cargoNo!=null">
AND c.cargoNo like CONCAT(CONCAT('%',#{cargoNo,jdbcType=VARCHAR}),'%')
</if>
<if test="startTime!=null">
AND c.createTime &gt;= #{startTime,jdbcType=BIGINT}
</if>
<if test="endTime!=null">
AND c.createTime &lt;= #{endTime,jdbcType=BIGINT}
</if>
</select>
<!--ABB新增一条线路-->
<insert id="addCircuitForABB" parameterType="java.util.Map" statementType="CALLABLE">
<![CDATA[
{
call pro_addCircuitForABB(
#{transportationNo,mode=IN,jdbcType=VARCHAR},
#{cargoNo,mode=IN,jdbcType=VARCHAR},
#{cargoName,mode=IN,jdbcType=VARCHAR},
#{deliveryAddress,mode=IN,jdbcType=VARCHAR},
#{transportation,mode=IN,jdbcType=VARCHAR},
#{transportationType,mode=IN,jdbcType=VARCHAR},
#{createTime,mode=IN,jdbcType=BIGINT},
#{remark,mode=IN,jdbcType=VARCHAR},
#{companyNo,mode=IN,jdbcType=VARCHAR},
#{SN,mode=IN,jdbcType=VARCHAR},
#{type,mode=IN,jdbcType=VARCHAR},
#{TDLSNVar,mode=IN,jdbcType=VARCHAR},
#{alarmTypeVar,mode=IN,jdbcType=VARCHAR},
#{TDLCounts,mode=IN,jdbcType=VARCHAR},
#{message,mode=IN,jdbcType=VARCHAR},
#{flag,mode=IN,jdbcType=INTEGER},
#{untie,mode=IN,jdbcType=INTEGER},
#{msg,mode=OUT,jdbcType=VARCHAR}
)
}
]]>
</insert>
<update id="startCircuitForABB" parameterType="com.example.tdl.domain.vo.UpdateCircuitStartTimeVo">
UPDATE circuit set startTime=#{startTime,jdbcType=BIGINT},circuitState=1
WHERE transportationNo=#{transportationNo,jdbcType=VARCHAR} AND state=1;
</update>
<update id="endCircuitForABB" parameterType="java.util.Map" statementType="CALLABLE">
<![CDATA[
{
call pro_endCircuitForABB(
#{transportationNo,mode=IN,jdbcType=VARCHAR},
#{gSN,mode=IN,jdbcType=VARCHAR},
#{gType,mode=IN,jdbcType=VARCHAR},
#{message,mode=IN,jdbcType=VARCHAR},
#{endTime,mode=IN,jdbcType=BIGINT},
#{untie,mode=IN,jdbcType=INTEGER},
#{msg,mode=OUT,jdbcType=VARCHAR}
)
}
]]>
</update>
<update id="updateCircuitForABB" parameterType="com.example.tdl.domain.vo.UpdateCircuitForABBVo">
UPDATE circuit set
cargoNo=#{cargoNo,jdbcType=VARCHAR},
cargoName=#{cargoName,jdbcType=VARCHAR},
remark=#{remark,jdbcType=VARCHAR}
WHERE transportationNo=#{transportationNo,jdbcType=VARCHAR} AND state=1
</update>
<!--删除线路-->
<delete id="delCircuit" parameterType="String">
UPDATE circuit set state=0 WHERE transportationNo=#{transportationNo,jdbcType=VARCHAR}
</delete>
<!--根据线路编号获取线路信息-->
<select id="getByTransportationNo" resultType="com.example.tdl.domain.vo.ResultCircuitForABBVo" parameterType="String">
SELECT c.transportationNo,cargoNo,cargoName,circuitState,(SELECT GROUP_CONCAT(alarmType) FROM alarm WHERE id IN (
SELECT alarm_id from tdl_gateway_log WHERE transportationNo=c.transportationNo)) alarmType,(select GROUP_CONCAT(DISTINCT classify)
from alarm_log al where al.transportationNo = c.transportationNo) alarm,transportation,
(select DISTINCT gatewaySN from tdl_gateway_log WHERE transportationNo=c.transportationNo) gSN,
(select DISTINCT gatewayType from tdl_gateway_log WHERE transportationNo=c.transportationNo) gType
from circuit c
where c.state=1
AND c.transportationNo=#{transportationNo,jdbcType=VARCHAR}
AND company_id=(SELECT id from company where companyNo=#{companyNo,jdbcType=VARCHAR})
</select>
<select id="getCircuit" resultType="com.example.tdl.domain.vo.ResultCircuitForABBVo" parameterType="String">
SELECT c.transportationNo,cargoNo,cargoName,circuitState,(SELECT GROUP_CONCAT(alarmType) FROM alarm WHERE id IN (
SELECT alarm_id from tdl_gateway_log WHERE transportationNo=c.transportationNo)) alarmType,(select GROUP_CONCAT(DISTINCT classify)
from alarm_log al where al.transportationNo = c.transportationNo) alarm,transportation,
(select DISTINCT gatewaySN from tdl_gateway_log WHERE transportationNo=c.transportationNo) gSN,
(select DISTINCT gatewayType from tdl_gateway_log WHERE transportationNo=c.transportationNo) gType
from circuit c
where c.state=1
and c.transportationNo=#{transportationNo,jdbcType=VARCHAR}
</select>
<select id="getNo" parameterType="String" resultType="java.lang.Integer">
SELECT count(transportationNo) from circuit
WHERE transportationNo=#{transportationNo,jdbcType=VARCHAR}
</select>
<select id="getByCompanyNoAndCircuitState" parameterType="java.lang.String" resultType="com.example.tdl.domain.vo.ResultCircuitForABBVo">
SELECT c.transportationNo,cargoNo,cargoName,circuitState,(SELECT GROUP_CONCAT(alarmType) FROM alarm WHERE id IN (
SELECT alarm_id from tdl_gateway_log WHERE transportationNo=c.transportationNo)) alarmType,(select GROUP_CONCAT(DISTINCT classify)
from alarm_log al where al.transportationNo = c.transportationNo) alarm,transportation,
(select DISTINCT gatewaySN from tdl_gateway_log WHERE transportationNo=c.transportationNo) gSN,
(select DISTINCT gatewayType from tdl_gateway_log WHERE transportationNo=c.transportationNo) gType
from circuit c where c.state=1
and c.circuitState = 1
AND company_id=(SELECT id from company where companyNo=#{companyNo,jdbcType=VARCHAR})
</select>
</mapper>
\ No newline at end of file
......@@ -34,6 +34,7 @@
<mapper resource="mapper/LoginLogMapper.xml"/>
<mapper resource="mapper/GatewayMapper.xml"/>
<mapper resource="mapper/CircuitMapper.xml"/>
<mapper resource="mapper/CircuitABBMapper.xml"/>
<mapper resource="mapper/TopicModelMapper.xml"/>
<mapper resource="mapper/TopicModelInfoMapper.xml"/>
<mapper resource="mapper/ProbesModelMapper.xml"/>
......
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