Browse Source

日期相差月份计算修改。

tomatozq 5 năm trước cách đây
mục cha
commit
5fe7ef9392

+ 2 - 3
picc-admin-server/src/main/java/com/jpsoft/picc/modules/business/controller/InsuranceApplicationController.java

@@ -27,6 +27,7 @@ import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
 import org.joda.time.Interval;
+import org.joda.time.Months;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -397,10 +398,8 @@ public class InsuranceApplicationController {
 
         DateTime startTime = new DateTime(insuranceApplication.getStartTime());
 
-        Interval interval = new Interval(startTime, endTime);
-
         //投保总月份
-        int months = interval.toPeriod().getMonths();
+        int months = Months.monthsBetween(startTime, endTime).getMonths();
 
         BigDecimal totalAmount = new BigDecimal(0);
 

+ 7 - 0
picc-admin-server/src/main/java/com/jpsoft/picc/modules/business/controller/InsurancePolicyController.java

@@ -593,6 +593,8 @@ public class InsurancePolicyController {
         srcPolicy.setStatus(PolicyStatus.SendOutPolicy.getValue() + "");
         srcPolicy.setUpdateTime(new Date());
 
+        InsuranceApplication insuranceApplication = insuranceApplicationService.get(applicationId);
+
         insurancePolicyService.update(srcPolicy);
 
         InsurancePolicy destPolicy = new InsurancePolicy();
@@ -604,6 +606,11 @@ public class InsurancePolicyController {
         destPolicy.setStartTime(startTime.toDate());
         destPolicy.setEndTime(startTime.plusMonths(1).toDate());
 
+        //已经过期则不生成下月投保单
+        if (destPolicy.getEndTime().after(insuranceApplication.getEndTime())){
+            return;
+        }
+
         destPolicy.setEffectiveDate(startTime.toString("yyyyMM"));
 
         boolean exist = insurancePolicyService.existByApplicationIdAndEffectiveDate(applicationId,destPolicy.getEffectiveDate());

+ 3 - 5
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/InsuranceApplicationController.java

@@ -28,6 +28,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.jasig.cas.client.authentication.AttributePrincipal;
 import org.joda.time.DateTime;
 import org.joda.time.Interval;
+import org.joda.time.Months;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.web.bind.annotation.*;
@@ -176,9 +177,8 @@ public class InsuranceApplicationController {
 
                 DateTime endTime = new DateTime(insuranceApplication.getEndTime());
                 DateTime startTime = new DateTime(insuranceApplication.getStartTime());
-                Interval interval = new Interval(startTime, endTime);
 
-                insuranceApplicationDTO.setMonthNumber(interval.toPeriod().getMonths());
+                insuranceApplicationDTO.setMonthNumber(Months.monthsBetween(startTime, endTime).getMonths());
             } else {
                 //先生成主键,便于参保人员关联
                 insuranceApplicationDTO.setApplicationId(UUID.randomUUID().toString());
@@ -271,10 +271,8 @@ public class InsuranceApplicationController {
             DateTime startTime = new DateTime(insuranceApplication.getStartTime());
             acceptInsuranceDTO.setStartTime(insuranceApplication.getStartTime());
 
-            Interval interval = new Interval(startTime, endTime);
-
             //投保总月份
-            int months = interval.toPeriod().getMonths();
+            int months = Months.monthsBetween(startTime, endTime).getMonths();
 
             BigDecimal totalAmount = new BigDecimal(0);
             int totalNumber = 0;