From db1c3c5b3670639fd1dfc5de0fe75ce6f02f732e Mon Sep 17 00:00:00 2001 From: wang1 <844966816@qq.com> Date: 星期三, 31 五月 2023 14:40:07 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java | 223 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 183 insertions(+), 40 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..2b538e9 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,41 @@ package com.vci.ubcs.code.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.alibaba.cloud.commons.lang.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +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.CodeReferConfigDTO; +import com.vci.ubcs.code.entity.*; import com.vci.ubcs.code.mapper.CodeReferConfigMapper; -import com.vci.ubcs.code.service.CodeReferConfigService; +import com.vci.ubcs.code.service.ICodeReferConfigService; +import com.vci.ubcs.code.service.ICodeShowFieldConfigService; +import com.vci.ubcs.code.service.ICodeSrchCondConfigService; import com.vci.ubcs.code.vo.CodeReferConfigVO; import com.vci.ubcs.code.wrapper.CodeReferConfigWraper; -import com.vci.ubcs.starter.util.Map2MPJLambdaUtil; -import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; +import com.vci.ubcs.starter.exception.VciBaseException; +import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject; +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.springblade.core.tool.utils.Func; +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 static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.TS_NOT_PROCESS; /** * 鍙傜収閰嶇疆琛�(CodeReferconfig)琛ㄦ湇鍔″疄鐜扮被 @@ -31,9 +44,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 ICodeReferConfigService { + @Resource private CodeReferConfigMapper codeReferconfigMapper; + + @Resource + private ICodeShowFieldConfigService ICodeShowFieldConfigService; + + @Resource + private ICodeSrchCondConfigService ICodeSrchCondConfigService; /** * 閫氳繃ID鏌ヨ鍗曟潯鏁版嵁 @@ -42,61 +62,184 @@ * @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); } - /** - * 鍒嗛〉鏌ヨ - * - * @param bladeQueryObject 绛涢�夋潯浠� - * @return 鏌ヨ缁撴灉 - */ + /** + * 鍒嗛〉鏌ヨ + * + * @param bladeQueryObject 绛涢�夋潯浠� + * @return 鏌ヨ缁撴灉 + */ + @Override + public IPage<CodeReferConfigVO> queryByJoinPage(BladeQueryObject bladeQueryObject) { + CodeReferConfig codeReferConfig = new CodeReferConfig(); + // 鏍规嵁绉熸埛杩涜鍖哄垎瀵瑰簲鐨勫弬鐓ч厤缃� + Map<String, Object> conditionMap = bladeQueryObject.getConditionMap(); + // 鏌ヨ鎵�灞炵鎴蜂笅鐨勫拰寮�鍚叏灞�鐨勫弬鐓ч厤缃俊鎭� + conditionMap.put("tenantId",AuthUtil.getTenantId()); + conditionMap.put("isOpenGlobal","true"); + 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); + } + @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 = CodeReferConfigWraper.build().entityDO(codeReferConfigVO); + codeReferConfig.setOid(VciBaseUtil.getPk().toUpperCase()); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeReferConfig, MdmBtmTypeConstant.CODE_REFER_CONFIG); + codeReferConfig.setTenantId(AuthUtil.getTenantId()); + boolean resInsertReferConfig = this.codeReferconfigMapper.insert(codeReferConfig) > 0; + if (!resInsertReferConfig) { + return R.fail("鏂板鍙傜収閰嶇疆澶辫触锛�"); + } + // 涓婚敭鍥炲~ + if(Func.isNotEmpty(codeReferConfig.getCodeShowFieldConfigs())){ + ICodeShowFieldConfigService.insertBatch(codeReferConfigVO.getCodeShowFieldConfigVOS(),codeReferConfig.getOid()); + } + if(Func.isNotEmpty(codeReferConfig.getCodeSrchCondConfigs())){ + ICodeSrchCondConfigService.insertBatch(codeReferConfigVO.getCodeSrchCondConfigVOS(),codeReferConfig.getOid()); + } + return R.data(codeReferConfigVO); } + + /** + * 鑾峰彇宸插瓨鍦ㄧ殑鍙傜収閰嶇疆 + * @param codeReferConfigVO + * @return 涓暟 + */ + private Long countCodeReferConfig(CodeReferConfigVO codeReferConfigVO) { + String templateName = codeReferConfigVO.getName(); + String templateId = codeReferConfigVO.getId(); + if (StringUtils.isBlank(templateName) && StringUtils.isBlank(templateId)){ + throw new VciBaseException("鍙傜収閰嶇疆缂栧彿鍜屽悕绉颁笉鑳戒负绌�"); + } + LambdaQueryWrapper<CodeReferConfig> wrapper = Wrappers.<CodeReferConfig>query() + .lambda().eq(CodeReferConfig::getId, codeReferConfigVO.getId()) + .eq(CodeReferConfig::getTenantId, codeReferConfigVO.getTenantId()) + .or(true) + .eq(CodeReferConfig::getIsOpenGlobal,"true") // 鏌ヨ寮�鍚叏灞�鐨勫弬鐓ч厤缃� + .eq(CodeReferConfig::getId,templateId) + .eq(CodeReferConfig::getName,templateName); + 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.ICodeShowFieldConfigService.updateBatch(codeReferConfigVO.getCodeShowFieldConfigVOS()); + this.ICodeSrchCondConfigService.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.ICodeShowFieldConfigService.deleteByReferConfigOid(codeReferConfigDTO.getOid()); + this.ICodeSrchCondConfigService.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