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/CodeButtonServiceImpl.java | 229 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 200 insertions(+), 29 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java index 08abbfc..8fba98f 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java @@ -17,24 +17,42 @@ package com.vci.ubcs.code.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; + +import com.vci.ubcs.code.dto.CodeButtonDTO; +import com.vci.ubcs.code.dto.CodeFixedValueDTO; import com.vci.ubcs.code.entity.CodeButton; +import com.vci.ubcs.code.entity.CodeFixedValue; +import com.vci.ubcs.code.enumpack.CodeUseButtonPositionTypeEnum; import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus; import com.vci.ubcs.code.mapper.CodeButtonMapper; import com.vci.ubcs.code.service.ICodeButtonService; import com.vci.ubcs.code.vo.pagemodel.CodeButtonVO; +import com.vci.ubcs.common.utils.PageDO2PageVO; 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.web.pagemodel.DataGrid; +import com.vci.ubcs.starter.web.pagemodel.PageHelper; +import com.vci.ubcs.starter.web.util.BeanUtil; import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.VciBaseUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cglib.beans.BeanMap; +import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; +import java.util.*; + +import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.*; /** * 妯℃澘鎵╁睍姹� 鏈嶅姟瀹炵幇绫� @@ -46,11 +64,184 @@ public class CodeButtonServiceImpl implements ICodeButtonService { @Resource - CodeButtonMapper codeButtonMapper; + private CodeButtonMapper codeButtonMapper; + + /** + * 瀵硅薄鐨勬搷浣� + */ + @Autowired + private RevisionModelUtil revisionModelUtil; @Override public IPage<CodeButtonVO> selectcodebuttonPage(IPage<CodeButtonVO> page, CodeButtonVO codebutton) { return page.setRecords(codeButtonMapper.selectcodebuttonPage(page, codebutton)); + } + + /** + * 鏌ヨ鎵�鏈夌殑涓绘暟鎹腑鐨勬寜閽墿灞� + * @param conditionMap 鏌ヨ鏉′欢 + * @param pageHelper 鍒嗛〉鍜屾帓搴� + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 + */ + @Override + public IPage<CodeButtonVO> gridCodeButton(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{ + Query query = new Query(); + if (pageHelper == null) { + query.setSize(-1); + }else { + query.setSize(pageHelper.getLimit()); + query.setCurrent(pageHelper.getPage()); + } + query.setDescs("createTime"); + CodeButton codeButton = new CodeButton(); + BeanMap beanMap = BeanMap.create(codeButton); + beanMap.putAll(conditionMap); + IPage<CodeButton> doList = codeButtonMapper.selectPage(Condition.getPage(query),Condition.getQueryWrapper(codeButton)); + IPage<CodeButtonVO> voList = new Page<>(); + if (!CollectionUtils.isEmpty(doList.getRecords())) { + voList.setRecords(codeButtonDO2VOs(doList.getRecords())); + PageDO2PageVO.pageDO2PageVO(doList,voList); + } + return voList; + } + + /** + * 澧炲姞涓绘暟鎹腑鐨勬寜閽墿灞� + * @param codeButtonDTO 涓绘暟鎹腑鐨勬寜閽墿灞曟暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + public CodeButtonVO addSave(CodeButtonDTO codeButtonDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeButtonDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + //灏咲TO杞崲涓篋O + CodeButton codeButtonDO = new CodeButton(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeButtonDTO,codeButtonDO); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeButtonDO, MdmBtmTypeConstant.CODE_BUTTON); + boolean resInsertCodeButton = codeButtonMapper.insert(codeButtonDO) > 0; + return resInsertCodeButton ? codeButtonDO2VO(codeButtonDO):null; + } + + /** + * 淇敼涓绘暟鎹腑鐨勬寜閽墿灞� + * @param codeButtonDTO 涓绘暟鎹腑鐨勬寜閽墿灞曟暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + public CodeButtonVO editSave(CodeButtonDTO codeButtonDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeButtonDTO,"鏁版嵁瀵硅薄",codeButtonDTO.getOid(),"涓绘暟鎹腑鐨勬寜閽墿灞曚富閿�"); + //灏咲TO杞崲涓篋O + CodeButton codeButtonDO = selectByOid(codeButtonDTO.getOid()); + revisionModelUtil.copyFromDTOIgnore(codeButtonDTO,codeButtonDO); + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeButtonDO); + boolean resUpdateCodeButton = codeButtonMapper.updateById(codeButtonDO) > 0; + return resUpdateCodeButton ? codeButtonDO2VO(codeButtonDO):null; + } + + /** + * 鍒犻櫎涓绘暟鎹腑鐨勬寜閽墿灞� + * @param codeButtonDTO 涓绘暟鎹腑鐨勬寜閽墿灞曟暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈� + * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� + * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯� + */ + @Override + public R deleteCodeButton(CodeButtonDTO codeButtonDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeButtonDTO,"涓绘暟鎹腑鐨勬寜閽墿灞曟暟鎹璞�",codeButtonDTO.getOid(),"涓绘暟鎹腑鐨勬寜閽墿灞曠殑涓婚敭"); + CodeButton codeButtonDO = selectByOid(codeButtonDTO.getOid()); + R baseResult = checkIsCanDeleteForDO(codeButtonDTO,codeButtonDO); + if(baseResult.isSuccess()) { + }else{ + return baseResult; + } + //鎵ц鍒犻櫎鎿嶄綔 + boolean resDeleteCodeButton = codeButtonMapper.deleteById(codeButtonDO.getOid()) > 0; + return resDeleteCodeButton ? R.success(DELETE_SUCCESS):R.fail(DELETE_FAIL); + } + + /** + * 涓婚敭鑾峰彇涓绘暟鎹腑鐨勬寜閽墿灞� + * @param oid 涓婚敭 + * @return 涓绘暟鎹腑鐨勬寜閽墿灞曟樉绀哄璞� + * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父 + */ + @Override + public CodeButtonVO getObjectByOid(String oid) throws VciBaseException{ + return codeButtonDO2VO(selectByOid(oid)); + } + + /** + * 鍙傜収涓绘暟鎹腑鐨勬寜閽墿灞曞垪琛� + * @param conditionMap 鏌ヨ鏉′欢 + * @param pageHelper 鍒嗛〉鍜屾帓搴� + * @return 涓绘暟鎹腑鐨勬寜閽墿灞曟樉绀哄璞″垪琛紝鐢熸晥鐨勫唴瀹� + * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 + */ + @Override + public IPage<CodeButtonVO> refDataGridCodeButton(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{ + if(conditionMap == null){ + conditionMap = new HashMap<String, String>(); + } + return gridCodeButton(conditionMap,pageHelper); + } + + /** + * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎 + * @param codeButtonDTO 鏁版嵁浼犺緭瀵硅薄 + * @param codeButtonDO 鏁版嵁搴撲腑鐨勬暟鎹璞� + * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾� + */ + private R checkIsCanDeleteForDO(CodeButtonDTO codeButtonDTO, CodeButton codeButtonDO) { + CodeButton buttonDO = new CodeButton(); + BeanUtil.convert(codeButtonDTO,buttonDO); + if (!checkTs(codeButtonDTO,buttonDO)) { + return R.fail(TS_NOT_PROCESS); + } + if(!checkIsLinked(codeButtonDO.getOid())) { + return R.success("success"); + }else{ + return R.fail(DATA_LINKED_NOT_DELETE); + } + } + + /** + * 妫�鏌s + * @param tempDO + * @return + */ + private boolean checkTs(CodeButtonDTO tempDO, CodeButton codeButton){ + Date dbTs = codeButton.getTs(); + Date currentTs = tempDO.getTs(); + if(currentTs == null ? dbTs == null:currentTs.compareTo(dbTs)==0){ + return true; + } + return false; + } + + /** + * 鏍¢獙鏄惁琚紩鐢� + * @param oid 涓婚敭 + * @throws VciBaseException 琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父 + */ + private boolean checkIsLinked(String oid) throws VciBaseException{ + //TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟 + return false; + } + + /** + * 涓婚敭鏌ヨ鏁版嵁瀵硅薄 + * @param oid 涓婚敭 + * @return 鏁版嵁瀵硅薄 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + private CodeButton selectByOid(String oid) throws VciBaseException{ + VciBaseUtil.alertNotNull(oid,"涓婚敭"); + CodeButton codeButtonDO = codeButtonMapper.selectById(oid.trim()); + if(codeButtonDO == null || StringUtils.isBlank(codeButtonDO.getOid())){ + throw new VciBaseException(DATA_OID_NOT_EXIST); + } + return codeButtonDO; } /** @@ -73,7 +264,7 @@ * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呬笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public List<CodeButtonVO> codeButtonDO2VOs(Collection<CodeButton> codeButtonDOs) throws VciBaseException{ + public List<CodeButtonVO> codeButtonDO2VOs(Collection<CodeButton> codeButtonDOs) throws VciBaseException{ List<CodeButtonVO> voList = new ArrayList<CodeButtonVO>(); if(!CollectionUtils.isEmpty(codeButtonDOs)){ for(CodeButton s: codeButtonDOs){ @@ -99,7 +290,7 @@ BeanUtilForVCI.copyPropertiesIgnoreCase(codeButtonDO,vo); //濡傛灉鏈塴cstatus鐨勭被鐨勮瘽 vo.setLcStatusText(FrameworkDataLCStatus.getTextByValue(vo.getLcStatus())); - + vo.setUsedpositiontypeText(CodeUseButtonPositionTypeEnum.getTextByValue(codeButtonDO.getUsedPositionType())); } return vo; } @@ -129,7 +320,6 @@ return codeButtonDOList; } - @Override public R enableCodeButton(String id) { CodeButton codebutton = codeButtonMapper.selectById(id); @@ -148,25 +338,6 @@ return changeLcStatus(codebutton,false); } - // @Override -// public R deleteCodeButton(String ids) { -//// VciBaseUtil.alertNotNull(codeButtonDTO,"涓绘暟鎹腑鐨勬寜閽墿灞曟暟鎹璞�",codeButtonDTO.getOid(),"涓绘暟鎹腑鐨勬寜閽墿灞曠殑涓婚敭"); -// if(StringUtils.isEmpty(ids)){ -// return R.fail("浼犲叆闈炴硶鏁版嵁锛�"); -// } -// CodeButtonEntity codebutton = codeButtonMapper.selectById(ids); -// -// CodeButtonDO codeButtonDO = selectByOid(codeButtonDTO.getOid()); -// BaseResult baseResult = checkIsCanDeleteForDO(codeButtonDTO,codeButtonDO); -// if(baseResult.isSuccess()) { -// }else{ -// return baseResult; -// } -// //鎵ц鍒犻櫎鎿嶄綔 -// BatchCBO batchCBO = codeButtonMapper.deleteByPrimaryKey(codeButtonDO.getOid()); -// return (batchCBO!=null && batchCBO.getDeleteCbos() !=null &&batchCBO.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL); -// } - /** * 淇敼鐢熷懡鍛ㄦ湡鐨勭姸鎬侊紝濡傚仠鐢ㄥ拰鍚敤 * @param buttonDTO 鏁版嵁浼犺緭瀵硅薄锛屽繀椤昏鏈塷id鍜宼s @@ -174,11 +345,11 @@ * @return 鎵ц鐨勭粨鏋� */ private R changeLcStatus(CodeButton buttonDTO, boolean disable){ -// VciBaseUtil.alertNotNull(buttonDTO,"鏁版嵁瀵硅薄",buttonDTO.getOid(),"涓婚敭"); + // VciBaseUtil.alertNotNull(buttonDTO,"鏁版嵁瀵硅薄",buttonDTO.getOid(),"涓婚敭"); if(disable){ - buttonDTO.setLcstatus(FrameworkDataLCStatus.ENABLED.getValue()); + buttonDTO.setLcStatus(FrameworkDataLCStatus.ENABLED.getValue()); }else{ - buttonDTO.setLcstatus(FrameworkDataLCStatus.DISABLED.getValue()); + buttonDTO.setLcStatus(FrameworkDataLCStatus.DISABLED.getValue()); } return SqlHelper.retBool(codeButtonMapper.updateById(buttonDTO))? R.success(FrameworkDataLCStatus.ENABLED.getValue()):R.fail(FrameworkDataLCStatus.DISABLED.getValue()); -- Gitblit v1.9.3