# Conflicts:
#	yunxi-ui-admin-vben/src/views/users/mine.rar
#	yunxi-ui-admin-vben/src/views/xxjj/businessOrganization/index.vue
#	yunxi-ui-admin-vben/src/views/xxjj/businessOrganizationConfig/index.vue
#	yunxi-ui-admin-vben/src/views/xxjj/businessWarehouse/businessWarehouse.data.ts
#	yunxi-ui-admin-vben/src/views/xxjj/customer/SubjectBasicModal.vue
#	yunxi-ui-admin-vben/src/views/xxjj/service/index.vue
qhw-dev-1010
qiuhongwu 1 year ago
commit 98a0015579

@ -1,5 +1,6 @@
package com.yunxi.scm.framework.mybatis.core.mapper; package com.yunxi.scm.framework.mybatis.core.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.yunxi.scm.framework.common.pojo.PageParam; import com.yunxi.scm.framework.common.pojo.PageParam;
import com.yunxi.scm.framework.common.pojo.PageResult; import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.util.MyBatisUtils; import com.yunxi.scm.framework.mybatis.core.util.MyBatisUtils;
@ -18,7 +19,7 @@ import java.util.List;
/** /**
* MyBatis Plus BaseMapper * MyBatis Plus BaseMapper
*/ */
public interface BaseMapperX<T> extends BaseMapper<T> { public interface BaseMapperX<T> extends MPJBaseMapper<T> {
default PageResult<T> selectPage(PageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) { default PageResult<T> selectPage(PageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) {
// MyBatis Plus 查询 // MyBatis Plus 查询

@ -169,6 +169,9 @@ public interface ErrorCodeConstants {
// ========== 业务线表 TODO 补充编号 ========== // ========== 业务线表 TODO 补充编号 ==========
ErrorCode BUSINESS_WAREHOUSE_NOT_EXISTS = new ErrorCode(1002025019, "业务线表不存在"); ErrorCode BUSINESS_WAREHOUSE_NOT_EXISTS = new ErrorCode(1002025019, "业务线表不存在");
// ========== 业务线和用户关联 TODO 补充编号 ==========
ErrorCode BUSINESS_USER_RELATIONAL_NOT_EXISTS = new ErrorCode(1002025020, "业务线和用户关联不存在");
// ========== 业务线和机构关联 TODO 补充编号 ==========
ErrorCode BUSINESS_ENTERPRISE_RELATIONAL_NOT_EXISTS = new ErrorCode(1002025021, "业务线和机构关联不存在");
} }

@ -22,4 +22,10 @@ public enum MenuTypeEnum {
*/ */
private final Integer type; private final Integer type;
// 判断是否不为目录类型
public static boolean isNoDIR(Integer type) {
return !DIR.getType().equals(type);
}
} }

@ -27,4 +27,7 @@ public class AuthLoginRespVO {
@Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime expiresTime; private LocalDateTime expiresTime;
@Schema(description = "租户id", requiredMode = Schema.RequiredMode.REQUIRED)
private Long tenantId;
} }

@ -1,5 +1,9 @@
package com.yunxi.scm.module.system.controller.admin.auth.vo; package com.yunxi.scm.module.system.controller.admin.auth.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
import com.yunxi.scm.module.system.dal.dataobject.tenant.TenantDO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
@ -44,6 +48,15 @@ public class AuthPermissionInfoRespVO {
@Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.jpg") @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.jpg")
private String avatar; private String avatar;
private List<EnterpriseDO> enterpriseList;
private List<BusinessWarehouseDO> businessWarehouseList;
private EnterpriseDO enterprise;
private List<TenantDO> tenantDOList;
private TenantDO tenantDO;
} }
@Schema(description = "管理后台 - 登录用户的菜单信息 Response VO") @Schema(description = "管理后台 - 登录用户的菜单信息 Response VO")

