wang-hao-jie
2022-03-23 7005c13237516d5dd965afb1b3c5aa734a01a661
最新版本
10个文件已修改
12个文件已添加
788 ■■■■ 已修改文件
xboot-modules/xboot-generator/src/main/java/cn/exrick/xboot/generator/XbootMPGenerator.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/DuoZhengController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/FingerprintController.java 107 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderLogController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/Statistic2Controller.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/wx/IndexController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/DuoZheng.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderLog.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/DuoZhengMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/OrderLogMapper.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderDealScheduleImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderSynScheduleImpl.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPcScheduleImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticScheduleImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IDuoZhengService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IOrderLogService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IDuoZhengServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IOrderLogServiceImpl.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/resources/mapper/DuoZhengMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/resources/mapper/OrderLogMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-generator/src/main/java/cn/exrick/xboot/generator/XbootMPGenerator.java
@@ -33,13 +33,13 @@
     * 实体类名
     * 建议仅需修改
     */
    private static final String CLASS_NAME = "OrderTask2";
    private static final String CLASS_NAME = "DuoZheng";
    /**
     * 类说明描述
     * 建议仅需修改
     */
    private static final String DESCRIPTION = "订单任务历史表";
    private static final String DESCRIPTION = "一户多证表";
    /**
     * 作者名
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/DuoZhengController.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.DuoZheng;
import cn.exrick.xboot.your.service.IDuoZhengService;
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/duoZheng")
@Transactional
public class DuoZhengController {
    @Autowired
    private IDuoZhengService iDuoZhengService;
    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
    @ApiOperation(value = "通过id获取")
    public Result<DuoZheng> get(@PathVariable String id) {
        DuoZheng duoZheng = iDuoZhengService.getById(id);
        return new ResultUtil<DuoZheng>().setData(duoZheng);
    }
    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    @ApiOperation(value = "获取全部数据")
    public Result<List<DuoZheng>> getAll() {
        List<DuoZheng> list = iDuoZhengService.list();
        return new ResultUtil<List<DuoZheng>>().setData(list);
    }
    @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
    @ApiOperation(value = "分页获取")
    public Result<IPage<DuoZheng>> getByPage(PageVo page) {
        IPage<DuoZheng> data = iDuoZhengService.page(PageUtil.initMpPage(page));
        return new ResultUtil<IPage<DuoZheng>>().setData(data);
    }
    @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST)
    @ApiOperation(value = "编辑或更新数据")
    public Result<DuoZheng> saveOrUpdate(DuoZheng duoZheng) {
        if (iDuoZhengService.saveOrUpdate(duoZheng)) {
            return new ResultUtil<DuoZheng>().setData(duoZheng);
        }
        return new ResultUtil<DuoZheng>().setErrorMsg("操作失败");
    }
    @RequestMapping(value = "/delByIds", method = RequestMethod.POST)
    @ApiOperation(value = "批量通过id删除")
    public Result<Object> delAllByIds(@RequestParam String[] ids) {
        for (String id : ids) {
            iDuoZhengService.removeById(id);
        }
        return ResultUtil.success("批量通过id删除数据成功");
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/FingerprintController.java
@@ -59,11 +59,19 @@
        return new ResultUtil<Fingerprint>().setData(fingerprint);
    }
    @RequestMapping(value = "/getAreaIdByToken", method = RequestMethod.GET)
    @ApiOperation(value = "根据token获取区域id")
    public Result<Object> getAreaIdByToken() {
        Area area = getArea(securityUtil.getCurrUser().getId());
        return new ResultUtil<Object>().setData(area);
    }
    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    @ApiOperation(value = "获取全部司机和配送员指纹数据")
    public Result<List<Fingerprint>> getAll() {
        QueryWrapper<Fingerprint> wrapper = new QueryWrapper<>();
        wrapper.isNotNull("user_id");
        wrapper.isNotNull("file_id");
        List<Fingerprint> list = iFingerprintService.list(wrapper);
        return new ResultUtil<List<Fingerprint>>().setData(list);
    }
@@ -81,21 +89,35 @@
        return new ResultUtil<List<Fingerprint>>().setData(list);
    }
    public Area getArea(String userId){
        QueryWrapper<Area> wrapper = new QueryWrapper<Area>();
        wrapper.eq("user_id",userId);
        Area area = iAreaService.getOne(wrapper);
        if(area==null){
            QueryWrapper<Car> carQueryWrapper = new QueryWrapper<Car>();
            carQueryWrapper.eq("user_id",userId);
            Car one = iCarService.getOne(carQueryWrapper);
//    public Area getArea(String userId){
//        QueryWrapper<Area> wrapper = new QueryWrapper<Area>();
//        wrapper.eq("user_id",userId);
//        Area area = iAreaService.getOne(wrapper);
//        if(area==null){
//            QueryWrapper<Car> carQueryWrapper = new QueryWrapper<Car>();
//            carQueryWrapper.eq("user_id",userId);
//            Car one = iCarService.getOne(carQueryWrapper);
//
//            QueryWrapper<Area> wrapper3 = new QueryWrapper<Area>();
//            wrapper3.eq("user_id",one.getFollowUserId());
//            area = iAreaService.getOne(wrapper3);
//            return area;
//        }
//        return area;
//    }
            QueryWrapper<Area> wrapper3 = new QueryWrapper<Area>();
            wrapper3.eq("user_id",one.getFollowUserId());
            area = iAreaService.getOne(wrapper3);
    public Area getArea(String userId){
        QueryWrapper<Car> carQueryWrapper = new QueryWrapper<Car>();
        carQueryWrapper.eq("user_id",userId).or().eq("follow_user_id",userId);
        Car one = iCarService.getOne(carQueryWrapper);
        if(one==null){
            return null;
        }else{
            QueryWrapper<Area> wrapper = new QueryWrapper<Area>();
            wrapper.eq("car_id",one.getId());
            Area area = iAreaService.getOne(wrapper);
            return area;
        }
        return area;
    }
    @RequestMapping(value = "/getCount", method = RequestMethod.GET)
@@ -166,28 +188,63 @@
    @RequestMapping(value = "/getCode", method = RequestMethod.GET)
    @ApiOperation(value = "获取司机或配送员指纹编号")
    public Result<Object> getCode() {
        int code = iFingerprintService.maxCode();
        return new ResultUtil<Object>().setData(code);
        User currUser = securityUtil.getCurrUser();
        String userId = currUser.getId();
        QueryWrapper<Fingerprint> wrapper = new QueryWrapper<Fingerprint>();
        wrapper.eq("user_id",userId);
        wrapper.isNull("file_id");
        Fingerprint one = iFingerprintService.getOne(wrapper);
        if(one!=null){
            return new ResultUtil<Object>().setData(one.getCode());
        }else{
            int code = iFingerprintService.maxCode();
            Fingerprint fingerprint = new Fingerprint();
            fingerprint.setUserId(userId);
            fingerprint.setType(currUser.getType2());
            fingerprint.setCode(code);
            fingerprint.setUsername(currUser.getUsername());
            fingerprint.setPassword(currUser.getDescription());
            iFingerprintService.saveOrUpdate(fingerprint);
            return new ResultUtil<Object>().setData(code);
        }
    }
    @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST)
    @ApiOperation(value = "编辑或更新数据")
    public Result<Fingerprint> saveOrUpdate(Fingerprint fingerprint) {
        if(StrUtil.isEmpty(fingerprint.getFileId())){
            return ResultUtil.error("fileId不能为空");
        }
        if(StrUtil.isNotEmpty(fingerprint.getUserId())){
            QueryWrapper<Fingerprint> wp = new QueryWrapper<Fingerprint>();
            wp.eq("code",fingerprint.getCode());
            wp.isNotNull("user_id");
            List<Fingerprint> f = iFingerprintService.list(wp);
            if(f.size()>1){
                return ResultUtil.error("code重复,请重新获取code并录入指纹");
            }
            QueryWrapper<Fingerprint> wrapper = new QueryWrapper<Fingerprint>();
            wrapper.eq("code",fingerprint.getCode());
            wrapper.isNotNull("user_id");
            wrapper.eq("user_id",fingerprint.getUserId());
            Fingerprint one = iFingerprintService.getOne(wrapper);
            if(one!=null){
                return ResultUtil.error("code重复了,请重新获取");
                one.setFileId(fingerprint.getFileId());
//                User user = userService.get(fingerprint.getUserId());
//                one.setUsername(user.getUsername());
//                one.setPassword(user.getDescription());
//                one.setType(user.getType2());
                iFingerprintService.saveOrUpdate(one);
            }else{
                return ResultUtil.error("未找到需要更新的指纹");
            }
            User user = userService.get(fingerprint.getUserId());
            fingerprint.setUsername(user.getUsername());
            fingerprint.setPassword(user.getDescription());
            fingerprint.setType(user.getType2());
        }
        if(StrUtil.isNotEmpty(fingerprint.getCustomerId())){
            Customer byId = iCustomerService.getById(fingerprint.getCustomerId());
            fingerprint.setAreaId(byId.getAreaId());
@@ -200,16 +257,20 @@
            if(one!=null){
                return ResultUtil.error("code重复了,请重新获取");
            }
        }else{
            return ResultUtil.error("customerId不能为空");
        }
        if(StrUtil.isNotEmpty(fingerprint.getCustomerReceiveId())){
            CustomerReceive byId = iCustomerReceiveService.getById(fingerprint.getCustomerReceiveId());
            byId.setFstatus(1);
            iCustomerReceiveService.saveOrUpdate(byId);
            if (iFingerprintService.saveOrUpdate(fingerprint)) {
                return new ResultUtil<Fingerprint>().setData(fingerprint);
            }
        }
        if (iFingerprintService.saveOrUpdate(fingerprint)) {
            return new ResultUtil<Fingerprint>().setData(fingerprint);
        }
        return new ResultUtil<Fingerprint>().setErrorMsg("操作失败");
    }
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderLogController.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.OrderLog;
import cn.exrick.xboot.your.service.IOrderLogService;
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/orderLog")
@Transactional
public class OrderLogController {
    @Autowired
    private IOrderLogService iOrderLogService;
    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
    @ApiOperation(value = "通过id获取")
    public Result<OrderLog> get(@PathVariable String id) {
        OrderLog orderLog = iOrderLogService.getById(id);
        return new ResultUtil<OrderLog>().setData(orderLog);
    }
    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    @ApiOperation(value = "获取全部数据")
    public Result<List<OrderLog>> getAll() {
        List<OrderLog> list = iOrderLogService.list();
        return new ResultUtil<List<OrderLog>>().setData(list);
    }
    @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
    @ApiOperation(value = "分页获取")
    public Result<IPage<OrderLog>> getByPage(PageVo page) {
        IPage<OrderLog> data = iOrderLogService.page(PageUtil.initMpPage(page));
        return new ResultUtil<IPage<OrderLog>>().setData(data);
    }
    @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST)
    @ApiOperation(value = "编辑或更新数据")
    public Result<OrderLog> saveOrUpdate(OrderLog orderLog) {
        if (iOrderLogService.saveOrUpdate(orderLog)) {
            return new ResultUtil<OrderLog>().setData(orderLog);
        }
        return new ResultUtil<OrderLog>().setErrorMsg("操作失败");
    }
    @RequestMapping(value = "/delByIds", method = RequestMethod.POST)
    @ApiOperation(value = "批量通过id删除")
    public Result<Object> delAllByIds(@RequestParam String[] ids) {
        for (String id : ids) {
            iOrderLogService.removeById(id);
        }
        return ResultUtil.success("批量通过id删除数据成功");
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java
@@ -67,6 +67,9 @@
    @Autowired
    private IEventLogService iEventLogService;
    @Autowired
    private IOrderLogService iOrderLogService;
    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
    @ApiOperation(value = "通过id获取")
    public Result<OrderTask> get(@PathVariable String id) {
@@ -315,9 +318,25 @@
        eventLog.setRefId(orderId);
        eventLog.setType(6);//6:配送完成
        iEventLogService.saveOrUpdate(eventLog);
        saveLog();
        return ResultUtil.success("添加成功");
    }
    private void saveLog(){
        QueryWrapper<OrderLog> wp = new QueryWrapper<>();
        wp.eq("type",2);
        OrderLog one = iOrderLogService.getOne(wp);
        if(one!=null){
            one.setNum(one.getNum()+1);
        }else{
            one = new OrderLog();
            one.setNum(1);
            one.setType(2);
        }
        iOrderLogService.saveOrUpdate(one);
    }
    @RequestMapping(value = "/getTaKan", method = RequestMethod.GET)
    @ApiOperation(value = "获取踏勘商户")
    public Result<List<Customer>> getTaKan() {
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/Statistic2Controller.java
@@ -3,11 +3,8 @@
import cn.exrick.xboot.core.common.utils.ResultUtil;
import cn.exrick.xboot.core.common.vo.Result;
import cn.exrick.xboot.your.entity.Car;
import cn.exrick.xboot.your.service.IEventLogService;
import cn.exrick.xboot.your.service.IOrderTaskService;
import cn.exrick.xboot.your.service.*;
import cn.exrick.xboot.your.vo.Month;
import cn.exrick.xboot.your.service.ICarService;
import cn.exrick.xboot.your.service.ICustomerService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -33,16 +30,15 @@
    @Autowired
    private ICustomerService iCustomerService;
    @Autowired
    private IOrderTaskService iOrderTaskService;
    @Autowired
    private IEventLogService iEventLogService;
    @Autowired
    private IOrderLogService iOrderLogService;
    @RequestMapping(value = "/getCarCount", method = RequestMethod.GET)
    @ApiOperation(value = "获取车辆数目")
    public Result<Object> getCarCount() {
        Calendar cal = Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);
        QueryWrapper<Car> wrapper = new QueryWrapper<>();
        int m = cal.get(Calendar.MONTH) + 1;
@@ -76,7 +72,6 @@
    public Result<Object> getCustomerCount() {
        Calendar cal = Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);
        QueryWrapper<Car> wrapper = new QueryWrapper<>();
        int m = cal.get(Calendar.MONTH) + 1;
@@ -111,7 +106,7 @@
        int year = cal.get(Calendar.YEAR);
        QueryWrapper<Car> wrapper = new QueryWrapper<>();
        Month month= iOrderTaskService.getSendNum(year);
        Month month= iOrderLogService.getSendNum(year);
        List<Integer> list = new ArrayList<>();
        if (month==null) {
            month = new Month();
@@ -128,40 +123,6 @@
        list.add(month.getOctober()/10000);
        list.add(month.getNovember()/10000);
        list.add(month.getDecember()/10000);
        return new ResultUtil<Object>().setData(list);
    }
    @RequestMapping(value = "/getAvgNum", method = RequestMethod.GET)
    @ApiOperation(value = "获取商户平均送货数量")
    public Result<Object> getAvgNum() {
        Calendar cal = Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);
        QueryWrapper<Car> wrapper = new QueryWrapper<>();
        Month month= iCustomerService.getCustomerCount(year);
        Month month2= iOrderTaskService.getSendNum(year);
        List<Integer> list = new ArrayList<>();
        if (month==null) {
            month = new Month();
        }
        if (month2==null){
            month2=new Month();
        }
        list.add(month.getJanuary()!=0 ? (month2.getJanuary()/month.getJanuary()) : 0);
        list.add(month.getFebruary()!=0 ? (month2.getFebruary()/month.getFebruary()) : 0);
        list.add(month.getMarch()!=0 ? (month2.getMarch()/month.getMarch()) : 0);
        list.add(month.getApril()!=0 ? (month2.getApril()/month.getApril()) : 0);
        list.add(month.getMay()!=0 ? (month2.getMay()/month.getMay()) : 0);
        list.add(month.getJune()!=0 ? (month2.getJune()/month.getJune()) : 0);
        list.add(month.getJuly()!=0 ? (month2.getJuly()/month.getJuly()) : 0);
        list.add(month.getAugust()!=0 ? (month2.getAugust()/month.getAugust()) : 0);
        list.add(month.getSeptember()!=0 ? (month2.getSeptember()/month.getSeptember()) : 0);
        list.add(month.getOctober()!=0 ? (month2.getOctober()/month.getOctober()) : 0);
        list.add(month.getNovember()!=0 ? (month2.getNovember()/month.getNovember()) : 0);
        list.add(month.getDecember()!=0 ? (month2.getDecember()/month.getDecember()) : 0);
        return new ResultUtil<Object>().setData(list);
    }
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/pc/StatisticController.java
@@ -65,6 +65,12 @@
    @Autowired
    private ICustomerService iCustomerService;
    @Autowired
    private ICustomerReceiveService iCustomerReceiveService;
    @Autowired
    private IDuoZhengService iDuoZhengService;
    @RequestMapping(value = "/getIndex1", method = RequestMethod.GET)
    @ApiOperation(value = "获取首页数据")
    public Result<Object> getIndex1() {
@@ -286,25 +292,50 @@
    @ApiOperation(value = "获取配送分析详情")
    public Result<Object> getYiHuDuoZheng() {
        List<Customer> list = iCustomerService.getYiHuDuoZheng();
//        List<Customer> list = iCustomerService.getYiHuDuoZheng();
//        Map<String,Object> map = new HashMap<>();
//        map.put("name","一户多证");
//        List<Object> childrens = new ArrayList<>();
//        for(Customer c:list){
//            Map<String,Object> map2 = new HashMap<>();
//            map2.put("name",c.getName());
//
//            List<Object> names = new ArrayList<>();
//            Map<String,Object> map3 = new HashMap<>();
//            map3.put("name",c.getCode());
//            names.add(map3);
//
//            map2.put("children",names);
//
//            childrens.add(map2);
//        }
//        map.put("children",childrens);
        List<String> list = iDuoZhengService.getNames();
        Map<String,Object> map = new HashMap<>();
        map.put("name","一户多证");
        List<Object> childrens = new ArrayList<>();
        for(Customer c:list){
        for(String c:list){
            Map<String,Object> map2 = new HashMap<>();
            map2.put("name",c.getName());
            map2.put("name",c);
            List<Object> names = new ArrayList<>();
            Map<String,Object> map3 = new HashMap<>();
            map3.put("name",c.getCode());
            names.add(map3);
            QueryWrapper<DuoZheng> wp = new QueryWrapper<>();
            wp.eq("name",c);
            List<DuoZheng> list1 = iDuoZhengService.list(wp);
            for(DuoZheng dz:list1){
                Map<String,Object> map3 = new HashMap<>();
                map3.put("name",dz.getCustomerName());
                names.add(map3);
            }
            map2.put("children",names);
            childrens.add(map2);
        }
        map.put("children",childrens);
        return new ResultUtil<Object>().setData(map);
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/wx/IndexController.java
@@ -56,6 +56,9 @@
    @Autowired
    private ICustomerReceiveService iCustomerReceiveService;
    @Autowired
    private IOrderLogService iOrderLogService;
    //2.微信登陆
    @RequestMapping(value = "/login", method = RequestMethod.POST)
@@ -117,7 +120,7 @@
        }
        Customer one = iCustomerService.getOne(wrapper);
        if(one==null){
            return ResultUtil.error("零售许可证无效");//首次登陆需绑定零售许可证
            return ResultUtil.error("请检查输入信息是否正确");//首次登陆需绑定零售许可证
        }else {
            one.setOpenId(openId);
            iCustomerService.saveOrUpdate(one);
@@ -217,9 +220,25 @@
        }
        order.setLikes(1);
        iOrderTaskService.saveOrUpdate(order);
        saveLog();
        return ResultUtil.success("助力成功");
    }
    private void saveLog(){
        QueryWrapper<OrderLog> wp = new QueryWrapper<>();
        wp.eq("type",1);
        OrderLog one = iOrderLogService.getOne(wp);
        if(one!=null){
            one.setNum(one.getNum()+1);
        }else{
            one = new OrderLog();
            one.setNum(1);
            one.setType(1);
        }
        iOrderLogService.saveOrUpdate(one);
    }
    //7.获取订单列表
    @RequestMapping(value = "/getOrderList", method = RequestMethod.POST)
    @ApiOperation(value = "获取订单列表")
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/DuoZheng.java
New file
@@ -0,0 +1,39 @@
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
 * @author Exrick
 */
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@Table(name = "t_duo_zheng")
@TableName("t_duo_zheng")
@ApiModel(value = "一户多证表")
public class DuoZheng extends XbootBaseEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "商户名称")
    private String customerName;
    @ApiModelProperty(value = "名称")
    private String name;
    @ApiModelProperty(value = "联系方式")
    private String phone;
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderLog.java
New file
@@ -0,0 +1,34 @@
package cn.exrick.xboot.your.entity;
import cn.exrick.xboot.core.base.XbootBaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * @author Exrick
 */
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@Table(name = "t_order_log")
@TableName("t_order_log")
@ApiModel(value = "订单日志表")
public class OrderLog extends XbootBaseEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "今日订单总数")
    private int num;
    @ApiModelProperty(value = "0:今日订单数  1:互动数 2:电子签收数")
    private int type;
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/DuoZhengMapper.java
New file
@@ -0,0 +1,20 @@
package cn.exrick.xboot.your.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.exrick.xboot.your.entity.DuoZheng;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
 * 一户多证表数据处理层
 * @author whj
 */
