Browse Source

新增根据设备桩号范围查询设备列表

develop
zhaoxianglong 1 year ago
parent
commit
7741c39c68
  1. 14
      zc-business/src/main/java/com/zc/business/controller/DcDeviceController.java
  2. 3
      zc-business/src/main/java/com/zc/business/service/IDcDeviceService.java
  3. 51
      zc-business/src/main/java/com/zc/business/service/impl/DcDeviceServiceImpl.java

14
zc-business/src/main/java/com/zc/business/controller/DcDeviceController.java

@ -26,6 +26,7 @@ import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 设备Controller * 设备Controller
@ -83,6 +84,19 @@ public class DcDeviceController extends BaseController {
return AjaxResult.success(dcDeviceService.listDevice(dcDevice)); return AjaxResult.success(dcDeviceService.listDevice(dcDevice));
} }
/**
* 无分页根据设备桩号查询设备列表
*
* @param parameter 请求参数
* @return 查询结果
*/
@ApiOperation("无分页根据设备桩号查询设备列表")
@PreAuthorize("@ss.hasPermi('iot:device:query')")
@PostMapping("pileNumberQuery")
public AjaxResult devicePileNumberQueryDevice(@RequestBody Map<String,List> parameter) {
return AjaxResult.success(dcDeviceService.devicePileNumberQueryDevice(parameter));
}
/** /**
* 根据id查询设备信息 * 根据id查询设备信息
* *

3
zc-business/src/main/java/com/zc/business/service/IDcDeviceService.java

@ -6,6 +6,7 @@ import com.zc.business.domain.DcDevice;
import com.zc.business.domain.DcStakeMark; import com.zc.business.domain.DcStakeMark;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 设备Service接口 * 设备Service接口
@ -74,4 +75,6 @@ public interface IDcDeviceService extends IService<DcDevice> {
DcStakeMark exampleQueryTheAssociatedPileNumber(DcDevice dcDevice); DcStakeMark exampleQueryTheAssociatedPileNumber(DcDevice dcDevice);
Long statisticalAnomalyDevice(); Long statisticalAnomalyDevice();
List<DcDevice> devicePileNumberQueryDevice(Map<String,List> parameter);
} }

51
zc-business/src/main/java/com/zc/business/service/impl/DcDeviceServiceImpl.java

@ -16,9 +16,9 @@ import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.util.*;
import java.util.List; import java.util.regex.Matcher;
import java.util.Objects; import java.util.regex.Pattern;
/** /**
* 设备Service业务层处理 * 设备Service业务层处理
@ -35,6 +35,7 @@ public class DcDeviceServiceImpl extends ServiceImpl<DcDeviceMapper, DcDevice> i
@Resource @Resource
private DcDeviceMapper dcDeviceMapper; private DcDeviceMapper dcDeviceMapper;
private static String REGEX_CHINESE = "[\u4e00-\u9fa5]";// 中文正则
public LambdaQueryWrapper<DcDevice> deviceQueryWrapper(DcDevice dcDevice) { public LambdaQueryWrapper<DcDevice> deviceQueryWrapper(DcDevice dcDevice) {
@ -254,8 +255,8 @@ public class DcDeviceServiceImpl extends ServiceImpl<DcDeviceMapper, DcDevice> i
public boolean batchUpdate(List<DcDevice> listDevice) { public boolean batchUpdate(List<DcDevice> listDevice) {
for (DcDevice device : listDevice) { for (DcDevice device : listDevice) {
LambdaQueryWrapper<DcDevice> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<DcDevice> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DcDevice::getIotDeviceId,device.getIotDeviceId()); queryWrapper.eq(DcDevice::getIotDeviceId, device.getIotDeviceId());
update(device,queryWrapper); update(device, queryWrapper);
} }
return true; return true;
} }
@ -295,5 +296,45 @@ public class DcDeviceServiceImpl extends ServiceImpl<DcDeviceMapper, DcDevice> i
lambdaQueryWrapper.eq(DcDevice::getDeviceState, 0).or().isNull(DcDevice::getDeviceState); lambdaQueryWrapper.eq(DcDevice::getDeviceState, 0).or().isNull(DcDevice::getDeviceState);
return (long) list(lambdaQueryWrapper).size(); return (long) list(lambdaQueryWrapper).size();
} }
@Override
public List<DcDevice> devicePileNumberQueryDevice(Map<String, List> parameter) {
ArrayList<DcDevice> dcDevices = new ArrayList<>();
Integer startStakeMark = Integer.parseInt(String.valueOf(parameter.get("startStakeMark").get(0)) + String.valueOf(parameter.get("startStakeMark").get(1)));
Integer endStakeMark = Integer.parseInt(String.valueOf(parameter.get("endStakeMark").get(0)) + String.valueOf(parameter.get("endStakeMark").get(1)));
LambdaQueryWrapper<DcDevice> lambdaQueryWrapper = new LambdaQueryWrapper<>();
ArrayList<Integer> integers = new ArrayList<>();
integers.add(6);
lambdaQueryWrapper.notIn(DcDevice::getDeviceType,integers);
List<DcDevice> list = list(lambdaQueryWrapper);
for (DcDevice dcDevice : list) {
String stakeMark = dcDevice.getStakeMark();
Pattern pat = Pattern.compile(REGEX_CHINESE);
Matcher mat = pat.matcher(stakeMark);
stakeMark = mat.replaceAll("");
if (stakeMark == null || stakeMark.equals("")) {
continue;
}
if (stakeMark.startsWith("-")) {
String[] split = stakeMark.replace("K", "").replace("k", "").split("-");
for (String s : split) {
String[] ks = s.split("\\+");
double integer = Double.parseDouble(ks[0] + ks[1]);
if (startStakeMark <= integer && endStakeMark >= integer) {
dcDevices.add(dcDevice);
}
}
} else {
String[] ks = stakeMark.replace("K", "").replace("k", "").split("\\+");
double integer = Double.parseDouble(ks[0] + ks[1]);
if (startStakeMark <= integer && endStakeMark >= integer) {
dcDevices.add(dcDevice);
}
}
}
return dcDevices;
}
} }

Loading…
Cancel
Save