Browse Source

用户管理导入功能开发 添加册号,账户余额校验

huangpeng 1 month ago
parent
commit
7211c1e8f3

+ 33 - 13
zhsw-common/src/main/java/com/rongwei/zhsw/system/importListener/UserManagementRecordListener.java

@@ -25,6 +25,7 @@ import org.slf4j.LoggerFactory;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 import static com.rongwei.zhsw.system.utils.ZHSWCommonUtils.getCurrentUser;
@@ -135,6 +136,13 @@ public class UserManagementRecordListener extends AnalysisEventListener<ImportUs
         SwUserManagementDo saveUserDo=null;
         BigDecimal meterMaxValue = new BigDecimal("9999");
         BigDecimal zero = BigDecimal.ZERO;
+        //册号提示
+        List<String> volumenoAccountList = new ArrayList<>();
+        //余额
+        List<String> accountbalanceAccountList = new ArrayList();
+        // 正则表达式匹配整数和小数,包括正负数
+        String pattern = "^[+-]?\\d+(\\.\\d+)?$";
+        Pattern r = Pattern.compile(pattern);
         for (ImportUserManagementRecordVo recordVo:recordList){
             saveUserDo = new SwUserManagementDo();
             saveUserDo.setId(SecurityUtil.getUUID());
@@ -142,7 +150,7 @@ public class UserManagementRecordListener extends AnalysisEventListener<ImportUs
             saveUserDo.setUsername(recordVo.getUsername());
             saveUserDo.setStatus("enable");
 
-            saveUserDo.setAccountbalance(recordVo.getAccountbalance());
+
             saveUserDo.setBldg(recordVo.getBldg());
             saveUserDo.setUnitnum(recordVo.getUnitnum());
             saveUserDo.setHouseno(recordVo.getHouseno());
@@ -153,20 +161,24 @@ public class UserManagementRecordListener extends AnalysisEventListener<ImportUs
             //LASTMETERREADING   最近抄表读数  默认= 0
             saveUserDo.setLastmeterreading(zero);
 
+
+            if(r.matcher(recordVo.getAccountbalance()).matches()){
+                saveUserDo.setAccountbalance(new BigDecimal(recordVo.getAccountbalance()));
+            }else {
+                accountbalanceAccountList.add(recordVo.getUsernumber());
+            }
+
+
+
             //册号
             saveUserDo.setVolumeno(recordVo.getVolumeno());
-            saveUserDo.setVolumenoid(Optional.ofNullable(volumenoMap.get(recordVo.getVolumeno()))
-                    .orElse(new ArrayList<>())
-                    .stream()
-                    .findFirst()
-                    .map(SwBookManagementDo::getId)
-                    .orElse(null));
-            saveUserDo.setVillagename(Optional.ofNullable(volumenoMap.get(recordVo.getVolumeno()))
-                    .orElse(new ArrayList<>())
-                    .stream()
-                    .findFirst()
-                    .map(SwBookManagementDo::getVillagename)
-                    .orElse(null));
+            if(volumenoMap.get(recordVo.getVolumeno())!=null && !volumenoMap.get(recordVo.getVolumeno()).isEmpty()){
+                saveUserDo.setVolumenoid(volumenoMap.get(recordVo.getVolumeno()).get(0).getId());
+                saveUserDo.setVillagename(volumenoMap.get(recordVo.getVolumeno()).get(0).getVillagename());
+            }else {
+                volumenoAccountList.add(recordVo.getUsernumber());
+            }
+
             saveUserDo.setAddress(recordVo.getAddress());
             saveUserDo.setPhonenumber(recordVo.getPhonenumber());
 
@@ -219,6 +231,14 @@ public class UserManagementRecordListener extends AnalysisEventListener<ImportUs
             ZHSWCommonUtils.initModelGeneralParameters(saveUserDo, currentUser);
             saveList.add(saveUserDo);
         };
+        if (!volumenoAccountList.isEmpty()){
+            throw new CustomException(
+              String.join("、",volumenoAccountList) +" 户号对应册号不存在,请检查后重新导入");
+        }
+        if (!accountbalanceAccountList.isEmpty()){
+            throw new CustomException(
+                    String.join("、",volumenoAccountList) +" 户号对应账户余额格式错误,请检查后重新导入");
+        }
     }
     // 获取Excel 中的数据
     public List<SwUserManagementDo> getData() {

+ 1 - 1
zhsw-entity/src/main/java/com/rongwe/zhsw/system/vo/ImportUserManagementRecordVo.java

@@ -41,7 +41,7 @@ public class ImportUserManagementRecordVo {
      * 账户余额
      */
     @ExcelProperty(index = 6)
-    private BigDecimal accountbalance;
+    private String accountbalance;
     /**
      * 用户类别
      */