From 1fc227d2d221aa2b634bdabf193c11f748485d88 Mon Sep 17 00:00:00 2001 From: tengxi <971623072@qq.com> Date: Thu, 12 Oct 2023 19:28:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/enums/ErrorCodeConstants.java | 1 + .../enterprise/EnterpriseController.java | 12 + .../EnterpriseBranchController.java | 110 ++++++ .../vo/EnterpriseBranchBaseVO.java | 50 +++ .../vo/EnterpriseBranchCreateReqVO.java | 14 + .../vo/EnterpriseBranchExcelVO.java | 53 +++ .../vo/EnterpriseBranchExportReqVO.java | 41 ++ .../vo/EnterpriseBranchPageReqVO.java | 45 +++ .../vo/EnterpriseBranchRespVO.java | 22 ++ .../vo/EnterpriseBranchUpdateReqVO.java | 18 + .../EnterpriseBranchConvert.java | 34 ++ .../enterprisebranch/EnterpriseBranchDO.java | 82 ++++ .../mysql/enterprise/EnterpriseMapper.java | 3 + .../EnterpriseBranchMapper.java | 51 +++ .../service/enterprise/EnterpriseService.java | 9 + .../enterprise/EnterpriseServiceImpl.java | 7 + .../EnterpriseBranchService.java | 80 ++++ .../EnterpriseBranchServiceImpl.java | 91 +++++ .../Mapper/enterprise/EnterpriseMapper.xml | 7 + .../EnterpriseBranchMapper.xml | 30 ++ .../EnterpriseBranchServiceImplTest.java | 207 ++++++++++ .../src/api/system/enterprise/index.ts | 5 + .../src/api/system/enterpriseBranch/index.ts | 47 +++ yunxi-ui-admin-vben/src/utils/dict.ts | 1 + .../enterpriseCentre/branch/index1.vue | 357 ++++++++++++++++++ .../enterpriseCentre/branch/src/ModalAdd1.vue | 89 +++++ .../enterpriseDetails/src/OperateRecords.vue | 289 ++++++++------ .../src/views/users/mine/index.vue | 1 + 28 files changed, 1633 insertions(+), 123 deletions(-) create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/EnterpriseBranchController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/enterprisebranch/EnterpriseBranchConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/enterprisebranch/EnterpriseBranchDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/enterprisebranch/EnterpriseBranchMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/resources/Mapper/enterprisebranch/EnterpriseBranchMapper.xml create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchServiceImplTest.java create mode 100644 yunxi-ui-admin-vben/src/api/system/enterpriseBranch/index.ts create mode 100644 yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/branch/index1.vue create mode 100644 yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/branch/src/ModalAdd1.vue diff --git a/yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/ErrorCodeConstants.java b/yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/ErrorCodeConstants.java index 5c1d5a27..785a4062 100644 --- a/yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/ErrorCodeConstants.java +++ b/yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/ErrorCodeConstants.java @@ -167,6 +167,7 @@ public interface ErrorCodeConstants { // ========== 企业信息 TODO 补充编号 ========== ErrorCode ENTERPRISE_NOT_EXISTS = new ErrorCode(1002004015, "企业信息不存在"); ErrorCode ENTERPRISE_OPERATE_NOT_EXISTS = new ErrorCode(1002004015, "企业信息操作记录不存在"); + ErrorCode ENTERPRISE_BRANCH_NOT_EXISTS = new ErrorCode(1002005015, "企业信息分支机构不存在"); // ========== 业务线表 TODO 补充编号 ========== ErrorCode BUSINESS_WAREHOUSE_NOT_EXISTS = new ErrorCode(1002025019, "业务线表不存在"); diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprise/EnterpriseController.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprise/EnterpriseController.java index 33c2c0bb..c339254c 100644 --- a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprise/EnterpriseController.java +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprise/EnterpriseController.java @@ -1,7 +1,10 @@ package com.yunxi.scm.module.system.controller.admin.enterprise; import com.yunxi.scm.framework.datapermission.core.annotation.DataPermission; +import com.yunxi.scm.module.system.controller.admin.enterpriseoperate.vo.EnterpriseOperateRespVO; import com.yunxi.scm.module.system.controller.admin.user.vo.user.UserUpdateStatusReqVO; +import com.yunxi.scm.module.system.convert.enterpriseoperate.EnterpriseOperateConvert; +import com.yunxi.scm.module.system.dal.dataobject.enterpriseoperate.EnterpriseOperateDO; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -123,4 +126,13 @@ public class EnterpriseController { return success(EnterpriseConvert.INSTANCE.convertList(list)); } + @GetMapping("/getenterperiseOperate") + @Operation(summary = "获得企业信息操作记录所有信息") + @DataPermission(enable = false) // 关闭数据权限,避免只查看自己时,查询不到部门。 + @PreAuthorize("@ss.hasPermission('system:enterprise:getenterperiseOperate')") + public CommonResult> getEnterpriseOperatePage1() { + List list = enterpriseService.getEnterpriseOperate(); + return success(EnterpriseOperateConvert.INSTANCE.convertList(list)); + } + } diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/EnterpriseBranchController.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/EnterpriseBranchController.java new file mode 100644 index 00000000..a7fc3b35 --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/EnterpriseBranchController.java @@ -0,0 +1,110 @@ +package com.yunxi.scm.module.system.controller.admin.enterprisebranch; + +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.enterprisebranch.vo.*; +import com.yunxi.scm.module.system.dal.dataobject.enterprisebranch.EnterpriseBranchDO; +import com.yunxi.scm.module.system.convert.enterprisebranch.EnterpriseBranchConvert; +import com.yunxi.scm.module.system.service.enterprisebranch.EnterpriseBranchService; + +@Tag(name = "管理后台 - 分支机构") +@RestController +@RequestMapping("/system/enterprise-branch") +@Validated +public class EnterpriseBranchController { + + @Resource + private EnterpriseBranchService enterpriseBranchService; + + @PostMapping("/create") + @Operation(summary = "创建分支机构") + @PreAuthorize("@ss.hasPermission('system:enterprise-branch:create')") + public CommonResult createEnterpriseBranch(@Valid @RequestBody EnterpriseBranchCreateReqVO createReqVO) { + return success(enterpriseBranchService.createEnterpriseBranch(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新分支机构") + @PreAuthorize("@ss.hasPermission('system:enterprise-branch:update')") + public CommonResult updateEnterpriseBranch(@Valid @RequestBody EnterpriseBranchUpdateReqVO updateReqVO) { + enterpriseBranchService.updateEnterpriseBranch(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除分支机构") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:enterprise-branch:delete')") + public CommonResult deleteEnterpriseBranch(@RequestParam("id") Long id) { + enterpriseBranchService.deleteEnterpriseBranch(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得分支机构") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:enterprise-branch:query')") + public CommonResult getEnterpriseBranch(@RequestParam("id") Long id) { + EnterpriseBranchDO enterpriseBranch = enterpriseBranchService.getEnterpriseBranch(id); + return success(EnterpriseBranchConvert.INSTANCE.convert(enterpriseBranch)); + } + + @GetMapping("/list") + @Operation(summary = "获得分支机构列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('system:enterprise-branch:query')") + public CommonResult> getEnterpriseBranchList(@RequestParam("ids") Collection ids) { + List list = enterpriseBranchService.getEnterpriseBranchList(ids); + return success(EnterpriseBranchConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得分支机构分页") + @PreAuthorize("@ss.hasPermission('system:enterprise-branch:query')") + public CommonResult> getEnterpriseBranchPage(@Valid EnterpriseBranchPageReqVO pageVO) { + PageResult pageResult = enterpriseBranchService.getEnterpriseBranchPage(pageVO); + return success(EnterpriseBranchConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/page1") + @Operation(summary = "自定义获得分支机构分页1") + @PreAuthorize("@ss.hasPermission('system:enterprise-branch:query1')") + public CommonResult> getEnterpriseBranchPage1(@Valid EnterpriseBranchPageReqVO pageVO) { + PageResult pageResult = enterpriseBranchService.getEnterpriseBranchPageList(pageVO); + return success(EnterpriseBranchConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出分支机构 Excel") + @PreAuthorize("@ss.hasPermission('system:enterprise-branch:export')") + @OperateLog(type = EXPORT) + public void exportEnterpriseBranchExcel(@Valid EnterpriseBranchExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = enterpriseBranchService.getEnterpriseBranchList(exportReqVO); + // 导出 Excel + List datas = EnterpriseBranchConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "分支机构.xls", "数据", EnterpriseBranchExcelVO.class, datas); + } + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchBaseVO.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchBaseVO.java new file mode 100644 index 00000000..ed1bdcef --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchBaseVO.java @@ -0,0 +1,50 @@ +package com.yunxi.scm.module.system.controller.admin.enterprisebranch.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 EnterpriseBranchBaseVO { + + @Schema(description = "机构名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotNull(message = "机构名称不能为空") + private String branchName; + + @Schema(description = "机构类型(1:总公司 2:子公司)", example = "2") + private String branchType; + + @Schema(description = "管理员", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @NotNull(message = "管理员不能为空") + private String adminName; + + @Schema(description = "联系电话", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "联系电话不能为空") + private String telephone; + + @Schema(description = "备注", example = "随便") + private String branchRemark; + + @Schema(description = "上级机构") + private String branchSuperior; + + @Schema(description = "图片") + private String logo; + + @Schema(description = "关联公司") + private Integer enterprise; + + @Schema(description = "关联业务线") + private Integer businesNum; + + @Schema(description = "关联员工") + private Integer userNum; + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchCreateReqVO.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchCreateReqVO.java new file mode 100644 index 00000000..813abd54 --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchCreateReqVO.java @@ -0,0 +1,14 @@ +package com.yunxi.scm.module.system.controller.admin.enterprisebranch.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 EnterpriseBranchCreateReqVO extends EnterpriseBranchBaseVO { + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchExcelVO.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchExcelVO.java new file mode 100644 index 00000000..35855dd3 --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchExcelVO.java @@ -0,0 +1,53 @@ +package com.yunxi.scm.module.system.controller.admin.enterprisebranch.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; +import com.yunxi.scm.framework.excel.core.annotations.DictFormat; +import com.yunxi.scm.framework.excel.core.convert.DictConvert; + + +/** + * 分支机构 Excel VO + * + * @author 长江云息 + */ +@Data +public class EnterpriseBranchExcelVO { + + @ExcelProperty("ID") + private Long id; + + @ExcelProperty("机构名称") + private String branchName; + + @ExcelProperty(value = "机构类型(1:总公司 2:子公司)", converter = DictConvert.class) + @DictFormat("enterprise_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String branchType; + + @ExcelProperty("管理员") + private String adminName; + + @ExcelProperty("联系电话") + private String telephone; + + @ExcelProperty("备注") + private String branchRemark; + + @ExcelProperty("上级机构") + private String branchSuperior; + + @ExcelProperty("图片") + private String logo; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("更新时间") + private LocalDateTime updateTime; + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchExportReqVO.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchExportReqVO.java new file mode 100644 index 00000000..1161e594 --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchExportReqVO.java @@ -0,0 +1,41 @@ +package com.yunxi.scm.module.system.controller.admin.enterprisebranch.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,参数和 EnterpriseBranchPageReqVO 是一致的") +@Data +public class EnterpriseBranchExportReqVO { + + @Schema(description = "机构名称", example = "王五") + private String branchName; + + @Schema(description = "机构类型(1:总公司 2:子公司)", example = "2") + private String branchType; + + @Schema(description = "管理员", example = "赵六") + private String adminName; + + @Schema(description = "联系电话") + private String telephone; + + @Schema(description = "备注", example = "随便") + private String branchRemark; + + @Schema(description = "上级机构") + private String branchSuperior; + + @Schema(description = "图片") + private String logo; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchPageReqVO.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchPageReqVO.java new file mode 100644 index 00000000..d8095eab --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchPageReqVO.java @@ -0,0 +1,45 @@ +package com.yunxi.scm.module.system.controller.admin.enterprisebranch.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 EnterpriseBranchPageReqVO extends PageParam { + + @Schema(description = "机构名称", example = "王五") + private String branchName; + + @Schema(description = "机构类型(1:总公司 2:子公司)", example = "2") + private String branchType; + + @Schema(description = "管理员", example = "赵六") + private String adminName; + + @Schema(description = "联系电话") + private String telephone; + + @Schema(description = "备注", example = "随便") + private String branchRemark; + + @Schema(description = "上级机构") + private String branchSuperior; + + @Schema(description = "图片") + private String logo; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "关联员工", example = "王五") + private String userNum; +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchRespVO.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchRespVO.java new file mode 100644 index 00000000..8d854159 --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchRespVO.java @@ -0,0 +1,22 @@ +package com.yunxi.scm.module.system.controller.admin.enterprisebranch.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 EnterpriseBranchRespVO extends EnterpriseBranchBaseVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7497") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime updateTime; + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchUpdateReqVO.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchUpdateReqVO.java new file mode 100644 index 00000000..b20bb7c6 --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/enterprisebranch/vo/EnterpriseBranchUpdateReqVO.java @@ -0,0 +1,18 @@ +package com.yunxi.scm.module.system.controller.admin.enterprisebranch.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 EnterpriseBranchUpdateReqVO extends EnterpriseBranchBaseVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7497") + @NotNull(message = "ID不能为空") + private Long id; + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/enterprisebranch/EnterpriseBranchConvert.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/enterprisebranch/EnterpriseBranchConvert.java new file mode 100644 index 00000000..51e4ebec --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/enterprisebranch/EnterpriseBranchConvert.java @@ -0,0 +1,34 @@ +package com.yunxi.scm.module.system.convert.enterprisebranch; + +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.enterprisebranch.vo.*; +import com.yunxi.scm.module.system.dal.dataobject.enterprisebranch.EnterpriseBranchDO; + +/** + * 分支机构 Convert + * + * @author 长江云息 + */ +@Mapper +public interface EnterpriseBranchConvert { + + EnterpriseBranchConvert INSTANCE = Mappers.getMapper(EnterpriseBranchConvert.class); + + EnterpriseBranchDO convert(EnterpriseBranchCreateReqVO bean); + + EnterpriseBranchDO convert(EnterpriseBranchUpdateReqVO bean); + + EnterpriseBranchRespVO convert(EnterpriseBranchDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/enterprisebranch/EnterpriseBranchDO.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/enterprisebranch/EnterpriseBranchDO.java new file mode 100644 index 00000000..9b8105e9 --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/enterprisebranch/EnterpriseBranchDO.java @@ -0,0 +1,82 @@ +package com.yunxi.scm.module.system.dal.dataobject.enterprisebranch; + +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_enterprise_branch") +@KeySequence("system_enterprise_branch_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EnterpriseBranchDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * 机构名称 + */ + private String branchName; + /** + * 机构类型(1:总公司 2:子公司) + * + * 枚举 {@link TODO enterprise_type 对应的类} + */ + private String branchType; + /** + * 管理员 + */ + private String adminName; + /** + * 联系电话 + */ + private String telephone; + /** + * 备注 + */ + private String branchRemark; + /** + * 上级机构 + */ + private String branchSuperior; + /** + * 图片 + */ + private String logo; + + @TableField(exist = false) + private Integer enterpriseNum; + + @TableField(exist = false) + private Integer businessNum; + /** + * 关联子公司 + */ + @TableField(exist = false) + private Integer enterprise; + /** + * 关联业务线 + */ + @TableField(exist = false) + private Integer businesNum; + /** + * 关联人员 + */ + @TableField(exist = false) + private Integer userNum; + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/enterprise/EnterpriseMapper.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/enterprise/EnterpriseMapper.java index 4bb36498..2b6b0c0b 100644 --- a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/enterprise/EnterpriseMapper.java +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/enterprise/EnterpriseMapper.java @@ -6,6 +6,7 @@ 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.enterprise.EnterpriseDO; +import com.yunxi.scm.module.system.dal.dataobject.enterpriseoperate.EnterpriseOperateDO; import org.apache.ibatis.annotations.Mapper; import com.yunxi.scm.module.system.controller.admin.enterprise.vo.*; import org.apache.ibatis.annotations.Param; @@ -55,4 +56,6 @@ public interface EnterpriseMapper extends BaseMapperX { List getEnterpriseListByTenantId(@Param("tenantId") Long tenantId, @Param("userId") Long userId); List getEnterpriseList(); + + List getEnterpriseOperateList(); } diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/enterprisebranch/EnterpriseBranchMapper.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/enterprisebranch/EnterpriseBranchMapper.java new file mode 100644 index 00000000..36a9f375 --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/enterprisebranch/EnterpriseBranchMapper.java @@ -0,0 +1,51 @@ +package com.yunxi.scm.module.system.dal.mysql.enterprisebranch; + +import java.util.*; + +import com.baomidou.mybatisplus.core.metadata.IPage; +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.enterprisebranch.EnterpriseBranchDO; +import org.apache.ibatis.annotations.Mapper; +import com.yunxi.scm.module.system.controller.admin.enterprisebranch.vo.*; +import org.apache.ibatis.annotations.Param; + +/** + * 分支机构 Mapper + * + * @author 长江云息 + */ +@Mapper +public interface EnterpriseBranchMapper extends BaseMapperX { + + default PageResult selectPage(EnterpriseBranchPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(EnterpriseBranchDO::getBranchName, reqVO.getBranchName()) + .eqIfPresent(EnterpriseBranchDO::getBranchType, reqVO.getBranchType()) + .likeIfPresent(EnterpriseBranchDO::getAdminName, reqVO.getAdminName()) + .eqIfPresent(EnterpriseBranchDO::getTelephone, reqVO.getTelephone()) + .eqIfPresent(EnterpriseBranchDO::getBranchRemark, reqVO.getBranchRemark()) + .eqIfPresent(EnterpriseBranchDO::getBranchSuperior, reqVO.getBranchSuperior()) + .eqIfPresent(EnterpriseBranchDO::getLogo, reqVO.getLogo()) + .betweenIfPresent(EnterpriseBranchDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(EnterpriseBranchDO::getId)); + } + + default List selectList(EnterpriseBranchExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .likeIfPresent(EnterpriseBranchDO::getBranchName, reqVO.getBranchName()) + .eqIfPresent(EnterpriseBranchDO::getBranchType, reqVO.getBranchType()) + .likeIfPresent(EnterpriseBranchDO::getAdminName, reqVO.getAdminName()) + .eqIfPresent(EnterpriseBranchDO::getTelephone, reqVO.getTelephone()) + .eqIfPresent(EnterpriseBranchDO::getBranchRemark, reqVO.getBranchRemark()) + .eqIfPresent(EnterpriseBranchDO::getBranchSuperior, reqVO.getBranchSuperior()) + .eqIfPresent(EnterpriseBranchDO::getLogo, reqVO.getLogo()) + .betweenIfPresent(EnterpriseBranchDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(EnterpriseBranchDO::getId)); + } + + //自定义分页 + IPage selectListPage(IPage page, @Param("reqVO") EnterpriseBranchPageReqVO reqVO); + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprise/EnterpriseService.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprise/EnterpriseService.java index 5111bf30..8045e972 100644 --- a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprise/EnterpriseService.java +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprise/EnterpriseService.java @@ -5,6 +5,7 @@ import javax.validation.*; import com.yunxi.scm.module.system.controller.admin.enterprise.vo.*; import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO; import com.yunxi.scm.framework.common.pojo.PageResult; +import com.yunxi.scm.module.system.dal.dataobject.enterpriseoperate.EnterpriseOperateDO; /** * 企业信息 Service 接口 @@ -86,4 +87,12 @@ public interface EnterpriseService { * @return 企业信息 */ List getEnterprise(); + + /** + * 获得企业信息操作记录 + * + * @param + * @return 企业信息 + */ + List getEnterpriseOperate(); } diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprise/EnterpriseServiceImpl.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprise/EnterpriseServiceImpl.java index 9e302351..114d6cfd 100644 --- a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprise/EnterpriseServiceImpl.java +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprise/EnterpriseServiceImpl.java @@ -1,5 +1,6 @@ package com.yunxi.scm.module.system.service.enterprise; + import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -7,6 +8,7 @@ import org.springframework.validation.annotation.Validated; import java.util.*; import com.yunxi.scm.module.system.controller.admin.enterprise.vo.*; import com.yunxi.scm.module.system.dal.dataobject.enterprise.EnterpriseDO; +import com.yunxi.scm.module.system.dal.dataobject.enterpriseoperate.EnterpriseOperateDO; import com.yunxi.scm.framework.common.pojo.PageResult; import com.yunxi.scm.module.system.convert.enterprise.EnterpriseConvert; @@ -89,4 +91,9 @@ public class EnterpriseServiceImpl implements EnterpriseService { return enterpriseMapper.getEnterpriseList(); } + @Override + public List getEnterpriseOperate() { + return enterpriseMapper.getEnterpriseOperateList(); + } + } diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchService.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchService.java new file mode 100644 index 00000000..5a716ba4 --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchService.java @@ -0,0 +1,80 @@ +package com.yunxi.scm.module.system.service.enterprisebranch; + +import java.util.*; +import javax.validation.*; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yunxi.scm.module.system.controller.admin.enterprisebranch.vo.*; +import com.yunxi.scm.module.system.dal.dataobject.enterprisebranch.EnterpriseBranchDO; +import com.yunxi.scm.framework.common.pojo.PageResult; + +/** + * 分支机构 Service 接口 + * + * @author 长江云息 + */ +public interface EnterpriseBranchService { + + /** + * 创建分支机构 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createEnterpriseBranch(@Valid EnterpriseBranchCreateReqVO createReqVO); + + /** + * 更新分支机构 + * + * @param updateReqVO 更新信息 + */ + void updateEnterpriseBranch(@Valid EnterpriseBranchUpdateReqVO updateReqVO); + + /** + * 删除分支机构 + * + * @param id 编号 + */ + void deleteEnterpriseBranch(Long id); + + /** + * 获得分支机构 + * + * @param id 编号 + * @return 分支机构 + */ + EnterpriseBranchDO getEnterpriseBranch(Long id); + + /** + * 获得分支机构列表 + * + * @param ids 编号 + * @return 分支机构列表 + */ + List getEnterpriseBranchList(Collection ids); + + /** + * 获得分支机构分页 + * + * @param pageReqVO 分页查询 + * @return 分支机构分页 + */ + PageResult getEnterpriseBranchPage(EnterpriseBranchPageReqVO pageReqVO); + + /** + * 获得分支机构列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 分支机构列表 + */ + List getEnterpriseBranchList(EnterpriseBranchExportReqVO exportReqVO); + + /** + * 自定义分页 + * + * @param reqVO 查询条件 + * @return 分支机构列表 + */ + PageResult getEnterpriseBranchPageList(EnterpriseBranchPageReqVO reqVO); + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchServiceImpl.java b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchServiceImpl.java new file mode 100644 index 00000000..65e544c3 --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchServiceImpl.java @@ -0,0 +1,91 @@ +package com.yunxi.scm.module.system.service.enterprisebranch; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +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.enterprisebranch.vo.*; +import com.yunxi.scm.module.system.dal.dataobject.enterprisebranch.EnterpriseBranchDO; +import com.yunxi.scm.framework.common.pojo.PageResult; + +import com.yunxi.scm.module.system.convert.enterprisebranch.EnterpriseBranchConvert; +import com.yunxi.scm.module.system.dal.mysql.enterprisebranch.EnterpriseBranchMapper; + +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 EnterpriseBranchServiceImpl implements EnterpriseBranchService { + + @Resource + private EnterpriseBranchMapper enterpriseBranchMapper; + + @Override + public Long createEnterpriseBranch(EnterpriseBranchCreateReqVO createReqVO) { + // 插入 + EnterpriseBranchDO enterpriseBranch = EnterpriseBranchConvert.INSTANCE.convert(createReqVO); + enterpriseBranchMapper.insert(enterpriseBranch); + // 返回 + return enterpriseBranch.getId(); + } + + @Override + public void updateEnterpriseBranch(EnterpriseBranchUpdateReqVO updateReqVO) { + // 校验存在 + validateEnterpriseBranchExists(updateReqVO.getId()); + // 更新 + EnterpriseBranchDO updateObj = EnterpriseBranchConvert.INSTANCE.convert(updateReqVO); + enterpriseBranchMapper.updateById(updateObj); + } + + @Override + public void deleteEnterpriseBranch(Long id) { + // 校验存在 + validateEnterpriseBranchExists(id); + // 删除 + enterpriseBranchMapper.deleteById(id); + } + + private void validateEnterpriseBranchExists(Long id) { + if (enterpriseBranchMapper.selectById(id) == null) { + throw exception(ENTERPRISE_BRANCH_NOT_EXISTS); + } + } + + @Override + public EnterpriseBranchDO getEnterpriseBranch(Long id) { + return enterpriseBranchMapper.selectById(id); + } + + @Override + public List getEnterpriseBranchList(Collection ids) { + return enterpriseBranchMapper.selectBatchIds(ids); + } + + @Override + public PageResult getEnterpriseBranchPage(EnterpriseBranchPageReqVO pageReqVO) { + return enterpriseBranchMapper.selectPage(pageReqVO); + } + + @Override + public List getEnterpriseBranchList(EnterpriseBranchExportReqVO exportReqVO) { + return enterpriseBranchMapper.selectList(exportReqVO); + } + + @Override + public PageResult getEnterpriseBranchPageList(EnterpriseBranchPageReqVO reqVO) { + IPage page=new Page<>(reqVO.getPageNo(),reqVO.getPageSize()); + enterpriseBranchMapper.selectListPage(page,reqVO); + return new PageResult<>(page.getRecords(),page.getTotal()); + } + +} diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/resources/Mapper/enterprise/EnterpriseMapper.xml b/yunxi-module-system/yunxi-module-system-biz/src/main/resources/Mapper/enterprise/EnterpriseMapper.xml index d14ad4ba..c85bd02f 100644 --- a/yunxi-module-system/yunxi-module-system-biz/src/main/resources/Mapper/enterprise/EnterpriseMapper.xml +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/resources/Mapper/enterprise/EnterpriseMapper.xml @@ -17,4 +17,11 @@ SELECT * from system_enterprise + + diff --git a/yunxi-module-system/yunxi-module-system-biz/src/main/resources/Mapper/enterprisebranch/EnterpriseBranchMapper.xml b/yunxi-module-system/yunxi-module-system-biz/src/main/resources/Mapper/enterprisebranch/EnterpriseBranchMapper.xml new file mode 100644 index 00000000..3ca7550e --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/main/resources/Mapper/enterprisebranch/EnterpriseBranchMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchServiceImplTest.java b/yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchServiceImplTest.java new file mode 100644 index 00000000..5bf6900a --- /dev/null +++ b/yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/enterprisebranch/EnterpriseBranchServiceImplTest.java @@ -0,0 +1,207 @@ +package com.yunxi.scm.module.system.service.enterprisebranch; + +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.system.controller.admin.enterprisebranch.vo.*; +import com.yunxi.scm.module.system.dal.dataobject.enterprisebranch.EnterpriseBranchDO; +import com.yunxi.scm.module.system.dal.mysql.enterprisebranch.EnterpriseBranchMapper; +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.system.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 EnterpriseBranchServiceImpl} 的单元测试类 + * + * @author 长江云息 + */ +@Import(EnterpriseBranchServiceImpl.class) +public class EnterpriseBranchServiceImplTest extends BaseDbUnitTest { + + @Resource + private EnterpriseBranchServiceImpl enterpriseBranchService; + + @Resource + private EnterpriseBranchMapper enterpriseBranchMapper; + + @Test + public void testCreateEnterpriseBranch_success() { + // 准备参数 + EnterpriseBranchCreateReqVO reqVO = randomPojo(EnterpriseBranchCreateReqVO.class); + + // 调用 + Long enterpriseBranchId = enterpriseBranchService.createEnterpriseBranch(reqVO); + // 断言 + assertNotNull(enterpriseBranchId); + // 校验记录的属性是否正确 + EnterpriseBranchDO enterpriseBranch = enterpriseBranchMapper.selectById(enterpriseBranchId); + assertPojoEquals(reqVO, enterpriseBranch); + } + + @Test + public void testUpdateEnterpriseBranch_success() { + // mock 数据 + EnterpriseBranchDO dbEnterpriseBranch = randomPojo(EnterpriseBranchDO.class); + enterpriseBranchMapper.insert(dbEnterpriseBranch);// @Sql: 先插入出一条存在的数据 + // 准备参数 + EnterpriseBranchUpdateReqVO reqVO = randomPojo(EnterpriseBranchUpdateReqVO.class, o -> { + o.setId(dbEnterpriseBranch.getId()); // 设置更新的 ID + }); + + // 调用 + enterpriseBranchService.updateEnterpriseBranch(reqVO); + // 校验是否更新正确 + EnterpriseBranchDO enterpriseBranch = enterpriseBranchMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, enterpriseBranch); + } + + @Test + public void testUpdateEnterpriseBranch_notExists() { + // 准备参数 + EnterpriseBranchUpdateReqVO reqVO = randomPojo(EnterpriseBranchUpdateReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> enterpriseBranchService.updateEnterpriseBranch(reqVO), ENTERPRISE_BRANCH_NOT_EXISTS); + } + + @Test + public void testDeleteEnterpriseBranch_success() { + // mock 数据 + EnterpriseBranchDO dbEnterpriseBranch = randomPojo(EnterpriseBranchDO.class); + enterpriseBranchMapper.insert(dbEnterpriseBranch);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbEnterpriseBranch.getId(); + + // 调用 + enterpriseBranchService.deleteEnterpriseBranch(id); + // 校验数据不存在了 + assertNull(enterpriseBranchMapper.selectById(id)); + } + + @Test + public void testDeleteEnterpriseBranch_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> enterpriseBranchService.deleteEnterpriseBranch(id), ENTERPRISE_BRANCH_NOT_EXISTS); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetEnterpriseBranchPage() { + // mock 数据 + EnterpriseBranchDO dbEnterpriseBranch = randomPojo(EnterpriseBranchDO.class, o -> { // 等会查询到 + o.setBranchName(null); + o.setBranchType(null); + o.setAdminName(null); + o.setTelephone(null); + o.setBranchRemark(null); + o.setBranchSuperior(null); + o.setLogo(null); + o.setCreateTime(null); + }); + enterpriseBranchMapper.insert(dbEnterpriseBranch); + // 测试 branchName 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setBranchName(null))); + // 测试 branchType 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setBranchType(null))); + // 测试 adminName 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setAdminName(null))); + // 测试 telephone 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setTelephone(null))); + // 测试 branchRemark 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setBranchRemark(null))); + // 测试 branchSuperior 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setBranchSuperior(null))); + // 测试 logo 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setLogo(null))); + // 测试 createTime 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setCreateTime(null))); + // 准备参数 + EnterpriseBranchPageReqVO reqVO = new EnterpriseBranchPageReqVO(); + reqVO.setBranchName(null); + reqVO.setBranchType(null); + reqVO.setAdminName(null); + reqVO.setTelephone(null); + reqVO.setBranchRemark(null); + reqVO.setBranchSuperior(null); + reqVO.setLogo(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + PageResult pageResult = enterpriseBranchService.getEnterpriseBranchPage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbEnterpriseBranch, pageResult.getList().get(0)); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetEnterpriseBranchList() { + // mock 数据 + EnterpriseBranchDO dbEnterpriseBranch = randomPojo(EnterpriseBranchDO.class, o -> { // 等会查询到 + o.setBranchName(null); + o.setBranchType(null); + o.setAdminName(null); + o.setTelephone(null); + o.setBranchRemark(null); + o.setBranchSuperior(null); + o.setLogo(null); + o.setCreateTime(null); + }); + enterpriseBranchMapper.insert(dbEnterpriseBranch); + // 测试 branchName 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setBranchName(null))); + // 测试 branchType 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setBranchType(null))); + // 测试 adminName 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setAdminName(null))); + // 测试 telephone 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setTelephone(null))); + // 测试 branchRemark 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setBranchRemark(null))); + // 测试 branchSuperior 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setBranchSuperior(null))); + // 测试 logo 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setLogo(null))); + // 测试 createTime 不匹配 + enterpriseBranchMapper.insert(cloneIgnoreId(dbEnterpriseBranch, o -> o.setCreateTime(null))); + // 准备参数 + EnterpriseBranchExportReqVO reqVO = new EnterpriseBranchExportReqVO(); + reqVO.setBranchName(null); + reqVO.setBranchType(null); + reqVO.setAdminName(null); + reqVO.setTelephone(null); + reqVO.setBranchRemark(null); + reqVO.setBranchSuperior(null); + reqVO.setLogo(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + List list = enterpriseBranchService.getEnterpriseBranchList(reqVO); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbEnterpriseBranch, list.get(0)); + } + +} diff --git a/yunxi-ui-admin-vben/src/api/system/enterprise/index.ts b/yunxi-ui-admin-vben/src/api/system/enterprise/index.ts index fe4a8799..15167e13 100644 --- a/yunxi-ui-admin-vben/src/api/system/enterprise/index.ts +++ b/yunxi-ui-admin-vben/src/api/system/enterprise/index.ts @@ -41,6 +41,11 @@ export function getEnterpriseList() { return defHttp.get({ url: '/system/enterprise/getenterperise' }) } +// 查询企业操作记录信息 +export function getEnterpriseOperateList() { + return defHttp.get({ url: '/system/enterprise/getenterperiseOperate' }) +} + // // 查询企业信息 // export function getEnterpriseList() { // return defHttp.put({ url: '/system/enterprise/querylist' }) diff --git a/yunxi-ui-admin-vben/src/api/system/enterpriseBranch/index.ts b/yunxi-ui-admin-vben/src/api/system/enterpriseBranch/index.ts new file mode 100644 index 00000000..125fdb97 --- /dev/null +++ b/yunxi-ui-admin-vben/src/api/system/enterpriseBranch/index.ts @@ -0,0 +1,47 @@ +import { defHttp } from '@/utils/http/axios' + + +// export interface EnterpriseBranchPageReqVO extends PageParam { +// branchName?: string +// branchType?: string +// adminName?: string +// telephone?: string +// branchRemark?: string +// createTime?: Date[] +// } + + +// 查询分支机构列表 +export function getEnterpriseBranchPage(params) { + return defHttp.get({ url: '/system/enterprise-branch/page', params }) +} + +// 查询分支机构列表 +export function getEnterpriseBranchPage1(params) { + return defHttp.get({ url: '/system/enterprise-branch/page1', params }) +} + +// 查询分支机构详情 +export function getEnterpriseBranch(id: number) { + return defHttp.get({ url: '/system/enterprise-branch/get?id=' + id }) +} + +// 新增分支机构 +export function createEnterpriseBranch(data) { + return defHttp.post({ url: '/system/enterprise-branch/create', data }) +} + +// 修改分支机构 +export function updateEnterpriseBranch(data) { + return defHttp.put({ url: '/system/enterprise-branch/update', data }) +} + +// 删除分支机构 +export function deleteEnterpriseBranch(id: number) { + return defHttp.delete({ url: '/system/enterprise-branch/delete?id=' + id }) +} + +// 导出分支机构 Excel +export function exportEnterpriseBranch(params) { + return defHttp.download({ url: '/system/enterprise-branch/export-excel', params }, '分支机构.xls') +} diff --git a/yunxi-ui-admin-vben/src/utils/dict.ts b/yunxi-ui-admin-vben/src/utils/dict.ts index e7b0d1f1..9a9b37a7 100644 --- a/yunxi-ui-admin-vben/src/utils/dict.ts +++ b/yunxi-ui-admin-vben/src/utils/dict.ts @@ -170,4 +170,5 @@ export enum DICT_TYPE { customerSource = 'customer_source', //客户星级 enterpriseNature = 'enterprise_nature', //客户星级 XUELI = 'XUELI', //学历 + ENTERPRISE_OPERATE_TYPE = 'enterprise_operate_type', //客户星级 } diff --git a/yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/branch/index1.vue b/yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/branch/index1.vue new file mode 100644 index 00000000..2fc7703e --- /dev/null +++ b/yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/branch/index1.vue @@ -0,0 +1,357 @@ + + + + \ No newline at end of file diff --git a/yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/branch/src/ModalAdd1.vue b/yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/branch/src/ModalAdd1.vue new file mode 100644 index 00000000..38ccf62c --- /dev/null +++ b/yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/branch/src/ModalAdd1.vue @@ -0,0 +1,89 @@ + + + + + + \ No newline at end of file diff --git a/yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/enterpriseDetails/src/OperateRecords.vue b/yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/enterpriseDetails/src/OperateRecords.vue index 086433f1..de953337 100644 --- a/yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/enterpriseDetails/src/OperateRecords.vue +++ b/yunxi-ui-admin-vben/src/views/stpagea/enterpriseCentre/enterpriseDetails/src/OperateRecords.vue @@ -1,140 +1,181 @@ @@ -142,10 +183,12 @@ const dataSource: any = [ - diff --git a/yunxi-ui-admin-vben/src/views/users/mine/index.vue b/yunxi-ui-admin-vben/src/views/users/mine/index.vue index 1f69a5cb..336d5864 100644 --- a/yunxi-ui-admin-vben/src/views/users/mine/index.vue +++ b/yunxi-ui-admin-vben/src/views/users/mine/index.vue @@ -98,6 +98,7 @@ onMounted( async () => { state.userInfo = await getUserProfileApi() state.userUpdatePasswordReqVO.id = state.userInfo.id; state.loginLog = await getLoginLogPage(); + state.noticePage = await getNoticePage(); state.enterpriseList = userStore.getUserInfo.user.enterpriseList; })