Просмотр исходного кода

试验基础信息建立模型数据

lvy 1 месяц назад
Родитель
Сommit
0748f11988

+ 148 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TrialBaseInfo.java

@@ -0,0 +1,148 @@
+package org.springblade.manager.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springblade.business.entity.TrialSampleInfo;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author yangyj
+ * @Date 2023/12/14 15:55
+ * @description 基础信息
+ */
+@Data
+public class TrialBaseInfo implements  DataModel{
+    public static final String ID="20370000000";
+    public static final String TBN="TBInfo";
+    public static final String TBN_CH="试验基础信息";
+    static final String UNKNOWN="未设置";
+    /**
+     * 项目名称/工程名称
+     */
+    @JSONField(name = "key_1",label="项目名称",ordinal = 1)
+    private String projectName;
+    /**
+     * 施工单位
+     */
+    @JSONField(name = "key_2",label="施工单位",ordinal = 2)
+    private String constructionUnit;
+
+    /**
+     * 监理单位
+     */
+    @JSONField(name = "key_3",label="监理单位",ordinal = 3)
+    private String supervisionUnit;
+
+    /**
+     * 实验室名称
+     */
+    @JSONField(name = "key_4",label="实验室名称",ordinal = 4)
+    private String labName;
+
+    /**
+     * 合同段/工区
+     */
+    @JSONField(name = "key_5",label="合同段/工区",ordinal = 5)
+    private String contractName;
+
+    /**
+     * 工程部位/用途
+     */
+    @JSONField(name = "key_6",label="工程部位/用途",ordinal = 6)
+    private String projectPosition;
+
+    /**
+     * 委托单编号
+     */
+    @JSONField(name = "key_7",label="委托单编号",ordinal = 7)
+    private String entrustNo;
+
+    /**
+     * 记录编号
+     */
+    @JSONField(name = "key_8",label="记录编号",ordinal = 8)
+    private String recordNo;
+
+    /**
+     * 报告编号
+     */
+    @JSONField(name = "key_9",label="报告编号",ordinal = 9)
+    private String reportNo;
+
+    /**
+     * 判断依据
+     */
+    @JSONField(name = "key_10",label="判断依据",ordinal = 10)
+    private String standard;
+
+    /**
+     * 样品名称
+     */
+    @JSONField(name = "key_11",label="样品名称",ordinal = 11)
+    private String materialName;
+
+    /**
+     * 样品编号
+     */
+    @JSONField(name = "key_12",label="样品编号",ordinal = 12)
+    private String specificationNumber;
+
+    /**
+     * 样品描述
+     */
+    @JSONField(name = "key_13",label="样品描述",ordinal = 13)
+    private String sampleDescription;
+
+    /**
+     * 来样/取样时间
+     */
+    @JSONField(name = "key_14",label="来样/取样时间",ordinal = 14)
+    private Date samplingDate;
+
+    /**
+     * 样品数量
+     */
+    @JSONField(name = "key_15",label="样品数量",ordinal = 15)
+    private String materialCount;
+
+    public Object getValueByKey(String key) {
+        String keyPrefix = TBN + ":";
+        if ((keyPrefix + "key_1").equals( key)) {
+            return projectName;
+        } else if ((keyPrefix + "key_2").equals( key)) {
+            return constructionUnit;
+        } else if ((keyPrefix + "key_3").equals( key)) {
+            return supervisionUnit;
+        } else if ((keyPrefix + "key_4").equals( key)) {
+            return labName;
+        } else if ((keyPrefix + "key_5").equals( key)) {
+            return contractName;
+        } else if ((keyPrefix + "key_6").equals( key)) {
+            return projectPosition;
+        } else if ((keyPrefix + "key_7").equals( key)) {
+            return entrustNo;
+        } else if ((keyPrefix + "key_8").equals( key)) {
+            return recordNo;
+        } else if ((keyPrefix + "key_9").equals( key)) {
+            return reportNo;
+        } else if ((keyPrefix + "key_10").equals( key)) {
+            return standard;
+        } else if ((keyPrefix + "key_11").equals( key)) {
+            return materialName;
+        } else if ((keyPrefix + "key_12").equals( key)) {
+            return specificationNumber;
+        } else if ((keyPrefix + "key_13").equals( key)) {
+            return sampleDescription;
+        } else if ((keyPrefix + "key_14").equals(key)) {
+            return samplingDate;
+        } else if ((keyPrefix + "key_15").equals(key)) {
+            return materialCount;
+        }
+        return null;
+    }
+
+}

