Explorar o código

feature 代码提交

xiahan hai 4 meses
pai
achega
fecaf8696a

+ 4 - 1
zhsw-common/src/main/java/com/rongwei/zhsw/system/importListener/MeterReadingRecordListener.java

@@ -56,11 +56,14 @@ public class MeterReadingRecordListener extends AnalysisEventListener<ImportMete
         if (importMeterReadingRecordVo.getConsumption() == null) {
             throw new CustomException("读数为空");
         }
+        // 校验户号是否能重复
+
+
         // 校验当前睡觉是否存在抄表记录
         int count = swWaterUsageEntryService.count(new LambdaQueryWrapper<SwWaterUsageEntryDo>()
                 .eq(BaseDo::getDeleted, "0")
                 .eq(SwWaterUsageEntryDo::getUsernumber, importMeterReadingRecordVo.getAccountNumber())
-                .eq(SwWaterUsageEntryDo::getCurrentreadingdate, importMeterReadingRecordVo.getReadingDate()));
+                .ge(SwWaterUsageEntryDo::getCurrentreadingdate, importMeterReadingRecordVo.getReadingDate()));
         if(count==0) {
             recordList.add(importMeterReadingRecordVo);
         }

+ 31 - 21
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/impl/BillGenerationServiceImpl.java

@@ -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);
     }