|
@@ -129,14 +129,14 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
StartPayForm one = current.get(0);
|
|
|
sum= startPayForms.stream().filter(s->s.getPeriodSort()<=one.getPeriodSort()).mapToDouble(s->Double.parseDouble(s.getMeterMoney())).sum();
|
|
|
/*累计*/
|
|
|
- elementWriter.write(fdm.get("key_3"),StringUtils.number2String(sum,2));
|
|
|
+ elementWriter.write(fdm.get(AdvancePaymentCertificate.TBN+":key_3"),StringUtils.number2String(sum,2));
|
|
|
currentD=startPayForms.stream().mapToDouble(s->Double.parseDouble(s.getMeterMoney())).sum();
|
|
|
- elementWriter.write(fdm.get("key_2"),StringUtils.number2String(currentD,2));
|
|
|
+ elementWriter.write(fdm.get(AdvancePaymentCertificate.TBN+":key_2"),StringUtils.number2String(currentD,2));
|
|
|
/*上一期*/
|
|
|
Optional<Integer> op=startPayForms.stream().map(StartPayForm::getPeriodSort).filter(s->s<one.getPeriodSort()).max(Comparator.comparingInt(s->s));
|
|
|
if(op.isPresent()){
|
|
|
previousD= startPayForms.stream().filter(s->s.getPeriodSort().equals(one.getPeriodSort())).mapToDouble(s->Double.parseDouble(s.getMeterMoney())).sum();
|
|
|
- elementWriter.write(fdm.get("key_1"),StringUtils.number2String(previousD,2));
|
|
|
+ elementWriter.write(fdm.get(AdvancePaymentCertificate.TBN+":key_1"),StringUtils.number2String(previousD,2));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -211,9 +211,11 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
|
|
|
public void parse(){
|
|
|
/*加载合同材料、材料清单*/
|
|
|
- /* b.material_name name,b.unit,b.price,a.meter_amount amount,a.material_source source
|
|
|
- ,material_conform materialConform,a.storage_place storagePlace,a.storage_status storageStatus,a.storage_conform storageConform,a.remark*/
|
|
|
- List<Material> materials = materialFormFc.apply(tec.getPeriodId());
|
|
|
+ List<Material> materialsAll = materialFormFc.apply(tec.getContractId());
|
|
|
+ /*本期*/
|
|
|
+ List<Material>materials=materialsAll.stream().filter(m->tec.getPeriodId().equals(m.getPeriodId())).collect(Collectors.toList());
|
|
|
+ /*本期,往期累计,本期累计*/
|
|
|
+ double preTotal,total;
|
|
|
if(Func.isNotEmpty(materials)){
|
|
|
BaseInfo baseInfo= (BaseInfo) tec.getConstantMap().get(BaseInfo.TBN);
|
|
|
int n=1;
|
|
@@ -244,6 +246,27 @@ public class ExecutorMeter extends FormulaExecutor {
|
|
|
elementWriter.write(fd,dl);
|
|
|
}
|
|
|
}
|
|
|
+ Integer sort = materials.get(0).getSort();
|
|
|
+
|
|
|
+ /*材料预付款申请单处理*/
|
|
|
+ LinkedHashMap<String,FormData> fdm = FormulaUtils.toFormDataMap(MaterialAdvancePayment.class);
|
|
|
+ tec.formDataMap.putAll(fdm);
|
|
|
+ preTotal=materialsAll.stream().filter(m->m.getSort()<sort).mapToDouble(m->Double.parseDouble(m.getSum())*baseInfo.getDeductRatio()).sum();
|
|
|
+ if(preTotal>=0D){
|
|
|
+ /*上期累计支付*/
|
|
|
+ elementWriter.write(fdm.get(MaterialAdvancePayment.TBN+":key_1"),StringUtils.number2String(preTotal,2));
|
|
|
+ }
|
|
|
+ if(BaseUtils.isNumber(this.totalAdvance)){
|
|
|
+ /*本期支付*/
|
|
|
+ elementWriter.write(fdm.get(MaterialAdvancePayment.TBN+":key_2"),StringUtils.number2String(this.totalAdvance,2));
|
|
|
+ total=Double.parseDouble(this.totalAdvance)+preTotal;
|
|
|
+ if(total>0){
|
|
|
+ /*本期累计支付*/
|
|
|
+ elementWriter.write(fdm.get(MaterialAdvancePayment.TBN+":key_3"),StringUtils.number2String(total,2));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|