+ 140 - 51
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -78,6 +78,7 @@ import org.springframework.dao.DataAccessException;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.RowCallbackHandler;
 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.TransactionDefinition;
@@ -2767,7 +2768,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 }
                 EntrustInfo entrustInfo = null;
                 Long sampleId = null;
-                if (record.getEntrustId() != null) {
+                if (record.getEntrustId() != null && record.getEntrustId() > 0) {
                     String sql = "select * from u_entrust_info where id ="+ record.getEntrustId();
                     try {
                         entrustInfo = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<>(EntrustInfo.class));
@@ -2799,13 +2800,13 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     //用sampleId查询出关联的材料对象
                     String querySql2 = "select * from u_trial_material_mobilization where id =(select mobilization_id from u_trial_sampling_record where sample_info_id = "+sampleId+") ";
                     try {
-                        trialMaterialMobilization = jdbcTemplate.queryForObject(querySql2, new BeanPropertyRowMapper<>(TrialMaterialMobilization.class));
+                        trialMaterialMobilization = jdbcTemplate.query(querySql2, new BeanPropertyRowMapper<>(TrialMaterialMobilization.class)).stream().findFirst().orElse(null);
                     } catch (DataAccessException e) {
                         e.printStackTrace();
                     }
                 }
                 //通过html获取页面上的key值 返回key值对应的数据
-                setBasicFormData(doc, reData, sampleInfo, trialMaterialMobilization, entrustInfo, false);
+                setBasicFormData(doc, reData, sampleInfo, trialMaterialMobilization, entrustInfo,record, baseInfoDTO, wbsTreePrivate);
             } else if(entrustId != null){
                 //有委托单信息是从实验报告关联委托单进来的 通过委托单查询到具体的样品id
                 String sql = "select * from u_entrust_info where id ="+entrustId;
@@ -2822,7 +2823,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     trialMaterialMobilization = null;
                 }
                 //通过html获取页面上的key值 返回key值对应的数据
-                List<String> isCancelList = setBasicFormData(doc, reData, sampleInfo, trialMaterialMobilization, entrustInfo, false);
+                setBasicFormData(doc, reData, sampleInfo, trialMaterialMobilization, entrustInfo,record, baseInfoDTO, wbsTreePrivate);
             }
             //第一次新增 回显系统生成的编号
             if(type != null && nodeId != null){
@@ -3032,6 +3033,10 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                                         String[] strings = StringUtils.strip(tabData[0], "[]").split(",");
                                         reData.put(key + "__" + tabData[1], strings);
                                     } else {
+                                        Object o = reData.get(key + "__" + tabData[1]);
+                                        if (o != null && tabData[0].equals("/")) {
+                                            continue;
+                                        }
                                         reData.put(key + "__" + tabData[1], tabData[0]);
                                     }
                                 }
@@ -3092,6 +3097,52 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         return list;
     }
 
