From 111330b2dd0bccc176ab9c6324a6ed01d5bc0e93 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期四, 12 十月 2023 09:48:03 +0800 Subject: [PATCH] 历史导入编码最大流水值不正确问题修复 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java | 280 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 171 insertions(+), 109 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java index 9cdaaf5..888ea09 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java @@ -18,33 +18,31 @@ import com.alibaba.cloud.commons.lang.StringUtils; 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.service.ICodeTempphaseService; -import com.vci.ubcs.code.constant.MdmBtmTypeConstant; import com.vci.ubcs.code.dto.CodeTemplatePhaseDTO; import com.vci.ubcs.code.entity.*; import com.vci.ubcs.code.mapper.CodePhaseAttrMapper; import com.vci.ubcs.code.mapper.CodeTemplatePhaseMapper; import com.vci.ubcs.code.mapper.CommonsMapper; import com.vci.ubcs.code.service.ICodeClassifyTemplateAttrService; -import com.vci.ubcs.code.service.ICodePhaseattrService; -import com.vci.ubcs.code.service.ICodeTempphaseService; +import com.vci.ubcs.code.service.ICodePhaseAttrService; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO; import com.vci.ubcs.code.vo.pagemodel.CodeTemplatePhaseVO; +import com.vci.ubcs.code.wrapper.CodeTemplatePhaseWapper; import com.vci.ubcs.starter.exception.VciBaseException; import com.vci.ubcs.starter.revision.service.RevisionModelUtil; -import com.vci.ubcs.starter.util.MybatisParameterUtils; -import com.vci.ubcs.starter.web.constant.QueryOptionConstant; -import com.vci.ubcs.starter.web.pagemodel.DataGrid; +import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; +import com.vci.ubcs.starter.util.MdmBtmTypeConstant; +import com.vci.ubcs.starter.util.MybatisParameterUtil; 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 com.vci.ubcs.starter.web.util.WebUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; @@ -78,7 +76,7 @@ private CommonsMapper commonsMapper; @Autowired(required = false) - private ICodePhaseattrService codePhaseattrService; + private ICodePhaseAttrService codePhaseattrService; /** * 瀵硅薄鐨勬搷浣� @@ -92,39 +90,45 @@ @Autowired private ICodeClassifyTemplateAttrService tempAttrService; - /** * 鏌ヨ鎵�鏈夌殑妯℃澘闃舵 - * @param codeTemplatePhaseVO 鏌ヨ鏉′欢 - * @param query 鍒嗛〉鍜屾帓搴� + * @param conditionMap 鏌ヨ鏉′欢 + * @param pageHelper 鍒嗛〉鍜屾帓搴� * @return 鎵ц缁撴灉 * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 */ @Override - public DataGrid<CodeTemplatePhaseVO> gridCodeTemplatePhase(CodeTemplatePhaseVO codeTemplatePhaseVO, Query query) throws VciBaseException { - query.setDescs("createTime"); - query.setSize(-1); - - IPage<CodeTemplatePhase> doList = codeTemplatePhaseMapper.selectPage(Condition.getPage(query), Condition.getQueryWrapper(codeTemplatePhaseVO)); - DataGrid<CodeTemplatePhaseVO> dataGrid=new DataGrid<CodeTemplatePhaseVO>(); - if (!CollectionUtils.isEmpty(doList.getRecords())) { - dataGrid.setData(codeTemplatePhaseDO2VOs(doList.getRecords())); - dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(codeTemplatePhaseMapper.selectCount(Condition.getQueryWrapper(codeTemplatePhaseVO))))); + public IPage<CodeTemplatePhaseVO> gridCodeTemplatePhase(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()); } - return dataGrid; + query.setDescs("CREATETIME"); + CodeTemplatePhase codeTemplatePhase = new CodeTemplatePhase(); + BeanMap beanMap = BeanMap.create(codeTemplatePhase); + beanMap.putAll(conditionMap); + IPage<CodeTemplatePhase> doList = codeTemplatePhaseMapper.selectPage(Condition.getPage(query), Condition.getQueryWrapper(codeTemplatePhase)); + IPage<CodeTemplatePhaseVO> voList = new Page<>(); + if (!CollectionUtils.isEmpty(doList.getRecords())) { + CodeTemplatePhaseWapper.build().pageVO(doList); + } + return voList; } /** * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞� - * @param codeTemplatePhaseDOs 鏁版嵁瀵硅薄鍒楄〃 + * @param codeTemplatePhaseEntityDOS 鏁版嵁瀵硅薄鍒楄〃 * @return 鏄剧ず瀵硅薄 * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呬笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public List<CodeTemplatePhaseVO> codeTemplatePhaseDO2VOs(Collection<CodeTemplatePhase> codeTemplatePhaseDOs) throws VciBaseException{ + public List<CodeTemplatePhaseVO> codeTemplatePhaseDO2VOs(Collection<CodeTemplatePhase> codeTemplatePhaseEntityDOS) throws VciBaseException{ List<CodeTemplatePhaseVO> voList = new ArrayList<CodeTemplatePhaseVO>(); - if(!CollectionUtils.isEmpty(codeTemplatePhaseDOs)){ - for(CodeTemplatePhase s: codeTemplatePhaseDOs){ + if(!CollectionUtils.isEmpty(codeTemplatePhaseEntityDOS)){ + for(CodeTemplatePhase s: codeTemplatePhaseEntityDOS){ CodeTemplatePhaseVO vo = codeTemplatePhaseDO2VO(s); if(vo != null){ voList.add(vo); @@ -136,15 +140,15 @@ /** * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞� - * @param codeTemplatePhaseDO 鏁版嵁瀵硅薄 + * @param codeTemplatePhaseEntityDO 鏁版嵁瀵硅薄 * @return 鏄剧ず瀵硅薄 * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 */ @Override - public CodeTemplatePhaseVO codeTemplatePhaseDO2VO(CodeTemplatePhase codeTemplatePhaseDO) throws VciBaseException{ + public CodeTemplatePhaseVO codeTemplatePhaseDO2VO(CodeTemplatePhase codeTemplatePhaseEntityDO) throws VciBaseException{ CodeTemplatePhaseVO vo = new CodeTemplatePhaseVO(); - if(codeTemplatePhaseDO != null){ - BeanUtilForVCI.copyPropertiesIgnoreCase(codeTemplatePhaseDO,vo); + if(codeTemplatePhaseEntityDO != null){ + BeanUtilForVCI.copyPropertiesIgnoreCase(codeTemplatePhaseEntityDO,vo); //濡傛灉鏈塴cstatus鐨勭被鐨勮瘽 } return vo; @@ -164,8 +168,8 @@ List<CodeTemplatePhase> codeTempphaseEntities = baseMapper.selectByMap(condition); if(!CollectionUtils.isEmpty(codeTempphaseEntities)) { updateCount += baseMapper.deleteBatchIds(codeTempphaseEntities.stream().map(CodeTemplatePhase::getOid).collect(Collectors.toList())); -// batchCBO.copyFromOther(codeTemplatePhaseMapper.batchDeleteByOids(templatePhaseDOS.stream().map(CodeTemplatePhaseDO::getOid).collect(Collectors.toList()))); -// conditionMap.put("codePhaseOid", QueryOptionConstant.IN + "(select oid from " + getPhaseTable() + " where codeClassifyTemplateOid='" + classifyTemplateOid + "')"); + //batchCBO.copyFromOther(codeTemplatePhaseMapper.batchDeleteByOids(templatePhaseDOS.stream().map(CodeTemplatePhaseDO::getOid).collect(Collectors.toList()))); + //conditionMap.put("codePhaseOid", QueryOptionConstant.IN + "(select oid from " + getPhaseTable() + " where codeClassifyTemplateOid='" + classifyTemplateOid + "')"); List<CodePhaseAttr> phaseAttrDOS = codePhaseAttrMapper.selectByPhasea(templateOid); if(!CollectionUtils.isEmpty(phaseAttrDOS)){ updateCount += codePhaseAttrMapper.deleteBatchIds(phaseAttrDOS.stream().map(CodePhaseAttr::getOid).collect(Collectors.toList())); @@ -181,29 +185,29 @@ */ @Override @Transactional(rollbackFor = Exception.class) - public List<CodeClstempattrEntity> codeTemplateAttrModifyTrigger(List<CodeClstempattrEntity> attrDOList){ + public List<CodeClassifyTemplateAttr> codeTemplateAttrModifyTrigger(List<CodeClassifyTemplateAttr> attrDOList){ //灞炴�т慨鏀圭殑鏃跺�欙紝闇�瑕佸悓姝ヤ慨鏀瑰搴斿睘鎬х殑鍚嶇О -// BatchCBO batchCBO = new BatchCBO(); + //BatchCBO batchCBO = new BatchCBO(); List<CodePhaseAttr> phaseAttrDOS =codePhaseAttrMapper.listLinkAttrDOByTemplateAttrDOS(VciBaseUtil.toInSql(attrDOList.stream() - .map(CodeClstempattrEntity::getId).collect(Collectors.toList()).toArray(new String[0])),attrDOList.get(0).getClassifytemplateoid()); + .map(CodeClassifyTemplateAttr::getId).collect(Collectors.toList()).toArray(new String[0])),attrDOList.get(0).getClassifyTemplateOid()); + boolean resSavePhaseAttr = false; if(!CollectionUtils.isEmpty(phaseAttrDOS)){ //璇存槑鏈夊睘鎬�,鎴戜滑鍘绘浛鎹竴涓� - Map<String, CodeClstempattrEntity> attrDOMap = attrDOList.stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); + Map<String, CodeClassifyTemplateAttr> attrDOMap = attrDOList.stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); phaseAttrDOS.stream().forEach(phaseAttrDO->{ if(attrDOMap.containsKey(phaseAttrDO.getId())){ - CodeClstempattrEntity attrDO = attrDOMap.get(phaseAttrDO.getId()); + CodeClassifyTemplateAttr attrDO = attrDOMap.get(phaseAttrDO.getId()); phaseAttrDO.setId(attrDO.getId()); phaseAttrDO.setName(attrDO.getName()); - phaseAttrDO.setAttributegroup(attrDO.getAttributegroup()); + phaseAttrDO.setAttributeGroup(attrDO.getAttributeGroup()); } }); -// codePhaseattrMapper. - codePhaseattrService.saveBatch(phaseAttrDOS); -// BatchCBO updateCBO = -// codePhaseAttrMapper.batchUpdate(phaseAttrDOS); -// batchCBO.copyFromOther(updateCBO); + resSavePhaseAttr = codePhaseattrService.saveBatch(phaseAttrDOS); + //BatchCBO updateCBO = + //codePhaseAttrMapper.batchUpdate(phaseAttrDOS); + //batchCBO.copyFromOther(updateCBO); } - return attrDOList; + return resSavePhaseAttr ? attrDOList:null; } /** @@ -218,21 +222,22 @@ VciBaseUtil.alertNotNull(codeTemplatePhaseDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄",codeTemplatePhaseDTO.getAttributes(),"鍖呭惈鐨勫睘鎬�"); //灏咲TO杞崲涓篋O CodeTemplatePhase codeTemplatePhaseDO = new CodeTemplatePhase(); - codeTemplatePhaseDO.setOid(VciBaseUtil.getPk()); - BeanUtilForVCI.copyPropertiesIgnoreCase(codeTemplatePhaseDTO,codeTemplatePhaseDO); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeTemplatePhaseDTO, codeTemplatePhaseDO); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeTemplatePhaseDO, MdmBtmTypeConstant.CODE_TEMPLATE_PHASE); //WebUtil.setPersistence(false); - boolean resBoolean = codeTemplatePhaseMapper.insert(codeTemplatePhaseDO) > 0; + boolean resInsertTempPhase = codeTemplatePhaseMapper.insert(codeTemplatePhaseDO) > 0; List<CodePhaseAttr> attrDOList = new ArrayList<>(); + CodeTemplatePhase finalCodeTemplatePhaseDO = codeTemplatePhaseDO; codeTemplatePhaseDTO.getAttributes().stream().forEach(attrDTO->{ CodePhaseAttr attrDO = new CodePhaseAttr(); BeanUtilForVCI.copyPropertiesIgnoreCase(attrDTO,attrDO); attrDO.setOid(VciBaseUtil.getPk()); - attrDO.setCodePhaseOid(codeTemplatePhaseDO.getOid()); + attrDO.setCodePhaseOid(finalCodeTemplatePhaseDO.getOid()); attrDOList.add(attrDO); }); - codePhaseattrService.saveBatch(attrDOList); + boolean resPhaseAttr = codePhaseattrService.saveOrUpdateBatch(attrDOList); //WebUtil.setPersistence(true); - return codeTemplatePhaseDO2VO(codeTemplatePhaseDO); + return resInsertTempPhase && resPhaseAttr ? codeTemplatePhaseDO2VO(codeTemplatePhaseDO):null; } /** @@ -246,26 +251,44 @@ public CodeTemplatePhaseVO editSave(CodeTemplatePhaseDTO codeTemplatePhaseDTO) throws VciBaseException{ VciBaseUtil.alertNotNull(codeTemplatePhaseDTO,"鏁版嵁瀵硅薄",codeTemplatePhaseDTO.getOid(),"妯℃澘闃舵涓婚敭",codeTemplatePhaseDTO.getAttributes(),"鍖呭惈鐨勫睘鎬�"); //灏咲TO杞崲涓篋O - CodeTemplatePhase codeTemplatePhaseDO = selectByOid(codeTemplatePhaseDTO.getOid()); - revisionModelUtil.copyFromDTOIgnore(codeTemplatePhaseDTO,codeTemplatePhaseDO); + CodeTemplatePhase codeTemplatePhaseEntityDO = selectByOid(codeTemplatePhaseDTO.getOid()); + revisionModelUtil.copyFromDTOIgnore(codeTemplatePhaseDTO, codeTemplatePhaseEntityDO); + DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeTemplatePhaseEntityDO); //WebUtil.setPersistence(false); - codeTemplatePhaseMapper.updateById(codeTemplatePhaseDO); + codeTemplatePhaseMapper.updateById(codeTemplatePhaseEntityDO); //鎶婁互鍓嶇殑鍒犻櫎 - List<CodePhaseAttr> phaseAttrDOS = listPhaseAttrDOByPhaseOid(codeTemplatePhaseDO.getOid()); + List<CodePhaseAttr> phaseAttrDOS = listPhaseAttrDOByPhaseOid(codeTemplatePhaseEntityDO.getOid()); if(!CollectionUtils.isEmpty(phaseAttrDOS)){ codePhaseAttrMapper.deleteBatchIds(phaseAttrDOS.stream().map(CodePhaseAttr::getOid).collect(Collectors.toList())); } List<CodePhaseAttr> attrDOList = new ArrayList<>(); + codeTemplatePhaseDTO.getAttributes().stream().forEach(attrDTO->{ CodePhaseAttr attrDO = new CodePhaseAttr(); BeanUtilForVCI.copyPropertiesIgnoreCase(attrDTO,attrDO); attrDO.setOid(VciBaseUtil.getPk()); - attrDO.setCodePhaseOid(codeTemplatePhaseDO.getOid()); + attrDO.setCodePhaseOid(codeTemplatePhaseEntityDO.getOid()); attrDOList.add(attrDO); }); codePhaseattrService.saveBatch(attrDOList); //WebUtil.setPersistence(true); - return codeTemplatePhaseDO2VO(codeTemplatePhaseDO); + return codeTemplatePhaseDO2VO(codeTemplatePhaseEntityDO); + } + + /** + * 妯℃澘灞炴�у垹闄ょ殑鏃跺�欒Е鍙� + * @param attrDOList 灞炴�х殑鏁版嵁瀵硅薄 + * @return 鍙楀奖鍝嶇殑鏁版嵁 + */ + @Override + public R codeTemplateAttrDeleteTrigger(List<CodeClassifyTemplateAttr> attrDOList){ + List<CodePhaseAttr> phaseAttrDOS =listLinkAttrDOByTemplateAttrDOS(attrDOList); + boolean resDeletePhaseAttr = false; + if(!CollectionUtils.isEmpty(phaseAttrDOS)){ + //灞炴�ц鍒犻櫎鐨勬椂鍊欙紝闃舵閲岄潰涔熶竴鏍疯琚垹闄� + resDeletePhaseAttr = codePhaseAttrMapper.deleteBatchIds(phaseAttrDOS.stream().map(CodePhaseAttr::getOid).collect(Collectors.toList())) > 0; + } + return R.status(resDeletePhaseAttr); } /** @@ -278,17 +301,17 @@ @Transactional(rollbackFor = Exception.class) public R deleteCodeTemplatePhase(CodeTemplatePhaseDTO codeTemplatePhaseDTO) throws VciBaseException{ VciBaseUtil.alertNotNull(codeTemplatePhaseDTO,"妯℃澘闃舵鏁版嵁瀵硅薄",codeTemplatePhaseDTO.getOid(),"妯℃澘闃舵鐨勪富閿�"); - CodeTemplatePhase codeTemplatePhaseDO = selectByOid(codeTemplatePhaseDTO.getOid()); - R baseResult = checkIsCanDeleteForDO(codeTemplatePhaseDTO,codeTemplatePhaseDO); - if(!baseResult.isSuccess()) { + CodeTemplatePhase codeTemplatePhaseEntityDO = selectByOid(codeTemplatePhaseDTO.getOid()); + R baseResult = checkIsCanDeleteForDO(codeTemplatePhaseDTO, codeTemplatePhaseEntityDO); + if(baseResult.isSuccess()) { }else{ return baseResult; } //鎵ц鍒犻櫎鎿嶄綔 //WebUtil.setPersistence(false); - boolean batchCBO = codeTemplatePhaseMapper.deleteById(codeTemplatePhaseDO.getOid())>0; + boolean batchCBO = codeTemplatePhaseMapper.deleteById(codeTemplatePhaseEntityDO.getOid())>0; //闇�瑕佸垹闄ゅ睘鎬� - List<CodePhaseAttr> phaseAttrDOS = listPhaseAttrDOByPhaseOid(codeTemplatePhaseDO.getOid()); + List<CodePhaseAttr> phaseAttrDOS = listPhaseAttrDOByPhaseOid(codeTemplatePhaseEntityDO.getOid()); boolean deleteCBO = false; if(!CollectionUtils.isEmpty(phaseAttrDOS)) { deleteCBO = codePhaseAttrMapper.deleteBatchIds(phaseAttrDOS.stream().map(CodePhaseAttr::getOid).collect(Collectors.toList()))>0; @@ -304,7 +327,7 @@ * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父 */ @Override - public CodeTemplatePhaseVO getObjectByOid(String oid) throws VciBaseException{ + public CodeTemplatePhaseVO getObjectByOid(String oid) throws VciBaseException{ return codeTemplatePhaseDO2VO(selectByOid(oid)); } @@ -317,8 +340,8 @@ @Override public Collection<CodeTemplatePhaseVO> listCodeTemplatePhaseByOids(Collection<String> oidCollections) throws VciBaseException{ VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎"); - List<CodeTemplatePhase> codeTemplatePhaseDOList = listCodeTemplatePhaseDOByOidCollections(oidCollections); - return codeTemplatePhaseDO2VOs(codeTemplatePhaseDOList); + List<CodeTemplatePhase> codeTemplatePhaseEntityDOList = listCodeTemplatePhaseDOByOidCollections(oidCollections); + return CodeTemplatePhaseWapper.build().listVO(codeTemplatePhaseEntityDOList); } /** @@ -329,18 +352,11 @@ * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 */ @Override - public DataGrid<CodeTemplatePhaseVO> refDataGridCodeTemplatePhase(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{ + public IPage<CodeTemplatePhaseVO> refDataGridCodeTemplatePhase(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{ if(conditionMap == null){ - conditionMap = new HashMap<String, String>(); + conditionMap = new HashMap<>(); } - CodeTemplatePhaseVO codeTemplatePhaseVO = new CodeTemplatePhaseVO(); - BeanMap beanMap = BeanMap.create(codeTemplatePhaseVO); - beanMap.putAll(conditionMap); - Query query = new Query(); - query.setSize(pageHelper.getLimit()); - query.setCurrent(pageHelper.getPage()); - - return gridCodeTemplatePhase(codeTemplatePhaseVO,query); + return gridCodeTemplatePhase(conditionMap,pageHelper); } /** @@ -351,24 +367,28 @@ * @return 灞炴�х殑淇℃伅 */ @Override - public DataGrid<CodeClassifyTemplateAttrVO> gridUnUsedAttribute(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException { + public IPage<CodeClassifyTemplateAttrVO> gridUnUsedAttribute(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException { if(conditionMap == null){ conditionMap = new HashMap<String, String>(); } if(!conditionMap.containsKey("classifyTemplateOid")){ - return new DataGrid<>("娌℃湁妯℃澘鐨勪富閿�"); + throw new VciBaseException("娌℃湁妯℃澘鐨勪富閿�"); } //闇�瑕佸垽鏂樁娈电殑涓婚敭鏄惁瀛樺湪 String codePhaseOid = conditionMap.getOrDefault("codePhaseOid", null); - LambdaQueryWrapper<CodeClassifyTemplateAttr> queryWrapper = null; + MPJLambdaWrapper<CodeClassifyTemplateAttr> queryWrapper = new MPJLambdaWrapper<>(); + queryWrapper.selectAll(CodeClassifyTemplateAttr.class) + .selectAs(CodeClassifyTemplate::getName,CodeClassifyTemplateAttr::getClassifyTemplateOidName) + .leftJoin(CodeClassifyTemplate.class, CodeClassifyTemplate::getOid, CodeClassifyTemplateAttr::getClassifyTemplateOid) + .eq(CodeClassifyTemplateAttr::getClassifyTemplateOid,conditionMap.getOrDefault("classifyTemplateOid",null)); if(StringUtils.isNotBlank(codePhaseOid)){ //鎺掗櫎闃舵涓婁娇鐢ㄧ殑 conditionMap.remove("codePhaseOid"); List<String> ids = commonsMapper.selectById("(select id from " + getPhaseAttrTable() + " where codePhaseOid ='" + codePhaseOid + "')"); - if(ids.size()<=1000){ - queryWrapper = Wrappers.<CodeClassifyTemplateAttr>query().lambda().notIn(CodeClassifyTemplateAttr::getId, ids); + if(ids.size()<1000){ + queryWrapper = queryWrapper.notIn(CodeClassifyTemplateAttr::getId, ids); }else { - queryWrapper = MybatisParameterUtils.cutNotInParameter(queryWrapper,CodeClassifyTemplateAttr::getId,ids); + queryWrapper = MybatisParameterUtil.cutNotInParameter(queryWrapper,CodeClassifyTemplateAttr::getId,ids); } //conditionMap.put("id", QueryOptionConstant.NOTIN + ids); } @@ -383,27 +403,29 @@ * @return 灞炴�х殑淇℃伅 */ @Override - public DataGrid<CodeClassifyTemplateAttrVO> gridUsedAttribute(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException { + public IPage<CodeClassifyTemplateAttrVO> gridUsedAttribute(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException { if(conditionMap == null){ conditionMap = new HashMap<String, String>(); } String codePhaseOid = conditionMap.getOrDefault("codePhaseOid", null); if(StringUtils.isBlank(codePhaseOid)){ - return new DataGrid<>(); + return new Page<>(); } conditionMap.remove("codePhaseOid"); CodeTemplatePhase phaseDO = selectByOid(codePhaseOid); List<String> ids = commonsMapper.selectById("(select id from " + getPhaseAttrTable() + " where codePhaseOid ='" +codePhaseOid + "')"); - LambdaQueryWrapper<CodeClassifyTemplateAttr> queryWrapper = null; - // Wrappers.<CodeClassifyTemplateAttrVO>query() - // .in("id", ids) - if(ids.size()<=1000){ - queryWrapper = Wrappers.<CodeClassifyTemplateAttr>query().lambda().in(CodeClassifyTemplateAttr::getId, ids); + //杩欏効鏄釜杩炶〃鏌ヨ璇彞 + MPJLambdaWrapper<CodeClassifyTemplateAttr> mpjLambdaWrapper = new MPJLambdaWrapper<>(); + mpjLambdaWrapper.selectAll(CodeClassifyTemplateAttr.class) + .selectAs(CodeClassifyTemplate::getName,CodeClassifyTemplateAttr::getClassifyTemplateOidName) + .leftJoin(CodeClassifyTemplate.class, CodeClassifyTemplate::getOid, CodeClassifyTemplateAttr::getClassifyTemplateOid) + .eq(CodeClassifyTemplateAttr::getClassifyTemplateOid,phaseDO.getCodeClassifyTemplateOid()); + if(ids.size()<1000){ + mpjLambdaWrapper = mpjLambdaWrapper.in(CodeClassifyTemplateAttr::getId, ids); }else { - queryWrapper = MybatisParameterUtils.cutInParameter(queryWrapper,CodeClassifyTemplateAttr::getId,ids); + mpjLambdaWrapper = MybatisParameterUtil.cutInParameter(mpjLambdaWrapper,CodeClassifyTemplateAttr::getId,ids); } - queryWrapper.eq(CodeClassifyTemplateAttr::getClassifyTemplateOid,phaseDO.getCodeClassifyTemplateOid()); - return tempAttrService.gridCodeClassifyTemplateAttr(queryWrapper,pageHelper); + return tempAttrService.gridCodeClassifyTemplateAttr(mpjLambdaWrapper,pageHelper); } /** @@ -411,7 +433,20 @@ * @return 琛ㄥ悕 */ private String getPhaseAttrTable(){ - return VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_PHASE_ATTR_TABLENAME); + /**浠ュ墠VciQueryWrapperForDO.USER_TABLE_COMPATIBILITY鍦ㄥ惎鍔ㄦ椂鍒濆鍖栧�间负true鎵�浠ユ嫾鎺ュ嚭鏉ョ殑琛ㄥ悕鏄纭殑锛� + 鐜板湪鍥犱负鎼繃鏉ユ病鏈夎璧嬪�间负true鎵�浠ヨ〃鍚嶆嬁鍒扮殑鏄敊璇殑杩欏効鏆傛椂鍐欐 + **/ + //return VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_PHASE_ATTR_TABLENAME); + return "pl_"+MdmBtmTypeConstant.CODE_PHASE_ATTR_TABLENAME; + } + + /** + * 闃舵鐨勮〃鍚� + * @return 琛ㄥ悕 + */ + private String getPhaseTable(){ + //return VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_TEMPLATE_PHASE); + return "pl_"+MdmBtmTypeConstant.CODE_TEMPLATE_PHASE; } /** @@ -420,32 +455,32 @@ * @return 鏁版嵁瀵硅薄鍒楄〃 */ private List<CodeTemplatePhase> listCodeTemplatePhaseDOByOidCollections(Collection<String> oidCollections){ - List<CodeTemplatePhase> codeTemplatePhaseDOList = new ArrayList<CodeTemplatePhase>(); + List<CodeTemplatePhase> codeTemplatePhaseEntityDOList = new ArrayList<>(); if(!CollectionUtils.isEmpty(oidCollections)){ Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections); for(Collection<String> oids: oidCollectionsList){ List<CodeTemplatePhase> tempDOList = codeTemplatePhaseMapper.selectBatchIds(oids); if(!CollectionUtils.isEmpty(tempDOList)){ - codeTemplatePhaseDOList.addAll(tempDOList); + codeTemplatePhaseEntityDOList.addAll(tempDOList); } } } - return codeTemplatePhaseDOList; + return codeTemplatePhaseEntityDOList; } /** * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎 * @param codeTemplatePhaseDTO 鏁版嵁浼犺緭瀵硅薄 - * @param codeTemplatePhaseDO 鏁版嵁搴撲腑鐨勬暟鎹璞� + * @param codeTemplatePhaseEntityDO 鏁版嵁搴撲腑鐨勬暟鎹璞� * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾� */ - private R checkIsCanDeleteForDO(CodeTemplatePhaseDTO codeTemplatePhaseDTO, CodeTemplatePhase codeTemplatePhaseDO) { + private R checkIsCanDeleteForDO(CodeTemplatePhaseDTO codeTemplatePhaseDTO, CodeTemplatePhase codeTemplatePhaseEntityDO) { CodeTemplatePhase tsDO = new CodeTemplatePhase(); BeanUtil.convert(codeTemplatePhaseDTO,tsDO); - if (checkTs(tsDO)) { + if (!checkTs(tsDO,codeTemplatePhaseEntityDO)) { return R.fail(TS_NOT_PROCESS); } - if(!checkIsLinked(codeTemplatePhaseDO.getOid())) { + if(!checkIsLinked(codeTemplatePhaseEntityDO.getOid())) { return R.success("succcess"); }else{ return R.fail(DATA_LINKED_NOT_DELETE); @@ -454,15 +489,13 @@ /** * 妫�鏌s - * @param tempDO + * @param codeTempphaseDO * @return */ - private boolean checkTs(CodeTemplatePhase tempDO){ - LambdaQueryWrapper<CodeTemplatePhase> wrapper = Wrappers.<CodeTemplatePhase>query() - .lambda().eq(CodeTemplatePhase::getOid,tempDO.getOid()).select(CodeTemplatePhase::getTs); - long dbTs = codePhaseAttrMapper.selectById(wrapper).getTs().getTime(); - long currentTs = tempDO.getTs().getTime(); - if(dbTs == currentTs){ + private boolean checkTs(CodeTemplatePhase tempDO, CodeTemplatePhase codeTempphaseDO){ + Date dbTs = codeTempphaseDO.getTs(); + Date currentTs = tempDO.getTs(); + if(currentTs == null ? dbTs == null:currentTs.compareTo(dbTs)==0){ return true; } return false; @@ -492,6 +525,35 @@ } /** + * 浣跨敤妯℃澘鐨勫睘鎬ц幏鍙栭樁娈典腑鍖呭惈鐨勫睘鎬у唴瀹� + * @param attrDOList 灞炴�х殑鏁版嵁瀵硅薄 + * @return 闃舵閲岀殑灞炴�ф暟鎹璞� + */ + private List<CodePhaseAttr> listLinkAttrDOByTemplateAttrDOS(List<CodeClassifyTemplateAttr> attrDOList){ + if(!CollectionUtils.isEmpty(attrDOList)) { + //鏌ヨ杩欎釜妯℃澘閲屽寘鍚殑鎵�鏈夐樁娈电殑杩欎簺灞炴�� + //鍥犱负oracle閲岃〃鐨勫瓧娈典笉鑳借秴杩�1000涓紝鎵�浠ユ垜浠繖閲岄粯璁ゅ睘鎬т釜鏁版槸灏忎簬1000鐨勶紱 + List<String> oids = commonsMapper.selectById("select oid from " + getPhaseTable() + " where codeClassifyTemplateOid='" + attrDOList.get(0).getClassifyTemplateOid() + "'"); + LambdaQueryWrapper<CodePhaseAttr> queryWrapper = new LambdaQueryWrapper<>(); + if(oids.size()<1000){ + queryWrapper.in(CodePhaseAttr::getCodePhaseOid,oids); + }else { + MybatisParameterUtil.cutInParameter(queryWrapper,CodePhaseAttr::getCodePhaseOid,oids); + } + if(attrDOList.size()<1000){ + queryWrapper.in(CodePhaseAttr::getId,VciBaseUtil.toInSql(attrDOList.stream().map(CodeClassifyTemplateAttr::getId).collect(Collectors.toList()).toArray(new String[0]))); + }else { + MybatisParameterUtil.cutInParameter(queryWrapper,CodePhaseAttr::getId,attrDOList.stream().map(CodeClassifyTemplateAttr::getId).collect(Collectors.toList())); + } + //conditionMap.put("codePhaseOid", QueryOptionConstant.IN + "(select oid from " + getPhaseTable() + " where codeClassifyTemplateOid='" + attrDOList.get(0).getClassifyTemplateOid() + "')"); + //conditionMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(attrDOList.stream().map(CodeClassifyTemplateAttr::getId).collect(Collectors.toList()).toArray(new String[0])) + ")"); + return codePhaseAttrMapper.selectList(queryWrapper); + }else{ + return new ArrayList<>(); + } + } + + /** * 涓婚敭鏌ヨ鏁版嵁瀵硅薄 * @param oid 涓婚敭 * @return 鏁版嵁瀵硅薄 @@ -499,11 +561,11 @@ */ private CodeTemplatePhase selectByOid(String oid) throws VciBaseException{ VciBaseUtil.alertNotNull(oid,"涓婚敭"); - CodeTemplatePhase codeTemplatePhaseDO = codeTemplatePhaseMapper.selectById(oid.trim()); - if(codeTemplatePhaseDO == null || StringUtils.isBlank(codeTemplatePhaseDO.getOid())){ + CodeTemplatePhase codeTemplatePhaseEntityDO = codeTemplatePhaseMapper.selectById(oid.trim()); + if(codeTemplatePhaseEntityDO == null || StringUtils.isBlank(codeTemplatePhaseEntityDO.getOid())){ throw new VciBaseException(DATA_OID_NOT_EXIST); } - return codeTemplatePhaseDO; + return codeTemplatePhaseEntityDO; } } -- Gitblit v1.9.3