From d9183aa80ae17d36b79dda48c6b1d7fa22a80ee3 Mon Sep 17 00:00:00 2001 From: xiejun <xiejun@vci-tech.com> Date: 星期三, 22 一月 2025 11:20:41 +0800 Subject: [PATCH] 现场型号代号/人员/组织接口调试 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java | 763 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 751 insertions(+), 12 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java index 61722bd..1874a0c 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java @@ -1,33 +1,68 @@ package com.vci.ubcs.code.service.impl; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.nacos.common.utils.StringUtils; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; + +import com.vci.ubcs.code.dto.CodeClassifyTemplateAttrDTO; +import com.vci.ubcs.code.entity.CodeClassify; import com.vci.ubcs.code.entity.CodeClassifyTemplateAttr; -import com.vci.ubcs.code.entity.CodeClstemplateEntity; +import com.vci.ubcs.code.entity.CodeClassifyTemplate; +import com.vci.ubcs.code.entity.CodeSynonym; +import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum; import com.vci.ubcs.code.mapper.CodeClassifyTemplateAttrMapper; +import com.vci.ubcs.code.mapper.CodeClassifyTemplateMapper; import com.vci.ubcs.code.service.ICodeClassifyTemplateAttrService; +import com.vci.ubcs.code.service.ICodeReferConfigService; +import com.vci.ubcs.code.service.ICodeSynonymService; +import com.vci.ubcs.code.service.ICodeTempphaseService; +import com.vci.ubcs.code.vo.CodeReferConfigVO; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO; -import com.vci.ubcs.code.wrapper.CodeClstempattrWrapper; -import com.vci.ubcs.common.utils.PageDO2PageVO; +import com.vci.ubcs.code.vo.pagemodel.CodeSynonymVO; +import com.vci.ubcs.code.vo.pagemodel.UIFormReferVO; +import com.vci.ubcs.code.wrapper.CodeClassifyTemplateAttrWrapper; +import com.vci.ubcs.omd.feign.IBtmTypeClient; +import com.vci.ubcs.omd.vo.BtmTypeAttributeVO; +import com.vci.ubcs.omd.vo.BtmTypeVO; import com.vci.ubcs.starter.exception.VciBaseException; -import com.vci.ubcs.starter.util.Map2MPLLambdaUtil; -import com.vci.ubcs.starter.util.MybatisParameterUtil; +import com.vci.ubcs.starter.revision.service.RevisionModelUtil; +import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; +import com.vci.ubcs.starter.util.MdmBtmTypeConstant; +import com.vci.ubcs.starter.util.PatternUtil; +import com.vci.ubcs.starter.util.UBCSCondition; import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; -import com.vci.ubcs.starter.web.pagemodel.DataGrid; +import com.vci.ubcs.starter.web.pagemodel.*; import com.vci.ubcs.starter.web.pagemodel.PageHelper; import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.VciBaseUtil; +import com.vci.ubcs.starter.web.util.VciDateUtil; +import com.vci.ubcs.system.entity.DictBiz; +import com.vci.ubcs.system.feign.IDictBizClient; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; + +import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.*; +import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST; /** * 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф湇鍔� @@ -42,6 +77,35 @@ */ @Resource private CodeClassifyTemplateAttrMapper codeClassifyTemplateAttrMapper; + + @Resource + IDictBizClient iDictBizClient; + + @Resource + CodeClassifyTemplateMapper codeClassifyTemplateMapper; + + @Resource + private ICodeReferConfigService codeReferConfigService; + + @Resource + @Lazy + ICodeTempphaseService codeTempphaseService; + + /** + * 瀵硅薄鐨勬搷浣� + */ + @Autowired(required = false) + private RevisionModelUtil revisionModelUtil; + + /** + * 灞炴�ф湇鍔″璞� + */ + @Resource + private IBtmTypeClient btmTypeClient; + + @Resource + @Lazy + private ICodeSynonymService codeSynonymService; /** * 鏌ヨ鎵�鏈夌殑涓婚搴撳垎绫荤殑妯℃澘灞炴�� @@ -70,7 +134,7 @@ IPage<CodeClassifyTemplateAttr> doList = codeClassifyTemplateAttrMapper.selectPage(Condition.getPage(query), mpjLambdaWrapper); IPage<CodeClassifyTemplateAttrVO> voList = new Page<>(); if (!CollectionUtils.isEmpty(doList.getRecords())) { - voList = CodeClstempattrWrapper.build().pageVO(doList); + voList = CodeClassifyTemplateAttrWrapper.build().pageVO(doList); } return voList; } @@ -83,11 +147,11 @@ * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 */ @Override - public IPage<CodeClassifyTemplateAttrVO> refDataGridCodeClassifyTemplateAttr(Map<String, Object> conditionMap, PageHelper pageHelper) throws VciBaseException{ + public IPage<CodeClassifyTemplateAttrVO> refDataGridCodeClassifyTemplateAttr(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{ if(conditionMap == null){ - conditionMap = new HashMap<String, Object>(); + conditionMap = new HashMap<String, String>(); } - return gridCodeClassifyTemplateAttr(Map2MPLLambdaUtil.getMPJLambdaWrapper(conditionMap, CodeClassifyTemplateAttr.class),pageHelper); + return gridCodeClassifyTemplateAttr(UBCSCondition.getMPJLambdaWrapperByMapString(conditionMap, CodeClassifyTemplateAttr.class),pageHelper); } @Override @@ -112,7 +176,11 @@ // conditionMap.put("classifytemplateoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(templateOids.toArray(new String[0])) + ")"); // PageHelper pageHelper = new PageHelper(-1); // pageHelper.addDefaultAsc("orderNum"); - List<CodeClassifyTemplateAttr> attrDOS = baseMapper.selectByClassifytemplateoid(VciBaseUtil.toInSql(templateOids.toArray(new String[0]))); +// QueryWrapper<CodeClassifyTemplateAttr> wrapper = new QueryWrapper<>(); +// wrapper.in("classifytemplateoid",templateOids); +// wrapper.orderByAsc("orderNum"); + List<CodeClassifyTemplateAttr> attrDOS = baseMapper.selectByClassifytemplateoidRel(VciBaseUtil.toInSql(templateOids.toArray(new String[0]))); +// baseMapper.selectByClassifytemplateoid(VciBaseUtil.toInSql(templateOids.toArray(new String[0]))); if(!CollectionUtils.isEmpty(attrDOS)){ attrDOList.addAll(attrDOS); @@ -148,16 +216,687 @@ * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 */ @Override - public CodeClassifyTemplateAttrVO codeClassifyTemplateAttrDO2VO(CodeClassifyTemplateAttr codeClassifyTemplateAttrDO) throws VciBaseException{ + public CodeClassifyTemplateAttrVO codeClassifyTemplateAttrDO2VO(CodeClassifyTemplateAttr codeClassifyTemplateAttrDO) throws VciBaseException{ CodeClassifyTemplateAttrVO vo = new CodeClassifyTemplateAttrVO(); if(codeClassifyTemplateAttrDO != null){ BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDO,vo); //濡傛灉鏈塴cstatus鐨勭被鐨勮瘽 vo.setAttributeDataTypeText(VciFieldTypeEnum.getTextByValue(vo.getAttributeDataType())); + if(Func.isNotBlank(codeClassifyTemplateAttrDO.getSysonymRuleOids())){ + vo.setSysonymRuleOidsText( + codeSynonymService.selectNameByWrapper( + Wrappers.<CodeSynonym>query() + .lambda().in(CodeSynonym::getOid, Func.toStrList(",", codeClassifyTemplateAttrDO.getSysonymRuleOids())) + ) + ); + } } return vo; } + // @Override +// public IPage<CodeClassifyTemplateAttrVO> selectCodeClstempattrPage(IPage<CodeClassifyTemplateAttrVO> page, CodeClassifyTemplateAttrVO CodeClstempattr) { +// return page.setRecords(baseMapper.selectCodeClstempattrPage(page, CodeClstempattr)); +// } +// /** +// * 浣跨敤妯℃澘鐨勪富閿幏鍙栨ā鏉跨殑灞炴��--鎵归噺 +// * +// * @param templateOidCollection 妯℃澘鐨勪富閿� +// * @return 灞炴�х殑淇℃伅 +// */ +// @Override +// public List<CodeClassifyTemplateAttrVO> listCodeClassifyTemplateAttrByTemplateOids(Collection<String> templateOidCollection) { +// if(CollectionUtils.isEmpty(templateOidCollection)){ +// return new ArrayList<>(); +// } +// List<CodeClassifyTemplateAttr> attrDOList = new ArrayList<>(); +// VciBaseUtil.switchCollectionForOracleIn(templateOidCollection).stream().forEach(templateOids->{ +//// Map<String,String> conditionMap = new HashMap<>(); +//// conditionMap.put("classifytemplateoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(templateOids.toArray(new String[0])) + ")"); +//// PageHelper pageHelper = new PageHelper(-1); +//// pageHelper.addDefaultAsc("orderNum"); +// List<CodeClassifyTemplateAttr> attrDOS = baseMapper.selectByClassifytemplateoid(VciBaseUtil.toInSql(templateOids.toArray(new String[0]))); +// +// if(!CollectionUtils.isEmpty(attrDOS)){ +// attrDOList.addAll(attrDOS); +// } +// }); +// return codeClassifyTemplateAttrDO2VOs(attrDOList); +// } + +// /** +// * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞� +// * @param codeClassifyTemplateAttrDOs 鏁版嵁瀵硅薄鍒楄〃 +// * @return 鏄剧ず瀵硅薄 +// */ +// @Override +// public List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrDO2VOs(Collection<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOs){ +// List<CodeClassifyTemplateAttrVO> voList = new ArrayList<CodeClassifyTemplateAttrVO>(); +// if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrDOs)){ +// for(CodeClassifyTemplateAttr s: codeClassifyTemplateAttrDOs){ +// CodeClassifyTemplateAttrVO vo = codeClassifyTemplateAttrDO2VO(s); +// if(vo != null){ +// voList.add(vo); +// } +// } +// } +// return voList; +// } + +// /** +// * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞� +// * @param codeClassifyTemplateAttrDO 鏁版嵁瀵硅薄 +// * @return 鏄剧ず瀵硅薄 +// */ +// @Override +// public CodeClassifyTemplateAttrVO codeClassifyTemplateAttrDO2VO(CodeClassifyTemplateAttr codeClassifyTemplateAttrDO){ +// CodeClassifyTemplateAttrVO vo = new CodeClassifyTemplateAttrVO(); +// if(codeClassifyTemplateAttrDO != null){ +// BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDO,vo); +// //濡傛灉鏈塴cstatus鐨勭被鐨勮瘽 +// vo.setAttributeDataTypeText(VciFieldTypeEnum.getTextByValue(vo.getAttributeDataType())); +// } +// return vo; +// } + + /** + * 鏌ヨ鎵�鏈夌殑涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param conditionMap 鏌ヨ鏉′欢 + * @param pageHelper 鍒嗛〉鍜屾帓搴� + * @return 鎵ц缁撴灉 + */ + @Override + public DataGrid<CodeClassifyTemplateAttrVO> gridCodeClassifyTemplateAttr(Map<String, String> conditionMap, PageHelper pageHelper) { + DataGrid<CodeClassifyTemplateAttrVO> dataGrid=new DataGrid<>(); + //娌℃湁浼犻�掑弬鏁帮紝灏变笉鎵ц鏌ヨ閫昏緫 + if(conditionMap.size()==0){ + dataGrid.setData(new ArrayList<>()); + dataGrid.setTotal(0); + return dataGrid; + } + + if (pageHelper == null) { + pageHelper = new PageHelper(-1); + } + pageHelper.addDefaultAsc("ordernum"); + Query query = new Query(); + query.setAscs("ordernum"); + query.setSize(pageHelper.getLimit()); + if(pageHelper.getLimit() != -1){ + query.setCurrent(pageHelper.getPage()); + } + IPage<CodeClassifyTemplateAttr> doList = baseMapper. + selectPage(Condition.getPage(query), UBCSCondition.getQueryWrapperByMapString(conditionMap,CodeClassifyTemplateAttr.class).orderByAsc("ordernum")); + if (!CollectionUtils.isEmpty(doList.getRecords())) { + dataGrid.setData(codeClassifyTemplateAttrDO2VOs(doList.getRecords())); + dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(baseMapper.selectCount(UBCSCondition.getQueryWrapperByMapString(conditionMap,CodeClassifyTemplateAttr.class))))); + } + return dataGrid; + } + + /** + * 澧炲姞涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉 + */ + @Override + public CodeClassifyTemplateAttrVO addSave(CodeClassifyTemplateAttrDTO codeClassifyTemplateAttrDTO){ + VciBaseUtil.alertNotNull(codeClassifyTemplateAttrDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + //灏咲TO杞崲涓篋O + CodeClassifyTemplateAttr codeClassifyTemplateAttrDO = new CodeClassifyTemplateAttr(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDTO,codeClassifyTemplateAttrDO); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeClassifyTemplateAttrDO,"codeclstempattr"); + baseMapper.insert(codeClassifyTemplateAttrDO); + return codeClassifyTemplateAttrDO2VO(codeClassifyTemplateAttrDO); + } + + /** + * 鎵归噺娣诲姞 + * @param codeClassifyTemplateAttrDTOs 鏁版嵁浼犺緭瀵硅薄 + * @return 淇濆瓨鍚庣殑鏄剧ず瀵硅薄 + */ + @Override + @Transactional + public List<CodeClassifyTemplateAttrVO> batchAddSave(List<CodeClassifyTemplateAttrDTO> codeClassifyTemplateAttrDTOs) { + if(CollectionUtils.isEmpty(codeClassifyTemplateAttrDTOs)){ + return new ArrayList<>(); + } + + //鍙栨墍鏈夊睘鎬х殑鑻辨枃鍚嶇О锛岀涓変釜楠岃瘉闇�瑕佺敤鍒� + Map<String,CodeClassifyTemplateAttrDTO> attrDTOMap =codeClassifyTemplateAttrDTOs.stream().collect(Collectors.toMap(s->s.getId().toLowerCase(Locale.ROOT), t->t)); + + //鎵惧睘鎬т腑鏂囧悕瀛楅噸澶� + Map<String, Long> nameCountMap = codeClassifyTemplateAttrDTOs.stream().collect(Collectors.groupingBy(s -> s.getName(), Collectors.counting())); + List<String> repeatNameList = nameCountMap.keySet().stream().filter(s -> nameCountMap.get(s) > 1).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(repeatNameList)){ + throw new VciBaseException("妯℃澘灞炴�т腑鏂囧悕绉般�恵0}銆戦噸澶�",new String[]{ repeatNameList.stream().collect(Collectors.joining(","))}); + } + //鎵惧睘鎬ц嫳鏂囧悕瀛楅噸澶� + Map<String, Long> idCountMap = codeClassifyTemplateAttrDTOs.stream().collect(Collectors.groupingBy(s -> s.getId().toLowerCase(Locale.ROOT), Collectors.counting())); + List<String> repeatIdList = idCountMap.keySet().stream().filter(s -> idCountMap.get(s) > 1).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(repeatIdList)){ + throw new VciBaseException("妯℃澘灞炴�ц嫳鏂囧悕绉般�恵0}銆戦噸澶�",new String[]{ repeatIdList.stream().collect(Collectors.joining(","))}); + } + + // 妯℃澘oid + String CLASSIFYTEMPLATEOID = null; + // + CodeReferConfigVO codeReferConfigVO = null; + //杞崲 + List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOInsert = new ArrayList<CodeClassifyTemplateAttr>(); + List<String> prefix = new ArrayList<>(); + List<String> suffix = new ArrayList<>(); + List<String> dateFormates = new ArrayList<>(); + for (CodeClassifyTemplateAttrDTO codeClassifyTemplateAttrDTO:codeClassifyTemplateAttrDTOs){ + VciBaseUtil.alertNotNull(codeClassifyTemplateAttrDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + //灏咲TO杞崲涓篋O + CodeClassifyTemplateAttr codeClassifyTemplateAttrDO = new CodeClassifyTemplateAttr(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDTO,codeClassifyTemplateAttrDO); + codeClassifyTemplateAttrDO.setCreateTime(codeClassifyTemplateAttrDO.getCreateTime()!=null?codeClassifyTemplateAttrDO.getCreateTime():new Date()); + // codeClassifyTemplateAttrDO.setCreator(String.valueOf(AuthUtil.getUser().getUserId())); + codeClassifyTemplateAttrDO.setCreator(String.valueOf(AuthUtil.getUser().getAccount())); + codeClassifyTemplateAttrDO.setLastModifyTime(new Date()); + // codeClassifyTemplateAttrDO.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); + codeClassifyTemplateAttrDO.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount())); + codeClassifyTemplateAttrDOInsert.add(codeClassifyTemplateAttrDO); + + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getPrefixValue())){ + prefix.add(codeClassifyTemplateAttrDO.getPrefixValue()); + } + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getSuffixValue())){ + suffix.add(codeClassifyTemplateAttrDO.getSuffixValue()); + } + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getCodeDateFormat())){ + dateFormates.add(codeClassifyTemplateAttrDO.getCodeDateFormat()); + } + //鍒ゆ柇浼犺繃鏉ョ殑鏋氫妇娉ㄥ叆鏄惁鏄痡sonArr鏍煎紡 + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getEnumString())&&!checkKVArr(codeClassifyTemplateAttrDO.getEnumString())){ + throw new VciBaseException("{0}{1}灞炴�х殑鏋氫妇娉ㄥ叆鏁版嵁鏍煎紡閿欒!",new String[]{codeClassifyTemplateAttrDO.getId(),codeClassifyTemplateAttrDO.getName()}); + } + //鍒嗙被娉ㄥ叆 + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getClassifyInvokeAttr()) + && !CodeLevelTypeEnum.MIN.getValue().equalsIgnoreCase(codeClassifyTemplateAttrDO.getClassifyInvokeLevel()) + && VciBaseUtil.getInt(codeClassifyTemplateAttrDO.getClassifyInvokeLevel()) < 0){ + throw new VciBaseException("{0}{1}灞炴�х殑鏄垎绫绘敞鍏ワ紝浣嗘槸娉ㄥ叆灞傜骇涓嶈兘灏忎簬0!",new String[]{codeClassifyTemplateAttrDO.getId(),codeClassifyTemplateAttrDO.getName()}); + } + + //鍒ゆ柇浼犺繃鏉ョ殑鍙傜収閰嶇疆鏄惁鏄痡son鏍煎紡 + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getReferConfig())&&!checkKVObj(codeClassifyTemplateAttrDO.getReferConfig())){ + throw new VciBaseException("{0}{1}灞炴�х殑鍙傜収閰嶇疆鏁版嵁鏍煎紡閿欒!",new String[]{codeClassifyTemplateAttrDO.getId(),codeClassifyTemplateAttrDO.getName()}); + } + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getCodeDateFormat()) && !checkDateFormat(codeClassifyTemplateAttrDO.getCodeDateFormat())){ + throw new VciBaseException("{0}{1}灞炴�х殑鏃堕棿鏍煎紡涓嶇鍚堣姹�",new String[]{codeClassifyTemplateAttrDO.getId(),codeClassifyTemplateAttrDO.getName()}); + } + //濡傛灉鏄粍鍚堣鍒欙紝閲岄潰浣跨敤鐨勫睘鎬т笉鑳界己澶憋紝涔熼兘寰楁樉绀� + String componentrule = codeClassifyTemplateAttrDTO.getComponentRule(); + boolean isContainsDynamicParameter = PatternUtil.isContainsDynamicParameter(componentrule); + if(isContainsDynamicParameter){ + List<String> userdAttrList = PatternUtil.getKeyListByContent(componentrule);//鍖呭惈鐨勬墍鏈�${xxx}涓殑xxx + if(!CollectionUtils.isEmpty(userdAttrList)){ + String unExistAttr = userdAttrList.stream().filter(s -> !attrDTOMap.containsKey(s.toLowerCase(Locale.ROOT))).collect(Collectors.joining(",")); + if(StringUtils.isNotBlank(unExistAttr)){ + throw new VciBaseException("{0}灞炴�ф槸缁勫悎瑙勫垯锛屼絾鏄鍒欓噷鍖呭惈鐨勫睘鎬{1}]鍦ㄥ綋鍓嶆ā鏉夸腑涓嶅瓨鍦�!",new String[]{codeClassifyTemplateAttrDO.getName(), unExistAttr}); + } + //瑕佺湅鐪嬭〃鍗曟槸鍚︽樉绀� + String unFormDisplayAttr = userdAttrList.stream().filter(s -> !VciBaseUtil.getBoolean(attrDTOMap.getOrDefault(s.toLowerCase(Locale.ROOT), + new CodeClassifyTemplateAttrDTO()).getFormDisplayFlag())).collect(Collectors.joining(",")); + if(StringUtils.isNotBlank(unFormDisplayAttr)){ + throw new VciBaseException("{0}灞炴�ф槸缁勫悎瑙勫垯锛屼絾鏄鍒欓噷鍖呭惈鐨勫睘鎬{1}]鍦ㄥ綋鍓嶆ā鏉夸腑娌℃湁璁剧疆 琛ㄥ崟鏄剧ず ",new String[]{codeClassifyTemplateAttrDO.getName(),unFormDisplayAttr}); + } + } + } + + if(CLASSIFYTEMPLATEOID==null){ + CLASSIFYTEMPLATEOID = codeClassifyTemplateAttrDTO.getClassifyTemplateOid(); + } + + // 鍙傜収閰嶇疆鏄惁闇�瑕佹寔涔呭寲 + codeReferConfigVO = JSONObject.parseObject(codeClassifyTemplateAttrDTO.getReferConfig(), CodeReferConfigVO.class); + if(Func.isNotEmpty(codeReferConfigVO) && codeReferConfigVO.getIsPersistence()=="true"){ + codeReferConfigService.insert(codeReferConfigVO); + } + } + + //鍏堥兘鍒犱簡 + Map<String,Object> condition = new HashMap<>(); + condition.put("CLASSIFYTEMPLATEOID",CLASSIFYTEMPLATEOID); + List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDODelete = baseMapper.selectByMap(condition); + + //oids + List<String> oids = new ArrayList<String>(); + for (CodeClassifyTemplateAttr codeClassifyTemplateAttrDO:codeClassifyTemplateAttrDODelete){ + oids.add(codeClassifyTemplateAttrDO.getOid()); + } + if(!CollectionUtils.isEmpty(oids)){ + this.removeBatchByIds(oids); + } + //鍐嶆柊澧� + if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrDOInsert)){ + this.saveBatch(codeClassifyTemplateAttrDOInsert); + } + + //璋冪敤闃舵 + if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrDOInsert)){ + codeTempphaseService.codeTemplateAttrModifyTrigger(codeClassifyTemplateAttrDOInsert); + + } + + //澶勭悊鍙緭鍙�夌殑瀛楃 + if(!CollectionUtils.isEmpty(prefix)){ + for (String s : prefix) { + DictBiz dictBiz = new DictBiz(); + dictBiz.setCode(MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR); + dictBiz.setDictKey("prefix"); + dictBiz.setDictValue(s); + iDictBizClient.getCheck(dictBiz) ; + } + } + if(!CollectionUtils.isEmpty(suffix)){ + for (String s : suffix) { + DictBiz dictBiz = new DictBiz(); + dictBiz.setCode(MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR); + dictBiz.setDictKey("suffix"); + dictBiz.setDictValue(s); + iDictBizClient.getCheck(dictBiz) ; + } + } + if(!CollectionUtils.isEmpty(dateFormates)){ + for (String s : dateFormates) { + DictBiz dictBiz = new DictBiz(); + dictBiz.setCode(MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR); + dictBiz.setDictKey("dateFormates"); + dictBiz.setDictValue(s); + iDictBizClient.getCheck(dictBiz) ; + } + } + return codeClassifyTemplateAttrDO2VOs(codeClassifyTemplateAttrDOInsert); + } + + public boolean checkKVArr(String kvString){ + boolean isKV = true; + try { + JSONObject.parseArray(kvString, KeyValue.class); + }catch (Exception e){ + isKV=false; + } + return isKV; + } + + public boolean checkKVObj(String kvString){ + boolean isKV = true; + try { + JSONObject.parseObject(kvString, UIFormReferVO.class); + }catch (Exception e){ + isKV=false; + } + return isKV; + } + + /** + * 鏍¢獙鏃堕棿鏍煎紡 + * @param dateFormat 鏃堕棿鏍煎紡 + * @return true琛ㄧず鏍¢獙閫氳繃 + */ + public boolean checkDateFormat(String dateFormat){ + try{ + VciDateUtil.date2Str(new Date(),dateFormat); + return true; + }catch (Throwable e){ + return false; + } + } + + /** + * 淇敼涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + public R editSave(CodeClassifyTemplateAttrDTO codeClassifyTemplateAttrDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeClassifyTemplateAttrDTO,"鏁版嵁瀵硅薄",codeClassifyTemplateAttrDTO.getOid(),"涓婚搴撳垎绫荤殑妯℃澘灞炴�т富閿�"); + + //鍒ゆ柇浼犺繃鏉ョ殑鏋氫妇娉ㄥ叆鏄惁鏄痡sonArr鏍煎紡 + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDTO.getEnumString())&&!checkKVArr(codeClassifyTemplateAttrDTO.getEnumString())){ + throw new VciBaseException("鏋氫妇娉ㄥ叆鏁版嵁鏍煎紡閿欒!"); + } + + //鍒ゆ柇浼犺繃鏉ョ殑鍙傜収閰嶇疆鏄惁鏄痡son鏍煎紡 + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDTO.getReferBtmId())&&!checkKVObj(codeClassifyTemplateAttrDTO.getReferBtmId())){ + throw new VciBaseException("鏋氫妇娉ㄥ叆鏁版嵁鏍煎紡閿欒!"); + } + + + //妫�鏌s + CodeClassifyTemplateAttr codeClassifyTemplateAttrDOCopyFromDTO = new CodeClassifyTemplateAttr(); +// BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDTO,codeClassifyTemplateAttrDOCopyFromDTO); +// boolean tsBoolean = boService.checkTs(codeClassifyTemplateAttrDOCopyFromDTO); + + //妫�鏌s +// Map<String,Object> condition = new HashMap<>(2); +// condition.put("oid",codeClassifyTemplateAttrDTO.getOid()); +// condition.put("ts",codeClassifyTemplateAttrDTO.getTs()); + CodeClassifyTemplateAttr detail = baseMapper.selectById(codeClassifyTemplateAttrDTO.getOid()); + if(!detail.getTs().toString().equals(codeClassifyTemplateAttrDTO.getTs().toString())){//涓嶆槸鏈�鏂扮殑涓嶈鏀� + return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); + } + + //灏咲TO杞崲涓篋O + CodeClassifyTemplateAttr codeClassifyTemplateAttrDO = baseMapper.selectById(codeClassifyTemplateAttrDTO.getOid()); + revisionModelUtil.copyFromDTOIgnore(codeClassifyTemplateAttrDTO,codeClassifyTemplateAttrDO); + baseMapper.updateById(codeClassifyTemplateAttrDO); + return R.data(codeClassifyTemplateAttrDO2VO(codeClassifyTemplateAttrDO)); + } + + /** + * 鍒犻櫎涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈� + * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� + * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯� + */ + @Override + public R deleteCodeClassifyTemplateAttr(CodeClassifyTemplateAttrDTO codeClassifyTemplateAttrDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeClassifyTemplateAttrDTO,"涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹璞�",codeClassifyTemplateAttrDTO.getOid(),"涓婚搴撳垎绫荤殑妯℃澘灞炴�х殑涓婚敭"); + CodeClassifyTemplateAttr codeClassifyTemplateAttrDO = baseMapper.selectById(codeClassifyTemplateAttrDTO.getOid()); + R baseResult = checkIsCanDeleteForDO(codeClassifyTemplateAttrDTO,codeClassifyTemplateAttrDO); + if(baseResult.isSuccess()) { + }else{ + return baseResult; + } + //鎵ц鍒犻櫎鎿嶄綔 + int deleteNum = baseMapper.deleteById(codeClassifyTemplateAttrDO.getOid()); + return deleteNum>0?R.success(DELETE_SUCCESS):R.fail(DELETE_FAIL); + } + + /** + * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎 + * @param codeClassifyTemplateAttrDTO 鏁版嵁浼犺緭瀵硅薄 + * @param codeClassifyTemplateAttrDO 鏁版嵁搴撲腑鐨勬暟鎹璞� + * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾� + */ + private R checkIsCanDeleteForDO(CodeClassifyTemplateAttrDTO codeClassifyTemplateAttrDTO, CodeClassifyTemplateAttr codeClassifyTemplateAttrDO) { +// boService.checkTs(codeClassifyTemplateAttrDO); +// Map<String,Object> condition = new HashMap<>(2); +// condition.put("oid",codeClassifyTemplateAttrDTO.getOid()); +// condition.put("ts",codeClassifyTemplateAttrDTO.getTs()); + CodeClassifyTemplateAttr detail = baseMapper.selectById(codeClassifyTemplateAttrDTO.getOid()); +// .selectOne(Condition.getQueryWrapper(condition,CodeClstempattrEntity.class)); + + if(!detail.getTs().toString().equals(codeClassifyTemplateAttrDTO.getTs().toString())){//涓嶆槸鏈�鏂扮殑涓嶈鏀� + return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); + } + if(!checkIsLinked(codeClassifyTemplateAttrDO.getOid())) { + return R.success("鍙互鍒犻櫎锛�"); + }else{ + return R.fail(DATA_LINKED_NOT_DELETE); + } + } + + /** + * 鏍¢獙鏄惁琚紩鐢� + * @param oid 涓婚敭 + * @throws VciBaseException 琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父 + */ + private boolean checkIsLinked(String oid) throws VciBaseException{ + //TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟 + return false; + } + + /** + * 涓婚敭鑾峰彇涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param oid 涓婚敭 + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞� + * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父 + */ + @Override + public CodeClassifyTemplateAttrVO getObjectByOid(String oid) throws VciBaseException{ + return codeClassifyTemplateAttrDO2VO(selectByOid(oid)); + } + + /** + * 涓婚敭鏌ヨ鏁版嵁瀵硅薄 + * @param oid 涓婚敭 + * @return 鏁版嵁瀵硅薄 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + private CodeClassifyTemplateAttr selectByOid(String oid) throws VciBaseException{ + VciBaseUtil.alertNotNull(oid,"涓婚敭"); + CodeClassifyTemplateAttr codeClassifyTemplateAttrDO = baseMapper.selectById(oid.trim()); + if(codeClassifyTemplateAttrDO == null || StringUtils.isBlank(codeClassifyTemplateAttrDO.getOid())){ + throw new VciBaseException(DATA_OID_NOT_EXIST); + } + return codeClassifyTemplateAttrDO; + } + + /** + * 涓婚敭鎵归噺鑾峰彇涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓� + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞� + * @throws VciBaseException 鏌ヨ鍑虹幇寮傚父鏃朵細鎶涘嚭 + */ + @Override + public Collection<CodeClassifyTemplateAttrVO> listCodeClassifyTemplateAttrByOids(Collection<String> oidCollections) { + VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎"); + List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOList = listCodeClassifyTemplateAttrDOByOidCollections(oidCollections); + return codeClassifyTemplateAttrDO2VOs(codeClassifyTemplateAttrDOList); + } + + /** + * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄 + * @param oidCollections 涓婚敭鐨勯泦鍚� + * @return 鏁版嵁瀵硅薄鍒楄〃 + */ + private List<CodeClassifyTemplateAttr> listCodeClassifyTemplateAttrDOByOidCollections(Collection<String> oidCollections){ + List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOList = new ArrayList<CodeClassifyTemplateAttr>(); + if(!CollectionUtils.isEmpty(oidCollections)){ + Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections); + for(Collection<String> oids: oidCollectionsList){ + List<CodeClassifyTemplateAttr> tempDOList = baseMapper.selectBatchIds(oids); + if(!CollectionUtils.isEmpty(tempDOList)){ + codeClassifyTemplateAttrDOList.addAll(tempDOList); + } + } + } + return codeClassifyTemplateAttrDOList; + } + + /** + * 鏌ヨ杩欎釜妯℃澘锛屼笟鍔$被鍨嬩笅鐨勬墍鏈夋湭閫夋嫨鐨勫睘鎬� + * @param baseQueryObject + * @return + */ + @Override + public DataGrid<BtmTypeAttributeVO> codeClassifyTemplateAttrByBtm(BaseQueryObject baseQueryObject){ + if(baseQueryObject.getConditionMap() == null){ + baseQueryObject.setConditionMap(new HashMap<>()); + } + DataGrid<BtmTypeAttributeVO> dataGrid=new DataGrid<BtmTypeAttributeVO>(); + //妯℃澘oid + String templateAttrOid = baseQueryObject.getConditionMap().get("oid"); + String name = baseQueryObject.getConditionMap().getOrDefault("name",""); + String id = baseQueryObject.getConditionMap().getOrDefault("id",""); + + //娌℃湁oid涓嶆墽琛岄�昏緫 + if(StringUtils.isBlank(templateAttrOid)){ + dataGrid.setData(new ArrayList<>()); + dataGrid.setTotal(0); + return dataGrid; + } + + //鏌ヨ妯℃澘瀵硅薄 + CodeClassifyTemplate codeClassifyTemplateDO = codeClassifyTemplateMapper.selectById(templateAttrOid); + // 娌℃湁妯℃澘瀵硅薄涓嶆墽琛岄�昏緫 + if(Objects.isNull(codeClassifyTemplateDO)){ + dataGrid.setData(new ArrayList<>()); + dataGrid.setTotal(0); + return dataGrid; + } + //杩欎釜涓氬姟绫诲瀷涓嬬殑鎵�鏈夊睘鎬� + R<BtmTypeVO> btmTypeVOR = btmTypeClient.getAllAttributeByBtmId(codeClassifyTemplateDO.getBtmTypeId()); + if(!btmTypeVOR.isSuccess()){ + throw new ServiceException("涓氬姟绫诲瀷feign璋冪敤閿欒锛�"); + } + + //杩欎釜妯℃澘涓嬪凡缁忔湁鐨勫睘鎬� + // VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateAttrDO.class); + // queryWrapper.addQueryMap("CLASSIFYTEMPLATEOID",templateAttrOid); + Map<String,Object> condition = new HashMap<>(1); + condition.put("CLASSIFYTEMPLATEOID",templateAttrOid); + + List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOList = baseMapper.selectByMap(condition); + + List<String> btmIds = new ArrayList<String>(); + for (CodeClassifyTemplateAttr codeClassifyTemplateAttrDO:codeClassifyTemplateAttrDOList){ + btmIds.add(codeClassifyTemplateAttrDO.getId()); + } + + //杩囨护鎺夊凡缁忓瓨鍦ㄧ殑灞炴�� + List<BtmTypeAttributeVO> boAttrss = new ArrayList<BtmTypeAttributeVO>(); + for (BtmTypeAttributeVO osBtmTypeAttributeVO:btmTypeVOR.getData().getAttributes()){ + if(!btmIds.contains(osBtmTypeAttributeVO.getId())){ + //鐪嬬湅鏄笉鏄湁妯$硦鏌ヨ + boolean inSearch = true; + if(StringUtils.isNotBlank(name) && !osBtmTypeAttributeVO.getName().contains(name.replace("*",""))){ + inSearch = false; + } + if(StringUtils.isNotBlank(id) && !osBtmTypeAttributeVO.getId().contains(id.replace("*",""))){ + inSearch = false; + } + if(inSearch) { + if(!VciFieldTypeEnum.VTDouble.equals(osBtmTypeAttributeVO.getAttrDataType())){ + osBtmTypeAttributeVO.setPrecisionLength(null); + osBtmTypeAttributeVO.setScaleLength(null); + } + boAttrss.add(osBtmTypeAttributeVO); + } + } + } + // 鎸夌収id鍗囧簭鎺掑簭 + boAttrss = boAttrss.stream().sorted(Comparator.comparing(BtmTypeAttributeVO::getId)).collect(Collectors.toList()); + dataGrid.setData(boAttrss); + dataGrid.setTotal(boAttrss.size()); + return dataGrid; + } + + /** + * 鏌ヨ杩欎釜妯℃澘锛屼笟鍔$被鍨嬩笅宸查�夋嫨鐨勫睘鎬� + * @param baseQueryObject + * @return + */ + @Override + public DataGrid<BtmTypeAttributeVO> codeClassifyTemplateAttrByBtmHave(BaseQueryObject baseQueryObject){ + DataGrid<BtmTypeAttributeVO> dataGrid=new DataGrid<BtmTypeAttributeVO>(); + //妯℃澘oid + String templateAttrOid = baseQueryObject.getConditionMap().get("oid"); + + //娌℃湁oid涓嶆墽琛岄�昏緫 + if(StringUtils.isBlank(templateAttrOid)){ + dataGrid.setData(new ArrayList<>()); + dataGrid.setTotal(0); + return dataGrid; + } + + //鏌ヨ妯℃澘瀵硅薄 + CodeClassifyTemplate codeClassifyTemplateDO = codeClassifyTemplateMapper.selectById(templateAttrOid); + + //杩欎釜涓氬姟绫诲瀷涓嬬殑鎵�鏈夊睘鎬� + // TODO 宸插畬鍠� + List<BtmTypeAttributeVO> boAttrs = (List<BtmTypeAttributeVO>) btmTypeClient.getAllAttributeByBtmId(codeClassifyTemplateDO.getBtmTypeId()); + //杩欎釜妯℃澘涓嬪凡缁忔湁鐨勫睘鎬� + //鎶婇粯璁ょ殑灞炴�т篃娣诲姞鍒癰oAttrs + if(boAttrs == null){ + boAttrs = new ArrayList<>(); + } + QueryWrapper<CodeClassifyTemplateAttr> wrapper=new QueryWrapper<>(); + wrapper.eq("CLASSIFYTEMPLATEOID",templateAttrOid); + + List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOList = baseMapper.selectList(wrapper); + List<String> btmOids = new ArrayList<String>(); + for (CodeClassifyTemplateAttr codeClassifyTemplateAttrDO:codeClassifyTemplateAttrDOList){ + btmOids.add(codeClassifyTemplateAttrDO.getId()); + } + + //杩囨护鎺夐櫎浜嗚嚜韬殑鍒殑灞炴�� + List<BtmTypeAttributeVO> boAttrss = new ArrayList<BtmTypeAttributeVO>(); + + for (BtmTypeAttributeVO osBtmTypeAttributeVO:boAttrs){ + if(btmOids.contains(osBtmTypeAttributeVO.getId())){ + boAttrss.add(osBtmTypeAttributeVO); + } + } + dataGrid.setData(boAttrss); + dataGrid.setTotal(boAttrss.size()); + return dataGrid; + } + + /** + * 鍚屾鍒板叾浠栨ā鏉� + * @param codeClassifyTemplateAttrDTO oid + * @return + */ + @Override + public R copyto(CodeClassifyTemplateAttrDTO codeClassifyTemplateAttrDTO) throws VciBaseException{ + + String templateAttrOid = codeClassifyTemplateAttrDTO.getOid(); + + //鏌ヨ鍑烘潵瑕佸鍒剁殑瀵硅薄 + CodeClassifyTemplateAttr codeClassifyTemplateAttrDO = selectByOid(templateAttrOid); + String id = codeClassifyTemplateAttrDO.getId();//鑻辨枃鍚嶇О + String classfyTemplateOid = codeClassifyTemplateAttrDO.getClassifyTemplateOid(); + + //鏌ヨ鍏朵粬id=id鐨勬ā鏉垮睘鎬� +// VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateAttrDO.class); +// queryWrapper.addQueryMap("id",id); +// Map<String,Object> condition = new HashMap<>(1); +// condition.put("id",id); + QueryWrapper<CodeClassifyTemplateAttr> wrapper=new QueryWrapper<>(); + wrapper.eq("id",id); + //鎵�鏈塱d=id鐨勬ā鏉垮睘鎬� + List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOList =baseMapper.selectList(wrapper); + + //瑕佸垹闄ょ殑妯℃澘灞炴�х殑oids + List<String> deleteOids = new ArrayList<String>(); + //瑕佷慨鏀圭殑妯℃澘灞炴�у璞� + List<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOListInsert = new ArrayList<CodeClassifyTemplateAttr>(); + for (CodeClassifyTemplateAttr codeClassifyTemplateAttrDOi:codeClassifyTemplateAttrDOList){ + String oid = codeClassifyTemplateAttrDOi.getOid(); + String templateOldOid = codeClassifyTemplateAttrDOi.getClassifyTemplateOid(); + + CodeClassifyTemplateAttr codeClassifyTemplateAttrDOInsert = new CodeClassifyTemplateAttr(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDO,codeClassifyTemplateAttrDOInsert); + codeClassifyTemplateAttrDOInsert.setOid(oid); + codeClassifyTemplateAttrDOInsert.setClassifyTemplateOid(templateOldOid); + codeClassifyTemplateAttrDOListInsert.add(codeClassifyTemplateAttrDOInsert); + + deleteOids.add(codeClassifyTemplateAttrDOi.getOid()); + } + +// WebUtil.setPersistence(false);//涓嶆墽琛屼繚瀛� + + //鍒犻櫎 +// BatchCBO batchCBOTemplateAttrDelete = codeClassifyTemplateAttrDOissifyTemplateAttrMapper.batchDeleteByOids(deleteOids); + baseMapper.deleteBatchIds(deleteOids); + //鍐嶆柊澧� +// BatchCBO batchCBOTemplateAttrInsert = codeClassifyTemplateAttrMapper.batchInsert(codeClassifyTemplateAttrDOListInsert); +// batchCBOTemplateAttrDelete.copyFromOther(batchCBOTemplateAttrInsert); + this.saveBatch(codeClassifyTemplateAttrDOListInsert); + +// WebUtil.setPersistence(true);//鎵ц淇濆瓨 +// boService.persistenceBatch(batchCBOTemplateAttrDelete);//涓�璧锋墽琛屼繚瀛� + + return R.success("鎿嶄綔鎴愬姛锛�"); + } + + /** + * 浣跨敤鏌ヨ灏佽鍣ㄦ潵鏌ヨ + * @param wrapper 鏌ヨ灏佽鍣� + * @return 鏁版嵁瀵硅薄 + */ + @Override + public List<CodeClassifyTemplateAttr> selectByWrapper(Wrapper wrapper) { + return codeClassifyTemplateAttrMapper.selectList(wrapper); + } + } -- Gitblit v1.9.3