From 5e666f007f44851c5f29a9e79c5efbc49e451591 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 08 三月 2024 09:52:14 +0800
Subject: [PATCH] 模板规则中间表数据

---
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckTemplateRule.java         |   44 ++++++++++++++
 ycl-server/src/main/java/com/ycl/platform/mapper/CheckTemplateRuleMapper.java        |   13 ++++
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java |   73 ++++++++++++++++++-----
 3 files changed, 113 insertions(+), 17 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckTemplateRule.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckTemplateRule.java
new file mode 100644
index 0000000..24ec670
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckTemplateRule.java
@@ -0,0 +1,44 @@
+package com.ycl.platform.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/3/8 9:18
+ */
+@Data
+@Accessors(chain = true)
+@TableName("t_check_template_rule")
+@ApiModel(value = "CheckTemplate瀵硅薄", description = "鑰冩牳妯℃澘")
+public class CheckTemplateRule {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 妯℃澘ID
+     */
+    @TableField("check_template_id")
+    private Integer checkTemplateId;
+
+    /**
+     * 瑙勫垯ID
+     */
+    @TableField("check_rule_id")
+    private Integer checkRuleId;
+
+    /**
+     * 鏉冮噸
+     */
+    @TableField("weight")
+    private BigDecimal weight;
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckTemplateRuleMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckTemplateRuleMapper.java
new file mode 100644
index 0000000..d7e1ad2
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckTemplateRuleMapper.java
@@ -0,0 +1,13 @@
+package com.ycl.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.platform.domain.entity.CheckTemplateRule;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/3/8 9:18
+ */
+@Mapper
+public interface CheckTemplateRuleMapper extends BaseMapper<CheckTemplateRule> {
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java
index 37398d2..03b5866 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java
@@ -1,9 +1,13 @@
 package com.ycl.platform.service.impl;
 
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.ycl.platform.base.BaseSelect;
 import com.ycl.platform.domain.entity.CheckTemplate;
+import com.ycl.platform.domain.entity.CheckTemplateRule;
 import com.ycl.platform.domain.entity.YwUnit;
+import com.ycl.platform.domain.vo.RuleItemVO;
 import com.ycl.platform.mapper.CheckTemplateMapper;
+import com.ycl.platform.mapper.CheckTemplateRuleMapper;
 import com.ycl.platform.service.CheckTemplateService;
 import com.ycl.system.Result;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -39,6 +43,7 @@
 public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateMapper, CheckTemplate> implements CheckTemplateService {
 
     private final CheckTemplateMapper checkTemplateMapper;
+    private final CheckTemplateRuleMapper checkTemplateRuleMapper;
 
     /**
      * 娣诲姞
@@ -46,12 +51,18 @@
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result add(CheckTemplateForm form) {
         CheckTemplate entity = CheckTemplateForm.getEntityByForm(form, null);
-        if(baseMapper.insert(entity) > 0) {
-            return Result.ok("娣诲姞鎴愬姛");
-        }
-        return Result.error("娣诲姞澶辫触");
+        baseMapper.insert(entity);
+        form.getRuleFormList().stream().forEach(rule -> {
+            CheckTemplateRule checkTemplateRule = new CheckTemplateRule();
+            checkTemplateRule.setCheckTemplateId(entity.getId());
+            checkTemplateRule.setCheckRuleId(rule.getRuleId());
+            checkTemplateRule.setWeight(rule.getWeight());
+            checkTemplateRuleMapper.insert(checkTemplateRule);
+        });
+        return Result.ok("娣诲姞鎴愬姛");
     }
 
     /**
@@ -60,17 +71,28 @@
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result update(CheckTemplateForm form) {
 
         CheckTemplate entity = baseMapper.selectById(form.getId());
-
         // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
         Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
         BeanUtils.copyProperties(form, entity);
-        if (baseMapper.updateById(entity) > 0) {
-            return Result.ok("淇敼鎴愬姛");
-        }
-        return Result.error("淇敼澶辫触");
+        baseMapper.updateById(entity);
+
+        // 鍏堝垹闄ゅ師鍏堢殑瀵瑰簲鍏崇郴
+        new LambdaUpdateChainWrapper<>(checkTemplateRuleMapper)
+                .eq(CheckTemplateRule::getCheckTemplateId, form.getId())
+                .remove();
+        // 鍐嶉噸鏂版坊鍔�
+        form.getRuleFormList().stream().forEach(rule -> {
+            CheckTemplateRule checkTemplateRule = new CheckTemplateRule();
+            checkTemplateRule.setCheckTemplateId(entity.getId());
+            checkTemplateRule.setCheckRuleId(rule.getRuleId());
+            checkTemplateRule.setWeight(rule.getWeight());
+            checkTemplateRuleMapper.insert(checkTemplateRule);
+        });
+        return Result.ok("淇敼鎴愬姛");
     }
 
     /**
@@ -79,11 +101,13 @@
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result remove(List<String> ids) {
-        if(baseMapper.deleteBatchIds(ids) > 0) {
-            return Result.ok("鍒犻櫎鎴愬姛");
-        }
-        return Result.error("鍒犻櫎澶辫触");
+        baseMapper.deleteBatchIds(ids);
+        new LambdaUpdateChainWrapper<>(checkTemplateRuleMapper)
+                .in(CheckTemplateRule::getCheckTemplateId, ids)
+                .remove();
+        return Result.ok("鍒犻櫎鎴愬姛");
     }
 
     /**
@@ -92,11 +116,13 @@
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result removeById(String id) {
-        if(baseMapper.deleteById(id) > 0) {
-            return Result.ok("鍒犻櫎鎴愬姛");
-        }
-        return Result.error("鍒犻櫎澶辫触");
+        baseMapper.deleteById(id);
+        new LambdaUpdateChainWrapper<>(checkTemplateRuleMapper)
+                .eq(CheckTemplateRule::getCheckTemplateId, id)
+                .remove();
+        return Result.ok("鍒犻櫎鎴愬姛");
     }
 
     /**
@@ -135,6 +161,19 @@
         CheckTemplate entity = baseMapper.selectById(id);
         Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
         CheckTemplateVO vo = CheckTemplateVO.getVoByEntity(entity, null);
+
+        // 鏌ヨ�冩牳瑙勫垯
+        List<CheckTemplateRule> ruleList = new LambdaQueryChainWrapper<>(checkTemplateRuleMapper)
+                .eq(CheckTemplateRule::getCheckTemplateId, entity.getId())
+                .list();
+        List<RuleItemVO> ruleVOS = ruleList.stream().map(rule -> {
+            RuleItemVO ruleItemVO = new RuleItemVO();
+            ruleItemVO.setRuleId(rule.getCheckRuleId());
+            ruleItemVO.setWeight(rule.getWeight());
+            return ruleItemVO;
+        }).collect(Collectors.toList());
+        vo.setRuleFormList(ruleVOS);
+
         return Result.ok().data(vo);
     }
 

--
Gitblit v1.8.0