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 1c1a33c..bd60b24 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 @@ -60,4 +60,6 @@ public interface PmWorkerExitMapper { List selectWorkListByProId(PmWorkerDto o); List getWorkerListByPhone(PmWorkerDto o); + + int selectAttByEinTimeAfter(@Param("workerId") Integer workerId,@Param("proId") Integer proId); } diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerBlackServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerBlackServiceImpl.java index c8140d4..86ed0f4 100644 --- a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerBlackServiceImpl.java +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/impl/BmWorkerBlackServiceImpl.java @@ -21,9 +21,12 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.validation.Validator; import java.time.LocalDate; +import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeFormatterBuilder; import java.time.format.DateTimeParseException; import java.util.List; +import java.util.Locale; @Service public class BmWorkerBlackServiceImpl implements BmWorkerBlackService{ @@ -104,6 +107,8 @@ public class BmWorkerBlackServiceImpl implements BmWorkerBlackService{ continue; } try { + worker.setStartTime(convertToString(worker.getStartTime())); + worker.setEndTime(convertToString(worker.getEndTime())); // 验证是否存在这个用户 // 添加员工时,判断员工编号是否已存在 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" + } } 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 e88dec2..e6ccfb8 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 @@ -60,7 +60,9 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService { Boolean isShangHai = mapper.getProLocationByProId(record.getProId()); //查询合同工资卡是否齐全 List 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()); //查询是不是上海内最后一个在场工程(一定要放在删除实时在场前查) int number = mapper.getEinProNum(record.getWorkerId()); @@ -124,7 +126,9 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService { for (PmWorkerDto bean : list) { //查询合同工资卡是否齐全 List 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()); int i = contractService.deleteByWorkerId(bean.getWorkerId(),bean.getProId()); diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/KqCmdTaskMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/KqCmdTaskMapper.xml index 7250028..7efda76 100644 --- a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/KqCmdTaskMapper.xml +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/KqCmdTaskMapper.xml @@ -27,7 +27,7 @@ kul.user_phone as userPhoto, kul.dev_code as devCode,kul.update_time updateTime 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} @@ -43,7 +43,7 @@ and kul.user_id=#{userId} - order by CAST(kul.user_id AS SIGNED) asc + order by CAST(kul.user_id AS SIGNED) asc + +