From f7e33d69713a5145d19fde5792b422826bc14107 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 09 六月 2023 18:10:12 +0800
Subject: [PATCH] 完善主题库定义
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 595 ++++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 442 insertions(+), 153 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 f96f6f5..a660ef9 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
@@ -4,27 +4,32 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
+import com.fasterxml.jackson.databind.ObjectMapper;
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.*;
import com.vci.ubcs.code.vo.CodeKeyAttrRepeatVO;
-import com.vci.ubcs.code.vo.pagemodel.*;
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.IAttributeClient;
+import com.vci.ubcs.omd.feign.IBtmTypeClient;
import com.vci.ubcs.omd.feign.IEnumClient;
-import com.vci.ubcs.omd.feign.IEnumItemClient;
+import com.vci.ubcs.omd.feign.IRevisionRuleClient;
+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.TreeWrapperOptions;
import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
@@ -36,24 +41,41 @@
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 net.logstash.logback.encoder.org.apache.commons.lang3.ObjectUtils;
+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.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
-import org.springframework.beans.BeanUtils;
+import org.springblade.core.tool.utils.StringPool;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cglib.beans.BeanMap;
+import org.springframework.cache.Cache;
import org.springframework.stereotype.Service;
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;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Supplier;
import java.util.stream.Collectors;
import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST;
@@ -75,28 +97,37 @@
*/
@Resource
private CodeClstemplateServiceImpl templateService;
- /**
- * 妯℃澘鐨勬湇鍔�
- */
+
@Resource
- private CodeOsbtmtypeMapper codeOsbtmtypeMapper;
- @Resource
- private CodeOsattributeServiceImpl attributeService;
+ private IAttributeClient attributeClient;
+
/**
* 鐢熸垚缂栫爜鐨勬湇鍔�
*/
@Resource
private MdmProductCodeService productCodeService;
+
/**
* 鍙緭鍙�夌殑鏈嶅姟
*/
@Resource
IDictBizClient iDictBizClient;
/**
+ * 绯荤粺鐨勬湇鍔�
+ */
+ @Resource
+ ISysClient iSysClient;
+ /**
+ * 鐢ㄦ埛鏈嶅姟
+ */
+ @Resource
+ IUserClient iUserClient;
+ /**
* 瀛楀吀鐨勬湇鍔�
*/
@Resource
IEnumClient enumClient;
+
/**
* 鍏紡鐨勬湇鍔�
*/
@@ -120,6 +151,16 @@
*/
@Autowired
private ICodePhaseAttrService phaseAttrService;
+ /**
+ * 涓氬姟绫诲瀷鐨勬湇鍔�
+ */
+ @Autowired
+ private IBtmTypeClient btmTypeClient;
+ /**
+ * 鐗堟湰瑙勫垯鐨勬湇鍔�
+ */
+ @Resource
+ private IRevisionRuleClient revisionRuleClient;
//
/**
* 閫氱敤鏌ヨ
@@ -180,6 +221,14 @@
* 绌烘牸
*/
public static final String SPACE = " ";
+ /**
+ * 缂撳瓨锝嬶絽锝�
+ */
+ public static final String BTM_INIT_CACHE = "ubcs-code:btm";
+ /**
+ *
+ */
+ public static final String BTM_NAME = "btm:name";
/**
* 瀵嗙骇鐨勫瓧娈�
@@ -283,10 +332,11 @@
List<String> oids = VciBaseUtil.str2List(baseModelDTO.getOid());
// List<ClientBusinessObject> cboList = boService.selectCBOByOidCollection(oids, baseModelDTO.getBtmname());
//鎻掍釜鐐� 涓氬姟绫诲瀷瀹屾垚鍚庨渶瑕佷慨鏀�
- QueryWrapper<CodeOsbtmtypeEntity> wrapper = new QueryWrapper<>();
+ QueryWrapper<BtmTypeVO> wrapper = new QueryWrapper<>();
wrapper.eq("BTMNAME",baseModelDTO.getBtmname());
wrapper.in("OID",oids);
- List<CodeOsbtmtypeEntity> cboList = codeOsbtmtypeMapper.selectList(wrapper);
+ // 寰呭畬鍠�
+ List<BtmTypeVO> cboList = null; // btmTypeClient.selectList(wrapper);
//杩橀渶瑕佷慨鏀筧llCode鐨勭敓鍛藉懆鏈�
// Map<String, String> conditionMap = new HashMap<>();
QueryWrapper<CodeAllCode> allCodeWrapper = new QueryWrapper<>();
@@ -298,16 +348,18 @@
// 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());
- }
+ // BatchCBO batchCBO = new BatchCBO();
+ // batchCBO.getDeleteCbos().addAll(cboList);
+ // 寰呭畬鍠�
+ //btmTypeClient.deleteBatchIds(cboList);
+
+ //boService.persistenceBatch(batchCBO);
+ } else {
+ // lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus());
+ }
+ // lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus());
+ }
/**
* 鐢宠鍗曚竴缂栫爜
@@ -316,7 +368,7 @@
* @return 杩斿洖缂栫爜鐨勫唴瀹�
*/
@Override
- public String addSaveCode(CodeOrderDTO orderDTO) {
+ public String addSaveCode(CodeOrderDTO orderDTO) throws Exception {
VciBaseUtil.alertNotNull(orderDTO, "缂栫爜鐢宠鐩稿叧鐨勫睘鎬у拰鐮佹鐨勫唴瀹归兘涓虹┖", orderDTO.getCodeClassifyOid(), "涓婚搴撳垎绫荤殑涓婚敭",
orderDTO.getTemplateOid(), "妯℃澘鐨勪富閿�", orderDTO.getCodeRuleOid(), "缂栫爜瑙勫垯鐨勪富閿�");
CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
@@ -340,14 +392,14 @@
switchDateAttrOnOrder(templateVO, orderDTO);
//9.鐢熸垚缂栫爜鐨勪俊鎭�
// ClientBusinessObject cbo = boService.createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
- CodeWupin cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
+ BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
// //榛樿鐨勫睘鎬ч兘涓嶇敤浠庡墠绔嫹璐�
// //璁剧疆缂栫爜闇�瑕佺殑榛樿灞炴�х殑鍐呭
copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, false);
// //TODO:鍥犱负榛樿鐨勫睘鎬ч兘涓嶆嫹璐濓紝鐩墠闆嗗洟鐮佸彨name锛屽苟娌℃湁浠嶥TO鎷疯礉鍒癱bo閲屻�傚鍔犱竴涓崟鐙鐞嗭紝浠ュ悗鍐嶇湅瑕佷笉瑕佽皟鏁�
cbo.setName(orderDTO.getName() == null ? "" : orderDTO.getName());
// //end -- modify by lihang @20220407
- List<CodeWupin> cboList = new ArrayList<>();
+ List<BaseModel> cboList = new ArrayList<>();
//澶囨敞
cbo.setDescription(orderDTO.getDescription());
@@ -358,8 +410,8 @@
List<String> charList = new ArrayList<>();
- for (CodeWupin wupinEntity : cboList) {
- charList.add(wupinEntity.getId());
+ for (BaseModel baseModel : cboList) {
+ charList.add(baseModel.getId());
}
batchSaveSelectChar(templateVO, charList);
return codeList.size() > 0 ? codeList.get(0) : "";
@@ -709,7 +761,7 @@
* @param templateVO 妯℃澘鐨勬樉绀哄璞�
* @param edit 鏄惁涓轰慨鏀�
*/
- private void copyValueToCBO(CodeClassifyFullInfoBO classifyFullInfo, CodeWupin cbo,
+ private void copyValueToCBO(CodeClassifyFullInfoBO classifyFullInfo, BaseModel cbo,
CodeOrderDTO orderDTO, CodeClassifyTemplateVO templateVO,
boolean edit) {
String fullPath = "";
@@ -738,21 +790,30 @@
try {
- BeanUtilForVCI.copyPropertiesIgnoreNull(BeanUtilForVCI.convertMap(CodeWupin.class,orderDTO.getData()),cbo);
-
- cbo.setCodeclsfid(classifyFullInfo.getCurrentClassifyVO().getOid());
- cbo.setCodetemplateoid(templateVO.getOid());
- cbo.setCodeclsfpath(fullPath);
+ BeanUtilForVCI.copyPropertiesIgnoreNull(BeanUtilForVCI.convertMap(BaseModel.class,orderDTO.getData()),cbo);
+ Map<String,String> data = new HashMap<>();
+ data.put(CODE_CLASSIFY_OID_FIELD,classifyFullInfo.getCurrentClassifyVO().getOid());
+ 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);
cbo.setTs(new Date());
if (!edit && StringUtils.isBlank(orderDTO.getLcStatus())) {
- //鎵剧敓鍛藉懆鏈熺殑璧峰鐘舵�侊紝鎻掍釜鐐癸紝鐢熷懡鍛ㄦ湡鏄惁闇�瑕佸垱寤�
+ //鍏堝啓鍥哄畾锛屽悗闈㈢敓鍛藉懆鏈熷ソ浜嗗湪缂栧啓
if (StringUtils.isNotBlank(cbo.getLctid())) {
// OsLifeCycleVO lifeCycleVO = lifeCycleService.getLifeCycleById(cbo.getLctid());
// if (lifeCycleVO != null) {
// cbo.setLcStatus("Editing");
//// cbo.setLcStatus(lifeCycleVO.getStartStatus());
// } else {
- cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
+ cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
// }
} else {
cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
@@ -761,7 +822,7 @@
}
int secret = VciBaseUtil.getInt(String.valueOf(cbo.getSecretGrade()));
- //鎻掍釜鐐癸紝鍚庣画鐪嬪瘑绾ф湇鍔℃槸鍚﹀彲鐢�
+ //鍚庣画鐪嬪瘑绾ф湇鍔℃槸鍚﹀彲鐢�
// if (secret == 0 || !secretService.checkDataSecret(secret)) {
if (secret == 0 ) {
Integer userSecret = VciBaseUtil.getCurrentUserSecret();
@@ -782,72 +843,67 @@
* @throws VciBaseException 鍒濆鍖栧嚭閿欑殑鏄細鎶涘嚭寮傚父
*/
@Override
- public CodeWupin createCBOByBtmName(String btmName)
+ public BaseModel createCBOByBtmName(String btmName)
throws VciBaseException {
if(btmName!=null){
btmName = btmName.trim().toLowerCase();
}
- String userid = AuthUtil.getUser().getUserName();
-// if(!hasCreatedCbos.containsKey(btmName)){
-// if(StringUtils.isEmpty(userid)){
-// throw new VciBaseException(msgCodePrefix +"noHasUserid");
-// }
-// try {
-// hasCreatedCbos.put(btmName, createBusinessObject(btmName));
-// } catch (Exception e) {
-// logger.error("鍒涘缓涓氬姟绫诲瀷瀵硅薄",e);
-// throw new VciBaseException(msgCodePrefix + "initBoError",new String[]{btmName});
-// }
-// }
-// ClientBusinessObject cbo = cloneClientBusinessObject(hasCreatedCbos.get(btmName));
-
-// QueryWrapper<CodeOsbtmtypeEntity> btmWrapper = new QueryWrapper<>();
-// btmWrapper.eq("ID",btmName);
-// CodeOsbtmtypeEntity btmTypeVO = codeOsbtmtypeMapper.selectOne(btmWrapper);
-// OsBtmTypeVO btmTypeVO = btmService.getBtmById(boName);
- String userName = AuthUtil.getUser().getUserName();
- CodeWupin wupinEntity = new CodeWupin();
- wupinEntity.setOid(VciBaseUtil.getPk());
-// bo.setRevisionid((new ObjectUtility()).getNewObjectID36());
-// bo.setNameoid((new ObjectUtility()).getNewObjectID36());
- wupinEntity.setBtmname(btmName);
- wupinEntity.setLastR(String.valueOf(1));
- wupinEntity.setFirstR(String.valueOf(1));
- wupinEntity.setFirstV(String.valueOf(1));
- wupinEntity.setLastV(String.valueOf(1));
- wupinEntity.setCreator(userName);
- wupinEntity.setCreateTime(new Date());
- wupinEntity.setLastModifier(userName);
- wupinEntity.setLastModifyTime(new Date());
- wupinEntity.setRevisionRule("numberversionrule");
- wupinEntity.setVersionRule("0");
-// if(StringUtils.isNotBlank(btmTypeVO.getRevisionruleid())){
- //
-// OsRevisionRuleVO revisionRuleVO = revisionRuleService.getRevisionRuleById(btmTypeVO.getRevisionruleid());
- wupinEntity.setRevisionValue("1");
-// }
-
- wupinEntity.setRevisionSeq(1);
- wupinEntity.setVersionSeq(1);
- //鎻掍釜鐐癸紝闇�瑕侀棶鍕囧摜鐗堟湰闂锛屽睍绀洪粯璁や负1
- wupinEntity.setVersionValue("1");
- wupinEntity.setLctid("wupinLC");
- wupinEntity.setLcStatus("Editing");
- wupinEntity.setId("");
- wupinEntity.setName("");
- wupinEntity.setDescription("");
- wupinEntity.setOwner(userName);
- wupinEntity.setCheckinby(userName);
- wupinEntity.setCopyFromVersion("");
- wupinEntity.setMaterialtype(1001);
- wupinEntity.setCaigouwl("true");
- wupinEntity.setShifoupihaoguanli("true");
- wupinEntity.setKucunwl("true");
- wupinEntity.setXiaoshouwl("false");
- wupinEntity.setPassing("true");
+ try {
+ 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});
+ }
+// String userName = AuthUtil.getUser().getUserName();
+// CodeWupin wupinEntity = new CodeWupin();
+// wupinEntity.setOid(VciBaseUtil.getPk());
+//// bo.setRevisionid((new ObjectUtility()).getNewObjectID36());
+//// bo.setNameoid((new ObjectUtility()).getNewObjectID36());
+// wupinEntity.setBtmname(btmName);
+// wupinEntity.setLastR(String.valueOf(1));
+// wupinEntity.setFirstR(String.valueOf(1));
+// wupinEntity.setFirstV(String.valueOf(1));
+// wupinEntity.setLastV(String.valueOf(1));
+// wupinEntity.setCreator(userName);
+// wupinEntity.setCreateTime(new Date());
+// wupinEntity.setLastModifier(userName);
+// wupinEntity.setLastModifyTime(new Date());
+// wupinEntity.setRevisionRule("numberversionrule");
+// wupinEntity.setVersionRule("0");
+//// if(StringUtils.isNotBlank(btmTypeVO.getRevisionruleid())){
+// //
+//// OsRevisionRuleVO revisionRuleVO = revisionRuleService.getRevisionRuleById(btmTypeVO.getRevisionruleid());
+// wupinEntity.setRevisionValue("1");
+//// }
+//
+// wupinEntity.setRevisionSeq(1);
+// wupinEntity.setVersionSeq(1);
+// //鎻掍釜鐐癸紝闇�瑕侀棶鍕囧摜鐗堟湰闂锛屽睍绀洪粯璁や负1
+// wupinEntity.setVersionValue("1");
+// wupinEntity.setLctid("wupinLC");
+// wupinEntity.setLcStatus("Editing");
+// wupinEntity.setId("");
+// wupinEntity.setName("");
+// wupinEntity.setDescription("");
+// wupinEntity.setOwner(userName);
+// wupinEntity.setCheckinby(userName);
+// wupinEntity.setCopyFromVersion("");
+// wupinEntity.setMaterialtype(1001);
+// wupinEntity.setCaigouwl("true");
+// wupinEntity.setShifoupihaoguanli("true");
+// wupinEntity.setKucunwl("true");
+// wupinEntity.setXiaoshouwl("false");
+// wupinEntity.setPassing("true");
// this.initTypeAttributeValue(wupinEntity,btmTypeVO);
- return wupinEntity;
+// return wupinEntity;
// return cbo;
@@ -907,15 +963,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;
- }
+ }
/**
@@ -1034,6 +1090,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())
@@ -1236,10 +1293,10 @@
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
if (!CollectionUtils.isEmpty(conditionMap)) {
Map<String, String> andConditionMap = new HashMap<>();
- andConditionMap.put("islastr", "1");
- andConditionMap.put("islastv", "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);
@@ -1346,21 +1403,33 @@
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));
+// });
+// 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));
- });
+// 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.setData(dataList);
dataGrid.setTotal(Long.parseLong(commonsMapper.selectBySql(sqlBO.getSqlCount()).get(0).values().toArray()[0].toString()));
}
return dataGrid;
@@ -1423,17 +1492,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() + ")");
+ }
+ });
}
}
@@ -1476,8 +1555,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;
@@ -1526,9 +1606,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);
@@ -1544,11 +1626,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);
}
@@ -1618,7 +1709,10 @@
}
//瑕佹敼锛岃〃鏄庤幏鍙栨湁闂
// String tableName = VciBaseUtil.getTableName(btmType);
- String tableName = "pl_code_wupin";
+// 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))
@@ -1751,9 +1845,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.");
- }
+ //寰呭畬鍠�
+// 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)
@@ -2066,7 +2161,7 @@
} 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_wupin where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED +
+ 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("lastr", "1");
@@ -2384,10 +2479,20 @@
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("鏁版嵁鍦ㄧ郴缁熶腑涓嶅瓨鍦紝鏄惁鍥犱负淇敼杩囦笟鍔$被鍨嬶紵");
@@ -2400,7 +2505,7 @@
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");
// }
@@ -2824,27 +2929,31 @@
MdmUIInfoVO uiInfoVO = getTableDefineByTemplateVO(getUsedTemplateByClassifyOid(codeClassifyOid));
uiInfoVO.setLeaf(classifyService.countChildrenByClassifyOid(codeClassifyOid) == 0);
if (StringUtils.isNotBlank(functionId) && !"~".equalsIgnoreCase(functionId)) {
+ List<Menu> buttonVOS = iSysClient.getMenuButtonByType(uiInfoVO.getTemplateVO().getBtmTypeId()).getData();
+
//鍔熻兘鎸夐挳鏈嶅姟杩樻湭瀹炵幇锛岀瓑瀹炵幇浜嗭紝鍦ㄨ繘琛岃皟鐢�
- //List<SmOperationVO> operationVOS = operationService.listButtonByFunctionId(functionId);
+// 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;
}
@@ -2883,4 +2992,184 @@
}
return buttonVOList;
}
+
+ /**
+ * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鎻掑叆鎿嶄綔
+ *
+ * @param btmType 涓氬姟绫诲瀷
+ * @param baseModels 澶勭悊鏁版嵁
+ * @return 澶勭悊鎴愬姛鏁版嵁鏉℃暟
+ */
+ @Override
+ public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) throws Exception {
+ //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+ 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.toString());
+ }
+ });
+ return commonsMapper.insertByBaseModel(listR.getData().get(0).getTableName(), maps.get(0), maps);
+ }
+
+ /**
+ * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩竜id闆嗗悎鏌ヨ鏁版嵁杩涜杩斿洖
+ *
+ * @param btmType 涓氬姟绫诲瀷
+ * @param oids 闇�瑕佹煡璇㈢殑oid闆嗗悎 閫楀彿鍒嗗紑
+ * @return 鏌ヨ鍑虹殑鏁版嵁
+ */
+ @Override
+ public List<BaseModel> selectByTypeAndOid(String btmType, String oids) throws IllegalAccessException, NoSuchFieldException, InstantiationException, InvocationTargetException, IntrospectionException, SQLException {
+
+ //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
+ if(listR.getData().size() == 0){
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
+ //鏌ヨ鏁版嵁
+ List<Map> maps = commonsMapper.selectBySql("select * from " + listR.getData().get(0).getTableName() + " where oid in ("
+ + VciBaseUtil.toInSql(oids.toString()) + ")");
+
+ 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());
+ }
+ }
+ }
+ for (Object key : map.keySet()) {
+ map.put(key,String.valueOf(map.get(key)));
+ }
+
+ ((BaseModel) obj).setData(map);
+ baseModels.add((BaseModel) obj);
+ }
+ return baseModels;
+ }
+
+
+ /**
+ * 鏍规嵁涓氬姟绫诲瀷鍚嶇О鍒涘缓涓氬姟鏁版嵁婧愬璞�
+ * @param boName 涓氬姟绫诲瀷鍚嶇О
+ * @return 涓氬姟鏁版嵁瀵硅薄
+ */
+ public BaseModel createBaseModel(String boName) {
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(boName));
+ String userName = AuthUtil.getUser().getUserName();
+ BaseModel bo = new BaseModel();
+// bo.setOid(VciBaseUtil.getPk());
+// bo.setRevisionid(VciBaseUtil.getPk());
+// bo.setNameoid(VciBaseUtil.getPk());
+ bo.setBtmname(boName);
+ bo.setLastR("1");
+ bo.setFirstR("1");
+ bo.setFirstV("1");
+ bo.setLastV("1");
+ bo.setCreator(userName);
+ bo.setCreateTime(new Date());
+ bo.setLastModifier(userName);
+ bo.setLastModifyTime(new Date());
+ bo.setRevisionRule(listR.getData().get(0).getRevisionRuleId());
+ bo.setVersionRule(String.valueOf(listR.getData().get(0).getVersionRule()));
+ if(StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId())){
+ R<List<RevisionRuleVO>> revisionRuleVO = revisionRuleClient
+ .selectByIdCollection(Collections.singletonList(listR.getData().get(0).getRevisionRuleId()));
+ bo.setRevisionValue(revisionRuleVO.getData().get(0).getStartCode());
+ }
+ bo.setRevisionSeq(1);
+ bo.setVersionSeq(1);
+ bo.setVersionValue(getVersionValue(WebUtil.getInt(listR.getData().get(0).getVersionRule())));
+ 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.setId("");
+ bo.setName("");
+ bo.setDescription("");
+ bo.setOwner(userName);
+// bo.setCheckinby(userName);
+ bo.setCopyFromVersion("");
+// this.initTypeAttributeValue(bo,btmTypeVO);
+ return bo;
+ }
+
+ /**
+ * 鑾峰彇鐗堟鐨勫��
+ * @param verRuleName 鐗堟鐨勮鍒�
+ * @return 鐗堟鐨勫�硷紝娌℃湁瑙勫垯鍒欎负绌�
+ */
+ private String getVersionValue(int verRuleName) {
+ if (verRuleName == 0) {
+ return "1";
+ } else if (verRuleName == 1) {
+ return "a";
+ } else if (verRuleName == 2) {
+ return "0";
+ }
+ return "";
+ }
+
+ /**
+ * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鏇存柊鎿嶄綔
+ *
+ * @param btmType 涓氬姟绫诲瀷
+ * @param baseModels 澶勭悊鏁版嵁
+ * @return 澶勭悊鐘舵��
+ */
+ @Override
+ public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) throws Exception {
+ //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+ 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("鏇存柊鎴愬姛锛�");
+ }
}
--
Gitblit v1.9.3