From f88e38dda262f8fb937ea4030e2bc8232d4126f2 Mon Sep 17 00:00:00 2001 From: wjli <591616088@qq.com> Date: 星期一, 15 五月 2023 14:27:10 +0800 Subject: [PATCH] 1.司机和配送员统计信息合一 2.修改签收率统计信息接口 3.修改签收数据导出接口 --- xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/SignCountController.java | 4 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java | 48 +++++++++++ xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/UserStatisticController.java | 59 ++++++++++++++ xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/SignCountMapper.java | 2 xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml | 100 +++++++++++++++++++++++++ xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ISignCountService.java | 1 6 files changed, 211 insertions(+), 3 deletions(-) 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 a3de4c6..bce41af 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 @@ -83,8 +83,8 @@ @GetMapping("/outExcels") @ApiOperation(value = "瀵煎嚭绛炬敹缁熻淇℃伅琛�", notes = "瀵煎嚭绛炬敹缁熻淇℃伅琛�") - public void export1(OrderStatusCount orderStatusCount, HttpServletResponse response,QueryRequest queryRequest) throws IOException { - List<OrderStatusCount> orderStatus = this.iSignCountService.signCounts(orderStatusCount,queryRequest).getRecords(); + public void export1(OrderStatusCount orderStatusCount, HttpServletResponse response) throws IOException { + List<OrderStatusCount> orderStatus = this.iSignCountService.signCounts2New(orderStatusCount); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode("绛炬敹鏁伴噺缁熻鎶ヨ〃", "UTF-8"); diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/UserStatisticController.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/UserStatisticController.java index c5a00b1..5330150 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/UserStatisticController.java +++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/UserStatisticController.java @@ -4,11 +4,15 @@ 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.core.entity.User; +import cn.exrick.xboot.your.entity.Car; import cn.exrick.xboot.your.entity.UserStatistic; +import cn.exrick.xboot.your.service.ICarService; import cn.exrick.xboot.your.service.IUserStatisticService; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -31,6 +35,9 @@ @Autowired private IUserStatisticService iUserStatisticService; + @Autowired + private ICarService iCarService; + @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) @ApiOperation(value = "閫氳繃id鑾峰彇") public Result<UserStatistic> get(@PathVariable String id) { @@ -51,6 +58,58 @@ return new ResultUtil<UserStatistic>().setData(userStatistic); } + @RequestMapping(value = "/getAllByUserId", method = RequestMethod.GET) + @ApiOperation(value = "閫氳繃鐢ㄦ埛id鑾峰彇缁熻淇℃伅") + public Result<UserStatistic> getStatisticByUserId(String userId,int type) { + UserStatistic userStatistic0 = getById(userId); + String otherId = getOtherIdFromCar(userId,type); + UserStatistic userStatistic1 = getById(otherId); + if(type==0){//椹鹃┒鍛� + userStatistic0.setSends(userStatistic1.getSends()); + userStatistic0.setService(userStatistic1.getService()); + userStatistic0.setSends2(userStatistic1.getSends2()); + userStatistic0.setAbnormalOpen(userStatistic1.getAbnormalOpen()); + userStatistic0.setLikesRate(userStatistic1.getLikesRate()); + }else{//閰嶉�佸憳 + userStatistic0.setSafeDriving(userStatistic1.getSafeDriving()); + userStatistic0.setOutCar(userStatistic1.getOutCar()); + userStatistic0.setDriving(userStatistic1.getDriving()); + userStatistic0.setFatigueDriving(userStatistic1.getFatigueDriving()); + userStatistic0.setSmoking(userStatistic1.getSmoking()); + userStatistic0.setNoBelt(userStatistic1.getNoBelt()); + userStatistic0.setLikes(userStatistic1.getLikes()); + } + return new ResultUtil<UserStatistic>().setData(userStatistic0); + } + + public UserStatistic getById(String userId){ + QueryWrapper<UserStatistic> wrapper = new QueryWrapper<>(); + wrapper.eq("user_id",userId); + UserStatistic userStatistic = iUserStatisticService.getOne(wrapper); + if(userStatistic==null){ + userStatistic = new UserStatistic(); + } + return userStatistic; + } + + public String getOtherIdFromCar(String userId,int type){ + QueryWrapper<Car> wrapper = new QueryWrapper<>(); + if(type==0){ + wrapper.eq("user_id",userId); + Car myCar = iCarService.getOne(wrapper); + if(myCar!=null){ + return myCar.getFollowUserId(); + } + }else if(type==1){ + wrapper.eq("follow_user_id",userId); + Car myCar = iCarService.getOne(wrapper); + if(myCar!=null){ + return myCar.getUserId(); + } + } + return null; + } + @RequestMapping(value = "/getAll", method = RequestMethod.GET) @ApiOperation(value = "鑾峰彇鍏ㄩ儴鏁版嵁") public Result<List<UserStatistic>> getAll() { 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 55faebe..dd4b2fc 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 @@ -22,6 +22,8 @@ IPage<OrderStatusCount> signCount( @Param("bo")OrderStatusCount orderStatusCount,Page<OrderStatusCount> page); + List<OrderStatusCount> signCount2New( @Param("bo")OrderStatusCount orderStatusCount); + 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 20aacab..f3461e4 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,5 +15,6 @@ public interface ISignCountService extends IService<SignCount> { IPage<OrderStatusCount> signCounts(OrderStatusCount orderStatusCount, QueryRequest queryRequest); + List<OrderStatusCount> signCounts2New(OrderStatusCount orderStatusCount); 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 53a02f4..74f3c25 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 @@ -99,6 +99,37 @@ } @Override + public List<OrderStatusCount> signCounts2New(OrderStatusCount orderStatusCount) { + List<OrderStatusCount> records = this.signCountMapper.signCount2New(orderStatusCount); + List<OrderStatusCount> recordsAll = this.signCountMapper.signCountNewTotal(orderStatusCount); + 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; + } + } + //"oneBatch":"01娈�","twoBatch":"0","threeBatch":"0","fourBatch":"0","fiveBatch":"0" + if("0".equals(records.get(i).getOneBatch())){ + records.get(i).setOneBatch(null); + } + if("0".equals(records.get(i).getTwoBatch())){ + records.get(i).setTwoBatch(null); + } + if("0".equals(records.get(i).getThreeBatch())){ + records.get(i).setThreeBatch(null); + } + if("0".equals(records.get(i).getFourBatch())){ + records.get(i).setFourBatch(null); + } + if("0".equals(records.get(i).getFiveBatch())){ + records.get(i).setFiveBatch(null); + } + } + return records; + } + + @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)) { @@ -108,7 +139,6 @@ 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(); @@ -120,6 +150,22 @@ break; } } + //"oneBatch":"01娈�","twoBatch":"0","threeBatch":"0","fourBatch":"0","fiveBatch":"0" + if("0".equals(records.get(i).getOneBatch())){ + records.get(i).setOneBatch(null); + } + if("0".equals(records.get(i).getTwoBatch())){ + records.get(i).setTwoBatch(null); + } + if("0".equals(records.get(i).getThreeBatch())){ + records.get(i).setThreeBatch(null); + } + if("0".equals(records.get(i).getFourBatch())){ + records.get(i).setFourBatch(null); + } + if("0".equals(records.get(i).getFiveBatch())){ + records.get(i).setFiveBatch(null); + } } // List<OrderStatusCount> recordsLast = new ArrayList<>(); orderStatusCountIPage.setRecords(records); 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 e5cb986..7d4e14f 100644 --- a/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml +++ b/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml @@ -132,6 +132,63 @@ line ASC, send_date asc </select> + + <select id="signCount" resultType="cn.exrick.xboot.your.entity.OrderStatusCount"> + + SELECT + CONCAT_WS('',YEAR(send_date),'骞�',MONTH(send_date),'鏈�')sendMonth, + DATE(DATE_FORMAT(send_date,'%Y-%m-%d') ) sendDate, + car_name, + batch, + SUM( amount ) amount, + SUM( abnormal_sign ) as abnormalSign, + SUM( not_sign_count ) as notSignCount, + SUM( sign_count ) as signCount , + 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', + user_name as userName, + line + 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, + send_date, + batch, + user_name, + line + ORDER BY + line ASC, + send_date asc + </select> + <select id="signCountNew" resultType="cn.exrick.xboot.your.entity.OrderStatusCount"> SELECT line, @@ -175,6 +232,49 @@ car_name, batch </select> + <select id="signCount2New" 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, -- Gitblit v1.9.1