车车 hai 4 meses
pai
achega
af41933e4f

+ 9 - 5
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/blacklist/vo/BlacklistRespVO.java

@@ -1,11 +1,11 @@
 package cn.iocoder.yudao.module.iscs.controller.admin.blacklist.vo;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Data;
+
 import java.time.LocalDateTime;
-import com.alibaba.excel.annotation.*;
 
 @Schema(description = "管理后台 - 黑名单关联 Response VO")
 @Data
@@ -36,4 +36,8 @@ public class BlacklistRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
-}
+    private String userName;
+
+    private String nickName;
+
+}

+ 5 - 6
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/dataobject/blacklist/BlacklistDO.java

@@ -1,11 +1,10 @@
 package cn.iocoder.yudao.module.iscs.dal.dataobject.blacklist;
 
-import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.*;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
 
 /**
  * 黑名单关联 DO
@@ -45,4 +44,4 @@ public class BlacklistDO extends BaseDO {
     private String remark;
 
 
-}
+}

+ 4 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/mysql/blacklist/BlacklistMapper.java

@@ -11,6 +11,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 黑名单关联 Mapper
  *
@@ -33,4 +35,6 @@ public interface BlacklistMapper extends BaseMapperX<BlacklistDO> {
 
     Page<WhiteUserVO> getWhiteUserPage(Page<BlacklistDO> page, @Param(value = "vo") BlacklistPageReqVO vo);
 
+    Boolean physicalDeleteById(@Param(value = "ids") List<Long> ids);
+
 }

+ 2 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/blacklist/BlacklistServiceImpl.java

@@ -73,7 +73,8 @@ public class BlacklistServiceImpl extends ServiceImpl<BlacklistMapper, Blacklist
         // 校验存在
         validateBlacklistExists(ids);
         // 删除
-        blacklistMapper.deleteByIds(ids);
+        blacklistMapper.physicalDeleteById(ids);
+
         }
 
     private void validateBlacklistExists(List<Long> ids) {

+ 35 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workstation/WorkstationServiceImpl.java

@@ -1,14 +1,19 @@
 package cn.iocoder.yudao.module.iscs.service.workstation;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.lang.Assert;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationPageReqVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.workstation.vo.WorkstationSaveReqVO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.userworkstation.UserWorkstationDO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workstation.WorkstationDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.workstation.WorkstationMapper;
+import cn.iocoder.yudao.module.iscs.service.userworkstation.UserWorkstationService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -28,9 +33,24 @@ public class WorkstationServiceImpl extends ServiceImpl<WorkstationMapper, Works
 
     @Resource
     private WorkstationMapper workstationMapper;
+    @Resource
+    private UserWorkstationService userWorkstationService;
 
     @Override
     public Long createWorkstation(WorkstationSaveReqVO createReqVO) {
+        // 断言校验
+        Assert.isTrue(StringUtils.isNotBlank(createReqVO.getWorkstationName()), "岗位名称不可为空!");
+        List<WorkstationDO> list = list(Wrappers.<WorkstationDO>lambdaQuery()
+                .eq(WorkstationDO::getWorkstationName, createReqVO.getWorkstationName()));
+        Assert.isTrue(list.isEmpty(), "该岗位名称已被使用!");
+        WorkstationDO one = getById(createReqVO.getParentId());
+        String ancestors;
+        if (one != null) {
+            ancestors = one.getAncestors() + "," + createReqVO.getParentId();
+        } else {
+            ancestors = "0";
+        }
+        createReqVO.setAncestors(ancestors);
         // 插入
         WorkstationDO workstation = BeanUtils.toBean(createReqVO, WorkstationDO.class);
         workstationMapper.insert(workstation);
@@ -41,6 +61,13 @@ public class WorkstationServiceImpl extends ServiceImpl<WorkstationMapper, Works
 
     @Override
     public void updateWorkstation(WorkstationSaveReqVO updateReqVO) {
+        // 断言校验
+        Assert.notNull(updateReqVO.getId(), "岗位ID不可为空!");
+        Assert.isTrue(StringUtils.isNotBlank(updateReqVO.getWorkstationName()), "岗位名称不可为空!");
+        List<WorkstationDO> list = list(Wrappers.<WorkstationDO>lambdaQuery()
+                .eq(WorkstationDO::getWorkstationName, updateReqVO.getWorkstationName())
+                .ne(WorkstationDO::getId, updateReqVO.getId()));
+        Assert.isTrue(list.isEmpty(), "该岗位名称已被使用!");
         // 校验存在
         validateWorkstationExists(updateReqVO.getId());
         // 更新
@@ -57,12 +84,18 @@ public class WorkstationServiceImpl extends ServiceImpl<WorkstationMapper, Works
     }
 
     @Override
-        public void deleteWorkstationListByIds(List<Long> ids) {
+    public void deleteWorkstationListByIds(List<Long> ids) {
+        Assert.isFalse(ids.isEmpty(), "请选择需要删除的数据!");
+        List<UserWorkstationDO> list = userWorkstationService.list(Wrappers.<UserWorkstationDO>lambdaQuery()
+                .in(UserWorkstationDO::getWorkstationId, ids));
+        Assert.isTrue(list.isEmpty(), "岗位正在被用户使用,无法删除!");
+        List<WorkstationDO> isWorkstationList = list(Wrappers.<WorkstationDO>lambdaQuery().in(WorkstationDO::getParentId, ids));
+        Assert.isTrue(isWorkstationList.isEmpty(), "岗位下有子岗位,无法删除!");
         // 校验存在
         validateWorkstationExists(ids);
         // 删除
         workstationMapper.deleteByIds(ids);
-        }
+    }
 
     private void validateWorkstationExists(List<Long> ids) {
         List<WorkstationDO> list = workstationMapper.selectByIds(ids);

+ 9 - 2
yudao-module-iscs/src/main/resources/mapper/BlacklistMapper.xml

@@ -11,7 +11,7 @@
 
     <select id="getBlacklistPage"
             resultType="cn.iocoder.yudao.module.iscs.controller.admin.blacklist.vo.BlacklistRespVO">
-        select b.*, u.username, u.nickname from sys_blacklist b
+        select b.*, u.username as userName, u.nickname as nickName from sys_blacklist b
         left join system_users u on u.id = b.user_id
         <where>
             b.deleted = 0
@@ -35,7 +35,7 @@
         FROM
         system_users u
         <where>
-            u.id NOT IN (SELECT b.user_id FROM sys_blacklist b)
+            u.id NOT IN (SELECT b.user_id FROM sys_blacklist b where deleted = 0)
             and u.deleted = 0
             <if test="vo.nickName != null and vo.nickName.trim != ''">
                 and (u.username like concat('%',#{dto.nickName},'%') or u.nickname like
@@ -44,4 +44,11 @@
         </where>
         order by u.id asc
     </select>
+
+    <delete id="physicalDeleteById">
+        DELETE FROM sys_blacklist WHERE id in
+        <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </delete>
 </mapper>

+ 1 - 1
yudao-module-iscs/src/main/resources/mapper/MaterialsMapper.xml

@@ -38,7 +38,7 @@
                 and m.materials_cabinet_id = #{vo.materialsCabinetId}
             </if>
             <if test="vo.materialsCabinetId != null and vo.materialsCabinetId == 0">
-                and (m.materials_cabinet_id is null || m.materials_cabinet_id = 0)
+                and (m.materials_cabinet_id is null or m.materials_cabinet_id = 0)
             </if>
             <if test="vo.materialsTypeId != null">
                 and m.materials_type_id = #{vo.materialsTypeId}