|
@@ -10,22 +10,21 @@ import com.yunfeiyun.agmp.common.utils.DateUtils;
|
|
|
import com.yunfeiyun.agmp.common.utils.JSONUtils;
|
|
import com.yunfeiyun.agmp.common.utils.JSONUtils;
|
|
|
import com.yunfeiyun.agmp.common.utils.SecurityUtils;
|
|
import com.yunfeiyun.agmp.common.utils.SecurityUtils;
|
|
|
import com.yunfeiyun.agmp.common.utils.StringUtils;
|
|
import com.yunfeiyun.agmp.common.utils.StringUtils;
|
|
|
-import com.yunfeiyun.agmp.common.utils.bean.BeanUtils;
|
|
|
|
|
-import com.yunfeiyun.agmp.iot.common.constant.mq.IotActionEnums;
|
|
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.*;
|
|
import com.yunfeiyun.agmp.iot.common.domain.*;
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotCbdrecogAgainReqVo;
|
|
import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotCbdrecogAgainReqVo;
|
|
|
import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotCbdrecogReqVo;
|
|
import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotCbdrecogReqVo;
|
|
|
-import com.yunfeiyun.agmp.iot.common.enums.EnumCbdRecogType;
|
|
|
|
|
import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
|
|
import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
|
|
|
import com.yunfeiyun.agmp.iot.common.service.IotWeatherService;
|
|
import com.yunfeiyun.agmp.iot.common.service.IotWeatherService;
|
|
|
import com.yunfeiyun.agmp.iot.common.service.MongoService;
|
|
import com.yunfeiyun.agmp.iot.common.service.MongoService;
|
|
|
import com.yunfeiyun.agmp.iot.common.util.tmn.CustomerIdUtil;
|
|
import com.yunfeiyun.agmp.iot.common.util.tmn.CustomerIdUtil;
|
|
|
|
|
+import com.yunfeiyun.agmp.iotm.device.pest.domain.IotCbdrecogInfoResVo;
|
|
|
import com.yunfeiyun.agmp.iotm.device.pest.domain.IotCbdrecogResVo;
|
|
import com.yunfeiyun.agmp.iotm.device.pest.domain.IotCbdrecogResVo;
|
|
|
import com.yunfeiyun.agmp.iotm.device.pest.service.IIotCbdrecogService;
|
|
import com.yunfeiyun.agmp.iotm.device.pest.service.IIotCbdrecogService;
|
|
|
import com.yunfeiyun.agmp.iotm.device.pest.service.IIotPestService;
|
|
import com.yunfeiyun.agmp.iotm.device.pest.service.IIotPestService;
|
|
|
import com.yunfeiyun.agmp.iotm.mq.provider.IotsMqProviderService;
|
|
import com.yunfeiyun.agmp.iotm.mq.provider.IotsMqProviderService;
|
|
|
import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
|
|
import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Sort;
|
|
import org.springframework.data.domain.Sort;
|
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
@@ -330,44 +329,30 @@ public class IotCbdrecogServiceImpl implements IIotCbdrecogService {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
- public IotCbdrecogResVo info(IotCbdrecogReqVo reqVo) {
|
|
|
|
|
|
|
+ public IotCbdrecogInfoResVo info(IotCbdrecogReqVo reqVo) {
|
|
|
String cbdrecogType = reqVo.getCbdrecogType();
|
|
String cbdrecogType = reqVo.getCbdrecogType();
|
|
|
String cbdrecogMarktype = reqVo.getCbdrecogMarktype();
|
|
String cbdrecogMarktype = reqVo.getCbdrecogMarktype();
|
|
|
String cbdimgBid = reqVo.getCbdimgBid();
|
|
String cbdimgBid = reqVo.getCbdimgBid();
|
|
|
|
|
|
|
|
- Criteria cri = Criteria.where("cbdimgBid").is(cbdimgBid)
|
|
|
|
|
- .and("cbdrecogType").is(cbdrecogType)
|
|
|
|
|
- .and("cbdrecogMarktype").is(cbdrecogMarktype);
|
|
|
|
|
- IotCbdrecog iotCbdrecog = mongoTemplate.findOne(new Query(cri),
|
|
|
|
|
- IotCbdrecog.class, "IotCbdrecog");
|
|
|
|
|
-
|
|
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
|
|
- map.put("cbdimgBid", cbdimgBid);
|
|
|
|
|
- IotCbdimg iotCbdimg = (IotCbdimg) mongoService.findOne(IotCbdimg.class, map, null, null);
|
|
|
|
|
|
|
+ IotCbdimg iotCbdimg = (IotCbdimg) mongoService.findOne("cbdimgBid", cbdimgBid, IotCbdimg.class);
|
|
|
|
|
+ if (iotCbdimg == null) {
|
|
|
|
|
+ throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(), "未找到对应的图片记录");
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<String, IotCbdrecog> cbdrecogMap = iotCbdimg.getCbdrecog();
|
|
|
|
|
+ IotCbdrecog iotCbdrecog = cbdrecogMap.getOrDefault(cbdrecogType, new IotCbdrecog());
|
|
|
|
|
+ Map<String, List<IotCbdPestrecog>> pestrecogMap = iotCbdrecog.getPestrecog();
|
|
|
|
|
+ List<IotCbdPestrecog> iotCbdPestrecogList = new ArrayList<>();
|
|
|
|
|
+ try{
|
|
|
|
|
+ iotCbdPestrecogList = pestrecogMap.getOrDefault(cbdrecogMarktype, new ArrayList<>());
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
|
|
|
- if (iotCbdrecog == null) {
|
|
|
|
|
- Criteria cri2 = Criteria.where("cbdimgBid").is(cbdimgBid)
|
|
|
|
|
- .and("cbdrecogType").is(cbdrecogType);
|
|
|
|
|
- iotCbdrecog = mongoTemplate.findOne(new Query(cri2),
|
|
|
|
|
- IotCbdrecog.class, "IotCbdrecog");
|
|
|
|
|
- if (iotCbdrecog == null) {
|
|
|
|
|
- iotCbdrecog = new IotCbdrecog();
|
|
|
|
|
- iotCbdrecog.setCbdrecogCreatedDate(iotCbdimg.getCbdimgCreatedDate());
|
|
|
|
|
-// iotCbdrecog.setCbdimgRecognum(0L);
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- IotCbdrecogResVo resVo = new IotCbdrecogResVo();
|
|
|
|
|
|
|
+ IotCbdrecogInfoResVo resVo = new IotCbdrecogInfoResVo();
|
|
|
BeanUtils.copyProperties(iotCbdrecog, resVo);
|
|
BeanUtils.copyProperties(iotCbdrecog, resVo);
|
|
|
-// if (cbdrecogType.equals(EnumCbdRecogType.A.getCode())) {
|
|
|
|
|
-// resVo.setCbdimgRecognum(iotCbdimg.getCbdimgRecognum());
|
|
|
|
|
-// } else {
|
|
|
|
|
-// resVo.setCbdimgRecognum(iotCbdrecog.getCbdimgRecognum());
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// resVo.setCbdimgAddr(iotCbdimg.getCbdimgAddr());
|
|
|
|
|
-// resVo.setCbdimgPestnum(iotCbdimg.getCbdimgPestnum());
|
|
|
|
|
|
|
+ BeanUtils.copyProperties(iotCbdimg, resVo);
|
|
|
|
|
|
|
|
|
|
+ resVo.setIotCbdPestrecogList(iotCbdPestrecogList);
|
|
|
return resVo;
|
|
return resVo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -461,39 +446,44 @@ public class IotCbdrecogServiceImpl implements IIotCbdrecogService {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * @param reqVo
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public IotCbdrecogResVo againRecog(IotCbdrecogAgainReqVo reqVo) {
|
|
public IotCbdrecogResVo againRecog(IotCbdrecogAgainReqVo reqVo) {
|
|
|
- String cbdrecogType = reqVo.getCbdrecogType();
|
|
|
|
|
- String cbdimgBid = reqVo.getCbdimgBid();
|
|
|
|
|
- String devBid = reqVo.getDevBid();
|
|
|
|
|
-
|
|
|
|
|
- if (EnumCbdRecogType.findEnumByCode(cbdrecogType) == null) {
|
|
|
|
|
- throw new IotBizException(ErrorCode.FAILURE.getCode(), "识别类型错误");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- IotDevice iotDevice = iotDeviceService.selectIotDeviceByDevBid(devBid);
|
|
|
|
|
- if (iotDevice == null) {
|
|
|
|
|
- throw new IotBizException(ErrorCode.FAILURE.getCode(), "设备不存在");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
|
|
- map.put("cbdimgBid", cbdimgBid);
|
|
|
|
|
- IotCbdimg iotCbdimg = (IotCbdimg) mongoService.findOne(IotCbdimg.class, map, null, null);
|
|
|
|
|
- if (iotCbdimg == null) {
|
|
|
|
|
- throw new IotBizException(ErrorCode.FAILURE.getCode(), "图片不存在");
|
|
|
|
|
- }
|
|
|
|
|
- iotsMqProviderService.sendBaseDataToIots(IotActionEnums.DEVICE_CBD_AGAIN_RECORD,reqVo,"测报灯重新识别");
|
|
|
|
|
- //Object recogResult = iotmMqService.sendMsgAndReceive("againRecog", IotMqConstant.CBD_IMAGE_AGAIN_RECOGE, reqVo);
|
|
|
|
|
- IotCbdrecogReqVo iotCbdrecogReqVo = new IotCbdrecogReqVo();
|
|
|
|
|
- iotCbdrecogReqVo.setCbdimgBid(reqVo.getCbdimgBid());
|
|
|
|
|
- iotCbdrecogReqVo.setCbdrecogMarktype("1");
|
|
|
|
|
- iotCbdrecogReqVo.setCbdrecogType(reqVo.getCbdrecogType());
|
|
|
|
|
- return info(iotCbdrecogReqVo);
|
|
|
|
|
|
|
+ return null;
|
|
|
}
|
|
}
|
|
|
|
|
+//
|
|
|
|
|
+// /**
|
|
|
|
|
+// * @param reqVo
|
|
|
|
|
+// * @return
|
|
|
|
|
+// */
|
|
|
|
|
+// @Override
|
|
|
|
|
+// public IotCbdrecogResVo againRecog(IotCbdrecogAgainReqVo reqVo) {
|
|
|
|
|
+// String cbdrecogType = reqVo.getCbdrecogType();
|
|
|
|
|
+// String cbdimgBid = reqVo.getCbdimgBid();
|
|
|
|
|
+// String devBid = reqVo.getDevBid();
|
|
|
|
|
+//
|
|
|
|
|
+// if (EnumCbdRecogType.findEnumByCode(cbdrecogType) == null) {
|
|
|
|
|
+// throw new IotBizException(ErrorCode.FAILURE.getCode(), "识别类型错误");
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// IotDevice iotDevice = iotDeviceService.selectIotDeviceByDevBid(devBid);
|
|
|
|
|
+// if (iotDevice == null) {
|
|
|
|
|
+// throw new IotBizException(ErrorCode.FAILURE.getCode(), "设备不存在");
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// Map<String, Object> map = new HashMap<>();
|
|
|
|
|
+// map.put("cbdimgBid", cbdimgBid);
|
|
|
|
|
+// IotCbdimg iotCbdimg = (IotCbdimg) mongoService.findOne(IotCbdimg.class, map, null, null);
|
|
|
|
|
+// if (iotCbdimg == null) {
|
|
|
|
|
+// throw new IotBizException(ErrorCode.FAILURE.getCode(), "图片不存在");
|
|
|
|
|
+// }
|
|
|
|
|
+// iotsMqProviderService.sendBaseDataToIots(IotActionEnums.DEVICE_CBD_AGAIN_RECORD,reqVo,"测报灯重新识别");
|
|
|
|
|
+// //Object recogResult = iotmMqService.sendMsgAndReceive("againRecog", IotMqConstant.CBD_IMAGE_AGAIN_RECOGE, reqVo);
|
|
|
|
|
+// IotCbdrecogReqVo iotCbdrecogReqVo = new IotCbdrecogReqVo();
|
|
|
|
|
+// iotCbdrecogReqVo.setCbdimgBid(reqVo.getCbdimgBid());
|
|
|
|
|
+// iotCbdrecogReqVo.setCbdrecogMarktype("1");
|
|
|
|
|
+// iotCbdrecogReqVo.setCbdrecogType(reqVo.getCbdrecogType());
|
|
|
|
|
+// return info(iotCbdrecogReqVo);
|
|
|
|
|
+// }
|
|
|
|
|
|
|
|
public String getPestRecogImgOssUrl(String base64, String imgId) {
|
|
public String getPestRecogImgOssUrl(String base64, String imgId) {
|
|
|
if (base64.contains(",")) {
|
|
if (base64.contains(",")) {
|