Przeglądaj źródła

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

HULEI 1 miesiąc temu
rodzic
commit
92dd9581de

+ 36 - 38
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/service/contractService.java

@@ -82,33 +82,34 @@ public class contractService {
                 Date END_DATE = contractBO.get("END_DATE", Date.class);
 
                 //通过 合同周期个数和合同周期类型计算结束日期
-                if (END_DATE == null || END_DATE.before(START_DATE)) if (OCCURRENCES != null && OCCURRENCES > 0) {
-                    // 使用 Calendar 进行日期操作
-                    Calendar calendar = Calendar.getInstance();
-                    calendar.setTime(START_DATE);
-                    if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_HALFYEAR)) {
-                        calendar.add(Calendar.MONTH, OCCURRENCES * 6);
-                        calendar.add(Calendar.DAY_OF_MONTH, -1);
-                        END_DATE = calendar.getTime();
-                    } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_MONTH)) {
-                        calendar.add(Calendar.MONTH, OCCURRENCES);
-                        calendar.add(Calendar.DAY_OF_MONTH, -1);
-                        END_DATE = calendar.getTime();
-                    } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_QUARTER)) {
-                        calendar.add(Calendar.MONTH, OCCURRENCES * 3);
-                        calendar.add(Calendar.DAY_OF_MONTH, -1);
-                        END_DATE = calendar.getTime();
-                    } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_YEAR)) {
-                        calendar.add(Calendar.MONTH, OCCURRENCES * 12);
-                        calendar.add(Calendar.DAY_OF_MONTH, -1);
-                        END_DATE = calendar.getTime();
-                    } else {
-                        resultDto.put("success", false);
-                        resultDto.put("msg", "周期类型输入错误!");
-                        return resultDto;
+                if (START_DATE != null && StringUtils.isNotBlank(PERIOD_TYPE) && (END_DATE == null || END_DATE.before(START_DATE)))
+                    if (OCCURRENCES != null && OCCURRENCES > 0) {
+                        // 使用 Calendar 进行日期操作
+                        Calendar calendar = Calendar.getInstance();
+                        calendar.setTime(START_DATE);
+                        if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_HALFYEAR)) {
+                            calendar.add(Calendar.MONTH, OCCURRENCES * 6);
+                            calendar.add(Calendar.DAY_OF_MONTH, -1);
+                            END_DATE = calendar.getTime();
+                        } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_MONTH)) {
+                            calendar.add(Calendar.MONTH, OCCURRENCES);
+                            calendar.add(Calendar.DAY_OF_MONTH, -1);
+                            END_DATE = calendar.getTime();
+                        } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_QUARTER)) {
+                            calendar.add(Calendar.MONTH, OCCURRENCES * 3);
+                            calendar.add(Calendar.DAY_OF_MONTH, -1);
+                            END_DATE = calendar.getTime();
+                        } else if (PERIOD_TYPE.equals(cttConstant.PERIOD_TYPE_YEAR)) {
+                            calendar.add(Calendar.MONTH, OCCURRENCES * 12);
+                            calendar.add(Calendar.DAY_OF_MONTH, -1);
+                            END_DATE = calendar.getTime();
+                        } else {
+                            resultDto.put("success", false);
+                            resultDto.put("msg", "周期类型输入错误!");
+                            return resultDto;
+                        }
+                        contractBO.set("END_DATE", END_DATE);
                     }
-                    contractBO.set("END_DATE", END_DATE);
-                }
             }
 
             contractBO.set("ADJUST_SETUP_FEE", contractBO.get("SETUP_FEE"));
@@ -124,18 +125,15 @@ public class contractService {
                 DBSql.update("update BO_EU_DNCTT_CONTRACT set IS_SDT_DEFAULT=0 where ACCOUNT_ID=?", new Object[]{contractBO.getString("ACCOUNT_ID")});
             }
 
-
             //2025年10月25日  生成合同编号
