From d0f725f02f765562dff0fac5f79de5d023475be6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E4=BA=AE?= Date: Thu, 18 Sep 2025 16:29:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E6=9C=9F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/bmw/mapper/PmWorkerExitMapper.java | 4 +++- .../bonus/bmw/service/impl/AppServiceImpl.java | 9 +++++++-- .../service/impl/PmWorkerExitServiceImpl.java | 18 +++++++++++++++--- .../mapper/bmw/PmWorkerExitMapper.xml | 11 +++++++++++ .../resources/mapper/bmw/PmWorkerMapper.xml | 3 ++- .../main/resources/mapper/bmw/SelectMapper.xml | 6 +++++- .../resources/mapper/bmw/UrkSendMapper.xml | 4 ++-- .../resources/mapper/job/WorkerJobMapper.xml | 4 +--- 8 files changed, 46 insertions(+), 13 deletions(-) diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerExitMapper.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerExitMapper.java index eb64c57..a72ff32 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerExitMapper.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/PmWorkerExitMapper.java @@ -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); + int updateEinProRecordStatus(@Param("id") Integer id,@Param("einStatus") Integer einStatus,@Param("isUploadFile") Integer isUploadFile,@Param("exitWay") String exitWay,@Param("isLast") String isLast); List selectWorkListByWorkerId(PmWorkerDto o); @@ -42,4 +42,6 @@ public interface PmWorkerExitMapper { String getIdNumberByWorkerId(Integer workerId); Boolean getProLocationByProId(Integer proId); + + int getEinProNum(Integer workerId); } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/AppServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/AppServiceImpl.java index 0971791..2e1db0e 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/AppServiceImpl.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/AppServiceImpl.java @@ -228,7 +228,8 @@ public class AppServiceImpl implements AppService { if(isShangHai == null || !isShangHai){ int m = contractMapper.deleteByWorkerId(record.getWorkerId()); } - + //查询是不是上海内最后一个在场工程(一定要放在删除实时在场前查) + int number = pmWorkerExitMapper.getEinProNum(record.getWorkerId()); //删除实时在场 int n = pmWorkerExitMapper.deleteEinMsgByWorkerId(record.getWorkerId(),record.getProId()); //修改在场记录表状态 @@ -243,7 +244,11 @@ public class AppServiceImpl implements AppService { } isUploadFile = 1; } - int k = pmWorkerExitMapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay()); + String isLast = ""; + if(Boolean.TRUE.equals(isShangHai) && number > 1){ + isLast = "0"; + } + int k = pmWorkerExitMapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay(),isLast); if(k==1){ urkSendService.delUserByDevice(record.getWorkerId(),record.getProId(),record.getSubId(), record.getTeamId()); //删除app人脸 diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerExitServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerExitServiceImpl.java index e0c1cf6..5c4910f 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerExitServiceImpl.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/PmWorkerExitServiceImpl.java @@ -65,6 +65,8 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService { //上海外删除合同 int i = contractService.deleteByWorkerId(record.getWorkerId()); } + //查询是不是上海内最后一个在场工程(一定要放在删除实时在场前查) + int number = mapper.getEinProNum(record.getWorkerId()); //删除实时在场 int n = mapper.deleteEinMsgByWorkerId(record.getWorkerId(), record.getProId()); //修改在场记录表状态 @@ -83,7 +85,11 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService { isUploadFile = 1; } - int k = mapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay()); + String isLast = ""; + if(Boolean.TRUE.equals(isShangHai) && number > 1){ + isLast = "0"; + } + int k = mapper.updateEinProRecordStatus(record.getId(),einStatus,isUploadFile,record.getExitWay(),isLast); if(k==1){ try { urkSendService.delUserByDevice(record.getWorkerId(),record.getProId(),record.getSubId(),record.getTeamId()); @@ -128,12 +134,18 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService { //上海外删除合同 int i = contractService.deleteByWorkerId(bean.getWorkerId()); } + //查询是不是上海内最后一个在场工程(一定要放在删除实时在场前查) + int number = mapper.getEinProNum(bean.getWorkerId()); //删除实时在场 int j = mapper.deleteEinMsgByWorkerId(bean.getWorkerId(),bean.getProId()); int einStatus = 2; //是否上传文件 int isUploadFile = 0; - int k = mapper.updateEinProRecordStatus(bean.getId(), einStatus, isUploadFile, bean.getExitWay()); + String isLast = ""; + if(Boolean.TRUE.equals(isShangHai) && number > 1){ + isLast = "0"; + } + int k = mapper.updateEinProRecordStatus(bean.getId(), einStatus, isUploadFile, bean.getExitWay(),isLast); if (k == 1) { userId.add(bean.getWorkerId()); proId.add(bean.getProId()); @@ -185,7 +197,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; diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerExitMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerExitMapper.xml index a6fd4f2..6e6889e 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerExitMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerExitMapper.xml @@ -106,6 +106,9 @@ , ein_status = #{einStatus} , exit_time = NOW() + + , is_last = #{isLast} + WHERE id = #{id} @@ -158,4 +161,12 @@ FROM `pm_project` where id = #{id} + + diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerMapper.xml index 87cb992..f6c4ec1 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/PmWorkerMapper.xml @@ -301,7 +301,7 @@ FROM pm_worker pw LEFT JOIN bm_worker_ein_msg bmew ON pw.id = bmew.worker_id - LEFT JOIN pm_project pp ON pp.id = bmew.worker_id + LEFT JOIN pm_project pp ON pp.id = bmew.pro_id WHERE id_number = #{idNumber} and pw.is_active = 1 limit 1 @@ -321,6 +321,7 @@ SELECT pw.id, pw.`name`, + pw.id_number, pw.phone, bmew.post_name, bmew.pro_name, diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/SelectMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/SelectMapper.xml index e63860e..c849d6e 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/SelectMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/SelectMapper.xml @@ -4,6 +4,7 @@ select + distinct pst.id, pst.team_name as `name` from pm_sub_team pst diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/UrkSendMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/UrkSendMapper.xml index 7d62955..39a95a5 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/UrkSendMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/UrkSendMapper.xml @@ -83,10 +83,10 @@ dev_model devModel,on_line onLine from pm_att_device where pro_id=#{proId} and is_active=1 - + and sub_id=#{supId} - + and team_id=#{teamId} diff --git a/bonus-modules/bonus-job/src/main/resources/mapper/job/WorkerJobMapper.xml b/bonus-modules/bonus-job/src/main/resources/mapper/job/WorkerJobMapper.xml index b664e0d..af230c8 100644 --- a/bonus-modules/bonus-job/src/main/resources/mapper/job/WorkerJobMapper.xml +++ b/bonus-modules/bonus-job/src/main/resources/mapper/job/WorkerJobMapper.xml @@ -39,14 +39,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bm_worker_ein_pro_record bwepr LEFT JOIN pm_worker pw ON pw.id = bwepr.worker_id WHERE #{currentDay} BETWEEN DATE_FORMAT(bwepr.ein_time, '%Y-%m-%d') AND - DATE_FORMAT(IFNULL(bwepr.exit_time, NOW()), '%Y-%m-%d') + DATE_FORMAT(IFNULL(bwepr.exit_time, NOW()), '%Y-%m-%d') and bwepr.is_active = 0 ORDER BY bwepr.worker_id, bwepr.ein_time DESC LIMIT 10000000 ) aa - GROUP BY - aa.worker_id