From 62d5cdff1c7e74a3b9358d8bc5efe6e40130aeb1 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Thu, 1 Aug 2024 18:02:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=A7=9F=E6=88=B7=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=9B=E5=BB=BA=E7=A7=9F=E6=88=B7=E9=A1=B6=E7=BA=A7?= =?UTF-8?q?=E9=83=A8=E9=97=A8=EF=BC=8C=E6=9B=B4=E6=96=B0=E7=A7=9F=E6=88=B7?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=96=B0=E9=A1=B6=E7=BA=A7=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E5=90=8D=E7=A7=B0=EF=BC=8C=E7=99=BB=E5=BD=95=E9=A1=B5?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=90=8E=E7=BC=80tenantCode=E5=80=BC?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=8E=B7=E5=8F=96=E7=99=BB=E5=BD=95=E7=A7=9F?= =?UTF-8?q?=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/converter/DateFormatConverter.java | 33 +++++++ .../controller/admin/CompanyController.java | 96 +++++++++++++++++++ .../controller/admin/DlCompanyController.java | 42 -------- .../entity/{DlCompany.java => Company.java} | 26 ++++- ...lCompanyMapper.java => CompanyMapper.java} | 6 +- ...ompanyService.java => CompanyService.java} | 6 +- ...rviceImpl.java => CompanyServiceImpl.java} | 18 ++-- .../yudao/module/company/vo/CompanyReqVO.java | 12 ++- .../module/company/vo/CompanyRespVO.java | 20 ++++ .../admin/CustomerMainController.java | 2 - .../custom/service/CustomerMainService.java | 1 - .../mapper/company/CompanyMapper.xml | 34 +++++++ .../mapper/company/DlCompanyMapper.xml | 8 -- .../framework/common/pojo/CommonResult.java | 7 ++ .../mybatis/core/dataobject/BaseDO.java | 6 ++ .../admin/tenant/TenantController.java | 4 +- .../system/dal/mysql/dept/DeptMapper.java | 3 + .../system/service/dept/DeptService.java | 9 ++ .../system/service/dept/DeptServiceImpl.java | 15 +++ .../service/tenant/TenantServiceImpl.java | 22 +++++ .../src/main/resources/application-local.yaml | 2 +- 21 files changed, 296 insertions(+), 76 deletions(-) create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/converter/DateFormatConverter.java create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/CompanyController.java delete mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/DlCompanyController.java rename dl-module-base/src/main/java/cn/iocoder/yudao/module/company/entity/{DlCompany.java => Company.java} (56%) rename dl-module-base/src/main/java/cn/iocoder/yudao/module/company/mapper/{DlCompanyMapper.java => CompanyMapper.java} (70%) rename dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/{DlCompanyService.java => CompanyService.java} (75%) rename dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/impl/{DlCompanyServiceImpl.java => CompanyServiceImpl.java} (60%) create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/company/vo/CompanyRespVO.java create mode 100644 dl-module-base/src/main/resources/mapper/company/CompanyMapper.xml delete mode 100644 dl-module-base/src/main/resources/mapper/company/DlCompanyMapper.xml diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/converter/DateFormatConverter.java b/dl-module-base/src/main/java/cn/iocoder/yudao/converter/DateFormatConverter.java new file mode 100644 index 00000000..f0ccbd7f --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/converter/DateFormatConverter.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.converter; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.enums.CellDataTypeEnum; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; + +import java.util.Date; + +/** + * excel导出格式化日期 + * @author vinjor-M + * @date 15:32 2024/8/1 +**/ +public class DateFormatConverter implements Converter { + @Override + public Class supportJavaTypeKey() { + return Date.class; + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + return CellDataTypeEnum.STRING; + } + + @Override + public WriteCellData convertToExcelData( + Date value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception{ + return new WriteCellData<>(DateUtil.formatDate(value)); + } +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/CompanyController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/CompanyController.java new file mode 100644 index 00000000..e41a7b2a --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/CompanyController.java @@ -0,0 +1,96 @@ +package cn.iocoder.yudao.module.company.controller.admin; +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.company.entity.Company; +import cn.iocoder.yudao.module.company.vo.CompanyRespVO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import cn.iocoder.yudao.module.company.vo.CompanyReqVO; +import io.swagger.v3.oas.annotations.Parameter; +import org.springframework.web.bind.annotation.*; +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.Operation; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; + +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import org.springframework.beans.factory.annotation.Autowired; +import cn.iocoder.yudao.module.company.service.CompanyService; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +/** + * 企业信息表(每个租户的下属企业信息);(dl_company)表控制层 + * @author : http://www.chiner.pro + * @date : 2024-7-31 + */ +@RestController +@RequestMapping("/base/company") +@Tag(name = "管理后台 - BASE 企业管理") +@Validated +public class CompanyController { + @Autowired + private CompanyService companyService; + + @GetMapping("/page") + @Operation(summary = "获得企业信息表(每个租户的下属企业信息)分页") + @PreAuthorize("@ss.hasPermission('base:company:query')") + public CommonResult> getCompanyPage(CompanyReqVO pageReqVO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); + return success(companyService.queryListPage(pageReqVO,page)); + } + + @PostMapping("/create") + @Operation(summary = "创建企业信息表(每个租户的下属企业信息)") + @PreAuthorize("@ss.hasPermission('base:company:create')") + public CommonResult createCompany(@RequestBody Company company) { + companyService.save(company); + return CommonResult.ok(); + } + + @PutMapping("/update") + @Operation(summary = "更新企业信息表(每个租户的下属企业信息)") + @PreAuthorize("@ss.hasPermission('base:company:update')") + public CommonResult updateCompany(@RequestBody Company company) { + companyService.updateById(company); + return CommonResult.ok(); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除企业信息表(每个租户的下属企业信息)") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:company:delete')") + public CommonResult deleteCompany(@RequestParam("id") String id) { + companyService.removeById(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得企业信息表(每个租户的下属企业信息)") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:company:query')") + public CommonResult getCompany(@RequestParam("id") String id) { + Company company = companyService.getById(id); + return success(BeanUtils.toBean(company, CompanyRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出企业信息表(每个租户的下属企业信息) Excel") + @PreAuthorize("@ss.hasPermission('base:company:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportCompanyExcel( CompanyReqVO pageReqVO, + HttpServletResponse response) throws IOException { + List list = companyService.list(); + // 导出 Excel + ExcelUtils.write(response, "企业信息表.xls", "数据", Company.class, list); + } +} \ No newline at end of file diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/DlCompanyController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/DlCompanyController.java deleted file mode 100644 index ad118849..00000000 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/controller/admin/DlCompanyController.java +++ /dev/null @@ -1,42 +0,0 @@ -package cn.iocoder.yudao.module.company.controller.admin; -import cn.iocoder.yudao.module.company.entity.DlCompany; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import cn.iocoder.yudao.module.company.vo.CompanyReqVO; -import org.springframework.web.bind.annotation.*; -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.Operation; - -import cn.iocoder.yudao.framework.common.pojo.CommonResult; - -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -import org.springframework.beans.factory.annotation.Autowired; -import cn.iocoder.yudao.module.company.service.DlCompanyService; - -/** - * 企业信息表(每个租户的下属企业信息);(dl_company)表控制层 - * @author : http://www.chiner.pro - * @date : 2024-7-31 - */ -@RestController -@RequestMapping("/base/company") -@Tag(name = "管理后台 - BASE 企业管理") -@Validated -public class DlCompanyController{ - @Autowired - private DlCompanyService dlCompanyService; - - @GetMapping("/page") - @Operation(summary = "获得企业信息表(每个租户的下属企业信息)分页") - @PreAuthorize("@ss.hasPermission('base:company:query')") - - public CommonResult> getCompanyPage(CompanyReqVO pageReqVO, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { - Page page = new Page<>(pageNo, pageSize); - return success(dlCompanyService.queryListPage(pageReqVO,page)); - } -} \ No newline at end of file diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/entity/DlCompany.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/entity/Company.java similarity index 56% rename from dl-module-base/src/main/java/cn/iocoder/yudao/module/company/entity/DlCompany.java rename to dl-module-base/src/main/java/cn/iocoder/yudao/module/company/entity/Company.java index 8fa60c47..90d973cc 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/entity/DlCompany.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/entity/Company.java @@ -1,10 +1,16 @@ package cn.iocoder.yudao.module.company.entity; +import cn.iocoder.yudao.converter.DateFormatConverter; import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @@ -13,34 +19,48 @@ import java.util.Date; * @author : http://www.chiner.pro * @date : 2024-7-31 */ -@TableName("dl_company") +@TableName("base_company") @Data @EqualsAndHashCode(callSuper = true) -public class DlCompany extends TenantBaseDO { +@ExcelIgnoreUnannotated +public class Company extends TenantBaseDO { /** 主键标识 */ - @TableId + @TableId(type = IdType.ASSIGN_ID) private String id ; /** 企业名称 */ + @ExcelProperty("企业名称") private String corpName ; /** 统一社会信用代码 */ + @ExcelProperty("统一社会信用代码") private String orgCard ; /** 注册资本(单位:万元) */ + @ExcelProperty("注册资本(单位:万元)") private Integer registFund ; /** 注册日期 */ + @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ExcelProperty(value = "注册日期",converter = DateFormatConverter.class) private Date registDate ; /** 详细地址 */ + @ExcelProperty("详细地址") private String address ; /** 法人姓名 */ + @ExcelProperty("法人姓名") private String legalName ; /** 法人身份证号 */ + @ExcelProperty("法人身份证号") private String legalCard ; /** 联系人 */ + @ExcelProperty("联系人") private String contactName ; /** 联系方式 */ + @ExcelProperty("联系方式") private String mobilePhone ; /** 企业简介 */ + @ExcelProperty("企业简介") private String corpContent ; /** 经营范围 */ + @ExcelProperty("经营范围") private String business ; /** 管理员登录账号 */ private String loginAccount ; diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/mapper/DlCompanyMapper.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/mapper/CompanyMapper.java similarity index 70% rename from dl-module-base/src/main/java/cn/iocoder/yudao/module/company/mapper/DlCompanyMapper.java rename to dl-module-base/src/main/java/cn/iocoder/yudao/module/company/mapper/CompanyMapper.java index 5f7b8434..069d95f9 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/mapper/DlCompanyMapper.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/mapper/CompanyMapper.java @@ -1,6 +1,6 @@ package cn.iocoder.yudao.module.company.mapper; -import cn.iocoder.yudao.module.company.entity.DlCompany; +import cn.iocoder.yudao.module.company.entity.Company; import cn.iocoder.yudao.module.company.vo.CompanyReqVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -14,6 +14,6 @@ import org.apache.ibatis.annotations.Param; * @date : 2024-7-31 */ @Mapper -public interface DlCompanyMapper extends BaseMapper{ - IPage selectListPage(@Param("map") CompanyReqVO companyReqVO, Page page); +public interface CompanyMapper extends BaseMapper{ + IPage selectListPage(@Param("map") CompanyReqVO companyReqVO, Page page); } \ No newline at end of file diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/DlCompanyService.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/CompanyService.java similarity index 75% rename from dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/DlCompanyService.java rename to dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/CompanyService.java index 4a8d700a..37d33a4c 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/DlCompanyService.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/CompanyService.java @@ -1,6 +1,6 @@ package cn.iocoder.yudao.module.company.service; -import cn.iocoder.yudao.module.company.entity.DlCompany; +import cn.iocoder.yudao.module.company.entity.Company; import cn.iocoder.yudao.module.company.vo.CompanyReqVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,12 +11,12 @@ import com.baomidou.mybatisplus.extension.service.IService; * @author : http://www.chiner.pro * @date : 2024-7-31 */ -public interface DlCompanyService extends IService { +public interface CompanyService extends IService { /** * 获得企业信息表(每个租户的下属企业信息)分页 * * @param pageReqVO 分页查询 * @return 企业信息表(每个租户的下属企业信息)分页 */ - IPage queryListPage(CompanyReqVO pageReqVO, Page page); + IPage queryListPage(CompanyReqVO pageReqVO, Page page); } \ No newline at end of file diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/impl/DlCompanyServiceImpl.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/impl/CompanyServiceImpl.java similarity index 60% rename from dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/impl/DlCompanyServiceImpl.java rename to dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/impl/CompanyServiceImpl.java index 7c9efc0f..78ce7ffe 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/impl/DlCompanyServiceImpl.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/service/impl/CompanyServiceImpl.java @@ -1,23 +1,24 @@ package cn.iocoder.yudao.module.company.service.impl; -import cn.iocoder.yudao.module.company.entity.DlCompany; +import cn.iocoder.yudao.module.company.entity.Company; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.iocoder.yudao.module.company.vo.CompanyReqVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import cn.iocoder.yudao.module.company.mapper.DlCompanyMapper; -import cn.iocoder.yudao.module.company.service.DlCompanyService; - /** +import cn.iocoder.yudao.module.company.mapper.CompanyMapper; +import cn.iocoder.yudao.module.company.service.CompanyService; + +/** * 企业信息表(每个租户的下属企业信息);(dl_company)表服务实现类 * @author : http://www.chiner.pro * @date : 2024-7-31 */ @Service -public class DlCompanyServiceImpl extends ServiceImpl implements DlCompanyService{ +public class CompanyServiceImpl extends ServiceImpl implements CompanyService { @Autowired - private DlCompanyMapper dlCompanyMapper; + private CompanyMapper companyMapper; /** @@ -28,8 +29,7 @@ public class DlCompanyServiceImpl extends ServiceImpl queryListPage(CompanyReqVO pageReqVO, Page page) { - IPage pageList = dlCompanyMapper.selectListPage(pageReqVO,page); - return pageList; + public IPage queryListPage(CompanyReqVO pageReqVO, Page page) { + return companyMapper.selectListPage(pageReqVO,page); } } \ No newline at end of file diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/vo/CompanyReqVO.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/vo/CompanyReqVO.java index ea61abc1..d62bf48b 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/vo/CompanyReqVO.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/vo/CompanyReqVO.java @@ -1,12 +1,20 @@ package cn.iocoder.yudao.module.company.vo; -import cn.iocoder.yudao.module.company.entity.DlCompany; +import java.util.Date; + +import cn.iocoder.yudao.module.company.entity.Company; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; /** * 企业查询vo * @author vinjor-M * @date 17:37 2024/7/31 **/ @Data -public class CompanyReqVO extends DlCompany { +public class CompanyReqVO extends Company { + @Schema(description = "注册日期查询范围") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private Date[] registDateArray; } diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/vo/CompanyRespVO.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/vo/CompanyRespVO.java new file mode 100644 index 00000000..3a14aa80 --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/company/vo/CompanyRespVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.company.vo; + +import cn.iocoder.yudao.module.company.entity.Company; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +/** + * 企业返回结果vo + * @author vinjor-M + * @date 17:37 2024/7/31 +**/ +@Data +public class CompanyRespVO extends Company { + +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CustomerMainController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CustomerMainController.java index ca707160..f12987c5 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CustomerMainController.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CustomerMainController.java @@ -6,8 +6,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; -import cn.iocoder.yudao.module.company.entity.DlCompany; -import cn.iocoder.yudao.module.company.service.DlCompanyService; import cn.iocoder.yudao.module.company.vo.CompanyReqVO; import cn.iocoder.yudao.module.custom.entity.CustomerMain; import cn.iocoder.yudao.module.custom.service.CustomerMainService; diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CustomerMainService.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CustomerMainService.java index 037e121b..3a4f4bd2 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CustomerMainService.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/CustomerMainService.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.custom.service; -import cn.iocoder.yudao.module.company.entity.DlCompany; import cn.iocoder.yudao.module.custom.entity.CustomerMain; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/dl-module-base/src/main/resources/mapper/company/CompanyMapper.xml b/dl-module-base/src/main/resources/mapper/company/CompanyMapper.xml new file mode 100644 index 00000000..aad7d417 --- /dev/null +++ b/dl-module-base/src/main/resources/mapper/company/CompanyMapper.xml @@ -0,0 +1,34 @@ + + + + + + \ No newline at end of file diff --git a/dl-module-base/src/main/resources/mapper/company/DlCompanyMapper.xml b/dl-module-base/src/main/resources/mapper/company/DlCompanyMapper.xml deleted file mode 100644 index a77b078c..00000000 --- a/dl-module-base/src/main/resources/mapper/company/DlCompanyMapper.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java index e29292dd..9851621c 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java @@ -68,6 +68,13 @@ public class CommonResult implements Serializable { return result; } + public static CommonResult ok() { + CommonResult result = new CommonResult<>(); + result.code = GlobalErrorCodeConstants.SUCCESS.getCode(); + result.msg = "操作成功"; + return result; + } + public static boolean isSuccess(Integer code) { return Objects.equals(code, GlobalErrorCodeConstants.SUCCESS.getCode()); } diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/dataobject/BaseDO.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/dataobject/BaseDO.java index fc5f0a30..01ceadf4 100644 --- a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/dataobject/BaseDO.java +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/dataobject/BaseDO.java @@ -3,10 +3,12 @@ package cn.iocoder.yudao.framework.mybatis.core.dataobject; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableLogic; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fhs.core.trans.vo.TransPojo; import lombok.Data; import org.apache.ibatis.type.JdbcType; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.time.LocalDateTime; @@ -27,11 +29,15 @@ public abstract class BaseDO implements Serializable, TransPojo { * 创建时间 */ @TableField(fill = FieldFill.INSERT) + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; /** * 最后更新时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; /** * 创建者,目前使用 SysUser 的 id 编号 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java index bb7aa84f..eeb9a074 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java @@ -49,9 +49,9 @@ public class TenantController { @PermitAll @Operation(summary = "使用域名,获得租户信息", description = "登录界面,根据用户的域名,获得租户信息") @Parameter(name = "website", description = "域名", required = true, example = "www.iocoder.cn") - public CommonResult getTenantByWebsite(@RequestParam("website") String website) { + public CommonResult getTenantByWebsite(@RequestParam("website") String website) { TenantDO tenant = tenantService.getTenantByWebsite(website); - return success(BeanUtils.toBean(tenant, TenantSimpleRespVO.class)); + return success(tenant != null ? tenant.getId() : null); } @PostMapping("/create") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java index cc4f334e..e09bd4c9 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java @@ -30,4 +30,7 @@ public interface DeptMapper extends BaseMapperX { return selectList(DeptDO::getParentId, parentIds); } + default DeptDO selectTenantDeptTop(Long parentId, Long tenantId) { + return selectOne(DeptDO::getParentId, parentId, DeptDO::getTenantId, tenantId); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java index 11cb5f42..4f6cb23c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java @@ -99,4 +99,13 @@ public interface DeptService { */ void validateDeptList(Collection ids); + /** + * 根据租户id获取该租户顶级部门 + * @author vinjor-M + * @date 17:07 2024/8/1 + * @param tenantId 租户id + * @return cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO + **/ + DeptDO getTenantDeptTop(Long tenantId); + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java index 183f11fc..9ab6bfcb 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; @@ -215,4 +216,18 @@ public class DeptServiceImpl implements DeptService { }); } + /** + * 根据租户id获取该租户顶级部门 + * + * @param tenantId 租户id + * @return cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO + * @author vinjor-M + * @date 17:07 2024/8/1 + **/ + @Override + @TenantIgnore + public DeptDO getTenantDeptTop(Long tenantId) { + return deptMapper.selectTenantDeptTop(DeptDO.PARENT_ID_ROOT,tenantId); + } + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java index b4bdf103..fa0ae1ea 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java @@ -12,10 +12,12 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.tenant.config.TenantProperties; import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; import cn.iocoder.yudao.module.system.convert.tenant.TenantConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; @@ -23,6 +25,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantPackageDO; import cn.iocoder.yudao.module.system.dal.mysql.tenant.TenantMapper; import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum; import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum; +import cn.iocoder.yudao.module.system.service.dept.DeptService; import cn.iocoder.yudao.module.system.service.permission.MenuService; import cn.iocoder.yudao.module.system.service.permission.PermissionService; import cn.iocoder.yudao.module.system.service.permission.RoleService; @@ -73,6 +76,8 @@ public class TenantServiceImpl implements TenantService { private MenuService menuService; @Resource private PermissionService permissionService; + @Resource + private DeptService deptService; @Override public List getTenantIdList() { @@ -115,10 +120,22 @@ public class TenantServiceImpl implements TenantService { Long userId = createUser(roleId, createReqVO); // 修改租户的管理员 tenantMapper.updateById(new TenantDO().setId(tenant.getId()).setContactUserId(userId)); + //创建顶级部门 + createDept(userId,createReqVO.getName(),createReqVO.getContactMobile()); }); return tenant.getId(); } + private Long createDept(Long userId,String deptName,String phone){ + DeptSaveReqVO deptSaveReqVO = new DeptSaveReqVO(); + deptSaveReqVO.setName(deptName); + deptSaveReqVO.setSort(0); + deptSaveReqVO.setPhone(phone); + deptSaveReqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + deptSaveReqVO.setLeaderUserId(userId); + return deptService.createDept(deptSaveReqVO); + } + private Long createUser(Long roleId, TenantSaveReqVO createReqVO) { // 创建用户 Long userId = userService.createUser(TenantConvert.INSTANCE.convert02(createReqVO)); @@ -157,6 +174,11 @@ public class TenantServiceImpl implements TenantService { if (ObjectUtil.notEqual(tenant.getPackageId(), updateReqVO.getPackageId())) { updateTenantRoleMenu(tenant.getId(), tenantPackage.getMenuIds()); } + //更新租户顶级部门名称 + DeptDO deptDO = deptService.getTenantDeptTop(updateReqVO.getId()); + deptDO.setName(updateReqVO.getName()); + DeptSaveReqVO deptSaveReqVO = BeanUtils.toBean(deptDO,DeptSaveReqVO.class); + deptService.updateDept(deptSaveReqVO); } private void validTenantNameDuplicate(String name, Long id) { diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml index 14a7ea55..e10a7105 100644 --- a/yudao-server/src/main/resources/application-local.yaml +++ b/yudao-server/src/main/resources/application-local.yaml @@ -175,7 +175,7 @@ logging: cn.iocoder.yudao.module.crm.dal.mysql: debug cn.iocoder.yudao.module.erp.dal.mysql: debug org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR # TODO 芋艿:先禁用,Spring Boot 3.X 存在部分错误的 WARN 提示 - cn.iocoder.yudao.module.custom.mapper.DlCompanyMapper: debug # + cn.iocoder.yudao.module.company.mapper.DlCompanyMapper: debug # debug: false