更新统计相关内容
This commit is contained in:
parent
a82544241f
commit
23f81a3911
@ -290,7 +290,7 @@ public class RepairStatisticsController {
|
||||
public CommonResult<?> procurementOrPickingStatistics(QueryBusinessReqVO reqVO) {
|
||||
return CommonResult.success(statisticsService.procurementOrPickingStatistics(reqVO));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description :整车配件完成率统计
|
||||
* @author AI
|
||||
@ -303,4 +303,16 @@ public class RepairStatisticsController {
|
||||
return CommonResult.success(statisticsService.vehiclesAccessoriesCompletionRate(reqVO));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description :配件列表申请统计
|
||||
* @author xyc
|
||||
* @date 10:46 2025/10/31
|
||||
* @param reqVO {@link QueryBusinessReqVO}
|
||||
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||
**/
|
||||
@GetMapping("/accessoriesRequestListStatistics")
|
||||
public CommonResult<?> accessoriesRequestListStatistics(QueryBusinessReqVO reqVO) {
|
||||
return CommonResult.success(statisticsService.accessoriesRequestListStatistics(reqVO));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -206,4 +206,13 @@ public interface RepairStatisticsMapper {
|
||||
* @return java.util.Map<java.lang.String, java.lang.Object>
|
||||
**/
|
||||
List<Map<String, Object>> vehiclesAccessoriesCompletionRate(QueryBusinessReqVO reqVO);
|
||||
|
||||
/**
|
||||
* @description // TODO: 配件详情统计
|
||||
* @author lf
|
||||
* @date 10:57 2025/10/31
|
||||
* @param reqVO
|
||||
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
|
||||
**/
|
||||
List<Map<String, Object>> accessoriesRequestListStatistics(QueryBusinessReqVO reqVO);
|
||||
}
|
||||
|
||||
@ -199,4 +199,13 @@ public interface RepairStatisticsService {
|
||||
* @return java.util.Map<java.lang.String, java.lang.Object>
|
||||
**/
|
||||
List<Map<String, Object>> vehiclesAccessoriesCompletionRate(QueryBusinessReqVO reqVO);
|
||||
|
||||
/**
|
||||
* @description // TODO: 配件详情统计
|
||||
* @author lf
|
||||
* @date 10:56 2025/10/31
|
||||
* @param reqVO
|
||||
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
|
||||
**/
|
||||
List<Map<String, Object>> accessoriesRequestListStatistics(QueryBusinessReqVO reqVO);
|
||||
}
|
||||
|
||||
@ -369,4 +369,16 @@ public class RepairStatisticsServiceImpl implements RepairStatisticsService {
|
||||
public List<Map<String, Object>> vehiclesAccessoriesCompletionRate(QueryBusinessReqVO reqVO) {
|
||||
return statisticsMapper.vehiclesAccessoriesCompletionRate(reqVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param reqVO
|
||||
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
|
||||
* @description // TODO: 配件详情统计
|
||||
* @author lf
|
||||
* @date 10:56 2025/10/31
|
||||
**/
|
||||
@Override
|
||||
public List<Map<String, Object>> accessoriesRequestListStatistics(QueryBusinessReqVO reqVO) {
|
||||
return statisticsMapper.accessoriesRequestListStatistics(reqVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -936,6 +936,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
|
||||
// 构建查询条件
|
||||
QueryWrapper<DlRepairTickets> queryWrapper = new QueryWrapper<>();
|
||||
|
||||
queryWrapper.ne("tickets_status", "03");
|
||||
|
||||
if (startDate != null && endDate != null) {
|
||||
// 如果有时间范围,添加时间条件
|
||||
queryWrapper.between("create_time",
|
||||
@ -1058,6 +1060,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
|
||||
// 直接使用 mapper 查询已交车工单并按 repairType 分组
|
||||
QueryWrapper<DlRepairTickets> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("is_handover", "1"); // 已交车
|
||||
queryWrapper.ne("tickets_status", "03");
|
||||
|
||||
if (startDate != null && endDate != null) {
|
||||
queryWrapper.between("create_time",
|
||||
|
||||
@ -504,4 +504,46 @@
|
||||
AND so.so_time BETWEEN #{dateRange[0]} AND #{dateRange[1]} -- 自定义时间段
|
||||
</if>
|
||||
</select>
|
||||
<select id="accessoriesRequestListStatistics" resultType="java.util.Map">
|
||||
SELECT
|
||||
drt.id AS ticketId,
|
||||
drt.ticket_no AS ticketNo, <!-- 工单号 -->
|
||||
drt.car_no AS carNo, <!-- 车牌号 -->
|
||||
drt.car_vin AS carVin, <!-- 车架号 -->
|
||||
drt.user_name AS userName, <!-- 客户姓名 -->
|
||||
COUNT(DISTINCT dtw.id) AS partsApplyCount, <!-- 配件申请次数 -->
|
||||
GROUP_CONCAT(DISTINCT DATE_FORMAT(dtw.create_time, '%Y-%m-%d %H:%i:%s') SEPARATOR '; ') AS applyTimeList, <!-- 申请时间列表 -->
|
||||
SUM(dti.wares_count) AS totalApplyQuantity, <!-- 申请配件总数量 -->
|
||||
SUM(COALESCE(dti.wares_already_count, 0)) AS receivedQuantity, <!-- 已领取配件数量 -->
|
||||
GROUP_CONCAT(DISTINCT
|
||||
CASE
|
||||
WHEN drso.so_type = '02' THEN DATE_FORMAT(drso.so_time, '%Y-%m-%d %H:%i:%s')
|
||||
ELSE NULL
|
||||
END
|
||||
SEPARATOR '; '
|
||||
) AS receiveTimeList, <!-- 领料时间列表 -->
|
||||
drt.now_repair_name AS currentRepairer, <!-- 当前施工人 -->
|
||||
drt.adviser_name AS serviceAdviser <!-- 服务顾问 -->
|
||||
FROM
|
||||
dl_repair_tickets drt
|
||||
LEFT JOIN
|
||||
dl_ticket_wares dtw ON drt.id = dtw.ticket_id AND dtw.deleted = 0
|
||||
LEFT JOIN
|
||||
dl_tw_item dti ON dtw.id = dti.tw_id AND dti.deleted = 0
|
||||
LEFT JOIN
|
||||
dl_repair_so drso ON dtw.id = drso.tw_id AND drso.so_type = '02' AND drso.deleted = 0
|
||||
WHERE
|
||||
drt.deleted = 0
|
||||
<!-- AND drt.ticket_no = '具体的工单号' 按具体工单查询 -->
|
||||
<!-- AND drt.car_no = '具体的车牌号' 或者按车牌号查询 -->
|
||||
<if test="dateRange != null and dateRange.size() == 2">
|
||||
AND dtw.create_time BETWEEN #{dateRange[0]} AND #{dateRange[1]}
|
||||
</if>
|
||||
<!-- AND dtw.create_time BETWEEN '开始时间' AND '结束时间' 按时间筛选 -->
|
||||
GROUP BY
|
||||
drt.id, drt.ticket_no, drt.car_no, drt.car_vin, drt.user_name,
|
||||
drt.now_repair_name, drt.adviser_name
|
||||
ORDER BY
|
||||
drt.create_time DESC;
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -206,12 +206,13 @@
|
||||
</if>
|
||||
|
||||
FROM dl_repair_tickets drt
|
||||
LEFT JOIN repair_order_info rorder ON rorder.goods_id = drt.id
|
||||
INNER JOIN repair_order_info rorder ON rorder.goods_id = drt.id
|
||||
<if test="(map.payStatus != null and map.payStatus != '' and (map.payStatus == '01' or map.payStatus == '04')) or (map.payStatuses != null and map.payStatuses.size() > 0 and (map.payStatuses.indexOf('01') >= 0 or map.payStatuses.indexOf('04') >= 0))">
|
||||
LEFT JOIN dl_repair_records drr ON drt.id = drr.ticket_id AND drr.type = 'jssq'
|
||||
</if>
|
||||
<where>
|
||||
drt.deleted = '0'
|
||||
AND rorder.deleted = '0'
|
||||
|
||||
<!-- 已结算的 -->
|
||||
<if test="map.ticketsStatus != null and map.ticketsStatus != '' and map.ticketsStatus == '02'">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user