16 changed files with 1072 additions and 11 deletions
@ -0,0 +1,114 @@ |
|||
package org.dromara.platform.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.dromara.platform.domain.DistrictInfo; |
|||
import org.dromara.platform.domain.ProjectCategoryPoint; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.platform.domain.vo.DistrictInfoVo; |
|||
import org.dromara.platform.domain.bo.DistrictInfoBo; |
|||
import org.dromara.platform.service.IDistrictInfoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 区域信息-用于下拉框 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/platform/districtInfo") |
|||
public class DistrictInfoController extends BaseController { |
|||
|
|||
private final IDistrictInfoService districtInfoService; |
|||
|
|||
/** |
|||
* 查询区域信息-用于下拉框列表 |
|||
*/ |
|||
@SaCheckPermission("platform:districtInfo:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<DistrictInfoVo> list(DistrictInfoBo bo, PageQuery pageQuery) { |
|||
return districtInfoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出区域信息-用于下拉框列表 |
|||
*/ |
|||
@SaCheckPermission("platform:districtInfo:export") |
|||
@Log(title = "区域信息-用于下拉框", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(DistrictInfoBo bo, HttpServletResponse response) { |
|||
List<DistrictInfoVo> list = districtInfoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "区域信息-用于下拉框", DistrictInfoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取区域信息-用于下拉框详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("platform:districtInfo:query") |
|||
@GetMapping("/{id}") |
|||
public R<DistrictInfoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(districtInfoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增区域信息-用于下拉框 |
|||
*/ |
|||
@SaCheckPermission("platform:districtInfo:add") |
|||
@Log(title = "区域信息-用于下拉框", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody DistrictInfoBo bo) { |
|||
return toAjax(districtInfoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改区域信息-用于下拉框 |
|||
*/ |
|||
@SaCheckPermission("platform:districtInfo:edit") |
|||
@Log(title = "区域信息-用于下拉框", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DistrictInfoBo bo) { |
|||
return toAjax(districtInfoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除区域信息-用于下拉框 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("platform:districtInfo:remove") |
|||
@Log(title = "区域信息-用于下拉框", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(districtInfoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
|
|||
|
|||
@SaCheckPermission("platform:districtInfo:queryAll") |
|||
@GetMapping("/queryAll") |
|||
public R<List<DistrictInfo>> queryAll() { |
|||
return R.ok(districtInfoService.queryAll()); |
|||
} |
|||
} |
@ -0,0 +1,105 @@ |
|||
package org.dromara.platform.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.platform.domain.vo.PartyInfoVo; |
|||
import org.dromara.platform.domain.bo.PartyInfoBo; |
|||
import org.dromara.platform.service.IPartyInfoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 单位信息-用于下拉框 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/platform/partyInfo") |
|||
public class PartyInfoController extends BaseController { |
|||
|
|||
private final IPartyInfoService partyInfoService; |
|||
|
|||
/** |
|||
* 查询单位信息-用于下拉框列表 |
|||
*/ |
|||
@SaCheckPermission("platform:partyInfo:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<PartyInfoVo> list(PartyInfoBo bo, PageQuery pageQuery) { |
|||
return partyInfoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出单位信息-用于下拉框列表 |
|||
*/ |
|||
@SaCheckPermission("platform:partyInfo:export") |
|||
@Log(title = "单位信息-用于下拉框", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PartyInfoBo bo, HttpServletResponse response) { |
|||
List<PartyInfoVo> list = partyInfoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "单位信息-用于下拉框", PartyInfoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取单位信息-用于下拉框详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("platform:partyInfo:query") |
|||
@GetMapping("/{id}") |
|||
public R<PartyInfoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(partyInfoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增单位信息-用于下拉框 |
|||
*/ |
|||
@SaCheckPermission("platform:partyInfo:add") |
|||
@Log(title = "单位信息-用于下拉框", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PartyInfoBo bo) { |
|||
return toAjax(partyInfoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改单位信息-用于下拉框 |
|||
*/ |
|||
@SaCheckPermission("platform:partyInfo:edit") |
|||
@Log(title = "单位信息-用于下拉框", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PartyInfoBo bo) { |
|||
return toAjax(partyInfoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除单位信息-用于下拉框 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("platform:partyInfo:remove") |
|||
@Log(title = "单位信息-用于下拉框", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(partyInfoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,70 @@ |
|||
package org.dromara.platform.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serial; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 区域信息-用于下拉框对象 district_info |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("district_info") |
|||
public class DistrictInfo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@TableField(exist = false) |
|||
List<DistrictInfo> children; |
|||
/** |
|||
* 唯一标识符 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 区域名称 |
|||
*/ |
|||
private String districtName; |
|||
|
|||
/** |
|||
* 区域类别: 市 县 区 |
|||
*/ |
|||
private String districtType; |
|||
|
|||
/** |
|||
* 所有者ID |
|||
*/ |
|||
private String ownerId; |
|||
|
|||
/** |
|||
* 所有者名称 |
|||
*/ |
|||
private String ownerName; |
|||
|
|||
/** |
|||
* 是否为子(1表示是子,0或NULL则不是) |
|||
*/ |
|||
private Long isChildren; |
|||
|
|||
/** |
|||
* 当前状态 |
|||
*/ |
|||
private Long status; |
|||
|
|||
/** |
|||
* 删除标志(0代表存在 2代表删除) |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
|
|||
} |
@ -0,0 +1,52 @@ |
|||
package org.dromara.platform.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 单位信息-用于下拉框对象 party_info |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("party_info") |
|||
public class PartyInfo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 唯一标识符 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 单位名称 |
|||
*/ |
|||
private String partyName; |
|||
|
|||
/** |
|||
* 单位类别:甲方 乙方 |
|||
*/ |
|||
private String partyType; |
|||
|
|||
/** |
|||
* 当前状态 |
|||
*/ |
|||
private Long status; |
|||
|
|||
/** |
|||
* 删除标志(0代表存在 2代表删除) |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
|
|||
} |
@ -0,0 +1,66 @@ |
|||
package org.dromara.platform.domain.bo; |
|||
|
|||
import org.dromara.platform.domain.DistrictInfo; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
|
|||
/** |
|||
* 区域信息-用于下拉框业务对象 district_info |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = DistrictInfo.class, reverseConvertGenerate = false) |
|||
public class DistrictInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 唯一标识符 |
|||
*/ |
|||
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class }) |
|||
private String id; |
|||
|
|||
/** |
|||
* 区域名称 |
|||
*/ |
|||
@NotBlank(message = "区域名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String districtName; |
|||
|
|||
/** |
|||
* 区域类别: 市 县 区 |
|||
*/ |
|||
@NotBlank(message = "区域类别: 市 县 区不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String districtType; |
|||
|
|||
/** |
|||
* 所有者ID |
|||
*/ |
|||
@NotBlank(message = "所有者ID不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String ownerId; |
|||
|
|||
/** |
|||
* 所有者名称 |
|||
*/ |
|||
@NotBlank(message = "所有者名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String ownerName; |
|||
|
|||
/** |
|||
* 是否为子(1表示是子,0或NULL则不是) |
|||
*/ |
|||
@NotNull(message = "是否为子(1表示是子,0或NULL则不是)不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long isChildren; |
|||
|
|||
/** |
|||
* 当前状态 |
|||
*/ |
|||
@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long status; |
|||
|
|||
|
|||
} |
@ -0,0 +1,48 @@ |
|||
package org.dromara.platform.domain.bo; |
|||
|
|||
import org.dromara.platform.domain.PartyInfo; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
|
|||
/** |
|||
* 单位信息-用于下拉框业务对象 party_info |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PartyInfo.class, reverseConvertGenerate = false) |
|||
public class PartyInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 唯一标识符 |
|||
*/ |
|||
@NotBlank(message = "唯一标识符不能为空", groups = { EditGroup.class }) |
|||
private String id; |
|||
|
|||
/** |
|||
* 单位名称 |
|||
*/ |
|||
@NotBlank(message = "单位名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String partyName; |
|||
|
|||
/** |
|||
* 单位类别:甲方 乙方 |
|||
*/ |
|||
@NotBlank(message = "单位类别:甲方 乙方不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String partyType; |
|||
|
|||
/** |
|||
* 当前状态 |
|||
*/ |
|||
@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long status; |
|||
|
|||
|
|||
} |
@ -0,0 +1,75 @@ |
|||
package org.dromara.platform.domain.vo; |
|||
|
|||
import org.dromara.platform.domain.DistrictInfo; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 区域信息-用于下拉框视图对象 district_info |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = DistrictInfo.class) |
|||
public class DistrictInfoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 唯一标识符 |
|||
*/ |
|||
@ExcelProperty(value = "唯一标识符") |
|||
private String id; |
|||
|
|||
/** |
|||
* 区域名称 |
|||
*/ |
|||
@ExcelProperty(value = "区域名称") |
|||
private String districtName; |
|||
|
|||
/** |
|||
* 区域类别: 市 县 区 |
|||
*/ |
|||
@ExcelProperty(value = "区域类别: 市 县 区") |
|||
private String districtType; |
|||
|
|||
/** |
|||
* 所有者ID |
|||
*/ |
|||
@ExcelProperty(value = "所有者ID") |
|||
private String ownerId; |
|||
|
|||
/** |
|||
* 所有者名称 |
|||
*/ |
|||
@ExcelProperty(value = "所有者名称") |
|||
private String ownerName; |
|||
|
|||
/** |
|||
* 是否为子合同(1表示是子合同,0或NULL则不是) |
|||
*/ |
|||
@ExcelProperty(value = "是否为子", converter = ExcelDictConvert.class) |
|||
@ExcelDictFormat(readConverterExp = "1=表示是子,0或NULL则不是") |
|||
private Long isChildren; |
|||
|
|||
/** |
|||
* 当前状态 |
|||
*/ |
|||
@ExcelProperty(value = "当前状态") |
|||
private Long status; |
|||
|
|||
|
|||
} |
@ -0,0 +1,56 @@ |
|||
package org.dromara.platform.domain.vo; |
|||
|
|||
import org.dromara.platform.domain.PartyInfo; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 单位信息-用于下拉框视图对象 party_info |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PartyInfo.class) |
|||
public class PartyInfoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 唯一标识符 |
|||
*/ |
|||
@ExcelProperty(value = "唯一标识符") |
|||
private String id; |
|||
|
|||
/** |
|||
* 单位名称 |
|||
*/ |
|||
@ExcelProperty(value = "单位名称") |
|||
private String partyName; |
|||
|
|||
/** |
|||
* 单位类别:甲方 乙方 |
|||
*/ |
|||
@ExcelProperty(value = "单位类别:甲方 乙方") |
|||
private String partyType; |
|||
|
|||
/** |
|||
* 当前状态 |
|||
*/ |
|||
@ExcelProperty(value = "当前状态") |
|||
private Long status; |
|||
|
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.platform.mapper; |
|||
|
|||
import org.dromara.platform.domain.DistrictInfo; |
|||
import org.dromara.platform.domain.vo.DistrictInfoVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 区域信息-用于下拉框Mapper接口 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
public interface DistrictInfoMapper extends BaseMapperPlus<DistrictInfo, DistrictInfoVo> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.platform.mapper; |
|||
|
|||
import org.dromara.platform.domain.PartyInfo; |
|||
import org.dromara.platform.domain.vo.PartyInfoVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 单位信息-用于下拉框Mapper接口 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
public interface PartyInfoMapper extends BaseMapperPlus<PartyInfo, PartyInfoVo> { |
|||
|
|||
} |
@ -0,0 +1,71 @@ |
|||
package org.dromara.platform.service; |
|||
|
|||
import org.dromara.platform.domain.DistrictInfo; |
|||
import org.dromara.platform.domain.vo.DistrictInfoVo; |
|||
import org.dromara.platform.domain.bo.DistrictInfoBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 区域信息-用于下拉框Service接口 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
public interface IDistrictInfoService { |
|||
|
|||
/** |
|||
* 查询单位信息-用于下拉框 |
|||
* |
|||
* @param id 主键 |
|||
* @return 单位信息-用于下拉框 |
|||
*/ |
|||
DistrictInfoVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询单位信息-用于下拉框列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 单位信息-用于下拉框分页列表 |
|||
*/ |
|||
TableDataInfo<DistrictInfoVo> queryPageList(DistrictInfoBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的单位信息-用于下拉框列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 单位信息-用于下拉框列表 |
|||
*/ |
|||
List<DistrictInfoVo> queryList(DistrictInfoBo bo); |
|||
|
|||
/** |
|||
* 新增单位信息-用于下拉框 |
|||
* |
|||
* @param bo 单位信息-用于下拉框 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(DistrictInfoBo bo); |
|||
|
|||
/** |
|||
* 修改单位信息-用于下拉框 |
|||
* |
|||
* @param bo 单位信息-用于下拉框 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(DistrictInfoBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除单位信息-用于下拉框信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
|
|||
List<DistrictInfo> queryAll(); |
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.platform.service; |
|||
|
|||
import org.dromara.platform.domain.vo.PartyInfoVo; |
|||
import org.dromara.platform.domain.bo.PartyInfoBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 单位信息-用于下拉框Service接口 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
public interface IPartyInfoService { |
|||
|
|||
/** |
|||
* 查询单位信息-用于下拉框 |
|||
* |
|||
* @param id 主键 |
|||
* @return 单位信息-用于下拉框 |
|||
*/ |
|||
PartyInfoVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询单位信息-用于下拉框列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 单位信息-用于下拉框分页列表 |
|||
*/ |
|||
TableDataInfo<PartyInfoVo> queryPageList(PartyInfoBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的单位信息-用于下拉框列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 单位信息-用于下拉框列表 |
|||
*/ |
|||
List<PartyInfoVo> queryList(PartyInfoBo bo); |
|||
|
|||
/** |
|||
* 新增单位信息-用于下拉框 |
|||
* |
|||
* @param bo 单位信息-用于下拉框 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(PartyInfoBo bo); |
|||
|
|||
/** |
|||
* 修改单位信息-用于下拉框 |
|||
* |
|||
* @param bo 单位信息-用于下拉框 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(PartyInfoBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除单位信息-用于下拉框信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
} |
@ -0,0 +1,175 @@ |
|||
package org.dromara.platform.service.impl; |
|||
|
|||
import cn.hutool.core.collection.CollectionUtil; |
|||
import io.undertow.util.ConnectionUtils; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.platform.domain.ProjectCategoryPoint; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.platform.domain.bo.DistrictInfoBo; |
|||
import org.dromara.platform.domain.vo.DistrictInfoVo; |
|||
import org.dromara.platform.domain.DistrictInfo; |
|||
import org.dromara.platform.mapper.DistrictInfoMapper; |
|||
import org.dromara.platform.service.IDistrictInfoService; |
|||
|
|||
import java.util.*; |
|||
|
|||
/** |
|||
* 区域信息-用于下拉框Service业务层处理 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class DistrictInfoServiceImpl implements IDistrictInfoService { |
|||
|
|||
private final DistrictInfoMapper baseMapper; |
|||
|
|||
/** |
|||
* 查询单位信息-用于下拉框 |
|||
* |
|||
* @param id 主键 |
|||
* @return 单位信息-用于下拉框 |
|||
*/ |
|||
@Override |
|||
public DistrictInfoVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询单位信息-用于下拉框列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 单位信息-用于下拉框分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<DistrictInfoVo> queryPageList(DistrictInfoBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<DistrictInfo> lqw = buildQueryWrapper(bo); |
|||
Page<DistrictInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的单位信息-用于下拉框列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 单位信息-用于下拉框列表 |
|||
*/ |
|||
@Override |
|||
public List<DistrictInfoVo> queryList(DistrictInfoBo bo) { |
|||
LambdaQueryWrapper<DistrictInfo> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<DistrictInfo> buildQueryWrapper(DistrictInfoBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<DistrictInfo> lqw = Wrappers.lambdaQuery(); |
|||
lqw.like(StringUtils.isNotBlank(bo.getDistrictName()), DistrictInfo::getDistrictName, bo.getDistrictName()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getDistrictType()), DistrictInfo::getDistrictType, bo.getDistrictType()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getOwnerId()), DistrictInfo::getOwnerId, bo.getOwnerId()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getOwnerName()), DistrictInfo::getOwnerName, bo.getOwnerName()); |
|||
lqw.eq(bo.getIsChildren() != null, DistrictInfo::getIsChildren, bo.getIsChildren()); |
|||
lqw.eq(bo.getStatus() != null, DistrictInfo::getStatus, bo.getStatus()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增单位信息-用于下拉框 |
|||
* |
|||
* @param bo 单位信息-用于下拉框 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(DistrictInfoBo bo) { |
|||
DistrictInfo add = MapstructUtils.convert(bo, DistrictInfo.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改单位信息-用于下拉框 |
|||
* |
|||
* @param bo 单位信息-用于下拉框 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(DistrictInfoBo bo) { |
|||
DistrictInfo update = MapstructUtils.convert(bo, DistrictInfo.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(DistrictInfo entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除单位信息-用于下拉框信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteByIds(ids) > 0; |
|||
} |
|||
|
|||
@Override |
|||
public List<DistrictInfo> queryAll() { |
|||
LambdaQueryWrapper<DistrictInfo> qw = new LambdaQueryWrapper<>(); |
|||
qw.eq(DistrictInfo::getIsChildren, false); |
|||
|
|||
// 查询所有父级目录
|
|||
List<DistrictInfo> districtInfos = baseMapper.selectList(qw); |
|||
if (CollectionUtil.isEmpty(districtInfos)) { |
|||
districtInfos = new ArrayList<>(); |
|||
} |
|||
|
|||
LambdaQueryWrapper<DistrictInfo> subQw = new LambdaQueryWrapper<>(); |
|||
subQw.eq(DistrictInfo::getIsChildren, true); |
|||
List<DistrictInfo> subList = baseMapper.selectList(subQw); |
|||
if (CollectionUtil.isEmpty(subList)) { |
|||
subList = new ArrayList<>(); |
|||
} |
|||
|
|||
// 创建一个 Map 来快速查找子目录
|
|||
Map<String, List<DistrictInfo>> subCategoryMap = new HashMap<>(); |
|||
for (DistrictInfo subDistrict : subList) { |
|||
String ownerId = subDistrict.getOwnerId(); |
|||
if (ownerId != null) { // 判空检查
|
|||
subCategoryMap.computeIfAbsent(ownerId, k -> new ArrayList<>()).add(subDistrict); |
|||
} |
|||
} |
|||
|
|||
// 遍历父级目录,并填充子目录
|
|||
for (DistrictInfo districtInfo : districtInfos) { |
|||
String parentId = districtInfo.getId(); |
|||
if (subCategoryMap.containsKey(parentId)) { // 判空检查
|
|||
districtInfo.setChildren(subCategoryMap.get(parentId)); |
|||
} else { |
|||
// 如果没有子目录,则设置一个空列表
|
|||
districtInfo.setChildren(new ArrayList<>()); |
|||
} |
|||
} |
|||
return districtInfos; |
|||
} |
|||
} |
@ -0,0 +1,131 @@ |
|||
package org.dromara.platform.service.impl; |
|||
|
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.platform.domain.bo.PartyInfoBo; |
|||
import org.dromara.platform.domain.vo.PartyInfoVo; |
|||
import org.dromara.platform.domain.PartyInfo; |
|||
import org.dromara.platform.mapper.PartyInfoMapper; |
|||
import org.dromara.platform.service.IPartyInfoService; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 单位信息-用于下拉框Service业务层处理 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-04-07 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class PartyInfoServiceImpl implements IPartyInfoService { |
|||
|
|||
private final PartyInfoMapper baseMapper; |
|||
|
|||
/** |
|||
* 查询单位信息-用于下拉框 |
|||
* |
|||
* @param id 主键 |
|||
* @return 单位信息-用于下拉框 |
|||
*/ |
|||
@Override |
|||
public PartyInfoVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询单位信息-用于下拉框列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 单位信息-用于下拉框分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<PartyInfoVo> queryPageList(PartyInfoBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<PartyInfo> lqw = buildQueryWrapper(bo); |
|||
Page<PartyInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的单位信息-用于下拉框列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 单位信息-用于下拉框列表 |
|||
*/ |
|||
@Override |
|||
public List<PartyInfoVo> queryList(PartyInfoBo bo) { |
|||
LambdaQueryWrapper<PartyInfo> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<PartyInfo> buildQueryWrapper(PartyInfoBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<PartyInfo> lqw = Wrappers.lambdaQuery(); |
|||
lqw.like(StringUtils.isNotBlank(bo.getPartyName()), PartyInfo::getPartyName, bo.getPartyName()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getPartyType()), PartyInfo::getPartyType, bo.getPartyType()); |
|||
lqw.eq(bo.getStatus() != null, PartyInfo::getStatus, bo.getStatus()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增单位信息-用于下拉框 |
|||
* |
|||
* @param bo 单位信息-用于下拉框 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(PartyInfoBo bo) { |
|||
PartyInfo add = MapstructUtils.convert(bo, PartyInfo.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改单位信息-用于下拉框 |
|||
* |
|||
* @param bo 单位信息-用于下拉框 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(PartyInfoBo bo) { |
|||
PartyInfo update = MapstructUtils.convert(bo, PartyInfo.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(PartyInfo entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除单位信息-用于下拉框信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteByIds(ids) > 0; |
|||
} |
|||
} |
Loading…
Reference in new issue