Commit e05d2721 authored by KeYong's avatar KeYong

提交ES装备初始化

parent 96ba5615
package com.yeejoin.equipmanage.dao; package com.yeejoin.equipmanage.common.dao;
import com.yeejoin.equipmanage.dto.ESEquipmentSpecificDto;
import com.yeejoin.equipmanage.common.dto.ESEquipmentSpecificDto;
import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
......
package com.yeejoin.equipmanage.dao; package com.yeejoin.equipmanage.common.dao;
import com.yeejoin.equipmanage.common.dto.EquiplistSpecificBySystemESVO; import com.yeejoin.equipmanage.common.dto.EquiplistSpecificBySystemESVO;
import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.PagingAndSortingRepository;
......
package com.yeejoin.equipmanage.dto; package com.yeejoin.equipmanage.common.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
......
package com.yeejoin.equipmanage.constans;
/**
* @author keyong
* @title: CommonConstans
* <pre>
* @description: TODO
* </pre>
* @date 2024/8/12 11:15
*/
public class CommonConstants {
//es EquipIndexName 查绚关键字
public static final String QueryStringEquipmentName = "equipmentName.keyword";
}
package com.yeejoin.equipmanage.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.dao.ESEquipmentSpecificDao;
import com.yeejoin.equipmanage.common.dto.ESEquipmentSpecificDto;
import com.yeejoin.equipmanage.service.IESEquipmentInitService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
/**
* @author keyong
* @title: ESInitDataController
* <pre>
* @description: TODO
* </pre>
* @date 2024/8/09 20:42
*/
@RestController
@Api(tags = "装备数据存入ES初始化Api")
@RequestMapping(value = "/es", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class ESInitDataController {
@Autowired
IESEquipmentInitService equipmentInitService;
@Autowired
ESEquipmentSpecificDao esEquipmentSpecificDao;
@RequestMapping(value = "/init/specific", method = RequestMethod.GET)
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "", notes = "")
public ResponseModel initSpecificData2ES() {
equipmentInitService.initSpecificData2ES();
return ResponseHelper.buildResponse("Init equip data to ES !");
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/specific/page")
@ApiOperation(httpMethod = "GET", value = "装备ES分页", notes = "装备ES分页")
public ResponseModel<Page<ESEquipmentSpecificDto>> getESEquipSpecificPage(@RequestParam(value = "pageNum") int pageNum,
@RequestParam(value = "pageSize") int pageSize,
ESEquipmentSpecificDto esEquipmentSpecificDto) {
return ResponseHelper.buildResponse(equipmentInitService.queryByKeys(esEquipmentSpecificDto, pageNum, pageSize));
}
}
...@@ -9,20 +9,22 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams; ...@@ -9,20 +9,22 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey; import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto; import com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto;
import com.yeejoin.equipmanage.common.entity.*; import com.yeejoin.equipmanage.common.entity.EquipQrcodeRecord;
import com.yeejoin.equipmanage.common.entity.Equipment;
import com.yeejoin.equipmanage.common.entity.EquipmentDetail;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO; import com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO;
import com.yeejoin.equipmanage.common.entity.dto.SourceNameListDTO; import com.yeejoin.equipmanage.common.entity.dto.SourceNameListDTO;
import com.yeejoin.equipmanage.common.entity.vo.ComplementCodeVO; import com.yeejoin.equipmanage.common.entity.vo.ComplementCodeVO;
import com.yeejoin.equipmanage.common.entity.vo.EquiplistSpecificBySystemVO; import com.yeejoin.equipmanage.common.entity.vo.EquiplistSpecificBySystemVO;
import com.yeejoin.equipmanage.common.entity.vo.IotIndexInfoVo; import com.yeejoin.equipmanage.common.entity.vo.IotIndexInfoVo;
import com.yeejoin.equipmanage.common.entity.vo.SourceNameByEquipSpeIdVO; import com.yeejoin.equipmanage.common.entity.vo.SourceNameByEquipSpeIdVO;
import com.yeejoin.equipmanage.common.enums.EquipQrcodeColorEnum;
import com.yeejoin.equipmanage.common.utils.CommonResponseUtil; import com.yeejoin.equipmanage.common.utils.CommonResponseUtil;
import com.yeejoin.equipmanage.common.utils.StringUtil; import com.yeejoin.equipmanage.common.utils.StringUtil;
import com.yeejoin.equipmanage.common.vo.EquipmentOnCarVo; import com.yeejoin.equipmanage.common.vo.EquipmentOnCarVo;
import com.yeejoin.equipmanage.common.vo.VideoOnEquipmentSpecificVo; import com.yeejoin.equipmanage.common.vo.VideoOnEquipmentSpecificVo;
import com.yeejoin.equipmanage.dao.ESEquipmentSpecificDao; import com.yeejoin.equipmanage.common.dao.ESEquipmentSpecificDao;
import com.yeejoin.equipmanage.dto.ESEquipmentSpecificDto; import com.yeejoin.equipmanage.common.dto.ESEquipmentSpecificDto;
import com.yeejoin.equipmanage.fegin.IotFeign; import com.yeejoin.equipmanage.fegin.IotFeign;
import com.yeejoin.equipmanage.mapper.EquipQrcodeRecordMapper; import com.yeejoin.equipmanage.mapper.EquipQrcodeRecordMapper;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificMapper; import com.yeejoin.equipmanage.mapper.EquipmentSpecificMapper;
...@@ -663,14 +665,4 @@ public class EquipmentSpecificController extends AbstractBaseController { ...@@ -663,14 +665,4 @@ public class EquipmentSpecificController extends AbstractBaseController {
return equipmentSpecificSerivce.getFireEquipListByDefineCode(code, equipStatus, bizOrgCode, pageBean); return equipmentSpecificSerivce.getFireEquipListByDefineCode(code, equipStatus, bizOrgCode, pageBean);
} }
@Autowired
ESEquipmentSpecificDao esEquipmentSpecificDao;
@RequestMapping(value = "/test", method = RequestMethod.GET)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public ResponseModel<String> getTester() {
return ResponseHelper.buildResponse(esEquipmentSpecificDao.save(""));
}
} }
...@@ -768,4 +768,5 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE ...@@ -768,4 +768,5 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
List<Map<String, Object>> getSystemAlarmNum(@Param("bizOrgCode") String bizOrgCode); List<Map<String, Object>> getSystemAlarmNum(@Param("bizOrgCode") String bizOrgCode);
long getEquipSpecificTotal(@Param("equipTypeAmountPage") EquipTypeAmountPageDTO equipTypeAmountPage);
} }
package com.yeejoin.equipmanage.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.dto.ESEquipmentSpecificDto;
/**
* @author keyong
* @title: IESEquipmentInitService
* <pre>
* @description: TODO
* </pre>
* @date 2024/8/12 8:46
*/
public interface IESEquipmentInitService {
void initSpecificData2ES();
Page<ESEquipmentSpecificDto> queryByKeys(ESEquipmentSpecificDto esEquipmentSpecificDto, int pageNum, int pageSize);
}
...@@ -10,14 +10,13 @@ import com.yeejoin.equipmanage.common.datasync.vo.FireEquipmentVO; ...@@ -10,14 +10,13 @@ import com.yeejoin.equipmanage.common.datasync.vo.FireEquipmentVO;
import com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto; import com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto;
import com.yeejoin.equipmanage.common.dto.FireFightingSystemDto; import com.yeejoin.equipmanage.common.dto.FireFightingSystemDto;
import com.yeejoin.equipmanage.common.dto.UserDto; import com.yeejoin.equipmanage.common.dto.UserDto;
import com.yeejoin.equipmanage.common.entity.Car;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecific; import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex; import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.dto.EquipTypeAmountPageDTO; import com.yeejoin.equipmanage.common.entity.dto.EquipTypeAmountPageDTO;
import com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO; import com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO;
import com.yeejoin.equipmanage.common.entity.vo.*; import com.yeejoin.equipmanage.common.entity.vo.*;
import com.yeejoin.equipmanage.common.vo.*; import com.yeejoin.equipmanage.common.vo.*;
import org.springframework.web.bind.annotation.RequestParam; import com.yeejoin.equipmanage.common.dto.ESEquipmentSpecificDto;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.Date; import java.util.Date;
...@@ -329,4 +328,5 @@ public interface IEquipmentSpecificSerivce extends IService<EquipmentSpecific> { ...@@ -329,4 +328,5 @@ public interface IEquipmentSpecificSerivce extends IService<EquipmentSpecific> {
Page<Map<String, Object>> getFireEquipListByDefineCode(String code, String equipStatus, String bizOrgCode, Page<Map<String, Object>> pageBean); Page<Map<String, Object>> getFireEquipListByDefineCode(String code, String equipStatus, String bizOrgCode, Page<Map<String, Object>> pageBean);
void updateCarStatus(String status, String carId); void updateCarStatus(String status, String carId);
} }
...@@ -359,4 +359,6 @@ public interface IFireFightingSystemService extends IService<FireFightingSystemE ...@@ -359,4 +359,6 @@ public interface IFireFightingSystemService extends IService<FireFightingSystemE
List<OrgMenuDto> getSystemEquipTree(String systemCode); List<OrgMenuDto> getSystemEquipTree(String systemCode);
List<Map<String, Object>> getSystemAlarmNum(String bizOrgCode); List<Map<String, Object>> getSystemAlarmNum(String bizOrgCode);
long getEquipSpecificTotal(EquipTypeAmountPageDTO dto);
} }
package com.yeejoin.equipmanage.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.yeejoin.equipmanage.common.dao.ESEquipmentSpecificDao;
import com.yeejoin.equipmanage.common.dto.ESEquipmentSpecificDto;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.dto.EquipTypeAmountPageDTO;
import com.yeejoin.equipmanage.common.entity.vo.EquipTypeImgAmountVO;
import com.yeejoin.equipmanage.constans.CommonConstants;
import com.yeejoin.equipmanage.service.IESEquipmentInitService;
import com.yeejoin.equipmanage.service.IFireFightingSystemService;
import lombok.extern.slf4j.Slf4j;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.SearchHit;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.aggregation.AggregatedPage;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author keyong
* @title: ESEquipmentInitServiceImpl
* <pre>
* @description: TODO
* </pre>
* @date 2024/8/09 20:47
*/
@Service
@Slf4j
public class ESEquipmentInitServiceImpl implements IESEquipmentInitService {
@Autowired
private ESEquipmentSpecificDao esEquipmentSpecificDao;
@Autowired
RestHighLevelClient restHighLevelClient;
@Autowired
private ElasticsearchRestTemplate elasticsearchTemplate;
@Autowired
IFireFightingSystemService iFireFightingSystemService;
public void initSpecificData2ES() {
long start = System.currentTimeMillis();
EquipTypeAmountPageDTO equipTypeAmountPage = new EquipTypeAmountPageDTO();
equipTypeAmountPage.setIndustryCode("2");
long counts = iFireFightingSystemService.getEquipSpecificTotal(equipTypeAmountPage);
Long times = counts / 1000;
Long yushu = counts % 1000;
if (yushu > 0) {
times++;
}
long total = 0;
for (int i = 1; i <= times; i++) {
EquipTypeAmountPageDTO dto = new EquipTypeAmountPageDTO();
dto.setIndustryCode("2");
Page p = new Page<>();
p.setSize(1000);
p.setCurrent(i);
dto.setPage(p);
IPage<EquipTypeImgAmountVO> page = iFireFightingSystemService.getColaCategoryAmountEquList(0, null, dto);
total = total + page.getTotal();
saveBatchEquipment2Es(page.getRecords());
}
long end = System.currentTimeMillis();
log.info("本次存入设备数据:【" + total + "】条,耗时:" + (end - start) + " 毫秒");
}
public void saveBatchEquipment2Es(List<EquipTypeImgAmountVO> equipList) {
List<ESEquipmentSpecificDto> esEquipDtoList = Lists.newArrayList();
if (ValidationUtil.isEmpty(equipList)) {
return;
}
for (EquipTypeImgAmountVO vo : equipList) {
ESEquipmentSpecificDto dto = new ESEquipmentSpecificDto();
BeanUtils.copyProperties(vo, dto);
esEquipDtoList.add(dto);
}
long start = System.currentTimeMillis();
esEquipmentSpecificDao.saveAll(esEquipDtoList);
long end = System.currentTimeMillis();
long cost = end - start;
log.info("批量存入es1000条数据耗时:" + cost);
}
@Override
public Page<ESEquipmentSpecificDto> queryByKeys(ESEquipmentSpecificDto dto, int pageNum, int pageSize) {
SearchRequest request = new SearchRequest();
request.indices("equipment_specific");
//用于组装-es查询条件
Map<String, List<String>> queryCondition = new HashMap<>();
queryCondition.put(CommonConstants.QueryStringEquipmentName, Arrays.asList(dto.getEquipmentName()));
Page<ESEquipmentSpecificDto> result = getListDataByConditions(queryCondition, null, ESEquipmentSpecificDto.class, pageNum, pageSize);
return result;
}
public <T> Page<T> getListDataByConditions(Map<String, List<String>> mustQuerCondtion, Map<String, String> shouldQuerCondtion, Class<T> tClass, int pageNum, int pageSize) {
Page<T> result = null;
SearchRequest request = new SearchRequest();
request.indices("equipment_specific");
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
if (!ObjectUtils.isEmpty(mustQuerCondtion)) {
for (String key : mustQuerCondtion.keySet()) {
List<String> va = mustQuerCondtion.get(key);
queryBuilder.must(QueryBuilders.termsQuery(key, va));
}
}
if (!ObjectUtils.isEmpty(shouldQuerCondtion)) {
for (String key : shouldQuerCondtion.keySet()) {
queryBuilder.should(QueryBuilders.wildcardQuery(key, shouldQuerCondtion.get(key)));
}
}
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(queryBuilder);
builder.from((pageNum - 1) * pageSize);
builder.size(pageSize);
builder.trackTotalHits(true);
request.source(builder);
long totle;
List<T> list = new LinkedList<>();
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
for (org.elasticsearch.search.SearchHit hit : response.getHits()) {
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(hit);
T t = JSONObject.toJavaObject(jsonObject.getJSONObject("sourceAsMap"), tClass);
list.add(t);
}
totle = response.getInternalResponse().hits().getTotalHits().value;
result.setRecords(list);
result.setTotal(totle);
} catch (IOException e) {
throw new RuntimeException("ES 连接异常!");
}
return result;
}
}
...@@ -10,7 +10,7 @@ import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex; ...@@ -10,7 +10,7 @@ import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.WarehouseStructure; import com.yeejoin.equipmanage.common.entity.WarehouseStructure;
import com.yeejoin.equipmanage.common.entity.dto.EquipmentAlarmLogDto; import com.yeejoin.equipmanage.common.entity.dto.EquipmentAlarmLogDto;
import com.yeejoin.equipmanage.common.exception.BaseException; import com.yeejoin.equipmanage.common.exception.BaseException;
import com.yeejoin.equipmanage.dao.ESequiplistSpecificBySystemRepository; import com.yeejoin.equipmanage.common.dao.ESequiplistSpecificBySystemRepository;
import com.yeejoin.equipmanage.mapper.EquipmentIndexMapper; import com.yeejoin.equipmanage.mapper.EquipmentIndexMapper;
import com.yeejoin.equipmanage.mapper.WarehouseStructureMapper; import com.yeejoin.equipmanage.mapper.WarehouseStructureMapper;
import com.yeejoin.equipmanage.service.IESeqService; import com.yeejoin.equipmanage.service.IESeqService;
......
...@@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence; import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.interceptors.PermissionInterceptorContext; import com.yeejoin.amos.boot.biz.common.interceptors.PermissionInterceptorContext;
...@@ -311,7 +310,6 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -311,7 +310,6 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
@Lazy @Lazy
IEquipmentService equipmentService; IEquipmentService equipmentService;
@Autowired @Autowired
IFireFightingSystemService iFireFightingSystemService; IFireFightingSystemService iFireFightingSystemService;
@Autowired @Autowired
......
...@@ -1123,6 +1123,12 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -1123,6 +1123,12 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
} }
@Override @Override
public long getEquipSpecificTotal(EquipTypeAmountPageDTO dto) {
return fireFightingSystemMapper.getEquipSpecificTotal(dto);
}
@Override
public List<EquipmentManageVo> getSystemCategory() { public List<EquipmentManageVo> getSystemCategory() {
return equipmentManageMapper.getSystemList(); return equipmentManageMapper.getSystemList();
} }
......
package com.yeejoin.amos.patrol.business.util;
/**
* @author keyong
* @title: CleanPathUtil
* <pre>
* @description: TODO
* </pre>
* @date 2024/3/21 13:52
*/
public class CleanPathUtil {
/**
* 过滤字符串帮助类
*/
public static String cleanString(String aString) {
if (aString == null) return null;
String cleanString = "";
for (int i = 0; i < aString.length(); ++i) {
cleanString += cleanChar(aString.charAt(i));
}
return cleanString;
}
private static char cleanChar(char aChar) {
// 0 - 9
for (int i = 48; i < 58; ++i) {
if (aChar == i) return (char) i;
}
// 'A' - 'Z'
for (int i = 65; i < 91; ++i) {
if (aChar == i) return (char) i;
}
// 'a' - 'z'
for (int i = 97; i < 123; ++i) {
if (aChar == i) return (char) i;
}
// other valid characters
switch (aChar) {
case '/':
return '/';
case '.':
return '.';
case '-':
return '-';
case '_':
return '_';
case ' ':
return ' ';
}
return '%';
}
}
package com.yeejoin; package com.yeejoin;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import com.yeejoin.equipmanage.listener.CarIotListener; import com.yeejoin.equipmanage.listener.CarIotListener;
import com.yeejoin.equipmanage.listener.CarIotNewListener; import com.yeejoin.equipmanage.listener.CarIotNewListener;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
...@@ -102,4 +104,14 @@ public class AmostEquipApplication { ...@@ -102,4 +104,14 @@ public class AmostEquipApplication {
} }
} }
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置最大单页限制数量,默认 500 条,-1 不受限制
paginationInterceptor.setLimit(-1);
// 开启 count 的 join 优化,只针对部分 left join
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}
} }
...@@ -7038,4 +7038,27 @@ ...@@ -7038,4 +7038,27 @@
GROUP BY fs.system_type_code GROUP BY fs.system_type_code
</select> </select>
<select id="getEquipSpecificTotal" resultType="long">
SELECT COUNT(1)
FROM (SELECT id, name, qr_code, code, iot_code, biz_org_code, team_id, biz_org_name, create_date, equipment_detail_id, system_id, equip_status, warehouse_structure_id
FROM wl_equipment_specific) wles
LEFT JOIN wl_warehouse_structure wlws
ON wles.warehouse_structure_id = wlws.id
LEFT JOIN (SELECT id, standard, name, area, code, equipment_id, manufacturer_id, is_import
FROM wl_equipment_detail) wled
ON wles.equipment_detail_id = wled.id
LEFT JOIN wl_equipment wle
ON wle.id = wled.equipment_id
LEFT JOIN wl_equipment_category wec
ON wle.category_id = wec.id
<where>
<if test="equipTypeAmountPage.bizOrgCode!=null and equipTypeAmountPage.bizOrgCode!=''">
wles.biz_org_code LIKE CONCAT(#{equipTypeAmountPage.bizOrgCode},'%')
</if>
<if test="equipTypeAmountPage.industryCode!=null">
AND wec.industry_code = #{equipTypeAmountPage.industryCode}
</if>
</where>
</select>
</mapper> </mapper>
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