فهرست منبع

合同服务调整

zhangyao 2 ماه پیش
والد
کامیت
8590e9394e

+ 3 - 0
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/controller/contractCreateController.java

@@ -331,6 +331,9 @@ public class contractCreateController {
         editBO.set("OLD_TOTAL_COST", contractService.get("TOTAL_COST"));
         editBO.setBindId(contractInstance.getId());
 
+        String maxEffectiveDate = DBSql.getString("SELECT MAX(EFFECTIVE_DATE) FROM BO_EU_DNCTT_CONTRACT_SERVICE_EDIT WHERE CONTRACT_ID=? and CONTRACT_SERVICE_ID=? and IS_EFFECTIVE='已执行' ", new Object[]{contractService.get("CONTRACT_ID"), contractService.get("ID")});
+        editBO.set("EFFECTIVE_DATE", maxEffectiveDate);
+        editBO.set("IS_EFFECTIVE", "未执行");
         SDK.getBOAPI().create("BO_EU_DNCTT_CONTRACT_SERVICE_EDIT", editBO, contractInstance, uc);
 
         String processUrl = SDK.getFormAPI().getFormURL(SDK.getPortalAPI().getPortalUrl(), uc.getSessionId(), contractInstance.getId(), null, 1, null, editBO.getId(), null, true);

+ 14 - 7
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/service/contractService.java

@@ -161,8 +161,11 @@ public class contractService {
             {
                 try {
 
+                    contractServiceLogger.info("服务---服务");
+
                     boolean flag = AddServiceServiceBundle(uc, dto);//新增服务或者服务包
 
+                    contractServiceLogger.info("服务产品---服务产品");
                     AddContractServiceProduct(uc, dto);//新增服务或者服务包--关联产品
                     //更新服务产品价格
                     if (!flag) {
@@ -256,9 +259,7 @@ public class contractService {
      * @return
      */
     public boolean AddServiceServiceBundle(UserContext uc, RowMap contract) throws SQLException {
-
         contractServiceLogger.info("新增服务或服务包");
-
         Connection conn = null;
         try {
             conn = DBSql.open();
@@ -268,11 +269,13 @@ public class contractService {
             LocalDate END_DATE = getLocalDate(contract.get("END_DATE"));//合同结束日期
 
             //获取服务列表
-            List<BO> serviceList = SDK.getBOAPI().query("BO_EU_DNCTT_CONTRACT_SERVICE").connection(conn).addQuery("BINDID =", contract.get("BINDID")).list();
+            List<BO> serviceList = SDK.getBOAPI().query("BO_EU_DNCTT_CONTRACT_SERVICE").connection(conn).addQuery("CONTRACT_ID =", contract.get("ID")).list();
 
             for (BO service : serviceList) {
                 AddServiceServiceBundleOne(uc, conn, contract, service);
 
+                contractServiceLogger.info("判断合同结束日期是否修改");
+
                 //如果服务周期的结束时间不等于合同的结束时间,则需要延长服务周期或缩短
                 String PERIOD = service.getString("PERIOD");//服务起止日期
                 String ADJUST_PERIOD = service.getString("ADJUST_PERIOD");//服务调整的起止日期
@@ -296,8 +299,11 @@ public class contractService {
                     }
                 }
 
+                contractServiceLogger.info("服务周期结束日期--" + LocalDateYYYYMMDD(PERIOD_END));
+                contractServiceLogger.info("合同结束日期--" + LocalDateYYYYMMDD(END_DATE));
                 if (PERIOD_END.isEqual(END_DATE)) {
                     if (PERIOD_END.isBefore(END_DATE)) {
+                        contractServiceLogger.info("服务周期延长--" + service.getString("NAME"));
                         //延长
                         List<BO> servicePeriodList = SDK.getBOAPI().query("BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD").connection(conn).addQuery("CONTRACT_SERVICE_ID =", service.getString("CONTRACT_SERVICE_ID")).addQuery("PERIOD_END_DATE >=", PERIOD_END).orderBy("PERIOD_BEGIN_DATE").desc().list();
 
@@ -378,6 +384,7 @@ public class contractService {
                             }
                         }
                     } else {
+                        contractServiceLogger.info("服务周期缩短--" + service.getString("NAME"));
                         //缩短
                         List<BO> servicePeriodList = SDK.getBOAPI().query("BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD").connection(conn).addQuery("CONTRACT_SERVICE_ID =", service.getString("CONTRACT_SERVICE_ID")).addQuery("PERIOD_END_DATE >=", END_DATE).orderBy("PERIOD_BEGIN_DATE").asc().list();
 
@@ -434,6 +441,9 @@ public class contractService {
     public boolean AddServiceServiceBundleOne(UserContext uc, Connection conn, RowMap contract, BO service) {
         if (service == null)
             return false;
+
+        contractServiceLogger.info("AddServiceServiceBundleOne--开始");
+
         boolean isCreate = false;
         // 1、合同开始日期或结束日期变化
         LocalDate START_DATE = getLocalDate(contract.get("START_DATE"));//服务开始日期
@@ -1085,9 +1095,6 @@ public class contractService {
         contractServiceBO.set("TOTAL_PRICE", editService.get("TOTAL_PRICE"));
         contractServiceBO.set("UNIT_COST", editService.get("UNIT_COST"));
         contractServiceBO.set("TOTAL_COST", editService.get("TOTAL_COST"));
-
-        contractServiceBO.set("EFFECTIVE_DATE", editService.get("EFFECTIVE_DATE"));
-
         SDK.getBOAPI().update("BO_EU_DNCTT_CONTRACT_SERVICE", contractServiceBO, conn);
 
         contractServiceLogger.info("服务调整成功");
@@ -1209,7 +1216,7 @@ public class contractService {
      * @return
      */
     public boolean AddContractServiceProduct(UserContext uc, RowMap contract) throws SQLException {
-        contractServiceLogger.info("新增服务或服务包");
+        contractServiceLogger.info("一个服务对应添加一个合同产品");
 
         Connection conn = null;
         try {