hd_real_name/target/classes/mappers/PersonComprehensive/PersonComprehensiveMapper.xml

275 lines
13 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.PersonComprehensive.dao.PersonComprehensiveDao">
<insert id="insertBasePersonBasicData">
replace into bm_worker
(`id_number`, `name`, `sex`, `ethnic`,`birthday`, `address`, `issueauthority`,
`sign_date`, `expiry_date`, `phone`, is_twins, is_active)
values
<foreach item="params" collection="list" separator=",">
(#{params.idNumber},#{params.name},#{params.sex},#{params.ethnic},
#{params.birthday},#{params.address},#{params.issueauthority},
#{params.signDate},#{params.expiryDate},#{params.phone},'0', 1)
</foreach>
</insert>
<insert id="insertBasePersonBankData">
replace into bm_worker_payroll(id_number,upload_time, BANK_CARD, BANK_NAME, ROLL_BANK_NAME,
bankAffiliated, upload_id, is_active)
values(#{idNumber}, now(), #{bankCard}, #{bankName},
#{wageBankSubBranchName}, #{bankAffiliated}, #{userId}, 1)
</insert>
<insert id="insertPersonContractData">
replace into bm_worker_contract
(id,idCard,`name`,`post`, contractCode, laborContractType, role, contractValidDate, contractInvalidDate,
contractType, wageApprovedWay, wageCriterion, miurInsurance, whetherOnJob, endowmentInsurance
<if test="contractType == '纸质合同'">
,is_audit
</if>
)
values (#{contractId}, #{idNumber},#{name}, #{postId},#{contractCode}, #{laborContractType}, #{role}, #{contractValidDate},
#{contractInvalidDate},
#{contractType}, #{wageApprovedWay}, #{wageCriterion}, #{miurInsurance}, #{isJob},
#{endowmentInsurance}
<if test="contractType == '纸质合同'">
,1
</if>
)
</insert>
<insert id="replacePersonContractData">
insert into bm_worker_contract
(id,idCard,`name`,`post`, contractCode, laborContractType, role, contractValidDate, contractInvalidDate,
contractType, wageApprovedWay, wageCriterion, miurInsurance, whetherOnJob, endowmentInsurance
<if test="contractType == '纸质合同'">
,is_audit
</if>
)
select #{contractId}, #{idNumber},#{name}, #{postId},#{contractCode}, #{laborContractType}, #{role}, #{contractValidDate},
#{contractInvalidDate},
#{contractType}, #{wageApprovedWay}, #{wageCriterion}, #{miurInsurance}, #{whetherOnJob},
#{endowmentInsurance}
<if test="contractType == '纸质合同'">
,1
</if>
from dual
where NOT EXISTS (
select * from bm_worker_contract where id = #{contractId}
);
</insert>
<insert id="insertWageContractFile">
insert into bm_worker_witness(id_number,witness_path,witness_type, upload_date,
upload_time, upload_id, is_active
<if test="contractId != null and contractId !=''">
,contract_id
</if>)
values(#{idNumber},#{wageCardPath}, #{fileType}, CURDATE(), now(), #{userId}, 1
<if test="contractId != null and contractId !=''">
,#{contractId}
</if>)
</insert>
<insert id="insertPersonEinData">
replace into bm_worker_record(ID_NUMBER,SUB_ID,ORG_ID,PROJECT_ID,TEAM_ID,POST_ID,EIN_DATE,EIN_TIME,
WHETHER_ONJOB, PE_STATUS, SAFETY_SCORE, TEAM_CAPTAIN, FOREMAN, FOREMAN_PHONE, FOREMAN_IDNUMBER,
PRINCIPAL_NAME, PRINCIPAL_IDNUMBER, PRINCIPAL_PHONE, ein_status,IS_ACTIVE)
values(#{idNumber},#{subId},#{orgId},#{proId},#{teamId},#{postId},CURDATE(),now(),
#{whetherOnjob}, #{peStatus}, #{safetyScore}, #{teamCaptain}, #{foreman}, #{foremanPhone},
#{foremanIdNumber}, #{principalName}, #{principalIdNumber}, #{principalPhone},1,1);
replace into bm_worker_attend_history(ID_NUMBER,NAME,ein_time,PROJECT_ID,SUB_ID,ORG_ID,POST_ID,TEAM_ID,IS_ACTIVE, is_short_term)
values(#{idNumber},#{name},now(),#{proId},#{subId},#{orgId},#{postId},#{teamId},1, 0)
</insert>
<insert id="insertPersonFacePhoto">
replace into bm_worker_photo
(id_number, PHOTO_TYPE, PHOTO_PATH, upload_id
<if test="faceFeatureByte != null and faceFeatureByte !=''">
,FACE_FEATURES
</if>
,is_active)
values (#{idNumber}, 3, #{facePhoto}, #{userId}
<if test="faceFeatureByte != null and faceFeatureByte !=''">
,#{faceFeatureByte}
</if>
, 1)
</insert>
<insert id="insertAttendanceMachinePush">
insert into bm_attendance_machine_push(id_number, face_path, attendance_machine_id, operate)
values (#{idNumber}, #{facePhoto}, #{attendanceMachineId}, #{operate});
replace into bm_attendance_machine_push_history(id_number, attendance_machine_id) values
(#{idNumber}, #{attendanceMachineId})
</insert>
<update id="updatePerson">
update bm_worker set
`name` = #{name}, `sex` = #{sex}, `ethnic` = #{ethnic}, `birthday` = #{birthday},
`address` = #{address}, `issueauthority` = #{issueauthority},
`sign_date` = #{signDate}, `expiry_date` = #{expiryDate}, `phone` = #{phone}
where id_number = #{idNumber} and is_active = '1';
update bm_worker_record set WHETHER_ONJOB = #{whetherOnjob}, PE_STATUS = #{peStatus},
SAFETY_SCORE = #{safetyScore}, TEAM_CAPTAIN = #{teamCaptain}, FOREMAN = #{foreman},
FOREMAN_PHONE = #{foremanPhone}, FOREMAN_IDNUMBER = #{foremanIdNumber},
PRINCIPAL_NAME = #{principalName}, PRINCIPAL_IDNUMBER = #{principalIdNumber},
PRINCIPAL_PHONE = #{principalPhone}
where id_number = #{idNumber} and is_active = '1';
</update>
<update id="updatePersonBankData">
update bm_worker_payroll set
`bank_card` = #{bankCard},
`bank_name` = #{bankName},
`roll_bank_name` = #{wageBankSubBranchName},
bankAffiliated = #{bankAffiliated}
where id_number = #{idNumber} and is_active = '1'
</update>
<update id="updatePersonEinData">
update bm_worker_ein_history set sub_id = #{subId},
team_id = #{teamId}, post_id = #{postId}
where id_number = #{idNumber} and project_id = #{proId} and is_active = 1
</update>
<select id="selectPersonComprehensiveList" resultType="com.bonus.gzrn.rnbmw.PersonComprehensive.entity.PersonComprehensiveBean">
SELECT
bw.`name`,
bw.id_number AS idNumber,
bw.sex,
td.name AS postName,
bw.phone,
IF
( bwb.ID_NUMBER IS NOT NULL AND bwb.BANK_CARD IS NOT NULL AND LENGTH(bwb.BANK_CARD) > 0, '1', '0' ) AS isPayCard,
IF( bwc.is_active = 1, 1, 0 ) AS isContract,
bst.id AS teamId,
bst.name AS teamName,
bp.id AS proId,
bp.`name` AS proName
FROM
bm_worker bw
LEFT JOIN bm_worker_photo face ON face.ID_NUMBER = bw.id_number
AND face.PHOTO_TYPE = 3
AND face.IS_ACTIVE = 1
LEFT JOIN bm_worker_photo aoto ON aoto.ID_NUMBER = bw.id_number
AND aoto.PHOTO_TYPE = 5
AND aoto.IS_ACTIVE = 1
LEFT JOIN bm_worker_payroll bwb ON bwb.ID_NUMBER = bw.id_number
AND bwb.is_active = '1'
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bw.id_number
AND bwc.is_active = '1'
LEFT JOIN bm_worker_contract_details bwcd ON bwcd.part_b_idCard = bw.id_number
AND bwcd.is_active = '1'
left join bm_worker_record bweh on bweh.id_number = bw.id_number
and bweh.is_active = '1'
LEFT JOIN bm_sub_team bst ON bst.id = bweh.team_id
LEFT JOIN bm_project bp ON bp.id = bweh.project_id
LEFT JOIN sys_dic_detail td ON td.id = bweh.post_id
WHERE
bw.IS_ACTIVE = 1
<if test="params.name != null and params.name != ''">
and locate (#{params.name},bw.name)
</if>
<if test="params.idNumber != null and params.idNumber != ''">
and locate (#{params.idNumber},bw.id_number)
</if>
<if test="params.proName != null and params.proName != ''">
and locate (#{params.proName},bp.name)
</if>
GROUP BY
bw.id_number
</select>
<select id="getExistPerson" resultType="java.lang.String">
select distinct id_number from bm_worker where id_number = #{idNumber} and is_active = '1'
</select>
<select id="getPersonById" resultType="com.bonus.gzrn.rnbmw.PersonComprehensive.entity.PersonComprehensiveBean">
SELECT
bw.`name`, bw.`id_number` AS idNumber, bwr.SUB_ID as subId, bw.phone,
bw.`sex`, bw.`birthday`, bw.`ethnic`, bw.`issueauthority`, bw.`address`,
bw.`sign_date` AS signDate, bw.`expiry_date` AS expiryDate,
bwr.PROJECT_ID as proId, bwr.TEAM_ID as teamId, bwr.POST_ID as postId,
bwr.WHETHER_ONJOB as whetherOnjob, bwr.PE_STATUS as peStatus, bwr.SAFETY_SCORE as safetyScore,
bwp.BANK_NAME as bankName, bwp.BANK_CARD as bankCard, bwp.ROLL_BANK_NAME as wageBankSubBranchName,
bwp.bankAffiliated, bwr.TEAM_CAPTAIN as teamCaptain, bwr.FOREMAN, bwr.FOREMAN_PHONE as foremanPhone,
bwr.FOREMAN_IDNUMBER as foremanIdNumber, bwr.PRINCIPAL_NAME as principalName,
bwr.PRINCIPAL_IDNUMBER as principalIdNumber, bwr.PRINCIPAL_PHONE as principalPhone,
GROUP_CONCAT(DISTINCT bank.witness_path) as wageCardPath,
GROUP_CONCAT(DISTINCT contract.witness_path) as contractPath, bwc.whetherOnJob as isJob,
bwc.contractCode as contractCode, bwc.id as contractId, bwc.laborContractType,
bwc.contractValidDate, bwc.contractInvalidDate, bwc.wageApprovedWay, bwc.wageCriterion,
bwc.role, bwc.contractType, bwc.miurInsurance, bwc.endowmentInsurance,face.PHOTO_PATH as facePhoto,
face.FACE_FEATURES AS faceFeatureByte
FROM `bm_worker` bw
left join bm_worker_record bwr on bwr.id_number = bw.id_number
and bwr.is_active = 1
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bw.id_number
AND bwp.is_active = '1'
LEFT JOIN bm_subcontractor bs ON bs.id = bwr.sub_id
LEFT JOIN bm_project bp ON bp.id = bwr.PROJECT_ID
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bw.id_number AND bwc.is_active = '1'
LEFT JOIN bm_worker_witness bank ON bank.ID_NUMBER = bw.ID_NUMBER and bank.is_active = '1' and bank.witness_type = 2
LEFT JOIN bm_worker_witness contract ON contract.ID_NUMBER = bw.ID_NUMBER and contract.is_active = '1' and contract.witness_type = 1
LEFT JOIN bm_worker_photo face ON face.ID_NUMBER = bw.id_number
AND face.PHOTO_TYPE = 3
AND face.IS_ACTIVE = 1
WHERE bw.is_active = '1' AND bw.id_number = #{idNumber}
GROUP BY bw.id_number
</select>
<select id="getBlackPerson" resultType="java.lang.String">
select distinct id_number from bm_blacklist_worker where id_number = #{idNumber}
</select>
<select id="getWorkerBank" resultType="java.lang.Integer">
select COUNT(1) from bm_worker_payroll where id_number = #{idNumber} and is_active = '1'
</select>
<select id="getContractByIdNumber" resultType="com.bonus.gzrn.rnbmw.PersonComprehensive.entity.PersonComprehensiveBean">
SELECT
bwc.id AS contractId,
bwc.contractCode,
bwc.laborContractType,
bwc.contractValidDate,
bwc.contractInvalidDate,
bwc.wageApprovedWay,
bwc.wageCriterion,
bwc.role,
bwc.contractType,
bwc.miurInsurance,
bwc.whetherOnJob,
bwc.endowmentInsurance,
GROUP_CONCAT( bwcw.witness_path ) AS contractPath
FROM
`bm_worker` bw
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bw.id_number
AND bwc.is_active = '1'
LEFT JOIN bm_worker_contract_witness bwcw ON bwcw.contract_id = bwc.id
AND bwcw.is_active = '1'
LEFT JOIN bm_worker_contract_details bwcd ON bwcd.id_card = bw.id_number
AND bwcd.is_active = '1'
WHERE
bw.id_number = #{idNumber} and bw.IS_ACTIVE = 1
GROUP BY
bw.id_number
</select>
<select id="selectOrgIdByProId" resultType="java.lang.String">
select org_id from bm_project where id = #{proId}
</select>
<select id="selectAttendanceMachineArr" resultType="java.lang.String">
select bam.id from bm_attendance_machine bam
left join bm_attendance_machine_pro_relation bampr on
bampr.attendance_machine_id = bam.id and bampr.is_active = 1
where bam.is_active = 1 and bampr.pro_id = #{proId}
</select>
</mapper>