From c0c75703071327c172f9dfbe14f2ca47abfa10a5 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 07 十一月 2023 10:35:57 +0800
Subject: [PATCH] bug列表158(所有规则增加前缀、后缀属性,并在申请编码时进行前后缀拼接)修复;集成系统信息管理,创建修改删除,同步到用户的账号创建、删除、修改操作。

---
 Source/UBCS-WEB/src/views/code/code.vue                                                                        |   16 +-
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemService.java          |    5 
 Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/feign/IUserClient.java       |   20 ++++
 Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/IUserService.java            |   16 +++
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java            |   24 ++++
 Source/UBCS-WEB/src/const/code/codebasic.js                                                                    |   11 +
 Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java             |   14 ++
 Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java    |   35 +++++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemServiceImpl.java  |   48 ++++++++-
 Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/enums/UserStatus.java        |   47 +++++++++
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java          |    1 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java      |    1 
 Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/feign/UserClient.java                |   12 ++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java      |    5 -
 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java                    |    9 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java |   36 ++++++
 16 files changed, 271 insertions(+), 29 deletions(-)

diff --git a/Source/UBCS-WEB/src/const/code/codebasic.js b/Source/UBCS-WEB/src/const/code/codebasic.js
index 6d4caf4..712b74a 100644
--- a/Source/UBCS-WEB/src/const/code/codebasic.js
+++ b/Source/UBCS-WEB/src/const/code/codebasic.js
@@ -43,7 +43,14 @@
       {
         label: "鐮佹绫诲瀷",
         prop: "secTypeText",
-      }
-
+      },
+      {
+        label: "鍓嶇紑",
+        prop: "prefixCode",
+      },
+      {
+        label: "鍚庣紑",
+        prop: "suffixCode",
+      },
     ]
 }
diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue
index c623dfc..c9e7ac1 100644
--- a/Source/UBCS-WEB/src/views/code/code.vue
+++ b/Source/UBCS-WEB/src/views/code/code.vue
@@ -1552,8 +1552,8 @@
         serialDependFlag: false, //鏄惁娴佹按渚濊禆
         serialDependOrder: "", //娴佹按渚濊禆椤哄簭
         nullableFlag: false, //鏄惁涓虹┖
-        prefix: "", //鍓嶇紑
-        suffix: "", //鍚庣紑
+        prefixCode: "", //鍓嶇紑
+        suffixCode: "", //鍚庣紑
         displayFlag: false, //
         componentCodeFlag: false, //鏄惁鍙備笌缂栫爜
         pkCodeRule: "", //鎵�灞炵紪鐮佽鍒�
@@ -3219,16 +3219,18 @@
       }
       this.form = {
         oid: row !=null ? row.oid:this.form.oid,
-        id: row !=null ? row.id:this.form.id, //缂栧彿,
-        name: row !=null ? row.name:this.form.name, //鍚嶇О
-        secType: row !=null ?  row.secType:this.form.secType, //鐮佹绫诲瀷
-        description:  row !=null ? row.description:this.form.description, //鎻忚堪
+        id: row != null ? row.id:this.form.id, //缂栧彿,
+        name: row != null ? row.name:this.form.name, //鍚嶇О
+        secType: row != null ?  row.secType:this.form.secType, //鐮佹绫诲瀷
+        description:  row != null ? row.description:this.form.description, //鎻忚堪
         serialDependFlag: this.isNullJsonBoolean(row,this.form, 'serialDependFlag'), //鏄惁娴佹按渚濊禆
         serialDependOrder:  row !=null ? row.serialDependOrder:this.form.serialDependOrder, //娴佹按渚濊禆椤哄簭
         nullableFlag: this.isNullJsonBoolean(row, this.form, 'nullableFlag'), //鏄惁涓虹┖
         displayFlag: this.isNullJsonBoolean(row, this.form, 'displayFlag'),
         componentCodeFlag: this.isNullJsonBoolean(row, this.form, 'componentCodeFlag'), //鏄惁鍙備笌缂栫爜
-        pkCodeRule:  row !=null ? row.pkCodeRule:this.form.pkCodeRule, //鎵�灞炵紪鐮佽鍒�
+        pkCodeRule:  row != null ? row.pkCodeRule:this.form.pkCodeRule, //鎵�灞炵紪鐮佽鍒�
+        prefixCode: row != null ? row.prefixCode:this.form.prefixCode, //鍓嶇紑
+        suffixCode: row!= null ? row.suffixCode:this.form.suffixCode, //鍚庣紑
       };
       if (this.form.secType === "codefixedsec") {
         //鍥哄畾鐮佹
diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java
index 9bdae1d..9679f27 100644
--- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java
+++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/granter/PwdFreeLoginTokenGranter.java
@@ -85,13 +85,14 @@
 
 		// 鏋勫缓鎺堟潈淇℃伅
 		User user = result.getData().getUser();
+		Kv detail = result.getData().getDetail();
+
+		if (Func.isEmpty(user) || Func.isEmpty(user.getId())) {
+			throw new InvalidGrantException("passwordfree grant failure, user is null");
+		}
 		// 鍒ゆ柇褰撳墠鐢ㄦ埛鏄惁琚仠鐢�
 		if(user.getUserStatus() == 1){
 			throw new InvalidGrantException(TokenUtil.USER_LOCK);
-		}
-		Kv detail = result.getData().getDetail();
-		if (user == null || user.getId() == null) {
-			throw new InvalidGrantException("passwordfree grant failure, user is null");
 		}
 		bladeUserDetails = new BladeUserDetails(user.getId(),
 			tenantId, result.getData().getOauthId(), user.getName(), user.getRealName(), user.getDeptId(), user.getPostId(), user.getRoleId(), Func.join(result.getData().getRoles()), Func.toStr(user.getAvatar(), TokenUtil.DEFAULT_AVATAR),
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java
index 73f1bbd..2c58126 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java
@@ -252,6 +252,30 @@
 	 */
 	private String suffixCode;
 
+	public Boolean getClearValue() {
+		return isClearValue;
+	}
+
+	public String getPrefixCode() {
+		return prefixCode;
+	}
+
+	public String getSuffixCode() {
+		return suffixCode;
+	}
+
+	public void setClearValue(Boolean clearValue) {
+		isClearValue = clearValue;
+	}
+
+	public void setPrefixCode(String prefixCode) {
+		this.prefixCode = prefixCode;
+	}
+
+	public void setSuffixCode(String suffixCode) {
+		this.suffixCode = suffixCode;
+	}
+
 	public Boolean getIsClearValue() {
 		return isClearValue;
 	}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java
index 1dcba8b..c6600ee 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java
@@ -18,8 +18,10 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
 import org.springblade.core.tenant.mp.TenantEntity;
 
 import java.util.Date;
@@ -31,6 +33,8 @@
  */
 @Data
 @TableName("pl_org_user")
+@AllArgsConstructor
+@NoArgsConstructor
 @EqualsAndHashCode(callSuper = true)
 public class User extends TenantEntity {
 
@@ -119,4 +123,14 @@
 	 * 璐﹀彿鏄惁鍋滅敤 0涓哄惎鐢紝1涓哄仠鐢�
 	 */
 	private Integer userStatus;
+
+	public User(Integer userType, String account, String password, String name, String realName, Integer userStatus) {
+		this.userType = userType;
+		this.account = account;
+		this.password = password;
+		this.name = name;
+		this.realName = realName;
+		this.userStatus = userStatus;
+	}
+
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/enums/UserStatus.java b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/enums/UserStatus.java
new file mode 100644
index 0000000..2cc5503
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/enums/UserStatus.java
@@ -0,0 +1,47 @@
+package com.vci.ubcs.system.user.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author ludc
+ * @date 2023/11/7 9:20
+ */
+@Getter
+@AllArgsConstructor
+public enum UserStatus {
+
+	/**
+	 * 鍚敤
+	 */
+	Enable("鍚敤", 0),
+
+	/**
+	 * 鍋滅敤
+	 */
+	Deactivate("鍋滅敤", 1),
+	;
+
+	final String name;
+	final int value;
+
+	/**
+	 * 鍖归厤鏋氫妇鍊�
+	 *
+	 * @param name 鍚嶇О
+	 * @return BladeUserEnum
+	 */
+	public static UserStatus of(String name) {
+		if (name == null) {
+			return null;
+		}
+		UserStatus[] values = UserStatus.values();
+		for (UserStatus userStatus : values) {
+			if (userStatus.name.equals(name)) {
+				return userStatus;
+			}
+		}
+		return null;
+	}
+
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/feign/IUserClient.java b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/feign/IUserClient.java
index eac5887..1d53362 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/feign/IUserClient.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/feign/IUserClient.java
@@ -50,7 +50,9 @@
 	String SAVE_USER = API_PREFIX + "/save-user";
 	String SAVE_USER_LIST = API_PREFIX + "/save-user-list";
 	String REMOVE_USER = API_PREFIX + "/remove-user";
+	String UPDATE_STATUS_BY_ACCOUNT = API_PREFIX + "/update_status_by_account";
 	String UPDATE_USER = API_PREFIX+"/update-user";
+	String UPDATE_USER_BYACCOUNT = API_PREFIX+"/update-user-bt-account";
 	String UPDATE_USER_STRATEGY_STATUS = API_PREFIX+"/update-user_strategy_status";
 
 	/**
@@ -144,6 +146,24 @@
 	R<Boolean> updateUser(@RequestBody User user);
 
 	/**
+	 * 鏇存敼鐢ㄦ埛鐘舵��
+	 * @param accounts
+	 * @param status
+	 * @return
+	 */
+	@PostMapping(UPDATE_STATUS_BY_ACCOUNT)
+	R<Boolean> updateStatusByAccount(@RequestParam("accounts") String accounts,@RequestParam("status") String status);
+
+	/**
+	 * 鏍规嵁璐﹀彿淇敼鐢ㄦ埛鍩虹淇℃伅
+	 * @param oldAccount
+	 * @param newAccount
+	 * @return
+	 */
+	@PostMapping(UPDATE_USER_BYACCOUNT)
+	R<Boolean> updateUserByAccount(@RequestParam("oldAccount")String oldAccount,@RequestParam("newAccount") String newAccount);
+
+	/**
 	 * 淇敼鐢ㄦ埛瀵嗙爜绛栫暐鏄惁淇敼鐘舵��
 	 * @param userIds
 	 * @return
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java
index 7272b62..48bb7c8 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java
@@ -524,6 +524,7 @@
 				if (ed.isMerged() && (ed.getRowTo() > ed.getRow() || ed.getColTo() > ed.getCol())) {
 					mergedDataList.add(ed);
 				}
+				// TODO: 淇敼缂栧彿鍒椾负鏂囨湰
 				if("id".equalsIgnoreCase(ed.getObjCode())){
 					//CellStyle textStyle = workbook.createCellStyle();
 					HSSFDataFormat format = (HSSFDataFormat)sheet.getWorkbook().createDataFormat();
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
index 10e6f75..84531ef 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
@@ -5,20 +5,15 @@
 import com.vci.ubcs.code.dto.CodeBasicSecDTO;
 import com.vci.ubcs.code.dto.CodeOrderDTO;
 import com.vci.ubcs.code.dto.CodeOrderSecDTO;
-import com.vci.ubcs.code.dto.CodeRuleDTO;
-import com.vci.ubcs.code.entity.CodeBasicSec;
 import com.vci.ubcs.code.service.ICodeBasicSecService;
 import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
-import com.vci.ubcs.code.wrapper.CodeBasicSecWrapper;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springblade.core.log.exception.ServiceException;
-import org.springblade.core.mp.support.Condition;
-import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemService.java
index 9b561e6..aaac422 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemService.java
@@ -11,12 +11,14 @@
  * @date 2023-06-01
  */
 public interface IDockingSystemService extends IService<DockingSystem> {
+
 	/**
 	 * 澧炲姞 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭�
 	 * @param dockingSystemDTO 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹紶杈撳璞�
 	 * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
 	 */
-	public boolean addSave(DockingSystemDTO dockingSystemDTO);
+	boolean addSave(DockingSystemDTO dockingSystemDTO);
+
 	/**
 	 * 淇敼 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭�
 	 * @param dockingSystemDTO 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹紶杈撳璞�
@@ -26,4 +28,5 @@
 
 
 	boolean deleteDataById(String oids);
+
 }
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 2472e27..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
@@ -16,10 +16,17 @@
 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.*;
@@ -52,28 +59,54 @@
 	 */
 	@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);
@@ -87,6 +120,7 @@
 	 * @throws VciBaseException
 	 */
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public boolean deleteDataById(String oids) throws VciBaseException {
 		String message="";
 		try {
@@ -109,11 +143,15 @@
 			if(errorMap.size()>0){
 				throw  new Throwable(errorMap.getOrDefault("error",""));
 			}
-			return	dockingSystemMapper.deleteBatchIds(VciBaseUtil.str2List(oids))>0;
+			// 淇敼闆嗘垚绯荤粺淇℃伅绠$悊鐨勭敤鎴蜂负鍒犻櫎鐘舵�佺敤鎴�
+			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());
 
 		}
 	}
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index 0d7fb7a..29ff41a 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -3356,7 +3356,6 @@
         return getTableDefineByTemplateVO(templateService.getObjectHasAttrByOid(templateOid));
     }
 
-
     /**
      * 浣跨敤妯℃澘鏄剧ず瀵硅薄杞崲涓鸿〃鏍肩殑淇℃伅锛堝寘鍚墿灞曠殑鎸夐挳锛�
      *
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java
index 8ea07b6..81be733 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java
@@ -32,6 +32,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -451,7 +452,8 @@
 				for (int j = 0; j < thisSecValueList.size(); j++) {
 					String secValue = thisSecValueList.get(j);
 					if (secValue.equalsIgnoreCase("${attr_" + attrSevVO.getOid() + "}")) {
-						thisSecValueList.set(j, value);
+						// TODO: 灞炴�х爜娈电敓鎴愮爜鍊煎悗锛屾嫾鎺ュ墠鍚庣紑
+						thisSecValueList.set(j, joinPreffixAndSuffix(attrSevVO,value));
 					}
 				}
 				if (attrSevIsSerialDepend) {
@@ -535,7 +537,8 @@
 				for (int z = 0; z < thisSecValueList.size(); z++) {
 					String secValue = thisSecValueList.get(z);
 					if (secValue.equalsIgnoreCase("${" + secVO.getOid() + "}")) {
-						thisSecValueList.set(z, serialString);
+						// TODO: 娴佹按鐢熸垚鐮佸�煎悗鎷兼帴鍓嶅悗缂�
+						thisSecValueList.set(z, joinPreffixAndSuffix(secVO, serialString));
 					}
 				}
 				Map<String, Double> unitSerialMap = lastMaxSerialValueMap.getOrDefault(secVO.getOid(), new HashMap<>());
@@ -563,18 +566,19 @@
 		String secValue = secValueMap.getOrDefault(secVO.getOid(), "");
 		switch (secType) {
 			case CODE_FIXED_SEC:
+				secValue = joinPreffixAndSuffix(secVO, secValue);
 				//鍥哄畾鐮佹鐨勶紝鐩存帴鐢ㄧ爜鍊�,涓嶈鐮佸�肩殑闀垮害鏄灏戯紝鍥犱负鍙彉闀垮害鍜屽浐瀹氶暱搴︽槸鎺у埗鍦ㄧ爜娈电鐞嗛噷闈㈢殑鐮佸�煎畾涔夌殑
 				break;
 			case CODE_DATE_SEC:
 				//鏃堕棿鐮佹锛岄渶瑕佸皢褰撳墠鏃堕棿渚濇嵁鏃堕棿鏍煎紡杩涜杞崲.
 				//鏃堕棿鐮佹涓嶆秹鍙婂埌鏄惁琛ヤ綅
-				secValue = VciDateUtil.date2Str(new Date(), secVO.getCodeDateFormatStr());
+				secValue =joinPreffixAndSuffix(secVO, VciDateUtil.date2Str(new Date(), secVO.getCodeDateFormatStr()));
 				break;
 			case CODE_CLASSIFY_SEC:
 				//鍒嗙被鐮佹鐨勶紝涔熸槸浠庡墠绔�夋嫨浜嗙爜鍊煎嵆鍙紝涓嶈鐮佸�肩殑闀垮害鏄灏�
 				CodeClassifyValue codeClassifyValueDO= codeClassifyValueMapper.selectById(secValue);
 				if(codeClassifyValueDO!=null) {
-					secValue = codeClassifyValueDO.getId();
+					secValue = joinPreffixAndSuffix(secVO, codeClassifyValueDO.getId());
 				}
 				break;
 			case CODE_LEVEL_SEC:
@@ -627,10 +631,12 @@
 						secValue = secValue.substring(secValue.length() - secVO.getValueCutLength());
 					}
 				}
+				secValue = joinPreffixAndSuffix(secVO,secValue);
 				break;
 			case CODE_REFER_SEC:
 				//寮曠敤鐨勫湪椤甸潰涓婂凡缁忛�夋嫨浜嗭紝鎵�浠ョ洿鎺ヤ娇鐢ㄥ墠绔笂浼犻�掔殑鍊�
 				//寮曠敤灏辨槸鍙傜収锛屽彲鑳芥槸鍏朵粬鐨勫垎绫伙紙涓氬姟绫诲瀷锛変笅鐨勬暟鎹紝鎵�浠ュ彧鍦ㄩ〉闈笂閫夋嫨
+				secValue = joinPreffixAndSuffix(secVO,secValue);
 				break;
 			case CODE_ATTR_SEC:
 				//灞炴�т笌寮曠敤鐨勫尯鍒槸锛屽睘鎬ф槸褰撳墠鏁版嵁閲岀殑灞炴�э紝鑰屽紩鐢ㄥ彲鑳芥槸寮曠敤鍏朵粬鐨勫垎绫荤殑锛堜笟鍔$被鍨嬶級
@@ -645,6 +651,7 @@
 				}
 				OsCodeFillTypeEnum fillTypeEnum = OsCodeFillTypeEnum.forValue(secVO.getCodeFillType());
 				secValue = fillString(VciBaseUtil.getInt(secVO.getCodeSecLength()), fillTypeEnum, secValue, secVO.getCodeFillSeparator());
+				secValue = joinPreffixAndSuffix(secVO,secValue);
 				break;
 			case CODE_SERIAL_SEC:
 				//娴佹按鐮佹
@@ -660,6 +667,27 @@
 	}
 
 	/**
+	 * 鎷兼帴鍓嶅悗缂�
+	 * @param secVO
+	 * @param secValue
+	 * @return
+	 */
+	private String joinPreffixAndSuffix(CodeBasicSecVO secVO, String secValue){
+		StringBuilder joinSecValue = new StringBuilder();
+		// 鎷兼帴鍓嶇紑
+		if (Func.isNotEmpty(secVO.getPrefixCode())) {
+			joinSecValue = joinSecValue.append(secVO.getPrefixCode());
+		}
+		// 鍦ㄤ腑闂存嫾鎺ュ��
+		joinSecValue.append(secValue);
+		// 鎷兼帴鍚庣紑
+		if(Func.isNotEmpty(secVO.getSuffixCode())){
+			joinSecValue = joinSecValue.append(secVO.getSuffixCode());
+		}
+		return joinSecValue.toString();
+	}
+
+	/**
 	 * 琛ヤ綅
 	 * @param totalLength 鎬婚暱搴�
 	 * @param fillTypeEnum 琛ヤ綅鏂瑰紡
diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/feign/UserClient.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/feign/UserClient.java
index 85a5e4d..a31a6a6 100644
--- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/feign/UserClient.java
+++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/feign/UserClient.java
@@ -102,6 +102,18 @@
 	}
 
 	@Override
+	@PostMapping(UPDATE_STATUS_BY_ACCOUNT)
+	public R<Boolean> updateStatusByAccount(@RequestParam String accounts,@RequestParam String status) {
+		return R.data(service.updateStatusByAccount(accounts,status));
+	}
+
+	@Override
+	@PostMapping(UPDATE_USER_BYACCOUNT)
+	public R<Boolean> updateUserByAccount(String oldAccount, String newAccount) {
+		return R.data(service.updateByAccount(oldAccount,newAccount));
+	}
+
+	@Override
 	@PostMapping(UPDATE_USER_STRATEGY_STATUS)
 	public R<Boolean> updateStrategyStatus(@RequestParam List<Long> userIds) {
 		return R.data(service.updateByUseStrategyId(userIds));
diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/IUserService.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/IUserService.java
index 056b171..ea01d96 100644
--- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/IUserService.java
+++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/IUserService.java
@@ -73,6 +73,22 @@
 	boolean updateUserInfo(User user);
 
 	/**
+	 * 鏍规嵁鏃ц处鍙凤紝淇敼涓烘柊璐﹀彿鍚�
+	 * @param oldAccount
+	 * @param newAccount
+	 * @return
+	 */
+	boolean updateByAccount(String oldAccount,String newAccount);
+
+	/**
+	 * 鎹处鍙凤紝淇敼涓虹敤鎴风姸鎬�
+	 * @param accounts
+	 * @param status
+	 * @return
+	 */
+	boolean updateStatusByAccount(String accounts,String status);
+
+	/**
 	 * 鑷畾涔夊垎椤�
 	 *
 	 * @param page
diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java
index f7418ec..7fbd48d 100644
--- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java
@@ -20,6 +20,7 @@
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
@@ -35,6 +36,7 @@
 import com.vci.ubcs.system.user.cache.UserCache;
 import com.vci.ubcs.system.user.entity.*;
 import com.vci.ubcs.system.user.enums.UserEnum;
+import com.vci.ubcs.system.user.enums.UserStatus;
 import com.vci.ubcs.system.user.excel.UserExcel;
 import com.vci.ubcs.system.user.mapper.UserMapper;
 import com.vci.ubcs.system.user.service.IUserDeptService;
@@ -91,6 +93,9 @@
 		if (Func.isNotEmpty(user.getPassword())) {
 			user.setPassword(DigestUtil.encrypt(user.getPassword()));
 		}
+		if(Func.isEmpty(user.getUserStatus())){
+			user.setUserStatus(UserStatus.Enable.getValue());
+		}
 		Long userCount = baseMapper.selectCount(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, user.getAccount()));
 		if (userCount > 0L && Func.isEmpty(user.getId())) {
 			throw new ServiceException(StringUtil.format("褰撳墠鐢ㄦ埛 [{}] 宸插瓨鍦�!", user.getAccount()));
@@ -142,6 +147,36 @@
 		return updateById(user);
 	}
 
+	/**
+	 * 鏍规嵁鏃ц处鍙凤紝淇敼涓烘柊璐﹀彿鍚�
+	 * @param oldAccount
+	 * @param newAccount
+	 * @return
+	 */
+	@Override
+	public boolean updateByAccount(String oldAccount,String newAccount) {
+		User user = this.userByAccount(AuthUtil.getTenantId(), oldAccount);
+		if(Func.isEmpty(user)){
+			return true;
+		}
+		user.setAccount(newAccount);
+		return this.updateUser(user);
+	}
+
+	/**
+	 * 鎹处鍙凤紝淇敼涓虹敤鎴风姸鎬�
+	 * @param accounts
+	 * @param status
+	 * @return
+	 */
+	@Override
+	public boolean updateStatusByAccount(String accounts, String status) {
+		LambdaUpdateWrapper<User> updateWrapper = Wrappers.<User>update()
+			.lambda().in(User::getAccount, accounts)
+			.set(User::getUserStatus, status);
+		return this.update(updateWrapper);
+	}
+
 	private boolean submitUserDept(User user) {
 		List<Long> deptIdList = Func.toLongList(user.getDeptId());
 		List<UserDept> userDeptList = new ArrayList<>();

--
Gitblit v1.9.3