@ -0,0 +1,102 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.common.pojo.CommonResult;
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
import com.yunxi.scm.module.system.convert.businessenterpriserelational.BusinessEnterpriseRelationalConvert;
import com.yunxi.scm.module.system.service.businessenterpriserelational.BusinessEnterpriseRelationalService;
@Tag(name = "管理后台 - 业务线和机构关联")
@RestController
@RequestMapping("/system/business-enterprise-relational")
@Validated
public class BusinessEnterpriseRelationalController {
@Resource
private BusinessEnterpriseRelationalService businessEnterpriseRelationalService;
@PostMapping("/create")
@Operation(summary = "创建业务线和机构关联")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:create')")
public CommonResult<Long> createBusinessEnterpriseRelational(@Valid @RequestBody BusinessEnterpriseRelationalCreateReqVO createReqVO) {
return success(businessEnterpriseRelationalService.createBusinessEnterpriseRelational(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新业务线和机构关联")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:update')")
public CommonResult<Boolean> updateBusinessEnterpriseRelational(@Valid @RequestBody BusinessEnterpriseRelationalUpdateReqVO updateReqVO) {
businessEnterpriseRelationalService.updateBusinessEnterpriseRelational(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除业务线和机构关联")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:delete')")
public CommonResult<Boolean> deleteBusinessEnterpriseRelational(@RequestParam("id") Long id) {
businessEnterpriseRelationalService.deleteBusinessEnterpriseRelational(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得业务线和机构关联")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:query')")
public CommonResult<BusinessEnterpriseRelationalRespVO> getBusinessEnterpriseRelational(@RequestParam("id") Long id) {
BusinessEnterpriseRelationalDO businessEnterpriseRelational = businessEnterpriseRelationalService.getBusinessEnterpriseRelational(id);
return success(BusinessEnterpriseRelationalConvert.INSTANCE.convert(businessEnterpriseRelational));
}
@GetMapping("/list")
@Operation(summary = "获得业务线和机构关联列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:query')")
public CommonResult<List<BusinessEnterpriseRelationalRespVO>> getBusinessEnterpriseRelationalList(@RequestParam("ids") Collection<Long> ids) {
List<BusinessEnterpriseRelationalDO> list = businessEnterpriseRelationalService.getBusinessEnterpriseRelationalList(ids);
return success(BusinessEnterpriseRelationalConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得业务线和机构关联分页")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:query')")
public CommonResult<PageResult<BusinessEnterpriseRelationalRespVO>> getBusinessEnterpriseRelationalPage(@Valid BusinessEnterpriseRelationalPageReqVO pageVO) {
PageResult<BusinessEnterpriseRelationalDO> pageResult = businessEnterpriseRelationalService.getBusinessEnterpriseRelationalPage(pageVO);
return success(BusinessEnterpriseRelationalConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出业务线和机构关联 Excel")
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:export')")
@OperateLog(type = EXPORT)
public void exportBusinessEnterpriseRelationalExcel(@Valid BusinessEnterpriseRelationalExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<BusinessEnterpriseRelationalDO> list = businessEnterpriseRelationalService.getBusinessEnterpriseRelationalList(exportReqVO);
// 导出 Excel
List<BusinessEnterpriseRelationalExcelVO> datas = BusinessEnterpriseRelationalConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "业务线和机构关联.xls", "数据", BusinessEnterpriseRelationalExcelVO.class, datas);
}
}

@ -0,0 +1,25 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
/**
* 线 Base VO VO 使
* VO Swagger
*/
@Data
public class BusinessEnterpriseRelationalBaseVO {
@Schema(description = "业务线id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3256")
@NotNull(message = "业务线id不能为空")
private Long businessId;
@Schema(description = "企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15640")
@NotNull(message = "企业id不能为空")
private Long enterpriseId;
}

@ -0,0 +1,14 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 业务线和机构关联创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessEnterpriseRelationalCreateReqVO extends BusinessEnterpriseRelationalBaseVO {
}

@ -0,0 +1,31 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* 线 Excel VO
*
* @author
*/
@Data
public class BusinessEnterpriseRelationalExcelVO {
@ExcelProperty("主键id")
private Long id;
@ExcelProperty("业务线id")
private Long businessId;
@ExcelProperty("企业id")
private Long enterpriseId;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,26 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 业务线和机构关联 Excel 导出 Request VO参数和 BusinessEnterpriseRelationalPageReqVO 是一致的")
@Data
public class BusinessEnterpriseRelationalExportReqVO {
@Schema(description = "业务线id", example = "3256")
private Long businessId;
@Schema(description = "企业id", example = "15640")
private Long enterpriseId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,28 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 业务线和机构关联分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessEnterpriseRelationalPageReqVO extends PageParam {
@Schema(description = "业务线id", example = "3256")
private Long businessId;
@Schema(description = "企业id", example = "15640")
private Long enterpriseId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,19 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 业务线和机构关联 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessEnterpriseRelationalRespVO extends BusinessEnterpriseRelationalBaseVO {
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21519")
private Long id;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
}

@ -0,0 +1,18 @@
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 业务线和机构关联更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessEnterpriseRelationalUpdateReqVO extends BusinessEnterpriseRelationalBaseVO {
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21519")
@NotNull(message = "主键id不能为空")
private Long id;
}

@ -0,0 +1,102 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.common.pojo.CommonResult;
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
import com.yunxi.scm.module.system.convert.businessuserrelational.BusinessUserRelationalConvert;
import com.yunxi.scm.module.system.service.businessuserrelational.BusinessUserRelationalService;
@Tag(name = "管理后台 - 业务线和用户关联")
@RestController
@RequestMapping("/system/business-user-relational")
@Validated
public class BusinessUserRelationalController {
@Resource
private BusinessUserRelationalService businessUserRelationalService;
@PostMapping("/create")
@Operation(summary = "创建业务线和用户关联")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:create')")
public CommonResult<Long> createBusinessUserRelational(@Valid @RequestBody BusinessUserRelationalCreateReqVO createReqVO) {
return success(businessUserRelationalService.createBusinessUserRelational(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新业务线和用户关联")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:update')")
public CommonResult<Boolean> updateBusinessUserRelational(@Valid @RequestBody BusinessUserRelationalUpdateReqVO updateReqVO) {
businessUserRelationalService.updateBusinessUserRelational(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除业务线和用户关联")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('system:business-user-relational:delete')")
public CommonResult<Boolean> deleteBusinessUserRelational(@RequestParam("id") Long id) {
businessUserRelationalService.deleteBusinessUserRelational(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得业务线和用户关联")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:query')")
public CommonResult<BusinessUserRelationalRespVO> getBusinessUserRelational(@RequestParam("id") Long id) {
BusinessUserRelationalDO businessUserRelational = businessUserRelationalService.getBusinessUserRelational(id);
return success(BusinessUserRelationalConvert.INSTANCE.convert(businessUserRelational));
}
@GetMapping("/list")
@Operation(summary = "获得业务线和用户关联列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:query')")
public CommonResult<List<BusinessUserRelationalRespVO>> getBusinessUserRelationalList(@RequestParam("ids") Collection<Long> ids) {
List<BusinessUserRelationalDO> list = businessUserRelationalService.getBusinessUserRelationalList(ids);
return success(BusinessUserRelationalConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得业务线和用户关联分页")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:query')")
public CommonResult<PageResult<BusinessUserRelationalRespVO>> getBusinessUserRelationalPage(@Valid BusinessUserRelationalPageReqVO pageVO) {
PageResult<BusinessUserRelationalDO> pageResult = businessUserRelationalService.getBusinessUserRelationalPage(pageVO);
return success(BusinessUserRelationalConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出业务线和用户关联 Excel")
@PreAuthorize("@ss.hasPermission('system:business-user-relational:export')")
@OperateLog(type = EXPORT)
public void exportBusinessUserRelationalExcel(@Valid BusinessUserRelationalExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<BusinessUserRelationalDO> list = businessUserRelationalService.getBusinessUserRelationalList(exportReqVO);
// 导出 Excel
List<BusinessUserRelationalExcelVO> datas = BusinessUserRelationalConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "业务线和用户关联.xls", "数据", BusinessUserRelationalExcelVO.class, datas);
}
}

@ -0,0 +1,25 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
/**
* 线 Base VO VO 使
* VO Swagger
*/
@Data
public class BusinessUserRelationalBaseVO {
@Schema(description = "业务线/仓库id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29863")
@NotNull(message = "业务线/仓库id不能为空")
private Long businessId;
@Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "2593")
@NotNull(message = "用户id不能为空")
private Long userId;
}

@ -0,0 +1,14 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 业务线和用户关联创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessUserRelationalCreateReqVO extends BusinessUserRelationalBaseVO {
}

@ -0,0 +1,31 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* 线 Excel VO
*
* @author
*/
@Data
public class BusinessUserRelationalExcelVO {
@ExcelProperty("主键id")
private Long id;
@ExcelProperty("业务线/仓库id")
private Long businessId;
@ExcelProperty("用户id")
private Long userId;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,26 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 业务线和用户关联 Excel 导出 Request VO参数和 BusinessUserRelationalPageReqVO 是一致的")
@Data
public class BusinessUserRelationalExportReqVO {
@Schema(description = "业务线/仓库id", example = "29863")
private Long businessId;
@Schema(description = "用户id", example = "2593")
private Long userId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,28 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 业务线和用户关联分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessUserRelationalPageReqVO extends PageParam {
@Schema(description = "业务线/仓库id", example = "29863")
private Long businessId;
@Schema(description = "用户id", example = "2593")
private Long userId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,19 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 业务线和用户关联 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessUserRelationalRespVO extends BusinessUserRelationalBaseVO {
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17732")
private Long id;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
}

@ -0,0 +1,18 @@
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 业务线和用户关联更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BusinessUserRelationalUpdateReqVO extends BusinessUserRelationalBaseVO {
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17732")
@NotNull(message = "主键id不能为空")
private Long id;
}

@ -93,6 +93,14 @@ public class BusinessWarehouseController {
return success(BusinessWarehouseConvert.INSTANCE.convertPage(pageResult)); return success(BusinessWarehouseConvert.INSTANCE.convertPage(pageResult));
} }
@GetMapping("/business")
@Operation(summary = "获得业务线分页")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:business')")
public CommonResult<PageResult<BusinessWarehouseRespVO>> getBusinessPage(@Valid BusinessWarehousePageReqVO pageVO) {
PageResult<BusinessWarehouseDO> pageResult = businessWarehouseService.getBusinessPage(pageVO);
return success(BusinessWarehouseConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出业务线表 Excel") @Operation(summary = "导出业务线表 Excel")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:export')") @PreAuthorize("@ss.hasPermission('system:business-warehouse:export')")
@ -118,4 +126,12 @@ public class BusinessWarehouseController {
return success(BusinessWarehouseConvert.INSTANCE.convertList03(list)); return success(BusinessWarehouseConvert.INSTANCE.convertList03(list));
} }
@GetMapping("/business-user")
@Operation(summary = "获得业务线分页")
@PreAuthorize("@ss.hasPermission('system:business-warehouse:business-user')")
public CommonResult<PageResult<BusinessUserVO>> getBusinessUserPage(BusinessUserVO reqVO) {
PageResult<BusinessUserVO> pageResult = businessWarehouseService.getBusinessUserList(reqVO);
return success(pageResult);
}
} }

@ -0,0 +1,44 @@
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
import com.yunxi.scm.framework.common.pojo.PageParam;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 业务线员工信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BusinessUserVO extends AdminUserDO {
@Schema(description = "帐号状态")
private Integer accountStatus;
@Schema(description = "业务编号")
private Integer businessId;
@Schema(description = "业务名称")
private String businessName;
@Schema(description = "员工编号")
private Integer userId;
@Schema(description = "分页")
private Integer pageNo;
@Schema(description = "分页")
private Integer pageSize;
@Schema(description = "部门名称")
private String deptName;
@Schema(description = "职务名称")
private String postName;
@Schema(description = "创建时间", example = "[2022-07-01 00:00:00, 2022-07-01 23:59:59]")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] loginTime;
}

@ -3,6 +3,7 @@ package com.yunxi.scm.module.system.controller.admin.dept;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum; import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.framework.common.pojo.CommonResult; import com.yunxi.scm.framework.common.pojo.CommonResult;
import com.yunxi.scm.framework.security.core.util.SecurityFrameworkUtils;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.*; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.*;
import com.yunxi.scm.module.system.convert.dept.DeptConvert; import com.yunxi.scm.module.system.convert.dept.DeptConvert;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO; import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
@ -13,6 +14,7 @@ import com.yunxi.scm.module.system.service.user.AdminUserService;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -33,12 +35,14 @@ public class DeptController {
@Resource @Resource
private DeptService deptService; private DeptService deptService;
@Resource @Resource
private AdminUserMapper adminUserMapper; private AdminUserService userService;
@PostMapping("create") @PostMapping("create")
@Operation(summary = "创建部门") @Operation(summary = "创建部门")
@PreAuthorize("@ss.hasPermission('system:dept:create')") @PreAuthorize("@ss.hasPermission('system:dept:create')")
public CommonResult<Long> createDept(@Valid @RequestBody DeptCreateReqVO reqVO) { public CommonResult<Long> createDept(@Valid @RequestBody DeptCreateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
Long deptId = deptService.createDept(reqVO); Long deptId = deptService.createDept(reqVO);
return success(deptId); return success(deptId);
} }
@ -47,6 +51,8 @@ public class DeptController {
@Operation(summary = "更新部门") @Operation(summary = "更新部门")
@PreAuthorize("@ss.hasPermission('system:dept:update')") @PreAuthorize("@ss.hasPermission('system:dept:update')")
public CommonResult<Boolean> updateDept(@Valid @RequestBody DeptUpdateReqVO reqVO) { public CommonResult<Boolean> updateDept(@Valid @RequestBody DeptUpdateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
deptService.updateDept(reqVO); deptService.updateDept(reqVO);
return success(true); return success(true);
} }
@ -64,6 +70,11 @@ public class DeptController {
@Operation(summary = "获取部门列表") @Operation(summary = "获取部门列表")
@PreAuthorize("@ss.hasPermission('system:dept:query')") @PreAuthorize("@ss.hasPermission('system:dept:query')")
public CommonResult<List<DeptRespVO>> getDeptList(DeptListReqVO reqVO) { public CommonResult<List<DeptRespVO>> getDeptList(DeptListReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
List<DeptDO> list = deptService.getDeptList(reqVO); List<DeptDO> list = deptService.getDeptList(reqVO);
list.sort(Comparator.comparing(DeptDO::getSort)); list.sort(Comparator.comparing(DeptDO::getSort));
return success(DeptConvert.INSTANCE.convertList(list)); return success(DeptConvert.INSTANCE.convertList(list));
@ -75,6 +86,11 @@ public class DeptController {
// 获得部门列表,只要开启状态的 // 获得部门列表,只要开启状态的
DeptListReqVO reqVO = new DeptListReqVO(); DeptListReqVO reqVO = new DeptListReqVO();
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
List<DeptDO> list = deptService.getDeptList(reqVO); List<DeptDO> list = deptService.getDeptList(reqVO);
// 排序后,返回给前端 // 排序后,返回给前端
list.sort(Comparator.comparing(DeptDO::getSort)); list.sort(Comparator.comparing(DeptDO::getSort));
@ -90,4 +106,16 @@ public class DeptController {
return success(DeptConvert.INSTANCE.convert(deptService.getDept(id))); return success(DeptConvert.INSTANCE.convert(deptService.getDept(id)));
} }
@GetMapping("/list-user-simple")
@Operation(summary = "获取部门用户精简信息列表", description = "只包含被开启的部门,主要用于前端的下拉选项")
public CommonResult<List<DeptSimpleRespVO>> getSimpleDeptUserList() {
// 获得部门列表,只要开启状态的
DeptListReqVO reqVO = new DeptListReqVO();
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
List<DeptDO> list = deptService.getDeptList(reqVO);
// 排序后,返回给前端
list.sort(Comparator.comparing(DeptDO::getSort));
return success(DeptConvert.INSTANCE.convertList02(list));
}
} }

@ -5,13 +5,18 @@ import com.yunxi.scm.framework.common.pojo.CommonResult;
import com.yunxi.scm.framework.common.pojo.PageResult; import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils; import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog; import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import com.yunxi.scm.framework.security.core.util.SecurityFrameworkUtils;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.post.*; import com.yunxi.scm.module.system.controller.admin.dept.vo.post.*;
import com.yunxi.scm.module.system.convert.dept.PostConvert; import com.yunxi.scm.module.system.convert.dept.PostConvert;
import com.yunxi.scm.module.system.dal.dataobject.dept.PostDO; import com.yunxi.scm.module.system.dal.dataobject.dept.PostDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.yunxi.scm.module.system.service.dept.PostService; import com.yunxi.scm.module.system.service.dept.PostService;
import com.yunxi.scm.module.system.service.user.AdminUserService;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -35,11 +40,15 @@ public class PostController {
@Resource @Resource
private PostService postService; private PostService postService;
@Resource
private AdminUserService userService;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建岗位") @Operation(summary = "创建岗位")
@PreAuthorize("@ss.hasPermission('system:post:create')") @PreAuthorize("@ss.hasPermission('system:post:create')")
public CommonResult<Long> createPost(@Valid @RequestBody PostCreateReqVO reqVO) { public CommonResult<Long> createPost(@Valid @RequestBody PostCreateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
Long postId = postService.createPost(reqVO); Long postId = postService.createPost(reqVO);
return success(postId); return success(postId);
} }
@ -48,6 +57,8 @@ public class PostController {
@Operation(summary = "修改岗位") @Operation(summary = "修改岗位")
@PreAuthorize("@ss.hasPermission('system:post:update')") @PreAuthorize("@ss.hasPermission('system:post:update')")
public CommonResult<Boolean> updatePost(@Valid @RequestBody PostUpdateReqVO reqVO) { public CommonResult<Boolean> updatePost(@Valid @RequestBody PostUpdateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
postService.updatePost(reqVO); postService.updatePost(reqVO);
return success(true); return success(true);
} }
@ -71,8 +82,15 @@ public class PostController {
@GetMapping("/list-all-simple") @GetMapping("/list-all-simple")
@Operation(summary = "获取岗位精简信息列表", description = "只包含被开启的岗位,主要用于前端的下拉选项") @Operation(summary = "获取岗位精简信息列表", description = "只包含被开启的岗位,主要用于前端的下拉选项")
public CommonResult<List<PostSimpleRespVO>> getSimplePostList() { public CommonResult<List<PostSimpleRespVO>> getSimplePostList() {
PostExportReqVO reqVO = new PostExportReqVO();
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
// 获得岗位列表,只要开启状态的 // 获得岗位列表,只要开启状态的
List<PostDO> list = postService.getPostList(null, Collections.singleton(CommonStatusEnum.ENABLE.getStatus())); List<PostDO> list = postService.getPostList(reqVO);
// 排序后,返回给前端 // 排序后,返回给前端
list.sort(Comparator.comparing(PostDO::getSort)); list.sort(Comparator.comparing(PostDO::getSort));
return success(PostConvert.INSTANCE.convertList02(list)); return success(PostConvert.INSTANCE.convertList02(list));
@ -82,6 +100,11 @@ public class PostController {
@Operation(summary = "获得岗位分页列表") @Operation(summary = "获得岗位分页列表")
@PreAuthorize("@ss.hasPermission('system:post:query')") @PreAuthorize("@ss.hasPermission('system:post:query')")
public CommonResult<PageResult<PostRespVO>> getPostPage(@Validated PostPageReqVO reqVO) { public CommonResult<PageResult<PostRespVO>> getPostPage(@Validated PostPageReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
return success(PostConvert.INSTANCE.convertPage(postService.getPostPage(reqVO))); return success(PostConvert.INSTANCE.convertPage(postService.getPostPage(reqVO)));
} }
@ -90,6 +113,11 @@ public class PostController {
@PreAuthorize("@ss.hasPermission('system:post:export')") @PreAuthorize("@ss.hasPermission('system:post:export')")
@OperateLog(type = EXPORT) @OperateLog(type = EXPORT)
public void export(HttpServletResponse response, @Validated PostExportReqVO reqVO) throws IOException { public void export(HttpServletResponse response, @Validated PostExportReqVO reqVO) throws IOException {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
List<PostDO> posts = postService.getPostList(reqVO); List<PostDO> posts = postService.getPostList(reqVO);
List<PostExcelVO> data = PostConvert.INSTANCE.convertList03(posts); List<PostExcelVO> data = PostConvert.INSTANCE.convertList03(posts);
// 输出 // 输出

@ -44,4 +44,6 @@ public class DeptBaseVO {
// @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") // @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}")
private Integer status; private Integer status;
@Schema(description = "企业ID", example = "1024")
private Long enterpriseId;
} }

@ -13,4 +13,6 @@ public class DeptListReqVO {
@Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
private Integer status; private Integer status;
@Schema(description = "企业id", example = "1")
private Long enterpriseId;
} }

@ -23,4 +23,6 @@ public class DeptSimpleRespVO {
@Schema(description = "父部门 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") @Schema(description = "父部门 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long parentId; private Long parentId;
} }

@ -33,4 +33,6 @@ public class PostBaseVO {
@Schema(description = "备注", example = "快乐的备注") @Schema(description = "备注", example = "快乐的备注")
private String remark; private String remark;
@Schema(description = "企业ID", example = "1024")
private Long enterpriseId;
} }

@ -4,6 +4,7 @@ import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
import com.yunxi.scm.framework.excel.core.convert.DictConvert; import com.yunxi.scm.framework.excel.core.convert.DictConvert;
import com.yunxi.scm.module.system.enums.DictTypeConstants; import com.yunxi.scm.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
/** /**
@ -28,4 +29,6 @@ public class PostExcelVO {
@DictFormat(DictTypeConstants.COMMON_STATUS) @DictFormat(DictTypeConstants.COMMON_STATUS)
private String status; private String status;
@Schema(description = "企业id", example = "1")
private Long enterpriseId;
} }

@ -16,4 +16,6 @@ public class PostExportReqVO {
@Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
private Integer status; private Integer status;
@Schema(description = "企业id", example = "1")
private Long enterpriseId;
} }

@ -15,4 +15,6 @@ public class PostListReqVO extends PostBaseVO {
@Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
private Integer status; private Integer status;
@Schema(description = "企业id", example = "1")
private Long enterpriseId;
} }

@ -19,4 +19,6 @@ public class PostPageReqVO extends PageParam {
@Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
private Integer status; private Integer status;
@Schema(description = "企业id", example = "1")
private Long enterpriseId;
} }

@ -5,13 +5,18 @@ import com.yunxi.scm.framework.common.pojo.CommonResult;
import com.yunxi.scm.framework.common.pojo.PageResult; import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils; import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog; import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import com.yunxi.scm.framework.security.core.util.SecurityFrameworkUtils;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.permission.vo.role.*; import com.yunxi.scm.module.system.controller.admin.permission.vo.role.*;
import com.yunxi.scm.module.system.convert.permission.RoleConvert; import com.yunxi.scm.module.system.convert.permission.RoleConvert;
import com.yunxi.scm.module.system.dal.dataobject.permission.RoleDO; import com.yunxi.scm.module.system.dal.dataobject.permission.RoleDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.yunxi.scm.module.system.service.permission.RoleService; import com.yunxi.scm.module.system.service.permission.RoleService;
import com.yunxi.scm.module.system.service.user.AdminUserService;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -35,11 +40,15 @@ public class RoleController {
@Resource @Resource
private RoleService roleService; private RoleService roleService;
@Resource
private AdminUserService userService;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建角色") @Operation(summary = "创建角色")
@PreAuthorize("@ss.hasPermission('system:role:create')") @PreAuthorize("@ss.hasPermission('system:role:create')")
public CommonResult<Long> createRole(@Valid @RequestBody RoleCreateReqVO reqVO) { public CommonResult<Long> createRole(@Valid @RequestBody RoleCreateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
return success(roleService.createRole(reqVO, null)); return success(roleService.createRole(reqVO, null));
} }
@ -47,6 +56,8 @@ public class RoleController {
@Operation(summary = "修改角色") @Operation(summary = "修改角色")
@PreAuthorize("@ss.hasPermission('system:role:update')") @PreAuthorize("@ss.hasPermission('system:role:update')")
public CommonResult<Boolean> updateRole(@Valid @RequestBody RoleUpdateReqVO reqVO) { public CommonResult<Boolean> updateRole(@Valid @RequestBody RoleUpdateReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
roleService.updateRole(reqVO); roleService.updateRole(reqVO);
return success(true); return success(true);
} }
@ -80,14 +91,26 @@ public class RoleController {
@Operation(summary = "获得角色分页") @Operation(summary = "获得角色分页")
@PreAuthorize("@ss.hasPermission('system:role:query')") @PreAuthorize("@ss.hasPermission('system:role:query')")
public CommonResult<PageResult<RoleDO>> getRolePage(RolePageReqVO reqVO) { public CommonResult<PageResult<RoleDO>> getRolePage(RolePageReqVO reqVO) {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
return success(roleService.getRolePage(reqVO)); return success(roleService.getRolePage(reqVO));
} }
@GetMapping("/list-all-simple") @GetMapping("/list-all-simple")
@Operation(summary = "获取角色精简信息列表", description = "只包含被开启的角色,主要用于前端的下拉选项") @Operation(summary = "获取角色精简信息列表", description = "只包含被开启的角色,主要用于前端的下拉选项")
public CommonResult<List<RoleSimpleRespVO>> getSimpleRoleList() { public CommonResult<List<RoleSimpleRespVO>> getSimpleRoleList() {
RoleExportReqVO reqVO = new RoleExportReqVO();
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
// 获得角色列表,只要开启状态的 // 获得角色列表,只要开启状态的
List<RoleDO> list = roleService.getRoleListByStatus(singleton(CommonStatusEnum.ENABLE.getStatus())); List<RoleDO> list = roleService.getRoleList(reqVO);
// 排序后,返回给前端 // 排序后,返回给前端
list.sort(Comparator.comparing(RoleDO::getSort)); list.sort(Comparator.comparing(RoleDO::getSort));
return success(RoleConvert.INSTANCE.convertList02(list)); return success(RoleConvert.INSTANCE.convertList02(list));
@ -97,6 +120,11 @@ public class RoleController {
@OperateLog(type = EXPORT) @OperateLog(type = EXPORT)
@PreAuthorize("@ss.hasPermission('system:role:export')") @PreAuthorize("@ss.hasPermission('system:role:export')")
public void export(HttpServletResponse response, @Validated RoleExportReqVO reqVO) throws IOException { public void export(HttpServletResponse response, @Validated RoleExportReqVO reqVO) throws IOException {
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
//是子机构,根据机构过滤
if(adminUserDO.getEnterprise() != null && StringUtils.equals(adminUserDO.getEnterprise().getEnterpriseType(), "1")){
reqVO.setEnterpriseId(adminUserDO.getEnterpriseId());
}
List<RoleDO> list = roleService.getRoleList(reqVO); List<RoleDO> list = roleService.getRoleList(reqVO);
List<RoleExcelVO> data = RoleConvert.INSTANCE.convertList03(list); List<RoleExcelVO> data = RoleConvert.INSTANCE.convertList03(list);
// 输出 // 输出

@ -31,4 +31,7 @@ public class RoleBaseVO {
@Schema(description = "备注", example = "我是一个角色") @Schema(description = "备注", example = "我是一个角色")
private String remark; private String remark;
@Schema(description = "企业ID", example = "1024")
private Long enterpriseId;
} }

@ -4,6 +4,7 @@ import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
import com.yunxi.scm.framework.excel.core.convert.DictConvert; import com.yunxi.scm.framework.excel.core.convert.DictConvert;
import com.yunxi.scm.module.system.enums.DictTypeConstants; import com.yunxi.scm.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
/** /**
@ -31,4 +32,5 @@ public class RoleExcelVO {
@DictFormat(DictTypeConstants.COMMON_STATUS) @DictFormat(DictTypeConstants.COMMON_STATUS)
private String status; private String status;
private Long enterpriseId;
} }

@ -25,4 +25,5 @@ public class RoleExportReqVO {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime; private LocalDateTime[] createTime;
private Long enterpriseId;
} }

@ -28,4 +28,5 @@ public class RolePageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime; private LocalDateTime[] createTime;
private Long enterpriseId;
} }

@ -34,4 +34,6 @@ public class RoleRespVO extends RoleBaseVO {
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
private LocalDateTime createTime; private LocalDateTime createTime;
@Schema(description = "企业ID", example = "1024")
private Long enterpriseId;
} }

@ -7,7 +7,9 @@ import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import com.yunxi.scm.module.system.controller.admin.tenant.vo.tenant.*; import com.yunxi.scm.module.system.controller.admin.tenant.vo.tenant.*;
import com.yunxi.scm.module.system.convert.tenant.TenantConvert; import com.yunxi.scm.module.system.convert.tenant.TenantConvert;
import com.yunxi.scm.module.system.dal.dataobject.tenant.TenantDO; import com.yunxi.scm.module.system.dal.dataobject.tenant.TenantDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.yunxi.scm.module.system.service.tenant.TenantService; import com.yunxi.scm.module.system.service.tenant.TenantService;
import com.yunxi.scm.module.system.service.user.AdminUserService;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -23,6 +25,7 @@ import java.util.List;
import static com.yunxi.scm.framework.common.pojo.CommonResult.success; import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
import static com.yunxi.scm.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@Tag(name = "管理后台 - 租户") @Tag(name = "管理后台 - 租户")
@RestController @RestController
@ -31,6 +34,8 @@ public class TenantController {
@Resource @Resource
private TenantService tenantService; private TenantService tenantService;
@Resource
private AdminUserService userService;
@GetMapping("/get-id-by-name") @GetMapping("/get-id-by-name")
@PermitAll @PermitAll
@ -41,6 +46,16 @@ public class TenantController {
return success(tenantDO != null ? tenantDO.getId() : null); return success(tenantDO != null ? tenantDO.getId() : null);
} }
@GetMapping("/get-tenantId-by-userName")
@PermitAll
@Operation(summary = "使用租户名,获得租户编号", description = "登录界面,根据用户的租户名,获得租户编号")
@Parameter(name = "name", description = "租户名", required = true, example = "1024")
public CommonResult<Long> getTenantIdByUserName(@RequestParam("name") String name) {
AdminUserDO user = userService.getUserByUsername(name);
TenantDO tenantDO = tenantService.getTenant(user.getTenantId());
return success(tenantDO != null ? tenantDO.getId() : null);
}
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建租户") @Operation(summary = "创建租户")
@PreAuthorize("@ss.hasPermission('system:tenant:create')") @PreAuthorize("@ss.hasPermission('system:tenant:create')")

@ -1,6 +1,7 @@
package com.yunxi.scm.module.system.controller.admin.user; package com.yunxi.scm.module.system.controller.admin.user;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.yunxi.scm.framework.security.core.util.SecurityFrameworkUtils;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
import com.yunxi.scm.module.system.controller.admin.user.vo.user.*; import com.yunxi.scm.module.system.controller.admin.user.vo.user.*;
@ -94,6 +95,7 @@ public class UserController {
@PreAuthorize("@ss.hasPermission('system:user:list')") @PreAuthorize("@ss.hasPermission('system:user:list')")
public CommonResult<PageResult<UserPageItemRespVO>> getUserPage(@Valid UserPageReqVO reqVO) { public CommonResult<PageResult<UserPageItemRespVO>> getUserPage(@Valid UserPageReqVO reqVO) {
// 获得用户分页列表 // 获得用户分页列表
AdminUserDO adminUserDO = userService.getUser(SecurityFrameworkUtils.getLoginUserId());
PageResult<AdminUserDO> pageResult = userService.getUserPage(reqVO); PageResult<AdminUserDO> pageResult = userService.getUserPage(reqVO);
if (CollUtil.isEmpty(pageResult.getList())) { if (CollUtil.isEmpty(pageResult.getList())) {
return success(new PageResult<>(pageResult.getTotal())); // 返回空 return success(new PageResult<>(pageResult.getTotal())); // 返回空

@ -8,6 +8,7 @@ import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern; import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.time.LocalDateTime;
import java.util.Set; import java.util.Set;
/** /**
@ -51,4 +52,31 @@ public class UserBaseVO {
@Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png") @Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png")
private String avatar; private String avatar;
@Schema(description = "员工工号", example = "123")
private String jobNumber;
@Schema(description = "微信账号", example = "123")
private String wechatAccount;
@Schema(description = "出生日期", example = "123")
private LocalDateTime birthDatetime;
@Schema(description = "籍贯", example = "123")
private String nativePlace;
@Schema(description = "学历", example = "123")
private String education;
@Schema(description = "专业", example = "123")
private String speciality;
@Schema(description = "毕业院校", example = "123")
private String graduationInstitution;
@Schema(description = "毕业时间", example = "123")
private LocalDateTime institutionDatatime;
@Schema(description = "个人简介", example = "123")
private String personalProfile;
} }

@ -28,7 +28,7 @@ public interface AuthConvert {
default AuthPermissionInfoRespVO convert(AdminUserDO user, List<RoleDO> roleList, List<MenuDO> menuList) { default AuthPermissionInfoRespVO convert(AdminUserDO user, List<RoleDO> roleList, List<MenuDO> menuList) {
return AuthPermissionInfoRespVO.builder() return AuthPermissionInfoRespVO.builder()
.user(AuthPermissionInfoRespVO.UserVO.builder().id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).build()) .user(AuthPermissionInfoRespVO.UserVO.builder().id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).enterprise(user.getEnterprise()).businessWarehouseList(user.getBusinessWarehouseList()).tenantDO(user.getTenantDO()).tenantDOList(user.getTenantDOList()).enterpriseList(user.getEnterpriseList()).build())
.roles(convertSet(roleList, RoleDO::getCode)) .roles(convertSet(roleList, RoleDO::getCode))
// 权限标识信息 // 权限标识信息
.permissions(convertSet(menuList, MenuDO::getPermission)) .permissions(convertSet(menuList, MenuDO::getPermission))

@ -0,0 +1,34 @@
package com.yunxi.scm.module.system.convert.businessenterpriserelational;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
/**
* 线 Convert
*
* @author
*/
@Mapper
public interface BusinessEnterpriseRelationalConvert {
BusinessEnterpriseRelationalConvert INSTANCE = Mappers.getMapper(BusinessEnterpriseRelationalConvert.class);
BusinessEnterpriseRelationalDO convert(BusinessEnterpriseRelationalCreateReqVO bean);
BusinessEnterpriseRelationalDO convert(BusinessEnterpriseRelationalUpdateReqVO bean);
BusinessEnterpriseRelationalRespVO convert(BusinessEnterpriseRelationalDO bean);
List<BusinessEnterpriseRelationalRespVO> convertList(List<BusinessEnterpriseRelationalDO> list);
PageResult<BusinessEnterpriseRelationalRespVO> convertPage(PageResult<BusinessEnterpriseRelationalDO> page);
List<BusinessEnterpriseRelationalExcelVO> convertList02(List<BusinessEnterpriseRelationalDO> list);
}

@ -0,0 +1,34 @@
package com.yunxi.scm.module.system.convert.businessuserrelational;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
/**
* 线 Convert
*
* @author
*/
@Mapper
public interface BusinessUserRelationalConvert {
BusinessUserRelationalConvert INSTANCE = Mappers.getMapper(BusinessUserRelationalConvert.class);
BusinessUserRelationalDO convert(BusinessUserRelationalCreateReqVO bean);
BusinessUserRelationalDO convert(BusinessUserRelationalUpdateReqVO bean);
BusinessUserRelationalRespVO convert(BusinessUserRelationalDO bean);
List<BusinessUserRelationalRespVO> convertList(List<BusinessUserRelationalDO> list);
PageResult<BusinessUserRelationalRespVO> convertPage(PageResult<BusinessUserRelationalDO> page);
List<BusinessUserRelationalExcelVO> convertList02(List<BusinessUserRelationalDO> list);
}

@ -0,0 +1,39 @@
package com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
/**
* 线 DO
*
* @author
*/
@TableName("system_business_enterprise_relational")
@KeySequence("system_business_enterprise_relational_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BusinessEnterpriseRelationalDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* 线id
*/
private Long businessId;
/**
* id
*/
private Long enterpriseId;
}

@ -0,0 +1,39 @@
package com.yunxi.scm.module.system.dal.dataobject.businessuserrelational;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
/**
* 线 DO
*
* @author
*/
@TableName("system_business_user_relational")
@KeySequence("system_business_user_relational_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BusinessUserRelationalDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* 线/id
*/
private Long businessId;
/**
* id
*/
private Long userId;
}

@ -7,6 +7,7 @@ import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -64,4 +65,9 @@ public class DeptDO extends TenantBaseDO {
*/ */
private Integer status; private Integer status;
/**
* id
*/
private Long enterpriseId;
} }

@ -5,6 +5,7 @@ import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -47,4 +48,9 @@ public class PostDO extends BaseDO {
*/ */
private String remark; private String remark;
/**
* id
*/
private Long enterpriseId;
} }

@ -75,4 +75,8 @@ public class RoleDO extends TenantBaseDO {
@TableField(typeHandler = JsonLongSetTypeHandler.class) @TableField(typeHandler = JsonLongSetTypeHandler.class)
private Set<Long> dataScopeDeptIds; private Set<Long> dataScopeDeptIds;
/**
* id
*/
private Long enterpriseId;
} }

@ -1,13 +1,17 @@
package com.yunxi.scm.module.system.dal.dataobject.tenant; package com.yunxi.scm.module.system.dal.dataobject.tenant;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum; import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO; import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO; import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*; import lombok.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
/** /**
* DO * DO
@ -79,4 +83,8 @@ public class TenantDO extends BaseDO {
*/ */
private Integer accountCount; private Integer accountCount;
@TableField(exist = false)
private List<EnterpriseDO> enterpriseList;
} }

@ -3,6 +3,9 @@ package com.yunxi.scm.module.system.dal.dataobject.user;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum; import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.framework.mybatis.core.type.JsonLongSetTypeHandler; import com.yunxi.scm.framework.mybatis.core.type.JsonLongSetTypeHandler;
import com.yunxi.scm.framework.tenant.core.db.TenantBaseDO; import com.yunxi.scm.framework.tenant.core.db.TenantBaseDO;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
import com.yunxi.scm.module.system.dal.dataobject.tenant.TenantDO;
import com.yunxi.scm.module.system.enums.common.SexEnum; import com.yunxi.scm.module.system.enums.common.SexEnum;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
@ -12,6 +15,7 @@ import lombok.*;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import java.util.Set; import java.util.Set;
/** /**
@ -92,5 +96,59 @@ public class AdminUserDO extends TenantBaseDO {
* *
*/ */
private LocalDateTime loginDate; private LocalDateTime loginDate;
/**
*
*/
private String jobNumber;
/**
*
*/
private String wechatAccount;
/**
*
*/
private LocalDateTime birthDatetime;
/**
*
*/
private String nativePlace;
/**
*
*/
private String education;
/**
*
*/
private String speciality;
/**
*
*/
private String graduationInstitution;
/**
*
*/
private LocalDateTime institutionDatatime;
/**
*
*/
private String personalProfile;
private Long defaultEnterpriseId;
private Long enterpriseId;
@TableField(exist = false)
private List<TenantDO> tenantDOList;
@TableField(exist = false)
private List<EnterpriseDO> enterpriseList;
@TableField(exist = false)
private List<BusinessWarehouseDO> businessWarehouseList;
@TableField(exist = false)
private EnterpriseDO enterprise;
@TableField(exist = false)
private TenantDO tenantDO;
} }

@ -0,0 +1,36 @@
package com.yunxi.scm.module.system.dal.mysql.businessenterpriserelational;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
import org.apache.ibatis.annotations.Mapper;
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
/**
* 线 Mapper
*
* @author
*/
@Mapper
public interface BusinessEnterpriseRelationalMapper extends BaseMapperX<BusinessEnterpriseRelationalDO> {
default PageResult<BusinessEnterpriseRelationalDO> selectPage(BusinessEnterpriseRelationalPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessEnterpriseRelationalDO>()
.eqIfPresent(BusinessEnterpriseRelationalDO::getBusinessId, reqVO.getBusinessId())
.eqIfPresent(BusinessEnterpriseRelationalDO::getEnterpriseId, reqVO.getEnterpriseId())
.betweenIfPresent(BusinessEnterpriseRelationalDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessEnterpriseRelationalDO::getId));
}
default List<BusinessEnterpriseRelationalDO> selectList(BusinessEnterpriseRelationalExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<BusinessEnterpriseRelationalDO>()
.eqIfPresent(BusinessEnterpriseRelationalDO::getBusinessId, reqVO.getBusinessId())
.eqIfPresent(BusinessEnterpriseRelationalDO::getEnterpriseId, reqVO.getEnterpriseId())
.betweenIfPresent(BusinessEnterpriseRelationalDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessEnterpriseRelationalDO::getId));
}
}

@ -0,0 +1,36 @@
package com.yunxi.scm.module.system.dal.mysql.businessuserrelational;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
import org.apache.ibatis.annotations.Mapper;
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
/**
* 线 Mapper
*
* @author
*/
@Mapper
public interface BusinessUserRelationalMapper extends BaseMapperX<BusinessUserRelationalDO> {
default PageResult<BusinessUserRelationalDO> selectPage(BusinessUserRelationalPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessUserRelationalDO>()
.eqIfPresent(BusinessUserRelationalDO::getBusinessId, reqVO.getBusinessId())
.eqIfPresent(BusinessUserRelationalDO::getUserId, reqVO.getUserId())
.betweenIfPresent(BusinessUserRelationalDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessUserRelationalDO::getId));
}
default List<BusinessUserRelationalDO> selectList(BusinessUserRelationalExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<BusinessUserRelationalDO>()
.eqIfPresent(BusinessUserRelationalDO::getBusinessId, reqVO.getBusinessId())
.eqIfPresent(BusinessUserRelationalDO::getUserId, reqVO.getUserId())
.betweenIfPresent(BusinessUserRelationalDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessUserRelationalDO::getId));
}
}

@ -2,12 +2,19 @@ package com.yunxi.scm.module.system.dal.mysql.businesswarehouse;
import java.util.*; import java.util.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.yunxi.scm.framework.common.pojo.PageResult; import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX; import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX; import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO; import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO; import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import com.yunxi.scm.module.system.dal.dataobject.dept.PostDO;
import com.yunxi.scm.module.system.dal.dataobject.dept.UserPostDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo.*; import com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo.*;
@ -75,4 +82,50 @@ public interface BusinessWarehouseMapper extends BaseMapperX<BusinessWarehouseDO
.eqIfPresent(BusinessWarehouseDO::getDiffFlag, reqVO.getDiffFlag())); .eqIfPresent(BusinessWarehouseDO::getDiffFlag, reqVO.getDiffFlag()));
} }
List<BusinessWarehouseDO> getBusinessWarehouseListByUserId(Long id);
default PageResult<BusinessWarehouseDO> selectBusinessPage(BusinessWarehousePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessWarehouseDO>()
.eqIfPresent(BusinessWarehouseDO::getBusinessCode, reqVO.getBusinessCode())
.likeIfPresent(BusinessWarehouseDO::getName, reqVO.getName())
.eqIfPresent(BusinessWarehouseDO::getBusinessSimple, reqVO.getBusinessSimple())
.eqIfPresent(BusinessWarehouseDO::getBusinessLogo, reqVO.getBusinessLogo())
.eqIfPresent(BusinessWarehouseDO::getParentId, reqVO.getParentId())
.eqIfPresent(BusinessWarehouseDO::getType, reqVO.getType())
.eqIfPresent(BusinessWarehouseDO::getStatus, reqVO.getStatus())
.eqIfPresent(BusinessWarehouseDO::getInstitutionNum, reqVO.getInstitutionNum())
.eqIfPresent(BusinessWarehouseDO::getEmployeeNum, reqVO.getEmployeeNum())
.eqIfPresent(BusinessWarehouseDO::getIndustry, reqVO.getIndustry())
.eqIfPresent(BusinessWarehouseDO::getCity, reqVO.getCity())
.betweenIfPresent(BusinessWarehouseDO::getEstablishDate, reqVO.getEstablishDate())
.eqIfPresent(BusinessWarehouseDO::getBelongUserId, reqVO.getBelongUserId())
.likeIfPresent(BusinessWarehouseDO::getBrandName, reqVO.getBrandName())
.eqIfPresent(BusinessWarehouseDO::getPhone, reqVO.getPhone())
.eqIfPresent(BusinessWarehouseDO::getDiffFlag, "0")
.eqIfPresent(BusinessWarehouseDO::getFax, reqVO.getFax())
.eqIfPresent(BusinessWarehouseDO::getUrl, reqVO.getUrl())
.eqIfPresent(BusinessWarehouseDO::getDescription, reqVO.getDescription())
.betweenIfPresent(BusinessWarehouseDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(BusinessWarehouseDO::getId));
}
default IPage<BusinessUserVO> selectBusinessUserPage(Page<BusinessUserVO> page,BusinessUserVO reqVO) {
return selectJoinPage(page,BusinessUserVO.class, new MPJLambdaWrapper<BusinessWarehouseDO>()
.selectAll(AdminUserDO.class)
.selectAs(AdminUserDO::getStatus, BusinessUserVO::getAccountStatus)
.selectAs(DeptDO::getName, BusinessUserVO::getDeptName)
.selectAs(PostDO::getName, BusinessUserVO::getPostName)
.selectAs(BusinessWarehouseDO::getName, BusinessUserVO::getBusinessName)
.leftJoin(BusinessUserRelationalDO.class, BusinessUserRelationalDO::getBusinessId, BusinessWarehouseDO::getId)
.eq(reqVO.getBusinessId() != null,BusinessWarehouseDO::getId,reqVO.getBusinessId())
.leftJoin(AdminUserDO.class, AdminUserDO::getId, BusinessUserRelationalDO::getUserId)
.like(reqVO.getNickname() != null,AdminUserDO::getNickname,reqVO.getNickname())
.leftJoin(DeptDO.class,DeptDO::getId,AdminUserDO::getDeptId)
.leftJoin(UserPostDO.class,UserPostDO::getUserId,AdminUserDO::getId)
.leftJoin(PostDO.class,PostDO::getId,UserPostDO::getPostId)
);
}
} }

@ -15,7 +15,8 @@ public interface DeptMapper extends BaseMapperX<DeptDO> {
default List<DeptDO> selectList(DeptListReqVO reqVO) { default List<DeptDO> selectList(DeptListReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<DeptDO>() return selectList(new LambdaQueryWrapperX<DeptDO>()
.likeIfPresent(DeptDO::getName, reqVO.getName()) .likeIfPresent(DeptDO::getName, reqVO.getName())
.eqIfPresent(DeptDO::getStatus, reqVO.getStatus())); .eqIfPresent(DeptDO::getStatus, reqVO.getStatus())
.eqIfPresent(DeptDO::getEnterpriseId, reqVO.getEnterpriseId()));
} }
default DeptDO selectByParentIdAndName(Long parentId, String name) { default DeptDO selectByParentIdAndName(Long parentId, String name) {

@ -25,6 +25,7 @@ public interface PostMapper extends BaseMapperX<PostDO> {
.likeIfPresent(PostDO::getCode, reqVO.getCode()) .likeIfPresent(PostDO::getCode, reqVO.getCode())
.likeIfPresent(PostDO::getName, reqVO.getName()) .likeIfPresent(PostDO::getName, reqVO.getName())
.eqIfPresent(PostDO::getStatus, reqVO.getStatus()) .eqIfPresent(PostDO::getStatus, reqVO.getStatus())
.eqIfPresent(PostDO::getEnterpriseId, reqVO.getEnterpriseId())
.orderByDesc(PostDO::getId)); .orderByDesc(PostDO::getId));
} }
@ -32,6 +33,7 @@ public interface PostMapper extends BaseMapperX<PostDO> {
return selectList(new LambdaQueryWrapperX<PostDO>() return selectList(new LambdaQueryWrapperX<PostDO>()
.likeIfPresent(PostDO::getCode, reqVO.getCode()) .likeIfPresent(PostDO::getCode, reqVO.getCode())
.likeIfPresent(PostDO::getName, reqVO.getName()) .likeIfPresent(PostDO::getName, reqVO.getName())
.eqIfPresent(PostDO::getEnterpriseId, reqVO.getEnterpriseId())
.eqIfPresent(PostDO::getStatus, reqVO.getStatus())); .eqIfPresent(PostDO::getStatus, reqVO.getStatus()));
} }

@ -8,6 +8,7 @@ import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO; import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import com.yunxi.scm.module.system.controller.admin.enterprise.vo.*; import com.yunxi.scm.module.system.controller.admin.enterprise.vo.*;
import org.apache.ibatis.annotations.Param;
/** /**
* Mapper * Mapper
@ -51,4 +52,5 @@ public interface EnterpriseMapper extends BaseMapperX<EnterpriseDO> {
.orderByDesc(EnterpriseDO::getId)); .orderByDesc(EnterpriseDO::getId));
} }
List<EnterpriseDO> getEnterpriseListByTenantId(@Param("tenantId") Long tenantId, @Param("userId") Long userId);
} }

@ -21,6 +21,7 @@ public interface RoleMapper extends BaseMapperX<RoleDO> {
.likeIfPresent(RoleDO::getName, reqVO.getName()) .likeIfPresent(RoleDO::getName, reqVO.getName())
.likeIfPresent(RoleDO::getCode, reqVO.getCode()) .likeIfPresent(RoleDO::getCode, reqVO.getCode())
.eqIfPresent(RoleDO::getStatus, reqVO.getStatus()) .eqIfPresent(RoleDO::getStatus, reqVO.getStatus())
.eqIfPresent(RoleDO::getEnterpriseId, reqVO.getEnterpriseId())
.betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(RoleDO::getId)); .orderByDesc(RoleDO::getId));
} }
@ -30,6 +31,7 @@ public interface RoleMapper extends BaseMapperX<RoleDO> {
.likeIfPresent(RoleDO::getName, reqVO.getName()) .likeIfPresent(RoleDO::getName, reqVO.getName())
.likeIfPresent(RoleDO::getCode, reqVO.getCode()) .likeIfPresent(RoleDO::getCode, reqVO.getCode())
.eqIfPresent(RoleDO::getStatus, reqVO.getStatus()) .eqIfPresent(RoleDO::getStatus, reqVO.getStatus())
.eqIfPresent(RoleDO::getEnterpriseId, reqVO.getEnterpriseId())
.betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime())); .betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime()));
} }

@ -50,4 +50,5 @@ public interface TenantMapper extends BaseMapperX<TenantDO> {
return selectList(TenantDO::getPackageId, packageId); return selectList(TenantDO::getPackageId, packageId);
} }
List<TenantDO> getTenantListByUserId(Long id);
} }

@ -105,7 +105,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState())); reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState()));
} }
// 创建 Token 令牌,记录登录日志 // 创建 Token 令牌,记录登录日志
return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME); return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(),user.getTenantId(), LoginLogTypeEnum.LOGIN_USERNAME);
} }
@Override @Override
@ -130,7 +130,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
} }
// 创建 Token 令牌,记录登录日志 // 创建 Token 令牌,记录登录日志
return createTokenAfterLoginSuccess(user.getId(), reqVO.getMobile(), LoginLogTypeEnum.LOGIN_MOBILE); return createTokenAfterLoginSuccess(user.getId(), reqVO.getMobile(),user.getTenantId(), LoginLogTypeEnum.LOGIN_MOBILE);
} }
private void createLoginLog(Long userId, String username, private void createLoginLog(Long userId, String username,
@ -168,7 +168,7 @@ public class AdminAuthServiceImpl implements AdminAuthService {
} }
// 创建 Token 令牌,记录登录日志 // 创建 Token 令牌,记录登录日志
return createTokenAfterLoginSuccess(user.getId(), user.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL); return createTokenAfterLoginSuccess(user.getId(), user.getUsername(),user.getTenantId(), LoginLogTypeEnum.LOGIN_SOCIAL);
} }
@VisibleForTesting @VisibleForTesting
@ -190,14 +190,16 @@ public class AdminAuthServiceImpl implements AdminAuthService {
} }
} }
private AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username, LoginLogTypeEnum logType) { private AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username,Long tenantId, LoginLogTypeEnum logType) {
// 插入登陆日志 // 插入登陆日志
createLoginLog(userId, username, logType, LoginResultEnum.SUCCESS); createLoginLog(userId, username, logType, LoginResultEnum.SUCCESS);
// 创建访问令牌 // 创建访问令牌
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, getUserType().getValue(), OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, getUserType().getValue(),
OAuth2ClientConstants.CLIENT_ID_DEFAULT, null); OAuth2ClientConstants.CLIENT_ID_DEFAULT, null);
AuthLoginRespVO authLoginRespVO = AuthConvert.INSTANCE.convert(accessTokenDO);
// 构建返回结果 // 构建返回结果
return AuthConvert.INSTANCE.convert(accessTokenDO); authLoginRespVO.setTenantId(tenantId);
return authLoginRespVO;
} }
@Override @Override

@ -0,0 +1,70 @@
package com.yunxi.scm.module.system.service.businessenterpriserelational;
import java.util.*;
import javax.validation.*;
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
/**
* 线 Service
*
* @author
*/
public interface BusinessEnterpriseRelationalService {
/**
* 线
*
* @param createReqVO
* @return
*/
Long createBusinessEnterpriseRelational(@Valid BusinessEnterpriseRelationalCreateReqVO createReqVO);
/**
* 线
*
* @param updateReqVO
*/
void updateBusinessEnterpriseRelational(@Valid BusinessEnterpriseRelationalUpdateReqVO updateReqVO);
/**
* 线
*
* @param id
*/
void deleteBusinessEnterpriseRelational(Long id);
/**
* 线
*
* @param id
* @return 线
*/
BusinessEnterpriseRelationalDO getBusinessEnterpriseRelational(Long id);
/**
* 线
*
* @param ids
* @return 线
*/
List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(Collection<Long> ids);
/**
* 线
*
* @param pageReqVO
* @return 线
*/
PageResult<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalPage(BusinessEnterpriseRelationalPageReqVO pageReqVO);
/**
* 线, Excel
*
* @param exportReqVO
* @return 线
*/
List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(BusinessEnterpriseRelationalExportReqVO exportReqVO);
}

@ -0,0 +1,82 @@
package com.yunxi.scm.module.system.service.businessenterpriserelational;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.module.system.convert.businessenterpriserelational.BusinessEnterpriseRelationalConvert;
import com.yunxi.scm.module.system.dal.mysql.businessenterpriserelational.BusinessEnterpriseRelationalMapper;
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*;
/**
* 线 Service
*
* @author
*/
@Service
@Validated
public class BusinessEnterpriseRelationalServiceImpl implements BusinessEnterpriseRelationalService {
@Resource
private BusinessEnterpriseRelationalMapper businessEnterpriseRelationalMapper;
@Override
public Long createBusinessEnterpriseRelational(BusinessEnterpriseRelationalCreateReqVO createReqVO) {
// 插入
BusinessEnterpriseRelationalDO businessEnterpriseRelational = BusinessEnterpriseRelationalConvert.INSTANCE.convert(createReqVO);
businessEnterpriseRelationalMapper.insert(businessEnterpriseRelational);
// 返回
return businessEnterpriseRelational.getId();
}
@Override
public void updateBusinessEnterpriseRelational(BusinessEnterpriseRelationalUpdateReqVO updateReqVO) {
// 校验存在
validateBusinessEnterpriseRelationalExists(updateReqVO.getId());
// 更新
BusinessEnterpriseRelationalDO updateObj = BusinessEnterpriseRelationalConvert.INSTANCE.convert(updateReqVO);
businessEnterpriseRelationalMapper.updateById(updateObj);
}
@Override
public void deleteBusinessEnterpriseRelational(Long id) {
// 校验存在
validateBusinessEnterpriseRelationalExists(id);
// 删除
businessEnterpriseRelationalMapper.deleteById(id);
}
private void validateBusinessEnterpriseRelationalExists(Long id) {
if (businessEnterpriseRelationalMapper.selectById(id) == null) {
throw exception(BUSINESS_ENTERPRISE_RELATIONAL_NOT_EXISTS);
}
}
@Override
public BusinessEnterpriseRelationalDO getBusinessEnterpriseRelational(Long id) {
return businessEnterpriseRelationalMapper.selectById(id);
}
@Override
public List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(Collection<Long> ids) {
return businessEnterpriseRelationalMapper.selectBatchIds(ids);
}
@Override
public PageResult<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalPage(BusinessEnterpriseRelationalPageReqVO pageReqVO) {
return businessEnterpriseRelationalMapper.selectPage(pageReqVO);
}
@Override
public List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(BusinessEnterpriseRelationalExportReqVO exportReqVO) {
return businessEnterpriseRelationalMapper.selectList(exportReqVO);
}
}

@ -0,0 +1,70 @@
package com.yunxi.scm.module.system.service.businessuserrelational;
import java.util.*;
import javax.validation.*;
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
/**
* 线 Service
*
* @author
*/
public interface BusinessUserRelationalService {
/**
* 线
*
* @param createReqVO
* @return
*/
Long createBusinessUserRelational(@Valid BusinessUserRelationalCreateReqVO createReqVO);
/**
* 线
*
* @param updateReqVO
*/
void updateBusinessUserRelational(@Valid BusinessUserRelationalUpdateReqVO updateReqVO);
/**
* 线
*
* @param id
*/
void deleteBusinessUserRelational(Long id);
/**
* 线
*
* @param id
* @return 线
*/
BusinessUserRelationalDO getBusinessUserRelational(Long id);
/**
* 线
*
* @param ids
* @return 线
*/
List<BusinessUserRelationalDO> getBusinessUserRelationalList(Collection<Long> ids);
/**
* 线
*
* @param pageReqVO
* @return 线
*/
PageResult<BusinessUserRelationalDO> getBusinessUserRelationalPage(BusinessUserRelationalPageReqVO pageReqVO);
/**
* 线, Excel
*
* @param exportReqVO
* @return 线
*/
List<BusinessUserRelationalDO> getBusinessUserRelationalList(BusinessUserRelationalExportReqVO exportReqVO);
}

@ -0,0 +1,82 @@
package com.yunxi.scm.module.system.service.businessuserrelational;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.module.system.convert.businessuserrelational.BusinessUserRelationalConvert;
import com.yunxi.scm.module.system.dal.mysql.businessuserrelational.BusinessUserRelationalMapper;
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*;
/**
* 线 Service
*
* @author
*/
@Service
@Validated
public class BusinessUserRelationalServiceImpl implements BusinessUserRelationalService {
@Resource
private BusinessUserRelationalMapper businessUserRelationalMapper;
@Override
public Long createBusinessUserRelational(BusinessUserRelationalCreateReqVO createReqVO) {
// 插入
BusinessUserRelationalDO businessUserRelational = BusinessUserRelationalConvert.INSTANCE.convert(createReqVO);
businessUserRelationalMapper.insert(businessUserRelational);
// 返回
return businessUserRelational.getId();
}
@Override
public void updateBusinessUserRelational(BusinessUserRelationalUpdateReqVO updateReqVO) {
// 校验存在
validateBusinessUserRelationalExists(updateReqVO.getId());
// 更新
BusinessUserRelationalDO updateObj = BusinessUserRelationalConvert.INSTANCE.convert(updateReqVO);
businessUserRelationalMapper.updateById(updateObj);
}
@Override
public void deleteBusinessUserRelational(Long id) {
// 校验存在
validateBusinessUserRelationalExists(id);
// 删除
businessUserRelationalMapper.deleteById(id);
}
private void validateBusinessUserRelationalExists(Long id) {
if (businessUserRelationalMapper.selectById(id) == null) {
throw exception(BUSINESS_USER_RELATIONAL_NOT_EXISTS);
}
}
@Override
public BusinessUserRelationalDO getBusinessUserRelational(Long id) {
return businessUserRelationalMapper.selectById(id);
}
@Override
public List<BusinessUserRelationalDO> getBusinessUserRelationalList(Collection<Long> ids) {
return businessUserRelationalMapper.selectBatchIds(ids);
}
@Override
public PageResult<BusinessUserRelationalDO> getBusinessUserRelationalPage(BusinessUserRelationalPageReqVO pageReqVO) {
return businessUserRelationalMapper.selectPage(pageReqVO);
}
@Override
public List<BusinessUserRelationalDO> getBusinessUserRelationalList(BusinessUserRelationalExportReqVO exportReqVO) {
return businessUserRelationalMapper.selectList(exportReqVO);
}
}

@ -59,6 +59,14 @@ public interface BusinessWarehouseService {
*/ */
PageResult<BusinessWarehouseDO> getBusinessWarehousePage(BusinessWarehousePageReqVO pageReqVO); PageResult<BusinessWarehouseDO> getBusinessWarehousePage(BusinessWarehousePageReqVO pageReqVO);
/**
* 线
*
* @param pageReqVO
* @return 线
*/
PageResult<BusinessWarehouseDO> getBusinessPage(BusinessWarehousePageReqVO pageReqVO);
/** /**
* 线, Excel * 线, Excel
* *
@ -72,4 +80,16 @@ public interface BusinessWarehouseService {
* */ * */
List<BusinessWarehouseDO> getBusinessSimpleList(BusinessWarehousePageReqVO pageReqVO); List<BusinessWarehouseDO> getBusinessSimpleList(BusinessWarehousePageReqVO pageReqVO);
/**
* id线
*
* @param id id
* @return 线
*/
List<BusinessWarehouseDO> getBusinessWarehouseListByUserId(Long id);
PageResult<BusinessUserVO> getBusinessUserList(BusinessUserVO reqVO);
} }

@ -1,5 +1,7 @@
package com.yunxi.scm.module.system.service.businesswarehouse; package com.yunxi.scm.module.system.service.businesswarehouse;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -74,6 +76,11 @@ public class BusinessWarehouseServiceImpl implements BusinessWarehouseService {
return businessWarehouseMapper.selectPage(pageReqVO); return businessWarehouseMapper.selectPage(pageReqVO);
} }
@Override
public PageResult<BusinessWarehouseDO> getBusinessPage(BusinessWarehousePageReqVO pageReqVO) {
return businessWarehouseMapper.selectBusinessPage(pageReqVO);
}
@Override @Override
public List<BusinessWarehouseDO> getBusinessWarehouseList(BusinessWarehouseExportReqVO exportReqVO) { public List<BusinessWarehouseDO> getBusinessWarehouseList(BusinessWarehouseExportReqVO exportReqVO) {
return businessWarehouseMapper.selectList(exportReqVO); return businessWarehouseMapper.selectList(exportReqVO);
@ -84,4 +91,15 @@ public class BusinessWarehouseServiceImpl implements BusinessWarehouseService {
return businessWarehouseMapper.simpleBusiness(pageReqVO); return businessWarehouseMapper.simpleBusiness(pageReqVO);
} }
@Override
public List<BusinessWarehouseDO> getBusinessWarehouseListByUserId(Long id) {
return businessWarehouseMapper.getBusinessWarehouseListByUserId(id);
}
@Override
public PageResult<BusinessUserVO> getBusinessUserList(BusinessUserVO reqVO) {
Page<BusinessUserVO> page = new Page<>(reqVO.getPageNo(), reqVO.getPageSize());
IPage<BusinessUserVO> result = businessWarehouseMapper.selectBusinessUserPage(page,reqVO);
return new PageResult<>(result.getRecords(), result.getTotal());
}
} }

