xboot-admin/src/main/resources/application.yml
@@ -154,7 +154,7 @@ # 每1秒内(单位毫秒) timeout: 1000 # 总限制200个请求(单位个) limit: 200 limit: 2000 # IP限流 iplimit: # 开启 @@ -162,7 +162,7 @@ # 每1秒内(单位毫秒) timeout: 1000 # 每个ip限制20个请求(单位个) limit: 20 limit: 200 # 后台token交互方式 token: # 默认为true,token将存入redis,并具有单点登录功能 设为false使用JWT交互 xboot-modules/xboot-base/src/main/java/cn/exrick/xboot/base/controller/manage/UserController.java
@@ -157,8 +157,8 @@ User u = securityUtil.getCurrUser(); // 清除持久上下文环境 避免后面语句导致持久化 entityManager.clear(); u.setPassword(null); // entityManager.clear(); // u.setPassword(null); return new ResultUtil<User>().setData(u); } @@ -276,10 +276,10 @@ public Result<List<User>> getByCondition(@PathVariable String departmentId) { List<User> list = userService.findByDepartmentId(departmentId); entityManager.clear(); list.forEach(u -> { u.setPassword(null); }); // entityManager.clear(); // list.forEach(u -> { // u.setPassword(null); // }); return new ResultUtil<List<User>>().setData(list); } @@ -288,10 +288,10 @@ public Result<List<User>> searchByName(@PathVariable String username) throws UnsupportedEncodingException { List<User> list = userService.findByUsernameLikeAndStatus(URLDecoder.decode(username, "utf-8"), CommonConstant.STATUS_NORMAL); entityManager.clear(); list.forEach(u -> { u.setPassword(null); }); // entityManager.clear(); // list.forEach(u -> { // u.setPassword(null); // }); return new ResultUtil<List<User>>().setData(list); } @@ -301,10 +301,10 @@ List<User> list = userService.getAll(); // 清除持久上下文环境 避免后面语句导致持久化 entityManager.clear(); for (User u : list) { u.setPassword(null); } // entityManager.clear(); // for (User u : list) { // u.setPassword(null); // } return new ResultUtil<List<User>>().setData(list); } @@ -536,9 +536,9 @@ List<User> list = userService.findByType2(type); // 清除持久上下文环境 避免后面语句导致持久化 List<User> list1 = new ArrayList<User>(); entityManager.clear(); //entityManager.clear(); for (User u : list) { u.setPassword(null); //u.setPassword(null); if (u.getType()==0){ list1.add(u); } xboot-modules/xboot-generator/src/main/java/cn/exrick/xboot/generator/XbootMPGenerator.java
@@ -33,13 +33,13 @@ * 实体类名 * 建议仅需修改 */ private static final String CLASS_NAME = "AreaMap"; private static final String CLASS_NAME = "OrderTask2"; /** * 类说明描述 * 建议仅需修改 */ private static final String DESCRIPTION = "区域坐标"; private static final String DESCRIPTION = "订单任务历史表"; /** * 作者名 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/CustomerReceiveController.java
@@ -61,6 +61,9 @@ @ApiOperation(value = "编辑或更新数据") public Result<CustomerReceive> saveOrUpdate(CustomerReceive customerReceive) { if(StrUtil.isEmpty(customerReceive.getCustomerId())){ return ResultUtil.error("商户id为空,请重新登陆或联系管理员"); } if (iCustomerReceiveService.saveOrUpdate(customerReceive)) { return new ResultUtil<CustomerReceive>().setData(customerReceive); } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/DrivingRecordController.java
@@ -84,6 +84,12 @@ @RequestMapping(value = "/updateMileage", method = RequestMethod.POST) @ApiOperation(value = "添加行车记录") public Result<DrivingRecord> updateMileage(String carId,int mileage,String userId,String inDate) { if(StrUtil.isEmpty(userId)){ return ResultUtil.error("参数不完整"); } if(StrUtil.isEmpty(carId)){ return ResultUtil.error("参数不完整"); } String format = DateUtil.format(new Date(), "yyyy-MM-dd"); QueryWrapper<DrivingRecord> wrapper = new QueryWrapper<>(); wrapper.eq("driving_date",format); xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/FingerprintController.java
@@ -174,6 +174,15 @@ @ApiOperation(value = "编辑或更新数据") public Result<Fingerprint> saveOrUpdate(Fingerprint fingerprint) { if(StrUtil.isNotEmpty(fingerprint.getUserId())){ QueryWrapper<Fingerprint> wrapper = new QueryWrapper<Fingerprint>(); wrapper.eq("code",fingerprint.getCode()); wrapper.isNotNull("user_id"); Fingerprint one = iFingerprintService.getOne(wrapper); if(one!=null){ return ResultUtil.error("code重复了,请重新获取"); } User user = userService.get(fingerprint.getUserId()); fingerprint.setUsername(user.getUsername()); fingerprint.setPassword(user.getDescription()); @@ -182,6 +191,15 @@ if(StrUtil.isNotEmpty(fingerprint.getCustomerId())){ Customer byId = iCustomerService.getById(fingerprint.getCustomerId()); fingerprint.setAreaId(byId.getAreaId()); QueryWrapper<Fingerprint> wrapper = new QueryWrapper<Fingerprint>(); wrapper.eq("code",fingerprint.getCode()); wrapper.eq("area_id",byId.getAreaId()); wrapper.isNotNull("customer_id"); Fingerprint one = iFingerprintService.getOne(wrapper); if(one!=null){ return ResultUtil.error("code重复了,请重新获取"); } } if(StrUtil.isNotEmpty(fingerprint.getCustomerReceiveId())){ xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTask2Controller.java
New file @@ -0,0 +1,77 @@ package cn.exrick.xboot.your.controller; import cn.exrick.xboot.core.common.utils.PageUtil; import cn.exrick.xboot.core.common.utils.ResultUtil; import cn.exrick.xboot.core.common.vo.PageVo; import cn.exrick.xboot.core.common.vo.Result; import cn.exrick.xboot.your.entity.OrderTask2; import cn.exrick.xboot.your.service.IOrderTask2Service; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * @author whj */ @Slf4j @RestController @Api(tags = "订单任务历史表管理接口") @RequestMapping("/xboot/orderTask2") @Transactional public class OrderTask2Controller { @Autowired private IOrderTask2Service iOrderTask2Service; @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) @ApiOperation(value = "通过id获取") public Result<OrderTask2> get(@PathVariable String id) { OrderTask2 orderTask2 = iOrderTask2Service.getById(id); return new ResultUtil<OrderTask2>().setData(orderTask2); } @RequestMapping(value = "/getAll", method = RequestMethod.GET) @ApiOperation(value = "获取全部数据") public Result<List<OrderTask2>> getAll() { List<OrderTask2> list = iOrderTask2Service.list(); return new ResultUtil<List<OrderTask2>>().setData(list); } @RequestMapping(value = "/getByPage", method = RequestMethod.GET) @ApiOperation(value = "分页获取") public Result<IPage<OrderTask2>> getByPage(PageVo page) { IPage<OrderTask2> data = iOrderTask2Service.page(PageUtil.initMpPage(page)); return new ResultUtil<IPage<OrderTask2>>().setData(data); } @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST) @ApiOperation(value = "编辑或更新数据") public Result<OrderTask2> saveOrUpdate(OrderTask2 orderTask2) { if (iOrderTask2Service.saveOrUpdate(orderTask2)) { return new ResultUtil<OrderTask2>().setData(orderTask2); } return new ResultUtil<OrderTask2>().setErrorMsg("操作失败"); } @RequestMapping(value = "/delByIds", method = RequestMethod.POST) @ApiOperation(value = "批量通过id删除") public Result<Object> delAllByIds(@RequestParam String[] ids) { for (String id : ids) { iOrderTask2Service.removeById(id); } return ResultUtil.success("批量通过id删除数据成功"); } } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/face/FaceImgController.java
@@ -75,7 +75,7 @@ String targetAttrs = jsonObject1.get("targetAttrs").toString(); JSONObject jsonObject2 = JSONUtil.parseObj(targetAttrs); String deviceName = jsonObject2.get("deviceName").toString(); System.out.println(deviceName); //System.out.println(deviceName); QueryWrapper<Car> wrapper = new QueryWrapper<Car>(); wrapper.eq("car_no",deviceName.substring(0,deviceName.length()-1)); @@ -150,7 +150,7 @@ } } catch (Exception e) { System.out.println(e.toString()); //System.out.println(e.toString()); } } } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java
@@ -89,10 +89,15 @@ @RequestMapping(value = "/getTodayTask", method = RequestMethod.GET) @ApiOperation(value = "获取今日配送任务") public Result<Object> getTodayTask() { QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>(); String format = DateUtil.format(new Date(), "yyyy-MM-dd"); wrapper2.eq("a.send_date",format); public Result<Object> getTodayTask(String sendTime) { //QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>(); String format = ""; if(StrUtil.isNotEmpty(sendTime)){ format = sendTime; }else{ format = DateUtil.format(new Date(), "yyyy-MM-dd"); } //wrapper2.eq("a.send_date",format); //wrapper2.orderByAsc("a.seq"); List<OrderTask> list = iOrderTaskService.list3(format); return new ResultUtil<Object>().setData(list); xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/wx/IndexController.java
@@ -213,7 +213,7 @@ public Object likes(String customerId){ OrderTask order = getOrder(customerId); if(order==null){ ResultUtil.error("今日无订单"); return ResultUtil.error("今日无订单"); } order.setLikes(1); iOrderTaskService.saveOrUpdate(order); xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/Alarm.java
@@ -33,7 +33,7 @@ //3:不系安全带 //4:抽烟 //5:车厢异常开启 //6:超速 //7:超速 @ApiModelProperty(value = "具体类型如下") private int type; xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/EventLog.java
@@ -40,6 +40,7 @@ //4:抽烟 //5:车厢异常开启 //6:配送完成 //7:超速 @ApiModelProperty(value = "事件类型") private int type; xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderDetail.java
@@ -26,6 +26,7 @@ @ApiModel(value = "订单详情表") public class OrderDetail extends XbootBaseEntity { //只存放7天内的数据 private static final long serialVersionUID = 1L; @ApiModelProperty(value = "订单id") xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderTask.java
@@ -29,6 +29,7 @@ @ApiModel(value = "订单任务表") public class OrderTask extends XbootBaseEntity { //存放7天内的数据 private static final long serialVersionUID = 1L; @ApiModelProperty(value = "订单号") xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderTask2.java
New file @@ -0,0 +1,132 @@ package cn.exrick.xboot.your.entity; import cn.exrick.xboot.core.base.XbootBaseEntity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.Entity; import javax.persistence.Table; import javax.persistence.Transient; import java.util.Date; import java.util.List; /** * @author Exrick */ @Data @Entity @DynamicInsert @DynamicUpdate @Table(name = "t_order_task2") @TableName("t_order_task2") @ApiModel(value = "订单任务历史表") public class OrderTask2 extends XbootBaseEntity { //只存放配送完的订单 private static final long serialVersionUID = 1L; @ApiModelProperty(value = "订单号") private String code; @ApiModelProperty(value = "客户id") private String customerId; @ApiModelProperty(value = "车辆id") private String carId; @ApiModelProperty(value = "片区id") private String areaId; @ApiModelProperty(value = "分段id") private String areaSectionId; @ApiModelProperty(value = "配送人id") private String userId; @ApiModelProperty(value = "订单顺序") private int seq; @ApiModelProperty(value = "包数") private int num; @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "订单日") private Date orderDate; @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "封包日") private Date endDate; @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "配送日") private Date sendDate; @ApiModelProperty(value = "送达照片") private String img; @ApiModelProperty(value = "是否进行装车(0:否 1:是)") private int isPut; @ApiModelProperty(value = "是否驶出月台(0:否 1:是)") private int isOut; @ApiModelProperty(value = "0配送中,1已送达,3异常签收") private int status; @ApiModelProperty(value = "无法送达的原因") private String remarks; @ApiModelProperty(value = "商户评价 1星 2星 3星 4星 5星") private int level; @ApiModelProperty(value = "签收评价") private String evaluate; @ApiModelProperty(value = "收货人id") private String customerReceiveId; @ApiModelProperty(value = "是否点赞 0:否 1:是") private int likes; @ApiModelProperty(value = "耗时 毫秒") private int time; @Transient @TableField(exist = false) @ApiModelProperty(value = "商户名称") private String customerName; @Transient @TableField(exist = false) @ApiModelProperty(value = "商户") private Customer customer; @Transient @TableField(exist = false) @ApiModelProperty(value = "车牌号") private String carNo; @Transient @TableField(exist = false) @ApiModelProperty(value = "区域名称") private String areaName; @Transient @TableField(exist = false) @ApiModelProperty(value = "分段名称") private String areaSectionName; @Transient @TableField(exist = false) @ApiModelProperty(value = "订单详情") private List<OrderDetail> orderDetails; } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/OrderTask2Mapper.java
New file @@ -0,0 +1,14 @@ package cn.exrick.xboot.your.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.exrick.xboot.your.entity.OrderTask2; import java.util.List; /** * 订单任务历史表数据处理层 * @author whj */ public interface OrderTask2Mapper extends BaseMapper<OrderTask2> { } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderDealScheduleImpl.java
New file @@ -0,0 +1,61 @@ package cn.exrick.xboot.your.schedulings; import cn.exrick.xboot.your.entity.*; import cn.exrick.xboot.your.service.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; //删除历史数据 @Component public class OrderDealScheduleImpl { @Autowired private IOrderTaskOriginalService iOrderTaskOriginalService; @Autowired private IOrderDetailOriginalService iOrderDetailOriginalService; @Autowired private IOrderTaskService iOrderTaskService; @Autowired private IOrderDetailService iOrderDetailService; @Scheduled(cron="0 0 21 * * ?")//每晚下午9点执行 //@Scheduled(cron="0 * * * * ?")//测试 public void execute(){ String day = getDay(-8); QueryWrapper<OrderTask> wrapper = new QueryWrapper<>(); wrapper.lt("send_Date",day); iOrderTaskService.remove(wrapper); QueryWrapper<OrderDetail> wrapper2 = new QueryWrapper<>(); wrapper2.lt("create_time",day+" 00:00:00"); iOrderDetailService.remove(wrapper2); String day2 = getDay(-31); QueryWrapper<OrderTaskOriginal> wrapper3 = new QueryWrapper<>(); wrapper3.lt("create_time",day2+" 00:00:00"); iOrderTaskOriginalService.remove(wrapper3); QueryWrapper<OrderDetailOriginal> wrapper4 = new QueryWrapper<>(); wrapper4.lt("create_time",day2+" 00:00:00"); iOrderDetailOriginalService.remove(wrapper4); } private String getDay(int day){ Date dNow = new Date(); //当前时间 Calendar calendar = Calendar.getInstance(); //得到日历 calendar.setTime(dNow);//把当前时间赋给日历 calendar.add(Calendar.DAY_OF_MONTH, day); //设置为前n天 Date dBefore = calendar.getTime(); //得到前一天的时间 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式 String defaultStartDate = sdf.format(dBefore); return defaultStartDate; } } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPcScheduleImpl.java
@@ -1,6 +1,5 @@ package cn.exrick.xboot.your.schedulings; import cn.exrick.xboot.core.common.redis.RedisTemplateHelper; import cn.exrick.xboot.core.entity.User; import cn.exrick.xboot.core.service.MessageService; import cn.exrick.xboot.core.service.UserService; import cn.exrick.xboot.your.entity.*; @@ -11,9 +10,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.io.IOException; import java.util.Date; import java.util.List; //大屏首页统计 @Component public class StatisticPcScheduleImpl { @@ -47,9 +44,6 @@ @Autowired private IRemoteCallService iRemoteCallService; @Autowired private IEquipmentService iEquipmentService; @Autowired private IEventLogService eventLogService; @@ -87,14 +81,17 @@ redisTemplate.set(HEAD+"likeRate",(i*100)/count+"");//互动率 } String format = DateUtil.format(new Date(), "yyyy-MM-dd"); redisTemplate.set(HEAD+"outCar",iEquipmentService.countByTypeAndStatus(0)+"");//出发车辆 QueryWrapper<DrivingRecord> wp = new QueryWrapper<>(); wp.between("create_time",format+" 00:00:00",format+" 23:59:59"); redisTemplate.set(HEAD+"outCar",iDrivingRecordService.count(wp)+"");//出发车辆 QueryWrapper<EventLog> wrapper2=new QueryWrapper<>(); wrapper2.eq("type",5); redisTemplate.set(HEAD+"open",eventLogService.count(wrapper2)+"");//危险开启 QueryWrapper<Customer> wrapper = new QueryWrapper<>(); String format = DateUtil.format(new Date(), "yyyy-MM-dd"); wrapper.between("create_time",format+" 00:00:00",format+" 23:59:59"); redisTemplate.set(HEAD+"addCustomer",iCustomerService.count(wrapper)+"");//今日新增商户 } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IOrderTask2Service.java
New file @@ -0,0 +1,14 @@ package cn.exrick.xboot.your.service; import com.baomidou.mybatisplus.extension.service.IService; import cn.exrick.xboot.your.entity.OrderTask2; import java.util.List; /** * 订单任务历史表接口 * @author whj */ public interface IOrderTask2Service extends IService<OrderTask2> { } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IOrderTask2ServiceImpl.java
New file @@ -0,0 +1,26 @@ package cn.exrick.xboot.your.serviceimpl; import cn.exrick.xboot.your.mapper.OrderTask2Mapper; import cn.exrick.xboot.your.entity.OrderTask2; import cn.exrick.xboot.your.service.IOrderTask2Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; /** * 订单任务历史表接口实现 * @author whj */ @Slf4j @Service @Transactional public class IOrderTask2ServiceImpl extends ServiceImpl<OrderTask2Mapper, OrderTask2> implements IOrderTask2Service { @Autowired private OrderTask2Mapper orderTask2Mapper; } xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/util/MQTT.java
@@ -58,9 +58,9 @@ // 设置回调函数 client.setCallback(new MqttCallback() { public void connectionLost(Throwable cause) { System.out.println("connectionLost"); //System.out.println("connectionLost"); String topicInfo = haiKangPost.getTopicInfo(); System.out.println("重连-订阅信息:"+topicInfo); //System.out.println("重连-订阅信息:"+topicInfo); JSONObject jsonObject = JSONUtil.parseObj(topicInfo); if(jsonObject.get("data")!=null){ String data = jsonObject.get("data").toString(); @@ -73,7 +73,7 @@ } public void deliveryComplete(IMqttDeliveryToken token) { System.out.println("deliveryComplete---------"+ token.isComplete()); //System.out.println("deliveryComplete---------"+ token.isComplete()); } @@ -96,9 +96,9 @@ JSONObject jsonObject1 = JSONUtil.parseObj(s1); String data = jsonObject1.get("data").toString(); JSONObject jsonObject2 = JSONUtil.parseObj(data); System.out.println(jsonObject2.get("alarmId"));//报警id System.out.println(jsonObject2.get("vehicleIndexCode"));//车辆code System.out.println(jsonObject2.get("eventType"));//报警类型 //System.out.println(jsonObject2.get("alarmId"));//报警id //System.out.println(jsonObject2.get("vehicleIndexCode"));//车辆code //System.out.println(jsonObject2.get("eventType"));//报警类型 //未系安全带:132376 //抽烟:132375 //接打电话:132374 @@ -122,7 +122,7 @@ alarm.setType(4); alarm.setValue("抽烟"); }else if(eventType.equals("132405")){ alarm.setType(6); alarm.setType(7); alarm.setValue("超速"); }else{ return; xboot-modules/xboot-your/src/main/resources/mapper/OrderTask2Mapper.xml
New file @@ -0,0 +1,5 @@ <?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="cn.exrick.xboot.your.mapper.OrderTask2Mapper"> </mapper>