bug
This commit is contained in:
@ -255,7 +255,7 @@ public class SubConstructionUserController extends BaseController {
|
||||
/**
|
||||
* 人脸识别
|
||||
*/
|
||||
@SaCheckPermission("contractor:constructionUser:add")
|
||||
// @SaCheckPermission("contractor:constructionUser:add")
|
||||
@Log(title = "施工人员", businessType = BusinessType.OTHER)
|
||||
@PostMapping("/face/recognize")
|
||||
public R<SysOssVo> faceRecognize(@RequestParam("file") MultipartFile file) {
|
||||
|
||||
@ -294,4 +294,6 @@ public class SubConstructionUserVo implements Serializable {
|
||||
* 用户Id
|
||||
*/
|
||||
private Long sysUserId;
|
||||
|
||||
private String postId;
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.contractor.service.impl;
|
||||
|
||||
import cn.dev33.satoken.secure.BCrypt;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
@ -14,6 +15,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.dromara.common.core.constant.DateConstant;
|
||||
import org.dromara.common.core.constant.HttpStatus;
|
||||
import org.dromara.common.core.enums.UserType;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.DateUtils;
|
||||
import org.dromara.common.core.utils.ObjectUtils;
|
||||
@ -52,6 +54,7 @@ import org.dromara.project.domain.enums.BusAttendanceClockStatusEnum;
|
||||
import org.dromara.project.domain.enums.BusAttendanceCommuterEnum;
|
||||
import org.dromara.project.domain.enums.BusConstructionUserAttendanceStatusEnum;
|
||||
import org.dromara.project.service.*;
|
||||
import org.dromara.system.domain.SysUser;
|
||||
import org.dromara.system.domain.bo.SysUserBo;
|
||||
import org.dromara.system.domain.vo.SysOssVo;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
@ -332,6 +335,7 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long insertByBo(SubConstructionUserCreateReq req) {
|
||||
// 将实体类和 DTO 进行转换
|
||||
SubConstructionUser constructionUser = new SubConstructionUser();
|
||||
@ -341,15 +345,24 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
|
||||
Long userId = LoginHelper.getUserId();
|
||||
projectService.validAuth(req.getProjectId(), userId);
|
||||
String phone = constructionUser.getPhone();
|
||||
SysUserVo userVo = userService.selectUserByPhonenumber(phone);
|
||||
if (userVo == null) {
|
||||
throw new ServiceException("当前用户未在系统注册", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
constructionUser.setSysUserId(userVo.getUserId());
|
||||
// SysUserVo userVo = userService.selectUserByPhonenumber(phone);
|
||||
// if (userVo == null) {
|
||||
// throw new ServiceException("当前用户未在系统注册", HttpStatus.BAD_REQUEST);
|
||||
// }
|
||||
// constructionUser.setSysUserId(userVo.getUserId());
|
||||
String sfzNumber = req.getSfzNumber();
|
||||
// 对身份证号码进行加密
|
||||
String encrypt = idCardEncryptorUtil.encrypt(sfzNumber);
|
||||
constructionUser.setSfzNumber(encrypt);
|
||||
|
||||
//新增系统用户
|
||||
SysUser sysUser = new SysUser();
|
||||
sysUser.setUserName(phone);
|
||||
sysUser.setNickName(req.getUserName());
|
||||
sysUser.setPhonenumber(phone);
|
||||
sysUser.setUserType(UserType.APP_USER.getUserType());
|
||||
Long sysUserId = userService.save(sysUser);
|
||||
constructionUser.setSysUserId(sysUserId);
|
||||
// 操作数据库
|
||||
boolean save = this.save(constructionUser);
|
||||
if (!save) {
|
||||
@ -874,7 +887,13 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
|
||||
constructionUserVo.setFileUploadStatus(SubConstructionUserFileStatusEnum.UPLOAD.getValue());
|
||||
}
|
||||
// 解密身份证号码
|
||||
String decrypt = idCardEncryptorUtil.decrypt(constructionUserVo.getSfzNumber());
|
||||
String decrypt = constructionUserVo.getSfzNumber();
|
||||
try {
|
||||
decrypt = idCardEncryptorUtil.decrypt(constructionUserVo.getSfzNumber());
|
||||
}catch (Exception e){
|
||||
log.warn("身份证解密失败");
|
||||
}
|
||||
|
||||
String hide = null;
|
||||
if (decrypt != null) {
|
||||
hide = DesensitizedUtil.idCardNum(decrypt, 1, 2);
|
||||
@ -892,9 +911,21 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
|
||||
Integer age = Math.max(Period.between(sfzBirth, LocalDate.now()).getYears(), 0);
|
||||
constructionUserVo.setAge(age);
|
||||
}
|
||||
//添加岗位
|
||||
if(constructionUser.getTeamId()!=null){
|
||||
BusProjectTeamMember one = projectTeamMemberService.getOne(Wrappers.<BusProjectTeamMember>lambdaQuery()
|
||||
.eq(BusProjectTeamMember::getTeamId, constructionUser.getTeamId())
|
||||
.last("limit 1")
|
||||
);
|
||||
if(one != null){
|
||||
constructionUserVo.setPostId(one.getPostId());
|
||||
}
|
||||
|
||||
}
|
||||
return constructionUserVo;
|
||||
}).toList();
|
||||
constructionUserVoPage.setRecords(constructionUserVoList);
|
||||
|
||||
return constructionUserVoPage;
|
||||
}
|
||||
|
||||
|
||||
@ -470,7 +470,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
.toList();
|
||||
|
||||
if (CollUtil.isEmpty(punchRangeList)) {
|
||||
throw new ServiceException(isConstruct ? "班组" : "项目" + "未配置考勤范围", HttpStatus.BAD_REQUEST);
|
||||
throw new ServiceException(isConstruct ? "班组未配置考勤范围" : "项目未配置考勤范围", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
List<GeoPoint> matchingRange = JSTUtil.findMatchingRange(req.getLat(), req.getLng(), punchRangeList);
|
||||
return matchingRange != null;
|
||||
|
||||
@ -140,10 +140,13 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
||||
Long teamId = req.getTeamId();
|
||||
BusProjectTeam projectTeam = projectTeamService.getById(teamId);
|
||||
if (projectTeam == null) {
|
||||
throw new ServiceException("对应班组不存在", HttpStatus.NOT_FOUND);
|
||||
throw new ServiceException("对应班组不存在", HttpStatus.ERROR);
|
||||
}
|
||||
Long memberId = projectTeamMember.getMemberId();
|
||||
SubConstructionUser constructionUser = constructionUserService.getBySysUserId(memberId);
|
||||
if (constructionUser.getTeamId() != null) {
|
||||
throw new ServiceException("当前用户已入场", HttpStatus.ERROR);
|
||||
}
|
||||
// 判断用户是否已经被拉黑
|
||||
constructionBlacklistService.validUserInBlacklist(constructionUser.getSysUserId(), projectTeamMember.getProjectId());
|
||||
// 判断对应的用户与项目关联是否存在
|
||||
@ -151,7 +154,7 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
||||
.eq(BusProjectTeamMember::getMemberId, memberId)
|
||||
.eq(BusProjectTeamMember::getProjectId, projectTeamMember.getProjectId()));
|
||||
if (teamMember != null) {
|
||||
throw new ServiceException("当前用户已入场", HttpStatus.BAD_REQUEST);
|
||||
throw new ServiceException("当前用户已入场", HttpStatus.ERROR);
|
||||
}
|
||||
// 操作数据库
|
||||
boolean save = this.save(projectTeamMember);
|
||||
@ -182,29 +185,20 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
||||
relevancy.setProjectId(req.getProjectId());
|
||||
userProjectRelevancyService.save(relevancy);
|
||||
}
|
||||
//设置基础角色
|
||||
List<SysUserRole> sysUserRoles = userRoleMapper.selectList(Wrappers.<SysUserRole>lambdaQuery()
|
||||
//设置基础角色 先清空已有角色
|
||||
userRoleMapper.delete(Wrappers.<SysUserRole>lambdaQuery()
|
||||
.eq(SysUserRole::getUserId, constructionUser.getSysUserId())
|
||||
.eq(SysUserRole::getProjectId, req.getProjectId())
|
||||
.in(SysUserRole::getRoleId, Arrays.asList(2L, 3L))
|
||||
);
|
||||
if (CollUtil.isEmpty(sysUserRoles)) {
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
sysUserRole.setUserId(constructionUser.getSysUserId());
|
||||
sysUserRole.setRoleId("0".equals(req.getPostId()) ? 2L : 3L);
|
||||
sysUserRole.setProjectId(req.getProjectId());
|
||||
userRoleMapper.insert(sysUserRole);
|
||||
} else {
|
||||
Long roleId = "0".equals(req.getPostId()) ? 2L : 3L;
|
||||
List<Long> list1 = sysUserRoles.stream().map(SysUserRole::getRoleId).toList();
|
||||
if (!list1.contains(roleId)){
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
sysUserRole.setUserId(constructionUser.getSysUserId());
|
||||
sysUserRole.setRoleId(roleId);
|
||||
sysUserRole.setProjectId(req.getProjectId());
|
||||
userRoleMapper.insert(sysUserRole);
|
||||
}
|
||||
}
|
||||
//再添加分配角色
|
||||
Long roleId = "0".equals(req.getPostId()) ? 2L : 3L;
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
sysUserRole.setUserId(constructionUser.getSysUserId());
|
||||
sysUserRole.setRoleId(roleId);
|
||||
sysUserRole.setProjectId(req.getProjectId());
|
||||
userRoleMapper.insert(sysUserRole);
|
||||
|
||||
return projectTeamMember.getId();
|
||||
}
|
||||
|
||||
@ -290,11 +284,11 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
||||
String salaryVoucherFile = req.getSalaryVoucherFile();
|
||||
String salaryConfirmationFile = req.getSalaryConfirmationFile();
|
||||
if (StringUtils.isAnyBlank(salaryVoucherFile, salaryConfirmationFile)) {
|
||||
throw new ServiceException("请上传退场文件", HttpStatus.BAD_REQUEST);
|
||||
throw new ServiceException("请上传退场文件", HttpStatus.ERROR);
|
||||
}
|
||||
BusProjectTeamMember projectTeamMember = this.getById(id);
|
||||
if (projectTeamMember == null) {
|
||||
throw new ServiceException("对应项目班组下的成员不存在", HttpStatus.NOT_FOUND);
|
||||
throw new ServiceException("对应项目班组下的成员不存在", HttpStatus.ERROR);
|
||||
}
|
||||
projectService.validAuth(projectTeamMember.getProjectId(), userId);
|
||||
boolean result = this.removeById(id);
|
||||
|
||||
@ -137,4 +137,14 @@ public class QltQualityInspectionController extends BaseController {
|
||||
@PathVariable Long projectId) {
|
||||
return R.ok(busProjectTeamService.queryForemanListByProjectId(projectId));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取整改记录
|
||||
*/
|
||||
@GetMapping("/record/{jobKey}")
|
||||
public R<List<QltQualityInspectionVo>> getRecord(@NotNull(message = "任务批号不能为空")
|
||||
@PathVariable String jobKey) {
|
||||
return R.ok(qualityInspectionService.getRecord(jobKey));
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
@ -52,6 +53,4 @@ public class QltQualityInspectionQueryReq implements Serializable {
|
||||
* 巡检标题
|
||||
*/
|
||||
private String inspectionHeadline;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -347,12 +347,15 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl<QltQualityInspe
|
||||
Long projectId = req.getProjectId();
|
||||
String inspectionType = req.getInspectionType();
|
||||
String inspectionStatus = req.getInspectionStatus();
|
||||
if(inspectionStatus != null){
|
||||
String[] split = inspectionStatus.split(",");
|
||||
lqw.in( QltQualityInspection::getInspectionStatus, Arrays.asList(split));
|
||||
}
|
||||
String rectificationUnit = req.getRectificationUnit();
|
||||
Long rectificationId = req.getRectificationId();
|
||||
// 精确查询
|
||||
lqw.orderByDesc(QltQualityInspection::getCreateTime);
|
||||
lqw.eq(StringUtils.isNotBlank(inspectionType), QltQualityInspection::getInspectionType, inspectionType);
|
||||
lqw.eq(StringUtils.isNotBlank(inspectionStatus), QltQualityInspection::getInspectionStatus, inspectionStatus);
|
||||
lqw.eq(StringUtils.isNotBlank(rectificationUnit), QltQualityInspection::getRectificationUnit, rectificationUnit);
|
||||
lqw.eq(ObjectUtils.isNotEmpty(projectId), QltQualityInspection::getProjectId, projectId);
|
||||
lqw.eq(ObjectUtils.isNotEmpty(rectificationId), QltQualityInspection::getRectificationId, rectificationId);
|
||||
|
||||
@ -143,4 +143,13 @@ public class HseSafetyInspectionController extends BaseController {
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(safetyInspectionService.deleteByIds(List.of(ids)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据任务号获取整改记录
|
||||
*/
|
||||
@GetMapping("/record/{jobKey}")
|
||||
public R<List<HseSafetyInspectionVo>> getRecord(@NotNull(message = "任务批号不能为空")
|
||||
@PathVariable String jobKey) {
|
||||
return R.ok(safetyInspectionService.getRecord(jobKey));
|
||||
}
|
||||
}
|
||||
|
||||
@ -326,4 +326,12 @@ public class SysUserController extends BaseController {
|
||||
return R.ok(userService.selectUserListByDept(deptId));
|
||||
}
|
||||
|
||||
@SaCheckPermission("system:user:edit")
|
||||
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/appUserType/{userId}/{appUserType}")
|
||||
public R<Boolean> updateUserAppType(@PathVariable("userId") Long userId,
|
||||
@PathVariable("appUserType") String appUserType) {
|
||||
return R.ok(userService.updateAppUserType(userId, appUserType));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -104,6 +104,12 @@ public class SysUser extends TenantEntity {
|
||||
private String remark;
|
||||
|
||||
|
||||
/**
|
||||
* app用户类型 0-施工人员 1-管理人员 2-分包人员
|
||||
*/
|
||||
private String appUserType;
|
||||
|
||||
|
||||
public SysUser(Long userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
@ -149,4 +149,7 @@ public class SysUserVo implements Serializable {
|
||||
*/
|
||||
private List<Long> projectIds;
|
||||
|
||||
|
||||
private String appUserType;
|
||||
|
||||
}
|
||||
|
||||
@ -260,4 +260,8 @@ public interface ISysUserService {
|
||||
List<String> getUserNamesByDept(Long deptId);
|
||||
|
||||
SysUserVo queryById(Long userId);
|
||||
|
||||
Long save(SysUser sysUser);
|
||||
|
||||
Boolean updateAppUserType(Long userId,String appUserType);
|
||||
}
|
||||
|
||||
@ -815,6 +815,20 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
return ObjectUtils.notNullGetter(sysUser, SysUser::getUserName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long save(SysUser sysUser) {
|
||||
baseMapper.insert(sysUser);
|
||||
return sysUser.getUserId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateAppUserType(Long userId, String appUserType) {
|
||||
return baseMapper.update(null,
|
||||
new LambdaUpdateWrapper<SysUser>()
|
||||
.set(SysUser::getAppUserType, appUserType)
|
||||
.eq(SysUser::getUserId, userId)) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过用户ID查询用户账户
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user