package com.ht.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.base.PageObject;
import com.ht.service.DbService;
import com.ht.vo.CarInfoVo;
import com.ht.vo.CarVo;
import com.ht.vo.FinanceVo;
import com.ht.vo.SysSetVo;
import com.ht.vo.UserVo;
import com.lgr.car.CarApi;
import com.lgr.car.RootResp;
import com.lgr.car.utils.Base64Util;
@Controller
@RequestMapping("/car")
public class CarController {
@Resource
DbService dbService;
//抓拍车牌
@RequestMapping("/paizhao")
@ResponseBody
public Map<String, Object> paizhao(HttpServletRequest request,String imageData,String extName) throws Exception{
UserVo user = (UserVo)request.getSession().getAttribute("userinfo");
CarApi faceApi = new CarApi();
RootResp resp = faceApi.carVerify(imageData);
Map<String,Object> json = new HashMap<String, Object>();
json.put("errorCode", 1);
json.put("msg", "车牌识别失败");
if(resp!=null){
//ret=0表示识别成功
if(resp.getRet()==0) {
JSONObject object = JSONObject.parseObject(resp.getData().toString());
//获取识别成功的车牌号码
String carNo = object.getString("Number");
json.put("errorCode", 0);
System.out.println("carNo="+carNo);
String savePath = request.getSession().getServletContext().getRealPath("/attached/face/")+"/";
String inPic = UUID.randomUUID()+"."+extName;
savePath += inPic;
System.out.println("savePath="+savePath);
//保存拍照图片
Base64Util.decoderBase64File(imageData, savePath);
//车辆信息,如果没有车辆信息,返回null,表示临时车,非空就是包月车(会员)
CarInfoVo carInfo = dbService.findCarbyCarId(carNo);
CarVo car = new CarVo();
car.setCardNo(carNo);
car.setStatus(0);
car.setUserName(user.getUserName());
//查未缴费的停车信息
CarVo c = dbService.findByStatus(car);
String remark= "停车收费";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//2020-04-09
// if(carInfo==null){
// json.put("errorCode", 0);
// json.put("msg", "该车辆信息不存在,请先注册车辆信息");
// return json;
// }
//--------------------------
if(carInfo == null){//临时停车
car.setFinanceType(2);//2临时
if(c==null){//入库
car.setCarFee(0);
car.setInPic(inPic);
car.setInTime(sdf.format(new Date()));
car.setRemark(remark);
car.setStatus(0);//0未收费
dbService.carIn(car);//增加停车信息
// json.put("msg","临时车【"+carNo+"】:入场" );
json.put("msg","车辆【"+carNo+"】:入场" );
}else{//出库
float carFee = 0;
SysSetVo sysSet = (SysSetVo)request.getServletContext().getAttribute("sysSet");
carFee = c.getMinutes()-sysSet.getMianfeiTime();//停车时长减去免费时长
if(carFee<=0){
car.setCarFee(0);
carFee=0;
}else{
carFee = (float)Math.ceil(carFee/sysSet.getShoufeiTime())*sysSet.getShoufeiMoney();
car.setCarFee(carFee);
}
car.setStatus(1);//1已收费
car.setOutPic(inPic);//出场图片
car.setOutTime(sdf.format(new Date()));//出场时间
car.setRemark(remark);//备注
car.setCarId(c.getCarId());
dbService.carOut(car);
if(carFee>0){
//收费
//出场收费=======
FinanceVo finance = new FinanceVo();
finance.setCarNo(carNo);
finance.setFinanceType(2);//临时车收费
finance.setOprTime(new Date());
finance.setUserName(user.getUserName());
finance.setRemark("【"+carNo+"】:出场,扣款:"+carFee+"元" );
finance.setTotalMoney(carFee);
dbService.financeAdd(finance);
//------更新账户余额----------
carInfo.setRemainMoney(-finance.getTotalMoney());
dbService.updateMoney(carInfo);
}
json.put("msg","【"+carNo+"】:出场,扣款:"+carFee+"元" );
}
}else{//包月停车
remark="包月停车";
car.setFinanceType(1);//1包月
if(c==null){//入库
car.setCarFee(0);
car.setInPic(inPic);
car.setInTime(sdf.format(new Date()));
car.setRemark(remark);
car.setStatus(0);//0未收费
dbService.carIn(car);
json.put("msg","包月车【"+carNo+"】:入场" );
}else{//出库
car.setCarFee(0);
car.setStatus(2);//2包月
car.setOutPic(inPic);
car.setOutTime(sdf.format(new Date()));
car.setRemark(remark);
car.setCarId(c.getCarId());
dbService.carOut(car);
if(carInfo.getDiffDate()>0){
json.put("msg","包月车【"+carNo+"】:出场,还剩"+carInfo.getDiffDate()+"天" );
}else{
json.put("msg","包月车【"+carNo+"】:出场,请及时缴费" );
}
}
}
}else{
json.put("errorCode", resp.getRet());
json.put("msg", "车牌识别失败");
}
}
return json;
}
//显示车辆列表界面
@RequestMapping("/carInfo")
public String carInfo(String carNo,ModelMap model) throws Exception{
if(carNo==null){
carNo="";
}
List<CarInfoVo> carInfoList = dbService.findCar(carNo);
model.addAttribute("carInfoList", carInfoList);
return "car";
}
//显示新增车辆界面
@RequestMapping(value="/carAdd",method=RequestMethod.GET)
public String carAdd(ModelMap model) throws Exception{
CarInfoVo carInfo = new CarInfoVo();
model.addAttribute("carInfo",carInfo);
return "carInfo";
}
//保存车辆信息
@RequestMapping(value="/carAdd",method=RequestMethod.POST)
public String carAdd(CarInfoVo carInfo,ModelMap model) {
try{
if(carInfo.getCarInfoId()==0){
carInfo.setRemainMoney(0);
dbService.carAdd(carInfo);
}else{
dbService.carUpdate(carInfo);
}
}catch(Exception e){
model.addAttribute("carInfo", carInfo);
model.addAttribute("msg", "该车牌对应的车辆信息已经存在");
return "carInfo";
}
//车辆信息
List<CarInfoVo> carInfoList = dbService.findCar("");
model.addAttribute("carInfoList", carInfoList);
return "car";
}
//停车信息查询
@RequestMapping("/stopCar")
public String stopCar(HttpServletRequest request,CarVo carVo,ModelMap model,PageObject pager){
//保存查询条件,供点击分页链接时使用
if(request.getParameter("cardNo")==null){
carVo = (CarVo)request.getSession().getAttribute("carVo");
}else{
request.getSession().setAttribute("carVo", carVo);
}
int cnt = dbService.count(carVo, pager);
pager.setTotalRows(cnt);
if(pager.getCur_page()>pager.getPageCount()){
pager.setCur_page(pager.getPageCount());
}
if(pager.getCur_page()<1){
pager.setCur_page(1);
}
//停车信息
List<CarVo> carList = dbService.findByCarNo(carVo, pager);
model.addAttribute("carList", carList);
model.addAttribute("pager", pager);
model.addAttribute("carVo", carVo);
return "stop";
}
//停车信息查询
@RequestMapping("/finance")
public String finance(String carNo,ModelMap model){
if(carNo==null){
carNo="";
}
//收费信息
List<FinanceVo> financeList = dbService.financeAll(carNo);
model.addAttribute("financeList", financeList);
return "finance";
}
//收费月度统计
@RequestMapping("/financeStat")
public String financeStat(int curYear,ModelMap model){
//收费信息
List<FinanceVo> financeList = dbService.financeStat(curYear);
model.addAttribute("financeList", financeList);
return "financeS
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
毕设新项目基于Java和opencv实现车牌识别的停车场收费管理系统源码.7z 毕设新项目基于Java和opencv实现车牌识别的停车场收费管理系统源码.7z毕设新项目基于Java和opencv实现车牌识别的停车场收费管理系统源码.7z 【备注】 主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java、opencv、图像识别学习者。 也可作为课程设计、期末大作业。包含:项目源码、项目说明等,该项目可以直接作为毕设、课程设计使用。 也可以用来学习参考借鉴!
资源推荐
资源详情
资源评论
收起资源包目录
毕设新项目基于Java和opencv实现车牌识别的停车场收费管理系统源码.7z (178个子文件)
CarController.class 10KB
ErrorCode.class 9KB
UserController.class 6KB
DbService.class 5KB
Security.class 4KB
SignUtil.class 3KB
CarApi.class 3KB
CarVo.class 3KB
CarInfoVo.class 2KB
FinanceVo.class 2KB
Base64Util.class 2KB
DateUtil.class 2KB
PageObject.class 2KB
UserVo.class 1KB
WeChatProperties.class 1KB
SysSetVo.class 1KB
RootResp.class 966B
MyX509TrustManager.class 889B
CarDAO.class 742B
WeChatConfig.class 656B
CarInfoDAO.class 604B
FinanceDAO.class 538B
UserDAO.class 358B
SysSetDAO.class 201B
.classpath 648B
org.eclipse.wst.common.component 453B
org.eclipse.wst.jsdt.ui.superType.container 49B
index.css 12KB
Firefox.exe 307KB
imgzoom_tb.gif 459B
imgzoom_tb.gif 459B
none.gif 43B
none.gif 43B
tencentcloud-sdk-java-3.1.62.jar 11.99MB
druid-1.1.0.jar 2.16MB
jackson-databind-2.9.4.jar 1.28MB
spring-context-4.1.5.RELEASE.jar 1002KB
spring-core-4.1.5.RELEASE.jar 985KB
spring-webmvc-4.1.5.RELEASE.jar 763KB
spring-web-4.1.5.RELEASE.jar 702KB
spring-beans-4.1.5.RELEASE.jar 692KB
mysql-connector-java-5.1.6.jar 687KB
mybatis-3.1.1.jar 636KB
spring-test-4.1.5.RELEASE.jar 491KB
fastjson-1.2.8.jar 429KB
okhttp-3.14.7.jar 420KB
spring-jdbc-4.1.5.RELEASE.jar 417KB
jstl-1.2.jar 405KB
spring-websocket-4.1.5.RELEASE.jar 379KB
spring-orm-4.1.5.RELEASE.jar 368KB
spring-aop-4.1.5.RELEASE.jar 351KB
log4j-1.2.8.jar 344KB
jackson-core-2.9.4.jar 313KB
okhttp-2.5.0.jar 310KB
spring-messaging-4.1.5.RELEASE.jar 279KB
spring-jms-4.1.5.RELEASE.jar 263KB
commons-codec-1.9.jar 258KB
spring-expression-4.1.5.RELEASE.jar 253KB
spring-tx-4.1.5.RELEASE.jar 247KB
junit-4.11.jar 239KB
gson-2.8.6.jar 235KB
commons-io-2.4.jar 181KB
spring-context-support-4.1.5.RELEASE.jar 174KB
spring-webmvc-portlet-4.1.5.RELEASE.jar 173KB
commons-dbcp-1.2.2.jar 119KB
commons-pool-1.6.jar 109KB
javax.servlet-api-3.1.0.jar 94KB
spring-oxm-4.1.5.RELEASE.jar 80KB
okio-1.12.0.jar 79KB
jackson-annotations-2.9.4.jar 65KB
commons-logging-1.1.1.jar 59KB
commons-fileupload-1.2.1.jar 56KB
spring-aspects-4.1.5.RELEASE.jar 55KB
hamcrest-core-1.3.jar 44KB
mybatis-spring-1.1.1.jar 40KB
slf4j-api-1.5.8.jar 23KB
spring-instrument-tomcat-4.1.5.RELEASE.jar 10KB
slf4j-log4j12-1.5.8.jar 9KB
spring-instrument-4.1.5.RELEASE.jar 7KB
aopalliance-1.0.jar 4KB
CarController.java 10KB
ErrorCode.java 9KB
Security.java 5KB
UserController.java 4KB
DbService.java 3KB
SignUtil.java 2KB
DateUtil.java 2KB
CarVo.java 2KB
Base64Util.java 2KB
CarInfoVo.java 1KB
CarApi.java 1KB
FinanceVo.java 1KB
PageObject.java 1KB
WeChatProperties.java 952B
SysSetVo.java 845B
UserVo.java 819B
MyX509TrustManager.java 632B
CarDAO.java 528B
CarInfoDAO.java 489B
RootResp.java 426B
共 178 条
- 1
- 2
onnx
- 粉丝: 9629
- 资源: 5597
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- training_plan_db.sql
- 2c4f3adc7be59975e81fa0c1f24cb6ea.JPG
- python爬虫入门,分享给有需要的人,仅供参考
- 722bf4c3ee17fa231ad9efcb12407aa0.JPG
- 15da2b5d3ceeddc8af2f6a7eed26d7e0.JPG
- 7ae59002be36a13ad6de32c4e633a196.JPG
- spark中文文档,spark操作手册以及使用规范
- WPF-Halcon算法平台,类似于海康威視VisionMater.zip
- Fake Location,可用来王者荣誉修改战区及企业微信定位打卡等
- the fire level NULL
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页