人员统计

This commit is contained in:
马三炮 2025-10-11 17:48:54 +08:00
parent bcfb0e5a7e
commit 55c090af2d
7 changed files with 194 additions and 19 deletions

View File

@ -1,9 +1,7 @@
package com.bonus.bmw.controller; package com.bonus.bmw.controller;
import com.bonus.bmw.domain.po.HomePagePo; import com.bonus.bmw.domain.po.HomePagePo;
import com.bonus.bmw.domain.vo.HomePageSubProVo; import com.bonus.bmw.domain.vo.*;
import com.bonus.bmw.domain.vo.PmWorker;
import com.bonus.bmw.domain.vo.PmWorkerVo;
import com.bonus.bmw.service.WorkerStatisticsService; import com.bonus.bmw.service.WorkerStatisticsService;
import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
@ -71,23 +69,43 @@ public class WorkerStatisticsController extends BaseController {
} }
} }
/* *//** /**
* 考勤信息 * 考勤信息
* @param pmWorker * @param pmWorker
* @return * @return
*//* */
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("worker:statistics:query")) @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("worker:statistics:query"))
@GetMapping("/getWorkerEinDayRecordDetail") @GetMapping("/getWorkerEinDayRecordDetail")
@SysLog(title = "考勤信息", businessType = OperaType.QUERY, logType = 0, module = "人员统计->考勤信息", details = "考勤信息") @SysLog(title = "考勤信息", businessType = OperaType.QUERY, logType = 0, module = "人员统计->考勤信息", details = "考勤信息")
public AjaxResult getWorkerEinDayRecordDetail(PmWorker pmWorker) { public TableDataInfo getWorkerEinDayRecordDetail(PmWorker pmWorker) {
try { try {
PmWorkerVo pmWorkerVo = service.getWorkerEinDayRecordDetail(pmWorker); startPage();
return success(pmWorkerVo); List<BmWorkerEinDayRecordVo> bmWorkerEinDayRecordList = service.getWorkerEinDayRecordDetail(pmWorker);
return getDataTable(bmWorkerEinDayRecordList);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.toString(), e); logger.error(e.toString(), e);
return error("查询身份证信息失败!"); return getDataTable(new ArrayList<>());
} }
}*/ }
/**
* 考勤信息
* @param pmWorker
* @return
*/
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("worker:statistics:query"))
@GetMapping("/getMonthTableDetail")
@SysLog(title = "考勤信息", businessType = OperaType.QUERY, logType = 0, module = "人员统计->考勤信息", details = "考勤信息")
public TableDataInfo getMonthTableDetail(PmWorker pmWorker) {
try {
startPage();
List<ProMonthTable> bmWorkerEinDayRecordList = service.getMonthTableDetail(pmWorker);
return getDataTable(bmWorkerEinDayRecordList);
} catch (Exception e) {
logger.error(e.toString(), e);
return getDataTable(new ArrayList<>());
}
}
} }

View File

@ -1,9 +1,12 @@
package com.bonus.bmw.domain.vo; package com.bonus.bmw.domain.vo;
import lombok.Data;
/** /**
* @author 马三炮 * @author 马三炮
* @date 2025/10/11 * @date 2025/10/11
*/ */
@Data
public class BmWorkerEinDayRecordVo { public class BmWorkerEinDayRecordVo {
/** /**
@ -12,7 +15,7 @@ public class BmWorkerEinDayRecordVo {
public String attDay; public String attDay;
/** /**
* 考勤状态 * 考勤状态 0 未打卡 1已打卡
*/ */
public String attStatus; public String attStatus;
@ -20,4 +23,24 @@ public class BmWorkerEinDayRecordVo {
* 考勤时间 * 考勤时间
*/ */
public String attTime; public String attTime;
/**
* 工程名称
*/
public String proName;
/**
* 考勤机设备名称
*/
public String devName;
/**
* 设备编码
*/
public String deviceCode;
/**
* 是否补卡 0 不是 1
*/
public String isRepair;
} }

View File

@ -136,4 +136,8 @@ public class PmWorkerVo {
private String facePhotoBase64; private String facePhotoBase64;
private String proId;
private String subId;
} }

View File

