Bladeren bron

付款计划针对按月计算 首月从1号开始的,进行特殊处理

zhangyao 1 maand geleden
bovenliggende
commit
077391a7ca

+ 43 - 2
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/PeriodCalculationUtil.java

@@ -29,6 +29,8 @@ public class PeriodCalculationUtil {
     public static final String PERIOD_TYPE_HALFYEAR = "612"; // 按半年支付
     public static final String PERIOD_TYPE_YEAR = "613";       // 按年支付
 
+    public static final String PERIOD_TYPE_TWOYEAR = "614";       // 按2年支付
+
     // 日期格式化器(复用避免重复创建)
     private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
     private static final DateTimeFormatter MONTH_FORMATTER = DateTimeFormatter.ofPattern("yyyyMM");
@@ -63,6 +65,8 @@ public class PeriodCalculationUtil {
      * 613	按年支付	4592	开通日期后的完整一年 isNaturalMonth=false CALC_METHOD_1STYEAR=4637 userMonthDay=false 或者 CALC_METHOD_1STYEAR=4638 userMonthDay=true monthDayType=0 startMonth=0
      *
      *
+     * 614 按两年付  4603/4604/4605
+     *
      *CALC_METHOD_1STYEAR
      * 4637	(拆机时实际计费天数/当年天数(如365))*年费用
      * 4638	先算月再算天
@@ -116,6 +120,7 @@ public class PeriodCalculationUtil {
             case "4596":
             case "4593":
             case "4590":
+            case "4603":
                 monthDayType = -1;
                 break;
 
@@ -123,18 +128,19 @@ public class PeriodCalculationUtil {
             case "4597":
             case "4594":
             case "4591":
+            case "4604":
                 monthDayType = -2;
                 break;
         }
 
         //按年支付
-        if (ruleCate.equals("613")) {
+        if (ruleCate.equals(PERIOD_TYPE_YEAR)) {
             isNaturalMonth = false;//不需要切换到 1月1日
             userMonthDay = !"4637".equals(CALC_METHOD_1STYEAR);
         }
 
         //按半年支付
-        if (ruleCate.equals("612")) {
+        if (ruleCate.equals(PERIOD_TYPE_HALFYEAR)) {
             isNaturalMonth = false;//不需要切换到 1月1日 或者 7月1日
         }
         if (CALC_METHOD_1STPERIOD.equals("4601"))
@@ -267,6 +273,15 @@ public class PeriodCalculationUtil {
                 }
                 break;
 
+            case PERIOD_TYPE_TWOYEAR://2年
+                if (isNaturalMonth) {
+                    currLastDay = getNaturalYearLastDay(periodBeginDate);
+                    totalPeriodDays = periodBeginDate.lengthOfYear();
+                } else {
+                    currLastDay = getActualTWOYearFirstEndDay(contractStartDate, periodBeginDate, periodEndDate);
+                    totalPeriodDays = getActualYearTotalDays(contractStartDate, periodBeginDate);
+                }
+                break;
             default:
                 throw new IllegalArgumentException("不支持的周期类型:" + ruleCate);
         }
@@ -667,6 +682,26 @@ public class PeriodCalculationUtil {
         return endDay.isAfter(periodEndDate) ? periodEndDate : endDay;
     }
 
+    private static LocalDate getActualTWOYearFirstEndDay(
+            LocalDate contractStartDate,
+            LocalDate periodBeginDate,
+            LocalDate periodEndDate
+    ) {
+        LocalDate endDay;
+        if (contractStartDate.isAfter(periodBeginDate)) {
+            endDay = contractStartDate.minusDays(1);
+        } else if (contractStartDate.isBefore(periodBeginDate)) {
+            endDay = contractStartDate.plusMonths(24);
+            while (endDay.isBefore(periodBeginDate)) {
+                endDay = endDay.plusMonths(24);
+            }
+            endDay = endDay.minusDays(1);
+        } else {
+            return null;
+        }
+        return endDay.isAfter(periodEndDate) ? periodEndDate : endDay;
+    }
+
     /**
      * 实际年:完整周期总天数
      */
@@ -715,6 +750,9 @@ public class PeriodCalculationUtil {
             case PERIOD_TYPE_YEAR:
                 // 年周期:当前日期加 1 年
                 return currentStart.plus(1, ChronoUnit.YEARS);
+            case PERIOD_TYPE_TWOYEAR:
+                // 2 年周期:当前日期加 2 年
+                return currentStart.plus(2, ChronoUnit.YEARS);
             default:
                 // 不支持的周期类型:抛出异常并提示具体类型
                 throw new IllegalArgumentException("不支持的周期类型:" + periodType);
@@ -847,6 +885,9 @@ public class PeriodCalculationUtil {
             case PERIOD_TYPE_YEAR:
                 // 当周期类型为年时,返回12个月
                 return 12;
+            case PERIOD_TYPE_TWOYEAR:
+                // 当周期类型为2年时,返回24个月
+                return 24;
             default:
                 // 当周期类型不匹配已知类型时,返回0
                 return 0;

+ 1 - 0
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/controller/contractApproveController.java

@@ -48,6 +48,7 @@ public class contractApproveController {
         return ResponseObject.newOkResponse();
     }
 
+
     /**
      * 里程碑审批
      * @param uc

+ 18 - 13
com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/controller/ivtOrderController.java

@@ -650,16 +650,27 @@ public class ivtOrderController {
 
         return createPurchaseOrder(uc, costIds);
     }
-456
+
 
     @Mapping(value = "com.awspaas.user.apps.donenow_ivt.contract_serviceOrder_exec", session = false, noSessionEvaluate = "无安全隐患", noSessionReason = "批量生产")
     public String contractServicExec() throws SQLException {
-        List<RowMap> services = DBSql.getMaps("SELECT CONTRACT_ID,GROUP_CONCAT(ID) IDS FROM bo_eu_dnctt_contract_service WHERE CONTRACT_ID in (SELECT ID FROM BO_EU_DNCTT_CONTRACT WHERE FRAMEWORK='7c2841c3-8f51-4dea-a6ea-984d9b9c3574' AND NO NOT LIKE '%old%' ) GROUP BY CONTRACT_ID");
+
+        List<RowMap> services = DBSql.getMaps("SELECT CONTRACT_ID,ID FROM bo_eu_dnctt_contract_service WHERE CONTRACT_ID in (SELECT ID FROM BO_EU_DNCTT_CONTRACT WHERE FRAMEWORK='7c2841c3-8f51-4dea-a6ea-984d9b9c3574' AND NO NOT LIKE '%old%' ) AND `NAME` LIKE '%第三方施工费%' OR `NAME` LIKE '%一次性安装费%' ORDER BY CREATEDATE DESC");
+
         UserContext uc = UserContext.fromUID("admin");
         for (RowMap service : services) {
-            String contractId = service.getString("CONTRACT_ID");
-            String serviceIds = service.getString("IDS");
-            createPurchaseOrderByServiceId(uc, serviceIds);
+
+            String serviceIds = service.getString("ID");
+
+            // String serviceIds = DBSql.getString("SELECT GROUP_CONCAT(ID) AS SERVICE_IDS FROM bo_eu_dnctt_contract_service WHERE NEED_PURCHASE=1 AND  AND FIND_IN_SET(CONTRACT_ID,?) AND UNIT_COST>0", new Object[]{service.getString("CONTRACT_IDS")});
+
+            try {
+                ResponseObject responseObject = createPurchaseOrderByServiceId(uc, serviceIds);
+
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
 
         }
 
@@ -668,7 +679,7 @@ public class ivtOrderController {
 
     @Mapping(value = "com.awspaas.user.apps.donenow_ivt.contract_serviceOrder_exec2", session = false, noSessionEvaluate = "无安全隐患", noSessionReason = "批量生产")
     public String contractServicExec2() throws SQLException {
-        List<RowMap> services = DBSql.getMaps("SELECT c.ID FROM bo_eu_dnctt_contract_service a JOIN bo_eu_dnivt_order_product b ON a.ID=b.CONTRACT_SERVICE_ID JOIN wfc_task c ON b.BINDID=c.PROCESSINSTID WHERE  c.CONTROLSTATE='active' AND c.TASKSTATE=1  AND a.CONTRACT_ID in (SELECT ID FROM BO_EU_DNCTT_CONTRACT WHERE FRAMEWORK='7c2841c3-8f51-4dea-a6ea-984d9b9c3574' AND NO NOT LIKE '%old%' ) ");
+        List<RowMap> services = DBSql.getMaps("SELECT DISTINCT c.ID FROM bo_eu_dnctt_contract_service a JOIN bo_eu_dnivt_order_product b ON a.ID=b.CONTRACT_SERVICE_ID JOIN wfc_task c ON b.BINDID=c.PROCESSINSTID WHERE  c.CONTROLSTATE='active' AND c.TASKSTATE=1  AND a.CONTRACT_ID in (SELECT ID FROM BO_EU_DNCTT_CONTRACT WHERE FRAMEWORK='7c2841c3-8f51-4dea-a6ea-984d9b9c3574' AND NO NOT LIKE '%old%' ) ");
         UserContext uc = UserContext.fromUID("admin");
 
         TaskAPI taskAPI = SDK.getTaskAPI();
@@ -679,13 +690,6 @@ public class ivtOrderController {
         }
 
 
-        DBSql.update("UPDATE bo_eu_dnctt_contract_service a \n" +
-                "JOIN bo_eu_dnivt_order_product b ON a.ID=b.CONTRACT_SERVICE_ID \n" +
-                "JOIN bo_eu_dnivt_order c ON b.BINDID=c.BINDID \n" +
-                "JOIN BO_EU_DNCTT_CONTRACT d ON a.CONTRACT_ID=d.ID \n" +
-                "JOIN BO_EU_1763622342236 e ON d.`NAME`=e.`NAME` \n" +
-                "SET c.PURCHASE_ORDER_NO=e.NO\n" +
-                "WHERE  d.FRAMEWORK='7c2841c3-8f51-4dea-a6ea-984d9b9c3574' AND d.NO NOT LIKE '%old%'");
 
         return "ok";
     }
@@ -929,6 +933,7 @@ public class ivtOrderController {
 
             ResponseObject responseObject = ResponseObject.newOkResponse();
             responseObject.setData(processUrl);
+
             return responseObject;
         } catch (Exception e) {
             System.err.println("创建采购订单异常: " + e.getMessage());

+ 33 - 7
com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/service/PaymentPlanService.java

@@ -231,15 +231,41 @@ public class PaymentPlanService {
         } else {
             UNIT_COST_1STMONTH = toBigDecimal(service.get("UNIT_COST_1STMONTH"));
 
-            // 计算“日期当天到当月月底”的天数占当月总天数的比例(2025-6-25 对应 6/30)
-            BigDecimal ratio = new BigDecimal(PERIOD_BEGIN_DATE.lengthOfMonth() - PERIOD_BEGIN_DATE.getDayOfMonth() + 1)
-                    .divide(new BigDecimal(PERIOD_BEGIN_DATE.lengthOfMonth()), 10, BigDecimal.ROUND_HALF_UP);
+            //按月收费,且从1号开始
+            if (PERIOD_BEGIN_DATE.getDayOfMonth() == 1 && RULE_CATE.equals("610") && boName.equals("BO_EU_DNIVT_ORDER_PAYMENT_PLAN")) {
 
-            UNIT_COST_1STMONTH = ratio.multiply(UNIT_COST_1STMONTH);
-            firstPeriodBeginDate = PERIOD_BEGIN_DATE.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
-            //下月一号
-            PERIOD_BEGIN_DATE = PERIOD_BEGIN_DATE.plusMonths(1).withDayOfMonth(1);
+                firstPeriodBeginDate = PERIOD_BEGIN_DATE.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                //下月一号
+                PERIOD_BEGIN_DATE = PERIOD_BEGIN_DATE.plusMonths(1).withDayOfMonth(1);
 
+                BO paymentPlan = new BO();
+                paymentPlan.set("ORDER_ID", orderId);
+                paymentPlan.set("PLAN_DATE", firstPeriodBeginDate);
+                paymentPlan.set("PERIOD_BEGIN_DATE", firstPeriodBeginDate);
+                paymentPlan.set("PERIOD_END_DATE", PERIOD_BEGIN_DATE.minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                paymentPlan.set("PLAN_AMOUNT", UNIT_COST_1STMONTH);
+                paymentPlan.set("REMAIN_AMOUNT", paymentPlan.get("PLAN_AMOUNT"));
+                paymentPlan.set("CONTRACT_COST_ID", orderProduct.getString("CONTRACT_COST_ID"));
+                paymentPlan.set("CONTRACT_SERVICE_ID", service.getId());
+                paymentPlan.set("PAY_DESC", orderProduct.getString("NAME"));
+                paymentPlan.set("ACCOUNT_PAYEE", VENDOR_ACCOUNT_ID);//收款单位
+
+                ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance("obj_5cb4ae4a42944fd0a9a284ff4c64c65d", uc.getUID(), "付款计划");
+                paymentPlan.setBindId(processInstance.getId());
+                SDK.getBOAPI().create("BO_EU_DNIVT_ORDER_PAYMENT_PLAN", paymentPlan, processInstance, uc, conn);
+
+                UNIT_COST_1STMONTH = BigDecimal.ZERO;
+
+            } else {
+                // 计算“日期当天到当月月底”的天数占当月总天数的比例(2025-6-25 对应 6/30)
+                BigDecimal ratio = new BigDecimal(PERIOD_BEGIN_DATE.lengthOfMonth() - PERIOD_BEGIN_DATE.getDayOfMonth() + 1)
+                        .divide(new BigDecimal(PERIOD_BEGIN_DATE.lengthOfMonth()), 10, BigDecimal.ROUND_HALF_UP);
+
+                UNIT_COST_1STMONTH = ratio.multiply(UNIT_COST_1STMONTH);
+                firstPeriodBeginDate = PERIOD_BEGIN_DATE.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                //下月一号
+                PERIOD_BEGIN_DATE = PERIOD_BEGIN_DATE.plusMonths(1).withDayOfMonth(1);
+            }
 
             //首月单独一条
             if (boName.equals("BO_EU_DNIVT_ORDER_PAYMENT_PLAN_MONTH") && !RULE_CATE.equals("609")) {

+ 63 - 12
com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/utils/PeriodCalculationUtil.java

@@ -29,6 +29,8 @@ public class PeriodCalculationUtil {
     public static final String PERIOD_TYPE_HALFYEAR = "612"; // 按半年支付
     public static final String PERIOD_TYPE_YEAR = "613";       // 按年支付
 
+    public static final String PERIOD_TYPE_TWOYEAR = "614";       // 按2年支付
+
     // 日期格式化器(复用避免重复创建)
     private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
     private static final DateTimeFormatter MONTH_FORMATTER = DateTimeFormatter.ofPattern("yyyyMM");
@@ -63,6 +65,8 @@ public class PeriodCalculationUtil {
      * 613	按年支付	4592	开通日期后的完整一年 isNaturalMonth=false CALC_METHOD_1STYEAR=4637 userMonthDay=false 或者 CALC_METHOD_1STYEAR=4638 userMonthDay=true monthDayType=0 startMonth=0
      *
      *
+     * 614 按两年付  4603/4604/4605
+     *
      *CALC_METHOD_1STYEAR
      * 4637	(拆机时实际计费天数/当年天数(如365))*年费用
      * 4638	先算月再算天
@@ -116,6 +120,7 @@ public class PeriodCalculationUtil {
             case "4596":
             case "4593":
             case "4590":
+            case "4603":
                 monthDayType = -1;
                 break;
 
@@ -123,18 +128,19 @@ public class PeriodCalculationUtil {
             case "4597":
             case "4594":
             case "4591":
+            case "4604":
                 monthDayType = -2;
                 break;
         }
 
         //按年支付
-        if (ruleCate.equals("613")) {
+        if (ruleCate.equals(PERIOD_TYPE_YEAR)) {
             isNaturalMonth = false;//不需要切换到 1月1日
             userMonthDay = !"4637".equals(CALC_METHOD_1STYEAR);
         }
 
         //按半年支付
-        if (ruleCate.equals("612")) {
+        if (ruleCate.equals(PERIOD_TYPE_HALFYEAR)) {
             isNaturalMonth = false;//不需要切换到 1月1日 或者 7月1日
         }
         if (CALC_METHOD_1STPERIOD.equals("4601"))
@@ -178,7 +184,9 @@ public class PeriodCalculationUtil {
         LOGGERU.info("周期开始日期--计算前:" + contractStartDate);
 
         // 1. 参数校验:避免空指针和非法参数
-        validateParams(ruleCate, contractStartDate, periodBeginDate, periodEndDate);
+        if (validateParams(ruleCate, contractStartDate, periodBeginDate, periodEndDate) == false) {
+            return null;
+        }
 
         List<Period> periodList = new ArrayList<>();
         // 2. 一次性收费:直接生成单个周期
@@ -265,6 +273,15 @@ public class PeriodCalculationUtil {
                 }
                 break;
 
+            case PERIOD_TYPE_TWOYEAR://2年
+                if (isNaturalMonth) {
+                    currLastDay = getNaturalYearLastDay(periodBeginDate);
+                    totalPeriodDays = periodBeginDate.lengthOfYear();
+                } else {
+                    currLastDay = getActualTWOYearFirstEndDay(contractStartDate, periodBeginDate, periodEndDate);
+                    totalPeriodDays = getActualYearTotalDays(contractStartDate, periodBeginDate);
+                }
+                break;
             default:
                 throw new IllegalArgumentException("不支持的周期类型:" + ruleCate);
         }
@@ -321,6 +338,7 @@ public class PeriodCalculationUtil {
                 startDate = periodEnd.plusDays(1);
             }
         }
+
         LOGGERU.info("周期列表个数:" + periodList.size());
         LOGGERU.info("周期列表:" + JSON.toJSONString(periodList));
         return periodList;
@@ -461,27 +479,34 @@ public class PeriodCalculationUtil {
     /**
      * 参数校验:防止空指针和非法日期范围
      */
-    private static void validateParams(
+    private static boolean validateParams(
             String ruleCate,
             LocalDate contractStartDate,
             LocalDate periodBeginDate,
             LocalDate periodEndDate
     ) {
         if (StringUtils.isBlank(ruleCate)) {
-            throw new IllegalArgumentException("周期类型(ruleCate)不能为空");
+            LOGGERU.info("周期类型(ruleCate)不能为空");
+            return false;
         }
         if (contractStartDate == null) {
-            throw new IllegalArgumentException("合同开始日期(contractStartDate)不能为空");
+            LOGGERU.info("合同开始日期(contractStartDate)不能为空");
+            return false;
         }
         if (periodBeginDate == null) {
-            throw new IllegalArgumentException("服务开始日期(periodBeginDate)不能为空");
+            LOGGERU.info("服务开始日期(periodBeginDate)不能为空");
+            return false;
         }
         if (periodEndDate == null) {
-            throw new IllegalArgumentException("服务结束日期(periodEndDate)不能为空");
+            LOGGERU.info("服务结束日期(periodEndDate)不能为空");
+            return false;
         }
         if (periodBeginDate.isAfter(periodEndDate)) {
-            throw new IllegalArgumentException("服务开始日期不能晚于服务结束日期");
+            LOGGERU.info("服务开始日期不能晚于服务结束日期");
+            return false;
         }
+
+        return true;
     }
 
     // ------------------------------ 私有工具方法:自然月模式计算 ------------------------------
@@ -576,9 +601,7 @@ public class PeriodCalculationUtil {
             while (endDay.isBefore(periodBeginDate)) {
                 endDay = endDay.plusMonths(3);
             }
-
             endDay = endDay.minusDays(1);
-
         } else {
             //endDay = contractStartDate.plusMonths(3).minusDays(1);
             return null;
@@ -614,7 +637,9 @@ public class PeriodCalculationUtil {
             while (endDay.isBefore(periodBeginDate)) {
                 endDay = endDay.plusMonths(6);
             }
+
             endDay = endDay.minusDays(1);
+
         } else {
             //endDay = contractStartDate.plusMonths(6).minusDays(1);
             return null;
@@ -657,6 +682,26 @@ public class PeriodCalculationUtil {
         return endDay.isAfter(periodEndDate) ? periodEndDate : endDay;
     }
 
+    private static LocalDate getActualTWOYearFirstEndDay(
+            LocalDate contractStartDate,
+            LocalDate periodBeginDate,
+            LocalDate periodEndDate
+    ) {
+        LocalDate endDay;
+        if (contractStartDate.isAfter(periodBeginDate)) {
+            endDay = contractStartDate.minusDays(1);
+        } else if (contractStartDate.isBefore(periodBeginDate)) {
+            endDay = contractStartDate.plusMonths(24);
+            while (endDay.isBefore(periodBeginDate)) {
+                endDay = endDay.plusMonths(24);
+            }
+            endDay = endDay.minusDays(1);
+        } else {
+            return null;
+        }
+        return endDay.isAfter(periodEndDate) ? periodEndDate : endDay;
+    }
+
     /**
      * 实际年:完整周期总天数
      */
@@ -705,6 +750,9 @@ public class PeriodCalculationUtil {
             case PERIOD_TYPE_YEAR:
                 // 年周期:当前日期加 1 年
                 return currentStart.plus(1, ChronoUnit.YEARS);
+            case PERIOD_TYPE_TWOYEAR:
+                // 2 年周期:当前日期加 2 年
+                return currentStart.plus(2, ChronoUnit.YEARS);
             default:
                 // 不支持的周期类型:抛出异常并提示具体类型
                 throw new IllegalArgumentException("不支持的周期类型:" + periodType);
@@ -823,7 +871,7 @@ public class PeriodCalculationUtil {
      * @param period 周期类型字符串,表示不同的周期类型
      * @return 对应的月数如果输入的周期类型不匹配已知类型,则返回0
      */
-    private static int GetPeriodMonth(String period) {
+    public static int GetPeriodMonth(String period) {
         switch (period) {
             case PERIOD_TYPE_MONTH:
                 // 当周期类型为月时,返回1个月
@@ -837,6 +885,9 @@ public class PeriodCalculationUtil {
             case PERIOD_TYPE_YEAR:
                 // 当周期类型为年时,返回12个月
                 return 12;
+            case PERIOD_TYPE_TWOYEAR:
+                // 当周期类型为2年时,返回24个月
+                return 24;
             default:
                 // 当周期类型不匹配已知类型时,返回0
                 return 0;

+ 15 - 2
com.awspaas.user.apps.donenow_sys/src/com/awspaas/user/apps/donenow_sys/controller/testController.java

@@ -1,8 +1,11 @@
 package com.awspaas.user.apps.donenow_sys.controller;
 
 import com.actionsoft.bpms.commons.htmlframework.HtmlPageTemplate;
+import com.actionsoft.bpms.commons.session.SessionImpl;
+import com.actionsoft.bpms.commons.session.model.SessionModel;
 import com.actionsoft.bpms.server.bind.annotation.Controller;
 import com.actionsoft.bpms.server.bind.annotation.Mapping;
+import com.actionsoft.exception.BPMNError;
 import com.actionsoft.sdk.local.SDK;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.commons.lang3.StringUtils;
@@ -50,8 +53,6 @@ public class testController {
 
         map.put("url", SDK.getPortalAPI().getPortalUrl() + "/r/w?sid=" + sid + "&cmd=CLIENT_P_PORTAL_HOME&id=com.awspaas.user.apps.portal.1751251354216&msaAppId=com.awspaas.user.apps.portal.175125135421");
 
-        System.out.println(map);
-
         return HtmlPageTemplate.merge("jiuye_index.html", map);
     }
 
@@ -547,6 +548,18 @@ public class testController {
         String username = "zhangsan";
         int userId = 1001;
 
+
+        SessionModel session = new SessionImpl().registerSession("A", "", "cn", "", "pc", false, new HashMap());
+        if ((session == null) || (org.apache.commons.lang.StringUtils.isBlank(session.getSessionId()))) {
+            throw new BPMNError("创建session失败,请检查用户名");
+        }
+
+
+        //SSOUtil ssoUtil = new SSOUtil();
+        //String session = ssoUtil.registerClientSessionNoPassword("admin", "cn", SDK.getPortalAPI().getPortalUrl(), "pc");
+
+
+
         // 创建不可变的Pair对象(推荐,线程安全)
 
         return Pair.create(username, userId);