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 <= #{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 <= #{bo.sendDateEnd} </if> </where> GROUP BY car_name </select> </mapper>