Merge remote-tracking branch 'base-version/main' into dev

# Conflicts:
#	zt-gateway/src/main/resources/application.yaml
#	zt-module-rule/zt-module-rule-server/src/main/java/com/zt/plat/module/rule/framework/liteflow/component/action/DataSetComponent.java
#	zt-module-rule/zt-module-rule-server/src/main/java/com/zt/plat/module/rule/framework/liteflow/component/base/BaseRuleComponent.java
This commit is contained in:
chenbowen
2025-10-15 09:49:45 +08:00
247 changed files with 11129 additions and 2763 deletions

View File

@@ -0,0 +1,79 @@
package com.zt.plat.module.system.api.dept;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.collection.CollectionUtils;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.system.api.dept.dto.DeptExternalCodeRespDTO;
import com.zt.plat.module.system.dal.dataobject.dept.DeptDO;
import com.zt.plat.module.system.dal.dataobject.dept.DeptExternalCodeDO;
import com.zt.plat.module.system.service.dept.DeptExternalCodeService;
import com.zt.plat.module.system.service.dept.DeptService;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
@RestController
@Validated
public class DeptExternalCodeApiImpl implements DeptExternalCodeApi {
@Resource
private DeptExternalCodeService deptExternalCodeService;
@Resource
private DeptService deptService;
@Override
public CommonResult<DeptExternalCodeRespDTO> getBySystemCodeAndExternalCode(String systemCode, String externalDeptCode) {
DeptExternalCodeDO entity = deptExternalCodeService.getBySystemCodeAndExternalCode(systemCode, externalDeptCode);
if (entity == null) {
return success(null);
}
return success(buildResp(entity));
}
@Override
public CommonResult<DeptExternalCodeRespDTO> getBySystemCodeAndDeptId(String systemCode, Long deptId) {
DeptExternalCodeDO entity = deptExternalCodeService.getBySystemCodeAndDeptId(systemCode, deptId);
if (entity == null) {
return success(null);
}
return success(buildResp(entity));
}
@Override
public CommonResult<List<DeptExternalCodeRespDTO>> getListByDeptId(Long deptId) {
List<DeptExternalCodeDO> list = deptExternalCodeService.getDeptExternalCodeListByDeptId(deptId);
List<DeptExternalCodeRespDTO> respList = BeanUtils.toBean(list, DeptExternalCodeRespDTO.class);
fillDeptInfo(respList);
return success(respList);
}
private DeptExternalCodeRespDTO buildResp(DeptExternalCodeDO entity) {
DeptExternalCodeRespDTO respDTO = BeanUtils.toBean(entity, DeptExternalCodeRespDTO.class);
fillDeptInfo(List.of(respDTO));
return respDTO;
}
private void fillDeptInfo(List<DeptExternalCodeRespDTO> list) {
if (list == null || list.isEmpty()) {
return;
}
Set<Long> deptIds = CollectionUtils.convertSet(list, DeptExternalCodeRespDTO::getDeptId);
if (deptIds == null || deptIds.isEmpty()) {
return;
}
Map<Long, DeptDO> deptMap = CollectionUtils.convertMap(deptService.getDeptList(deptIds), DeptDO::getId);
list.forEach(item -> {
DeptDO dept = deptMap.get(item.getDeptId());
if (dept != null) {
item.setDeptName(dept.getName());
item.setDeptCode(dept.getCode());
}
});
}
}

View File

