hd_real_name/target/classes/mappers/person/WorkGiveMapper.xml

251 lines
11 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bonus.gzrn.rnbmw.person.dao.WorkGiveDao">
<select id="getWorkGive" resultType="com.bonus.gzrn.rnbmw.person.entity.WorkGiveBean" >
SELECT
`name`,
idNumber,
typeName,
proGiveNums,
proStarNums,
averStar,
group_concat( proName ) AS proName,
group_concat( proId ) AS proId,
orgName,
sum( r.proStarNums ) starNums,
sum( r.proGiveNums ) workGiveNums,
companyName,
companyId
FROM
(
SELECT DISTINCT
bwg.`name`,
bwg.id_number idNumber,
sdd.NAME typeName,
count( bwg.id_number ) proGiveNums,
sum( bwg.star_rating ) proStarNums,
format( sum( bwg.star_rating ) / count( bwg.id_number ), 2 ) averStar,
bwg.pro_id proId,
bmp.`NAME` proName,
pmo.`NAME` orgName,
bmp.org_id orgId,
pmo.`NAME` companyName,
pmo.COMPANY_ID companyId
FROM
(
SELECT
bwg.`name`,
bwg.id_number,
POST_ID,
star_rating,
pro_id,
bmr.org_id
FROM
bm_worker_give bwg,
bm_worker_record bmr
WHERE
bwg.IS_ACTIVE = '1'
AND bmr.ID_NUMBER = bwg.id_number
) bwg
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwg.POST_ID
LEFT JOIN bm_project bmp ON bmp.id = bwg.pro_id
LEFT JOIN pm_organization pmo ON pmo.ID = bmp.org_id
WHERE
1 = 1
GROUP BY
bwg.id_number,
bwg.pro_id
) r
WHERE
1 = 1
<if test="params.companyId != null and params.companyId != ''">
and r.companyId = #{params.companyId}
</if>
<if test="params.proId != null and params.proId != ''">
and r.proId = #{params.proId}
</if>
<if test="params.keyWord != null and params.keyWord != '' ">
and (
r.name like CONCAT('%',#{params.keyWord},'%') OR
r.idNumber like CONCAT('%',#{params.keyWord},'%') OR
r.typeName like CONCAT('%',#{params.keyWord},'%') OR
r.proName like CONCAT('%',#{params.keyWord},'%') OR
r.orgName like CONCAT('%',#{params.keyWord},'%')
)
</if>
GROUP BY r.idNumber
limit #{offset}, #{limit}
</select>
<select id="getWorkGiveCount" resultType="java.lang.Integer">
SELECT COUNT(1)
from (
select name ,idNumber ,typeName ,proGiveNums ,proStarNums ,averStar ,group_concat( proName ) AS proName,orgName ,sum(r.proStarNums) starNums,
sum(r.proGiveNums) workGiveNums,companyName,companyId
from (
SELECT distinct bwg.`name`,bwg.id_number idNumber,sdd.name typeName,count(bwg.id_number)
proGiveNums,sum(bwg.star_rating) proStarNums,
format(sum(bwg.star_rating) / count(bwg.id_number),2) averStar,bwg.pro_id proId,
bmp.`NAME` proName,pmo.`NAME` orgName,bmp.org_id orgId,pmo.`NAME` companyName,pmo.COMPANY_ID companyId
FROM (
select bwg.`name`,bwg.id_number,POST_ID,star_rating,pro_id,bmr.org_id
from bm_worker_give bwg,bm_worker_record bmr
WHERE bwg.IS_ACTIVE = '1' and bmr.ID_NUMBER = bwg.id_number
) bwg
left join sys_dic_detail sdd on sdd.id = bwg.POST_ID
left join bm_project bmp on bmp.id = bwg.pro_id
left join pm_organization pmo on pmo.ID = bmp.org_id
WHERE 1=1
GROUP BY bwg.id_number,bwg.pro_id
) r
where 1=1
<if test="params.companyId != null and params.companyId != ''">
and r.companyId = #{params.companyId}
</if>
<if test="params.proId != null and params.proId != ''">
and r.proId = #{params.proId}
</if>
<if test="params.keyWord != null and params.keyWord != '' ">
and (
r.name like CONCAT('%',#{params.keyWord},'%') OR
r.idNumber like CONCAT('%',#{params.keyWord},'%') OR
r.typeName like CONCAT('%',#{params.keyWord},'%') OR
r.proName like CONCAT('%',#{params.keyWord},'%') OR
r.orgName like CONCAT('%',#{params.keyWord},'%')
)
</if>
GROUP BY r.idNumber
) t
</select>
<select id="getWorkGiveDetails" resultType="com.bonus.gzrn.rnbmw.person.entity.WorkGiveBean" >
SELECT distinct pmo.name orgName,bmp.name proName,suser.USERNAME commentName,bwg.upload_time,bwg.star_rating starRating,
bwg.comment,bs.SUB_NAME subName,bst.`NAME` teamName
FROM bm_worker_give bwg
left join bm_project bmp on bmp.id = bwg.pro_id
left join pm_organization pmo on pmo.ID = bmp.org_id
left join sys_user suser on suser.ID = bwg.comment_id
left join bm_sub_team bst on bst.ID = bwg.team_id
left join bm_subcontractor bs on bs.ID = bst.SUB_ID
WHERE bwg.id_number = #{params.idNumber} and bwg.pro_id = #{params.proId} and bwg.is_active = 1
order by bwg.upload_time desc
limit #{offset}, #{limit}
</select>
<select id="getWorkGiveDetailsCount" resultType="java.lang.Integer">
SELECT COUNT(*)
from (
SELECT pmo.name orgName
FROM bm_worker_give bwg
left join bm_project bmp on bmp.id = bwg.pro_id
left join pm_organization pmo on pmo.ID = bmp.org_id
left join sys_user suser on suser.ID = bwg.comment_id
left join bm_sub_team bst on bst.ID = bwg.team_id
left join bm_subcontractor bs on bs.ID = bst.SUB_ID
WHERE bwg.id_number = #{params.idNumber} and bwg.pro_id = #{params.proId} and bwg.is_active = 1
order by bwg.upload_time desc
) r
</select>
<select id="getWorkGivePro" resultType="com.bonus.gzrn.rnbmw.person.entity.WorkGiveBean" >
SELECT
bwg.`name`,
bwg.id_number idNumber,
sdd.`name` typeName,
count(bwg.id_number) proGiveNums,
sum(bwg.star_rating) proStarNums,
bwg.pro_id proId,
bmp.`NAME` proName,
pmo.`NAME` orgName
FROM
bm_worker_give bwg
LEFT JOIN bm_worker_record bmr ON bmr.ID_NUMBER = bwg.id_number
LEFT JOIN sys_dic_detail sdd ON sdd.id = bmr.POST_ID
LEFT JOIN bm_project bmp ON bmp.id = bwg.pro_id
LEFT JOIN pm_organization pmo ON pmo.ID = bmp.org_id
WHERE
bwg.is_active = '1'
AND bwg.id_number = #{params.idNumber}
AND bmp.ID IN (${params.proId})
GROUP BY
bwg.id_number,
bwg.pro_id
limit #{offset}, #{limit}
</select>
<select id="getWorkGiveProCount" resultType="java.lang.Integer">
SELECT COUNT(*)
from (
SELECT
bwg.`name`
FROM
bm_worker_give bwg
LEFT JOIN bm_worker_record bmr ON bmr.ID_NUMBER = bwg.id_number
LEFT JOIN sys_dic_detail sdd ON sdd.id = bmr.POST_ID
LEFT JOIN bm_project bmp ON bmp.id = bwg.pro_id
LEFT JOIN pm_organization pmo ON pmo.ID = bmp.org_id
WHERE
bwg.is_active = 1
AND bwg.id_number = #{params.idNumber}
AND bmp.ID IN (${params.proId})
GROUP BY
bwg.id_number,
bwg.pro_id
) r
</select>
<select id="getWorkGiveById" resultType="com.bonus.gzrn.rnbmw.person.entity.WorkGiveBean">
select
a.NAME,
a.ID_NUMBER,
b.POST,
d.NAME as proName,
c.NAME as orgName,
b.EIN_TIME,
b.PARTY_MEMBER,
b.PHONE,
a.EXIT_TIME,
a.PROJECT_ID,
a.ORG_ID
from
bm_sup_attend_history a
left join bm_sup_worker b on a.ID_NUMBER = b.ID_NUMBER
left join pm_organization c on c.ID = a.org_id
left join bm_project d on d.ID = PRO_ID
WHERE a.IS_ACTIVE = 1 AND a.ID_NUMBER = #{id}
</select>
<select id="getOrgName" resultType="com.bonus.gzrn.rnbmw.person.entity.WorkGiveBean">
select NAME
from bm_subcontractor
where IS_ACTIVE = '1'
</select>
<select id="getProName" resultType="com.bonus.gzrn.rnbmw.person.entity.WorkGiveBean">
select NAME
from bm_project
where is_active = '1' and org_id = #{orgId}
</select>
<select id="getWorkGiveSum" resultType="com.bonus.gzrn.rnbmw.person.entity.WorkGiveBean" >
SELECT distinct pmo.name orgName,bmp.name proName,suser.USERNAME commentName,bwg.upload_time,bwg.star_rating starRating,
bwg.comment,bs.SUB_NAME subName,bst.`NAME` teamName
FROM bm_worker_give bwg
left join bm_project bmp on bmp.id = bwg.pro_id
left join pm_organization pmo on pmo.ID = bmp.org_id
left join sys_user suser on suser.ID = bwg.comment_id
left join bm_sub_team bst on bst.ID = bwg.team_id
left join bm_subcontractor bs on bs.ID = bst.SUB_ID
WHERE bwg.id_number = #{idNumber} and bwg.pro_id = #{proId} and bwg.is_active = 1
order by bwg.upload_time desc
</select>
</mapper>