From 0c553fadbaa50a322fbe283ef66cd32d8d26f98b Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期五, 29 十一月 2024 17:38:56 +0800
Subject: [PATCH] 1、获取当前业务类型下的数据权限相关信息接口。 2、保存数据权限数据接口。 3、删除数据权限接口。 4、使用当前用户的类型查询用户接口。
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java | 6
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java | 15 +
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java | 315 +++++++++++++++++++++++++++++++++++
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsDataAuthServiceI.java | 30 +++
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/constant/IRightConstant.java | 24 ++
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/OsDataAuthDTO.java | 33 +++
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java | 19 ++
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java | 95 ++++++++++
8 files changed, 537 insertions(+), 0 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/constant/IRightConstant.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/constant/IRightConstant.java
new file mode 100644
index 0000000..cb56f9a
--- /dev/null
+++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/constant/IRightConstant.java
@@ -0,0 +1,24 @@
+package com.vci.constant;
+
+public class IRightConstant {
+ //鍏ㄩ儴鏈夋潈
+ public static final String RULETYPE_ALL_HAS = "0";
+ //鍏佽瑙勫垯
+ public static final String RULETYPE__HAS = "1";
+ //鍏ㄩ儴鏃犳潈
+ public static final String RULETYPE_ALL_NOTHAS = "2";
+ //鎷掔粷瑙勫垯
+ public static final String RULETYPE__NOTHAS = "3";
+ //鐢ㄦ埛
+ public static final String User = "user";
+ //鐢ㄦ埛缁�
+ public static final String UserGroup = "userGroup";
+ //瑙掕壊
+ public static final String Role = "role";
+
+ //鎿嶄綔
+ public static final String OPS="query,add,edit,remove,choose,choosedoc,cpdoc,pastedoc,imp,analyze,exp,rev,transfer,del,imp,ptop.add ,ptop.del,ptop.mody,lc.begin,lc.end";
+ // public static final String OPS_ORDINARY="query,add,edit,remove,choose,choosedoc,cpdoc,pastedoc,imp,analyze,exp,rev,transfer,del,imp";
+ public static final String OPS_ORDINARY="query";
+ public static final String OPS_RELATION_LIFECYCLE="ptop.add ,ptop.del,ptop.mody,lc.begin,lc.end";
+}
diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/OsDataAuthDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/OsDataAuthDTO.java
new file mode 100644
index 0000000..a2b0bf4
--- /dev/null
+++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/OsDataAuthDTO.java
@@ -0,0 +1,33 @@
+package com.vci.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.vci.starter.web.util.VciDateUtil;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鏁版嵁鏉冮檺浼犺緭瀵硅薄
+ * @author yuxc
+ * @date 2024/11/26
+ */
+@Data
+public class OsDataAuthDTO implements java.io.Serializable {
+
+ /**
+ * 绂佹淇敼杩欎釜鍊�
+ */
+ private static final long serialVersionUID = 814342725285373312L;
+
+ // 璁剧疆Table鍒楀ご淇℃伅
+ List<String> tableHeader;
+
+ //鍒楄〃鏁版嵁
+ List<Map> rowList;
+
+ //action鐨刴ap
+ Map<String, String> actionMap;
+
+}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java
index 47cb4ec..5741c4f 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java
@@ -271,4 +271,10 @@
*/
List<String> queryUserNameByRoleType(String roleType) throws PLException;
+ /**
+ * 浣跨敤褰撳墠鐢ㄦ埛鐨勭被鍨嬫煡璇㈢敤鎴�
+ * @return
+ * @throws VciBaseException
+ */
+ List<SmUserVO> listUserByUserType() throws PLException;
}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java
index 8c2133d..701a213 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java
@@ -1664,4 +1664,19 @@
return userNameList;
}
+ /**
+ * 浣跨敤褰撳墠鐢ㄦ埛鐨勭被鍨嬫煡璇㈢敤鎴�
+ * @return
+ * @throws VciBaseException
+ */
+ @Override
+ public List<SmUserVO> listUserByUserType() throws PLException {
+ try {
+ UserInfo[] userInfo = platformClientUtil.getFrameworkService().fetchUserInfoByType(Short.parseShort(WebUtil.getCurrentUserSessionInfo().getUsertype()));
+ return userInfoArr2VO(userInfo);
+ } catch (PLException e) {
+ throw new VciBaseException("鐧诲綍鏃讹紝鑾峰彇鐢ㄦ埛淇℃伅澶辫触锛�"+e.getMessage());
+ }
+ }
+
}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java
index f3d796e..03d28aa 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java
@@ -174,6 +174,25 @@
}
}
+
+ /**
+ * 浣跨敤褰撳墠鐢ㄦ埛鐨勭被鍨嬫煡璇㈢敤鎴�
+ * @return
+ * @throws VciBaseException
+ */
+ @RequestMapping(value = "/listUserByUserType",method = RequestMethod.GET)
+ public BaseResult<List<SmUserVO>> listUserByUserType() throws VciBaseException{
+ try {
+ List<SmUserVO> smUserVOList = userQueryService.listUserByUserType();
+ return BaseResult.dataList(smUserVOList);
+ }catch (Exception e){
+ e.printStackTrace();
+ String exceptionMessage = "閫氳繃褰撳墠鐢ㄦ埛鐨勭被鍨嬫潵鑾峰彇鐢ㄦ埛鏁版嵁鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+ logger.error(exceptionMessage);
+ return BaseResult.fail(exceptionMessage);
+ }
+ }
+
/**
* 浣跨敤瑙掕壊鑾峰彇涓嶅湪鏌愪釜瑙掕壊涓嬬殑鐢ㄦ埛鍙傜収鍒楄〃
* @param pkRole 瑙掕壊鐨勪富閿紝涓嶈兘涓虹┖
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java
new file mode 100644
index 0000000..0186199
--- /dev/null
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java
@@ -0,0 +1,95 @@
+package com.vci.web.controller;
+
+import com.vci.corba.common.PLException;
+import com.vci.corba.framework.data.GrandValue;
+import com.vci.dto.OsPvolumeDTO;
+import com.vci.starter.web.annotation.log.VciBusinessLog;
+import com.vci.starter.web.pagemodel.BaseResult;
+import com.vci.starter.web.util.ControllerUtil;
+import com.vci.starter.web.util.VciBaseUtil;
+import com.vci.web.service.OsDataAuthServiceI;
+import com.vci.web.util.Func;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鏁版嵁鏉冮檺鐨勬帶鍒跺櫒
+ * @author yuxc
+ * @date 2024-11-25
+ */
+@RequestMapping("/dataAuthController")
+@RestController
+public class OsDataAuthController {
+
+ /**
+ * 鏁版嵁鏉冮檺鏈嶅姟
+ */
+ @Autowired
+ private OsDataAuthServiceI osDataAuthServiceI;
+
+
+ /**
+ * 鏃ュ織
+ */
+ private Logger logger = LoggerFactory.getLogger(getClass());
+
+ /**
+ * 鑾峰彇褰撳墠涓氬姟绫诲瀷涓嬬殑鏁版嵁鏉冮檺鐩稿叧淇℃伅
+ * @return 鏁版嵁
+ */
+ @GetMapping("/getData")
+ public BaseResult getData(String typeName){
+ try {
+ return osDataAuthServiceI.getData(typeName);
+ } catch (PLException e) {
+ BaseResult objectBaseResult = new BaseResult<>();
+ objectBaseResult.setCode(Integer.parseInt(e.code));
+ objectBaseResult.setMsg(Arrays.toString(e.messages));
+ return objectBaseResult;
+ }
+ }
+
+
+ /**
+ * 淇濆瓨鏁版嵁鏉冮檺鏁版嵁
+ * @return 淇濆瓨缁撴灉
+ */
+ @PostMapping("/saveGrand")
+ public BaseResult saveGrand(@RequestBody List<GrandValue> grandValues){
+ try {
+ return osDataAuthServiceI.saveGrand(grandValues);
+ }catch (Exception e){
+ e.printStackTrace();
+ String exceptionMessage = "淇濆瓨鏁版嵁鏉冮檺鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+ logger.error(exceptionMessage);
+ return BaseResult.fail(exceptionMessage);
+ }
+ }
+
+ /**
+ * 鍒犻櫎鏁版嵁鏉冮檺
+ * @param typeName 涓氬姟绫诲瀷
+ * @param ruleName 瑙勫垯鍚嶇О
+ * @return 鍒犻櫎缁撴灉
+ */
+ @DeleteMapping("/deleteTypeRuleGrand")
+ public BaseResult deleteTypeRuleGrand(String typeName,String ruleName){
+ try {
+ return osDataAuthServiceI.deleteTypeRuleGrand(typeName,ruleName);
+ }catch (Exception e){
+ e.printStackTrace();
+ String exceptionMessage = "鍒犻櫎鏁版嵁鏉冮檺鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+ logger.error(exceptionMessage);
+ return BaseResult.fail(exceptionMessage);
+ }
+ }
+}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsDataAuthServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsDataAuthServiceI.java
new file mode 100644
index 0000000..e57a2a1
--- /dev/null
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsDataAuthServiceI.java
@@ -0,0 +1,30 @@
+package com.vci.web.service;
+
+import com.vci.corba.common.PLException;
+import com.vci.corba.framework.data.GrandValue;
+import com.vci.starter.web.pagemodel.BaseResult;
+
+import java.util.List;
+
+/**
+ * 鏁版嵁鏉冮檺鐨勬帶鍒跺櫒
+ * @author yuxc
+ * @date 2024-11-25
+ */
+public interface OsDataAuthServiceI {
+
+ BaseResult getData(String typeName) throws PLException;
+ /**
+ * 淇濆瓨鏁版嵁鏉冮檺鏁版嵁
+ * @return 淇濆瓨缁撴灉
+ */
+ BaseResult saveGrand(List<GrandValue> grandValues) throws PLException;
+
+ /**
+ * 鍒犻櫎鏁版嵁鏉冮檺
+ * @param typeName 涓氬姟绫诲瀷
+ * @param ruleName 瑙勫垯鍚嶇О
+ * @return 鍒犻櫎缁撴灉
+ */
+ BaseResult deleteTypeRuleGrand(String typeName, String ruleName) throws PLException;
+}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java
new file mode 100644
index 0000000..1738a7c
--- /dev/null
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java
@@ -0,0 +1,315 @@
+package com.vci.web.service.impl;
+
+import com.vci.common.qt.object.Symbol;
+import com.vci.constant.IRightConstant;
+import com.vci.corba.common.PLException;
+import com.vci.corba.framework.data.GrandValue;
+import com.vci.corba.omd.btm.BizType;
+import com.vci.corba.omd.lcm.LifeCycle;
+import com.vci.corba.omd.lcm.TransitionVO;
+import com.vci.corba.omd.ltm.LinkType;
+import com.vci.corba.portal.data.PLAction;
+import com.vci.dto.OsDataAuthDTO;
+import com.vci.starter.web.exception.VciBaseException;
+import com.vci.starter.web.pagemodel.BaseResult;
+import com.vci.web.service.OsDataAuthServiceI;
+import com.vci.web.util.PlatformClientUtil;
+import com.vci.web.util.WebUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 鏁版嵁鏉冮檺鐨勬帶鍒跺櫒
+ * @author yuxc
+ * @date 2024-11-25
+ */
+@Service
+public class OsDataAuthServiceImpl implements OsDataAuthServiceI {
+
+ @Autowired
+ private PlatformClientUtil platformClientUtil;
+
+ @Override
+ public BaseResult getData(String typeName) throws PLException {
+ GrandValue[] grandValues = platformClientUtil.getFrameworkService().queryGrand(typeName);
+ // 璁剧疆Table鍒楀ご淇℃伅
+ List<String> tableHeader = new ArrayList<String>();
+ //鑾峰彇琛ㄥご鏁版嵁
+ getTableHeader(grandValues, tableHeader, typeName);
+ //鍒楄〃鏁版嵁
+ List<Map> rowList = new ArrayList<>();
+ //鑾峰彇鍒楄〃鏁版嵁
+ getTableData(grandValues, tableHeader, typeName, rowList);
+ Map<String, String> actionsMap = getAllActionsByType2(typeName, "business");
+ OsDataAuthDTO tableData = new OsDataAuthDTO();
+ tableData.setTableHeader(tableHeader);
+ tableData.setRowList(rowList);
+ tableData.setActionMap(actionsMap);
+ return BaseResult.success(tableData);
+ }
+ /**
+ * 淇濆瓨鏁版嵁鏉冮檺鏁版嵁
+ * @return 淇濆瓨缁撴灉
+ */
+ @Override
+ public BaseResult saveGrand(List<GrandValue> grandValues) throws PLException {
+ boolean isTrue = false;
+ isTrue = platformClientUtil.getFrameworkService()
+ .deleteTypeRuleGrand(grandValues.get(0).identifier.split("_")[0], grandValues.get(0).ruleName);
+ if(!isTrue){
+ throw new VciBaseException("鏁版嵁鏉冮檺鍒犻櫎澶辫触锛�");
+ }
+ // save
+ boolean isTrue_add = false;
+ try {
+ isTrue_add = platformClientUtil.getFrameworkService()
+ .saveGrand(grandValues.toArray(new GrandValue[grandValues.size()]));
+ } catch (Exception e) {
+ throw new VciBaseException("鏁版嵁鏉冮檺淇濆瓨澶辫触锛�");
+ }
+ if (isTrue_add) {
+ return BaseResult.success("淇濆瓨鎴愬姛锛�");
+ }
+ return BaseResult.success("淇濆瓨澶辫触锛�");
+ }
+ /**
+ * 鍒犻櫎鏁版嵁鏉冮檺
+ * @param typeName 涓氬姟绫诲瀷
+ * @param ruleName 瑙勫垯鍚嶇О
+ * @return 鍒犻櫎缁撴灉
+ */
+ @Override
+ public BaseResult deleteTypeRuleGrand(String typeName, String ruleName) throws PLException {
+ // DataBase
+ boolean isTrue = platformClientUtil.getFrameworkService().deleteTypeRuleGrand(typeName,
+ ruleName);
+ if (!isTrue) {
+ return BaseResult.success("鍒犻櫎澶辫触锛�");
+ }
+ return BaseResult.success("鍒犻櫎鎴愬姛锛�");
+ }
+
+ //add by caill start 2015 12.18 灏嗘煡璇㈠嚭鏉ョ殑action鏀惧叆鍒癿ap涓�
+ private Map<String, String> getAllActionsByType2(String typeName, String type) throws PLException {
+ Map<String,String> boActions2 = new HashMap<String,String>();
+ boActions2.put("鏌ヨ", "query");
+ PLAction[] allActions = platformClientUtil.getUIService().getAllPLActionEntityByType(typeName);
+ if (allActions == null || allActions.length == 0) {
+ return boActions2;
+ }
+ for (int i = 0; i < allActions.length; i++) {
+ if(allActions[i].plTypeType.equals(type)){
+ boActions2.put(allActions[i].plName,allActions[i].plCode); //灏嗕腑鏂囨樉绀轰綔涓簁ey,鑻辨枃鏄剧ず浣滀负value鏀惧埌map涓�
+ }
+ }
+ return boActions2;
+ }
+
+ private void getTableData(GrandValue[] grandValues, List<String> tableHeader, String typeName, List<Map> rowList) throws PLException {
+ // 渚濇嵁瑙勫垯鍚嶇О锛岃鍒欏垎绫�
+ Map<String, List<GrandValue>> splitRuleMap = splitRuleByName(grandValues);
+ // 渚濇嵁瑙勫垯鍚嶇О
+// int row = 0;
+ // 璁剧疆瑙勫垯璁板綍琛屾暟
+// ruleModel.setRowCount(splitRuleMap.size());
+ // add by caill start 2016.1.11 寰楀埌btm銆乴ink銆乴ifeCyles
+ LinkType[] links = null;
+ LifeCycle lifeCycle = null;
+ BizType btm = null;
+ try {
+ btm = platformClientUtil.getBtmService().getBizTypeByName(typeName);
+ links = platformClientUtil.getLinkTypeService().getLinkTypeByBtmName(btm.name, Symbol.FROM);
+ LifeCycle[] lifeCyles = platformClientUtil.getLifeCycleService().getLifeCycles();
+ for (int m = 0; m < lifeCyles.length; m++) {
+ if (lifeCyles[m].name.equals(btm.lifeCycle)) {
+ lifeCycle = lifeCyles[m];
+ break;
+ }
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+
+ // add by caill end
+// ActionConstants act = new ActionConstants();
+ PLAction[] allActions = platformClientUtil.getUIService().getAllPLActionEntityByType(typeName);
+// platformClientUtil.getUIService().getAllPLActionEntityByType(typeName);
+ for (Iterator<Map.Entry<String, List<GrandValue>>> iter = splitRuleMap.entrySet().iterator(); iter.hasNext();) {
+ Map.Entry<String, List<GrandValue>> entry = iter.next();
+ List<GrandValue> rules = entry.getValue();
+
+ Map<Object, Object> columnData = new HashMap<>();
+ // 澧炲姞椤甸潰缂撳瓨
+// ruleModel.setConditionValue(row, rules);
+ columnData.put("rules",rules.get(0));
+ // add by caill start 2015 12.18 灏嗘煡鍑虹殑action鏀惧埌map涓紝娉ㄦ剰涓嶈钀戒笅鈥滄煡璇⑩��
+ Map<String, String> actionMap = new HashMap<String, String>();
+ actionMap.put("query", "鏌ヨ"); // 灏嗘搷浣滀腑鐨剄uery鏀惧叆actionMap涓�
+ for (int i = 0; i < allActions.length; i++) {
+ if (allActions[i].plTypeType.equals("business")) {
+ actionMap.put(allActions[i].plCode, allActions[i].plName); // 灏嗘搷浣滄斁鍏ctionMap涓�
+ }
+ }
+ for (int j = 0; j < links.length; j++) {
+ for (int i = 0; i < allActions.length; i++) {
+ if (allActions[i].plTypeType.equals("link")) {
+ actionMap.put(links[j].name + "." + allActions[i].plCode,
+ links[j].name + "." + allActions[i].plName);// 灏嗗叧绯绘斁鍏ctionMap涓�
+ }
+ }
+ actionMap.put(links[j].name + "." + "query", links[j].name + "." + "鏌ヨ"); // 灏嗗叧绯讳腑鐨剄uery鏀惧叆actionMap涓�
+ }
+
+ TransitionVO[] transitions = lifeCycle != null ? lifeCycle.routes : new TransitionVO[0];
+ for (int j = 0; j < transitions.length; j++) {
+ String name = lifeCycle.name + "." + transitions[j].connect;
+ actionMap.put(name, name); // 灏嗚穬杩佹斁鍏ctionMap涓�
+ }
+ // add by caill end
+ for (int j = 0; j < rules.size(); j++) {
+ // 瑙勫垯鍚嶅拰绫诲瀷
+// ruleModel.setValueAt(rules.get(j).ruleName, row, 0);
+ columnData.put(0, rules.get(j).ruleName);
+ if (rules.get(j).ruleType.equals(IRightConstant.RULETYPE__HAS)) {
+ columnData.put(1, "鍏佽瑙勫垯");
+ } else if (rules.get(j).ruleType.equals(IRightConstant.RULETYPE__NOTHAS)) {
+ columnData.put(1, "鎷掔粷瑙勫垯");
+ } else if (rules.get(j).ruleType.equals(IRightConstant.RULETYPE_ALL_HAS)) {
+ columnData.put(1, "鍏ㄩ儴鏈夋潈");
+ } else {
+ columnData.put(1, "鍏ㄩ儴鏃犳潈");
+ }
+ // 鎸囧畾鐨勬搷浣滆祴鍊�
+// TableColumnModel columnModel = funclet.getRightMainPanel().getRuleTable().getColumnModel();
+ int start = rules.get(j).identifier.lastIndexOf("_") + 1;
+ String op = rules.get(j).identifier.substring(start, rules.get(j).identifier.length());
+ // add by caill start 2015.12.18 閬嶅巻map锛屾牴鎹嫳鏂囧悕绉版壘鍒扮浉搴旂殑涓枃鍚嶇О锛屽苟鏍规嵁涓枃鍚嶇О鎵惧埌瀵瑰簲鐨勫垪
+ String headerName = null;
+ Set<String> keys = null;
+ if (actionMap.size() > 0) {
+ keys = actionMap.keySet();
+ }
+ if (keys.size() != 0) {
+ for (Iterator<String> iterator = keys.iterator(); iterator.hasNext();) {
+ String key = iterator.next();
+ if (op.equals(key)) {
+ headerName = actionMap.get(key);
+ break;
+ }
+ }
+ }
+
+ int columnIndex = -1;
+ if (headerName != null) {
+// columnIndex = columnModel.getColumnIndex(headerName);
+ columnIndex = tableHeader.indexOf(headerName);
+ }
+ // add by caill end
+ // int columnIndex = columnModel.getColumnIndex(op);
+ if (columnIndex >= 0) {
+// ruleModel.setValueAt(rules.get(j).isGrand == '1' ? true : false, row, columnIndex);
+ columnData.put(columnIndex, rules.get(j).isGrand == '1' ? true : false);
+ }
+
+ }
+// ++row;
+ rowList.add(columnData);
+ }
+ }
+
+ private void getTableHeader(GrandValue[] grandValues, List<String> tableHeader, String typeName) throws PLException {
+ // 鎿嶄綔淇℃伅
+ List<String> ops = new ArrayList<String>();
+ for (int i = 0; i < grandValues.length; i++) {
+ int start = grandValues[i].identifier.lastIndexOf("_") + 1;
+ String op = grandValues[i].identifier.substring(start, grandValues[i].identifier.length());
+ if (!ops.contains(op)) {
+ ops.add(op);
+ }
+ }
+ // 鎿嶄綔淇℃伅
+ String[] operations = ops.toArray(new String[ops.size()]);
+// List<String> tablerule = new ArrayList<String>();
+ tableHeader.add("瑙勫垯鍚嶇О");
+ tableHeader.add("瑙勫垯绫诲瀷");
+ PLAction[] allActions = platformClientUtil.getUIService().getAllPLActionEntityByType(typeName);
+
+ for (int m = 0; m < operations.length; m++) {
+ if (allActions != null && allActions.length != 0) {
+ for (int i = 0; i < allActions.length; i++) {
+ if (allActions[i].plCode.equals(operations[m])) {
+ tableHeader.add(allActions[i].plName);
+ break;
+ } else if (operations[m].endsWith("." + allActions[i].plCode)) {
+ int index = operations[m].indexOf("." + allActions[i].plCode);
+ StringBuilder sb = new StringBuilder(operations[m]);
+ StringBuilder actionChina = sb.replace(index + 1, operations[m].length(), allActions[i].plName);
+ tableHeader.add(actionChina.toString());
+ break;
+ } else if (operations[m].equals("query")) {
+ tableHeader.add("鏌ヨ"); // 娉ㄦ剰涓嶈钀戒笅鍐欐鐨勨�滄煡璇⑩��
+ break;
+ } else if (operations[m].endsWith(".query")) {
+ int index = operations[m].indexOf(".query");
+ StringBuilder sb = new StringBuilder(operations[m]);
+ StringBuilder actionChina = sb.replace(index + 1, operations[m].length(), "鏌ヨ");
+ tableHeader.add(actionChina.toString());
+ break;
+ }
+
+ }
+ } else {
+ if (operations[m].equals("query")) {
+ tableHeader.add("鏌ヨ"); // 娉ㄦ剰涓嶈钀戒笅鍐欐鐨勨�滄煡璇⑩��
+ }
+ if (operations[m].endsWith(".query")) {
+ int index = operations[m].indexOf(".query");
+ StringBuilder sb = new StringBuilder(operations[m]);
+ StringBuilder actionChina = sb.replace(index + 1, operations[m].length(), "鏌ヨ");
+ tableHeader.add(actionChina.toString());
+ }
+ }
+
+ }
+
+ LifeCycle lifeCycle = null;
+ BizType btm = null;
+ try {
+ btm = platformClientUtil.getBtmService().getBizTypeByName(typeName);
+ LifeCycle[] lifeCyles = platformClientUtil.getLifeCycleService().getLifeCycles();
+ for (int j = 0; j < lifeCyles.length; j++) {
+ if (lifeCyles[j].name.equals(btm.lifeCycle)) {
+ lifeCycle = lifeCyles[j];
+ break;
+ }
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ TransitionVO[] transitions = lifeCycle != null ? lifeCycle.routes : new TransitionVO[0];
+ for (int j = 0; j < transitions.length; j++) {
+ tableHeader.add(lifeCycle.name + "." + transitions[j].connect);
+ }
+ }
+
+ private Map<String, List<GrandValue>> splitRuleByName(GrandValue[] values) {
+ Map<String, List<GrandValue>> splitRuleMap = new HashMap<String, List<GrandValue>>();
+ for (int i = 0; i < values.length; i++) {
+ if (splitRuleMap.get(values[i].ruleName) == null) {
+ List<GrandValue> ruleOfOneName = new ArrayList<GrandValue>();
+ ruleOfOneName.add(values[i]);
+ splitRuleMap.put(values[i].ruleName, ruleOfOneName);
+ } else {
+ splitRuleMap.get(values[i].ruleName).add(values[i]);
+ }
+
+ }
+ return splitRuleMap;
+
+ }
+
+
+}
--
Gitblit v1.9.3