Jelajahi Sumber

新增同步基站注册接口。

zhuoning 2 tahun lalu
induk
melakukan
8167fdee27

+ 5 - 1
registration-center/pom.xml

@@ -166,7 +166,11 @@
             <groupId>org.junit.platform</groupId>
             <artifactId>junit-platform-commons</artifactId>
         </dependency>
-
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.4</version>
+        </dependency>
 <!--        <dependency>-->
 <!--            <groupId>com.huimv</groupId>-->
 <!--            <artifactId>huimv-eartag2-common</artifactId>-->

+ 49 - 0
registration-center/src/main/java/com/huimv/center/api/SyncDeviceController.java

@@ -0,0 +1,49 @@
+package com.huimv.center.api;
+
+import com.huimv.center.service.BizDeviceRegisterService;
+import com.huimv.center.service.BizFarmService;
+import com.huimv.common.utils.Result;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.text.ParseException;
+import java.util.Map;
+
+/**
+ * @Project : registration.center
+ * @Package : ${}
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2023/1/4
+ **/
+@RestController
+@RequestMapping("/api/device")
+public class SyncDeviceController {
+    @Resource
+    private BizFarmService bizFarmService;
+    @Resource
+    private BizDeviceRegisterService bizDeviceRegisterService;
+
+    @PostMapping("/syncDeviceRegister")
+    public Result add(@RequestBody Map<String, Object> paramsMap) throws ParseException {
+        // 同步数据 -----------------------------------------------------------------------
+        // 芯片ID
+        // 服务器IP
+        // 服务器端口
+        // 牧场名称
+        // 牧场编码
+        // --------------------------------------------------------------------------------
+        // 先判断牧场是否存在,如果不存在就要先添加牧场
+        // 再判断该设备是否存在,如果存在就提示,提示已存在信息,并需要人工删除
+        // 如果新设备直接添加
+        // --------------------------------------------------------------------------------
+        // 查询牧场
+        bizFarmService.saveFarm(paramsMap);
+        // 查询设备
+        return bizDeviceRegisterService.syncDevice(paramsMap);
+    }
+}

+ 5 - 5
registration-center/src/main/java/com/huimv/center/listener/DeviceListener.java