@ -67,4 +67,12 @@ public interface EnterpriseService {
*/ */
List<EnterpriseDO> getEnterpriseList(EnterpriseExportReqVO exportReqVO); List<EnterpriseDO> getEnterpriseList(EnterpriseExportReqVO exportReqVO);
/**
* id
*
* @param tenantId id
* @param userId id
* @return
*/
List<EnterpriseDO> getEnterpriseListByTenantId(Long tenantId, Long userId);
} }

@ -79,4 +79,9 @@ public class EnterpriseServiceImpl implements EnterpriseService {
return enterpriseMapper.selectList(exportReqVO); return enterpriseMapper.selectList(exportReqVO);
} }
@Override
public List<EnterpriseDO> getEnterpriseListByTenantId(Long tenantId, Long userId) {
return enterpriseMapper.getEnterpriseListByTenantId(tenantId, userId);
}
} }

@ -27,6 +27,7 @@ import static com.yunxi.scm.framework.common.util.collection.CollectionUtils.con
import static com.yunxi.scm.module.system.dal.dataobject.permission.MenuDO.ID_ROOT; import static com.yunxi.scm.module.system.dal.dataobject.permission.MenuDO.ID_ROOT;
import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*; import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*;
/** /**
* Service * Service
* *
@ -45,7 +46,9 @@ public class MenuServiceImpl implements MenuService {
private TenantService tenantService; private TenantService tenantService;
@Override @Override
@CacheEvict(value = RedisKeyConstants.PERMISSION_MENU_ID_LIST, key = "#reqVO.permission") @CacheEvict(value = RedisKeyConstants.PERMISSION_MENU_ID_LIST, key = "#reqVO.permission", condition="#reqVO.permission != null")
// @CacheEvict(value = RedisKeyConstants.PERMISSION_MENU_ID_LIST, key = "#reqVO.permission",
// condition="T(com.yunxi.scm.module.system.enums.permission.MenuTypeEnum).isNoDIR(#reqVO.type)")
public Long createMenu(MenuCreateReqVO reqVO) { public Long createMenu(MenuCreateReqVO reqVO) {
// 校验父菜单存在 // 校验父菜单存在
validateParentMenu(reqVO.getParentId(), null); validateParentMenu(reqVO.getParentId(), null);

@ -128,4 +128,11 @@ public interface TenantService {
* @param id * @param id
*/ */
void validTenant(Long id); void validTenant(Long id);
/**
* id
*
* @param id
*/
List<TenantDO> getTenantListByUserId(Long id);
} }

