ソースを参照

新增 中捷四方设备图片对接

zhaiyifei 11 ヶ月 前
コミット
3e8b25b4b2

+ 54 - 30
src/main/java/com/yunfeiyun/agmp/iotm/device/xycb/controller/IotXycbController.java

@@ -11,8 +11,10 @@ import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
 import com.yunfeiyun.agmp.iot.common.domain.IotPest;
+import com.yunfeiyun.agmp.iot.common.domain.IotXycbimg;
 import com.yunfeiyun.agmp.iot.common.enums.IotDeviceStatusTypeEnum;
 import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
+import com.yunfeiyun.agmp.iot.common.service.MongoService;
 import com.yunfeiyun.agmp.iotm.common.controller.BaseController;
 import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceBaseFunReqVo;
 import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListReqVo;
@@ -31,6 +33,8 @@ import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
 import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceconfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -73,34 +77,8 @@ public class IotXycbController extends BaseController
     @Autowired
     private IIotXycbUtilService iIotXycbUtilService;
 
-
-
-
-
-
-
-//
-//    /**
-//     * 查询图片列表
-//     */
-//    @PreAuthorize("@ss.hasPermi('iot:xycb:image:list')")
-//    @GetMapping("/image/list")
-//    public TableDataInfo imageList(IotXycbReqVo iotXycbReqVo)
-//    {
-//        return getDataTable(iIotXycbService.getImageList(iotXycbReqVo));
-//    }
-//
-//    /**
-//     *
-//     * @param reqVo
-//     * @return
-//     */
-//    @PreAuthorize("@ss.hasPermi('iot:xycb:image:delete')")
-//    @DeleteMapping("/image/delete/{xycbimgBid}")
-//    public AjaxResult imageDelete(@PathVariable String xycbimgBid){
-//        iIotXycbService.imageDelete(xycbimgBid);
-//        return AjaxResult.success();
-//    }
+    @Autowired
+    private MongoService mongoService;
 
 
 
@@ -209,16 +187,18 @@ public class IotXycbController extends BaseController
      * /pt/list 普通性诱测报设备
      * /2/list 性诱测报2.0设备  宁录性诱测报设备
      * /III/list 性诱测报III设备
+     * /zj/list 中捷四方性诱测报设备
      * @param reqVo
      * @return
      */
-    @GetMapping({"/list", "/pt/list", "/2/list", "/III/list"})
+    @GetMapping({"/list", "/pt/list", "/2/list", "/III/list", "/zj/list"})
     public TableDataInfo list(HttpServletRequest request, IotDeviceListReqVo reqVo) {
         startPage();
         String reqUri = request.getRequestURI();
         String[] devTypeList = new String[]{
                 IotDeviceDictConst.TYPE_YF_XYCB_III,
-                IotDeviceDictConst.TYPE_YF_XYCB_2
+                IotDeviceDictConst.TYPE_YF_XYCB_2,
+                IotDeviceDictConst.TYPE_ZJSF_XYCB
         };
 
         if(reqUri.endsWith("/pt/list")){
@@ -227,6 +207,8 @@ public class IotXycbController extends BaseController
             devTypeList = new String[]{IotDeviceDictConst.TYPE_YF_XYCB_III};
         } else if (reqUri.endsWith("/2/list")) {
             devTypeList = new String[]{IotDeviceDictConst.TYPE_YF_XYCB_2};
+        } else if (reqUri.endsWith("/zj/list")) {
+            devTypeList = new String[]{IotDeviceDictConst.TYPE_ZJSF_XYCB};
         }
         reqVo.setDevtypeBidList(Arrays.asList(devTypeList));
         List<IotDeviceListResVo> list = iIotDeviceService.selectIotDeviceListByType(reqVo);
@@ -404,4 +386,46 @@ public class IotXycbController extends BaseController
         }
         return getDataTable(iotXycbLureListRspVoList);
     }
+
+
+    /**
+     * 查询图片列表
+     */
+    @GetMapping("/image/list")
+    public TableDataInfo imageList(IotDeviceDataListReqVo reqVo)
+    {
+        ValidateUtil.validateDevBid(reqVo.getDevBid());
+        IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
+        iotDeviceBaseFunReqVo.setDevBid(reqVo.getDevBid());
+        iotDeviceBaseFunReqVo.setMethodName("imageList");
+        iotDeviceBaseFunReqVo.setParam(reqVo);
+        return iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
+    }
+
+
+    /**
+     *
+     * 删除图片
+     */
+    @DeleteMapping("/image/delete/{xycbimgBid}")
+    public AjaxResult imageDelete(@PathVariable String xycbimgBid){
+        // 调用通用方法必须有设备devBid, 否则无法定位到具体是那个实现类
+        // 没有devBid 的情况下,实现可以写道Controller层
+        Map<String, String> selectMap = new HashMap<>();
+        selectMap.put("xycbimgBid", xycbimgBid);
+        IotXycbimg iotXycbimg = (IotXycbimg) mongoService.findOne(IotXycbimg.class, selectMap, null, null);
+        if(iotXycbimg == null){
+            throw new IotBizException(IotErrorCode.INVALID_DEVICE_ID.getCode(), "图片不存在");
+        }
+
+        Criteria criteria = Criteria.where("xycbimgBid").is(xycbimgBid);
+        Query query = new Query(criteria);
+
+        Map<String, Object> updateField = new HashMap<>();
+        updateField.put("xycbimgDelstatus", "1");
+        updateField.put("xycbimgModifieddate", DateUtils.dateTimeNow());
+
+        mongoService.update(IotXycbimg.class, query, updateField);
+        return AjaxResult.success();
+    }
 }

