增加用户积分自查

master
gsy 4 months ago
parent 2f3fefaf86
commit d1251c60c0

@ -1,34 +1,38 @@
package com.nmgs.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
@Configuration
@EnableAsync
public class ThreadPoolConfig {
@Bean("PertolCafeteriaFeeThreadPool") //线程池实例名,多个线程池配置需要声明,一个线程池可有可无
public Executor executorNormal() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(4);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(10);
executor.setKeepAliveSeconds(60);
executor.setThreadNamePrefix("NORMAL--");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
executor.initialize();
return executor;
}
@Bean
public ThreadPoolTaskScheduler threadPoolTaskScheduler() {
ThreadPoolTaskScheduler ThreadPoolTaskScheduler = new ThreadPoolTaskScheduler();
// ThreadPoolTaskScheduler.initialize();
return ThreadPoolTaskScheduler;
}
package com.nmgs.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
@Configuration
@EnableAsync
public class ThreadPoolConfig {
@Bean("PertolCafeteriaFeeThreadPool") //线程池实例名,多个线程池配置需要声明,一个线程池可有可无
public Executor executorNormal() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// executor.setCorePoolSize(40);
// executor.setMaxPoolSize(4000);
// executor.setQueueCapacity(40000);
// executor.setKeepAliveSeconds(60);
executor.setCorePoolSize(40);
executor.setMaxPoolSize(4000);
executor.setQueueCapacity(40000);
executor.setKeepAliveSeconds(60);
executor.setThreadNamePrefix("NORMAL--");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
executor.initialize();
return executor;
}
@Bean
public ThreadPoolTaskScheduler threadPoolTaskScheduler() {
ThreadPoolTaskScheduler ThreadPoolTaskScheduler = new ThreadPoolTaskScheduler();
// ThreadPoolTaskScheduler.initialize();
return ThreadPoolTaskScheduler;
}
}

