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

295 lines
12 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.ContractDao">
<select id="getContractManageList" resultType="com.bonus.gzrn.rnbmw.person.entity.ContractBean">
select * from (
SELECT
bwc.id,
bw.`NAME`,
bp.NAME AS proName,
bw.ID_NUMBER AS idNumber,
sdd.NAME AS postName,
bwc.effectDate,
bwc.contractValidDate,
bwc.contractCode,
bwc.contractType,
bwc.contractType AS miurInsurance,
IF( bwc.sub_contract_url IS NULL, bwc.person_contract_url, bwc.sub_contract_url ) AS url,
IF(bwc.contractType = '纸质合同','已签订',
IF(( bwc.is_audit = 0 ),'待签订',
IF(( bwc.is_audit = 2 ),'审核不通过',
IF(bwc.is_audit = 1,
IF(( bwcd.is_sign != 0 AND bwcd.is_sign != 1 ),'待签署',
IF( bwcd.is_sign = 0 , '未签署', IF ( bwcd.is_sign = 1 , '已签署', '未签署' ))),'未签订'
)))) AS stauts
FROM
bm_worker_record bwr
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bwr.ID_NUMBER
AND bwc.is_active = '1'
LEFT JOIN bm_worker_contract_details bwcd ON bwcd.part_b_idCard = bwr.ID_NUMBER
AND bwcd.contract_id = bwc.id
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
LEFT JOIN bm_project bp ON bp.id = bwr.PROJECT_ID
WHERE
bwr.IS_ACTIVE = '1'
<if test="params != null and params !=''">
<if test="params.companyId != null and params.companyId !=''">
and bp.company_id = #{params.companyId}
</if>
<if test="params.proId != null and params.proId !=''">
and bp.id = #{params.proId}
</if>
<if test="params.keyWord !=null and params.keyWord !=''">
and(
bw.`NAME` like CONCAT('%',#{params.keyWord},'%') OR
bw.ID_NUMBER like CONCAT('%',#{params.keyWord},'%') OR
sdd.name like CONCAT('%',#{params.keyWord},'%') OR
bwc.effectDate like CONCAT('%',#{params.keyWord},'%') OR
bwc.contractCode like CONCAT('%',#{params.keyWord},'%') OR
bwc.contractType like CONCAT('%',#{params.keyWord},'%')
)
</if>
</if>
and bw.IS_ACTIVE = '1'
GROUP BY bwr.ID_NUMBER ) r
<where>
<if test="params != null and params !=''">
<if test="params.contractStatus != null and params.contractStatus !=''">
and r.stauts = #{params.contractStatus}
</if>
</if>
</where>
order by r.stauts ASC
limit #{offset}, #{limit}
</select>
<select id="getContractManageCount" resultType="java.lang.Integer">
SELECT count(1)
from (
SELECT
IF(bwc.contractType = '纸质合同','已签订',
IF(( bwc.is_audit = 0 ),'待签订',
IF(( bwc.is_audit = 2 ),'审核不通过',
IF(bwc.is_audit = 1,
IF(( bwcd.is_sign != 0 AND bwcd.is_sign != 1 ),'待签署',
IF( bwcd.is_sign = 0 , '未签署', IF ( bwcd.is_sign = 1 , '已签署', '未签署' ))),'未签订'
)))) AS stauts
FROM bm_worker_record bwr
LEFT JOIN bm_worker_contract bwc ON bwc.idCard=bwr.ID_NUMBER and bwc.is_active = '1'
LEFT JOIN bm_worker_contract_details bwcd ON bwcd.part_b_idCard = bwr.ID_NUMBER and bwcd.contract_id=bwc.id
INNER JOIN bm_worker bw ON bw.ID_NUMBER=bwr.ID_NUMBER and bw.IS_ACTIVE = '1'
LEFT JOIN sys_dic_detail sdd ON sdd.id=bwr.POST_ID
LEFT JOIN bm_project bp ON bp.id = bwr.PROJECT_ID
where bwr.IS_ACTIVE = '1'
<if test="params != null and params !=''">
<if test="params.companyId != null and params.companyId !=''">
and bp.company_id = #{params.companyId}
</if>
<if test="params.proId != null and params.proId !=''">
and bp.id = #{params.proId}
</if>
<if test="params.keyWord !=null and params.keyWord !=''">
and(
bw.`NAME` like CONCAT('%',#{params.keyWord},'%') OR
bw.ID_NUMBER like CONCAT('%',#{params.keyWord},'%') OR
sdd.name like CONCAT('%',#{params.keyWord},'%') OR
bwc.effectDate like CONCAT('%',#{params.keyWord},'%') OR
bwc.contractCode like CONCAT('%',#{params.keyWord},'%') OR
bwc.contractType like CONCAT('%',#{params.keyWord},'%')
)
</if>
</if>
GROUP BY bwr.ID_NUMBER
) r
<where>
<if test="params != null and params !=''">
<if test="params.contractStatus != null and params.contractStatus !=''">
and r.stauts = #{params.contractStatus}
</if>
</if>
</where>
</select>
<!--新增合同见证照片-->
<insert id="addContractPhoto">
insert into bm_worker_witness
(ID_NUMBER, witness_path, witness_type, upload_date, upload_time, upload_id,contract_id, is_active)
values (#{idNumber}, #{witnessPath}, '1', #{uploadDate}, #{uploadTime}, #{uploadId},#{id}, '1')
</insert>
<!--新增合同见证基本信息-->
<insert id="addContractInfo">
insert into bm_worker_contract
(idCard, contractCode, laborContractType, role, contractValidDate, contractInvalidDate,
contractType, wageApprovedWay, wageCriterion, miurInsurance, whetherOnJob, endowmentInsurance,id
<if test="contractType == '纸质合同'">
,is_audit
</if>
)
values (#{idNumber}, #{contractCode}, #{laborContractType}, #{role}, #{contractValidDate},
#{contractInvalidDate},
#{contractType}, #{wageApprovedWay}, #{wageCriterion}, #{miurInsurance}, #{whetherOnJob},
#{endowmentInsurance},#{id}
<if test="contractType == '纸质合同'">
,1
</if>
)
</insert>
<!-- 电子合同信息 -->
<select id="getContractDetails" resultType="com.bonus.gzrn.rnbmw.person.entity.ContractBean">
SELECT bw.`NAME`,
bw.ID_NUMBER as idNumber,
face_url as faceUrl,
short_message as shortMessage,
message,
message_time as messageTime,
video_url as videoUrl
FROM bm_worker_contract_details bwcd
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwcd.part_b_idCard
WHERE bwcd.part_b_idCard = #{idNumber} and contract_id = #{id}
</select>
<!-- 纸质照片信息 -->
<select id="getContractPhoto" resultType="com.bonus.gzrn.rnbmw.person.entity.ContractBean">
SELECT u.USERNAME as uploadName,
bww.upload_time as uploadTime,
bww.witness_path as witnessPath
from bm_worker_witness bww
LEFT JOIN sys_user u ON u.id = bww.upload_id
WHERE bww.is_active = '1' and bww.witness_type = '1'
AND bww.ID_NUMBER = #{idNumber}
</select>
<delete id="delContract">
update bm_worker_contract set is_active = '0' where idCard = #{idNumber}
<if test="delId != '' and delId != null">
and id = #{delId}
</if>
;
update bm_worker_contract_details set is_active = '0' where part_b_idCard = #{idNumber}
<if test="delId != '' and delId != null">
and contract_id = #{delId}
</if>
;
</delete>
<delete id="delContractPhoto">
update bm_worker_witness set is_active = '0' where ID_NUMBER = #{idNumber}
<if test="delId != '' and delId != null">
and contract_id = #{delId}
</if>
and witness_type = '1'
</delete>
<select id="getContractSingletonCount" resultType="java.lang.Integer">
select count(1) from (
SELECT
1
FROM
bm_worker_record bwr
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bwr.ID_NUMBER
LEFT JOIN bm_worker_contract_details bwcd ON bwcd.part_b_idCard = bwr.ID_NUMBER
AND bwcd.contract_id = bwc.id
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
LEFT JOIN bm_project bp ON bp.id = bwr.PROJECT_ID
where bwr.IS_ACTIVE = '1'
<if test="params != null and params !=''">
<if test="params.companyId != null and params.companyId !=''">
and bp.company_id = #{params.companyId}
</if>
<if test="params.idNumber != null and params.idNumber !=''">
and bwr.ID_NUMBER = #{params.idNumber}
</if>
<if test="params.keyword !=null and params.keyword !=''">
and(
bwc.contractCode like CONCAT('%',#{params.keyword},'%')
)
</if>
</if>
and bw.IS_ACTIVE = '1'
) a
</select>
<select id="getContractSingletonList" resultType="com.bonus.gzrn.rnbmw.person.entity.ContractBean">
SELECT
bwc.id,
bw.id_number as idNumber,
bwc.contractCode,
bwc.contractType,
bwc.contractType AS miurInsurance,
bwc.upload_time as uploadTime,
IF
( bwc.sub_contract_url IS NULL, bwc.person_contract_url, bwc.sub_contract_url ) AS url,
IF(bwc.is_active = '1','有效','无效') as isActive
FROM
bm_worker_record bwr
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bwr.ID_NUMBER
LEFT JOIN bm_worker_contract_details bwcd ON bwcd.part_b_idCard = bwr.ID_NUMBER
AND bwcd.contract_id = bwc.id
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
LEFT JOIN bm_project bp ON bp.id = bwr.PROJECT_ID
where bwr.IS_ACTIVE = '1'
<if test="params != null and params !=''">
<if test="params.companyId != null and params.companyId !=''">
and bp.company_id = #{params.companyId}
</if>
<if test="params.idNumber != null and params.idNumber !=''">
and bwr.ID_NUMBER = #{params.idNumber}
</if>
<if test="params.keyword !=null and params.keyword !=''">
and(
bwc.contractCode like CONCAT('%',#{params.keyword},'%')
)
</if>
</if>
and bw.IS_ACTIVE = '1'
limit #{offset}, #{limit}
</select>
<select id="getPaperBookContract" resultType="com.bonus.gzrn.rnbmw.person.entity.ContractBean">
SELECT
bwc.contractCode,
bwc.laborContractType,
bwc.role,
bwc.contractValidDate,
bwc.contractInvalidDate,
bwc.contractType,
bwc.wageApprovedWay,
bwc.wageCriterion,
bwc.miurInsurance,
bwc.whetherOnJob,
bwc.endowmentInsurance,
GROUP_CONCAT(bww.witness_path) as witnessPath
FROM
bm_worker_contract bwc
LEFT JOIN bm_worker_witness bww ON bwc.idCard = bww.ID_NUMBER and bwc.id = bww.contract_id and bww.witness_type = '1'
WHERE bwc.idCard = #{idNumber} and bwc.id = #{id}
GROUP BY bwc.idCard,bwc.id
</select>
<select id="getCountByIdNmuber" resultType="java.lang.Integer">
SELECT
count(*)
FROM
bm_worker
WHERE
id_number = #{idNumber}
AND is_active = '1'
</select>
<select id="getContractCount" resultType="com.bonus.gzrn.rnbmw.person.entity.ContractBean">
SELECT
*
FROM
bm_worker_contract bwc
WHERE
bwc.is_active = '1'
AND bwc.idCard = #{idNumber}
</select>
</mapper>