|
@@ -3,7 +3,6 @@ package org.springblade.manager.service.impl;
|
|
|
|
|
|
import cn.hutool.core.date.DatePattern;
|
|
import cn.hutool.core.date.DatePattern;
|
|
import cn.hutool.core.date.DateTime;
|
|
import cn.hutool.core.date.DateTime;
|
|
-import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
|
import cn.hutool.core.date.StopWatch;
|
|
import cn.hutool.core.date.StopWatch;
|
|
import cn.hutool.core.util.HashUtil;
|
|
import cn.hutool.core.util.HashUtil;
|
|
import cn.hutool.log.StaticLog;
|
|
import cn.hutool.log.StaticLog;
|
|
@@ -13,7 +12,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.jfireel.expression.Expression;
|
|
import com.jfireel.expression.Expression;
|
|
import com.mixsmart.utils.*;
|
|
import com.mixsmart.utils.*;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
-import org.apache.commons.lang.math.IntRange;
|
|
|
|
import org.apache.poi.ss.usermodel.*;
|
|
import org.apache.poi.ss.usermodel.*;
|
|
import org.jsoup.nodes.Document;
|
|
import org.jsoup.nodes.Document;
|
|
import org.springblade.common.utils.BaseUtils;
|
|
import org.springblade.common.utils.BaseUtils;
|
|
@@ -36,13 +34,14 @@ 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.springblade.manager.vo.FB02;
|
|
|
|
+import org.springblade.manager.vo.WtcEva;
|
|
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;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.util.LinkedCaseInsensitiveMap;
|
|
import org.springframework.web.context.WebApplicationContext;
|
|
import org.springframework.web.context.WebApplicationContext;
|
|
import javax.validation.constraints.NotNull;
|
|
import javax.validation.constraints.NotNull;
|
|
-import java.time.LocalDateTime;
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
@@ -1521,11 +1520,11 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
}
|
|
}
|
|
|
|
|
|
/*调整页数并返回当所有页*/
|
|
/*调整页数并返回当所有页*/
|
|
- public List<WbsTreeContract> adjustPageSize(int pageSizeNow,WbsTreeContract wtc,List<FormData> processFds){
|
|
|
|
|
|
+ public List<WbsTreeContract> adjustPageSize(int pageSizeNow,WtcEva wtc,List<FormData> processFds){
|
|
try {
|
|
try {
|
|
List<WbsTreeContract> list =this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getInitTableName,wtc.getInitTableName()).eq(WbsTreeContract::getContractId,wtc.getContractId()).eq(WbsTreeContract::getParentId,wtc.getParentId()).orderByDesc(WbsTreeContract::getCreateTime));
|
|
List<WbsTreeContract> list =this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getInitTableName,wtc.getInitTableName()).eq(WbsTreeContract::getContractId,wtc.getContractId()).eq(WbsTreeContract::getParentId,wtc.getParentId()).orderByDesc(WbsTreeContract::getCreateTime));
|
|
int length=list.size();
|
|
int length=list.size();
|
|
- if(pageSizeNow!=length){
|
|
|
|
|
|
+ if(pageSizeNow>0&&pageSizeNow!=length){
|
|
int dx = pageSizeNow-length;
|
|
int dx = pageSizeNow-length;
|
|
if(dx>0) {
|
|
if(dx>0) {
|
|
/*加页*/
|
|
/*加页*/
|
|
@@ -2420,43 +2419,50 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public R<Object> evaluate(Long pkeyId) {
|
|
public R<Object> evaluate(Long pkeyId) {
|
|
- if(StringUtils.isNumber(pkeyId)) {
|
|
|
|
- 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()));
|
|
|
|
- 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){
|
|
|
|
- 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);
|
|
|
|
- /*根据数据长度,增减页数*/
|
|
|
|
- List<WbsTreeContract> wtcList= this.adjustPageSize(fb02.getPageNum(),wtc,processFds);
|
|
|
|
- if(fb02.flush(wtcList)) {
|
|
|
|
- this.jdbcTemplate.execute(fb02.getSql());
|
|
|
|
|
|
+ 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 ="
|
|
|
|
+ + pkeyId, WtcEva.class);
|
|
|
|
+ if(wtcEva.isEva()){
|
|
|
|
+ List<FormData> processFds = this.createFormDataByTableName(wtcEva.getInitTableName());
|
|
|
|
+ FB02 fb02 = new FB02(processFds);
|
|
|
|
+ LinkedList<String> treeCode = new LinkedList<>(FormulaUtils.treeCodeSplit(wtcEva.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 =" + 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) {
|
|
|
|
+ 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(wtcEva.getHtmlUrl());
|
|
|
|
+ fb02.initFdCoords(tableKeysCoordsMap);
|
|
|
|
+ /*根据数据长度,增减页数*/
|
|
|
|
+ List<WbsTreeContract> wtcList = this.adjustPageSize(fb02.getPageNum(), wtcEva, processFds);
|
|
|
|
+ if (fb02.flush(wtcList)) {
|
|
|
|
+ fb02.getSqlList().forEach(System.out::println);
|
|
|
|
+ //this.jdbcTemplate.execute(fb02.getSql());
|
|
|
|
+ return R.success("成功");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- }
|
|
|
|
- return R.success("成功");
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return R.fail("无数据");
|
|
return R.fail("无数据");
|