diff --git a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/RescueInfoController.java b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/RescueInfoController.java index 53322fd2..02f8f66b 100644 --- a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/RescueInfoController.java +++ b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/RescueInfoController.java @@ -11,11 +11,12 @@ import cn.iocoder.yudao.module.rescue.domain.RescueInfo; import cn.iocoder.yudao.module.rescue.dto.DriverInfo2Dto; import cn.iocoder.yudao.module.rescue.dto.DriverInfoDto; import cn.iocoder.yudao.module.rescue.service.IRescueInfoService; +import cn.iocoder.yudao.module.rescue.vo.DriverReceiptStatVO; import cn.iocoder.yudao.module.rescue.vo.RescueCarStatRespVO; import cn.iocoder.yudao.module.rescue.vo.StatisticsStaffVO; -import cn.iocoder.yudao.module.staff.entity.CompanyStaff; +import cn.iocoder.yudao.module.rescue.vo.money.DriverSummaryDetailVO; +import cn.iocoder.yudao.module.rescue.vo.money.DriverSummaryVO; import cn.iocoder.yudao.module.staff.service.CompanyStaffService; -import cn.iocoder.yudao.module.staff.vo.CompanyStaffReqVO; import cn.iocoder.yudao.module.system.api.permission.PermissionApi; import cn.iocoder.yudao.module.system.api.permission.RoleApi; import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO; @@ -23,7 +24,6 @@ import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.apache.ibatis.annotations.Param; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -89,8 +89,8 @@ public class RescueInfoController extends BaseController { */ @GetMapping("/getRescueCarKPI") public CommonResult> getRescueCarKPI( - String driverCarNum,String startTime,String endTime,String channel,String secondDispatchName) { - List list = rescueInfoService.getRescueCarKPI(driverCarNum,startTime,endTime,channel,secondDispatchName); + String driverCarNum, String startTime, String endTime, String channel, String secondDispatchName) { + List list = rescueInfoService.getRescueCarKPI(driverCarNum, startTime, endTime, channel, secondDispatchName); return success(list); } @@ -148,8 +148,8 @@ public class RescueInfoController extends BaseController { @GetMapping("/getRescueRevokeList") public CommonResult getRescueRevokeList(RescueInfo rescueInfo, - @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { Page page = new Page<>(pageNum, pageSize); //获取当前登录用户 LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); @@ -314,6 +314,7 @@ public class RescueInfoController extends BaseController { List driverList = rescueInfoService.driverInMap(driverInfoDto); return success(driverList); } + @GetMapping("/secondDriverInMap") public CommonResult secondDriverInMap(DriverInfoDto driverInfoDto) { List driverList = rescueInfoService.secondDriverInMap(driverInfoDto); @@ -388,8 +389,8 @@ public class RescueInfoController extends BaseController { */ @GetMapping("/getHcList") public CommonResult getHcList(RescueInfo rescueInfo, - @RequestParam(value = "pageNum", defaultValue = "1")Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "10")Integer pageSize) { + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { Page page = new Page<>(pageNum, pageSize); IPage rescueInfos = rescueInfoService.getHcList(rescueInfo, page); return success(rescueInfos); @@ -399,12 +400,11 @@ public class RescueInfoController extends BaseController { * 获取扣车订单 */ @GetMapping("/statisticsInfo") - public CommonResult statisticsInfo(String type) { + public CommonResult statisticsInfo(String type) { return success(rescueInfoService.statisticsInfo(type)); } - @PostMapping("/toRepair") public CommonResult toRepair(@RequestBody RepairBookingRespVO repairBookingRespVO) { LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); @@ -449,14 +449,39 @@ public class RescueInfoController extends BaseController { return success(rescueInfoService.statisticsAllSecond(statisticsStaffReqVO)); } + /** + * 待收款明细统计 app端 + */ + @GetMapping("/moneySummary") + public CommonResult moneySummary(DriverSummaryVO driverSummaryVO) { + return success(rescueInfoService.moneySummary(driverSummaryVO)); + } + + /** + * 明细详情 app端 + */ + @GetMapping("/moneySummaryDetail") + public CommonResult moneySummaryDetail(DriverSummaryDetailVO driverSummaryDetailVO) { + return success(rescueInfoService.moneySummaryDetail(driverSummaryDetailVO)); + } + + /** + * 司机收款统计(汇总 + 渠道明细)PC端 + */ + @GetMapping("/getRescueStatisticsInfoByDriver") + public CommonResult getRescueStatisticsInfoByDriver(DriverReceiptStatVO query) { + // query 里包含时间区间 / 司机姓名等筛选条件 + return CommonResult.success(rescueInfoService.getRescueStatisticsInfoByDriver(query)); + } + /** * App首页数据统计工单列表数据 */ @GetMapping("/getRescueStatisticsInfoList") public CommonResult getRescueStatisticsInfoList(RescueInfo rescueInfo, - @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { Page page = new Page<>(pageNum, pageSize); //获取当前登录用户 LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); diff --git a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/mapper/RescueInfoMapper.java b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/mapper/RescueInfoMapper.java index 8eb1351a..29ca174e 100644 --- a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/mapper/RescueInfoMapper.java +++ b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/mapper/RescueInfoMapper.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.rescue.domain.RescueInfo; import cn.iocoder.yudao.module.rescue.dto.DriverInfo2Dto; import cn.iocoder.yudao.module.rescue.dto.DriverInfoDto; import cn.iocoder.yudao.module.rescue.vo.*; +import cn.iocoder.yudao.module.rescue.vo.money.DriverSummaryDetailVO; +import cn.iocoder.yudao.module.rescue.vo.money.DriverSummaryVO; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -143,4 +145,11 @@ public interface RescueInfoMapper extends BaseMapper @Param("secondDispatchName") String secondDispatchName ); + List selectDriverReceiptStats(DriverReceiptStatVO query); + + List selectChannelReceiptStats(DriverReceiptStatVO query); + + List moneySummary(DriverSummaryVO driverSummaryVO); + + List moneySummaryDetail(DriverSummaryDetailVO driverSummaryDetailVO); } diff --git a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/IRescueInfoService.java b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/IRescueInfoService.java index 0ffb8bb7..8716a50b 100644 --- a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/IRescueInfoService.java +++ b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/IRescueInfoService.java @@ -8,6 +8,8 @@ import cn.iocoder.yudao.module.rescue.domain.RescueInfo; import cn.iocoder.yudao.module.rescue.dto.DriverInfo2Dto; import cn.iocoder.yudao.module.rescue.dto.DriverInfoDto; import cn.iocoder.yudao.module.rescue.vo.*; +import cn.iocoder.yudao.module.rescue.vo.money.DriverSummaryDetailVO; +import cn.iocoder.yudao.module.rescue.vo.money.DriverSummaryVO; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -215,4 +217,10 @@ public interface IRescueInfoService extends IService List getRescueCarAgeAndMileage(); List getRescueCarKPI(String driverCarNum,String startTime,String endTime,String channel,String secondDispatchName); + + List getRescueStatisticsInfoByDriver(DriverReceiptStatVO query); + + List moneySummary(DriverSummaryVO driverSummaryVO); + + List moneySummaryDetail(DriverSummaryDetailVO driverSummaryDetailVO); } diff --git a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/impl/RescueBusinessStatisticsServiceImpl.java b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/impl/RescueBusinessStatisticsServiceImpl.java index 4dbd081a..54615af7 100644 --- a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/impl/RescueBusinessStatisticsServiceImpl.java +++ b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/impl/RescueBusinessStatisticsServiceImpl.java @@ -136,7 +136,8 @@ public class RescueBusinessStatisticsServiceImpl implements RescueBusinessStatis .collect(Collectors.toList()); // 3. 批量翻译 - Map dict = dictDataService.getDictDataLabels("jyc_type", codes); +// Map dict = dictDataService.getDictDataLabels("jyc_type", codes); + Map dict = dictDataService.getDictDataLabels("rescue_car_type", codes); // 4. 设置中文,并兜底空值 items.forEach(i -> { diff --git a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/impl/RescueInfoServiceImpl.java b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/impl/RescueInfoServiceImpl.java index b17fd8fc..d0526add 100644 --- a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/impl/RescueInfoServiceImpl.java +++ b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/service/impl/RescueInfoServiceImpl.java @@ -27,6 +27,8 @@ import cn.iocoder.yudao.module.rescue.utils.RedisUtil; import cn.iocoder.yudao.module.rescue.utils.RedissonDelayQueue; import cn.iocoder.yudao.module.rescue.utils.StringUtils; import cn.iocoder.yudao.module.rescue.vo.*; +import cn.iocoder.yudao.module.rescue.vo.money.DriverSummaryDetailVO; +import cn.iocoder.yudao.module.rescue.vo.money.DriverSummaryVO; import cn.iocoder.yudao.module.staff.entity.CompanyStaff; import cn.iocoder.yudao.module.staff.service.CompanyStaffService; import cn.iocoder.yudao.module.staff.vo.CompanyStaffRespVO; @@ -60,6 +62,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.*; @@ -3108,6 +3111,111 @@ public class RescueInfoServiceImpl extends ServiceImpl getRescueStatisticsInfoByDriver(DriverReceiptStatVO query) { + String startTime = ""; + String endTime = ""; + if ("more".equals(query.getTimeType())) { + if (org.apache.commons.lang3.StringUtils.isNotEmpty(query.getStartTimeStr())) { + startTime = query.getStartTimeStr() + " 00:00:00"; + } + if (org.apache.commons.lang3.StringUtils.isNotEmpty(query.getEndTimeStr())) { + endTime = query.getEndTimeStr() + " 23:59:59"; + } + } else if ("month".equals(query.getTimeType())) { + //当月 + startTime = DateUtil.format(DateUtil.beginOfMonth(DateUtil.date()), "yyyy-MM-dd") + " 00:00:00"; + endTime = DateUtil.format(DateUtil.endOfMonth(DateUtil.date()), "yyyy-MM-dd") + " 23:59:59"; + } else if ("day".equals(query.getTimeType())) { + //当天 + startTime = DateUtil.formatDate(DateUtil.date()) + " 00:00:00"; + endTime = DateUtil.formatDate(DateUtil.date()) + " 23:59:59"; + }else if ("year".equals(query.getTimeType())) { + // 当年 + startTime = DateUtil.format(DateUtil.beginOfYear(DateUtil.date()), "yyyy-MM-dd") + " 00:00:00"; + endTime = DateUtil.format(DateUtil.endOfYear(DateUtil.date()), "yyyy-MM-dd") + " 23:59:59"; + } + query.setStartTimeStr(startTime); + query.setEndTimeStr(endTime); + + // ① 先查司机层汇总 + List drivers = baseMapper.selectDriverReceiptStats(query); + + if (CollectionUtils.isEmpty(drivers)) { + return drivers; + } + + // ② 再为每个司机查渠道明细 + return drivers.stream().peek(d -> { + DriverReceiptStatVO param = new DriverReceiptStatVO(); + param.setDriverName(d.getDriverName()); + param.setStartTimeStr(query.getStartTimeStr()); + param.setEndTimeStr(query.getEndTimeStr()); + List channels = baseMapper.selectChannelReceiptStats(param); + d.setChannels(channels); + }).collect(Collectors.toList()); + + } + + @Override + public List moneySummary(DriverSummaryVO driverSummaryVO) { + String startTime = ""; + String endTime = ""; + if ("more".equals(driverSummaryVO.getTimeType())) { + if (org.apache.commons.lang3.StringUtils.isNotEmpty(driverSummaryVO.getStartTimeStr())) { + startTime = driverSummaryVO.getStartTimeStr() + " 00:00:00"; + } + if (org.apache.commons.lang3.StringUtils.isNotEmpty(driverSummaryVO.getEndTimeStr())) { + endTime = driverSummaryVO.getEndTimeStr() + " 23:59:59"; + } + } else if ("month".equals(driverSummaryVO.getTimeType())) { + //当月 + startTime = DateUtil.format(DateUtil.beginOfMonth(DateUtil.date()), "yyyy-MM-dd") + " 00:00:00"; + endTime = DateUtil.format(DateUtil.endOfMonth(DateUtil.date()), "yyyy-MM-dd") + " 23:59:59"; + } else if ("day".equals(driverSummaryVO.getTimeType())) { + //当天 + startTime = DateUtil.formatDate(DateUtil.date()) + " 00:00:00"; + endTime = DateUtil.formatDate(DateUtil.date()) + " 23:59:59"; + }else if ("year".equals(driverSummaryVO.getTimeType())) { + // 当年 + startTime = DateUtil.format(DateUtil.beginOfYear(DateUtil.date()), "yyyy-MM-dd") + " 00:00:00"; + endTime = DateUtil.format(DateUtil.endOfYear(DateUtil.date()), "yyyy-MM-dd") + " 23:59:59"; + } + driverSummaryVO.setStartTimeStr(startTime); + driverSummaryVO.setEndTimeStr(endTime); + + return baseMapper.moneySummary(driverSummaryVO); + } + + @Override + public List moneySummaryDetail(DriverSummaryDetailVO driverSummaryDetailVO) { + String startTime = ""; + String endTime = ""; + if ("more".equals(driverSummaryDetailVO.getTimeType())) { + if (org.apache.commons.lang3.StringUtils.isNotEmpty(driverSummaryDetailVO.getStartTimeStr())) { + startTime = driverSummaryDetailVO.getStartTimeStr() + " 00:00:00"; + } + if (org.apache.commons.lang3.StringUtils.isNotEmpty(driverSummaryDetailVO.getEndTimeStr())) { + endTime = driverSummaryDetailVO.getEndTimeStr() + " 23:59:59"; + } + } else if ("month".equals(driverSummaryDetailVO.getTimeType())) { + //当月 + startTime = DateUtil.format(DateUtil.beginOfMonth(DateUtil.date()), "yyyy-MM-dd") + " 00:00:00"; + endTime = DateUtil.format(DateUtil.endOfMonth(DateUtil.date()), "yyyy-MM-dd") + " 23:59:59"; + } else if ("day".equals(driverSummaryDetailVO.getTimeType())) { + //当天 + startTime = DateUtil.formatDate(DateUtil.date()) + " 00:00:00"; + endTime = DateUtil.formatDate(DateUtil.date()) + " 23:59:59"; + }else if ("year".equals(driverSummaryDetailVO.getTimeType())) { + // 当年 + startTime = DateUtil.format(DateUtil.beginOfYear(DateUtil.date()), "yyyy-MM-dd") + " 00:00:00"; + endTime = DateUtil.format(DateUtil.endOfYear(DateUtil.date()), "yyyy-MM-dd") + " 23:59:59"; + } + driverSummaryDetailVO.setStartTimeStr(startTime); + driverSummaryDetailVO.setEndTimeStr(endTime); + return baseMapper.moneySummaryDetail(driverSummaryDetailVO); + } + public List driverStatisticsSecond(StatisticsStaffVO statisticsStaffReqVO) { return baseMapper.driverStatisticsSecond(statisticsStaffReqVO); diff --git a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/ChannelReceiptStatVO.java b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/ChannelReceiptStatVO.java new file mode 100644 index 00000000..97ced5c8 --- /dev/null +++ b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/ChannelReceiptStatVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.rescue.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 司机收款统计 - 渠道明细 VO + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ChannelReceiptStatVO { + + /** 渠道名称(空或 NULL 统一映射成“未知渠道”) */ + private String channel; + + /** 救援单总数 */ + private Integer orderCount; + + /** 应收金额(元) */ + private BigDecimal yingskNum; + /** 应收单数 */ + private Integer yingskNumOrderCount; + + /** 已收金额(元) */ + private BigDecimal yiskNum; + /** 已收单数 */ + private Integer yiskNumOrderCount; + + /** 待收金额(元) */ + private BigDecimal dskNum; + /** 待收单数 */ + private Integer dskNumOrderCount; +} diff --git a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/DriverReceiptStatVO.java b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/DriverReceiptStatVO.java new file mode 100644 index 00000000..888480b8 --- /dev/null +++ b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/DriverReceiptStatVO.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.rescue.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 司机收款统计 - 司机汇总 VO + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DriverReceiptStatVO { + /** 司机主键 ID */ + private Long driverId; + + /** 司机姓名 */ + private String driverName; + private String driverType; + + /** 应收金额(元) */ + private BigDecimal yingskNum; + /** 应收单数 */ + private Integer yingskNumOrderCount; + + /** 已收金额(元) */ + private BigDecimal yiskNum; + /** 已收单数 */ + private Integer yiskNumOrderCount; + + /** 待收金额(元) */ + private BigDecimal dskNum; + /** 待收单数 */ + private Integer dskNumOrderCount; + + /** ↓↓↓ 渠道明细列表,可为空 */ + private List channels; + + /** + * 筛选时间类型 + */ + @TableField(exist = false) + private String timeType; + + /** + * 筛选开始时间 + */ + @TableField(exist = false) + private String startTimeStr; + + /** + * 筛选结束时间 + */ + @TableField(exist = false) + private String endTimeStr; +} diff --git a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/money/DriverSummaryDetailVO.java b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/money/DriverSummaryDetailVO.java new file mode 100644 index 00000000..021f522a --- /dev/null +++ b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/money/DriverSummaryDetailVO.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.rescue.vo.money; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDate; + +@Data +public class DriverSummaryDetailVO { + /** 司机姓名(冗余,方便前端展示) */ + private String driverName; + private String secondDispatchName; + private String toScene; + private String toRepair; + private String source; + private String faultType; + private String rescuePosition; + private String carBrand; + private String carType; + private String estimateDownCar; + private String ifNewEnergy; + private String rescueType; + private String feeType; + private String isKouChe; + private String transferReason; + private String driverCarNum; + + /** 客户车牌 */ + private String licenseNum; + + /** 救援日期(仅日期即可;如需时分秒可改 LocalDateTime) */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate rescueTime; + + /** 应收款 */ + private BigDecimal setMoney; + + /** 渠道(例:沪渝高速) */ + private String channel; + /** 救援状态 */ + private String rescueStatus; + + /** 筛选时间类型*/ + private String timeType; + + /** 筛选开始时间 */ + @TableField(exist = false) + private String startTimeStr; + + /** 筛选结束时间 */ + @TableField(exist = false) + private String endTimeStr; +} diff --git a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/money/DriverSummaryVO.java b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/money/DriverSummaryVO.java new file mode 100644 index 00000000..039b1bd1 --- /dev/null +++ b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/vo/money/DriverSummaryVO.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.rescue.vo.money; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class DriverSummaryVO { + /** 司机姓名 */ + private String driverName; + private String secondDispatchName; + private String driverCarNum; + private String toScene; + private String toRepair; + private String channel; + private String source; + private String faultType; + private String rescuePosition; + private String carBrand; + private String carType; + private String estimateDownCar; + private String ifNewEnergy; + private String rescueType; + private String feeType; + private String isKouChe; + private String transferReason; + + private Integer dqcNum; + + /** 应收金额(元) */ + private BigDecimal yingskNum; + /** 应收单数 */ + private Integer yingskNumOrderCount; + + /** 已收金额(元) */ + private BigDecimal yiskNum; + /** 已收单数 */ + private Integer yiskNumOrderCount; + + /** 待收金额(元) */ + private BigDecimal dskNum; + /** 待收单数 */ + private Integer dskNumOrderCount; + + /** 该司机救援数量 */ + private Integer rescueNum; + /** 救援状态 */ + private String rescueStatus; + + /** 筛选时间类型*/ + private String timeType; + + /** 筛选开始时间 */ + private String startTimeStr; + + /** 筛选结束时间 */ + private String endTimeStr; +} diff --git a/dl-module-rescue/src/main/resources/mapper/rescue/RescueInfoMapper.xml b/dl-module-rescue/src/main/resources/mapper/rescue/RescueInfoMapper.xml index c8c79f3a..c37465c8 100644 --- a/dl-module-rescue/src/main/resources/mapper/rescue/RescueInfoMapper.xml +++ b/dl-module-rescue/src/main/resources/mapper/rescue/RescueInfoMapper.xml @@ -26,7 +26,8 @@ - and (ri.rescue_status = '1' or ri.rescue_status = '2' or ri.rescue_status = '3' or ri.rescue_status = '4') + and (ri.rescue_status = '1' or ri.rescue_status = '2' or ri.rescue_status = '3' or + ri.rescue_status = '4') @@ -66,9 +67,9 @@ - + and (ri.license_num like concat('%', #{map.licenseNum}, '%') or ri.connection_phone like concat('%', #{map.licenseNum}, '%') @@ -133,14 +134,14 @@ AND EXISTS ( - SELECT 1 - FROM rescue_info_detail rd - WHERE rd.rescue_info_id = ri.id AND rd.deleted = '0' - AND rd.title = '车辆移交' - AND rd.auto_remark LIKE '%移交事由:%' - AND TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX( - rd.auto_remark, '移交事由:', -1), ',', 1)) - = #{map.transferReason} + SELECT 1 + FROM rescue_info_detail rd + WHERE rd.rescue_info_id = ri.id AND rd.deleted = '0' + AND rd.title = '车辆移交' + AND rd.auto_remark LIKE '%移交事由:%' + AND TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX( + rd.auto_remark, '移交事由:', -1), ',', 1)) + = #{map.transferReason} ) @@ -171,7 +172,8 @@ - and (ri.rescue_status = '1' or ri.rescue_status = '2' or ri.rescue_status = '3' or ri.rescue_status = '4') + and (ri.rescue_status = '1' or ri.rescue_status = '2' or ri.rescue_status = '3' or + ri.rescue_status = '4') @@ -187,7 +189,7 @@ --- and roi.order_status = '3' + -- and roi.order_status = '3' and (ri.rescue_status = '5' or ri.rescue_status = '8' or roi.order_status = '3') @@ -276,7 +278,8 @@ order by ri.create_time desc - SELECT ri.*, - roi.order_status, - roi.set_money, - roi.id as rescueOrderId, - roi.pay_type, - roi.pay_money, - roi.pay_time, - roi.order_signing_person_name, - roi.order_signing_charge_name, - roi.order_signing_remark, - roi.if_confirm_pay, - roi.confirm_payment_person_name, - roi.confirm_payment_time, - roi.confirm_payment_person_remark + roi.order_status, + roi.set_money, + roi.id as rescueOrderId, + roi.pay_type, + roi.pay_money, + roi.pay_time, + roi.order_signing_person_name, + roi.order_signing_charge_name, + roi.order_signing_remark, + roi.if_confirm_pay, + roi.confirm_payment_person_name, + roi.confirm_payment_time, + roi.confirm_payment_person_remark FROM rescue_info ri - left join rescue_order_info roi on roi.rescue_info_id = ri.id - where ri.deleted = '0' AND ri.is_revoke = '0' and ri.id = #{id} + left join rescue_order_info roi on roi.rescue_info_id = ri.id + where ri.deleted = '0' + AND ri.is_revoke = '0' + and ri.id = #{id} order by ri.create_time desc @@ -615,8 +620,8 @@ INNER JOIN system_users su ON di.user_id = su.id AND su.deleted = '0' WHERE 1 = 1 - AND di.deleted = '0' - AND di.staff_type = 'jysj' + AND di.deleted = '0' + AND di.staff_type = 'jysj' and su.nickname like concat('%', #{map.nickName}, '%') @@ -716,11 +721,13 @@ rdcr.driver_id, COALESCE( MAX(CASE WHEN rdcr.is_primary = 1 THEN rci.rescue_car_num END), - SUBSTRING_INDEX(GROUP_CONCAT(rci.rescue_car_num ORDER BY rdcr.is_primary DESC, rdcr.create_time SEPARATOR ','), ',', 1) + SUBSTRING_INDEX(GROUP_CONCAT(rci.rescue_car_num ORDER BY rdcr.is_primary DESC, rdcr.create_time SEPARATOR ','), + ',', 1) ) as rescue_car_num, COALESCE( MAX(CASE WHEN rdcr.is_primary = 1 THEN rci.car_category END), - SUBSTRING_INDEX(GROUP_CONCAT(rci.car_category ORDER BY rdcr.is_primary DESC, rdcr.create_time SEPARATOR ','), ',', 1) + SUBSTRING_INDEX(GROUP_CONCAT(rci.car_category ORDER BY rdcr.is_primary DESC, rdcr.create_time SEPARATOR ','), + ',', 1) ) as driver_car_category FROM rescue_driver_car_relation rdcr @@ -826,11 +833,13 @@ rdcr.driver_id, COALESCE( MAX(CASE WHEN rdcr.is_primary = 1 THEN rci.rescue_car_num END), - SUBSTRING_INDEX(GROUP_CONCAT(rci.rescue_car_num ORDER BY rdcr.is_primary DESC, rdcr.create_time SEPARATOR ','), ',', 1) + SUBSTRING_INDEX(GROUP_CONCAT(rci.rescue_car_num ORDER BY rdcr.is_primary DESC, rdcr.create_time SEPARATOR ','), + ',', 1) ) as rescue_car_num, COALESCE( MAX(CASE WHEN rdcr.is_primary = 1 THEN rci.car_category END), - SUBSTRING_INDEX(GROUP_CONCAT(rci.car_category ORDER BY rdcr.is_primary DESC, rdcr.create_time SEPARATOR ','), ',', 1) + SUBSTRING_INDEX(GROUP_CONCAT(rci.car_category ORDER BY rdcr.is_primary DESC, rdcr.create_time SEPARATOR ','), + ',', 1) ) as driver_car_category FROM rescue_driver_car_relation rdcr @@ -860,7 +869,6 @@ - - update rescue_info set is_revoke = 1,revoke_user_id = #{userId},revoke_user_name = #{userName}, revoke_time = #{time} where id = #{id} + update rescue_info + set is_revoke = 1, + revoke_user_id = #{userId}, + revoke_user_name = #{userName}, + revoke_time = #{time} + where id = #{id} update rescue_order_info @@ -1199,28 +1212,28 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT ri.*, roi.order_status, @@ -1529,7 +1544,8 @@ order by ri.create_time desc - SELECT IFNULL(sum(ri.rescue_status = '3' or ri.rescue_status = '4'), 0) as jyzNum, IFNULL(sum(roi.order_status = '1'), 0) as dzfNum, @@ -1632,7 +1648,8 @@ - SELECT IFNULL(sum(ri.rescue_status = '3' or ri.rescue_status = '4'), 0) as jyzNum, IFNULL(sum(roi.order_status = '1'), 0) as dzfNum, @@ -1736,7 +1753,6 @@ - @@ -1836,17 +1852,17 @@ r.deleted = 0 AND r.is_revoke = 0 AND u.id IN ( - SELECT user_id - FROM system_user_role sur - WHERE sur.tenant_id = #{vo.tenantId} - AND sur.deleted = 0 - AND sur.role_id = ( - SELECT id FROM system_role WHERE `code` = 'second_dispatcher' AND tenant_id = #{vo.tenantId} AND deleted = 0 - ) - AND sur.role_id = ( - SELECT id FROM system_role WHERE `code` = 'second_dispatcher' - AND tenant_id = #{vo.tenantId} AND deleted = 0 - ) + SELECT user_id + FROM system_user_role sur + WHERE sur.tenant_id = #{vo.tenantId} + AND sur.deleted = 0 + AND sur.role_id = ( + SELECT id FROM system_role WHERE `code` = 'second_dispatcher' AND tenant_id = #{vo.tenantId} AND deleted = 0 + ) + AND sur.role_id = ( + SELECT id FROM system_role WHERE `code` = 'second_dispatcher' + AND tenant_id = #{vo.tenantId} AND deleted = 0 + ) ) AND r.rescue_time >= #{vo.startTimeStr} @@ -1863,68 +1879,68 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +