|
@@ -3,13 +3,17 @@ package org.springblade.manager.formula.impl;
|
|
|
import com.mixsmart.utils.FormulaUtils;
|
|
|
import lombok.Data;
|
|
|
import lombok.EqualsAndHashCode;
|
|
|
+import org.springblade.core.tool.utils.Func;
|
|
|
+import org.springblade.manager.dto.TreeNode;
|
|
|
import org.springblade.manager.formula.FormulaExecutor;
|
|
|
-import org.springblade.manager.vo.BaseInfo;
|
|
|
-import org.springblade.manager.vo.InterimPaymentCertificate;
|
|
|
-import org.springblade.manager.vo.MeterPeriodInfo;
|
|
|
-import org.springblade.manager.vo.MeterType;
|
|
|
+import org.springblade.manager.vo.*;
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
|
|
|
+import java.util.*;
|
|
|
+import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.function.Function;
|
|
|
+import java.util.logging.Handler;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author yangyj
|
|
@@ -24,6 +28,7 @@ public class ExecutorInit extends FormulaExecutor {
|
|
|
}
|
|
|
private Function<Long, BaseInfo> baseInfoFc;
|
|
|
private Function<Long, MeterPeriodInfo> meterPeriodFc;
|
|
|
+ private Function<Long, List<MeterTree>> meterTreeFc;
|
|
|
|
|
|
|
|
|
public void handle() {
|
|
@@ -38,17 +43,28 @@ public class ExecutorInit extends FormulaExecutor {
|
|
|
tec.formDataMap.putAll(FormulaUtils.toFormDataMap(meterPeriod));
|
|
|
tec.getConstantMap().put(MeterPeriodInfo.TBN,meterPeriod);
|
|
|
}else if(MeterType.INTERIM.equals(tec.getMeterType())){
|
|
|
- /*中间支付证书*/
|
|
|
- tec.formDataMap.putAll(FormulaUtils.toFormDataMap(new InterimPaymentCertificate()));
|
|
|
- /*中间支付汇总*/
|
|
|
- /*分项工程中期支付汇总*/
|
|
|
- /*分项工程中期计量支付*/
|
|
|
- /*中间计量支付汇总*/
|
|
|
- /*中间计量*/
|
|
|
+ /*计量单元树*/
|
|
|
+ tec.setMeterTreeMap(getMeterTreeMapAsync(tec.getContractId()));
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /*预处理计量单元树*/
|
|
|
+ public CompletableFuture<Map<Long, TreeNode<MeterTree>>> getMeterTreeMapAsync(Long contractId) {
|
|
|
+ return CompletableFuture.supplyAsync(() -> {
|
|
|
+ List<MeterTree> list = meterTreeFc.apply(contractId);
|
|
|
+ Function<MeterTree,TreeNode<MeterTree>> fc = m->{
|
|
|
+ TreeNode<MeterTree> treeNode = new TreeNode<>();
|
|
|
+ treeNode.setId(m.getId());
|
|
|
+ treeNode.setParentId(m.getParentId());
|
|
|
+ treeNode.setValue(m);
|
|
|
+ treeNode.setName(m.getNodeName());
|
|
|
+ treeNode.setSort(m.getSort());
|
|
|
+ return treeNode;
|
|
|
+ };
|
|
|
+ return FormulaUtils.list2TreeNode(TreeNode::getId,list,fc,TreeNode::getParentId);
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|