@@ -99,6 +99,13 @@ public class AuthController {
return success(authService.refreshToken(refreshToken));
}
@PostMapping("/verify-password")
@Operation(summary = "校验当前密码是否正确")
public CommonResult<Boolean> verifyPassword(@RequestBody @Valid AuthVerifyPasswordReqVO reqVO) {
authService.verifyPassword(getLoginUserId(), reqVO.getPassword());
return success(Boolean.TRUE);
}
@GetMapping("/get-permission-info")
@Operation(summary = "获取登录用户的权限信息")
public CommonResult<AuthPermissionInfoRespVO> getPermissionInfo() {

View File

@@ -0,0 +1,21 @@
package com.zt.plat.module.system.controller.admin.auth.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
@Schema(description = "管理后台 - 校验当前登录密码 Request VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AuthVerifyPasswordReqVO {
@Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao")
@NotEmpty(message = "密码不能为空")
@Length(min = 4, max = 16, message = "密码长度为 4-16 位")
private String password;
}

View File

@@ -0,0 +1,41 @@
package com.zt.plat.module.system.controller.admin.dept.vo.depexternalcode;
import com.zt.plat.framework.common.enums.CommonStatusEnum;
import com.zt.plat.framework.common.validation.InEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;
@Schema(description = "管理后台 - 部门外部组织编码映射基础信息")
@Data
public class DeptExternalCodeBaseVO {
@Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotNull(message = "部门不能为空")
private Long deptId;
@Schema(description = "外部系统标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "ERP")
@NotBlank(message = "外部系统标识不能为空")
@Size(max = 64, message = "外部系统标识长度不能超过 64 个字符")
private String systemCode;
@Schema(description = "外部组织编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "100200")
@NotBlank(message = "外部组织编码不能为空")
@Size(max = 128, message = "外部组织编码长度不能超过 128 个字符")
private String externalDeptCode;
@Schema(description = "外部组织名称", example = "总部-华东区")
@Size(max = 255, message = "外部组织名称长度不能超过 255 个字符")
private String externalDeptName;
@Schema(description = "状态", example = "0", requiredMode = Schema.RequiredMode.REQUIRED)
@InEnum(value = CommonStatusEnum.class, message = "状态必须是 {value}")
private Integer status;
@Schema(description = "备注", example = "用于 ERP 同步")
@Size(max = 512, message = "备注长度不能超过 512 个字符")
private String remark;
}

View File

@@ -0,0 +1,25 @@
package com.zt.plat.module.system.controller.admin.dept.vo.depexternalcode;
import com.zt.plat.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Schema(description = "管理后台 - 部门外部组织编码映射分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class DeptExternalCodePageReqVO extends PageParam {
@Schema(description = "部门编号", example = "1024")
private Long deptId;
@Schema(description = "外部系统标识", example = "ERP")
private String systemCode;
@Schema(description = "外部组织编码", example = "100200")
private String externalDeptCode;
@Schema(description = "状态", example = "0")
private Integer status;
}

View File

@@ -0,0 +1,29 @@
package com.zt.plat.module.system.controller.admin.dept.vo.depexternalcode;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 部门外部组织编码映射 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class DeptExternalCodeRespVO extends DeptExternalCodeBaseVO {
@Schema(description = "映射编号", example = "1024")
private Long id;
@Schema(description = "所属部门名称", example = "技术部")
private String deptName;
@Schema(description = "所属部门编码", example = "DEPT_001")
private String deptCode;
@Schema(description = "创建时间")
private LocalDateTime createTime;
@Schema(description = "最后更新时间")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,15 @@
package com.zt.plat.module.system.controller.admin.dept.vo.depexternalcode;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Schema(description = "管理后台 - 部门外部组织编码映射创建/修改 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class DeptExternalCodeSaveReqVO extends DeptExternalCodeBaseVO {
@Schema(description = "映射编号", example = "1024")
private Long id;
}

View File

@@ -0,0 +1,61 @@
package com.zt.plat.module.system.dal.dataobject.dept;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zt.plat.framework.common.enums.CommonStatusEnum;
import com.zt.plat.framework.tenant.core.db.TenantBaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 部门外部组织编码映射 DO
*
* 维护本系统部门与外部系统组织编码的映射关系
*/
@TableName("system_dept_external_code")
@KeySequence("system_dept_external_code_seq")
@Data
@EqualsAndHashCode(callSuper = true)
public class DeptExternalCodeDO extends TenantBaseDO {
/**
* 主键编号
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 本系统部门 ID
*/
private Long deptId;
/**
* 外部系统标识
*/
private String systemCode;
/**
* 外部系统组织编码
*/
private String externalDeptCode;
/**
* 外部系统组织名称
*/
private String externalDeptName;
/**
* 映射状态
*
* 枚举 {@link CommonStatusEnum}
*/
private Integer status;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,44 @@
package com.zt.plat.module.system.dal.mysql.dept;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.module.system.controller.admin.dept.vo.depexternalcode.DeptExternalCodePageReqVO;
import com.zt.plat.module.system.dal.dataobject.dept.DeptExternalCodeDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface DeptExternalCodeMapper extends BaseMapperX<DeptExternalCodeDO> {
default PageResult<DeptExternalCodeDO> selectPage(DeptExternalCodePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<DeptExternalCodeDO>()
.eqIfPresent(DeptExternalCodeDO::getDeptId, reqVO.getDeptId())
.eqIfPresent(DeptExternalCodeDO::getSystemCode, reqVO.getSystemCode())
.likeIfPresent(DeptExternalCodeDO::getExternalDeptCode, reqVO.getExternalDeptCode())
.eqIfPresent(DeptExternalCodeDO::getStatus, reqVO.getStatus())
.orderByDesc(DeptExternalCodeDO::getId));
}
default DeptExternalCodeDO selectBySystemCodeAndDeptId(String systemCode, Long deptId) {
return selectOne(new LambdaQueryWrapperX<DeptExternalCodeDO>()
.eq(DeptExternalCodeDO::getSystemCode, systemCode)
.eq(DeptExternalCodeDO::getDeptId, deptId));
}
default DeptExternalCodeDO selectBySystemCodeAndExternalCode(String systemCode, String externalDeptCode) {
return selectOne(new LambdaQueryWrapperX<DeptExternalCodeDO>()
.eq(DeptExternalCodeDO::getSystemCode, systemCode)
.eq(DeptExternalCodeDO::getExternalDeptCode, externalDeptCode));
}
default List<DeptExternalCodeDO> selectListByDeptId(Long deptId) {
return selectList(DeptExternalCodeDO::getDeptId, deptId);
}
default List<DeptExternalCodeDO> selectListBySystemCode(String systemCode) {
return selectList(DeptExternalCodeDO::getSystemCode, systemCode);
}
}

Some files were not shown because too many files have changed in this diff Show More