Browse Source

分部评定

yangyj 7 months ago
parent
commit
e104540ae8

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

@@ -35,6 +35,8 @@ public class CurrentNode {
     private Long wtpPkeyId;
     /**wbs_tree的流水号 需要溯源*/
     private Long wbsNodeId;
+    /**节点类型*/
+    private Integer nodeType;
     /**treeCode*/
     private List<String> treeCode =new ArrayList<>();
     /**
@@ -42,4 +44,5 @@ public class CurrentNode {
      * */
     public List<CurrentNode> divisional= new ArrayList<>();
 
+
 }

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -92,7 +92,7 @@ public class ExecutorMeter extends FormulaExecutor {
     /*加法*/
     private BinaryOperator<String> addFc = (a,b)-> BaseUtils.str2BigDecimal(a).add(BaseUtils.str2BigDecimal(b)).toString();
     /*除法*/
-    private BinaryOperator<String> divideFc = (a,b)-> BaseUtils.str2BigDecimal(a).divide(BaseUtils.str2BigDecimal(b)).toPlainString();
+    private BinaryOperator<String> divideFc = (a,b)-> BaseUtils.str2BigDecimal(a).divide(BaseUtils.str2BigDecimal(b),8,RoundingMode.HALF_UP).toPlainString();
 
     /*按照二级清单编号,合计合同清单{合同金额,变更金额}*/
     private Function<List<InventoryForm>, Map<String, BigDecimal[]>> contractMoneySum = data -> data.stream().filter(e->StringUtils.isNotEmpty(e.getContractMoney()))

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -597,6 +597,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 currentNode.setWbsId(Long.parseLong(publicWtp.getWbsId()));
                 currentNode.setWtpPkeyId(wtp.getPKeyId());
                 currentNode.setWbsNodeId(publicWtp.getId());
+                currentNode.setNodeType(wtc.getNodeType());
                 if (Func.isNotBlank(wtc.getTreeCode())) {
                     currentNode.getTreeCode().addAll(FormulaUtils.treeCodeSplit(wtc.getTreeCode()));
                 }
@@ -618,6 +619,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             currentNode.setParentId(wtp.getParentId());
             currentNode.setWbsId(Long.parseLong(publicWtp.getWbsId()));
             currentNode.setWbsNodeId(wtp.getId());
+            currentNode.setNodeType(wtp.getNodeType());
             return currentNode;
         }
         return null;

+ 19 - 11
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -1247,7 +1247,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             /*检验单附表处理*/
             List<FormData> inspectionList = new ArrayList<>();
             /*1检验表5评定表*/
-            List<NodeTable> mainTable = tec.getTableAll().stream().filter(e -> (e.getTableType().equals(1) ||e.getTableType().equals(5))&&!e.getNodeName().contains("附表")).collect(Collectors.toList());
+            List<NodeTable> mainTable = tec.getTableAll().stream().filter(e -> (e.getTableType().equals(1) ||e.getTableType().equals(5))&&!e.getNodeName().contains("附表")&&tec.getCurrentNode().getNodeType()>3).collect(Collectors.toList());
             if(Func.isEmpty(mainTable)){
                 return;
             }
@@ -2777,7 +2777,8 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     public R<Object> evaluate(Long pkeyId) {
         if (StringUtils.isNumber(pkeyId)) {
             WtcEva wtcEva = this.getSqlOne(
-                    "select b.tree_code treeCode ,a.contract_id contractId,a.init_table_name initTableName,a.html_url htmlUrl ,a.node_name nodeName ,a.parent_id parentId from m_wbs_tree_contract a join m_wbs_tree_contract b on (a.parent_id=b.id and a.contract_id=b.contract_id) where a.p_key_id ="
+                       "select b.tree_code treeCode ,a.contract_id contractId,a.init_table_name initTableName,a.html_url htmlUrl ,a.node_name nodeName ,a.parent_id parentId " +
+                            "from m_wbs_tree_contract a join m_wbs_tree_contract b on (a.parent_id=b.id and a.contract_id=b.contract_id) where a.p_key_id ="
                             + pkeyId, WtcEva.class);
             try {
                 if(wtcEva.isEva()){
@@ -2787,6 +2788,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     if(wtcEva.getInitTableName().equals("m_20231027094746_1717719707244560384")) {
                         FB02 fb02 = new FB02(processFds);
                         if (fb02.checked()) {
+                            /*swId是分项评定的父节点Id*/
                             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) {
                                 /*就是分项工程节点的父节点名称*/
@@ -2812,15 +2814,21 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                         }
                     }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 (fb01.initFdCoords(tableKeysCoordsMap)) {
-                                /*根据数据长度,增减页数*/
-                                List<WbsTreeContract> wtcList = this.adjustPageSize(fb01.getPageNum(), wtcEva, processFds);
-                                if (fb01.flush(wtcList)) {
-                                    this.jdbcTemplate.batchUpdate(fb01.getSql(), fb01.getParams());
-                                    return R.success("成功");
+                        if(fb01.checked()) {
+                            /*获取同一个treeCode前缀下的所有分项评定表*/
+                          List<WtcEva>  wtcEvaList= this.getSqlList("select b.init_table_name,b.node_name,b.p_key_id pKeyId from " +
+                                  "(select 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 and node_type=5 ORDER BY tree_code" +
+                                  ")a join m_wbs_tree_contract b on a.id=b.parent_id where b.contract_id ="+wtcEva.getContractId()+" and b.is_deleted=0",WtcEva.class);
+                          fb01.source();
+                            if (fb01.getDatas().size() > 0) {
+                                Map<String, String> tableKeysCoordsMap = FormulaUtils.getElementCell(wtcEva.getHtmlUrl());
+                                if (fb01.initFdCoords(tableKeysCoordsMap)) {
+                                    /*根据数据长度,增减页数*/
+                                    List<WbsTreeContract> wtcList = this.adjustPageSize(fb01.getPageNum(), wtcEva, processFds);
+                                    if (fb01.flush(wtcList)) {
+                                        this.jdbcTemplate.batchUpdate(fb01.getSql(), fb01.getParams());
+                                        return R.success("成功");
+                                    }
                                 }
                             }
                         }