@Override
public List<MyBatteryInfoEntity> queryInfo2Export(Map<String, Object> params) {
String key = params.get("key")!=null?String.valueOf(params.get("key")):"";
String deviceID = params.get("deviceId")!=null?String.valueOf(params.get("deviceId")):"";
String starttime = params.get("starttime")!=null?String.valueOf(params.get("starttime")):"";
String endtime = params.get("endtime")!=null?String.valueOf(params.get("endtime")):"";
String startTime = StringUtils.isNotBlank(starttime)&&!"null".equals(starttime.trim())? DateUtils.format2(DateUtils.transferDateFormat(starttime),"yyyy-MM-dd HH:mm:ss"):"";
String endTime =StringUtils.isNotBlank(endtime)&&!"null".equals(endtime.trim())?DateUtils.format2(DateUtils.transferDateFormat(endtime),"yyyy-MM-dd HH:mm:ss"):"";
String sn = params.get("sn")!=null?String.valueOf(params.get("sn")):"";
int project_id = params.get("projectId")!=null&&StringUtils.isNotBlank(String.valueOf(params.get("projectId")))?
Integer.parseInt(String.valueOf(params.get("projectId"))):-1;
int flag = params.get("flag")!=null&&StringUtils.isNotBlank(String.valueOf(params.get("flag")))?
Integer.parseInt(String.valueOf(params.get("flag"))):-1;
List<MyBatteryInfoEntity> result_list = myBatteryInfoDao.selectList(new QueryWrapper<MyBatteryInfoEntity>()
.and(StringUtils.isNotBlank(key),
qw->qw.like(StringUtils.isNotBlank(key), "battery_id", key)
.or()
.like(StringUtils.isNotBlank(key), "topic", key)
.or()
.like(StringUtils.isNotBlank(key), "battery_soft_version", key)
)
.like(StringUtils.isNotBlank(deviceID),"battery_id",deviceID)
.like(StringUtils.isNotBlank(sn), "sn", sn)
.and(StringUtils.isNotBlank(startTime)||StringUtils.isNotBlank(endTime),
qw->qw.ge(StringUtils.isNotBlank(startTime),"upload_time", startTime)
.le(StringUtils.isNotBlank(endTime),"upload_time", endTime))
.eq(flag>0,"flag",flag)
.eq(project_id>0,"project_id",project_id)
.orderByAsc("upload_time"));
// 状态转换等
if (result_list != null && result_list.size() > 0) {
for (MyBatteryInfoEntity mtBatteryInfo : result_list) {
// 电池状态
int btStatus = StringUtils.isNotBlank(mtBatteryInfo.getBatteryWorkMode())?Integer.parseInt(mtBatteryInfo.getBatteryWorkMode().trim()):0;
String sysStatusValue = "";
if(btStatus>0) {
if (btStatus == 16) {
sysStatusValue = "充电("+btStatus+")";
} else if (btStatus == 1) {
sysStatusValue = "放电("+btStatus+")";
} else if (btStatus == 33) {
sysStatusValue = "搁置(保护-"+btStatus+")";
} else if (btStatus == 48) {
sysStatusValue = "搁置(待机无输出-"+btStatus+")";
} else if (btStatus == 49) {
sysStatusValue = "搁置(待机预放电-"+btStatus+")";
} else if (btStatus == 255) {
sysStatusValue = "搁置(故障需返厂-"+btStatus+")";
}
}
mtBatteryInfo.setBatteryWorkModeValue(sysStatusValue);
// 故障信息
if(StringUtils.isNotBlank(mtBatteryInfo.getBatteryErrorCode())){
StringBuffer errCodeValue = new StringBuffer();
// mtBatteryInfo.getBatteryErrorCode()分成3段
long errCode1 = Long.parseLong(mtBatteryInfo.getBatteryErrorCode().substring(0, 8), 16);
long errCode2 = Long.parseLong(mtBatteryInfo.getBatteryErrorCode().substring(8, 16), 16);
long errCode3 = Long.parseLong(mtBatteryInfo.getBatteryErrorCode().substring(16, 24), 16);
String fault = "正常";
if(errCode1>0){
fault = "故障中";
if(Utility.analyseCode(errCode1,0)){
errCodeValue.append("电芯过压1级&");
}
if(Utility.analyseCode(errCode1,1)){
errCodeValue.append("电芯过压2级&");
} if(Utility.analyseCode(errCode1,2)){
errCodeValue.append("电芯过压3级&");
} if(Utility.analyseCode(errCode1,3)){
errCodeValue.append("电芯过压4级&");
} if(Utility.analyseCode(errCode1,4)){
errCodeValue.append("整包过压1级&");
} if(Utility.analyseCode(errCode1,5)){
errCodeValue.append("整包过压2级&");
} if(Utility.analyseCode(errCode1,6)){
errCodeValue.append("整包过压3级&");
} if(Utility.analyseCode(errCode1,7)){
errCodeValue.append("充电器过压1级&");
} if(Utility.analyseCode(errCode1,8)){
errCodeValue.append("电芯欠压1级&");
} if(Utility.analyseCode(errCode1,9)){
errCodeValue.append("电芯欠压2级&");
} if(Utility.analyseCode(errCode1,10)){
errCodeValue.append("电芯欠压3级&");
} if(Utility.analyseCode(errCode1,11)){
errCodeValue.append("电芯欠压4级&");
} if(Utility.analyseCode(errCode1,12)){
errCodeValue.append("整包欠压1级&");
} if(Utility.analyseCode(errCode1,13)){
errCodeValue.append("整包欠压2级&");
} if(Utility.analyseCode(errCode1,14)){
errCodeValue.append("整包欠压3级&");
} if(Utility.analyseCode(errCode1,15)){
errCodeValue.append("整包欠压4级&");
} if(Utility.analyseCode(errCode1,16)){
errCodeValue.append("充电过流1级&");
} if(Utility.analyseCode(errCode1,17)){
errCodeValue.append("充电过流2级&");
} if(Utility.analyseCode(errCode1,18)){
errCodeValue.append("充电过流3级&");
}
// if(Utility.analyseCode(errCode1,19)){
// errCodeValue.append("回馈过流1级&");
// } if(Utility.analyseCode(errCode1,20)){
// errCodeValue.append("回馈过流2级&");
// } if(Utility.analyseCode(errCode1,21)){
// errCodeValue.append("回馈过流3级&");
// } if(Utility.analyseCode(errCode1,22)){
// errCodeValue.append("回馈过流4级&");
// }
if(Utility.analyseCode(errCode1,19)){
errCodeValue.append("充电过流4级&");
} if(Utility.analyseCode(errCode1,20)){
errCodeValue.append("回馈过流1级&");
} if(Utility.analyseCode(errCode1,21)){
errCodeValue.append("回馈过流2级&");
} if(Utility.analyseCode(errCode1,22)){
errCodeValue.append("回馈过流3级&");
}
if(Utility.analyseCode(errCode1,23)){
errCodeValue.append("充电过流锁死1级&");
} if(Utility.analyseCode(errCode1,24)){
errCodeValue.append("放电过流1级&");
} if(Utility.analyseCode(errCode1,25)){
errCodeValue.append("放电过流2级&");
} if(Utility.analyseCode(errCode1,26)){
errCodeValue.append("放电过流3级&");
} if(Utility.analyseCode(errCode1,27)){
errCodeValue.append("放电过流4级&");
} if(Utility.analyseCode(errCode1,28)){
errCodeValue.append("放电过流5级&");
} if(Utility.analyseCode(errCode1,29)){
errCodeValue.append("放电过流6级&");
} if(Utility.analyseCode(errCode1,30)){
errCodeValue.append("放电过流7级&");
} if(Utility.analyseCode(errCode1,31)){
errCodeValue.append("放电过流锁死1级&");
}
}
if(errCode2>0){
fault = "故障中";
if(Utility.analyseCode(errCode2,0)){
errCodeValue.append("辅源短路1级&");
}
if(Utility.analyseCode(errCode2,1)){
errCodeValue.append("预放超时1级&");
} if(Utility.analyseCode(errCode2,2)){
errCodeValue.append("预放锁死1级&");
}
// if(Utility.analyseCode(errCode2,3)){
// errCodeValue.append("电芯过压4级&");
// } if(Utility.analyseCode(errCode2,4)){
// errCodeValue.append("整包过压1级&");
// } if(Utility.analyseCode(errCode2,5)){
// errCodeValue.append("整包过压2级&");
// } if(Utility.analyseCode(errCode2,6)){
// errCodeValue.append("整包过压3级&");
// } if(Utility.analyseCode(errCode2,7)){
// errCodeValue.append("整包过压4级&");
// }
if(Utility.analyseCode(errCode2,8)){
errCodeValue.append("电芯充电高温1级&");
} if(Utility.analyseCode(errCode2,9)){
errCodeValue.append("电芯充电高温2级&");
} if(Utility.analyseCode(errCode2,10)){
errCodeValue.append("电芯充电低温1级&");
} if(Utility.analyseCode(errCode2,11)){
errCodeValue.append("电芯充电低温2级&");
} if(Utility.analyseCode(errCode2,12)){
errCodeValue.append("充电MOS高温1级&");
} if(Utility.analyseCode(errCode2,13)){
errCodeValue.append("充电MOS高温2级&");
} if(Utility.analyseCode(errCode2,14)){
errCodeValue.append("充电防反MOS高温1级&");
} if(Utility.analyseCode(errCode2,15)){
errCodeValue.append("充电防反MOS高温2级&");
} if(Utility.analyseCode(errCode2,16)){
errCodeValue.append("电芯放电高温1级&");
} if(Utility.analyseCode(errCode2,17)){
errCodeValue.append("电芯放电高温2级&");
} if(Utility.analyseCode(errCode2,18)){
errCodeValue.append("电芯放电低温1级&");
} if(Utility.analyseCode(errCode2,19)){
errCodeValue.append("电芯放电低温2级&");
} if(Utility.analyseCode(errCode2,20)){
errCodeValue.append("放电MOS高温1级&");
} if(Utility.analyseCode(errCode2,21)){
errCodeValue.append("放电MOS高温2级&");
}
// if(Utility.analyseCode(errCode2,22)){
// errCodeValue.append("回馈过流4级&");
// } if(Utility.analyseCode(errCode2,23)){
// errCodeValue.append("充电过流锁死1级&");
// }
if(Utility.analyseCode(errCode2,24)){
errCodeValue.append("均衡温度保护1级&");
} if(Utility.analyseCode(errCode2,25)){
errCodeValue.append("均衡温度保护2级&");
} if(Utility.analyseCode(errCode2,26)){
errCodeValue.append("辅源高温保护1级&");
} if(Utility.analyseCode(errCode2,27)){
errCodeValue.append("辅源低温保护1级&");
}
// if(Utility.analyseCode(errCode2,28)){
// errCodeValue.append("放电过流5级&");
// } if(Utility.analyseCode(errCode2,29)){
// errCodeValue.append("放电过流6级&");
// } if(Utility.analyseCode(errCode2,30)){
// errCodeValue.append("放电过流7级&");
// } if(Utility.analyseCode(errCode2,31)){
// errCodeValue.append("放电过流锁死1级&");
// }
}
if(errCode3>0){
fault = "故障中";
if(Utility.analyseCode(errCode3,0)){
errCodeValue.append("充电MOS短路1级&");
}
if(Utility.analyseCode(errCode3,1)){
errCodeValue.append("放电MOS短路1级&");
} if(Utility.analyseCode(errCode3,2)){
errCodeValue.append("NTC失效1级&");
} if(Utility.analyseCode(errCode3,3)){
errCodeValue.append("电芯采集断线1级&");
} if(Utility.analyseCode(errCode3,4)){
errCodeValue.append("电芯失衡1级&");
} if(Utility.analyseCode(errCode3,5)){
errCodeValue.append("电芯欠压失效1级&");
} if(Utility.analyseCode(errCode3,6)){
errCodeValue.append("AFE故障1级&");
} if(Utility.analyseCode(errCode3,7)){
errCodeValue.append("放电MOS断路1级&");
} if(Utility.analyseCode(errCode3,8)){
errCodeValue.append("FUSE熔断1级&");
}
}
if(fault.length()>0) {
mtBatteryInfo.setBatteryErrorCodeValue(fault);
}
if(errCodeValue.length()>0) {
mtBatteryInfo.setBatteryErrorCodeDetails(errCodeValue.toString().substring(0, errCodeValue.length() - 1)+"("+mtBatteryInfo.getBatteryErrorCode()+")");
}else{
mtBatteryInfo.setBatteryErrorCodeDetails("正常");
}
}
// Mos管状态
// bit4:均衡管状态( 0关闭, 1 有均衡管开启
// bit3:预放电 MOS 状态(0 关闭, 1 开启)
// bit2:充电 MOS 状态0 关闭, 1 开启)
// bit1:放电 MOS 状态0 关闭, 1 开启)
// bit0:备用
long mosCode = mtBatteryInfo.getMosStatus()!=null?mtBatteryInfo.getMosStatus():0;
StringBuffer mosCodeValue = new StringBuffer();
if(mosCode>=0){
if(Utility.analyseCode(mosCode,1)){
mosCodeValue.append("放电MOS状态:开启&");
mtBatteryInfo.setDischargeMosStatusValue("开启");
}else{
mosCodeValue.append("放电MOS状态:关闭&");
mtBatteryInfo.setDischargeMosStatusValue("关闭");
}
if(Utility.analyseCode(mosCode,2)){
mosCodeValue.append("充电MOS状态:开启&");
mtBatteryInfo.setChargeMosStatusValue("开启");
}else{
mosCodeValue.append("充电MOS状态:关闭&");
mtBatteryInfo.setChargeMosStatusValue("关闭");
}
if(Utility.analyseCode(mosCode,3)){
mosCodeValue.append("预放电MOS状态:开启&");
mtBatteryInfo.setPreDischargeMosStatusValue("开启");
}else{
mosCodeValue.append("预放电MOS状态:关闭&");
mtBatteryInfo.setPreDischargeMosStatusValue("关闭");
}
if(Utility.analyseCode(mosCode,4)){
mosCodeValue.append("均衡管状态:开启&");
mtBatteryInfo.setBalanceTubeStateValue("开启");
}else{
mosCodeValue.append("均衡管状态:关闭&");
mtBatteryInfo.setBalanceTubeStateValue("关闭");
}
}
if(mosCodeValue.length()>0) {
mtBatteryInfo.setMosStatusValue(mosCodeValue.toString().substring(0, mosCodeValue.length()-1));
}
// 1:GPS标准坐标(wgs84);
// 2:搜狗地图坐标;
// 3:火星坐标(gcj02),即高德地图、腾讯地图和MapABC等地图使用的坐标;
// 4:3中列举的地图坐标对应的墨卡托平面坐标;
// 5:百度地图采用的经纬度坐标(bd09ll);
// 6:百度地图采用的墨卡托平面坐标(bd09mc);
// 7:图吧地图坐标;
// 8:51地图坐标;
String locationMode = "";
if(StringUtils.isNotBlank(mtBatteryInfo.getLocationMode())){
int modeNum = Integer.parseInt(mtBatteryInfo.getLocationMode().trim());
if(modeNum==1){
locationMode = "GPS标准坐标(wgs84)";
}else if (modeNum==2){
locationMode = "搜狗地图坐标";
}else if (modeNum==3){
locationMode = "火星坐标(gcj02)";
}else if (modeNum==4){
locationMode = "3中列举的地图坐标对应的墨卡托平面坐标";
}else if (modeNum==5){
locationMode = "百度地图采用的经纬度坐标(bd09ll)";
}else if (modeNum==6){
locationMode = "百度地图采用的墨卡托平面坐标(bd09mc)";
}else if (modeNum==7){
locationMode = "图吧地图坐标";
}else if (modeNum==8){
locationMode = "51地图坐标";
}else{
locationMode = "";
}
}
mtBatteryInfo.setLocationModeValue(StringUtils.isNotBlank(locationMode)?locationMode:"GPS标准坐标(wgs84)");
}
}
return result_list;
}
使用多线程分批查询,循环也要优化,帮我优化整个代码,太慢了
最新发布