From a28ca3f36d0ace05966a8c0fac1e4b5fe921f882 Mon Sep 17 00:00:00 2001 From: houzhongjian <houzhongyi@126.com> Date: 星期三, 30 十月 2024 16:25:12 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java | 129 ++++++++++++++++++++++++++++++++++++------ 1 files changed, 109 insertions(+), 20 deletions(-) diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java index b410b7f..fee2663 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java @@ -1,10 +1,19 @@ package com.iailab.module.data.point.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; +import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.annotations.VisibleForTesting; +import com.iailab.framework.common.exception.ServiceException; import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.util.object.BeanUtils; import com.iailab.framework.common.util.object.ConvertUtils; +import com.iailab.framework.datapermission.core.util.DataPermissionUtils; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; import com.iailab.module.data.common.enums.CommonConstant; import com.iailab.module.data.common.enums.IsEnableEnum; import com.iailab.module.data.point.common.IncreaseCodeEnum; @@ -12,19 +21,27 @@ import com.iailab.module.data.point.dao.DaPointDao; import com.iailab.module.data.point.dto.DaMeasurePointDTO; import com.iailab.module.data.point.dto.DaPointDTO; +import com.iailab.module.data.point.entity.DaMeasurePointEntity; import com.iailab.module.data.point.entity.DaPointEntity; import com.iailab.module.data.point.service.DaMathPointService; import com.iailab.module.data.point.service.DaMeasurePointService; import com.iailab.module.data.point.service.DaPointService; import com.iailab.module.data.point.service.DaSequenceNumService; -import com.iailab.module.data.point.vo.DaPointPageReqVO; -import org.apache.commons.lang3.StringUtils; +import com.iailab.module.data.point.vo.*; +import com.iailab.module.infra.api.config.ConfigApi; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; + import javax.annotation.Resource; import java.util.*; + +import com.iailab.module.data.enums.ErrorCodeConstants; + +import static com.iailab.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.iailab.module.data.enums.ErrorCodeConstants.*; /** * @author lirm @@ -46,10 +63,13 @@ @Resource private DaPointDao daPointDao; + @Resource + private ConfigApi configApi; @Override - public PageResult<DaPointEntity> queryPage(DaPointPageReqVO reqVO) { - return daPointDao.selectPage(reqVO); + public PageResult<DaPointDTO> queryPage(DaPointPageReqVO reqVO) { + IPage<DaPointDTO> page = daPointDao.selectPageList(reqVO); + return new PageResult<DaPointDTO>(page.getRecords(), page.getTotal()); } @Override @@ -71,26 +91,35 @@ } @Override + public DaPointDTO getSimpleInfoById(String id) { + return ConvertUtils.sourceToTarget(daPointDao.selectById(id), DaPointDTO.class); + } + + @Override + public DaPointDTO getSimpleInfoByNo(String no) { + QueryWrapper<DaPointEntity> queryWrapper = new QueryWrapper(); + queryWrapper.eq("pointNo", no); + return ConvertUtils.sourceToTarget(daPointDao.selectOne(queryWrapper), DaPointDTO.class); + } + + @Override public List<DaPointDTO> list(Map<String, Object> params) { - String page = (String) params.get("page"); - String limit = (String) params.get("limit"); - String pointType = (String)params.get("pointType"); + Object pointType = params.get("pointType"); List<String> pointNos = new ArrayList<>(); if (params.get("pointNos") != null) { pointNos = JSONArray.parseArray(JSONArray.toJSONString(params.get("pointNos")), String.class); } - String pointNoLike = (String)params.get("pointNoLike"); + Object pointNoLike = params.get("pointNoLike"); QueryWrapper<DaPointEntity> queryWrapper = new QueryWrapper(); - queryWrapper.eq(StringUtils.isNotBlank(pointType), "point_type", pointType) - .in(!CollectionUtils.isEmpty(pointNos),"point_no", pointNos) - .like(StringUtils.isNotBlank(pointNoLike), "point_no", pointNoLike) - .last("limit 1, 10"); + queryWrapper.eq(!ObjectUtils.isEmpty(pointType), "point_type", pointType); + queryWrapper.in(pointNos.size() != 0,"point_no", pointNos); + queryWrapper.like(!ObjectUtils.isEmpty(pointNoLike), "point_no", pointNoLike); List<DaPointEntity> list = daPointDao.selectList(queryWrapper); return ConvertUtils.sourceToTarget(list, DaPointDTO.class); } @Override - @Transactional(rollbackFor = Exception.class) + @DSTransactional(rollbackFor = Exception.class) public void add(DaPointDTO dataPoint) { DaPointEntity daPointEntity = ConvertUtils.sourceToTarget(dataPoint, DaPointEntity.class); daPointEntity.setId(UUID.randomUUID().toString()); @@ -113,7 +142,7 @@ } @Override - @Transactional(rollbackFor = Exception.class) + @DSTransactional(rollbackFor = Exception.class) public void update(DaPointDTO dataPoint) { DaPointEntity daPointEntity = ConvertUtils.sourceToTarget(dataPoint, DaPointEntity.class); daPointEntity.setUpdateTime(new Date()); @@ -124,17 +153,17 @@ measurePoint.setSourceId(dataPoint.getSourceOption().get(1)); measurePoint.setTagNo(dataPoint.getSourceOption().get(2)); daMeasurePointService.update(measurePoint); - } else if (PointTypeEnum.CALCULATE_POINT.equals(dataPoint.getPointType())) { + } else if (PointTypeEnum.CALCULATE_POINT.getName().equals(dataPoint.getPointType())) { daMathPointService.update(dataPoint.getMathPoint()); } } @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - daPointDao.deleteBatchIds(Arrays.asList(ids)); - daMeasurePointService.deleteByPoint(ids); - daMathPointService.deleteByPoint(ids); + @DSTransactional(rollbackFor = Exception.class) + public void delete(String[] id) { + daPointDao.deleteBatchIds(Arrays.asList(id)); + daMeasurePointService.deleteByPoint(id); + daMathPointService.deleteByPoint(id); } @Override @@ -229,6 +258,66 @@ } @Override + @DSTransactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入 + public PointImportRespVO importPointList(List<PointImportExcelVO> importPoints, boolean isUpdateSupport) { + // 1.1 参数校验 + if (CollUtil.isEmpty(importPoints)) { + throw exception(POINT_IMPORT_LIST_IS_EMPTY); + } + + // 2. 遍历,逐个创建 or 更新 + PointImportRespVO respVO = PointImportRespVO.builder().createPointnames(new ArrayList<>()) + .updatePointnames(new ArrayList<>()).failurePointnames(new LinkedHashMap<>()).build(); + importPoints.forEach(importPoint -> { + + // 判断如果不存在,再进行插入 + DaPointEntity existPoint = baseMapper.selectByPointName(importPoint.getPointName()); + if (existPoint == null) { + + DaPointEntity daPointEntity = ConvertUtils.sourceToTarget(importPoint, DaPointEntity.class); + daPointEntity.setId(UUID.randomUUID().toString()); + DaMeasurePointDTO measurePoint = new DaMeasurePointDTO(); + measurePoint.setSourceType(importPoint.getSourceType()); + measurePoint.setSourceId(importPoint.getSourceId()); + measurePoint.setTagNo(importPoint.getTagNo()); + daPointEntity.setPointNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.POINT_M.name())); + daPointEntity.setIsEnable(CommonConstant.IS_ENABLE); + daPointEntity.setCreateTime(new Date()); + + daMeasurePointService.add(measurePoint, daPointEntity.getId()); + daPointDao.insert(daPointEntity); + + respVO.getCreatePointnames().add(importPoint.getPointName()); + return; + } + + // 如果存在,判断是否允许更新 + if (!isUpdateSupport) { + respVO.getFailurePointnames().put(importPoint.getPointName(), POINT_EXISTS.getMsg()); + return; + } + + DaPointEntity updatePoint = BeanUtils.toBean(importPoint, DaPointEntity.class); + updatePoint.setId(existPoint.getId()); + baseMapper.updateById(updatePoint); + DaMeasurePointEntity measurePoint = new DaMeasurePointEntity(); + measurePoint.setSourceType(importPoint.getSourceType()); + measurePoint.setSourceId(importPoint.getSourceId()); + measurePoint.setTagNo(importPoint.getTagNo()); + daMeasurePointService.update(measurePoint, new QueryWrapper<DaMeasurePointEntity>().eq("point_id",updatePoint.getId())); + respVO.getUpdatePointnames().add(importPoint.getPointName()); + }); + return respVO; + } + + @Override + public PageResult<DaPointEntity> queryExcelList(DaPointPageReqVO exportReqVO) { + + return daPointDao.selectExcelList(exportReqVO); + + } + + @Override public void enableByIds(String[] ids) { if (CollectionUtils.isEmpty(Arrays.asList(ids))) { return; -- Gitblit v1.9.3