Переглянути джерело

Merge branch 'master' of http://210.51.45.41:3000/itcat_admin/aws_donenow

HULEI 1 місяць тому
батько
коміт
28679b86d6

+ 19 - 10
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/service/contractServiceAdj.java

@@ -383,7 +383,7 @@ public class contractServiceAdj {
     public String editServiceSaleEndDate(UserContext uc, String serviceId, LocalDate newEndDate) {
 
         //一次性收费,无需修改
-        if (DBSql.getString("select PERIOD_TYPE from BO_EU_DNCTT_CONTRACT_SERVICE where CONTRACT_SERVICE_ID=?", new Object[]{serviceId}).equals("609")) {
+        if (DBSql.getString("select PERIOD_TYPE from BO_EU_DNCTT_CONTRACT_SERVICE where ID=?", new Object[]{serviceId}).equals("609")) {
             return "无需修改";
         }
 
@@ -392,11 +392,12 @@ public class contractServiceAdj {
 
         LocalDate PERIOD_BEGIN_DATE = TypeUtil.convert(lastServicePeriod.get("PERIOD_BEGIN_DATE"), LocalDate.class);
         LocalDate PERIOD_END_DATE = TypeUtil.convert(lastServicePeriod.get("PERIOD_END_DATE"), LocalDate.class);
-        if (PERIOD_END_DATE.equals(newEndDate)) return "无需修改";
+        if (PERIOD_END_DATE.equals(newEndDate))
+            return "无需修改";
 
         String EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_BEGIN_DATE) as PERIOD_BEGIN_DATE FROM BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD WHERE APPROVE_AND_POST_DATE IS NOT NULL and CONTRACT_SERVICE_ID=? AND  PERIOD_END_DATE >=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
-        if (StringUtils.isBlank(EFFECTIVE_DATE)) return "已审批不能修改了";
-
+        if (StringUtils.isNotBlank(EFFECTIVE_DATE))
+            return "已审批不能修改了";
 
         String bindId = editServiceSale(uc, serviceId, "修改结束日期");
 
@@ -416,11 +417,12 @@ public class contractServiceAdj {
                 LocalDate EFFECTIVE_DATE1 = null;
                 if (StringUtils.isBlank(EFFECTIVE_DATE)) {
                     EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_END_DATE) as PERIOD_END_DATE FROM BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD WHERE  CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE <=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
-
+                    EFFECTIVE_DATE = EFFECTIVE_DATE.length() >= 10 ? EFFECTIVE_DATE.substring(0, 10) : EFFECTIVE_DATE;
                     EFFECTIVE_DATE1 = TypeUtil.convert(EFFECTIVE_DATE, LocalDate.class);
                     EFFECTIVE_DATE1 = EFFECTIVE_DATE1.plusDays(1);
 
                 } else {
+                    EFFECTIVE_DATE = EFFECTIVE_DATE.length() >= 10 ? EFFECTIVE_DATE.substring(0, 10) : EFFECTIVE_DATE;
                     EFFECTIVE_DATE1 = TypeUtil.convert(EFFECTIVE_DATE, LocalDate.class);
                 }
 
@@ -527,9 +529,11 @@ public class contractServiceAdj {
      */
     public String editServicePurchaseEndDate(UserContext uc, String serviceId, LocalDate newEndDate) {
         RowMap lastServicePeriod = DBSql.getMap("SELECT * FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN WHERE CONTRACT_SERVICE_ID=? ORDER BY PERIOD_BEGIN_DATE DESC", new Object[]{serviceId});//最后一笔服务周期
+        if (lastServicePeriod == null)
+            return "无需修改";
 
         //一次性收费,无需修改
-        if (DBSql.getString("select PURCHASE_PERIOD_TYPE from BO_EU_DNCTT_CONTRACT_SERVICE where CONTRACT_SERVICE_ID=?", new Object[]{serviceId}).equals("609")) {
+        if (DBSql.getString("select PURCHASE_PERIOD_TYPE from BO_EU_DNCTT_CONTRACT_SERVICE where ID=?", new Object[]{serviceId}).equals("609")) {
             return "无需修改";
         }
 
@@ -538,9 +542,10 @@ public class contractServiceAdj {
 
         if (PERIOD_END_DATE.equals(newEndDate)) return "无需修改";
 
-        String EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_BEGIN_DATE) as PERIOD_BEGIN_DATE FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN WHERE  PAY_AMOUNT<>0 and PAY_AMOUNT is not NULL  and CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE >=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
+        String EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_BEGIN_DATE) as PERIOD_BEGIN_DATE FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN WHERE  PAY_AMOUNT>0 and PAY_AMOUNT is not NULL  and CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE >=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
 
-        if (StringUtils.isNotBlank(EFFECTIVE_DATE)) return "已审批不能修改了";
+        if (StringUtils.isNotBlank(EFFECTIVE_DATE))
+            return "已审批不能修改了";
 
 
         String bindId = editServicePurchase(uc, serviceId, "修改结束日期");
@@ -555,16 +560,20 @@ public class contractServiceAdj {
                 adjBO.set("PURCHASE_START_DATE", PERIOD_BEGIN_DATE);
             } else {
 
-                EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_BEGIN_DATE) as PERIOD_BEGIN_DATE FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN WHERE PAY_AMOUNT<>0 and PAY_AMOUNT is not NULL and CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE <=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
+                EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_BEGIN_DATE) as PERIOD_BEGIN_DATE FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN WHERE PAY_AMOUNT>0 and PAY_AMOUNT is not NULL and CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE <=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
 
                 LocalDate EFFECTIVE_DATE1 = null;
                 if (StringUtils.isBlank(EFFECTIVE_DATE)) {
                     EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_END_DATE) as PERIOD_END_DATE FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN WHERE  CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE <=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
 
+                    EFFECTIVE_DATE = EFFECTIVE_DATE.length() >= 10 ? EFFECTIVE_DATE.substring(0, 10) : EFFECTIVE_DATE;
+
                     EFFECTIVE_DATE1 = TypeUtil.convert(EFFECTIVE_DATE, LocalDate.class);
                     EFFECTIVE_DATE1 = EFFECTIVE_DATE1.plusDays(1);
 
                 } else {
+                    EFFECTIVE_DATE = EFFECTIVE_DATE.length() >= 10 ? EFFECTIVE_DATE.substring(0, 10) : EFFECTIVE_DATE;
+
                     EFFECTIVE_DATE1 = TypeUtil.convert(EFFECTIVE_DATE, LocalDate.class);
                 }
 
@@ -927,7 +936,7 @@ public class contractServiceAdj {
             for (RowMap payPlan : payPlanList) {
                 LocalDate PAY_PERIOD_BEGIN_DATE = TypeUtil.convert(payPlan.get("PERIOD_BEGIN_DATE"), LocalDate.class);
 
-                SDK.getLogAPI().consoleInfo("PAY_PERIOD_BEGIN_DATE:" + PAY_PERIOD_BEGIN_DATE.toString());
+                //SDK.getLogAPI().consoleInfo("PAY_PERIOD_BEGIN_DATE:" + PAY_PERIOD_BEGIN_DATE.toString());
 
                 // 跳过已处理过的付款计划(通过上一个周期末日期+1判断)
                 if (LAST_DATE != null && PAY_PERIOD_BEGIN_DATE.isBefore(LAST_DATE)) {

+ 6 - 2
com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/service/PaymentPlanService.java

@@ -169,6 +169,10 @@ public class PaymentPlanService {
 
 
         if (RULE_CATE.equals("609")) {   //一次性付费
+
+            String sql = "delete from " + boName + " where ORDER_ID = ? and CONTRACT_COST_ID=? and CONTRACT_SERVICE_ID=? and (PAY_AMOUNT is null or PAY_AMOUNT = 0)";
+            DBSql.update(conn, sql, new Object[]{orderId, orderProduct.getString("CONTRACT_COST_ID"), SERVICE_ID});
+
             BO paymentPlan = new BO();
             paymentPlan.set("ORDER_ID", orderId);
             paymentPlan.set("PLAN_DATE", PERIOD_BEGIN_DATE);
@@ -188,7 +192,7 @@ public class PaymentPlanService {
             }
 
             //一次性收费
-            DBSql.update("UPDATE bo_eu_dnctt_contract_service_period a SET a.PERIOD_COST =( SELECT SUM(b.PLAN_AMOUNT) FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN b WHERE a.CONTRACT_SERVICE_ID=? AND b.CONTRACT_SERVICE_ID = a.CONTRACT_SERVICE_ID) WHERE a.CONTRACT_SERVICE_ID=? AND EXISTS ( SELECT 1 FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN b JOIN bo_eu_dnctt_contract_service c ON b.CONTRACT_SERVICE_ID = c.ID WHERE b.CONTRACT_SERVICE_ID = a.CONTRACT_SERVICE_ID AND c.PERIOD_TYPE = 609 AND c.ID=?)", new Object[]{SERVICE_ID, SERVICE_ID, SERVICE_ID});
+            DBSql.update(conn, "UPDATE bo_eu_dnctt_contract_service_period a SET a.PERIOD_COST =( SELECT SUM(b.PLAN_AMOUNT) FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN b WHERE a.CONTRACT_SERVICE_ID=? AND b.CONTRACT_SERVICE_ID = a.CONTRACT_SERVICE_ID) WHERE a.CONTRACT_SERVICE_ID=? AND EXISTS ( SELECT 1 FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN b JOIN bo_eu_dnctt_contract_service c ON b.CONTRACT_SERVICE_ID = c.ID WHERE b.CONTRACT_SERVICE_ID = a.CONTRACT_SERVICE_ID AND c.PERIOD_TYPE = 609 AND c.ID=?)", new Object[]{SERVICE_ID, SERVICE_ID, SERVICE_ID});
 
             if (boName.equals("BO_EU_DNIVT_ORDER_PAYMENT_PLAN")) {
                 createServicePaymentPlan(uc, orderId, SERVICE_ID, VENDOR_ACCOUNT_ID, orderProduct, "BO_EU_DNIVT_ORDER_PAYMENT_PLAN_MONTH", conn);
@@ -382,7 +386,7 @@ public class PaymentPlanService {
             for (RowMap payPlan : payPlanList) {
                 LocalDate PAY_PERIOD_BEGIN_DATE = TypeUtil.convert(payPlan.get("PERIOD_BEGIN_DATE"), LocalDate.class);
 
-                SDK.getLogAPI().consoleInfo("PAY_PERIOD_BEGIN_DATE:" + PAY_PERIOD_BEGIN_DATE.toString());
+              //  SDK.getLogAPI().consoleInfo("PAY_PERIOD_BEGIN_DATE:" + PAY_PERIOD_BEGIN_DATE.toString());
 
                 // 跳过已处理过的付款计划(通过上一个周期末日期+1判断)
                 if (LAST_DATE != null && PAY_PERIOD_BEGIN_DATE.isBefore(LAST_DATE)) {