parent
99e963a22f
commit
f59ddd32c8
|
|
@ -60,4 +60,6 @@ public interface PmWorkerExitMapper {
|
|||
List<PmWorker> selectWorkListByProId(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.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"
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,7 +60,9 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
|
|||
Boolean isShangHai = mapper.getProLocationByProId(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());
|
||||
//查询是不是上海内最后一个在场工程(一定要放在删除实时在场前查)
|
||||
int number = mapper.getEinProNum(record.getWorkerId());
|
||||
|
|
@ -124,7 +126,9 @@ public class PmWorkerExitServiceImpl implements PmWorkerExitService {
|
|||
for (PmWorkerDto bean : list) {
|
||||
//查询合同工资卡是否齐全
|
||||
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());
|
||||
int i = contractService.deleteByWorkerId(bean.getWorkerId(),bean.getProId());
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
<if test="isOnDataBase!=null and isOnDataBase!=''">
|
||||
<if test='isOnDataBase=="1"' >
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
<if test="userId!=null and userId!=''">
|
||||
and kul.user_id=#{userId}
|
||||
</if>
|
||||
order by CAST(kul.user_id AS SIGNED) asc
|
||||
order by CAST(kul.user_id AS SIGNED) asc
|
||||
</select>
|
||||
|
||||
<select id="getProDeviceWorker" resultType="com.bonus.bmw.domain.vo.KqCmdBean">
|
||||
|
|
|
|||
|
|
@ -263,4 +263,17 @@
|
|||
AND bwepr.is_upload_file = 0 and pp.is_shanghai = 0
|
||||
and if(is_upload_file=0,DATEDIFF(NOW(), exit_time),0) < 31
|
||||
</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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue