wjli
2024-03-18 84fd23e5e865bd5529441a0c318809a00362f44c
添加签收图片对比功能
12个文件已修改
2个文件已添加
359 ■■■■■ 已修改文件
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTask2Controller.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/SignCountController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderTask2Imgs.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/OrderTask2Mapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/HistoryOrder.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderDealScheduleImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderSynScheduleImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IOrderTask2Service.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IOrderTask2ServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/vo/ImgSearchVo.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/resources/mapper/OrderTask2Mapper.xml 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTask2Controller.java
@@ -4,19 +4,27 @@
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.OrderStatusCount;
import cn.exrick.xboot.your.entity.OrderTask2;
import cn.exrick.xboot.your.entity.OrderTask2Imgs;
import cn.exrick.xboot.your.entity.QueryRequest;
import cn.exrick.xboot.your.service.IOrderTask2Service;
import cn.exrick.xboot.your.vo.ImgSearchVo;
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.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.security.PermitAll;
import java.util.List;
import static cn.hutool.poi.excel.sax.ElementName.v;
/**
 * @author whj
@@ -26,6 +34,7 @@
@Api(tags = "订单任务历史表管理接口")
@RequestMapping("/xboot/orderTask2")
@Transactional
@PermitAll
public class OrderTask2Controller {
    @Autowired
@@ -67,6 +76,14 @@
        return new ResultUtil<IPage<OrderTask2>>().setData(data);
    }
    @RequestMapping(value = "/getByPageImgs", method = RequestMethod.GET)
    @ApiOperation(value = "分页获取")
    @PermitAll
    public Result<IPage<OrderTask2Imgs>> getByPageImgs(QueryRequest queryRequest, ImgSearchVo imgSearchVo) {
        IPage<OrderTask2Imgs> data = iOrderTask2Service.getTask2Imgs(imgSearchVo,queryRequest);
        return new ResultUtil<IPage<OrderTask2Imgs>>().setData(data);
    }
    @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST)
    @ApiOperation(value = "编辑或更新数据")
    public Result<OrderTask2> saveOrUpdate(OrderTask2 orderTask2) {
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java
@@ -31,6 +31,7 @@
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
/**
@@ -178,6 +179,7 @@
        }
    }
    @RequestMapping(value = "/getByUserId", method = RequestMethod.GET)
    @ApiOperation(value = "获取今日任务统计信息")
    public Result<Object> getAll(String sendTime) {
@@ -252,7 +254,7 @@
        return new ResultUtil<Object>().setData(map);
    }
    @RequestMapping(value = "/getTodayOrder", method = RequestMethod.GET)
   /* @RequestMapping(value = "/getTodayOrder", method = RequestMethod.GET)
    @ApiOperation(value = "获取今日配送任务详情列表")
    public Result<List<OrderTask>> getTodayOrder(String sendTime) {
        Area area = getArea(securityUtil.getCurrUser().getId());
@@ -273,6 +275,31 @@
        for (OrderTask obj : list) {
            obj.setCode(obj.getLinker());
        }
        return new ResultUtil<List<OrderTask>>().setData(list);
    }*/
    @RequestMapping(value = "/getTodayOrder", method = RequestMethod.GET)
    @ApiOperation(value = "获取今日配送任务详情列表")
    public Result<List<OrderTask>> getTodayOrder(String sendTime) {
        //获取订单列表
        Area area = getArea(securityUtil.getCurrUser().getId());
        if (area == null) {
            return ResultUtil.error("请联系管理员绑定该车辆");
        }
        QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
        String format = getFormatDate(sendTime);
//        wrapper2.eq("a.area_id",area.getId());
//        wrapper2.eq("a.send_date",format);
//        wrapper2.orderByAsc("a.seq").orderByAsc("a.status");
        //List<OrderTask> list = iOrderTaskService.list2(wrapper2);
        wrapper2.eq("area_id", area.getId());
        wrapper2.eq("send_date", format);
        wrapper2.orderByAsc("area_section_id").orderByAsc("seq").orderByAsc("status");
        List<OrderTask> list = iOrderTaskService.list(wrapper2);
        return new ResultUtil<List<OrderTask>>().setData(list);
    }