@ -10,14 +10,53 @@ import java.util.List;
public interface WorkerStatisticsMapper { public interface WorkerStatisticsMapper {
/**
* 人员统计
* @param o
* @return
*/
List<HomePageSubProVo> getWorkerStatisticsTable(HomePagePo o); List<HomePageSubProVo> getWorkerStatisticsTable(HomePagePo o);
/**
* 身份证信息
* @param pmWorker
* @return
*/
PmWorkerVo getWorkerDetail(PmWorker pmWorker); PmWorkerVo getWorkerDetail(PmWorker pmWorker);
/**
* 出入场信息
* @param pmWorkerVo
* @return
*/
List<BmWorkerEinProRecord> getBmWorkerEinProRecordList(PmWorkerVo pmWorkerVo); List<BmWorkerEinProRecord> getBmWorkerEinProRecordList(PmWorkerVo pmWorkerVo);
/**
* 获取合同信息
* @param pmWorkerVo
* @return
*/
List<BmWorkerContract> getBmWorkerContractList(PmWorkerVo pmWorkerVo); List<BmWorkerContract> getBmWorkerContractList(PmWorkerVo pmWorkerVo);
/**
* 工资卡信息
* @param pmWorkerVo
* @return
*/
BmWorkerWageCard getBmWorkerWageCard(PmWorkerVo pmWorkerVo); BmWorkerWageCard getBmWorkerWageCard(PmWorkerVo pmWorkerVo);
/**
* 考勤信息
* @param pmWorker
* @return
*/
List<BmWorkerEinDayRecordVo> getWorkerEinDayRecordDetail(PmWorker pmWorker);
/**
* 考勤信息
* @param pmWorker
* @return
*/
List<ProMonthTable> getMonthTableDetail(PmWorker pmWorker);
} }

View File

@ -1,9 +1,7 @@
package com.bonus.bmw.service; package com.bonus.bmw.service;
import com.bonus.bmw.domain.po.HomePagePo; import com.bonus.bmw.domain.po.HomePagePo;
import com.bonus.bmw.domain.vo.HomePageSubProVo; import com.bonus.bmw.domain.vo.*;
import com.bonus.bmw.domain.vo.PmWorker;
import com.bonus.bmw.domain.vo.PmWorkerVo;
import java.util.List; import java.util.List;
@ -16,5 +14,24 @@ public interface WorkerStatisticsService {
*/ */
List<HomePageSubProVo> getWorkerStatisticsTable(HomePagePo o); List<HomePageSubProVo> getWorkerStatisticsTable(HomePagePo o);
/**
* 身份证信息
* @param pmWorker
* @return
*/
PmWorkerVo getWorkerDetail(PmWorker pmWorker); PmWorkerVo getWorkerDetail(PmWorker pmWorker);
/**
* 考勤信息
* @param pmWorker
* @return
*/
List<BmWorkerEinDayRecordVo> getWorkerEinDayRecordDetail(PmWorker pmWorker);
/**
* 考勤信息
* @param pmWorker
* @return
*/
List<ProMonthTable> getMonthTableDetail(PmWorker pmWorker);
} }

View File

