Jelajahi Sumber

分部评定

yangyj 1 tahun lalu
induk
melakukan
4306acafca

+ 1 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/EvaSummary.java

@@ -28,6 +28,7 @@ public abstract class EvaSummary<T> {
     protected  final List<Object[]> params = new ArrayList<>();
 
     public abstract Integer getPageNum();
+    public abstract boolean checked();
 
     public boolean initFdCoords(Map<String,String> tableKeysCoordsMap){
         boolean f=true;

+ 15 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/FB01.java

@@ -1,8 +1,13 @@
 package org.springblade.manager.vo;
 
+import com.alibaba.fastjson.JSON;
 import org.springblade.manager.dto.FormData;
+import org.springblade.manager.entity.FormulaDataBlock;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 
@@ -24,6 +29,12 @@ public class FB01 extends EvaSummary<Item01>{
         }
         return null;
     }
+
+    @Override
+    public boolean checked() {
+        return number!=null&&name!=null&&level!=null&&remark!=null;
+    }
+
     public FB01(List<FormData> processFds) {
         for(FormData fd:processFds){
             if(fd.getEName().contains("分项工程编号")||fd.getEName().contains("分部工程编号")){
@@ -49,4 +60,8 @@ public class FB01 extends EvaSummary<Item01>{
             }
         }
     }
+
+    public void source(){
+       //TODO
+    }
 }

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/FB02.java

@@ -39,6 +39,11 @@ public class FB02 extends EvaSummary<Item02>{
         return null;
     }
 
+    @Override
+    public boolean checked() {
+        return subItem!=null&&sn!=null&&name!=null&&passRate!=null&&weight!=null&&wAvg!=null;
+    }
+
 
     public FB02(List<FormData> processFds) {
          for(FormData fd:processFds){

+ 33 - 15
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -2584,24 +2584,42 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     wtcEva.setPKeyId(pkeyId);
                     List<FormData> processFds = this.createFormDataByTableName(wtcEva.getInitTableName());
                     LinkedList<String> treeCode = new LinkedList<>(FormulaUtils.treeCodeSplit(wtcEva.getTreeCode()));
-                    FB02 fb02 = new FB02(processFds);
-                    List<FormulaDataBlock> formulaDataBlocks = this.getSqlList("select a.id,a.type,a.sw_id swId,a.contract_id contractId,a.val from m_formula_data_block a join (select parent_id from m_wbs_tree_contract where tree_code like '" + treeCode.getLast() + "%' and contract_id =" + wtcEva.getContractId() + " and major_data_type=2 and is_deleted=0 ORDER BY tree_code)b on a.sw_id=b.parent_id ", FormulaDataBlock.class);
-                    if (formulaDataBlocks!=null&&formulaDataBlocks.size() > 0) {
-                        /*就是分项工程节点的父节点名称*/
-                        String swIds = formulaDataBlocks.stream().map(FormulaDataBlock::getSwId).map(Objects::toString).collect(Collectors.joining(","));
-                        List<Map<String,Object>> listMaps= this.jdbcTemplate.queryForList("select id ,node_name nodeName,full_name fullName  from m_wbs_tree_contract where is_deleted =0 and contract_id="+wtcEva.getContractId()+" and id in("+swIds+")");
-                        Map<String,String> swNameMap = new HashMap<>();
-                        if(listMaps.size()>0){
-                            swNameMap.putAll(listMaps.stream().collect(Collectors.toMap(m->m.get("id").toString(),m->m.get("fullName").toString(),(v1,v2)->v2)));
+                    if(wtcEva.getInitTableName().equals("m_20231027094746_1717719707244560384")) {
+                        FB02 fb02 = new FB02(processFds);
+                        if (fb02.checked()) {
+                            List<FormulaDataBlock> formulaDataBlocks = this.getSqlList("select a.id,a.type,a.sw_id swId,a.contract_id contractId,a.val from m_formula_data_block a join (select parent_id from m_wbs_tree_contract where tree_code like '" + treeCode.getLast() + "%' and contract_id =" + wtcEva.getContractId() + " and major_data_type=2 and is_deleted=0 ORDER BY tree_code)b on a.sw_id=b.parent_id ", FormulaDataBlock.class);
+                            if (formulaDataBlocks != null && formulaDataBlocks.size() > 0) {
+                                /*就是分项工程节点的父节点名称*/
+                                String swIds = formulaDataBlocks.stream().map(FormulaDataBlock::getSwId).map(Objects::toString).collect(Collectors.joining(","));
+                                List<Map<String, Object>> listMaps = this.jdbcTemplate.queryForList("select id ,node_name nodeName,full_name fullName  from m_wbs_tree_contract where is_deleted =0 and contract_id=" + wtcEva.getContractId() + " and id in(" + swIds + ")");
+                                Map<String, String> swNameMap = new HashMap<>();
+                                if (listMaps.size() > 0) {
+                                    swNameMap.putAll(listMaps.stream().collect(Collectors.toMap(m -> m.get("id").toString(), m -> m.get("fullName").toString(), (v1, v2) -> v2)));
+                                }
+                                fb02.source(formulaDataBlocks, swNameMap);
+                                if (fb02.getDatas().size() > 0) {
+                                    Map<String, String> tableKeysCoordsMap = FormulaUtils.getElementCell(wtcEva.getHtmlUrl());
+                                    if (fb02.initFdCoords(tableKeysCoordsMap)) {
+                                        /*根据数据长度,增减页数*/
+                                        List<WbsTreeContract> wtcList = this.adjustPageSize(fb02.getPageNum(), wtcEva, processFds);
+                                        if (fb02.flush(wtcList)) {
+                                            this.jdbcTemplate.batchUpdate(fb02.getSql(), fb02.getParams());
+                                            return R.success("成功");
+                                        }
+                                    }
+                                }
+                            }
                         }
-                        fb02.source(formulaDataBlocks,swNameMap);
-                        if (fb02.getDatas().size() > 0) {
+                    }else  if(wtcEva.getInitTableName().equals("m_20231027094738_1717719671702028288")){
+                        FB01 fb01 = new FB01(processFds);
+                        fb01.source();
+                        if (fb01.getDatas().size() > 0) {
                             Map<String, String> tableKeysCoordsMap = FormulaUtils.getElementCell(wtcEva.getHtmlUrl());
-                            if(fb02.initFdCoords(tableKeysCoordsMap)) {
+                            if (fb01.initFdCoords(tableKeysCoordsMap)) {
                                 /*根据数据长度,增减页数*/
-                                List<WbsTreeContract> wtcList = this.adjustPageSize(fb02.getPageNum(), wtcEva, processFds);
-                                if (fb02.flush(wtcList)) {
-                                    this.jdbcTemplate.batchUpdate(fb02.getSql(),fb02.getParams());
+                                List<WbsTreeContract> wtcList = this.adjustPageSize(fb01.getPageNum(), wtcEva, processFds);
+                                if (fb01.flush(wtcList)) {
+                                    this.jdbcTemplate.batchUpdate(fb01.getSql(), fb01.getParams());
                                     return R.success("成功");
                                 }
                             }