瀏覽代碼

对调度计划新增数据隔离

andyliu 11 月之前
父節點
當前提交
79377d0f8f

+ 29 - 0
src/main/java/com/shkpr/service/aimodelpower/bizmgr/AssistCommonBizFun.java

@@ -0,0 +1,29 @@
+package com.shkpr.service.aimodelpower.bizmgr;
+
+import com.global.base.tools.FastJsonUtil;
+import com.shkpr.service.aimodelpower.commtools.CommTool;
+import com.shkpr.service.aimodelpower.dto.ResponseCode;
+import com.shkpr.service.aimodelpower.dto.ResponseRes;
+import com.shkpr.service.aimodelpower.dto.ZoneTreesId;
+import com.shkpr.service.aimodelpower.services.ServiceMgrProxy;
+
+import java.util.List;
+
+public class AssistCommonBizFun {
+    private final static String mStrClassName = "AssistCommonBizFun";
+    private final static String EMPTY_NULL = "NULL";
+
+    public static List<String> getOrgPowerListForUser(String userId){
+        List<String> arrRes = null;
+        try {
+            ResponseRes<String> oTmp = ServiceMgrProxy.getInstance().applyBaseServiceApi().userOrgPowerList(userId);
+            if (oTmp != null && ResponseCode.RESULT_NORMAL.toStrCode().equals(oTmp.getRescode())){
+                ZoneTreesId oResTmp = FastJsonUtil.fromJSONByGson(oTmp.getResdata(), ZoneTreesId.class);
+                if (oResTmp != null)
+                    arrRes = oResTmp.getData();
+            }
+
+        }catch (Exception e){}
+        return CommTool.safeList(arrRes);
+    }
+}

+ 1 - 0
src/main/java/com/shkpr/service/aimodelpower/dbdao/tables/WODispatchPlanInfoTable.java

@@ -13,6 +13,7 @@ public interface WODispatchPlanInfoTable {
         String LAST_TAKE_TIME = "last_take_time";
         String TYPE = "plan_type";
         String BATCH_TOTAL = "batch_total";
+        String CREATOR_ORG = "creator_org";
 
         String TOTAL_PRODUCE_ORDER = "next_take_time ASC,id ASC";
         String TOTAL_PRODUCE_FILED = new StringBuilder("id")

+ 23 - 3
src/main/java/com/shkpr/service/aimodelpower/jsonbean/woDispatchPlan/JPDispatchPlanInfoSS.java

@@ -1,11 +1,19 @@
 package com.shkpr.service.aimodelpower.jsonbean.woDispatchPlan;
 
+import com.shkpr.service.aimodelpower.bizmgr.AssistCommonBizFun;
+import com.shkpr.service.aimodelpower.commtools.CommTool;
+import com.shkpr.service.aimodelpower.controllervalid.CommonParamValidList;
 import com.shkpr.service.aimodelpower.dbdao.tables.WODispatchPlanInfoTable;
 import com.shkpr.service.aimodelpower.jsonbean.JPPageLO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springframework.util.StringUtils;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @ClassName JPDispatchPlanInfoSS
  * @Description: TODO 调度计划查询参数
@@ -16,6 +24,10 @@ import org.springframework.util.StringUtils;
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class JPDispatchPlanInfoSS extends JPPageLO{
+    @NotBlank(groups = { CommonParamValidList.class})
+    @Size(min = 1, max = 64, groups = { CommonParamValidList.class})
+    private String selfUser = "";
+
     private String title;//计划名称(标题)
 
     private Integer downFlag;//计划是否下发 0 是 1 否
@@ -25,9 +37,17 @@ public class JPDispatchPlanInfoSS extends JPPageLO{
 
     public String genQueryExtend(){
         StringBuilder str = new StringBuilder("");
-        if (!StringUtils.isEmpty(this.title)) {
-            str.append(" OR title like '%" + this.title + "%' ");
+        List<String> orgList = null;
+        if (!StringUtils.isEmpty(selfUser) && !CommTool.isRootAdminID(selfUser)){
+            orgList = AssistCommonBizFun.getOrgPowerListForUser(selfUser);
+            if (CommTool.listSize(orgList) <= 0)
+                orgList = new ArrayList<String>(){{add("None");}};
         }
-        return str.length()>0?String.format(" AND ( 1=2 %s )" ,str.toString()):str.toString();
+        if (CommTool.listSize(orgList) > 0)
+            str.append(" and "+ WODispatchPlanInfoTable.R_INFO.CREATOR_ORG + " in " + CommTool.list2QueryIn(orgList));
+
+        if (!StringUtils.isEmpty(this.title))
+            str.append(" and (title like '%" + this.title + "%' )");
+        return str.toString();
     }
 }