@@ -856,4 +883,87 @@
        ;
        return new ResultUtil<List<OrderStatusCount>>().setData(data);
    }
    @Autowired
    private ISignCountService iSignCountService;
    @RequestMapping(value = "/getStatusCounts", method = RequestMethod.GET)
    @ApiOperation(value = "获取今日任务统计信息")
    public Result<Object> getStatusCounts() {
        System.err.println("执行存储数据定时任务时间: " + LocalDateTime.now());
       OrderStatusCount orderStatusCount = new OrderStatusCount();
        List<OrderStatusCount> StatusCounts = new ArrayList<>();
        List<OrderStatusCount> temps = iOrderTaskService.countStatus(orderStatusCount);
        for (OrderStatusCount statusCount : temps) {
            if("丰南02车".equals(statusCount.getLine())){
                StatusCounts.add(statusCount);
            }
        }
        if (StatusCounts != null && StatusCounts.size() != 0) {
            List<SignCount> list = iSignCountService.list();
            for (OrderStatusCount statusCount : StatusCounts) {
                SignCount signCount = new SignCount();
                boolean flag = false;
                for (SignCount signCountS : list) {
                    if (signCountS.getTaskId().equals(statusCount.getId())) {
                        signCount.setId(signCountS.getId());
                        signCount.setCarName(statusCount.getCarName());
                        signCount.setAmount(statusCount.getAmount());
                        signCount.setSignCount(statusCount.getSignCount());
                        signCount.setAbnormalSign(statusCount.getAbnormalSign());
                        signCount.setBatch(statusCount.getBatch());
                        signCount.setLine(statusCount.getLine());
                        signCount.setNotSignCount(statusCount.getNotSignCount());
                        String SendDate=getBeforeOneDayByStringDate(statusCount.getSendDate());
                        signCount.setSendDate(SendDate);
                        signCount.setProportion(statusCount.getProportion());
                        signCount.setUserName(statusCount.getUserName());
                        signCount.setTaskId(statusCount.getId());
                        iSignCountService.saveOrUpdate(signCount);
                        System.out.println("更新成功");
                        flag = true;
                        break;
                    }
                }
                if (flag) {
                    continue;
                }
                signCount.setCarName(statusCount.getCarName());
                signCount.setAmount(statusCount.getAmount());
                signCount.setSignCount(statusCount.getSignCount());
                signCount.setAbnormalSign(statusCount.getAbnormalSign());
                signCount.setBatch(statusCount.getBatch());
                signCount.setLine(statusCount.getLine());
                signCount.setNotSignCount(statusCount.getNotSignCount());
                String SendDate=getBeforeOneDayByStringDate(statusCount.getSendDate());
                signCount.setSendDate(SendDate);
                signCount.setProportion(statusCount.getProportion());
                signCount.setUserName(statusCount.getUserName());
                signCount.setTaskId(statusCount.getId());
                if (iSignCountService.saveOrUpdate(signCount)) {
                    System.out.println("定时存储成功");
                }
            }
        }
        return null;
    }
    private String getBeforeOneDayByStringDate(String dateString) {
        String times = "";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date d;
        try {
            d = format.parse(dateString);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(d);
            calendar.add(Calendar.DAY_OF_MONTH, -1);  // 在当前日基础上-1
            String format1 = format.format(calendar.getTime());
            times = format1;
            //获取String类型的时间
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return times;
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/SignCountController.java
@@ -20,6 +20,7 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.security.PermitAll;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
@@ -33,6 +34,7 @@
@Api(tags = "状态统计报表接口")
@RequestMapping("/xboot/signCount")
@Transactional
@PermitAll
public class SignCountController {
    @Autowired
@@ -84,9 +86,15 @@
    @GetMapping("/outExcels")
    @ApiOperation(value = "导出签收统计信息表", notes = "导出签收统计信息表")
    @PermitAll
    public void export1(OrderStatusCount orderStatusCount, HttpServletResponse response) throws IOException {
        if(orderStatusCount.getSendDateStart()!=null){
            orderStatusCount.setSendDateStart(orderStatusCount.getSendDateStart() + " 00:00:00");
        }
        if(orderStatusCount.getSendDateEnd()!=null){
            orderStatusCount.setSendDateEnd(orderStatusCount.getSendDateEnd() + " 23:59:59");
        }
        List<OrderStatusCount> orderStatus = this.iSignCountService.signCounts2New(orderStatusCount);
        System.out.println(orderStatus);
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        String fileName = URLEncoder.encode("签收数量统计报表", "UTF-8");
@@ -100,12 +108,25 @@
    @GetMapping(value = "/selectBySign")
    public  Result<IPage<OrderStatusCount>> signCounts(OrderStatusCount orderStatusCount,QueryRequest queryRequest) {
        if(orderStatusCount.getSendDateStart()!=null){
            orderStatusCount.setSendDateStart(orderStatusCount.getSendDateStart() + " 00:00:00");
        }
        if(orderStatusCount.getSendDateEnd()!=null){
            orderStatusCount.setSendDateEnd(orderStatusCount.getSendDateEnd() + " 23:59:59");
        }
        IPage<OrderStatusCount> data = this.iSignCountService.signCounts(orderStatusCount,queryRequest);
        return  new ResultUtil<IPage<OrderStatusCount>>().setData(data);
    }
    @GetMapping(value = "/selectBySignNew")
    @PermitAll
    public  Result<IPage<OrderStatusCount>> signCountsNew(OrderStatusCount orderStatusCount,QueryRequest queryRequest) {
        if(orderStatusCount.getSendDateStart()!=null){
            orderStatusCount.setSendDateStart(orderStatusCount.getSendDateStart() + " 00:00:00");
        }
        if(orderStatusCount.getSendDateEnd()!=null){
            orderStatusCount.setSendDateEnd(orderStatusCount.getSendDateEnd() + " 23:59:59");
        }
        IPage<OrderStatusCount> data = this.iSignCountService.signCountsNew(orderStatusCount,queryRequest);
        return  new ResultUtil<IPage<OrderStatusCount>>().setData(data);
    }
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderTask2Imgs.java
New file
@@ -0,0 +1,70 @@
package cn.exrick.xboot.your.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
@ApiModel(value = "订单任务历史表")
public class OrderTask2Imgs {
    @ApiModelProperty(value = "订单Code")
    private String code;
    @ApiModelProperty(value = "区域id")
    private Long areaId;
    @ApiModelProperty(value = "区域名称")
    private String areaName;
    @ApiModelProperty(value = "分段ID")
    private Long areaSectionId;
    @ApiModelProperty(value = "分段名称")
    private String areaSectionName;
    @ApiModelProperty(value = "车牌号ID")
    private Long carId;
    @ApiModelProperty(value = "车牌号")
    private String carNo;
    @ApiModelProperty(value = "客户名称ID")
    private Long customerId;
    @ApiModelProperty(value = "客户名称")
    private String customerName;
    @ApiModelProperty(value = "收货人ID")
    private Long customerReceiveId;
    @ApiModelProperty(value = "收货人姓名")
    private String customerReceiveName;
    @ApiModelProperty(value = "收货时间")
    private String receiveTime;
    @ApiModelProperty(value = "送货人id")
    private Long userId;
    @ApiModelProperty(value = "送货人")
    private String userName;
    @ApiModelProperty(value = "接收人原图")
    private String receiveImg;
    @ApiModelProperty(value = "货物图,接收人图")
    private String imgs;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "发货日期")
    private String sendDate;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "订单日期")
    private String orderDate;
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/OrderTask2Mapper.java
@@ -1,7 +1,13 @@
package cn.exrick.xboot.your.mapper;
import cn.exrick.xboot.your.entity.OrderStatusCount;
import cn.exrick.xboot.your.entity.OrderTask2Imgs;
import cn.exrick.xboot.your.vo.ImgSearchVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.exrick.xboot.your.entity.OrderTask2;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -11,4 +17,5 @@
 */
public interface OrderTask2Mapper extends BaseMapper<OrderTask2> {
     IPage<OrderTask2Imgs> getTask2Images(@Param("bo")ImgSearchVo imgSearchVo, Page<OrderTask2Imgs> page);
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/HistoryOrder.java
@@ -32,6 +32,11 @@
    @Autowired
    private ICustomerService iCustomerService;
    /**
     * 每天21点31分执行
     * 将配送日期为今天的订单数据(t_order_task)存入历史订单数据表(t_order_task2)
     */
    @Scheduled(cron="0 31 21 * * ?")//每晚下午9点半点执行
    public void execute(){
        String day = getDay(0);
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderDealScheduleImpl.java
@@ -1,4 +1,5 @@
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;
@@ -30,6 +31,12 @@
    @Autowired
    private IDuoZhengService iDuoZhengService;
    /**
     * 每天21点执行
     * 1.将配送日期小于10天前的订单删除(t_order_task),同时删除相应订单详情数据(t_order_detail)
     * 2.将配送日期小于20天前的订单从原始订单数据表删除(t_order_original),同时删除相应原始订单详情数据(t_order_original_detail)
     */
    @Scheduled(cron="0 0 21 * * ?")//每晚下午9点执行
    //@Scheduled(cron="0 33 17 * * ?")//测试
    public void execute(){
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderSynScheduleImpl.java
@@ -44,6 +44,11 @@
    @Autowired
    private IOrderLogService iOrderLogService;
    /**
     * 每天15:59分处理
     * 在原始订单数据(t_order_task_original)获取订单日期为今天的原始订单,转换成订单数据存入订单任务数据表(t_order_task)
     */
    @Scheduled(cron="0 59 15 * * ?")//每晚凌晨1点执行
    //@Scheduled(cron="0 11 15 * * ?")//每晚凌晨1点执行
    public void execute(){
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/IOrderTask2Service.java
@@ -1,5 +1,9 @@
package cn.exrick.xboot.your.service;
import cn.exrick.xboot.your.entity.OrderTask2Imgs;
import cn.exrick.xboot.your.entity.QueryRequest;
import cn.exrick.xboot.your.vo.ImgSearchVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.exrick.xboot.your.entity.OrderTask2;
@@ -10,5 +14,8 @@
 * @author whj
 */
public interface IOrderTask2Service extends IService<OrderTask2> {
    /**
     * 获取图片结构
     */
    IPage<OrderTask2Imgs> getTask2Imgs(ImgSearchVo imgSearchVo, QueryRequest queryRequest);
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/IOrderTask2ServiceImpl.java
@@ -1,16 +1,27 @@
package cn.exrick.xboot.your.serviceimpl;
import cn.exrick.xboot.your.entity.OrderStatusCount;
import cn.exrick.xboot.your.entity.OrderTask2Imgs;
import cn.exrick.xboot.your.entity.QueryRequest;
import cn.exrick.xboot.your.mapper.OrderTask2Mapper;
import cn.exrick.xboot.your.entity.OrderTask2;
import cn.exrick.xboot.your.service.IOrderTask2Service;
import cn.exrick.xboot.your.vo.ImgSearchVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * 订单任务历史表接口实现
@@ -23,4 +34,21 @@
    @Autowired
    private OrderTask2Mapper orderTask2Mapper;
    @Override
    public IPage<OrderTask2Imgs> getTask2Imgs(ImgSearchVo imgSearchVo, QueryRequest queryRequest) {
        Page<OrderTask2Imgs> page = new Page<>();
        if (org.apache.commons.lang3.StringUtils.isNotBlank(queryRequest.getPageSize() + "") && (queryRequest.getPageSize() != 0)) {
            page.setCurrent(queryRequest.getPageNum());
            page.setSize(queryRequest.getPageSize());
        } else {
            page.setCurrent(0);
            page.setSize(-1);
        }
        imgSearchVo.setSendDateStart(imgSearchVo.getSendDateStart()+ " 00:00:00");
        imgSearchVo.setSendDateEnd(imgSearchVo.getSendDateEnd()+ " 23:59:59");
        IPage<OrderTask2Imgs> orderTask2ImgsIPage = this.orderTask2Mapper.getTask2Images(imgSearchVo, page);
        return orderTask2ImgsIPage;
    }
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java
@@ -105,7 +105,9 @@
        List<OrderStatusCount> records = this.signCountMapper.signCount2New(orderStatusCount);
        List<OrderStatusCount> recordsAll = this.signCountMapper.signCountNewTotal(orderStatusCount);
        for (int i=0;i<records.size();i++) {
            //if(records.get(i).getCarName()==null) continue;
            for (OrderStatusCount statusCountx: recordsAll) {
                //if(statusCountx.getCarName()==null) continue;
                if(records.get(i).getCarName().equals(statusCountx.getCarName())){
                    if(statusCountx.getProportion().length()>6){
                        String  ss = statusCountx.getProportion().replace("%","");
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/vo/ImgSearchVo.java
New file
@@ -0,0 +1,17 @@
package cn.exrick.xboot.your.vo;
import lombok.Data;
@Data
public class ImgSearchVo {
    String sendDateStart;
    String sendDateEnd;
    String userName;
    String carNo;
    String customerName;
}
xboot-modules/xboot-your/src/main/resources/mapper/OrderTask2Mapper.xml
@@ -2,4 +2,50 @@
<!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">
    <select id="getTask2Images" resultType="cn.exrick.xboot.your.entity.OrderTask2Imgs">
        SELECT
            a.code as code,
            a.area_id as areaId,
            b.name as areaName,
            a.area_section_id as areaSectionId,
            c.name as areaSectionName,
            a.car_id as carId,
            d.car_no as carNo,
            a.customer_id as customerId,
            a.customer_name as customerName,
            a.customer_receive_id as customerReceiveId,
            a.update_time as receiveTime,
            e.name as customerReceiveName,
            a.user_id as userId,
            a.user_name as userName,
            e.img as receiveImg,
            a.img as imgs,
            a.send_date as sendDate,
            a.order_date as orderDate
        FROM t_order_task2 a,t_area b,t_area_ection c,t_car d,t_customer_receive e
        WHERE a.status = 1
        <if test="bo.sendDateStart != null and bo.sendDateStart != ''">
            AND send_date >= #{bo.sendDateStart}
        </if>
        <if test="bo.sendDateEnd != null and bo.sendDateEnd != ''">
            AND send_date &lt;= #{bo.sendDateEnd}
        </if>
        <if test="bo.userName != null and bo.userName != ''" >
            AND  a.user_name = #{bo.userName}
        </if>
        <if test="bo.carNo != null and bo.carNo != ''" >
            AND  d.car_no = #{bo.carNo}
        </if>
        <if test="bo.customerName != null and bo.customerName != ''" >
            AND a.customer_name like CONCAT ('%',#{bo.customerName},'%')
        </if>
          and a.img is not null
          and a.area_id = b.id
          and a.area_section_id = c.id
          and a.car_id = d.id
          and a.customer_receive_id = e.id
        order by a.order_date desc
    </select>
</mapper>
xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml
@@ -119,7 +119,7 @@
                AND send_date >= #{bo.sendDateStart}
            </if>
            <if test="bo.sendDateEnd != null and bo.sendDateEnd != ''">
                AND send_date &lt;= #{bo.sendDateEnd}
                AND send_date &lt;= #{bo.sendDateEnd} + ' 23:59:59'
            </if>
        </where>
        GROUP BY
@@ -204,7 +204,8 @@
        FROM
        t_sign
        <where>
            1=1
            1=1 AND
            car_name is not NULL
            <if test="bo.line != null and bo.line != ''" >
                AND  line like  CONCAT ('%', #{bo.line},'%')
            </if>
@@ -248,7 +249,8 @@
        FROM
        t_sign
        <where>
            1=1
            1=1 AND
            car_name is not NULL
            <if test="bo.line != null and bo.line != ''" >
                AND  line like  CONCAT ('%', #{bo.line},'%')
            </if>
@@ -283,7 +285,8 @@
    FROM
    t_sign
    <where>
        1=1
        1=1 AND
        car_name is not NULL
        <if test="bo.line != null and bo.line != ''" >
            AND  line like  CONCAT ('%', #{bo.line},'%')
        </if>