-
+            contractServiceLogger.info("生成合同编号");
             String contractNo = contractBO.getString("NO");
             if (StringUtils.isBlank(contractNo) || contractNo.indexOf("XHT") != 0) {
-
                 //框架协议子合同编号:框架协议合同编码-S001
                 String FRAMEWORK = contractBO.getString("FRAMEWORK");
                 if (StringUtils.isNotBlank(FRAMEWORK)) {
-
-                    String orgContractNo = DBSql.getString("select NO from BO_EU_DNCTT_CONTRACT where ID=? ORDER BY NO DESC", new Object[]{FRAMEWORK});
-                    List<String> noList = DBSql.getList("select NO from BO_EU_DNCTT_CONTRACT where FRAMEWORK=? order by NO desc", String.class, new Object[]{FRAMEWORK});
+                    String orgContractNo = DBSql.getString("select NO from BO_EU_DNCTT_CONTRACT where ID=? AND NO LIKE '%XHT%'  ORDER BY NO DESC", new Object[]{FRAMEWORK});
+                    List<String> noList = DBSql.getList("select NO from BO_EU_DNCTT_CONTRACT where FRAMEWORK=? AND NO LIKE ? order by NO desc", String.class, new Object[]{FRAMEWORK, orgContractNo + "-S%"});
                     if (noList.size() > 0) {
                         String lastNo = noList.get(0);
                         lastNo = lastNo.replace(orgContractNo + "-S", "");
@@ -148,7 +146,6 @@ public class contractService {
                         contractBO.set("NO", contractNo);
                     }
                 } else {
-
                     // contractNo = SDK.getRuleAPI().executeAtScript("@sequence(@companyId_contract_@year,5)");
                     String varname = uc.getCompanyModel().getId() + "_contract_" + LocalDate.now().getYear();
                     contractNo = SDK.getRuleAPI().executeAtScript("@sequence(" + varname + ",5)");
@@ -167,10 +164,13 @@ public class contractService {
                         }
                     }
                     contractNo = "XHT-" + cssx + "-" + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")) + "-" + contractNo;
+
                     contractBO.set("NO", contractNo);
                 }
             }
 
+            contractServiceLogger.info("生成合同编号" + contractNo);
+
             if (idApply) SDK.getBOAPI().update("BO_EU_DNCTT_CONTRACT_APPLY", contractBO);//更新合同
             else {
                 dn.recordFormChanges.record(uc, contractBO, "合同编辑");
@@ -237,7 +237,7 @@ public class contractService {
             return resultDto;
         } catch (Exception e) {
             e.printStackTrace();
-            contractServiceLogger.info("合同报错-info--失败。。。");
+            contractServiceLogger.info("合同报错-info--失败。。。" + e.getMessage());
         }
         resultDto.put("success", false);
         return resultDto;
@@ -1997,8 +1997,7 @@ public class contractService {
                 contractCost.put("PURCHASE_PERIOD_TYPE", service.getString("PURCHASE_PERIOD_TYPE"));//采购周期
 
                 String PURCHASE_START_DATE = service.getString("PURCHASE_START_DATE");
-                if (StringUtils.isBlank(PURCHASE_START_DATE))
-                    PURCHASE_START_DATE = contract.getString("START_DATE");
+                if (StringUtils.isBlank(PURCHASE_START_DATE)) PURCHASE_START_DATE = contract.getString("START_DATE");
                 contractCost.put("PURCHASE_START_DATE", PURCHASE_START_DATE);//采购开始日期
 
                 contractCost.put("CONTRACT_START_DATE", contract.getString("START_DATE"));
@@ -2179,8 +2178,7 @@ public class contractService {
      */
     public static BigDecimal multiply(Object obj1, Object obj2) {
         try {
-            if (obj1 == null || obj2 == null)
-                return BigDecimal.ZERO;
+            if (obj1 == null || obj2 == null) return BigDecimal.ZERO;
 
             BigDecimal num1 = new BigDecimal(String.valueOf(obj1));
             BigDecimal num2 = new BigDecimal(String.valueOf(obj2));