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