# Conflicts:
#	modules/bmw/src/main/java/com/bonus/bmw/person/controller/PersonComprehensiveController.java
#	modules/bmw/src/main/java/com/bonus/bmw/person/service/PersonComprehensiveService.java
#	modules/bmw/src/main/resources/mapper/person/PersonComprehensiveMapper.xml
This commit is contained in:
LHD_HY 2025-06-03 09:16:38 +08:00
commit 60d3a19984
21 changed files with 1582 additions and 290 deletions

View File

@ -331,21 +331,29 @@ public class PersonComprehensiveController {
}
}
//导出
// @GetMapping("/exportBtnOut")
// @Log(title = "出场人员-导出", businessType = BusinessType.EXPORT)
// public void exportBtnOut(HttpServletResponse response, PersonComprehensiveBean o) {
// try{
// List<PersonComprehensiveBean> list = service.exportBtnOut(o);
// ExcelUtil<PersonComprehensiveBean> util = new ExcelUtil<PersonComprehensiveBean>(PersonComprehensiveBean.class);
// util.exportExcel(response, list, "入场人员管理");
// }catch (Exception e){
// log.error(e.toString(),e);
// }
// }
@PostMapping("/getWorkerRosterList")
@Log(title = "农民工花名册(用工管理台账)-查询list", businessType = BusinessType.SELECT)
public PageTableResponse getWorkerRosterList(PageTableRequest request) {
return service.getWorkerRosterList(request);
}
@PostMapping("/getWorkerRosterProList")
@Log(title = "农民工花名册(用工管理台账)-查询list", businessType = BusinessType.SELECT)
public PageTableResponse getWorkerRosterProList(PageTableRequest request) {
return service.getWorkerRosterProList(request);
}
@GetMapping("/exportBtnOut")
public void exportBtnOut(HttpServletResponse response, PageTableRequest request) {
service.exportBtnOut(response,request.getParams());
}
// @Log(title = "农民工花名册-根据工程id获取", businessType = BusinessType.SELECT)
// @GetMapping("/getWorkerRosterProList")
// public R getWorkerRosterProList(@PathVariable String proId) {
// return service.getWorkerRosterProList(proId);
// }
}

View File

