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