From d9183aa80ae17d36b79dda48c6b1d7fa22a80ee3 Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期三, 22 一月 2025 11:20:41 +0800
Subject: [PATCH] 现场型号代号/人员/组织接口调试

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemServiceImpl.java |  107 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 88 insertions(+), 19 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemServiceImpl.java
index 46a17e6..1186d51 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemServiceImpl.java
@@ -1,24 +1,36 @@
 package com.vci.ubcs.code.service.impl;
 
+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.DockingSystemDTO;
-import com.vci.ubcs.code.entity.CodeRule;
 import com.vci.ubcs.code.entity.DockingSystem;
+import com.vci.ubcs.code.entity.DockingSystemConfig;
+import com.vci.ubcs.code.mapper.DockingSystemConfigMapper;
 import com.vci.ubcs.code.mapper.DockingSystemMapper;
 import com.vci.ubcs.code.service.IDockingSystemService;
 import com.vci.ubcs.code.vo.pagemodel.DockingSystemVO;
 import com.vci.ubcs.code.wrapper.DockingSystemWrapper;
+import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
 import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
+import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.system.user.entity.User;
+import com.vci.ubcs.system.user.enums.UserEnum;
+import com.vci.ubcs.system.user.enums.UserStatus;
+import com.vci.ubcs.system.user.feign.IUserClient;
 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.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_EDITING;
 import static com.vci.ubcs.code.constant.MdmLifeCycleConstant.CODE_RULE_LC;
@@ -36,53 +48,110 @@
 	@Autowired(required = false)
 	private  DockingSystemMapper dockingSystemMapper;
 
+	/***
+	 * 闆嗘垚绯荤粺绠$悊鏈嶅姟
+	 */
+	@Autowired(required = false)
+	private DockingSystemConfigMapper dockingSystemConfigMapper;
+
 	/**
 	 * 瀵硅薄鐨勬搷浣�
 	 */
 	@Autowired
 	private RevisionModelUtil revisionModelUtil;
-	@Override
-	public boolean addSave(DockingSystemDTO dockingSystemDTO) {
 
+	/**
+	 * 鐢ㄦ埛鏈嶅姟
+	 */
+	@Autowired
+	private IUserClient userClient;
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean addSave(DockingSystemDTO dockingSystemDTO) {
 		VciBaseUtil.alertNotNull(dockingSystemDTO, "闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
 		//灏咲TO杞崲涓篋O
 		DockingSystem dockingSystem = Objects.requireNonNull(BeanUtil.copy(dockingSystemDTO, DockingSystem.class));
-		String userId = AuthUtil.getUserId().toString();
 		DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSystem, MdmBtmTypeConstant.SYS_INT_BASE);
 		dockingSystem.setLctid(CODE_RULE_LC);
 		dockingSystem.setLcStatus(FRAMEWORK_RELEASE_EDITING);
-		return dockingSystemMapper.insert(dockingSystem)>0;
+		boolean resInsert = dockingSystemMapper.insert(dockingSystem) > 0;
+		if (!resInsert) {
+			return false;
+		}
+		// 淇濆瓨鐢ㄦ埛
+		User user = new User(
+			UserEnum.WEB.getCategory(),
+			dockingSystem.getId().toLowerCase(Locale.ROOT),
+			Func.md5Hex(dockingSystem.getId()),
+			dockingSystem.getName(),
+			dockingSystem.getName(),
+			UserStatus.Enable.getValue()
+		);
+		resInsert = userClient.saveUser(user).isSuccess();
+		return resInsert;
 	}
+
 	/**
 	 * 淇敼 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭�
 	 * @param dockingSystemDTO 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹紶杈撳璞�
 	 * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
 	 */
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public DockingSystemVO editSave(DockingSystemDTO dockingSystemDTO) {
 		VciBaseUtil.alertNotNull(dockingSystemDTO,"鏁版嵁瀵硅薄",dockingSystemDTO.getOid(),"绯荤粺闆嗘垚鐨勭郴缁熶俊鎭富閿�");
 		//灏咲TO杞崲涓篋O
 		DockingSystem dockingSystem = dockingSystemMapper.selectById(dockingSystemDTO.getOid());
+		// 绯荤粺缂栧彿鏇存敼鏃惰处鍙蜂篃闇�瑕佽繘琛屾洿鏀�
+		if(!dockingSystemDTO.getId().equals(dockingSystem.getId())){
+			userClient.updateUserByAccount(dockingSystem.getId(),dockingSystemDTO.getId().toLowerCase(Locale.ROOT));
+		}
 		revisionModelUtil.copyFromDTOIgnore(dockingSystemDTO,dockingSystem);
 		DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingSystem);
 		dockingSystemMapper.updateById(dockingSystem);
 		return DockingSystemWrapper.build().entityVO(dockingSystem);
 	}
 
