Qchen 1 рік тому
батько
коміт
5e477e3d86

+ 17 - 11
src/main/java/com/ydtech/modules/order/entity/api/yangguang/request/YangGuangAccuracyCalculateRequest.java

@@ -28,6 +28,8 @@ import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 @EqualsAndHashCode(callSuper = true)
@@ -243,11 +245,17 @@ public class YangGuangAccuracyCalculateRequest extends YangGuangBaseRequest{
                 this.BiEndDate = biEndTime.format(formatter);
                 // 重复投保
                 if (isRepeat) {
-                    if (!remarkBi.equals("")) {
-                        LocalDateTime biStartTime1 = LocalDateTime.parse(startDate, formatter);
-                        LocalDateTime biEndTime1 = biStartTime1.plusYears(1).with(LocalTime.MIDNIGHT).minusSeconds(1);
-                        this.BiStartDate = biStartTime1.format(formatter);
-                        this.BiEndDate = biEndTime1.format(formatter);
+                    if (remarkBi != null && !remarkBi.equals("")) {
+                        Pattern pattern = Pattern.compile("终保日期:(\\d{12})");
+                        Matcher matcher = pattern.matcher(remarkBi);
+                        if (matcher.find()) {
+                            DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmm");
+                            String endDateStr = matcher.group(1);
+                            LocalDateTime biStartTime1 = LocalDateTime.parse(endDateStr, inputFormatter);
+                            LocalDateTime biEndTime1 = biStartTime1.plusYears(1).minusDays(1).minusSeconds(1);
+                            this.BiStartDate = biStartTime1.format(formatter);
+                            this.BiEndDate = biEndTime1.format(formatter);
+                        }
                     }
                 }
             }
@@ -258,12 +266,10 @@ public class YangGuangAccuracyCalculateRequest extends YangGuangBaseRequest{
                 this.CiEndDate = ciEndTime.format(formatter);
                 // 重复投保
                 if (isRepeat) {
-                    if (!remarkCi.equals("")) {
-                        LocalDateTime ciStartTime1 = LocalDateTime.parse(startDate, formatter);
-                        LocalDateTime ciEndTime1 = ciStartTime1.plusYears(1).with(LocalTime.MIDNIGHT).minusSeconds(1);
-                        this.CiStartDate = ciStartTime1.format(formatter);
-                        this.CiEndDate = ciEndTime1.format(formatter);
-                    }
+                    LocalDateTime ciStartTime1 = LocalDateTime.parse(startDate, formatter);
+                    LocalDateTime ciEndTime1 = ciStartTime1.plusYears(1).minusDays(1).minusSeconds(1);
+                    this.CiStartDate = ciStartTime1.format(formatter);
+                    this.CiEndDate = ciEndTime1.format(formatter);
                 }
             }
         }