From 2325d4931dbc4b03fda648b103cd9e62bddf13b5 Mon Sep 17 00:00:00 2001
From: zhangxp <zhangxp@chicecm.com>
Date: 星期四, 15 六月 2023 17:56:33 +0800
Subject: [PATCH] ‘发布组件’
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 676 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 489 insertions(+), 187 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index 61d5c0e..606c7e8 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -1,6 +1,7 @@
package com.vci.ubcs.code.service.impl;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
@@ -8,12 +9,12 @@
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant;
+import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
import com.vci.ubcs.code.dto.CodeDeleteBatchDTO;
import com.vci.ubcs.code.dto.CodeOrderDTO;
import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
import com.vci.ubcs.code.entity.*;
import com.vci.ubcs.code.enumpack.*;
-import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper;
import com.vci.ubcs.code.mapper.CodeWupinMapper;
import com.vci.ubcs.code.mapper.CommonsMapper;
import com.vci.ubcs.code.service.*;
@@ -21,14 +22,18 @@
import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
import com.vci.ubcs.code.vo.pagemodel.UITablePageVO;
import com.vci.ubcs.code.vo.pagemodel.*;
-import com.vci.ubcs.omd.feign.IBtmTypeClient;
-import com.vci.ubcs.omd.feign.IEnumClient;
-import com.vci.ubcs.omd.feign.IRevisionRuleClient;
+import com.vci.ubcs.omd.constant.BtmTypeLcStatusConstant;
+import com.vci.ubcs.omd.entity.BtmTypeAttribute;
+import com.vci.ubcs.omd.cache.EnumCache;
+import com.vci.ubcs.omd.feign.*;
+import com.vci.ubcs.omd.utils.VciOmdUtil;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.omd.vo.EnumVO;
import com.vci.ubcs.omd.vo.RevisionRuleVO;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.revision.model.BaseModel;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
@@ -40,30 +45,34 @@
import com.vci.ubcs.starter.web.toolmodel.DateConverter;
import com.vci.ubcs.starter.web.util.*;
import com.vci.ubcs.system.entity.DictBiz;
+import com.vci.ubcs.system.entity.Menu;
import com.vci.ubcs.system.feign.IDictBizClient;
+import com.vci.ubcs.system.feign.ISysClient;
+import com.vci.ubcs.system.user.entity.User;
+import com.vci.ubcs.system.user.feign.IUserClient;
import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
import oracle.sql.TIMESTAMP;
+import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringPool;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.Cache;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
-import java.sql.SQLException;
-import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
@@ -90,28 +99,40 @@
*/
@Resource
private CodeClstemplateServiceImpl templateService;
- /**
- * 妯℃澘鐨勬湇鍔�
- */
- @Resource
- private CodeOsbtmtypeMapper codeOsbtmtypeMapper;
- @Resource
- private CodeOsattributeServiceImpl attributeService;
+
+
/**
* 鐢熸垚缂栫爜鐨勬湇鍔�
*/
@Resource
private MdmProductCodeService productCodeService;
+
/**
* 鍙緭鍙�夌殑鏈嶅姟
*/
@Resource
IDictBizClient iDictBizClient;
/**
+ * 绯荤粺鐨勬湇鍔�
+ */
+ @Resource
+ ISysClient iSysClient;
+ /**
+ * 绯荤粺鐨勬湇鍔�
+ */
+ @Resource
+ private IWebSecretClient secretService;
+ /**
+ * 鐢ㄦ埛鏈嶅姟
+ */
+ @Resource
+ IUserClient iUserClient;
+ /**
* 瀛楀吀鐨勬湇鍔�
*/
@Resource
IEnumClient enumClient;
+
/**
* 鍏紡鐨勬湇鍔�
*/
@@ -248,7 +269,7 @@
/**
* 鏇挎崲瀛楃
*/
- public static final String SPECIAL_CHAR = "VCI";
+ public static final String SPECIAL_CHAR = "VCI";
// @Autowired
// private CodeOsbtmtypeMapper codeOsbtmtypeMapper;----
@@ -294,7 +315,7 @@
// Dict dict = new Dict();
// dict.setParentId(Long.valueOf(attrVO.getEnumid()));
R<List<EnumVO>> list = enumClient.getList(attrVO.getEnumId());
- if(list.isSuccess()){
+ if (list.isSuccess()) {
for (EnumVO datum : list.getData()) {
KeyValue keyValue = new KeyValue();
keyValue.setKey(datum.getItemValue());
@@ -310,16 +331,26 @@
*
* @param baseModelDTO 鏁版嵁浼犺緭瀵硅薄
*/
+ @Transactional
@Override
public void changeStatus(BaseModelDTO baseModelDTO) {
VciBaseUtil.alertNotNull(baseModelDTO, "鏁版嵁淇℃伅", baseModelDTO.getOid(), "涓婚敭", baseModelDTO.getBtmname(), "涓氬姟绫诲瀷", baseModelDTO.getLcStatus(), "鐩爣鐘舵��");
List<String> oids = VciBaseUtil.str2List(baseModelDTO.getOid());
// List<ClientBusinessObject> cboList = boService.selectCBOByOidCollection(oids, baseModelDTO.getBtmname());
- //鎻掍釜鐐� 涓氬姟绫诲瀷瀹屾垚鍚庨渶瑕佷慨鏀�
- QueryWrapper<CodeOsbtmtypeEntity> wrapper = new QueryWrapper<>();
+ // TODO 鎻掍釜鐐� 涓氬姟绫诲瀷瀹屾垚鍚庨渶瑕佷慨鏀�
+ QueryWrapper<BtmTypeVO> wrapper = new QueryWrapper<>();
wrapper.eq("BTMNAME",baseModelDTO.getBtmname());
wrapper.in("OID",oids);
- List<CodeOsbtmtypeEntity> cboList = codeOsbtmtypeMapper.selectList(wrapper);
+ // TODO 寰呭畬鍠�
+ //鎻掍釜鐐� 涓氬姟绫诲瀷瀹屾垚鍚庨渶瑕佷慨鏀�
+// QueryWrapper<BtmTypeVO> wrapper = new QueryWrapper<>();
+ List<BaseModel> baseModels = new ArrayList<>();
+ baseModels = selectByTypeAndOid(baseModelDTO.getBtmname(), baseModelDTO.getOid());
+ if(baseModels.size() == 0){
+ throw new VciBaseException("鏈煡璇㈠埌鐩稿叧鏁版嵁銆�");
+ }
+ // 寰呭畬鍠�
+ List<BtmTypeVO> cboList = null; // btmTypeClient.selectList(wrapper);
//杩橀渶瑕佷慨鏀筧llCode鐨勭敓鍛藉懆鏈�
// Map<String, String> conditionMap = new HashMap<>();
QueryWrapper<CodeAllCode> allCodeWrapper = new QueryWrapper<>();
@@ -331,16 +362,29 @@
// List<ClientBusinessObject> codeCbos = boService.queryCBO(MdmBtmTypeConstant.CODE_ALL_CODE, conditionMap);
// 鍥炴敹闇�瑕佷笟鍔℃暟鎹垹闄�
if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) {
-// BatchCBO batchCBO = new BatchCBO();
-// batchCBO.getDeleteCbos().addAll(cboList);
- codeOsbtmtypeMapper.deleteBatchIds(cboList);
-// boService.persistenceBatch(batchCBO);
- } else {
-// lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus());
- }
-// lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus());
- }
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(baseModelDTO.getBtmname()));
+// String referTable = listR.getData().get(0).getTableName();
+ commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(),VciBaseUtil.toInSql(baseModelDTO.getOid()));
+ // BatchCBO batchCBO = new BatchCBO();
+ // batchCBO.getDeleteCbos().addAll(cboList);
+ // TODO 寰呭畬鍠�
+ //btmTypeClient.deleteBatchIds(cboList);
+
+ //boService.persistenceBatch(batchCBO);
+ } else {
+ for (BaseModel baseModel : baseModels) {
+ baseModel.setLcStatus(baseModelDTO.getLcStatus());
+ }
+ updateBatchByBaseModel(baseModelDTO.getBtmname(),baseModels);
+ // lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus());
+ }
+ for (CodeAllCode codeCbo : codeCbos) {
+ codeCbo.setLcStatus(baseModelDTO.getLcStatus());
+ }
+ codeAllCodeService.updateBatchById(codeCbos);
+ // lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus());
+ }
/**
* 鐢宠鍗曚竴缂栫爜
@@ -605,9 +649,10 @@
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
if (!CollectionUtils.isEmpty(conditionMap)) {
- //琛ㄩ渶瑕佹敼
// final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "};
- final String[] sql = {"select count(*) from pl_code_wupin t where 1 = 1 "};
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmtypeid()));
+// String referTable = VciBaseUtil.getTableName(referVO.getReferType());
+ final String[] sql = {"select count(*) from "+ listR.getData().get(0).getTableName() +" t where 1 = 1 "};
conditionMap.forEach((key, value) -> {
sql[0] += " and " + key + " = " + value;
});
@@ -777,6 +822,11 @@
data.put(CODE_TEMPLATE_OID_FIELD,templateVO.getOid());
data.put(CODE_FULL_PATH_FILED,fullPath);
cbo.setData(data);
+ cbo.setOid(VciBaseUtil.getPk());
+ cbo.setCreateTime(new Date());
+ cbo.setLastModifyTime(new Date());
+ cbo.setCreator(AuthUtil.getUser().getUserName());
+ cbo.setLastModifier(AuthUtil.getUser().getUserName());
// cbo.setCodeclsfid(classifyFullInfo.getCurrentClassifyVO().getOid());
// cbo.setTemplateOid(templateVO.getOid());
// cbo.setCodeclsfpath(fullPath);
@@ -789,7 +839,7 @@
// cbo.setLcStatus("Editing");
//// cbo.setLcStatus(lifeCycleVO.getStartStatus());
// } else {
- cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
+ cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
// }
} else {
cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
@@ -798,9 +848,7 @@
}
int secret = VciBaseUtil.getInt(String.valueOf(cbo.getSecretGrade()));
- //鎻掍釜鐐癸紝鍚庣画鐪嬪瘑绾ф湇鍔℃槸鍚﹀彲鐢�
-// if (secret == 0 || !secretService.checkDataSecret(secret)) {
- if (secret == 0 ) {
+ if (secret == 0 || !secretService.checkDataSecret(secret).getData()) {
Integer userSecret = VciBaseUtil.getCurrentUserSecret();
// cbo.setAttributeValue(SECRET_FIELD, String.valueOf((userSecret == null || userSecret == 0) ? UserSecretEnum.NONE.getValue() : userSecret));
cbo.setSecretGrade(userSecret == null || userSecret == 0 ? UserSecretEnum.NONE.getValue() : userSecret);
@@ -825,12 +873,14 @@
btmName = btmName.trim().toLowerCase();
}
try {
- String keyPrefix = BTM_NAME.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
- String finalBtmName = btmName;
- return CacheUtil.get(BTM_INIT_CACHE, keyPrefix, btmName, () -> {
- BaseModel baseModel = createBaseModel(finalBtmName);
- return baseModel;
- });
+ String keyPrefix = BTM_INIT_CACHE.concat(StringPool.COLON).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
+// String finalBtmName = btmName;
+ Cache.ValueWrapper valueWrapper = CacheUtil.getCache(keyPrefix).get(keyPrefix.concat(String.valueOf(btmName)));
+ if(valueWrapper == null){
+ CacheUtil.getCache(keyPrefix).put(keyPrefix.concat(String.valueOf(btmName)), createBaseModel(btmName));
+ valueWrapper = CacheUtil.getCache(keyPrefix).get(keyPrefix.concat(String.valueOf(btmName)));
+ }
+ return (BaseModel) valueWrapper.get();
} catch (Exception e) {
logger.error("鍒涘缓涓氬姟绫诲瀷瀵硅薄",e);
throw new VciBaseException("initBtmError",new String[]{btmName});
@@ -937,15 +987,15 @@
}
}
- @Override
- public MdmUIInfoVO getFormDefineByTemplateOid(String templateOid, String codeClassifyOid) {
+ @Override
+ public MdmUIInfoVO getFormDefineByTemplateOid(String templateOid, String codeClassifyOid) {
CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(templateOid);
MdmUIInfoVO uiInfoVO = new MdmUIInfoVO();
uiInfoVO.setTemplateVO(templateVO);
uiInfoVO.setFormDefineVO(wrapperFormDefineByTemplate(templateVO, codeClassifyOid));
wrapperResemble(templateVO, uiInfoVO);
return uiInfoVO;
- }
+ }
/**
@@ -1064,6 +1114,7 @@
itemVO.setPrefix(attrVO.getPrefixValue());
itemVO.setSuffix(attrVO.getSuffixValue());
itemVO.setTooltips(attrVO.getExplain());
+ itemVO.setInputTip(attrVO.getInputTip());
itemVO.setSelectLibFlag(attrVO.getLibraryIdentification());
//鐪嬬湅鏄惁鏈夋灇涓�
if ((StringUtils.isNotBlank(attrVO.getEnumString())
@@ -1133,7 +1184,7 @@
//澶勭悊鎵�鏈夌殑鍒楋紝杩欎釜妯℃澘娌℃湁鍚堝苟鐨勮〃澶寸殑鎯呭喌
List<UITableFieldVO> fieldVOList = new ArrayList<>();
resembleAttrList.forEach(attrVO -> {
- UITableFieldVO tableFieldVO = templateAttr2TableField(attrVO,false);
+ UITableFieldVO tableFieldVO = templateAttr2TableField(attrVO, false);
tableFieldVO.setHidden(false);
fieldVOList.add(tableFieldVO);
});
@@ -1148,12 +1199,12 @@
/**
* 妯℃澘灞炴�ц浆鎹负琛ㄦ牸鏄剧ず鐨勯厤缃�
*
- * @param attrVO 妯℃澘灞炴��
+ * @param attrVO 妯℃澘灞炴��
* @param forEdit 鏄惁鏄紪杈戞墍闇�
* @return 琛ㄦ牸鐨勫瓧娈�
*/
@Override
- public UITableFieldVO templateAttr2TableField(CodeClassifyTemplateAttrVO attrVO,boolean forEdit) {
+ public UITableFieldVO templateAttr2TableField(CodeClassifyTemplateAttrVO attrVO, boolean forEdit) {
UITableFieldVO fieldVO = new UITableFieldVO();
if (SECRET_FILED.equalsIgnoreCase(attrVO.getId())) {
attrVO.setEnumId(MY_DATA_SECRET);
@@ -1164,9 +1215,9 @@
fieldVO.setSort(true);
fieldVO.setSortField(fieldVO.getField());
fieldVO.setQueryField(fieldVO.getField());
- if (forEdit){
+ if (forEdit) {
fieldVO.setHidden(!VciBaseUtil.getBoolean(attrVO.getFormDisplayFlag()));
- }else {
+ } else {
fieldVO.setHidden(!VciBaseUtil.getBoolean(attrVO.getTableDisplayFlag()));
}
if (attrVO.getAttrTableWidth() != null && attrVO.getAttrTableWidth() > 0) {
@@ -1186,9 +1237,9 @@
if (StringUtils.isBlank(attrVO.getEnumId())) {
fieldVO.setComboxKey(fieldVO.getField() + "_data");
}
- }else {
-// List<KeyValue> osEnumItemVOList= enumService.getEnum(attrVO.getEnumId());
-// fieldVO.setData(osEnumItemVOList);
+ } else {
+ List<KeyValue> osEnumItemVOList= VciOmdUtil.enumsToListKeyVale(EnumCache.getList(attrVO.getEnumId()));
+ fieldVO.setData(osEnumItemVOList);
}
}
//鐪嬫槸鍚︽湁鍙傜収
@@ -1266,10 +1317,10 @@
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
if (!CollectionUtils.isEmpty(conditionMap)) {
Map<String, String> andConditionMap = new HashMap<>();
- andConditionMap.put("lastr", "1");
- andConditionMap.put("lastv", "1");
+ andConditionMap.put("t.lastr", "1");
+ andConditionMap.put("t.lastv", "1");
if (StringUtils.isNotBlank(orderDTO.getOid())) {
- andConditionMap.put("oid", QueryOptionConstant.NOTEQUAL + orderDTO.getOid());
+ andConditionMap.put("t.oid", QueryOptionConstant.NOTEQUAL + orderDTO.getOid());
}
conditionMap.putAll(andConditionMap);
PageHelper pageHelper = new PageHelper(-1);
@@ -1356,8 +1407,8 @@
}
}
queryValue = String.format(temp, (trim ? value.trim() : value));
- temp = temp.replace("to_single_byte('%s')","to_single_byte(%s)");
- queryKey = String.format(temp, "t."+attrId);
+ temp = temp.replace("to_single_byte('%s')", "to_single_byte(%s)");
+ queryKey = String.format(temp, "t." + attrId);
conditionMap.put(queryKey, QueryOptionConstant.OR + queryValue);
}
}
@@ -1376,23 +1427,49 @@
public DataGrid<Map<String, String>> queryGrid(String btmType, CodeClassifyTemplateVO templateVO, Map<String, String> conditionMap, PageHelper pageHelper) {
CodeTemplateAttrSqlBO sqlBO = getSqlByTemplateVO(btmType, templateVO, conditionMap, pageHelper);
// List<Map> maps = boService.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
- List<Map> maps = commonsMapper.selectBySql(sqlBO.getSqlHasPage());
+ List<Map<String, String>> maps = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
+
DataGrid<Map<String, String>> dataGrid = new DataGrid<>();
List<Map<String, String>> dataList = new ArrayList<>();
if (!CollectionUtils.isEmpty(maps)) {
maps.stream().forEach(map -> {
Map<String, String> data = new HashMap<>();
- map.forEach((key, value) -> {
- data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
- });
+ for (String s : map.keySet()) {
+ data.put(s.toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
+ }
+// map.forEach((key, value) -> {
+// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
+// });
dataList.add(data);
});
+ wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), false);
+// maps.stream().forEach(map -> {
+// Map<String, String> data = new HashMap<>();
+//// map.forEach((key, value) -> {
+//// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
+//// });
+// for (String s : map.keySet()) {
+// data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
+// }
+// dataList.add(data);
+// });
}
+// dataGrid.setData(dataList);
+// if (!CollectionUtils.isEmpty(maps)) {
+// wrapperData(maps, templateVO, sqlBO.getSelectFieldList(), false);
+// maps.stream().forEach(map -> {
+// Map<String, String> data = new HashMap<>();
+//// map.forEach((key, value) -> {
+//// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
+//// });
+// for (String s : map.keySet()) {
+// data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
+// }
+// dataList.add(data);
+// });
dataGrid.setData(dataList);
- if (!CollectionUtils.isEmpty(dataList)) {
- wrapperData(dataGrid.getData(), templateVO, sqlBO.getSelectFieldList(), false);
- dataGrid.setTotal(Long.parseLong(commonsMapper.selectBySql(sqlBO.getSqlCount()).get(0).values().toArray()[0].toString()));
- }
+ dataGrid.setTotal(Long.parseLong(commonsMapper.selectBySql(sqlBO.getSqlCount()).get(0).values().toArray()[0].toString()));
+// }
return dataGrid;
}
@@ -1403,7 +1480,7 @@
* @param dataMap 鏁版嵁鐨勬槧灏�
* @param templateVO 妯℃澘鐨勫睘鎬�
* @param onlySelectAttrIdList 浠呬粎鏌ヨ鐨勫睘鎬у瓧娈�
- * @param form 琛ㄥ崟閲屼娇鐢�
+ * @param form 琛ㄥ崟閲屼娇鐢�
*/
@Override
public void wrapperData(List<Map<String, String>> dataMap, CodeClassifyTemplateVO templateVO,
@@ -1434,15 +1511,15 @@
//澶勭悊鏋氫妇
wrapperEnum(enumAttrVOs, data);
String lcstatus = data.get(VciQueryWrapperForDO.LC_STATUS_FIELD);
- String copyFromVersion = data.getOrDefault(COPY_FROM_VERSION,"");
+ String copyFromVersion = data.getOrDefault(COPY_FROM_VERSION, "");
if ((CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(lcstatus) || CodeDefaultLC.AUDITING.getValue().equalsIgnoreCase(lcstatus))
&& StringUtils.isBlank(copyFromVersion)
) {
data.put(VciQueryWrapperForDO.ID_FIELD, "******");
}
data.put(VciQueryWrapperForDO.LC_STATUS_FIELD_TEXT.toLowerCase(Locale.ROOT), CodeDefaultLC.getTextByValue(lcstatus));
- if(CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(lcstatus)
- && StringUtils.isNotBlank(copyFromVersion)){
+ if (CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(lcstatus)
+ && StringUtils.isNotBlank(copyFromVersion)) {
data.put(VciQueryWrapperForDO.LC_STATUS_FIELD_TEXT.toLowerCase(Locale.ROOT), "淇敼涓�");
}
if (data.containsKey("creator")) {
@@ -1453,17 +1530,27 @@
}
});
if (!CollectionUtils.isEmpty(userIds)) {
+ Map<String, User> userVOMap = new HashMap<>();
+ for (String userId : userIds) {
+ if (!StringUtils.isNumeric(userId)) {
+ continue;
+ }
+ User data = iUserClient.userInfoById(Long.valueOf(userId)).getData();
+ if (data != null) {
+ userVOMap.put(String.valueOf(data.getId()), data);
+ }
+ }
// Map<String, SmUserVO> userVOMap = Optional.ofNullable(userQueryService.listUserByUserIds(userIds)).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
-// dataMap.stream().forEach(data -> {
-// String creator = data.getOrDefault("creator", null);
-// if (StringUtils.isNotBlank(creator) && userVOMap.containsKey(creator.toLowerCase(Locale.ROOT))) {
-// data.put("creator", creator + "(" + userVOMap.get(creator.toLowerCase(Locale.ROOT)).getName() + ")");
-// }
-// String lastmodifier = data.getOrDefault("lastmodifier", null);
-// if (StringUtils.isNotBlank(lastmodifier) && userVOMap.containsKey(lastmodifier.toLowerCase(Locale.ROOT))) {
-// data.put("lastmodifier", lastmodifier + "(" + userVOMap.get(lastmodifier.toLowerCase(Locale.ROOT)).getName() + ")");
-// }
-// });
+ dataMap.stream().forEach(data -> {
+ String creator = data.getOrDefault("creator", null);
+ if (StringUtils.isNotBlank(creator) && userVOMap.containsKey(creator.toLowerCase(Locale.ROOT))) {
+ data.put("creator", creator + "(" + userVOMap.get(creator.toLowerCase(Locale.ROOT)).getRealName() + ")");
+ }
+ String lastmodifier = data.getOrDefault("lastmodifier", null);
+ if (StringUtils.isNotBlank(lastmodifier) && userVOMap.containsKey(lastmodifier.toLowerCase(Locale.ROOT))) {
+ data.put("lastmodifier", lastmodifier + "(" + userVOMap.get(lastmodifier.toLowerCase(Locale.ROOT)).getRealName() + ")");
+ }
+ });
}
}
@@ -1506,8 +1593,9 @@
//澶勭悊鏋氫妇鐨勫唴瀹癸紝涓轰簡鍏煎浠ュ墠鐨勬暟鎹�,濡傛灉鏁版嵁涓嶈兘浣跨敤鏋氫妇杞崲鐨勮瘽锛岄偅杩樻槸鏄剧ず浠ュ墠鐨勫��
if (!CollectionUtils.isEmpty(enumAttrVOs)) {
enumAttrVOs.stream().forEach(enumAttrVO -> {
+// String attrId = enumAttrVO.getId().toUpperCase(Locale.ROOT);
String attrId = enumAttrVO.getId().toLowerCase(Locale.ROOT);
- String oldValue = data.getOrDefault(attrId, null);
+ String oldValue = String.valueOf(data.getOrDefault(attrId, null));
if (StringUtils.isNotBlank(oldValue)) {
List<KeyValue> comboxKVs = listComboboxItems(enumAttrVO);
String newValue = oldValue;
@@ -1556,9 +1644,11 @@
referVO.setValueField(VciQueryWrapperForDO.OID_FIELD);
referVO.setTextField("name");
}
- //琛ㄩ渶瑕佹敼
+ //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referVO.getReferType()));
// String referTable = VciBaseUtil.getTableName(referVO.getReferType());
- String referTable = "pl_code_wupin";
+ String referTable = listR.getData().get(0).getTableName();
+// String referTable = "pl_code_classify";
String referTableNick = attrVO.getId() + "0";
String left = " left join " + referTable + " " + referTableNick + " on " + referTableNick + "." + referVO.getValueField() + " = t." + attrVO.getId();
joinTableList.put(attrVO.getId(), left);
@@ -1574,11 +1664,20 @@
selectFieldList.add(referTableNick + "." + showFieldInSource + " as " + referShowField);
});
}
- Optional.ofNullable(attributeService.getDefaultAttributeVOMap()).orElseGet(() -> new HashMap<>()).keySet().stream().forEach(attrId -> {
- if (!selectFieldList.contains(attrId) && !"secretgrade".equalsIgnoreCase(attrId)) {
- selectFieldList.add(attrId);
+ R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getDefaultAttrByBtmId(btmType);
+// Optional.ofNullable(allAttributeByBtmId.getData()).orElseGet(allAttributeByBtmId.getData().getAttributes()).stream().forEach(attrId -> {
+// if (!selectFieldList.contains(attrId.getOid()) && !"secretgrade".equalsIgnoreCase(attrId.getOid())) {
+// selectFieldList.add(attrId.getOid());
+// }
+// });
+ if (allAttributeByBtmId.getData() != null) {
+ for (BtmTypeAttributeVO attribute : allAttributeByBtmId.getData().getAttributes()) {
+ if (!selectFieldList.contains(attribute.getId()) && !"secretgrade".equalsIgnoreCase(attribute.getId())) {
+ selectFieldList.add(attribute.getId());
+ }
}
- });
+ }
+
if (!selectFieldList.contains(CODE_FIELD)) {
selectFieldList.add(CODE_FIELD);
}
@@ -1642,13 +1741,14 @@
if (attrVOMap.keySet().contains("secretgrade")) {
Integer userSecret = VciBaseUtil.getCurrentUserSecret();
if (userSecret == null || userSecret == 0) {
-// userSecret = secretService.getMinUserSecret();
+ userSecret = secretService.getMinUserSecret().getData();
}
whereSql += " and ( t.secretGrade <= " + userSecret + ") ";
}
- //瑕佹敼锛岃〃鏄庤幏鍙栨湁闂
// String tableName = VciBaseUtil.getTableName(btmType);
- String tableName = "pl_code_wupin";
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
+// String referTable = VciBaseUtil.getTableName(referVO.getReferType());
+ String tableName = listR.getData().get(0).getTableName();
String sql = "select " + selectFieldList.stream().map(s -> (s.contains(".") ? s : ("t." + s))).collect(Collectors.joining(","))
+ " from " + tableName + SPACE + "t" + SPACE
+ joinTableList.values().stream().collect(Collectors.joining(SPACE))
@@ -1781,9 +1881,10 @@
*/
private String getSqlByValue(String selectKey, String value, Map<String, CodeClassifyTemplateAttrVO> attrVOMap) {
StringBuilder sql = new StringBuilder();
- if (!selectKey.contains(".") && (attrVOMap.containsKey(selectKey.toLowerCase(Locale.ROOT)) || attributeService.isDefaultAttr(selectKey) || selectKey.matches(RegExpConstant.LETTER))) {
- sql.append("t.");
- }
+ // TODO 寰呭畬鍠�
+ // if (!selectKey.contains(".") && (attrVOMap.containsKey(selectKey.toLowerCase(Locale.ROOT)) || attributeService.isDefaultAttr(selectKey) || selectKey.matches(RegExpConstant.LETTER))) {
+ // sql.append("t.");
+ // }
if (value.startsWith(QueryOptionConstant.IN)) {
sql.append(selectKey)
.append(SPACE)
@@ -1959,8 +2060,6 @@
// return codeList.size() > 0 ? codeList.get(0) : "";
-
-
//淇敼鐨勬椂鍊欙紝缂栫爜鏄笉鍙樼殑
// BatchCBO batchCBO = new BatchCBO();
// batchCBO.getUpdateCbos().add(cbo);
@@ -2005,10 +2104,10 @@
//鍙兘鍒犻櫎鑷繁鍒涘缓鐨勬暟鎹�
String userId = AuthUtil.getUser().getUserName();
- for (CodeWupin clientBusinessObject:cboList){
+ for (CodeWupin clientBusinessObject : cboList) {
String creator = clientBusinessObject.getCreator();
- if(!userId.equalsIgnoreCase(creator)){
- throw new VciBaseException("缂栫爜涓�"+clientBusinessObject.getId()+"鐨勬暟鎹笉鏄綋鍓嶇敤鎴峰垱寤猴紝涓嶈兘鍒犻櫎锛�");
+ if (!userId.equalsIgnoreCase(creator)) {
+ throw new VciBaseException("缂栫爜涓�" + clientBusinessObject.getId() + "鐨勬暟鎹笉鏄綋鍓嶇敤鎴峰垱寤猴紝涓嶈兘鍒犻櫎锛�");
}
}
@@ -2092,15 +2191,18 @@
//pageHelper.addDefaultDesc("createTime");
pageHelper.addDefaultDesc("id");
if (!classifyService.checkHasChild(codeClassifyOid)) {
- conditionMap.put(CODE_CLASSIFY_OID_FIELD, codeClassifyOid);
+ conditionMap.put("t."+CODE_CLASSIFY_OID_FIELD, codeClassifyOid);
} else {
- //琛ㄩ渶瑕佹敼
// conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY)
- conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from pl_code_classify where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED +
- "' start with parentCodeClassifyOid = '" + codeClassifyOid + "' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
+
+ conditionMap.put("t."+CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from "+
+ btmTypeClient.selectByIdCollection(Collections.singletonList(MdmBtmTypeConstant.CODE_CLASSIFY))
+ .getData().get(0).getTableName() +" where lcstatus='" + FrameWorkDefaultValueConstant
+ .FRAMEWORK_DATA_ENABLED + "' start with parentCodeClassifyOid = '" + codeClassifyOid +
+ "' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
}
- conditionMap.put("lastr", "1");
- conditionMap.put("lastv", "1");
+ conditionMap.put("t.lastr", "1");
+ conditionMap.put("t.lastv", "1");
return queryGrid(btmTypeId, templateVO, conditionMap, pageHelper);
// List<String> selectFieldList = templateVO.getAttributes().stream().map(CodeClassifyTemplateAttrVO::getId).collect(Collectors.toList());
// //鍙傜収璁╁钩鍙扮洿鎺ユ煡璇㈠氨琛�
@@ -2414,23 +2516,33 @@
CodeClassifyVO topClassifyVO = classifyService.getTopClassifyVO(templateVO.getCodeclassifyoid());
String btmId = topClassifyVO.getBtmtypeid();
//鏌ヨ鏁版嵁
- Map<String, String> conditionMap = WebUtil.getOidQuery(oid);
+ Map<String, String> conditionMap = new HashMap<>();
+ conditionMap.put("t.oid", oid);
CodeTemplateAttrSqlBO sqlBO = getSqlByTemplateVO(btmId, templateVO, conditionMap, new PageHelper(-1));
//鎴戜滑浣跨敤鍜屼笟鍔$被鍨嬬殑鏉ユ煡璇�
- List<Map> cbos = commonsMapper.selectBySql(sqlBO.getSqlUnPage());
+ List<Map> cbosB = commonsMapper.selectBySql(sqlBO.getSqlUnPage());
+ List<Map<String, String>> cbos = new ArrayList<>();
+ cbosB.stream().forEach(map -> {
+ Map<String, String> data = new HashMap<>();
+ for (Object o : map.keySet()) {
+ data.put(((String) o).toLowerCase(Locale.ROOT), String.valueOf(map.get(o)));
+ }
+ cbos.add(data);
+ });
+
// List<ClientBusinessObject> cbos = boService.queryByOnlySql(sqlBO.getSqlUnPage());
if (CollectionUtils.isEmpty(cbos)) {
throw new VciBaseException("鏁版嵁鍦ㄧ郴缁熶腑涓嶅瓨鍦紝鏄惁鍥犱负淇敼杩囦笟鍔$被鍨嬶紵");
}
// Map<String, String> data = new HashMap<>();
- Map<String,String> cbo = cbos.get(0);
+ Map<String, String> cbo = cbos.get(0);
// WebUtil.copyValueToMapFromCbos(cbo, data);
List<Map<String, String>> dataList = new ArrayList<>();
dataList.add(cbo);
wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), true);
R<List<Map<String, String>>> result = R.data(Collections.singletonList(cbo));
//鎴戜滑瑕佺湅鏄惁涓嶆槸鍗囩増鐨勶紝鍗囩増鐨勮瘽锛岄渶瑕佸姣斾笉鐩哥瓑鐨勫睘鎬�
- String copy = String.valueOf(cbo.get("COPYFROMVERSION"));
+ String copy = cbo.get("copyfromversion");
// if (StringUtils.isBlank(copy)) {
// copy = cbo.getAttributeValue("copyfromversion");
// }
@@ -2519,10 +2631,10 @@
QueryWrapper<CodeWupin> wrapper = new QueryWrapper();
if (conditionMap.get("oid").contains(",")) {
// oidMap.put("oid", QueryOptionConstant.IN +"("+ VciBaseUtil.toInSql(oidList.toArray(new String[0])) + ")");
- wrapper.in("oid",oidList);
+ wrapper.in("oid", oidList);
} else {
// oidMap.put("oid", conditionMap.get("oid"));
- wrapper.in("oid",conditionMap.get("oid"));
+ wrapper.in("oid", conditionMap.get("oid"));
}
if (CollectionUtils.isEmpty(oidMap)) {
throw new VciBaseException("涓氬姟鏁版嵁涓婚敭涓嶈兘涓虹┖");
@@ -2555,18 +2667,18 @@
CodeClassifyTemplateVO templateVO = templateService.codeClassifyTemplateDO2VO(templateDOList.get(0));
templateVO.setAttributes(codeClassifyTemplateAttrService.codeClassifyTemplateAttrDO2VOs(attrDOList));
try {
- if (oidList.size() > 1){
- DataGrid<Map<String,String>> allDataGrid = new DataGrid<>();
- List<Map<String,String>> allData = new ArrayList<>();
+ if (oidList.size() > 1) {
+ DataGrid<Map<String, String>> allDataGrid = new DataGrid<>();
+ List<Map<String, String>> allData = new ArrayList<>();
oidList.forEach(oid -> {
- Map<String,String> condition = new HashMap<>();
- condition.put("oid",oid);
+ Map<String, String> condition = new HashMap<>();
+ condition.put("oid", oid);
DataGrid<Map<String, String>> dataGrid = queryGrid(btmType, templateVO, condition, pageHelper);
allData.addAll(dataGrid.getData());
});
allDataGrid.setData(allData);
return allDataGrid;
- }else {
+ } else {
return queryGrid(btmType, templateVO, conditionMap, pageHelper);
}
} catch (Exception e) {
@@ -2586,20 +2698,20 @@
MdmUIInfoVO uiInfoVO = new MdmUIInfoVO();
CodeClassifyTemplateVO templateVO = getUsedTemplateByClassifyOid(codeClassifyOid);
uiInfoVO.setTemplateVO(templateVO);
- UITableDefineVO uiTableDefineVO = wrapperTableDefineByTemplate(templateVO,true);
+ UITableDefineVO uiTableDefineVO = wrapperTableDefineByTemplate(templateVO, true);
List<String> phaseAttrIdList = listPhaseAttrByClassifyOid(codeClassifyOid, phase);
uiTableDefineVO.getCols().stream().forEach(list -> {
- List<UITableFieldVO> visiableTableField=new ArrayList<>();
- if(StringUtils.isNotBlank(phase)) {
+ List<UITableFieldVO> visiableTableField = new ArrayList<>();
+ if (StringUtils.isNotBlank(phase)) {
visiableTableField = list.stream().filter(col ->
phaseAttrIdList.stream().anyMatch(s -> StringUtils.equalsIgnoreCase(col.getField(), s) ||
(StringUtils.equalsIgnoreCase(col.getFieldType(), "combox") && StringUtils.equalsIgnoreCase(col.getSortField(), s))
|| (StringUtils.equalsIgnoreCase(col.getFieldType(), "refer") && StringUtils.equalsIgnoreCase(col.getQueryField(), s))
)).collect(Collectors.toList());
- }else{
- visiableTableField= list.stream().filter(col ->
+ } else {
+ visiableTableField = list.stream().filter(col ->
templateVO.getAttributes().stream().anyMatch(s ->
- (!s.getReadOnlyFlag().equalsIgnoreCase("true")&& StringUtils.equalsIgnoreCase(col.getField(), s.getId())) ||
+ (!s.getReadOnlyFlag().equalsIgnoreCase("true") && StringUtils.equalsIgnoreCase(col.getField(), s.getId())) ||
(StringUtils.equalsIgnoreCase(col.getFieldType(), "combox") && StringUtils.equalsIgnoreCase(col.getSortField(), s.getId()))
|| (StringUtils.equalsIgnoreCase(col.getFieldType(), "refer") && StringUtils.equalsIgnoreCase(col.getQueryField(), s.getId()))
)).collect(Collectors.toList());
@@ -2611,9 +2723,9 @@
setReferConfig2EditConfig(vo);
} else if ("combox".equalsIgnoreCase(vo.getFieldType())) {
setComboxConfig2EditConfig(vo);
- } else if (StringUtils.isNotBlank(vo.getDateFormate())){
+ } else if (StringUtils.isNotBlank(vo.getDateFormate())) {
vo.setEdit("date");
- }else {
+ } else {
vo.setEdit(vo.getFieldType());
}
});
@@ -2693,14 +2805,14 @@
* @param vo 琛ㄦ牸瀛楁鏄剧ず瀵硅薄
*/
private void setReferConfig2EditConfig(UITableFieldVO vo) {
- if (!CollectionUtils.isEmpty(vo.getReferConfig().getWhere())){
+ if (!CollectionUtils.isEmpty(vo.getReferConfig().getWhere())) {
vo.getReferConfig().getWhere().keySet().forEach(key -> {
vo.getReferConfig().getWhere().put(key, "'" + vo.getReferConfig().getWhere().get(key) + "'");
});
}
- if (StringUtils.isNotBlank(vo.getReferConfig().getParentValue())){
+ if (StringUtils.isNotBlank(vo.getReferConfig().getParentValue())) {
String parentValue = vo.getReferConfig().getParentValue();
- parentValue ="\\" + parentValue.replaceAll("'","{vci-quote}").replaceAll("=","{vci-equals}");
+ parentValue = "\\" + parentValue.replaceAll("'", "{vci-quote}").replaceAll("=", "{vci-equals}");
vo.getReferConfig().setParentValue(parentValue);
}
String referConfig = vo.getReferConfig().toString()
@@ -2724,16 +2836,16 @@
*/
private void setComboxConfig2EditConfig(UITableFieldVO vo) {
vo.setEditConfig("{editable:true,comboxKey:'" + vo.getComboxKey() + "'");
- if (!CollectionUtils.isEmpty(vo.getData())){
- vo.setEditConfig(vo.getEditConfig()+", comboxConfig:");
+ if (!CollectionUtils.isEmpty(vo.getData())) {
+ vo.setEditConfig(vo.getEditConfig() + ", comboxConfig:");
for (int i = 0; i < vo.getData().size(); i++) {
KeyValue data = vo.getData().get(i);
- if (i == vo.getData().size() -1){
- vo.setEditConfig(vo.getEditConfig() + "{attributes:"+data.getAttributes()+",key:'"+data.getKey()+"',value:'"+data.getValue()+"'}]}");
- }else if (i == 0){
- vo.setEditConfig(vo.getEditConfig() + "{data:[{attributes:"+data.getAttributes()+",key:'"+data.getKey()+"',value:'"+data.getValue()+"'},");
- }else{
- vo.setEditConfig(vo.getEditConfig() + "{attributes:"+data.getAttributes()+",key:'"+data.getKey()+"',value:'"+data.getValue()+"'},");
+ if (i == vo.getData().size() - 1) {
+ vo.setEditConfig(vo.getEditConfig() + "{attributes:" + data.getAttributes() + ",key:'" + data.getKey() + "',value:'" + data.getValue() + "'}]}");
+ } else if (i == 0) {
+ vo.setEditConfig(vo.getEditConfig() + "{data:[{attributes:" + data.getAttributes() + ",key:'" + data.getKey() + "',value:'" + data.getValue() + "'},");
+ } else {
+ vo.setEditConfig(vo.getEditConfig() + "{attributes:" + data.getAttributes() + ",key:'" + data.getKey() + "',value:'" + data.getValue() + "'},");
}
}
vo.setEditConfig(vo.getEditConfig() + ",valueField:'" + vo.getQueryField() + "'");
@@ -2751,7 +2863,7 @@
@Override
public MdmUIInfoVO getFormDefineByClassifyIdPath(String idPath) {
CodeClassifyVO classifyVO = classifyService.getObjectByIdPath(idPath);
- if(classifyVO !=null){
+ if (classifyVO != null) {
return getFormDefineByClassifyOid(classifyVO.getOid());
}
return null;
@@ -2796,7 +2908,7 @@
MdmUIInfoVO uiInfoVO = new MdmUIInfoVO();
uiInfoVO.setTemplateVO(templateVO);
//鎴戜滑闇�瑕佸皢妯℃澘杞崲涓鸿〃鏍肩浉鍏崇殑鏄剧ず淇℃伅
- uiInfoVO.setTableDefineVO(wrapperTableDefineByTemplate(uiInfoVO.getTemplateVO(),false));
+ uiInfoVO.setTableDefineVO(wrapperTableDefineByTemplate(uiInfoVO.getTemplateVO(), false));
//闇�瑕佸幓鐪嬫墿灞曠殑鎸夐挳,鍙湁鍒楄〃閲岄潰鏈韩鎵嶆坊鍔犺繘鍘伙紝宸ュ叿鏍忎笂鐨勫崟鐙幏鍙�
List<CodeClassifyTemplateButtonVO> buttonVOS = templateButtonService.listButtonByTemplateOid(templateVO.getOid(), true);
if (!CollectionUtils.isEmpty(buttonVOS)) {
@@ -2835,8 +2947,8 @@
@Override
public MdmUIInfoVO getUIInfoByClassifyIdPath(String codeClassifyIdPath, String functionId) {
CodeClassifyVO classifyVO = classifyService.getObjectByIdPath(codeClassifyIdPath);
- if(classifyVO !=null){
- return getUIInfoByClassifyOid(classifyVO.getOid(),functionId);
+ if (classifyVO != null) {
+ return getUIInfoByClassifyOid(classifyVO.getOid(), functionId);
}
return null;
}
@@ -2851,30 +2963,33 @@
@Override
public MdmUIInfoVO getUIInfoByClassifyOid(String codeClassifyOid, String functionId) {
VciBaseUtil.alertNotNull(codeClassifyOid, "涓婚搴撳垎绫讳富閿�");
+
MdmUIInfoVO uiInfoVO = getTableDefineByTemplateVO(getUsedTemplateByClassifyOid(codeClassifyOid));
uiInfoVO.setLeaf(classifyService.countChildrenByClassifyOid(codeClassifyOid) == 0);
if (StringUtils.isNotBlank(functionId) && !"~".equalsIgnoreCase(functionId)) {
- //鍔熻兘鎸夐挳鏈嶅姟杩樻湭瀹炵幇锛岀瓑瀹炵幇浜嗭紝鍦ㄨ繘琛岃皟鐢�
- //List<SmOperationVO> operationVOS = operationService.listButtonByFunctionId(functionId);
+ List<Menu> buttonVOS = iSysClient.getMenuButtonByType(uiInfoVO.getTemplateVO().getBtmTypeId()).getData();
+// List<SmOperationVO> operationVOS = operationService.listButtonByFunctionId(functionId);
// if (operationVOS == null) {
// operationVOS = new ArrayList<>();
// }
- //鏌ヨ鎵╁睍鎸夐挳
+// //鏌ヨ鎵╁睍鎸夐挳
// List<CodeButtonVO> buttonVOS = listButtonInToolbarByClassifyOid(codeClassifyOid);
-// if (!CollectionUtils.isEmpty(buttonVOS)) {
-// for (int i = 0; i < buttonVOS.size(); i++) {
-// CodeButtonVO buttonVO = buttonVOS.get(i);
-// SmOperationVO operationVO = new SmOperationVO();
-// operationVO.setModuleNo(functionId);
-// operationVO.setUniqueFlag(buttonVO.getId());
-// operationVO.setName(buttonVO.getName());
-// operationVO.setAlias(operationVO.getName());
-// operationVO.setExecuteJs(buttonVO.getExecutejs());
-// operationVO.setIconCls(buttonVO.getIconcls());
-// operationVOS.add(operationVO);
-// }
-// }
-// uiInfoVO.setButtons(operationVOS);
+ List<SmOperationVO> operationVOS = new ArrayList<>();
+ if (!CollectionUtils.isEmpty(buttonVOS)) {
+ for (int i = 0; i < buttonVOS.size(); i++) {
+ Menu buttonVO = buttonVOS.get(i);
+ SmOperationVO operationVO = new SmOperationVO();
+ operationVO.setModuleNo(functionId);
+ operationVO.setUniqueFlag(buttonVO.getCode());
+ operationVO.setName(buttonVO.getName());
+ operationVO.setAlias(buttonVO.getAlias());
+ operationVO.setOrderNo(String.valueOf(buttonVO.getSort()));
+// operationVO.setExecuteJs(buttonVO.getExecuteJs());
+// operationVO.setIconCls(buttonVO.getIconCls());
+ operationVOS.add(operationVO);
+ }
+ }
+ uiInfoVO.setButtons(operationVOS);
}
return uiInfoVO;
}
@@ -2922,7 +3037,7 @@
* @return 澶勭悊鎴愬姛鏁版嵁鏉℃暟
*/
@Override
- public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) throws Exception {
+ public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) {
//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
if(listR.getData().size() == 0){
@@ -2944,15 +3059,15 @@
* 浼犲叆涓氬姟绫诲瀷浠ュ強鐩竜id闆嗗悎鏌ヨ鏁版嵁杩涜杩斿洖
*
* @param btmType 涓氬姟绫诲瀷
- * @param oids 闇�瑕佹煡璇㈢殑oid闆嗗悎 閫楀彿鍒嗗紑
+ * @param oids 闇�瑕佹煡璇㈢殑oid闆嗗悎 閫楀彿鍒嗗紑
* @return 鏌ヨ鍑虹殑鏁版嵁
*/
@Override
- public List<BaseModel> selectByTypeAndOid(String btmType, String oids) throws IllegalAccessException, NoSuchFieldException, InstantiationException, InvocationTargetException, IntrospectionException, SQLException {
+ public List<BaseModel> selectByTypeAndOid(String btmType, String oids) {
//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
- if(listR.getData().size() == 0){
+ if (listR.getData().size() == 0) {
throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
}
//鏌ヨ鏁版嵁
@@ -2961,34 +3076,42 @@
List<BaseModel> baseModels = new ArrayList<>();
//灏嗘煡璇㈠埌鐨勬暟鎹浆鎹负basemodel锛屼娇鐢ㄧ殑鍙嶅皠鏂瑰紡鏉ヨ繘琛屽垱寤虹殑
- for (Map map : maps) {
- Object obj = BaseModel.class.newInstance();
- BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
- PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
- for (PropertyDescriptor property : propertyDescriptors) {
- Method setter = property.getWriteMethod();
- if (setter != null) {
- //oracle鐨勬椂闂翠负TIMESTAMP鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚data锛屽惁鍒欏皢鎶ラ敊
- if(map.get(property.getName().toUpperCase()) instanceof TIMESTAMP){
- LocalDateTime localDateTime = ((TIMESTAMP) map.get(property.getName().toUpperCase())).toLocalDateTime();
- ZoneId zoneId = ZoneId.systemDefault();
- ZonedDateTime zdt = localDateTime.atZone(zoneId);
- Date date = Date.from(zdt.toInstant());
- setter.invoke(obj,date);
- map.remove(property.getName().toUpperCase());
- } //oracle鐨勬暟瀛椾负BigDecimal鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚Integer锛屽惁鍒欏皢鎶ラ敊
- else if (map.get(property.getName().toUpperCase()) instanceof BigDecimal
- && ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())){
- setter.invoke(obj, ((BigDecimal)map.get(property.getName().toUpperCase())).intValue());
- map.remove(property.getName().toUpperCase());
- }else if(map.get(property.getName().toUpperCase()) != null){
- setter.invoke(obj, map.get(property.getName().toUpperCase()));
- map.remove(property.getName().toUpperCase());
+ try{
+ for (Map map : maps) {
+ Object obj = BaseModel.class.newInstance();
+ BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
+ PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+ for (PropertyDescriptor property : propertyDescriptors) {
+ Method setter = property.getWriteMethod();
+ if (setter != null) {
+ //oracle鐨勬椂闂翠负TIMESTAMP鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚data锛屽惁鍒欏皢鎶ラ敊
+ if(map.get(property.getName().toUpperCase()) instanceof TIMESTAMP){
+ LocalDateTime localDateTime = ((TIMESTAMP) map.get(property.getName().toUpperCase())).toLocalDateTime();
+ ZoneId zoneId = ZoneId.systemDefault();
+ ZonedDateTime zdt = localDateTime.atZone(zoneId);
+ Date date = Date.from(zdt.toInstant());
+ setter.invoke(obj,date);
+ map.remove(property.getName().toUpperCase());
+ } //oracle鐨勬暟瀛椾负BigDecimal鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚Integer锛屽惁鍒欏皢鎶ラ敊
+ else if (map.get(property.getName().toUpperCase()) instanceof BigDecimal
+ && ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())){
+ setter.invoke(obj, ((BigDecimal)map.get(property.getName().toUpperCase())).intValue());
+ map.remove(property.getName().toUpperCase());
+ }else if(map.get(property.getName().toUpperCase()) != null){
+ setter.invoke(obj, map.get(property.getName().toUpperCase()));
+ map.remove(property.getName().toUpperCase());
+ }
}
}
+ for (Object key : map.keySet()) {
+ map.put(key,String.valueOf(map.get(key)));
+ }
+
+ ((BaseModel) obj).setData(map);
+ baseModels.add((BaseModel) obj);
}
- ((BaseModel) obj).setData(map);
- baseModels.add((BaseModel) obj);
+ }catch (Exception e){
+ throw new VciBaseException("鏌ヨ澶辫触锛�" + e.getMessage());
}
return baseModels;
}
@@ -3003,7 +3126,7 @@
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(boName));
String userName = AuthUtil.getUser().getUserName();
BaseModel bo = new BaseModel();
- bo.setOid(VciBaseUtil.getPk());
+// bo.setOid(VciBaseUtil.getPk());
// bo.setRevisionid(VciBaseUtil.getPk());
// bo.setNameoid(VciBaseUtil.getPk());
bo.setBtmname(boName);
@@ -3028,7 +3151,7 @@
bo.setLctid(listR.getData().get(0).getLifeCycleId());
// if(StringUtils.isNotBlank(listR.getData().get(0).getLifeCycleId())){
// OsLifeCycleVO lifeCycleVO = lifeService.getLifeCycleById(listR.getData().get(0).getLifeCycleId());
- bo.setLcStatus("Editing");
+ bo.setLcStatus("Editing");
// }
bo.setId("");
bo.setName("");
@@ -3055,4 +3178,183 @@
}
return "";
}
+
+ /**
+ * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鏇存柊鎿嶄綔
+ *
+ * @param btmType 涓氬姟绫诲瀷
+ * @param baseModels 澶勭悊鏁版嵁
+ * @return 澶勭悊鐘舵��
+ */
+ @Override
+ public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) {
+ //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
+ if(listR.getData().size() == 0){
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
+ //灏哹ean杞负map,mybatis缁熶竴澶勭悊
+ List<Map<String,String>> maps = new ArrayList<>();
+
+ baseModels.stream().forEach(model-> {
+ try {
+ maps.add(VciBaseUtil.convertBean2Map(model));
+ } catch (Exception e) {
+ throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage());
+ }
+ });
+ try {
+ //娉ㄦ剰姝ゅ鏇存柊鎴愬姛鏄繑鍥炵殑-1
+ commonsMapper.updateBatchByBaseModel(listR.getData().get(0).getTableName(), maps);
+ }catch (Exception e){
+ return R.fail("鏇存柊澶辫触锛�"+e.getMessage());
+ }
+
+ return R.success("鏇存柊鎴愬姛锛�");
+ }
+
+ /**
+ * 鑾峰彇鍙傜収鐨勪俊鎭�
+ *
+ * @param referConfigVO 鍙傜収鐨勯厤缃�
+ * @param pageHelper 鍒嗛〉鐨勫伐鍏�
+ * @return 鍒楄〃鏁版嵁
+ */
+ @Override
+ public DataGrid referDataGrid(UIFormReferVO referConfigVO, PageHelper pageHelper) {
+// checkReferConfig(referConfigVO);
+ //浣跨敤涓氬姟绫诲瀷鏌ヨ
+ R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(referConfigVO.getReferType());
+ BtmTypeVO btmTypeVO = allAttributeByBtmId.getData();
+ if (referConfigVO.getWhere() == null) {
+ referConfigVO.setWhere(new HashMap<>());
+ }
+ /**
+ * 鍔犱笂鏌ヨ鏈�鏂扮増娆�
+ */
+ Map<String, String> conditionMap = new HashMap<>();
+ conditionMap.put("lastr", "1");
+ conditionMap.put("lastv", "1");
+ referConfigVO.getWhere().putAll(conditionMap);
+ if (VciBaseUtil.containsKeyUnCaseForMap(referConfigVO.getWhere(), VciQueryWrapperForDO.LC_STATUS_FIELD) &&
+ BtmTypeLcStatusConstant.FRAME_WORK_LIFE_CYCLE_NAME.equalsIgnoreCase(btmTypeVO.getLifeCycleId())) {
+ referConfigVO.getWhere().put(VciQueryWrapperForDO.LC_STATUS_FIELD, FrameworkDataLCStatus.ENABLED.getValue());
+ }
+ if (VciBaseUtil.containsKeyUnCaseForMap(referConfigVO.getWhere(), VciQueryWrapperForDO.LC_STATUS_FIELD) &&
+ BtmTypeLcStatusConstant.RELEASE_LIFE_CYCLE.equalsIgnoreCase(btmTypeVO.getLifeCycleId())) {
+ referConfigVO.getWhere().put(VciQueryWrapperForDO.LC_STATUS_FIELD, CodeDefaultLC.RELEASED.getValue());
+ }
+ BaseQueryObject baseQueryObject = new BaseQueryObject();
+ Map<String, String> where = referConfigVO.getWhere();
+ where.put("domain", AppConstant.APPLICATION_NAME_CODE);
+ baseQueryObject.setConditionMap(where);
+ baseQueryObject.setPage(pageHelper.getPage());
+ baseQueryObject.setSort(pageHelper.getSort());
+ baseQueryObject.setLimit(pageHelper.getLimit());
+ baseQueryObject.setOrder(pageHelper.getOrder());
+ R<List<BtmTypeVO>> ref = btmTypeClient.getRef(baseQueryObject);
+ DataGrid<BtmTypeVO> btmTypeVODataGrid = new DataGrid<>();
+ List<BtmTypeVO> data = ref.getData();
+ btmTypeVODataGrid.setData(data);
+ btmTypeVODataGrid.setCode(ref.getCode());
+ btmTypeVODataGrid.setLimit(pageHelper.getLimit());
+ btmTypeVODataGrid.setMsg(ref.getMsg());
+ btmTypeVODataGrid.setSort(pageHelper.getSort());
+ btmTypeVODataGrid.setOrder(pageHelper.getOrder());
+ btmTypeVODataGrid.setPage(pageHelper.getPage());
+ return btmTypeVODataGrid;
+ }
+
+ /**
+ * 鑾峰彇鏍戝舰鐨勫弬鐓�
+ *
+ * @param referConfigVO 鍙傜収鐨勯厤缃�
+ * @return 鏍戝舰鐨勬暟鎹�
+ */
+ @Override
+ public List<Tree> referTree(UIFormReferVO referConfigVO, TreeQueryObject queryObject) {
+ if (queryObject.getConditionMap() == null) {
+ queryObject.setConditionMap(new HashMap<>());
+ }
+
+ if (queryObject.getParentOid()==null){
+ LambdaQueryWrapper<CodeClassify> lqw = new LambdaQueryWrapper<>();
+ String parentValue = referConfigVO.getParentValue().substring(3);
+ lqw.inSql(CodeClassify::getOid,parentValue);
+ List<String> codeClassifies = classifyService.select1(lqw);
+ String oid = codeClassifies.get(0);
+ queryObject.setParentOid(oid);
+ }
+ String oidFieldName = StringUtils.isNotBlank(referConfigVO.getParentUsedField()) ? referConfigVO.getParentUsedField() : referConfigVO.getValueField();
+ if (queryObject.isQueryAllLevel()) {
+ String parentOidSql = "";
+ if (StringUtils.isNotBlank(referConfigVO.getParentValue())) {
+ String temp = referConfigVO.getParentValue();
+ if (temp.startsWith(QueryOptionConstant.IN)) {
+ temp = temp.substring((QueryOptionConstant.IN).length()).trim();
+ parentOidSql = " in " + ((temp.startsWith("(") && temp.endsWith(")")) ? temp : "(" + temp + ")");
+ } else if (temp.startsWith(QueryOptionConstant.NOTIN)) {
+ parentOidSql = " not in " + ((temp.startsWith("(") && temp.endsWith(")")) ? temp : "(" + temp + ")");
+ } else if (temp.startsWith(QueryOptionConstant.NOTEQUAL)) {
+ temp = temp.substring((QueryOptionConstant.NOTEQUAL).length()).trim();
+ parentOidSql = QueryOptionConstant.NOTEQUAL + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ } else if (temp.startsWith(QueryOptionConstant.MORETHAN)) {
+ temp = temp.substring((QueryOptionConstant.MORETHAN).length()).trim();
+ parentOidSql = QueryOptionConstant.MORETHAN + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ } else if (temp.startsWith(QueryOptionConstant.MORE)) {
+ temp = temp.substring((QueryOptionConstant.MORE).length()).trim();
+ parentOidSql = QueryOptionConstant.MORE + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ } else if (temp.startsWith(QueryOptionConstant.LESSTHAN)) {
+ temp = temp.substring((QueryOptionConstant.LESSTHAN).length()).trim();
+ parentOidSql = QueryOptionConstant.LESSTHAN + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ } else if (temp.startsWith(QueryOptionConstant.LESS)) {
+ temp = temp.substring((QueryOptionConstant.LESS).length()).trim();
+ parentOidSql = QueryOptionConstant.LESS + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ } else if (temp.startsWith(QueryOptionConstant.ISNOTNULL)) {
+ parentOidSql = " is not null";
+ } else if (temp.startsWith(QueryOptionConstant.ISNULL)) {
+ parentOidSql = " is null";
+ } else if (temp.contains("*")) {
+ parentOidSql = " like " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'").replace("*", "%");
+ } else {
+ parentOidSql = " = " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ }
+
+ }
+ //鏌ヨ鍏ㄩ儴鐨勪俊鎭�
+ queryObject.getConditionMap().put("oid", QueryOptionConstant.IN + "(select oid from " +
+ getTableName(referConfigVO.getReferType())+
+ " START WITH " + referConfigVO.getParentFieldName() + " " +
+ parentOidSql +
+ " CONNECT BY PRIOR " + oidFieldName + " = " + referConfigVO.getParentFieldName() + ")");
+ } else {
+ if (StringUtils.isNotBlank(referConfigVO.getParentFieldName()) && StringUtils.isNotBlank(queryObject.getParentOid())) {
+ queryObject.getConditionMap().put(referConfigVO.getParentFieldName(), queryObject.getParentOid());
+ }
+ }
+ LambdaQueryWrapper<CodeClassify> lqw = new LambdaQueryWrapper<>();
+ String sql = queryObject.getConditionMap().get("oid").substring(3);
+ lqw.inSql(CodeClassify::getOid,sql);
+ List<CodeClassify> codeClassifies = classifyService.selectByWrapper(lqw);
+ TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(referConfigVO.getParentFieldName());
+ treeWrapperOptions.setOidFieldName(oidFieldName);
+ treeWrapperOptions.setTextFieldName(referConfigVO.getTextField());
+ treeWrapperOptions.setMultipleSelect(referConfigVO.isMuti());
+ treeWrapperOptions.setParentOid(queryObject.getParentOid());
+ return revisionModelUtil.doList2Trees(codeClassifies, treeWrapperOptions, null);
+ }
+
+ private String getTableName(String refertype){
+ if ("codeclassify".equals(refertype)){
+ return "pl_code_classify";
+ }
+ if ("table".equals(refertype)){
+ return "pl_code_test_table";
+ }
+ if ("testBtmType".equals(refertype)){
+ return "PLBT_code_testBtmType";
+ }
+
+ return "pl_code_"+refertype.trim().toLowerCase();
+ }
}
--
Gitblit v1.9.3