Ver Fonte

2-11 分部评定

yangyj há 11 meses atrás
pai
commit
a7504fce17

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

@@ -23,6 +23,9 @@ public class DW02 extends EvaSummary<Item02>{
     private FormData level;
     @Override
     public Integer getPageNum() {
+        if(this.name!=null){
+            return  (int)Math.ceil(this.getDatas().size()/(double)this.name.getCoordsList().size());
+        }
         return null;
     }
 

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

@@ -14,6 +14,7 @@ public class Item02 {
     private Double passRate=100d;
     private Integer weight=1;
     private String level;
+    private String treeCode;
 
     public void setName(String name) {
         if(name!=null&&name.contains("△")){

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

@@ -871,6 +871,7 @@ public class ExecutorMeter extends FormulaExecutor {
                        tmp.addAll(data);
                        int over= rowSize-data.size();
                        if(i==pages.size()-1){
+                           /*最后一页合计*/
                            over--;
                        }
                        if(over>0){
@@ -881,14 +882,14 @@ public class ExecutorMeter extends FormulaExecutor {
                        xj.setName("小计");
                        xj.setQuantity(data.stream().map(e->BaseUtils.str2BigDecimal(e.getQuantity())).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString());
                        xj.setAmount(data.stream().map(e->BaseUtils.str2BigDecimal(e.getAmount())).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString());
-                       xj.setTotal(divideFc.apply(multiFc.apply(xj.getAmount(),ratio),"100"));
+                       xj.setTotal(data.stream().map(e->BaseUtils.str2BigDecimal(e.getTotal())).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString());
                        tmp.add(xj);
                    }
                    MaterialsArrival hj= new MaterialsArrival();
                    hj.setName("合计");
                    hj.setQuantity(v.stream().map(e->BaseUtils.str2BigDecimal(e.getQuantity())).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString());
                    hj.setAmount(v.stream().map(e->BaseUtils.str2BigDecimal(e.getAmount())).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString());
-                   hj.setTotal(divideFc.apply(multiFc.apply(hj.getAmount(),ratio),"100"));
+                   hj.setTotal(v.stream().map(e->BaseUtils.str2BigDecimal(e.getTotal())).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString());
                    materialSum=StringUtils.number2String(hj.getTotal(),0);
                    tmp.add(hj);
                    dataList.addAll(tmp);

+ 4 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -2926,7 +2926,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                 return R.fail("未能匹配分部评定节点");
                             }
                             String keys = Stream.of(fbName,passRate,fbLevel).map(FormData::getKey).map(StringUtils::handleNull).collect(Collectors.joining(",c.","c.",""));
-                            List<Map<String,Object>> mapList = jdbcTemplate.queryForList("select "+keys+" from (select id,tree_code 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=3 ORDER BY tree_code)a join m_wbs_tree_contract b on a.id=b.parent_id" +
+                            List<Map<String,Object>> mapList = jdbcTemplate.queryForList("select "+keys+" , a.tree_code from (select id,tree_code 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=3 ORDER BY tree_code)a join m_wbs_tree_contract b on a.id=b.parent_id" +
                                     " join "+FB02.TABLE_NAME+" c on b.p_key_id=c.p_key_id where b.contract_id ="+wtcEva.getContractId()+" and b.is_deleted=0 and b.init_table_name='"+FB02.TABLE_NAME+"'" +
                                     "ORDER BY a.tree_code");
                             if(mapList.size()>0){
@@ -2936,8 +2936,11 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                       item.setName(StringUtils.handleNull(map.get(fbName.getKey())).split("_\\^_")[0]);
                                       item.setPassRate(BaseUtils.obj2DoubleZero(StringUtils.handleNull(map.get(passRate.getKey())).split("_\\^_")[0]));
                                       item.setLevel(StringUtils.handleNull(map.get(fbLevel.getKey())).split("_\\^_")[0]);
+                                      item.setTreeCode(StringUtils.handleNull(map.get("tree_code")));
                                       abList.add(item);
                                 }
+                                /*合并相同分部评定*/
+
                                 dw02.source(abList);
                                 if (dw02.getDatas().size() > 0) {
                                     Map<String, String> tableKeysCoordsMap = FormulaUtils.getElementCell(wtcEva.getHtmlUrl());