From 27cddefb0cb28da699954ba1a1756d6bcabafbbe Mon Sep 17 00:00:00 2001 From: ludc <ludc@vci-tech.com> Date: 星期三, 05 三月 2025 17:41:29 +0800 Subject: [PATCH] 集成申码接口调整:当码值按照约定传表名为空的业务场景下传null校验问题和码值组装问题。 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java | 257 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 256 insertions(+), 1 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java index 896e759..034a62b 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java @@ -1,6 +1,12 @@ package com.vci.ubcs.code.service.impl; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.yulichang.base.MPJBaseServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.vci.ubcs.code.dto.CodeResembleRuleDTO; +import com.vci.ubcs.code.entity.CodeBasicSec; import com.vci.ubcs.code.entity.CodeReferConfig; import com.vci.ubcs.code.entity.CodeResembleRule; import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus; @@ -8,13 +14,30 @@ import com.vci.ubcs.code.mapper.CodeResembleRuleMapper; import com.vci.ubcs.code.service.ICodeResembleRuleService; import com.vci.ubcs.code.vo.pagemodel.CodeResembleRuleVO; +import com.vci.ubcs.omd.entity.BtmType; +import com.vci.ubcs.starter.enumpack.CodeTableNameEnum; import com.vci.ubcs.starter.exception.VciBaseException; +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.UBCSCondition; +import com.vci.ubcs.starter.util.UBCSSqlKeyword; +import com.vci.ubcs.starter.web.pagemodel.DataGrid; +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 net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils; +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.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; -import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST; +import java.util.*; + +import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.*; /** * 鐩镐技鏌ヨ瑙勫垯鏈嶅姟 @@ -23,6 +46,14 @@ */ @Service public class CodeResembleRuleServiceImpl extends MPJBaseServiceImpl<CodeResembleRuleMapper, CodeResembleRule> implements ICodeResembleRuleService { + + /** + * 瀵硅薄鐨勬搷浣� + */ + @Autowired + private RevisionModelUtil revisionModelUtil; + + @Override public CodeResembleRuleVO getObjectByOid(String oid) { return codeResembleRuleDO2VO(selectByOid(oid)); @@ -62,4 +93,228 @@ } return vo; } + + /** + * 鏌ヨ鎵�鏈夌殑鐩镐技鏌ヨ瑙勫垯 + * @param conditionMap 鏌ヨ鏉′欢 + * @param pageHelper 鍒嗛〉鍜屾帓搴� + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 + */ + @Override + public DataGrid<CodeResembleRuleVO> gridCodeResembleRule(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{ + if (pageHelper == null) { + pageHelper = new PageHelper(-1); + } + Query query = new Query(); + query.setSize(pageHelper.getLimit()); + query.setCurrent(pageHelper.getPage()); + query.setDescs("createTime"); + MPJLambdaWrapper<CodeResembleRule> mpjLambdaWrapper = new MPJLambdaWrapper<>(CodeResembleRule.class,CodeTableNameEnum.PL_CODE_RULE.getText()); + Map<String, Object> condition = new HashMap<>(conditionMap); + // 娣诲姞where鏉′欢 + UBCSSqlKeyword.buildConditionByAs(condition,mpjLambdaWrapper,CodeTableNameEnum.PL_CODE_RULE.getText()); + IPage<CodeResembleRule> codeResembleRuleIPage = baseMapper.selectPage(UBCSCondition.getPage(query), mpjLambdaWrapper); + DataGrid<CodeResembleRuleVO> dataGrid=new DataGrid<CodeResembleRuleVO>(); + if (!CollectionUtils.isEmpty(codeResembleRuleIPage.getRecords())) { + dataGrid.setData(codeResembleRuleDO2VOs(codeResembleRuleIPage.getRecords())); + dataGrid.setTotal(codeResembleRuleIPage.getTotal()); + } + return dataGrid; + } + + /** + * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞� + * @param codeResembleRuleDOs 鏁版嵁瀵硅薄鍒楄〃 + * @return 鏄剧ず瀵硅薄 + * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呬笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + @Override + public List<CodeResembleRuleVO> codeResembleRuleDO2VOs(Collection<CodeResembleRule> codeResembleRuleDOs) throws VciBaseException{ + List<CodeResembleRuleVO> voList = new ArrayList<CodeResembleRuleVO>(); + if(!CollectionUtils.isEmpty(codeResembleRuleDOs)){ + for(CodeResembleRule s: codeResembleRuleDOs){ + CodeResembleRuleVO vo = codeResembleRuleDO2VO(s); + if(vo != null){ + voList.add(vo); + } + } + } + return voList; + } + +// /** +// * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞� +// * @param codeResembleRuleDO 鏁版嵁瀵硅薄 +// * @return 鏄剧ず瀵硅薄 +// * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 +// */ +// @Override +// public CodeResembleRuleVO codeResembleRuleDO2VO(CodeResembleRule codeResembleRuleDO) throws VciBaseException{ +// CodeResembleRuleVO vo = new CodeResembleRuleVO(); +// if(codeResembleRuleDO != null){ +// BeanUtilForVCI.copyPropertiesIgnoreCase(codeResembleRuleDO,vo); +// //濡傛灉鏈塴cstatus鐨勭被鐨勮瘽 +// vo.setLcStatusText(FrameworkDataLCStatus.getTextByValue(vo.getLcStatus())); +// +// } +// return vo; +// } + + /** + * 澧炲姞鐩镐技鏌ヨ瑙勫垯 + * @param codeResembleRuleDTO 鐩镐技鏌ヨ瑙勫垯鏁版嵁浼犺緭瀵硅薄 + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + public CodeResembleRuleVO addSave(CodeResembleRuleDTO codeResembleRuleDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeResembleRuleDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + //灏咲TO杞崲涓篋O + CodeResembleRule codeResembleRuleDO = new CodeResembleRule(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeResembleRuleDTO,codeResembleRuleDO); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeResembleRuleDO, MdmBtmTypeConstant.CODE_RESEMBLE_RULE); + codeResembleRuleDO.setTenantId(AuthUtil.getTenantId()); + codeResembleRuleDO.setLctid("frameworkDataLc"); + codeResembleRuleDO.setLcStatus("Enabled"); + codeResembleRuleDO.setOwner(AuthUtil.getUser().getUserName()); + codeResembleRuleDO.setLastModifier(AuthUtil.getUser().getUserName()); + baseMapper.insert(codeResembleRuleDO); + return codeResembleRuleDO2VO(codeResembleRuleDO); + } + + /** + * 淇敼鐩镐技鏌ヨ瑙勫垯 + * @param codeResembleRuleDTO 鐩镐技鏌ヨ瑙勫垯鏁版嵁浼犺緭瀵硅薄 + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + public CodeResembleRuleVO editSave(CodeResembleRuleDTO codeResembleRuleDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeResembleRuleDTO,"鏁版嵁瀵硅薄",codeResembleRuleDTO.getOid(),"鐩镐技鏌ヨ瑙勫垯涓婚敭"); + //灏咲TO杞崲涓篋O + CodeResembleRule codeResembleRuleDO = selectByOid(codeResembleRuleDTO.getOid()); + revisionModelUtil.copyFromDTOIgnore(codeResembleRuleDTO,codeResembleRuleDO); + codeResembleRuleDO.setLastModifier(AuthUtil.getUser().getUserName()); + codeResembleRuleDO.setLastModifyTime(new Date()); + codeResembleRuleDO.setTs(new Date()); + baseMapper.updateById(codeResembleRuleDO); + return codeResembleRuleDO2VO(codeResembleRuleDO); + } + + + /** + * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎 + * @param codeResembleRuleDTO 鏁版嵁浼犺緭瀵硅薄 + * @param codeResembleRuleDO 鏁版嵁搴撲腑鐨勬暟鎹璞� + * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾� + */ + private R checkIsCanDeleteForDO(CodeResembleRuleDTO codeResembleRuleDTO, CodeResembleRule codeResembleRuleDO) { + CodeResembleRule tsDO = new CodeResembleRule(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeResembleRuleDTO,tsDO); +// boService.checkTs(tsDO); +// QueryWrapper<CodeResembleRule> wrapper = new QueryWrapper<>(); +// wrapper.eq("oid",tsDO.getOid()); +// wrapper.eq("ts",tsDO.getTs()); + if(!checkIsLinked(codeResembleRuleDO.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 codeResembleRuleDTO 鐩镐技鏌ヨ瑙勫垯鏁版嵁浼犺緭瀵硅薄锛宱id鍜宼s闇�瑕佷紶杈� + * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� + * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯� + */ + @Override + public R deleteCodeResembleRule(CodeResembleRuleDTO codeResembleRuleDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeResembleRuleDTO,"鐩镐技鏌ヨ瑙勫垯鏁版嵁瀵硅薄",codeResembleRuleDTO.getOid(),"鐩镐技鏌ヨ瑙勫垯鐨勪富閿�"); + CodeResembleRule codeResembleRuleDO = selectByOid(codeResembleRuleDTO.getOid()); + R baseResult = checkIsCanDeleteForDO(codeResembleRuleDTO,codeResembleRuleDO); + if(baseResult.isSuccess()) { + }else{ + return baseResult; + } + //鎵ц鍒犻櫎鎿嶄綔 +// BatchCBO batchCBO = codeResembleRuleMapper.deleteByPrimaryKey(codeResembleRuleDO.getOid()); + int i = baseMapper.deleteById(codeResembleRuleDO.getOid()); + return (i > 0)?R.success(DELETE_SUCCESS):R.fail(DELETE_FAIL); + } + +// /** +// * 涓婚敭鏌ヨ鏁版嵁瀵硅薄 +// * @param oid 涓婚敭 +// * @return 鏁版嵁瀵硅薄 +// * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父 +// */ +// private CodeResembleRule selectByOid(String oid) throws VciBaseException{ +// VciBaseUtil.alertNotNull(oid,"涓婚敭"); +// CodeResembleRule codeResembleRuleDO = codeResembleRuleMapper.selectByPrimaryKey(oid.trim()); +// if(codeResembleRuleDO == null || StringUtils.isBlank(codeResembleRuleDO.getOid())){ +// throw new VciBaseException(DATA_OID_NOT_EXIST); +// } +// return codeResembleRuleDO; +// } + + /** + * 涓婚敭鎵归噺鑾峰彇鐩镐技鏌ヨ瑙勫垯 + * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓� + * @return 鐩镐技鏌ヨ瑙勫垯鏄剧ず瀵硅薄 + * @throws VciBaseException 鏌ヨ鍑虹幇寮傚父鏃朵細鎶涘嚭 + */ + @Override + public Collection<CodeResembleRuleVO> listCodeResembleRuleByOids(Collection<String> oidCollections) throws VciBaseException{ + VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎"); + List<CodeResembleRule> codeResembleRuleDOList = listCodeResembleRuleDOByOidCollections(oidCollections); + return codeResembleRuleDO2VOs(codeResembleRuleDOList); + } + + /** + * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄 + * @param oidCollections 涓婚敭鐨勯泦鍚� + * @return 鏁版嵁瀵硅薄鍒楄〃 + */ + private List<CodeResembleRule> listCodeResembleRuleDOByOidCollections(Collection<String> oidCollections){ + List<CodeResembleRule> codeResembleRuleDOList = new ArrayList<CodeResembleRule>(); + if(!CollectionUtils.isEmpty(oidCollections)){ + Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections); + for(Collection<String> oids: oidCollectionsList){ + List<CodeResembleRule> tempDOList = baseMapper.selectBatchIds(oids); + if(!CollectionUtils.isEmpty(tempDOList)){ + codeResembleRuleDOList.addAll(tempDOList); + } + } + } + return codeResembleRuleDOList; + } + + + + /** + * 鍙傜収鐩镐技鏌ヨ瑙勫垯鍒楄〃 + * @param conditionMap 鏌ヨ鏉′欢 + * @param pageHelper 鍒嗛〉鍜屾帓搴� + * @return 鐩镐技鏌ヨ瑙勫垯鏄剧ず瀵硅薄鍒楄〃锛岀敓鏁堢殑鍐呭 + * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 + */ + @Override + public DataGrid<CodeResembleRuleVO> refDataGridCodeResembleRule(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{ + if(conditionMap == null){ + conditionMap = new HashMap<String, String>(); + } + return gridCodeResembleRule(conditionMap,pageHelper); + } } -- Gitblit v1.9.3