离场的一些逻辑修改
This commit is contained in:
parent
fb8c9f3625
commit
c1ce0e9009
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ public interface PmWorkerMapper {
|
|||
* @param id
|
||||
* @return
|
||||
*/
|
||||
void updateEinRecordLast(Integer id);
|
||||
void updateEinRecordLast(PmWorker o);
|
||||
|
||||
/**
|
||||
* update record
|
||||
|
|
|
|||
|
|
@ -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("离场失败");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
|
|
@ -147,6 +147,8 @@ public class TbProConfigServiceImpl implements TbProConfigService {
|
|||
|
||||
/**
|
||||
* 依据工程id查询
|
||||
* tczm 是否需要退场证明 0 不需要 1 需要
|
||||
* dgc 是否允许多工程入场 0 不允许 1 允许
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
Loading…
Reference in New Issue