Browse Source

质检-表单设置
1、试验表单表格渲染处理

LHB 1 week ago
parent
commit
968d2ede2a

+ 3 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -845,9 +845,9 @@ public class WbsTreePrivateController extends BladeController {
      */
     @GetMapping("/get-excel-html")
     @ApiOperationSupport(order = 23)
-    @ApiOperation(value = "试验-客户端获取表的HTML", notes = "传入节点primaryKeyId")
-    public Object getExcelHtml(@RequestParam String primaryKeyId) throws Exception {
-        return wbsTreePrivateService.getExcelHtml(primaryKeyId);
+    @ApiOperation(value = "试验-客户端获取表的HTML", notes = "传入节点primaryKeyId和试验id")
+    public Object getExcelHtml(@RequestParam String primaryKeyId, String id) throws Exception {
+        return wbsTreePrivateService.getExcelHtml(primaryKeyId, id);
     }
 
     /**

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreePrivateService.java

@@ -84,7 +84,7 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
 
     List<WbsTreePrivateVO4> searchNodeAllTable(String primaryKeyId, String type, String tableType, String contractId, String projectId, Integer isAdd, Long id);
 
-    Object getExcelHtml(String primaryKeyId) throws Exception;
+    Object getExcelHtml(String primaryKeyId, String id) throws Exception;
 
     Object getExcelHtmlEntrust(String nodeId,String contractId) throws Exception;
 

+ 42 - 13
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -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;
     }