+ 57 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/xycb/service/IIotXycbCommService.java

@@ -17,6 +17,7 @@ import com.yunfeiyun.agmp.common.utils.uuid.IdUtils;
 import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
 import com.yunfeiyun.agmp.iot.common.domain.*;
+import com.yunfeiyun.agmp.iot.common.domain.resvo.IotXycbimgListResVo;
 import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
 import com.yunfeiyun.agmp.iot.common.model.cmd.CmdGroupModel;
 import com.yunfeiyun.agmp.iot.common.service.MongoService;
@@ -76,6 +77,9 @@ public class IIotXycbCommService extends IotDeviceBaseServiceImpl implements Iot
             case IotDeviceDictConst.TYPE_YF_XYCB_2:
                 tableClass = IotYfXycb2data.class;
                 break;
+            case IotDeviceDictConst.TYPE_ZJSF_XYCB:
+                tableClass = IotZjsfXycbdata.class;
+                break;
             default:
                 break;
         }
@@ -439,4 +443,57 @@ public class IIotXycbCommService extends IotDeviceBaseServiceImpl implements Iot
         }
         return status;
     }
+
+    /**
+     * 图片列表
+     * @param reqVo
+     * @return
+     */
+    public TableDataInfo imageList(IotDeviceDataListReqVo reqVo){
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setCode(ErrorCode.SUCCESS.getCode());
+        rspData.setMsg(ErrorCode.SUCCESS.getMessage());
+        rspData.setData(new ArrayList<>());
+        rspData.setTotal(0);
+
+        String devBid = reqVo.getDevBid();
+        String startTime = reqVo.getStartTime();
+        String endTime = reqVo.getEndTime();
+
+        if (startTime == null || endTime == null) {
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(), "请输入正确的起止时间");
+        }
+
+        IotDevice findDevice = iotDeviceService.selectIotDeviceByDevBid(devBid);
+        if (findDevice == null) {
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(), "设备不存在");
+        }
+
+        Map<String, Object> cases = new HashMap<>();
+        cases.put("devBid", devBid);
+        cases.put("xycbimgDelstatus", "0");
+        cases.put("time_xycbimgCreatedDate", startTime + "," + endTime);
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        pageDomain.setOrderByColumn("xycbimgCreatedDate");
+        pageDomain.setIsAsc("desc");
+
+        IPage listPage = mongoService.findListPage(IotXycbimg.class, cases, pageDomain);
+        List records = listPage.getRecords();
+        List<IotXycbimgListResVo> iotXycbimgListResVoList = new ArrayList<>();
+        for (Object obj : records) {
+            IotXycbimg iotXycbimg = (IotXycbimg) obj;
+            IotXycbimgListResVo iotXycbimgListResVo = new IotXycbimgListResVo();
+            iotXycbimgListResVo.setDevBid(iotXycbimg.getDevBid());
+            iotXycbimgListResVo.setXycbimgBid(iotXycbimg.getXycbimgBid());
+            iotXycbimgListResVo.setXycbimgAddr(iotXycbimg.getXycbimgOssAddr());
+            iotXycbimgListResVo.setXycbimgCreatedDate(iotXycbimg.getXycbimgCreatedDate());
+
+            iotXycbimgListResVoList.add(iotXycbimgListResVo);
+        }
+
+        rspData.setData(iotXycbimgListResVoList);
+        rspData.setTotal(listPage.getTotal());
+        return rspData;
+    }
 }

+ 4 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/xycb/service/IIotXycbUtilService.java

@@ -3,6 +3,7 @@ package com.yunfeiyun.agmp.iotm.device.xycb.service;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
 import com.yunfeiyun.agmp.iot.common.domain.IotYfXycb2data;
 import com.yunfeiyun.agmp.iot.common.domain.IotYfXycbIIIdata;
+import com.yunfeiyun.agmp.iot.common.domain.IotZjsfXycbdata;
 import com.yunfeiyun.agmp.iot.common.service.MongoService;
 import com.yunfeiyun.agmp.iotm.device.xycb.domain.IotXycbInfoResVo;
 import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotDeviceListResVo;
@@ -36,6 +37,9 @@ public class IIotXycbUtilService {
             case IotDeviceDictConst.TYPE_YF_XYCB_2:
                 tableClass = IotYfXycb2data.class;
                 break;
+            case IotDeviceDictConst.TYPE_ZJSF_XYCB:
+                tableClass = IotZjsfXycbdata.class;
+                break;
             default:
                 break;
         }

