From 8169bb01de23d48a2ccd289fe3bc394b7821a4f5 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 19 九月 2023 16:23:37 +0800
Subject: [PATCH] 代码提交
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java | 229 +++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 189 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..a281517 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,42 @@
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.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.util.MdmBtmTypeConstant;
import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.system.cache.NacosConfigCache;
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 +45,19 @@
* @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;
+
+ @Resource
+ private NacosConfigCache nacosConfigCache;
/**
* 閫氳繃ID鏌ヨ鍗曟潯鏁版嵁
@@ -42,61 +66,186 @@
* @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();
+ // 鏌ヨ鎵�灞炵鎴蜂笅鐨勫拰寮�鍚叏灞�鐨勫弬鐓ч厤缃俊鎭�
+ if(!nacosConfigCache.getAdminUserInfo().getTenantId().equals(AuthUtil.getTenantId())){
+ 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 = UBCSCondition.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