人员统计
This commit is contained in:
parent
e1409d0470
commit
354049fcf1
|
|
@ -2,8 +2,11 @@ package com.bonus.bmw.controller;
|
|||
|
||||
import com.bonus.bmw.domain.po.HomePagePo;
|
||||
import com.bonus.bmw.domain.vo.HomePageSubProVo;
|
||||
import com.bonus.bmw.domain.vo.PmWorker;
|
||||
import com.bonus.bmw.domain.vo.PmWorkerVo;
|
||||
import com.bonus.bmw.service.WorkerStatisticsService;
|
||||
import com.bonus.common.core.web.controller.BaseController;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.core.web.page.TableDataInfo;
|
||||
import com.bonus.common.log.annotation.SysLog;
|
||||
import com.bonus.common.log.enums.OperaType;
|
||||
|
|
@ -36,7 +39,7 @@ public class WorkerStatisticsController extends BaseController {
|
|||
* @param o
|
||||
* @return
|
||||
*/
|
||||
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth(isUser = false), requiresPermissions = @RequiresPermissions("worker:statistics:query"))
|
||||
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("worker:statistics:query"))
|
||||
@GetMapping("/getWorkerStatisticsTable")
|
||||
@SysLog(title = "人员统计", businessType = OperaType.QUERY, logType = 0, module = "人员统计->人员统计", details = "人员统计")
|
||||
public TableDataInfo getWorkerStatisticsTable(HomePagePo o) {
|
||||
|
|
@ -50,4 +53,41 @@ public class WorkerStatisticsController extends BaseController {
|
|||
return getDataTableError(new ArrayList<>());
|
||||
}
|
||||
|
||||
/**
|
||||
* 身份证信息
|
||||
* @param pmWorker
|
||||
* @return
|
||||
*/
|
||||
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("worker:statistics:query"))
|
||||
@GetMapping("/getWorkerDetail")
|
||||
@SysLog(title = "身份证信息", businessType = OperaType.QUERY, logType = 0, module = "人员统计->身份证信息", details = "身份证信息")
|
||||
public AjaxResult getWorkerDetail(PmWorker pmWorker) {
|
||||
try {
|
||||
PmWorkerVo pmWorkerVo = service.getWorkerDetail(pmWorker);
|
||||
return success(pmWorkerVo);
|
||||
} catch (Exception e) {
|
||||
logger.error(e.toString(), e);
|
||||
return error("查询身份证信息失败!");
|
||||
}
|
||||
}
|
||||
|
||||
/* *//**
|
||||
* 考勤信息
|
||||
* @param pmWorker
|
||||
* @return
|
||||
*//*
|
||||
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("worker:statistics:query"))
|
||||
@GetMapping("/getWorkerEinDayRecordDetail")
|
||||
@SysLog(title = "考勤信息", businessType = OperaType.QUERY, logType = 0, module = "人员统计->考勤信息", details = "考勤信息")
|
||||
public AjaxResult getWorkerEinDayRecordDetail(PmWorker pmWorker) {
|
||||
try {
|
||||
PmWorkerVo pmWorkerVo = service.getWorkerEinDayRecordDetail(pmWorker);
|
||||
return success(pmWorkerVo);
|
||||
} catch (Exception e) {
|
||||
logger.error(e.toString(), e);
|
||||
return error("查询身份证信息失败!");
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
package com.bonus.bmw.domain.vo;
|
||||
|
||||
/**
|
||||
* @author 马三炮
|
||||
* @date 2025/10/11
|
||||
*/
|
||||
public class BmWorkerEinDayRecordVo {
|
||||
|
||||
/**
|
||||
* 考勤日期
|
||||
*/
|
||||
public String attDay;
|
||||
|
||||
/**
|
||||
* 考勤状态
|
||||
*/
|
||||
public String attStatus;
|
||||
|
||||
/**
|
||||
* 考勤时间
|
||||
*/
|
||||
public String attTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
package com.bonus.bmw.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author 马三炮
|
||||
* @date 2025/10/11
|
||||
*/
|
||||
@Data
|
||||
public class BmWorkerEinProRecord {
|
||||
|
||||
/**
|
||||
* 入场时间
|
||||
*/
|
||||
private String einTime;
|
||||
|
||||
/**
|
||||
* 出场时间
|
||||
*/
|
||||
private String exitTime;
|
||||
|
||||
/**
|
||||
* 工程名
|
||||
*/
|
||||
private String proName;
|
||||
|
||||
/**
|
||||
* 分包
|
||||
*/
|
||||
private String subName;
|
||||
|
||||
/**
|
||||
* 班组
|
||||
*/
|
||||
private String teamName;
|
||||
|
||||
/**
|
||||
* 工种
|
||||
*/
|
||||
private String postName;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 出入场状态 1 已入场 2已出场
|
||||
*/
|
||||
private String einStatus;
|
||||
|
||||
/**
|
||||
* 0 未上传 1已上传
|
||||
*/
|
||||
private String isUploadFile;
|
||||
}
|
||||
|
|
@ -49,7 +49,10 @@ public class HomePageSubProVo {
|
|||
private String lightStatus;
|
||||
private String isAtt;
|
||||
|
||||
private String einTime;
|
||||
private String einStatus;
|
||||
private String exitTime;
|
||||
private String isUploadFile;
|
||||
private String idNumber;
|
||||
private String daysSinceExit;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,139 @@
|
|||
package com.bonus.bmw.domain.vo;
|
||||
|
||||
import com.bonus.common.core.annotation.Excel;
|
||||
import com.bonus.system.api.model.UploadFileVo;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 人员基础信息表
|
||||
*/
|
||||
@Data
|
||||
public class PmWorkerVo {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
@Excel(name = "姓名", sort = 2)
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 身份证
|
||||
*/
|
||||
@Excel(name = "身份证号", sort = 3)
|
||||
private String idNumber;
|
||||
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
private String sex;
|
||||
|
||||
/**
|
||||
* 年龄
|
||||
*/
|
||||
private Integer age;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 出生日期 生日
|
||||
*/
|
||||
private String birthday;
|
||||
|
||||
/**
|
||||
* 民族
|
||||
*/
|
||||
@Excel(name = "民族", type = Excel.Type.IMPORT)
|
||||
private String nation;
|
||||
|
||||
/**
|
||||
* 签发机关
|
||||
*/
|
||||
@Excel(name = "签发机关", type = Excel.Type.IMPORT)
|
||||
private String issuingAuthority;
|
||||
|
||||
/**
|
||||
* 有效期开始时间
|
||||
*/
|
||||
@Excel(name = "生效日期", type = Excel.Type.IMPORT)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date startTime;
|
||||
|
||||
/**
|
||||
* 有效期结束时间
|
||||
*/
|
||||
@Excel(name = "失效日期", type = Excel.Type.IMPORT)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date endTime;
|
||||
|
||||
/**
|
||||
* 家庭住址
|
||||
*/
|
||||
@Excel(name = "身份证住址", type = Excel.Type.IMPORT)
|
||||
private String address;
|
||||
|
||||
/**
|
||||
* 人脸照片
|
||||
*/
|
||||
private String facePhoto;
|
||||
|
||||
/**
|
||||
* 入场状态 0未入场 1 已入场
|
||||
*/
|
||||
@Excel(name = "入场状态", type = Excel.Type.EXPORT, sort = 8,readConverterExp = "1=入场,0=出场,2=出场")
|
||||
private Integer einStatus;
|
||||
|
||||
/**
|
||||
* 0 默认 1 黄灯 2 绿灯 3 失信人员
|
||||
*/
|
||||
private Integer lightStatus;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String createUser;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private String updateUser;
|
||||
|
||||
/**
|
||||
* 出入场信息
|
||||
*/
|
||||
private List<BmWorkerEinProRecord> bmWorkerEinProRecordList;
|
||||
|
||||
/**
|
||||
* 合同信息
|
||||
*/
|
||||
private List<BmWorkerContract> bmWorkerContractList;
|
||||
|
||||
/**
|
||||
* 工资卡信息
|
||||
*/
|
||||
private BmWorkerWageCard bmWorkerWageCard;
|
||||
|
||||
|
||||
/**
|
||||
* 人脸照片
|
||||
*/
|
||||
private List<UploadFileVo> files;
|
||||
|
||||
private String photoIds;
|
||||
|
||||
private String isShanghai;
|
||||
|
||||
private String facePhotoBase64;
|
||||
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package com.bonus.bmw.mapper;
|
||||
|
||||
import com.bonus.bmw.domain.po.HomePagePo;
|
||||
import com.bonus.bmw.domain.vo.HomePageSubProVo;
|
||||
import com.bonus.bmw.domain.vo.*;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -12,5 +12,12 @@ public interface WorkerStatisticsMapper {
|
|||
|
||||
List<HomePageSubProVo> getWorkerStatisticsTable(HomePagePo o);
|
||||
|
||||
PmWorkerVo getWorkerDetail(PmWorker pmWorker);
|
||||
|
||||
List<BmWorkerEinProRecord> getBmWorkerEinProRecordList(PmWorkerVo pmWorkerVo);
|
||||
|
||||
List<BmWorkerContract> getBmWorkerContractList(PmWorkerVo pmWorkerVo);
|
||||
|
||||
BmWorkerWageCard getBmWorkerWageCard(PmWorkerVo pmWorkerVo);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ package com.bonus.bmw.service;
|
|||
|
||||
import com.bonus.bmw.domain.po.HomePagePo;
|
||||
import com.bonus.bmw.domain.vo.HomePageSubProVo;
|
||||
import com.bonus.bmw.domain.vo.PmWorker;
|
||||
import com.bonus.bmw.domain.vo.PmWorkerVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -14,4 +16,5 @@ public interface WorkerStatisticsService {
|
|||
*/
|
||||
List<HomePageSubProVo> getWorkerStatisticsTable(HomePagePo o);
|
||||
|
||||
PmWorkerVo getWorkerDetail(PmWorker pmWorker);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
package com.bonus.bmw.service.impl;
|
||||
|
||||
import com.bonus.bmw.domain.po.HomePagePo;
|
||||
import com.bonus.bmw.domain.vo.HomePageSubProVo;
|
||||
import com.bonus.bmw.domain.vo.*;
|
||||
import com.bonus.bmw.mapper.WorkerStatisticsMapper;
|
||||
import com.bonus.bmw.service.WorkerStatisticsService;
|
||||
import com.bonus.common.core.constant.Constants;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
|
|
@ -15,10 +17,40 @@ public class WorkerStatisticsServiceImpl implements WorkerStatisticsService {
|
|||
@Autowired
|
||||
private WorkerStatisticsMapper mapper;
|
||||
|
||||
@Resource
|
||||
private FileUploadUtils fileUploadUtils;
|
||||
|
||||
@Override
|
||||
public List<HomePageSubProVo> getWorkerStatisticsTable(HomePagePo o) {
|
||||
return mapper.getWorkerStatisticsTable(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PmWorkerVo getWorkerDetail(PmWorker pmWorker) {
|
||||
PmWorkerVo pmWorkerVo = mapper.getWorkerDetail(pmWorker);
|
||||
//获取人员照片信息
|
||||
if(pmWorkerVo != null){
|
||||
pmWorkerVo.setFiles(fileUploadUtils.getFileList("", pmWorkerVo.getId().toString(), Constants.FILE_UPLOAD_WORKER, ""));
|
||||
}
|
||||
//获取合同信息
|
||||
List<BmWorkerEinProRecord> bmWorkerEinProRecordList = mapper.getBmWorkerEinProRecordList(pmWorkerVo);
|
||||
pmWorkerVo.setBmWorkerEinProRecordList(bmWorkerEinProRecordList);
|
||||
//获取合同信息
|
||||
List<BmWorkerContract> bmWorkerContractList = mapper.getBmWorkerContractList(pmWorkerVo);
|
||||
if (bmWorkerContractList.size()>0){
|
||||
for (BmWorkerContract bmWorkerContract:bmWorkerContractList) {
|
||||
pmWorkerVo.setFiles(fileUploadUtils.getFileList("", bmWorkerContract.getId().toString(), Constants.FILE_UPLOAD_CONTRACT, ""));
|
||||
}
|
||||
}
|
||||
pmWorkerVo.setBmWorkerEinProRecordList(bmWorkerEinProRecordList);
|
||||
//工资卡信息
|
||||
BmWorkerWageCard bmWorkerWageCard = mapper.getBmWorkerWageCard(pmWorkerVo);
|
||||
//获取人员照片信息
|
||||
if(bmWorkerWageCard != null){
|
||||
pmWorkerVo.setFiles(fileUploadUtils.getFileList("", bmWorkerWageCard.getId().toString(), Constants.FILE_UPLOAD_WAGE_CARD, ""));
|
||||
}
|
||||
pmWorkerVo.setBmWorkerWageCard(bmWorkerWageCard);
|
||||
return pmWorkerVo;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,15 +11,17 @@
|
|||
|
||||
<select id="getProStatisticsTable" resultType="com.bonus.bmw.domain.vo.HomePageSubProVo">
|
||||
SELECT
|
||||
pp.id AS pro_id,
|
||||
pp.id AS proId,
|
||||
pp.pro_name,
|
||||
psc.sub_company_name,
|
||||
pp.pro_type,
|
||||
pp.vol_level,
|
||||
pp.pro_status,
|
||||
pp.pro_address,
|
||||
pp.start_time as einTime,
|
||||
pp.end_time as exitTime,
|
||||
count(DISTINCT ps.id) AS subNum,
|
||||
count(DISTINCT psc.id) AS teamNum,
|
||||
count(DISTINCT pstc.id) AS teamNum,
|
||||
count(DISTINCT bwem.worker_id) AS einNum
|
||||
FROM
|
||||
pm_project pp
|
||||
|
|
@ -164,7 +166,7 @@
|
|||
INNER JOIN pm_sub ps ON ps.id = bsc.sub_id
|
||||
AND pp.is_active = 1
|
||||
INNER JOIN pm_sub_team_contract pstc ON ps.id = pstc.sub_id
|
||||
AND pstc.is_active = 1
|
||||
AND pstc.is_active = 1 and pp.id = pstc.pro_id
|
||||
INNER JOIN pm_sub_team pst ON pst.id = pstc.team_id
|
||||
AND pst.is_active = 1
|
||||
LEFT JOIN bm_worker_ein_msg bwem ON pp.id = bwem.pro_id
|
||||
|
|
@ -197,7 +199,7 @@
|
|||
SELECT
|
||||
bwepr.id,
|
||||
bwepr.worker_id,
|
||||
pw.`name`,
|
||||
pw.`name` as workerName,
|
||||
pw.`id_number`,
|
||||
pw.phone,
|
||||
bwepr.post_id,
|
||||
|
|
@ -224,7 +226,7 @@
|
|||
SELECT
|
||||
0 as id,
|
||||
bwem.worker_id,
|
||||
pw.`name`,
|
||||
pw.`name` as workerName,
|
||||
pw.`id_number`,
|
||||
pw.phone,
|
||||
bwem.post_id,
|
||||
|
|
@ -248,7 +250,7 @@
|
|||
) aaa
|
||||
<where>
|
||||
<if test="name != null">
|
||||
and aaa.name = #{name}
|
||||
and aaa.workerName = #{name}
|
||||
</if>
|
||||
<if test="postId != null">
|
||||
and aaa.post_id = #{postId}
|
||||
|
|
@ -274,15 +276,18 @@
|
|||
SELECT
|
||||
pw.`name` as workerName,
|
||||
pw.id_number,
|
||||
pw.phone,
|
||||
bap.sub_id,
|
||||
bap.sub_name,
|
||||
bap.team_id,
|
||||
bap.team_name,
|
||||
bwepr.post_name,
|
||||
count(bap.worker_id) AS attNumHis,
|
||||
sum(IF(bap.is_repair = 1, 1, 0)) AS repairNumHis
|
||||
FROM
|
||||
bm_att_person bap
|
||||
INNER JOIN pm_worker pw ON pw.id = bap.worker_id
|
||||
INNER JOIN bm_worker_ein_pro_record bwepr ON pw.id = bap.worker_id
|
||||
WHERE
|
||||
bap.pro_id = #{proId}
|
||||
<if test="name != null">
|
||||
|
|
@ -295,8 +300,8 @@
|
|||
and bap.sub_id = #{subId}
|
||||
</if>
|
||||
GROUP BY
|
||||
sub_id,
|
||||
team_id,
|
||||
bap.sub_id,
|
||||
bap.team_id,
|
||||
pw.id
|
||||
</select>
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
</select>
|
||||
<select id="getEinNumByHis" resultType="com.bonus.bmw.domain.vo.ProStatisticsPo">
|
||||
SELECT
|
||||
count(DISTINCT pp.worker_id) AS einNumHis,
|
||||
count(pp.worker_id) AS einNumHis,
|
||||
min(pp.ein_time) as einTime,
|
||||
max(pp.exit_time) as exitTime,
|
||||
sum(if(ein_status=2 and is_upload_file = 1,1,0)) as exitUploadFile,
|
||||
|
|
@ -161,7 +161,7 @@
|
|||
SELECT
|
||||
bwepr.id,
|
||||
bwepr.worker_id,
|
||||
pw.`name`,
|
||||
pw.`name` as workerName,
|
||||
pw.`id_number`,
|
||||
pw.phone,
|
||||
bwepr.post_id,
|
||||
|
|
@ -188,7 +188,7 @@
|
|||
SELECT
|
||||
0 as id,
|
||||
bwem.worker_id,
|
||||
pw.`name`,
|
||||
pw.`name` as workerName,
|
||||
pw.`id_number`,
|
||||
pw.phone,
|
||||
bwem.post_id,
|
||||
|
|
@ -212,7 +212,7 @@
|
|||
) aaa
|
||||
<where>
|
||||
<if test="name != null">
|
||||
and aaa.name = #{name}
|
||||
and aaa.workerName = #{name}
|
||||
</if>
|
||||
<if test="postId != null">
|
||||
and aaa.post_id = #{postId}
|
||||
|
|
@ -236,19 +236,22 @@
|
|||
SELECT
|
||||
pw.`name` as workerName,
|
||||
pw.id_number,
|
||||
pw.phone,
|
||||
bap.sub_id,
|
||||
bap.sub_name,
|
||||
bap.team_id,
|
||||
bap.team_name,
|
||||
bwepr.post_name,
|
||||
count(bap.worker_id) AS attNumHis,
|
||||
sum(IF(bap.is_repair = 1, 1, 0)) AS repairNumHis
|
||||
FROM
|
||||
bm_att_person bap
|
||||
INNER JOIN pm_worker pw ON pw.id = bap.worker_id
|
||||
INNER JOIN bm_worker_ein_pro_record bwepr ON pw.id = bap.worker_id
|
||||
WHERE
|
||||
bap.sub_id = #{subId}
|
||||
<if test="name != null">
|
||||
and pw.name = #{name}
|
||||
and pw.workerName = #{name}
|
||||
</if>
|
||||
<if test="teamId != null">
|
||||
and bap.team_id = #{teamId}
|
||||
|
|
@ -257,8 +260,8 @@
|
|||
and bap.sub_id = #{subId}
|
||||
</if>
|
||||
GROUP BY
|
||||
pro_id,
|
||||
team_id,
|
||||
bap.pro_id,
|
||||
bap.team_id,
|
||||
pw.id
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -39,5 +39,22 @@
|
|||
AND locate(#{workerName},pw.name)
|
||||
</if>
|
||||
</select>
|
||||
<select id="getWorkerDetail" resultType="com.bonus.bmw.domain.vo.PmWorkerVo">
|
||||
select id,name,id_number,sex,birthday,issuing_authority,nation,start_time,end_time,address,phone
|
||||
from pm_worker where id = #{workerId}
|
||||
</select>
|
||||
<select id="getBmWorkerEinProRecordList" resultType="com.bonus.bmw.domain.vo.BmWorkerEinProRecord">
|
||||
select ein_time,exit_time,pro_name,sub_name,team_name,post_name,#{phone},ein_status,is_upload_file
|
||||
from bm_worker_ein_pro_record where worker_id = #{id}
|
||||
</select>
|
||||
<select id="getBmWorkerContractList" resultType="com.bonus.bmw.domain.vo.BmWorkerContract">
|
||||
select id,contract_code,contract_term_type,is_active,contract_start_date,contract_stop_date,wage_approved_way,
|
||||
wage_criterion,contract_upload_date
|
||||
from bm_worker_contract where worker_id =#{id}
|
||||
</select>
|
||||
<select id="getBmWorkerWageCard" resultType="com.bonus.bmw.domain.vo.BmWorkerWageCard">
|
||||
select id,bank_card_code,bank_name,bank_branch_name,create_time
|
||||
from bm_worker_wage_card where worker_id = #{id}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue