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/CodeFixedValueServiceImpl.java | 654 ++++++++++++++++++++++++++++------------------------------ 1 files changed, 315 insertions(+), 339 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java index 59260ff..e46394a 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java @@ -1,377 +1,353 @@ package com.vci.ubcs.code.service.impl; -import com.vci.ubcs.code.dao.CodeFixedValueDaoI; -import com.vci.ubcs.code.model.CodeFixedValueDO; -import com.vci.ubcs.code.service.CodeFixedValueServiceI; -import com.vci.starter.revision.service.RevisionModelUtil; -import com.vci.starter.web.constant.QueryOptionConstant; -import com.vci.starter.web.exception.VciBaseException; -import com.vci.starter.web.pagemodel.BaseResult; -import com.vci.starter.web.pagemodel.DataGrid; -import com.vci.starter.web.pagemodel.PageHelper; -import com.vci.starter.web.util.BeanUtilForVCI; -import com.vci.starter.web.util.VciBaseUtil; -import com.vci.starter.web.wrapper.VciQueryWrapperForDO; -import com.vci.web.pageModel.BatchCBO; -import com.vci.web.service.WebBoServiceI; -import com.vci.web.util.WebUtil; -import org.apache.commons.lang3.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +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.vci.ubcs.code.dto.CodeFixedValueDTO; +import com.vci.ubcs.code.entity.CodeFixedValue; +import com.vci.ubcs.code.mapper.CodeFixedValueMapper; +import com.vci.ubcs.code.service.ICodeFixedValueService; +import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO; +import com.vci.ubcs.code.wrapper.CodeFixedValueWrapper; +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.util.BeanUtilForVCI; +import com.vci.ubcs.starter.web.util.VciBaseUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.vci.ubcs.code.dto.CodeFixedValueDTO; -import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO; +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.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.frameworkcore.constant.FrameWorkLangCodeConstant.*; +import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_LINKED_NOT_DELETE; +import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST; /** * 鍥哄畾鐮佹鐨勭爜鍊兼湇鍔� - * @author weidy + * @author ludc * @date 2022-01-24 */ @Service -public class CodeFixedValueServiceImpl implements CodeFixedValueServiceI { +public class CodeFixedValueServiceImpl extends ServiceImpl<CodeFixedValueMapper, CodeFixedValue> implements ICodeFixedValueService { - /** - * 鏃ュ織 - */ - private Logger logger = LoggerFactory.getLogger(getClass()); + /** + * 鏁版嵁鎿嶄綔灞� + */ + @Resource + private CodeFixedValueMapper codeFixedValueMapper; - /** - * 鏁版嵁鎿嶄綔灞� - */ - @Resource - private CodeFixedValueDaoI codeFixedValueMapper; + /** + * 瀵硅薄鐨勬搷浣� + */ + @Resource + private RevisionModelUtil revisionModelUtil; - /** - * 涓氬姟绫诲瀷鎿嶄綔鐨勬湇鍔� - */ - @Autowired - @Lazy - private WebBoServiceI boService; + /** + * 鏌ヨ鎵�鏈夌殑鍥哄畾鐮佹鐨勭爜鍊� + * @param codeFixedValueVO 鏌ヨ鏉′欢 + * @param page 鍒嗛〉鍜屾帓搴� + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 + */ + @Override + public IPage<CodeFixedValueVO> gridCodeFixedValue(CodeFixedValueVO codeFixedValueVO,IPage<CodeFixedValueVO> page) throws VciBaseException{ + String secOid = codeFixedValueVO.getCodeFixedSecOid(); + if(StringUtils.isBlank(secOid)){ + return null; + } + List<CodeFixedValue> doList = codeFixedValueMapper.selectByPage(codeFixedValueVO,page); + return page.setRecords(CodeFixedValueWrapper.build().listVO(doList)); + } - /** - * 瀵硅薄鐨勬搷浣� - */ - @Autowired - private RevisionModelUtil revisionModelUtil; + /** + * 鏍规嵁codeFixedSecOid鏌ヨ鐮佸�� + * @param codeFixedSecOids + * @return + */ + @Override + public List<CodeFixedValue> listFixedValueByCodeFixedSecOid(List<String> codeFixedSecOids){ + if(codeFixedSecOids.isEmpty()){ + return new ArrayList<CodeFixedValue>(); + } + /*List<CodeFixedValue> codeFixedValues = codeFixedValueMapper.selectList( + Wrappers.<CodeFixedValue>query().lambda() + .in(CodeFixedValue::getCodeFixedSecOid, codeFixedSecOids) + );*/ + List<CodeFixedValue> codeFixedValues = codeFixedValueMapper.selectByPageByCodeFixedSecOid(codeFixedSecOids, new Page<>(1, -1)); + return codeFixedValues; + } + /** + * 鏍规嵁鍏宠仈鍥哄畾鐮佹涓婚敭鍒犻櫎鐮佸�� + * @param codeFixedSecOid + * @return + */ + @Override + public Boolean deleteFixedValueBySecOid(String codeFixedSecOid) { + LambdaQueryWrapper<CodeFixedValue> wrapper = Wrappers.<CodeFixedValue>query() + .lambda().eq(CodeFixedValue::getCodeFixedSecOid, codeFixedSecOid); + return codeFixedValueMapper.delete(wrapper)>0; + } - /** - * 鏌ヨ鎵�鏈夌殑鍥哄畾鐮佹鐨勭爜鍊� - * @param conditionMap 鏌ヨ鏉′欢 - * @param pageHelper 鍒嗛〉鍜屾帓搴� - * @return 鎵ц缁撴灉 - * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 - */ - @Override - public DataGrid<CodeFixedValueVO> gridCodeFixedValue(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{ - if (pageHelper == null) { - pageHelper = new PageHelper(-1); - } - pageHelper.addDefaultAsc("ordernum"); - if(conditionMap == null){ - conditionMap = new HashMap<>(); - } - String secOid = conditionMap.getOrDefault("codefixedsecoid", ""); - if(StringUtils.isBlank(secOid)){ - return new DataGrid<>(); - } - List<CodeFixedValueDO> doList = codeFixedValueMapper.selectByCondition(conditionMap,pageHelper); - DataGrid<CodeFixedValueVO> dataGrid=new DataGrid<CodeFixedValueVO>(); - if (!CollectionUtils.isEmpty(doList)) { - dataGrid.setData(codeFixedValueDO2VOs(doList)); - dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(codeFixedValueMapper.countByCondition(conditionMap)))); - } - return dataGrid; - } + /** + * 澧炲姞鍥哄畾鐮佹鐨勭爜鍊� + * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + public boolean addSave(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeFixedValueDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + //灏咲TO杞崲涓篋O + CodeFixedValue codeFixedValueDO = new CodeFixedValue(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeFixedValueDTO,codeFixedValueDO); + //濉厖涓�浜涢粯璁ゅ�� + DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeFixedValueDO, MdmBtmTypeConstant.CODE_FIXED_VALUE); + Long count = this.codeFixedValueMapper.selectCount(Wrappers.<CodeFixedValue>query() + .lambda().eq(CodeFixedValue::getCodeFixedSecOid, codeFixedValueDO.getCodeFixedSecOid()) + )+1L; + codeFixedValueDO.setOrderNum(count.intValue()); + boolean resBoolean = this.codeFixedValueMapper.insert(codeFixedValueDO) > 0; + return resBoolean; + } - /** - * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞� - * @param codeFixedValueDOs 鏁版嵁瀵硅薄鍒楄〃 - * @return 鏄剧ず瀵硅薄 - * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呬笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父 - */ - @Override - public List<CodeFixedValueVO> codeFixedValueDO2VOs(Collection<CodeFixedValueDO> codeFixedValueDOs) throws VciBaseException{ - List<CodeFixedValueVO> voList = new ArrayList<CodeFixedValueVO>(); - if(!CollectionUtils.isEmpty(codeFixedValueDOs)){ - for(CodeFixedValueDO s: codeFixedValueDOs){ - CodeFixedValueVO vo = codeFixedValueDO2VO(s); - if(vo != null){ - voList.add(vo); - } - } - } - return voList; - } + /** + * 淇敼鍥哄畾鐮佹鐨勭爜鍊� + * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean editSave(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeFixedValueDTO,"鏁版嵁瀵硅薄",codeFixedValueDTO.getOid(),"鍥哄畾鐮佹鐨勭爜鍊间富閿�"); + //灏咲TO杞崲涓篋O + CodeFixedValue codeFixedValueDO = selectByOid(codeFixedValueDTO.getOid()); + revisionModelUtil.copyFromDTOIgnore(codeFixedValueDTO,codeFixedValueDO); + //濉厖涓�浜涢粯璁ゅ�� + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeFixedValueDO); + boolean resBoolean = codeFixedValueMapper.updateById(codeFixedValueDO) > 0; + return resBoolean; + } - /** - * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞� - * @param codeFixedValueDO 鏁版嵁瀵硅薄 - * @return 鏄剧ず瀵硅薄 - * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 - */ - @Override - public CodeFixedValueVO codeFixedValueDO2VO(CodeFixedValueDO codeFixedValueDO) throws VciBaseException{ - CodeFixedValueVO vo = new CodeFixedValueVO(); - if(codeFixedValueDO != null){ - BeanUtilForVCI.copyPropertiesIgnoreCase(codeFixedValueDO,vo); - //濡傛灉鏈塴cstatus鐨勭被鐨勮瘽 + /** + * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎 + * @param codeFixedValueDTO 鏁版嵁浼犺緭瀵硅薄 + * @param codeFixedValueDO 鏁版嵁搴撲腑鐨勬暟鎹璞� + * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾� + */ + private R checkIsCanDeleteForDO(CodeFixedValueDTO codeFixedValueDTO, CodeFixedValue codeFixedValueDO) { + //boService.checkTs(codeFixedValueDTO); + if(!checkIsLinked(codeFixedValueDO.getOid())) { + return R.status(true); + }else{ + return R.fail(DATA_LINKED_NOT_DELETE); + } + } - } - return vo; - } + /** + * 鏍¢獙鏄惁琚紩鐢� + * @param oid 涓婚敭 + * @throws VciBaseException 琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父 + */ + private boolean checkIsLinked(String oid) throws VciBaseException{ + //TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟 + return false; + } - /** - * 澧炲姞鍥哄畾鐮佹鐨勭爜鍊� - * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞� - * @return 鎵ц缁撴灉 - * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 - */ - @Override - public CodeFixedValueVO addSave(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException{ - VciBaseUtil.alertNotNull(codeFixedValueDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); - //灏咲TO杞崲涓篋O - CodeFixedValueDO codeFixedValueDO = new CodeFixedValueDO(); - BeanUtilForVCI.copyPropertiesIgnoreCase(codeFixedValueDTO,codeFixedValueDO); - codeFixedValueMapper.insert(codeFixedValueDO); - return codeFixedValueDO2VO(codeFixedValueDO); - } + /** + * 鍒犻櫎鍥哄畾鐮佹鐨勭爜鍊� + * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈� + * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� + * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯� + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R deleteCodeFixedValue(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException { + VciBaseUtil.alertNotNull(codeFixedValueDTO,"鍥哄畾鐮佹鐨勭爜鍊兼暟鎹璞�",codeFixedValueDTO.getOid(),"鍥哄畾鐮佹鐨勭爜鍊肩殑涓婚敭"); + CodeFixedValue codeFixedValueDO = selectByOid(codeFixedValueDTO.getOid()); + R baseResult = checkIsCanDeleteForDO(codeFixedValueDTO,codeFixedValueDO); + if(!baseResult.isSuccess()) { + return baseResult; + } + //鎵ц鍒犻櫎鎿嶄綔 + boolean resBoolean = codeFixedValueMapper.deleteById(codeFixedValueDO.getOid())>0; + return R.status(resBoolean); + } - /** - * 淇敼鍥哄畾鐮佹鐨勭爜鍊� - * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞� - * @return 鎵ц缁撴灉 - * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 - */ - @Override - public CodeFixedValueVO editSave(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException{ - VciBaseUtil.alertNotNull(codeFixedValueDTO,"鏁版嵁瀵硅薄",codeFixedValueDTO.getOid(),"鍥哄畾鐮佹鐨勭爜鍊间富閿�"); - //灏咲TO杞崲涓篋O - CodeFixedValueDO codeFixedValueDO = selectByOid(codeFixedValueDTO.getOid()); - revisionModelUtil.copyFromDTOIgnore(codeFixedValueDTO,codeFixedValueDO); - codeFixedValueMapper.updateByPrimaryKey(codeFixedValueDO); - return codeFixedValueDO2VO(codeFixedValueDO); - } + /** + * 涓婚敭鑾峰彇鍥哄畾鐮佹鐨勭爜鍊� + * @param oid 涓婚敭 + * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞� + * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父 + */ + @Override + public CodeFixedValueVO getObjectByOid(String oid) throws VciBaseException{ + return CodeFixedValueWrapper.build().entityVO(selectByOid(oid)); + } + /** + * 涓婚敭鏌ヨ鏁版嵁瀵硅薄 + * @param oid 涓婚敭 + * @return 鏁版嵁瀵硅薄 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + private CodeFixedValue selectByOid(String oid) throws VciBaseException{ + VciBaseUtil.alertNotNull(oid,"涓婚敭"); + CodeFixedValue codeFixedValueDO = codeFixedValueMapper.selectById(oid.trim()); + if(codeFixedValueDO == null || StringUtils.isBlank(codeFixedValueDO.getOid())){ + throw new VciBaseException(DATA_OID_NOT_EXIST); + } + return codeFixedValueDO; + } - /** - * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎 - * @param codeFixedValueDTO 鏁版嵁浼犺緭瀵硅薄 - * @param codeFixedValueDO 鏁版嵁搴撲腑鐨勬暟鎹璞� - * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾� - */ - private BaseResult checkIsCanDeleteForDO(CodeFixedValueDTO codeFixedValueDTO, CodeFixedValueDO codeFixedValueDO) { - //boService.checkTs(codeFixedValueDTO); - if(!checkIsLinked(codeFixedValueDO.getOid())) { - return BaseResult.success(); - }else{ - return BaseResult.fail(DATA_LINKED_NOT_DELETE,new String[]{""}); - } - } + /** + * 涓婚敭鎵归噺鑾峰彇鍥哄畾鐮佹鐨勭爜鍊� + * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓� + * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞� + * @throws VciBaseException 鏌ヨ鍑虹幇寮傚父鏃朵細鎶涘嚭 + */ + @Override + public Collection<CodeFixedValueVO> listCodeFixedValueByOids(Collection<String> oidCollections) throws VciBaseException { + VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎"); + List<CodeFixedValue> codeFixedValueDOList = listCodeFixedValueDOByOidCollections(oidCollections); + return CodeFixedValueWrapper.build().listVO(codeFixedValueDOList); + } - /** - * 鏍¢獙鏄惁琚紩鐢� - * @param oid 涓婚敭 - * @throws VciBaseException 琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父 - */ - private boolean checkIsLinked(String oid) throws VciBaseException{ - //TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟 - return false; - } + /** + * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄 + * @param oidCollections 涓婚敭鐨勯泦鍚� + * @return 鏁版嵁瀵硅薄鍒楄〃 + */ + private List<CodeFixedValue> listCodeFixedValueDOByOidCollections(Collection<String> oidCollections){ + List<CodeFixedValue> codeFixedValueDOList = new ArrayList<>(); + if(!CollectionUtils.isEmpty(oidCollections)){ + Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections); + for(Collection<String> oids: oidCollectionsList){ + List<CodeFixedValue> tempDOList = codeFixedValueMapper.selectBatchIds(oids); + if(!CollectionUtils.isEmpty(tempDOList)){ + codeFixedValueDOList.addAll(tempDOList); + } + } + } + return codeFixedValueDOList; + } - /** - * 鍒犻櫎鍥哄畾鐮佹鐨勭爜鍊� - * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈� - * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� - * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯� - */ - @Override - public BaseResult deleteCodeFixedValue(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException{ - VciBaseUtil.alertNotNull(codeFixedValueDTO,"鍥哄畾鐮佹鐨勭爜鍊兼暟鎹璞�",codeFixedValueDTO.getOid(),"鍥哄畾鐮佹鐨勭爜鍊肩殑涓婚敭"); - CodeFixedValueDO codeFixedValueDO = selectByOid(codeFixedValueDTO.getOid()); - BaseResult baseResult = checkIsCanDeleteForDO(codeFixedValueDTO,codeFixedValueDO); - if(baseResult.isSuccess()) { - }else{ - return baseResult; - } - //鎵ц鍒犻櫎鎿嶄綔 - BatchCBO batchCBO = codeFixedValueMapper.deleteByPrimaryKey(codeFixedValueDO.getOid()); - return (batchCBO!=null && batchCBO.getDeleteCbos() !=null &&batchCBO.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL); - } + /** + * 鍙傜収鍥哄畾鐮佹鐨勭爜鍊煎垪琛� + * @param codeFixedValueVO 鏌ヨ鏉′欢 + * @param page 鍒嗛〉鍜屾帓搴� + * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞″垪琛紝鐢熸晥鐨勫唴瀹� + * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 + */ + @Override + public IPage<CodeFixedValueVO> refDataGridCodeFixedValue(CodeFixedValueVO codeFixedValueVO,IPage<CodeFixedValueVO> page) throws VciBaseException{ + return gridCodeFixedValue(codeFixedValueVO,page); + } - /** - * 涓婚敭鑾峰彇鍥哄畾鐮佹鐨勭爜鍊� - * @param oid 涓婚敭 - * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞� - * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父 - */ - @Override - public CodeFixedValueVO getObjectByOid(String oid) throws VciBaseException{ - return codeFixedValueDO2VO(selectByOid(oid)); - } + /** + * 浣跨敤鐮佹鐨勪富閿幏鍙栧浐瀹氱爜鐨勭爜鍊� + * + * @param secOidCollection 鐮佹鐨勪富閿� + * @return 鐮佸�兼樉绀哄璞� + * @throws VciBaseException 鏌ヨ鐨勬椂鍊欏嚭鐜颁簡閿欒浼氭姏鍑哄紓甯� + */ + @Override + public Map<String, List<CodeFixedValueVO>> listCodeFixedValueBySecOids(Collection<String> secOidCollection) throws VciBaseException { + if(CollectionUtils.isEmpty(secOidCollection)){ + return new HashMap<>(); + } + List<CodeFixedValueVO> voList = new ArrayList<>(); + VciBaseUtil.switchCollectionForOracleIn(secOidCollection).forEach(secOids->{ + Query query = new Query(); + query.setDescs("orderNum"); + query.setSize(-1); + query.setCurrent(1); + List<CodeFixedValue> valueDOS = this.codeFixedValueMapper.selectByPageByCodeFixedSecOid(secOids,Condition.getPage(query)); + voList.addAll(CodeFixedValueWrapper.build().listVO(Optional.ofNullable(valueDOS).orElseGet(() -> new ArrayList<>()))); + }); + return voList.stream().collect(Collectors.groupingBy(CodeFixedValueVO::getCodeFixedSecOid)); + } - /** - * 涓婚敭鏌ヨ鏁版嵁瀵硅薄 - * @param oid 涓婚敭 - * @return 鏁版嵁瀵硅薄 - * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父 - */ - private CodeFixedValueDO selectByOid(String oid) throws VciBaseException{ - VciBaseUtil.alertNotNull(oid,"涓婚敭"); - CodeFixedValueDO codeFixedValueDO = codeFixedValueMapper.selectByPrimaryKey(oid.trim()); - if(codeFixedValueDO == null || StringUtils.isBlank(codeFixedValueDO.getOid())){ - throw new VciBaseException(DATA_OID_NOT_EXIST); - } - return codeFixedValueDO; - } + /** + * 鎵归噺娣诲姞鍥哄畾鐮佹鐨勭爜鍊硷紝濡傛灉淇濆瓨鐨勯泦鍚堜腑涓嶅瓨鍦ㄥ凡鍦ㄦ暟鎹簱涓殑鐮佸�煎垯鍒犻櫎銆備富瑕佹槸淇濆瓨鐮佸�肩殑搴忓彿 + * @param dtoList 鍥哄畾鐮佹鐨勭爜鍊煎垪琛� + * @param codefixedsecoid 鍥哄畾鐮佹鐨勪富閿� + * @return 鎵ц缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R<CodeFixedValueVO> batchSave4Order(List<CodeFixedValueDTO> dtoList, String codefixedsecoid) { + VciBaseUtil.alertNotNull(codefixedsecoid,"鍥哄畾鐮佹涓婚敭"); + List<CodeFixedValue> doList = codeFixedValueMapper.selectList(Wrappers.<CodeFixedValue>query() + .lambda().eq(CodeFixedValue::getCodeFixedSecOid,codefixedsecoid) + ); + List<CodeFixedValue> updateList = new ArrayList<>(); + List<String> deleteOidList = new ArrayList<>(); + dtoList.forEach(dto -> { + if (StringUtils.isNotBlank(dto.getOid())){ + List<CodeFixedValue> valueDOList = doList.stream().filter(value -> { + return value.getOid().equals(dto.getOid()); + }).collect(Collectors.toList()); + valueDOList.forEach(valueDO -> { + valueDO.setId(dto.getId()); + valueDO.setName(dto.getName()); + valueDO.setOrderNum(dto.getOrderNum()); + updateList.add(valueDO); + }); + }else{ + throw new VciBaseException("鍥哄畾鐮佹涓婚敭涓嶈兘涓虹┖"); + } + }); + if (doList.size() != dtoList.size()){ + List<String> oidList = dtoList.stream().map(CodeFixedValueDTO::getOid).collect(Collectors.toList()); + List<CodeFixedValue> deleteList = new ArrayList<>(); + for (CodeFixedValue value : doList) { + if (!oidList.contains(value.getOid())){ + deleteList.add(value); + } + } + deleteOidList = deleteList.stream().map(CodeFixedValue::getOid).collect(Collectors.toList()); + } + boolean resBooleanUpdate = this.updateBatchById(updateList); + if (!CollectionUtils.isEmpty(deleteOidList)) { + codeFixedValueMapper.deleteBatchIds(deleteOidList); + } + return R.status(resBooleanUpdate); + } - /** - * 涓婚敭鎵归噺鑾峰彇鍥哄畾鐮佹鐨勭爜鍊� - * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓� - * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞� - * @throws VciBaseException 鏌ヨ鍑虹幇寮傚父鏃朵細鎶涘嚭 - */ - @Override - public Collection<CodeFixedValueVO> listCodeFixedValueByOids(Collection<String> oidCollections) throws VciBaseException{ - VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎"); - List<CodeFixedValueDO> codeFixedValueDOList = listCodeFixedValueDOByOidCollections(oidCollections); - return codeFixedValueDO2VOs(codeFixedValueDOList); - } + /** + * 鏍规嵁鐮佹涓婚敭鍒犻櫎鍏跺瓨鍦ㄧ殑鐮佸�煎璞� + * @param codefixedsecoid 鍥哄畾鐮佹鐨勪富閿� + * @return 鎵ц缁撴灉 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean batchDeleteBySecOid(String codefixedsecoid) { + VciBaseUtil.alertNotNull(codefixedsecoid,"鍥哄畾鐮佹涓婚敭"); + List<CodeFixedValue> doList = codeFixedValueMapper.selectList(Wrappers.<CodeFixedValue>query() + .lambda().eq(CodeFixedValue::getCodeFixedSecOid,codefixedsecoid) + ); + if(doList.isEmpty()){ + return false; + } + boolean resBoolean = codeFixedValueMapper.deleteBatchIds(doList.stream().map(CodeFixedValue::getOid).collect(Collectors.toList())) > 0; + return resBoolean; + } - /** - * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄 - * @param oidCollections 涓婚敭鐨勯泦鍚� - * @return 鏁版嵁瀵硅薄鍒楄〃 - */ - private List<CodeFixedValueDO> listCodeFixedValueDOByOidCollections(Collection<String> oidCollections){ - List<CodeFixedValueDO> codeFixedValueDOList = new ArrayList<CodeFixedValueDO>(); - if(!CollectionUtils.isEmpty(oidCollections)){ - Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections); - for(Collection<String> oids: oidCollectionsList){ - List<CodeFixedValueDO> tempDOList = codeFixedValueMapper.selectByPrimaryKeyCollection(oids); - if(!CollectionUtils.isEmpty(tempDOList)){ - codeFixedValueDOList.addAll(tempDOList); - } - } - } - return codeFixedValueDOList; - } - - - - /** - * 鍙傜収鍥哄畾鐮佹鐨勭爜鍊煎垪琛� - * @param conditionMap 鏌ヨ鏉′欢 - * @param pageHelper 鍒嗛〉鍜屾帓搴� - * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞″垪琛紝鐢熸晥鐨勫唴瀹� - * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 - */ - @Override - public DataGrid<CodeFixedValueVO> refDataGridCodeFixedValue(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{ - if(conditionMap == null){ - conditionMap = new HashMap<String, String>(); - } - return gridCodeFixedValue(conditionMap,pageHelper); - } - - /** - * 浣跨敤鐮佹鐨勪富閿幏鍙栧浐瀹氱爜鐨勭爜鍊� - * - * @param secOidCollection 鐮佹鐨勪富閿� - * @return 鐮佸�兼樉绀哄璞� - * @throws VciBaseException 鏌ヨ鐨勬椂鍊欏嚭鐜颁簡閿欒浼氭姏鍑哄紓甯� - */ - @Override - public Map<String, List<CodeFixedValueVO>> listCodeFixedValueBySecOids(Collection<String> secOidCollection) throws VciBaseException { - if(CollectionUtils.isEmpty(secOidCollection)){ - return new HashMap<>(); - } - List<CodeFixedValueVO> voList = new ArrayList<>(); - VciBaseUtil.switchCollectionForOracleIn(secOidCollection).forEach(secOids->{ - Map<String,String> conditionMap = new HashMap<>(); - conditionMap.put("codefixedsecoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(secOids.toArray(new String[0])) + ")"); - PageHelper pageHelper = new PageHelper(-1); - pageHelper.addDefaultAsc("ordernum"); - List<CodeFixedValueDO> valueDOS = codeFixedValueMapper.selectByCondition(conditionMap, pageHelper); - voList.addAll(codeFixedValueDO2VOs(Optional.ofNullable(valueDOS).orElseGet(() -> new ArrayList<>()))); - }); - return voList.stream().collect(Collectors.groupingBy(CodeFixedValueVO::getCodefixedsecoid)); - } - - /** - * 鎵归噺娣诲姞鍥哄畾鐮佹鐨勭爜鍊硷紝濡傛灉淇濆瓨鐨勯泦鍚堜腑涓嶅瓨鍦ㄥ凡鍦ㄦ暟鎹簱涓殑鐮佸�煎垯鍒犻櫎銆備富瑕佹槸淇濆瓨鐮佸�肩殑搴忓彿 - * @param dtoList 鍥哄畾鐮佹鐨勭爜鍊煎垪琛� - * @param codefixedsecoid 鍥哄畾鐮佹鐨勪富閿� - * @return 鎵ц缁撴灉 - */ - @Override - public BaseResult<CodeFixedValueVO> batchSave4Order(List<CodeFixedValueDTO> dtoList, String codefixedsecoid) { - VciBaseUtil.alertNotNull(codefixedsecoid,"鍥哄畾鐮佹涓婚敭"); - Map<String,String> conditionMap = new HashMap<>(); - conditionMap.put("codefixedsecoid",codefixedsecoid); - VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeFixedValueDO.class); - List<CodeFixedValueDO> doList = codeFixedValueMapper.selectByWrapper(wrapper); - List<CodeFixedValueDO> updateList = new ArrayList<>(); - List<String> deleteOidList = new ArrayList<>(); - dtoList.forEach(dto -> { - if (StringUtils.isNotBlank(dto.getOid())){ - List<CodeFixedValueDO> valueDOList = doList.stream().filter(value -> { - return value.getOid().equals(dto.getOid()); - }).collect(Collectors.toList()); - valueDOList.forEach(valueDO -> { - valueDO.setId(dto.getId()); - valueDO.setName(dto.getName()); - valueDO.setOrderNum(dto.getOrdernum()); - updateList.add(valueDO); - }); - }else{ - throw new VciBaseException("鍥哄畾鐮佹涓婚敭涓嶈兘涓虹┖"); - } - }); - if (doList.size() != dtoList.size()){ - List<String> oidList = dtoList.stream().map(CodeFixedValueDTO::getOid).collect(Collectors.toList()); - List<CodeFixedValueDO> deleteList = new ArrayList<>(); - for (CodeFixedValueDO value : doList) { - if (!oidList.contains(value.getOid())){ - deleteList.add(value); - } - } - deleteOidList = deleteList.stream().map(CodeFixedValueDO::getOid).collect(Collectors.toList()); - } - WebUtil.setPersistence(false); - BatchCBO batchCBO = codeFixedValueMapper.batchUpdate(updateList); - if (!CollectionUtils.isEmpty(deleteOidList)) { - BatchCBO batchDeleteByOids = codeFixedValueMapper.batchDeleteByOids(deleteOidList); - batchCBO.setDeleteCbos(batchDeleteByOids.getDeleteCbos()); - } - WebUtil.setPersistence(true); - boService.persistenceBatch(batchCBO); - return BaseResult.success(); - } - - /** - * 鏍规嵁鐮佹涓婚敭鍒犻櫎鍏跺瓨鍦ㄧ殑鐮佸�煎璞� - * @param codefixedsecoid 鍥哄畾鐮佹鐨勪富閿� - * @return 鎵ц缁撴灉 - */ - @Override - public BaseResult<CodeFixedValueVO> batchDeleteBySecOid(String codefixedsecoid) { - VciBaseUtil.alertNotNull(codefixedsecoid,"鍥哄畾鐮佹涓婚敭"); - Map<String,String> conditionMap = new HashMap<>(); - conditionMap.put("codefixedvalueoid",codefixedsecoid); - VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeFixedValueDO.class); - List<CodeFixedValueDO> doList = codeFixedValueMapper.selectByWrapper(wrapper); - codeFixedValueMapper.batchDeleteByOids(doList.stream().map(CodeFixedValueDO::getOid).collect(Collectors.toList())); - return BaseResult.success(); - } } - -- Gitblit v1.9.3