@ -1,118 +1,118 @@
package com.nmgs.controller;
import com.nmgs.annotation.MySysLog;
import com.nmgs.mapper.petrol.CafterMapper;
import com.nmgs.mapper.petrol.OperatorsMapper;
import com.nmgs.service.ICafterService;
import com.nmgs.util.TokenUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
@Controller
@RequestMapping("/Cafter")
@CrossOrigin(origins = "*")
public class CafterController {
public static Logger logger = LoggerFactory.getLogger(CafterController.class);
@Autowired
private ICafterService cafterService;
@Autowired
private CafterMapper cafterMapper;
@Autowired
private OperatorsMapper operatorsMapper;
/**
*
*/
@PostMapping("/getCafterPage")
@ResponseBody
@MySysLog(modelName="查询积分核销记录",methodDesc = "查询积分核销记录",methodType = "post" )
public Object getCafterPage(@RequestBody Map<String, Object> params){
return cafterService.getCafterPage(params);
}
/**
*
*/
@PostMapping("/getCafterCompanyPage")
@ResponseBody
@MySysLog(modelName="查询公司积分核销情况",methodDesc = "查询公司积分核销情况",methodType = "post" )
public Object getCafterCompanyPage(@RequestBody Map<String, Object> params){
return cafterService.getCafterCompanyPage(params);
}
/**
*
*/
@PostMapping("/getCafterCompanyServicePage")
@ResponseBody
@MySysLog(modelName="查询公司服务区积分核销情况",methodDesc = "查询公司服务区积分核销情况",methodType = "post" )
public Object getCafterCompanyServicePage(@RequestBody Map<String, Object> params){
return cafterService.getCafterCompanyServicePage(params);
}
@PostMapping("/getFiterData")
@ResponseBody
public Object getFiterData(@RequestBody Map<String, Object> params) {
System.out.println(params);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("peyTypeList", cafterMapper.selectFPeyTypeList());
resultMap.put("serviceAreaList", operatorsMapper.selectServiceAreaList());
resultMap.put("companyList", operatorsMapper.selectCompanyListList());
return resultMap;
}
/**
*
*/
@PostMapping("/cancelCafter")
@ResponseBody
public Object cancelCafter(@RequestBody Map<String, Object> params,HttpServletRequest request) {
Map<String, Object> stringObjectMap = cafterService.saveCafter(params);
//获取当前登录人更新token
String jobNumber = (String) request.getSession().getAttribute("jobNumber");
//生成新的token
String token = TokenUtil.token(jobNumber);
stringObjectMap.put("token",token);
return stringObjectMap;
}
@GetMapping("/exportCafterPageListExcle")
@ResponseBody
@MySysLog(modelName="导出积分核销数据Excel",methodDesc = "导出积分核销数据Excel",methodType = "GET" )
public void exportCafterPageListExcle(String searchForm, HttpServletResponse response){
logger.info("searchForm============"+searchForm.toString());
try {
cafterService.exportCafterPageListExcle(searchForm,response);
} catch (Exception e) {
logger.error("com.nmgs.controller.CafeController.exportCafterPageListExcle: 导出失败"+e);
}
}
package com.nmgs.controller;
import com.nmgs.annotation.MySysLog;
import com.nmgs.mapper.petrol.CafterMapper;
import com.nmgs.mapper.petrol.OperatorsMapper;
import com.nmgs.service.ICafterService;
import com.nmgs.util.TokenUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
@Controller
@RequestMapping("/Cafter")
@CrossOrigin(origins = "*")
public class CafterController {
public static Logger logger = LoggerFactory.getLogger(CafterController.class);
@Autowired
private ICafterService cafterService;
@Autowired
private CafterMapper cafterMapper;
@Autowired
private OperatorsMapper operatorsMapper;
/**
*
*/
@PostMapping("/getCafterPage")
@ResponseBody
@MySysLog(modelName="查询积分核销记录",methodDesc = "查询积分核销记录",methodType = "post" )
public Object getCafterPage(@RequestBody Map<String, Object> params){
return cafterService.getCafterPage(params);
}
/**
*
*/
@PostMapping("/getCafterCompanyPage")
@ResponseBody
@MySysLog(modelName="查询公司积分核销情况",methodDesc = "查询公司积分核销情况",methodType = "post" )
public Object getCafterCompanyPage(@RequestBody Map<String, Object> params){
return cafterService.getCafterCompanyPage(params);
}
/**
*
*/
@PostMapping("/getCafterCompanyServicePage")
@ResponseBody
@MySysLog(modelName="查询公司服务区积分核销情况",methodDesc = "查询公司服务区积分核销情况",methodType = "post" )
public Object getCafterCompanyServicePage(@RequestBody Map<String, Object> params){
return cafterService.getCafterCompanyServicePage(params);
}
@PostMapping("/getFiterData")
@ResponseBody
public Object getFiterData(@RequestBody Map<String, Object> params) {
System.out.println(params);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("peyTypeList", cafterMapper.selectFPeyTypeList());
resultMap.put("serviceAreaList", operatorsMapper.selectServiceAreaList());
resultMap.put("companyList", operatorsMapper.selectCompanyListList());
return resultMap;
}
/**
*
*/
@PostMapping("/cancelCafter")
@ResponseBody
public Object cancelCafter(@RequestBody Map<String, Object> params,HttpServletRequest request) {
Map<String, Object> stringObjectMap = cafterService.saveCafter(params);
//获取当前登录人更新token
String jobNumber = (String) request.getSession().getAttribute("jobNumber");
//生成新的token
String token = TokenUtil.token(jobNumber);
stringObjectMap.put("token",token);
return stringObjectMap;
}
@GetMapping("/exportCafterPageListExcle")
@ResponseBody
@MySysLog(modelName="导出积分核销数据Excel",methodDesc = "导出积分核销数据Excel",methodType = "GET" )
public void exportCafterPageListExcle(String searchForm, HttpServletResponse response){
logger.info("searchForm============"+searchForm.toString());
try {
cafterService.exportCafterPageListExcle(searchForm,response);
} catch (Exception e) {
logger.error("com.nmgs.controller.CafeController.exportCafterPageListExcle: 导出失败",e);
}
}
}

@ -0,0 +1,59 @@
package com.nmgs.controller;
import com.nmgs.annotation.MySysLog;
import com.nmgs.mapper.petrol.CafterMapper;
import com.nmgs.mapper.petrol.OperatorsMapper;
import com.nmgs.service.ICafterService;
import com.nmgs.service.ICheckService;
import com.nmgs.util.TokenUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
@Controller
@RequestMapping("/Check")
@CrossOrigin(origins = "*")
public class CheckController {
public static Logger logger = LoggerFactory.getLogger(CheckController.class);
@Autowired
private ICheckService checkService;
/**
*
*/
@PostMapping("/getCheckPage")
@ResponseBody
@MySysLog(modelName="查询积分检查情况",methodDesc = "查询积分检查情况",methodType = "post" )
public Object getCafterPage(@RequestBody Map<String, Object> params){
return checkService.getCheckPage(params);
}
@GetMapping("/exportCheckListExcle")
@ResponseBody
@MySysLog(modelName="导出积分检查数据Excel",methodDesc = "导出积分检查数据Excel",methodType = "GET" )
public void exportCheckListExcle(String searchForm, HttpServletResponse response){
logger.info("searchForm============"+searchForm.toString());
try {
checkService.exportCheckListExcle(searchForm,response);
} catch (Exception e) {
logger.error("com.nmgs.controller.CheckController.exportCheckListExcle: 导出失败",e);
}
}
}

@ -1,217 +1,231 @@
package com.nmgs.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.annotation.MySysLog;
import com.nmgs.entity.ServiceAreaOperators;
import com.nmgs.mapper.petrol.OperatorsMapper;
import com.nmgs.mapper.petrol.UserMapper;
import com.nmgs.service.IOperatorsService;
import com.nmgs.util.TokenUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("/ServiceAreaOperators")
@CrossOrigin(origins = "*")
public class ServiceAreaOperatorsController {
public static Logger logger = LoggerFactory.getLogger(ServiceAreaOperatorsController.class);
@Autowired
private IOperatorsService OperatorsService;
@Autowired
private OperatorsMapper operatorsMapper;
@Autowired
private UserMapper userMapper;
@PostMapping("/getOperatorsList")
@ResponseBody
@MySysLog(modelName="查询商户信息",methodDesc = "查询商户信息",methodType = "post" )
public Object getOperatorsList(@RequestBody Map<String, Object> params){
Page<ServiceAreaOperators> page = OperatorsService.getOperatorsList(params);
//判断如果当前页大于总页数,就重新查询
if((Integer)params.get("pageNum") > page.getPages()){
page = OperatorsService.getOperatorsList(params);
}
return page;
}
@PostMapping("/getFiterData")
@ResponseBody
public Object getFiterData(@RequestBody Map<String, Object> params) {
System.out.println(params);
Map<String, Object> resultMap = new HashMap<>();
if("N".equals(params.get("isChange"))){
resultMap.put("roleList", operatorsMapper.selectRoleListList());
resultMap.put("serviceAreaList", operatorsMapper.selectServiceAreaList());
resultMap.put("companyList", operatorsMapper.selectCompanyListList());
}
return resultMap;
}
@PostMapping("/getStroePicList")
@ResponseBody
public Object getStroePicList(@RequestBody Map<String, Object> params) {
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("stroePicList", operatorsMapper.stroePicList(params));
return resultMap;
}
@PostMapping("/addOperators")
@ResponseBody
@MySysLog(modelName="新增商户",methodDesc = "新增商户",methodType = "post" )
public Object addOperators(@RequestBody ServiceAreaOperators operators) {
Map<String, Object> resultMap = new HashMap<>();
try {
int res = OperatorsService.addOperators(operators);
if(res >= 0){
resultMap.put("msg","保存成功");
resultMap.put("data","");
resultMap.put("result",1);
}else if(res == -2){
resultMap.put("msg","工号已经存在,请重新输入工号");
resultMap.put("data","");
resultMap.put("result",-2);
}else{
resultMap.put("msg","保存失败");
resultMap.put("data","");
resultMap.put("result",-1);
}
return resultMap;
} catch (Exception e) {
logger.error("com.nmgs.controller.OperatorsController.addOperators: 保存数据失败 "+e);
resultMap.put("msg","保存失败");
resultMap.put("data","");
resultMap.put("result",-1);
return resultMap;
}
}
@PostMapping("/updateOperators")
@ResponseBody
@MySysLog(modelName="修改商户",methodDesc = "修改商户",methodType = "post" )
public Object updateOperators(@RequestBody ServiceAreaOperators operators) {
Map<String, Object> resultMap = new HashMap<>();
try {
int res = OperatorsService.updateOperators(operators);
if(res >= 0){
resultMap.put("msg","修改成功");
resultMap.put("data","");
resultMap.put("result",1);
}else if(res == -2){
resultMap.put("msg","工号已经存在,请重新输入工号");
resultMap.put("data","");
resultMap.put("result",-2);
}else{
resultMap.put("msg","修改失败");
resultMap.put("data","");
resultMap.put("result",-1);
}
return resultMap;
} catch (Exception e) {
logger.error("com.nmgs.controller.OperatorsController.updateOperators: 修改数据失败 "+e);
resultMap.put("msg","保存失败");
resultMap.put("data","");
resultMap.put("result",-1);
return resultMap;
}
}
@PostMapping("/deleteOperators")
@ResponseBody
@MySysLog(modelName="删除商户",methodDesc = "删除商户",methodType = "post" )
public Object deleteOperators(@RequestBody List<ServiceAreaOperators> Operators) {
Map<String, Object> resultMap = new HashMap<>();
try {
int res = OperatorsService.deleteOperators(Operators);
if(res >= 0){
resultMap.put("msg","删除成功");
resultMap.put("data","");
resultMap.put("result",1);
}else{
resultMap.put("msg","删除失败");
resultMap.put("data","");
resultMap.put("result",-1);
}
return resultMap;
} catch (Exception e) {
logger.error("com.nmgs.controller.OperatorsController.deleteOperators: 删除失败 "+e);
resultMap.put("msg","删除失败");
resultMap.put("data","");
resultMap.put("result",-1);
return resultMap;
}
}
@PostMapping("/login")
@ResponseBody
@MySysLog(modelName="商户人员登录",methodDesc = "商户人员登录",methodType = "post" )
public Object login(@RequestBody Map<String, Object> params, HttpServletRequest request){
Map<String, Object> resultMap = new HashMap<>();
String verifyInput = (String) params.get("verify");
//获取验证码和验证码存储的时间
HttpSession session = request.getSession();
String verify = (String) session.getAttribute("verify");
long currentDate = (long) session.getAttribute("currentDate");
if(null == verify || verify.isEmpty()){
resultMap.put("msg","验证码已过期,请重新输入");
resultMap.put("data","");
resultMap.put("result",-3);
return resultMap;
}
if((System.currentTimeMillis() - currentDate) > 1000 * 60 * 5){
resultMap.put("msg","验证码已过期,请重新输入");
resultMap.put("data","");
resultMap.put("result",-3);
return resultMap;
}
if(!verifyInput.equalsIgnoreCase(verify)){
resultMap.put("msg","验证码输入有误,请重新输入");
resultMap.put("data","");
resultMap.put("result",-3);
return resultMap;
}
ServiceAreaOperators login = OperatorsService.login(params);
if(null == login){
resultMap.put("msg","用户名或密码错误");
resultMap.put("data","");
resultMap.put("result",-1);
}else{
//获取推送积分url信息
List<Map<String, Object>> changeMsgPush = userMapper.getChangeMshUrl("MANAGE_MSG_PUSH");
if (changeMsgPush != null && changeMsgPush.size() > 0) {
Map<String, Object> map = (Map<String, Object>) changeMsgPush.get(0);
login.setWebSocketUrl(map.get("BAK2").toString());
}
//生成令牌返回token
String token = TokenUtil.token(login.getId()+"");
login.setToken(token);
resultMap.put("msg","登录成功");
resultMap.put("data",login);
resultMap.put("result",1);
}
return resultMap;
}
package com.nmgs.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.annotation.MySysLog;
import com.nmgs.entity.ServiceAreaOperators;
import com.nmgs.mapper.petrol.OperatorsMapper;
import com.nmgs.mapper.petrol.UserMapper;
import com.nmgs.service.IOperatorsService;
import com.nmgs.util.TokenUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("/ServiceAreaOperators")
@CrossOrigin(origins = "*")
public class ServiceAreaOperatorsController {
public static Logger logger = LoggerFactory.getLogger(ServiceAreaOperatorsController.class);
@Autowired
private IOperatorsService OperatorsService;
@Autowired
private OperatorsMapper operatorsMapper;
@Autowired
private UserMapper userMapper;
@PostMapping("/getOperatorsList")
@ResponseBody
@MySysLog(modelName="查询商户信息",methodDesc = "查询商户信息",methodType = "post" )
public Object getOperatorsList(@RequestBody Map<String, Object> params){
Page<ServiceAreaOperators> page = OperatorsService.getOperatorsList(params);
//判断如果当前页大于总页数,就重新查询
if((Integer)params.get("pageNum") > page.getPages()){
page = OperatorsService.getOperatorsList(params);
}
return page;
}
@PostMapping("/getFiterData")
@ResponseBody
public Object getFiterData(@RequestBody Map<String, Object> params) {
System.out.println(params);
Map<String, Object> resultMap = new HashMap<>();
if("N".equals(params.get("isChange"))){
resultMap.put("roleList", operatorsMapper.selectRoleListList());
resultMap.put("serviceAreaList", operatorsMapper.selectServiceAreaList());
resultMap.put("companyList", operatorsMapper.selectCompanyListList());
}
return resultMap;
}
@PostMapping("/getStroePicList")
@ResponseBody
public Object getStroePicList(@RequestBody Map<String, Object> params) {
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("stroePicList", operatorsMapper.stroePicList(params));
return resultMap;
}
@PostMapping("/addOperators")
@ResponseBody
@MySysLog(modelName="新增商户",methodDesc = "新增商户",methodType = "post" )
public Object addOperators(@RequestBody ServiceAreaOperators operators) {
Map<String, Object> resultMap = new HashMap<>();
try {
int res = OperatorsService.addOperators(operators);
if(res >= 0){
resultMap.put("msg","保存成功");
resultMap.put("data","");
resultMap.put("result",1);
}else if(res == -2){
resultMap.put("msg","工号已经存在,请重新输入工号");
resultMap.put("data","");
resultMap.put("result",-2);
}else{
resultMap.put("msg","保存失败");
resultMap.put("data","");
resultMap.put("result",-1);
}
return resultMap;
} catch (Exception e) {
logger.error("com.nmgs.controller.OperatorsController.addOperators: 保存数据失败 ",e);
resultMap.put("msg","保存失败");
resultMap.put("data","");
resultMap.put("result",-1);
return resultMap;
}
}
@PostMapping("/updateOperators")
@ResponseBody
@MySysLog(modelName="修改商户",methodDesc = "修改商户",methodType = "post" )
public Object updateOperators(@RequestBody ServiceAreaOperators operators) {
Map<String, Object> resultMap = new HashMap<>();
try {
int res = OperatorsService.updateOperators(operators);
if(res >= 0){
resultMap.put("msg","修改成功");
resultMap.put("data","");
resultMap.put("result",1);
}else if(res == -2){
resultMap.put("msg","工号已经存在,请重新输入工号");
resultMap.put("data","");
resultMap.put("result",-2);
}else{
resultMap.put("msg","修改失败");
resultMap.put("data","");
resultMap.put("result",-1);
}
return resultMap;
} catch (Exception e) {
logger.error("com.nmgs.controller.OperatorsController.updateOperators: 修改数据失败 ",e);
resultMap.put("msg","保存失败");
resultMap.put("data","");
resultMap.put("result",-1);
return resultMap;
}
}
@PostMapping("/deleteOperators")
@ResponseBody
@MySysLog(modelName="删除商户",methodDesc = "删除商户",methodType = "post" )
public Object deleteOperators(@RequestBody List<ServiceAreaOperators> Operators) {
Map<String, Object> resultMap = new HashMap<>();
try {
int res = OperatorsService.deleteOperators(Operators);
if(res >= 0){
resultMap.put("msg","删除成功");
resultMap.put("data","");
resultMap.put("result",1);
}else{
resultMap.put("msg","删除失败");
resultMap.put("data","");
resultMap.put("result",-1);
}
return resultMap;
} catch (Exception e) {
logger.error("com.nmgs.controller.OperatorsController.deleteOperators: 删除失败 ",e);
resultMap.put("msg","删除失败");
resultMap.put("data","");
resultMap.put("result",-1);
return resultMap;
}
}
@PostMapping("/login")
@ResponseBody
@MySysLog(modelName="商户人员登录",methodDesc = "商户人员登录",methodType = "post" )
public Object login(@RequestBody Map<String, Object> params, HttpServletRequest request){
Map<String, Object> resultMap = new HashMap<>();
String verifyInput = (String) params.get("verify");
//获取验证码和验证码存储的时间
HttpSession session = request.getSession();
String verify = (String) session.getAttribute("verify");
long currentDate = (long) session.getAttribute("currentDate");
if(null == verify || verify.isEmpty()){
resultMap.put("msg","验证码已过期,请重新输入");
resultMap.put("data","");
resultMap.put("result",-3);
return resultMap;
}
if((System.currentTimeMillis() - currentDate) > 1000 * 60 * 5){
resultMap.put("msg","验证码已过期,请重新输入");
resultMap.put("data","");
resultMap.put("result",-3);
return resultMap;
}
if(!verifyInput.equalsIgnoreCase(verify)){
resultMap.put("msg","验证码输入有误,请重新输入");
resultMap.put("data","");
resultMap.put("result",-3);
return resultMap;
}
ServiceAreaOperators login = OperatorsService.login(params);
if(null == login){
resultMap.put("msg","用户名或密码错误");
resultMap.put("data","");
resultMap.put("result",-1);
}else{
//获取推送积分url信息
List<Map<String, Object>> changeMsgPush = userMapper.getChangeMshUrl("MANAGE_MSG_PUSH");
if (changeMsgPush != null && changeMsgPush.size() > 0) {
Map<String, Object> map = (Map<String, Object>) changeMsgPush.get(0);
login.setWebSocketUrl(map.get("BAK2").toString());
}
//生成令牌返回token
String token = TokenUtil.token(login.getId()+"");
login.setToken(token);
resultMap.put("msg","登录成功");
resultMap.put("data",login);
resultMap.put("result",1);
}
return resultMap;
}
@GetMapping("/exportOperationListExcle")
@ResponseBody
@MySysLog(modelName="导出商户信息数据Excel",methodDesc = "导出商户信息数据Excel",methodType = "GET" )
public void exportOperationListExcle(String searchForm, HttpServletResponse response){
logger.info("searchForm============"+searchForm.toString());
try {
OperatorsService.exportOperationListExcle(searchForm,response);
} catch (Exception e) {
logger.error("com.nmgs.controller.OperatorsController.exportOperationListExcle: 导出失败",e);
}
}
}

@ -52,4 +52,11 @@ public class IntegralCheck {
private BigDecimal resttegraltionadd;
@TableField(value = "OPERTOR")
private String opertor;
@TableField(exist = false)
private String userRealName;
@TableField(exist = false)
private String isRight;
}

File diff suppressed because it is too large Load Diff

@ -1,374 +1,374 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nmgs.mapper.bak.UserVehicleBakMapper">
<select id="getUserVehicleInfo" resultType="com.nmgs.entity.UserVehicle">
select
vehicle.USERID,
vehicle.ACARNO,
vehicle.CHECKUSERNAME,
vehicle.CHECKUSERNUMBER,
vehicle.LICENSEPICNAME,
vehicle.PERMITPICNAME,
vehicle.VEHICLEPICNAME,
vehicle.CERTIFICATION,
vehicle.CREATETIME,
vehicle.CANCELTIME,
status.VALUE as certificationName,
u.REALNAME as userRealName ,
u.IDNUMBER as userIdNumber,
u.openId as openId,
<if test="params.DBTYPE == 2">
CONCAT(SUBSTR(vehicle.ACARNO,0,INSTR(vehicle.ACARNO,'_')-1),CONCAT(CONCAT('(',color.TEXT),')')) as ACARNOSHOW,
</if>
<if test="params.DBTYPE == 4">
CONCAT(SUBSTR(vehicle.ACARNO,1,INSTR(vehicle.ACARNO,'_')-1),CONCAT(CONCAT('(',color.TEXT),')')) as ACARNOSHOW,
</if>
vehicle.OPERATIONTIME,
vehicle.operationUser,
login.USERNAME as operationUserName,
vehicle.UNPASSINFO
from USER_VEHICLE_TABLE vehicle
left join CERTIFICATION_STATUS_TEXT status on status.ID = vehicle.CERTIFICATION
left join WEIXN_USER_TABLE u on u.ID = vehicle.USERID
left join platecolor_text color on color.VALUE = SUBSTR(vehicle.ACARNO,INSTR(vehicle.ACARNO,'_')+1)
left join WEIXIN_GT_USER login on login.ID = vehicle.operationUser
<where>
<!-- 用户id查询 -->
<if test="params.userId != null and params.userId != ''">
AND u.ID LIKE #{params.userId}
</if>
<!-- 用户真实姓名查询 -->
<if test="params.realNameQuery != null and params.realNameQuery != ''">
<bind name="realNameQuery" value="'%'+params.realNameQuery+'%'"/>
AND u.REALNAME LIKE #{realNameQuery}
</if>
<!-- 身份证号查询 -->
<if test="params.idNumberQuery != null and params.idNumberQuery != ''">
<bind name="idNumberQuery" value="'%'+params.idNumberQuery+'%'"/>
AND u.IDNUMBER LIKE #{idNumberQuery}
</if>
<!-- 审核状态 -->
<!-- <if test="params.statusQuery != null">-->
<!-- AND vehicle.CERTIFICATION = #{params.statusQuery}-->
<!-- </if>-->
<!-- 审核状态 -->
<if test="params.statusQuery != null and params.statusQuery.size() > 0">
AND vehicle.CERTIFICATION in
<foreach collection="params.statusQuery" open="(" separator="," close=")" item="status" index="index">
#{status}
</foreach>
</if>
<!-- 车牌号 -->
<if test="params.acarNoQuery != null and params.acarNoQuery != ''">
<bind name="acarNoQuery" value="'%'+params.acarNoQuery+'%'"/>
AND vehicle.ACARNO LIKE #{acarNoQuery}
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.startTime != null and params.startTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME >= dateadd(day,0,#{params.startTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME >= STR_TO_DATE(#{params.startTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.endTime != null and params.endTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME &lt;= dateadd(day,0,#{params.endTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME &lt;= TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME &lt;= TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME &lt;= STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.cancelStartTime != null and params.cancelStartTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CANCELTIME >= dateadd(day,0,#{params.cancelStartTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CANCELTIME >= TO_DATE(#{params.cancelStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CANCELTIME >= TO_DATE(#{params.cancelStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CANCELTIME >= STR_TO_DATE(#{params.cancelStartTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.cancelEndTime != null and params.cancelEndTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CANCELTIME &lt;= dateadd(day,0,#{params.cancelEndTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CANCELTIME &lt;= TO_DATE(#{params.cancelEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CANCELTIME &lt;= TO_DATE(#{params.cancelEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CANCELTIME &lt;= STR_TO_DATE(#{params.cancelEndTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.operationStartTime != null and params.operationStartTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME >= dateadd(day,0,#{params.operationStartTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.operationStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.operationStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME >= STR_TO_DATE(#{params.operationStartTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.operationEndTime != null and params.operationEndTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME &lt;= dateadd(day,0,#{params.operationEndTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME &lt;= TO_DATE(#{params.operationEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME &lt;= TO_DATE(#{params.operationEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME &lt;= STR_TO_DATE(#{params.operationEndTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
order by vehicle.CREATETIME desc
</select>
<select id="getUserVehiclePic" resultType="com.nmgs.entity.UserVehicle">
select
vehicle.LICENSEPIC,
vehicle.PERMITPIC,
vehicle.VEHICLEPIC
from USER_VEHICLE_TABLE vehicle
<where>
and vehicle.USERID = #{params.userId}
and vehicle.ACARNO=#{params.acarNo}
<!-- 统计日期(终止)查询条件 -->
<if test="params.createTime != null and params.createTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME = dateadd(day,0,#{params.createTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME = TO_DATE(#{params.createTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME = TO_DATE(#{params.createTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME = STR_TO_DATE(#{params.createTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
</select>
<update id="checkUserVehiclePass">
update USER_VEHICLE_TABLE vehicle set vehicle.CERTIFICATION = 1,UNPASSINFO = '',OPERATIONUSER=#{params.loginId},
<if test="params.BakDBType == 1">
OPERATIONTIME = dateadd(day,0,#{params.operationTime})
</if>
<if test="params.BakDBType == 2">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.BakDBType == 3">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.BakDBType == 4">
OPERATIONTIME = STR_TO_DATE(#{params.operationTime}, '%Y-%m-%d %H:%i:%s')
</if>
where
<foreach collection="params.userVehicles" open="(" separator="or" close=")" item="userVehicle" index="index">
(vehicle.USERID = #{userVehicle.userId} and vehicle.ACARNO=#{userVehicle.acarNo} and vehicle.CREATETIME = #{userVehicle.createTime})
</foreach>
</update>
<update id="checkUserVehicleNoPass" >
update USER_VEHICLE_TABLE vehicle set vehicle.CERTIFICATION = 3,UNPASSINFO = #{params.unPassInfo},OPERATIONUSER=#{params.loginId},
<if test="params.BakDBType == 1">
OPERATIONTIME = dateadd(day,0,#{params.operationTime})
</if>
<if test="params.BakDBType == 2">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.BakDBType == 3">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.BakDBType == 4">
OPERATIONTIME = STR_TO_DATE(#{params.operationTime}, '%Y-%m-%d %H:%i:%s')
</if>
where
<foreach collection="params.userVehicles" open="(" separator="or" close=")" item="userVehicle" index="index">
(vehicle.USERID = #{userVehicle.userId} and vehicle.ACARNO=#{userVehicle.acarNo} and vehicle.CREATETIME = #{userVehicle.createTime})
</foreach>
</update>
<select id="selectStatusList" resultType="java.util.HashMap">
SELECT status.ID,status.VALUE FROM certification_status_text status where status.ID != 5 order by status.ID
</select>
<select id="getVehiclePassTotal" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select
count(vehicle.ACARNO) as TOTALCOUNT
from USER_VEHICLE_TABLE vehicle
<where>
and vehicle.CERTIFICATION not in (0,2,3)
<!-- 统计日期(起始)查询条件 -->
<if test="params.startTime != null and params.startTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME >= dateadd(day,0,#{params.startTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME >= STR_TO_DATE(#{params.startTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.endTime != null and params.endTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME &lt; dateadd(day,0,#{params.endTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME &lt; STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
</select>
<select id="getUserVehicleGrow" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select PAYTIME as PAYTIME,sum(TOTALCOUNT) as TOTALCOUNT,(select count(u2.ACARNO) from USER_VEHICLE_TABLE u2 where u2.CERTIFICATION not in (0,2,3)
AND u2.OPERATIONTIME >= TO_DATE('2024-09-08', 'SYYYY-MM-DD HH24:MI:SS') AND u2.OPERATIONTIME &lt;= TO_DATE(a.PAYTIME, 'SYYYY-MM-DD HH24:MI:SS') ) as LEIJI from (
select
TO_CHAR(u.OPERATIONTIME, 'YYYY-MM-DD') as PAYTIME,
count(u.ACARNO) as TOTALCOUNT
from USER_VEHICLE_TABLE u
<where>
and u.CERTIFICATION not in (0,2,3)
<!-- 统计日期(起始)查询条件 -->
<if test="params.classDateBeginQuery != null and params.classDateBeginQuery != ''">
<if test="params.DBTYPE == 1">
AND u.OPERATIONTIME >= dateadd(day,0,#{params.classDateBeginQuery})
</if>
<if test="params.DBTYPE == 2">
AND u.OPERATIONTIME >= TO_DATE(#{params.classDateBeginQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND u.OPERATIONTIME >= TO_DATE(#{params.classDateBeginQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND u.OPERATIONTIME >= STR_TO_DATE(#{params.classDateBeginQuery}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.classDateEndQuery != null and params.classDateEndQuery != ''">
<if test="params.DBTYPE == 1">
AND u.OPERATIONTIME &lt;= dateadd(day,0,#{params.classDateEndQuery})
</if>
<if test="params.DBTYPE == 2">
AND u.OPERATIONTIME &lt;= TO_DATE(#{params.classDateEndQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND u.OPERATIONTIME &lt;= TO_DATE(#{params.classDateEndQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND u.OPERATIONTIME &lt;= STR_TO_DATE(#{params.classDateEndQuery}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
GROUP BY u.OPERATIONTIME) a GROUP BY PAYTIME order by PAYTIME
</select>
<select id="selectCarNoColorList" resultType="java.util.HashMap">
SELECT *
FROM PLATECOLOR_TEXT color order by color.VALUE
</select>
<select id="getAllVehicle" resultType="java.util.HashMap">
select
ACARNO as ACARNO,
min(CREATETIME) as CREATETIME
from USER_VEHICLE_TABLE vehicle where CERTIFICATION not in (0,2,3) and CREATETIME >= TO_DATE('2024-09-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') and CREATETIME &lt;= TO_DATE('2025-03-05 15:00:00', 'SYYYY-MM-DD HH24:MI:SS') GROUP BY ACARNO
</select>
<select id="getVehicleDivFee" resultType="java.util.HashMap">
select COALESCE(sum(DIV_FEE),0) as DIV_FEE from DIV_PASSID_ALL_ROAD road where road.CLASSDATE >=TO_DATE(#{params.classDateStart}, 'SYYYY-MM-DD HH24:MI:SS') AND road.CLASSDATE &lt;= TO_DATE(#{params.classDateEnd}, 'SYYYY-MM-DD HH24:MI:SS') and ROADID in ('G0006','G0065') and VEHICLEID=#{params.ACARNO} GROUP BY VEHICLEID
</select>
<select id="getVehicleIntegral" resultType="java.util.HashMap">
select COALESCE(sum(PAYINTEGRATION),0) as PAYINTEGRATION from INTEGRATION_LIST_TABLE list where list.ACARNO = #{params.ACARNO} and list.PAYTYPE = 'AM'
</select>
<delete id="deleteData" >
delete from OUT_PORT_LAST_IN_PORT_COLLECTION where rowid in (select max(p.rowid) from OUT_PORT_LAST_IN_PORT_COLLECTION p ,(
select ESTANO,EXTIME,ACARNO from (select ESTANO,EXTIME,ACARNO,count(1) as count from OUT_PORT_LAST_IN_PORT_COLLECTION GROUP BY ESTANO,EXTIME,ACARNO) a
where count > 1
) a where a.ESTANO = p.ESTANO and a.EXTIME = p.EXTIME and a.ACARNO = p.ACARNO GROUP BY p.ESTANO,p.EXTIME,p.ACARNO)
</delete>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nmgs.mapper.bak.UserVehicleBakMapper">
<select id="getUserVehicleInfo" resultType="com.nmgs.entity.UserVehicle">
select
vehicle.USERID,
vehicle.ACARNO,
vehicle.CHECKUSERNAME,
vehicle.CHECKUSERNUMBER,
vehicle.LICENSEPICNAME,
vehicle.PERMITPICNAME,
vehicle.VEHICLEPICNAME,
vehicle.CERTIFICATION,
vehicle.CREATETIME,
vehicle.CANCELTIME,
status.VALUE as certificationName,
u.REALNAME as userRealName ,
u.IDNUMBER as userIdNumber,
u.openId as openId,
<if test="params.DBTYPE == 2">
CONCAT(SUBSTR(vehicle.ACARNO,0,INSTR(vehicle.ACARNO,'_')-1),CONCAT(CONCAT('(',color.TEXT),')')) as ACARNOSHOW,
</if>
<if test="params.DBTYPE == 4">
CONCAT(SUBSTR(vehicle.ACARNO,1,INSTR(vehicle.ACARNO,'_')-1),CONCAT(CONCAT('(',color.TEXT),')')) as ACARNOSHOW,
</if>
vehicle.OPERATIONTIME,
vehicle.operationUser,
login.USERNAME as operationUserName,
vehicle.UNPASSINFO
from USER_VEHICLE_TABLE vehicle
left join CERTIFICATION_STATUS_TEXT status on status.ID = vehicle.CERTIFICATION
left join WEIXN_USER_TABLE u on u.ID = vehicle.USERID
left join platecolor_text color on color.VALUE = SUBSTR(vehicle.ACARNO,INSTR(vehicle.ACARNO,'_')+1)
left join WEIXIN_GT_USER login on login.ID = vehicle.operationUser
<where>
<!-- 用户id查询 -->
<if test="params.userId != null and params.userId != ''">
AND u.ID LIKE #{params.userId}
</if>
<!-- 用户真实姓名查询 -->
<if test="params.realNameQuery != null and params.realNameQuery != ''">
<bind name="realNameQuery" value="'%'+params.realNameQuery+'%'"/>
AND u.REALNAME LIKE #{realNameQuery}
</if>
<!-- 身份证号查询 -->
<if test="params.idNumberQuery != null and params.idNumberQuery != ''">
<bind name="idNumberQuery" value="'%'+params.idNumberQuery+'%'"/>
AND u.IDNUMBER LIKE #{idNumberQuery}
</if>
<!-- 审核状态 -->
<!-- <if test="params.statusQuery != null">-->
<!-- AND vehicle.CERTIFICATION = #{params.statusQuery}-->
<!-- </if>-->
<!-- 审核状态 -->
<if test="params.statusQuery != null and params.statusQuery.size() > 0">
AND vehicle.CERTIFICATION in
<foreach collection="params.statusQuery" open="(" separator="," close=")" item="status" index="index">
#{status}
</foreach>
</if>
<!-- 车牌号 -->
<if test="params.acarNoQuery != null and params.acarNoQuery != ''">
<bind name="acarNoQuery" value="'%'+params.acarNoQuery+'%'"/>
AND vehicle.ACARNO LIKE #{acarNoQuery}
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.startTime != null and params.startTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME >= dateadd(day,0,#{params.startTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME >= STR_TO_DATE(#{params.startTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.endTime != null and params.endTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME &lt;= dateadd(day,0,#{params.endTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME &lt;= TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME &lt;= TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME &lt;= STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.cancelStartTime != null and params.cancelStartTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CANCELTIME >= dateadd(day,0,#{params.cancelStartTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CANCELTIME >= TO_DATE(#{params.cancelStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CANCELTIME >= TO_DATE(#{params.cancelStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CANCELTIME >= STR_TO_DATE(#{params.cancelStartTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.cancelEndTime != null and params.cancelEndTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CANCELTIME &lt;= dateadd(day,0,#{params.cancelEndTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CANCELTIME &lt;= TO_DATE(#{params.cancelEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CANCELTIME &lt;= TO_DATE(#{params.cancelEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CANCELTIME &lt;= STR_TO_DATE(#{params.cancelEndTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.operationStartTime != null and params.operationStartTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME >= dateadd(day,0,#{params.operationStartTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.operationStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.operationStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME >= STR_TO_DATE(#{params.operationStartTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.operationEndTime != null and params.operationEndTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME &lt;= dateadd(day,0,#{params.operationEndTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME &lt;= TO_DATE(#{params.operationEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME &lt;= TO_DATE(#{params.operationEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME &lt;= STR_TO_DATE(#{params.operationEndTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
order by vehicle.CREATETIME desc
</select>
<select id="getUserVehiclePic" resultType="com.nmgs.entity.UserVehicle">
select
vehicle.LICENSEPIC,
vehicle.PERMITPIC,
vehicle.VEHICLEPIC
from USER_VEHICLE_TABLE vehicle
<where>
and vehicle.USERID = #{params.userId}
and vehicle.ACARNO=#{params.acarNo}
<!-- 统计日期(终止)查询条件 -->
<if test="params.createTime != null and params.createTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME = dateadd(day,0,#{params.createTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME = TO_DATE(#{params.createTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME = TO_DATE(#{params.createTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME = STR_TO_DATE(#{params.createTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
</select>
<update id="checkUserVehiclePass">
update USER_VEHICLE_TABLE vehicle set vehicle.CERTIFICATION = 1,UNPASSINFO = '',OPERATIONUSER=#{params.loginId},
<if test="params.BakDBType == 1">
OPERATIONTIME = dateadd(day,0,#{params.operationTime})
</if>
<if test="params.BakDBType == 2">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.BakDBType == 3">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.BakDBType == 4">
OPERATIONTIME = STR_TO_DATE(#{params.operationTime}, '%Y-%m-%d %H:%i:%s')
</if>
where
<foreach collection="params.userVehicles" open="(" separator="or" close=")" item="userVehicle" index="index">
(vehicle.USERID = #{userVehicle.userId} and vehicle.ACARNO=#{userVehicle.acarNo} and vehicle.CREATETIME = #{userVehicle.createTime})
</foreach>
</update>
<update id="checkUserVehicleNoPass" >
update USER_VEHICLE_TABLE vehicle set vehicle.CERTIFICATION = 3,UNPASSINFO = #{params.unPassInfo},OPERATIONUSER=#{params.loginId},
<if test="params.BakDBType == 1">
OPERATIONTIME = dateadd(day,0,#{params.operationTime})
</if>
<if test="params.BakDBType == 2">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.BakDBType == 3">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.BakDBType == 4">
OPERATIONTIME = STR_TO_DATE(#{params.operationTime}, '%Y-%m-%d %H:%i:%s')
</if>
where
<foreach collection="params.userVehicles" open="(" separator="or" close=")" item="userVehicle" index="index">
(vehicle.USERID = #{userVehicle.userId} and vehicle.ACARNO=#{userVehicle.acarNo} and vehicle.CREATETIME = #{userVehicle.createTime})
</foreach>
</update>
<select id="selectStatusList" resultType="java.util.HashMap">
SELECT status.ID,status.VALUE FROM certification_status_text status where status.ID != 5 order by status.ID
</select>
<select id="getVehiclePassTotal" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select
count(vehicle.ACARNO) as TOTALCOUNT
from USER_VEHICLE_TABLE vehicle
<where>
and vehicle.CERTIFICATION not in (0,2,3)
<!-- 统计日期(起始)查询条件 -->
<if test="params.startTime != null and params.startTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME >= dateadd(day,0,#{params.startTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME >= STR_TO_DATE(#{params.startTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.endTime != null and params.endTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME &lt; dateadd(day,0,#{params.endTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME &lt; STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
</select>
<select id="getUserVehicleGrow" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select PAYTIME as PAYTIME,sum(TOTALCOUNT) as TOTALCOUNT,(select count(u2.ACARNO) from USER_VEHICLE_TABLE u2 where u2.CERTIFICATION not in (0,2,3)
AND u2.OPERATIONTIME >= TO_DATE('2024-09-08', 'SYYYY-MM-DD HH24:MI:SS') AND u2.OPERATIONTIME &lt;= TO_DATE(a.PAYTIME, 'SYYYY-MM-DD HH24:MI:SS') ) as LEIJI from (
select
TO_CHAR(u.OPERATIONTIME, 'YYYY-MM-DD') as PAYTIME,
count(u.ACARNO) as TOTALCOUNT
from USER_VEHICLE_TABLE u
<where>
and u.CERTIFICATION not in (0,2,3)
<!-- 统计日期(起始)查询条件 -->
<if test="params.classDateBeginQuery != null and params.classDateBeginQuery != ''">
<if test="params.DBTYPE == 1">
AND u.OPERATIONTIME >= dateadd(day,0,#{params.classDateBeginQuery})
</if>
<if test="params.DBTYPE == 2">
AND u.OPERATIONTIME >= TO_DATE(#{params.classDateBeginQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND u.OPERATIONTIME >= TO_DATE(#{params.classDateBeginQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND u.OPERATIONTIME >= STR_TO_DATE(#{params.classDateBeginQuery}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.classDateEndQuery != null and params.classDateEndQuery != ''">
<if test="params.DBTYPE == 1">
AND u.OPERATIONTIME &lt;= dateadd(day,0,#{params.classDateEndQuery})
</if>
<if test="params.DBTYPE == 2">
AND u.OPERATIONTIME &lt;= TO_DATE(#{params.classDateEndQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND u.OPERATIONTIME &lt;= TO_DATE(#{params.classDateEndQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND u.OPERATIONTIME &lt;= STR_TO_DATE(#{params.classDateEndQuery}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
GROUP BY u.OPERATIONTIME) a GROUP BY PAYTIME order by PAYTIME
</select>
<select id="selectCarNoColorList" resultType="java.util.HashMap">
SELECT *
FROM PLATECOLOR_TEXT color order by color.VALUE
</select>
<select id="getAllVehicle" resultType="java.util.HashMap">
select
ACARNO as ACARNO,
min(CREATETIME) as CREATETIME
from USER_VEHICLE_TABLE vehicle where CERTIFICATION not in (0,2,3) and CREATETIME >= TO_DATE('2024-09-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') and CREATETIME &lt;= TO_DATE('2025-03-05 15:00:00', 'SYYYY-MM-DD HH24:MI:SS') GROUP BY ACARNO
</select>
<select id="getVehicleDivFee" resultType="java.util.HashMap">
select COALESCE(sum(DIV_FEE),0) as DIV_FEE from DIV_PASSID_ALL_ROAD road where road.CLASSDATE >=TO_DATE(#{params.classDateStart}, 'SYYYY-MM-DD HH24:MI:SS') AND road.CLASSDATE &lt;= TO_DATE(#{params.classDateEnd}, 'SYYYY-MM-DD HH24:MI:SS') and ROADID in ('G0006','G0065') and VEHICLEID=#{params.ACARNO} GROUP BY VEHICLEID
</select>
<select id="getVehicleIntegral" resultType="java.util.HashMap">
select COALESCE(sum(PAYINTEGRATION),0) as PAYINTEGRATION from INTEGRATION_LIST_TABLE list where list.ACARNO = #{params.ACARNO} and list.PAYTYPE in ('AM','GREENBAK')
</select>
<delete id="deleteData" >
delete from OUT_PORT_LAST_IN_PORT_COLLECTION where rowid in (select max(p.rowid) from OUT_PORT_LAST_IN_PORT_COLLECTION p ,(
select ESTANO,EXTIME,ACARNO from (select ESTANO,EXTIME,ACARNO,count(1) as count from OUT_PORT_LAST_IN_PORT_COLLECTION GROUP BY ESTANO,EXTIME,ACARNO) a
where count > 1
) a where a.ESTANO = p.ESTANO and a.EXTIME = p.EXTIME and a.ACARNO = p.ACARNO GROUP BY p.ESTANO,p.EXTIME,p.ACARNO)
</delete>
</mapper>

@ -15,5 +15,13 @@ import java.util.Map;
@Mapper
public interface IntegralCheckMapper extends MppBaseMapper<IntegralCheck> {
/**
*
* @param page
* @param params
* @return
*/
Page<IntegralCheck> getCheckPage(Page<IntegralCheck> page, @Param("params") Map<String, Object> params);
}

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nmgs.mapper.petrol.IntegralCheckMapper">
<select id="getMaxId" resultType="java.lang.Integer">
SELECT MAX(ID) FROM cafter_table
</select>
<select id="getCheckPage" resultType="com.nmgs.entity.IntegralCheck">
select
ic.USERID,
ic.OPENID,
CONCAT(u.REALNAME,CONCAT(CONCAT('(',u.IDNUMBER),')')) as userRealName,
ic.CLASSDATE ,
ic.ENABLEINTEGRATION,
ic.OGINTEGRATION,
ic.CPINTEGRATION,
ic.RESTINTEGRALTIONBEFORE,
ic.OGINTEGRATIONBEFORE,
ic.CPINTEGRATIONBEFORE,
ic.RESTINTEGRALTIONDECODE,
ic.OGINTEGRATIONDECODE,
ic.CPINTEGRATIONDECODE,
ic.OGINTEGRATIONADD,
ic.CPINTEGRATIONADD,
ic.RESTTEGRALTIONADD,
OPERTOR
from INTEGRAL_CHECK ic
left join weixn_user_table u on ic.OPENID = u.OPENID
<where>
<!-- 统计日期(起始)查询条件 -->
<if test="params.startTime != null and params.startTime != ''">
<if test="params.DBTYPE == 1">
AND ic.CLASSDATE = dateadd(day,0,#{params.startTime})
</if>
<if test="params.DBTYPE == 2">
AND ic.CLASSDATE = TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND ic.CLASSDATE = TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND ic.CLASSDATE = STR_TO_DATE(#{params.startTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 用户姓名查询条件 -->
<if test="params.userRealNameQuery != null and params.userRealNameQuery != ''">
<bind name="userRealNameQuery" value="'%'+params.userRealNameQuery+'%'"/>
AND u.REALNAME LIKE #{userRealNameQuery}
</if>
<!-- 用户身份证查询条件 -->
<if test="params.userIdNumberQuery != null and params.userIdNumberQuery != ''">
AND u.IDNUMBER = #{params.userIdNumberQuery}
</if>
</where>
order by OPENID,OPERTOR
</select>
</mapper>

@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Select;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -136,16 +137,30 @@ public interface IntegrationListMapper extends MppBaseMapper<IntegrationList> {
*/
List<IntegrationList> getNewIntegralByUserid(@Param("params") Map<String,Object> params);
/**
* 退,
* 退, BMP
* @param params
* @return
*/
List<IntegrationList> getTotalIntegralByPeriod(@Param("params") Map<String,Object> params);
/**
* 退
* 退 BMP
* @param params
* @return
*/
List<IntegrationList> getTotalTKIntegralByPeriod(@Param("params") Map<String,Object> params);
/**
*
* @param paramYesterday
* @return
*/
List<IntegrationList> getUserIntegration(@Param("params") Map<String, Object> paramYesterday);
/**
*
* @param paramSum
* @return
*/
List<HashMap<String, Object>> getUserYesterdayAddIntegation(@Param("params") Map<String, Object> paramSum);
}

@ -148,7 +148,7 @@
integration_list_table list
left join platecolor_text color on color.VALUE = SUBSTR(list.ACARNO,INSTR(list.ACARNO,'_')+1)
<where>
and list.PAYTYPE in ('AM')
and list.PAYTYPE in ('AM','GREENBAK')
<!-- 统计日期(起始)查询条件 -->
<if test="params.classDateBeginQuery != null and params.classDateBeginQuery != ''">
<if test="params.DBTYPE == 1">
@ -195,7 +195,7 @@
integration_list_table list
left join platecolor_text color on color.VALUE = SUBSTR(list.ACARNO,INSTR(list.ACARNO,'_')+1)
<where>
and list.PAYTYPE in ('AM')
and list.PAYTYPE in ('AM','GREENBAK')
<!-- 统计日期(起始)查询条件 -->
<if test="params.classDateBeginQuery != null and params.classDateBeginQuery != ''">
<if test="params.DBTYPE == 1">
@ -246,6 +246,7 @@
sum(case when list.PAYTYPE = 'FG' then list.PAYINTEGRATION/100.00 else 0 end ) FGOTAL,
sum(case when list.PAYTYPE = 'FS' then list.PAYINTEGRATION/100.00 else 0 end ) FSOTAL,
sum(case when list.PAYTYPE = 'FCA' then list.PAYINTEGRATION/100.00 else 0 end ) FCAOTAL,
sum(case when list.PAYTYPE = 'GREENBAK' then list.PAYINTEGRATION/100.00 else 0 end ) GREENBAKCAOTAL,
sum(case when list.PAYTYPE in ('AM') then list.PAYINTEGRATION/100.00 else 0 end ) MILETOTAL,
sum(case when list.PAYTYPE in ('TK') then list.PAYINTEGRATION/100.00 else 0 end ) TKTOTAL,
sum(case when list.PAYTYPE in ('AMT','AL','AME','AQE','AYE','AU','AT','AJ') then list.PAYINTEGRATION/100.00 else 0 end ) JIANGLITOTAL
@ -758,6 +759,9 @@
</if>
group by iltt.payType
</select>
<!-- 获取用户截至某个时间点最新的积分流水 BMP -->
<select id="getNewIntegralByUserid" resultType="com.nmgs.entity.IntegrationList">
select
@ -801,4 +805,86 @@
)
</select>
<!-- 获取用户截至某个时间点最新的积分流水 GSY -->
<select id="getUserIntegration" resultType="com.nmgs.entity.IntegrationList">
select
PAYINTEGRATION,
RESTINTEGRATION ,
PAYTYPE ,
OGENABLEINTEGRATION ,
CPENABLEINTEGRATION
from
INTEGRATION_LIST_TABLE list
<where>
and USERID = #{params.userId}
<!-- 统计日期(终止)查询条件 -->
<if test="params.endTime != null and params.endTime != ''">
<if test="params.DBTYPE == 1">
and list.PAYTIME = (select max(PAYTIME) from INTEGRATION_LIST_TABLE where USERID = list.USERID and PAYTIME &lt; dateadd(day,0,#{params.endTime}))
</if>
<if test="params.DBTYPE == 2">
and list.PAYTIME = (select max(PAYTIME) from INTEGRATION_LIST_TABLE where USERID = list.USERID and PAYTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS'))
</if>
<if test="params.DBTYPE == 3">
and list.PAYTIME = (select max(PAYTIME) from INTEGRATION_LIST_TABLE where USERID = list.USERID and PAYTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS'))
</if>
<if test="params.DBTYPE == 4">
and list.PAYTIME = (select max(PAYTIME) from INTEGRATION_LIST_TABLE where USERID = list.USERID and PAYTIME &lt; STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s'))
</if>
</if>
</where>
order by RESTINTEGRATION desc
</select>
<!-- 获取用户截至某个时间点最新的积分流水 GSY -->
<select id="getUserYesterdayAddIntegation" resultType="java.util.HashMap">
select
COALESCE(sum(PAYINTEGRATION),0) as SUMPAYINTEGRATION
from INTEGRATION_LIST_TABLE list
left join WEIXN_USER_TABLE u on u.id = list.USERID
<where>
and list.USERID = #{params.userId}
and list.PAYTYPE not like 'F%' and list.PAYTYPE != 'TK'
<!-- 统计日期(起始)查询条件 -->
<if test="params.startTime != null and params.startTime != ''">
<if test="params.DBTYPE == 1">
AND list.PAYTIME >= dateadd(day,0,#{params.startTime})
</if>
<if test="params.DBTYPE == 2">
AND list.PAYTIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND list.PAYTIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND list.PAYTIME >= STR_TO_DATE(#{params.startTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.endTime != null and params.endTime != ''">
<if test="params.DBTYPE == 1">
AND list.PAYTIME &lt; dateadd(day,0,#{params.endTime})
</if>
<if test="params.DBTYPE == 2">
AND list.PAYTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND list.PAYTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND list.PAYTIME &lt; STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
</select>
</mapper>

@ -224,11 +224,17 @@ public interface UserMapper extends MppBaseMapper<User> {
List<Map<String, Object>> getRepeatUserIdData(HashMap<String, Object> params);
/**
*
* BMP
* @param params
* @return
*/
List<User> getUserByInteralList(@Param("params") Map<String, Object> params);
/**
* GSY
* @param paramUser GSY
* @return
*/
List<User> getHasIntegralChangeList(@Param("params") Map<String, Object> paramUser);
}

@ -1079,7 +1079,7 @@
</if>
</if>
</where>
order by we.PAYTIME,we.USERID
order by we.PAYTIME desc,we.USERID
</select>
<select id="getWaringDayMonth" parameterType="java.util.HashMap" resultType="java.util.HashMap" >
@ -1126,7 +1126,7 @@
</if>
</where>
GROUP BY we.USERID,u.REALNAME,we.DAY,we.PEYTYPE
order by we.DAY,we.USERID
order by we.DAY desc,we.USERID
</select>
@ -1212,6 +1212,11 @@
AND vs.extime &lt; STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 是否免费车冲减 -->
<if test="params.rollBackQuery != null and params.rollBackQuery != ''">
AND CASE WHEN vs.ISCALLBACK IS NULL THEN 'N' ELSE 'Y' END = #{params.rollBackQuery}
</if>
</where>
order by vs.extime,vs.vehicleId
</select>
@ -1271,7 +1276,7 @@
<select id="selectGantryIntegralTypeList" resultType="java.util.HashMap">
select VALUE,TEXT from PEYTYPE_TEXT where VALUE not like 'F%' and VALUE not like 'W%' and VALUE not like 'B%'
and VALUE not in ('AM','AP','AG','TK','AH','AS','AT','AU','RI','RAM','AL')
and VALUE not in ('AM','GREENBAK','AP','AG','TK','AH','AS','AT','AU','RI','RAM','AL')
</select>
@ -1434,7 +1439,7 @@
</select>
<select id="getUserByInteralList" resultType="com.nmgs.entity.User" parameterType="java.util.HashMap">
select distinct t.ID as id,t.OPENID as openId from WEIXN_USER_TABLE t where t.certification=1 and exists(
select distinct t.ID as id,t.OPENID as openId from WEIXN_USER_TABLE t where t.certification not in (0,2,3) and exists(
select 1 from INTEGRATION_LIST_TABLE ilt where ilt.userid = t.ID
<if test="params.DBTYPE == 1">
@ -1463,6 +1468,45 @@
AND ilt.paytime &lt;= STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
)
</select>
<select id="getHasIntegralChangeList" resultType="com.nmgs.entity.User" parameterType="java.util.HashMap">
select
u.ID as ID,u.OPENID as OPENID
from INTEGRATION_LIST_TABLE list
left join WEIXN_USER_TABLE u on u.id = list.USERID
<where>
and u.CERTIFICATION not in (0,2,3)
<if test="params.DBTYPE == 1">
and list.paytime >=dateadd(day,0,#{params.startTime})
</if>
<if test="params.DBTYPE == 2">
and list.paytime >=TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
and list.paytime >=TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
and list.paytime >=STR_TO_DATE(#{params.startTime}, '%Y-%m-%d %H:%i:%s')
</if>
<if test="params.DBTYPE == 1">
AND list.paytime &lt; dateadd(day,0,#{params.endTime})
</if>
<if test="params.DBTYPE == 2">
AND list.paytime &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND list.paytime &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND list.paytime &lt; STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
</where>
GROUP BY u.ID,OPENID
</select>
</mapper>

@ -1,374 +1,374 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nmgs.mapper.petrol.UserVehicleMapper">
<select id="getUserVehicleInfo" resultType="com.nmgs.entity.UserVehicle">
select
vehicle.USERID,
vehicle.ACARNO,
vehicle.CHECKUSERNAME,
vehicle.CHECKUSERNUMBER,
vehicle.LICENSEPICNAME,
vehicle.PERMITPICNAME,
vehicle.VEHICLEPICNAME,
vehicle.CERTIFICATION,
vehicle.CREATETIME,
vehicle.CANCELTIME,
status.VALUE as certificationName,
u.REALNAME as userRealName ,
u.IDNUMBER as userIdNumber,
u.openId as openId,
<if test="params.DBTYPE == 2">
CONCAT(SUBSTR(vehicle.ACARNO,0,INSTR(vehicle.ACARNO,'_')-1),CONCAT(CONCAT('(',color.TEXT),')')) as ACARNOSHOW,
</if>
<if test="params.DBTYPE == 4">
CONCAT(SUBSTR(vehicle.ACARNO,1,INSTR(vehicle.ACARNO,'_')-1),CONCAT(CONCAT('(',color.TEXT),')')) as ACARNOSHOW,
</if>
vehicle.OPERATIONTIME,
vehicle.operationUser,
login.USERNAME as operationUserName,
vehicle.UNPASSINFO
from USER_VEHICLE_TABLE vehicle
left join CERTIFICATION_STATUS_TEXT status on status.ID = vehicle.CERTIFICATION
left join WEIXN_USER_TABLE u on u.ID = vehicle.USERID
left join platecolor_text color on color.VALUE = SUBSTR(vehicle.ACARNO,INSTR(vehicle.ACARNO,'_')+1)
left join WEIXIN_GT_USER login on login.ID = vehicle.operationUser
<where>
<!-- 用户id查询 -->
<if test="params.userId != null and params.userId != ''">
AND u.ID LIKE #{params.userId}
</if>
<!-- 用户真实姓名查询 -->
<if test="params.realNameQuery != null and params.realNameQuery != ''">
<bind name="realNameQuery" value="'%'+params.realNameQuery+'%'"/>
AND u.REALNAME LIKE #{realNameQuery}
</if>
<!-- 身份证号查询 -->
<if test="params.idNumberQuery != null and params.idNumberQuery != ''">
<bind name="idNumberQuery" value="'%'+params.idNumberQuery+'%'"/>
AND u.IDNUMBER LIKE #{idNumberQuery}
</if>
<!-- 审核状态 -->
<!-- <if test="params.statusQuery != null">-->
<!-- AND vehicle.CERTIFICATION = #{params.statusQuery}-->
<!-- </if>-->
<!-- 审核状态 -->
<if test="params.statusQuery != null and params.statusQuery.size() > 0">
AND vehicle.CERTIFICATION in
<foreach collection="params.statusQuery" open="(" separator="," close=")" item="status" index="index">
#{status}
</foreach>
</if>
<!-- 车牌号 -->
<if test="params.acarNoQuery != null and params.acarNoQuery != ''">
<bind name="acarNoQuery" value="'%'+params.acarNoQuery+'%'"/>
AND vehicle.ACARNO LIKE #{acarNoQuery}
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.startTime != null and params.startTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME >= dateadd(day,0,#{params.startTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME >= STR_TO_DATE(#{params.startTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.endTime != null and params.endTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME &lt;= dateadd(day,0,#{params.endTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME &lt;= TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME &lt;= TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME &lt;= STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.cancelStartTime != null and params.cancelStartTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CANCELTIME >= dateadd(day,0,#{params.cancelStartTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CANCELTIME >= TO_DATE(#{params.cancelStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CANCELTIME >= TO_DATE(#{params.cancelStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CANCELTIME >= STR_TO_DATE(#{params.cancelStartTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.cancelEndTime != null and params.cancelEndTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CANCELTIME &lt;= dateadd(day,0,#{params.cancelEndTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CANCELTIME &lt;= TO_DATE(#{params.cancelEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CANCELTIME &lt;= TO_DATE(#{params.cancelEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CANCELTIME &lt;= STR_TO_DATE(#{params.cancelEndTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.operationStartTime != null and params.operationStartTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME >= dateadd(day,0,#{params.operationStartTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.operationStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.operationStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME >= STR_TO_DATE(#{params.operationStartTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.operationEndTime != null and params.operationEndTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME &lt;= dateadd(day,0,#{params.operationEndTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME &lt;= TO_DATE(#{params.operationEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME &lt;= TO_DATE(#{params.operationEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME &lt;= STR_TO_DATE(#{params.operationEndTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
order by vehicle.CREATETIME desc
</select>
<select id="getUserVehiclePic" resultType="com.nmgs.entity.UserVehicle">
select
vehicle.LICENSEPIC,
vehicle.PERMITPIC,
vehicle.VEHICLEPIC
from USER_VEHICLE_TABLE vehicle
<where>
and vehicle.USERID = #{params.userId}
and vehicle.ACARNO=#{params.acarNo}
<!-- 统计日期(终止)查询条件 -->
<if test="params.createTime != null and params.createTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME = dateadd(day,0,#{params.createTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME = TO_DATE(#{params.createTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME = TO_DATE(#{params.createTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME = STR_TO_DATE(#{params.createTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
</select>
<update id="checkUserVehiclePass">
update USER_VEHICLE_TABLE vehicle set vehicle.CERTIFICATION = 1,UNPASSINFO = '',OPERATIONUSER=#{params.loginId},
<if test="params.DBTYPE == 1">
OPERATIONTIME = dateadd(day,0,#{params.operationTime})
</if>
<if test="params.DBTYPE == 2">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
OPERATIONTIME = STR_TO_DATE(#{params.operationTime}, '%Y-%m-%d %H:%i:%s')
</if>
where
<foreach collection="params.userVehicles" open="(" separator="or" close=")" item="userVehicle" index="index">
(vehicle.USERID = #{userVehicle.userId} and vehicle.ACARNO=#{userVehicle.acarNo} and vehicle.CREATETIME = #{userVehicle.createTime})
</foreach>
</update>
<update id="checkUserVehicleNoPass" >
update USER_VEHICLE_TABLE vehicle set vehicle.CERTIFICATION = 3,UNPASSINFO = #{params.unPassInfo},OPERATIONUSER=#{params.loginId},
<if test="params.DBTYPE == 1">
OPERATIONTIME = dateadd(day,0,#{params.operationTime})
</if>
<if test="params.DBTYPE == 2">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
OPERATIONTIME = STR_TO_DATE(#{params.operationTime}, '%Y-%m-%d %H:%i:%s')
</if>
where
<foreach collection="params.userVehicles" open="(" separator="or" close=")" item="userVehicle" index="index">
(vehicle.USERID = #{userVehicle.userId} and vehicle.ACARNO=#{userVehicle.acarNo} and vehicle.CREATETIME = #{userVehicle.createTime})
</foreach>
</update>
<select id="selectStatusList" resultType="java.util.HashMap">
SELECT status.ID,status.VALUE FROM certification_status_text status where status.ID != 5 order by status.ID
</select>
<select id="getVehiclePassTotal" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select
count(vehicle.ACARNO) as TOTALCOUNT
from USER_VEHICLE_TABLE vehicle
<where>
and vehicle.CERTIFICATION not in (0,2,3)
<!-- 统计日期(起始)查询条件 -->
<if test="params.startTime != null and params.startTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME >= dateadd(day,0,#{params.startTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME >= STR_TO_DATE(#{params.startTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.endTime != null and params.endTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME &lt; dateadd(day,0,#{params.endTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME &lt; STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
</select>
<select id="getUserVehicleGrow" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select PAYTIME as PAYTIME,sum(TOTALCOUNT) as TOTALCOUNT,(select count(u2.ACARNO) from USER_VEHICLE_TABLE u2 where u2.CERTIFICATION not in (0,2,3)
AND u2.OPERATIONTIME >= TO_DATE('2024-09-08', 'SYYYY-MM-DD HH24:MI:SS') AND u2.OPERATIONTIME &lt;= TO_DATE(a.PAYTIME, 'SYYYY-MM-DD HH24:MI:SS') ) as LEIJI from (
select
TO_CHAR(u.OPERATIONTIME, 'YYYY-MM-DD') as PAYTIME,
count(u.ACARNO) as TOTALCOUNT
from USER_VEHICLE_TABLE u
<where>
and u.CERTIFICATION not in (0,2,3)
<!-- 统计日期(起始)查询条件 -->
<if test="params.classDateBeginQuery != null and params.classDateBeginQuery != ''">
<if test="params.DBTYPE == 1">
AND u.OPERATIONTIME >= dateadd(day,0,#{params.classDateBeginQuery})
</if>
<if test="params.DBTYPE == 2">
AND u.OPERATIONTIME >= TO_DATE(#{params.classDateBeginQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND u.OPERATIONTIME >= TO_DATE(#{params.classDateBeginQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND u.OPERATIONTIME >= STR_TO_DATE(#{params.classDateBeginQuery}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.classDateEndQuery != null and params.classDateEndQuery != ''">
<if test="params.DBTYPE == 1">
AND u.OPERATIONTIME &lt;= dateadd(day,0,#{params.classDateEndQuery})
</if>
<if test="params.DBTYPE == 2">
AND u.OPERATIONTIME &lt;= TO_DATE(#{params.classDateEndQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND u.OPERATIONTIME &lt;= TO_DATE(#{params.classDateEndQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND u.OPERATIONTIME &lt;= STR_TO_DATE(#{params.classDateEndQuery}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
GROUP BY u.OPERATIONTIME) a GROUP BY PAYTIME order by PAYTIME
</select>
<select id="selectCarNoColorList" resultType="java.util.HashMap">
SELECT *
FROM PLATECOLOR_TEXT color order by color.VALUE
</select>
<select id="getAllVehicle" resultType="java.util.HashMap">
select
ACARNO as ACARNO,
min(CREATETIME) as CREATETIME
from USER_VEHICLE_TABLE vehicle where CERTIFICATION not in (0,2,3) and CREATETIME >= TO_DATE('2024-09-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') and CREATETIME &lt;= TO_DATE('2025-03-05 15:00:00', 'SYYYY-MM-DD HH24:MI:SS') GROUP BY ACARNO
</select>
<select id="getVehicleDivFee" resultType="java.util.HashMap">
select COALESCE(sum(DIV_FEE),0) as DIV_FEE from DIV_PASSID_ALL_ROAD road where road.CLASSDATE >=TO_DATE(#{params.classDateStart}, 'SYYYY-MM-DD HH24:MI:SS') AND road.CLASSDATE &lt;= TO_DATE(#{params.classDateEnd}, 'SYYYY-MM-DD HH24:MI:SS') and ROADID in ('G0006','G0065') and VEHICLEID=#{params.ACARNO} GROUP BY VEHICLEID
</select>
<select id="getVehicleIntegral" resultType="java.util.HashMap">
select COALESCE(sum(PAYINTEGRATION),0) as PAYINTEGRATION from INTEGRATION_LIST_TABLE list where list.ACARNO = #{params.ACARNO} and list.PAYTYPE = 'AM'
</select>
<delete id="deleteData" >
delete from OUT_PORT_LAST_IN_PORT_COLLECTION where rowid in (select max(p.rowid) from OUT_PORT_LAST_IN_PORT_COLLECTION p ,(
select ESTANO,EXTIME,ACARNO from (select ESTANO,EXTIME,ACARNO,count(1) as count from OUT_PORT_LAST_IN_PORT_COLLECTION GROUP BY ESTANO,EXTIME,ACARNO) a
where count > 1
) a where a.ESTANO = p.ESTANO and a.EXTIME = p.EXTIME and a.ACARNO = p.ACARNO GROUP BY p.ESTANO,p.EXTIME,p.ACARNO)
</delete>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nmgs.mapper.petrol.UserVehicleMapper">
<select id="getUserVehicleInfo" resultType="com.nmgs.entity.UserVehicle">
select
vehicle.USERID,
vehicle.ACARNO,
vehicle.CHECKUSERNAME,
vehicle.CHECKUSERNUMBER,
vehicle.LICENSEPICNAME,
vehicle.PERMITPICNAME,
vehicle.VEHICLEPICNAME,
vehicle.CERTIFICATION,
vehicle.CREATETIME,
vehicle.CANCELTIME,
status.VALUE as certificationName,
u.REALNAME as userRealName ,
u.IDNUMBER as userIdNumber,
u.openId as openId,
<if test="params.DBTYPE == 2">
CONCAT(SUBSTR(vehicle.ACARNO,0,INSTR(vehicle.ACARNO,'_')-1),CONCAT(CONCAT('(',color.TEXT),')')) as ACARNOSHOW,
</if>
<if test="params.DBTYPE == 4">
CONCAT(SUBSTR(vehicle.ACARNO,1,INSTR(vehicle.ACARNO,'_')-1),CONCAT(CONCAT('(',color.TEXT),')')) as ACARNOSHOW,
</if>
vehicle.OPERATIONTIME,
vehicle.operationUser,
login.USERNAME as operationUserName,
vehicle.UNPASSINFO
from USER_VEHICLE_TABLE vehicle
left join CERTIFICATION_STATUS_TEXT status on status.ID = vehicle.CERTIFICATION
left join WEIXN_USER_TABLE u on u.ID = vehicle.USERID
left join platecolor_text color on color.VALUE = SUBSTR(vehicle.ACARNO,INSTR(vehicle.ACARNO,'_')+1)
left join WEIXIN_GT_USER login on login.ID = vehicle.operationUser
<where>
<!-- 用户id查询 -->
<if test="params.userId != null and params.userId != ''">
AND u.ID LIKE #{params.userId}
</if>
<!-- 用户真实姓名查询 -->
<if test="params.realNameQuery != null and params.realNameQuery != ''">
<bind name="realNameQuery" value="'%'+params.realNameQuery+'%'"/>
AND u.REALNAME LIKE #{realNameQuery}
</if>
<!-- 身份证号查询 -->
<if test="params.idNumberQuery != null and params.idNumberQuery != ''">
<bind name="idNumberQuery" value="'%'+params.idNumberQuery+'%'"/>
AND u.IDNUMBER LIKE #{idNumberQuery}
</if>
<!-- 审核状态 -->
<!-- <if test="params.statusQuery != null">-->
<!-- AND vehicle.CERTIFICATION = #{params.statusQuery}-->
<!-- </if>-->
<!-- 审核状态 -->
<if test="params.statusQuery != null and params.statusQuery.size() > 0">
AND vehicle.CERTIFICATION in
<foreach collection="params.statusQuery" open="(" separator="," close=")" item="status" index="index">
#{status}
</foreach>
</if>
<!-- 车牌号 -->
<if test="params.acarNoQuery != null and params.acarNoQuery != ''">
<bind name="acarNoQuery" value="'%'+params.acarNoQuery+'%'"/>
AND vehicle.ACARNO LIKE #{acarNoQuery}
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.startTime != null and params.startTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME >= dateadd(day,0,#{params.startTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME >= STR_TO_DATE(#{params.startTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.endTime != null and params.endTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME &lt;= dateadd(day,0,#{params.endTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME &lt;= TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME &lt;= TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME &lt;= STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.cancelStartTime != null and params.cancelStartTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CANCELTIME >= dateadd(day,0,#{params.cancelStartTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CANCELTIME >= TO_DATE(#{params.cancelStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CANCELTIME >= TO_DATE(#{params.cancelStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CANCELTIME >= STR_TO_DATE(#{params.cancelStartTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.cancelEndTime != null and params.cancelEndTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CANCELTIME &lt;= dateadd(day,0,#{params.cancelEndTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CANCELTIME &lt;= TO_DATE(#{params.cancelEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CANCELTIME &lt;= TO_DATE(#{params.cancelEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CANCELTIME &lt;= STR_TO_DATE(#{params.cancelEndTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(起始)查询条件 -->
<if test="params.operationStartTime != null and params.operationStartTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME >= dateadd(day,0,#{params.operationStartTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.operationStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.operationStartTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME >= STR_TO_DATE(#{params.operationStartTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.operationEndTime != null and params.operationEndTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME &lt;= dateadd(day,0,#{params.operationEndTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME &lt;= TO_DATE(#{params.operationEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME &lt;= TO_DATE(#{params.operationEndTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME &lt;= STR_TO_DATE(#{params.operationEndTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
order by vehicle.CREATETIME desc
</select>
<select id="getUserVehiclePic" resultType="com.nmgs.entity.UserVehicle">
select
vehicle.LICENSEPIC,
vehicle.PERMITPIC,
vehicle.VEHICLEPIC
from USER_VEHICLE_TABLE vehicle
<where>
and vehicle.USERID = #{params.userId}
and vehicle.ACARNO=#{params.acarNo}
<!-- 统计日期(终止)查询条件 -->
<if test="params.createTime != null and params.createTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.CREATETIME = dateadd(day,0,#{params.createTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.CREATETIME = TO_DATE(#{params.createTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.CREATETIME = TO_DATE(#{params.createTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.CREATETIME = STR_TO_DATE(#{params.createTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
</select>
<update id="checkUserVehiclePass">
update USER_VEHICLE_TABLE vehicle set vehicle.CERTIFICATION = 1,UNPASSINFO = '',OPERATIONUSER=#{params.loginId},
<if test="params.DBTYPE == 1">
OPERATIONTIME = dateadd(day,0,#{params.operationTime})
</if>
<if test="params.DBTYPE == 2">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
OPERATIONTIME = STR_TO_DATE(#{params.operationTime}, '%Y-%m-%d %H:%i:%s')
</if>
where
<foreach collection="params.userVehicles" open="(" separator="or" close=")" item="userVehicle" index="index">
(vehicle.USERID = #{userVehicle.userId} and vehicle.ACARNO=#{userVehicle.acarNo} and vehicle.CREATETIME = #{userVehicle.createTime})
</foreach>
</update>
<update id="checkUserVehicleNoPass" >
update USER_VEHICLE_TABLE vehicle set vehicle.CERTIFICATION = 3,UNPASSINFO = #{params.unPassInfo},OPERATIONUSER=#{params.loginId},
<if test="params.DBTYPE == 1">
OPERATIONTIME = dateadd(day,0,#{params.operationTime})
</if>
<if test="params.DBTYPE == 2">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
OPERATIONTIME = TO_DATE(#{params.operationTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
OPERATIONTIME = STR_TO_DATE(#{params.operationTime}, '%Y-%m-%d %H:%i:%s')
</if>
where
<foreach collection="params.userVehicles" open="(" separator="or" close=")" item="userVehicle" index="index">
(vehicle.USERID = #{userVehicle.userId} and vehicle.ACARNO=#{userVehicle.acarNo} and vehicle.CREATETIME = #{userVehicle.createTime})
</foreach>
</update>
<select id="selectStatusList" resultType="java.util.HashMap">
SELECT status.ID,status.VALUE FROM certification_status_text status where status.ID != 5 order by status.ID
</select>
<select id="getVehiclePassTotal" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select
count(vehicle.ACARNO) as TOTALCOUNT
from USER_VEHICLE_TABLE vehicle
<where>
and vehicle.CERTIFICATION not in (0,2,3)
<!-- 统计日期(起始)查询条件 -->
<if test="params.startTime != null and params.startTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME >= dateadd(day,0,#{params.startTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME >= TO_DATE(#{params.startTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME >= STR_TO_DATE(#{params.startTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.endTime != null and params.endTime != ''">
<if test="params.DBTYPE == 1">
AND vehicle.OPERATIONTIME &lt; dateadd(day,0,#{params.endTime})
</if>
<if test="params.DBTYPE == 2">
AND vehicle.OPERATIONTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND vehicle.OPERATIONTIME &lt; TO_DATE(#{params.endTime}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND vehicle.OPERATIONTIME &lt; STR_TO_DATE(#{params.endTime}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
</select>
<select id="getUserVehicleGrow" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select PAYTIME as PAYTIME,sum(TOTALCOUNT) as TOTALCOUNT,(select count(u2.ACARNO) from USER_VEHICLE_TABLE u2 where u2.CERTIFICATION not in (0,2,3)
AND u2.OPERATIONTIME >= TO_DATE('2024-09-08', 'SYYYY-MM-DD HH24:MI:SS') AND u2.OPERATIONTIME &lt;= TO_DATE(a.PAYTIME, 'SYYYY-MM-DD HH24:MI:SS') ) as LEIJI from (
select
TO_CHAR(u.OPERATIONTIME, 'YYYY-MM-DD') as PAYTIME,
count(u.ACARNO) as TOTALCOUNT
from USER_VEHICLE_TABLE u
<where>
and u.CERTIFICATION not in (0,2,3)
<!-- 统计日期(起始)查询条件 -->
<if test="params.classDateBeginQuery != null and params.classDateBeginQuery != ''">
<if test="params.DBTYPE == 1">
AND u.OPERATIONTIME >= dateadd(day,0,#{params.classDateBeginQuery})
</if>
<if test="params.DBTYPE == 2">
AND u.OPERATIONTIME >= TO_DATE(#{params.classDateBeginQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND u.OPERATIONTIME >= TO_DATE(#{params.classDateBeginQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND u.OPERATIONTIME >= STR_TO_DATE(#{params.classDateBeginQuery}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
<!-- 统计日期(终止)查询条件 -->
<if test="params.classDateEndQuery != null and params.classDateEndQuery != ''">
<if test="params.DBTYPE == 1">
AND u.OPERATIONTIME &lt;= dateadd(day,0,#{params.classDateEndQuery})
</if>
<if test="params.DBTYPE == 2">
AND u.OPERATIONTIME &lt;= TO_DATE(#{params.classDateEndQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 3">
AND u.OPERATIONTIME &lt;= TO_DATE(#{params.classDateEndQuery}, 'SYYYY-MM-DD HH24:MI:SS')
</if>
<if test="params.DBTYPE == 4">
AND u.OPERATIONTIME &lt;= STR_TO_DATE(#{params.classDateEndQuery}, '%Y-%m-%d %H:%i:%s')
</if>
</if>
</where>
GROUP BY u.OPERATIONTIME) a GROUP BY PAYTIME order by PAYTIME
</select>
<select id="selectCarNoColorList" resultType="java.util.HashMap">
SELECT *
FROM PLATECOLOR_TEXT color order by color.VALUE
</select>
<select id="getAllVehicle" resultType="java.util.HashMap">
select
ACARNO as ACARNO,
min(CREATETIME) as CREATETIME
from USER_VEHICLE_TABLE vehicle where CERTIFICATION not in (0,2,3) and CREATETIME >= TO_DATE('2024-09-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') and CREATETIME &lt;= TO_DATE('2025-03-05 15:00:00', 'SYYYY-MM-DD HH24:MI:SS') GROUP BY ACARNO
</select>
<select id="getVehicleDivFee" resultType="java.util.HashMap">
select COALESCE(sum(DIV_FEE),0) as DIV_FEE from DIV_PASSID_ALL_ROAD road where road.CLASSDATE >=TO_DATE(#{params.classDateStart}, 'SYYYY-MM-DD HH24:MI:SS') AND road.CLASSDATE &lt;= TO_DATE(#{params.classDateEnd}, 'SYYYY-MM-DD HH24:MI:SS') and ROADID in ('G0006','G0065') and VEHICLEID=#{params.ACARNO} GROUP BY VEHICLEID
</select>
<select id="getVehicleIntegral" resultType="java.util.HashMap">
select COALESCE(sum(PAYINTEGRATION),0) as PAYINTEGRATION from INTEGRATION_LIST_TABLE list where list.ACARNO = #{params.ACARNO} and list.PAYTYPE in ('AM','GREENBAK')
</select>
<delete id="deleteData" >
delete from OUT_PORT_LAST_IN_PORT_COLLECTION where rowid in (select max(p.rowid) from OUT_PORT_LAST_IN_PORT_COLLECTION p ,(
select ESTANO,EXTIME,ACARNO from (select ESTANO,EXTIME,ACARNO,count(1) as count from OUT_PORT_LAST_IN_PORT_COLLECTION GROUP BY ESTANO,EXTIME,ACARNO) a
where count > 1
) a where a.ESTANO = p.ESTANO and a.EXTIME = p.EXTIME and a.ACARNO = p.ACARNO GROUP BY p.ESTANO,p.EXTIME,p.ACARNO)
</delete>
</mapper>

@ -0,0 +1,14 @@
package com.nmgs.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.entity.IntegralCheck;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
public interface ICheckService {
Page<IntegralCheck> getCheckPage(Map<String, Object> params);
void exportCheckListExcle(String searchForm, HttpServletResponse response) throws Exception;
}

@ -1,55 +1,58 @@
package com.nmgs.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.entity.ServiceAreaOperators;
import java.util.List;
import java.util.Map;
public interface IOperatorsService {
/**
*
* @param params
* @return
*/
Page<ServiceAreaOperators> getOperatorsList(Map<String, Object> params);
/**
*
*
* @param operators
* @return
*/
int addOperators(ServiceAreaOperators operators) throws Exception;
/**
*
* @param operators
* @return
*/
int updateOperators(ServiceAreaOperators operators)throws Exception;
/**
*
* @param operators
* @return
*/
int deleteOperators(List<ServiceAreaOperators> operators)throws Exception;
/**
*
* @param params
* @return
*/
Page<ServiceAreaOperators> getCollectionData(Map<String, Object> params);
/**
*
* @return
*/
ServiceAreaOperators login(Map<String, Object> params);
}
package com.nmgs.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.entity.ServiceAreaOperators;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
public interface IOperatorsService {
/**
*
* @param params
* @return
*/
Page<ServiceAreaOperators> getOperatorsList(Map<String, Object> params);
/**
*
*
* @param operators
* @return
*/
int addOperators(ServiceAreaOperators operators) throws Exception;
/**
*
* @param operators
* @return
*/
int updateOperators(ServiceAreaOperators operators)throws Exception;
/**
*
* @param operators
* @return
*/
int deleteOperators(List<ServiceAreaOperators> operators)throws Exception;
/**
*
* @param params
* @return
*/
Page<ServiceAreaOperators> getCollectionData(Map<String, Object> params);
/**
*
* @return
*/
ServiceAreaOperators login(Map<String, Object> params);
void exportOperationListExcle(String searchForm, HttpServletResponse response) throws Exception;
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,418 @@
package com.nmgs.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.entity.Cafter;
import com.nmgs.entity.IntegralCheck;
import com.nmgs.entity.User;
import com.nmgs.mapper.petrol.CafterMapper;
import com.nmgs.mapper.petrol.IntegralCheckMapper;
import com.nmgs.mapper.petrol.PetrolMapper;
import com.nmgs.service.IAddService;
import com.nmgs.service.ICafterService;
import com.nmgs.service.ICheckService;
import com.nmgs.util.PropertiesUtil;
import org.apache.commons.codec.Charsets;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
@Transactional(timeout = 100)
public class CheckServiceImpl implements ICheckService {
@Autowired
private IntegralCheckMapper integralCheckMapper;
public static Logger logger = LoggerFactory.getLogger(CheckServiceImpl.class);
@Override
public Page<IntegralCheck> getCheckPage(Map<String, Object> params) {
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
//设置分页
Integer pageNum = (Integer) params.get("pageNum");
Integer pageSize = (Integer) params.get("pageSize");
Page<IntegralCheck> page = new Page<>(pageNum, pageSize);
page = integralCheckMapper.getCheckPage(page, params);
/**
* ENABLEINTEGRATION int 0 0 0 0 0 0 0 0 0 0 0 0 0 0
* OGINTEGRATION int 0 0 0 0 0 0 0 0 0 0 0 0 0 0
* CPINTEGRATION int 0 0 0 0 0 0 0 0 0 0 0 0 0 0
* RESTINTEGRALTIONBEFORE int 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
* OGINTEGRATIONBEFORE int 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
* CPINTEGRATIONBEFORE int 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
* RESTINTEGRALTIONDECODE int 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
* OGINTEGRATIONDECODE int 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
* CPINTEGRATIONDECODE int 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
* OGINTEGRATIONADD int 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
* CPINTEGRATIONADD int 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
* RESTTEGRALTIONADD int 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
*/
//获取数据,判断用户积分是否正确,没有异常 01 0 23 2 45 4
List<IntegralCheck> records = page.getRecords();
List<IntegralCheck> newRecords = new ArrayList<>();
for(int i = 0 ; i < records.size();i=i+2){
IntegralCheck integralCheckNew = new IntegralCheck();
IntegralCheck integralCheckBMP = records.get(i);
IntegralCheck integralCheckGSY = records.get(i+1);
integralCheckNew.setEnableintegration(integralCheckGSY.getEnableintegration());
integralCheckNew.setOgintegration(integralCheckGSY.getOgintegration());
integralCheckNew.setCpintegration(integralCheckGSY.getCpintegration());
integralCheckNew.setRestintegraltionbefore(integralCheckGSY.getRestintegraltionbefore());
integralCheckNew.setOgintegrationbefore(integralCheckGSY.getOgintegrationbefore());
integralCheckNew.setCpintegrationbefore(integralCheckGSY.getCpintegrationbefore());
integralCheckNew.setClassdate(integralCheckGSY.getClassdate());
integralCheckNew.setRestintegraltiondecode(integralCheckBMP.getRestintegraltiondecode());
integralCheckNew.setCpintegrationdecode(integralCheckBMP.getCpintegrationdecode());
integralCheckNew.setOgintegrationdecode(integralCheckBMP.getOgintegrationdecode());
integralCheckNew.setResttegraltionadd(integralCheckGSY.getResttegraltionadd());
integralCheckNew.setOgintegrationadd(integralCheckGSY.getOgintegrationadd());
integralCheckNew.setCpintegrationadd(integralCheckGSY.getCpintegrationadd());
integralCheckNew.setUserRealName(integralCheckGSY.getUserRealName());
integralCheckNew.setUserId(integralCheckGSY.getUserId());
integralCheckNew.setOpenid(integralCheckGSY.getOpenid());
integralCheckNew.setIsRight("Y");
//先判断剩余积分是否准确
if(integralCheckBMP.getEnableintegration().intValue() == integralCheckGSY.getEnableintegration().intValue()
&& integralCheckBMP.getOgintegration().intValue() == integralCheckGSY.getOgintegration().intValue()
&& integralCheckBMP.getCpintegration().intValue() == integralCheckGSY.getCpintegration().intValue()
&& integralCheckBMP.getRestintegraltionbefore().intValue() == integralCheckGSY.getRestintegraltionbefore().intValue()
&& integralCheckBMP.getOgintegrationbefore().intValue() == integralCheckGSY.getOgintegrationbefore().intValue()
&& integralCheckBMP.getCpintegrationbefore().intValue() == integralCheckGSY.getCpintegrationbefore().intValue()){
int OGFee = integralCheckBMP.getOgintegrationdecode().intValue();
int CPFee = integralCheckBMP.getCpintegrationdecode().intValue();
int OGAdd = integralCheckGSY.getOgintegrationadd().intValue();
int CPAdd = integralCheckGSY.getCpintegrationadd().intValue();
int feeTotal = (OGFee+CPFee);
int addTotal = (OGAdd+CPAdd);
//判断 加油加汽核销积分 + 餐饮商超核销积分 是否等于总核销积分
if(integralCheckNew.getRestintegraltiondecode().intValue() != feeTotal){
integralCheckNew.setIsRight("N");
}
//判断 加油加汽增加积分 + 餐饮商超增加积分 是否等于总增加积分
if(integralCheckNew.getResttegraltionadd().intValue() != addTotal){
integralCheckNew.setIsRight("N");
}
//判断 前日剩余 累计 核销积分和增加积分后,是否等于昨日剩余积分情况
if((integralCheckNew.getRestintegraltionbefore().intValue()+feeTotal+addTotal) != integralCheckNew.getEnableintegration().intValue() ){
integralCheckNew.setIsRight("N");
}
//判断 前日剩余 累计 核销积分和增加积分后,是否等于昨日剩余积分情况
if((integralCheckNew.getOgintegrationbefore().intValue()+OGFee+OGAdd) != integralCheckNew.getOgintegration().intValue() ){
integralCheckNew.setIsRight("N");
}
//判断 前日剩余 累计 核销积分和增加积分后,是否等于昨日剩余积分情况
if((integralCheckNew.getCpintegrationbefore().intValue()+CPFee+CPAdd) != integralCheckNew.getCpintegration().intValue() ){
integralCheckNew.setIsRight("N");
}
if(integralCheckNew.getEnableintegration().intValue() < 0 || integralCheckNew.getOgintegration().intValue() < 0 || integralCheckNew.getCpintegration().intValue() < 0){
integralCheckNew.setIsRight("N");
}
}else{
integralCheckNew.setIsRight("N");
}
newRecords.add(integralCheckNew);
}
page.setRecords(newRecords);
return page;
}
@Override
public void exportCheckListExcle(String searchForm, HttpServletResponse response) throws Exception {
//设置金额的格式
DecimalFormat decimalFormat = new DecimalFormat("#.00");
//设置导出文件名称
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date();
String filename = "积分检查表-" + simpleDateFormat.format(date) + ".xlsx";
HashMap<String, Object> paramsMap = new HashMap<>();
//如果传进来的参数有值,拼接参数
if (null != searchForm && !"".equals(searchForm)) {
paramsMap = JSON.parseObject(searchForm, HashMap.class);
}
//从配置文件中读取数据库连接类型
paramsMap.put("DBTYPE", PropertiesUtil.getValue("DBType"));
//设置分页
Integer pageNum = (Integer) paramsMap.get("pageNum");
Page<IntegralCheck> page = new Page<>(pageNum,100000);
page = integralCheckMapper.getCheckPage(page, paramsMap);
//获取数据,判断用户积分是否正确,没有异常 01 0 23 2 45 4
List<IntegralCheck> records = page.getRecords();
List<IntegralCheck> newRecords = new ArrayList<>();
for(int i = 0 ; i < records.size();i=i+2){
IntegralCheck integralCheckNew = new IntegralCheck();
IntegralCheck integralCheckBMP = records.get(i);
IntegralCheck integralCheckGSY = records.get(i+1);
integralCheckNew.setEnableintegration(integralCheckGSY.getEnableintegration());
integralCheckNew.setOgintegration(integralCheckGSY.getOgintegration());
integralCheckNew.setCpintegration(integralCheckGSY.getCpintegration());
integralCheckNew.setRestintegraltionbefore(integralCheckGSY.getRestintegraltionbefore());
integralCheckNew.setOgintegrationbefore(integralCheckGSY.getOgintegrationbefore());
integralCheckNew.setCpintegrationbefore(integralCheckGSY.getCpintegrationbefore());
integralCheckNew.setClassdate(integralCheckGSY.getClassdate());
integralCheckNew.setRestintegraltiondecode(integralCheckBMP.getRestintegraltiondecode());
integralCheckNew.setCpintegrationdecode(integralCheckBMP.getCpintegrationdecode());
integralCheckNew.setOgintegrationdecode(integralCheckBMP.getOgintegrationdecode());
integralCheckNew.setResttegraltionadd(integralCheckGSY.getResttegraltionadd());
integralCheckNew.setOgintegrationadd(integralCheckGSY.getOgintegrationadd());
integralCheckNew.setCpintegrationadd(integralCheckGSY.getCpintegrationadd());
integralCheckNew.setUserRealName(integralCheckGSY.getUserRealName());
integralCheckNew.setUserId(integralCheckGSY.getUserId());
integralCheckNew.setOpenid(integralCheckGSY.getOpenid());
integralCheckNew.setIsRight("Y");
//先判断剩余积分是否准确
if(integralCheckBMP.getEnableintegration().intValue() == integralCheckGSY.getEnableintegration().intValue()
&& integralCheckBMP.getOgintegration().intValue() == integralCheckGSY.getOgintegration().intValue()
&& integralCheckBMP.getCpintegration().intValue() == integralCheckGSY.getCpintegration().intValue()
&& integralCheckBMP.getRestintegraltionbefore().intValue() == integralCheckGSY.getRestintegraltionbefore().intValue()
&& integralCheckBMP.getOgintegrationbefore().intValue() == integralCheckGSY.getOgintegrationbefore().intValue()
&& integralCheckBMP.getCpintegrationbefore().intValue() == integralCheckGSY.getCpintegrationbefore().intValue()){
int OGFee = integralCheckBMP.getOgintegrationdecode().intValue();
int CPFee = integralCheckBMP.getCpintegrationdecode().intValue();
int OGAdd = integralCheckGSY.getOgintegrationadd().intValue();
int CPAdd = integralCheckGSY.getCpintegrationadd().intValue();
int feeTotal = (OGFee+CPFee);
int addTotal = (OGAdd+CPAdd);
//判断 加油加汽核销积分 + 餐饮商超核销积分 是否等于总核销积分
if(integralCheckNew.getRestintegraltiondecode().intValue() != feeTotal){
integralCheckNew.setIsRight("N");
}
//判断 加油加汽增加积分 + 餐饮商超增加积分 是否等于总增加积分
if(integralCheckNew.getResttegraltionadd().intValue() != addTotal){
integralCheckNew.setIsRight("N");
}
//判断 前日剩余 累计 核销积分和增加积分后,是否等于昨日剩余积分情况
if((integralCheckNew.getRestintegraltionbefore().intValue()+feeTotal+addTotal) != integralCheckNew.getEnableintegration().intValue() ){
integralCheckNew.setIsRight("N");
}
//判断 前日剩余 累计 核销积分和增加积分后,是否等于昨日剩余积分情况
if((integralCheckNew.getOgintegrationbefore().intValue()+OGFee+OGAdd) != integralCheckNew.getOgintegration().intValue() ){
integralCheckNew.setIsRight("N");
}
//判断 前日剩余 累计 核销积分和增加积分后,是否等于昨日剩余积分情况
if((integralCheckNew.getCpintegrationbefore().intValue()+CPFee+CPAdd) != integralCheckNew.getCpintegration().intValue() ){
integralCheckNew.setIsRight("N");
}
if(integralCheckNew.getEnableintegration().intValue() < 0 || integralCheckNew.getOgintegration().intValue() < 0 || integralCheckNew.getCpintegration().intValue() < 0){
integralCheckNew.setIsRight("N");
}
}else{
integralCheckNew.setIsRight("N");
}
newRecords.add(integralCheckNew);
}
Collections.sort(newRecords, new Comparator<IntegralCheck>() {
@Override
public int compare(IntegralCheck p1, IntegralCheck p2) {
return p1.getIsRight().compareTo(p2.getIsRight());
}
});
//创建一个Excel表格
Workbook wb = new XSSFWorkbook();
//创建sheet页面
Sheet sheet = wb.createSheet("积分检查");
if (null == newRecords) {
//导出Excel
writeToExcel(response, wb, filename);
}
//定义一个标题数组
String[] title = {"积分状态", "用户","统计日期", "前日剩余可用积分", "昨日消费积分","昨日增加积分","昨日剩余可用积分", "前日加油加气剩余可用积分", "昨日加油加气消费积分","昨日加油加气增加积分","昨日加油加气剩余可用积分", "前日餐饮商超剩余可用积分", "昨日餐饮商超消费积分","昨日餐饮商超增加积分","昨日餐饮商超剩余可用积分"};
//设置统计时间日期格式
SimpleDateFormat simpleDateFormatClassData = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat simpleDateFormatDt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//定义内容数据
List<String[]> rowValues = new ArrayList<>();
for (IntegralCheck check: newRecords) {
String[] rowValue = {
null == check.getIsRight()? "" : check.getIsRight().equals("Y")?"正常":"异常",
null == check.getUserRealName()? "" : check.getUserRealName(),
null == check.getClassdate()? "" : simpleDateFormatClassData.format(check.getClassdate()),
null == check.getRestintegraltionbefore()? "" : String.valueOf(check.getRestintegraltionbefore().intValue()/100.00),
null == check.getRestintegraltiondecode()? "" : String.valueOf(check.getRestintegraltiondecode().intValue()/100.00),
null == check.getResttegraltionadd()? "" : String.valueOf(check.getResttegraltionadd().intValue()/100.00),
null == check.getEnableintegration()? "" : String.valueOf(check.getEnableintegration().intValue()/100.00),
null == check.getOgintegrationbefore()? "" : String.valueOf(check.getOgintegrationbefore().intValue()/100.00),
null == check.getOgintegrationdecode()? "" : String.valueOf(check.getOgintegrationdecode().intValue()/100.00),
null == check.getOgintegrationadd()? "" : String.valueOf(check.getOgintegrationadd().intValue()/100.00),
null == check.getOgintegration()? "" : String.valueOf(check.getOgintegration().intValue()/100.00),
null == check.getCpintegrationbefore()? "" : String.valueOf(check.getCpintegrationbefore().intValue()/100.00),
null == check.getCpintegrationdecode()? "" : String.valueOf(check.getCpintegrationdecode().intValue()/100.00),
null == check.getCpintegrationadd()? "" : String.valueOf(check.getCpintegrationadd().intValue()/100.00),
null == check.getCpintegration()? "" : String.valueOf(check.getCpintegration().intValue()/100.00),
};
rowValues.add(rowValue);
}
//设置标题单元格式
CellStyle cellStyleTitle = wb.createCellStyle();
cellStyleTitle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());//设置背景色
cellStyleTitle.setFillPattern((short) 1);//必须设置 否则无效
//设置水平垂直居中
cellStyleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyleTitle.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置边框样式
cellStyleTitle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderRight(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderTop(XSSFCellStyle.BORDER_THIN);
//定义标题内容
Row currentRow = sheet.createRow(0);
// 往Excel表格中添加标题的数据
for (int j = 0; j < title.length; j++) {
if(j > 6){
// 设置列宽
sheet.setColumnWidth(j, 12000);
}else{
// 设置列宽
sheet.setColumnWidth(j, 8000);
}
Cell cell = currentRow.createCell(j);
cell.setCellStyle(cellStyleTitle);
//每个单元格的值目前做 String 处理
//cell.setCellType(CellType.STRING);
cell.setCellValue(title[j]);
}
//往Excel表格中添加具体数据
for (int i = 0; i < rowValues.size(); i++) {
String status = rowValues.get(i)[0];
//设置内容单元格式
CellStyle cellStyleValue = wb.createCellStyle();
if(status.equals("正常")){
//设置水平垂直居中
cellStyleValue.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyleValue.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置边框样式
cellStyleValue.setBorderBottom(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderLeft(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderRight(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderTop(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setFillPattern(CellStyle.SOLID_FOREGROUND);
cellStyleValue.setFillBackgroundColor(IndexedColors.LIME.getIndex());
cellStyleValue.setFillForegroundColor(IndexedColors.LIME.getIndex());
}else{
//设置水平垂直居中
cellStyleValue.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyleValue.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置边框样式
cellStyleValue.setBorderBottom(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderLeft(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderRight(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderTop(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setFillPattern(CellStyle.SOLID_FOREGROUND);
cellStyleValue.setFillBackgroundColor(IndexedColors.CORAL.getIndex());
cellStyleValue.setFillForegroundColor(IndexedColors.CORAL.getIndex());
}
Row Row = sheet.createRow((i + 1));
for (int j = 0; j < title.length; j++) {
if(j > 6){
// 设置列宽
sheet.setColumnWidth(j, 12000);
}else{
// 设置列宽
sheet.setColumnWidth(j, 8000);
}
Cell cell = Row.createCell(j);
cell.setCellStyle(cellStyleValue);
//每个单元格的值目前做 String 处理
//cell.setCellType(CellType.STRING);
cell.setCellValue(rowValues.get(i)[j]);
}
}
//导出Excel
writeToExcel(response, wb, filename);
}
/**
* Excelresponse
*
* @param response
* @param wb
* @param fileName
* @throws Exception
*/
public void writeToExcel(HttpServletResponse response, Workbook wb, String fileName) throws Exception {
OutputStream os = null;
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setCharacterEncoding(Charsets.UTF_8.name());
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, String.format("attachment; filename=%s", new String(URLEncoder.encode(fileName, Charsets.UTF_8.name())
.getBytes(Charsets.UTF_8), Charsets.ISO_8859_1)));
os = response.getOutputStream();
wb.write(os);
os.flush();
}
}

@ -1,368 +1,540 @@
package com.nmgs.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.entity.ServiceAreaOperators;
import com.nmgs.mapper.bak.OperatorsBakMapper;
import com.nmgs.mapper.petrol.OperatorsMapper;
import com.nmgs.service.IOperatorsService;
import com.nmgs.util.*;
import com.trkf.PasswordEncryption.PassWordUtils;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
@Transactional(timeout = 100)
@Slf4j
public class OperatorsServiceImpl implements IOperatorsService {
@Autowired
private OperatorsMapper operatorsMapper;
@Autowired
private OperatorsBakMapper operatorsBakMapper;
public static Logger logger = LoggerFactory.getLogger(OperatorsServiceImpl.class);
/**
*
* @param params
* @return
*/
@Override
public Page<ServiceAreaOperators> getOperatorsList(Map<String, Object> params) {
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
//设置分页
Integer pageNum = (Integer) params.get("pageNum");
Integer pageSize = (Integer) params.get("pageSize");
Page<ServiceAreaOperators> page = new Page<>(pageNum,pageSize);
page = operatorsMapper.getOperatorsList(page,params);
//给密码解密
List<ServiceAreaOperators> records = page.getRecords();
if(null != records && records.size() > 0){
for (ServiceAreaOperators record : records) {
record.setPassWord(PassWordUtils.decrypt(record.getPassWord()));
}
page.setRecords(records);
}
return page;
}
/**
*
* @param operators
* @return
* @throws Exception
*/
@Override
public int addOperators(ServiceAreaOperators operators) throws Exception {
//从配置文件中读取上传文件接口
String uploadFileUrl = PropertiesUtil.getValue("fileUploadUrl");
//从配置文件中读取上传文件接口
String fileDelUrl = PropertiesUtil.getValue("fileDelUrl");
//备份文件位置
String manageAddressLinux = PropertiesUtil.getValue("manageAddressLinux");
//备份图片
String property = System.getProperty("catalina.home");
//记录存放日期文件夹
SimpleDateFormat format =new SimpleDateFormat("yyyyMMdd");
String dateMdk = format.format(new Date());
int res = 0;
//如果数据为空,直接返回
if(null == operators){
return 0;
}
//判断传回的值中id是否有值没有就是新增
if(null == operators.getId()){
// //先判断工号是否已经存在,存在不让保存数据
// List<ServiceAreaOperators> operationByJobNumber = operatorsMapper.getOperationByJobNumber(operators.getJobNumber());
// if(null != operationByJobNumber && operationByJobNumber.size() > 0){
// return -2;
// }
//查询当前数据中id的最大值,给id赋值
Integer maxId = operatorsMapper.getMaxId();
//如果为空则赋值成1
if(null == maxId){
maxId = 1;
}else{
maxId = maxId+1;
}
//设置商户编号服务区id(四位)+角色id(两位)+商户id(四位)
String jobNumber = ZeroPaddingUtil.zeroPadding(operators.getServiceAreaId(),4)
+ZeroPaddingUtil.zeroPadding(operators.getRoleId(),2)
+ZeroPaddingUtil.zeroPadding(maxId,4);
//给密码加密
operators.setPassWord(PassWordUtils.encrypt(operators.getPassWord()));
operators.setId(maxId);
operators.setJobNumber(jobNumber);
operators.setCreateTime(new Date());
if(!operators.getPicBase64().contains("http") && !operators.getPicBase64().isEmpty()){
try{
//删除服务区图片
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
String[] delUrlArray = fileDelUrl.split(",");
for (String delUrl : delUrlArray) {
//1.拼接参数
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", operators.getStroePic());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(property+manageAddressLinux+operators.getStroePic());
file.delete();
}
}
//上传图片到服务器
if(null != uploadFileUrl && !uploadFileUrl.isEmpty()){
String[] uploadUrlArray = uploadFileUrl.split(",");
for (String uploadUrl : uploadUrlArray) {
//1.拼接参数
Map<String, String> mapUpdate = new HashMap<String, String>();
JSONArray jsonA = new JSONArray();
JSONObject mapUpdateParam = new JSONObject();
mapUpdateParam.put("fileName", operators.getId()+"OPERATIONSTROEPIC.jpg");
mapUpdateParam.put("imageBase64", operators.getPicBase64());
jsonA.add(mapUpdateParam);
mapUpdate.put("jsonArray", jsonA.toJSONString());
String result = HttpClientUtil.doPost(uploadUrl, mapUpdate);
ImageUtil.generateImage(operators.getPicBase64(),property+manageAddressLinux+dateMdk, property+manageAddressLinux+dateMdk+"/"+operators.getId()+"OPERATIONSTROEPIC.jpg");
operators.setStroePic(dateMdk+"/"+operators.getId()+"OPERATIONSTROEPIC.jpg");
}
}
}catch (Exception e){
log.error("上传图片失败");
}
res = operatorsMapper.insert(operators);
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = operatorsBakMapper.insert(operators);
}
}else{
res = operatorsMapper.insert(operators);
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = operatorsBakMapper.insert(operators);
}
}
return res;
}else{
return 0;
}
}
@Override
public int updateOperators(ServiceAreaOperators operators) throws Exception {
//从配置文件中读取上传文件接口
String uploadFileUrl = PropertiesUtil.getValue("fileUploadUrl");
//从配置文件中读取上传文件接口
String fileDelUrl = PropertiesUtil.getValue("fileDelUrl");
//备份文件位置
String manageAddressLinux = PropertiesUtil.getValue("manageAddressLinux");
//备份图片
String property = System.getProperty("catalina.home");
//记录存放日期文件夹
SimpleDateFormat format =new SimpleDateFormat("yyyyMMdd");
String dateMdk = format.format(new Date());
int res = 0;
//如果数据为空,直接返回
if(null == operators){
return 0;
}
// //先判断工号是否已经存在,存在不让保存数据
// List<ServiceAreaOperators> operationByJobNumber = operatorsMapper.getOperationByJobNumber(operators.getJobNumber());
// if(null != operationByJobNumber && operationByJobNumber.size() > 0){
// if(operationByJobNumber.get(0).getId() != operators.getId()){
// return -2;
// }
// }
//判断传回的值中id是否有值,没有直接返回
if(null == operators.getId()){
return 0;
}else{
//设置商户编号服务区id(四位)+角色id(两位)+商户id(四位)
// String jobNumber = ZeroPaddingUtil.zeroPadding(operators.getServiceAreaId(),4)
// +ZeroPaddingUtil.zeroPadding(operators.getRoleId(),2)
// +ZeroPaddingUtil.zeroPadding(operators.getId(),4);
// operators.setJobNumber(jobNumber);
//给密码加密
operators.setPassWord(PassWordUtils.encrypt(operators.getPassWord()));
//设置修改条件根据id修改
LambdaQueryWrapper<ServiceAreaOperators> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(null != operators.getId(),
ServiceAreaOperators::getId,
operators.getId());
if(!operators.getPicBase64().contains("http") && !operators.getPicBase64().isEmpty()){
try{
//删除服务区图片
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
String[] delUrlArray = fileDelUrl.split(",");
for (String delUrl : delUrlArray) {
//1.拼接参数
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", operators.getStroePic());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(property+manageAddressLinux+operators.getStroePic());
file.delete();
}
}
//上传图片到服务器
if(null != uploadFileUrl && !uploadFileUrl.isEmpty()){
String[] uploadUrlArray = uploadFileUrl.split(",");
for (String uploadUrl : uploadUrlArray) {
//1.拼接参数
Map<String, String> mapUpdate = new HashMap<String, String>();
JSONArray jsonA = new JSONArray();
JSONObject mapUpdateParam = new JSONObject();
mapUpdateParam.put("fileName", operators.getId()+"OPERATIONSTROEPIC.jpg");
mapUpdateParam.put("imageBase64", operators.getPicBase64());
jsonA.add(mapUpdateParam);
mapUpdate.put("jsonArray", jsonA.toJSONString());
String result = HttpClientUtil.doPost(uploadUrl, mapUpdate);
ImageUtil.generateImage(operators.getPicBase64(),property+manageAddressLinux+dateMdk, property+manageAddressLinux+dateMdk+"/"+operators.getId()+"OPERATIONSTROEPIC.jpg");
operators.setStroePic(dateMdk+"/"+operators.getId()+"OPERATIONSTROEPIC.jpg");
}
}
}catch (Exception e){
log.error("上传图片失败");
}
res = operatorsMapper.update(operators,lambdaQueryWrapper);
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = operatorsBakMapper.update(operators,lambdaQueryWrapper);
}
}else{
res = operatorsMapper.update(operators,lambdaQueryWrapper);
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = operatorsBakMapper.update(operators,lambdaQueryWrapper);
}
}
return res;
}
}
/**
*
* @param operators
* @return
* @throws Exception
*/
@Override
public int deleteOperators(List<ServiceAreaOperators> operators)throws Exception {
//从配置文件中读取上传文件接口
String uploadFileUrl = PropertiesUtil.getValue("fileUploadUrl");
//从配置文件中读取上传文件接口
String fileDelUrl = PropertiesUtil.getValue("fileDelUrl");
//备份文件位置
String manageAddressLinux = PropertiesUtil.getValue("manageAddressLinux");
//备份图片
String property = System.getProperty("catalina.home");
String[] delUrlArray = null;
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
delUrlArray = fileDelUrl.split(",");
}else{
delUrlArray = new String[]{};
}
//如果没有数据或数据为空直接返回0
if(null == operators || operators.size() == 0){
return 0;
}
//封装要删除的id集合
List<Integer> deleteBatchIds = new ArrayList<>();
try{
//把要删除的id放在deleteBatchIds集合中
for (ServiceAreaOperators operator : operators) {
for (String delUrl : delUrlArray) {
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", operator.getStroePic());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(property+manageAddressLinux+operator.getStroePic());
file.delete();
}
deleteBatchIds.add(operator.getId());
}
}catch (Exception e){
log.error("删除图片失败");
}
if(PropertiesUtil.getValue("IsBak").equals("1")){
operatorsBakMapper.deleteBatchIds(deleteBatchIds);
}
return operatorsMapper.deleteBatchIds(deleteBatchIds);
}
@Override
public Page<ServiceAreaOperators> getCollectionData(Map<String, Object> params) {
return null;
}
/**
*
* @param params
* @return
*/
@Override
public ServiceAreaOperators login(Map<String, Object> params) {
//先根据工号查询用户信息
List<ServiceAreaOperators> operationByJobNumber = operatorsMapper.getOperationByJobNumber((String) params.get("jobNumber"));
//如果根据工号找到,再匹配密码是否正确
if(null != operationByJobNumber && operationByJobNumber.size() > 0){
String decryptPassWord = PassWordUtils.decrypt(operationByJobNumber.get(0).getPassWord());
if(decryptPassWord.equals(params.get("password"))){
return operationByJobNumber.get(0);
}else{
return null;
}
}else{
return null;
}
}
}
package com.nmgs.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.entity.Cafter;
import com.nmgs.entity.ServiceAreaOperators;
import com.nmgs.mapper.bak.OperatorsBakMapper;
import com.nmgs.mapper.petrol.OperatorsMapper;
import com.nmgs.service.IOperatorsService;
import com.nmgs.util.*;
import com.trkf.PasswordEncryption.PassWordUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.Charsets;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
@Transactional(timeout = 100)
@Slf4j
public class OperatorsServiceImpl implements IOperatorsService {
@Autowired
private OperatorsMapper operatorsMapper;
@Autowired
private OperatorsBakMapper operatorsBakMapper;
public static Logger logger = LoggerFactory.getLogger(OperatorsServiceImpl.class);
/**
*
* @param params
* @return
*/
@Override
public Page<ServiceAreaOperators> getOperatorsList(Map<String, Object> params) {
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
//设置分页
Integer pageNum = (Integer) params.get("pageNum");
Integer pageSize = (Integer) params.get("pageSize");
Page<ServiceAreaOperators> page = new Page<>(pageNum,pageSize);
page = operatorsMapper.getOperatorsList(page,params);
//给密码解密
List<ServiceAreaOperators> records = page.getRecords();
if(null != records && records.size() > 0){
for (ServiceAreaOperators record : records) {
record.setPassWord(PassWordUtils.decrypt(record.getPassWord()));
}
page.setRecords(records);
}
return page;
}
/**
*
* @param operators
* @return
* @throws Exception
*/
@Override
public int addOperators(ServiceAreaOperators operators) throws Exception {
//从配置文件中读取上传文件接口
String uploadFileUrl = PropertiesUtil.getValue("fileUploadUrl");
//从配置文件中读取上传文件接口
String fileDelUrl = PropertiesUtil.getValue("fileDelUrl");
//备份文件位置
String manageAddressLinux = PropertiesUtil.getValue("manageAddressLinux");
//备份图片
String property = System.getProperty("catalina.home");
//记录存放日期文件夹
SimpleDateFormat format =new SimpleDateFormat("yyyyMMdd");
String dateMdk = format.format(new Date());
int res = 0;
//如果数据为空,直接返回
if(null == operators){
return 0;
}
//判断传回的值中id是否有值没有就是新增
if(null == operators.getId()){
// //先判断工号是否已经存在,存在不让保存数据
// List<ServiceAreaOperators> operationByJobNumber = operatorsMapper.getOperationByJobNumber(operators.getJobNumber());
// if(null != operationByJobNumber && operationByJobNumber.size() > 0){
// return -2;
// }
//查询当前数据中id的最大值,给id赋值
Integer maxId = operatorsMapper.getMaxId();
//如果为空则赋值成1
if(null == maxId){
maxId = 1;
}else{
maxId = maxId+1;
}
//设置商户编号服务区id(四位)+角色id(两位)+商户id(四位)
String jobNumber = ZeroPaddingUtil.zeroPadding(operators.getServiceAreaId(),4)
+ZeroPaddingUtil.zeroPadding(operators.getRoleId(),2)
+ZeroPaddingUtil.zeroPadding(maxId,4);
//给密码加密
operators.setPassWord(PassWordUtils.encrypt(operators.getPassWord()));
operators.setId(maxId);
operators.setJobNumber(jobNumber);
operators.setCreateTime(new Date());
if(!operators.getPicBase64().contains("http") && !operators.getPicBase64().isEmpty()){
try{
//删除服务区图片
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
String[] delUrlArray = fileDelUrl.split(",");
for (String delUrl : delUrlArray) {
//1.拼接参数
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", operators.getStroePic());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(property+manageAddressLinux+operators.getStroePic());
file.delete();
}
}
//上传图片到服务器
if(null != uploadFileUrl && !uploadFileUrl.isEmpty()){
String[] uploadUrlArray = uploadFileUrl.split(",");
for (String uploadUrl : uploadUrlArray) {
//1.拼接参数
Map<String, String> mapUpdate = new HashMap<String, String>();
JSONArray jsonA = new JSONArray();
JSONObject mapUpdateParam = new JSONObject();
mapUpdateParam.put("fileName", operators.getId()+"OPERATIONSTROEPIC.jpg");
mapUpdateParam.put("imageBase64", operators.getPicBase64());
jsonA.add(mapUpdateParam);
mapUpdate.put("jsonArray", jsonA.toJSONString());
String result = HttpClientUtil.doPost(uploadUrl, mapUpdate);
ImageUtil.generateImage(operators.getPicBase64(),property+manageAddressLinux+dateMdk, property+manageAddressLinux+dateMdk+"/"+operators.getId()+"OPERATIONSTROEPIC.jpg");
operators.setStroePic(dateMdk+"/"+operators.getId()+"OPERATIONSTROEPIC.jpg");
}
}
}catch (Exception e){
log.error("上传图片失败");
}
res = operatorsMapper.insert(operators);
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = operatorsBakMapper.insert(operators);
}
}else{
res = operatorsMapper.insert(operators);
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = operatorsBakMapper.insert(operators);
}
}
return res;
}else{
return 0;
}
}
@Override
public int updateOperators(ServiceAreaOperators operators) throws Exception {
//从配置文件中读取上传文件接口
String uploadFileUrl = PropertiesUtil.getValue("fileUploadUrl");
//从配置文件中读取上传文件接口
String fileDelUrl = PropertiesUtil.getValue("fileDelUrl");
//备份文件位置
String manageAddressLinux = PropertiesUtil.getValue("manageAddressLinux");
//备份图片
String property = System.getProperty("catalina.home");
//记录存放日期文件夹
SimpleDateFormat format =new SimpleDateFormat("yyyyMMdd");
String dateMdk = format.format(new Date());
int res = 0;
//如果数据为空,直接返回
if(null == operators){
return 0;
}
// //先判断工号是否已经存在,存在不让保存数据
// List<ServiceAreaOperators> operationByJobNumber = operatorsMapper.getOperationByJobNumber(operators.getJobNumber());
// if(null != operationByJobNumber && operationByJobNumber.size() > 0){
// if(operationByJobNumber.get(0).getId() != operators.getId()){
// return -2;
// }
// }
//判断传回的值中id是否有值,没有直接返回
if(null == operators.getId()){
return 0;
}else{
//设置商户编号服务区id(四位)+角色id(两位)+商户id(四位)
// String jobNumber = ZeroPaddingUtil.zeroPadding(operators.getServiceAreaId(),4)
// +ZeroPaddingUtil.zeroPadding(operators.getRoleId(),2)
// +ZeroPaddingUtil.zeroPadding(operators.getId(),4);
// operators.setJobNumber(jobNumber);
//给密码加密
operators.setPassWord(PassWordUtils.encrypt(operators.getPassWord()));
//设置修改条件根据id修改
LambdaQueryWrapper<ServiceAreaOperators> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(null != operators.getId(),
ServiceAreaOperators::getId,
operators.getId());
if(!operators.getPicBase64().contains("http") && !operators.getPicBase64().isEmpty()){
try{
//删除服务区图片
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
String[] delUrlArray = fileDelUrl.split(",");
for (String delUrl : delUrlArray) {
//1.拼接参数
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", operators.getStroePic());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(property+manageAddressLinux+operators.getStroePic());
file.delete();
}
}
//上传图片到服务器
if(null != uploadFileUrl && !uploadFileUrl.isEmpty()){
String[] uploadUrlArray = uploadFileUrl.split(",");
for (String uploadUrl : uploadUrlArray) {
//1.拼接参数
Map<String, String> mapUpdate = new HashMap<String, String>();
JSONArray jsonA = new JSONArray();
JSONObject mapUpdateParam = new JSONObject();
mapUpdateParam.put("fileName", operators.getId()+"OPERATIONSTROEPIC.jpg");
mapUpdateParam.put("imageBase64", operators.getPicBase64());
jsonA.add(mapUpdateParam);
mapUpdate.put("jsonArray", jsonA.toJSONString());
String result = HttpClientUtil.doPost(uploadUrl, mapUpdate);
ImageUtil.generateImage(operators.getPicBase64(),property+manageAddressLinux+dateMdk, property+manageAddressLinux+dateMdk+"/"+operators.getId()+"OPERATIONSTROEPIC.jpg");
operators.setStroePic(dateMdk+"/"+operators.getId()+"OPERATIONSTROEPIC.jpg");
}
}
}catch (Exception e){
log.error("上传图片失败");
}
res = operatorsMapper.update(operators,lambdaQueryWrapper);
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = operatorsBakMapper.update(operators,lambdaQueryWrapper);
}
}else{
res = operatorsMapper.update(operators,lambdaQueryWrapper);
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = operatorsBakMapper.update(operators,lambdaQueryWrapper);
}
}
return res;
}
}
/**
*
* @param operators
* @return
* @throws Exception
*/
@Override
public int deleteOperators(List<ServiceAreaOperators> operators)throws Exception {
//从配置文件中读取上传文件接口
String uploadFileUrl = PropertiesUtil.getValue("fileUploadUrl");
//从配置文件中读取上传文件接口
String fileDelUrl = PropertiesUtil.getValue("fileDelUrl");
//备份文件位置
String manageAddressLinux = PropertiesUtil.getValue("manageAddressLinux");
//备份图片
String property = System.getProperty("catalina.home");
String[] delUrlArray = null;
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
delUrlArray = fileDelUrl.split(",");
}else{
delUrlArray = new String[]{};
}
//如果没有数据或数据为空直接返回0
if(null == operators || operators.size() == 0){
return 0;
}
//封装要删除的id集合
List<Integer> deleteBatchIds = new ArrayList<>();
try{
//把要删除的id放在deleteBatchIds集合中
for (ServiceAreaOperators operator : operators) {
for (String delUrl : delUrlArray) {
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", operator.getStroePic());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(property+manageAddressLinux+operator.getStroePic());
file.delete();
}
deleteBatchIds.add(operator.getId());
}
}catch (Exception e){
log.error("删除图片失败");
}
if(PropertiesUtil.getValue("IsBak").equals("1")){
operatorsBakMapper.deleteBatchIds(deleteBatchIds);
}
return operatorsMapper.deleteBatchIds(deleteBatchIds);
}
@Override
public Page<ServiceAreaOperators> getCollectionData(Map<String, Object> params) {
return null;
}
/**
*
* @param params
* @return
*/
@Override
public ServiceAreaOperators login(Map<String, Object> params) {
//先根据工号查询用户信息
List<ServiceAreaOperators> operationByJobNumber = operatorsMapper.getOperationByJobNumber((String) params.get("jobNumber"));
//如果根据工号找到,再匹配密码是否正确
if(null != operationByJobNumber && operationByJobNumber.size() > 0){
String decryptPassWord = PassWordUtils.decrypt(operationByJobNumber.get(0).getPassWord());
if(decryptPassWord.equals(params.get("password"))){
return operationByJobNumber.get(0);
}else{
return null;
}
}else{
return null;
}
}
@Override
public void exportOperationListExcle(String searchForm, HttpServletResponse response)throws Exception{
//设置金额的格式
DecimalFormat decimalFormat = new DecimalFormat("#.00");
//设置导出文件名称
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date();
String filename = "商户信息-" + simpleDateFormat.format(date) + ".xlsx";
HashMap<String, Object> paramsMap = new HashMap<>();
//如果传进来的参数有值,拼接参数
if (null != searchForm && !"".equals(searchForm)) {
paramsMap = JSON.parseObject(searchForm, HashMap.class);
}
if(paramsMap.get("companyIds") != null && !"".equals(paramsMap.get("companyIds") )){
String companyIds = (String) paramsMap.get("companyIds");
String[] split = companyIds.split(",");
paramsMap.put("companyIds",Arrays.asList(split));
}
//根据条件查询绿通数据
//从配置文件中读取数据库连接类型
paramsMap.put("DBTYPE", PropertiesUtil.getValue("DBType"));
//设置分页
Integer pageNum = (Integer) paramsMap.get("pageNum");
Integer pageSize = (Integer) paramsMap.get("pageSize");
Page<ServiceAreaOperators> page = new Page<>(pageNum,100000);
page = operatorsMapper.getOperatorsList(page,paramsMap);
//给密码解密
List<ServiceAreaOperators> records = page.getRecords();
if(null != records && records.size() > 0){
for (ServiceAreaOperators record : records) {
record.setPassWord(PassWordUtils.decrypt(record.getPassWord()));
}
page.setRecords(records);
}
//创建一个Excel表格
Workbook wb = new XSSFWorkbook();
//创建sheet页面
Sheet sheet = wb.createSheet("商户信息");
if (null == records) {
//导出Excel
writeToExcel(response, wb, filename);
}
//定义一个标题数组
String[] title = {"商户工号", "密码", "商户名称", "商户角色","所属公司","所属服务区", "商户信息", "商户联系方式","商户状态"};
//设置统计时间日期格式
SimpleDateFormat simpleDateFormatClassData = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat simpleDateFormatDt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//定义内容数据
List<String[]> rowValues = new ArrayList<>();
for (ServiceAreaOperators serviceAreaOperators : records) {
String[] rowValue = {
null == serviceAreaOperators.getJobNumber() ? "" : serviceAreaOperators.getJobNumber(),
null == serviceAreaOperators.getPassWord() ? "" : serviceAreaOperators.getPassWord(),
null == serviceAreaOperators.getUserName() ? "" : serviceAreaOperators.getUserName(),
null == serviceAreaOperators.getRoleName() ? "" : serviceAreaOperators.getRoleName(),
null == serviceAreaOperators.getCompanyName() ? "" : serviceAreaOperators.getCompanyName(),
null == serviceAreaOperators.getServiceAreaName() ? "" : serviceAreaOperators.getServiceAreaName(),
null == serviceAreaOperators.getJobNumberInfo() ? "" : serviceAreaOperators.getJobNumberInfo(),
null == serviceAreaOperators.getPhone() ? "" : serviceAreaOperators.getPhone(),
null == serviceAreaOperators.getOPEN() ? "" : serviceAreaOperators.getOPEN() == 1 ?"营业中":"暂停营业"
};
rowValues.add(rowValue);
}
//设置标题单元格式
CellStyle cellStyleTitle = wb.createCellStyle();
cellStyleTitle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());//设置背景色
cellStyleTitle.setFillPattern((short) 1);//必须设置 否则无效
//设置水平垂直居中
cellStyleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyleTitle.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置边框样式
cellStyleTitle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderRight(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderTop(XSSFCellStyle.BORDER_THIN);
//定义标题内容
Row currentRow = sheet.createRow(0);
// 往Excel表格中添加标题的数据
for (int j = 0; j < title.length; j++) {
// 设置列宽
sheet.setColumnWidth(j, 4100);
Cell cell = currentRow.createCell(j);
cell.setCellStyle(cellStyleTitle);
//每个单元格的值目前做 String 处理
//cell.setCellType(CellType.STRING);
cell.setCellValue(title[j]);
}
//设置内容单元格式
CellStyle cellStyleValue = wb.createCellStyle();
//设置水平垂直居中
cellStyleValue.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyleValue.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置边框样式
cellStyleValue.setBorderBottom(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderLeft(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderRight(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderTop(XSSFCellStyle.BORDER_THIN);
//往Excel表格中添加具体数据
for (int i = 0; i < rowValues.size(); i++) {
Row Row = sheet.createRow((i + 1));
for (int j = 0; j < title.length; j++) {
// 设置列宽
sheet.setColumnWidth(j, 6000);
Cell cell = Row.createCell(j);
cell.setCellStyle(cellStyleValue);
//每个单元格的值目前做 String 处理
//cell.setCellType(CellType.STRING);
cell.setCellValue(rowValues.get(i)[j]);
}
}
//导出Excel
writeToExcel(response, wb, filename);
}
/**
* Excelresponse
*
* @param response
* @param wb
* @param fileName
* @throws Exception
*/
public void writeToExcel(HttpServletResponse response, Workbook wb, String fileName) throws Exception {
OutputStream os = null;
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setCharacterEncoding(Charsets.UTF_8.name());
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, String.format("attachment; filename=%s", new String(URLEncoder.encode(fileName, Charsets.UTF_8.name())
.getBytes(Charsets.UTF_8), Charsets.ISO_8859_1)));
os = response.getOutputStream();
wb.write(os);
os.flush();
}
}

@ -4,6 +4,7 @@ import com.nmgs.entity.IntegralCheck;
import com.nmgs.mapper.bak.IntegralCheckBakMapper;
import com.nmgs.mapper.petrol.IntegralCheckMapper;
import com.nmgs.util.PropertiesUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -11,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Slf4j
public class SolveCheckServiceImpl {
public IntegralCheckMapper integralCheckMapper;
@ -33,7 +35,7 @@ public class SolveCheckServiceImpl {
if(PropertiesUtil.getValue("IsBak").equals("1")){
integralCheckBakMapper.insert(integralCheck);
}
System.out.println("次数===" + i);
log.info("次数===" + i);
}
}
}

File diff suppressed because it is too large Load Diff

@ -1,469 +1,469 @@
package com.nmgs.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.entity.*;
import com.nmgs.mapper.bak.UserVehicleBakMapper;
import com.nmgs.mapper.petrol.IntegrationListMapper;
import com.nmgs.mapper.petrol.UserMapper;
import com.nmgs.mapper.petrol.UserVehicleMapper;
import com.nmgs.service.IAddService;
import com.nmgs.service.IAsyncService;
import com.nmgs.service.IUserVehicleService;
import com.nmgs.util.HttpClientUtil;
import com.nmgs.util.ImageUtil;
import com.nmgs.util.PropertiesUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.Charsets;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
@Transactional(timeout = 100)
@Slf4j
public class UserVehicleServiceImpl implements IUserVehicleService {
@Autowired
private UserVehicleMapper userVehicleMapper;
@Autowired
private UserVehicleBakMapper userVehicleBakMapper;
@Autowired
private UserMapper userMapper;
@Autowired
private IntegrationListMapper integrationListMapper;
@Autowired
private IAddService addService;
@Autowired
private IAsyncService asyncService;
private static final String FILE_DIRECTORY = "";
@Override
public Page<UserVehicle> getUserVehicleInfo(Map<String, Object> params) {
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
//设置分页
Integer pageNum = (Integer) params.get("pageNum");
Integer pageSize = (Integer) params.get("pageSize");
Page<UserVehicle> page = new Page<>(pageNum,pageSize);
page = userVehicleMapper.getUserVehicleInfo(page,params);
return page;
}
@Override
public int checkUserVehiclePass(List<UserVehicle> userVehicles, String loginId) {
int res = 0;
//执行批量修改语句,把用户的审核状态修改成已认证--1
//return userVehicleMapper.checkUserVehiclePass(userVehicles);
//addService.saveCheckUserVehiclePass(userVehicles);
//return 0;
//判断是日统计还是月统计
SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map<String, Object> params = new HashMap<>();
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
params.put("BakDBType", PropertiesUtil.getValue("BakDBType"));
params.put("userVehicles",userVehicles);
params.put("loginId",loginId);
params.put("operationTime",format.format(new Date()));
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = userVehicleBakMapper.checkUserVehiclePass(params);
}
res = userVehicleMapper.checkUserVehiclePass(params);
//获取推送积分url信息
List<Map<String, Object>> changeMsgPush = userMapper.getChangeMshUrl("CHECK_VEHICLE_MSG_PUSH");
//发送消息
asyncService.pushMsgCheckVehicles(userVehicles,changeMsgPush,"车辆认证","通过","车辆认证成功,可以换取里程积分",1);
return res;
}
@Override
public int checkUserVehicleNoPass(List<UserVehicle> userVehicles, String loginId) {
int res = 0;
String unPassInfo = "";
if(null != userVehicles && !userVehicles.isEmpty()){
unPassInfo = userVehicles.get(0).getUnPassInfo();
}
//判断是日统计还是月统计
SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map<String, Object> params = new HashMap<>();
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
params.put("BakDBType", PropertiesUtil.getValue("BakDBType"));
params.put("userVehicles",userVehicles);
params.put("loginId",loginId);
params.put("operationTime",format.format(new Date()));
params.put("unPassInfo",unPassInfo);
//执行批量修改语句,把用户的审核状态修改成已认证--1
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = userVehicleBakMapper.checkUserVehicleNoPass(params);
}
res = userVehicleMapper.checkUserVehicleNoPass(params);
//获取推送积分url信息
List<Map<String, Object>> changeMsgPush = userMapper.getChangeMshUrl("CHECK_VEHICLE_MSG_PUSH");
//发送消息
asyncService.pushMsgCheckVehicles(userVehicles,changeMsgPush,"车辆认证","不通过",unPassInfo,3);
return res;
}
@Override
public UserVehicle getUserVehiclePic(Map<String, Object> params) {
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
return userVehicleMapper.getUserVehiclePic(params);
}
@Override
public void exportUserVehicleCheckExcle(String searchForm, HttpServletResponse response) throws Exception {
//设置金额的格式
DecimalFormat decimalFormat = new DecimalFormat("#.00");
//设置导出文件名称
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date();
String filename = "车辆绑定信息-" + simpleDateFormat.format(date) + ".xlsx";
HashMap<String, Object> paramsMap = new HashMap<>();
//如果传进来的参数有值,拼接参数
if (null != searchForm && !"".equals(searchForm)) {
paramsMap = JSON.parseObject(searchForm, HashMap.class);
}
//从配置文件中读取数据库连接类型
paramsMap.put("DBTYPE", PropertiesUtil.getValue("DBType"));
//设置分页
Integer pageNum = (Integer) paramsMap.get("pageNum");
Integer pageSize = (Integer) paramsMap.get("pageSize");
Page<UserVehicle> page = new Page<>(pageNum,50000);
page = userVehicleMapper.getUserVehicleInfo(page,paramsMap);
//创建一个Excel表格
Workbook wb = new XSSFWorkbook();
//创建sheet页面
Sheet sheet = wb.createSheet("车辆信息");
//如果没有数据返回一个空的Excel
List<UserVehicle> records = page.getRecords();
if (null == records) {
//导出Excel
writeToExcel(response, wb, filename);
}
//定义一个标题数组
String[] title = {"车牌号", "绑定用户姓名","绑定用户身份证号", "审核状态", "未通过原因","操作人","操作时间", "车辆绑定时间","车辆解绑时间"};
//设置统计时间日期格式
SimpleDateFormat simpleDateFormatClassData = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat simpleDateFormatDt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//定义内容数据
List<String[]> rowValues = new ArrayList<>();
for (UserVehicle userVehicle: records) {
String[] rowValue = {
null == userVehicle.getAcarNoShow()? "" : userVehicle.getAcarNoShow(),
null == userVehicle.getUserRealName()? "" : userVehicle.getUserRealName(),
null == userVehicle.getUserIdNumber()? "" : userVehicle.getUserIdNumber(),
null == userVehicle.getCertificationName()? "" : userVehicle.getCertificationName(),
null == userVehicle.getUnPassInfo()? "" : userVehicle.getUnPassInfo(),
null == userVehicle.getOperationUserName()? "" : userVehicle.getOperationUserName(),
null == userVehicle.getOperationTime()? "" : simpleDateFormatDt.format(userVehicle.getOperationTime()),
null == userVehicle.getCreateTime()? "" : simpleDateFormatDt.format(userVehicle.getCreateTime()),
null == userVehicle.getCancelTime()? "" : simpleDateFormatDt.format(userVehicle.getCancelTime()),
};
rowValues.add(rowValue);
}
//设置标题单元格式
CellStyle cellStyleTitle = wb.createCellStyle();
cellStyleTitle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());//设置背景色
cellStyleTitle.setFillPattern((short) 1);//必须设置 否则无效
//设置水平垂直居中
cellStyleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyleTitle.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置边框样式
cellStyleTitle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderRight(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderTop(XSSFCellStyle.BORDER_THIN);
//定义标题内容
Row currentRow = sheet.createRow(0);
// 往Excel表格中添加标题的数据
for (int j = 0; j < title.length; j++) {
// 设置列宽
sheet.setColumnWidth(j, 5000);
Cell cell = currentRow.createCell(j);
cell.setCellStyle(cellStyleTitle);
//每个单元格的值目前做 String 处理
//cell.setCellType(CellType.STRING);
cell.setCellValue(title[j]);
}
//设置内容单元格式
CellStyle cellStyleValue = wb.createCellStyle();
//设置水平垂直居中
cellStyleValue.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyleValue.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置边框样式
cellStyleValue.setBorderBottom(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderLeft(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderRight(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderTop(XSSFCellStyle.BORDER_THIN);
//往Excel表格中添加具体数据
for (int i = 0; i < rowValues.size(); i++) {
Row Row = sheet.createRow((i + 1));
for (int j = 0; j < title.length; j++) {
// 设置列宽
sheet.setColumnWidth(j, 6000);
Cell cell = Row.createCell(j);
cell.setCellStyle(cellStyleValue);
//每个单元格的值目前做 String 处理
//cell.setCellType(CellType.STRING);
cell.setCellValue(rowValues.get(i)[j]);
}
}
//导出Excel
writeToExcel(response, wb, filename);
}
@Override
public List<Map<String, Object>> getUserVehicleGrow(Map<String, Object> params) {
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
List<Map<String, Object>> data = userVehicleMapper.getUserVehicleGrow(params);
return data;
}
@Override
public int deleteUserVehicle(List<UserVehicle> userVehicles) {
//根据车牌号用户id,绑定时间删除未认证的车辆信息
for (UserVehicle userVehicle : userVehicles) {
LambdaQueryWrapper<UserVehicle> queryWrapper = new LambdaQueryWrapper<UserVehicle>();
queryWrapper.eq(null != userVehicle.getUserId(),
UserVehicle::getUserId,
userVehicle.getUserId())
.eq(null != userVehicle.getAcarNo(),
UserVehicle::getAcarNo,
userVehicle.getAcarNo())
.eq(null != userVehicle.getCreateTime(),
UserVehicle::getCreateTime,
userVehicle.getCreateTime());
userVehicleMapper.delete(queryWrapper);
if(PropertiesUtil.getValue("IsBak").equals("1")){
userVehicleBakMapper.delete(queryWrapper);
}
}
return 0;
}
@Override
public int updateUserVehicle(UserVehicle userVehicle) {
//从配置文件中读取上传文件接口
String uploadFileUrl = PropertiesUtil.getValue("fileUploadUrl");
//从配置文件中读取上传文件接口
String fileDelUrl = PropertiesUtil.getValue("fileDelUrl");
//备份文件位置
String manageAddressLinux = PropertiesUtil.getValue("manageAddressLinux");
//备份图片
String property = System.getProperty("catalina.home");
//记录存放日期文件夹
SimpleDateFormat format =new SimpleDateFormat("yyyyMMdd");
String dateMdk = format.format(new Date());
int res = 0;
//如果value值为空直接返回不保存
if(null == userVehicle){
return 0;
}
//判断车辆是否已经产生积分,产生积分的车辆不能修改
Map<String, Object> params = new HashMap<>();
params.put("aCarNoQuery",userVehicle.getAcarNo());
Page<Map<String, Object>> page = new Page<>(0,1);
Page<Map<String, Object>> userVehicleScoreInfo = userMapper.getUserVehicleScoreInfo(page, params);
if(null != userVehicleScoreInfo.getRecords() && !userVehicleScoreInfo.getRecords().isEmpty()){
return -2;
}
//更新里程表里的数据
UpdateWrapper<UserVehicle> updateWrapperMile = new UpdateWrapper<>();
try{
//获取图片,修改名称,重新上传
String base64Lic = ImageUtil.getImgFileToBase64(property+manageAddressLinux+userVehicle.getLicensePicName());
String base64Vehicle = ImageUtil.getImgFileToBase64(property+manageAddressLinux+userVehicle.getVehiclePicName());
String base64Permit = ImageUtil.getImgFileToBase64(property+manageAddressLinux+userVehicle.getPermitPicName());
//删除图片
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
String[] delUrlArray = fileDelUrl.split(",");
for (String delUrl : delUrlArray) {
//1.拼接参数
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", userVehicle.getLicensePicName());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(property+manageAddressLinux+userVehicle.getLicensePicName());
file.delete();
}
}
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
String[] delUrlArray = fileDelUrl.split(",");
for (String delUrl : delUrlArray) {
//1.拼接参数
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", userVehicle.getVehiclePicName());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(property+manageAddressLinux+userVehicle.getVehiclePicName());
file.delete();
}
}
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
String[] delUrlArray = fileDelUrl.split(",");
for (String delUrl : delUrlArray) {
//1.拼接参数
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", userVehicle.getPermitPicName());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(property+manageAddressLinux+userVehicle.getPermitPicName());
file.delete();
}
}
//修改车牌号和颜色,同步修改图片名称
String newACarNo = userVehicle.getVehicleNo()+'_'+userVehicle.getColorType();
//上传图片到服务器
if(null != uploadFileUrl && !uploadFileUrl.isEmpty()){
String[] uploadUrlArray = uploadFileUrl.split(",");
for (String uploadUrl : uploadUrlArray) {
//1.拼接参数
Map<String, String> mapUpdate = new HashMap<String, String>();
JSONArray jsonA = new JSONArray();
JSONObject mapUpdateParam = new JSONObject();
mapUpdateParam.put("fileName", userVehicle.getUserId()+"-"+newACarNo+"-LICPIC.jpg");
mapUpdateParam.put("imageBase64", base64Lic);
jsonA.add(mapUpdateParam);
mapUpdate.put("jsonArray", jsonA.toJSONString());
String result = HttpClientUtil.doPost(uploadUrl, mapUpdate);
ImageUtil.generateImage(base64Lic,property+manageAddressLinux+dateMdk, property+manageAddressLinux+dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-LICPIC.jpg");
}
}
if(null != uploadFileUrl && !uploadFileUrl.isEmpty()){
String[] uploadUrlArray = uploadFileUrl.split(",");
for (String uploadUrl : uploadUrlArray) {
//1.拼接参数
Map<String, String> mapUpdate = new HashMap<String, String>();
JSONArray jsonA = new JSONArray();
JSONObject mapUpdateParam = new JSONObject();
mapUpdateParam.put("fileName", userVehicle.getUserId()+"-"+newACarNo+"-VEHPIC.jpg");
mapUpdateParam.put("imageBase64", base64Vehicle);
jsonA.add(mapUpdateParam);
mapUpdate.put("jsonArray", jsonA.toJSONString());
String result = HttpClientUtil.doPost(uploadUrl, mapUpdate);
ImageUtil.generateImage(base64Vehicle,property+manageAddressLinux+dateMdk, property+manageAddressLinux+dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-VEHPIC.jpg");
}
}
if(null != uploadFileUrl && !uploadFileUrl.isEmpty()){
String[] uploadUrlArray = uploadFileUrl.split(",");
for (String uploadUrl : uploadUrlArray) {
//1.拼接参数
Map<String, String> mapUpdate = new HashMap<String, String>();
JSONArray jsonA = new JSONArray();
JSONObject mapUpdateParam = new JSONObject();
mapUpdateParam.put("fileName", userVehicle.getUserId()+"-"+newACarNo+"-PERPIC.jpg");
mapUpdateParam.put("imageBase64", base64Permit);
jsonA.add(mapUpdateParam);
mapUpdate.put("jsonArray", jsonA.toJSONString());
String result = HttpClientUtil.doPost(uploadUrl, mapUpdate);
ImageUtil.generateImage(base64Permit,property+manageAddressLinux+dateMdk, property+manageAddressLinux+dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-PERPIC.jpg");
}
}
userVehicle.setVehiclePicName(dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-VEHPIC.jpg");
userVehicle.setPermitPicName(dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-PERPIC.jpg");
userVehicle.setLicensePicName(dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-LICPIC.jpg");
//修改车牌号和图片名称
updateWrapperMile
.eq("USERID", userVehicle.getUserId()) // 设置更新条件这里以id为条件
.eq("ACARNO", userVehicle.getAcarNo()) // 设置更新条件这里以id为条件
.eq("CREATETIME", userVehicle.getCreateTime()) // 设置更新条件这里以id为条件
.set("ACARNO", newACarNo)
.set("LICENSEPICNAME", userVehicle.getLicensePicName())
.set("PERMITPICNAME", userVehicle.getPermitPicName())
.set("VEHICLEPICNAME", userVehicle.getVehiclePicName()); // 设置需要更新的字段名和值
}catch (Exception e){
log.error("上传图片失败");
}
userVehicleMapper.update(null,updateWrapperMile);
if(PropertiesUtil.getValue("IsBak").equals("1")){
userVehicleBakMapper.update(null,updateWrapperMile);
}
return res;
}
/**
* Excelresponse
*
* @param response
* @param wb
* @param fileName
* @throws Exception
*/
public void writeToExcel(HttpServletResponse response, Workbook wb, String fileName) throws Exception {
OutputStream os = null;
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setCharacterEncoding(Charsets.UTF_8.name());
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, String.format("attachment; filename=%s", new String(URLEncoder.encode(fileName, Charsets.UTF_8.name())
.getBytes(Charsets.UTF_8), Charsets.ISO_8859_1)));
os = response.getOutputStream();
wb.write(os);
os.flush();
}
}
package com.nmgs.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.entity.*;
import com.nmgs.mapper.bak.UserVehicleBakMapper;
import com.nmgs.mapper.petrol.IntegrationListMapper;
import com.nmgs.mapper.petrol.UserMapper;
import com.nmgs.mapper.petrol.UserVehicleMapper;
import com.nmgs.service.IAddService;
import com.nmgs.service.IAsyncService;
import com.nmgs.service.IUserVehicleService;
import com.nmgs.util.HttpClientUtil;
import com.nmgs.util.ImageUtil;
import com.nmgs.util.PropertiesUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.Charsets;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
@Transactional(timeout = 100)
@Slf4j
public class UserVehicleServiceImpl implements IUserVehicleService {
@Autowired
private UserVehicleMapper userVehicleMapper;
@Autowired
private UserVehicleBakMapper userVehicleBakMapper;
@Autowired
private UserMapper userMapper;
@Autowired
private IntegrationListMapper integrationListMapper;
@Autowired
private IAddService addService;
@Autowired
private IAsyncService asyncService;
private static final String FILE_DIRECTORY = "";
@Override
public Page<UserVehicle> getUserVehicleInfo(Map<String, Object> params) {
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
//设置分页
Integer pageNum = (Integer) params.get("pageNum");
Integer pageSize = (Integer) params.get("pageSize");
Page<UserVehicle> page = new Page<>(pageNum,pageSize);
page = userVehicleMapper.getUserVehicleInfo(page,params);
return page;
}
@Override
public int checkUserVehiclePass(List<UserVehicle> userVehicles, String loginId) {
int res = 0;
//执行批量修改语句,把用户的审核状态修改成已认证--1
//return userVehicleMapper.checkUserVehiclePass(userVehicles);
//addService.saveCheckUserVehiclePass(userVehicles);
//return 0;
//判断是日统计还是月统计
SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map<String, Object> params = new HashMap<>();
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
params.put("BakDBType", PropertiesUtil.getValue("BakDBType"));
params.put("userVehicles",userVehicles);
params.put("loginId",loginId);
params.put("operationTime",format.format(new Date()));
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = userVehicleBakMapper.checkUserVehiclePass(params);
}
res = userVehicleMapper.checkUserVehiclePass(params);
//获取推送积分url信息
List<Map<String, Object>> changeMsgPush = userMapper.getChangeMshUrl("CHECK_VEHICLE_MSG_PUSH");
//发送消息
asyncService.pushMsgCheckVehicles(userVehicles,changeMsgPush,"车辆认证","通过","车辆认证成功,可以换取里程积分",1);
return res;
}
@Override
public int checkUserVehicleNoPass(List<UserVehicle> userVehicles, String loginId) {
int res = 0;
String unPassInfo = "";
if(null != userVehicles && !userVehicles.isEmpty()){
unPassInfo = userVehicles.get(0).getUnPassInfo();
}
//判断是日统计还是月统计
SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map<String, Object> params = new HashMap<>();
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
params.put("BakDBType", PropertiesUtil.getValue("BakDBType"));
params.put("userVehicles",userVehicles);
params.put("loginId",loginId);
params.put("operationTime",format.format(new Date()));
params.put("unPassInfo",unPassInfo);
//执行批量修改语句,把用户的审核状态修改成已认证--1
if(PropertiesUtil.getValue("IsBak").equals("1")){
res = userVehicleBakMapper.checkUserVehicleNoPass(params);
}
res = userVehicleMapper.checkUserVehicleNoPass(params);
//获取推送积分url信息
List<Map<String, Object>> changeMsgPush = userMapper.getChangeMshUrl("CHECK_VEHICLE_MSG_PUSH");
//发送消息
asyncService.pushMsgCheckVehicles(userVehicles,changeMsgPush,"车辆认证","不通过",unPassInfo,3);
return res;
}
@Override
public UserVehicle getUserVehiclePic(Map<String, Object> params) {
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
return userVehicleMapper.getUserVehiclePic(params);
}
@Override
public void exportUserVehicleCheckExcle(String searchForm, HttpServletResponse response) throws Exception {
//设置金额的格式
DecimalFormat decimalFormat = new DecimalFormat("#.00");
//设置导出文件名称
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = new Date();
String filename = "车辆绑定信息-" + simpleDateFormat.format(date) + ".xlsx";
HashMap<String, Object> paramsMap = new HashMap<>();
//如果传进来的参数有值,拼接参数
if (null != searchForm && !"".equals(searchForm)) {
paramsMap = JSON.parseObject(searchForm, HashMap.class);
}
//从配置文件中读取数据库连接类型
paramsMap.put("DBTYPE", PropertiesUtil.getValue("DBType"));
//设置分页
Integer pageNum = (Integer) paramsMap.get("pageNum");
Integer pageSize = (Integer) paramsMap.get("pageSize");
Page<UserVehicle> page = new Page<>(pageNum,50000);
page = userVehicleMapper.getUserVehicleInfo(page,paramsMap);
//创建一个Excel表格
Workbook wb = new XSSFWorkbook();
//创建sheet页面
Sheet sheet = wb.createSheet("车辆信息");
//如果没有数据返回一个空的Excel
List<UserVehicle> records = page.getRecords();
if (null == records) {
//导出Excel
writeToExcel(response, wb, filename);
}
//定义一个标题数组
String[] title = {"车牌号", "绑定用户姓名","绑定用户身份证号", "审核状态", "未通过原因","操作人","操作时间", "车辆绑定时间","车辆解绑时间"};
//设置统计时间日期格式
SimpleDateFormat simpleDateFormatClassData = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat simpleDateFormatDt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//定义内容数据
List<String[]> rowValues = new ArrayList<>();
for (UserVehicle userVehicle: records) {
String[] rowValue = {
null == userVehicle.getAcarNoShow()? "" : userVehicle.getAcarNoShow(),
null == userVehicle.getUserRealName()? "" : userVehicle.getUserRealName(),
null == userVehicle.getUserIdNumber()? "" : userVehicle.getUserIdNumber(),
null == userVehicle.getCertificationName()? "" : userVehicle.getCertificationName(),
null == userVehicle.getUnPassInfo()? "" : userVehicle.getUnPassInfo(),
null == userVehicle.getOperationUserName()? "" : userVehicle.getOperationUserName(),
null == userVehicle.getOperationTime()? "" : simpleDateFormatDt.format(userVehicle.getOperationTime()),
null == userVehicle.getCreateTime()? "" : simpleDateFormatDt.format(userVehicle.getCreateTime()),
null == userVehicle.getCancelTime()? "" : simpleDateFormatDt.format(userVehicle.getCancelTime()),
};
rowValues.add(rowValue);
}
//设置标题单元格式
CellStyle cellStyleTitle = wb.createCellStyle();
cellStyleTitle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());//设置背景色
cellStyleTitle.setFillPattern((short) 1);//必须设置 否则无效
//设置水平垂直居中
cellStyleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyleTitle.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置边框样式
cellStyleTitle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderRight(XSSFCellStyle.BORDER_THIN);
cellStyleTitle.setBorderTop(XSSFCellStyle.BORDER_THIN);
//定义标题内容
Row currentRow = sheet.createRow(0);
// 往Excel表格中添加标题的数据
for (int j = 0; j < title.length; j++) {
// 设置列宽
sheet.setColumnWidth(j, 5000);
Cell cell = currentRow.createCell(j);
cell.setCellStyle(cellStyleTitle);
//每个单元格的值目前做 String 处理
//cell.setCellType(CellType.STRING);
cell.setCellValue(title[j]);
}
//设置内容单元格式
CellStyle cellStyleValue = wb.createCellStyle();
//设置水平垂直居中
cellStyleValue.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyleValue.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);
// 设置边框样式
cellStyleValue.setBorderBottom(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderLeft(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderRight(XSSFCellStyle.BORDER_THIN);
cellStyleValue.setBorderTop(XSSFCellStyle.BORDER_THIN);
//往Excel表格中添加具体数据
for (int i = 0; i < rowValues.size(); i++) {
Row Row = sheet.createRow((i + 1));
for (int j = 0; j < title.length; j++) {
// 设置列宽
sheet.setColumnWidth(j, 6000);
Cell cell = Row.createCell(j);
cell.setCellStyle(cellStyleValue);
//每个单元格的值目前做 String 处理
//cell.setCellType(CellType.STRING);
cell.setCellValue(rowValues.get(i)[j]);
}
}
//导出Excel
writeToExcel(response, wb, filename);
}
@Override
public List<Map<String, Object>> getUserVehicleGrow(Map<String, Object> params) {
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
List<Map<String, Object>> data = userVehicleMapper.getUserVehicleGrow(params);
return data;
}
@Override
public int deleteUserVehicle(List<UserVehicle> userVehicles) {
//根据车牌号用户id,绑定时间删除未认证的车辆信息
for (UserVehicle userVehicle : userVehicles) {
LambdaQueryWrapper<UserVehicle> queryWrapper = new LambdaQueryWrapper<UserVehicle>();
queryWrapper.eq(null != userVehicle.getUserId(),
UserVehicle::getUserId,
userVehicle.getUserId())
.eq(null != userVehicle.getAcarNo(),
UserVehicle::getAcarNo,
userVehicle.getAcarNo())
.eq(null != userVehicle.getCreateTime(),
UserVehicle::getCreateTime,
userVehicle.getCreateTime());
userVehicleMapper.delete(queryWrapper);
if(PropertiesUtil.getValue("IsBak").equals("1")){
userVehicleBakMapper.delete(queryWrapper);
}
}
return 0;
}
@Override
public int updateUserVehicle(UserVehicle userVehicle) {
//从配置文件中读取上传文件接口
String uploadFileUrl = PropertiesUtil.getValue("fileUploadUrl");
//从配置文件中读取上传文件接口
String fileDelUrl = PropertiesUtil.getValue("fileDelUrl");
//备份文件位置
String fileAddressLinux = PropertiesUtil.getValue("fileAddressLinux");
//备份图片
String property = System.getProperty("catalina.home");
//记录存放日期文件夹
SimpleDateFormat format =new SimpleDateFormat("yyyyMMdd");
String dateMdk = format.format(new Date());
int res = 0;
//如果value值为空直接返回不保存
if(null == userVehicle){
return 0;
}
//判断车辆是否已经产生积分,产生积分的车辆不能修改
Map<String, Object> params = new HashMap<>();
params.put("aCarNoQuery",userVehicle.getAcarNo());
Page<Map<String, Object>> page = new Page<>(0,1);
Page<Map<String, Object>> userVehicleScoreInfo = userMapper.getUserVehicleScoreInfo(page, params);
if(null != userVehicleScoreInfo.getRecords() && !userVehicleScoreInfo.getRecords().isEmpty()){
return -2;
}
//更新里程表里的数据
UpdateWrapper<UserVehicle> updateWrapperMile = new UpdateWrapper<>();
try{
//获取图片,修改名称,重新上传
String base64Lic = ImageUtil.getImgFileToBase64(fileAddressLinux+userVehicle.getLicensePicName());
String base64Vehicle = ImageUtil.getImgFileToBase64(fileAddressLinux+userVehicle.getVehiclePicName());
String base64Permit = ImageUtil.getImgFileToBase64(fileAddressLinux+userVehicle.getPermitPicName());
//删除图片
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
String[] delUrlArray = fileDelUrl.split(",");
for (String delUrl : delUrlArray) {
//1.拼接参数
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", userVehicle.getLicensePicName());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(fileAddressLinux+userVehicle.getLicensePicName());
file.delete();
}
}
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
String[] delUrlArray = fileDelUrl.split(",");
for (String delUrl : delUrlArray) {
//1.拼接参数
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", userVehicle.getVehiclePicName());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(fileAddressLinux+userVehicle.getVehiclePicName());
file.delete();
}
}
if(null != fileDelUrl && !fileDelUrl.isEmpty()){
String[] delUrlArray = fileDelUrl.split(",");
for (String delUrl : delUrlArray) {
//1.拼接参数
Map<String, String> map = new HashMap<String, String>();
JSONObject mapParam = new JSONObject();
map.put("fileName", userVehicle.getPermitPicName());
map.put("canDel", "Y");
HttpClientUtil.doPost(delUrl, map);
File file = new File(fileAddressLinux+userVehicle.getPermitPicName());
file.delete();
}
}
//修改车牌号和颜色,同步修改图片名称
String newACarNo = userVehicle.getVehicleNo()+'_'+userVehicle.getColorType();
//上传图片到服务器
if(null != uploadFileUrl && !uploadFileUrl.isEmpty()){
String[] uploadUrlArray = uploadFileUrl.split(",");
for (String uploadUrl : uploadUrlArray) {
//1.拼接参数
Map<String, String> mapUpdate = new HashMap<String, String>();
JSONArray jsonA = new JSONArray();
JSONObject mapUpdateParam = new JSONObject();
mapUpdateParam.put("fileName", userVehicle.getUserId()+"-"+newACarNo+"-LICPIC.jpg");
mapUpdateParam.put("imageBase64", base64Lic);
jsonA.add(mapUpdateParam);
mapUpdate.put("jsonArray", jsonA.toJSONString());
String result = HttpClientUtil.doPost(uploadUrl, mapUpdate);
ImageUtil.generateImage(base64Lic,fileAddressLinux+dateMdk, fileAddressLinux+dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-LICPIC.jpg");
}
}
if(null != uploadFileUrl && !uploadFileUrl.isEmpty()){
String[] uploadUrlArray = uploadFileUrl.split(",");
for (String uploadUrl : uploadUrlArray) {
//1.拼接参数
Map<String, String> mapUpdate = new HashMap<String, String>();
JSONArray jsonA = new JSONArray();
JSONObject mapUpdateParam = new JSONObject();
mapUpdateParam.put("fileName", userVehicle.getUserId()+"-"+newACarNo+"-VEHPIC.jpg");
mapUpdateParam.put("imageBase64", base64Vehicle);
jsonA.add(mapUpdateParam);
mapUpdate.put("jsonArray", jsonA.toJSONString());
String result = HttpClientUtil.doPost(uploadUrl, mapUpdate);
ImageUtil.generateImage(base64Vehicle,fileAddressLinux+dateMdk, fileAddressLinux+dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-VEHPIC.jpg");
}
}
if(null != uploadFileUrl && !uploadFileUrl.isEmpty()){
String[] uploadUrlArray = uploadFileUrl.split(",");
for (String uploadUrl : uploadUrlArray) {
//1.拼接参数
Map<String, String> mapUpdate = new HashMap<String, String>();
JSONArray jsonA = new JSONArray();
JSONObject mapUpdateParam = new JSONObject();
mapUpdateParam.put("fileName", userVehicle.getUserId()+"-"+newACarNo+"-PERPIC.jpg");
mapUpdateParam.put("imageBase64", base64Permit);
jsonA.add(mapUpdateParam);
mapUpdate.put("jsonArray", jsonA.toJSONString());
String result = HttpClientUtil.doPost(uploadUrl, mapUpdate);
ImageUtil.generateImage(base64Permit,fileAddressLinux+dateMdk, fileAddressLinux+dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-PERPIC.jpg");
}
}
userVehicle.setVehiclePicName(dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-VEHPIC.jpg");
userVehicle.setPermitPicName(dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-PERPIC.jpg");
userVehicle.setLicensePicName(dateMdk+"/"+userVehicle.getUserId()+"-"+newACarNo+"-LICPIC.jpg");
//修改车牌号和图片名称
updateWrapperMile
.eq("USERID", userVehicle.getUserId()) // 设置更新条件这里以id为条件
.eq("ACARNO", userVehicle.getAcarNo()) // 设置更新条件这里以id为条件
.eq("CREATETIME", userVehicle.getCreateTime()) // 设置更新条件这里以id为条件
.set("ACARNO", newACarNo)
.set("LICENSEPICNAME", userVehicle.getLicensePicName())
.set("PERMITPICNAME", userVehicle.getPermitPicName())
.set("VEHICLEPICNAME", userVehicle.getVehiclePicName()); // 设置需要更新的字段名和值
}catch (Exception e){
log.error("上传图片失败");
}
userVehicleMapper.update(null,updateWrapperMile);
if(PropertiesUtil.getValue("IsBak").equals("1")){
userVehicleBakMapper.update(null,updateWrapperMile);
}
return res;
}
/**
* Excelresponse
*
* @param response
* @param wb
* @param fileName
* @throws Exception
*/
public void writeToExcel(HttpServletResponse response, Workbook wb, String fileName) throws Exception {
OutputStream os = null;
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setCharacterEncoding(Charsets.UTF_8.name());
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, String.format("attachment; filename=%s", new String(URLEncoder.encode(fileName, Charsets.UTF_8.name())
.getBytes(Charsets.UTF_8), Charsets.ISO_8859_1)));
os = response.getOutputStream();
wb.write(os);
os.flush();
}
}

@ -44,7 +44,7 @@ public class CallBackGreenIntegralTask {
@Autowired
private WebSocketServer webSocketServer;
//@Scheduled(cron = " 0 0/3 * * * ? ")//15秒执行一次
@Scheduled(cron = " 0 0/3 * * * ? ")//15秒执行一次
@Transactional
public synchronized void callBackGreen() {
try {

@ -16,10 +16,7 @@ import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
*
@ -48,7 +45,7 @@ public class ConsumeIntegralCheck {
this.solveCheckService = solveCheckService;
}
@Scheduled(cron = " 0 0 11 * * ? ")//每日9点执行一次
@Scheduled(cron = " 0 0 1 * * ? ")//每日凌晨1点执行执行一次
public void check() {
try {
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
@ -66,7 +63,7 @@ public class ConsumeIntegralCheck {
IntegralCheck integralCheck=new IntegralCheck();
integralCheck.setUserId(userId);
integralCheck.setOpenid(userIdO.getOpenId());
integralCheck.setOperatorTime(df.parse(PubTools.getCurrentDate()));
integralCheck.setOperatorTime(new Date());
integralCheck.setClassdate(df.parse(PubTools.getBeforeDaySSS(PubTools.getCurrentDateYYD(),1)));
integralCheck.setCpintegrationadd(BigDecimal.ZERO);
integralCheck.setOgintegrationadd(BigDecimal.ZERO);
@ -153,11 +150,11 @@ public class ConsumeIntegralCheck {
integralCheck.setRestintegraltiondecode(RESTINTEGRALTIONDECODE);
integralCheck.setOpertor("BMP");
list.add(integralCheck);
System.out.println("处理完数据次数===" + i);
log.info("处理完数据次数===" + i);
}
solveCheckService.solveCheck(list);
} catch (Exception e) {
System.out.println("接口异常了:"+e.getMessage());
log.error("接口异常了:"+e.getMessage());
e.printStackTrace();
}
}

@ -0,0 +1,209 @@
package com.nmgs.task;
import com.nmgs.entity.IntegralCheck;
import com.nmgs.entity.IntegrationList;
import com.nmgs.entity.PayIntegrationNumber;
import com.nmgs.entity.User;
import com.nmgs.mapper.petrol.IntegrationListMapper;
import com.nmgs.mapper.petrol.PayIntegrationNumberMapper;
import com.nmgs.mapper.petrol.UserMapper;
import com.nmgs.service.impl.SolveCheckServiceImpl;
import com.nmgs.util.PropertiesUtil;
import com.nmgs.util.PubTools;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
/**
*
* author: GSY
* date: 20250731 11:00
*/
@Component
@Async
@Slf4j
public class IntegralCheckTask {
@Autowired
public UserMapper userMapper;
@Autowired
public IntegrationListMapper integrationListMapper;
@Autowired
public SolveCheckServiceImpl solveCheckService;
@Autowired
private PayIntegrationNumberMapper payIntegrationNumberMapper;
@Autowired
private Executor PertolCafeteriaFeeThreadPool;
@Scheduled(cron = " 0 0 3 * * ? ")//每日凌晨3点执行执行一次
public void check() {
try {
List<IntegralCheck> integralCheckList = new Vector<>();
//设置统计时间日期格式
SimpleDateFormat simpleDateFormatClassData = new SimpleDateFormat("yyyy-MM-dd");
//查出昨天有消费记录的人员
Calendar calendarYesterday = Calendar.getInstance();
calendarYesterday.setTime(new Date());
calendarYesterday.add(Calendar.DATE, -1);
//构建表名
Map<String, Object> paramUser = new HashMap<>();
// 格式化输出(如果需要)
paramUser.put("startTime", simpleDateFormatClassData.format(calendarYesterday.getTime()) + " 00:00:00");
paramUser.put("endTime", simpleDateFormatClassData.format(new Date()) + " 00:00:00");
//从配置文件中读取数据库连接类型
paramUser.put("DBTYPE", PropertiesUtil.getValue("DBType"));
List<User> userByInteralList = userMapper.getHasIntegralChangeList(paramUser);
//获取餐饮消费积分占比,加油加汽积分占比
PayIntegrationNumber ogPercent = payIntegrationNumberMapper.getAuScore("BOG");
if (null == ogPercent || null == ogPercent.getValue()) {
ogPercent = new PayIntegrationNumber();
ogPercent.setValue(new BigDecimal("0.60"));
}else{
ogPercent.setValue(ogPercent.getValue().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP));
}
PayIntegrationNumber csPercent = payIntegrationNumberMapper.getAuScore("BCS");
if (null == csPercent || null == csPercent.getValue()) {
csPercent = new PayIntegrationNumber();
csPercent.setValue(new BigDecimal("0.40"));
}else{
csPercent.setValue(csPercent.getValue().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP));
}
if (null != userByInteralList && !userByInteralList.isEmpty()) {
//多线程处理
CountDownLatch countDownLatch = new CountDownLatch(userByInteralList.size()); // 同步工具
for (User user : userByInteralList) {
PayIntegrationNumber finalOgPercent = ogPercent;
PayIntegrationNumber finalCsPercent = csPercent;
PertolCafeteriaFeeThreadPool.execute(() -> {
//设置统计时间日期格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
//获取昨天的剩余积分
IntegralCheck integralCheck = new IntegralCheck();
integralCheck.setUserId(user.getId());
integralCheck.setOpenid(user.getOpenId());
integralCheck.setClassdate(simpleDateFormat.parse(simpleDateFormat.format(calendarYesterday.getTime()) + " 00:00:00"));
integralCheck.setOperatorTime(new Date());
/**
* ENABLEINTEGRATION NUMBER 0 0 0 0 0 0 0 0 VISIBLE
* OGINTEGRATION NUMBER 0 0 0 0 0 0 0 0 VISIBLE
* CPINTEGRATION NUMBER 0 0 0 0 0 0 0 0 VISIBLE
*/
//查询今日0点用户积分情况
//构建表名
Map<String, Object> paramYesterday = new HashMap<>();
paramYesterday.put("endTime", simpleDateFormat.format(new Date()) + " 00:00:00");
paramYesterday.put("userId",user.getId());
paramYesterday.put("DBTYPE", PropertiesUtil.getValue("DBType"));
List<IntegrationList> yesterdayUserIntegration = integrationListMapper.getUserIntegration(paramYesterday);
if(null != yesterdayUserIntegration && !yesterdayUserIntegration.isEmpty()){
integralCheck.setEnableintegration(yesterdayUserIntegration.get(0).getRestIntegration());
integralCheck.setOgintegration(yesterdayUserIntegration.get(0).getOgEnableIntegration());
integralCheck.setCpintegration(yesterdayUserIntegration.get(0).getCpEnableIntegration());
}else{
integralCheck.setEnableintegration(new BigDecimal(0));
integralCheck.setOgintegration(new BigDecimal(0));
integralCheck.setCpintegration(new BigDecimal(0));
}
/**
* RESTINTEGRALTIONBEFORE NUMBER 0 0 -1 0 0 0 0 0 VISIBLE
* OGINTEGRATIONBEFORE NUMBER 0 0 -1 0 0 0 0 0 VISIBLE
* CPINTEGRATIONBEFORE NUMBER 0 0 -1 0 0 0 0 0 VISIBLE
*/
//查询昨日0点用户积分情况
//构建表名
Map<String, Object> paramBeforeYesterday = new HashMap<>();
paramBeforeYesterday.put("endTime", simpleDateFormat.format(calendarYesterday.getTime()) + " 00:00:00");
paramBeforeYesterday.put("userId",user.getId());
paramBeforeYesterday.put("DBTYPE", PropertiesUtil.getValue("DBType"));
List<IntegrationList> beforeYesterdayUserIntegration = integrationListMapper.getUserIntegration(paramBeforeYesterday);
if(null != beforeYesterdayUserIntegration && !beforeYesterdayUserIntegration.isEmpty()){
integralCheck.setRestintegraltionbefore(beforeYesterdayUserIntegration.get(0).getRestIntegration());
integralCheck.setOgintegrationbefore(beforeYesterdayUserIntegration.get(0).getOgEnableIntegration());
integralCheck.setCpintegrationbefore(beforeYesterdayUserIntegration.get(0).getCpEnableIntegration());
}else{
integralCheck.setRestintegraltionbefore(new BigDecimal(0));
integralCheck.setOgintegrationbefore(new BigDecimal(0));
integralCheck.setCpintegrationbefore(new BigDecimal(0));
}
/**
* RESTINTEGRALTIONDECODE NUMBER 0 0 -1 0 0 0 0 0 VISIBLE
* OGINTEGRATIONDECODE NUMBER 0 0 -1 0 0 0 0 0 VISIBLE
* CPINTEGRATIONDECODE NUMBER 0 0 -1 0 0 0 0 0 VISIBLE
* OGINTEGRATIONADD NUMBER 0 0 -1 0 0 0 0 0 VISIBLE
* CPINTEGRATIONADD NUMBER 0 0 -1 0 0 0 0 0 VISIBLE
* RESTTEGRALTIONADD NUMBER 0 0 -1 0 0 0 0 0 VISIBLE
*/
//获取用户累加积分
integralCheck.setRestintegraltiondecode(new BigDecimal(0));
integralCheck.setOgintegrationdecode(new BigDecimal(0));
integralCheck.setCpintegrationdecode(new BigDecimal(0));
//构建表名
Map<String, Object> paramSum = new HashMap<>();
// 格式化输出(如果需要)
paramSum.put("startTime", simpleDateFormat.format(calendarYesterday.getTime()) + " 00:00:00");
paramSum.put("endTime", simpleDateFormat.format(new Date()) + " 00:00:00");
paramSum.put("userId",user.getId());
//从配置文件中读取数据库连接类型
paramSum.put("DBTYPE", PropertiesUtil.getValue("DBType"));
List<HashMap<String,Object>> sumIntegration = integrationListMapper.getUserYesterdayAddIntegation(paramSum);
if(null != sumIntegration && !sumIntegration.isEmpty()){
BigDecimal sum = (BigDecimal) sumIntegration.get(0).get("SUMPAYINTEGRATION");
integralCheck.setResttegraltionadd(sum);
integralCheck.setOgintegrationadd(sum.multiply(finalOgPercent.getValue()));
integralCheck.setCpintegrationadd(sum.multiply(finalCsPercent.getValue()));
}else{
integralCheck.setResttegraltionadd(new BigDecimal(0));
integralCheck.setOgintegrationadd(new BigDecimal(0));
integralCheck.setCpintegrationadd(new BigDecimal(0));
}
integralCheck.setOpertor("GSY");
integralCheckList.add(integralCheck);
countDownLatch.countDown();
}catch (Exception e){
e.printStackTrace();
log.info("======",e);
countDownLatch.countDown();
}
});
}
//等待子线程执行完毕
countDownLatch.await();
log.info("主线程工作结束==============");
}
log.info("处理完数据次数==="+userByInteralList.size());
solveCheckService.solveCheck(integralCheckList);
} catch (Exception e) {
log.error("接口异常了:"+e.getMessage());
e.printStackTrace();
}
}
}

@ -57,7 +57,7 @@ public class MileChangeMsgTask {
@Autowired
private WebSocketServer webSocketServer;
//@Scheduled(cron = " 0 0/1 * * * ? ")//15秒执行一次
@Scheduled(cron = " 0 0/1 * * * ? ")//15秒执行一次
@Transactional(timeout = 100)
public void MileChange() {
try {

@ -59,7 +59,7 @@ public class MileChangeTask {
@Autowired
private WebSocketServer webSocketServer;
//@Scheduled(cron = " 0 0/4 * * * ? ")//15秒执行一次
@Scheduled(cron = " 0 0/4 * * * ? ")//15秒执行一次
// @Transactional
public synchronized void MileChange() {
try {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,34 +1,34 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<!-- <meta http-equiv="Content-Security-Policy" content="img-src 'self' http:"> -->
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"/>
<link rel="icon" href="/favicon.ico"/>
<title></title>
<script type="module" crossorigin src="./assets/index.15470a76.js"></script>
<link rel="stylesheet" href="./assets/index.7b041637.css">
</head>
<body>
<div id="app">
<div class="loading">
<div class="loading-wrap">
<div class="loading-dots">
<span class="dot dot-spin">
<i></i>
<i></i>
<i></i>
<i></i>
</span>
</div>
<div class="loading-title">
正在缓冲...
</div>
</div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<!-- <meta http-equiv="Content-Security-Policy" content="img-src 'self' http:"> -->
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"/>
<link rel="icon" href="/favicon.ico"/>
<title></title>
<script type="module" crossorigin src="./assets/index.f887866c.js"></script>
<link rel="stylesheet" href="./assets/index.685b659d.css">
</head>
<body>
<div id="app">
<div class="loading">
<div class="loading-wrap">
<div class="loading-dots">
<span class="dot dot-spin">
<i></i>
<i></i>
<i></i>
<i></i>
</span>
</div>
<div class="loading-title">
正在缓冲...
</div>
</div>
</div>
</div>
</body>
</html>

Loading…
Cancel
Save