From b5df1cee65f3e9dcf554efcd3f1642a8c79d1e76 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期一, 30 九月 2024 02:12:24 +0800 Subject: [PATCH] 点位监测更换对象+存入mongo+提取utils --- ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java | 119 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 99 insertions(+), 20 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java index 35bf6ab..3210871 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java @@ -1,11 +1,14 @@ package com.ycl.platform.service.impl; import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.dataListener.CurrencyDataListener; +import com.ycl.platform.base.AbsVo; import com.ycl.platform.domain.entity.ReportAuditingRecord; import com.ycl.platform.domain.entity.YwPeople; import com.ycl.platform.domain.entity.YwPoint; @@ -15,8 +18,11 @@ import com.ycl.platform.domain.query.YwPointQuery; import com.ycl.platform.domain.result.BaseResult; import com.ycl.platform.domain.vo.CheckTagVO; +import com.ycl.platform.domain.vo.DynamicColumnVO; import com.ycl.platform.domain.vo.ReportAuditingRecordVO; import com.ycl.platform.domain.vo.YwPointVO; +import com.ycl.platform.mapper.DynamicColumnMapper; +import com.ycl.platform.mapper.TMonitorMapper; import com.ycl.platform.mapper.YwPeopleMapper; import com.ycl.platform.mapper.YwPointMapper; import com.ycl.platform.service.YwPointService; @@ -34,12 +40,14 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.*; import java.util.concurrent.*; import java.util.function.Consumer; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -53,19 +61,12 @@ public class YwPointServiceImpl extends ServiceImpl<YwPointMapper, YwPoint> implements YwPointService { private final SysDeptMapper sysDeptMapper; - private final YwUnitService unitService; - private final YwPeopleMapper ywPeopleMapper; - - private static final ExecutorService executorService = new ThreadPoolExecutor(8, - 24, - 5000, - TimeUnit.SECONDS, - new ArrayBlockingQueue<>(10), - new ThreadPoolExecutor.CallerRunsPolicy() - ); + private final TMonitorMapper monitorMapper; + private final DynamicColumnMapper dynamicColumnMapper; /** * 娣诲姞 + * * @param form * @return */ @@ -75,7 +76,7 @@ Date now = new Date(); entity.setCreateTime(now); entity.setUpdateTime(now); - if(baseMapper.insert(entity) > 0) { + if (baseMapper.insert(entity) > 0) { return Result.ok("娣诲姞鎴愬姛"); } return Result.error("娣诲姞澶辫触"); @@ -119,6 +120,7 @@ /** * 淇敼 + * * @param form * @return */ @@ -135,12 +137,13 @@ /** * 鎵归噺鍒犻櫎 + * * @param ids * @return */ @Override public Result remove(List<String> ids) { - if(baseMapper.deleteBatchIds(ids) > 0) { + if (baseMapper.deleteBatchIds(ids) > 0) { return Result.ok("鍒犻櫎鎴愬姛"); } return Result.error("鍒犻櫎澶辫触"); @@ -148,12 +151,13 @@ /** * id鍒犻櫎 + * * @param id * @return */ @Override public Result removeById(String id) { - if(baseMapper.deleteById(id) > 0) { + if (baseMapper.deleteById(id) > 0) { return Result.ok("鍒犻櫎鎴愬姛"); } return Result.error("鍒犻櫎澶辫触"); @@ -161,6 +165,7 @@ /** * 鍒嗛〉鏌ヨ + * * @param query * @return */ @@ -173,6 +178,7 @@ /** * 鏍规嵁id鏌ユ壘 + * * @param id * @return */ @@ -189,6 +195,7 @@ /** * 鍒楄〃 + * * @return */ @Override @@ -234,13 +241,71 @@ public void export(YwPointQuery query, HttpServletResponse response) throws IOException { // 瀵煎嚭鏁版嵁 List<PointExport> exportData = baseMapper.export(query); - EasyExcel.write(response.getOutputStream(), PointExport.class) - .sheet("鐐逛綅鏇存崲杩愮淮鍗曚綅") - .doWrite(exportData); + //鑾峰彇鍔ㄦ�佸垪鏁版嵁 + List<String> dynamicsHeaders = dynamicColumnMapper.getHeader("t_yw_point"); + List<DynamicColumnVO> dynamics = dynamicColumnMapper.getData(); + Map<Integer, List<DynamicColumnVO>> dynamicMap = new HashMap<>(); + if (!CollectionUtils.isEmpty(dynamics)) { + dynamicMap = dynamics.stream().filter(vo ->vo.getId()!=null).collect(Collectors.groupingBy(AbsVo::getId)); + } + //瀹氫箟琛ㄥご鍒楄〃 + LinkedHashSet<String> headers = new LinkedHashSet<>(); + headers.add("鐐逛綅鍚嶇О(鍙慨鏀�)"); + headers.add("鍥芥爣鐮�(涓嶅彲淇敼)"); + headers.add("鐐逛綅IP(鍙慨鏀�)"); + headers.add("鏄惁鐪佸巺鏍囩(鍙慨鏀�)"); + headers.add("鏄惁閲嶇偣鎸囨尌鍥惧儚(鍙慨鏀�)"); + headers.add("鏄惁閮ㄧ骇鏍囩(鍙慨鏀�)"); + List<String> headersList = new LinkedList<>(); + if (!CollectionUtils.isEmpty(dynamicsHeaders)) { + //浣跨敤閾捐〃淇濊瘉鍚庣画琛ュ厖鏁版嵁鏃惰幏鍙栨暟鎹『搴忎竴鑷� + headersList.addAll(dynamicsHeaders); + headers.addAll(headersList); + } + // 瀹氫箟鏁版嵁 + List<List<Object>> data = new ArrayList<>(); + for (PointExport export : exportData) { + List<Object> list = new ArrayList<>(); + //闇�瑕佷繚璇侀『搴忎竴鑷� + list.add(export.getPointName()); + list.add(export.getSerialNumber()); + list.add(export.getPointIP()); + list.add(export.getProvinceTagString()); + list.add(export.getImportantCommandImageTagString()); + list.add(export.getDeptTag()); + for (String header : headersList) { + //鍒涘缓涓�涓彉閲忚褰曟壘娌℃壘鍒拌繖涓猦eader + boolean flag = false; + List<DynamicColumnVO> columnVOS = dynamicMap.get(export.getId()); + if (!CollectionUtils.isEmpty(columnVOS)) { + for (DynamicColumnVO columnVO : columnVOS) { + if (header.equals(columnVO.getLabelValue())) { + list.add(columnVO.getColumnValue()); + flag = true; + } + } + } + //娌℃壘鍒扮敤绌轰覆鍗犱綅 + if (!flag) list.add(""); + } + data.add(list); + } + + List<List<String>> headList = new ArrayList<>(); + for (String header : headers) { + headList.add(Collections.singletonList(header)); + } + + EasyExcel.write(response.getOutputStream()) + .head(headList) // 璁剧疆琛ㄥご + .sheet("鐐逛綅鏇存崲杩愮淮鍗曚綅") // 璁剧疆sheet鍚嶇О + .doWrite(data); // 鍐欏叆鏁版嵁 } + @Override - public Result importData(MultipartFile file, Integer unitId, Date startTime, Date endTime, Boolean needUpdateUnit) throws IOException { + public Result importData(MultipartFile file, Integer unitId, Date startTime, Date endTime, Boolean + needUpdateUnit) throws IOException { Consumer<List<PointExport>> consumer = (dataList) -> { try { this.updatePoint(dataList, unitId, startTime, endTime, needUpdateUnit); @@ -250,7 +315,7 @@ e.printStackTrace(); } }; - EasyExcel.read(file.getInputStream(), PointExport.class , new CurrencyDataListener(consumer)).headRowNumber(1).doReadAll(); + EasyExcel.read(file.getInputStream(), PointExport.class, new CurrencyDataListener(consumer)).headRowNumber(1).doReadAll(); return Result.ok(); } @@ -266,7 +331,8 @@ * @param unitId */ @Transactional(rollbackFor = Exception.class) - public void updatePoint(List<PointExport> dataList, Integer unitId, Date startTime, Date endTime, Boolean needUpdateUnit) throws ExecutionException, InterruptedException { + public void updatePoint(List<PointExport> dataList, Integer unitId, Date startTime, Date endTime, Boolean + needUpdateUnit) throws ExecutionException, InterruptedException { if (CollectionUtils.isEmpty(dataList)) { throw new RuntimeException("瀵煎叆鏁版嵁涓嶈兘涓虹┖"); } @@ -294,7 +360,8 @@ this.waitAllFinishAndGetResult(pointList); } - public void waitAllFinishAndGetResult(List<YwPoint> dataList) throws InterruptedException, ExecutionException { + public void waitAllFinishAndGetResult(List<YwPoint> dataList) throws + InterruptedException, ExecutionException { int start = 0; Date startTime = new Date(); while (true) { @@ -324,4 +391,16 @@ } } } + + @Override + public <T extends BaseResult> void setNew(List<T> dataList) { + List<String> gbList = dataList.stream().map(BaseResult::getNo).collect(Collectors.toList()); + Map<String, BaseResult> pointMap = dataList.stream().collect(Collectors.toMap(BaseResult::getNo, item -> item)); + List<String> dbGBList = monitorMapper.getGBbyGB(gbList); + for (String s : gbList) { + BaseResult baseResult = pointMap.get(s); + baseResult.setNewDevice(!dbGBList.contains(s)); + } + } + } -- Gitblit v1.8.0