Quellcode durchsuchen

sop新增上锁人

车车 vor 4 Monaten
Ursprung
Commit
5609db3f77

+ 2 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/sop/SopUserController.java

@@ -34,8 +34,8 @@ public class SopUserController {
     @PostMapping("/insertSopUser")
     @Operation(summary = "创建SOP用户")
     @PreAuthorize("@ss.hasPermission('iscs:sop-user:create')")
-    public CommonResult<Long> insertSopUser(@Valid @RequestBody SopUserSaveReqVO createReqVO) {
-        return success(sopUserService.createSopUser(createReqVO));
+    public CommonResult<Boolean> insertSopUser(@Valid @RequestBody List<SopUserSaveReqVO> list) {
+        return success(sopUserService.createSopUser(list));
     }
 
     @PutMapping("/updateSopUser")

+ 15 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/mysql/sop/SopUserMapper.java

@@ -5,7 +5,11 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.SopUserPageReqVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.sop.SopUserDO;
+import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * SOP用户 Mapper
@@ -27,4 +31,15 @@ public interface SopUserMapper extends BaseMapperX<SopUserDO> {
                 .orderByDesc(SopUserDO::getId));
     }
 
+    @Delete({
+            "<script>",
+            "DELETE FROM isc_sop_user",
+            "WHERE id IN",
+            "<foreach item='id' collection='ids' open='(' separator=',' close=')'>",
+            "#{id}",
+            "</foreach>",
+            "</script>"
+    })
+    Boolean physicalDeleteByIds(@Param(value = "ids") List<Long> ids);
+
 }

+ 2 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopUserService.java

@@ -19,10 +19,10 @@ public interface SopUserService extends IService<SopUserDO> {
     /**
      * 创建SOP用户
      *
-     * @param createReqVO 创建信息
+     * @param list 创建信息
      * @return 编号
      */
-    Long createSopUser(@Valid SopUserSaveReqVO createReqVO);
+    Boolean createSopUser(@Valid List<SopUserSaveReqVO> list);
 
     /**
      * 更新SOP用户

+ 51 - 9
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopUserServiceImpl.java

@@ -1,17 +1,24 @@
 package cn.iocoder.yudao.module.iscs.service.sop;
 
+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.sop.vo.SopUserPageReqVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.SopUserSaveReqVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.sop.SopUserDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.sop.SopUserMapper;
+import cn.iocoder.yudao.module.system.dal.dataobject.attribute.AttributeDO;
+import cn.iocoder.yudao.module.system.service.attribute.AttributeService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * SOP用户 Service 实现类
@@ -24,15 +31,50 @@ public class SopUserServiceImpl extends ServiceImpl<SopUserMapper, SopUserDO> im
 
     @Resource
     private SopUserMapper sopUserMapper;
+    @Resource
+    private AttributeService attributeService;
 
+    @Transactional
     @Override
-    public Long createSopUser(SopUserSaveReqVO createReqVO) {
-        // 插入
-        SopUserDO sopUser = BeanUtils.toBean(createReqVO, SopUserDO.class);
-        sopUserMapper.insert(sopUser);
-
+    public Boolean createSopUser(List<SopUserSaveReqVO> list) {
+        Assert.isFalse(list.isEmpty(), "请输入要新增的人员!");
+        // 检查是否存在重复人员(共锁人/上锁人)
+        AttributeDO jtcolocker = attributeService.getAttributeByKey("role.jtcolocker");
+        AttributeDO jtlocker = attributeService.getAttributeByKey("role.jtlocker");
+        Set<Long> collect = list.stream()
+                .filter(o -> o.getUserId() != null && o.getUserRole().equals(jtcolocker.getSysAttrValue()))
+                .map(SopUserSaveReqVO::getUserId).collect(Collectors.toSet());
+        Assert.isFalse(collect.size() < list.size(), "存在重复共锁人员信息!");
+        Set<Long> collect1 = list.stream()
+                .filter(o -> o.getUserId() != null && o.getUserRole().equals(jtlocker.getSysAttrValue()))
+                .map(SopUserSaveReqVO::getUserId).collect(Collectors.toSet());
+        Assert.isFalse(collect1.size() < list.size(), "存在重复上锁人员信息!");
+        for (SopUserSaveReqVO vo : list) {
+            Assert.notNull(vo.getUserId(), "请告知我userId");
+            Assert.notNull(vo.getUserType(), "请告知我用户类型");
+            Assert.notNull(vo.getUserRole(), "请告知我用户角色");
+            if (vo.getUserRole().equals(jtcolocker.getSysAttrValue())) {
+                // 检查共锁人员重复
+                List<SopUserDO> list1 = list(Wrappers.<SopUserDO>lambdaQuery()
+                        .eq(SopUserDO::getUserId, vo.getUserId())
+                        .eq(SopUserDO::getUserRole, jtcolocker.getSysAttrValue())
+                        .eq(SopUserDO::getSopId, vo.getSopId()));
+                Assert.isTrue(list1.isEmpty(), "存在重复共锁人!");
+            }
+            if (vo.getUserRole().equals(jtlocker.getSysAttrValue())) {
+                // 检查上锁人员重复
+                List<SopUserDO> list2 = list(Wrappers.<SopUserDO>lambdaQuery()
+                        .eq(SopUserDO::getUserId, vo.getUserId())
+                        .eq(SopUserDO::getUserRole, jtlocker.getSysAttrValue())
+                        .eq(SopUserDO::getSopId, vo.getSopId()));
+                Assert.isTrue(list2.isEmpty(), "存在重复上锁人!");
+            }
+            // 插入
+            SopUserDO sopUser = BeanUtils.toBean(vo, SopUserDO.class);
+            sopUserMapper.insert(sopUser);
+        }
         // 返回
-        return sopUser.getId();
+        return true;
     }
 
     @Override
@@ -43,10 +85,10 @@ public class SopUserServiceImpl extends ServiceImpl<SopUserMapper, SopUserDO> im
     }
 
     @Override
-        public void deleteSopUserListByIds(List<Long> ids) {
+    public void deleteSopUserListByIds(List<Long> ids) {
         // 删除
-        sopUserMapper.deleteByIds(ids);
-        }
+        sopUserMapper.physicalDeleteByIds(ids);
+    }
 
     @Override
     public SopUserDO getSopUser(Long id) {

+ 1 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopWorkflowStepServiceImpl.java

@@ -34,7 +34,7 @@ public class SopWorkflowStepServiceImpl extends ServiceImpl<SopWorkflowStepMappe
     @Transactional
     @Override
     public Boolean createSopWorkflowStep(List<SopWorkflowStepSaveReqVO> list) {
-        Assert.isTrue(list.isEmpty(), "请输入要新增的步骤!");
+        Assert.isFalse(list.isEmpty(), "请输入要新增的步骤!");
         // 检查是否存在重复序号
         Set<Integer> collect = list.stream().map(SopWorkflowStepSaveReqVO::getStepIndex).filter(Objects::nonNull).collect(Collectors.toSet());
         Assert.isFalse(collect.size() < list.size(), "存在序号缺失或重复序号!");