Эх сурвалжийг харах

试验分类添加多个元素

cr 3 өдөр өмнө
parent
commit
fb4948d222

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/TrialSummaryReflectionSaveDTO.java

@@ -18,6 +18,9 @@ public class TrialSummaryReflectionSaveDTO implements Serializable {
 
     @Data
     public static class ReflectionBean implements Serializable {
+        @ApiModelProperty(value = "试验表的p_key_id")
+        private Long id;
+
         @ApiModelProperty(value = "试验表的p_key_id")
         private Long trialTabId;
 

+ 35 - 24
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TrialSummaryClassificationConfigurationController.java

@@ -42,6 +42,7 @@ import java.io.*;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 
 @RestController
@@ -256,37 +257,47 @@ public class TrialSummaryClassificationConfigurationController extends BladeCont
                 if (classificationConfiguration != null && ObjectUtil.isNotEmpty(classificationConfiguration.getExcelId())) {
                     List<TrialSummaryReflectionSaveDTO.ReflectionBean> reflectionBeanList = dto.getReflectionBeanList();
                     Set<TrialSummaryReflectionSaveDTO.ReflectionBean> collect = new HashSet<>(reflectionBeanList);
+                    Set<TrialSummaryReflectionSaveDTO.ReflectionBean> updateList = collect.stream().filter(bean -> ObjectUtil.isNotEmpty(bean.getId())).collect(Collectors.toSet());
+                    Set<TrialSummaryReflectionSaveDTO.ReflectionBean> insertList = collect.stream().filter(bean -> ObjectUtil.isEmpty(bean.getId())).collect(Collectors.toSet());
+
                     List<String> keyNameList = collect.stream()
                             .map(bean -> "'" + bean.getHtmlKeyName() + "'")
                             .collect(Collectors.toList());
                     if (keyNameList.size() <= 0) {
                         throw new ServiceException("入参异常,未获取到htmlKeyName");
                     }
-
-//                    String sqlDel = "DELETE FROM m_trial_summary_excel_tab_reflection WHERE excel_id = ? AND class_id = ? AND html_key_name IN (" +
-//                            StringUtils.join(keyNameList, ",") + ")";
-//                    List<Object> paramsDel = new ArrayList<>();
-//                    paramsDel.add(classificationConfiguration.getExcelId());
-//                    paramsDel.add(classificationConfiguration.getId());
-//                    jdbcTemplate.update(sqlDel, paramsDel.toArray());
-
-                    String sqlInsert = "INSERT INTO m_trial_summary_excel_tab_reflection(id,class_id,excel_id,trial_tab_id,element_id,html_key_name,trial_tab_name,element_key) VALUES (?,?,?,?,?,?,?,?)";
-                    List<Object[]> batchArgs = new ArrayList<>();
-                    for (TrialSummaryReflectionSaveDTO.ReflectionBean reflectionBean : collect) {
-                        Object[] paramsInsert = {
-                                SnowFlakeUtil.getId(),
-                                classificationConfiguration.getId(),
-                                classificationConfiguration.getExcelId(),
-                                reflectionBean.getTrialTabId(),
-                                reflectionBean.getElementId(),
-                                reflectionBean.getHtmlKeyName(),
-                                reflectionBean.getTrialTabName(),
-                                reflectionBean.getElementKey()
-                        };
-                        batchArgs.add(paramsInsert);
+                    // 批量更新已有记录
+                    if (!updateList.isEmpty()) {
+                        String sqlUpdate = "UPDATE m_trial_summary_excel_tab_reflection SET trial_tab_id = ?, element_id = ? WHERE id = ?";
+                        List<Object[]> updateBatchArgs = new ArrayList<>();
+                        for (TrialSummaryReflectionSaveDTO.ReflectionBean reflectionBean : updateList) {
+                            Object[] paramsUpdate = {
+                                    reflectionBean.getTrialTabId(),
+                                    reflectionBean.getElementId(),
+                                    reflectionBean.getId()
+                            };
+                            updateBatchArgs.add(paramsUpdate);
+                        }
+                        jdbcTemplate.batchUpdate(sqlUpdate, updateBatchArgs);
+                    }
+                    if (!insertList.isEmpty()){
+                        String sqlInsert = "INSERT INTO m_trial_summary_excel_tab_reflection(id,class_id,excel_id,trial_tab_id,element_id,html_key_name,trial_tab_name,element_key) VALUES (?,?,?,?,?,?,?,?)";
+                        List<Object[]> batchArgs = new ArrayList<>();
+                        for (TrialSummaryReflectionSaveDTO.ReflectionBean reflectionBean : insertList) {
+                            Object[] paramsInsert = {
+                                    SnowFlakeUtil.getId(),
+                                    classificationConfiguration.getId(),
+                                    classificationConfiguration.getExcelId(),
+                                    reflectionBean.getTrialTabId(),
+                                    reflectionBean.getElementId(),
+                                    reflectionBean.getHtmlKeyName(),
+                                    reflectionBean.getTrialTabName(),
+                                    reflectionBean.getElementKey()
+                            };
+                            batchArgs.add(paramsInsert);
+                        }
+                        jdbcTemplate.batchUpdate(sqlInsert, batchArgs);
                     }
-                    jdbcTemplate.batchUpdate(sqlInsert, batchArgs);
-
                     return R.success("操作成功");
                 }
             }