+    public Map<String, String> formulaTrialData(WbsTreePrivate wbsTreePrivate) {
+        Map<String, String> keyMap = new HashMap<>();
+        try {
+            List<Map<String, Object>> formulas = null;
+            if (wbsTreePrivate != null) {
+                if (wbsTreePrivate.getInitTableId() != null) {
+                    formulas = jdbcTemplate.queryForList("SELECT a.e_name,b.rely FROM m_wbs_form_element a, m_formula b WHERE  b.id in ( SELECT formula_id FROM m_element_formula_mapping WHERE scope = 0 AND element_id = a.id) and a.f_id = " +
+                            wbsTreePrivate.getInitTableId() + " and b.rely like '%TBInfo:%'");
+                }
+                if (wbsTreePrivate.getInitTableName() != null) {
+                    List<org.springblade.manager.entity.TableInfo> tableInfos = tableInfoService.list(Wrappers.<org.springblade.manager.entity.TableInfo>lambdaQuery().eq(org.springblade.manager.entity.TableInfo::getTabEnName, wbsTreePrivate.getInitTableName()));
+                    if (!tableInfos.isEmpty()) {
+                        formulas = jdbcTemplate.queryForList("SELECT a.e_name,b.rely FROM m_wbs_form_element a, m_formula b WHERE  b.id in ( SELECT formula_id FROM m_element_formula_mapping WHERE scope = 0 AND element_id = a.id) and a.f_id = " +
+                                tableInfos.get(0).getId() + " and b.rely like '%TBInfo:%'");
+                    }
+                }
+            }
+            if (!ObjectUtil.isEmpty(formulas)) {
+                for (Map<String, Object> formula : formulas) {
+                    Object relyObj = formula.get("rely");
+                    if (relyObj == null) {
+                        continue;
+                    }
+                    List<String> relyList = Arrays.asList(relyObj.toString().split(","));
+                    if (relyList.isEmpty()) {
+                        continue;
+                    }
+                    Object map = formula.get("e_name");
+                    if (map == null) {
+                        continue;
+                    }
+                    for (String rely : relyList) {
+                        if (!rely.contains("TBInfo:")) {
+                            continue;
+                        }
+                        keyMap.put(rely, map.toString());
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return keyMap;
+    }
+
+
     /**
      * 拿到html里面所有的keyName
      * @param doc
@@ -4873,7 +4924,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
      * 试验 委托单获取填报信息  groupId和sampleId1必须传其中一个
      */
     @Override
-    public List<Map<String, Object>> getBussDataInfoTrialentrust(Long groupId, Long pkeyId, Long contractId,Long sampleId1,JSONObject jsonObject,Boolean isremove,Boolean isCancel) {
+    public List<Map<String, Object>> getBussDataInfoTrialentrust(Long groupId, Long pkeyId, Long contractId,Long sampleId1,JSONObject jsonObject,Boolean isremove) {
         String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
         String sys_file_net_url = ParamCache.getValue(CommonConstant.SYS_FILE_NET_URL);
         List<Map<String, Object>> list = new ArrayList<>();
@@ -5028,7 +5079,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 }
             }
             //通过html获取页面上的key值 返回key值对应的数据
-             isCancelList = setBasicFormData(doc, reData, sampleInfo, trialMaterialMobilization, null, isCancel);
+             setBasicFormData(doc, reData, sampleInfo, trialMaterialMobilization, null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -5060,12 +5111,6 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         }
         chart(reData, wbsTreePrivate);
         if(ObjectUtil.isNotEmpty(jsonObject)){
-            if(isCancel){
-                if(isCancelList.size()>0){
-                    List<String> finalIsCancelList = isCancelList;
-                    jsonObject.entrySet().removeIf(entry -> finalIsCancelList.contains(entry.getKey()));
-                }
-            }
             for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
                 if(entry.getKey().contains("key")){
                     if(!reData.containsKey(entry.getKey())){
@@ -5078,7 +5123,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         return list;
     }
 
-    private static List<String> setBasicFormData(Document doc, Map<String, Object> reData, TrialSampleInfo sampleInfo ,TrialMaterialMobilization trialMaterialMobilization, EntrustInfo entrustInfo,Boolean isCancel) {
+    private static List<String> setBasicFormData(Document doc, Map<String, Object> reData, TrialSampleInfo sampleInfo ,TrialMaterialMobilization trialMaterialMobilization, EntrustInfo entrustInfo) {
         List<String> isCancelList=new ArrayList<>();
         if(sampleInfo==null){
             sampleInfo=new TrialSampleInfo();
@@ -5091,45 +5136,90 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
             format= simpleDateFormat.format(mobilizationDate);
         }
-        setFirstData(doc,"批号",sampleInfo.getBatchNumber(),reData,isCancel,isCancelList);
-        setFirstData(doc,"生产批号",sampleInfo.getBatchNumber(),reData,isCancel,isCancelList);
-        setFirstData(doc,"样品编号",sampleInfo.getSpecificationNumber(),reData,isCancel,isCancelList);
-        setFirstData(doc,"取样地点",sampleInfo.getSamplingLocation(),reData,isCancel,isCancelList);
-        setFirstData(doc,"样品描述",sampleInfo.getSampleDescription(),reData,isCancel,isCancelList);
-        setFirstData(doc,"取样时间",sampleInfo.getSamplingDate(),reData,isCancel,isCancelList);
-        setFirstData(doc,"取样日期",sampleInfo.getSamplingDate(),reData,isCancel,isCancelList);
-        setFirstData(doc,"试样名称",sampleInfo.getMaterialName(),reData,isCancel,isCancelList);
-        setFirstData(doc,"样品名称",sampleInfo.getMaterialName(),reData,isCancel,isCancelList);
-        setFirstData(doc,"材料名称",sampleInfo.getMaterialName(),reData,isCancel,isCancelList);
-        setFirstData(doc,"规格 型号",sampleInfo.getSpecificationModel(),reData,isCancel,isCancelList);
-        setFirstData(doc,"规格型号",sampleInfo.getSpecificationModel(),reData,isCancel,isCancelList);
-        setFirstData(doc,"材料规格",sampleInfo.getSpecificationModel(),reData,isCancel,isCancelList);
-        setFirstData(doc,"规格(mm)",sampleInfo.getSpecificationModel(),reData,isCancel,isCancelList);
-        setFirstData(doc,"试样 数量",sampleInfo.getMaterialCount(),reData,isCancel,isCancelList);
-        setFirstData(doc,"试样数量",sampleInfo.getMaterialCount(),reData,isCancel,isCancelList);
-        setFirstData(doc,"代表数量",sampleInfo.getMaterialCount(),reData,isCancel,isCancelList);
-        setFirstData(doc,"拟用结构部 位",sampleInfo.getProposedPosition(),reData,isCancel,isCancelList);
-        setFirstData(doc,"拟用结构部位",sampleInfo.getProposedPosition(),reData,isCancel,isCancelList);
-        setFirstData(doc,"工程部位、构件编号",sampleInfo.getProposedPosition(),reData,isCancel,isCancelList);
-        setFirstData(doc,"工程部位、高程桩号",sampleInfo.getProposedPosition(),reData,isCancel,isCancelList);
-        setFirstData(doc,"设计强度 等级",sampleInfo.getDesignStrength(),reData,isCancel,isCancelList);
-        setFirstData(doc,"设计强度等级",sampleInfo.getDesignStrength(),reData,isCancel,isCancelList);
-        setFirstData(doc,"用途(使用在何工程部位)",sampleInfo.getProposedPosition(),reData,isCancel,isCancelList);
-        setFirstData(doc,"成型日期",null,reData,isCancel,isCancelList);
+        setFirstData(doc,"批号",sampleInfo.getBatchNumber(),reData,isCancelList);
+        setFirstData(doc,"生产批号",sampleInfo.getBatchNumber(),reData,isCancelList);
+        setFirstData(doc,"生产厂家",sampleInfo.getSamplingLocation(),reData,isCancelList);
+        setFirstData(doc,"样品编号",sampleInfo.getSpecificationNumber(),reData,isCancelList);
+        setFirstData(doc,"取样地点",sampleInfo.getSamplingLocation(),reData,isCancelList);
+        setFirstData(doc,"样品描述",sampleInfo.getSampleDescription(),reData,isCancelList);
+        setFirstData(doc,"取样时间",sampleInfo.getSamplingDate(),reData,isCancelList);
+        setFirstData(doc,"取样日期",sampleInfo.getSamplingDate(),reData,isCancelList);
+        setFirstData(doc,"试样名称",sampleInfo.getMaterialName(),reData,isCancelList);
+        setFirstData(doc,"样品名称",sampleInfo.getMaterialName(),reData,isCancelList);
+        setFirstData(doc,"材料名称",sampleInfo.getMaterialName(),reData,isCancelList);
+        setFirstData(doc,"规格 型号",sampleInfo.getSpecificationModel(),reData,isCancelList);
+        setFirstData(doc,"规格型号",sampleInfo.getSpecificationModel(),reData,isCancelList);
+        setFirstData(doc,"材料规格",sampleInfo.getSpecificationModel(),reData,isCancelList);
+        setFirstData(doc,"试验依据",sampleInfo.getSpecificationModel(),reData,isCancelList);
+        setFirstData(doc,"评定标准",sampleInfo.getSpecificationModel(),reData,isCancelList);
+        setFirstData(doc,"规格(mm)",sampleInfo.getSpecificationModel(),reData,isCancelList);
+        setFirstData(doc,"试样 数量",sampleInfo.getMaterialCount(),reData,isCancelList);
+        setFirstData(doc,"试样数量",sampleInfo.getMaterialCount(),reData,isCancelList);
+        setFirstData(doc,"代表数量",sampleInfo.getMaterialCount(),reData,isCancelList);
+        setFirstData(doc,"拟用结构部 位",sampleInfo.getProposedPosition(),reData,isCancelList);
+        setFirstData(doc,"拟用结构部位",sampleInfo.getProposedPosition(),reData,isCancelList);
+        setFirstData(doc,"工程部位、构件编号",sampleInfo.getProposedPosition(),reData,isCancelList);
+        setFirstData(doc,"工程部位、高程桩号",sampleInfo.getProposedPosition(),reData,isCancelList);
+        setFirstData(doc,"设计强度 等级",sampleInfo.getDesignStrength(),reData,isCancelList);
+        setFirstData(doc,"设计强度等级",sampleInfo.getDesignStrength(),reData,isCancelList);
+        setFirstData(doc,"用途(使用在何工程部位)",sampleInfo.getProposedPosition(),reData,isCancelList);
+        setFirstData(doc,"成型日期",null,reData,isCancelList);
        // setFirstData(doc,"试件编号",sampleInfo.getSpecificationNumber(),reData,isCancel,isCancelList);
-        setFirstData(doc,"进场日期代表数量",format+"/"+representativeCount+calculationUnit,reData,isCancel,isCancelList);
-        setFirstData(doc,"材料进场日期",format,reData,isCancel,isCancelList);
+        setFirstData(doc,"进场日期代表数量",format+"/"+representativeCount+calculationUnit,reData,isCancelList);
+        setFirstData(doc,"材料进场日期",format,reData,isCancelList);
 
         if(entrustInfo != null){
-            setFirstData(doc,"委托编号",entrustInfo.getEntrustNo(),reData,isCancel,isCancelList);
-            setFirstData(doc,"本批材料数量",entrustInfo.getExpCount()+calculationUnit,reData,isCancel,isCancelList);
+            setFirstData(doc,"委托编号",entrustInfo.getEntrustNo(),reData,isCancelList);
+            setFirstData(doc,"本批材料数量",entrustInfo.getExpCount()+calculationUnit,reData,isCancelList);
         }
         if(trialMaterialMobilization != null){
-            setFirstData(doc,"生产厂家",trialMaterialMobilization.getPlaceOfProduction(),reData,isCancel,isCancelList);
-            setFirstData(doc,"供应商",trialMaterialMobilization.getPlaceOfProduction(),reData,isCancel,isCancelList);
+            setFirstData(doc,"生产厂家",trialMaterialMobilization.getPlaceOfProduction(),reData,isCancelList);
+            setFirstData(doc,"供应商",trialMaterialMobilization.getPlaceOfProduction(),reData,isCancelList);
         }
         return isCancelList;
     }
+    private  void setBasicFormData(Document doc, Map<String, Object> reData, TrialSampleInfo sampleInfo ,TrialMaterialMobilization trialMaterialMobilization, EntrustInfo entrustInfo,
+                                                 TrialSelfInspectionRecord record, TrialSeleInspectionRecordBaseInfoDTO baseInfoDTO, WbsTreePrivate wbsTreePrivate) {
+        List<String> isCancelList = setBasicFormData(doc, reData, sampleInfo, trialMaterialMobilization, entrustInfo);
+        TrialBaseInfo baseInfo = buildTrialBaseInfo(sampleInfo, entrustInfo, record, baseInfoDTO);
+        Map<String, String> keyMap = formulaTrialData(wbsTreePrivate);
+        keyMap.forEach((key, value) -> {
+            setFirstData(doc,value,baseInfo.getValueByKey(key),reData,isCancelList);
+        });
+    }
+    private TrialBaseInfo buildTrialBaseInfo(TrialSampleInfo sampleInfo, EntrustInfo entrustInfo,TrialSelfInspectionRecord record, TrialSeleInspectionRecordBaseInfoDTO baseInfoDTO) {
+        TrialBaseInfo trialBaseInfo = new TrialBaseInfo();
+        if (sampleInfo != null) {
+            trialBaseInfo.setMaterialName(sampleInfo.getMaterialName());
+            trialBaseInfo.setSpecificationNumber(sampleInfo.getSpecificationNumber());
+            trialBaseInfo.setSampleDescription(sampleInfo.getSampleDescription());
+            trialBaseInfo.setSamplingDate(sampleInfo.getSamplingDate());
+            trialBaseInfo.setMaterialCount(sampleInfo.getMaterialCount());
+        }
+        if (record != null) {
+            trialBaseInfo.setRecordNo(record.getRecordNo());
+            trialBaseInfo.setReportNo(record.getReportNo());
+            if (record.getStandardId() != null) {
+                PrivateStandard standard = jdbcTemplate.query("SELECT id,name from u_wbs_private_standard WHERE id = " + record.getStandardId(),
+                        new BeanPropertyRowMapper<>(PrivateStandard.class)).stream().findFirst().orElse(null);
+                if (standard != null) {
+                    trialBaseInfo.setStandard(standard.getName());
+                }
+            }
+        }
+        if (entrustInfo != null) {
+            trialBaseInfo.setEntrustNo(entrustInfo.getEntrustNo());
+        }
+        if (baseInfoDTO != null) {
+            trialBaseInfo.setProjectName(baseInfoDTO.getProjectName());
+            trialBaseInfo.setConstructionUnit(baseInfoDTO.getConstructionUnit());
+            trialBaseInfo.setSupervisionUnit(baseInfoDTO.getSupervisionUnit());
+            trialBaseInfo.setLabName(baseInfoDTO.getLabName());
+            trialBaseInfo.setContractName(baseInfoDTO.getContractName());
+            trialBaseInfo.setProjectPosition(baseInfoDTO.getProjectPosition());
+        }
+        return trialBaseInfo;
+    }
 
     /**
      * 指定条件查找元素
@@ -5138,8 +5228,11 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
      * @param value
      * @param reData
      */
-    private static void  setFirstData(Document doc, String elementValue,Object value,Map<String, Object> reData,Boolean isCancel,List<String> isCancelList) {
+    private static void  setFirstData(Document doc, String elementValue,Object value,Map<String, Object> reData,List<String> isCancelList) {
 
+        if(value==null){
+            value="";
+        }
         Elements select = doc.select("[placeholderxx=" + elementValue + "]");
 
         if(select.isEmpty()){//没找到加上:继续找
@@ -5164,9 +5257,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             }
             if(textareaElement != null){//正常情况
                 String id = textareaElement.attr("id");
-                if(isCancel){
-                    isCancelList.add(id);
-                }
+                isCancelList.add(id);
                 if(ObjectUtil.isNotEmpty(value)){
                     reData.put(id, value);
                 }
@@ -5195,9 +5286,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 Element textareaElement = select2.first();
                 if(textareaElement != null){//正常情况
                     String id = textareaElement.attr("id");
-                    if(isCancel){
-                        isCancelList.add(id);
-                    }
+                    isCancelList.add(id);
                     if(ObjectUtil.isNotEmpty(value)){
                         reData.put(id, value);
                     }