From 5d36e1f987ef21e44ded2e8a1d06c28094ec1e76 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期六, 19 四月 2025 12:39:47 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java | 357 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 183 insertions(+), 174 deletions(-) diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java index f18caeb..7a2cc00 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java @@ -9,17 +9,21 @@ import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.model.domain.EnergyIndexQuery; +import com.zhitan.model.domain.vo.ModelNodeIndexInfo; import com.zhitan.model.service.IEnergyIndexService; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * 鎸囨爣淇℃伅Controller @@ -31,194 +35,199 @@ @RequestMapping("/basicsetting/energyindex") public class EnergyIndexController extends BaseController { - @Autowired - private IEnergyIndexService energyIndexService; + @Autowired + private IEnergyIndexService energyIndexService; - /** - * 鏌ヨ鎸囨爣淇℃伅鍒楄〃 - */ - @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')") - @GetMapping("/list") - public TableDataInfo list(EnergyIndex energyIndex, @RequestParam Long pageNum, @RequestParam Long pageSize) { - EnergyIndexQuery query = new EnergyIndexQuery(energyIndex.getNodeId(), energyIndex.getName(), - energyIndex.getIndexCategory(), energyIndex.getIndexType()); - Page<EnergyIndex> list = energyIndexService.selectEnergyIndexPage(query,pageNum,pageSize); - return getDataTable(list); - } - - /** - * 鏌ヨ鎸囨爣淇℃伅鍒楄〃 - */ - @GetMapping("/filter") - public AjaxResult filter(EnergyIndexQuery query) { - List<EnergyIndex> list = energyIndexService.selectEnergyIndexList(query); - return AjaxResult.success(list); - } - - /** - * 鏌ヨ鎸囨爣淇℃伅鍒楄〃 - */ - @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')") - @GetMapping("/collectIndex") - public TableDataInfo listCollectIndex(String deviceId) { - startPage(); - List<EnergyIndex> list = energyIndexService.selectCollectIndex(deviceId); - return getDataTable(list); - } - - /** - * 瀵煎嚭鎸囨爣淇℃伅鍒楄〃 - */ - @PreAuthorize("@ss.hasPermi('energyindex:energyindex:export')") - @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.EXPORT) - @GetMapping("/export") - public AjaxResult export(EnergyIndex energyIndex) { - List<EnergyIndex> list = energyIndexService.selectEnergyIndexList(energyIndex); - ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class); - return util.exportExcel(list, "energyindex"); - } - - /** - * 鑾峰彇鎸囨爣淇℃伅璇︾粏淇℃伅 - */ - @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')") - @GetMapping(value = "/{indexId}") - public AjaxResult getInfo(@PathVariable("indexId") String indexId) { - return AjaxResult.success(energyIndexService.selectEnergyIndexById(indexId)); - } - - /** - * 鏂板鎸囨爣淇℃伅 - */ - @PreAuthorize("@ss.hasPermi('energyindex:energyindex:add')") - @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.INSERT) - @PostMapping(value = "/{nodeId}") - public AjaxResult add(@PathVariable("nodeId") String nodeId, - @RequestBody EnergyIndex energyIndex) { - boolean isExist = energyIndexService.energyIndexHasExist(energyIndex.getCode()); - if (isExist) { - return AjaxResult.error("鎸囨爣缂栫爜涓嶈兘閲嶅锛�"); - } else { - energyIndex.setIndexId(UUID.randomUUID().toString()); - energyIndexService.insertEnergyIndex(nodeId, energyIndex); - return AjaxResult.success(); - } - } - - /** - * 淇敼鎸囨爣淇℃伅 - */ - @PreAuthorize("@ss.hasPermi('energyindex:energyindex:edit')") - @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody EnergyIndex energyIndex) { - boolean isExist = energyIndexService - .energyIndexHasExist(energyIndex.getIndexId(), energyIndex.getCode()); - if (isExist) { - return AjaxResult.error("鎸囨爣缂栫爜涓嶈兘閲嶅锛�"); - } else { - return toAjax(energyIndexService.updateEnergyIndex(energyIndex)); - } - } - - /** - * 鍒犻櫎鎸囨爣淇℃伅 - */ - @PreAuthorize("@ss.hasPermi('energyindex:energyindex:remove')") - @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.DELETE) - @DeleteMapping("/{nodeId}/{indexIds}") - public AjaxResult remove(@PathVariable String nodeId, @PathVariable String[] indexIds) { - List<EnergyIndex> energyIndexList = energyIndexService.getEnergyIndexByIds( - Arrays.asList(indexIds)); - List<String> deleteIds = energyIndexList.stream() - .filter(f -> StringUtils.isBlank(f.getMeterId())) - .map(EnergyIndex::getIndexId) - .collect(Collectors.toList()); /** - * 澶勭悊鑳芥簮鎸囨爣鍒楄〃骞剁敓鎴愰渶瑕佺Щ闄ょ殑鎸囨爣ID闆嗗悎 - * 1. 杩囨护鍑簃eterId闈炵┖鐨勮兘婧愭寚鏍囧璞� - * 2. 鎻愬彇杩欎簺瀵硅薄鐨刬ndexId瀛楁 - * 3. 灏嗘彁鍙栫殑鎸囨爣ID鏀堕泦鍒板瓧绗︿覆闆嗗悎涓� + * 鏌ヨ鎸囨爣淇℃伅鍒楄〃 */ - List<String> removeLink = energyIndexList.stream() - .filter(f -> StringUtils.isNotBlank(f.getMeterId())) - .map(EnergyIndex::getIndexId) - .collect(Collectors.toList()); - - if (!removeLink.isEmpty()) { - energyIndexService.removeNodeIndex(nodeId, removeLink); + @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')") + @GetMapping("/list") + public TableDataInfo list(EnergyIndex energyIndex, @RequestParam Long pageNum, @RequestParam Long pageSize) { + EnergyIndexQuery query = new EnergyIndexQuery(energyIndex.getNodeId(), energyIndex.getName(), + energyIndex.getIndexCategory(), energyIndex.getIndexType()); + Page<EnergyIndex> list = energyIndexService.selectEnergyIndexPage(query, pageNum, pageSize); + return getDataTable(list); } - if (!deleteIds.isEmpty()) { - energyIndexService.deleteEnergyIndexByIds(nodeId, deleteIds.toArray(new String[0])); + /** + * 鏌ヨ鎸囨爣淇℃伅鍒楄〃 + */ + @GetMapping("/filter") + public AjaxResult filter(EnergyIndexQuery query) { + List<EnergyIndex> list = energyIndexService.selectEnergyIndexList(query); + return AjaxResult.success(list); } - return AjaxResult.success(); - } - /** - * 鏂板閫氳繃id鍒犻櫎閲囬泦鐐规帴鍙� - */ - @PreAuthorize("@ss.hasPermi('energyindex:energyindex:remove')") - @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.DELETE) - @DeleteMapping("/{indexId}") - public AjaxResult deleteCollectIndex(@PathVariable String indexId) { - return toAjax(energyIndexService.deleteByIndexId(indexId)); - } - - @Log(title = "澧炲姞璁¢噺鍣ㄥ叿閲囬泦鐐�", businessType = BusinessType.INSERT) - @PostMapping("/meterIndex/{meterId}") - public AjaxResult addCollectIndex(@PathVariable("meterId") String meterId) { - try { - return energyIndexService.addMeterIndex(meterId); - } catch (Exception ex) { - logger.error("鍒涘缓璁¢噺鍣ㄥ叿閲囬泦鐐瑰け璐ワ紒", ex); - return AjaxResult.error(); + /** + * 鏌ヨ鎸囨爣淇℃伅鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')") + @GetMapping("/collectIndex") + public TableDataInfo listCollectIndex(String deviceId) { + startPage(); + List<EnergyIndex> list = energyIndexService.selectCollectIndex(deviceId); + return getDataTable(list); } - } - @GetMapping("/meterIndex/{meterId}") - public AjaxResult getDeviceCollectIndex(@PathVariable("meterId") String meterId) { - return AjaxResult.success(energyIndexService.getMeterIndex(meterId)); - } - - @GetMapping("/includeChildrenNode/{nodeId}") - public AjaxResult getIndexByNodeAndChildrenNode(@PathVariable("nodeId") String nodeId) { - try { - return AjaxResult.success(energyIndexService.getIndexByNodeAndChildrenNode(nodeId)); - } catch (Exception ex) { - logger.error("鑾峰彇鍏宠仈閲囬泦鎸囨爣鍑洪敊锛�", ex); - return AjaxResult.error("鑾峰彇鍏宠仈鎸囨爣鍑洪敊!"); + /** + * 瀵煎嚭鎸囨爣淇℃伅鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('energyindex:energyindex:export')") + @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(EnergyIndex energyIndex) { + List<EnergyIndex> list = energyIndexService.selectEnergyIndexList(energyIndex); + ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class); + return util.exportExcel(list, "energyindex"); } - } - @GetMapping("/includeChildrenNode/search") - public AjaxResult searchIndexByNodeAndChildrenNode(String nodeId, String filter) { - try { - return AjaxResult - .success(energyIndexService.searchIndexByNodeAndChildrenNode(nodeId, filter)); - } catch (Exception ex) { - logger.error("鑾峰彇鍏宠仈閲囬泦鎸囨爣鍑洪敊锛�", ex); - return AjaxResult.error("鑾峰彇鍏宠仈鎸囨爣鍑洪敊!"); + /** + * 鑾峰彇鎸囨爣淇℃伅璇︾粏淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')") + @GetMapping(value = "/{indexId}") + public AjaxResult getInfo(@PathVariable("indexId") String indexId) { + return AjaxResult.success(energyIndexService.selectEnergyIndexById(indexId)); } - } - @GetMapping("/importTemplate") - public AjaxResult importTemplate() { - ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class); - return util.importTemplateExcel("鎸囨爣鏁版嵁"); - } + /** + * 鏂板鎸囨爣淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('energyindex:energyindex:add')") + @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.INSERT) + @PostMapping(value = "/{nodeId}") + public AjaxResult add(@PathVariable("nodeId") String nodeId, + @RequestBody EnergyIndex energyIndex) { + boolean isExist = energyIndexService.energyIndexHasExist(energyIndex.getCode()); + if (isExist) { + return AjaxResult.error("鎸囨爣缂栫爜涓嶈兘閲嶅锛�"); + } else { + energyIndex.setIndexId(UUID.randomUUID().toString()); + energyIndexService.insertEnergyIndex(nodeId, energyIndex); + return AjaxResult.success(); + } + } - @PostMapping("/importData") - public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { - ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class); - List<EnergyIndex> energyIndexList = util.importExcel(file.getInputStream()); - return energyIndexService.importEnergyIndex(energyIndexList, updateSupport); - } + /** + * 淇敼鎸囨爣淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('energyindex:energyindex:edit')") + @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody EnergyIndex energyIndex) { + boolean isExist = energyIndexService + .energyIndexHasExist(energyIndex.getIndexId(), energyIndex.getCode()); + if (isExist) { + return AjaxResult.error("鎸囨爣缂栫爜涓嶈兘閲嶅锛�"); + } else { + return toAjax(energyIndexService.updateEnergyIndex(energyIndex)); + } + } + + /** + * 鍒犻櫎閲囬泦鎸囨爣淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('energyindex:energyindex:remove')") + @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.DELETE) + @DeleteMapping("/{indexIds}") + public AjaxResult remove(@PathVariable String[] indexIds) { + + List<String> indexIdList = Arrays.asList(indexIds); + if (ObjectUtils.isEmpty(indexIdList)) { + return AjaxResult.success(); + } + // 鏌ヨ妯″瀷鑺傜偣鐐逛綅淇℃伅 + List<ModelNodeIndexInfo> modelNodeIndexInfoList = energyIndexService.getModelNodeIndexInfoListByIndexIds(indexIds); + if (ObjectUtils.isNotEmpty(modelNodeIndexInfoList)) { + ModelNodeIndexInfo modelNodeIndexInfo = modelNodeIndexInfoList.stream().findFirst().get(); + return AjaxResult.error("閲囬泦鎸囨爣 " + modelNodeIndexInfo.getIndexName() + " 宸茶妯″瀷 " + modelNodeIndexInfo.getModelName() + " 鍏宠仈锛屼笉鑳藉垹闄わ紒"); + } + + energyIndexService.removeEnergyIndex(indexIdList); + + return AjaxResult.success(); + } + + /** + * 鍒犻櫎缁熻鎸囨爣淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('energyindex:energyindex:remove')") + @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.DELETE) + @DeleteMapping("{nodeId}/{indexIds}") + public AjaxResult remove(@PathVariable String nodeId, @PathVariable String[] indexIds) { + + List<String> indexIdList = Arrays.asList(indexIds); + if (ObjectUtils.isEmpty(indexIdList)) { + return AjaxResult.success(); + } + // 鏌ヨ妯″瀷鑺傜偣鐐逛綅淇℃伅 + List<ModelNodeIndexInfo> modelNodeIndexInfoList = energyIndexService.getModelNodeIndexInfoListByIndexIds(indexIds); + if (ObjectUtils.isNotEmpty(modelNodeIndexInfoList)) { + if(modelNodeIndexInfoList.size() > 1){ + return AjaxResult.error("璇ョ粺璁℃寚鏍囧凡琚叾浠栨ā鍨嬪叧鑱旓紝涓嶈兘鍒犻櫎锛�"); + } + } + + energyIndexService.removeEnergyIndex(indexIdList); + + return AjaxResult.success(); + } + + @Log(title = "澧炲姞璁¢噺鍣ㄥ叿閲囬泦鐐�", businessType = BusinessType.INSERT) + @PostMapping("/meterIndex/{meterId}") + public AjaxResult addCollectIndex(@PathVariable("meterId") String meterId) { + try { + return energyIndexService.addMeterIndex(meterId); + } catch (Exception ex) { + logger.error("鍒涘缓璁¢噺鍣ㄥ叿閲囬泦鐐瑰け璐ワ紒", ex); + return AjaxResult.error(); + } + } + + @GetMapping("/meterIndex/{meterId}") + public AjaxResult getDeviceCollectIndex(@PathVariable("meterId") String meterId) { + return AjaxResult.success(energyIndexService.getMeterIndex(meterId)); + } + + @GetMapping("/includeChildrenNode/{nodeId}") + public AjaxResult getIndexByNodeAndChildrenNode(@PathVariable("nodeId") String nodeId) { + try { + return AjaxResult.success(energyIndexService.getIndexByNodeAndChildrenNode(nodeId)); + } catch (Exception ex) { + logger.error("鑾峰彇鍏宠仈閲囬泦鎸囨爣鍑洪敊锛�", ex); + return AjaxResult.error("鑾峰彇鍏宠仈鎸囨爣鍑洪敊!"); + } + } + + @GetMapping("/includeChildrenNode/search") + public AjaxResult searchIndexByNodeAndChildrenNode(String nodeId, String filter) { + try { + return AjaxResult + .success(energyIndexService.searchIndexByNodeAndChildrenNode(nodeId, filter)); + } catch (Exception ex) { + logger.error("鑾峰彇鍏宠仈閲囬泦鎸囨爣鍑洪敊锛�", ex); + return AjaxResult.error("鑾峰彇鍏宠仈鎸囨爣鍑洪敊!"); + } + } + + @GetMapping("/importTemplate") + public AjaxResult importTemplate() { + ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class); + return util.importTemplateExcel("鎸囨爣鏁版嵁"); + } + + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { + ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class); + List<EnergyIndex> energyIndexList = util.importExcel(file.getInputStream()); + return energyIndexService.importEnergyIndex(energyIndexList, updateSupport); + } - @GetMapping("/getIndexByCode") - public AjaxResult getIndexByCode(String code,String nodeId) { - List<EnergyIndex> energyIndexList = energyIndexService.getIndexByCode(code,nodeId); - return AjaxResult.success(energyIndexList); - } + @GetMapping("/getIndexByCode") + public AjaxResult getIndexByCode(String code, String nodeId) { + List<EnergyIndex> energyIndexList = energyIndexService.getIndexByCode(code, nodeId); + return AjaxResult.success(energyIndexList); + } } -- Gitblit v1.9.3