xlq il y a 1 mois
Parent
commit
ede2255056

+ 35 - 14
src/main/java/com/qmrb/system/controller/BarnRecordController.java

@@ -1,5 +1,6 @@
 package com.qmrb.system.controller;
 
+import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -9,6 +10,9 @@ import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.qmrb.system.pojo.entity.BarnRecord;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.rocketmq.client.exception.MQBrokerException;
+import org.apache.rocketmq.client.exception.MQClientException;
+import org.apache.rocketmq.remoting.exception.RemotingException;
 import org.springdoc.core.annotations.ParameterObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -52,12 +56,24 @@ import jakarta.validation.Valid;
 @RestController
 @RequestMapping("/api/v1/record")
 @CrossOrigin
-public class BarnRecordController{
+public class BarnRecordController {
 
     @Autowired
     private IBarnRecordService barnRecordService;
 
-	@Operation(summary = "岗亭端停车记录分页列表", security = {@SecurityRequirement(name = "Authorization")})
+
+
+    @Operation(summary = "应急取车", security = {@SecurityRequirement(name = "Authorization")})
+    @PutMapping(value = "/takeCar/{id}")
+    public Result<?> takeCar(
+            @Parameter(description = "岗亭端停车记录ID") @PathVariable Long id,
+            @RequestBody @Validated BarnRecordForm form) throws MQBrokerException, RemotingException, UnsupportedEncodingException, InterruptedException, MQClientException {
+
+        boolean result = barnRecordService.takeCar(id, form);
+        return Result.judge(result);
+    }
+
+    @Operation(summary = "岗亭端停车记录分页列表", security = {@SecurityRequirement(name = "Authorization")})
     @GetMapping("/page")
     public PageResult<BarnRecordVO> getPage(
             @ParameterObject BarnRecordQuery queryParams
@@ -65,25 +81,26 @@ public class BarnRecordController{
         Page<BarnRecordVO> result = barnRecordService.getPage(queryParams);
         return PageResult.success(result);
     }
-    
-    
+
+
     @Operation(summary = "岗亭端停车记录列表", security = {@SecurityRequirement(name = "Authorization")})
     @GetMapping("/listByPlateNumber")
     public PageResult<BarnRecordVO> listByPlateNumber(
             @ParameterObject BarnRecordQuery queryParams
     ) {
         // Assert.isTrue(StringUtils.isNotBlank(queryParams.getCarNumber()), "请输入车牌号");
-        Page<BarnRecordVO> result = barnRecordService.getPage(queryParams);        
+        Page<BarnRecordVO> result = barnRecordService.getPage(queryParams);
         return PageResult.success(result);
     }
+
     @Operation(summary = "批量新增或者修改多条岗亭端停车记录", security = {@SecurityRequirement(name = "Authorization")})
     @PostMapping("/saveBatchOrUpdate")
     @Resubmit
     public Result<?> saveOrUpdateBatch(@RequestBody @Valid List<BarnRecordForm> list) {
         List<BarnRecordForm> result = barnRecordService.saveBatchOrUpdate(list);
-        if (CollectionUtil.isNotEmpty(result)){
+        if (CollectionUtil.isNotEmpty(result)) {
             return Result.success(result);
-        }else{
+        } else {
             return Result.failed("批量新增或者修改多条岗亭端停车记录失败");
         }
     }
@@ -103,17 +120,21 @@ public class BarnRecordController{
     public Result<BarnRecordForm> getForm(
             @Parameter(description = "岗亭端停车记录ID") @PathVariable Long id
     ) {
-    	BarnRecordForm formData = barnRecordService.getFormData(id);
+        BarnRecordForm formData = barnRecordService.getFormData(id);
         return Result.success(formData);
     }
-    
+
     @Operation(summary = "岗亭端停车记录金额数据", security = {@SecurityRequirement(name = "Authorization")})
     @GetMapping("/{id}/getCarParkUseLogOrder")
     public Result<BarnRecordForm> getCarParkUseLogOrder(
             @Parameter(description = "岗亭端停车记录ID") @PathVariable Long id,
             @ParameterObject Boolean isMonthlyCardMode
     ) {
+<<<<<<< Updated upstream
     	BarnRecordForm formData = barnRecordService.getCarParkUseLogOrder(id,isMonthlyCardMode);
+=======
+        BarnRecordForm formData = barnRecordService.getCarParkUseLogOrder(id);
+>>>>>>> Stashed changes
         return Result.success(formData);
     }
 
@@ -122,8 +143,8 @@ public class BarnRecordController{
     public Result<?> updateForm(
             @Parameter(description = "岗亭端停车记录ID") @PathVariable Long id,
             @RequestBody @Validated BarnRecordForm form) {
-    	
-        boolean result = barnRecordService.updateForm(id,form);
+
+        boolean result = barnRecordService.updateForm(id, form);
         return Result.judge(result);
     }
 
@@ -132,9 +153,9 @@ public class BarnRecordController{
     public Result<?> deleteUsers(
             @Parameter(description = "岗亭端停车记录ID,多个以英文逗号(,)分割") @PathVariable String ids
     ) {
-    	if(StrUtil.isBlank(ids)) {
-    		 return Result.failed(ResultCode.PARAM_ERROR, "删除的岗亭端停车记录数据为空");
-    	}
+        if (StrUtil.isBlank(ids)) {
+            return Result.failed(ResultCode.PARAM_ERROR, "删除的岗亭端停车记录数据为空");
+        }
         // 逻辑删除
         List<Long> idList = Arrays.asList(ids.split(",")).stream()
                 .map(idStr -> Long.parseLong(idStr)).collect(Collectors.toList());

+ 6 - 0
src/main/java/com/qmrb/system/service/IBarnRecordService.java

@@ -1,5 +1,6 @@
 package com.qmrb.system.service;
 
+import java.io.UnsupportedEncodingException;
 import java.util.List;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,6 +10,9 @@ import com.qmrb.system.pojo.vo.BarnRecordVO;
 import com.qmrb.system.pojo.query.BarnRecordQuery;
 import com.baomidou.mybatisplus.extension.service.IService;
 import jakarta.validation.Valid;
+import org.apache.rocketmq.client.exception.MQBrokerException;
+import org.apache.rocketmq.client.exception.MQClientException;
+import org.apache.rocketmq.remoting.exception.RemotingException;
 
 /**
  * <p>
@@ -50,4 +54,6 @@ public interface IBarnRecordService extends IService<BarnRecord> {
 	BarnRecordForm chargingByBarnId(Long id);
 
 	BarnRecordForm getByOrderId(String orderNo);
+
+	boolean takeCar(Long id, BarnRecordForm form) throws MQBrokerException, RemotingException, UnsupportedEncodingException, InterruptedException, MQClientException;
 }

+ 28 - 5
src/main/java/com/qmrb/system/service/impl/BarnRecordServiceImpl.java

@@ -1,25 +1,26 @@
 package com.qmrb.system.service.impl;
 
+import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
-import java.util.stream.Collectors;
 
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.json.JSONUtil;
+import com.qmrb.system.mq.PickCarProducer;
 import com.qmrb.system.pojo.entity.CarPark;
 import com.qmrb.system.pojo.entity.MyCarPlateNumber;
-import com.qmrb.system.pojo.vo.ToCreateOrderVO;
 import com.qmrb.system.service.IBarnRecordService;
 import com.qmrb.system.service.ICarParkChargingRulesService;
 import com.qmrb.system.service.ICarParkService;
 import com.qmrb.system.service.IMyCarPlateNumberService;
-import org.springframework.beans.BeanUtils;
-import com.qmrb.system.service.OrderService;
+import org.apache.rocketmq.client.exception.MQBrokerException;
+import org.apache.rocketmq.client.exception.MQClientException;
+import org.apache.rocketmq.remoting.exception.RemotingException;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -30,6 +31,7 @@ import com.qmrb.system.pojo.vo.BarnRecordVO;
 import com.qmrb.system.pojo.query.BarnRecordQuery;
 import com.qmrb.system.mapper.BarnRecordMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import cn.hutool.core.collection.CollectionUtil;
@@ -61,6 +63,14 @@ public class BarnRecordServiceImpl extends ServiceImpl<BarnRecordMapper, BarnRec
     @Autowired
     private ICarParkChargingRulesService carParkChargingRulesService;
 
+    @Autowired
+    private PickCarProducer pickCarProducer;
+
+    @Value("${pickCarProducer.topic}")
+    private String topic;
+    @Value("${pickCarProducer.tags}")
+    private String tags;
+
 
     /**
      * 分页查询
@@ -253,6 +263,19 @@ public class BarnRecordServiceImpl extends ServiceImpl<BarnRecordMapper, BarnRec
         return null;
     }
 
+    @Override
+    public boolean takeCar(Long id, BarnRecordForm form) throws MQBrokerException, RemotingException, UnsupportedEncodingException, InterruptedException, MQClientException {
+        HashMap<String, Object> paramsMap = new HashMap<>();
+        paramsMap.put("channelId",form.getBarnId());
+        paramsMap.put("carNumber",form.getCarNumber());
+        // 发送取车指令
+        pickCarProducer.send(topic,tags, JSONUtil.toJsonStr(paramsMap));
+        form.setEmergencyFlag("1");//应急取车标志
+        boolean result = updateForm(id, form);
+        return result;
+    }
+
+
 
     /**
      * 计算两个时间差(年,月,星期,日,时,分,秒)