diff --git a/zc-business/src/main/java/com/zc/business/controller/DcDeviceController.java b/zc-business/src/main/java/com/zc/business/controller/DcDeviceController.java index 118be3f9..af4114a7 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcDeviceController.java +++ b/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.util.HashMap; import java.util.List; +import java.util.Map; /** * 设备Controller @@ -83,6 +84,19 @@ public class DcDeviceController extends BaseController { return AjaxResult.success(dcDeviceService.listDevice(dcDevice)); } + /** + * 无分页根据设备桩号查询设备列表 + * + * @param parameter 请求参数 + * @return 查询结果 + */ + @ApiOperation("无分页根据设备桩号查询设备列表") + @PreAuthorize("@ss.hasPermi('iot:device:query')") + @PostMapping("pileNumberQuery") + public AjaxResult devicePileNumberQueryDevice(@RequestBody Map parameter) { + return AjaxResult.success(dcDeviceService.devicePileNumberQueryDevice(parameter)); + } + /** * 根据id查询设备信息 * diff --git a/zc-business/src/main/java/com/zc/business/service/IDcDeviceService.java b/zc-business/src/main/java/com/zc/business/service/IDcDeviceService.java index 71345747..2e4b12b3 100644 --- a/zc-business/src/main/java/com/zc/business/service/IDcDeviceService.java +++ b/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 java.util.List; +import java.util.Map; /** * 设备Service接口 @@ -74,4 +75,6 @@ public interface IDcDeviceService extends IService { DcStakeMark exampleQueryTheAssociatedPileNumber(DcDevice dcDevice); Long statisticalAnomalyDevice(); + + List devicePileNumberQueryDevice(Map parameter); } diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcDeviceServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcDeviceServiceImpl.java index c0858d00..3f4a497a 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcDeviceServiceImpl.java +++ b/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 javax.annotation.Resource; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * 设备Service业务层处理 @@ -35,6 +35,7 @@ public class DcDeviceServiceImpl extends ServiceImpl i @Resource private DcDeviceMapper dcDeviceMapper; + private static String REGEX_CHINESE = "[\u4e00-\u9fa5]";// 中文正则 public LambdaQueryWrapper deviceQueryWrapper(DcDevice dcDevice) { @@ -254,8 +255,8 @@ public class DcDeviceServiceImpl extends ServiceImpl i public boolean batchUpdate(List listDevice) { for (DcDevice device : listDevice) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(DcDevice::getIotDeviceId,device.getIotDeviceId()); - update(device,queryWrapper); + queryWrapper.eq(DcDevice::getIotDeviceId, device.getIotDeviceId()); + update(device, queryWrapper); } return true; } @@ -295,5 +296,45 @@ public class DcDeviceServiceImpl extends ServiceImpl i lambdaQueryWrapper.eq(DcDevice::getDeviceState, 0).or().isNull(DcDevice::getDeviceState); return (long) list(lambdaQueryWrapper).size(); } + + @Override + public List devicePileNumberQueryDevice(Map parameter) { + ArrayList 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 lambdaQueryWrapper = new LambdaQueryWrapper<>(); + ArrayList integers = new ArrayList<>(); + integers.add(6); + lambdaQueryWrapper.notIn(DcDevice::getDeviceType,integers); + List 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; + } }