|
@@ -24,6 +24,7 @@ import org.springblade.manager.entity.*;
|
|
|
import org.springblade.manager.formula.FormulaStrategyFactory;
|
|
|
import org.springblade.manager.formula.KeyMapper;
|
|
|
import org.springblade.manager.formula.impl.CompositeDataAccess;
|
|
|
+import org.springblade.manager.formula.impl.SubTable;
|
|
|
import org.springblade.manager.formula.impl.TableElementConverter;
|
|
|
import org.springblade.manager.mapper.FormulaMapper;
|
|
|
import org.springblade.manager.service.*;
|
|
@@ -204,7 +205,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
for(String s:cki){
|
|
|
FormData fdTmp=this.formDataMap.get(s);
|
|
|
if(fdTmp!=null&&fdTmp.getValues().stream().map(ElementData::getValue).anyMatch(e->StringUtils.isNotEmpty(e)&&StringUtils.isNotEquals("/",e))){
|
|
|
- sb.append(fdTmp.getEName().replaceAll("^[^\\u4e00-\\u9fa5]+","").split("[((].+[))]|_")[0]).append(",");
|
|
|
+ sb.append(FormulaUtils.parseItemName(fdTmp.getEName())).append(",");
|
|
|
}
|
|
|
}
|
|
|
if(sb.length()>1){
|
|
@@ -570,7 +571,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
}
|
|
|
|
|
|
/*###############################附表的处理##################################*/
|
|
|
- if(false) {
|
|
|
+ if(true) {
|
|
|
try {
|
|
|
/*检验单附表处理*/
|
|
|
List<FormData> inspectionList = new ArrayList<>();
|
|
@@ -585,18 +586,19 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
});
|
|
|
});
|
|
|
if (Func.isNotEmpty(inspectionList)) {
|
|
|
- /*检查是否存在附表,不存在则加载*/
|
|
|
+ /*检查是否存在附表,不存在挂载*/
|
|
|
List<AppWbsTreeContractVO> subTabList = this.tec.getTableAll().stream().filter(e -> e.getNodeName().contains("附表")).collect(Collectors.toList());
|
|
|
if (subTabList.size() == 0) {
|
|
|
- boolean pd=tec.getTableAll().stream().anyMatch(e->e.getNodeName().contains("评定表"));
|
|
|
- WbsTreePrivate sub = wbsTreePrivateService.getOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getNodeName, pd?"质量检验评定表(附表)":"质量检验表(附表)").eq(WbsTreePrivate::getProjectId, tec.getProjectId()));
|
|
|
+ boolean pd=tec.getTableAll().stream().anyMatch(e->e.getNodeName().contains("评定表")||e.getFullName().contains("评定表"));
|
|
|
+ WbsTreePrivate sub = wbsTreePrivateService.getOne(Wrappers.<WbsTreePrivate>lambdaQuery().and(e->e.eq(WbsTreePrivate::getNodeName, pd?"质量检验评定表(附表)":"质量检验表(附表)").or().eq(WbsTreePrivate::getFullName, pd?"质量检验评定表(附表)":"质量检验表(附表)")).eq(WbsTreePrivate::getProjectId, tec.getProjectId()));
|
|
|
if (sub == null) {
|
|
|
this.tec.getLog().append("该项目没有挂有附表信息");
|
|
|
} else {
|
|
|
this.wbsTreePrivateService.addWbsTreeContractInfo(this.tec.getCurrentNode().getPkId().toString(), sub.getPKeyId().toString(), tec.getContractId());
|
|
|
AppWbsTreeContractVO one = this.tec.getTableAll().get(0);
|
|
|
- WbsTreeContract wtc = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, one.getParentId()).eq(WbsTreeContract::getWbsId, one.getWbsId()).eq(WbsTreeContract::getNodeName, "质量检验表(附表)"));
|
|
|
+ WbsTreeContract wtc = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, one.getParentId()).eq(WbsTreeContract::getWbsId, one.getWbsId()).and(e->e.eq(WbsTreeContract::getNodeName, pd?"质量检验评定表(附表)":"质量检验表(附表)").or().eq(WbsTreeContract::getFullName, pd?"质量检验评定表(附表)":"质量检验表(附表)")));
|
|
|
if (wtc != null) {
|
|
|
+ /*只需要挂载一张*/
|
|
|
AppWbsTreeContractVO obj = BeanUtil.copy(wtc, AppWbsTreeContractVO.class);
|
|
|
this.tec.getTableAll().add(obj);
|
|
|
subTabList.add(obj);
|
|
@@ -617,7 +619,15 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
tec.getCoordinateMap().put(subTabList.get(0).getInitTableName(), CustomFunction.getElementCell(first.getHtmlUrl()));
|
|
|
List<Map<String, Object>> elementMaps = this.jdbcTemplate.queryForList("select b.e_name name , CONCAT(a.tab_en_name,':',b.e_key) code , b.e_key ekey ,b.id fieldId,a.tab_en_name tableName from m_table_info a join m_wbs_form_element b on a.id = b.f_id where a.tab_en_name='" + first.getInitTableName() + "' and b.is_deleted=0 ");
|
|
|
if (Func.isNotEmpty(elementMaps)) {
|
|
|
- //missingFill(elementMaps.stream().map(e->StringUtils.handleNull(e.get("code"))).collect(Collectors.toList()));
|
|
|
+ elementMaps.forEach(e->{
|
|
|
+ /*生成附表元素*/
|
|
|
+ String values=subTableInfo.stream().map(TableInfo::getDataMap).map(m->m.get(StringUtils.handleNull(e.get("ekey")))).filter(StringUtils::isNotEmpty).collect(Collectors.joining(";;"));
|
|
|
+ FormData tmp= createFormDataFast(StringUtils.handleNull(e.get("ename")),StringUtils.handleNull(e.get("code")),values);
|
|
|
+ if(tmp!=null){
|
|
|
+ this.formDataMap.put(tmp.getCode(),tmp);
|
|
|
+ this.formDataList.add(tmp);
|
|
|
+ }
|
|
|
+ });
|
|
|
/*生成元素数据*/
|
|
|
subTabList.forEach(s->{
|
|
|
elementMaps.forEach(e->{
|
|
@@ -632,13 +642,25 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ List<FormData> subTableFds=this.formDataList.stream().filter(e->StringUtils.isEquals(first.getInitTableName(),e.getTableName())).collect(Collectors.toList());
|
|
|
+ SubTable sta=new SubTable(subTableFds);
|
|
|
/*检验单或者评定表存在超页数据*/
|
|
|
inspectionList.forEach(f -> {
|
|
|
-
|
|
|
+ List<ElementData> overList = f.getValues().stream().skip(f.getCoordsList().size()).collect(Collectors.toList());
|
|
|
+ String itemName=FormulaUtils.parseItemName(f.getEName());
|
|
|
+ String key=itemName.trim();
|
|
|
+ Optional<FormData> designFdOp= this.formDataMap.values().stream().filter(o->o.getTableName().equals(f.getTableName())&&StringUtils.isEquals(itemName,FormulaUtils.parseItemName(o.getEName()))).findAny();
|
|
|
+ if(designFdOp.isPresent()){
|
|
|
+ key+="@"+designFdOp.get().getValues().stream().map(ElementData::stringValue).filter(StringUtils::isNotEmpty).findAny().orElse("");
|
|
|
+ }
|
|
|
+ sta.put(key,overList);
|
|
|
});
|
|
|
+ if(sta.checked()){
|
|
|
+ sta.flush();
|
|
|
+ }
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
+ this.tec.getLog().append("|=|").append("附表异常").append("|=|");
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
@@ -647,7 +669,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
|
|
|
public void write(FormData fd,Object data){
|
|
|
/*如果需要向额外元素或对象输出数据,在此处修改*/
|
|
|
- FormulaUtils.write(fd,data);
|
|
|
+ FormulaUtils.write(fd,data,false);
|
|
|
}
|
|
|
|
|
|
/**加页增容*/
|
|
@@ -993,9 +1015,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
FormData dataFd=this.formDataMap.get(codeList.get(0));
|
|
|
FormData designFd=this.formDataMap.get(codeList.get(1));
|
|
|
if(dataFd!=null&&designFd!=null){
|
|
|
- if(designFd.getValues().size()>0){
|
|
|
+ if(dataFd.getValues().stream().map(ElementData::getValue).anyMatch(StringUtils::isNotEmpty)&&(designFd.getValues().size()>1||designFd.getValues().stream().map(ElementData::getValue).anyMatch(StringUtils::isEmpty))){
|
|
|
/*多少个设计值暂时默认全部合格,满足绝大部分结果*/
|
|
|
- data=dataFd.getValues().size();
|
|
|
+ data=dataFd.getValues().stream().map(ElementData::getValue).filter(StringUtils::isNotEmpty).count();
|
|
|
}else{
|
|
|
List<Object> result = CustomFunction.b445check(dataFd.getValues().stream().map(ElementData::getValue).collect(Collectors.toList()),designFd.getValues().stream().map(ElementData::getValue).collect(Collectors.toList()),formula.getDev(),1 );
|
|
|
data=result.get(1);
|