+ 116 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/xycb/service/impl/IotZjsfXycbServiceImpl.java

@@ -0,0 +1,116 @@
+package com.yunfeiyun.agmp.iotm.device.xycb.service.impl;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yunfeiyun.agmp.common.constant.ErrorCode;
+import com.yunfeiyun.agmp.common.core.page.PageDomain;
+import com.yunfeiyun.agmp.common.core.page.TableDataInfo;
+import com.yunfeiyun.agmp.common.core.page.TableSupport;
+import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
+import com.yunfeiyun.agmp.iot.common.constant.devicetype.ServiceNameConst;
+import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
+import com.yunfeiyun.agmp.iot.common.domain.IotYfXycbdata;
+import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
+import com.yunfeiyun.agmp.iot.common.service.MongoService;
+import com.yunfeiyun.agmp.iotm.device.common.domin.DeviceRefreshDto;
+import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListReqVo;
+import com.yunfeiyun.agmp.iotm.device.xycb.domain.IotXycbConfigEditReqVo;
+import com.yunfeiyun.agmp.iotm.device.xycb.domain.IotYfXycbDataListRspVo;
+import com.yunfeiyun.agmp.iotm.device.xycb.service.IIotXycbCommService;
+import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+@Slf4j
+@Service(value = ServiceNameConst.SERVICE_ZJSF_XYCB)
+public class IotZjsfXycbServiceImpl extends IIotXycbCommService {
+
+    @Autowired
+    private IIotDeviceService iotDeviceService;
+
+    @Autowired
+    private MongoService mongoService;
+
+    @Override
+    public JSONObject configInfo(IotDeviceDataListReqVo reqVo){
+        throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"当前设备不支持此操作");
+    }
+
+    @Override
+    public String sendConfigCmd(IotXycbConfigEditReqVo reqVo) {
+        throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(),"当前设备不支持此操作");
+    }
+
+    @Override
+    public TableDataInfo dataList(IotDeviceDataListReqVo reqVo){
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setCode(ErrorCode.SUCCESS.getCode());
+        rspData.setMsg(ErrorCode.SUCCESS.getMessage());
+        rspData.setData(new ArrayList<>());
+        rspData.setTotal(0);
+
+        String devBid = reqVo.getDevBid();
+        String startTime = reqVo.getStartTime();
+        String endTime = reqVo.getEndTime();
+
+        if (startTime == null || endTime == null) {
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(), "请输入正确的起止时间");
+        }
+
+        IotDevice findDevice = iotDeviceService.selectIotDeviceByDevBid(reqVo.getDevBid());
+        if (findDevice == null) {
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(), "设备不存在");
+        }
+
+        Map<String, Object> cases = new HashMap<>();
+        cases.put("devBid", devBid);
+        cases.put("time_xycbdataCreatedDate", startTime +  "," + endTime);
+
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Class tableClass = getTableClass(findDevice.getDevtypeBid());
+        IPage listPage = mongoService.findListPage(tableClass, cases, pageDomain);
+
+        List<IotYfXycbdata> iotYfXycbdataList = listPage.getRecords();
+        List<IotYfXycbDataListRspVo> iotYfXycbDataListRspVoList = new ArrayList<>();
+        for(IotYfXycbdata xycbdata: iotYfXycbdataList){
+            JSONObject jsonObject = xycbdata.getXycbdataContent();
+            String cs = "0";
+            if(Objects.equals(jsonObject.getInteger("cs"), 2)){
+                cs = "1";
+            }
+
+            IotYfXycbDataListRspVo xycbDataListRspVo = new IotYfXycbDataListRspVo();
+            xycbDataListRspVo.setDevBid(devBid);
+            xycbDataListRspVo.setDevCode(findDevice.getDevCode());
+            xycbDataListRspVo.setDs(jsonObject.getString("ds"));
+            xycbDataListRspVo.setWs("1");
+            xycbDataListRspVo.setAt(jsonObject.getString("at"));
+            xycbDataListRspVo.setAh(jsonObject.getString("ah"));
+            xycbDataListRspVo.setBs("0");
+            xycbDataListRspVo.setCs(cs);
+            xycbDataListRspVo.setCv("0");
+            xycbDataListRspVo.setBv(jsonObject.getString("b_v"));
+            xycbDataListRspVo.setCt((String) jsonObject.getOrDefault("infr_ct", "0"));
+            xycbDataListRspVo.setCreatedDate(xycbdata.getXycbdataCreatedDate());
+
+            iotYfXycbDataListRspVoList.add(xycbDataListRspVo);
+        }
+        rspData.setData(iotYfXycbDataListRspVoList);
+        rspData.setTotal(listPage.getTotal());
+        return rspData;
+    }
+
+    /**
+     * 刷新指令集
+     *
+     * @param reqVo
+     */
+    @Override
+    public void refresh(DeviceRefreshDto reqVo) {
+        // 性诱2.0设备 不支持控制
+    }
+
+}