From ec407e8676f6245d88da3d9f729ad545ae3218c0 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 18 七月 2023 15:20:03 +0800
Subject: [PATCH] 代码提交

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java |  124 +++++++++++++++++++++++++++++++++--------
 1 files changed, 99 insertions(+), 25 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
index d3f6040..62f4143 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
@@ -1,12 +1,15 @@
 package com.vci.ubcs.code.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
 import com.vci.ubcs.code.dto.CodeClassifyValueDTO;
+import com.vci.ubcs.code.entity.CodeBasicSec;
 import com.vci.ubcs.code.entity.CodeClassifyValue;
-import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus;
+import com.vci.ubcs.code.enumpack.*;
 import com.vci.ubcs.code.mapper.CodeClassifyValueMapper;
 import com.vci.ubcs.code.service.ICodeBasicSecService;
 import com.vci.ubcs.code.service.ICodeClassifyValueService;
@@ -16,11 +19,15 @@
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
 import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
 import com.vci.ubcs.starter.web.pagemodel.Tree;
 import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -30,7 +37,8 @@
 import java.util.stream.Collectors;
 
 import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.LC_STATUS;
-import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.*;
+import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_CASCADE_LINKED_NOT_DELETE;
+import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST;
 
 @Service
 public class CodeClassifyValueServiceImpl  extends ServiceImpl<CodeClassifyValueMapper, CodeClassifyValue> implements ICodeClassifyValueService {
@@ -48,7 +56,7 @@
 	/**
 	 * 涓婄骇鑺傜偣鐨勫睘鎬у悕绉�
 	 */
-	private static  final String PARENT_FIELD_NAME = "parentClassifyValueOid";
+	private static final String PARENT_FIELD_NAME = "parentClassifyValueOid";
 
 	/**
 	 * 鏌ヨ鍒嗙被鐮佹鐨勭爜鍊� 鏍�
@@ -58,8 +66,7 @@
 	 */
 	@Override
 	public List<Tree> treeCodeClassifyValue(TreeQueryObject treeQueryObject) throws VciBaseException {
-		// List<CodeClassifyValueDO> doList =selectCodeClassifyValueDOByTree(treeQueryObject);
-		List<CodeClassifyValue> doList =selectCodeClassifyValueDO4Tree(treeQueryObject);
+		List<CodeClassifyValue> doList = selectCodeClassifyValueDO4Tree(treeQueryObject);
 		List<CodeClassifyValueVO> voList = CodeClassifyValueWrapper.build().listVO(doList);
 		TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME);
 		treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
@@ -77,12 +84,13 @@
 	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
 	 */
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public boolean addSave(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
 		VciBaseUtil.alertNotNull(codeClassifyValueDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
 		//娣诲姞瀵圭爜鍊煎瓙鐖剁骇鐨勫垽鏂�
-		if(StringUtils.isNotBlank(codeClassifyValueDTO.getParentclassifyvalueoid())){
-			String parentclassifyvalueoid = codeClassifyValueDTO.getParentclassifyvalueoid();
-			String codeclassifysecoid = codeClassifyValueDTO.getCodeclassifysecoid();
+		if(StringUtils.isNotBlank(codeClassifyValueDTO.getParentClassifyValueOid())){
+			String parentclassifyvalueoid = codeClassifyValueDTO.getParentClassifyValueOid();
+			String codeclassifysecoid = codeClassifyValueDTO.getCodeClassifySecOid();
 			CodeClassifyValue parentDO = codeClassifyValueMapper.selectById(parentclassifyvalueoid);
 			if (parentDO.getCodeClassifySecOid().equalsIgnoreCase(codeclassifysecoid)){
 				throw new VciBaseException("涓嶅厑璁稿湪鐖剁爜鍊间腑鐩存帴娣诲姞瀛愮爜鍊�");
@@ -91,6 +99,8 @@
 		//灏咲TO杞崲涓篋O
 		CodeClassifyValue codeClassifyValueDO = new CodeClassifyValue();
 		BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyValueDTO,codeClassifyValueDO);
+		//濉厖涓�浜涢粯璁ゅ��
+		DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeClassifyValueDO,MdmBtmTypeConstant.CODE_CLASSIFY_VALUE);
 		//鏌ヨ
 		List<CodeClassifyValue> existList = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query()
 			.lambda().eq(CodeClassifyValue::getCodeClassifySecOid, codeClassifyValueDO.getCodeClassifySecOid())
@@ -108,11 +118,14 @@
 	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
 	 */
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public boolean editSave(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
 		VciBaseUtil.alertNotNull(codeClassifyValueDTO,"鏁版嵁瀵硅薄",codeClassifyValueDTO.getOid(),"鍒嗙被鐮佹鐨勭爜鍊间富閿�");
 		//灏咲TO杞崲涓篋O
 		CodeClassifyValue codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
 		revisionModelUtil.copyFromDTOIgnore(codeClassifyValueDTO,codeClassifyValueDO);
+		//濉厖涓�浜涢粯璁ゅ��
+		DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeClassifyValueDO);
 		boolean resBoolean = codeClassifyValueMapper.updateById(codeClassifyValueDO) > 0;
 		return resBoolean;
 	}
@@ -137,9 +150,7 @@
 	 * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
 	 */
 	private R checkIsCanDeleteForDO(CodeClassifyValueDTO codeClassifyValueDTO, CodeClassifyValue codeClassifyValueDO) {
-		if (!checkTs(codeClassifyValueDTO,codeClassifyValueDO)) {
-			return R.fail(TS_NOT_PROCESS);
-		}
+		//boService.checkTs(codeClassifyValueDTO);
 		//鏍¢獙涓嬬骇鏄惁鏈夊紩鐢�
 		if(checkChildIsLinked(codeClassifyValueDO.getOid())){
 			return R.fail(DATA_CASCADE_LINKED_NOT_DELETE);
@@ -204,7 +215,7 @@
 		VciBaseUtil.alertNotNull(codeClassifyValueDTO,"鍒嗙被鐮佹鐨勭爜鍊兼暟鎹璞�",codeClassifyValueDTO.getOid(),"鍒嗙被鐮佹鐨勭爜鍊肩殑涓婚敭");
 		CodeClassifyValue codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
 		R baseResult = checkIsCanDeleteForDO(codeClassifyValueDTO,codeClassifyValueDO);
-		if(baseResult.isSuccess()) {
+		if(!baseResult.isSuccess()) {
 			//鎵句笅绾х殑锛岃繖涓槸鍙互鍒犻櫎鐨勬椂鍊橰
 			List<String> childrenOids = codeClassifyValueMapper.selectAllLevelChildOid(codeClassifyValueDO.getOid().trim());
 			if (!CollectionUtils.isEmpty(childrenOids)) {
@@ -273,7 +284,7 @@
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public R batchSave4Order(List<CodeClassifyValueDTO> dtoList, String codeclassifysecoid) {
+	public R batchSave4Order(List<CodeClassifyValueDTO> dtoList, String codeclassifysecoid) throws VciBaseException{
 		VciBaseUtil.alertNotNull(codeclassifysecoid,"鍒嗙被鐮佹涓婚敭");
 		List<CodeClassifyValue> valueDOList = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query()
 			.lambda().eq(CodeClassifyValue::getCodeClassifySecOid,codeclassifysecoid)
@@ -281,18 +292,21 @@
 
 		List<CodeClassifyValue> updateList = new ArrayList<>();
 		dtoList.forEach(dto -> {
-			if( StringUtils.isNotBlank( dto.getOid() )){
+			if(StringUtils.isNotBlank(dto.getOid())){
 				List<CodeClassifyValue> collect = valueDOList.stream().filter(value -> {
 					return dto.getOid().equals(value.getOid());
 				}).collect(Collectors.toList());
 				collect.forEach(ccv -> {
-					ccv.setOrderNum(dto.getOrdernum());
+					ccv.setOrderNum(dto.getOrderNum());
 					ccv.setId(dto.getId());
 					ccv.setName(dto.getName());
 					updateList.add(ccv);
 				});
 			}
 		});
+		if(updateList.isEmpty()){
+			return R.fail("璇ユ搷浣滄湁璇�愬緟鎿嶄綔闆嗗悎涓虹┖銆戙��");
+		}
 		boolean resBoolean = this.updateBatchById(updateList);
 		return R.status(resBoolean);
 	}
@@ -336,22 +350,82 @@
 		List<String> oids = codeBasicSecService.getOidByCodeclassifysecOid(conditionMap.get("codeclassifysecoid"));
 		LambdaQueryWrapper<CodeClassifyValue> wrapper = Wrappers.<CodeClassifyValue>query()
 			.lambda().in(CodeClassifyValue::getCodeClassifySecOid,oids)
-			.orderByDesc(CodeClassifyValue::getOrderNum);
+			.orderByAsc(CodeClassifyValue::getOrderNum);
 		return codeClassifyValueMapper.selectList(wrapper);
 	}
 
 	/**
-	 * 妫�鏌s
-	 * @param tempDO
-	 * @return
+	 * 浣跨敤鐮佹鐨勪富閿幏鍙栧垎绫荤殑鐮佸�煎唴瀹�
+	 *
+	 * @param classifySecOid         鐮佹鐨勪富閿�
+	 * @param parentClassifyValueOid 涓婄骇鍒嗙被鐨勪富閿�
+	 * @return 鍒嗙被鐮佸�肩殑鍐呭
 	 */
-	private boolean checkTs(CodeClassifyValueDTO tempDO,CodeClassifyValue codeClassifyValueDO){
-		Date dbTs = codeClassifyValueDO.getTs();
-		Date currentTs = tempDO.getTs();
-		if(currentTs == null ?  dbTs == null:currentTs.compareTo(dbTs)==0){
-			return true;
+	@Override
+	public List<CodeClassifyValueVO> listCodeClassifyValueBySecOid(String classifySecOid, String parentClassifyValueOid) {
+		if(StringUtils.isBlank(classifySecOid)){
+			return new ArrayList<>();
 		}
-		return false;
+		CodeBasicSec secDO = codeBasicSecService.getById(classifySecOid);
+		if(secDO == null || StringUtils.isBlank(secDO.getOid())){
+			throw new VciBaseException("鐮佹鐨勫唴瀹瑰湪绯荤粺涓笉瀛樺湪");
+		}
+		if(StringUtils.isNotBlank(secDO.getParentClassifySecOid()) && StringUtils.isBlank(parentClassifyValueOid)){
+			return new ArrayList<>();
+			//鍥犱负鏈変笂绾у垎绫荤殑鏃跺�欙紝蹇呴』鍏堥�夋嫨涓婄骇鍒嗙被鐨勫唴瀹�
+		}
+//		Map<String,String> conditionMap = new HashMap<>();
+//		conditionMap.put("codeClassifySecOid",classifySecOid);
+//		if(StringUtils.isNotBlank(parentClassifyValueOid)){
+//			conditionMap.put("parentClassifyValueOid",parentClassifyValueOid);
+//		}
+//		PageHelper pageHelper = new PageHelper(-1);
+//		pageHelper.addDefaultAsc("ordernum");
+		QueryWrapper<CodeClassifyValue> wrapper = new QueryWrapper<>();
+		wrapper.eq("codeClassifySecOid",classifySecOid);
+		if(StringUtils.isNotBlank(parentClassifyValueOid)){
+			wrapper.in("parentClassifyValueOid",VciBaseUtil.str2List(parentClassifyValueOid));
+		}
+		wrapper.orderByAsc("ordernum");
+
+		List<CodeClassifyValue> valueDOList = codeClassifyValueMapper.selectList(wrapper);
+		return codeClassifyValueDO2VOs(valueDOList);
 	}
 
+	/**
+	 * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
+	 * @param codeClassifyValueDOs 鏁版嵁瀵硅薄鍒楄〃
+	 * @return 鏄剧ず瀵硅薄
+	 * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呬笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
+	 */
+	@Override
+	public List<CodeClassifyValueVO> codeClassifyValueDO2VOs(Collection<CodeClassifyValue>  codeClassifyValueDOs) throws VciBaseException{
+		List<CodeClassifyValueVO> voList = new ArrayList<CodeClassifyValueVO>();
+		if(!CollectionUtils.isEmpty(codeClassifyValueDOs)){
+			for(CodeClassifyValue s: codeClassifyValueDOs){
+				CodeClassifyValueVO vo =  codeClassifyValueDO2VO(s);
+				if(vo != null){
+					voList.add(vo);
+				}
+			}
+		}
+		return voList;
+	}
+
+	/**
+	 * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
+	 * @param  codeClassifyValueDO 鏁版嵁瀵硅薄
+	 * @return 鏄剧ず瀵硅薄
+	 * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+	 */
+	@Override
+	public  CodeClassifyValueVO codeClassifyValueDO2VO(CodeClassifyValue codeClassifyValueDO) throws VciBaseException{
+		CodeClassifyValueVO vo = new CodeClassifyValueVO();
+		if(codeClassifyValueDO != null){
+			BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyValueDO,vo);
+			//濡傛灉鏈塴cstatus鐨勭被鐨勮瘽
+
+		}
+		return vo;
+	}
 }

--
Gitblit v1.9.3