|  | @@ -39,10 +39,7 @@ import org.springblade.manager.dto.WbsTreePrivateDTO2;
 | 
	
		
			
				|  |  |  import org.springblade.manager.dto.WbsTreePrivateDTO3;
 | 
	
		
			
				|  |  |  import org.springblade.manager.entity.*;
 | 
	
		
			
				|  |  |  import org.springblade.manager.mapper.*;
 | 
	
		
			
				|  |  | -import org.springblade.manager.service.IElementFormulaMappingService;
 | 
	
		
			
				|  |  | -import org.springblade.manager.service.IFormulaService;
 | 
	
		
			
				|  |  | -import org.springblade.manager.service.ITableInfoService;
 | 
	
		
			
				|  |  | -import org.springblade.manager.service.IWbsTreePrivateService;
 | 
	
		
			
				|  |  | +import org.springblade.manager.service.*;
 | 
	
		
			
				|  |  |  import org.springblade.manager.utils.CompositeKey1;
 | 
	
		
			
				|  |  |  import org.springblade.manager.utils.FileUtils;
 | 
	
		
			
				|  |  |  import org.springblade.manager.vo.*;
 | 
	
	
		
			
				|  | @@ -76,6 +73,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private final WbsTreeContractMapper wbsTreeContractMapper;
 | 
	
		
			
				|  |  |      private final WbsTreeContractServiceImpl wbsTreeContractService;
 | 
	
		
			
				|  |  | +    private final WbsTreeContractExtendService wbsTreeContractExtendService;
 | 
	
		
			
				|  |  |      private final ITableInfoService tableInfoService;
 | 
	
		
			
				|  |  |      private final WbsTreeMapper wbsTreeMapper;
 | 
	
		
			
				|  |  |      private final ContractInfoMapper contractInfoMapper;
 | 
	
	
		
			
				|  | @@ -2901,7 +2899,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | -    public Object getExcelHtml(String primaryKeyId) throws Exception {
 | 
	
		
			
				|  |  | +    public Object getExcelHtml(String primaryKeyId, String id) throws Exception {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          WbsTreePrivate wbsTreePrivate = baseMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
 | 
	
		
			
				|  |  |                  .eq(WbsTreePrivate::getPKeyId, primaryKeyId));
 | 
	
	
		
			
				|  | @@ -2957,18 +2955,49 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
 | 
	
		
			
				|  |  |          //字段查询、获取公式字段
 | 
	
		
			
				|  |  |          String colKeys = "SELECT e_key from m_table_info a ,m_wbs_form_element b WHERE a.tab_en_name = '" + tabName + "' and a.id=b.f_id and b.id  in(SELECT element_id from m_element_formula_mapping c where c.is_deleted=0) ";
 | 
	
		
			
				|  |  |          List<Map<String, Object>> maps = jdbcTemplate.queryForList(colKeys);
 | 
	
		
			
				|  |  | +        //扩展----根据父节点查询不允许执行的公式
 | 
	
		
			
				|  |  | +        List<String>  list = new ArrayList<>();;
 | 
	
		
			
				|  |  | +        if(StringUtil.isNotBlank(id)){
 | 
	
		
			
				|  |  | +            WbsTreeContractExtend byId = wbsTreeContractExtendService.getById(id);
 | 
	
		
			
				|  |  | +            if(byId != null){
 | 
	
		
			
				|  |  | +                String formulaConfig = byId.getFormulaConfig();
 | 
	
		
			
				|  |  | +                if(StringUtils.isNotEmpty(formulaConfig)){
 | 
	
		
			
				|  |  | +                    list = Arrays.asList(formulaConfig.split(","));
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          if (maps.size() > 0) {
 | 
	
		
			
				|  |  |              for (Map<String, Object> keys : maps) {
 | 
	
		
			
				|  |  |                  String key = keys.get("e_key") + "__";
 | 
	
		
			
				|  |  | -                Elements gsColor = doc.select("el-input[keyname~=^" + key + "]");
 | 
	
		
			
				|  |  | -                for (Element element : gsColor) {
 | 
	
		
			
				|  |  | -                    element.parent().attr("gscolor", "11");
 | 
	
		
			
				|  |  | +                //采用质检html渲染方式获取表单数据
 | 
	
		
			
				|  |  | +                Elements select = doc.select("table").first().select("[keyname^=" + key + "]");
 | 
	
		
			
				|  |  | +                if(list.contains(tabName + ":" + keys.get("e_key"))){
 | 
	
		
			
				|  |  | +                    //当前元素不执行公式
 | 
	
		
			
				|  |  | +                    select.stream().filter(Objects::nonNull).forEach(element -> element.attr("clearFormula", "1"));
 | 
	
		
			
				|  |  | +                }else{
 | 
	
		
			
				|  |  | +                    for (Element element : select) {
 | 
	
		
			
				|  |  | +                        element.parent().attr("gscolor", "11");
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                Elements dateColor = doc.select("el-date-picker[keyname~=^" + key + "]");
 | 
	
		
			
				|  |  | -                for (Element element : dateColor) {
 | 
	
		
			
				|  |  | -                    element.parent().attr("gscolor", "11");
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +//                Elements gsColor = doc.select("el-input[keyname~=^" + key + "]");
 | 
	
		
			
				|  |  | +//                if(list.contains(tabName + ":" + keys.get("e_key"))){
 | 
	
		
			
				|  |  | +//                    gsColor.stream().filter(Objects::nonNull).forEach(element -> element.attr("clearFormula", "1"));
 | 
	
		
			
				|  |  | +//                }else{
 | 
	
		
			
				|  |  | +//                    for (Element element : gsColor) {
 | 
	
		
			
				|  |  | +//                        element.parent().attr("gscolor", "11");
 | 
	
		
			
				|  |  | +//                    }
 | 
	
		
			
				|  |  | +//                }
 | 
	
		
			
				|  |  | +//                Elements dateColor = doc.select("el-date-picker[keyname~=^" + key + "]");
 | 
	
		
			
				|  |  | +//                if(list.contains(tabName + ":" + keys.get("e_key"))){
 | 
	
		
			
				|  |  | +//                    dateColor.stream().filter(Objects::nonNull).forEach(element -> element.attr("clearFormula", "1"));
 | 
	
		
			
				|  |  | +//                }else{
 | 
	
		
			
				|  |  | +//                    for (Element element : dateColor) {
 | 
	
		
			
				|  |  | +//                        element.parent().attr("gscolor", "11");
 | 
	
		
			
				|  |  | +//                    }
 | 
	
		
			
				|  |  | +//                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          doc.select("Col").remove();
 | 
	
	
		
			
				|  | @@ -3003,7 +3032,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              return R.fail("该合同段没有委托单权限业务");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        Object excelHtml = getExcelHtml(pkeyId);
 | 
	
		
			
				|  |  | +        Object excelHtml = getExcelHtml(pkeyId, null);
 | 
	
		
			
				|  |  |          return excelHtml;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |