|
@@ -33,6 +33,7 @@ import org.springblade.manager.mapper.FormulaMapper;
|
|
import org.springblade.manager.service.*;
|
|
import org.springblade.manager.service.*;
|
|
import org.springblade.manager.vo.AppWbsTreeContractVO;
|
|
import org.springblade.manager.vo.AppWbsTreeContractVO;
|
|
import org.springblade.manager.vo.CurrentNode;
|
|
import org.springblade.manager.vo.CurrentNode;
|
|
|
|
+import org.springblade.manager.vo.FB02;
|
|
import org.springframework.context.annotation.Scope;
|
|
import org.springframework.context.annotation.Scope;
|
|
import org.springframework.context.annotation.ScopedProxyMode;
|
|
import org.springframework.context.annotation.ScopedProxyMode;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
@@ -2358,18 +2359,46 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public R<Object> pd(Long pkeyId) {
|
|
|
|
|
|
+ public R<Object> evaluate(Long pkeyId) {
|
|
if(StringUtils.isNumber(pkeyId)) {
|
|
if(StringUtils.isNumber(pkeyId)) {
|
|
- WbsTreeContract wtc= this.getSqlOne("select tree_code treeCode,contract_id from m_wbs_tree_contract where p_key_id =" + pkeyId,WbsTreeContract.class);
|
|
|
|
|
|
+ WbsTreeContract wtc= this.getSqlOne("select tree_code treeCode,contract_id,init_table_name,html_url from m_wbs_tree_contract where p_key_id =" + pkeyId,WbsTreeContract.class);
|
|
|
|
+ List<FormData> processFds = this.createFormDataByTableName(wtc.getInitTableName());
|
|
|
|
+ FB02 fb02 = new FB02(processFds);
|
|
LinkedList<String> treeCode = new LinkedList<>(FormulaUtils.treeCodeSplit(wtc.getTreeCode()));
|
|
LinkedList<String> treeCode = new LinkedList<>(FormulaUtils.treeCodeSplit(wtc.getTreeCode()));
|
|
List<FormulaDataBlock> formulaDataBlocks = this.getSqlList("select a.* from m_formula_data_block a join (select parent_id from m_wbs_tree_contract where tree_code like '"+treeCode.getLast()+"%' and contract_id ="+wtc.getContractId()+" and major_data_type=2 and is_deleted=0 ORDER BY tree_code)b on a.sw_id=b.parent_id ",FormulaDataBlock.class);
|
|
List<FormulaDataBlock> formulaDataBlocks = this.getSqlList("select a.* from m_formula_data_block a join (select parent_id from m_wbs_tree_contract where tree_code like '"+treeCode.getLast()+"%' and contract_id ="+wtc.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.size()>0){
|
|
if(formulaDataBlocks.size()>0){
|
|
- return R.data(formulaDataBlocks);
|
|
|
|
|
|
+ formulaDataBlocks.forEach(fdb->{
|
|
|
|
+ List<ElementBlock> elementBlockList = JSON.parseArray(fdb.getVal(), ElementBlock.class);
|
|
|
|
+ elementBlockList.forEach(eb->{
|
|
|
|
+ String name = eb.getEName();
|
|
|
|
+ FB02.Item xm=new FB02.Item();
|
|
|
|
+ xm.setName(name);
|
|
|
|
+ List<ItemBlock> ib= eb.getList();
|
|
|
|
+ int total= ib.stream().mapToInt(ItemBlock::getSubTotal).sum();
|
|
|
|
+ int pass= ib.stream().mapToInt(ItemBlock::getSubPass).sum();
|
|
|
|
+ if(total>0) {
|
|
|
|
+ double rate = (double) pass / (double) total;
|
|
|
|
+ if (rate >= 0 && rate <= 100) {
|
|
|
|
+ xm.setPassRate(rate);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ fb02.getDatas().add(xm);
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ if(fb02.getDatas().size()>0){
|
|
|
|
+ Map<String,String> tableKeysCoordsMap= FormulaUtils.getElementCell(wtc.getHtmlUrl());
|
|
|
|
+ fb02.initFdCoords(tableKeysCoordsMap);
|
|
|
|
+ /*根据数据长度,增减页数*/
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ return R.success("成功");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return R.fail("无数据");
|
|
return R.fail("无数据");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|