Quellcode durchsuchen

添加参数控制项目成本计算流程的计算方式

JammeyJiang vor 5 Monaten
Ursprung
Commit
1076c5c799

+ 5 - 0
src/main/java/com/kcim/common/constants/CommonConstant.java

@@ -91,6 +91,11 @@ public final class CommonConstant {
      */
     public static final String SEPARATOR_BlankSpace = " ";
 
+    /**
+     * 分割符-竖杆
+     */
+    public static final String SEPARATOR_VERTICAL = "\\|";
+
 
     /**
      * 常量A

+ 5 - 0
src/main/java/com/kcim/common/constants/ParameterConstant.java

@@ -42,5 +42,10 @@ public interface ParameterConstant {
      */
     Long USER_HOSP_ITEM_CALC=1889925898824716288L;
 
+    /**
+     * 项目成本计算方式
+     */
+    Long ITEM_CALC_TYPE=1902923430831984640L;
+
 
 }

+ 7 - 0
src/main/java/com/kcim/service/CenterService.java

@@ -39,6 +39,13 @@ public interface CenterService {
      */
     String getParameterValue(Long parameterCode);
 
+    /**
+     * 获取指定Code的参数指定序号的数值,
+     * @param parameterCode
+     * @return
+     */
+    String getParameterValueByIndex(Long parameterCode,int index);
+
     List<KCClassVo>  getKCClass();
 
     List<SysDepartment>  getDepartmentByDepartmentIds(List<Long> departmentIds);

+ 25 - 0
src/main/java/com/kcim/service/impl/CenterServiceImpl.java

@@ -1,7 +1,9 @@
 package com.kcim.service.impl;
 
 import com.alibaba.fastjson2.JSON;
+import com.kcim.common.constants.CommonConstant;
 import com.kcim.common.constants.Constant;
+import com.kcim.common.constants.NumberConstant;
 import com.kcim.common.exception.CostException;
 import com.kcim.dao.model.dto.SysDepartment;
 import com.kcim.endPoint.CenterEndPoint;
@@ -109,6 +111,29 @@ public class CenterServiceImpl implements CenterService {
         }
     }
 
