This commit is contained in:
zt
2025-09-16 21:23:56 +08:00
parent 4354d0a687
commit 267d62e5a5
7 changed files with 61 additions and 13 deletions

View File

@ -26,7 +26,7 @@ snail-job:
# 随主应用端口漂移
port: 2${server.port}
# 客户端ip指定
host: 192.168.110.180
host: 127.0.0.1
# RPC类型: netty, grpc
rpc-type: grpc

View File

@ -226,4 +226,5 @@ public interface ISubConstructionUserService extends IService<SubConstructionUse
TableDataInfo<SubConstructionUserAppVo> queryUndistributedList(SubConstructionUserQueryReq req, PageQuery pageQuery);
void deleteeBySysUserIds( List<Long> ids);
}

View File

@ -1,6 +1,7 @@
package org.dromara.contractor.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.DesensitizedUtil;
import cn.hutool.core.util.IdcardUtil;
@ -124,6 +125,7 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
@Resource
private BaiDuFace baiDuFace;
@Lazy
@Resource
private ISysUserService userService;
@ -1161,6 +1163,13 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
BeanUtils.copyProperties(req, user);
// 对身份证号码进行加密
String encrypt = idCardEncryptorUtil.encrypt(sfzNumber);
//验证身份证是否使用
List<SubConstructionUser> list = list(Wrappers.lambdaQuery(SubConstructionUser.class)
.eq(SubConstructionUser::getSfzNumber, encrypt));
if(CollectionUtil.isNotEmpty(list)){
throw new ServiceException("身份证已被注册", HttpStatus.BAD_REQUEST);
}
user.setSfzNumber(encrypt);
// 关联系统用户
Long userId = LoginHelper.getUserId();
@ -1320,4 +1329,10 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
return new TableDataInfo<>(list, result.getTotal());
}
@Override
public void deleteeBySysUserIds(List<Long> ids) {
this.remove(Wrappers.<SubConstructionUser>lambdaUpdate()
.in(SubConstructionUser::getSysUserId, ids));
}
}

View File

