diff --git a/xinnengyuan/ruoyi-admin/src/main/java/org/dromara/web/service/SysRegisterService.java b/xinnengyuan/ruoyi-admin/src/main/java/org/dromara/web/service/SysRegisterService.java index 1a2d9472..2eb6da66 100644 --- a/xinnengyuan/ruoyi-admin/src/main/java/org/dromara/web/service/SysRegisterService.java +++ b/xinnengyuan/ruoyi-admin/src/main/java/org/dromara/web/service/SysRegisterService.java @@ -92,7 +92,7 @@ public class SysRegisterService { // if (!isValid) { // throw new UserException("注册失败,密码需满足8–18位,包含大小写字母、数字、特殊字符中的至少三种组合"); // } - // 验证码开关 + SysUserBo sysUser = new SysUserBo(); sysUser.setUserName(username); sysUser.setNickName(username); @@ -101,16 +101,24 @@ public class SysRegisterService { sysUser.setUserType(userType); sysUser.setEmail(registerBody.getEmail()); - boolean exist = TenantHelper.dynamic(tenantId, () -> { - return userMapper.exists(new LambdaQueryWrapper() - .eq(SysUser::getPhonenumber, sysUser.getPhonenumber())); - }); - if (exist) { - throw new UserException("user.register.save.error", username); - } - boolean regFlag = userService.registerUser(sysUser, tenantId); - if (!regFlag) { - throw new UserException("user.register.error"); + SysUser sysUserByPhonenumber = userMapper.selectDefFlagUser(username); + if(sysUserByPhonenumber != null){ + sysUser.setUserId(sysUserByPhonenumber.getUserId()); + userMapper.updateDefFlag(sysUser); + userMapper.updateConstructionUser(sysUserByPhonenumber.getUserId()); + }else { + + boolean exist = TenantHelper.dynamic(tenantId, () -> { + return userMapper.exists(new LambdaQueryWrapper() + .eq(SysUser::getPhonenumber, sysUser.getPhonenumber())); + }); + if (exist) { + throw new UserException("user.register.save.error", username); + } + boolean regFlag = userService.registerUser(sysUser, tenantId); + if (!regFlag) { + throw new UserException("user.register.error"); + } } recordLogininfor(tenantId, username, Constants.REGISTER, MessageUtils.message("user.register.success")); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPurchaseDocServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPurchaseDocServiceImpl.java index c2fe3e2d..00f3eef6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPurchaseDocServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPurchaseDocServiceImpl.java @@ -211,6 +211,11 @@ public class BusPurchaseDocServiceImpl extends ServiceImpl associationList, Long supplierId) { for (BusPlanDocAssociationBo association : associationList) { + + if(association.getDemandQuantity() == null){ + throw new ServiceException("请填写需求数量"); + } + //获取批次需求计划 BusMaterialbatchdemandplan byId = materialbatchdemandplanService.getById(association.getPlanId()); List statuss = new ArrayList<>(); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/SubConstructionUser.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/SubConstructionUser.java index 84883881..64cb17ae 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/SubConstructionUser.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/contractor/domain/SubConstructionUser.java @@ -1,6 +1,7 @@ package org.dromara.contractor.domain; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; @@ -204,4 +205,10 @@ public class SubConstructionUser extends BaseEntity { private Long goId; private String goOpenid; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialsServiceImpl.java index a8e97567..88e7471d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialsServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialsServiceImpl.java @@ -370,6 +370,9 @@ public class MatMaterialsServiceImpl extends ServiceImpl itemList, String formCode, String supplierUnit, String nickname) { for (MatMaterialReceiveItemDto item : itemList) { + if(item.getAcceptedQuantity().compareTo(BigDecimal.ZERO) <= 0){ + continue; + } MatMaterials matMaterials = new MatMaterials(); matMaterials.setMaterialsName(item.getName()); matMaterials.setProjectId(projectId); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/SysUserAppController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/SysUserAppController.java index 7e5caa9a..66c93ce7 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/SysUserAppController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/SysUserAppController.java @@ -17,6 +17,7 @@ import org.dromara.common.core.utils.StringUtils; import org.dromara.common.encrypt.annotation.ApiEncrypt; import org.dromara.common.excel.core.ExcelResult; import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; @@ -83,5 +84,21 @@ public class SysUserAppController extends BaseController { return R.ok(deptService.selectDeptTreeList(dept)); } + /** + * 注销用户信息 + */ + @RepeatSubmit() + @PutMapping("/deletion") + public R deletion() { + return R.ok(userService.deletion()); + } + + /** + * 密码比对 + */ + @GetMapping("/passwordCompare") + public R passwordCompare(String password) { + return R.ok(userService.passwordCompare(password)); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java index 8719e448..de190b7c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java @@ -8,6 +8,7 @@ import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.system.domain.SysUser; +import org.dromara.system.domain.bo.SysUserBo; import org.dromara.system.domain.vo.SysUserExportVo; import org.dromara.system.domain.vo.SysUserVo; @@ -137,4 +138,13 @@ public interface SysUserMapper extends BaseMapperPlus { List selectUserListByAppUserType(@Param("appUserType") String appUserType, @Param("projectId")Long projectId, @Param("contractorId")Long contractorId); + + + SysUser selectDefFlagUser(@Param("phonenumber") String phonenumber); + + + void updateDefFlag(@Param("sysUserBo") SysUserBo sysUserBo); + + void updateConstructionUser(@Param("userId") Long userId); + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java index 52f17c6e..f3e716dd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java @@ -283,5 +283,7 @@ public interface ISysUserService { String queryNameById(Long id); + Boolean deletion(); + Boolean passwordCompare(String password); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java index f0dd2c99..8b252e39 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.system.service.impl; +import cn.dev33.satoken.secure.BCrypt; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; @@ -57,6 +58,7 @@ import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -1281,6 +1283,49 @@ public class SysUserServiceImpl implements ISysUserService, UserService { return sysUserVo != null ? sysUserVo.getNickName() : null; } + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deletion() { + Long userId = LoginHelper.getUserId(); + SubConstructionUser constructionUser = constructionUserService.getByUserId(userId); + if(constructionUser!=null && constructionUser.getTeamId()!=null){ + throw new ServiceException("请先退出班组"); + } + + //清空关联项目 + userProjectRelevancyService.deleteByUserId(userId); + + //逻辑删除 + constructionUserService.lambdaUpdate() + .set(SubConstructionUser::getProjectId, null) + .set(SubConstructionUser::getContractorId, null) + .set(SubConstructionUser::getTeamId, null) + .set(SubConstructionUser::getUserRole, "9") + .set(SubConstructionUser::getTypeOfWork, null) + .set(SubConstructionUser::getWageMeasureUnit, null) + .set(SubConstructionUser::getEntryDate, null) + .set(SubConstructionUser::getLeaveDate, null) + .set(SubConstructionUser::getSalary, BigDecimal.ZERO) + .set(SubConstructionUser::getFirstDate, null) + .set(SubConstructionUser::getExitStatus, "0") + .set(SubConstructionUser::getDelFlag, "1") + .eq(SubConstructionUser::getSysUserId, userId) + .update(); + + + //删除用户角色关联 + userRoleMapper.delete(new LambdaQueryWrapper().eq(SysUserRole::getUserId, userId)); + + return baseMapper.deleteById(userId)>0; + } + + @Override + public Boolean passwordCompare(String password) { + Long userId = LoginHelper.getUserId(); + SysUser sysUser = baseMapper.selectById(userId); + return BCrypt.checkpw(password, sysUser.getPassword()); + } + @Override public UserDTO selectUser(Long userId) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java index caca0758..90468208 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java @@ -1,6 +1,7 @@ package org.dromara.tender.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.exception.ServiceException; @@ -384,6 +385,9 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl map = new HashMap<>(); + if(CollectionUtil.isEmpty(bplanIdds)){ + return map; + } //获取该供应商的所有材料 List busTenderPlanningLimitLists = busTenderPlanningLimitListMapper.selectList(new LambdaQueryWrapper().in(BusTenderPlanningLimitList::getBiddingPlanId, bplanIdds)); for (BusTenderPlanningLimitList v : busTenderPlanningLimitLists) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 6c775a54..67e052a3 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -140,5 +140,30 @@ AND su.status = '0' + + + UPDATE sys_user + SET + del_flag = '0', + contractor_id = null, + dept_id = null, + password = #{sysUserBo.password}, + user_type = #{sysUserBo.userType}, + app_user_type = '0', + status = '0' + WHERE + user_id = #{sysUserBo.userId} + + + + UPDATE sub_construction_user + SET + del_flag = '0', + user_role = '0' + WHERE + sys_user_id = #{userId} +