@ -95,6 +95,11 @@ public class TenantServiceImpl implements TenantService {
} }
} }
@Override
public List<TenantDO> getTenantListByUserId(Long id) {
return tenantMapper.getTenantListByUserId(id);
}
@Override @Override
@DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换 @DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换
public Long createTenant(TenantCreateReqVO createReqVO) { public Long createTenant(TenantCreateReqVO createReqVO) {

@ -14,13 +14,18 @@ import com.yunxi.scm.module.system.controller.admin.user.vo.profile.UserProfileU
import com.yunxi.scm.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; import com.yunxi.scm.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
import com.yunxi.scm.module.system.controller.admin.user.vo.user.*; import com.yunxi.scm.module.system.controller.admin.user.vo.user.*;
import com.yunxi.scm.module.system.convert.user.UserConvert; import com.yunxi.scm.module.system.convert.user.UserConvert;
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO; import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import com.yunxi.scm.module.system.dal.dataobject.dept.UserPostDO; import com.yunxi.scm.module.system.dal.dataobject.dept.UserPostDO;
import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO;
import com.yunxi.scm.module.system.dal.dataobject.tenant.TenantDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO; import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.yunxi.scm.module.system.dal.mysql.dept.UserPostMapper; import com.yunxi.scm.module.system.dal.mysql.dept.UserPostMapper;
import com.yunxi.scm.module.system.dal.mysql.user.AdminUserMapper; import com.yunxi.scm.module.system.dal.mysql.user.AdminUserMapper;
import com.yunxi.scm.module.system.service.businesswarehouse.BusinessWarehouseService;
import com.yunxi.scm.module.system.service.dept.DeptService; import com.yunxi.scm.module.system.service.dept.DeptService;
import com.yunxi.scm.module.system.service.dept.PostService; import com.yunxi.scm.module.system.service.dept.PostService;
import com.yunxi.scm.module.system.service.enterprise.EnterpriseService;
import com.yunxi.scm.module.system.service.permission.PermissionService; import com.yunxi.scm.module.system.service.permission.PermissionService;
import com.yunxi.scm.module.system.service.tenant.TenantService; import com.yunxi.scm.module.system.service.tenant.TenantService;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
@ -71,6 +76,12 @@ public class AdminUserServiceImpl implements AdminUserService {
@Resource @Resource
private UserPostMapper userPostMapper; private UserPostMapper userPostMapper;
@Resource
private EnterpriseService enterpriseService;
@Resource
private BusinessWarehouseService businessWarehouseService;
@Resource @Resource
private FileApi fileApi; private FileApi fileApi;
@ -220,7 +231,28 @@ public class AdminUserServiceImpl implements AdminUserService {
@Override @Override
public AdminUserDO getUser(Long id) { public AdminUserDO getUser(Long id) {
return userMapper.selectById(id); AdminUserDO adminUserDO = userMapper.selectById(id);
//查询对应的租户
List<TenantDO> tenantDOList = tenantService.getTenantListByUserId(adminUserDO.getId());
for (TenantDO tenantDO: tenantDOList) {
//查询租户下的机构
List<EnterpriseDO> enterpriseList = enterpriseService.getEnterpriseListByTenantId(tenantDO.getId(), adminUserDO.getId());
tenantDO.setEnterpriseList(enterpriseList);
if(adminUserDO.getTenantId().equals(tenantDO.getId())){
adminUserDO.setEnterpriseList(enterpriseList);
}
}
adminUserDO.setTenantDOList(tenantDOList);
//根据userID查找对应业务线
List<BusinessWarehouseDO> businessWarehouseDOList = businessWarehouseService.getBusinessWarehouseListByUserId(adminUserDO.getId());
adminUserDO.setBusinessWarehouseList(businessWarehouseDOList);
//查询当前企业信息
EnterpriseDO enterpriseDO = enterpriseService.getEnterprise(adminUserDO.getEnterpriseId());
adminUserDO.setEnterprise(enterpriseDO);
//查询当前租户信息
TenantDO tenantDO = tenantService.getTenant(adminUserDO.getTenantId());
adminUserDO.setTenantDO(tenantDO);
return adminUserDO;
} }
@Override @Override

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yunxi.scm.module.system.dal.mysql.businesswarehouse.BusinessWarehouseMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getBusinessWarehouseListByUserId"
resultType="com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO" >
SELECT * from system_business_warehouse where id in (SELECT business_id from system_business_user_relational where user_id = #{id})
</select>
</mapper>

@ -8,5 +8,8 @@
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/ 文档可见https://www.iocoder.cn/MyBatis/x-plugins/
--> -->
<select id="getEnterpriseListByTenantId"
resultType="com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO" >
SELECT * from system_enterprise where id in (SELECT enterprise_id from system_user_enterprise_relational where tenant_id = #{tenantId} AND user_id = #{userId})
</select>
</mapper> </mapper>

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yunxi.scm.module.system.dal.mysql.tenant.TenantMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getTenantListByUserId"
resultType="com.yunxi.scm.module.system.dal.dataobject.tenant.TenantDO" >
SELECT * from system_tenant where id in (SELECT tenant_id from system_user_enterprise_relational where user_id = #{id})
</select>
</mapper>

@ -0,0 +1,102 @@
package com.yunxi.scm.module.xxjj.controller.admin.subjectbasic;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.common.pojo.CommonResult;
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo.*;
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectbasic.SubjectBasicDO;
import com.yunxi.scm.module.xxjj.convert.subjectbasic.SubjectBasicConvert;
import com.yunxi.scm.module.xxjj.service.subjectbasic.SubjectBasicService;
@Tag(name = "管理后台 - 基础业务信息表(客户,供应商,服务商主体)")
@RestController
@RequestMapping("/xxjj/subject-basic")
@Validated
public class SubjectBasicController {
@Resource
private SubjectBasicService subjectBasicService;
@PostMapping("/create")
@Operation(summary = "创建基础业务信息表(客户,供应商,服务商主体)")
@PreAuthorize("@ss.hasPermission('xxjj:subject-basic:create')")
public CommonResult<Long> createSubjectBasic(@Valid @RequestBody SubjectBasicCreateReqVO createReqVO) {
return success(subjectBasicService.createSubjectBasic(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新基础业务信息表(客户,供应商,服务商主体)")
@PreAuthorize("@ss.hasPermission('xxjj:subject-basic:update')")
public CommonResult<Boolean> updateSubjectBasic(@Valid @RequestBody SubjectBasicUpdateReqVO updateReqVO) {
subjectBasicService.updateSubjectBasic(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除基础业务信息表(客户,供应商,服务商主体)")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('xxjj:subject-basic:delete')")
public CommonResult<Boolean> deleteSubjectBasic(@RequestParam("id") Long id) {
subjectBasicService.deleteSubjectBasic(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得基础业务信息表(客户,供应商,服务商主体)")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('xxjj:subject-basic:query')")
public CommonResult<SubjectBasicRespVO> getSubjectBasic(@RequestParam("id") Long id) {
SubjectBasicDO subjectBasic = subjectBasicService.getSubjectBasic(id);
return success(SubjectBasicConvert.INSTANCE.convert(subjectBasic));
}
@GetMapping("/list")
@Operation(summary = "获得基础业务信息表(客户,供应商,服务商主体)列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('xxjj:subject-basic:query')")
public CommonResult<List<SubjectBasicRespVO>> getSubjectBasicList(@RequestParam("ids") Collection<Long> ids) {
List<SubjectBasicDO> list = subjectBasicService.getSubjectBasicList(ids);
return success(SubjectBasicConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得基础业务信息表(客户,供应商,服务商主体)分页")
@PreAuthorize("@ss.hasPermission('xxjj:subject-basic:query')")
public CommonResult<PageResult<SubjectBasicRespVO>> getSubjectBasicPage(@Valid SubjectBasicPageReqVO pageVO) {
PageResult<SubjectBasicDO> pageResult = subjectBasicService.getSubjectBasicPage(pageVO);
return success(SubjectBasicConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出基础业务信息表(客户,供应商,服务商主体) Excel")
@PreAuthorize("@ss.hasPermission('xxjj:subject-basic:export')")
@OperateLog(type = EXPORT)
public void exportSubjectBasicExcel(@Valid SubjectBasicExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<SubjectBasicDO> list = subjectBasicService.getSubjectBasicList(exportReqVO);
// 导出 Excel
List<SubjectBasicExcelVO> datas = SubjectBasicConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "基础业务信息表(客户,供应商,服务商主体).xls", "数据", SubjectBasicExcelVO.class, datas);
}
}

@ -0,0 +1,271 @@
package com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* () Base VO VO 使
* VO Swagger
*/
@Data
public class SubjectBasicBaseVO {
@Schema(description = "业务类型(0客户 1供应商 2服务商)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "业务类型(0客户 1供应商 2服务商)不能为空")
private String businessType;
@Schema(description = "分类(0一级 1二级 2三级)", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "分类(0一级 1二级 2三级)不能为空")
private String calssify;
@Schema(description = "客户名称", example = "赵六")
private String name;
@Schema(description = "公司logo")
private String logo;
@Schema(description = "企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)")
private String enterpriseNature;
@Schema(description = "行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)")
private String industryClassify;
@Schema(description = "客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)")
private String customerSource;
@Schema(description = "客户星级(0一星 1二星 2三星 3四星 4五星)")
private String customerStarrating;
@Schema(description = "业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)")
private String industrySchedule;
@Schema(description = "归属人员")
private String belongingPeople;
@Schema(description = "所在城市")
private String city;
@Schema(description = "国家")
private String country;
@Schema(description = "详细地址")
private String address;
@Schema(description = "公司电话")
private String phone;
@Schema(description = "公司传真")
private String companyFax;
@Schema(description = "公司网址")
private String companyHttp;
@Schema(description = "公司介绍")
private String companyProfile;
@Schema(description = "客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)不能为空")
private String customerStatus;
@Schema(description = "社会信息代码证(营业执照)")
private String socialInformationCodeCertificate;
@Schema(description = "注册地址")
private String registerAddress;
@Schema(description = "社会统一信息代码")
private String informationCode;
@Schema(description = "经营时间开始")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime operateStart;
@Schema(description = "经营时间结束")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime operateEnd;
@Schema(description = "注册资金")
private String registerCapital;
@Schema(description = "经营范围")
private String businessScope;
@Schema(description = "实缴资金证明")
private String proofPaidCapital;
@Schema(description = "资产证明")
private String assetCertificate;
@Schema(description = "资产抵押证明")
private String assetCertificateMortgage;
@Schema(description = "其他资质文件")
private String otherQualifications;
@Schema(description = "合作时间开始")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime collaborationStart;
@Schema(description = "合作时间结束")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime collaborationEnd;
@Schema(description = "需求量(每月下限)")
private Long demandVolumeDown;
@Schema(description = "需求量(每月上限)")
private Long demandVolumeUpper;
@Schema(description = "资金额度")
private Long fundLimit;
@Schema(description = "营业时间")
private String businessHours;
@Schema(description = "营业时间开始")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime businessStart;
@Schema(description = "营业时间结束")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime businessEnd;
@Schema(description = "允许卸货时间开始")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime allowableUnloadingStart;
@Schema(description = "允许卸货时间结束")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime allowableUnloadingEnd;
@Schema(description = "卸货时长")
private String unloading;
@Schema(description = "卸货效率")
private String unloadingEfficiency;
@Schema(description = "允许装货时间开始")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime allowableShipmentStart;
@Schema(description = "允许装货时间结束")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime allowableShipmentEnd;
@Schema(description = "装货时长")
private String shipment;
@Schema(description = "装货效果")
private String shipmentEffciency;
@Schema(description = "付款方式(0无 1现金 2银行转账 3承兑汇票 4有赞代收 5支付宝 6微信 7国家列表)")
private String paymentMethod;
@Schema(description = "账户名称", example = "李四")
private String accountName;
@Schema(description = "银行账号", example = "1405")
private String bankAccount;
@Schema(description = "开户银行")
private String bankDeposit;
@Schema(description = "开户地区")
private String depositArea;
@Schema(description = "支行名称")
private String bankBranch;
@Schema(description = "公司税号")
private String companyTaxNumber;
@Schema(description = "企业名称", example = "李四")
private String enterpriseName;
@Schema(description = "单位地址")
private String workAddress;
@Schema(description = "合作方式(0买断 1联营)")
private String collaborationMethod;
@Schema(description = "结算方式(0:先货后款 1先款后货)")
private String settlementMethod;
@Schema(description = "账期")
private String accountPeriod;
@Schema(description = "压款方式(0无 1按金额 2按比例)")
private String underpaymentMethod;
@Schema(description = "申请压款比例")
private String applyForUnderpaymentRatio;
@Schema(description = "保证金方式(0无 1按金额 2按比例)")
private String marginMethod;
@Schema(description = "申请保证金比例")
private String applyForMarginRatio;
@Schema(description = "逾期利率(0按年化1按月化)")
private String overdueInterestRate;
@Schema(description = "申请逾期利率")
private String applyForOverdueRatio;
@Schema(description = "预留字段1")
private String reservedFields1;
@Schema(description = "预留字段2")
private String reservedFields2;
@Schema(description = "预留字段3")
private String reservedFields3;
@Schema(description = "预留字段4")
private String reservedFields4;
@Schema(description = "预留字段5")
private String reservedFields5;
@Schema(description = "预留字段6")
private String reservedFields6;
@Schema(description = "信用级别(0S 1A 2B)")
private String creditRating;
@Schema(description = "信用级别(0开启 1关闭)")
private String autoCreditRating;
@Schema(description = "应收款上限")
private Long accountsReceivableUpper;
@Schema(description = "订单量下限")
private Long orderQuantityDown;
@Schema(description = "订单量上限")
private Long orderQuantityUpper;
@Schema(description = "应收款项逾期限制")
private Long accountsReceivableOverdue;
@Schema(description = "完税证明超时限制")
private Long taxPaymentCertificate;
}

@ -0,0 +1,14 @@
package com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 基础业务信息表(客户,供应商,服务商主体)创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class SubjectBasicCreateReqVO extends SubjectBasicBaseVO {
}

@ -0,0 +1,263 @@
package com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* () Excel VO
*
* @author
*/
@Data
public class SubjectBasicExcelVO {
@ExcelProperty("编号")
private Long id;
@ExcelProperty("业务类型(0客户 1供应商 2服务商)")
private String businessType;
@ExcelProperty("分类(0一级 1二级 2三级)")
private String calssify;
@ExcelProperty("客户名称")
private String name;
@ExcelProperty("公司logo")
private String logo;
@ExcelProperty("企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)")
private String enterpriseNature;
@ExcelProperty("行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)")
private String industryClassify;
@ExcelProperty("客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)")
private String customerSource;
@ExcelProperty("客户星级(0一星 1二星 2三星 3四星 4五星)")
private String customerStarrating;
@ExcelProperty("业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)")
private String industrySchedule;
@ExcelProperty("归属人员")
private String belongingPeople;
@ExcelProperty("所在城市")
private String city;
@ExcelProperty("国家")
private String country;
@ExcelProperty("详细地址")
private String address;
@ExcelProperty("公司电话")
private String phone;
@ExcelProperty("公司传真")
private String companyFax;
@ExcelProperty("公司网址")
private String companyHttp;
@ExcelProperty("公司介绍")
private String companyProfile;
@ExcelProperty("客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)")
private String customerStatus;
@ExcelProperty("社会信息代码证(营业执照)")
private String socialInformationCodeCertificate;
@ExcelProperty("注册地址")
private String registerAddress;
@ExcelProperty("社会统一信息代码")
private String informationCode;
@ExcelProperty("经营时间开始")
private LocalDateTime operateStart;
@ExcelProperty("经营时间结束")
private LocalDateTime operateEnd;
@ExcelProperty("注册资金")
private String registerCapital;
@ExcelProperty("经营范围")
private String businessScope;
@ExcelProperty("实缴资金证明")
private String proofPaidCapital;
@ExcelProperty("资产证明")
private String assetCertificate;
@ExcelProperty("资产抵押证明")
private String assetCertificateMortgage;
@ExcelProperty("其他资质文件")
private String otherQualifications;
@ExcelProperty("合作时间开始")
private LocalDateTime collaborationStart;
@ExcelProperty("合作时间结束")
private LocalDateTime collaborationEnd;
@ExcelProperty("需求量(每月下限)")
private Long demandVolumeDown;
@ExcelProperty("需求量(每月上限)")
private Long demandVolumeUpper;
@ExcelProperty("资金额度")
private Long fundLimit;
@ExcelProperty("营业时间")
private String businessHours;
@ExcelProperty("营业时间开始")
private LocalDateTime businessStart;
@ExcelProperty("营业时间结束")
private LocalDateTime businessEnd;
@ExcelProperty("允许卸货时间开始")
private LocalDateTime allowableUnloadingStart;
@ExcelProperty("允许卸货时间结束")
private LocalDateTime allowableUnloadingEnd;
@ExcelProperty("卸货时长")
private String unloading;
@ExcelProperty("卸货效率")
private String unloadingEfficiency;
@ExcelProperty("允许装货时间开始")
private LocalDateTime allowableShipmentStart;
@ExcelProperty("允许装货时间结束")
private LocalDateTime allowableShipmentEnd;
@ExcelProperty("装货时长")
private String shipment;
@ExcelProperty("装货效果")
private String shipmentEffciency;
@ExcelProperty("付款方式(0无 1现金 2银行转账 3承兑汇票 4有赞代收 5支付宝 6微信 7国家列表)")
private String paymentMethod;
@ExcelProperty("账户名称")
private String accountName;
@ExcelProperty("银行账号")
private String bankAccount;
@ExcelProperty("开户银行")
private String bankDeposit;
@ExcelProperty("开户地区")
private String depositArea;
@ExcelProperty("支行名称")
private String bankBranch;
@ExcelProperty("公司税号")
private String companyTaxNumber;
@ExcelProperty("企业名称")
private String enterpriseName;
@ExcelProperty("单位地址")
private String workAddress;
@ExcelProperty("合作方式(0买断 1联营)")
private String collaborationMethod;
@ExcelProperty("结算方式(0:先货后款 1先款后货)")
private String settlementMethod;
@ExcelProperty("账期")
private String accountPeriod;
@ExcelProperty("压款方式(0无 1按金额 2按比例)")
private String underpaymentMethod;
@ExcelProperty("申请压款比例")
private String applyForUnderpaymentRatio;
@ExcelProperty("保证金方式(0无 1按金额 2按比例)")
private String marginMethod;
@ExcelProperty("申请保证金比例")
private String applyForMarginRatio;
@ExcelProperty("逾期利率(0按年化1按月化)")
private String overdueInterestRate;
@ExcelProperty("申请逾期利率")
private String applyForOverdueRatio;
@ExcelProperty("预留字段1")
private String reservedFields1;
@ExcelProperty("预留字段2")
private String reservedFields2;
@ExcelProperty("预留字段3")
private String reservedFields3;
@ExcelProperty("预留字段4")
private String reservedFields4;
@ExcelProperty("预留字段5")
private String reservedFields5;
@ExcelProperty("预留字段6")
private String reservedFields6;
@ExcelProperty("信用级别(0S 1A 2B)")
private String creditRating;
@ExcelProperty("信用级别(0开启 1关闭)")
private String autoCreditRating;
@ExcelProperty("应收款上限")
private Long accountsReceivableUpper;
@ExcelProperty("订单量下限")
private Long orderQuantityDown;
@ExcelProperty("订单量上限")
private Long orderQuantityUpper;
@ExcelProperty("应收款项逾期限制")
private Long accountsReceivableOverdue;
@ExcelProperty("完税证明超时限制")
private Long taxPaymentCertificate;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,248 @@
package com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 基础业务信息表(客户,供应商,服务商主体) Excel 导出 Request VO参数和 SubjectBasicPageReqVO 是一致的")
@Data
public class SubjectBasicExportReqVO {
@Schema(description = "业务类型(0客户 1供应商 2服务商)", example = "2")
private String businessType;
@Schema(description = "分类(0一级 1二级 2三级)")
private String calssify;
@Schema(description = "客户名称", example = "赵六")
private String name;
@Schema(description = "公司logo")
private String logo;
@Schema(description = "企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)")
private String enterpriseNature;
@Schema(description = "行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)")
private String industryClassify;
@Schema(description = "客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)")
private String customerSource;
@Schema(description = "客户星级(0一星 1二星 2三星 3四星 4五星)")
private String customerStarrating;
@Schema(description = "业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)")
private String industrySchedule;
@Schema(description = "归属人员")
private String belongingPeople;
@Schema(description = "所在城市")
private String city;
@Schema(description = "国家")
private String country;
@Schema(description = "详细地址")
private String address;
@Schema(description = "公司电话")
private String phone;
@Schema(description = "公司传真")
private String companyFax;
@Schema(description = "公司网址")
private String companyHttp;
@Schema(description = "公司介绍")
private String companyProfile;
@Schema(description = "客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)", example = "2")
private String customerStatus;
@Schema(description = "社会信息代码证(营业执照)")
private String socialInformationCodeCertificate;
@Schema(description = "注册地址")
private String registerAddress;
@Schema(description = "社会统一信息代码")
private String informationCode;
@Schema(description = "经营时间开始")
private LocalDateTime operateStart;
@Schema(description = "经营时间结束")
private LocalDateTime operateEnd;
@Schema(description = "注册资金")
private String registerCapital;
@Schema(description = "经营范围")
private String businessScope;
@Schema(description = "实缴资金证明")
private String proofPaidCapital;
@Schema(description = "资产证明")
private String assetCertificate;
@Schema(description = "资产抵押证明")
private String assetCertificateMortgage;
@Schema(description = "其他资质文件")
private String otherQualifications;
@Schema(description = "合作时间开始")
private LocalDateTime collaborationStart;
@Schema(description = "合作时间结束")
private LocalDateTime collaborationEnd;
@Schema(description = "需求量(每月下限)")
private Long demandVolumeDown;
@Schema(description = "需求量(每月上限)")
private Long demandVolumeUpper;
@Schema(description = "资金额度")
private Long fundLimit;
@Schema(description = "营业时间")
private String businessHours;
@Schema(description = "营业时间开始")
private LocalDateTime businessStart;
@Schema(description = "营业时间结束")
private LocalDateTime businessEnd;
@Schema(description = "允许卸货时间开始")
private LocalDateTime allowableUnloadingStart;
@Schema(description = "允许卸货时间结束")
private LocalDateTime allowableUnloadingEnd;
@Schema(description = "卸货时长")
private String unloading;
@Schema(description = "卸货效率")
private String unloadingEfficiency;
@Schema(description = "允许装货时间开始")
private LocalDateTime allowableShipmentStart;
@Schema(description = "允许装货时间结束")
private LocalDateTime allowableShipmentEnd;
@Schema(description = "装货时长")
private String shipment;
@Schema(description = "装货效果")
private String shipmentEffciency;
@Schema(description = "付款方式(0无 1现金 2银行转账 3承兑汇票 4有赞代收 5支付宝 6微信 7国家列表)")
private String paymentMethod;
@Schema(description = "账户名称", example = "李四")
private String accountName;
@Schema(description = "银行账号", example = "1405")
private String bankAccount;
@Schema(description = "开户银行")
private String bankDeposit;
@Schema(description = "开户地区")
private String depositArea;
@Schema(description = "支行名称")
private String bankBranch;
@Schema(description = "公司税号")
private String companyTaxNumber;
@Schema(description = "企业名称", example = "李四")
private String enterpriseName;
@Schema(description = "单位地址")
private String workAddress;
@Schema(description = "合作方式(0买断 1联营)")
private String collaborationMethod;
@Schema(description = "结算方式(0:先货后款 1先款后货)")
private String settlementMethod;
@Schema(description = "账期")
private String accountPeriod;
@Schema(description = "压款方式(0无 1按金额 2按比例)")
private String underpaymentMethod;
@Schema(description = "申请压款比例")
private String applyForUnderpaymentRatio;
@Schema(description = "保证金方式(0无 1按金额 2按比例)")
private String marginMethod;
@Schema(description = "申请保证金比例")
private String applyForMarginRatio;
@Schema(description = "逾期利率(0按年化1按月化)")
private String overdueInterestRate;
@Schema(description = "申请逾期利率")
private String applyForOverdueRatio;
@Schema(description = "预留字段1")
private String reservedFields1;
@Schema(description = "预留字段2")
private String reservedFields2;
@Schema(description = "预留字段3")
private String reservedFields3;
@Schema(description = "预留字段4")
private String reservedFields4;
@Schema(description = "预留字段5")
private String reservedFields5;
@Schema(description = "预留字段6")
private String reservedFields6;
@Schema(description = "信用级别(0S 1A 2B)")
private String creditRating;
@Schema(description = "信用级别(0开启 1关闭)")
private String autoCreditRating;
@Schema(description = "应收款上限")
private Long accountsReceivableUpper;
@Schema(description = "订单量下限")
private Long orderQuantityDown;
@Schema(description = "订单量上限")
private Long orderQuantityUpper;
@Schema(description = "应收款项逾期限制")
private Long accountsReceivableOverdue;
@Schema(description = "完税证明超时限制")
private Long taxPaymentCertificate;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,250 @@
package com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yunxi.scm.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 基础业务信息表(客户,供应商,服务商主体)分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class SubjectBasicPageReqVO extends PageParam {
@Schema(description = "业务类型(0客户 1供应商 2服务商)", example = "2")
private String businessType;
@Schema(description = "分类(0一级 1二级 2三级)")
private String calssify;
@Schema(description = "客户名称", example = "赵六")
private String name;
@Schema(description = "公司logo")
private String logo;
@Schema(description = "企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)")
private String enterpriseNature;
@Schema(description = "行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)")
private String industryClassify;
@Schema(description = "客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)")
private String customerSource;
@Schema(description = "客户星级(0一星 1二星 2三星 3四星 4五星)")
private String customerStarrating;
@Schema(description = "业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)")
private String industrySchedule;
@Schema(description = "归属人员")
private String belongingPeople;
@Schema(description = "所在城市")
private String city;
@Schema(description = "国家")
private String country;
@Schema(description = "详细地址")
private String address;
@Schema(description = "公司电话")
private String phone;
@Schema(description = "公司传真")
private String companyFax;
@Schema(description = "公司网址")
private String companyHttp;
@Schema(description = "公司介绍")
private String companyProfile;
@Schema(description = "客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)", example = "2")
private String customerStatus;
@Schema(description = "社会信息代码证(营业执照)")
private String socialInformationCodeCertificate;
@Schema(description = "注册地址")
private String registerAddress;
@Schema(description = "社会统一信息代码")
private String informationCode;
@Schema(description = "经营时间开始")
private LocalDateTime operateStart;
@Schema(description = "经营时间结束")
private LocalDateTime operateEnd;
@Schema(description = "注册资金")
private String registerCapital;
@Schema(description = "经营范围")
private String businessScope;
@Schema(description = "实缴资金证明")
private String proofPaidCapital;
@Schema(description = "资产证明")
private String assetCertificate;
@Schema(description = "资产抵押证明")
private String assetCertificateMortgage;
@Schema(description = "其他资质文件")
private String otherQualifications;
@Schema(description = "合作时间开始")
private LocalDateTime collaborationStart;
@Schema(description = "合作时间结束")
private LocalDateTime collaborationEnd;
@Schema(description = "需求量(每月下限)")
private Long demandVolumeDown;
@Schema(description = "需求量(每月上限)")
private Long demandVolumeUpper;
@Schema(description = "资金额度")
private Long fundLimit;
@Schema(description = "营业时间")
private String businessHours;
@Schema(description = "营业时间开始")
private LocalDateTime businessStart;
@Schema(description = "营业时间结束")
private LocalDateTime businessEnd;
@Schema(description = "允许卸货时间开始")
private LocalDateTime allowableUnloadingStart;
@Schema(description = "允许卸货时间结束")
private LocalDateTime allowableUnloadingEnd;
@Schema(description = "卸货时长")
private String unloading;
@Schema(description = "卸货效率")
private String unloadingEfficiency;
@Schema(description = "允许装货时间开始")
private LocalDateTime allowableShipmentStart;
@Schema(description = "允许装货时间结束")
private LocalDateTime allowableShipmentEnd;
@Schema(description = "装货时长")
private String shipment;
@Schema(description = "装货效果")
private String shipmentEffciency;
@Schema(description = "付款方式(0无 1现金 2银行转账 3承兑汇票 4有赞代收 5支付宝 6微信 7国家列表)")
private String paymentMethod;
@Schema(description = "账户名称", example = "李四")
private String accountName;
@Schema(description = "银行账号", example = "1405")
private String bankAccount;
@Schema(description = "开户银行")
private String bankDeposit;
@Schema(description = "开户地区")
private String depositArea;
@Schema(description = "支行名称")
private String bankBranch;
@Schema(description = "公司税号")
private String companyTaxNumber;
@Schema(description = "企业名称", example = "李四")
private String enterpriseName;
@Schema(description = "单位地址")
private String workAddress;
@Schema(description = "合作方式(0买断 1联营)")
private String collaborationMethod;
@Schema(description = "结算方式(0:先货后款 1先款后货)")
private String settlementMethod;
@Schema(description = "账期")
private String accountPeriod;
@Schema(description = "压款方式(0无 1按金额 2按比例)")
private String underpaymentMethod;
@Schema(description = "申请压款比例")
private String applyForUnderpaymentRatio;
@Schema(description = "保证金方式(0无 1按金额 2按比例)")
private String marginMethod;
@Schema(description = "申请保证金比例")
private String applyForMarginRatio;
@Schema(description = "逾期利率(0按年化1按月化)")
private String overdueInterestRate;
@Schema(description = "申请逾期利率")
private String applyForOverdueRatio;
@Schema(description = "预留字段1")
private String reservedFields1;
@Schema(description = "预留字段2")
private String reservedFields2;
@Schema(description = "预留字段3")
private String reservedFields3;
@Schema(description = "预留字段4")
private String reservedFields4;
@Schema(description = "预留字段5")
private String reservedFields5;
@Schema(description = "预留字段6")
private String reservedFields6;
@Schema(description = "信用级别(0S 1A 2B)")
private String creditRating;
@Schema(description = "信用级别(0开启 1关闭)")
private String autoCreditRating;
@Schema(description = "应收款上限")
private Long accountsReceivableUpper;
@Schema(description = "订单量下限")
private Long orderQuantityDown;
@Schema(description = "订单量上限")
private Long orderQuantityUpper;
@Schema(description = "应收款项逾期限制")
private Long accountsReceivableOverdue;
@Schema(description = "完税证明超时限制")
private Long taxPaymentCertificate;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,19 @@
package com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 基础业务信息表(客户,供应商,服务商主体) Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class SubjectBasicRespVO extends SubjectBasicBaseVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11809")
private Long id;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
}

@ -0,0 +1,18 @@
package com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 基础业务信息表(客户,供应商,服务商主体)更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class SubjectBasicUpdateReqVO extends SubjectBasicBaseVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11809")
@NotNull(message = "编号不能为空")
private Long id;
}

@ -0,0 +1,34 @@
package com.yunxi.scm.module.xxjj.convert.subjectbasic;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo.*;
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectbasic.SubjectBasicDO;
/**
* () Convert
*
* @author
*/
@Mapper
public interface SubjectBasicConvert {
SubjectBasicConvert INSTANCE = Mappers.getMapper(SubjectBasicConvert.class);
SubjectBasicDO convert(SubjectBasicCreateReqVO bean);
SubjectBasicDO convert(SubjectBasicUpdateReqVO bean);
SubjectBasicRespVO convert(SubjectBasicDO bean);
List<SubjectBasicRespVO> convertList(List<SubjectBasicDO> list);
PageResult<SubjectBasicRespVO> convertPage(PageResult<SubjectBasicDO> page);
List<SubjectBasicExcelVO> convertList02(List<SubjectBasicDO> list);
}

@ -0,0 +1,345 @@
package com.yunxi.scm.module.xxjj.dal.dataobject.subjectbasic;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
/**
* () DO
*
* @author
*/
@TableName("xxjj_subject_basic")
@KeySequence("xxjj_subject_basic_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SubjectBasicDO extends BaseDO {
/**
*
*/
@TableId
private Long id;
/**
* (0 1 2)
*/
private String businessType;
/**
* (0 1 2)
*/
private String calssify;
/**
*
*/
private String name;
/**
* logo
*/
private String logo;
/**
* (0 1 2 3 4 5)
*/
private String enterpriseNature;
/**
* (0 1 2 3 4 5 6 7 8广)
*/
private String industryClassify;
/**
* (0 1 2 3 4 5 6广 7 8)
*/
private String customerSource;
/**
* (0 1 2 3 4)
*/
private String customerStarrating;
/**
* (0 1 2 3 4 5 6 7 8)
*/
private String industrySchedule;
/**
*
*/
private String belongingPeople;
/**
*
*/
private String city;
/**
*
*/
private String country;
/**
*
*/
private String address;
/**
*
*/
private String phone;
/**
*
*/
private String companyFax;
/**
*
*/
private String companyHttp;
/**
*
*/
private String companyProfile;
/**
* (0 1 2 3 4 5 6)
*/
private String customerStatus;
/**
*
*/
private String socialInformationCodeCertificate;
/**
*
*/
private String registerAddress;
/**
*
*/
private String informationCode;
/**
*
*/
private LocalDateTime operateStart;
/**
*
*/
private LocalDateTime operateEnd;
/**
*
*/
private String registerCapital;
/**
*
*/
private String businessScope;
/**
*
*/
private String proofPaidCapital;
/**
*
*/
private String assetCertificate;
/**
*
*/
private String assetCertificateMortgage;
/**
*
*/
private String otherQualifications;
/**
*
*/
private LocalDateTime collaborationStart;
/**
*
*/
private LocalDateTime collaborationEnd;
/**
*
*/
private Long demandVolumeDown;
/**
*
*/
private Long demandVolumeUpper;
/**
*
*/
private Long fundLimit;
/**
*
*/
private String businessHours;
/**
*
*/
private LocalDateTime businessStart;
/**
*
*/
private LocalDateTime businessEnd;
/**
*
*/
private LocalDateTime allowableUnloadingStart;
/**
*
*/
private LocalDateTime allowableUnloadingEnd;
/**
*
*/
private String unloading;
/**
*
*/
private String unloadingEfficiency;
/**
*
*/
private LocalDateTime allowableShipmentStart;
/**
*
*/
private LocalDateTime allowableShipmentEnd;
/**
*
*/
private String shipment;
/**
*
*/
private String shipmentEffciency;
/**
* (0 1 2 3 4 5 6 7)
*/
private String paymentMethod;
/**
*
*/
private String accountName;
/**
*
*/
private String bankAccount;
/**
*
*/
private String bankDeposit;
/**
*
*/
private String depositArea;
/**
*
*/
private String bankBranch;
/**
*
*/
private String companyTaxNumber;
/**
*
*/
private String enterpriseName;
/**
*
*/
private String workAddress;
/**
* (0 1)
*/
private String collaborationMethod;
/**
* (0: 1)
*/
private String settlementMethod;
/**
*
*/
private String accountPeriod;
/**
* (0 1 2)
*/
private String underpaymentMethod;
/**
*
*/
private String applyForUnderpaymentRatio;
/**
* (0 1 2)
*/
private String marginMethod;
/**
*
*/
private String applyForMarginRatio;
/**
* (01)
*/
private String overdueInterestRate;
/**
*
*/
private String applyForOverdueRatio;
/**
* 1
*/
private String reservedFields1;
/**
* 2
*/
private String reservedFields2;
/**
* 3
*/
private String reservedFields3;
/**
* 4
*/
private String reservedFields4;
/**
* 5
*/
private String reservedFields5;
/**
* 6
*/
private String reservedFields6;
/**
* (0S 1A 2B)
*/
private String creditRating;
/**
* (0 1)
*/
private String autoCreditRating;
/**
*
*/
private Long accountsReceivableUpper;
/**
*
*/
private Long orderQuantityDown;
/**
*
*/
private Long orderQuantityUpper;
/**
*
*/
private Long accountsReceivableOverdue;
/**
*
*/
private Long taxPaymentCertificate;
}

@ -0,0 +1,184 @@
package com.yunxi.scm.module.xxjj.dal.mysql.subjectbasic;
import java.util.*;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectbasic.SubjectBasicDO;
import org.apache.ibatis.annotations.Mapper;
import com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo.*;
/**
* () Mapper
*
* @author
*/
@Mapper
public interface SubjectBasicMapper extends BaseMapperX<SubjectBasicDO> {
default PageResult<SubjectBasicDO> selectPage(SubjectBasicPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<SubjectBasicDO>()
.eqIfPresent(SubjectBasicDO::getBusinessType, reqVO.getBusinessType())
.eqIfPresent(SubjectBasicDO::getCalssify, reqVO.getCalssify())
.likeIfPresent(SubjectBasicDO::getName, reqVO.getName())
.eqIfPresent(SubjectBasicDO::getLogo, reqVO.getLogo())
.eqIfPresent(SubjectBasicDO::getEnterpriseNature, reqVO.getEnterpriseNature())
.eqIfPresent(SubjectBasicDO::getIndustryClassify, reqVO.getIndustryClassify())
.eqIfPresent(SubjectBasicDO::getCustomerSource, reqVO.getCustomerSource())
.eqIfPresent(SubjectBasicDO::getCustomerStarrating, reqVO.getCustomerStarrating())
.eqIfPresent(SubjectBasicDO::getIndustrySchedule, reqVO.getIndustrySchedule())
.eqIfPresent(SubjectBasicDO::getBelongingPeople, reqVO.getBelongingPeople())
.eqIfPresent(SubjectBasicDO::getCity, reqVO.getCity())
.eqIfPresent(SubjectBasicDO::getCountry, reqVO.getCountry())
.eqIfPresent(SubjectBasicDO::getAddress, reqVO.getAddress())
.eqIfPresent(SubjectBasicDO::getPhone, reqVO.getPhone())
.eqIfPresent(SubjectBasicDO::getCompanyFax, reqVO.getCompanyFax())
.eqIfPresent(SubjectBasicDO::getCompanyHttp, reqVO.getCompanyHttp())
.eqIfPresent(SubjectBasicDO::getCompanyProfile, reqVO.getCompanyProfile())
.eqIfPresent(SubjectBasicDO::getCustomerStatus, reqVO.getCustomerStatus())
.eqIfPresent(SubjectBasicDO::getSocialInformationCodeCertificate, reqVO.getSocialInformationCodeCertificate())
.eqIfPresent(SubjectBasicDO::getRegisterAddress, reqVO.getRegisterAddress())
.eqIfPresent(SubjectBasicDO::getInformationCode, reqVO.getInformationCode())
.eqIfPresent(SubjectBasicDO::getOperateStart, reqVO.getOperateStart())
.eqIfPresent(SubjectBasicDO::getOperateEnd, reqVO.getOperateEnd())
.eqIfPresent(SubjectBasicDO::getRegisterCapital, reqVO.getRegisterCapital())
.eqIfPresent(SubjectBasicDO::getBusinessScope, reqVO.getBusinessScope())
.eqIfPresent(SubjectBasicDO::getProofPaidCapital, reqVO.getProofPaidCapital())
.eqIfPresent(SubjectBasicDO::getAssetCertificate, reqVO.getAssetCertificate())
.eqIfPresent(SubjectBasicDO::getAssetCertificateMortgage, reqVO.getAssetCertificateMortgage())
.eqIfPresent(SubjectBasicDO::getOtherQualifications, reqVO.getOtherQualifications())
.eqIfPresent(SubjectBasicDO::getCollaborationStart, reqVO.getCollaborationStart())
.eqIfPresent(SubjectBasicDO::getCollaborationEnd, reqVO.getCollaborationEnd())
.eqIfPresent(SubjectBasicDO::getDemandVolumeDown, reqVO.getDemandVolumeDown())
.eqIfPresent(SubjectBasicDO::getDemandVolumeUpper, reqVO.getDemandVolumeUpper())
.eqIfPresent(SubjectBasicDO::getFundLimit, reqVO.getFundLimit())
.eqIfPresent(SubjectBasicDO::getBusinessHours, reqVO.getBusinessHours())
.eqIfPresent(SubjectBasicDO::getBusinessStart, reqVO.getBusinessStart())
.eqIfPresent(SubjectBasicDO::getBusinessEnd, reqVO.getBusinessEnd())
.eqIfPresent(SubjectBasicDO::getAllowableUnloadingStart, reqVO.getAllowableUnloadingStart())
.eqIfPresent(SubjectBasicDO::getAllowableUnloadingEnd, reqVO.getAllowableUnloadingEnd())
.eqIfPresent(SubjectBasicDO::getUnloading, reqVO.getUnloading())
.eqIfPresent(SubjectBasicDO::getUnloadingEfficiency, reqVO.getUnloadingEfficiency())
.eqIfPresent(SubjectBasicDO::getAllowableShipmentStart, reqVO.getAllowableShipmentStart())
.eqIfPresent(SubjectBasicDO::getAllowableShipmentEnd, reqVO.getAllowableShipmentEnd())
.eqIfPresent(SubjectBasicDO::getShipment, reqVO.getShipment())
.eqIfPresent(SubjectBasicDO::getShipmentEffciency, reqVO.getShipmentEffciency())
.eqIfPresent(SubjectBasicDO::getPaymentMethod, reqVO.getPaymentMethod())
.likeIfPresent(SubjectBasicDO::getAccountName, reqVO.getAccountName())
.eqIfPresent(SubjectBasicDO::getBankAccount, reqVO.getBankAccount())
.eqIfPresent(SubjectBasicDO::getBankDeposit, reqVO.getBankDeposit())
.eqIfPresent(SubjectBasicDO::getDepositArea, reqVO.getDepositArea())
.eqIfPresent(SubjectBasicDO::getBankBranch, reqVO.getBankBranch())
.eqIfPresent(SubjectBasicDO::getCompanyTaxNumber, reqVO.getCompanyTaxNumber())
.likeIfPresent(SubjectBasicDO::getEnterpriseName, reqVO.getEnterpriseName())
.eqIfPresent(SubjectBasicDO::getWorkAddress, reqVO.getWorkAddress())
.eqIfPresent(SubjectBasicDO::getCollaborationMethod, reqVO.getCollaborationMethod())
.eqIfPresent(SubjectBasicDO::getSettlementMethod, reqVO.getSettlementMethod())
.eqIfPresent(SubjectBasicDO::getAccountPeriod, reqVO.getAccountPeriod())
.eqIfPresent(SubjectBasicDO::getUnderpaymentMethod, reqVO.getUnderpaymentMethod())
.eqIfPresent(SubjectBasicDO::getApplyForUnderpaymentRatio, reqVO.getApplyForUnderpaymentRatio())
.eqIfPresent(SubjectBasicDO::getMarginMethod, reqVO.getMarginMethod())
.eqIfPresent(SubjectBasicDO::getApplyForMarginRatio, reqVO.getApplyForMarginRatio())
.eqIfPresent(SubjectBasicDO::getOverdueInterestRate, reqVO.getOverdueInterestRate())
.eqIfPresent(SubjectBasicDO::getApplyForOverdueRatio, reqVO.getApplyForOverdueRatio())
.eqIfPresent(SubjectBasicDO::getReservedFields1, reqVO.getReservedFields1())
.eqIfPresent(SubjectBasicDO::getReservedFields2, reqVO.getReservedFields2())
.eqIfPresent(SubjectBasicDO::getReservedFields3, reqVO.getReservedFields3())
.eqIfPresent(SubjectBasicDO::getReservedFields4, reqVO.getReservedFields4())
.eqIfPresent(SubjectBasicDO::getReservedFields5, reqVO.getReservedFields5())
.eqIfPresent(SubjectBasicDO::getReservedFields6, reqVO.getReservedFields6())
.eqIfPresent(SubjectBasicDO::getCreditRating, reqVO.getCreditRating())
.eqIfPresent(SubjectBasicDO::getAutoCreditRating, reqVO.getAutoCreditRating())
.eqIfPresent(SubjectBasicDO::getAccountsReceivableUpper, reqVO.getAccountsReceivableUpper())
.eqIfPresent(SubjectBasicDO::getOrderQuantityDown, reqVO.getOrderQuantityDown())
.eqIfPresent(SubjectBasicDO::getOrderQuantityUpper, reqVO.getOrderQuantityUpper())
.eqIfPresent(SubjectBasicDO::getAccountsReceivableOverdue, reqVO.getAccountsReceivableOverdue())
.eqIfPresent(SubjectBasicDO::getTaxPaymentCertificate, reqVO.getTaxPaymentCertificate())
.betweenIfPresent(SubjectBasicDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(SubjectBasicDO::getId));
}
default List<SubjectBasicDO> selectList(SubjectBasicExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<SubjectBasicDO>()
.eqIfPresent(SubjectBasicDO::getBusinessType, reqVO.getBusinessType())
.eqIfPresent(SubjectBasicDO::getCalssify, reqVO.getCalssify())
.likeIfPresent(SubjectBasicDO::getName, reqVO.getName())
.eqIfPresent(SubjectBasicDO::getLogo, reqVO.getLogo())
.eqIfPresent(SubjectBasicDO::getEnterpriseNature, reqVO.getEnterpriseNature())
.eqIfPresent(SubjectBasicDO::getIndustryClassify, reqVO.getIndustryClassify())
.eqIfPresent(SubjectBasicDO::getCustomerSource, reqVO.getCustomerSource())
.eqIfPresent(SubjectBasicDO::getCustomerStarrating, reqVO.getCustomerStarrating())
.eqIfPresent(SubjectBasicDO::getIndustrySchedule, reqVO.getIndustrySchedule())
.eqIfPresent(SubjectBasicDO::getBelongingPeople, reqVO.getBelongingPeople())
.eqIfPresent(SubjectBasicDO::getCity, reqVO.getCity())
.eqIfPresent(SubjectBasicDO::getCountry, reqVO.getCountry())
.eqIfPresent(SubjectBasicDO::getAddress, reqVO.getAddress())
.eqIfPresent(SubjectBasicDO::getPhone, reqVO.getPhone())
.eqIfPresent(SubjectBasicDO::getCompanyFax, reqVO.getCompanyFax())
.eqIfPresent(SubjectBasicDO::getCompanyHttp, reqVO.getCompanyHttp())
.eqIfPresent(SubjectBasicDO::getCompanyProfile, reqVO.getCompanyProfile())
.eqIfPresent(SubjectBasicDO::getCustomerStatus, reqVO.getCustomerStatus())
.eqIfPresent(SubjectBasicDO::getSocialInformationCodeCertificate, reqVO.getSocialInformationCodeCertificate())
.eqIfPresent(SubjectBasicDO::getRegisterAddress, reqVO.getRegisterAddress())
.eqIfPresent(SubjectBasicDO::getInformationCode, reqVO.getInformationCode())
.eqIfPresent(SubjectBasicDO::getOperateStart, reqVO.getOperateStart())
.eqIfPresent(SubjectBasicDO::getOperateEnd, reqVO.getOperateEnd())
.eqIfPresent(SubjectBasicDO::getRegisterCapital, reqVO.getRegisterCapital())
.eqIfPresent(SubjectBasicDO::getBusinessScope, reqVO.getBusinessScope())
.eqIfPresent(SubjectBasicDO::getProofPaidCapital, reqVO.getProofPaidCapital())
.eqIfPresent(SubjectBasicDO::getAssetCertificate, reqVO.getAssetCertificate())
.eqIfPresent(SubjectBasicDO::getAssetCertificateMortgage, reqVO.getAssetCertificateMortgage())
.eqIfPresent(SubjectBasicDO::getOtherQualifications, reqVO.getOtherQualifications())
.eqIfPresent(SubjectBasicDO::getCollaborationStart, reqVO.getCollaborationStart())
.eqIfPresent(SubjectBasicDO::getCollaborationEnd, reqVO.getCollaborationEnd())
.eqIfPresent(SubjectBasicDO::getDemandVolumeDown, reqVO.getDemandVolumeDown())
.eqIfPresent(SubjectBasicDO::getDemandVolumeUpper, reqVO.getDemandVolumeUpper())
.eqIfPresent(SubjectBasicDO::getFundLimit, reqVO.getFundLimit())
.eqIfPresent(SubjectBasicDO::getBusinessHours, reqVO.getBusinessHours())
.eqIfPresent(SubjectBasicDO::getBusinessStart, reqVO.getBusinessStart())
.eqIfPresent(SubjectBasicDO::getBusinessEnd, reqVO.getBusinessEnd())
.eqIfPresent(SubjectBasicDO::getAllowableUnloadingStart, reqVO.getAllowableUnloadingStart())
.eqIfPresent(SubjectBasicDO::getAllowableUnloadingEnd, reqVO.getAllowableUnloadingEnd())
.eqIfPresent(SubjectBasicDO::getUnloading, reqVO.getUnloading())
.eqIfPresent(SubjectBasicDO::getUnloadingEfficiency, reqVO.getUnloadingEfficiency())
.eqIfPresent(SubjectBasicDO::getAllowableShipmentStart, reqVO.getAllowableShipmentStart())
.eqIfPresent(SubjectBasicDO::getAllowableShipmentEnd, reqVO.getAllowableShipmentEnd())
.eqIfPresent(SubjectBasicDO::getShipment, reqVO.getShipment())
.eqIfPresent(SubjectBasicDO::getShipmentEffciency, reqVO.getShipmentEffciency())
.eqIfPresent(SubjectBasicDO::getPaymentMethod, reqVO.getPaymentMethod())
.likeIfPresent(SubjectBasicDO::getAccountName, reqVO.getAccountName())
.eqIfPresent(SubjectBasicDO::getBankAccount, reqVO.getBankAccount())
.eqIfPresent(SubjectBasicDO::getBankDeposit, reqVO.getBankDeposit())
.eqIfPresent(SubjectBasicDO::getDepositArea, reqVO.getDepositArea())
.eqIfPresent(SubjectBasicDO::getBankBranch, reqVO.getBankBranch())
.eqIfPresent(SubjectBasicDO::getCompanyTaxNumber, reqVO.getCompanyTaxNumber())
.likeIfPresent(SubjectBasicDO::getEnterpriseName, reqVO.getEnterpriseName())
.eqIfPresent(SubjectBasicDO::getWorkAddress, reqVO.getWorkAddress())
.eqIfPresent(SubjectBasicDO::getCollaborationMethod, reqVO.getCollaborationMethod())
.eqIfPresent(SubjectBasicDO::getSettlementMethod, reqVO.getSettlementMethod())
.eqIfPresent(SubjectBasicDO::getAccountPeriod, reqVO.getAccountPeriod())
.eqIfPresent(SubjectBasicDO::getUnderpaymentMethod, reqVO.getUnderpaymentMethod())
.eqIfPresent(SubjectBasicDO::getApplyForUnderpaymentRatio, reqVO.getApplyForUnderpaymentRatio())
.eqIfPresent(SubjectBasicDO::getMarginMethod, reqVO.getMarginMethod())
.eqIfPresent(SubjectBasicDO::getApplyForMarginRatio, reqVO.getApplyForMarginRatio())
.eqIfPresent(SubjectBasicDO::getOverdueInterestRate, reqVO.getOverdueInterestRate())
.eqIfPresent(SubjectBasicDO::getApplyForOverdueRatio, reqVO.getApplyForOverdueRatio())
.eqIfPresent(SubjectBasicDO::getReservedFields1, reqVO.getReservedFields1())
.eqIfPresent(SubjectBasicDO::getReservedFields2, reqVO.getReservedFields2())
.eqIfPresent(SubjectBasicDO::getReservedFields3, reqVO.getReservedFields3())
.eqIfPresent(SubjectBasicDO::getReservedFields4, reqVO.getReservedFields4())
.eqIfPresent(SubjectBasicDO::getReservedFields5, reqVO.getReservedFields5())
.eqIfPresent(SubjectBasicDO::getReservedFields6, reqVO.getReservedFields6())
.eqIfPresent(SubjectBasicDO::getCreditRating, reqVO.getCreditRating())
.eqIfPresent(SubjectBasicDO::getAutoCreditRating, reqVO.getAutoCreditRating())
.eqIfPresent(SubjectBasicDO::getAccountsReceivableUpper, reqVO.getAccountsReceivableUpper())
.eqIfPresent(SubjectBasicDO::getOrderQuantityDown, reqVO.getOrderQuantityDown())
.eqIfPresent(SubjectBasicDO::getOrderQuantityUpper, reqVO.getOrderQuantityUpper())
.eqIfPresent(SubjectBasicDO::getAccountsReceivableOverdue, reqVO.getAccountsReceivableOverdue())
.eqIfPresent(SubjectBasicDO::getTaxPaymentCertificate, reqVO.getTaxPaymentCertificate())
.betweenIfPresent(SubjectBasicDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(SubjectBasicDO::getId));
}
}

@ -67,4 +67,6 @@ public interface ErrorCodeConstants {
ErrorCode ENTERPRISE_NOT_EXISTS = new ErrorCode(1002004015, "企业信息不存在"); ErrorCode ENTERPRISE_NOT_EXISTS = new ErrorCode(1002004015, "企业信息不存在");
// ========== 企业合约 TODO 补充编号 ========== // ========== 企业合约 TODO 补充编号 ==========
ErrorCode ENTERPRISE_CONTRACT_NOT_EXISTS = new ErrorCode(1002004016, "企业合约不存在"); ErrorCode ENTERPRISE_CONTRACT_NOT_EXISTS = new ErrorCode(1002004016, "企业合约不存在");
ErrorCode SUBJECT_BASIC_NOT_EXISTS = new ErrorCode(1002004017, "基础业务信息表(客户,供应商,服务商主体)不存在");
} }

@ -0,0 +1,70 @@
package com.yunxi.scm.module.xxjj.service.subjectbasic;
import java.util.*;
import javax.validation.*;
import com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo.*;
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectbasic.SubjectBasicDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
/**
* () Service
*
* @author
*/
public interface SubjectBasicService {
/**
* ()
*
* @param createReqVO
* @return
*/
Long createSubjectBasic(@Valid SubjectBasicCreateReqVO createReqVO);
/**
* ()
*
* @param updateReqVO
*/
void updateSubjectBasic(@Valid SubjectBasicUpdateReqVO updateReqVO);
/**
* ()
*
* @param id
*/
void deleteSubjectBasic(Long id);
/**
* ()
*
* @param id
* @return ()
*/
SubjectBasicDO getSubjectBasic(Long id);
/**
* ()
*
* @param ids
* @return ()
*/
List<SubjectBasicDO> getSubjectBasicList(Collection<Long> ids);
/**
* ()
*
* @param pageReqVO
* @return ()
*/
PageResult<SubjectBasicDO> getSubjectBasicPage(SubjectBasicPageReqVO pageReqVO);
/**
* (), Excel
*
* @param exportReqVO
* @return ()
*/
List<SubjectBasicDO> getSubjectBasicList(SubjectBasicExportReqVO exportReqVO);
}

@ -0,0 +1,82 @@
package com.yunxi.scm.module.xxjj.service.subjectbasic;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo.*;
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectbasic.SubjectBasicDO;
import com.yunxi.scm.framework.common.pojo.PageResult;
import com.yunxi.scm.module.xxjj.convert.subjectbasic.SubjectBasicConvert;
import com.yunxi.scm.module.xxjj.dal.mysql.subjectbasic.SubjectBasicMapper;
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
/**
* () Service
*
* @author
*/
@Service
@Validated
public class SubjectBasicServiceImpl implements SubjectBasicService {
@Resource
private SubjectBasicMapper subjectBasicMapper;
@Override
public Long createSubjectBasic(SubjectBasicCreateReqVO createReqVO) {
// 插入
SubjectBasicDO subjectBasic = SubjectBasicConvert.INSTANCE.convert(createReqVO);
subjectBasicMapper.insert(subjectBasic);
// 返回
return subjectBasic.getId();
}
@Override
public void updateSubjectBasic(SubjectBasicUpdateReqVO updateReqVO) {
// 校验存在
validateSubjectBasicExists(updateReqVO.getId());
// 更新
SubjectBasicDO updateObj = SubjectBasicConvert.INSTANCE.convert(updateReqVO);
subjectBasicMapper.updateById(updateObj);
}
@Override
public void deleteSubjectBasic(Long id) {
// 校验存在
validateSubjectBasicExists(id);
// 删除
subjectBasicMapper.deleteById(id);
}
private void validateSubjectBasicExists(Long id) {
if (subjectBasicMapper.selectById(id) == null) {
throw exception(SUBJECT_BASIC_NOT_EXISTS);
}
}
@Override
public SubjectBasicDO getSubjectBasic(Long id) {
return subjectBasicMapper.selectById(id);
}
@Override
public List<SubjectBasicDO> getSubjectBasicList(Collection<Long> ids) {
return subjectBasicMapper.selectBatchIds(ids);
}
@Override
public PageResult<SubjectBasicDO> getSubjectBasicPage(SubjectBasicPageReqVO pageReqVO) {
return subjectBasicMapper.selectPage(pageReqVO);
}
@Override
public List<SubjectBasicDO> getSubjectBasicList(SubjectBasicExportReqVO exportReqVO) {
return subjectBasicMapper.selectList(exportReqVO);
}
}

@ -8,5 +8,4 @@
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/ 文档可见https://www.iocoder.cn/MyBatis/x-plugins/
--> -->
</mapper> </mapper>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yunxi.scm.module.system.dal.mysql.businesswarehouse.BusinessWarehouseMapper"> <mapper namespace="com.yunxi.scm.module.xxjj.dal.mysql.subjectbasic.SubjectBasicMapper">
<!-- <!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。

@ -0,0 +1,759 @@
package com.yunxi.scm.module.xxjj.service.subjectbasic;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.mock.mockito.MockBean;
import javax.annotation.Resource;
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
import com.yunxi.scm.module.xxjj.controller.admin.subjectbasic.vo.*;
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectbasic.SubjectBasicDO;
import com.yunxi.scm.module.xxjj.dal.mysql.subjectbasic.SubjectBasicMapper;
import com.yunxi.scm.framework.common.pojo.PageResult;
import javax.annotation.Resource;
import org.springframework.context.annotation.Import;
import java.util.*;
import java.time.LocalDateTime;
import static cn.hutool.core.util.RandomUtil.*;
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
/**
* {@link SubjectBasicServiceImpl}
*
* @author
*/
@Import(SubjectBasicServiceImpl.class)
public class SubjectBasicServiceImplTest extends BaseDbUnitTest {
@Resource
private SubjectBasicServiceImpl subjectBasicService;
@Resource
private SubjectBasicMapper subjectBasicMapper;
@Test
public void testCreateSubjectBasic_success() {
// 准备参数
SubjectBasicCreateReqVO reqVO = randomPojo(SubjectBasicCreateReqVO.class);
// 调用
Long subjectBasicId = subjectBasicService.createSubjectBasic(reqVO);
// 断言
assertNotNull(subjectBasicId);
// 校验记录的属性是否正确
SubjectBasicDO subjectBasic = subjectBasicMapper.selectById(subjectBasicId);
assertPojoEquals(reqVO, subjectBasic);
}
@Test
public void testUpdateSubjectBasic_success() {
// mock 数据
SubjectBasicDO dbSubjectBasic = randomPojo(SubjectBasicDO.class);
subjectBasicMapper.insert(dbSubjectBasic);// @Sql: 先插入出一条存在的数据
// 准备参数
SubjectBasicUpdateReqVO reqVO = randomPojo(SubjectBasicUpdateReqVO.class, o -> {
o.setId(dbSubjectBasic.getId()); // 设置更新的 ID
});
// 调用
subjectBasicService.updateSubjectBasic(reqVO);
// 校验是否更新正确
SubjectBasicDO subjectBasic = subjectBasicMapper.selectById(reqVO.getId()); // 获取最新的
assertPojoEquals(reqVO, subjectBasic);
}
@Test
public void testUpdateSubjectBasic_notExists() {
// 准备参数
SubjectBasicUpdateReqVO reqVO = randomPojo(SubjectBasicUpdateReqVO.class);
// 调用, 并断言异常
assertServiceException(() -> subjectBasicService.updateSubjectBasic(reqVO), SUBJECT_BASIC_NOT_EXISTS);
}
@Test
public void testDeleteSubjectBasic_success() {
// mock 数据
SubjectBasicDO dbSubjectBasic = randomPojo(SubjectBasicDO.class);
subjectBasicMapper.insert(dbSubjectBasic);// @Sql: 先插入出一条存在的数据
// 准备参数
Long id = dbSubjectBasic.getId();
// 调用
subjectBasicService.deleteSubjectBasic(id);
// 校验数据不存在了
assertNull(subjectBasicMapper.selectById(id));
}
@Test
public void testDeleteSubjectBasic_notExists() {
// 准备参数
Long id = randomLongId();
// 调用, 并断言异常
assertServiceException(() -> subjectBasicService.deleteSubjectBasic(id), SUBJECT_BASIC_NOT_EXISTS);
}
@Test
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
public void testGetSubjectBasicPage() {
// mock 数据
SubjectBasicDO dbSubjectBasic = randomPojo(SubjectBasicDO.class, o -> { // 等会查询到
o.setBusinessType(null);
o.setCalssify(null);
o.setName(null);
o.setLogo(null);
o.setEnterpriseNature(null);
o.setIndustryClassify(null);
o.setCustomerSource(null);
o.setCustomerStarrating(null);
o.setIndustrySchedule(null);
o.setBelongingPeople(null);
o.setCity(null);
o.setCountry(null);
o.setAddress(null);
o.setPhone(null);
o.setCompanyFax(null);
o.setCompanyHttp(null);
o.setCompanyProfile(null);
o.setCustomerStatus(null);
o.setSocialInformationCodeCertificate(null);
o.setRegisterAddress(null);
o.setInformationCode(null);
o.setOperateStart(null);
o.setOperateEnd(null);
o.setRegisterCapital(null);
o.setBusinessScope(null);
o.setProofPaidCapital(null);
o.setAssetCertificate(null);
o.setAssetCertificateMortgage(null);
o.setOtherQualifications(null);
o.setCollaborationStart(null);
o.setCollaborationEnd(null);
o.setDemandVolumeDown(null);
o.setDemandVolumeUpper(null);
o.setFundLimit(null);
o.setBusinessHours(null);
o.setBusinessStart(null);
o.setBusinessEnd(null);
o.setAllowableUnloadingStart(null);
o.setAllowableUnloadingEnd(null);
o.setUnloading(null);
o.setUnloadingEfficiency(null);
o.setAllowableShipmentStart(null);
o.setAllowableShipmentEnd(null);
o.setShipment(null);
o.setShipmentEffciency(null);
o.setPaymentMethod(null);
o.setAccountName(null);
o.setBankAccount(null);
o.setBankDeposit(null);
o.setDepositArea(null);
o.setBankBranch(null);
o.setCompanyTaxNumber(null);
o.setEnterpriseName(null);
o.setWorkAddress(null);
o.setCollaborationMethod(null);
o.setSettlementMethod(null);
o.setAccountPeriod(null);
o.setUnderpaymentMethod(null);
o.setApplyForUnderpaymentRatio(null);
o.setMarginMethod(null);
o.setApplyForMarginRatio(null);
o.setOverdueInterestRate(null);
o.setApplyForOverdueRatio(null);
o.setReservedFields1(null);
o.setReservedFields2(null);
o.setReservedFields3(null);
o.setReservedFields4(null);
o.setReservedFields5(null);
o.setReservedFields6(null);
o.setCreditRating(null);
o.setAutoCreditRating(null);
o.setAccountsReceivableUpper(null);
o.setOrderQuantityDown(null);
o.setOrderQuantityUpper(null);
o.setAccountsReceivableOverdue(null);
o.setTaxPaymentCertificate(null);
o.setCreateTime(null);
});
subjectBasicMapper.insert(dbSubjectBasic);
// 测试 businessType 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBusinessType(null)));
// 测试 calssify 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCalssify(null)));
// 测试 name 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setName(null)));
// 测试 logo 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setLogo(null)));
// 测试 enterpriseNature 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setEnterpriseNature(null)));
// 测试 industryClassify 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setIndustryClassify(null)));
// 测试 customerSource 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCustomerSource(null)));
// 测试 customerStarrating 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCustomerStarrating(null)));
// 测试 industrySchedule 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setIndustrySchedule(null)));
// 测试 belongingPeople 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBelongingPeople(null)));
// 测试 city 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCity(null)));
// 测试 country 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCountry(null)));
// 测试 address 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAddress(null)));
// 测试 phone 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setPhone(null)));
// 测试 companyFax 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCompanyFax(null)));
// 测试 companyHttp 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCompanyHttp(null)));
// 测试 companyProfile 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCompanyProfile(null)));
// 测试 customerStatus 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCustomerStatus(null)));
// 测试 socialInformationCodeCertificate 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setSocialInformationCodeCertificate(null)));
// 测试 registerAddress 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setRegisterAddress(null)));
// 测试 informationCode 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setInformationCode(null)));
// 测试 operateStart 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOperateStart(null)));
// 测试 operateEnd 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOperateEnd(null)));
// 测试 registerCapital 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setRegisterCapital(null)));
// 测试 businessScope 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBusinessScope(null)));
// 测试 proofPaidCapital 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setProofPaidCapital(null)));
// 测试 assetCertificate 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAssetCertificate(null)));
// 测试 assetCertificateMortgage 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAssetCertificateMortgage(null)));
// 测试 otherQualifications 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOtherQualifications(null)));
// 测试 collaborationStart 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCollaborationStart(null)));
// 测试 collaborationEnd 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCollaborationEnd(null)));
// 测试 demandVolumeDown 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setDemandVolumeDown(null)));
// 测试 demandVolumeUpper 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setDemandVolumeUpper(null)));
// 测试 fundLimit 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setFundLimit(null)));
// 测试 businessHours 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBusinessHours(null)));
// 测试 businessStart 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBusinessStart(null)));
// 测试 businessEnd 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBusinessEnd(null)));
// 测试 allowableUnloadingStart 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAllowableUnloadingStart(null)));
// 测试 allowableUnloadingEnd 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAllowableUnloadingEnd(null)));
// 测试 unloading 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setUnloading(null)));
// 测试 unloadingEfficiency 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setUnloadingEfficiency(null)));
// 测试 allowableShipmentStart 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAllowableShipmentStart(null)));
// 测试 allowableShipmentEnd 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAllowableShipmentEnd(null)));
// 测试 shipment 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setShipment(null)));
// 测试 shipmentEffciency 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setShipmentEffciency(null)));
// 测试 paymentMethod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setPaymentMethod(null)));
// 测试 accountName 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAccountName(null)));
// 测试 bankAccount 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBankAccount(null)));
// 测试 bankDeposit 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBankDeposit(null)));
// 测试 depositArea 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setDepositArea(null)));
// 测试 bankBranch 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBankBranch(null)));
// 测试 companyTaxNumber 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCompanyTaxNumber(null)));
// 测试 enterpriseName 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setEnterpriseName(null)));
// 测试 workAddress 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setWorkAddress(null)));
// 测试 collaborationMethod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCollaborationMethod(null)));
// 测试 settlementMethod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setSettlementMethod(null)));
// 测试 accountPeriod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAccountPeriod(null)));
// 测试 underpaymentMethod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setUnderpaymentMethod(null)));
// 测试 applyForUnderpaymentRatio 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setApplyForUnderpaymentRatio(null)));
// 测试 marginMethod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setMarginMethod(null)));
// 测试 applyForMarginRatio 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setApplyForMarginRatio(null)));
// 测试 overdueInterestRate 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOverdueInterestRate(null)));
// 测试 applyForOverdueRatio 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setApplyForOverdueRatio(null)));
// 测试 reservedFields1 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields1(null)));
// 测试 reservedFields2 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields2(null)));
// 测试 reservedFields3 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields3(null)));
// 测试 reservedFields4 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields4(null)));
// 测试 reservedFields5 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields5(null)));
// 测试 reservedFields6 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields6(null)));
// 测试 creditRating 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCreditRating(null)));
// 测试 autoCreditRating 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAutoCreditRating(null)));
// 测试 accountsReceivableUpper 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAccountsReceivableUpper(null)));
// 测试 orderQuantityDown 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOrderQuantityDown(null)));
// 测试 orderQuantityUpper 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOrderQuantityUpper(null)));
// 测试 accountsReceivableOverdue 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAccountsReceivableOverdue(null)));
// 测试 taxPaymentCertificate 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setTaxPaymentCertificate(null)));
// 测试 createTime 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCreateTime(null)));
// 准备参数
SubjectBasicPageReqVO reqVO = new SubjectBasicPageReqVO();
reqVO.setBusinessType(null);
reqVO.setCalssify(null);
reqVO.setName(null);
reqVO.setLogo(null);
reqVO.setEnterpriseNature(null);
reqVO.setIndustryClassify(null);
reqVO.setCustomerSource(null);
reqVO.setCustomerStarrating(null);
reqVO.setIndustrySchedule(null);
reqVO.setBelongingPeople(null);
reqVO.setCity(null);
reqVO.setCountry(null);
reqVO.setAddress(null);
reqVO.setPhone(null);
reqVO.setCompanyFax(null);
reqVO.setCompanyHttp(null);
reqVO.setCompanyProfile(null);
reqVO.setCustomerStatus(null);
reqVO.setSocialInformationCodeCertificate(null);
reqVO.setRegisterAddress(null);
reqVO.setInformationCode(null);
reqVO.setOperateStart(null);
reqVO.setOperateEnd(null);
reqVO.setRegisterCapital(null);
reqVO.setBusinessScope(null);
reqVO.setProofPaidCapital(null);
reqVO.setAssetCertificate(null);
reqVO.setAssetCertificateMortgage(null);
reqVO.setOtherQualifications(null);
reqVO.setCollaborationStart(null);
reqVO.setCollaborationEnd(null);
reqVO.setDemandVolumeDown(null);
reqVO.setDemandVolumeUpper(null);
reqVO.setFundLimit(null);
reqVO.setBusinessHours(null);
reqVO.setBusinessStart(null);
reqVO.setBusinessEnd(null);
reqVO.setAllowableUnloadingStart(null);
reqVO.setAllowableUnloadingEnd(null);
reqVO.setUnloading(null);
reqVO.setUnloadingEfficiency(null);
reqVO.setAllowableShipmentStart(null);
reqVO.setAllowableShipmentEnd(null);
reqVO.setShipment(null);
reqVO.setShipmentEffciency(null);
reqVO.setPaymentMethod(null);
reqVO.setAccountName(null);
reqVO.setBankAccount(null);
reqVO.setBankDeposit(null);
reqVO.setDepositArea(null);
reqVO.setBankBranch(null);
reqVO.setCompanyTaxNumber(null);
reqVO.setEnterpriseName(null);
reqVO.setWorkAddress(null);
reqVO.setCollaborationMethod(null);
reqVO.setSettlementMethod(null);
reqVO.setAccountPeriod(null);
reqVO.setUnderpaymentMethod(null);
reqVO.setApplyForUnderpaymentRatio(null);
reqVO.setMarginMethod(null);
reqVO.setApplyForMarginRatio(null);
reqVO.setOverdueInterestRate(null);
reqVO.setApplyForOverdueRatio(null);
reqVO.setReservedFields1(null);
reqVO.setReservedFields2(null);
reqVO.setReservedFields3(null);
reqVO.setReservedFields4(null);
reqVO.setReservedFields5(null);
reqVO.setReservedFields6(null);
reqVO.setCreditRating(null);
reqVO.setAutoCreditRating(null);
reqVO.setAccountsReceivableUpper(null);
reqVO.setOrderQuantityDown(null);
reqVO.setOrderQuantityUpper(null);
reqVO.setAccountsReceivableOverdue(null);
reqVO.setTaxPaymentCertificate(null);
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
// 调用
PageResult<SubjectBasicDO> pageResult = subjectBasicService.getSubjectBasicPage(reqVO);
// 断言
assertEquals(1, pageResult.getTotal());
assertEquals(1, pageResult.getList().size());
assertPojoEquals(dbSubjectBasic, pageResult.getList().get(0));
}
@Test
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
public void testGetSubjectBasicList() {
// mock 数据
SubjectBasicDO dbSubjectBasic = randomPojo(SubjectBasicDO.class, o -> { // 等会查询到
o.setBusinessType(null);
o.setCalssify(null);
o.setName(null);
o.setLogo(null);
o.setEnterpriseNature(null);
o.setIndustryClassify(null);
o.setCustomerSource(null);
o.setCustomerStarrating(null);
o.setIndustrySchedule(null);
o.setBelongingPeople(null);
o.setCity(null);
o.setCountry(null);
o.setAddress(null);
o.setPhone(null);
o.setCompanyFax(null);
o.setCompanyHttp(null);
o.setCompanyProfile(null);
o.setCustomerStatus(null);
o.setSocialInformationCodeCertificate(null);
o.setRegisterAddress(null);
o.setInformationCode(null);
o.setOperateStart(null);
o.setOperateEnd(null);
o.setRegisterCapital(null);
o.setBusinessScope(null);
o.setProofPaidCapital(null);
o.setAssetCertificate(null);
o.setAssetCertificateMortgage(null);
o.setOtherQualifications(null);
o.setCollaborationStart(null);
o.setCollaborationEnd(null);
o.setDemandVolumeDown(null);
o.setDemandVolumeUpper(null);
o.setFundLimit(null);
o.setBusinessHours(null);
o.setBusinessStart(null);
o.setBusinessEnd(null);
o.setAllowableUnloadingStart(null);
o.setAllowableUnloadingEnd(null);
o.setUnloading(null);
o.setUnloadingEfficiency(null);
o.setAllowableShipmentStart(null);
o.setAllowableShipmentEnd(null);
o.setShipment(null);
o.setShipmentEffciency(null);
o.setPaymentMethod(null);
o.setAccountName(null);
o.setBankAccount(null);
o.setBankDeposit(null);
o.setDepositArea(null);
o.setBankBranch(null);
o.setCompanyTaxNumber(null);
o.setEnterpriseName(null);
o.setWorkAddress(null);
o.setCollaborationMethod(null);
o.setSettlementMethod(null);
o.setAccountPeriod(null);
o.setUnderpaymentMethod(null);
o.setApplyForUnderpaymentRatio(null);
o.setMarginMethod(null);
o.setApplyForMarginRatio(null);
o.setOverdueInterestRate(null);
o.setApplyForOverdueRatio(null);
o.setReservedFields1(null);
o.setReservedFields2(null);
o.setReservedFields3(null);
o.setReservedFields4(null);
o.setReservedFields5(null);
o.setReservedFields6(null);
o.setCreditRating(null);
o.setAutoCreditRating(null);
o.setAccountsReceivableUpper(null);
o.setOrderQuantityDown(null);
o.setOrderQuantityUpper(null);
o.setAccountsReceivableOverdue(null);
o.setTaxPaymentCertificate(null);
o.setCreateTime(null);
});
subjectBasicMapper.insert(dbSubjectBasic);
// 测试 businessType 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBusinessType(null)));
// 测试 calssify 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCalssify(null)));
// 测试 name 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setName(null)));
// 测试 logo 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setLogo(null)));
// 测试 enterpriseNature 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setEnterpriseNature(null)));
// 测试 industryClassify 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setIndustryClassify(null)));
// 测试 customerSource 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCustomerSource(null)));
// 测试 customerStarrating 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCustomerStarrating(null)));
// 测试 industrySchedule 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setIndustrySchedule(null)));
// 测试 belongingPeople 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBelongingPeople(null)));
// 测试 city 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCity(null)));
// 测试 country 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCountry(null)));
// 测试 address 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAddress(null)));
// 测试 phone 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setPhone(null)));
// 测试 companyFax 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCompanyFax(null)));
// 测试 companyHttp 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCompanyHttp(null)));
// 测试 companyProfile 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCompanyProfile(null)));
// 测试 customerStatus 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCustomerStatus(null)));
// 测试 socialInformationCodeCertificate 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setSocialInformationCodeCertificate(null)));
// 测试 registerAddress 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setRegisterAddress(null)));
// 测试 informationCode 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setInformationCode(null)));
// 测试 operateStart 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOperateStart(null)));
// 测试 operateEnd 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOperateEnd(null)));
// 测试 registerCapital 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setRegisterCapital(null)));
// 测试 businessScope 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBusinessScope(null)));
// 测试 proofPaidCapital 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setProofPaidCapital(null)));
// 测试 assetCertificate 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAssetCertificate(null)));
// 测试 assetCertificateMortgage 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAssetCertificateMortgage(null)));
// 测试 otherQualifications 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOtherQualifications(null)));
// 测试 collaborationStart 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCollaborationStart(null)));
// 测试 collaborationEnd 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCollaborationEnd(null)));
// 测试 demandVolumeDown 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setDemandVolumeDown(null)));
// 测试 demandVolumeUpper 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setDemandVolumeUpper(null)));
// 测试 fundLimit 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setFundLimit(null)));
// 测试 businessHours 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBusinessHours(null)));
// 测试 businessStart 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBusinessStart(null)));
// 测试 businessEnd 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBusinessEnd(null)));
// 测试 allowableUnloadingStart 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAllowableUnloadingStart(null)));
// 测试 allowableUnloadingEnd 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAllowableUnloadingEnd(null)));
// 测试 unloading 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setUnloading(null)));
// 测试 unloadingEfficiency 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setUnloadingEfficiency(null)));
// 测试 allowableShipmentStart 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAllowableShipmentStart(null)));
// 测试 allowableShipmentEnd 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAllowableShipmentEnd(null)));
// 测试 shipment 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setShipment(null)));
// 测试 shipmentEffciency 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setShipmentEffciency(null)));
// 测试 paymentMethod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setPaymentMethod(null)));
// 测试 accountName 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAccountName(null)));
// 测试 bankAccount 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBankAccount(null)));
// 测试 bankDeposit 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBankDeposit(null)));
// 测试 depositArea 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setDepositArea(null)));
// 测试 bankBranch 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setBankBranch(null)));
// 测试 companyTaxNumber 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCompanyTaxNumber(null)));
// 测试 enterpriseName 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setEnterpriseName(null)));
// 测试 workAddress 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setWorkAddress(null)));
// 测试 collaborationMethod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCollaborationMethod(null)));
// 测试 settlementMethod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setSettlementMethod(null)));
// 测试 accountPeriod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAccountPeriod(null)));
// 测试 underpaymentMethod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setUnderpaymentMethod(null)));
// 测试 applyForUnderpaymentRatio 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setApplyForUnderpaymentRatio(null)));
// 测试 marginMethod 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setMarginMethod(null)));
// 测试 applyForMarginRatio 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setApplyForMarginRatio(null)));
// 测试 overdueInterestRate 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOverdueInterestRate(null)));
// 测试 applyForOverdueRatio 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setApplyForOverdueRatio(null)));
// 测试 reservedFields1 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields1(null)));
// 测试 reservedFields2 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields2(null)));
// 测试 reservedFields3 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields3(null)));
// 测试 reservedFields4 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields4(null)));
// 测试 reservedFields5 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields5(null)));
// 测试 reservedFields6 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setReservedFields6(null)));
// 测试 creditRating 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCreditRating(null)));
// 测试 autoCreditRating 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAutoCreditRating(null)));
// 测试 accountsReceivableUpper 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAccountsReceivableUpper(null)));
// 测试 orderQuantityDown 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOrderQuantityDown(null)));
// 测试 orderQuantityUpper 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setOrderQuantityUpper(null)));
// 测试 accountsReceivableOverdue 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setAccountsReceivableOverdue(null)));
// 测试 taxPaymentCertificate 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setTaxPaymentCertificate(null)));
// 测试 createTime 不匹配
subjectBasicMapper.insert(cloneIgnoreId(dbSubjectBasic, o -> o.setCreateTime(null)));
// 准备参数
SubjectBasicExportReqVO reqVO = new SubjectBasicExportReqVO();
reqVO.setBusinessType(null);
reqVO.setCalssify(null);
reqVO.setName(null);
reqVO.setLogo(null);
reqVO.setEnterpriseNature(null);
reqVO.setIndustryClassify(null);
reqVO.setCustomerSource(null);
reqVO.setCustomerStarrating(null);
reqVO.setIndustrySchedule(null);
reqVO.setBelongingPeople(null);
reqVO.setCity(null);
reqVO.setCountry(null);
reqVO.setAddress(null);
reqVO.setPhone(null);
reqVO.setCompanyFax(null);
reqVO.setCompanyHttp(null);
reqVO.setCompanyProfile(null);
reqVO.setCustomerStatus(null);
reqVO.setSocialInformationCodeCertificate(null);
reqVO.setRegisterAddress(null);
reqVO.setInformationCode(null);
reqVO.setOperateStart(null);
reqVO.setOperateEnd(null);
reqVO.setRegisterCapital(null);
reqVO.setBusinessScope(null);
reqVO.setProofPaidCapital(null);
reqVO.setAssetCertificate(null);
reqVO.setAssetCertificateMortgage(null);
reqVO.setOtherQualifications(null);
reqVO.setCollaborationStart(null);
reqVO.setCollaborationEnd(null);
reqVO.setDemandVolumeDown(null);
reqVO.setDemandVolumeUpper(null);
reqVO.setFundLimit(null);
reqVO.setBusinessHours(null);
reqVO.setBusinessStart(null);
reqVO.setBusinessEnd(null);
reqVO.setAllowableUnloadingStart(null);
reqVO.setAllowableUnloadingEnd(null);
reqVO.setUnloading(null);
reqVO.setUnloadingEfficiency(null);
reqVO.setAllowableShipmentStart(null);
reqVO.setAllowableShipmentEnd(null);
reqVO.setShipment(null);
reqVO.setShipmentEffciency(null);
reqVO.setPaymentMethod(null);
reqVO.setAccountName(null);
reqVO.setBankAccount(null);
reqVO.setBankDeposit(null);
reqVO.setDepositArea(null);
reqVO.setBankBranch(null);
reqVO.setCompanyTaxNumber(null);
reqVO.setEnterpriseName(null);
reqVO.setWorkAddress(null);
reqVO.setCollaborationMethod(null);
reqVO.setSettlementMethod(null);
reqVO.setAccountPeriod(null);
reqVO.setUnderpaymentMethod(null);
reqVO.setApplyForUnderpaymentRatio(null);
reqVO.setMarginMethod(null);
reqVO.setApplyForMarginRatio(null);
reqVO.setOverdueInterestRate(null);
reqVO.setApplyForOverdueRatio(null);
reqVO.setReservedFields1(null);
reqVO.setReservedFields2(null);
reqVO.setReservedFields3(null);
reqVO.setReservedFields4(null);
reqVO.setReservedFields5(null);
reqVO.setReservedFields6(null);
reqVO.setCreditRating(null);
reqVO.setAutoCreditRating(null);
reqVO.setAccountsReceivableUpper(null);
reqVO.setOrderQuantityDown(null);
reqVO.setOrderQuantityUpper(null);
reqVO.setAccountsReceivableOverdue(null);
reqVO.setTaxPaymentCertificate(null);
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
// 调用
List<SubjectBasicDO> list = subjectBasicService.getSubjectBasicList(reqVO);
// 断言
assertEquals(1, list.size());
assertPojoEquals(dbSubjectBasic, list.get(0));
}
}

@ -144,6 +144,7 @@ yunxi:
enable: true enable: true
ignore-urls: ignore-urls:
- /admin-api/system/tenant/get-id-by-name # 基于名字获取租户,不许带租户编号 - /admin-api/system/tenant/get-id-by-name # 基于名字获取租户,不许带租户编号
- /admin-api/system/tenant/get-tenantId-by-userName # 基于用户名获取租户,不许带租户编号
- /admin-api/system/captcha/get # 获取图片验证码,和租户无关 - /admin-api/system/captcha/get # 获取图片验证码,和租户无关
- /admin-api/system/captcha/check # 校验图片验证码,和租户无关 - /admin-api/system/captcha/check # 校验图片验证码,和租户无关
- /admin-api/infra/file/*/get/** # 获取图片,和租户无关 - /admin-api/infra/file/*/get/** # 获取图片,和租户无关
@ -151,6 +152,7 @@ yunxi:
- /admin-api/pay/notify/** # 支付回调通知,不携带租户编号 - /admin-api/pay/notify/** # 支付回调通知,不携带租户编号
- /jmreport/* # 积木报表,无法携带租户编号 - /jmreport/* # 积木报表,无法携带租户编号
- /admin-api/mp/open/** # 微信公众号开放平台,微信回调接口,无法携带租户编号 - /admin-api/mp/open/** # 微信公众号开放平台,微信回调接口,无法携带租户编号
- /admin-api/system/auth/login # 登录,无需携带租户编号
ignore-tables: ignore-tables:
- system_tenant - system_tenant
- system_tenant_package - system_tenant_package
@ -195,6 +197,7 @@ yunxi:
- tmp_report_data_1 - tmp_report_data_1
- tmp_report_data_income - tmp_report_data_income
- demo_xxx - demo_xxx
- system_user_enterprise_relational
sms-code: # 短信验证码相关的配置项 sms-code: # 短信验证码相关的配置项
expire-times: 10m expire-times: 10m
send-frequency: 1m send-frequency: 1m

@ -7,14 +7,14 @@ VITE_PUBLIC_PATH = /
# 本地开发代理,可以解决跨域及多地址代理 # 本地开发代理,可以解决跨域及多地址代理
# 如果接口地址匹配到则会转发到http://localhost:3000防止本地出现跨域问题 # 如果接口地址匹配到则会转发到http://localhost:3000防止本地出现跨域问题
# 可以有多个,注意多个不能换行,否则代理将会失效 # 可以有多个,注意多个不能换行,否则代理将会失效
VITE_PROXY = [["/dev-api","http://192.168.0.162:8091/admin-api"],["/upload","http://192.168.0.162:8091/admin-api/infra/file/upload"]] VITE_PROXY = [["/dev-api","http://127.0.0.1:8091/admin-api"],["/upload","http://127.0.0.1:8091/admin-api/infra/file/upload"]]
# VITE_PROXY=[["/api","http://vben.xingyuv.com/test"]] # VITE_PROXY=[["/api","http://vben.xingyuv.com/test"]]
# 是否删除Console.log # 是否删除Console.log
VITE_DROP_CONSOLE = false VITE_DROP_CONSOLE = false
# 基础页面地址,例如 swagger 等页面 # 基础页面地址,例如 swagger 等页面
VITE_GLOB_BASE_URL = "http://192.168.0.162:8091" VITE_GLOB_BASE_URL = "http://127.0.0.1:8091"
# 接口地址,如果没有跨域问题,直接在这里配置即可 # 接口地址,如果没有跨域问题,直接在这里配置即可
VITE_GLOB_API_URL = /dev-api VITE_GLOB_API_URL = /dev-api

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

Loading…
Cancel
Save