|
@@ -258,9 +258,20 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
List<Map<String,Object>> list=this.jdbcTemplate.queryForList("SELECT a.p_key_id as nodeId,b.id as fieldId,b.e_key as field,c.init_table_name as tableName from m_wbs_tree_contract a LEFT JOIN m_wbs_form_element b on a.id=b.f_id left JOIN m_wbs_tree c on a.id=c.id where a.p_key_id in ("+ids+")");
|
|
|
List<KeyMapper> keyMappers = JSON.parseArray(JSONArray.toJSONString(list), KeyMapper.class);
|
|
|
if(Func.isNotEmpty(keyMappers)) {
|
|
|
+ Map<String,Map<String,String>> coordinateMap = new HashMap<>(keyMappers.size()*2);
|
|
|
+ keyMappers.forEach(e->{
|
|
|
+ try {
|
|
|
+ if(!coordinateMap.containsKey(e.getTableName())){
|
|
|
+ /*不包含定位信息的情况执行*/
|
|
|
+ coordinateMap.put(e.getTableName(),getTablbCols(e.getNodeId().toString(),null));
|
|
|
+ }
|
|
|
+ } catch (FileNotFoundException fileNotFoundException) {
|
|
|
+ fileNotFoundException.printStackTrace();
|
|
|
+ }
|
|
|
+ });
|
|
|
stopWatch.start("公式处理");
|
|
|
List<Formula> formulas = this.formulaService.list(Wrappers.<Formula>lambdaQuery().in(Formula::getElementId, keyMappers.stream().map(KeyMapper::getFieldId).distinct().collect(Collectors.toList())));
|
|
|
- TableElementConverter tec = new TableElementConverter(tableInfoList, keyMappers, formulas);
|
|
|
+ TableElementConverter tec = new TableElementConverter(tableInfoList, keyMappers, formulas,coordinateMap);
|
|
|
if (tec.isPresent()) {
|
|
|
tec.before();
|
|
|
this.formulaService.execute(tec);
|
|
@@ -389,7 +400,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
WbsTreeContract wbsTreeContractByP = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
|
|
|
.eq(WbsTreeContract::getId, wbsTreeContract.getParentId()).eq(WbsTreeContract::getContractId, wbsTreeContract.getContractId()));
|
|
|
//处理文件提名
|
|
|
- String fileName = this.wbsParamService.createFileTitle(Func.isNotEmpty(wbsTreeContractByP.getOldId())? Long.valueOf(wbsTreeContractByP.getOldId()) :wbsTreeContractByP.getId(), Long.parseLong(wbsTreeContractByP.getContractId()));
|
|
|
+ String fileName = this.wbsParamService.createFileTitle(Func.isNotEmpty(wbsTreeContractByP.getOldId())? Long.valueOf(wbsTreeContractByP.getOldId()) :wbsTreeContractByP.getId(), Long.parseLong(wbsTreeContractByP.getContractId()),wbsTreeContractByP);
|
|
|
fileName = StringUtils.isNotEmpty(fileName) ? fileName : "缺少文件提名配置";
|
|
|
|
|
|
//huangjn 保存成功后调用生成资料查询列表数据
|
|
@@ -404,7 +415,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
// 获取用户
|
|
|
public Map<String,String> getTablbCols(String pkeyid, String colkey) throws FileNotFoundException {
|
|
|
Map<String,String> dataMap = new HashMap<>();
|
|
|
- if(StringUtils.isNotEmpty(pkeyid)){
|
|
|
+ if(StringUtils.isEmpty(pkeyid)){
|
|
|
return null;
|
|
|
}
|
|
|
//获取html
|
|
@@ -425,19 +436,22 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
Elements tds = tr.select("td");
|
|
|
for (int j = 0; j < tds.size(); j++) {
|
|
|
Element data = tds.get(j);
|
|
|
- String x1 = data.children().get(0).attr("x1");
|
|
|
- // String x2 = data.children().get(0).attr("x2");
|
|
|
- String y1 = data.children().get(0).attr("y1");
|
|
|
- //String y2 = data.children().get(0).attr("y2");
|
|
|
- String keyVal = x1+"_"+y1;
|
|
|
- String keyname = data.children().get(0).attr("keyname");
|
|
|
- if(StringUtils.isNotEmpty(keyname)){
|
|
|
- String keys[] = keyname.split("__");
|
|
|
- String datakey = keys[0];
|
|
|
- if(dataMap.containsKey(keys[0])){
|
|
|
- String datakeyVal = dataMap.get(datakey)+";"+keyVal;
|
|
|
- }else{
|
|
|
- dataMap.put(datakey,keyVal);
|
|
|
+ if(!data.children().isEmpty()){
|
|
|
+ String x1 = data.children().get(0).attr("x1");
|
|
|
+ // String x2 = data.children().get(0).attr("x2");
|
|
|
+ String y1 = data.children().get(0).attr("y1");
|
|
|
+ //String y2 = data.children().get(0).attr("y2");
|
|
|
+ String keyVal = x1+"_"+y1;
|
|
|
+ String keyname = data.children().get(0).attr("keyname");
|
|
|
+ if(StringUtils.isNotEmpty(keyname)){
|
|
|
+ String[] keys = keyname.split("__");
|
|
|
+ String datakey = keys[0];
|
|
|
+// if(dataMap.containsKey(keys[0])){
|
|
|
+// String datakeyVal = dataMap.get(datakey)+";"+keyVal;
|
|
|
+// }else{
|
|
|
+// dataMap.put(datakey,keyVal);
|
|
|
+// }
|
|
|
+ dataMap.merge(datakey,keyVal,(v1,v2)-> v1+";"+v2);
|
|
|
}
|
|
|
}
|
|
|
}
|