Răsfoiți Sursa

采购调整

zhangyao 1 săptămână în urmă
părinte
comite
430a3c3300

+ 14 - 2
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/service/contractServiceAdj.java

@@ -79,6 +79,8 @@ public class contractServiceAdj {
             BO editBO = new BO();
             contractService.remove("CREATEDATE");
             contractService.remove("CREATEUSER");
+            contractService.remove("UPDATEDATE");
+            contractService.remove("UPDATEUSER");
             editBO.setAll(contractService);
             editBO.setBindId(contractInstance.getId());
             editBO.set("CONTRACT_SERVICE_ID", serviceId);
@@ -94,6 +96,8 @@ public class contractServiceAdj {
         BO editBO = new BO();
         contractService.remove("CREATEDATE");
         contractService.remove("CREATEUSER");
+        contractService.remove("UPDATEDATE");
+        contractService.remove("UPDATEUSER");
         editBO.setAll(contractService);
         editBO.set("CONTRACT_SERVICE_ID", serviceId);
         editBO.setBindId(contractInstance.getId());
@@ -168,7 +172,7 @@ public class contractServiceAdj {
 
 
         //生效日期之前的一次调整
-        RowMap lastContractService = DBSql.getMap("select * from BO_EU_DNCTT_CONTRACT_SERVICE_SALE_ADJUST where  CONTRACT_SERVICE_ID=? and EFFECTIVE_DATE <=? and IS_EFFECTIVE='已执行' order by EFFECTIVE_DATE desc", new Object[]{contractService.get("CONTRACT_SERVICE_ID"), LocalDateYYYYMMDD(EFFECTIVE_DATE)});
+        RowMap lastContractService = DBSql.getMap("select * from BO_EU_DNCTT_CONTRACT_SERVICE_SALE_ADJUST where  CONTRACT_SERVICE_ID=? and EFFECTIVE_DATE <? and IS_EFFECTIVE='已执行' order by EFFECTIVE_DATE desc", new Object[]{contractService.get("CONTRACT_SERVICE_ID"), LocalDateYYYYMMDD(EFFECTIVE_DATE)});
 
         String PERIOD_TYPE = contractService.getString("PERIOD_TYPE");
 
@@ -565,6 +569,8 @@ public class contractServiceAdj {
             BO editBO = new BO();
             contractService.remove("CREATEDATE");
             contractService.remove("CREATEUSER");
+            contractService.remove("UPDATEDATE");
+            contractService.remove("UPDATEUSER");
             editBO.setAll(contractService);
             editBO.setBindId(contractInstance.getId());
             editBO.set("CONTRACT_SERVICE_ID", serviceId);
@@ -580,6 +586,8 @@ public class contractServiceAdj {
         BO editBO = new BO();
         contractService.remove("CREATEDATE");
         contractService.remove("CREATEUSER");
+        contractService.remove("UPDATEDATE");
+        contractService.remove("UPDATEUSER");
         editBO.setAll(contractService);
         editBO.set("CONTRACT_SERVICE_ID", serviceId);
         editBO.setBindId(contractInstance.getId());
@@ -770,7 +778,7 @@ public class contractServiceAdj {
         }
 
         //生效日期之前的一次调整
-        RowMap lastContractService = DBSql.getMap("select * from BO_EU_DNCTT_CONTRACT_SERVICE_PURCHASE_ADJUST where  CONTRACT_SERVICE_ID=? and PURCHASE_START_DATE <=? and IS_EFFECTIVE='已执行' order by PURCHASE_START_DATE desc", new Object[]{contractService.get("CONTRACT_SERVICE_ID"), LocalDateYYYYMMDD(EFFECTIVE_DATE)});
+        RowMap lastContractService = DBSql.getMap("select * from BO_EU_DNCTT_CONTRACT_SERVICE_PURCHASE_ADJUST where  CONTRACT_SERVICE_ID=? and PURCHASE_START_DATE <? and IS_EFFECTIVE='已执行' order by PURCHASE_START_DATE desc", new Object[]{contractService.get("CONTRACT_SERVICE_ID"), LocalDateYYYYMMDD(EFFECTIVE_DATE)});
 
         RowMap costProduct = DBSql.getMap("select * from BO_EU_DNIVT_ORDER_PRODUCT where CONTRACT_SERVICE_ID=?", new Object[]{contractService.get("CONTRACT_SERVICE_ID")});
 
@@ -890,6 +898,10 @@ public class contractServiceAdj {
                 LocalDate last_period_begin_date = getLocalDate(lastServicePeriod.get("PERIOD_BEGIN_DATE"));
                 BigDecimal periodRate = getDateRate(last_period_begin_date, EFFECTIVE_DATE.minusDays(1), false);
                 if (periodRate.compareTo(BigDecimal.ZERO) > 0) {
+
+                    if (!boName.equals("BO_EU_DNIVT_ORDER_PAYMENT_PLAN_MONTH"))
+                        periodRate=periodRate.divide(new BigDecimal(periodMonths), 10, BigDecimal.ROUND_HALF_UP);
+
                     lastServicePeriod.set("PERIOD_END_DATE", EFFECTIVE_DATE.minusDays(1));
                     lastServicePeriod.set("PLAN_AMOUNT", multiply(SERVICE_TOTAL_COST, periodRate));
                     lastServicePeriod.set("REMAIN_AMOUNT", lastServicePeriod.get("PLAN_AMOUNT"));