@ -160,4 +160,8 @@ public interface PersonComprehensiveDao {
void deleteCheckupFile(PersonComprehensiveBean o);
List<PersonComprehensiveBean> getDownloads(PersonComprehensiveBean bean);
List<PersonComprehensiveBean> getWorkerRosterList(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
List<PersonComprehensiveBean> getWorkerRosterProList(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, @Param("limit") Integer limit);
}

View File

@ -168,6 +168,11 @@ public class PersonComprehensiveBean {
*/
private String bankCard;
/**
* 银行卡联行号
*/
private String bankBranch;
/**
* 人员类型
*/
@ -400,4 +405,48 @@ public class PersonComprehensiveBean {
private String checkupFilePath;
private String checkupState;
private String checkupDate;
/**
* 项目部id
*/
private String proGeneralId;
/**
* 项目部name
*/
private String proGeneralName;
/**
* 工程类型
*/
private String proType;
/**
* 工程状态
*/
private String proStatusId;
private String proStatusName;
/**
* 当前在场人数
*/
private String currentOnSiteNum;
/**
* 已出场人数
*/
private String exitedNum;
/**
* 累计入场人数
*/
private String totalEntryNum;
/**
* 第一次人员入场时间
*/
private String firstEntryTime;
/**
* 用工类型 0 临时用工 1 正式用工 2分包管理人员
*/
private String workerType;
/**
* 备注
*/
private String remark;
}

View File

@ -44,6 +44,20 @@ public interface PersonComprehensiveService {
List<PersonComprehensiveBean> getDownloads(PersonComprehensiveBean bean);
/**
* 获取农民工花名册用工管理台账-查询list
* @param request
* @return
*/
PageTableResponse getWorkerRosterList(PageTableRequest request);
/**
* 获取农民工花名册用工管理台账-根据工程id获取
* @param request
* @return
*/
PageTableResponse getWorkerRosterProList(PageTableRequest request);
// List<PersonComprehensiveBean> exportBtnOut(PersonComprehensiveBean bean);
void exportBtnOut(HttpServletResponse response, Map<String, Object> params);

View File

@ -573,6 +573,72 @@ public class PersonComprehensiveServiceImp implements PersonComprehensiveService
return dao.getDownloads(bean);
}
/**
* 获取农民工花名册用工管理台账-查询list
* @param request
* @return
*/
@Override
public PageTableResponse getWorkerRosterList(PageTableRequest request) {
Map<String, Object> params = request.getParams();
String roleLevel = SecurityUtils.getLoginUser().getSysUser().getRoleLevel();
String subId = SecurityUtils.getLoginUser().getSysUser().getSubId();
if("4".equals(roleLevel)) {
String subId1 = (String) params.get("subId");
if(StringUtils.isEmpty(subId1)){
params.put("subId",subId);
}
}
List<PersonComprehensiveBean> list = dao.getWorkerRosterList(params, request.getOffset(), request.getLimit());
return new PageTableHandler(new PageTableHandler.CountHandler() {
@Override
public int count(PageTableRequest request) {
return list.size();
}
}, new PageTableHandler.ListHandler() {
@Override
public List<PersonComprehensiveBean> list(PageTableRequest request) {
List<PersonComprehensiveBean> beanList;
Integer offset = request.getOffset();
Integer limit = request.getLimit();
if((offset+limit) < list.size()){
beanList = list.subList(offset, offset + limit);
}else{
beanList = list.subList(offset, list.size());
}
return beanList;
}
}).handle(request);
}
@Override
public PageTableResponse getWorkerRosterProList(PageTableRequest request) {
Map<String, Object> params = request.getParams();
List<PersonComprehensiveBean> list = dao.getWorkerRosterProList(params, request.getOffset(), request.getLimit());
return new PageTableHandler(new PageTableHandler.CountHandler() {
@Override
public int count(PageTableRequest request) {
return list.size();
}
}, new PageTableHandler.ListHandler() {
@Override
public List<PersonComprehensiveBean> list(PageTableRequest request) {
List<PersonComprehensiveBean> beanList;
Integer offset = request.getOffset();
Integer limit = request.getLimit();
if((offset+limit) < list.size()){
beanList = list.subList(offset, offset + limit);
}else{
beanList = list.subList(offset, list.size());
}
return beanList;
}
}).handle(request);
}
private List<PersonComprehensiveBean> listThread(List<PersonComprehensiveBean> list) {
Map<String,Object> map = new HashMap<>();
map.put("type","postType");

View File

@ -2,6 +2,7 @@ package com.bonus.bmw.team.controller;
import com.bonus.bmw.team.entity.NoSignalTeamAttendBean;
import com.bonus.bmw.team.service.NoSignalTeamAttendService;
import com.bonus.common.core.constant.Constants;
import com.bonus.common.core.domain.R;
import com.bonus.common.core.table.PageTableHandler;
import com.bonus.common.core.table.PageTableRequest;
@ -229,5 +230,15 @@ public class NoSignalTeamAttendController {
}
return einHisList;
}
@PostMapping("/updateAtt")
@Log(title = "考勤数据-修改", businessType = BusinessType.UPDATE)
public R del(NoSignalTeamAttendBean bean) {
try {
return service.updateAtt(bean);
} catch (Exception e){
return R.fail(Constants.API_FAILED);
}
}
}

View File

@ -40,6 +40,8 @@ public interface NoSignalTeamAttendDao {
int updEinStatus(NoSignalTeamAttendBean noSignalTeamAttendBean);
int updateAtt(NoSignalTeamAttendBean bean);

View File

@ -1,6 +1,7 @@
package com.bonus.bmw.team.service;
import com.bonus.bmw.team.entity.NoSignalTeamAttendBean;
import com.bonus.common.core.domain.R;
import java.util.List;
import java.util.Map;
@ -39,6 +40,8 @@ public interface NoSignalTeamAttendService {
int updEinStatus(NoSignalTeamAttendBean noSignalTeamAttendBean);
R updateAtt(NoSignalTeamAttendBean bean);
/*
int addNoSignalTeam(NoSignalTeamSetUpBean bean);

View File

@ -2,6 +2,9 @@ package com.bonus.bmw.team.service;
import com.bonus.bmw.team.dao.NoSignalTeamAttendDao;
import com.bonus.bmw.team.entity.NoSignalTeamAttendBean;
import com.bonus.common.core.constant.Constants;
import com.bonus.common.core.domain.R;
import com.bonus.common.security.utils.SecurityUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -112,6 +115,15 @@ public class NoSignalTeamAttendServiceImpl implements NoSignalTeamAttendService
return dao.updEinStatus(noSignalTeamAttendBean);
}
@Override
public R updateAtt(NoSignalTeamAttendBean bean) {
int res=0;
if (bean.getId() != null) {
res = dao.updateAtt(bean);
}
return res > 0 ? R.ok(Constants.DELETE_SUCCESS) : R.fail(Constants.DELETE_FAIL);
}
/*
@Override
public int addNoSignalTeam(NoSignalTeamSetUpBean bean) {

View File

@ -139,7 +139,7 @@
<if test="salaryApplicationPath != null and salaryApplicationPath != '' ">
,salary_application_Path = #{salaryApplicationPath}
</if>
where id_number = #{idNumber} and ein_time = #{einTime} and is_active = 1
where id_number = #{idNumber} and ein_time = #{einTime}
</update>

View File

@ -24,17 +24,25 @@
</insert>
<insert id="insertBasePersonBankData">
replace into bm_worker_bank
replace
into bm_worker_bank
(`id_number`, `bank_card`, `bank_name`, `roll_bank_name`)
values
(#{idNumber},#{wageBankCard},#{wageBankName},#{wageBankSubBranchName})
(
#{idNumber},
#{wageBankCard},
#{wageBankName},
#{wageBankSubBranchName}
)
</insert>
<insert id="insertPersonToTeam">
update `bm_team_user_relation` set is_active = '0' where `id_number` = #{idNumber};
update `bm_team_user_relation`
set is_active = '0'
where `id_number` = #{idNumber};
INSERT INTO `bm_team_user_relation`
(`team_id`, `id_number`,is_regular_person, is_foreman, `IS_ACTIVE`) VALUES
(#{teamId},#{idNumber},#{isRegularPerson}, #{isForeman}, '1');
(`team_id`, `id_number`, is_regular_person, is_foreman, `IS_ACTIVE`)
VALUES (#{teamId}, #{idNumber}, #{isRegularPerson}, #{isForeman}, '1');
</insert>
<insert id="insertPersonContractData">
insert into bm_worker_contract
@ -44,7 +52,8 @@
,is_audit
</if>
)
values (#{contractId}, #{idNumber},#{name}, #{postId},#{contractCode}, #{laborContractType}, #{role}, #{contractValidDate},
values (#{contractId}, #{idNumber},#{name}, #{postId},#{contractCode}, #{laborContractType}, #{role},
#{contractValidDate},
#{contractInvalidDate},
#{contractType}, #{wageApprovedWay}, #{wageCriterion}, #{miurInsurance}, #{whetherOnJob},
#{endowmentInsurance}
@ -62,7 +71,8 @@
,is_audit
</if>
)
select #{contractId}, #{idNumber},#{name}, #{postId},#{contractCode}, #{laborContractType}, #{role}, #{contractValidDate},
select #{contractId}, #{idNumber},#{name}, #{postId},#{contractCode}, #{laborContractType}, #{role},
#{contractValidDate},
#{contractInvalidDate},
#{contractType}, #{wageApprovedWay}, #{wageCriterion}, #{miurInsurance}, #{whetherOnJob},
#{endowmentInsurance}
@ -71,11 +81,11 @@
</if>
from dual
where NOT EXISTS (
select * from bm_worker_contract where id = #{contractId}
select * from bm_worker_contract where id = #{contractId}
);
</insert>
<insert id="addSysUser" useGeneratedKeys="true" keyProperty = "userId" keyColumn="id">
<insert id="addSysUser" useGeneratedKeys="true" keyProperty="userId" keyColumn="id">
insert into sys_user
(username, password, loginname, id_number,phone,
<if test="orgId != null and orgId !=''">
@ -96,21 +106,34 @@
'1', '1')
</insert>
<insert id="insertSocialSecurityFile">
update bm_worker set social_security_path = #{socialSecurityPath} where id_number = #{idNumber}
update bm_worker
set social_security_path = #{socialSecurityPath}
where id_number = #{idNumber}
</insert>
<insert id="insertWageFile">
insert into bm_worker_payroll(id_number,path,upload_time) values(#{idNumber},#{wageCardPath},#{uploadTime})
insert into bm_worker_payroll(id_number, path, upload_time)
values (#{idNumber}, #{wageCardPath}, #{uploadTime})
</insert>
<insert id="insertContractFile">
insert into bm_worker_contract_witness(contract_id,id_number,witness_path,upload_date)
values(#{contractId},#{idNumber},#{contractPath},now())
insert into bm_worker_contract_witness(contract_id, id_number, witness_path, upload_date)
values (#{contractId}, #{idNumber}, #{contractPath}, now())
</insert>
<insert id="insertTrainResultData">
replace into bm_worker_training_result(id_number, pro_id, company_exam_file, dept_exam_file,
replace
into bm_worker_training_result(id_number, pro_id, company_exam_file, dept_exam_file,
team_exam_file, company_exam_score, dept_exam_score,team_exam_score, is_pass)
values (#{idNumber}, #{proId}, #{companyExamFilePath}, #{deptExamFilePath}, #{teamExamFilePath},
#{companyExamScore}, #{deptExamScore}, #{teamExamScore}, #{isPass})
values (
#{idNumber},
#{proId},
#{companyExamFilePath},
#{deptExamFilePath},
#{teamExamFilePath},
#{companyExamScore},
#{deptExamScore},
#{teamExamScore},
#{isPass}
)
</insert>
<insert id="insertPersonEinData">
@ -138,7 +161,7 @@
<if test="faceFeatureByte != null and faceFeatureByte !=''">
,FACE_FEATURES
</if>
)
)
values (#{idNumber}, 3, #{facePhoto}, #{userId}
<if test="faceFeatureByte != null and faceFeatureByte !=''">
,#{faceFeatureByte}
@ -147,141 +170,218 @@
</insert>
<insert id="insertCheckupFilePath">
INSERT INTO `bm_worker_checkup`(`ID_NUMBER`, `PHOTO_PATH`, `upload_id`)
INSERT INTO `bm_worker_checkup`(`ID_NUMBER`, `PHOTO_PATH`, `upload_id`)
VALUES (#{idNumber}, #{checkupFilePath}, #{userId})
</insert>
<update id="deleteCheckupFilePath">
UPDATE `bm_worker_checkup` SET `IS_ACTIVE` = '0'
WHERE `ID_NUMBER` = #{idNumber} and `PHOTO_PATH` != #{checkupFilePath} and `IS_ACTIVE` = '1'
UPDATE `bm_worker_checkup`
SET `IS_ACTIVE` = '0'
WHERE `ID_NUMBER` = #{idNumber}
and `PHOTO_PATH` != #{checkupFilePath}
and `IS_ACTIVE` = '1'
</update>
<update id="deleteCheckupFile">
UPDATE `bm_worker_checkup` SET `IS_ACTIVE` = '0'
WHERE `ID_NUMBER` = #{idNumber} and `IS_ACTIVE` = '1'
UPDATE `bm_worker_checkup`
SET `IS_ACTIVE` = '0'
WHERE `ID_NUMBER` = #{idNumber}
and `IS_ACTIVE` = '1'
</update>
<update id="updatePerson">
update bm_worker set
`name` = #{name}, `sex` = #{sex}, `ethnic` = #{ethnic}, ein_status = 1,
`birthday` = #{birthday}, `address` = #{address}, `issueauthority` = #{issueauthority},
`sign_date` = #{signDate}, `expiry_date` = #{expiryDate}, `phone` = #{phone},
`cultrue` = #{cultrue}, `political_outlook` = #{politicalOutlook}, `address_phone` = #{addressPhone},
`post_id` = #{postId}, `person_type` = #{personType}, `worker_skill` = #{workerSkill},
`important_person` = #{importantPerson}, `urgent_person` = #{urgentPerson},
`urgent_person_phone` = #{urgentPersonPhone},id_number = #{idNumber},
social_security_number = #{socialSecurityNumber},social_security_unit = #{socialSecurityUnit},
worker_type = #{employmentType}, light_status = #{lightStatus}, is_own_person = #{isOwnPerson},
id_number = #{idNumber}, employment_type = #{employmentTypes} , checkup_date = #{checkupDate}
where id_number = #{id} and is_active = '1'
update bm_worker
set `name` = #{name},
`sex` = #{sex},
`ethnic` = #{ethnic},
ein_status = 1,
`birthday` = #{birthday},
`address` = #{address},
`issueauthority` = #{issueauthority},
`sign_date` = #{signDate},
`expiry_date` = #{expiryDate},
`phone` = #{phone},
`cultrue` = #{cultrue},
`political_outlook` = #{politicalOutlook},
`address_phone` = #{addressPhone},
`post_id` = #{postId},
`person_type` = #{personType},
`worker_skill` = #{workerSkill},
`important_person` = #{importantPerson},
`urgent_person` = #{urgentPerson},
`urgent_person_phone` = #{urgentPersonPhone},
id_number = #{idNumber},
social_security_number = #{socialSecurityNumber},
social_security_unit = #{socialSecurityUnit},
worker_type = #{employmentType},
light_status = #{lightStatus},
is_own_person = #{isOwnPerson},
id_number = #{idNumber},
employment_type = #{employmentTypes},
checkup_date = #{checkupDate}
where id_number = #{id}
and is_active = '1'
</update>
<update id="updateBankData">
update bm_worker_bank set
`bank_card` = #{bankCard}, `bank_name` = #{bankName},id_number = #{idNumber}
where id_number = #{id} and is_active = '1'
update bm_worker_bank
set `bank_card` = #{bankCard},
`bank_name` = #{bankName},
id_number = #{idNumber}
where id_number = #{id}
and is_active = '1'
</update>
<update id="updateIdNumberRelevanceData">
update bm_worker_certificate set id_number = #{idNumber} where id_number = #{id};
update bm_worker_contract set idCard = #{idNumber} where idCard = #{id};
update bm_worker_contract_details set id_card = #{idNumber} where id_card = #{id};
update bm_worker_contract_witness set id_number = #{idNumber} where id_number = #{id};
update bm_worker_ein_history set id_number = #{idNumber} where id_number = #{id};
update bm_worker_give set id_number = #{idNumber} where id_number = #{id};
update bm_worker_goods_collect set id_number = #{idNumber} where id_number = #{id};
update bm_worker_payroll set id_number = #{idNumber} where id_number = #{id};
update bm_worker_photo set id_number = #{idNumber} where id_number = #{id};
update bm_worker_train set id_number = #{idNumber} where id_number = #{id};
update bm_sub_team set team_Idnumber = #{idNumber} where team_Idnumber = #{id};
update bm_team_user_relation set id_number = #{idNumber} where id_number = #{id};
update bm_worker_certificate
set id_number = #{idNumber}
where id_number = #{id};
update bm_worker_contract
set idCard = #{idNumber}
where idCard = #{id};
update bm_worker_contract_details
set id_card = #{idNumber}
where id_card = #{id};
update bm_worker_contract_witness
set id_number = #{idNumber}
where id_number = #{id};
update bm_worker_ein_history
set id_number = #{idNumber}
where id_number = #{id};
update bm_worker_give
set id_number = #{idNumber}
where id_number = #{id};
update bm_worker_goods_collect
set id_number = #{idNumber}
where id_number = #{id};
update bm_worker_payroll
set id_number = #{idNumber}
where id_number = #{id};
update bm_worker_photo
set id_number = #{idNumber}
where id_number = #{id};
update bm_worker_train
set id_number = #{idNumber}
where id_number = #{id};
update bm_sub_team
set team_Idnumber = #{idNumber}
where team_Idnumber = #{id};
update bm_team_user_relation
set id_number = #{idNumber}
where id_number = #{id};
</update>
<update id="updateSysUser">
update sys_user set `username` = #{name},`id_number` = #{idNumber},
`phone` = #{phone}, org_id = #{orgId}
update sys_user
set `username` = #{name},
`id_number` = #{idNumber},
`phone` = #{phone},
org_id = #{orgId}
where phone = #{phone}
</update>
<update id="updatePersonBankData">
update bm_worker_bank set
`bank_card` = #{wageBankCard},
`bank_name` = #{wageBankName},
`roll_bank_name` = #{wageBankSubBranchName}
where id_number = #{idNumber} and is_active = '1'
update bm_worker_bank
set `bank_card` = #{wageBankCard},
`bank_name` = #{wageBankName},
`roll_bank_name` = #{wageBankSubBranchName}
where id_number = #{idNumber}
and is_active = '1'
</update>
<update id="updatePersonContractData"></update>
<update id="updateSocialSecurityPath">
update bm_worker set
social_security_path = null
update bm_worker
set social_security_path = null
where id_number = #{idNumber}
</update>
<!-- update exam_worker_ein_msg set work_type_id = #{postId}-->
<!-- where id_number = #{idNumber} and pro_id = #{proId} and is_active = 1;-->
<!-- update exam_worker_ein_msg set work_type_id = #{postId}-->
<!-- where id_number = #{idNumber} and pro_id = #{proId} and is_active = 1;-->
<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 exam_worker_ein_msg set work_type_id = #{postId}
where id_number = #{idNumber} and pro_id = #{proId} and is_active = 1;
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 exam_worker_ein_msg
set work_type_id = #{postId}
where id_number = #{idNumber}
and pro_id = #{proId}
and is_active = 1;
</update>
<update id="updateRedPersonData">
update bm_worker_red_history set end_time = now(), is_active = 0
update bm_worker_red_history
set end_time = now(),
is_active = 0
where id = #{id}
</update>
<update id="updateExamPersonData">
UPDATE exam_worker_train_complete_result res
INNER JOIN exam_ein_train_bind bind ON res.id = bind.complete_id
INNER JOIN exam_worker_ein_msg ein ON ein.id = bind.ein_id
SET res.is_active = 0
INNER JOIN exam_ein_train_bind bind
ON res.id = bind.complete_id
INNER JOIN exam_worker_ein_msg ein ON ein.id = bind.ein_id
SET res.is_active = 0
WHERE
ein.id = #{id}
</update>
<update id="updateExamPersonBind">
replace into exam_ein_train_bind(complete_id,ein_id)
values
<foreach collection="list" item="item" separator="," >
<foreach collection="list" item="item" separator=",">
(#{item.id},#{item.name})
</foreach>
</update>
<update id="updateExamEinData">
update exam_worker_ein_msg set online = #{online},is_finish = #{isFinish} where id = #{id}
update exam_worker_ein_msg
set online = #{online},
is_finish = #{isFinish}
where id = #{id}
</update>
<update id="updatePrevExamEinData">
update exam_worker_ein_msg set is_active = '0' where id_number = #{idNumber}
update exam_worker_ein_msg
set is_active = '0'
where id_number = #{idNumber}
</update>
<update id="updateSysUserPhone">
update sys_user set `username` = #{name},`id_number` = #{idNumber},
`phone` = #{phone}, org_id = #{orgId}
update sys_user
set `username` = #{name},
`id_number` = #{idNumber},
`phone` = #{phone},
org_id = #{orgId}
where phone = #{oldPhone}
</update>
<update id="updateEvaluationWorkerData">
update bm_evaluation_worker set light_status = #{lightStatus}
where id_number = #{idNumber} and currentDay = CURRENT_DATE()
update bm_evaluation_worker
set light_status = #{lightStatus}
where id_number = #{idNumber}
and currentDay = CURRENT_DATE()
</update>
<delete id="deletePerson">
update bm_worker set
is_active = '0'
update bm_worker
set is_active = '0'
where id_number = #{idNumber}
</delete>
<delete id="deleteBankData">
update bm_worker_bank set
is_active = '0'
update bm_worker_bank
set is_active = '0'
where id_number = #{idNumber}
</delete>
<delete id="deleteTeamData">
update bm_team_user_relation set
is_active = '0'
update bm_team_user_relation
set is_active = '0'
where id_number = #{idNumber}
</delete>
<delete id="delWageFile">
delete from bm_worker_payroll where PATH = #{s}
delete
from bm_worker_payroll
where PATH = #{s}
</delete>
<select id="selectPersonComprehensiveList" resultType="com.bonus.bmw.person.entity.PersonComprehensiveBean">
@ -296,7 +396,8 @@
bweh.exit_status AS exitStatus,
bweh.is_furlough_person,
IF
( bwb.ID_NUMBER IS NOT NULL AND bwb.BANK_CARD IS NOT NULL AND LENGTH(bwb.BANK_CARD) > 0, '已采集', '未采集' ) AS isPayCard,
( bwb.ID_NUMBER IS NOT NULL AND bwb.BANK_CARD IS NOT NULL AND LENGTH(bwb.BANK_CARD) > 0, '已采集', '未采集' ) AS
isPayCard,
IF
(
bwc.contractType = '纸质合同',
@ -382,128 +483,132 @@
</select>
<select id="getExistPerson" resultType="java.lang.String">
select distinct id_number from bm_worker where id_number = #{idNumber} and is_active = '1'
select distinct id_number
from bm_worker
where id_number = #{idNumber}
and is_active = '1'
</select>
<select id="getPersonById" resultType="com.bonus.bmw.person.entity.PersonComprehensiveBean">
SELECT
bw.`name`,
bw.`id_number` AS idNumber,
bw.`sex`,
bw.`birthday`,
bw.`ethnic`,
bw.`issueauthority`,
bw.`address`,
bw.`sign_date` AS signDate,
bw.`expiry_date` AS expiryDate,
bw.`post_id` AS postId,
bw.`phone`,
bwb.BANK_NAME AS bankName,
bwb.BANK_CARD AS bankCard,
bwb.BANK_NAME AS wageBankName,
bwb.BANK_CARD AS wageBankCard,
bwb.ROLL_BANK_NAME AS wageBankSubBranchName,
GROUP_CONCAT(DISTINCT bwp.PATH) as wageCardPath,
bw.person_type AS personType,
bw.`worker_skill` AS workerSkill,
bw.`urgent_person` AS urgentPerson,
bw.`urgent_person_phone` AS urgentPersonPhone,
bw.`political_outlook` AS politicalOutlook,
bw.`cultrue`,
bw.`important_person` AS importantPerson,
bw.`address_phone` AS addressPhone,
bw.social_security_number,
bw.social_security_unit,
bw.social_security_path,
bst.id AS teamId,
IFNULL(btur.team_id, '-1') as proTeamId,
bsc.sub_id as proSubId,
bsc.pro_id as proProId,
btur.is_regular_person as isRegularPerson,
btur.is_foreman as isForeman,
bsc.contract_name AS contractName,
bp.`name` AS proName,
bs.id as subId,
bs.`sub_name` AS subName,
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,
su.id as userId,
su.org_id,
su.pro_id as userProId,
sr.id as roleId,
bweh.project_id as proId,
bwtr.company_exam_file as companyExamFilePath,
bwtr.dept_exam_file as deptExamFilePath,
bwtr.team_exam_file as teamExamFilePath,
bwtr.company_exam_score as companyExamScore,
bwtr.dept_exam_score as deptExamScore,
bwtr.team_exam_score as teamExamScore,
bw.ein_status as einStatus,
bw.worker_type as employmentType,
bw.employment_type as employmentTypes,
face.PHOTO_PATH as facePhoto,
face.FACE_FEATURES AS faceFeatureByte,
bw.is_furlough_person,
if(bwc.contractType = '电子合同', IFNULL(bwc.sub_contract_url,
bwc.person_contract_url), null) as contractUrl,
bw.checkup_date as checkupDate,
checkup.PHOTO_PATH as checkupFilePath
FROM
`bm_worker` bw
left join bm_worker_ein_history bweh on bweh.id_number = bw.id_number
and bweh.is_active = 1
left join bm_worker_training_result bwtr on bwtr.id_number = bw.id_number
and bwtr.pro_id = bweh.project_id and bwtr.is_active = '1'
LEFT JOIN bm_worker_bank bwb ON bw.id_number = bwb.ID_NUMBER
AND bwb.is_active = '1'
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bw.id_number
AND bwp.is_active = '1'
LEFT JOIN bm_team_user_relation btur ON btur.ID_NUMBER = bw.id_number
AND btur.is_active = '1'
LEFT JOIN bm_sub_team bst ON bst.id = bweh.team_id
AND bst.is_active = '1'
LEFT JOIN bm_sub_relation bsr ON bsr.type = 3
AND bsr.is_active = '1'
AND btur.team_id = bsr.v
LEFT JOIN bm_sub_contract bsc ON bsc.is_active = '1'
AND bsc.id = bsr.sub_contract_id
LEFT JOIN bm_subcontractor bs ON bs.id = bweh.sub_id
LEFT JOIN bm_project bp ON bp.id = bsc.pro_id
AND bp.is_active = '1'
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bw.id_number and bweh.contract_id = bwc.id
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'
LEFT JOIN sys_user su ON su.phone = bw.phone
AND su.is_active = '1'
LEFT JOIN sys_role_user sru ON sru.userId = su.id
AND sru.is_active = '1'
LEFT JOIN sys_role sr ON sr.id = sru.roleId and sr.is_active = '1'
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_checkup checkup ON checkup.ID_NUMBER = bw.id_number
AND checkup.IS_ACTIVE = 1
WHERE
bw.is_active = '1'
AND bw.id_number = #{idNumber}
GROUP BY bw.id_number
SELECT bw.`name`,
bw.`id_number` AS idNumber,
bw.`sex`,
bw.`birthday`,
bw.`ethnic`,
bw.`issueauthority`,
bw.`address`,
bw.`sign_date` AS signDate,
bw.`expiry_date` AS expiryDate,
bw.`post_id` AS postId,
bw.`phone`,
bwb.BANK_NAME AS bankName,
bwb.BANK_CARD AS bankCard,
bwb.BANK_NAME AS wageBankName,
bwb.BANK_CARD AS wageBankCard,
bwb.ROLL_BANK_NAME AS wageBankSubBranchName,
GROUP_CONCAT(DISTINCT bwp.PATH) as wageCardPath,
bw.person_type AS personType,
bw.`worker_skill` AS workerSkill,
bw.`urgent_person` AS urgentPerson,
bw.`urgent_person_phone` AS urgentPersonPhone,
bw.`political_outlook` AS politicalOutlook,
bw.`cultrue`,
bw.`important_person` AS importantPerson,
bw.`address_phone` AS addressPhone,
bw.social_security_number,
bw.social_security_unit,
bw.social_security_path,
bst.id AS teamId,
IFNULL(btur.team_id, '-1') as proTeamId,
bsc.sub_id as proSubId,
bsc.pro_id as proProId,
btur.is_regular_person as isRegularPerson,
btur.is_foreman as isForeman,
bsc.contract_name AS contractName,
bp.`name` AS proName,
bs.id as subId,
bs.`sub_name` AS subName,
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,
su.id as userId,
su.org_id,
su.pro_id as userProId,
sr.id as roleId,
bweh.project_id as proId,
bwtr.company_exam_file as companyExamFilePath,
bwtr.dept_exam_file as deptExamFilePath,
bwtr.team_exam_file as teamExamFilePath,
bwtr.company_exam_score as companyExamScore,
bwtr.dept_exam_score as deptExamScore,
bwtr.team_exam_score as teamExamScore,
bw.ein_status as einStatus,
bw.worker_type as employmentType,
bw.employment_type as employmentTypes,
face.PHOTO_PATH as facePhoto,
face.FACE_FEATURES AS faceFeatureByte,
bw.is_furlough_person,
if(bwc.contractType = '电子合同', IFNULL(bwc.sub_contract_url,
bwc.person_contract_url), null) as contractUrl,
bw.checkup_date as checkupDate,
checkup.PHOTO_PATH as checkupFilePath
FROM `bm_worker` bw
left join bm_worker_ein_history bweh on bweh.id_number = bw.id_number
and bweh.is_active = 1
left join bm_worker_training_result bwtr on bwtr.id_number = bw.id_number
and bwtr.pro_id = bweh.project_id and bwtr.is_active = '1'
LEFT JOIN bm_worker_bank bwb ON bw.id_number = bwb.ID_NUMBER
AND bwb.is_active = '1'
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bw.id_number
AND bwp.is_active = '1'
LEFT JOIN bm_team_user_relation btur ON btur.ID_NUMBER = bw.id_number
AND btur.is_active = '1'
LEFT JOIN bm_sub_team bst ON bst.id = bweh.team_id
AND bst.is_active = '1'
LEFT JOIN bm_sub_relation bsr ON bsr.type = 3
AND bsr.is_active = '1'
AND btur.team_id = bsr.v
LEFT JOIN bm_sub_contract bsc ON bsc.is_active = '1'
AND bsc.id = bsr.sub_contract_id
LEFT JOIN bm_subcontractor bs ON bs.id = bweh.sub_id
LEFT JOIN bm_project bp ON bp.id = bsc.pro_id
AND bp.is_active = '1'
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bw.id_number and bweh.contract_id = bwc.id
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'
LEFT JOIN sys_user su ON su.phone = bw.phone
AND su.is_active = '1'
LEFT JOIN sys_role_user sru ON sru.userId = su.id
AND sru.is_active = '1'
LEFT JOIN sys_role sr ON sr.id = sru.roleId and sr.is_active = '1'
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_checkup checkup ON checkup.ID_NUMBER = bw.id_number
AND checkup.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_black_list where id_number = #{idNumber} and status in (1,2) and is_active = '1'
select distinct id_number
from bm_black_list
where id_number = #{idNumber}
and status in (1, 2)
and is_active = '1'
</select>
<select id="exportBasePersonList" resultType="com.bonus.bmw.person.entity.BasePersonBean">
@ -527,123 +632,276 @@
</if>
</select>
<select id="getWorkerBank" resultType="java.lang.Integer">
select COUNT(1) from bm_worker_bank where id_number = #{idNumber} and is_active = '1'
select COUNT(1)
from bm_worker_bank
where id_number = #{idNumber}
and is_active = '1'
</select>
<select id="getSysUserByPhone" resultType="java.lang.Integer">
select count(1) from sys_user where is_active = '1' and phone = #{phone}
select count(1)
from sys_user
where is_active = '1'
and phone = #{phone}
</select>
<select id="selectRedPersonData" resultType="java.lang.String">
select id from bm_worker_red_history
where id_number = #{idNumber} and pro_id = #{proId}
and is_active = 1
limit 1
select id
from bm_worker_red_history
where id_number = #{idNumber}
and pro_id = #{proId}
and is_active = 1 limit 1
</select>
<select id="selectTeamHistoryData" resultType="com.bonus.bmw.person.entity.PersonComprehensiveBean">
select * from bm_worker_team_history
where id_number = #{idNumber} and pro_id = #{proId}
and team_id = #{teamId} and exit_time is not null
limit 1
select *
from bm_worker_team_history
where id_number = #{idNumber}
and pro_id = #{proId}
and team_id = #{teamId}
and exit_time is not null limit 1
</select>
<select id="selectOrgIdByPro" resultType="java.lang.String">
select company_id as orgId from bm_project
select company_id as orgId
from bm_project
where id = #{proId}
</select>
<select id="getContractByIdNumber" resultType="com.bonus.bmw.person.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
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
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
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
WHERE bw.id_number = #{idNumber}
and bw.IS_ACTIVE = 1
GROUP BY bw.id_number
</select>
<select id="getPrevEinHistoryProId" resultType="com.bonus.bmw.person.entity.PersonComprehensiveBean">
SELECT
a.project_id as proId,
b.id,
b.online,
b.is_finish
FROM
bm_worker_ein_history a
LEFT JOIN exam_worker_ein_msg b ON a.ID_NUMBER = b.ID_NUMBER
SELECT a.project_id as proId,
b.id,
b.online,
b.is_finish
FROM bm_worker_ein_history a
LEFT JOIN exam_worker_ein_msg b ON a.ID_NUMBER = b.ID_NUMBER
AND a.project_id = b.pro_id
AND a.ein_time = b.ein_time
WHERE
a.id_number = #{idNumber}
ORDER BY
a.ein_time DESC
LIMIT 1
WHERE a.id_number = #{idNumber}
ORDER BY a.ein_time DESC LIMIT 1
</select>
<select id="getExamResIds" resultType="com.bonus.bmw.person.entity.MapBean">
SELECT
complete_id as id
FROM
exam_ein_train_bind
WHERE
ein_id = #{id}
SELECT complete_id as id
FROM exam_ein_train_bind
WHERE ein_id = #{id}
</select>
<select id="selectTeamIsExistForeman" resultType="java.lang.String">
select id_number from bm_team_user_relation
where team_id = #{teamId} and is_foreman = 1 and is_active = 1
select id_number
from bm_team_user_relation
where team_id = #{teamId}
and is_foreman = 1
and is_active = 1
GROUP BY team_id
</select>
<select id="getHolidaysList" resultType="java.lang.String">
select CONCAT(holiday_name,'-',date) from bm_holidays
where nation = #{nation} and is_active = 1
select CONCAT(holiday_name, '-', date)
from bm_holidays
where nation = #{nation}
and is_active = 1
</select>
<select id="getDownloads" resultType="com.bonus.bmw.person.entity.PersonComprehensiveBean">
SELECT
bw.`name`,
bw.id_number AS idNumber,
bw.sex,
bw.phone,
bw.checkup_date as checkupDate,
checkup.PHOTO_PATH as checkupFilePath,
bp.`name` as proName
bw.`name`,
bw.id_number AS idNumber,
bw.sex,
bw.phone,
bw.checkup_date as checkupDate,
checkup.PHOTO_PATH as checkupFilePath,
bp.`name` as proName
FROM
bm_worker bw
LEFT JOIN bm_worker_checkup checkup ON checkup.ID_NUMBER = bw.id_number
AND checkup.IS_ACTIVE = 1
bm_worker bw
LEFT JOIN bm_worker_checkup checkup ON checkup.ID_NUMBER = bw.id_number
AND checkup.IS_ACTIVE = 1
left join bm_worker_ein_history bweh on bweh.id_number = bw.id_number
and bweh.is_active = '1'
LEFT JOIN bm_project bp ON bp.id = bweh.project_id
AND bp.is_active = '1'
WHERE
bw.IS_ACTIVE = 1 AND checkup.PHOTO_PATH is not null
bw.IS_ACTIVE = 1 AND checkup.PHOTO_PATH is not null
<if test="proId != null and proId != ''">
and bp.id = #{proId}
</if>
GROUP BY bw.id_number
</select>
<select id="getWorkerRosterList" resultType="com.bonus.bmw.person.entity.PersonComprehensiveBean">
SELECT
bpg.id AS proGeneralId,
bpg.`name` AS proGeneralName,
bp.id AS proId,
bp.`name` AS proName,
bp.pro_type AS proType,
CASE
WHEN bp.pro_status = 0 THEN '在建'
WHEN bp.pro_status = 1 THEN '完工'
WHEN bp.pro_status = 2 THEN '筹建'
WHEN bp.pro_status = 3 THEN '停工'
WHEN bp.pro_status = 4 THEN '遗留(收尾)'
END AS proStatusName,
COUNT(DISTINCT CASE WHEN bweh1.IS_ACTIVE = '1' THEN bweh1.id_number END) AS currentOnSiteNum,
COUNT(DISTINCT CASE WHEN bweh2.IS_ACTIVE = '0' THEN bweh2.id_number END) AS exitedNum,
COUNT(DISTINCT bweh3.id_number) AS totalEntryNum,
MIN(bweh3.ein_time) AS firstEntryTime
FROM
bm_project_general bpg
LEFT JOIN
bm_project bp ON bp.project_general_id = bpg.id AND bp.is_active = '1'
LEFT JOIN
bm_worker_ein_history bweh1 ON bweh1.project_id = bp.id AND bweh1.IS_ACTIVE = '1'
LEFT JOIN
bm_worker_ein_history bweh2 ON bweh2.project_id = bp.id AND bweh2.IS_ACTIVE = '0'
LEFT JOIN
bm_worker_ein_history bweh3 ON bweh3.project_id = bp.id
WHERE
bpg.is_active = '1' AND bp.id is not null
<if test="params.proGeneralName != null and params.proGeneralName != ''">
and locate (#{params.proGeneralName},bpg.`name`)
</if>
<if test="params.proId != null and params.proId != ''">
and locate (#{params.proId},bp.id)
</if>
<if test="params.proStatusId != null and params.proStatusId != ''">
and locate (#{params.proStatusId},bp.pro_status)
</if>
GROUP BY
bpg.id, bp.id
</select>
<select id="getWorkerRosterProList" resultType="com.bonus.bmw.person.entity.PersonComprehensiveBean">
SELECT t.id_number AS idNumber,
t.name AS name,
t.sex AS sex,
t.birthday AS birthday,
t.ethnic AS ethnic,
t.issueauthority AS issueauthority,
t.address AS address,
t.sign_date AS signDate,
t.expiry_date AS expiryDate,
t.bankName,
t.bankCard,
t.bankBranch,
t.contractCode,
t.laborContractType AS contractType,
t.contractValidDate AS contractValidDate,
t.contractInvalidDate AS contractInvalidDate,
t.wageApprovedWay AS wageApprovedWay,
t.wageCriterion AS wageCriterion,
t.isFurloughPerson,
t.workerType,
t.personType,
t.cultrue,
t.politicalOutlook,
t.phone,
t.postId,
t.postName,
t.subName,
t.teamName,
t.urgentPerson,
t.urgentPersonPhone,
t.lightStatus,
t.isOwnPerson,
t.socialSecurityNumber,
t.socialSecurityUnit,
t.checkupDate,
GROUP_CONCAT(
CONCAT('入场:', bweh.ein_time, ', 出场:', IFNULL(bweh.exit_time, '未出场')) ORDER BY bweh.ein_time DESC
SEPARATOR ' | '
) AS remark
FROM (SELECT bw.id_number,
bw.name,
bw.sex,
bw.birthday,
bw.ethnic,
bw.issueauthority,
bw.address,
bw.sign_date,
bw.expiry_date,
bwb.BANK_NAME AS bankName,
bwb.BANK_CARD AS bankCard,
bwb.BANK_INTER AS bankBranch,
bwc.contractCode,
bwc.laborContractType,
bwc.contractValidDate,
bwc.contractInvalidDate,
bwc.wageApprovedWay,
bwc.wageCriterion,
bweh.is_furlough_person AS isFurloughPerson,
bweh.ein_time AS einTime,
bweh.exit_time AS exitTime,
bw.worker_type AS workerType,
bw.person_type AS personType,
bw.cultrue AS cultrue,
bw.political_outlook AS politicalOutlook,
bw.phone AS phone,
bw.post_id AS postId,
td.`value` AS postName,
bs.sub_name AS subName,
bst.team_name AS teamName,
bw.urgent_person AS urgentPerson,
bw.urgent_person_phone AS urgentPersonPhone,
bw.light_status AS lightStatus,
bw.is_own_person AS isOwnPerson,
bw.social_security_number AS socialSecurityNumber,
bw.social_security_unit AS socialSecurityUnit,
bw.checkup_date AS checkupDate,
@rn := IF(@prev = bw.id_number, @rn + 1, 1) AS rn,
@prev := bw.id_number
FROM
bm_project bp
CROSS JOIN (SELECT @rn := 0, @prev := NULL) vars
LEFT JOIN
bm_worker_ein_history bweh
ON bweh.project_id = bp.id
LEFT JOIN
bm_worker bw ON bw.id_number = bweh.id_number
LEFT JOIN
bm_worker_contract bwc ON bwc.idCard = bw.id_number AND bwc.is_active = '1'
LEFT JOIN
bm_worker_bank bwb ON bwb.ID_NUMBER = bw.id_number
LEFT JOIN t_dict td ON td.id = bw.post_id
AND td.is_active = '1'
LEFT JOIN bm_subcontractor bs ON bs.id = bweh.sub_id
LEFT JOIN bm_sub_team bst ON bst.id = bweh.team_id
AND bst.is_active = '1'
WHERE
bp.id = '796'
ORDER BY
bw.id_number, bweh.ein_time DESC) t
LEFT JOIN
bm_worker_ein_history bweh ON bweh.id_number = t.id_number
WHERE t.rn = 1
GROUP BY t.id_number
</select>
<select id="getBasePersonLists" resultType="com.bonus.bmw.person.entity.PersonComprehensiveBean">
select
bw.name as name,bw.id_number as idNumber,bw.phone as phone,

View File

@ -36,6 +36,14 @@
update bm_worker set ein_status = 1 where id_number = #{idNumber};
</update>
<update id="updateAtt">
UPDATE
fc_team_attendance_content
SET
is_active = '0'
WHERE id = #{id}
</update>
<delete id="delPerson">
DELETE
FROM bm_no_signal_team_person
@ -225,6 +233,7 @@
<select id="getNoAttList" resultType="com.bonus.bmw.team.entity.NoSignalTeamAttendBean">
SELECT
ftac.id,
bw.`name` AS personName,
LEFT(ftac.attendance_time,10) AS attendanceTime,
ftac.remark AS remark

View File

@ -1118,15 +1118,20 @@ function workPerson(subCompanyId) {
success: function (data) {
if (data.code == 200) {
var str = data.data
sexECharts(str.maleNum, str.femaleNum);
workTypeECharts(str.pgNum, str.jgNum, str.gkNum, str.dhNum, str.qtNum)
ageECharts(str.twentyNum, str.thirtyNum, str.fortyNum, str.fiftyNum, str.sixtyNum)
rygECharts(str.greenNum, str.yellowNum, str.redNum)
personType(str.formalNum, str.temporaryNum);
personType1(str.localNum, str.noLocalNum);
closeLayer();
if (flag) {
closeLayer1();
if(str){
sexECharts(str.maleNum, str.femaleNum);
workTypeECharts(str.pgNum, str.jgNum, str.gkNum, str.dhNum, str.qtNum)
ageECharts(str.twentyNum, str.thirtyNum, str.fortyNum, str.fiftyNum, str.sixtyNum)
rygECharts(str.greenNum, str.yellowNum, str.redNum)
personType(str.formalNum, str.temporaryNum);
personType1(str.localNum, str.noLocalNum);
closeLayer();
if (flag) {
closeLayer1();
}
}else{
layer.close(index1);
layer.close(index2);
}
}
},

View File

@ -154,9 +154,77 @@ function init(){
{"data": "personName","width":"10%"},
{"data": "attendanceTime","width":"10%"},
{"data": "remark","width":"10%"},
{"data": "","width":"10%",
"render": function (data, type, row) {
var state = row['state'];
var teamStatus = row['teamStatus'];
var id = row['id'];
var html = '';
html += buttonUpdate(id, "", pers);
return html;
}
},
],
"order": [[0, "desc"], [1, "asc"]] //在栏目列上显示排序功能
});
}
function buttonUpdate(id, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("<button class='layui-btn layui-btn-xs' title='取消' onclick='updateView(\"" + id + "\")'>取消</button>");
return btn.prop("outerHTML");
}
/**
* 修改
* */
function updateView(id) {
let index = layer.confirm("是否确定取消考勤数据?",function () {
$.ajax({
type: 'post',
contentType: "application/x-www-form-urlencoded",
url: ctxPath + '/NoSignalTeamAttend/updateAtt',
dataType: 'json',
data: {
"id": id
},
success: function (data) {
layer.close(index);
if (data.code == 200) {
top.layer.alert('取消考勤成功', {icon: 1});
example.ajax.reload(); // 刷新页面
} else {
layer.msg("取消考勤失败", {icon: 2},function () {
example.ajax.reload(); // 刷新页面
});
}
}
})
})
/*var height = '85%';
var width = '60%';
var index = layer.open({
title: ['无信号考勤修改', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: './noSignalTeamSetUpAttFrom.html',
area: [width, height],
maxmin: false,
btn: ['确定', '关闭'],
success: function (layero, index) {
//打开页面成功时执行
var myIframe = window[layero.find('iframe')[0]['name']];
myIframe.setDat(id); //aaa()为子页面的方法
},
yes: function (index, layero) {
// 获取弹出层中的form表单元素
var formSubmit = layer.getChildFrame('form', index);
var submited = formSubmit.find('button')[0];
submited.click();
}
});*/
}

View File

@ -0,0 +1,53 @@
var layer
var form
layui.use(['layer','laydate','form'], function () {
layer = layui.layer;
var laydate = layui.laydate;
form = layui.form;
// 验证成功后才会执行下面的操作
form.on('submit(formDemo)', function (data) {
update(data)
});
});
function update(formData) {
// 加载提示
let loadingMsg = layer.msg('数据请求中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址
let formUrl = ctxPath + '/NoSignalTeamSetUp/updNoSignalTeam';
$.ajax({
type: 'POST',
async: false, // 默认异步true,false表示同步
url: formUrl, // 请求地址
contentType: "application/json; charset=utf-8",
dataType: 'json', // 服务器返回数据类型
data: JSON.stringify(formData.field), //获取提交的表单字段
success: function (data) {
layer.close(loadingMsg); // 关闭提示层
if(data.code == 200){
layer.alert(data.msg, {icon: 1},()=>{
reloading();
});
}else{
layer.alert(data.msg, {icon: 2});
}
},
error: function (XMLHttpRequest, textStatus, e) {
layer.close(loadingMsg);
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
}
});
}
function setDat(id) {
alert(id)
$("#id").val(id)
form.render()
}
//设置弹窗关闭
function reloading() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
window.parent.location.reload();
}

View File

@ -0,0 +1,100 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>农民工花名册</title>
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/dataTables.bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../../../layui/css/layui.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/work/data_table_setting.css">
</head>
<body>
<div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<header style="height: 100%">
<div align="left">
<table style="width: 100%">
<tr>
<td>
<form class="layui-form" onsubmit="return false">
<div class="form-group" style="margin-top: 0.5%">
<div class="layui-inline">
<div class="layui-input-inline" style="display: flex;align-items: center">
<input id="proGeneralName" name="proGeneralName" type="text" class="layui-input" placeholder="请输入项目部">
</div>
</div>
<div class="layui-inline" >
<label class="layui-form-label" >工程:</label>
<div class="layui-input-inline" >
<select id="proId" name="proId" lay-search="" >
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label" >工程状态:</label>
<div class="layui-input-inline" style="width:100px">
<select id="proStatusId" name="proStatusId">
<option value="">全部</option>
<option value="0">在建</option>
<option value="1">完工</option>
<option value="2">筹建</option>
<option value="3">停工</option>
<option value="4">遗留(收尾)</option>
</select>
</div>
</div>
<button id="searchBt" class="layui-btn layui-btn-sm" style="">查询
</button>
<button class="layui-btn layui-btn-sm"
onclick="checkup()" >批量导出体检报告
</button>
</div>
</form>
</td>
</tr>
</table>
</div>
</header>
<div>
<div class="widget-body no-padding">
<table id="dt-table" class="table table-striped table-bordered table-hover" style="width:100%">
<thead>
<tr>
</tr>
<tr>
<th>序号</th>
<th>项目部</th>
<th>工程名称</th>
<th>工程类型</th>
<th>工程状态</th>
<th>当前在场人数</th>
<th>已出场人数</th>
<th>累计入场人数</th>
<th>第一次人员入场时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript" src="../../../../js/libs/jquery-3.6.0.js"></script>
<script type="text/javascript" src="../../../../js/jq.js"></script>
<script type="text/javascript" src="../../../../js/plugin/datatables/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="../../../../js/plugin/datatables/dataTables.bootstrap.min.js"></script>
<script type="text/javascript" src="../../../../js/my/permission.js"></script>
<script type="text/javascript" src="../../../../layui/layui.js"></script>
<script type="text/javascript" src="../../../../js/publicJs.js"></script>
<script type="text/javascript" src="../../../../js/dict.js"></script>
<script type="text/javascript" src="../../../../js/select.js"></script>
<script type="text/javascript" src="workerRosterList.js"></script>

View File

@ -0,0 +1,197 @@
var pers = checkPermission();
var example;
layui.use(['form','layer'], function () {
$("#searchBt").click(function () {
example.ajax.reload();
});
init();
getProByOrgId("","","");
});
function init(){
example =
$('#dt-table').DataTable({
"sort": false,
"searching": false,
"processing": true, //加载数据时显示进度状态
"serverSide": true,
//表头固定
"fixedHeader": true,
"scrollX": "500px",
"scrollY": "650px",
"scrollCollapse": true,
"language": {
"url": ctxPath + "/js/plugin/datatables/Chinese.lang"
},
"ajax": {
"url": ctxPath + "/personComprehensive/getWorkerRosterList",
"type": "post",
"data": function (d) {
d.proGeneralName = $("#proGeneralName").val();
d.proId = $('#proId').val();
d.proStatusId = $("#proStatusId").val();
},
"error": function (xhr, textStatus, errorThrown) {
var msg = xhr.responseText;
console.log(msg);
var response = JSON.parse(msg);
var code = response.code;
var message = response.message;
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("smz-token");
layer.msg("token过期请先登录", {shift: -1, time: 1000}, function () {
location.href = ctxPath + '/login.html';
});
} else if (code == 403) {
console.log("未授权:" + message);
layer.msg('未授权');
} else if (code == 500) {
console.log('系统错误:' + message);
}
}
},
"drawCallback": function() {
// alert( '表格重绘了' );
var thisDataTable = $('#dt-table').DataTable();
$(".pagination").append("<li>" +
"<a class='paginate_button' style='padding:4px;' href='#' tabindex='0'>到 <input style='margin:0px;width:40px;' id='changePage'> 页</a>" +
"<a class='paginate_button' style='margin-bottom:1px' href='#' tabindex='0' id='dataTable-btn'>确认</a></li>");
//点击按钮跳转指定页数
$('#dataTable-btn').click(function (e) {
if ($("#changePage").val() && $("#changePage").val() > 0) {
var redirectpage = $("#changePage").val() - 1;
} else {
var redirectpage = 0;
}
thisDataTable.page(redirectpage).draw( 'page' );
});
//敲击回车键跳转指定页数
$("#changePage").keypress(function (e) {
if(event.keyCode==13){
if ($("#changePage").val() && $("#changePage").val() > 0) {
var redirectpage = $("#changePage").val() - 1;
} else {
var redirectpage = 0;
}
thisDataTable.page(redirectpage).draw( 'page' );
}
});
},
"dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>>",
"columns": [
{
width: '4%',
data: function (row, type, set, meta) {
var c = meta.settings._iDisplayStart + meta.row + 1;
return c;
}
},
{"data": "proGeneralName","width":"5%"},
{"data": "proName","width":"12%"},
{"data": "proType","width":"7%"},
{"data": "proStatusName","width":"8%"},
{"data": "","width":"12%",
"render": function (data, type, row) {
var currentOnSiteNum = row['currentOnSiteNum'];
if (currentOnSiteNum == null || currentOnSiteNum == "null" || currentOnSiteNum == "" || currentOnSiteNum == "0") {
return "0";
} else {
return `<span style="color: #20BE6B;font-size: 18px;font-weight: 600;">${currentOnSiteNum}</span>`;
}
}
},
{"data": "","width":"12%",
"render": function (data, type, row) {
var exitedNum = row['exitedNum'];
if (exitedNum == null || exitedNum == "null" || exitedNum == "" || exitedNum == "0") {
return "0";
} else {
return `<span style="color: red;font-size: 18px;font-weight: 600;">${exitedNum}</span>`;
}
}
},
{"data": "","width":"12%",
"render": function (data, type, row) {
var totalEntryNum = row['totalEntryNum'];
if (totalEntryNum == null || totalEntryNum == "null" || totalEntryNum == "" || totalEntryNum == "0") {
return "0";
} else {
return `<span style="color: #333333;font-size: 18px;font-weight: 600;">${totalEntryNum}</span>`;
}
}
},
{"data": "firstEntryTime","width":"12%"},
{
"data": "",
"width":"12%",
"defaultContent": "",
"orderable": false,
"render": function (data, type, row) {
var proId = row['proId'];
var html = '';
html += buttonCheck(proId, "", pers);
html += buttonUpdate(proId, "", pers);
return html;
}
}
],
"order": [[0, "desc"], [1, "asc"]] //在栏目列上显示排序功能
});
}
function buttonCheck(proId, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("<button class='layui-btn layui-btn-xs' title='详情' onclick='checkView(\"" + proId + "\")'>详情</button>");
return btn.prop("outerHTML");
}
/**
* 详情
* */
function checkView(proId) {
var height = '90%';
var width = '80%';
var index = layer.open({
title: ['详情', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: 'workerRosterProList.html',
area: [width, height],
maxmin: false,
success: function (layero, index) {
var myIframe = window[layero.find('iframe')[0]['name']];
var fnc = myIframe.setData(proId); //aaa()为子页面的方法
},
});
// $.ajax({
// type: 'get',
// contentType: "application/x-www-form-urlencoded",
// url: ctxPath + '/personComprehensive/getWorkerRosterProList'+proId,
// dataType: 'json',
// success: function (data) {
//
// }
// })
}
function buttonUpdate(idNumber, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("<button class='layui-btn layui-btn-xs' title='导出' onclick='updateView(\"" + idNumber + "\")'>导出</button>");
return btn.prop("outerHTML");
}
/**
* 导出
* */
function updateView(idNumber) {
}

View File

@ -0,0 +1,126 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>农民工花名册-工程</title>
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/dataTables.bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../../../layui/css/layui.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/work/data_table_setting.css">
</head>
<body>
<div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<header style="height: 100%">
<div align="left">
<table style="width: 100%">
<tr>
<td>
<form class="layui-form" onsubmit="return false">
<div class="form-group" style="margin-top: 0.5%">
<div class="layui-inline">
<div class="layui-input-inline" style="display: flex;align-items: center">
<input id="proGeneralName" name="proGeneralName" type="text" class="layui-input" placeholder="请输入项目部">
</div>
</div>
<div class="layui-inline" >
<label class="layui-form-label" >工程:</label>
<div class="layui-input-inline" >
<select id="proId" name="proId" lay-search="" >
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label" >工程状态:</label>
<div class="layui-input-inline" style="width:100px">
<select id="proStatusId" name="proStatusId">
<option value="">全部</option>
<option value="0">在建</option>
<option value="1">完工</option>
<option value="2">筹建</option>
<option value="3">停工</option>
<option value="4">遗留(收尾)</option>
</select>
</div>
</div>
<button id="searchBt" class="layui-btn layui-btn-sm" style="">查询
</button>
<button class="layui-btn layui-btn-sm"
onclick="checkup()" >批量导出体检报告
</button>
</div>
</form>
</td>
</tr>
</table>
</div>
</header>
<div>
<div class="widget-body no-padding">
<table id="dt-table" class="table table-striped table-bordered table-hover" style="width:100%">
<thead>
<tr>
<th rowspan="2">序号</th>
<th rowspan="2">合同编号</th>
<th colspan="8">身份证信息</th>
<th colspan="3">银行卡信息</th>
<th rowspan="2">体检日期</th>
<th rowspan="2">工种</th>
<th rowspan="2">手机号码</th>
<th rowspan="2">所属分包单位</th>
<th rowspan="2">所属班组</th>
<th colspan="2">亲属</th>
<th colspan="3">合同</th>
<th colspan="2">工资</th>
<th rowspan="2">进场时间</th>
<th rowspan="2">退场时间</th>
<th rowspan="2">备注</th>
<th rowspan="2">用工类型</th>
</tr>
<tr>
<th>姓名</th>
<th>性别</th>
<th>身份证号</th>
<th>出生日期</th>
<th>民族</th>
<th>签发机关</th>
<th>身份证住址</th>
<th>身份证有效期</th>
<th>银行名称</th>
<th>银行卡号</th>
<th>银行卡联行号</th>
<th>紧急联系人</th>
<th>紧急联系人电话</th>
<th>合同期限类型</th>
<th>签订时间</th>
<th>终止日期</th>
<th>工资核定方式</th>
<th>工资核定标准</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript" src="../../../../js/libs/jquery-3.6.0.js"></script>
<script type="text/javascript" src="../../../../js/jq.js"></script>
<script type="text/javascript" src="../../../../js/plugin/datatables/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="../../../../js/plugin/datatables/dataTables.bootstrap.min.js"></script>
<script type="text/javascript" src="../../../../js/my/permission.js"></script>
<script type="text/javascript" src="../../../../layui/layui.js"></script>
<script type="text/javascript" src="../../../../js/publicJs.js"></script>
<script type="text/javascript" src="../../../../js/dict.js"></script>
<script type="text/javascript" src="../../../../js/select.js"></script>
<script type="text/javascript" src="workerRosterProList.js"></script>

View File

@ -0,0 +1,272 @@
var pers = checkPermission();
var example;
var proIds;
function setData(proId){
proIds = proId;
layui.use(['form','layer'], function () {
$("#searchBt").click(function () {
example.ajax.reload();
});
init();
// getProByOrgId("","","");
});
}
function init(){
example =
$('#dt-table').DataTable({
"sort": false,
"searching": false,
"processing": true, //加载数据时显示进度状态
"serverSide": true,
//表头固定
"fixedHeader": true,
"scrollCollapse": true,
"scrollX": true, // 启用横向滚动
"autoWidth": false, // 禁用自动宽度计算
"scrollY": "600px", // 设置垂直滚动
"language": {
"url": ctxPath + "/js/plugin/datatables/Chinese.lang"
},
"ajax": {
"url": ctxPath + "/personComprehensive/getWorkerRosterProList",
"type": "post",
"data": function (d) {
d.proId =proIds
// d.proGeneralName = $("#proGeneralName").val();
// d.proId = $('#proId').val();
// d.proStatusId = $("#proStatusId").val();
},
"error": function (xhr, textStatus, errorThrown) {
var msg = xhr.responseText;
console.log(msg);
var response = JSON.parse(msg);
var code = response.code;
var message = response.message;
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("smz-token");
layer.msg("token过期请先登录", {shift: -1, time: 1000}, function () {
location.href = ctxPath + '/login.html';
});
} else if (code == 403) {
console.log("未授权:" + message);
layer.msg('未授权');
} else if (code == 500) {
console.log('系统错误:' + message);
}
}
},
"drawCallback": function() {
// alert( '表格重绘了' );
var thisDataTable = $('#dt-table').DataTable();
$(".pagination").append("<li>" +
"<a class='paginate_button' style='padding:4px;' href='#' tabindex='0'>到 <input style='margin:0px;width:40px;' id='changePage'> 页</a>" +
"<a class='paginate_button' style='margin-bottom:1px' href='#' tabindex='0' id='dataTable-btn'>确认</a></li>");
//点击按钮跳转指定页数
$('#dataTable-btn').click(function (e) {
if ($("#changePage").val() && $("#changePage").val() > 0) {
var redirectpage = $("#changePage").val() - 1;
} else {
var redirectpage = 0;
}
thisDataTable.page(redirectpage).draw( 'page' );
});
//敲击回车键跳转指定页数
$("#changePage").keypress(function (e) {
if(event.keyCode==13){
if ($("#changePage").val() && $("#changePage").val() > 0) {
var redirectpage = $("#changePage").val() - 1;
} else {
var redirectpage = 0;
}
thisDataTable.page(redirectpage).draw( 'page' );
}
});
},
"dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>>",
"columns": [
{
width: '60px',
data: function (row, type, set, meta) {
var c = meta.settings._iDisplayStart + meta.row + 1;
return c;
}
},
{"data": "contractCode", "width":"180px"},
{"data": "name", "width":"100px"},
{"data": "sex", "width":"80px"},
{"data": "idNumber", "width":"180px"},
{"data": "birthday", "width":"120px"},
{"data": "ethnic", "width":"100px"},
{"data": "issueauthority", "width":"200px"},
{"data": "address", "width":"300px"},
{
"data": "",
"width":"200px",
"render": function (data, type, row) {
var signDate = row['signDate'];
var expiryDate = row['expiryDate'];
var html = signDate +'~' + expiryDate;
return html;
}
},
{"data": "bankName", "width":"180px"},
{"data": "bankCard", "width":"200px"},
{"data": "bankBranch", "width":"250px"},
{"data": "checkupDate", "width":"120px"},
{"data": "postName", "width":"150px"},
{"data": "phone", "width":"120px"},
{"data": "subName", "width":"150px"},
{"data": "teamName", "width":"150px"},
{"data": "urgentPerson", "width":"120px"},
{"data": "urgentPersonPhone", "width":"120px"},
{"data": "laborContractType", "width":"120px"},
{"data": "contractValidDate", "width":"120px"},
{"data": "contractInvalidDate", "width":"120px"},
{"data": "wageApprovedWay", "width":"120px"},
{"data": "wageCriterion", "width":"120px"},
{"data": "einTime", "width":"120px"},
{"data": "exitTime", "width":"120px"},
{"data": "remark", "width":"200px"},
{"data": "workerType", "width":"120px"},
],
"order": [[0, "desc"], [1, "asc"]],
"createdRow": function(row, data, dataIndex) {
$(row).css({
"height": "40px"
});
}
});
// 基础样式
var baseStyle = {
"border": "1px solid #e6e6e6",
"padding": "8px",
"text-align": "center",
"font-size": "13px",
"font-family": "Microsoft YaHei"
};
// 表格整体样式
$('#dt-table').css({
"border-collapse": "collapse",
"width": "100%",
"background-color": "#fff"
});
// 表头样式
$('#dt-table thead th').css({
...baseStyle,
"background-color": "#f2f2f2",
"font-weight": "500",
"color": "#333"
});
// 单元格样式
$('#dt-table tbody td').css({
...baseStyle,
"background-color": "#fff",
"color": "#666",
"white-space": "nowrap",
"overflow": "hidden",
"text-overflow": "ellipsis",
"width":"100px"
});
// 奇数行样式
$('#dt-table tbody tr:odd').css({
"background-color": "#fafafa"
});
// hover效果
$('#dt-table tbody tr').hover(
function() {
$(this).css({
"background-color": "#f5f5f5"
});
},
function() {
var isOdd = $(this).index() % 2 === 1;
$(this).css({
"background-color": isOdd ? "#fafafa" : "#fff"
});
}
);
// 分页样式
$('.dataTables_paginate').css({
"margin-top": "10px"
});
$('.paginate_button').css({
"padding": "5px 10px",
"margin": "0 2px",
"border": "1px solid #ddd",
"background-color": "#fff",
"cursor": "pointer"
});
$('.paginate_button.current').css({
"background-color": "#009688",
"color": "#fff",
"border-color": "#009688"
});
}
function buttonCheck(proId, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("<button class='layui-btn layui-btn-xs' title='详情' onclick='checkView(\"" + proId + "\")'>详情</button>");
return btn.prop("outerHTML");
}
/**
* 详情
* */
function checkView(proId) {
var height = '90%';
var width = '80%';
$.ajax({
type: 'get',
contentType: "application/x-www-form-urlencoded",
url: ctxPath + '/personComprehensive/getWorkerRosterProList'+proId,
dataType: 'json',
success: function (data) {
var index = layer.open({
title: ['详情', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
type: 2,
content: 'workerRosterProList.html',
area: [width, height],
maxmin: false,
success: function (layero, index) {
var myIframe = window[layero.find('iframe')[0]['name']];
var fnc = myIframe.setData(data.data); //aaa()为子页面的方法
},
});
}
})
}
function buttonUpdate(idNumber, permission, pers) {
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var btn = $("<button class='layui-btn layui-btn-xs' title='导出' onclick='updateView(\"" + idNumber + "\")'>导出</button>");
return btn.prop("outerHTML");
}
/**
* 导出
* */
function updateView(idNumber) {
}

View File

@ -55,6 +55,7 @@
<th>姓名</th>
<th>自动打卡日期</th>
<th>备注</th>
<th>操作</th>
</tr>
</thead>
<tbody>

View File

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>无信号班组设置-考勤取消</title>
<link rel="stylesheet" type="text/css" media="screen" href="../../../../layui/css/layui.css">
</head>
<body>
<div id="content">
<div style="margin-left: 17%;margin-top: 5%;">
<form class="layui-form" onsubmit="return false;">
<input type="hidden" id="id" name="id">
<div class="layui-form-item">
<label class="layui-form-label" style="width: 150px">备注描述:</label>
<div class="layui-input-inline">
<input type="text" name="remark" id="remark" class="layui-input">
</div>
</div>
<div class="layui-form-item" style="display: none">
<div class="layui-input-block">
<button type="button" class="layui-btn submit" id="commit" lay-submit lay-filter="formDemo">提交</button>
</div>
</div>
</form>
</div>
</div>
</body>
<script type="text/javascript" src="../../../../js/jquery-3.6.0.js"></script>
<script type="text/javascript" src="../../../../layui/layui.js"></script>
<script type="text/javascript" src="../../../../js/publicJs.js"></script>
<script type="text/javascript" src="../../../../js/jq.js"></script>
<script src="../../../../js/work/team/noSignalTeam/noSignalTeamSetUpAttFrom.js"></script>
</html>