parent
99e963a22f
commit
f59ddd32c8
|
|
@ -60,4 +60,6 @@ public interface PmWorkerExitMapper {
|
||||||
List<PmWorker> selectWorkListByProId(PmWorkerDto o);
|
List<PmWorker> selectWorkListByProId(PmWorkerDto o);
|
||||||
|
|
||||||
List<PmWorker> getWorkerListByPhone(PmWorkerDto o);
|
List<PmWorker> getWorkerListByPhone(PmWorkerDto o);
|
||||||
|
|
||||||
|
int selectAttByEinTimeAfter(@Param("workerId") Integer workerId,@Param("proId") Integer proId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,12 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Validator;
|
import javax.validation.Validator;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.format.DateTimeFormatterBuilder;
|
||||||
import java.time.format.DateTimeParseException;
|
import java.time.format.DateTimeParseException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class BmWorkerBlackServiceImpl implements BmWorkerBlackService{
|
public class BmWorkerBlackServiceImpl implements BmWorkerBlackService{
|
||||||
|
|
@ -104,6 +107,8 @@ public class BmWorkerBlackServiceImpl implements BmWorkerBlackService{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
worker.setStartTime(convertToString(worker.getStartTime()));
|
||||||
|
worker.setEndTime(convertToString(worker.getEndTime()));
|
||||||
// 验证是否存在这个用户
|
// 验证是否存在这个用户
|
||||||
// 添加员工时,判断员工编号是否已存在
|
// 添加员工时,判断员工编号是否已存在
|
||||||
BmWorkerBlack w = mapper.getWorkerBlackByNumber(worker.getIdNumber());
|
BmWorkerBlack w = mapper.getWorkerBlackByNumber(worker.getIdNumber());
|
||||||
|
|
@ -185,5 +190,26 @@ public class BmWorkerBlackServiceImpl implements BmWorkerBlackService{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static String convertToString(String dateStr) {
|
||||||
|
if (dateStr == null || dateStr.trim().isEmpty()) {
|
||||||
|
return null; // 或返回空字符串 ""
|
||||||
|
}
|
||||||
|
if (!dateStr.contains("CST")) {
|
||||||
|
return dateStr;
|
||||||
|
}
|
||||||
|
// 将 CST 替换为明确的时区偏移(中国标准时间 = UTC+8)
|
||||||
|
String fixed = dateStr.replace("CST", "GMT+08:00");
|
||||||
|
// 构建解析格式(注意:必须用英文 Locale)
|
||||||
|
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
|
||||||
|
.parseCaseInsensitive()
|
||||||
|
.appendPattern("EEE MMM dd HH:mm:ss ")
|
||||||
|
.appendZoneOrOffsetId()
|
||||||
|
.appendPattern(" yyyy")
|
||||||
|
.toFormatter(Locale.ENGLISH);
|
||||||
|
// 解析为 ZonedDateTime
|
||||||
|
ZonedDateTime zdt = ZonedDateTime.parse(fixed, formatter);
|
||||||
|
// 提取 LocalDate 并格式化为 "yyyy-MM-dd"
|
||||||
|
return zdt.toLocalDate().toString(); // toString() 默认就是 "2023-01-01"
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,9 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
|
||||||
Boolean isShangHai = mapper.getProLocationByProId(record.getProId());
|
Boolean isShangHai = mapper.getProLocationByProId(record.getProId());
|
||||||
//查询合同工资卡是否齐全
|
//查询合同工资卡是否齐全
|
||||||
List<MapBeanVo> list = mapper.getContractIdAndWageCard(record.getWorkerId(),record.getProId());
|
List<MapBeanVo> list = mapper.getContractIdAndWageCard(record.getWorkerId(),record.getProId());
|
||||||
if(Integer.parseInt(list.get(0).getValue())>0 && Integer.parseInt(list.get(1).getValue())>0){
|
//没打过卡可以直接离场 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)){
|
||||||
contractService.deleteByWorkerId(record.getWorkerId(),record.getProId());
|
contractService.deleteByWorkerId(record.getWorkerId(),record.getProId());
|
||||||
//查询是不是上海内最后一个在场工程(一定要放在删除实时在场前查)
|
//查询是不是上海内最后一个在场工程(一定要放在删除实时在场前查)
|
||||||
int number = mapper.getEinProNum(record.getWorkerId());
|
int number = mapper.getEinProNum(record.getWorkerId());
|
||||||
|
|
@ -124,7 +126,9 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
|
||||||
for (PmWorkerDto bean : list) {
|
for (PmWorkerDto bean : list) {
|
||||||
//查询合同工资卡是否齐全
|
//查询合同工资卡是否齐全
|
||||||
List<MapBeanVo> listData = mapper.getContractIdAndWageCard(bean.getWorkerId(),bean.getProId());
|
List<MapBeanVo> listData = mapper.getContractIdAndWageCard(bean.getWorkerId(),bean.getProId());
|
||||||
if("1".equals(listData.get(0).getValue()) && "1".equals(listData.get(1).getValue())) {
|
//没打过卡可以直接离场 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());
|
Boolean isShangHai = mapper.getProLocationByProId(bean.getProId());
|
||||||
int i = contractService.deleteByWorkerId(bean.getWorkerId(),bean.getProId());
|
int i = contractService.deleteByWorkerId(bean.getWorkerId(),bean.getProId());
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
kul.user_phone as userPhoto,
|
kul.user_phone as userPhoto,
|
||||||
kul.dev_code as devCode,kul.update_time updateTime
|
kul.dev_code as devCode,kul.update_time updateTime
|
||||||
from kq_user_list kul
|
from kq_user_list kul
|
||||||
left join pm_worker pw on pw.id=kul.user_id
|
LEFT JOIN pm_worker pw ON pw.id = kul.user_id and pw.name = kul.user_name
|
||||||
where kul.dev_code = #{deviceCode}
|
where kul.dev_code = #{deviceCode}
|
||||||
<if test="isOnDataBase!=null and isOnDataBase!=''">
|
<if test="isOnDataBase!=null and isOnDataBase!=''">
|
||||||
<if test='isOnDataBase=="1"' >
|
<if test='isOnDataBase=="1"' >
|
||||||
|
|
|
||||||
|
|
@ -263,4 +263,17 @@
|
||||||
AND bwepr.is_upload_file = 0 and pp.is_shanghai = 0
|
AND bwepr.is_upload_file = 0 and pp.is_shanghai = 0
|
||||||
and if(is_upload_file=0,DATEDIFF(NOW(), exit_time),0) < 31
|
and if(is_upload_file=0,DATEDIFF(NOW(), exit_time),0) < 31
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectAttByEinTimeAfter" resultType="int">
|
||||||
|
SELECT
|
||||||
|
count(1)
|
||||||
|
FROM
|
||||||
|
bm_worker_ein_msg bwem
|
||||||
|
INNER JOIN bm_att_person bap ON bap.worker_id
|
||||||
|
AND bap.pro_id = bwem.pro_id
|
||||||
|
WHERE
|
||||||
|
bwem.worker_id = #{workerId}
|
||||||
|
AND bwem.pro_id = #{proId}
|
||||||
|
AND DATE_FORMAT(bwem.ein_time, '%Y-%m-%d') <= bap.att_day
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue