From 9729be1a0b96b422acd1897d01e4966a47f53042 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期四, 07 三月 2024 13:41:17 +0800 Subject: [PATCH] 交通指数配置 --- dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java | 86 ++++++++++++++++++++++++++++++------------- 1 files changed, 60 insertions(+), 26 deletions(-) diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java index 81e9c66..f473ee3 100644 --- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java +++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java @@ -1,41 +1,45 @@ package org.dromara.demo.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.demo.domain.RsSceneryInfo; +import org.dromara.demo.domain.RsSceneryOperationData; import org.dromara.demo.domain.bo.RsSceneryOperationDataBo; import org.dromara.demo.domain.vo.RsSceneryOperationDataVo; -import org.dromara.demo.domain.RsSceneryOperationData; +import org.dromara.demo.mapper.RsSceneryInfoMapper; import org.dromara.demo.mapper.RsSceneryOperationDataMapper; import org.dromara.demo.service.IRsSceneryOperationDataService; +import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 鏅尯杩愯鏁版嵁Service涓氬姟灞傚鐞� * - * @author Lion Li - * @date 2024-02-27 + * @author gonghl + * @date 2024-03-05 */ @RequiredArgsConstructor @Service public class RsSceneryOperationDataServiceImpl implements IRsSceneryOperationDataService { private final RsSceneryOperationDataMapper baseMapper; + private final RsSceneryInfoMapper sceneryInfoMapper; /** * 鏌ヨ鏅尯杩愯鏁版嵁 */ @Override - public RsSceneryOperationDataVo queryById(Long id){ + public RsSceneryOperationDataVo queryById(String id){ return baseMapper.selectVoById(id); } @@ -61,17 +65,10 @@ private LambdaQueryWrapper<RsSceneryOperationData> buildQueryWrapper(RsSceneryOperationDataBo bo) { Map<String, Object> params = bo.getParams(); LambdaQueryWrapper<RsSceneryOperationData> lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getPeriodYear() != null, RsSceneryOperationData::getPeriodYear, bo.getPeriodYear()); - lqw.eq(bo.getPeriodMonth() != null, RsSceneryOperationData::getPeriodMonth, bo.getPeriodMonth()); - lqw.eq(bo.getCarFlowNum() != null, RsSceneryOperationData::getCarFlowNum, bo.getCarFlowNum()); - lqw.eq(bo.getPersonFlowNum() != null, RsSceneryOperationData::getPersonFlowNum, bo.getPersonFlowNum()); - lqw.eq(bo.getVisitorSubNum() != null, RsSceneryOperationData::getVisitorSubNum, bo.getVisitorSubNum()); - lqw.eq(bo.getEnterGardenNum() != null, RsSceneryOperationData::getEnterGardenNum, bo.getEnterGardenNum()); - lqw.eq(bo.getOnPolice() != null, RsSceneryOperationData::getOnPolice, bo.getOnPolice()); - lqw.eq(bo.getOnPaddyWagon() != null, RsSceneryOperationData::getOnPaddyWagon, bo.getOnPaddyWagon()); - lqw.eq(bo.getStandbyPolice() != null, RsSceneryOperationData::getStandbyPolice, bo.getStandbyPolice()); + lqw.like(StringUtils.isNotBlank(bo.getSceneryInfoName()), RsSceneryOperationData::getSceneryInfoName, bo.getSceneryInfoName()); + lqw.eq(StringUtils.isNotBlank(bo.getPeriodDate()), RsSceneryOperationData::getPeriodDate, bo.getPeriodDate()); lqw.eq(bo.getStatus() != null, RsSceneryOperationData::getStatus, bo.getStatus()); - lqw.eq(bo.getScId() != null, RsSceneryOperationData::getScId, bo.getScId()); + lqw.orderByDesc(RsSceneryOperationData::getCreateTime); return lqw; } @@ -86,6 +83,12 @@ if (flag) { bo.setId(add.getId()); } + // 鍚敤鏂版暟鎹皢鍏朵綑鍚岀被鍨嬫暟鎹敼涓虹鐢� + if (bo.getStatus().equals(1L)) { + LambdaUpdateWrapper<RsSceneryOperationData> updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.ne(RsSceneryOperationData::getId, bo.getId()).eq(RsSceneryOperationData::getSceneryInfoId, bo.getSceneryInfoId()).set(RsSceneryOperationData::getStatus, 2); + baseMapper.update(updateWrapper); + } return flag; } @@ -95,7 +98,12 @@ @Override public Boolean updateByBo(RsSceneryOperationDataBo bo) { RsSceneryOperationData update = MapstructUtils.convert(bo, RsSceneryOperationData.class); - validEntityBeforeSave(update); + // 鍚敤鏂版暟鎹皢鍏朵綑鍚岀被鍨嬫暟鎹敼涓虹鐢� + if (bo.getStatus().equals(1L)) { + LambdaUpdateWrapper<RsSceneryOperationData> updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.ne(RsSceneryOperationData::getId, bo.getId()).eq(RsSceneryOperationData::getSceneryInfoId, bo.getSceneryInfoId()).set(RsSceneryOperationData::getStatus, 2); + baseMapper.update(updateWrapper); + } return baseMapper.updateById(update) > 0; } @@ -103,17 +111,43 @@ * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙 */ private void validEntityBeforeSave(RsSceneryOperationData entity){ - //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫 + entity.setCreateTime(new Date()); } /** * 鎵归噺鍒犻櫎鏅尯杩愯鏁版嵁 */ @Override - public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { + public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { if(isValid){ //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠� } return baseMapper.deleteBatchIds(ids) > 0; } + + @Override + public String importExcel(List<RsSceneryOperationData> list) { + Set<String> sceneryInfoNames = new HashSet<>(); + // 鏌ヨ鏁版嵁搴撴槸鍚﹀瓨鍦ㄥ鍏ョ殑鏅尯 + Map<String, RsSceneryInfo> sceneryInfoMap = sceneryInfoMapper.selectList().stream() + .collect(Collectors.toMap(RsSceneryInfo::getSceneryName, Function.identity())); + for (RsSceneryOperationData operationData : list) { + String sceneryName = operationData.getSceneryInfoName(); + RsSceneryInfo sceneryInfo = sceneryInfoMap.get(sceneryName); + // 鏅尯宸插瓨鍦紝姝e父瀵煎叆锛岄粯璁ょ鐢� + if (sceneryInfo != null) { + operationData.setSceneryInfoId(sceneryInfo.getId()); + operationData.setPeriod(operationData.getPeriodDate().length() > 4 ? 1L : 2L); + operationData.setCreateTime(new Date()); + operationData.setStatus(2L); + } else { + sceneryInfoNames.add(operationData.getSceneryInfoName()); + } + } + if (!sceneryInfoNames.isEmpty()) { + return "寰堟姳姝夛紝瀵煎叆澶辫触锛�" + String.join("銆�", "<" + sceneryInfoNames + ">") + "鏅尯涓嶅瓨鍦紝璇峰墠寰�銆愭櫙鍖洪厤缃�戞坊鍔犲悗閲嶈瘯锛�"; + } + baseMapper.insertBatch(list); + return "鎭枩鎮紝鏁版嵁宸插叏閮ㄥ鍏ユ垚鍔燂紒鍏�" + list.size() + "鏉★紒"; + } } -- Gitblit v1.8.0