|
@@ -56,10 +56,32 @@ public class BillGenerationServiceImpl {
|
|
|
List<SwWaterUsageEntryDo> collect = swWaterUsageEntryDoList.stream()
|
|
|
.sorted(Comparator.comparing(SwWaterUsageEntryDo::getCurrentreadingdate))
|
|
|
.collect(Collectors.toList());
|
|
|
-
|
|
|
+ /***********需要执行保存操作的数据集合**************/
|
|
|
List<SwWaterUsageEntryDo> saveUsageEntryList = new ArrayList<>();
|
|
|
List<SwBillManagementUnpaidDo> saveList = new ArrayList<>();
|
|
|
List<SwUserManagementDo> userSaveList = new ArrayList<>();
|
|
|
+ /*******当前账单的所有户号******/
|
|
|
+ List<String> accountNumberList = collect.stream().map(SwWaterUsageEntryDo::getUsernumber).collect(Collectors.toList());
|
|
|
+ /*******当前账单的所有户号******/
|
|
|
+ List<SwUserManagementDo> swUserManagementList = swUserManagementService.list(new LambdaQueryWrapper<SwUserManagementDo>()
|
|
|
+ .select(SwUserManagementDo::getId,
|
|
|
+ SwUserManagementDo::getUsernumber,
|
|
|
+ SwUserManagementDo::getMetermaxvalue,
|
|
|
+ SwUserManagementDo::getWaterprice,
|
|
|
+ SwUserManagementDo::getVillagename,
|
|
|
+ SwUserManagementDo::getUsernumber,
|
|
|
+ SwUserManagementDo::getUsername,
|
|
|
+ SwUserManagementDo::getUsertype,
|
|
|
+ SwUserManagementDo::getAddress,
|
|
|
+ SwUserManagementDo::getExemptionamount,
|
|
|
+ SwUserManagementDo::getExemptionwater,
|
|
|
+ SwUserManagementDo::getWatertype,
|
|
|
+ SwUserManagementDo::getLastmeterreaddate,
|
|
|
+ SwUserManagementDo::getLastmeterreading
|
|
|
+ )
|
|
|
+ .eq(BaseDo::getDeleted, "0")
|
|
|
+ .in(SwUserManagementDo::getUsernumber, accountNumberList));
|
|
|
+
|
|
|
collect.forEach(swWaterUsageEntry -> {
|
|
|
String usernumber = swWaterUsageEntry.getUsernumber();
|
|
|
// 本次抄表日期
|
|
@@ -69,25 +91,10 @@ public class BillGenerationServiceImpl {
|
|
|
log.error("当前用户:{},时间:{}的抄表记录已生成账单信息", usernumber, currentreadingdate);
|
|
|
return;
|
|
|
}
|
|
|
+ SwUserManagementDo swUserManagementDo = swUserManagementList.stream().filter(data -> data.getUsernumber().equals(swWaterUsageEntry.getUsernumber()))
|
|
|
+ .findFirst()
|
|
|
+ .orElse(null);
|
|
|
|
|
|
- SwUserManagementDo swUserManagementDo = swUserManagementService.getOne(new LambdaQueryWrapper<SwUserManagementDo>()
|
|
|
- .select(SwUserManagementDo::getId,
|
|
|
- SwUserManagementDo::getUsernumber,
|
|
|
- SwUserManagementDo::getMetermaxvalue,
|
|
|
- SwUserManagementDo::getWaterprice,
|
|
|
- SwUserManagementDo::getVillagename,
|
|
|
- SwUserManagementDo::getUsernumber,
|
|
|
- SwUserManagementDo::getUsername,
|
|
|
- SwUserManagementDo::getUsertype,
|
|
|
- SwUserManagementDo::getAddress,
|
|
|
- SwUserManagementDo::getExemptionamount,
|
|
|
- SwUserManagementDo::getExemptionwater,
|
|
|
- SwUserManagementDo::getWatertype,
|
|
|
- SwUserManagementDo::getLastmeterreaddate,
|
|
|
- SwUserManagementDo::getLastmeterreading
|
|
|
- )
|
|
|
- .eq(BaseDo::getDeleted, "0")
|
|
|
- .eq(SwUserManagementDo::getUsernumber, usernumber));
|
|
|
SwWaterUsageEntryDo usageEntryDo = new SwWaterUsageEntryDo();
|
|
|
usageEntryDo.setId(swWaterUsageEntry.getId());
|
|
|
if (swUserManagementDo == null) {
|
|
@@ -95,6 +102,8 @@ public class BillGenerationServiceImpl {
|
|
|
usageEntryDo.setState(2);
|
|
|
saveUsageEntryList.add(usageEntryDo);
|
|
|
return;
|
|
|
+ }else{
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// 校验是否可以生成账单
|
|
@@ -121,7 +130,7 @@ public class BillGenerationServiceImpl {
|
|
|
// 设置本次的抄表日期
|
|
|
swUserManagementDo.setLastmeterreaddate(swBillManagementUnpaidDo.getThismeterreadingdate());
|
|
|
// 设置本次的抄表用量
|
|
|
- swUserManagementDo.setLastmeterreading(swBillManagementUnpaidDo.getLastmeterreading());
|
|
|
+ swUserManagementDo.setLastmeterreading(swBillManagementUnpaidDo.getThismeterreading());
|
|
|
}
|
|
|
userSaveList.add(swUserManagementDo);
|
|
|
saveUsageEntryList.add(usageEntryDo);
|
|
@@ -159,10 +168,11 @@ public class BillGenerationServiceImpl {
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = REQUIRED)
|
|
|
public void dataSave(List<SwBillManagementUnpaidDo> swBillManagementUnpaidDos, List<SwUserManagementDo> userSaveList,
|
|
|
List<SwWaterUsageEntryDo> saveUsageEntryList) {
|
|
|
+ // 抄表记录状态更新
|
|
|
swWaterUsageEntryService.updateBatchById(saveUsageEntryList,4000);
|
|
|
// 账单保存
|
|
|
swBillManagementUnpaidService.saveBatch(swBillManagementUnpaidDos, 1000);
|
|
|
- // 更新用户表的本次抄表时间和本次抄表度数lll
|
|
|
+ // 更新用户表的本次抄表时间和本次抄表度数
|
|
|
swUserManagementService.updateBatchById(userSaveList);
|
|
|
}
|
|
|
|