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