+	/***
+	 * 鏍规嵁绯荤粺涓婚敭鍒犻櫎绯荤粺鍚嶇О
+	 * @param oids
+	 * @return
+	 * @throws VciBaseException
+	 */
 	@Override
-	public boolean delSystemData(DockingSystemDTO dockingSystemDTO) {
-		VciBaseUtil.alertNotNull(dockingSystemDTO,"绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹璞�",dockingSystemDTO.getOid(),"绯荤粺闆嗘垚鐨勭郴缁熶俊鎭殑涓婚敭");
-		/*DockingSystem dockingSystem = dockingSystemMapper.selectById(dockingSystemDTO.getOid());
-		BaseResult baseResult = checkIsCanDeleteForDO(sysIntBaseDTO,sysIntBaseDO);
-		if(baseResult.isSuccess()) {
+	@Transactional(rollbackFor = Exception.class)
+	public boolean deleteDataById(String oids) throws VciBaseException {
+		String message="";
+		try {
+			VciBaseUtil.alertNotNull(oids, "绯荤粺闆嗘垚鐨勭郴缁熶俊鎭殑涓婚敭");
+			List<DockingSystem> dockingSystemList = dockingSystemMapper.selectBatchIds(VciBaseUtil.str2List(oids));
+			Map<String/**绯荤粺oid**/, String/**绯荤粺鍚嶇О**/> systemNameMap = dockingSystemList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t.getName(),(o1, o2)->o2));
+			List<DockingSystemConfig> dockingSystemConfigList = dockingSystemConfigMapper.selectList(Wrappers.<DockingSystemConfig>query().lambda().in(DockingSystemConfig::getSourceSystemOid, VciBaseUtil.str2List(oids)));
+			Set<String> systemOidList=new HashSet<>();
+			Map<String,String> errorMap = new HashMap<>();
+			if (!CollectionUtils.isEmpty(dockingSystemConfigList)) {
+				dockingSystemConfigList.stream().forEach(dockingSystemConfig -> {
+					if(!systemOidList.contains(dockingSystemConfig.getSourceSystemOid())&&
+						systemNameMap.containsKey(dockingSystemConfig.getSourceSystemOid())){
+						String systemName=systemNameMap.get(dockingSystemConfig.getSourceSystemOid());
+						errorMap.put("error",errorMap.getOrDefault("error","") + ";"+systemName);
+					}
+					systemOidList.add(dockingSystemConfig.getSourceSystemOid());
+				});
+			}
+			if(errorMap.size()>0){
+				throw  new Throwable(errorMap.getOrDefault("error",""));
+			}
+			// 淇敼闆嗘垚绯荤粺淇℃伅绠$悊鐨勭敤鎴蜂负鍒犻櫎鐘舵�佺敤鎴�
+			String accounts = dockingSystemList.stream().map(DockingSystem::getId).collect(Collectors.joining(","));
+			userClient.updateStatusByAccount(accounts,"1");
+			return dockingSystemMapper.deleteBatchIds(VciBaseUtil.str2List(oids))>0;
+		}catch (Throwable e){
+			e.printStackTrace();
+			throw  new VciBaseException(e.getMessage());
 
-		}else{
-			return baseResult;
 		}
-		//鎵ц鍒犻櫎鎿嶄綔
-		BatchCBO batchCBO = sysIntBaseMapper.deleteByPrimaryKey(sysIntBaseDO.getOid());
-		return (batchCBO!=null && batchCBO.getDeleteCbos() !=null &&batchCBO.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL);
-*/
-		return false;
 	}
+
 }

--
Gitblit v1.9.3