|
|
@@ -377,21 +377,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
377
|
377
|
</select>
|
|
378
|
378
|
|
|
379
|
379
|
<select id="selectRegionOrderCount" parameterType="String" resultMap="RegionOrderResult">
|
|
|
380
|
+ WITH RECURSIVE AreaCTE AS (
|
|
380
|
381
|
SELECT
|
|
381
|
|
- a.id region,
|
|
382
|
|
- a.name AS name,
|
|
383
|
|
- COUNT(wo.workordercode) number ,
|
|
|
382
|
+ id AS root_id,
|
|
|
383
|
+ id AS child_id,
|
|
|
384
|
+ name AS root_name,
|
|
|
385
|
+ parent_id
|
|
|
386
|
+ FROM sys_area
|
|
|
387
|
+ WHERE type=#{type} and parent_id=#{area}
|
|
|
388
|
+ UNION ALL
|
|
|
389
|
+ SELECT
|
|
|
390
|
+ a.root_id,
|
|
|
391
|
+ s.id AS child_id,
|
|
|
392
|
+ a.root_name,
|
|
|
393
|
+ s.parent_id
|
|
|
394
|
+ FROM sys_area s
|
|
|
395
|
+ INNER JOIN AreaCTE a ON s.parent_id = a.child_id
|
|
|
396
|
+ )
|
|
|
397
|
+ SELECT
|
|
|
398
|
+ a.root_id AS region,
|
|
|
399
|
+ a.root_name AS name,
|
|
|
400
|
+ COUNT(wo.workordercode) AS number,
|
|
384
|
401
|
COUNT(DISTINCT wo.call_id) AS callNumber,
|
|
385
|
402
|
COUNT(DISTINCT lv.workordercode) AS visitNumber,
|
|
386
|
403
|
CONCAT(
|
|
387
|
404
|
COALESCE(
|
|
388
|
|
- ROUND(AVG(CASE WHEN lv.myd >0 and lv.myd<![CDATA[<]]> 3 THEN 1 ELSE 0 END) * 100, 2),
|
|
|
405
|
+ ROUND(
|
|
|
406
|
+ AVG(CASE WHEN lv.myd > 0 AND lv.myd <![CDATA[<]]> 3 THEN 1 ELSE 0 END) * 100,
|
|
|
407
|
+ 2
|
|
|
408
|
+ ),
|
|
389
|
409
|
0
|
|
390
|
410
|
),
|
|
391
|
411
|
'%'
|
|
392
|
412
|
) AS mydRate
|
|
393
|
|
- FROM sys_area a
|
|
394
|
|
- LEFT JOIN wo_workorderbase wo ON a.id = wo.area
|
|
|
413
|
+ FROM AreaCTE a
|
|
|
414
|
+ LEFT JOIN wo_workorderbase wo
|
|
|
415
|
+ ON a.child_id = wo.area
|
|
395
|
416
|
<if test="time != null and time !='' ">
|
|
396
|
417
|
and YEAR(wo.createtime) = YEAR(CURRENT_DATE)
|
|
397
|
418
|
AND ${time}(wo.createtime) = ${time}(CURRENT_DATE)
|
|
|
@@ -407,12 +428,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
407
|
428
|
MAX(visit_id) AS visit_id
|
|
408
|
429
|
FROM wo_visitlog
|
|
409
|
430
|
GROUP BY workordercode
|
|
410
|
|
- ) v2 ON v1.workordercode = v2.workordercode
|
|
|
431
|
+ ) v2
|
|
|
432
|
+ ON v1.workordercode = v2.workordercode
|
|
411
|
433
|
AND v1.visit_id = v2.visit_id
|
|
412
|
|
- ) lv ON wo.workordercode = lv.workordercode
|
|
413
|
|
- where 1=1
|
|
414
|
|
- and a.type=#{type} and a.parent_id=#{area}
|
|
415
|
|
- GROUP BY a.id ;
|
|
|
434
|
+ ) lv
|
|
|
435
|
+ ON wo.workordercode = lv.workordercode
|
|
|
436
|
+ GROUP BY a.root_id, a.root_name;
|
|
416
|
437
|
</select>
|
|
417
|
438
|
<select id="selectTelephoneData" parameterType="String" resultMap="RecordDateViewResult">
|
|
418
|
439
|
select count(1) total,
|