|
@@ -14,10 +14,7 @@ import org.springblade.core.tool.utils.BeanUtil;
|
|
import org.springblade.core.tool.utils.ObjectUtil;
|
|
import org.springblade.core.tool.utils.ObjectUtil;
|
|
import org.springblade.meter.dto.MeterTreeContractSaveBatchDTO;
|
|
import org.springblade.meter.dto.MeterTreeContractSaveBatchDTO;
|
|
import org.springblade.meter.dto.MeterTreeContractSaveDTO;
|
|
import org.springblade.meter.dto.MeterTreeContractSaveDTO;
|
|
-import org.springblade.meter.entity.ContractInventoryForm;
|
|
|
|
-import org.springblade.meter.entity.InventoryFormMeter;
|
|
|
|
-import org.springblade.meter.entity.MeterTreeContract;
|
|
|
|
-import org.springblade.meter.entity.MeterTreeProject;
|
|
|
|
|
|
+import org.springblade.meter.entity.*;
|
|
import org.springblade.meter.mapper.ContractInventoryFormMapper;
|
|
import org.springblade.meter.mapper.ContractInventoryFormMapper;
|
|
import org.springblade.meter.mapper.InventoryFormMeterMapper;
|
|
import org.springblade.meter.mapper.InventoryFormMeterMapper;
|
|
import org.springblade.meter.mapper.MeterTreeContractMapper;
|
|
import org.springblade.meter.mapper.MeterTreeContractMapper;
|
|
@@ -604,7 +601,9 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
|
|
Map<String, MeterTreeContract> rootNodeChildMap = rootNodeChild.stream().collect(Collectors.toMap(MeterTreeContract::getNodeCode, Function.identity()));
|
|
Map<String, MeterTreeContract> rootNodeChildMap = rootNodeChild.stream().collect(Collectors.toMap(MeterTreeContract::getNodeCode, Function.identity()));
|
|
List<Long> rootNodeChildIds = rootNodeChild.stream().map(MeterTreeContract::getId).collect(Collectors.toList());
|
|
List<Long> rootNodeChildIds = rootNodeChild.stream().map(MeterTreeContract::getId).collect(Collectors.toList());
|
|
Map<Long, List<InventoryFormMeter>> inventoryFormMeterMapsGroupByContractMeterId = new HashMap<>();
|
|
Map<Long, List<InventoryFormMeter>> inventoryFormMeterMapsGroupByContractMeterId = new HashMap<>();
|
|
- Map<String, InventoryFormMeter> inventoryFormMeterMapsByContractFormId = new HashMap<>();
|
|
|
|
|
|
+ Map<String, InventoryFormMeter> inventoryFormMeterMapsByFormIdAndMeterId = new HashMap<>();
|
|
|
|
+ Map<String, ChangeTokenInventory> changeTokenInventoryMapsByFormIdAndMeterId = new HashMap<>();
|
|
|
|
+ Map<String, InventoryFormApply> inventoryFormApplyMapsByFormIdAndMeterId = new HashMap<>();
|
|
if (rootNodeChildIds.size() > 0) {
|
|
if (rootNodeChildIds.size() > 0) {
|
|
/*子级的中间表关联的清单信息*/
|
|
/*子级的中间表关联的清单信息*/
|
|
List<InventoryFormMeter> query = jdbcTemplate.query("SELECT * FROM s_inventory_form_meter WHERE is_deleted = 0" +
|
|
List<InventoryFormMeter> query = jdbcTemplate.query("SELECT * FROM s_inventory_form_meter WHERE is_deleted = 0" +
|
|
@@ -612,12 +611,36 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
|
|
" AND contract_meter_id IN(" + StringUtils.join(rootNodeChildIds, ",") + ")",
|
|
" AND contract_meter_id IN(" + StringUtils.join(rootNodeChildIds, ",") + ")",
|
|
new BeanPropertyRowMapper<>(InventoryFormMeter.class));
|
|
new BeanPropertyRowMapper<>(InventoryFormMeter.class));
|
|
inventoryFormMeterMapsGroupByContractMeterId = query.stream().collect(Collectors.groupingBy(InventoryFormMeter::getContractMeterId));
|
|
inventoryFormMeterMapsGroupByContractMeterId = query.stream().collect(Collectors.groupingBy(InventoryFormMeter::getContractMeterId));
|
|
- inventoryFormMeterMapsByContractFormId =
|
|
|
|
|
|
+ inventoryFormMeterMapsByFormIdAndMeterId =
|
|
query.stream()
|
|
query.stream()
|
|
.collect(Collectors.toMap(
|
|
.collect(Collectors.toMap(
|
|
meter -> meter.getContractFormId() + ":" + meter.getContractMeterId(),
|
|
meter -> meter.getContractFormId() + ":" + meter.getContractMeterId(),
|
|
Function.identity()
|
|
Function.identity()
|
|
));
|
|
));
|
|
|
|
+
|
|
|
|
+ /*变更令引用*/
|
|
|
|
+ List<ChangeTokenInventory> query1 = jdbcTemplate.query("SELECT contract_meter_id,contract_form_id FROM s_change_token_inventory WHERE is_deleted = 0" +
|
|
|
|
+ " AND contract_id = " + meterTreeContract.getContractId() +
|
|
|
|
+ " AND contract_meter_id IN(" + StringUtils.join(rootNodeChildIds, ",") + ")",
|
|
|
|
+ new BeanPropertyRowMapper<>(ChangeTokenInventory.class));
|
|
|
|
+ changeTokenInventoryMapsByFormIdAndMeterId =
|
|
|
|
+ query1.stream()
|
|
|
|
+ .collect(Collectors.toMap(
|
|
|
|
+ change -> change.getContractFormId() + ":" + change.getContractMeterId(),
|
|
|
|
+ Function.identity()
|
|
|
|
+ ));
|
|
|
|
+
|
|
|
|
+ /*中间计量引用*/
|
|
|
|
+ List<InventoryFormApply> query2 = jdbcTemplate.query("SELECT contract_meter_id,contract_form_id FROM s_inventory_form_apply WHERE is_deleted = 0" +
|
|
|
|
+ " AND contract_id = " + meterTreeContract.getContractId() +
|
|
|
|
+ " AND contract_meter_id IN(" + StringUtils.join(rootNodeChildIds, ",") + ")",
|
|
|
|
+ new BeanPropertyRowMapper<>(InventoryFormApply.class));
|
|
|
|
+ inventoryFormApplyMapsByFormIdAndMeterId =
|
|
|
|
+ query2.stream()
|
|
|
|
+ .collect(Collectors.toMap(
|
|
|
|
+ inventoryFormApply -> inventoryFormApply.getContractFormId() + ":" + inventoryFormApply.getContractMeterId(),
|
|
|
|
+ Function.identity()
|
|
|
|
+ ));
|
|
}
|
|
}
|
|
|
|
|
|
/*桩号类型*/
|
|
/*桩号类型*/
|
|
@@ -628,6 +651,9 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
|
|
Map<String, ContractInventoryForm> contractInventoryFormMapsByFormNumber = query.stream().collect(Collectors.toMap(ContractInventoryForm::getFormNumber, Function.identity()));
|
|
Map<String, ContractInventoryForm> contractInventoryFormMapsByFormNumber = query.stream().collect(Collectors.toMap(ContractInventoryForm::getFormNumber, Function.identity()));
|
|
Map<Long, ContractInventoryForm> contractInventoryFormMapsById = query.stream().collect(Collectors.toMap(ContractInventoryForm::getId, Function.identity()));
|
|
Map<Long, ContractInventoryForm> contractInventoryFormMapsById = query.stream().collect(Collectors.toMap(ContractInventoryForm::getId, Function.identity()));
|
|
|
|
|
|
|
|
+ /*判断是否被引用、变更*/
|
|
|
|
+ jdbcTemplate.query("SELECT * FROM s_change_token_inventory WHERE is_deleted = 0", new BeanPropertyRowMapper<>(ChangeTokenInventory.class)).stream();
|
|
|
|
+
|
|
Map<String, List<Map<String, String>>> rootCodeMaps = parseExcelFileToList.stream()
|
|
Map<String, List<Map<String, String>>> rootCodeMaps = parseExcelFileToList.stream()
|
|
.collect(Collectors.groupingBy(
|
|
.collect(Collectors.groupingBy(
|
|
map -> map.get("工程编号"),
|
|
map -> map.get("工程编号"),
|
|
@@ -792,8 +818,17 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
|
|
//相同清单编号,则同步累加
|
|
//相同清单编号,则同步累加
|
|
if (contractInventoryForm.getFormNumber().equals(formCode)) {
|
|
if (contractInventoryForm.getFormNumber().equals(formCode)) {
|
|
/*获取到对应的中间关联清单信息*/
|
|
/*获取到对应的中间关联清单信息*/
|
|
- InventoryFormMeter formUpdate = inventoryFormMeterMapsByContractFormId.getOrDefault(contractInventoryForm.getId() + ":" + orDefault.getId(), null);
|
|
|
|
|
|
+ String key = contractInventoryForm.getId() + ":" + orDefault.getId();
|
|
|
|
+ InventoryFormMeter formUpdate = inventoryFormMeterMapsByFormIdAndMeterId.getOrDefault(key, null);
|
|
if (formUpdate != null) {
|
|
if (formUpdate != null) {
|
|
|
|
+
|
|
|
|
+ /*判断是否被引用、变更*/
|
|
|
|
+ ChangeTokenInventory orDefault1 = changeTokenInventoryMapsByFormIdAndMeterId.getOrDefault(key, null);
|
|
|
|
+ InventoryFormApply orDefault2 = inventoryFormApplyMapsByFormIdAndMeterId.getOrDefault(key, null);
|
|
|
|
+ if (orDefault1 != null || orDefault2 != null) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
//累加
|
|
//累加
|
|
BigDecimal bigDecimal = this.parseString(buildPictureTotal);
|
|
BigDecimal bigDecimal = this.parseString(buildPictureTotal);
|
|
formUpdate.setBuildPictureTotal(formUpdate.getBuildPictureTotal().add(bigDecimal));
|
|
formUpdate.setBuildPictureTotal(formUpdate.getBuildPictureTotal().add(bigDecimal));
|