From fdcdd41fba7874c045766e3dea54d56d70df73ef Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期一, 12 五月 2025 10:06:50 +0800 Subject: [PATCH] (部级录像可用率,重点录像可用率,录像可用率)计算可用率 --- ycl-server/src/main/java/com/ycl/platform/service/impl/DynamicColumnServiceImpl.java | 143 ++++++++++++++++++++++++++++++++--------------- 1 files changed, 96 insertions(+), 47 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/DynamicColumnServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/DynamicColumnServiceImpl.java index 14047f0..42297a4 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/DynamicColumnServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/DynamicColumnServiceImpl.java @@ -1,21 +1,22 @@ package com.ycl.platform.service.impl; -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.ycl.platform.domain.entity.DynamicColumn; import com.ycl.platform.mapper.DynamicColumnMapper; import com.ycl.platform.service.DynamicColumnService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.form.DynamicColumnForm; import com.ycl.platform.domain.vo.DynamicColumnVO; -import com.ycl.platform.domain.query.DynamicColumnQuery; import com.ycl.system.Result; -import com.ycl.system.page.PageUtil; +import com.ycl.utils.uuid.IdUtils; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; -import org.springframework.beans.BeanUtils; -import org.springframework.util.Assert; +import org.springframework.util.StringUtils; +import java.util.Date; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -30,6 +31,10 @@ private final DynamicColumnMapper dynamicColumnMapper; + private final static String TABLE_NAME = "t_yw_point"; + + + /** * 娣诲姞 * @param form @@ -37,36 +42,86 @@ */ @Override public Result add(DynamicColumnForm form) { + Long num = new LambdaQueryChainWrapper<>(baseMapper) + .eq(DynamicColumn::getLabelValue, form.getLabelValue()) + .eq(DynamicColumn::getTableName, TABLE_NAME) + .count(); + if (num > 0) { + throw new RuntimeException("鍒楀悕绉颁笉鑳介噸澶�"); + } DynamicColumn entity = DynamicColumnForm.getEntityByForm(form, null); + entity.setPropName(IdUtils.randomNO(new Date())); + entity.setCreateTime(new Date()); + entity.setTableName(TABLE_NAME); + baseMapper.insert(entity); + return Result.ok("娣诲姞鎴愬姛"); + } + + @Override + public Result addByTableName(String tableName,DynamicColumnForm form) { + Long num = new LambdaQueryChainWrapper<>(baseMapper) + .eq(DynamicColumn::getLabelValue, form.getLabelValue()) + .eq(DynamicColumn::getTableName, tableName) + .count(); + if (num > 0) { + throw new RuntimeException("鍒楀悕绉颁笉鑳介噸澶�"); + } + DynamicColumn entity = DynamicColumnForm.getEntityByForm(form, null); + entity.setPropName(IdUtils.randomNO(new Date())); + entity.setCreateTime(new Date()); + entity.setTableName(tableName); baseMapper.insert(entity); return Result.ok("娣诲姞鎴愬姛"); } /** * 淇敼 - * @param form - * @return + * + * @param columnList@return */ @Override - public Result update(DynamicColumnForm form) { - DynamicColumn entity = baseMapper.selectById(form.getId()); - - // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 - Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); - BeanUtils.copyProperties(form, entity); - baseMapper.updateById(entity); - return Result.ok("淇敼鎴愬姛"); + public Result update(List<DynamicColumnForm> columnList) { + columnList.stream().filter(item -> StringUtils.hasText(item.getLabelValue())).forEach(column -> { + if (Objects.isNull(column.getId())) { + this.add(column); + } else { + Long num = new LambdaQueryChainWrapper<>(baseMapper) + .eq(DynamicColumn::getTableName, TABLE_NAME) + .eq(DynamicColumn::getLabelValue, column.getLabelValue()) + .ne(DynamicColumn::getId, column.getId()) + .count(); + if (num == 0) { + new LambdaUpdateChainWrapper<>(baseMapper) + .eq(DynamicColumn::getId, column.getId()) + .set(DynamicColumn::getLabelValue, column.getLabelValue()) + .update(); + } + } + }); + return Result.ok("淇濆瓨鎴愬姛"); } - /** - * 鎵归噺鍒犻櫎 - * @param ids - * @return - */ @Override - public Result remove(List<String> ids) { - baseMapper.deleteBatchIds(ids); - return Result.ok("鍒犻櫎鎴愬姛"); + public Result updateByTableName(String tableName, List<DynamicColumnForm> columnList) { + columnList.stream().filter(item -> StringUtils.hasText(item.getLabelValue())).forEach(column -> { + if (Objects.isNull(column.getId())) { + this.addByTableName(tableName,column); + } else { + Long num = new LambdaQueryChainWrapper<>(baseMapper) + .eq(DynamicColumn::getTableName, tableName) + .eq(DynamicColumn::getLabelValue, column.getLabelValue()) + .ne(DynamicColumn::getId, column.getId()) + .count(); + if (num == 0) { + new LambdaUpdateChainWrapper<>(baseMapper) + .eq(DynamicColumn::getId, column.getId()) + .set(DynamicColumn::getLabelValue, column.getLabelValue()) + .update(); + } + + } + }); + return Result.ok("淇濆瓨鎴愬姛"); } /** @@ -77,32 +132,10 @@ @Override public Result removeById(String id) { baseMapper.deleteById(id); + //todo 鍒犻櫎瀛楁瀵瑰簲鍊� return Result.ok("鍒犻櫎鎴愬姛"); } - /** - * 鍒嗛〉鏌ヨ - * @param query - * @return - */ - @Override - public Result page(DynamicColumnQuery query) { - IPage<DynamicColumnVO> page = PageUtil.getPage(query, DynamicColumnVO.class); - baseMapper.getPage(page, query); - return Result.ok().data(page.getRecords()).total(page.getTotal()); - } - - /** - * 鏍规嵁id鏌ユ壘 - * @param id - * @return - */ - @Override - public Result detail(Integer id) { - DynamicColumnVO vo = baseMapper.getById(id); - Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); - return Result.ok().data(vo); - } /** * 鍒楄〃 @@ -110,7 +143,23 @@ */ @Override public Result all() { - List<DynamicColumn> entities = baseMapper.selectList(null); + List<DynamicColumn> entities = new LambdaQueryChainWrapper<>(baseMapper) + .orderByAsc(DynamicColumn::getCreateTime) + .eq(DynamicColumn::getTableName,"t_yw_point") + .list(); + List<DynamicColumnVO> vos = entities.stream() + .map(entity -> DynamicColumnVO.getVoByEntity(entity, null)) + .collect(Collectors.toList()); + return Result.ok().data(vos); + } + + + @Override + public Result allByTableName(String tableName) { + List<DynamicColumn> entities = new LambdaQueryChainWrapper<>(baseMapper) + .eq(DynamicColumn::getTableName,tableName) + .orderByAsc(DynamicColumn::getCreateTime) + .list(); List<DynamicColumnVO> vos = entities.stream() .map(entity -> DynamicColumnVO.getVoByEntity(entity, null)) .collect(Collectors.toList()); -- Gitblit v1.8.0