From a067fdbf6b1374a1402096c722257575916eab99 Mon Sep 17 00:00:00 2001 From: wjli <591616088@qq.com> Date: 星期四, 11 五月 2023 16:21:14 +0800 Subject: [PATCH] 1.首页分段显示 2.配送订单页可根据分段显示 3.后端配送率统计 --- xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/SignCountController.java | 6 + xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java | 100 ++++++++++++++++++++++++ xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java | 28 +++++++ xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/SignCountMapper.java | 4 + xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml | 76 +++++++++++++++++++ xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ISignCountService.java | 1 6 files changed, 212 insertions(+), 3 deletions(-) diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java index 9d7d3a8..ac9f147 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java +++ b/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) { diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/SignCountController.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/SignCountController.java index 43f2a49..a3de4c6 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/SignCountController.java +++ b/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); + } } diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/SignCountMapper.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/SignCountMapper.java index 4910535..55faebe 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/SignCountMapper.java +++ b/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); } diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ISignCountService.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ISignCountService.java index 3697e83..20aacab 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ISignCountService.java +++ b/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); } \ No newline at end of file diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java index c8640f4..53a02f4 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java +++ b/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; + } } diff --git a/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml b/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml index ea85e3e..e5cb986 100644 --- a/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml +++ b/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> -- Gitblit v1.9.1