Browse Source

试验汇总多元素优化

lvy 2 weeks ago
parent
commit
f9230268af

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/SelectedTabVO.java

@@ -1,5 +1,6 @@
 package org.springblade.manager.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -9,9 +10,11 @@ import java.io.Serializable;
 public class SelectedTabVO implements Serializable {
 
     @ApiModelProperty(value = "主键id")
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long pKeyId;
 
     @ApiModelProperty(value = "id")
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long initTabId;
 
     @ApiModelProperty(value = "表单名称")

+ 39 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialSummaryController.java

@@ -199,7 +199,7 @@ public class TrialSummaryController {
                     .eq(TrialSelfInspectionRecord::getType, dto.getUnitType())
                     .eq(TrialSelfInspectionRecord::getTaskStatus, "已审批")
                     .between(TrialSelfInspectionRecord::getReportDate, startDate, endDate)
-                    .last(" order by report_date, report_no, record_no asc")
+                    .last(" order by sort asc, create_time desc")
             );
             if (records.size() <= 0) {
                 throw new ServiceException("未获取到该报告时间段范围内的试验自检记录信息,操作失败");
@@ -259,6 +259,13 @@ public class TrialSummaryController {
                             stringObjectMap.entrySet().removeIf(obj -> obj.getValue() == null || obj.getValue().equals(""));
                             Object tabData = stringObjectMap.getOrDefault(elementKey, null);
                             if (ObjectUtil.isEmpty(tabData)) {
+                                String keyName = elementKey + "__" + tabPkeyId;
+                                if (map.containsKey(keyName)) {
+                                    String existingValue = (String) map.get(keyName);
+                                    map.put(keyName, existingValue + "@@@###");
+                                } else {
+                                    map.put(keyName, "");
+                                }
                                 continue;
                             }
 
@@ -269,6 +276,9 @@ public class TrialSummaryController {
                                 for (String valueRow : split) {
                                     String[] splitValues = valueRow.split(Pattern.quote("_^_"));
                                     String valueInput = splitValues[0];
+                                    if (Objects.equals(valueInput, "/")) {
+                                        continue;
+                                    }
                                     /*String indexKey = splitValues[1];*/
                                     String keyName = elementKey + "__" + tabPkeyId;
 
@@ -349,7 +359,34 @@ public class TrialSummaryController {
              for(String mapKey : map.keySet()){
                  for(TrialSummaryExcelTabReflection data: excelTabReflections){
                     if(mapKey.equals(data.getElementKey() + "__" + data.getTrialTabId())){
-                        map2.put(data.getHtmlKeyName().split("__")[0]+"__",map.get(mapKey));
+                        Object obj = map2.get(data.getHtmlKeyName().split("__")[0] + "__");
+                        if(obj == null){
+                            map2.put(data.getHtmlKeyName().split("__")[0]+"__",map.get(mapKey));
+                        } else {
+                            String[] split = obj.toString().split("@@@###");
+                            String[] split1 = map.get(mapKey).toString().split("@@@###");
+                            int max = Math.max(split.length, split1.length);
+                            StringBuilder sb = new StringBuilder();
+                            for (int i = 0; i < max; i++) {
+                                String v = "";
+                                if (i < split.length) {
+                                    v = split[i];
+                                }
+                                if (i < split1.length) {
+                                    if (!v.isEmpty()) {
+                                        v = v + "、" + split1[i];
+                                    } else {
+                                        v = split1[i];
+                                    }
+                                }
+                                if (sb.length() > 0) {
+                                    sb.append("@@@###").append( v);
+                                } else {
+                                    sb.append(v);
+                                }
+                            }
+                            map2.put(data.getHtmlKeyName().split("__")[0]+"__", sb.toString());
+                        }
                     }
                  }
              }

+ 19 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TrialSummaryClassificationConfigurationController.java

@@ -185,7 +185,8 @@ public class TrialSummaryClassificationConfigurationController extends BladeCont
                 for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates) {
                     SelectedTabVO vo = new SelectedTabVO();
                     vo.setPKeyId(wbsTreePrivate.getPKeyId());
-                    vo.setTabName(ObjectUtil.isNotEmpty(wbsTreePrivate.getFullName()) ? wbsTreePrivate.getFullName() : wbsTreePrivate.getNodeName());
+                    // 与后管保持一致
+                    vo.setTabName(wbsTreePrivate.getNodeName());
                     vo.setInitTabId(Long.parseLong(wbsTreePrivate.getInitTableId()));
                     vo.setInitTableName(wbsTreePrivate.getInitTableName());
                     list.add(vo);
@@ -229,6 +230,7 @@ public class TrialSummaryClassificationConfigurationController extends BladeCont
                         map.put("elementName", TrialTableDataInfo.getElementName(obj.getElementKey()));
                         map.put("trialTabId",TrialTableDataInfo.LONG_ID+"");
                         map.put("elementId",TrialTableDataInfo.getElementId(obj.getElementKey())+"");
+                        map.put("trialTabName",TrialTableDataInfo.TBN);
                         r.add( map);
                     }else {
                         WbsTreePrivate trialTab = wbsTreePrivateServiceImpl.getBaseMapper().getByPKeyId(obj.getTrialTabId());
@@ -240,6 +242,7 @@ public class TrialSummaryClassificationConfigurationController extends BladeCont
                             map.put("elementName", element.getEName());
                             map.put("trialTabId",obj.getTrialTabId()+"");
                             map.put("elementId",obj.getElementId()+"");
+                            map.put("trialTabName",trialTab.getInitTableName());
                             r.add(map);
                         }
                     }
@@ -260,6 +263,17 @@ public class TrialSummaryClassificationConfigurationController extends BladeCont
                 TrialSummaryClassificationConfiguration classificationConfiguration = iTrialSummaryClassificationConfigurationService.getById(dto.getClassId());
                 if (classificationConfiguration != null && ObjectUtil.isNotEmpty(classificationConfiguration.getExcelId())) {
                     List<TrialSummaryReflectionSaveDTO.ReflectionBean> reflectionBeanList = dto.getReflectionBeanList();
+                    Set<Long> elementIds = reflectionBeanList.stream().map(TrialSummaryReflectionSaveDTO.ReflectionBean::getElementId).collect(Collectors.toSet());
+                    if (!elementIds.isEmpty()) {
+                        List<WbsFormElement> elementList = TrialTableDataInfo.getElementList();
+                        List<WbsFormElement> list = wbsFormElementService.list(Wrappers.<WbsFormElement>lambdaQuery().select(WbsFormElement::getId, WbsFormElement::getEKey)
+                                .in(WbsFormElement::getId, elementIds));
+                        if (list != null && !list.isEmpty()) {
+                            elementList.addAll(list);
+                        }
+                        Map<Long, String> elementMap = elementList.stream().collect(Collectors.toMap(WbsFormElement::getId, WbsFormElement::getEKey));
+                        reflectionBeanList.forEach(bean -> bean.setElementKey(elementMap.get(bean.getElementId())));
+                    }
                     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());
@@ -272,12 +286,15 @@ public class TrialSummaryClassificationConfigurationController extends BladeCont
                     }
                     // 批量更新已有记录
                     if (!updateList.isEmpty()) {
-                        String sqlUpdate = "UPDATE m_trial_summary_excel_tab_reflection SET trial_tab_id = ?, element_id = ? WHERE id = ?";
+                        String sqlUpdate = "UPDATE m_trial_summary_excel_tab_reflection SET trial_tab_id = ?, element_id = ?, trial_tab_name = ?, element_key = ?, html_key_name = ? WHERE id = ?";
                         List<Object[]> updateBatchArgs = new ArrayList<>();
                         for (TrialSummaryReflectionSaveDTO.ReflectionBean reflectionBean : updateList) {
                             Object[] paramsUpdate = {
                                     reflectionBean.getTrialTabId(),
                                     reflectionBean.getElementId(),
+                                    reflectionBean.getTrialTabName(),
+                                    reflectionBean.getElementKey(),
+                                    reflectionBean.getHtmlKeyName(),
                                     reflectionBean.getId()
                             };
                             updateBatchArgs.add(paramsUpdate);