public interface DuoZhengMapper extends BaseMapper<DuoZheng> {
    @Select("select DISTINCT(c.name) as customer_name,a.name,a.phone from t_customer_receive a,t_customer_receive b,t_customer c where a.name=b.name and a.phone=b.phone and a.customer_id<>b.customer_id and a.customer_id = c.id")
    List<DuoZheng> getYiHuDuoZheng();
    @Select("select DISTINCT(name) from t_duo_zheng")
    List<String> getNames();
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/OrderLogMapper.java
New file
@@ -0,0 +1,36 @@
package cn.exrick.xboot.your.mapper;
import cn.exrick.xboot.your.vo.Month;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.exrick.xboot.your.entity.OrderLog;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
 * 订单日志表数据处理层
 * @author whj
 */
public interface OrderLogMapper extends BaseMapper<OrderLog> {
    @Select("SELECT sum(num) FROM t_order_log where type=0")
    int sumNum();
    @Select("select \n" +
            "sum(case month(t.create_time) when '1' then t.num else 0 end) as january,\n" +
            "sum(case month(t.create_time) when '2' then t.num else 0 end) as february,\n" +
            "sum(case month(t.create_time) when '3' then t.num else 0 end) as march,\n" +
            "sum(case month(t.create_time) when '4' then t.num else 0 end) as april,\n" +
            "sum(case month(t.create_time) when '5' then t.num else 0 end) as may,\n" +
            "sum(case month(t.create_time) when '6' then t.num else 0 end) as june,\n" +
            "sum(case month(t.create_time) when '7' then t.num else 0 end) as july,\n" +
            "sum(case month(t.create_time) when '8' then t.num else 0 end) as august,\n" +
            "sum(case month(t.create_time) when '9' then t.num else 0 end) as september,\n" +
            "sum(case month(t.create_time) when '10' then t.num else 0 end) as october,\n" +
            "sum(case month(t.create_time) when '11' then t.num else 0 end) as november,\n" +
            "sum(case month(t.create_time) when '12' then t.num else 0 end) as december\n" +
            "from t_order_log t\n" +
            "where year(t.create_time)=#{year} and type=0")
    Month getSendNum(@Param("year")int year);
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderDealScheduleImpl.java
@@ -9,6 +9,7 @@
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
//删除历史数据
@Component
@@ -26,8 +27,11 @@
    @Autowired
    private IOrderDetailService iOrderDetailService;
    @Autowired
    private IDuoZhengService iDuoZhengService;
    @Scheduled(cron="0 0 21 * * ?")//每晚下午9点执行
    //@Scheduled(cron="0 * * * * ?")//测试
    //@Scheduled(cron="0 33 17 * * ?")//测试
    public void execute(){
        String day = getDay(-8);
        QueryWrapper<OrderTask> wrapper = new QueryWrapper<>();
@@ -38,7 +42,7 @@
        wrapper2.lt("create_time",day+" 00:00:00");
        iOrderDetailService.remove(wrapper2);
        String day2 = getDay(-31);
        String day2 = getDay(-30);
        QueryWrapper<OrderTaskOriginal> wrapper3 = new QueryWrapper<>();
        wrapper3.lt("create_time",day2+" 00:00:00");
        iOrderTaskOriginalService.remove(wrapper3);
@@ -46,6 +50,12 @@
        QueryWrapper<OrderDetailOriginal> wrapper4 = new QueryWrapper<>();
        wrapper4.lt("create_time",day2+" 00:00:00");
        iOrderDetailOriginalService.remove(wrapper4);
        QueryWrapper<DuoZheng> wrapper5 = new QueryWrapper<>();
        iDuoZhengService.remove(wrapper5);
        List<DuoZheng> list = iDuoZhengService.getYiHuDuoZheng();
        iDuoZhengService.saveBatch(list);
    }
    private String getDay(int day){
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderSynScheduleImpl.java
@@ -7,6 +7,7 @@
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -38,50 +39,65 @@
    @Autowired
    private ICustomerReceiveService iCustomerReceiveService;
    @Autowired
    private IOrderLogService iOrderLogService;
    @Scheduled(cron="0 30 23 * * ?")//每晚凌晨1点执行
    //@Scheduled(cron="0 22 11 * * ?")//每晚凌晨1点执行
    //@Scheduled(cron="0 11 15 * * ?")//每晚凌晨1点执行
    public void execute(){
        System.out.println("开始处理订单");
        QueryWrapper<OrderTaskOriginal> queryWrapper = new QueryWrapper<>();
        queryWrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date()));
        List<OrderTaskOriginal> list = iOrderTaskOriginalService.list(queryWrapper);
        int sumNum = 0;
        for(OrderTaskOriginal original:list){
            OrderTask orderTask = new OrderTask();
            orderTask.setCode(original.getCode());
            Area area = getArea(original.getAreaName());
            orderTask.setAreaId(area.getId());
            orderTask.setCarId(area.getCarId());
            orderTask.setAreaSectionId(getAreaSection(orderTask.getAreaId(),original.getAreaSection()));
            orderTask.setCustomerId(getCustomer(original.getCustomerCode(),original.getCustomerName(),original.getCustomerPhone(),original.getLinker(),orderTask.getAreaId(),orderTask.getAreaSectionId()));
            orderTask.setEndDate(original.getPacketDate());
            orderTask.setSendDate(original.getSendDate());
            orderTask.setOrderDate(original.getOrderDate());
            if(original.getSeq()!=null){
                orderTask.setSeq(original.getSeq());
            }else{
                orderTask.setSeq(999);
            try {
                OrderTask orderTask = new OrderTask();
                orderTask.setCode(original.getCode());
                Area area = getArea(original.getAreaName());
                orderTask.setAreaId(area.getId());
                orderTask.setCarId(area.getCarId());
                orderTask.setAreaSectionId(getAreaSection(orderTask.getAreaId(),original.getAreaSection()));
                orderTask.setCustomerId(getCustomer(original.getCustomerCode(),original.getCustomerName(),original.getCustomerPhone(),original.getLinker(),orderTask.getAreaId(),orderTask.getAreaSectionId()));
                orderTask.setEndDate(original.getPacketDate());
                orderTask.setSendDate(original.getSendDate());
                orderTask.setOrderDate(original.getOrderDate());
                if(original.getSeq()!=null){
                    orderTask.setSeq(original.getSeq());
                }else{
                    orderTask.setSeq(999);
                }
                orderTask.setNum(original.getNum());
                sumNum+=original.getNum();
                iOrderTaskService.saveOrUpdate(orderTask);
                updateCustomerRecive(orderTask.getCustomerId(),original.getLinker(),original.getCustomerPhone());
                QueryWrapper<OrderDetailOriginal> wrapper = new QueryWrapper<>();
                wrapper.eq("order_id",original.getId());
                List<OrderDetailOriginal> list1 = iOrderDetailOriginalService.list(wrapper);
                List<OrderDetail> detailList = new ArrayList<>();
                for(OrderDetailOriginal o:list1){
                    OrderDetail orderDetail = new OrderDetail();
                    orderDetail.setNum(o.getNum());
                    orderDetail.setOrderId(orderTask.getId());
                    orderDetail.setProduct(o.getProductName());
                    detailList.add(orderDetail);
                }
                iOrderDetailService.saveBatch(detailList);
            }catch (Exception e){
            }
            orderTask.setNum(original.getNum());
            iOrderTaskService.saveOrUpdate(orderTask);
            updateCustomerRecive(orderTask.getCustomerId(),original.getLinker(),original.getCustomerPhone());
            QueryWrapper<OrderDetailOriginal> wrapper = new QueryWrapper<>();
//            wrapper.between("create_time",dateStringFormat(new Date()),dateStringFormat2(new Date()));
            wrapper.eq("order_id",original.getId());
            List<OrderDetailOriginal> list1 = iOrderDetailOriginalService.list(wrapper);
            for(OrderDetailOriginal o:list1){
                OrderDetail orderDetail = new OrderDetail();
                orderDetail.setNum(o.getNum());
                orderDetail.setOrderId(orderTask.getId());
                orderDetail.setProduct(o.getProductName());
                iOrderDetailService.saveOrUpdate(orderDetail);
            }
        }
        OrderLog orderLog = new OrderLog();
        orderLog.setNum(sumNum);
        orderLog.setType(0);
        iOrderLogService.save(orderLog);
        System.out.println("处理订单结束");
    }
@@ -90,9 +106,9 @@
        QueryWrapper<CustomerReceive> wrapper = new QueryWrapper<>();
        wrapper.eq("customer_id",customerId);
        wrapper.eq("name",linker);
        CustomerReceive one = iCustomerReceiveService.getOne(wrapper);
        if(one==null){
            one = new CustomerReceive();
        List<CustomerReceive> list = iCustomerReceiveService.list(wrapper);
        if(list.size()==0){
            CustomerReceive one = new CustomerReceive();
            one.setCustomerId(customerId);
            one.setFstatus(0);
            one.setStatus(1);
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticPcScheduleImpl.java
@@ -48,6 +48,9 @@
    @Autowired
    private IEventLogService eventLogService;
    @Autowired
    private IOrderLogService iOrderLogService;
    public static final String HEAD = "statistic1::";
    @Scheduled(cron="0 15 * * * ?")//每小时15分钟时执行
@@ -58,12 +61,13 @@
        redisTemplate.set(HEAD+"dept","3");//转运站数
        redisTemplate.set(HEAD+"area",iAreaService.count()+"");//片区数
        redisTemplate.set(HEAD+"customer",iCustomerService.count()+"");//商户数
        int customNum = iCustomerService.count();
        redisTemplate.set(HEAD+"customer",customNum+"");//商户数
        redisTemplate.set(HEAD+"out",iDrivingRecordService.count()+"");//出车次数
        redisTemplate.set(HEAD+"driving",iUserStatisticService.sumDriving()+"");//行驶里程
        redisTemplate.set(HEAD+"num",iOrderTaskService.sumNum()+"");//送货包数
        redisTemplate.set(HEAD+"status",iOrderTaskService.sumStatus(1)+"");//电子签收次数
        redisTemplate.set(HEAD+"num",iOrderLogService.sumNum()+"");//送货包数
        redisTemplate.set(HEAD+"status",getNum(2)+"");//电子签收次数
        redisTemplate.set(HEAD+"notice",messageService.getTotalCount()+"");//通知公告条数
        redisTemplate.set(HEAD+"video","0");//视频监控次数
@@ -72,13 +76,14 @@
        redisTemplate.set(HEAD+"wx",iCustomerService.sumLogin()+"");//小程序登陆次数
        redisTemplate.set(HEAD+"wxRate",iCustomerService.countOpenId()+"");//小程序使用率
        int i = iOrderTaskService.countLike();
        int i = getNum(1);
        redisTemplate.set(HEAD+"like",i+"");//互动次数
        int count = iOrderTaskService.count();
        int count = iOrderLogService.sumNum();
        if(count==0){
            redisTemplate.set(HEAD+"likeRate","0");//互动率
        }else{
            redisTemplate.set(HEAD+"likeRate",(i*100)/count+"");//互动率
            redisTemplate.set(HEAD+"likeRate",(((i*100)/customNum)+1)+"");//互动率
        }
        String format = DateUtil.format(new Date(), "yyyy-MM-dd");
@@ -95,4 +100,15 @@
        wrapper.between("create_time",format+" 00:00:00",format+" 23:59:59");
        redisTemplate.set(HEAD+"addCustomer",iCustomerService.count(wrapper)+"");//今日新增商户
    }
    private int getNum(int type){
        QueryWrapper<OrderLog> wp = new QueryWrapper<>();
        wp.eq("type",type);
        OrderLog one = iOrderLogService.getOne(wp);
        if(one!=null){
            return one.getNum();
        }else{
            return 0;
        }
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/StatisticScheduleImpl.java
@@ -39,7 +39,7 @@
    @Autowired
    private ICarService iCarService;
    @Scheduled(cron="0 0 1 * * ?")//每晚凌晨1点执行
    @Scheduled(cron="0 0 5 * * ?")//每晚凌晨1点执行
    public void execute(){
        List<User> all = userService.findAll();
        for(User user:all){
@@ -95,11 +95,11 @@
                    int count = iOrderTaskService.count(wrapper2);
                    one.setSends(count);//配送次数
                    QueryWrapper<OrderTask> wrapper22 = new QueryWrapper<>();
                    wrapper22.eq("user_id",user.getId());
                    wrapper22.eq("status",1);
                    int count2 = iOrderTaskService.count(wrapper22);
                    one.setSends2(count2);//送达次数
//                    QueryWrapper<OrderTask> wrapper22 = new QueryWrapper<>();
//                    wrapper22.eq("user_id",user.getId());
//                    wrapper22.eq("status",1);
//                    int count2 = iOrderTaskService.count(wrapper22);
                    one.setSends2(count);//送达次数
//                    QueryWrapper<Area> wrapper3 = new QueryWrapper<>();
//                    wrapper3.eq("user_id",user.getId());
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IDuoZhengService.java
New file
@@ -0,0 +1,17 @@
package cn.exrick.xboot.your.service;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.exrick.xboot.your.entity.DuoZheng;
import java.util.List;
/**
 * 一户多证表接口
 * @author whj
 */
public interface IDuoZhengService extends IService<DuoZheng> {
    List<DuoZheng> getYiHuDuoZheng();
    List<String> getNames();
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IOrderLogService.java
New file
@@ -0,0 +1,18 @@
package cn.exrick.xboot.your.service;
import cn.exrick.xboot.your.vo.Month;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.exrick.xboot.your.entity.OrderLog;
import java.util.List;
/**
 * 订单日志表接口
 * @author whj
 */
public interface IOrderLogService extends IService<OrderLog> {
    int sumNum();
    Month getSendNum(int year);
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IDuoZhengServiceImpl.java
New file
@@ -0,0 +1,36 @@
package cn.exrick.xboot.your.serviceimpl;
import cn.exrick.xboot.your.mapper.DuoZhengMapper;
import cn.exrick.xboot.your.entity.DuoZheng;
import cn.exrick.xboot.your.service.IDuoZhengService;
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 IDuoZhengServiceImpl extends ServiceImpl<DuoZhengMapper, DuoZheng> implements IDuoZhengService {
    @Autowired
    private DuoZhengMapper duoZhengMapper;
    @Override
    public List<DuoZheng> getYiHuDuoZheng() {
        return duoZhengMapper.getYiHuDuoZheng();
    }
    @Override
    public List<String> getNames() {
        return duoZhengMapper.getNames();
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IOrderLogServiceImpl.java
New file
@@ -0,0 +1,37 @@
package cn.exrick.xboot.your.serviceimpl;
import cn.exrick.xboot.your.mapper.OrderLogMapper;
import cn.exrick.xboot.your.entity.OrderLog;
import cn.exrick.xboot.your.service.IOrderLogService;
import cn.exrick.xboot.your.vo.Month;
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 IOrderLogServiceImpl extends ServiceImpl<OrderLogMapper, OrderLog> implements IOrderLogService {
    @Autowired
    private OrderLogMapper orderLogMapper;
    @Override
    public int sumNum() {
        return orderLogMapper.sumNum();
    }
    @Override
    public Month getSendNum(int year) {
        return orderLogMapper.getSendNum(year);
    }
}
xboot-modules/xboot-your/src/main/resources/mapper/DuoZhengMapper.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.DuoZhengMapper">
</mapper>
xboot-modules/xboot-your/src/main/resources/mapper/OrderLogMapper.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.OrderLogMapper">
</mapper>