@ -17,6 +17,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.dromara.common.core.constant.HttpStatus;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@ -29,6 +30,7 @@ import org.dromara.common.utils.JSTUtil;
import org.dromara.contractor.domain.SubConstructionUser;
import org.dromara.contractor.service.ISubConstructionUserService;
import org.dromara.contractor.service.ISubUserSalaryDetailService;
import org.dromara.gps.domain.vo.ConstructionUser;
import org.dromara.project.domain.*;
import org.dromara.project.domain.bo.BusAttendanceBo;
import org.dromara.project.domain.dto.attendance.AttendanceCountDto;
@ -639,20 +641,28 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
@Override
public AttendanceCountVo getAttendanceCount(AttendanceCountDto dto) {
//查询今天打卡人员
AttendanceCountVo attendanceCountVo = new AttendanceCountVo();
//先查询人员有那些
List<SubConstructionUser> list = constructionUserService.list(Wrappers.lambdaQuery(SubConstructionUser.class)
.eq(SubConstructionUser::getProjectId, dto.getProjectId())
.eq(dto.getTeamId() != null, SubConstructionUser::getTeamId, dto.getTeamId())
.eq(StringUtils.isNotBlank(dto.getTypeOfWork()), SubConstructionUser::getTypeOfWork, dto.getTypeOfWork())
);
attendanceCountVo.setTotalCount( list.size());
List<Long> list1 = list.stream().map(SubConstructionUser::getSysUserId).toList();
if(CollectionUtil.isEmpty(list1)){
attendanceCountVo.setWorkCount(0);
return attendanceCountVo;
}
//查询今天打卡人员
List<BusAttendance> attendanceList = baseMapper.selectList(Wrappers.<BusAttendance>lambdaQuery()
.eq(BusAttendance::getProjectId, dto.getProjectId())
.in(BusAttendance::getUserId, list1)
.in(BusAttendance::getClockStatus, Arrays.asList("1", "2", "3", "5", "7"))
.eq(BusAttendance::getClockDate, dto.getDate())
);
List<Long> attendanceUserIds = attendanceList.stream().map(BusAttendance::getUserId).toList();
//总人数
long count = constructionUserService.count(Wrappers.<SubConstructionUser>lambdaQuery()
.eq(SubConstructionUser::getProjectId, dto.getProjectId()));
attendanceCountVo.setTotalCount((int) count);
//出勤人数
HashSet<Long> longs = new HashSet<>(attendanceUserIds);
int size = longs.size();
@ -695,14 +705,16 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
for (SubConstructionUser constructionUser : records) {
AttendanceUserVo attendanceUserVo = new AttendanceUserVo();
SysUserVo sysUserVo = userService.selectUserById(constructionUser.getSysUserId());
attendanceUserVo.setUserId(sysUserVo.getUserId());
attendanceUserVo.setNickName(sysUserVo.getNickName());
attendanceUserVo.setUserId(constructionUser.getSysUserId());
attendanceUserVo.setNickName(constructionUser.getUserName());
if (sysUserVo.getAvatar() != null) {
SysOssVo byId = ossService.getById(sysUserVo.getAvatar());
attendanceUserVo.setAvatar(byId == null ? null : byId.getUrl());
}
attendanceUserVo.setTypeOfWork(attendanceUserVo.getTypeOfWork());
attendanceUserVo.setTeamName(attendanceUserVo.getTeamName());
attendanceUserVo.setTypeOfWork(constructionUser.getTypeOfWork());
if(constructionUser.getTeamId() != null){
attendanceUserVo.setTeamName(constructionUser.getTeamName());
}
if (attendanceUserIds.contains(constructionUser.getSysUserId())) {
attendanceUserVo.setClockStatus("1");
} else {

View File

@ -245,7 +245,7 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl<QltQualityInspe
private void handleFail(QltQualityInspection qualityInspection) {
qualityInspection.setId(null);
qualityInspection.setInspectionStatus("2");
qualityInspection.setInspectionStatus("1");
qualityInspection.setRectificationResult(null);
qualityInspection.setRectificationTime(null);
qualityInspection.setRectificationFile(null);

View File

@ -523,7 +523,7 @@ public class HseSafetyInspectionServiceImpl extends ServiceImpl<HseSafetyInspect
HseSafetyInspection add = this.getById(id);
add.setId(null);
add.setStatus("2");
add.setStatus("1");
add.setRectificationTime(null);
add.setRectificationFile(null);
add.setMeasure(null);

View File

@ -17,12 +17,14 @@ import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.enums.UserType;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.UserService;
import org.dromara.common.core.utils.*;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.contractor.service.ISubConstructionUserService;
import org.dromara.project.domain.BusUserProjectRelevancy;
import org.dromara.project.service.IBusUserProjectRelevancyService;
import org.dromara.system.domain.*;
@ -38,6 +40,7 @@ import org.dromara.system.service.ISysUserService;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -62,6 +65,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
private final SysUserPostMapper userPostMapper;
private final IBusUserProjectRelevancyService userProjectRelevancyService;
private final ISubConstructionUserService constructionUserService;
@Lazy
@Resource
private ISysUserFileService userFileService;
@ -594,6 +599,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
if (CollUtil.isEmpty(roles)) {
throw new ServiceException("没有权限访问角色的数据");
}
checkAppRole(userId,roleList);
if (clear) {
// 删除用户与角色关联
@ -638,6 +644,17 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
}
}
private void checkAppRole(Long userId, List<Long> roleList) {
SysUser sysUser = baseMapper.selectById(userId);
if(UserType.APP_USER.getUserType().equals(sysUser.getUserType())){
List<SysRole> sysRoleList = roleMapper.selectBatchIds(roleList);
Set<SysRole> collect = sysRoleList.stream().filter(role -> "2".equals(role.getRoleSource())).collect(Collectors.toSet());
if(collect.isEmpty()){
throw new ServiceException("app用户至少需要一个APP角色");
}
}
}
/**
* 通过用户ID删除用户
*
@ -677,6 +694,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getUserId, ids));
// 删除用户与岗位表
userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().in(SysUserPost::getUserId, ids));
//删除关联的施工人员
constructionUserService.deleteeBySysUserIds(ids);
// 防止更新失败导致的数据删除
int flag = baseMapper.deleteByIds(ids);
if (flag < 1) {