@@ -48,7 +48,7 @@ public class DeviceListener {
      * @Date        : 2022/6/22
      * @Time        : 20:11
      */
-    @RabbitListener(queues = Const.QUEUE_DEVICE_REGISTERED)
+//    @RabbitListener(queues = Const.QUEUE_DEVICE_REGISTERED)
     @RabbitHandler
     @Transactional
     public void processDeviceRegisteredFlow(Map askMap) throws ParseException {
@@ -73,7 +73,7 @@ public class DeviceListener {
      * @Date        : 2022/6/22       
      * @Time        : 20:13
      */
-    @RabbitListener(queues = Const.QUEUE_DEVICE_UNREGISTERED)
+//    @RabbitListener(queues = Const.QUEUE_DEVICE_UNREGISTERED)
     @RabbitHandler
     @Transactional
     public void processDeviceUnregisteredFlow(Map askMap) throws ParseException {
@@ -95,7 +95,7 @@ public class DeviceListener {
      * @Date        : 2022/6/22
      * @Time        : 20:15
      */
-    @RabbitListener(queues = Const.QUEUE_DEVICE_ANSWER)
+//    @RabbitListener(queues = Const.QUEUE_DEVICE_ANSWER)
     @RabbitHandler
     @Transactional
     public void processDeviceAnswer(Map askMap) throws ParseException {
@@ -120,7 +120,7 @@ public class DeviceListener {
      * @Date        : 2022/6/30       
      * @Time        : 18:11
      */
-    @RabbitListener(queues = Const.QUEUE_ASK_CMD)
+//    @RabbitListener(queues = Const.QUEUE_ASK_CMD)
     @RabbitHandler
     public void processAskCmd(Map askMap) throws ParseException {
         String askCmd = askMap.get("askCmd").toString();
@@ -128,7 +128,7 @@ public class DeviceListener {
         bizRawDataServiceImpl.addRawData(askCmd);
     }
 
-    @RabbitListener(queues = Const.QUEUE_ASK_CMD)
+//    @RabbitListener(queues = Const.QUEUE_ASK_CMD)
     @RabbitHandler
     public void processSyncFarmDeviceRegister(Map askMap) throws ParseException {
         // 添加原始数据信息

+ 1 - 1
registration-center/src/main/java/com/huimv/center/listener/SysBaseConfigListener.java

@@ -38,7 +38,7 @@ public class SysBaseConfigListener {
     private BizBaseAreaService bizBaseAreaService;
 
 
-    @RabbitListener(queues = Const.QUEUE_SYNC_SYS_CONFIG)
+//    @RabbitListener(queues = Const.QUEUE_SYNC_SYS_CONFIG)
     @RabbitHandler
     public void syncSysBaseConfig(Map<String,String> params) throws ParseException {
 

+ 2 - 0
registration-center/src/main/java/com/huimv/center/service/BizDeviceRegisterService.java

@@ -37,4 +37,6 @@ public interface BizDeviceRegisterService extends IService<BizDeviceRegister> {
     String getBizDeviceRegisterByFarmCode(String farmCode);
 
     List<BizDeviceRegister> getOneByChipIdAndDeviceCode(String chipId, String deviceCode);
+
+    Result syncDevice(Map<String, Object> paramsMap) throws ParseException;
 }

+ 3 - 0
registration-center/src/main/java/com/huimv/center/service/BizFarmService.java

@@ -4,6 +4,7 @@ import com.huimv.center.pojo.BizFarm;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.common.utils.Result;
 import java.text.ParseException;
+import java.util.Map;
 
 /**
  * <p>
@@ -29,4 +30,6 @@ public interface BizFarmService extends IService<BizFarm> {
     String getBizFarmByFarmCode(String farmCode);
 
     BizFarm getBizFarm(String farmCode);
+
+    void saveFarm(Map<String, Object> paramsMap) throws ParseException;
 }

+ 112 - 84
registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceRegisterServiceImpl.java

@@ -28,7 +28,7 @@ import java.util.stream.Collectors;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author zn
@@ -42,21 +42,21 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
     private com.huimv.center.utils.ResultUtil ResultUtil;
     @Resource
     private Producer producer;
-//    @Autowired
+    //    @Autowired
 //    private DateUtil dateUtil;
     @Autowired
     private IDUtil idUtil;
     @Autowired
     private com.huimv.center.utils.DateUtil dateUtil;
+
     /**
-     * @Method      : add
-     * @Description : 
-     * @Params      : [chipId, deviceCode, serverIp, serverPort, remark]
-     * @Return      : com.huimv.eartag2.common.utils.Result
-     * 
-     * @Author      : ZhuoNing
-     * @Date        : 2022/6/23       
-     * @Time        : 20:47
+     * @Method : add
+     * @Description :
+     * @Params : [chipId, deviceCode, serverIp, serverPort, remark]
+     * @Return : com.huimv.eartag2.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2022/6/23
+     * @Time : 20:47
      */
     @Override
     public Result add(String farmName, String farmCode, String chipId, String deviceCode, String serverIp, String serverPort, String remark) throws ParseException {
@@ -77,14 +77,13 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
     }
 
     /**
-     * @Method      : edit
-     * @Description : 
-     * @Params      : [id, chipId, deviceCode, serverIp, serverPort, remark]
-     * @Return      : com.huimv.eartag2.common.utils.Result
-     * 
-     * @Author      : ZhuoNing
-     * @Date        : 2022/6/23       
-     * @Time        : 21:00
+     * @Method : edit
+     * @Description :
+     * @Params : [id, chipId, deviceCode, serverIp, serverPort, remark]
+     * @Return : com.huimv.eartag2.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2022/6/23
+     * @Time : 21:00
      */
     @Override
     public Result edit(Integer id, String chipId, String deviceCode, String serverIp, String serverPort, String remark) throws ParseException {
@@ -101,60 +100,57 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
     }
 
     /**
-     * @Method      : remove
-     * @Description : 
-     * @Params      : [ids]
-     * @Return      : com.huimv.eartag2.common.utils.Result
-     * 
-     * @Author      : ZhuoNing
-     * @Date        : 2022/6/26       
-     * @Time        : 15:12
+     * @Method : remove
+     * @Description :
+     * @Params : [ids]
+     * @Return : com.huimv.eartag2.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2022/6/26
+     * @Time : 15:12
      */
     @Override
-    public Result remove(String ids){
+    public Result remove(String ids) {
         return ResultUtil.result(bizDeviceRegisterMapper.deleteBatchIds(idUtil.convert(ids)));
     }
 
     /**
-     * @Method      : listAll
-     * @Description : 
-     * @Params      : [pageNo, pageSize, farmCode, chipId, deviceCode, startDate, endDate]
-     * @Return      : com.huimv.eartag2.common.utils.Result
-     * 
-     * @Author      : ZhuoNing
-     * @Date        : 2022/6/26       
-     * @Time        : 14:50
+     * @Method : listAll
+     * @Description :
+     * @Params : [pageNo, pageSize, farmCode, chipId, deviceCode, startDate, endDate]
+     * @Return : com.huimv.eartag2.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2022/6/26
+     * @Time : 14:50
      */
     @Override
-    public Result listAll(Integer pageNo, Integer pageSize, String farmName, String farmCode, String chipId, String deviceCode, String startDate, String endDate){
-        if(pageNo == 0){
+    public Result listAll(Integer pageNo, Integer pageSize, String farmName, String farmCode, String chipId, String deviceCode, String startDate, String endDate) {
+        if (pageNo == 0) {
             pageNo = 1;
         }
         startDate = dateUtil.buildStartDate(startDate);
         endDate = dateUtil.buildEndDate(endDate);
         Page<BizDeviceRegister> page = new Page<>(pageNo, pageSize);
         QueryWrapper<BizDeviceRegister> queryWrapper = new QueryWrapper<>();
-        queryWrapper.like(StringUtils.isNotBlank(farmName),"farm_name", farmName);
-        queryWrapper.like(StringUtils.isNotBlank(chipId),"chip_id", chipId);
-        queryWrapper.like(StringUtils.isNotBlank(deviceCode),"device_code", deviceCode);
-        queryWrapper.like(StringUtils.isNotBlank(farmCode),"farm_code", farmCode);
-        queryWrapper.ge(StringUtils.isNotBlank(startDate),"last_time", startDate);
-        queryWrapper.le(StringUtils.isNotBlank(endDate),"last_time", endDate);
+        queryWrapper.like(StringUtils.isNotBlank(farmName), "farm_name", farmName);
+        queryWrapper.like(StringUtils.isNotBlank(chipId), "chip_id", chipId);
+        queryWrapper.like(StringUtils.isNotBlank(deviceCode), "device_code", deviceCode);
+        queryWrapper.like(StringUtils.isNotBlank(farmCode), "farm_code", farmCode);
+        queryWrapper.ge(StringUtils.isNotBlank(startDate), "last_time", startDate);
+        queryWrapper.le(StringUtils.isNotBlank(endDate), "last_time", endDate);
         //创建时间降序
         queryWrapper.orderByDesc("id");
         Page<BizDeviceRegister> pageBizDeviceRegister = bizDeviceRegisterMapper.selectPage(page, queryWrapper);
-        return new Result(ResultCode.SUCCESS,pageBizDeviceRegister);
+        return new Result(ResultCode.SUCCESS, pageBizDeviceRegister);
     }
 
     /**
-     * @Method      : getServerAndIpByChipId
-     * @Description : 
-     * @Params      : [idCode]
-     * @Return      : java.util.Map
-     * 
-     * @Author      : ZhuoNing
-     * @Date        : 2022/6/23       
-     * @Time        : 20:45
+     * @Method : getServerAndIpByChipId
+     * @Description :
+     * @Params : [idCode]
+     * @Return : java.util.Map
+     * @Author : ZhuoNing
+     * @Date : 2022/6/23
+     * @Time : 20:45
      */
     @Override
     public Map getServerAndIpByChipId(String idCode) {
@@ -165,40 +161,40 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
         // 查询注册设备
         List<BizDeviceRegister> deviceRegisterList = bizDeviceRegisterMapper.selectList(queryWrapper);
         Map resultMap = new HashMap();
-        if(deviceRegisterList.size() > 0){
+        if (deviceRegisterList.size() > 0) {
             BizDeviceRegister deviceRegister = deviceRegisterList.get(0);
-            resultMap.put("ip",deviceRegister.getServerIp());
-            resultMap.put("port",deviceRegister.getServerPort());
-            resultMap.put("deviceCode",deviceRegister.getDeviceCode());
-            resultMap.put("farmCode",deviceRegister.getFarmCode());
-            resultMap.put("farmName",deviceRegister.getFarmName());
+            resultMap.put("ip", deviceRegister.getServerIp());
+            resultMap.put("port", deviceRegister.getServerPort());
+            resultMap.put("deviceCode", deviceRegister.getDeviceCode());
+            resultMap.put("farmCode", deviceRegister.getFarmCode());
+            resultMap.put("farmName", deviceRegister.getFarmName());
         }
         return resultMap;
     }
 
     /**
-     * @Method      : updateDeviceRegisterTimes
-     * @Description : 
-     * @Params      : [chipId]
-     * @Return      : com.huimv.eartag2.common.utils.Result
-     * 
-     * @Author      : ZhuoNing
-     * @Date        : 2022/6/23       
-     * @Time        : 20:45
+     * @Method : updateDeviceRegisterTimes
+     * @Description :
+     * @Params : [chipId]
+     * @Return : com.huimv.eartag2.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2022/6/23
+     * @Time : 20:45
      */
     @Override
     public Result updateDeviceRegisterTimes(String chipId) throws ParseException {
+        System.out.println("chipId>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + chipId);
         DateUtil dateUtil = new DateUtil();
         QueryWrapper<BizDeviceRegister> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("chip_id", chipId);
         // 查询注册设备
         BizDeviceRegister deviceRegister = bizDeviceRegisterMapper.selectOne(queryWrapper);
-        if(deviceRegister.getFirstTime() == null){
+        if (deviceRegister.getFirstTime() == null) {
             deviceRegister.setFirstTime(dateUtil.getTodayDatetime());
         }
         deviceRegister.setLastTime(dateUtil.getTodayDatetime());
         Integer times = deviceRegister.getAskTimes();
-        if(times == null){
+        if (times == null) {
             times = 0;
         }
         deviceRegister.setAskTimes(++times);
@@ -207,14 +203,13 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
     }
 
     /**
-     * @Method      : updateDeviceAnswerTimes
+     * @Method : updateDeviceAnswerTimes
      * @Description : 修改应答次数
-     * @Params      : [chipId]
-     * @Return      : com.huimv.eartag2.common.utils.Result
-     *
-     * @Author      : ZhuoNing
-     * @Date        : 2022/6/24
-     * @Time        : 14:00
+     * @Params : [chipId]
+     * @Return : com.huimv.eartag2.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2022/6/24
+     * @Time : 14:00
      */
     @Override
     public Result updateDeviceAnswerTimes(String chipId) throws ParseException {
@@ -223,12 +218,12 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
         queryWrapper.eq("chip_id", chipId);
         // 查询注册设备
         BizDeviceRegister deviceRegister = bizDeviceRegisterMapper.selectOne(queryWrapper);
-        if(deviceRegister.getFirstTimeAnswer()== null){
+        if (deviceRegister.getFirstTimeAnswer() == null) {
             deviceRegister.setFirstTimeAnswer(dateUtil.getTodayDatetime());
         }
         deviceRegister.setLastTimeAnswer(dateUtil.getTodayDatetime());
         Integer times = deviceRegister.getAnswerTimes();
-        if(times == null){
+        if (times == null) {
             times = 0;
         }
         deviceRegister.setAnswerTimes(++times);
@@ -237,8 +232,8 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
     }
 
     @Override
-    public Result synchronizationData(Map<String, String> map ) {
-       // QUEUE_SYNC_DEVICE_FANOUT
+    public Result synchronizationData(Map<String, String> map) {
+        // QUEUE_SYNC_DEVICE_FANOUT
         producer.fanoutSyncDevice(map);
         return ResultUtil.result(1);
     }
@@ -249,7 +244,7 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
         queryWrapper.eq("farm_code", farmCode);
         List<BizDeviceRegister> deviceRegisters = bizDeviceRegisterMapper.selectList(queryWrapper);
         String code = builderBaseStationCode(deviceRegisters);
-        return  code;
+        return code;
     }
 
     @Override
@@ -261,15 +256,48 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
         return deviceRegisters;
     }
 
-    private String builderBaseStationCode(List<BizDeviceRegister> deviceRegisters){
-        if (CollectionUtils.isEmpty(deviceRegisters)){
+    @Override
+    public Result syncDevice(Map<String, Object> paramsMap) throws ParseException {
+        String chipId = paramsMap.get("chipId") + "";
+        String serverIp = paramsMap.get("serverIp") + "";
+        String serverPort = paramsMap.get("serverPort") + "";
+        String farmCode = paramsMap.get("farmCode") + "";
+        String farmName = paramsMap.get("farmName") + "";
+        DateUtil dateUtil = new DateUtil();
+
+        // 查询设备是否存在
+        QueryWrapper<BizDeviceRegister> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("chip_id", chipId);
+        List<BizDeviceRegister> deviceRegistersList = bizDeviceRegisterMapper.selectList(queryWrapper);
+        String message = "";
+        if (deviceRegistersList.size() > 0) {
+            for (BizDeviceRegister bizDeviceRegister : deviceRegistersList) {
+                bizDeviceRegisterMapper.deleteById(bizDeviceRegister);
+            }
+            message = "该基站设备已经被注册过,现在已经重新注册.";
+        } else {
+            message = "该基站设备注册成功。";
+        }
+        BizDeviceRegister bizDeviceRegister = new BizDeviceRegister();
+        bizDeviceRegister.setFarmName(farmName);
+        bizDeviceRegister.setFarmCode(farmCode);
+        bizDeviceRegister.setServerIp(serverIp);
+        bizDeviceRegister.setServerPort(serverPort);
+        bizDeviceRegister.setChipId(chipId);
+        bizDeviceRegister.setRegisterDate(dateUtil.getTodayDatetime());
+        bizDeviceRegisterMapper.insert(bizDeviceRegister);
+        return new Result(10000, message, true);
+    }
+
+    private String builderBaseStationCode(List<BizDeviceRegister> deviceRegisters) {
+        if (CollectionUtils.isEmpty(deviceRegisters)) {
             //说明没有注册过,直接返回六位顺序码
             return "000001";
-        }else {
+        } else {
             //说明注册过、获取列表中最大的数据截取后六位+1f进行返回
             String deviceCode = deviceRegisters.stream().max(Comparator.comparing(BizDeviceRegister::getDeviceCode)).get().getDeviceCode();
             String maxCode = deviceCode.substring(deviceCode.length() - 6);
-            int code =  Integer.parseInt(maxCode)+1;
+            int code = Integer.parseInt(maxCode) + 1;
             String formatCode = String.format("%06d", code);
             return formatCode;
         }

+ 69 - 48
registration-center/src/main/java/com/huimv/center/service/impl/BizFarmServiceImpl.java

@@ -20,11 +20,12 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.text.ParseException;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author zn
@@ -44,15 +45,15 @@ public class BizFarmServiceImpl extends ServiceImpl<BizFarmMapper, BizFarm> impl
 
     @Resource
     private BizBaseAreaService bizBaseAreaService;
+
     /**
-     * @Method      : save
-     * @Description : 
-     * @Params      : [farmName, farmCode, linkman, phone, remark]
-     * @Return      : com.huimv.eartag2.common.utils.Result
-     * 
-     * @Author      : ZhuoNing
-     * @Date        : 2022/6/24       
-     * @Time        : 14:46
+     * @Method : save
+     * @Description :
+     * @Params : [farmName, farmCode, linkman, phone, remark]
+     * @Return : com.huimv.eartag2.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2022/6/24
+     * @Time : 14:46
      */
     @Override
     public Result save(String farmName, String farmCode, String linkman, String phone, String remark, String areaName) throws ParseException {
@@ -66,7 +67,7 @@ public class BizFarmServiceImpl extends ServiceImpl<BizFarmMapper, BizFarm> impl
         farm.setAddTime(dateUtil.getTodayDatetime());
         //根据区域名称查询区域编码
         BizBaseArea bizBaseArea = bizBaseAreaService.queryAreaCodeByAreaName(areaName);
-        if (Objects.nonNull(bizBaseArea)){
+        if (Objects.nonNull(bizBaseArea)) {
             farm.setAreaCode(bizBaseArea.getAreaCode());
         }
         farm.setAreaName(areaName);
@@ -74,17 +75,16 @@ public class BizFarmServiceImpl extends ServiceImpl<BizFarmMapper, BizFarm> impl
     }
 
     /**
-     * @Method      : edit
-     * @Description : 
-     * @Params      : [id, farmName, farmCode, linkman, phone, remark]
-     * @Return      : com.huimv.eartag2.common.utils.Result
-     * 
-     * @Author      : ZhuoNing
-     * @Date        : 2022/6/24       
-     * @Time        : 14:44
+     * @Method : edit
+     * @Description :
+     * @Params : [id, farmName, farmCode, linkman, phone, remark]
+     * @Return : com.huimv.eartag2.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2022/6/24
+     * @Time : 14:44
      */
     @Override
-    public Result edit(Integer id, String farmName, String farmCode, String linkman, String phone, String remark,String areaName) throws ParseException {
+    public Result edit(Integer id, String farmName, String farmCode, String linkman, String phone, String remark, String areaName) throws ParseException {
         DateUtil dateUtil = new DateUtil();
         BizFarm farm = BizFarmMapper.selectById(id);
         farm.setFarmName(farmName);
@@ -95,7 +95,7 @@ public class BizFarmServiceImpl extends ServiceImpl<BizFarmMapper, BizFarm> impl
         farm.setAddTime(dateUtil.getTodayDatetime());
         //根据区域名称查询区域编码
         BizBaseArea bizBaseArea = bizBaseAreaService.queryAreaCodeByAreaName(areaName);
-        if (Objects.nonNull(bizBaseArea)){
+        if (Objects.nonNull(bizBaseArea)) {
             farm.setAreaCode(bizBaseArea.getAreaCode());
         }
         farm.setAreaName(areaName);
@@ -103,47 +103,45 @@ public class BizFarmServiceImpl extends ServiceImpl<BizFarmMapper, BizFarm> impl
     }
 
     /**
-     * @Method      : remove
-     * @Description : 
-     * @Params      : [ids]
-     * @Return      : com.huimv.eartag2.common.utils.Result
-     * 
-     * @Author      : ZhuoNing
-     * @Date        : 2022/6/24       
-     * @Time        : 14:44
+     * @Method : remove
+     * @Description :
+     * @Params : [ids]
+     * @Return : com.huimv.eartag2.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2022/6/24
+     * @Time : 14:44
      */
     @Override
-    public Result remove(String ids){
+    public Result remove(String ids) {
         return ResultUtil.result(BizFarmMapper.deleteBatchIds(idUtil.convert(ids)));
     }
 
     /**
-     * @Method      : list
-     * @Description : 
-     * @Params      : [pageNo, pageSize, farmName, farmCode, startDate, endDate]
-     * @Return      : com.huimv.eartag2.common.utils.Result
-     * 
-     * @Author      : ZhuoNing
-     * @Date        : 2022/6/24       
-     * @Time        : 14:44
+     * @Method : list
+     * @Description :
+     * @Params : [pageNo, pageSize, farmName, farmCode, startDate, endDate]
+     * @Return : com.huimv.eartag2.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2022/6/24
+     * @Time : 14:44
      */
     @Override
-    public Result list(Integer pageNo, Integer pageSize, String farmName,String farmCode,String startDate,String endDate){
-        if(pageNo == 0){
+    public Result list(Integer pageNo, Integer pageSize, String farmName, String farmCode, String startDate, String endDate) {
+        if (pageNo == 0) {
             pageNo = 1;
         }
         startDate = dateUtil.buildStartDate(startDate);
         endDate = dateUtil.buildEndDate(endDate);
         Page<BizFarm> page = new Page<>(pageNo, pageSize);
         QueryWrapper<BizFarm> queryWrapper = new QueryWrapper<>();
-        queryWrapper.like(StringUtils.isNotBlank(farmName),"farm_name", farmName);
-        queryWrapper.like(StringUtils.isNotBlank(farmCode),"farm_code", farmCode);
-        queryWrapper.ge(StringUtils.isNotBlank(startDate),"add_time", startDate);
-        queryWrapper.le(StringUtils.isNotBlank(endDate),"add_time", endDate);
+        queryWrapper.like(StringUtils.isNotBlank(farmName), "farm_name", farmName);
+        queryWrapper.like(StringUtils.isNotBlank(farmCode), "farm_code", farmCode);
+        queryWrapper.ge(StringUtils.isNotBlank(startDate), "add_time", startDate);
+        queryWrapper.le(StringUtils.isNotBlank(endDate), "add_time", endDate);
         //创建时间降序
         queryWrapper.orderByDesc("id");
         Page<BizFarm> pageBizFarm = BizFarmMapper.selectPage(page, queryWrapper);
-        return new Result(ResultCode.SUCCESS,pageBizFarm);
+        return new Result(ResultCode.SUCCESS, pageBizFarm);
     }
 
     @Override
@@ -151,9 +149,9 @@ public class BizFarmServiceImpl extends ServiceImpl<BizFarmMapper, BizFarm> impl
         QueryWrapper<BizFarm> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("farm_code", farmCode);
         List<BizFarm> bizFarms = BizFarmMapper.selectList(queryWrapper);
-        if (bizFarms == null || bizFarms.size()==0){
+        if (bizFarms == null || bizFarms.size() == 0) {
             System.out.println("----------------牧场表里面查不到这条数据");
-        }else{
+        } else {
             return bizFarms.get(0).getAreaCode();
         }
         return "";
@@ -164,11 +162,34 @@ public class BizFarmServiceImpl extends ServiceImpl<BizFarmMapper, BizFarm> impl
         QueryWrapper<BizFarm> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("farm_code", farmCode);
         List<BizFarm> bizFarms = BizFarmMapper.selectList(queryWrapper);
-        if (bizFarms == null || bizFarms.size()==0){
+        if (bizFarms == null || bizFarms.size() == 0) {
             System.out.println("----------------牧场表里面查不到这条数据");
-        }else{
+        } else {
             return bizFarms.get(0);
         }
         return new BizFarm();
     }
+
+    @Override
+    public void saveFarm(Map<String, Object> paramsMap) throws ParseException {
+        DateUtil dateUtil = new DateUtil();
+        String farmCode = paramsMap.get("farmCode") + "";
+        String farmName = paramsMap.get("farmName") + "";
+        String areaCode = paramsMap.get("areaCode") + "";
+        String areaName = paramsMap.get("areaName") + "";
+
+        QueryWrapper<BizFarm> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_code", farmCode);
+        List<BizFarm> bizFarmList = BizFarmMapper.selectList(queryWrapper);
+        System.out.println("判断是否重复添加牧场.size="+bizFarmList.size());
+        if (bizFarmList.size() == 0) {
+            BizFarm bizFarm = new BizFarm();
+            bizFarm.setFarmCode(farmCode);
+            bizFarm.setFarmName(farmName);
+            bizFarm.setAddTime(dateUtil.getTodayDatetime());
+            bizFarm.setAreaCode(areaCode);
+            bizFarm.setAreaName(areaName);
+            BizFarmMapper.insert(bizFarm);
+        }
+    }
 }