From 7156119e51320afd0ffdd0723cd983fd415d61d9 Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期四, 26 九月 2024 11:17:34 +0800 Subject: [PATCH] fix : 新增修改车数日志 --- src/main/java/com/boying/controller/BarrierController.java | 74 ++++++++++++++++++++++++++++++++++--- 1 files changed, 68 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/boying/controller/BarrierController.java b/src/main/java/com/boying/controller/BarrierController.java index 473bb8f..92fc67a 100644 --- a/src/main/java/com/boying/controller/BarrierController.java +++ b/src/main/java/com/boying/controller/BarrierController.java @@ -2,14 +2,19 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.boying.common.R; import com.boying.entity.Barrier; +import com.boying.entity.BarrierOpenLog; import com.boying.entity.OutPark; +import com.boying.service.BarrierOpenLogService; import com.boying.service.BarrierService; import com.boying.service.OutParkService; import com.boying.service.ParkService; import com.boying.util.RedisJsonUtil; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.PostMapping; @@ -19,20 +24,25 @@ import java.io.IOException; import java.time.LocalDateTime; import java.time.ZoneOffset; -import java.util.List; +import java.time.temporal.ChronoUnit; +import java.util.*; +import java.util.stream.Collectors; @RestController @RequestMapping("ffzf/barrier") @RequiredArgsConstructor +@Tag(description = "ffzf/barrier" , name = "閬撻椄鎺ュ彛" ) public class BarrierController { private final BarrierService barrierService; + private final BarrierOpenLogService barrierOpenLogService; private final OutParkService outParkService; private final ParkService parkService; - private StringRedisTemplate redisTemplate; + private final StringRedisTemplate redisTemplate; @PostMapping("findPage") + @Operation(summary = "鏍规嵁鍋滆溅鍦哄垎椤垫煡璇㈤亾闂�" , description = "鏍规嵁鍋滆溅鍦哄垎椤垫煡璇㈤亾闂�" ) public Object findPage(Page page, String parkId) { QueryWrapper<Barrier> wrapper = new QueryWrapper<>(); wrapper.lambda() @@ -40,9 +50,8 @@ Page page1 = barrierService.page(page, wrapper); List<Barrier> records = page1.getRecords(); for(Barrier barrier:records){ - long l = System.currentTimeMillis() - barrier.getUpdateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli(); - System.out.println(l); - if(l>25000){ + long between = ChronoUnit.SECONDS.between(barrier.getUpdateTime(), LocalDateTime.now()); + if(between>121){ barrier.setStatus(1); } } @@ -51,6 +60,7 @@ } @PostMapping("save") + @Operation(summary = "鏂板閬撻椄" , description = "鏂板閬撻椄" ) public Object save(Barrier barrier) { barrier.setUpdateTime(LocalDateTime.now()); barrierService.saveOrUpdate(barrier); @@ -64,6 +74,7 @@ } @PostMapping("delete") + @Operation(summary = "鍒犻櫎閬撻椄" , description = "鍒犻櫎閬撻椄" ) public Object delete(Integer id) { Barrier byId = barrierService.getById(id); barrierService.removeById(id); @@ -72,6 +83,7 @@ } @PostMapping("findAll") + @Operation(summary = "鏌ヨ鎵�鏈夐亾闂革紙APP锛�" , description = "鏌ヨ鎵�鏈夐亾闂革紙APP锛�" ) public Object findAll(Long parkId) { if (parkId==null) { return R.failed("鏈彂鐜拌鍋滆溅鍦�"); @@ -83,6 +95,7 @@ } @PostMapping("open") + @Operation(summary = "鎵嬪姩寮�闂革紙搴熷純锛�" , description = "鎵嬪姩寮�闂革紙搴熷純锛�" ) public Object open(Long barrierId) { Barrier b= barrierService.getById(barrierId); if (b==null) { @@ -101,6 +114,7 @@ } @PostMapping("getByCode") + @Operation(summary = "鏍规嵁code鏌ヨ閬撻椄" , description = "鏍规嵁code鏌ヨ閬撻椄" ) public Object getByCode(String code) { Barrier b= barrierService.findByCode2(code); if (b==null) { @@ -113,7 +127,8 @@ @PostMapping("openBarrier") - public Object openBarrier(Long barrierId,Integer type) { + @Operation(summary = "鎵嬫寔鎵嬪姩寮�闂�" , description = "鎵嬫寔鎵嬪姩寮�闂�" ) + public Object openBarrier(Long barrierId,Integer type,String carNo,String remark) { Barrier b= barrierService.getById(barrierId); if (b==null) { return R.failed("鏈壘鍒拌閬撻椄"); @@ -127,6 +142,12 @@ try { String jsonValue = JSON.toJSONString(b); redisTemplate.opsForValue().set("barrier-"+b.getCode(), jsonValue); + BarrierOpenLog barrierOpenLog = new BarrierOpenLog(); + barrierOpenLog.setCarNo(carNo); + barrierOpenLog.setRemark(remark); + barrierOpenLog.setParkId(b.getParkId()); + barrierOpenLog.setType(b.getType()); + barrierOpenLogService.save(barrierOpenLog); } catch (Exception e) { e.printStackTrace(); } @@ -148,6 +169,12 @@ try { String jsonValue = JSON.toJSONString(b); redisTemplate.opsForValue().set("barrier-"+b.getCode(), jsonValue); + BarrierOpenLog barrierOpenLog = new BarrierOpenLog(); + barrierOpenLog.setCarNo(carNo); + barrierOpenLog.setRemark(remark); + barrierOpenLog.setParkId(b.getParkId()); + barrierOpenLog.setType(b.getType()); + barrierOpenLogService.save(barrierOpenLog); } catch (Exception e) { e.printStackTrace(); } @@ -160,6 +187,12 @@ try { String jsonValue = JSON.toJSONString(b); redisTemplate.opsForValue().set("barrier-"+b.getCode(), jsonValue); + BarrierOpenLog barrierOpenLog = new BarrierOpenLog(); + barrierOpenLog.setCarNo(carNo); + barrierOpenLog.setRemark(remark); + barrierOpenLog.setParkId(b.getParkId()); + barrierOpenLog.setType(b.getType()); + barrierOpenLogService.save(barrierOpenLog); } catch (Exception e) { e.printStackTrace(); } @@ -168,4 +201,33 @@ } } } + + @PostMapping("getDisConnect") + @Operation(summary = "璁惧鎺夌嚎閫氱煡" , description = "璁惧鎺夌嚎閫氱煡" ) + public Object getDisConnect() { + List<Map<String,Object>> resultlist = new ArrayList<>(); + String barrierCodeAll = redisTemplate.opsForValue().get("barrierCode_all"); + if(StringUtils.isBlank(barrierCodeAll)){ + QueryWrapper<Barrier> wrapper = new QueryWrapper<>(); + wrapper.select(" code "); + List<Barrier> list = barrierService.list(wrapper); + String collect = list.stream().map(Barrier::getCode).collect(Collectors.joining(",")); + redisTemplate.opsForValue().set("barrierCode_all",collect); + barrierCodeAll = collect; + } + for (String s : barrierCodeAll.split(",")) { + Barrier barrier = barrierService.findByCode(s); + long between = ChronoUnit.SECONDS.between(barrier.getUpdateTime(), LocalDateTime.now()); + if(between>121){ + Map<String,Object> map = new HashMap<>(); + map.put("parkName",parkService.getOneById(barrier.getParkId()).getName()); + map.put("type",barrier.getType()==0?"鍑哄彛":"鍏ュ彛"); + map.put("downTime",barrier.getUpdateTime()); + resultlist.add(map); + } + } + Collections.sort(resultlist, (m1, m2)-> String.valueOf(m2.get("downTime")).compareTo(String.valueOf(m1.get("downTime")))); // lamuda鎺掑簭 + return R.ok(resultlist); + } + } -- Gitblit v1.9.1