+    /**
+     * 获取指定Code的参数指定序号的数值
+     * @param parameterCode
+     * @param index
+     * @return
+     */
+    @Override
+    public String getParameterValueByIndex(Long parameterCode, int index) {
+        try {
+            if(ObjectUtils.isEmpty(index)) {
+                index = NumberConstant.ZERO;
+            }
+            String parameterValue = getParameterValue(parameterCode);
+            String[] split = parameterValue.split(CommonConstant.SEPARATOR_VERTICAL);
+            if(split.length>index){
+                return split[index];
+            }
+            return Constant.EMPTY_STR;
+        }catch (Exception e){
+            throw new CostException(e.getMessage());
+        }
+    }
+
     @Override
     public List<KCClassVo> getKCClass() {
         Object kcClass = endPoint.getKCClass(null);

+ 27 - 13
src/main/java/com/kcim/service/impl/ProjectCostServiceImpl.java

@@ -257,16 +257,23 @@ public class ProjectCostServiceImpl implements ProjectCostService {
      */
     @Override
     public void computeItemCost(String computeDate){
-        //根据参数判断是否走新的计算流程
-        if(NumberConstant.ONE_S.equals(centerService.getParameterValue(ParameterConstant.USER_HOSP_ITEM_CALC))){
-            //项目成本分摊计算
-            calcItemCostAllocation(computeDate);
-        }else{
-            computeItemCostACtion(computeDate);
+        String parameterValue = centerService.getParameterValueByIndex(ParameterConstant.ITEM_CALC_TYPE,NumberConstant.ONE);
+        //走系统计算逻辑
+        if(StringUtils.isEmpty(parameterValue)|| NumberConstant.ONE_S.equals(parameterValue)||NumberConstant.THREE_S.equals(parameterValue)){
+            //根据参数判断是否走新的计算流程
+            if(NumberConstant.ONE_S.equals(centerService.getParameterValue(ParameterConstant.USER_HOSP_ITEM_CALC))){
+                //项目成本分摊计算
+                calcItemCostAllocation(computeDate);
+            }else{
+                computeItemCostACtion(computeDate);
+            }
+        }
+        //走自定义SQL计算逻辑
+        if(NumberConstant.TWO_S.equals(parameterValue)||NumberConstant.THREE_S.equals(parameterValue)) {
+            log.info("项目成本分摊计算完成开始执行后续处理脚本");
+            //执行后续处理脚本
+            execItemCostSQL(computeDate);
         }
-        log.info("项目成本分摊计算完成开始执行后续处理脚本");
-        //执行后续处理脚本
-        execItemCostSQL(computeDate);
     }
 
     /**
@@ -1246,10 +1253,17 @@ public class ProjectCostServiceImpl implements ProjectCostService {
      */
     @Override
     public void computeStandItemCost(String computeDate){
-        //标准项目成本分摊计算
-        computeStandItemCostAction(computeDate);
-        //执行标准法项目成本分摊计算后续处理脚本
-        execStandItemCostSQL(computeDate);
+        String parameterValue = centerService.getParameterValueByIndex(ParameterConstant.ITEM_CALC_TYPE,NumberConstant.THREE);
+        //走系统计算逻辑
+        if(StringUtils.isEmpty(parameterValue)|| NumberConstant.ONE_S.equals(parameterValue)||NumberConstant.THREE_S.equals(parameterValue)) {
+            //标准项目成本分摊计算
+            computeStandItemCostAction(computeDate);
+        }
+        //走自定义SQL计算逻辑
+        if(NumberConstant.TWO_S.equals(parameterValue)||NumberConstant.THREE_S.equals(parameterValue)) {
+            //执行标准法项目成本分摊计算后续处理脚本
+            execStandItemCostSQL(computeDate);
+        }
     }
 
     /**

+ 27 - 13
src/main/java/com/kcim/service/impl/ShareParamServiceImpl.java

@@ -150,15 +150,22 @@ public class ShareParamServiceImpl implements ShareParamService {
      */
     @Override
     public void computeShareParamCost(String computeDate){
-        //根据参数判断是否走新的计算流程
-        if(NumberConstant.ONE_S.equals(centerService.getParameterValue(ParameterConstant.USER_HOSP_ITEM_CALC))){
-            //完全法项目分摊参数计算
-            calcShareParamCost(computeDate);
-        }else{
-            computeShareParamCostAction(computeDate);
-        }
-        //执行完全法项目分摊参数计算后续处理脚本
-        execShareParamCostSQL(computeDate);
+        String parameterValue = centerService.getParameterValueByIndex(ParameterConstant.ITEM_CALC_TYPE,NumberConstant.ZERO);
+        //走系统计算逻辑
+        if(StringUtils.isEmpty(parameterValue)|| NumberConstant.ONE_S.equals(parameterValue)||NumberConstant.THREE_S.equals(parameterValue)) {
+            //根据参数判断是否走新的计算流程
+            if (NumberConstant.ONE_S.equals(centerService.getParameterValue(ParameterConstant.USER_HOSP_ITEM_CALC))) {
+                //完全法项目分摊参数计算
+                calcShareParamCost(computeDate);
+            } else {
+                computeShareParamCostAction(computeDate);
+            }
+        }
+        //走自定义SQL计算逻辑
+        if(NumberConstant.TWO_S.equals(parameterValue)||NumberConstant.THREE_S.equals(parameterValue)) {
+            //执行完全法项目分摊参数计算后续处理脚本
+            execShareParamCostSQL(computeDate);
+        }
     }
 
     /**
@@ -820,10 +827,17 @@ public class ShareParamServiceImpl implements ShareParamService {
      */
     @Override
     public void computeStandShareParamCost(String computeDate){
-        //标准法项目分摊参数计算
-        computeStandShareParamCostAction(computeDate);
-        //执行标准法项目分摊参数计算后续处理脚本
-        execStandShareParamCostSQL(computeDate);
+        String parameterValue = centerService.getParameterValueByIndex(ParameterConstant.ITEM_CALC_TYPE,NumberConstant.TWO);
+        //走系统计算逻辑
+        if(StringUtils.isEmpty(parameterValue)|| NumberConstant.ONE_S.equals(parameterValue)||NumberConstant.THREE_S.equals(parameterValue)) {
+            //标准法项目分摊参数计算
+            computeStandShareParamCostAction(computeDate);
+        }
+        //走自定义SQL计算逻辑
+        if(NumberConstant.TWO_S.equals(parameterValue)||NumberConstant.THREE_S.equals(parameterValue)) {
+            //执行标准法项目分摊参数计算后续处理脚本
+            execStandShareParamCostSQL(computeDate);
+        }
     }
 
     /**