项目-面积数据导入改造
This commit is contained in:
parent
49146f3849
commit
ebaf2edff2
|
@ -197,19 +197,21 @@ public class TotalAssignmentPlugin extends AbstractFormPlugin implements RowClic
|
||||||
for (int i = 0; i < productEntry.size(); i++) {
|
for (int i = 0; i < productEntry.size(); i++) {
|
||||||
if (productEntry.get(i).getBigDecimal("productentry_buildingarea").compareTo(BigDecimal.ZERO) == 0) {
|
if (productEntry.get(i).getBigDecimal("productentry_buildingarea").compareTo(BigDecimal.ZERO) == 0) {
|
||||||
DynamicObjectCollection collections = productEntry.get(i).getDynamicObjectCollection(SUB_ENTRY);
|
DynamicObjectCollection collections = productEntry.get(i).getDynamicObjectCollection(SUB_ENTRY);
|
||||||
|
this.setProductEntryValue(productEntry,collections,productEntry.get(0).getLong("id"));
|
||||||
//防水面积赋值
|
//防水面积赋值
|
||||||
BigDecimal waterproofArea = collections.stream()
|
// BigDecimal waterproofArea = collections.stream()
|
||||||
.filter(collection -> "防水".equals(collection.getString("qeug_fl"))) // 排除 "防水" 类型
|
// .filter(collection -> "防水".equals(collection.getString("qeug_fl"))) // 排除 "防水" 类型
|
||||||
.map(collection -> {
|
// .map(collection -> {
|
||||||
BigDecimal hjs = collection.getBigDecimal("qeug_hjs");
|
// BigDecimal hjs = collection.getBigDecimal("qeug_hjs");
|
||||||
BigDecimal tzz = collection.getBigDecimal("qeug_tzz");
|
// BigDecimal tzz = collection.getBigDecimal("qeug_tzz");
|
||||||
return hjs.add(tzz);
|
// return hjs.add(tzz);
|
||||||
})
|
// })
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
// .reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
this.getModel().setValue("qeug_waterproofarea",waterproofArea,i);
|
// this.getModel().setValue("qeug_waterproofarea",waterproofArea,i);
|
||||||
//指标信息赋值
|
//指标信息赋值
|
||||||
Long typeId = productEntry.get(i).getLong("productentry_producttype.id");
|
Long typeId = productEntry.get(i).getLong("productentry_producttype.id");
|
||||||
this.updateMetricInfo(collections, typeId, pkValue);
|
this.updateMetricInfo(collections, typeId, pkValue);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Tab tab = this.getView().getControl("tabap");
|
Tab tab = this.getView().getControl("tabap");
|
||||||
|
@ -353,6 +355,8 @@ public class TotalAssignmentPlugin extends AbstractFormPlugin implements RowClic
|
||||||
watertight = watertight.add(value);
|
watertight = watertight.add(value);
|
||||||
break;
|
break;
|
||||||
case "非标":
|
case "非标":
|
||||||
|
case "总面积":
|
||||||
|
case "可出租面积":
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
this.getView().showMessage("无效的分类: " + type + ", 请重新选择!");
|
this.getView().showMessage("无效的分类: " + type + ", 请重新选择!");
|
||||||
|
@ -385,8 +389,11 @@ public class TotalAssignmentPlugin extends AbstractFormPlugin implements RowClic
|
||||||
* @param pkValue 表单id
|
* @param pkValue 表单id
|
||||||
*/
|
*/
|
||||||
private void updateMetricInfo(DynamicObjectCollection collections, Long productTypeId, Object pkValue) {
|
private void updateMetricInfo(DynamicObjectCollection collections, Long productTypeId, Object pkValue) {
|
||||||
// 获取地下面积汇总值
|
//获取【总面积】分类的总面积
|
||||||
|
BigDecimal allArea=areaSummary(collections,"总面积");
|
||||||
|
// 获取【总面积】分类的地下面积汇总值
|
||||||
BigDecimal groundFloorSummary = collections.stream()
|
BigDecimal groundFloorSummary = collections.stream()
|
||||||
|
.filter(collection -> "总面积".equals(collection.getString("qeug_fl")))
|
||||||
.map(collection -> {
|
.map(collection -> {
|
||||||
// 获取两个 BigDecimal 值,如果为 null,则使用 BigDecimal.ZERO
|
// 获取两个 BigDecimal 值,如果为 null,则使用 BigDecimal.ZERO
|
||||||
BigDecimal b1f = collection.getBigDecimal("qeug_b1f") != null ? collection.getBigDecimal("qeug_b1f") : BigDecimal.ZERO;
|
BigDecimal b1f = collection.getBigDecimal("qeug_b1f") != null ? collection.getBigDecimal("qeug_b1f") : BigDecimal.ZERO;
|
||||||
|
@ -395,39 +402,11 @@ public class TotalAssignmentPlugin extends AbstractFormPlugin implements RowClic
|
||||||
})
|
})
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加所有的和
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加所有的和
|
||||||
|
|
||||||
// 获取地上面积汇总值
|
|
||||||
BigDecimal allArea = collections.stream()
|
|
||||||
.map(collection -> {
|
|
||||||
// 获取 BigDecimal 值,如果为 null,则使用 BigDecimal.ZERO
|
|
||||||
BigDecimal hjs = collection.getBigDecimal("qeug_hjs") != null ? collection.getBigDecimal("qeug_hjs") : BigDecimal.ZERO;
|
|
||||||
BigDecimal tzz = collection.getBigDecimal("qeug_tzz") != null ? collection.getBigDecimal("qeug_tzz") : BigDecimal.ZERO;
|
|
||||||
return hjs.add(tzz);
|
|
||||||
})
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加所有的面积
|
|
||||||
|
|
||||||
//获取防水面积
|
|
||||||
BigDecimal waterproofArea = collections.stream()
|
|
||||||
.filter(collection -> "防水".equals(collection.getString("qeug_fl"))) // 排除 "防水" 类型
|
|
||||||
.map(collection -> {
|
|
||||||
BigDecimal hjs = collection.getBigDecimal("qeug_hjs");
|
|
||||||
BigDecimal tzz = collection.getBigDecimal("qeug_tzz");
|
|
||||||
return hjs.add(tzz);
|
|
||||||
})
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
|
|
||||||
// 获取地上面积 - 地下面积 - 防水面积
|
// 获取地上面积 - 地下面积 - 防水面积
|
||||||
BigDecimal groundSummary = allArea.subtract(groundFloorSummary).subtract(waterproofArea);
|
BigDecimal groundSummary = allArea.subtract(groundFloorSummary);
|
||||||
|
|
||||||
// 获取精装面积汇总值
|
// 获取精装面积汇总值
|
||||||
BigDecimal hardcoverSummary = collections.stream()
|
BigDecimal hardcoverSummary = areaSummary(collections,"套内");
|
||||||
.filter(collection -> "套内".equals(collection.getString("qeug_fl"))) // 筛选 "套内" 类型
|
|
||||||
.map(collection -> {
|
|
||||||
// 获取 BigDecimal 值,如果为 null,则使用 BigDecimal.ZERO
|
|
||||||
BigDecimal hjs = collection.getBigDecimal("qeug_hjs") != null ? collection.getBigDecimal("qeug_hjs") : BigDecimal.ZERO;
|
|
||||||
BigDecimal tzz = collection.getBigDecimal("qeug_tzz") != null ? collection.getBigDecimal("qeug_tzz") : BigDecimal.ZERO;
|
|
||||||
return hjs.add(tzz);
|
|
||||||
})
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加所有的 "套内" 面积
|
|
||||||
|
|
||||||
QFilter qFilter = new QFilter("mainprojectid", QCP.equals, pkValue);
|
QFilter qFilter = new QFilter("mainprojectid", QCP.equals, pkValue);
|
||||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("repmd_index_products", qFilter.toArray());
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("repmd_index_products", qFilter.toArray());
|
||||||
|
@ -457,47 +436,47 @@ public class TotalAssignmentPlugin extends AbstractFormPlugin implements RowClic
|
||||||
*/
|
*/
|
||||||
private void setProductEntryValue(DynamicObjectCollection productEntry, DynamicObjectCollection collections, Long id) {
|
private void setProductEntryValue(DynamicObjectCollection productEntry, DynamicObjectCollection collections, Long id) {
|
||||||
//公区面积汇总
|
//公区面积汇总
|
||||||
BigDecimal publicArea = collections.stream()
|
BigDecimal publicArea = areaSummary(collections,"公区");
|
||||||
.filter(collection -> "公区".equals(collection.getString("qeug_fl"))) // 排除 "防水" 类型
|
|
||||||
.map(collection -> {
|
|
||||||
BigDecimal hjs = collection.getBigDecimal("qeug_hjs");
|
|
||||||
BigDecimal tzz = collection.getBigDecimal("qeug_tzz");
|
|
||||||
return hjs.add(tzz);
|
|
||||||
})
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
//套内面积汇总
|
//套内面积汇总
|
||||||
BigDecimal hardcoverArea = collections.stream()
|
BigDecimal hardcoverArea = areaSummary(collections,"套内");
|
||||||
.filter(collection -> "套内".equals(collection.getString("qeug_fl"))) // 排除 "防水" 类型
|
|
||||||
.map(collection -> {
|
|
||||||
BigDecimal hjs = collection.getBigDecimal("qeug_hjs");
|
|
||||||
BigDecimal tzz = collection.getBigDecimal("qeug_tzz");
|
|
||||||
return hjs.add(tzz);
|
|
||||||
})
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
//防水面积汇总
|
//防水面积汇总
|
||||||
BigDecimal waterproofArea = collections.stream()
|
BigDecimal waterproofArea = areaSummary(collections,"防水");
|
||||||
.filter(collection -> "防水".equals(collection.getString("qeug_fl"))) // 排除 "防水" 类型
|
//可出租面积
|
||||||
.map(collection -> {
|
BigDecimal hireArea = areaSummary(collections,"可出租面积");
|
||||||
BigDecimal hjs = collection.getBigDecimal("qeug_hjs");
|
|
||||||
BigDecimal tzz = collection.getBigDecimal("qeug_tzz");
|
|
||||||
return hjs.add(tzz);
|
|
||||||
})
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
|
|
||||||
for (int i = 0; i < productEntry.size(); i++) {
|
for (int i = 0; i < productEntry.size(); i++) {
|
||||||
DynamicObject dynamicObject = productEntry.get(i);
|
DynamicObject dynamicObject = productEntry.get(i);
|
||||||
Long id1 = dynamicObject.getLong("id");
|
Long id1 = dynamicObject.getLong("id");
|
||||||
if (id1.compareTo(id) == 0) {
|
if (id1.compareTo(id) == 0) {
|
||||||
dynamicObject.set("productentry_buildingarea", publicArea.add(hardcoverArea));
|
//实际装修面积=公区+套内
|
||||||
|
dynamicObject.set("qeug_actualarea", publicArea.add(hardcoverArea));
|
||||||
|
//防水面积
|
||||||
dynamicObject.set("qeug_waterproofarea",waterproofArea);
|
dynamicObject.set("qeug_waterproofarea",waterproofArea);
|
||||||
this.getView().updateView("productentry_buildingarea",i);
|
//改建后可出租面积
|
||||||
this.getView().updateView("qeug_waterproofarea",i);
|
dynamicObject.set("qeug_productentry_saleare",hireArea);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.getView().updateView("productentry");
|
||||||
// 更新控件显示
|
// 更新控件显示
|
||||||
updateLabel(publicAmountLabel, publicArea);
|
updateLabel(publicAmountLabel, publicArea);
|
||||||
updateLabel(watertightAmountLabel, waterproofArea);
|
updateLabel(watertightAmountLabel, waterproofArea);
|
||||||
updateLabel(hardcoverAmountLabel, hardcoverArea);
|
updateLabel(hardcoverAmountLabel, hardcoverArea);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 面积分类汇总
|
||||||
|
* @param collections
|
||||||
|
* @param type
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private BigDecimal areaSummary(DynamicObjectCollection collections,String type){
|
||||||
|
return collections.stream()
|
||||||
|
.filter(collection -> type.equals(collection.getString("qeug_fl")))
|
||||||
|
.map(collection -> {
|
||||||
|
BigDecimal hjs = collection.getBigDecimal("qeug_hjs");
|
||||||
|
BigDecimal tzz = collection.getBigDecimal("qeug_tzz");
|
||||||
|
return hjs.add(tzz);
|
||||||
|
})
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue