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