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