package com.czxy.controller;
import com.czxy.domain.DiseasesPests;
import com.czxy.domain.Impact;
import com.czxy.domain.Preventiontreatment;
import com.czxy.domain.Record;
import com.czxy.service.*;
import com.czxy.utils.Base64Util;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletContext;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.*;
/**
* @Author 刘嘉俊
* @Date 2022/1/20
*/
@Controller
@RequestMapping("/DiseasesPests")
public class DiseasesPestsController {
@Resource
private RecordService recordService;
@Resource
private DiseasesPestsService diseasesPestsService;
@Resource
private EffectiveService effectiveService;
@Resource
private HighincidenceService highincidenceService;
@Resource
private ImpactService impactService;
@Resource
private PreventiontreatmentService preventiontreatmentService;
/**
* 存储病虫害集合对象
*/
public static List<DiseasesPests> dList;
/**
* 病虫害对象id
*/
public static String id;
/**
* 存储保存对象的历史记录
*/
public static ArrayList<Record> recordArrayList =new ArrayList<>();
/**
* 返回病虫害对象数据
* @param picFile
* @return
* @throws IOException
*/
@RequestMapping("/Basic")
public String BasicTesting(@RequestParam(value = "picFile") MultipartFile picFile,HttpServletRequest request) throws IOException {
//1、获取病虫害集合
byte[] bytes = picFile.getBytes();
try {
dList = diseasesPestsService.getDList(bytes);
}catch (Exception e){
return "redirect:/error/error.jsp";
}
System.out.println("Dlist:" + dList);
//获取相似度最高的病虫害对象
DiseasesPests diseasesPeses = diseasesPestsService.getDiseasesPeses(dList);
id = diseasesPeses.getDid();
List<Integer> elist = effectiveService.getEffective(diseasesPeses.getDid());
List<Integer> hlist = highincidenceService.getHigincidence(diseasesPeses.getDid());
List<Preventiontreatment> plist = preventiontreatmentService.getPrevention(diseasesPeses.getDid());
//获取session作用域 将数据存入 session作用域
HttpSession session = request.getSession();
//防治方法 占比
session.setAttribute("elist",elist);
//高发季节
session.setAttribute("hlist",hlist);
//病虫害对象
session.setAttribute("diseasesPeses",diseasesPeses);
//防治措施
session.setAttribute("plist",plist);
//将图片转成base64编码 存入session作用域
String encode = Base64Util.encode(bytes);
session.setAttribute("imgStr",encode);
// if (recordArrayList.isEmpty()){
// Record record = new Record();
// record.setName(diseasesPeses.getName());
// record.setTime(new Date().toLocaleString());
// record.setCount(1);
// recordArrayList.add(record);
// }
// if (!recordArrayList.isEmpty()){
// //进行遍历集合
// for (Record r : recordArrayList) {
// if (diseasesPeses.getName().equals(r.getName())) {
// r.setCount(r.getCount() + 1);
// break;
// }
// }
// }
// //设置一个开关
// boolean f=true;
// //进行遍历集合
// for (Record r : recordArrayList) {
// if (r.getName().equals(diseasesPeses.getName())){
// f=false;
// break;
// }
// }
// //对开关进行判断
// if (f){
// Record record = new Record();
// record.setName(diseasesPeses.getName());
// record.setTime(new Date().toLocaleString());
// record.setCount(1);
// recordArrayList.add(record);
// }
/**
* 对记录的录入
*/
Record record = new Record();
record.setName(diseasesPeses.getName());
record.setTime(new Date().toLocaleString());
record.setCount(1);
recordService.saveOrupdate(record);
/*请求转发会导致图片丢失 所以这里用的重定向 用的session作用域*/
return "redirect:/crops.jsp";
}
/**
* 返回病虫害集合 给饼图
* @return
*/
@RequestMapping("/harm")
@ResponseBody
public List<DiseasesPests> Harm(){
return dList;
}
/**
* 返回病虫害危害的农作物占比
* @return
*/
@RequestMapping("/Impact")
@ResponseBody
public List<Impact> Impact(){
return impactService.getImpact(id);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于AI农作物病虫害预警系统源码。基于AI的农作物病虫害预警系统,是一个助农项目。病虫害查询,通过AI图片识别,帮助农民第一时间识别病虫害原因,在通过后端算法,病害无法覆盖到植物的方方面面,再次提供植物查询处理此方面的特殊情况。虫害无法覆盖动物的方方面面,再次提供动物查询处理此方面的特殊情况。通过对某地区农民使用情况的分析,为职能部门或农民提供预警信息,从而起到防护的目的。 概述 (1)拍照识别病虫害、植物、动物 (2)提供植物病虫害知识信息和防治方法的综合解决方案 (3)提供全国范围内病虫害形势图 (4)提供病虫害查询 (5)提供资源农历表通过这个系统的建设,普通农民通过访问基于AI农作物病虫害预警系统,就可将手机对准病虫害,拍几张病虫害部位的照片后,点击识别按钮,即可鉴别出病虫害具体类型并给出防治方案。
资源推荐
资源详情
资源评论
收起资源包目录
java基于AI农作物病虫害预警系统源码.zip (1647个子文件)
DiseasesPestsController.class 5KB
DiseasesPestsController.class 5KB
HttpUtil.class 4KB
HttpUtil.class 4KB
AnimalServiceImpl.class 3KB
AnimalServiceImpl.class 3KB
DiseasesPests.class 3KB
DiseasesPests.class 3KB
PlantServiceImpl.class 3KB
PlantServiceImpl.class 3KB
AuthService.class 3KB
AuthService.class 3KB
ToKen.class 3KB
ToKen.class 3KB
DiseasesPestsServiceImpl.class 3KB
DiseasesPestsServiceImpl.class 3KB
AnimalController.class 3KB
AnimalController.class 3KB
KnowledgeServiceImpl.class 3KB
KnowledgeServiceImpl.class 3KB
PlantController.class 3KB
PlantController.class 3KB
KnowledgeController.class 3KB
KnowledgeController.class 3KB
RecordServiceImpl.class 2KB
RecordServiceImpl.class 2KB
FileUtil.class 2KB
FileUtil.class 2KB
Effective.class 2KB
Effective.class 2KB
Highincidence.class 2KB
Highincidence.class 2KB
Knowledge.class 2KB
Knowledge.class 2KB
WebInitializer.class 2KB
WebInitializer.class 2KB
MyBatisConfiguration.class 2KB
MyBatisConfiguration.class 2KB
HighincidenceServiceImpl.class 2KB
HighincidenceServiceImpl.class 2KB
EffectiveServiceImpl.class 2KB
EffectiveServiceImpl.class 2KB
Base64Util.class 2KB
Base64Util.class 2KB
HistoryController.class 2KB
HistoryController.class 2KB
EasydlImageClassify.class 2KB
EasydlImageClassify.class 2KB
Preventiontreatment.class 2KB
Preventiontreatment.class 2KB
KnowledgeVo.class 2KB
KnowledgeVo.class 2KB
Impact.class 2KB
Impact.class 2KB
PreventiontreatmentServiceImpl.class 2KB
PreventiontreatmentServiceImpl.class 2KB
SpringConfiguration.class 2KB
SpringConfiguration.class 2KB
Record.class 2KB
Record.class 2KB
Animal_AiData.class 2KB
Animal_AiData.class 2KB
Animal_Result.class 2KB
Animal_Result.class 2KB
Plant_AiData.class 2KB
Plant_AiData.class 2KB
Plant_Result.class 2KB
Plant_Result.class 2KB
AiData.class 2KB
AiData.class 2KB
ImpactServiceImpl.class 2KB
ImpactServiceImpl.class 2KB
Animal_Baike_info.class 1KB
Animal_Baike_info.class 1KB
Plant_Baike_info.class 1KB
Plant_Baike_info.class 1KB
Animal.class 1KB
Animal.class 1KB
Plant.class 1KB
Plant.class 1KB
RecordVo.class 1KB
RecordVo.class 1KB
GsonUtils.class 1KB
GsonUtils.class 1KB
DiseasesUtils.class 1KB
DiseasesUtils.class 1KB
MvcConfiguration.class 1KB
MvcConfiguration.class 1KB
AnimalService.class 777B
AnimalService.class 777B
PlantService.class 751B
PlantService.class 751B
DiseasesPestsService.class 507B
DiseasesPestsService.class 507B
KnowledgeService.class 396B
KnowledgeService.class 396B
RecordService.class 364B
RecordService.class 364B
PreventiontreatmentService.class 311B
PreventiontreatmentService.class 311B
共 1647 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17
程序员张小妍
- 粉丝: 1w+
- 资源: 3252
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 获取CPU的序列号的Python脚本
- 4354图446546546546546
- 邮箱管理技巧:减少垃圾邮件的9项实用措施
- 三汇SMG 系列D 型模拟网关用户手册,用于三汇SMG系列网关配置
- Siemens Automation Framework V1.2
- 单个IO口检测多个按键
- 汇川EASY32x固件6.3.0.0
- 高分成品毕业设计《基于SSM(Spring、Spring MVC、MyBatis)+MySQL开发个人财务管理系统》+源码+论文+说明文档+数据库
- 高分成品毕业设计《基于SSM(Spring、Spring MVC、MyBatis)+MySQL开发B2C电子商务平台》+源码+论文+说明文档+数据库
- HKJC_3in1_TR_PROD_L3.0R1An_Build10229.apk
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页