wjli
2023-05-11 a067fdbf6b1374a1402096c722257575916eab99
1.首页分段显示
2.配送订单页可根据分段显示
3.后端配送率统计
6个文件已修改
215 ■■■■■ 已修改文件
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/SignCountController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/SignCountMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ISignCountService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java
@@ -20,6 +20,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.transaction.annotation.Transactional;
@@ -208,6 +209,47 @@
        return new ResultUtil<Object>().setData(map);
    }
    @RequestMapping(value = "/getTodayCount", method = RequestMethod.GET)
    @ApiOperation(value = "获取今日任务统计信息")
    public Result<Object> getAllNew(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("area_id", area.getId());
        wrapper2.eq("send_date", format);
        List<OrderTask> list = iOrderTaskService.list(wrapper2);
        int sum = iOrderTaskService.sum(area.getId(), format);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("count", list.size());
        map.put("sum", sum);
        map.put("name", "");
        map.put("sectons", null);
        if (list.size() > 0) {
            Area areaName = iAreaService.getById(list.get(0).getAreaId());
            List<String> temp = new ArrayList<>();
            List<AreaSection> areaSections = new ArrayList<>();
            for(int i=0;i<list.size();i++){
                if(!temp.contains(list.get(i).getAreaSectionId())){
                    AreaSection a = iAreaSectionService.getById(list.get(i).getAreaSectionId());
                    temp.add(a.getName());
                    areaSections.add(a);
                }
            }
            map.put("name", areaName + StringUtils.join(temp,"-"));
            map.put("sectons",areaSections);
            temp.clear();
            areaSections.clear();
            list.clear();
        }
        return new ResultUtil<Object>().setData(map);
    }
    @RequestMapping(value = "/getTodayOrder", method = RequestMethod.GET)
    @ApiOperation(value = "获取今日配送任务详情列表")
    public Result<List<OrderTask>> getTodayOrder(String sendTime) {
@@ -234,11 +276,12 @@
    @RequestMapping(value = "/getTodayOrderByHulue", method = RequestMethod.GET)
    @ApiOperation(value = "获取今日配送任务详情列表,忽略某订单,客户端专用接口")
    public Result<OrderListVo> getTodayOrderFromHulue(String orderId, String sendTime) {
    public Result<OrderListVo> getTodayOrderFromHulue(String orderId, String sendTime,String areaSectionId) {
        //忽略订单
        if (!StrUtil.isEmpty(orderId)) {
            OrderTask orderTask = iOrderTaskService.getById(orderId);
            orderTask.setSeq(1000);
            int seq = orderTask.getSeq();
            orderTask.setSeq(1000+seq);
            iOrderTaskService.saveOrUpdate(orderTask);
        }
        //获取订单列表
@@ -255,7 +298,10 @@
        //List<OrderTask> list = iOrderTaskService.list2(wrapper2);
        wrapper2.eq("area_id", area.getId());
        wrapper2.eq("send_date", format);
        wrapper2.orderByAsc("seq").orderByAsc("status");
        if(!StrUtil.isEmpty(areaSectionId)){
            wrapper2.eq("area_section_id", areaSectionId);
        }
        wrapper2.orderByAsc("area_section_id").orderByAsc("seq").orderByAsc("status");
        List<OrderTask> list = iOrderTaskService.list(wrapper2);
        int num = 0;
        for (OrderTask obj : list) {
@@ -285,6 +331,7 @@
            return 0+ "%";
        }
    }
    @RequestMapping(value = "/getOneMonthOrderPercent", method = RequestMethod.GET)
    @ApiOperation(value = "获取本月配送百分比")
    public Result<String> getMonthPercent(){
@@ -351,6 +398,53 @@
        return new ResultUtil<OrderTask>().setData(orderTask);
    }
    @RequestMapping(value = "/getTodayOrderDetailByAreaSection", method = RequestMethod.GET)
    @ApiOperation(value = "获取当前配送商户详情")
    public Result<OrderTask> getTodayOrderDetail(String orderId, String sendTime,String areaSectionId) {
        OrderTask orderTask = new OrderTask();
        if (!StrUtil.isEmpty(orderId)) {
            orderTask = iOrderTaskService.getById(orderId);
            if (orderTask.getStatus() != 0) {
                return ResultUtil.error("此商户已配送");
            }
        } else {
            Area area = getArea(securityUtil.getCurrUser().getId());
            if (area == null) {
                return ResultUtil.error("请联系管理员绑定该车辆");
            }
            QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
            String format = getFormatDate(sendTime);
            wrapper2.eq("area_id", area.getId());
            wrapper2.eq("send_date", format);
            wrapper2.eq("status", 0);
            if(!StrUtil.isEmpty(areaSectionId)){
                wrapper2.eq("area_section_Id", areaSectionId);
            }
            //wrapper2.orderByAsc("seq");
            PageVo page = new PageVo();
            page.setSort("seq");
            page.setOrder("asc");
            page.setPageSize(1);
            page.setPageNumber(0);
            List<OrderTask> list = iOrderTaskService.page(PageUtil.initMpPage(page), wrapper2).getRecords();
            //List<OrderTask> list = iOrderTaskService.list(wrapper2);
            if (list.size() > 0) {
                orderTask = list.get(0);
            } else {
                return new ResultUtil<OrderTask>().setData(null);
            }
        }
        orderTask.setCustomer(iCustomerService.getById(orderTask.getCustomerId()));
        QueryWrapper<OrderDetail> wrapper3 = new QueryWrapper<OrderDetail>();
        wrapper3.eq("order_id", orderTask.getId());
        orderTask.setOrderDetails(iOrderDetailService.list(wrapper3));
        return new ResultUtil<OrderTask>().setData(orderTask);
    }
    @RequestMapping(value = "/getTodayOtherInfo", method = RequestMethod.GET)
    @ApiOperation(value = "获取其它信息")
    public Result<Object> getTodayOtherInfo(String sendTime) {
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/SignCountController.java
@@ -100,4 +100,10 @@
        IPage<OrderStatusCount> data = this.iSignCountService.signCounts(orderStatusCount,queryRequest);
        return  new ResultUtil<IPage<OrderStatusCount>>().setData(data);
    }
    @GetMapping(value = "/selectBySignNew")
    public  Result<IPage<OrderStatusCount>> signCountsNew(OrderStatusCount orderStatusCount,QueryRequest queryRequest) {
        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/mapper/SignCountMapper.java
@@ -21,4 +21,8 @@
    IPage<OrderStatusCount> signCounts( @Param("bo")OrderStatusCount orderStatusCount, Page<OrderStatusCount> page);
    IPage<OrderStatusCount> signCount( @Param("bo")OrderStatusCount orderStatusCount,Page<OrderStatusCount> page);
    IPage<OrderStatusCount> signCountNew( @Param("bo")OrderStatusCount orderStatusCount,Page<OrderStatusCount> page);
    List<OrderStatusCount> signCountNewTotal( @Param("bo")OrderStatusCount orderStatusCount);
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ISignCountService.java
@@ -15,4 +15,5 @@
public interface ISignCountService extends IService<SignCount> {
    IPage<OrderStatusCount> signCounts(OrderStatusCount orderStatusCount, QueryRequest queryRequest);
    IPage<OrderStatusCount> signCountsNew(OrderStatusCount orderStatusCount, QueryRequest queryRequest);
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java
@@ -97,4 +97,32 @@
        }
        return this.signCountMapper.signCount(orderStatusCount,page);
    }
    @Override
    public IPage<OrderStatusCount> signCountsNew(OrderStatusCount orderStatusCount, QueryRequest queryRequest) {
        Page<OrderStatusCount> 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);
        }
        IPage<OrderStatusCount> orderStatusCountIPage = this.signCountMapper.signCountNew(orderStatusCount, page);
        List<OrderStatusCount> recordsAll = this.signCountMapper.signCountNewTotal(orderStatusCount);
        List<OrderStatusCount> records = orderStatusCountIPage.getRecords();
        for (int i=0;i<records.size();i++) {
            for (OrderStatusCount statusCountx: recordsAll) {
                if(records.get(i).getCarName().equals(statusCountx.getCarName())){
                    records.get(i).setSendMonth(statusCountx.getProportion());
                    break;
                }
            }
        }
       // List<OrderStatusCount> recordsLast = new ArrayList<>();
        orderStatusCountIPage.setRecords(records);
        return orderStatusCountIPage;
    }
}
xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml
@@ -132,4 +132,80 @@
        line ASC,
        send_date asc
    </select>
    <select id="signCountNew" resultType="cn.exrick.xboot.your.entity.OrderStatusCount">
        SELECT
        line,
        user_name as userName,
        car_name,SUM(sign_count) as signCount,
        SUM(amount) as amount,
        CONCAT_WS( '',( FORMAT((SUM( sign_count ) / SUM( amount )),4 ) *100), '%') as proportion,
        (CASE `batch` WHEN '01段' THEN batch ELSE 0 END) as 'oneBatch',
        (CASE `batch` WHEN '02段' THEN batch ELSE 0 END) as 'twoBatch',
        (CASE `batch` WHEN '03段' THEN batch ELSE 0 END) as 'threeBatch',
        (CASE `batch` WHEN '04段' THEN batch ELSE 0 END) as 'fourBatch',
        (CASE `batch` WHEN '05段' THEN batch ELSE 0 END) as 'fiveBatch'
        FROM
        t_sign
        <where>
            1=1
            <if test="bo.line != null and bo.line != ''" >
                AND  line = #{bo.line}
            </if>
            <if test="bo.carName != null and bo.carName != ''" >
                AND car_name like  CONCAT ('%',#{bo.carName},'%')
            </if>
            <if test="bo.batch != null and bo.batch != ''" >
                AND  batch = #{bo.batch}
            </if>
            <if test="bo.userName != null and bo.userName != ''" >
                AND  user_name = #{bo.userName}
            </if>
            <if test="bo.sendDate != null and bo.sendDate != ''">
                AND  DATE_FORMAT(send_date,'%Y-%m-%d') = #{bo.sendDate}
            </if>
            <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>
        </where>
        GROUP BY line,
        user_name,
        car_name,
        batch
    </select>
    <select id="signCountNewTotal" resultType="cn.exrick.xboot.your.entity.OrderStatusCount">
    SELECT
    car_name,
    CONCAT_WS( '',( FORMAT((SUM( sign_count ) / SUM( amount )),4 ) *100), '%') as proportion
    FROM
    t_sign
    <where>
        1=1
        <if test="bo.line != null and bo.line != ''" >
            AND  line = #{bo.line}
        </if>
        <if test="bo.carName != null and bo.carName != ''" >
            AND car_name like  CONCAT ('%',#{bo.carName},'%')
        </if>
        <if test="bo.batch != null and bo.batch != ''" >
            AND  batch = #{bo.batch}
        </if>
        <if test="bo.userName != null and bo.userName != ''" >
            AND  user_name = #{bo.userName}
        </if>
        <if test="bo.sendDate != null and bo.sendDate != ''">
            AND  DATE_FORMAT(send_date,'%Y-%m-%d') = #{bo.sendDate}
        </if>
        <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>
    </where>
    GROUP BY
    car_name
    </select>
</mapper>