@ -20,11 +20,21 @@ public class WorkerStatisticsServiceImpl implements WorkerStatisticsService {
@Resource @Resource
private FileUploadUtils fileUploadUtils; private FileUploadUtils fileUploadUtils;
/**
* 人员统计
* @param o
* @return
*/
@Override @Override
public List<HomePageSubProVo> getWorkerStatisticsTable(HomePagePo o) { public List<HomePageSubProVo> getWorkerStatisticsTable(HomePagePo o) {
return mapper.getWorkerStatisticsTable(o); return mapper.getWorkerStatisticsTable(o);
} }
/**
* 身份证信息
* @param pmWorker
* @return
*/
@Override @Override
public PmWorkerVo getWorkerDetail(PmWorker pmWorker) { public PmWorkerVo getWorkerDetail(PmWorker pmWorker) {
PmWorkerVo pmWorkerVo = mapper.getWorkerDetail(pmWorker); PmWorkerVo pmWorkerVo = mapper.getWorkerDetail(pmWorker);
@ -32,10 +42,10 @@ public class WorkerStatisticsServiceImpl implements WorkerStatisticsService {
if(pmWorkerVo != null){ if(pmWorkerVo != null){
pmWorkerVo.setFiles(fileUploadUtils.getFileList("", pmWorkerVo.getId().toString(), Constants.FILE_UPLOAD_WORKER, "")); pmWorkerVo.setFiles(fileUploadUtils.getFileList("", pmWorkerVo.getId().toString(), Constants.FILE_UPLOAD_WORKER, ""));
} }
//获取合同信息 //出入场信息
List<BmWorkerEinProRecord> bmWorkerEinProRecordList = mapper.getBmWorkerEinProRecordList(pmWorkerVo); List<BmWorkerEinProRecord> bmWorkerEinProRecordList = mapper.getBmWorkerEinProRecordList(pmWorkerVo);
pmWorkerVo.setBmWorkerEinProRecordList(bmWorkerEinProRecordList); pmWorkerVo.setBmWorkerEinProRecordList(bmWorkerEinProRecordList);
//获取合同信息 //
List<BmWorkerContract> bmWorkerContractList = mapper.getBmWorkerContractList(pmWorkerVo); List<BmWorkerContract> bmWorkerContractList = mapper.getBmWorkerContractList(pmWorkerVo);
if (bmWorkerContractList.size()>0){ if (bmWorkerContractList.size()>0){
for (BmWorkerContract bmWorkerContract:bmWorkerContractList) { for (BmWorkerContract bmWorkerContract:bmWorkerContractList) {
@ -53,4 +63,24 @@ public class WorkerStatisticsServiceImpl implements WorkerStatisticsService {
return pmWorkerVo; return pmWorkerVo;
} }
/**
* 考勤信息
* @param pmWorker
* @return
*/
@Override
public List<BmWorkerEinDayRecordVo> getWorkerEinDayRecordDetail(PmWorker pmWorker) {
return mapper.getWorkerEinDayRecordDetail(pmWorker);
}
/**
* 考勤信息
* @param pmWorker
* @return
*/
@Override
public List<ProMonthTable> getMonthTableDetail(PmWorker pmWorker) {
return mapper.getMonthTableDetail(pmWorker);
}
} }

View File

@ -47,15 +47,59 @@
<select id="getBmWorkerEinProRecordList" resultType="com.bonus.bmw.domain.vo.BmWorkerEinProRecord"> <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 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} from bm_worker_ein_pro_record where worker_id = #{id}
<if test="proId != null">
AND pro_id = #{proId}
</if>
<if test="subId != null">
AND sub_id = #{subId}
</if>
</select> </select>
<select id="getBmWorkerContractList" resultType="com.bonus.bmw.domain.vo.BmWorkerContract"> <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, select bwc.id,bwc.contract_code,bwc.contract_term_type,bwc.is_active,bwc.contract_start_date,
wage_criterion,contract_upload_date bwc.contract_stop_date,bwc.wage_approved_way,bwc.wage_criterion,bwc.contract_upload_date
from bm_worker_contract where worker_id =#{id} from bm_worker_contract bwc
left join bm_worker_ein_pro_record bwepr on bwc.id = bwepr.worker_id
where worker_id =#{id}
<if test="proId != null">
AND bwepr.pro_id = #{proId}
</if>
<if test="subId != null">
AND bwepr.sub_id = #{subId}
</if>
</select> </select>
<select id="getBmWorkerWageCard" resultType="com.bonus.bmw.domain.vo.BmWorkerWageCard"> <select id="getBmWorkerWageCard" resultType="com.bonus.bmw.domain.vo.BmWorkerWageCard">
select id,bank_card_code,bank_name,bank_branch_name,create_time select id,bank_card_code,bank_name,bank_branch_name,create_time
from bm_worker_wage_card where worker_id = #{id} from bm_worker_wage_card where worker_id = #{id}
</select> </select>
<select id="getWorkerEinDayRecordDetail" resultType="com.bonus.bmw.domain.vo.BmWorkerEinDayRecordVo">
select bwedr.ein_day as attDay,
bap.att_time,
bap.is_repair,
bwedr.pro_name,
bap.dev_name,
bap.device_code,
case when bap.att_time is null then 0 else 1 end as attStatus
from bm_worker_ein_day_record bwedr
left join bm_att_person bap on bwedr.ein_day = bap.att_day and bwedr.worker_id = bap.worker_id
where bwedr.worker_id = #{workerId}
<if test="startTime!=null and endTime!=null">
and bwedr.ein_day between #{startTime} and #{endTime}
</if>
</select>
<select id="getMonthTableDetail" resultType="com.bonus.bmw.domain.vo.ProMonthTable">
select tpmt.table_month,
tpmtr.pro_name,
tpmtr.actual_money,
tpmt.refund_status
from tb_pro_month_table tpmt
left join tb_pro_month_table_roster tpmtr on tpmt.id = tpmtr.month_id
where tpmtr.user_id = #{workerId}
<if test="proId != null">
AND pro_id = #{proId}
</if>
<if test="subId != null">
AND sub_id = #{subId}
</if>
</select>
</mapper> </mapper>