From 850dedca3754c8d29ce74bb4a850f9fc0e58d410 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 26 五月 2023 19:09:43 +0800 Subject: [PATCH] 后端代码整合 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java | 199 ++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 171 insertions(+), 28 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java index be55775..d03683d 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java @@ -1,28 +1,55 @@ package com.vci.ubcs.code.service.impl; +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.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.vci.ubcs.code.entity.CodeReferConfig; -import com.vci.ubcs.code.entity.CodeShowFieldConfig; -import com.vci.ubcs.code.entity.CodeSrchCondConfig; +import com.vci.ubcs.code.constant.MdmBtmTypeConstant; +import com.vci.ubcs.code.dto.CodeClassifyProcessTempDTO; +import com.vci.ubcs.code.dto.CodeReferConfigDTO; +import com.vci.ubcs.code.entity.*; import com.vci.ubcs.code.mapper.CodeReferConfigMapper; +import com.vci.ubcs.code.mapper.CodeShowFieldConfigMapper; import com.vci.ubcs.code.service.CodeReferConfigService; +import com.vci.ubcs.code.service.CodeShowFieldConfigService; +import com.vci.ubcs.code.service.CodeSrchCondConfigService; import com.vci.ubcs.code.vo.CodeReferConfigVO; +import com.vci.ubcs.code.wrapper.CodeClassifyProcessTempWrapper; import com.vci.ubcs.code.wrapper.CodeReferConfigWraper; +import com.vci.ubcs.code.wrapper.CodeShowFieldConfigWraper; +import com.vci.ubcs.code.wrapper.CodeSrchCondConfigWraper; +import com.vci.ubcs.starter.exception.VciBaseException; +import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; import com.vci.ubcs.starter.util.Map2MPJLambdaUtil; import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject; +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.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; +import org.springframework.cglib.beans.BeanMap; import org.springframework.stereotype.Service; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.TS_NOT_PROCESS; /** * 鍙傜収閰嶇疆琛�(CodeReferconfig)琛ㄦ湇鍔″疄鐜扮被 @@ -31,9 +58,16 @@ * @since 2023-05-19 17:48:02 */ @Service("CodeReferconfigService") -public class CodeReferConfigServiceImpl extends ServiceImpl<CodeReferConfigMapper,CodeReferConfig> implements CodeReferConfigService { +public class CodeReferConfigServiceImpl extends MPJBaseServiceImpl<CodeReferConfigMapper,CodeReferConfig> implements CodeReferConfigService { + @Resource private CodeReferConfigMapper codeReferconfigMapper; + + @Resource + private CodeShowFieldConfigService codeShowFieldConfigService; + + @Resource + private CodeSrchCondConfigService codeSrchCondConfigService; /** * 閫氳繃ID鏌ヨ鍗曟潯鏁版嵁 @@ -42,61 +76,170 @@ * @return 瀹炰緥瀵硅薄 */ @Override - public CodeReferConfig queryById(String oid) { - return this.codeReferconfigMapper.queryById(oid); + public CodeReferConfigVO queryById(String oid) { + CodeReferConfig codeReferConfig = this.codeReferconfigMapper.selectJoinOne(CodeReferConfig.class, this.getMPJLambdaWrapper().eq(CodeReferConfig::getOid, oid)); + return CodeReferConfigWraper.build().entityVO(codeReferConfig); } - /** + @Override + public IPage<CodeReferConfigVO> queryByJoinPage(BladeQueryObject bladeQueryObject) { + CodeReferConfig codeReferConfig = new CodeReferConfig(); + // 鏍规嵁绉熸埛杩涜鍖哄垎瀵瑰簲鐨勫弬鐓ч厤缃� + Map<String, Object> conditionMap = bladeQueryObject.getConditionMap(); + conditionMap.put("tenantId",AuthUtil.getTenantId()); + BeanMap beanMap = BeanMap.create(codeReferConfig); + beanMap.putAll(conditionMap); + // 娣诲姞榛樿鎺掑簭瀛楁,鏍规嵁鏃堕棿杩涜鎺掑簭 + Query query = bladeQueryObject.getQuery(); + query.setAscs("CREATETIME"); + IPage<CodeReferConfig> codeReferConfigs = codeReferconfigMapper.selectJoinPage(codeReferConfig, Condition.getPage(query)); + return CodeReferConfigWraper.build().pageVO(codeReferConfigs); + } + + /** * 鍒嗛〉鏌ヨ * - * @param bladeQueryObject 绛涢�夋潯浠� + * @param codeReferConfigVO 绛涢�夋潯浠� * @return 鏌ヨ缁撴灉 */ @Override - public IPage<CodeReferConfigVO> queryByPage(BladeQueryObject bladeQueryObject) { - MPJLambdaWrapper<CodeReferConfig> mpjLambdaWrapper = Map2MPJLambdaUtil.getMPJLambdaWrapper(bladeQueryObject.getConditionMap(), CodeReferConfig.class) - .selectAll(CodeReferConfig.class) - .selectCollection("PCS",CodeShowFieldConfig.class, CodeReferConfig::getCodeShowFieldConfigs) - .selectCollection("PCSR",CodeSrchCondConfig.class, CodeReferConfig::getCodeSrchCondConfigs) - .leftJoin(CodeShowFieldConfig.class, CodeShowFieldConfig::getReferConfigOid,CodeReferConfig::getOid) - .leftJoin(CodeSrchCondConfig.class, CodeSrchCondConfig::getReferConfigOid, CodeReferConfig::getOid) + public List<CodeReferConfigVO> queryByList(CodeReferConfigVO codeReferConfigVO) { + codeReferConfigVO.setTenantId(AuthUtil.getTenantId()); + //MPJLambdaWrapper<CodeReferConfig> mpjLambdaWrapper = Map2MPJLambdaUtil.getMPJLambdaWrapper(bladeQueryObject.getConditionMap(), CodeReferConfig.class) + MPJLambdaWrapper<CodeReferConfig> mpjLambdaWrapper = getMPJLambdaWrapper() + .setEntity(codeReferConfigVO) .orderBy(true, true, CodeReferConfig::getCreateTime); - IPage<CodeReferConfig> codeReferConfigIPage = this.codeReferconfigMapper.selectPage(Condition.getPage(bladeQueryObject.getQuery()), mpjLambdaWrapper); - return CodeReferConfigWraper.build().pageVO(codeReferConfigIPage); + List<CodeReferConfig> codeReferConfigList = codeReferconfigMapper.selectJoinList(CodeReferConfig.class, mpjLambdaWrapper); + return CodeReferConfigWraper.build().listVO(codeReferConfigList); } /** * 鏂板鏁版嵁 * - * @param codeReferConfig 瀹炰緥瀵硅薄 + * @param codeReferConfigVO 瀹炰緥瀵硅薄 * @return 瀹炰緥瀵硅薄 */ @Override - public CodeReferConfig insert(CodeReferConfig codeReferConfig) { - this.codeReferconfigMapper.insert(codeReferConfig); - return codeReferConfig; + @Transactional(rollbackFor = Exception.class) + public R insert(CodeReferConfigVO codeReferConfigVO) { + VciBaseUtil.alertNotNull(codeReferConfigVO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + if (StringUtils.isBlank(codeReferConfigVO.getReferType())){ + throw new VciBaseException("鍙傜収閰嶇疆涓嶈兘涓虹┖"); + } + Long count = countCodeReferConfig(codeReferConfigVO); + if(count > 0){ + throw new VciBaseException("宸插瓨鍦ㄧ浉鍚岀殑鍙傜収閰嶇疆"); + } + + CodeReferConfig CodeReferConfig = Objects.requireNonNull(BeanUtil.copy(codeReferConfigVO, CodeReferConfig.class)); + boolean resInsertReferConfig = this.codeReferconfigMapper.insert(CodeReferConfig) > 0; + if (!resInsertReferConfig) { + return R.fail("鏂板鍙傜収閰嶇疆澶辫触锛�"); + } + codeShowFieldConfigService.insertBatch(codeReferConfigVO.getCodeShowFieldConfigVOS()); + codeSrchCondConfigService.insertBatch(codeReferConfigVO.getCodeSrchCondConfigVOS()); + return R.data(codeReferConfigVO); } + + /** + * 鑾峰彇宸插瓨鍦ㄧ殑鍙傜収閰嶇疆 + * @param codeReferConfigVO + * @return 涓暟 + */ + private Long countCodeReferConfig(CodeReferConfigVO codeReferConfigVO) { + String templateName = codeReferConfigVO.getName(); + if (StringUtils.isBlank(templateName)){ + throw new VciBaseException("鍙傜収閰嶇疆鍚嶇О涓嶈兘涓虹┖"); + } + LambdaQueryWrapper<CodeReferConfig> wrapper = Wrappers.<CodeReferConfig>query() + .lambda().eq(CodeReferConfig::getId, codeReferConfigVO.getId()) + .eq(CodeReferConfig::getTenantId, codeReferConfigVO.getTenantId()); + Long count = codeReferconfigMapper.selectCount(wrapper); + return count; + } + + /** + * 杩炶〃鏌ヨWrapper瀵硅薄鑾峰彇 + * @return + */ + private MPJLambdaWrapper<CodeReferConfig> getMPJLambdaWrapper(){ + MPJLambdaWrapper<CodeReferConfig> mpjLambdaWrapper = new MPJLambdaWrapper<>(CodeReferConfig.class) + .selectAll(CodeReferConfig.class) + // .select(CodeShowFieldConfig::getField +// ,CodeShowFieldConfig::getTitle +// ,CodeShowFieldConfig::getFieldType +// ,CodeShowFieldConfig::getSort +// ,CodeShowFieldConfig::getAttrSortField +// ,CodeShowFieldConfig::getWidth +// ,CodeShowFieldConfig::getFixedPosition +// ,CodeShowFieldConfig::getTemplet) +// .select( +// CodeSrchCondConfig::getFilterType, +// CodeSrchCondConfig::getFilterField, +// CodeSrchCondConfig::getFilterValue) + .selectCollection(CodeShowFieldConfig.class, CodeReferConfig::getCodeShowFieldConfigs) + .selectCollection(CodeSrchCondConfig.class, CodeReferConfig::getCodeSrchCondConfigs) + .leftJoin(CodeShowFieldConfig.class, CodeShowFieldConfig::getReferConfigOid,CodeReferConfig::getOid) + .leftJoin(CodeSrchCondConfig.class, CodeSrchCondConfig::getReferConfigOid, CodeReferConfig::getOid); + return mpjLambdaWrapper; + } /** * 淇敼鏁版嵁 * - * @param codeReferConfig 瀹炰緥瀵硅薄 + * @param codeReferConfigVO 瀹炰緥瀵硅薄 * @return 瀹炰緥瀵硅薄 */ @Override - public CodeReferConfig update(CodeReferConfig codeReferConfig) { - this.codeReferconfigMapper.updateById(codeReferConfig); - return this.queryById(codeReferConfig.getOid()); + @Transactional(rollbackFor = Exception.class) + public R update(CodeReferConfigVO codeReferConfigVO) { + boolean resUpdateReferConfig = this.codeReferconfigMapper.updateById(codeReferConfigVO) > 0; + if (!resUpdateReferConfig) { + return R.fail("鍙傜収閰嶇疆淇敼澶辫触锛�"); + } + this.codeShowFieldConfigService.updateBatch(codeReferConfigVO.getCodeShowFieldConfigVOS()); + this.codeSrchCondConfigService.updateBatch(codeReferConfigVO.getCodeSrchCondConfigVOS()); + return R.data(codeReferConfigVO); } /** * 閫氳繃涓婚敭鍒犻櫎鏁版嵁 * - * @param oid 涓婚敭 + * @param codeReferConfigDTO * @return 鏄惁鎴愬姛 */ @Override - public boolean deleteById(String oid) { - return this.codeReferconfigMapper.deleteById(oid) > 0; + @Transactional(rollbackFor = Exception.class) + public R deleteById(CodeReferConfigDTO codeReferConfigDTO) { + CodeReferConfig tsDO = new CodeReferConfig(); + BeanUtil.copyProperties(tsDO,codeReferConfigDTO); + CodeReferConfig codeReferConfig = codeReferconfigMapper.queryById(codeReferConfigDTO.getOid()); + // 妫�鏌s瀛楁鏄惁涓�鑷� + if (!checkTs(tsDO,codeReferConfig)) { + return R.fail(TS_NOT_PROCESS); + } + boolean resDeleteReferConfig = this.codeReferconfigMapper.deleteById(codeReferConfigDTO.getOid()) > 0; + if (!resDeleteReferConfig) { + return R.fail("鍙傜収閰嶇疆鍒犻櫎澶辫触锛�"); + } + this.codeShowFieldConfigService.deleteByReferConfigOid(codeReferConfigDTO.getOid()); + this.codeSrchCondConfigService.deleteByReferConfigOid(codeReferConfigDTO.getOid()); + return R.status(resDeleteReferConfig); } + + /** + * 妫�鏌s + * @param tempDO + * @param codeReferConfig + * @return + */ + private boolean checkTs(CodeReferConfig tempDO, CodeReferConfig codeReferConfig){ + Date dbTs = codeReferConfig.getTs(); + Date currentTs = tempDO.getTs(); + if(currentTs == null ? dbTs == null:currentTs.compareTo(dbTs)==0){ + return true; + } + return false; + } + } -- Gitblit v1.9.3