更新统计相关内容
This commit is contained in:
parent
a82544241f
commit
23f81a3911
@ -290,7 +290,7 @@ public class RepairStatisticsController {
|
|||||||
public CommonResult<?> procurementOrPickingStatistics(QueryBusinessReqVO reqVO) {
|
public CommonResult<?> procurementOrPickingStatistics(QueryBusinessReqVO reqVO) {
|
||||||
return CommonResult.success(statisticsService.procurementOrPickingStatistics(reqVO));
|
return CommonResult.success(statisticsService.procurementOrPickingStatistics(reqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description :整车配件完成率统计
|
* @description :整车配件完成率统计
|
||||||
* @author AI
|
* @author AI
|
||||||
@ -303,4 +303,16 @@ public class RepairStatisticsController {
|
|||||||
return CommonResult.success(statisticsService.vehiclesAccessoriesCompletionRate(reqVO));
|
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>
|
* @return java.util.Map<java.lang.String, java.lang.Object>
|
||||||
**/
|
**/
|
||||||
List<Map<String, Object>> vehiclesAccessoriesCompletionRate(QueryBusinessReqVO reqVO);
|
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>
|
* @return java.util.Map<java.lang.String, java.lang.Object>
|
||||||
**/
|
**/
|
||||||
List<Map<String, Object>> vehiclesAccessoriesCompletionRate(QueryBusinessReqVO reqVO);
|
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) {
|
public List<Map<String, Object>> vehiclesAccessoriesCompletionRate(QueryBusinessReqVO reqVO) {
|
||||||
return statisticsMapper.vehiclesAccessoriesCompletionRate(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<DlRepairTickets> queryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
|
queryWrapper.ne("tickets_status", "03");
|
||||||
|
|
||||||
if (startDate != null && endDate != null) {
|
if (startDate != null && endDate != null) {
|
||||||
// 如果有时间范围,添加时间条件
|
// 如果有时间范围,添加时间条件
|
||||||
queryWrapper.between("create_time",
|
queryWrapper.between("create_time",
|
||||||
@ -1058,6 +1060,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
|
|||||||
// 直接使用 mapper 查询已交车工单并按 repairType 分组
|
// 直接使用 mapper 查询已交车工单并按 repairType 分组
|
||||||
QueryWrapper<DlRepairTickets> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<DlRepairTickets> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("is_handover", "1"); // 已交车
|
queryWrapper.eq("is_handover", "1"); // 已交车
|
||||||
|
queryWrapper.ne("tickets_status", "03");
|
||||||
|
|
||||||
if (startDate != null && endDate != null) {
|
if (startDate != null && endDate != null) {
|
||||||
queryWrapper.between("create_time",
|
queryWrapper.between("create_time",
|
||||||
|
|||||||
@ -504,4 +504,46 @@
|
|||||||
AND so.so_time BETWEEN #{dateRange[0]} AND #{dateRange[1]} -- 自定义时间段
|
AND so.so_time BETWEEN #{dateRange[0]} AND #{dateRange[1]} -- 自定义时间段
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
|
|||||||
@ -206,12 +206,13 @@
|
|||||||
</if>
|
</if>
|
||||||
|
|
||||||
FROM dl_repair_tickets drt
|
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))">
|
<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'
|
LEFT JOIN dl_repair_records drr ON drt.id = drr.ticket_id AND drr.type = 'jssq'
|
||||||
</if>
|
</if>
|
||||||
<where>
|
<where>
|
||||||
drt.deleted = '0'
|
drt.deleted = '0'
|
||||||
|
AND rorder.deleted = '0'
|
||||||
|
|
||||||
<!-- 已结算的 -->
|
<!-- 已结算的 -->
|
||||||
<if test="map.ticketsStatus != null and map.ticketsStatus != '' and map.ticketsStatus == '02'">
|
<if test="map.ticketsStatus != null and map.ticketsStatus != '' and map.ticketsStatus == '02'">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user