Merge remote-tracking branch 'origin/main'

This commit is contained in:
haozq 2025-12-30 15:16:49 +08:00
commit 17618cc0ad
9 changed files with 38 additions and 51 deletions

View File

@ -33,7 +33,7 @@ public interface PmWorkerExitMapper {
* @param einStatus
* @return
*/
int updateEinProRecordStatus(@Param("id") Integer id,@Param("einStatus") Integer einStatus,@Param("isUploadFile") Integer isUploadFile,@Param("exitWay") String exitWay,@Param("isLast") String isLast);
int updateEinProRecordStatus(@Param("id") Integer id,@Param("einStatus") Integer einStatus,@Param("isUploadFile") Integer isUploadFile,@Param("exitWay") String exitWay);
List<PmWorker> selectWorkListByWorkerId(PmWorkerDto o);

View File

@ -81,7 +81,7 @@ public interface PmWorkerMapper {
* @param id
* @return
*/
void updateEinRecordLast(Integer id);
void updateEinRecordLast(PmWorker o);
/**
* update record

View File

@ -241,7 +241,7 @@ public class AppServiceImpl implements AppService {
addWorkerWageCardDataAndContract(record);
}else {
//重新入场 再入场清除最新标识
pmWorkerMapper.updateEinRecordLast(record.getId());
pmWorkerMapper.updateEinRecordLast(record);
//换工程没换人脸
urkSendService.sendUserToDevice(record.getId(),record.getProId(), record.getSubId(), record.getTeamId(),"0");
addWorkerEinData(record);
@ -253,15 +253,10 @@ public class AppServiceImpl implements AppService {
public AjaxResult appWorkerExit(PmWorkerDto record) throws Exception {
//查询合同工资卡是否齐全
List<MapBeanVo> list = pmWorkerExitMapper.getContractIdAndWageCard(record.getWorkerId(),record.getProId());
if(Integer.parseInt(list.get(0).getValue())>0 && Integer.parseInt(list.get(1).getValue())>0){
//查询是否上海外
PmWorkerDto data=pmWorkerExitMapper.getPmWorkInfo(record);
Boolean isShangHai = pmWorkerExitMapper.getProLocationByProId(record.getProId());
if(isShangHai == null || !isShangHai){
int m = contractMapper.deleteByWorkerId(record.getWorkerId(),record.getProId());
}
//查询是不是上海内最后一个在场工程一定要放在删除实时在场前查
int number = pmWorkerExitMapper.getEinProNum(record.getWorkerId());
//没打过卡可以直接离场 20251226
int z = pmWorkerExitMapper.selectAttByEinTimeAfter(record.getWorkerId(),record.getProId());
if(z == 0 || (Integer.parseInt(list.get(0).getValue())>0 && Integer.parseInt(list.get(1).getValue())>0)){
contractMapper.deleteByWorkerId(record.getWorkerId(),record.getProId());
//删除实时在场
int n = pmWorkerExitMapper.deleteEinMsgByWorkerId(record.getWorkerId(),record.getProId());
//修改在场记录表状态
@ -276,13 +271,9 @@ public class AppServiceImpl implements AppService {
}
isUploadFile = 1;
}
String isLast = "";
if(Boolean.TRUE.equals(isShangHai) && number > 1){
isLast = "0";
}
int k = pmWorkerExitMapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay(),isLast);
int k = pmWorkerExitMapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay());
if(k==1){
delUrkUser(data, urkSendService);
delUrkUser(record, urkSendService);
//删除app人脸
// delAppFace(record.getWorkerId());
}
@ -306,7 +297,7 @@ public class AppServiceImpl implements AppService {
}
isUploadFile = 1;
}
int k = pmWorkerExitMapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay(),"");
int k = pmWorkerExitMapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay());
return k>0 ? AjaxResult.success() :AjaxResult.error("离场失败");
}

View File

@ -6,10 +6,7 @@ import com.bonus.bmw.domain.po.FaceRecognitionBean;
import com.bonus.bmw.domain.vo.MapBeanVo;
import com.bonus.bmw.domain.vo.PmWorker;
import com.bonus.bmw.mapper.PmWorkerExitMapper;
import com.bonus.bmw.service.AppRecognitionService;
import com.bonus.bmw.service.BmWorkerContractService;
import com.bonus.bmw.service.PmWorkerExitService;
import com.bonus.bmw.service.UrkSendService;
import com.bonus.bmw.service.*;
import com.bonus.common.core.constant.Constants;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.system.api.model.UploadFileVo;
@ -32,6 +29,9 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
@Autowired
private BmWorkerContractService contractService;
@Autowired
private TbProConfigService configService;
@Resource
private AppRecognitionService appRecognitionService;
@ -56,16 +56,12 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
@Override
public AjaxResult updateWorkerExit(PmWorkerDto record, List<WebFileDto> listFile) throws Exception {
StringBuilder sb = new StringBuilder();
//查询是否上海外
Boolean isShangHai = mapper.getProLocationByProId(record.getProId());
//查询合同工资卡是否齐全
List<MapBeanVo> list = mapper.getContractIdAndWageCard(record.getWorkerId(),record.getProId());
//没打过卡可以直接离场 20251226
int x = mapper.selectAttByEinTimeAfter(record.getWorkerId(),record.getProId());
if(x ==0 || (Integer.parseInt(list.get(0).getValue())>0 && Integer.parseInt(list.get(1).getValue())>0)){
int z = mapper.selectAttByEinTimeAfter(record.getWorkerId(),record.getProId());
if(z == 0 || (Integer.parseInt(list.get(0).getValue())>0 && Integer.parseInt(list.get(1).getValue())>0)){
contractService.deleteByWorkerId(record.getWorkerId(),record.getProId());
//查询是不是上海内最后一个在场工程一定要放在删除实时在场前查
int number = mapper.getEinProNum(record.getWorkerId());
//删除实时在场
int n = mapper.deleteEinMsgByWorkerId(record.getWorkerId(), record.getProId());
//修改在场记录表状态
@ -83,12 +79,7 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
List<UploadFileVo> uploadFileVos = fileUploadUtils.uploadFile(workerFiles, Constants.FILE_UPLOAD_WORKER_EXIT, record.getId().toString(), type,"", "");
isUploadFile = 1;
}
String isLast = "";
if(Boolean.TRUE.equals(isShangHai) && number > 1){
isLast = "0";
}
int k = mapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay(),isLast);
int k = mapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay());
if(k==1){
try {
AppServiceImpl.delUrkUser(record, urkSendService);
@ -129,8 +120,6 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
//没打过卡可以直接离场 20251226
int x = mapper.selectAttByEinTimeAfter(bean.getWorkerId(),bean.getProId());
if(x==0 || ("1".equals(listData.get(0).getValue()) && "1".equals(listData.get(1).getValue()))) {
//查询是否上海外
Boolean isShangHai = mapper.getProLocationByProId(bean.getProId());
int i = contractService.deleteByWorkerId(bean.getWorkerId(),bean.getProId());
//查询是不是上海内最后一个在场工程一定要放在删除实时在场前查
int number = mapper.getEinProNum(bean.getWorkerId());
@ -139,11 +128,7 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
int einStatus = 2;
//是否上传文件
int isUploadFile = 0;
String isLast = "";
if(Boolean.TRUE.equals(isShangHai) && number > 1){
isLast = "0";
}
int k = mapper.updateEinProRecordStatus(bean.getId(), einStatus, isUploadFile, bean.getExitWay(),isLast);
int k = mapper.updateEinProRecordStatus(bean.getId(), einStatus, isUploadFile, bean.getExitWay());
if (k == 1) {
userId.add(bean.getWorkerId());
proId.add(bean.getProId());
@ -195,7 +180,7 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
int einStatus = 0;
//是否上传文件
int isUploadFile = 1;
int k = mapper.updateEinProRecordStatus(o.getId(),einStatus,isUploadFile,o.getExitWay(),"");
int k = mapper.updateEinProRecordStatus(o.getId(),einStatus,isUploadFile,o.getExitWay());
return !uploadFileVos.isEmpty() ?1:0;
}
return 0;

View File

@ -469,7 +469,7 @@ public class PmWorkerServiceImpl implements PmWorkerService{
addWorkerWageCardDataAndContract(record,fileMsg);
}else {
//重新入场 再入场清除最新标识
mapper.updateEinRecordLast(record.getId());
mapper.updateEinRecordLast(record);
//换工程没换人脸
try {
urkSendService.sendUserToDevice(record.getId(),record.getProId(),record.getSubId(), record.getTeamId(),"0");

View File

@ -147,6 +147,8 @@ public class TbProConfigServiceImpl implements TbProConfigService {
/**
* 依据工程id查询
* tczm 是否需要退场证明 0 不需要 1 需要
* dgc 是否允许多工程入场 0 不允许 1 允许
* @param params
* @return
*/

View File

@ -26,6 +26,9 @@
<result column="type" property="type"/>
</resultMap>
<!-- 1 - COALESCE(tbcr.is_need, 0) AS is_shanghai
反转 查询字段的结果isneed与is_shanghai相反为了不影响前端逻辑
-->
<select id="selectWorkList" resultMap="BaseResultMap">
SELECT
pw.id as worker_id,
@ -48,11 +51,13 @@
bwepr.is_upload_file,
if(is_upload_file=0,DATEDIFF(NOW(), exit_time),0) as days_since_exit,
bwepr.exit_time,
pp.is_shanghai
1 - COALESCE(tbcr.is_need, 0) AS is_shanghai
FROM
pm_worker pw
LEFT JOIN bm_worker_ein_pro_record bwepr ON pw.id = bwepr.worker_id
LEFT JOIN pm_project pp on pp.id = bwepr.pro_id
left join tb_pro_config_real tbcr on tbcr.sub_id = pp.sub_com_id
and tbcr.pro_type = pp.pro_type and tbcr.pro_area = pp.is_shanghai and tbcr.type = 0
WHERE
pw.is_active = 1 And bwepr.is_last = 1
<if test="name != null and name != ''">
@ -107,9 +112,6 @@
, ein_status = #{einStatus}
, exit_time = NOW()
</if>
<if test="isLast != null and isLast != '' ">
, is_last = #{isLast}
</if>
WHERE id = #{id}
</update>
@ -127,10 +129,14 @@
bwepr.ein_status,
bwepr.is_upload_file,
if(is_upload_file=0,DATEDIFF(NOW(), exit_time),0) as days_since_exit,
bwepr.exit_time
bwepr.exit_time,
1 - COALESCE(tbcr.is_need, 0) AS is_shanghai
FROM
pm_worker pw
LEFT JOIN bm_worker_ein_pro_record bwepr ON pw.id = bwepr.worker_id
LEFT JOIN pm_project pp on pp.id = bwepr.pro_id
left join tb_pro_config_real tbcr on tbcr.sub_id = pp.sub_com_id
and tbcr.pro_type = pp.pro_type and tbcr.pro_area = pp.is_shanghai and tbcr.type = 0
WHERE
pw.id = #{id}
</select>

View File

@ -163,7 +163,7 @@
</insert>
<update id="updateEinRecordLast">
update bm_worker_ein_pro_record set is_last = 0 where worker_id = #{id}
update bm_worker_ein_pro_record set is_last = 0 where worker_id = #{id} and pro_id = #{proId}
</update>
<update id="updateByPrimaryKey">
@ -324,6 +324,7 @@
LEFT JOIN pm_project pp ON pp.id = bmew.pro_id
WHERE
id_number = #{idNumber} and pw.is_active = 1
order by bmew.create_time DESC
limit 1
</select>

View File

@ -94,9 +94,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
pm_worker pw
LEFT JOIN bm_worker_ein_pro_record bwepr ON pw.id = bwepr.worker_id
left join pm_project pp on bwepr.pro_id = pp.id
left join tb_pro_config_real tbcr on tbcr.sub_id = pp.sub_com_id
and tbcr.pro_type = pp.pro_type and tbcr.pro_area = pp.is_shanghai and tbcr.type = 0
WHERE
if(is_upload_file=0,DATEDIFF(NOW(), exit_time),0) > 30
and bwepr.is_go_black = 0 and pp.is_shanghai = 0
and bwepr.is_go_black = 0 and tbcr.is_need = 1
</select>
<insert id="insertWorkerBlack">