土地流转

This commit is contained in:
zengtao01
2025-07-25 20:56:15 +08:00
parent eaac167036
commit c2933c68a7
42 changed files with 3289 additions and 0 deletions

View File

@ -0,0 +1,114 @@
package org.dromara.land.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
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.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.land.domain.bo.BusEnterRoadBo;
import org.dromara.land.domain.vo.BusEnterRoadVo;
import org.dromara.land.service.IBusEnterRoadService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 进场道路信息
*
* @author Lion Li
* @date 2025-07-25
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/land/enterRoad")
public class BusEnterRoadController extends BaseController {
private final IBusEnterRoadService busEnterRoadService;
/**
* 查询进场道路信息列表
*/
@SaCheckPermission("land:enterRoad:list")
@GetMapping("/list")
public TableDataInfo<BusEnterRoadVo> list(BusEnterRoadBo bo, PageQuery pageQuery) {
return busEnterRoadService.queryPageList(bo, pageQuery);
}
/**
* 导出进场道路信息列表
*/
@SaCheckPermission("land:enterRoad:export")
@Log(title = "进场道路信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BusEnterRoadBo bo, HttpServletResponse response) {
List<BusEnterRoadVo> list = busEnterRoadService.queryList(bo);
ExcelUtil.exportExcel(list, "进场道路信息", BusEnterRoadVo.class, response);
}
/**
* 获取进场道路信息详细信息
*
* @param id 主键
*/
@SaCheckPermission("land:enterRoad:query")
@GetMapping("/{id}")
public R<BusEnterRoadVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(busEnterRoadService.queryById(id));
}
/**
* 新增进场道路信息
*/
@SaCheckPermission("land:enterRoad:add")
@Log(title = "进场道路信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusEnterRoadBo bo) {
return toAjax(busEnterRoadService.insertByBo(bo));
}
/**
* 修改进场道路信息
*/
@SaCheckPermission("land:enterRoad:edit")
@Log(title = "进场道路信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusEnterRoadBo bo) {
return toAjax(busEnterRoadService.updateByBo(bo));
}
/**
* 删除进场道路信息
*
* @param ids 主键串
*/
@SaCheckPermission("land:enterRoad:remove")
@Log(title = "进场道路信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(busEnterRoadService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,113 @@
package org.dromara.land.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
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.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.land.domain.bo.BusLandBlockBo;
import org.dromara.land.domain.vo.BusLandBlockVo;
import org.dromara.land.service.IBusLandBlockService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 地块信息
*
* @author Lion Li
* @date 2025-07-25
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/land/landBlock")
public class BusLandBlockController extends BaseController {
private final IBusLandBlockService busLandBlockService;
/**
* 查询地块信息列表
*/
@SaCheckPermission("land:landBlock:list")
@GetMapping("/list")
public TableDataInfo<BusLandBlockVo> list(BusLandBlockBo bo, PageQuery pageQuery) {
return busLandBlockService.queryPageList(bo, pageQuery);
}
/**
* 导出地块信息列表
*/
@SaCheckPermission("land:landBlock:export")
@Log(title = "地块信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BusLandBlockBo bo, HttpServletResponse response) {
List<BusLandBlockVo> list = busLandBlockService.queryList(bo);
ExcelUtil.exportExcel(list, "地块信息", BusLandBlockVo.class, response);
}
/**
* 获取地块信息详细信息
*
* @param id 主键
*/
@SaCheckPermission("land:landBlock:query")
@GetMapping("/{id}")
public R<BusLandBlockVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(busLandBlockService.queryById(id));
}
/**
* 新增地块信息
*/
@SaCheckPermission("land:landBlock:add")
@Log(title = "地块信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusLandBlockBo bo) {
return toAjax(busLandBlockService.insertByBo(bo));
}
/**
* 修改地块信息
*/
@SaCheckPermission("land:landBlock:edit")
@Log(title = "地块信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusLandBlockBo bo) {
return toAjax(busLandBlockService.updateByBo(bo));
}
/**
* 删除地块信息
*
* @param ids 主键串
*/
@SaCheckPermission("land:landBlock:remove")
@Log(title = "地块信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(busLandBlockService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,124 @@
package org.dromara.land.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
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.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.land.domain.bo.BusLandBlockUnitProjectBo;
import org.dromara.land.domain.bo.LandUnitBo;
import org.dromara.land.domain.vo.BusLandBlockUnitProjectVo;
import org.dromara.land.service.IBusLandBlockUnitProjectService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 地块与单位工程关联
*
* @author Lion Li
* @date 2025-07-25
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/land/landBlockUnitProject")
public class BusLandBlockUnitProjectController extends BaseController {
private final IBusLandBlockUnitProjectService busLandBlockUnitProjectService;
/**
* 查询地块与单位工程关联列表
*/
@SaCheckPermission("land:landBlockUnitProject:list")
@GetMapping("/list")
public TableDataInfo<BusLandBlockUnitProjectVo> list(BusLandBlockUnitProjectBo bo, PageQuery pageQuery) {
return busLandBlockUnitProjectService.queryPageList(bo, pageQuery);
}
/**
* 导出地块与单位工程关联列表
*/
@SaCheckPermission("land:landBlockUnitProject:export")
@Log(title = "地块与单位工程关联", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BusLandBlockUnitProjectBo bo, HttpServletResponse response) {
List<BusLandBlockUnitProjectVo> list = busLandBlockUnitProjectService.queryList(bo);
ExcelUtil.exportExcel(list, "地块与单位工程关联", BusLandBlockUnitProjectVo.class, response);
}
/**
* 获取地块与单位工程关联详细信息
*
* @param id 主键
*/
@SaCheckPermission("land:landBlockUnitProject:query")
@GetMapping("/{id}")
public R<BusLandBlockUnitProjectVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(busLandBlockUnitProjectService.queryById(id));
}
/**
* 新增地块与单位工程关联
*/
@SaCheckPermission("land:landBlockUnitProject:add")
@Log(title = "地块与单位工程关联", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusLandBlockUnitProjectBo bo) {
return toAjax(busLandBlockUnitProjectService.insertByBo(bo));
}
/**
* 修改地块与单位工程关联
*/
@SaCheckPermission("land:landBlockUnitProject:edit")
@Log(title = "地块与单位工程关联", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusLandBlockUnitProjectBo bo) {
return toAjax(busLandBlockUnitProjectService.updateByBo(bo));
}
/**
* 删除地块与单位工程关联
*
* @param ids 主键串
*/
@SaCheckPermission("land:landBlockUnitProject:remove")
@Log(title = "地块与单位工程关联", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(busLandBlockUnitProjectService.deleteWithValidByIds(List.of(ids), true));
}
@SaCheckPermission("land:landBlockUnitProject:add")
@Log(title = "地块关联方阵", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/LandUnit")
public R<Void> add(@Validated(AddGroup.class) @RequestBody LandUnitBo bo) {
busLandBlockUnitProjectService.insertBatch(bo.getLandId(), bo.getUnitBoList());
return toAjax(true);
}
}

View File

@ -0,0 +1,122 @@
package org.dromara.land.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
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.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.land.domain.bo.BusLandTransferLedgerBo;
import org.dromara.land.domain.vo.BusLandTransferLedgerVo;
import org.dromara.land.service.IBusLandTransferLedgerService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 项目土地流转台账
*
* @author Lion Li
* @date 2025-07-25
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/land/landTransferLedger")
public class BusLandTransferLedgerController extends BaseController {
private final IBusLandTransferLedgerService busLandTransferLedgerService;
/**
* 查询项目土地流转台账列表
*/
@SaCheckPermission("land:landTransferLedger:list")
@GetMapping("/list")
public TableDataInfo<BusLandTransferLedgerVo> list(BusLandTransferLedgerBo bo, PageQuery pageQuery) {
return busLandTransferLedgerService.queryPageList(bo, pageQuery);
}
/**
* 查询项目土地流转台账方阵列表
*/
@SaCheckPermission("land:landTransferLedger:list")
@GetMapping("/listUnit")
public TableDataInfo<BusLandTransferLedgerVo> listUnit(BusLandTransferLedgerBo bo, PageQuery pageQuery) {
return busLandTransferLedgerService.queryUnitPageList(bo, pageQuery);
}
/**
* 导出项目土地流转台账列表
*/
@SaCheckPermission("land:landTransferLedger:export")
@Log(title = "项目土地流转台账", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BusLandTransferLedgerBo bo, HttpServletResponse response) {
List<BusLandTransferLedgerVo> list = busLandTransferLedgerService.queryList(bo);
ExcelUtil.exportExcel(list, "项目土地流转台账", BusLandTransferLedgerVo.class, response);
}
/**
* 获取项目土地流转台账详细信息
*
* @param id 主键
*/
@SaCheckPermission("land:landTransferLedger:query")
@GetMapping("/{id}")
public R<BusLandTransferLedgerVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(busLandTransferLedgerService.queryById(id));
}
/**
* 新增项目土地流转台账
*/
@SaCheckPermission("land:landTransferLedger:add")
@Log(title = "项目土地流转台账", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusLandTransferLedgerBo bo) {
return toAjax(busLandTransferLedgerService.insertByBo(bo));
}
/**
* 修改项目土地流转台账
*/
@SaCheckPermission("land:landTransferLedger:edit")
@Log(title = "项目土地流转台账", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusLandTransferLedgerBo bo) {
return toAjax(busLandTransferLedgerService.updateByBo(bo));
}
/**
* 删除项目土地流转台账
*
* @param ids 主键串
*/
@SaCheckPermission("land:landTransferLedger:remove")
@Log(title = "项目土地流转台账", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(busLandTransferLedgerService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,113 @@
package org.dromara.land.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
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.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.land.domain.bo.BusNonTransferLedgerBo;
import org.dromara.land.domain.vo.BusNonTransferLedgerVo;
import org.dromara.land.service.IBusNonTransferLedgerService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 不流转台账
*
* @author Lion Li
* @date 2025-07-25
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/land/nonTransferLedger")
public class BusNonTransferLedgerController extends BaseController {
private final IBusNonTransferLedgerService busNonTransferLedgerService;
/**
* 查询不流转台账列表
*/
@SaCheckPermission("land:nonTransferLedger:list")
@GetMapping("/list")
public TableDataInfo<BusNonTransferLedgerVo> list(BusNonTransferLedgerBo bo, PageQuery pageQuery) {
return busNonTransferLedgerService.queryPageList(bo, pageQuery);
}
/**
* 导出不流转台账列表
*/
@SaCheckPermission("land:nonTransferLedger:export")
@Log(title = "不流转台账", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BusNonTransferLedgerBo bo, HttpServletResponse response) {
List<BusNonTransferLedgerVo> list = busNonTransferLedgerService.queryList(bo);
ExcelUtil.exportExcel(list, "不流转台账", BusNonTransferLedgerVo.class, response);
}
/**
* 获取不流转台账详细信息
*
* @param id 主键
*/
@SaCheckPermission("land:nonTransferLedger:query")
@GetMapping("/{id}")
public R<BusNonTransferLedgerVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(busNonTransferLedgerService.queryById(id));
}
/**
* 新增不流转台账
*/
@SaCheckPermission("land:nonTransferLedger:add")
@Log(title = "不流转台账", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BusNonTransferLedgerBo bo) {
return toAjax(busNonTransferLedgerService.insertByBo(bo));
}
/**
* 修改不流转台账
*/
@SaCheckPermission("land:nonTransferLedger:edit")
@Log(title = "不流转台账", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BusNonTransferLedgerBo bo) {
return toAjax(busNonTransferLedgerService.updateByBo(bo));
}
/**
* 删除不流转台账
*
* @param ids 主键串
*/
@SaCheckPermission("land:nonTransferLedger:remove")
@Log(title = "不流转台账", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(busNonTransferLedgerService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,71 @@
package org.dromara.land.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 进场道路信息对象 bus_enter_road
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("bus_enter_road")
public class BusEnterRoad extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 项目ID
*/
private Long projectId;
/**
* 道路编号
*/
private String roadCode;
/**
* 道路名称
*/
private String roadName;
/**
* 设计新建道路长度(米)
*/
private String designCreateLength;
/**
* 设计改扩建长度(米)
*/
private String designUpdateLength;
/**
* 需流转总长度(米)
*/
private String changeLength;
/**
* 需要流转总面积
*/
private String changeArea;
/**
* 对应地块ID
*/
private Long landBlockId;
}

View File

@ -0,0 +1,71 @@
package org.dromara.land.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 地块信息对象 bus_land_block
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("bus_land_block")
public class BusLandBlock extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 项目ID
*/
private Long projectId;
/**
* 地块编号
*/
private String landCode;
/**
* 地块名称
*/
private String landName;
/**
* 所属村委会
*/
private String villageCommittee;
/**
* 设计面积(亩)
*/
private String designArea;
/**
* 地块数
*/
private Long blockCount;
/**
* 农户数
*/
private Long farmerCount;
/**
* 备注
*/
private String remark;
}

View File

@ -0,0 +1,54 @@
package org.dromara.land.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 地块与单位工程关联对象 bus_land_block_unit_project
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("bus_land_block_unit_project")
public class BusLandBlockUnitProject extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 地块ID
*/
private Long landBlockId;
/**
* 单位工程ID
*/
private Long unitProjectId;
/**
* 单位工程名称
*/
private String unitProjectName;
/**
* 单位工程工区
*/
private String unitProjectArea;
/**
* 单位工程状态
*/
private String unitProjectStatus;
}

View File

@ -0,0 +1,113 @@
package org.dromara.land.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 项目土地流转台账对象 bus_land_transfer_ledger
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("bus_land_transfer_ledger")
public class BusLandTransferLedger extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 项目ID
*/
private Long projectId;
/**
* 土地类型
*/
private String landType;
/**
* 地块ID
*/
private Long landBlockId;
/**
* 进场道路ID
*/
private Long enterRoadId;
/**
* 设计面积
*/
private String designArea;
/**
* 责任人
*/
private String responsiblePerson;
/**
* 预计完成时间
*/
private Date expectedFinishDate;
/**
* 已流转面积
*/
private String transferAea;
/**
* 流转比例(百分比)
*/
private String transferRatio;
/**
* 土地租金(元)
*/
private Long landRent;
/**
* 青苗赔偿(元)
*/
private Long seedlingCompensation;
/**
* 总金额(元)
*/
private Long totalAmount;
/**
* 流转状态
*/
private String transferStatus;
/**
* 状态说明
*/
private String statusDescription;
/**
* 问题总结
*/
private String issueSummary;
/**
* 下一步策略
*/
private String nextStrategy;
}

View File

@ -0,0 +1,76 @@
package org.dromara.land.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 不流转台账对象 bus_non_transfer_ledger
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("bus_non_transfer_ledger")
public class BusNonTransferLedger extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 项目ID
*/
private Long projectId;
/**
* 土地类型
*/
private String landType;
/**
* 地块ID
*/
private Long landBlockId;
/**
* 进场道路ID
*/
private Long enterRoadId;
/**
* 设计面积
*/
private String designArea;
/**
* 不签合同面积(亩)
*/
private String noContractArea;
/**
* 不签合同原因
*/
private String noContractReason;
/**
* 不测量面积(亩)
*/
private String noSurveyArea;
/**
* 不流转原因
*/
private String nonTransferReason;
}

View File

@ -0,0 +1,73 @@
package org.dromara.land.domain.bo;
import org.dromara.land.domain.BusEnterRoad;
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.*;
/**
* 进场道路信息业务对象 bus_enter_road
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BusEnterRoad.class, reverseConvertGenerate = false)
public class BusEnterRoadBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* 项目ID
*/
@NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long projectId;
/**
* 道路编号
*/
@NotBlank(message = "道路编号不能为空", groups = { AddGroup.class, EditGroup.class })
private String roadCode;
/**
* 道路名称
*/
@NotBlank(message = "道路名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String roadName;
/**
* 设计新建道路长度(米)
*/
private String designCreateLength;
/**
* 设计改扩建长度(米)
*/
private String designUpdateLength;
/**
* 需流转总长度(米)
*/
private String changeLength;
/**
* 需要流转总面积
*/
private String changeArea;
/**
* 对应地块ID
*/
private Long landBlockId;
}

View File

@ -0,0 +1,78 @@
package org.dromara.land.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.land.domain.BusLandBlock;
import java.util.List;
/**
* 地块信息业务对象 bus_land_block
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BusLandBlock.class, reverseConvertGenerate = false)
public class BusLandBlockBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* 项目ID
*/
@NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long projectId;
/**
* 地块编号
*/
private String landCode;
/**
* 地块名称
*/
@NotBlank(message = "地块名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String landName;
/**
* 所属村委会
*/
private String villageCommittee;
/**
* 设计面积(亩)
*/
private String designArea;
/**
* 地块数
*/
private Long blockCount;
/**
* 农户数
*/
private Long farmerCount;
/**
* 备注
*/
private String remark;
private List<UnitBo> unitBoList;
}

View File

@ -0,0 +1,47 @@
package org.dromara.land.domain.bo;
import org.dromara.land.domain.BusLandBlockUnitProject;
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.*;
/**
* 地块与单位工程关联业务对象 bus_land_block_unit_project
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BusLandBlockUnitProject.class, reverseConvertGenerate = false)
public class BusLandBlockUnitProjectBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* 地块ID
*/
@NotNull(message = "地块ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long landBlockId;
/**
* 单位工程ID
*/
@NotNull(message = "单位工程ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long unitProjectId;
/**
* 单位工程名称
*/
private String unitProjectName;
}

View File

@ -0,0 +1,114 @@
package org.dromara.land.domain.bo;
import org.dromara.land.domain.BusLandTransferLedger;
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.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 项目土地流转台账业务对象 bus_land_transfer_ledger
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BusLandTransferLedger.class, reverseConvertGenerate = false)
public class BusLandTransferLedgerBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* 项目ID
*/
@NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long projectId;
/**
* 土地类型
*/
@NotBlank(message = "土地类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String landType;
/**
* 地块ID
*/
private Long landBlockId;
/**
* 进场道路ID
*/
private Long enterRoadId;
/**
* 设计面积
*/
private String designArea;
/**
* 责任人
*/
private String responsiblePerson;
/**
* 预计完成时间
*/
private Date expectedFinishDate;
/**
* 已流转面积
*/
private String transferAea;
/**
* 流转比例(百分比)
*/
private String transferRatio;
/**
* 土地租金(元)
*/
private Long landRent;
/**
* 青苗赔偿(元)
*/
private Long seedlingCompensation;
/**
* 总金额(元)
*/
private Long totalAmount;
/**
* 流转状态
*/
private String transferStatus;
/**
* 状态说明
*/
private String statusDescription;
/**
* 问题总结
*/
private String issueSummary;
/**
* 下一步策略
*/
private String nextStrategy;
}

View File

@ -0,0 +1,77 @@
package org.dromara.land.domain.bo;
import org.dromara.land.domain.BusNonTransferLedger;
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.*;
/**
* 不流转台账业务对象 bus_non_transfer_ledger
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BusNonTransferLedger.class, reverseConvertGenerate = false)
public class BusNonTransferLedgerBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* 项目ID
*/
@NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long projectId;
/**
* 土地类型
*/
@NotBlank(message = "土地类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String landType;
/**
* 地块ID
*/
private Long landBlockId;
/**
* 进场道路ID
*/
private Long enterRoadId;
/**
* 设计面积
*/
private String designArea;
/**
* 不签合同面积(亩)
*/
private String noContractArea;
/**
* 不签合同原因
*/
private String noContractReason;
/**
* 不测量面积(亩)
*/
private String noSurveyArea;
/**
* 不流转原因
*/
private String nonTransferReason;
}

View File

@ -0,0 +1,18 @@
package org.dromara.land.domain.bo;
import lombok.Data;
import java.util.List;
/**
* @author zt
* @description <description class purpose>
* @since 2025/7/25
*/
@Data
public class LandUnitBo {
private Long landId;
private List<UnitBo> unitBoList;
}

View File

@ -0,0 +1,23 @@
package org.dromara.land.domain.bo;
import lombok.Data;
/**
* @author zt
* @description <description class purpose>
* @since 2025/7/25
*/
@Data
public class UnitBo {
/**
* 单位工程ID
*/
private Long unitProjectId;
/**
* 单位工程名称
*/
private String unitProjectName;
}

View File

@ -0,0 +1,90 @@
package org.dromara.land.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.land.domain.BusEnterRoad;
import java.io.Serial;
import java.io.Serializable;
/**
* 进场道路信息视图对象 bus_enter_road
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusEnterRoad.class)
public class BusEnterRoadVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 项目ID
*/
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 道路编号
*/
@ExcelProperty(value = "道路编号")
private String roadCode;
/**
* 道路名称
*/
@ExcelProperty(value = "道路名称")
private String roadName;
/**
* 设计新建道路长度(米)
*/
@ExcelProperty(value = "设计新建道路长度", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "米=")
private String designCreateLength;
/**
* 设计改扩建长度(米)
*/
@ExcelProperty(value = "设计改扩建长度", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "米=")
private String designUpdateLength;
/**
* 需流转总长度(米)
*/
@ExcelProperty(value = "需流转总长度", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "米=")
private String changeLength;
/**
* 需要流转总面积
*/
@ExcelProperty(value = "需要流转总面积")
private String changeArea;
/**
* 对应地块ID
*/
@ExcelProperty(value = "对应地块ID")
private Long landBlockId;
private String landName;
private String unit;
}

View File

@ -0,0 +1,53 @@
package org.dromara.land.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.land.domain.BusLandBlockUnitProject;
import java.io.Serial;
import java.io.Serializable;
/**
* 地块与单位工程关联视图对象 bus_land_block_unit_project
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusLandBlockUnitProject.class)
public class BusLandBlockUnitProjectVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 地块ID
*/
@ExcelProperty(value = "地块ID")
private Long landBlockId;
/**
* 单位工程ID
*/
@ExcelProperty(value = "单位工程ID")
private Long unitProjectId;
/**
* 单位工程名称
*/
@ExcelProperty(value = "单位工程名称")
private String unitProjectName;
}

View File

@ -0,0 +1,86 @@
package org.dromara.land.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.land.domain.BusLandBlock;
import java.io.Serial;
import java.io.Serializable;
/**
* 地块信息视图对象 bus_land_block
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusLandBlock.class)
public class BusLandBlockVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 项目ID
*/
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 地块编号
*/
@ExcelProperty(value = "地块编号")
private String landCode;
/**
* 地块名称
*/
@ExcelProperty(value = "地块名称")
private String landName;
/**
* 所属村委会
*/
@ExcelProperty(value = "所属村委会")
private String villageCommittee;
/**
* 设计面积(亩)
*/
@ExcelProperty(value = "设计面积", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "亩=")
private String designArea;
/**
* 地块数
*/
@ExcelProperty(value = "地块数")
private Long blockCount;
/**
* 农户数
*/
@ExcelProperty(value = "农户数")
private Long farmerCount;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
private String unit;
}

View File

@ -0,0 +1,147 @@
package org.dromara.land.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.land.domain.BusLandTransferLedger;
import org.dromara.land.domain.bo.UnitBo;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 项目土地流转台账视图对象 bus_land_transfer_ledger
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusLandTransferLedger.class)
public class BusLandTransferLedgerVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 项目ID
*/
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 土地类型
*/
@ExcelProperty(value = "土地类型")
private String landType;
/**
* 地块ID
*/
@ExcelProperty(value = "地块ID")
private Long landBlockId;
/**
* 进场道路ID
*/
@ExcelProperty(value = "进场道路ID")
private Long enterRoadId;
/**
* 设计面积
*/
@ExcelProperty(value = "设计面积")
private String designArea;
/**
* 责任人
*/
@ExcelProperty(value = "责任人")
private String responsiblePerson;
/**
* 预计完成时间
*/
@ExcelProperty(value = "预计完成时间")
private Date expectedFinishDate;
/**
* 已流转面积
*/
@ExcelProperty(value = "已流转面积")
private String transferAea;
/**
* 流转比例(百分比)
*/
@ExcelProperty(value = "流转比例", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "百=分比")
private String transferRatio;
/**
* 土地租金(元)
*/
@ExcelProperty(value = "土地租金", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "元=")
private Long landRent;
/**
* 青苗赔偿(元)
*/
@ExcelProperty(value = "青苗赔偿", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "元=")
private Long seedlingCompensation;
/**
* 总金额(元)
*/
@ExcelProperty(value = "总金额", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "元=")
private Long totalAmount;
/**
* 流转状态
*/
@ExcelProperty(value = "流转状态")
private String transferStatus;
/**
* 状态说明
*/
@ExcelProperty(value = "状态说明")
private String statusDescription;
/**
* 问题总结
*/
@ExcelProperty(value = "问题总结")
private String issueSummary;
/**
* 下一步策略
*/
@ExcelProperty(value = "下一步策略")
private String nextStrategy;
private String roadCode;
private String roadName;
private String landCode;
private String landName;
List<UnitBo> unitBoList;
}

View File

@ -0,0 +1,103 @@
package org.dromara.land.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.land.domain.BusNonTransferLedger;
import java.io.Serial;
import java.io.Serializable;
/**
* 不流转台账视图对象 bus_non_transfer_ledger
*
* @author Lion Li
* @date 2025-07-25
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusNonTransferLedger.class)
public class BusNonTransferLedgerVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 项目ID
*/
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 土地类型
*/
@ExcelProperty(value = "土地类型")
private String landType;
/**
* 地块ID
*/
@ExcelProperty(value = "地块ID")
private Long landBlockId;
/**
* 进场道路ID
*/
@ExcelProperty(value = "进场道路ID")
private Long enterRoadId;
/**
* 设计面积
*/
@ExcelProperty(value = "设计面积")
private String designArea;
/**
* 不签合同面积(亩)
*/
@ExcelProperty(value = "不签合同面积", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "亩=")
private String noContractArea;
/**
* 不签合同原因
*/
@ExcelProperty(value = "不签合同原因")
private String noContractReason;
/**
* 不测量面积(亩)
*/
@ExcelProperty(value = "不测量面积", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "亩=")
private String noSurveyArea;
/**
* 不流转原因
*/
@ExcelProperty(value = "不流转原因")
private String nonTransferReason;
private String roadCode;
private String roadName;
private String landCode;
private String landName;
}

View File

@ -0,0 +1,15 @@
package org.dromara.land.mapper;
import org.dromara.land.domain.BusEnterRoad;
import org.dromara.land.domain.vo.BusEnterRoadVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 进场道路信息Mapper接口
*
* @author Lion Li
* @date 2025-07-25
*/
public interface BusEnterRoadMapper extends BaseMapperPlus<BusEnterRoad, BusEnterRoadVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.land.mapper;
import org.dromara.land.domain.BusLandBlock;
import org.dromara.land.domain.vo.BusLandBlockVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 地块信息Mapper接口
*
* @author Lion Li
* @date 2025-07-25
*/
public interface BusLandBlockMapper extends BaseMapperPlus<BusLandBlock, BusLandBlockVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.land.mapper;
import org.dromara.land.domain.BusLandBlockUnitProject;
import org.dromara.land.domain.vo.BusLandBlockUnitProjectVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 地块与单位工程关联Mapper接口
*
* @author Lion Li
* @date 2025-07-25
*/
public interface BusLandBlockUnitProjectMapper extends BaseMapperPlus<BusLandBlockUnitProject, BusLandBlockUnitProjectVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.land.mapper;
import org.dromara.land.domain.BusLandTransferLedger;
import org.dromara.land.domain.vo.BusLandTransferLedgerVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 项目土地流转台账Mapper接口
*
* @author Lion Li
* @date 2025-07-25
*/
public interface BusLandTransferLedgerMapper extends BaseMapperPlus<BusLandTransferLedger, BusLandTransferLedgerVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.land.mapper;
import org.dromara.land.domain.BusNonTransferLedger;
import org.dromara.land.domain.vo.BusNonTransferLedgerVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 不流转台账Mapper接口
*
* @author Lion Li
* @date 2025-07-25
*/
public interface BusNonTransferLedgerMapper extends BaseMapperPlus<BusNonTransferLedger, BusNonTransferLedgerVo> {
}

View File

@ -0,0 +1,73 @@
package org.dromara.land.service;
import org.dromara.land.domain.vo.BusEnterRoadVo;
import org.dromara.land.domain.bo.BusEnterRoadBo;
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 Lion Li
* @date 2025-07-25
*/
public interface IBusEnterRoadService {
/**
* 查询进场道路信息
*
* @param id 主键
* @return 进场道路信息
*/
BusEnterRoadVo queryById(Long id);
/**
* 分页查询进场道路信息列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 进场道路信息分页列表
*/
TableDataInfo<BusEnterRoadVo> queryPageList(BusEnterRoadBo bo, PageQuery pageQuery);
/**
* 查询符合条件的进场道路信息列表
*
* @param bo 查询条件
* @return 进场道路信息列表
*/
List<BusEnterRoadVo> queryList(BusEnterRoadBo bo);
/**
* 新增进场道路信息
*
* @param bo 进场道路信息
* @return 是否新增成功
*/
Boolean insertByBo(BusEnterRoadBo bo);
/**
* 修改进场道路信息
*
* @param bo 进场道路信息
* @return 是否修改成功
*/
Boolean updateByBo(BusEnterRoadBo bo);
/**
* 校验并批量删除进场道路信息信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 根据id查询列表
*/
List<BusEnterRoadVo> queryListByIds(List<Long> ids);
}

View File

@ -0,0 +1,73 @@
package org.dromara.land.service;
import org.dromara.land.domain.vo.BusLandBlockVo;
import org.dromara.land.domain.bo.BusLandBlockBo;
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 Lion Li
* @date 2025-07-25
*/
public interface IBusLandBlockService {
/**
* 查询地块信息
*
* @param id 主键
* @return 地块信息
*/
BusLandBlockVo queryById(Long id);
/**
* 分页查询地块信息列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 地块信息分页列表
*/
TableDataInfo<BusLandBlockVo> queryPageList(BusLandBlockBo bo, PageQuery pageQuery);
/**
* 查询符合条件的地块信息列表
*
* @param bo 查询条件
* @return 地块信息列表
*/
List<BusLandBlockVo> queryList(BusLandBlockBo bo);
/**
* 新增地块信息
*
* @param bo 地块信息
* @return 是否新增成功
*/
Boolean insertByBo(BusLandBlockBo bo);
/**
* 修改地块信息
*
* @param bo 地块信息
* @return 是否修改成功
*/
Boolean updateByBo(BusLandBlockBo bo);
/**
* 校验并批量删除地块信息信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 根据ids批量查询
*/
List<BusLandBlockVo> queryListByIds(List<Long> ids,Boolean isNeedUnit);
}

View File

@ -0,0 +1,85 @@
package org.dromara.land.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.land.domain.BusLandBlockUnitProject;
import org.dromara.land.domain.bo.BusLandBlockUnitProjectBo;
import org.dromara.land.domain.bo.UnitBo;
import org.dromara.land.domain.vo.BusLandBlockUnitProjectVo;
import java.util.Collection;
import java.util.List;
/**
* 地块与单位工程关联Service接口
*
* @author Lion Li
* @date 2025-07-25
*/
public interface IBusLandBlockUnitProjectService {
/**
* 查询地块与单位工程关联
*
* @param id 主键
* @return 地块与单位工程关联
*/
BusLandBlockUnitProjectVo queryById(Long id);
/**
* 分页查询地块与单位工程关联列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 地块与单位工程关联分页列表
*/
TableDataInfo<BusLandBlockUnitProjectVo> queryPageList(BusLandBlockUnitProjectBo bo, PageQuery pageQuery);
/**
* 查询符合条件的地块与单位工程关联列表
*
* @param bo 查询条件
* @return 地块与单位工程关联列表
*/
List<BusLandBlockUnitProjectVo> queryList(BusLandBlockUnitProjectBo bo);
/**
* 新增地块与单位工程关联
*
* @param bo 地块与单位工程关联
* @return 是否新增成功
*/
Boolean insertByBo(BusLandBlockUnitProjectBo bo);
/**
* 修改地块与单位工程关联
*
* @param bo 地块与单位工程关联
* @return 是否修改成功
*/
Boolean updateByBo(BusLandBlockUnitProjectBo bo);
/**
* 校验并批量删除地块与单位工程关联信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 关联方阵
*/
void insertBatch(Long landId, List<UnitBo> boList);
/**
* 根据地块id删除关联信息
*/
void deleteByLandIds(List< Long> landIds);
/**
* 根据地块id查询关联信息
*/
List<BusLandBlockUnitProject> queryListByLandIds(List< Long> landIds);
}

View File

@ -0,0 +1,77 @@
package org.dromara.land.service;
import org.dromara.land.domain.vo.BusLandTransferLedgerVo;
import org.dromara.land.domain.bo.BusLandTransferLedgerBo;
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 Lion Li
* @date 2025-07-25
*/
public interface IBusLandTransferLedgerService {
/**
* 查询项目土地流转台账
*
* @param id 主键
* @return 项目土地流转台账
*/
BusLandTransferLedgerVo queryById(Long id);
/**
* 分页查询项目土地流转台账列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 项目土地流转台账分页列表
*/
TableDataInfo<BusLandTransferLedgerVo> queryPageList(BusLandTransferLedgerBo bo, PageQuery pageQuery);
/**
* 分页查询项目土地流转台账列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 项目土地流转台账分页列表
*/
TableDataInfo<BusLandTransferLedgerVo> queryUnitPageList(BusLandTransferLedgerBo bo, PageQuery pageQuery);
/**
* 查询符合条件的项目土地流转台账列表
*
* @param bo 查询条件
* @return 项目土地流转台账列表
*/
List<BusLandTransferLedgerVo> queryList(BusLandTransferLedgerBo bo);
/**
* 新增项目土地流转台账
*
* @param bo 项目土地流转台账
* @return 是否新增成功
*/
Boolean insertByBo(BusLandTransferLedgerBo bo);
/**
* 修改项目土地流转台账
*
* @param bo 项目土地流转台账
* @return 是否修改成功
*/
Boolean updateByBo(BusLandTransferLedgerBo bo);
/**
* 校验并批量删除项目土地流转台账信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,68 @@
package org.dromara.land.service;
import org.dromara.land.domain.vo.BusNonTransferLedgerVo;
import org.dromara.land.domain.bo.BusNonTransferLedgerBo;
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 Lion Li
* @date 2025-07-25
*/
public interface IBusNonTransferLedgerService {
/**
* 查询不流转台账
*
* @param id 主键
* @return 不流转台账
*/
BusNonTransferLedgerVo queryById(Long id);
/**
* 分页查询不流转台账列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 不流转台账分页列表
*/
TableDataInfo<BusNonTransferLedgerVo> queryPageList(BusNonTransferLedgerBo bo, PageQuery pageQuery);
/**
* 查询符合条件的不流转台账列表
*
* @param bo 查询条件
* @return 不流转台账列表
*/
List<BusNonTransferLedgerVo> queryList(BusNonTransferLedgerBo bo);
/**
* 新增不流转台账
*
* @param bo 不流转台账
* @return 是否新增成功
*/
Boolean insertByBo(BusNonTransferLedgerBo bo);
/**
* 修改不流转台账
*
* @param bo 不流转台账
* @return 是否修改成功
*/
Boolean updateByBo(BusNonTransferLedgerBo bo);
/**
* 校验并批量删除不流转台账信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,171 @@
package org.dromara.land.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.land.domain.BusEnterRoad;
import org.dromara.land.domain.bo.BusEnterRoadBo;
import org.dromara.land.domain.vo.BusEnterRoadVo;
import org.dromara.land.domain.vo.BusLandBlockVo;
import org.dromara.land.mapper.BusEnterRoadMapper;
import org.dromara.land.service.IBusEnterRoadService;
import org.dromara.land.service.IBusLandBlockService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 进场道路信息Service业务层处理
*
* @author Lion Li
* @date 2025-07-25
*/
@RequiredArgsConstructor
@Service
public class BusEnterRoadServiceImpl implements IBusEnterRoadService {
public static final String ENTER_ROAD_PREFIX = "TD-DL-";
private final BusEnterRoadMapper baseMapper;
private final IBusLandBlockService iBusLandBlockService;
/**
* 查询进场道路信息
*
* @param id 主键
* @return 进场道路信息
*/
@Override
public BusEnterRoadVo queryById(Long id){
BusEnterRoadVo busEnterRoadVo = baseMapper.selectVoById(id);
BusLandBlockVo busLandBlockVo = iBusLandBlockService.queryById(busEnterRoadVo.getLandBlockId());
busEnterRoadVo.setLandName(busLandBlockVo.getLandName());
busEnterRoadVo.setUnit(busLandBlockVo.getUnit());
return baseMapper.selectVoById(id);
}
/**
* 分页查询进场道路信息列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 进场道路信息分页列表
*/
@Override
public TableDataInfo<BusEnterRoadVo> queryPageList(BusEnterRoadBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BusEnterRoad> lqw = buildQueryWrapper(bo);
Page<BusEnterRoadVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
List<BusEnterRoadVo> records = result.getRecords();
List<Long> ids = records.stream().map(BusEnterRoadVo::getLandBlockId).toList();
if(CollectionUtil.isNotEmpty(ids)){
List<BusLandBlockVo> list = iBusLandBlockService.queryListByIds(ids,true);
records.forEach(vo -> {
BusLandBlockVo landBlock = list.stream().filter(item -> item.getId().equals(vo.getLandBlockId())).findFirst().orElse(null);
if(landBlock != null){
vo.setLandName(landBlock.getLandName());
vo.setUnit(landBlock.getUnit());
}
});
}
return TableDataInfo.build(result);
}
/**
* 查询符合条件的进场道路信息列表
*
* @param bo 查询条件
* @return 进场道路信息列表
*/
@Override
public List<BusEnterRoadVo> queryList(BusEnterRoadBo bo) {
LambdaQueryWrapper<BusEnterRoad> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BusEnterRoad> buildQueryWrapper(BusEnterRoadBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BusEnterRoad> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(BusEnterRoad::getId);
lqw.eq(bo.getProjectId() != null, BusEnterRoad::getProjectId, bo.getProjectId());
lqw.eq(StringUtils.isNotBlank(bo.getRoadCode()), BusEnterRoad::getRoadCode, bo.getRoadCode());
lqw.like(StringUtils.isNotBlank(bo.getRoadName()), BusEnterRoad::getRoadName, bo.getRoadName());
lqw.eq(StringUtils.isNotBlank(bo.getDesignCreateLength()), BusEnterRoad::getDesignCreateLength, bo.getDesignCreateLength());
lqw.eq(StringUtils.isNotBlank(bo.getDesignUpdateLength()), BusEnterRoad::getDesignUpdateLength, bo.getDesignUpdateLength());
lqw.eq(StringUtils.isNotBlank(bo.getChangeLength()), BusEnterRoad::getChangeLength, bo.getChangeLength());
lqw.eq(StringUtils.isNotBlank(bo.getChangeArea()), BusEnterRoad::getChangeArea, bo.getChangeArea());
lqw.eq(bo.getLandBlockId() != null, BusEnterRoad::getLandBlockId, bo.getLandBlockId());
return lqw;
}
/**
* 新增进场道路信息
*
* @param bo 进场道路信息
* @return 是否新增成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(BusEnterRoadBo bo) {
BusEnterRoad add = MapstructUtils.convert(bo, BusEnterRoad.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
add.setRoadCode(ENTER_ROAD_PREFIX+add.getId());
baseMapper.updateById(add);
return flag;
}
/**
* 修改进场道路信息
*
* @param bo 进场道路信息
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(BusEnterRoadBo bo) {
BusEnterRoad update = MapstructUtils.convert(bo, BusEnterRoad.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(BusEnterRoad entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除进场道路信息信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public List<BusEnterRoadVo> queryListByIds(List<Long> ids) {
return baseMapper.selectVoList(Wrappers.<BusEnterRoad>lambdaQuery()
.in(BusEnterRoad::getId, ids));
}
}

View File

@ -0,0 +1,196 @@
package org.dromara.land.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.land.domain.BusLandBlock;
import org.dromara.land.domain.BusLandBlockUnitProject;
import org.dromara.land.domain.bo.BusLandBlockBo;
import org.dromara.land.domain.vo.BusLandBlockVo;
import org.dromara.land.mapper.BusLandBlockMapper;
import org.dromara.land.service.IBusLandBlockService;
import org.dromara.land.service.IBusLandBlockUnitProjectService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 地块信息Service业务层处理
*
* @author Lion Li
* @date 2025-07-25
*/
@RequiredArgsConstructor
@Service
public class BusLandBlockServiceImpl implements IBusLandBlockService {
public static final String LAND_PREFIX = "TD-DK-";
private final BusLandBlockMapper baseMapper;
private final IBusLandBlockUnitProjectService iBusLandBlockUnitProjectService;
/**
* 查询地块信息
*
* @param id 主键
* @return 地块信息
*/
@Override
public BusLandBlockVo queryById(Long id){
BusLandBlockVo busLandBlockVo = baseMapper.selectVoById(id);
List<BusLandBlockUnitProject> list = iBusLandBlockUnitProjectService.queryListByLandIds(Collections.singletonList(id));
if(CollectionUtil.isNotEmpty( list)){
busLandBlockVo.setUnit(list.stream().map(BusLandBlockUnitProject::getUnitProjectName).collect(Collectors.joining(",")));
}
return busLandBlockVo;
}
/**
* 分页查询地块信息列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 地块信息分页列表
*/
@Override
public TableDataInfo<BusLandBlockVo> queryPageList(BusLandBlockBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BusLandBlock> lqw = buildQueryWrapper(bo);
Page<BusLandBlockVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
List<BusLandBlockVo> records = result.getRecords();
if(CollectionUtil.isNotEmpty( records)){
setUnit(records);
}
return TableDataInfo.build(result);
}
/**
* 查询符合条件的地块信息列表
*
* @param bo 查询条件
* @return 地块信息列表
*/
@Override
public List<BusLandBlockVo> queryList(BusLandBlockBo bo) {
LambdaQueryWrapper<BusLandBlock> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BusLandBlock> buildQueryWrapper(BusLandBlockBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BusLandBlock> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(BusLandBlock::getId);
lqw.eq(bo.getProjectId() != null, BusLandBlock::getProjectId, bo.getProjectId());
lqw.eq(StringUtils.isNotBlank(bo.getLandCode()), BusLandBlock::getLandCode, bo.getLandCode());
lqw.like(StringUtils.isNotBlank(bo.getLandName()), BusLandBlock::getLandName, bo.getLandName());
lqw.eq(StringUtils.isNotBlank(bo.getVillageCommittee()), BusLandBlock::getVillageCommittee, bo.getVillageCommittee());
lqw.eq(StringUtils.isNotBlank(bo.getDesignArea()), BusLandBlock::getDesignArea, bo.getDesignArea());
lqw.eq(bo.getBlockCount() != null, BusLandBlock::getBlockCount, bo.getBlockCount());
lqw.eq(bo.getFarmerCount() != null, BusLandBlock::getFarmerCount, bo.getFarmerCount());
return lqw;
}
/**
* 新增地块信息
*
* @param bo 地块信息
* @return 是否新增成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(BusLandBlockBo bo) {
BusLandBlock add = MapstructUtils.convert(bo, BusLandBlock.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
add.setLandCode(LAND_PREFIX+add.getId());
baseMapper.updateById(add);
if(CollectionUtil.isNotEmpty(bo.getUnitBoList())){
iBusLandBlockUnitProjectService.insertBatch(add.getId(),bo.getUnitBoList());
}
return flag;
}
/**
* 修改地块信息
*
* @param bo 地块信息
* @return 是否修改成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(BusLandBlockBo bo) {
BusLandBlock update = MapstructUtils.convert(bo, BusLandBlock.class);
validEntityBeforeSave(update);
if(CollectionUtil.isNotEmpty(bo.getUnitBoList())){
iBusLandBlockUnitProjectService.insertBatch(update.getId(),bo.getUnitBoList());
}
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(BusLandBlock entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除地块信息信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
iBusLandBlockUnitProjectService.deleteByLandIds( new ArrayList<>(ids));
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public List<BusLandBlockVo> queryListByIds(List<Long> ids,Boolean isNeedUnit) {
List<BusLandBlockVo> busLandBlockVos = baseMapper.selectVoList(Wrappers.<BusLandBlock>lambdaQuery()
.in(BusLandBlock::getId, ids));
if(CollectionUtil.isNotEmpty(busLandBlockVos) && isNeedUnit){
setUnit(busLandBlockVos);
}
return busLandBlockVos;
}
/**
* 设置单位方程信息
*/
public void setUnit(List<BusLandBlockVo> list){
List<Long> ids = list.stream().map(BusLandBlockVo::getId).toList();
List<BusLandBlockUnitProject> UnitList = iBusLandBlockUnitProjectService.queryListByLandIds(ids);
list.forEach(vo -> {
List<BusLandBlockUnitProject> blockUnitProjects = UnitList.stream().filter(item -> item.getLandBlockId().equals(vo.getId())).toList();
if(CollectionUtil.isNotEmpty( blockUnitProjects)){
vo.setUnit(blockUnitProjects.stream().map(BusLandBlockUnitProject::getUnitProjectName).collect(Collectors.joining(",")));
}
});
}
}

View File

@ -0,0 +1,164 @@
package org.dromara.land.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.land.domain.BusLandBlockUnitProject;
import org.dromara.land.domain.bo.BusLandBlockUnitProjectBo;
import org.dromara.land.domain.bo.UnitBo;
import org.dromara.land.domain.vo.BusLandBlockUnitProjectVo;
import org.dromara.land.mapper.BusLandBlockUnitProjectMapper;
import org.dromara.land.service.IBusLandBlockUnitProjectService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
* 地块与单位工程关联Service业务层处理
*
* @author Lion Li
* @date 2025-07-25
*/
@RequiredArgsConstructor
@Service
public class BusLandBlockUnitProjectServiceImpl implements IBusLandBlockUnitProjectService {
private final BusLandBlockUnitProjectMapper baseMapper;
/**
* 查询地块与单位工程关联
*
* @param id 主键
* @return 地块与单位工程关联
*/
@Override
public BusLandBlockUnitProjectVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询地块与单位工程关联列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 地块与单位工程关联分页列表
*/
@Override
public TableDataInfo<BusLandBlockUnitProjectVo> queryPageList(BusLandBlockUnitProjectBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BusLandBlockUnitProject> lqw = buildQueryWrapper(bo);
Page<BusLandBlockUnitProjectVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的地块与单位工程关联列表
*
* @param bo 查询条件
* @return 地块与单位工程关联列表
*/
@Override
public List<BusLandBlockUnitProjectVo> queryList(BusLandBlockUnitProjectBo bo) {
LambdaQueryWrapper<BusLandBlockUnitProject> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BusLandBlockUnitProject> buildQueryWrapper(BusLandBlockUnitProjectBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BusLandBlockUnitProject> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(BusLandBlockUnitProject::getId);
lqw.eq(bo.getLandBlockId() != null, BusLandBlockUnitProject::getLandBlockId, bo.getLandBlockId());
lqw.eq(bo.getUnitProjectId() != null, BusLandBlockUnitProject::getUnitProjectId, bo.getUnitProjectId());
lqw.like(StringUtils.isNotBlank(bo.getUnitProjectName()), BusLandBlockUnitProject::getUnitProjectName, bo.getUnitProjectName());
return lqw;
}
/**
* 新增地块与单位工程关联
*
* @param bo 地块与单位工程关联
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(BusLandBlockUnitProjectBo bo) {
BusLandBlockUnitProject add = MapstructUtils.convert(bo, BusLandBlockUnitProject.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改地块与单位工程关联
*
* @param bo 地块与单位工程关联
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(BusLandBlockUnitProjectBo bo) {
BusLandBlockUnitProject update = MapstructUtils.convert(bo, BusLandBlockUnitProject.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(BusLandBlockUnitProject entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除地块与单位工程关联信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public void insertBatch(Long landId, List<UnitBo> boList) {
deleteByLandIds(Collections.singletonList(landId));
List<BusLandBlockUnitProject> list = new ArrayList<>();
for (UnitBo bo : boList) {
BusLandBlockUnitProject busLandBlockUnitProject = new BusLandBlockUnitProject();
BeanUtils.copyProperties(bo, busLandBlockUnitProject);
busLandBlockUnitProject.setLandBlockId(landId);
list.add(busLandBlockUnitProject);
}
baseMapper.insertBatch(list);
}
@Override
public void deleteByLandIds(List<Long> landIds) {
baseMapper.delete(Wrappers.<BusLandBlockUnitProject>lambdaUpdate()
.in(BusLandBlockUnitProject::getLandBlockId, landIds));
}
@Override
public List<BusLandBlockUnitProject> queryListByLandIds(List<Long> landIds) {
return baseMapper.selectList(Wrappers.<BusLandBlockUnitProject>lambdaUpdate()
.in(BusLandBlockUnitProject::getLandBlockId, landIds));
}
}

View File

@ -0,0 +1,216 @@
package org.dromara.land.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.land.domain.BusLandBlockUnitProject;
import org.dromara.land.domain.BusLandTransferLedger;
import org.dromara.land.domain.bo.BusLandTransferLedgerBo;
import org.dromara.land.domain.bo.UnitBo;
import org.dromara.land.domain.vo.BusEnterRoadVo;
import org.dromara.land.domain.vo.BusLandBlockVo;
import org.dromara.land.domain.vo.BusLandTransferLedgerVo;
import org.dromara.land.mapper.BusLandTransferLedgerMapper;
import org.dromara.land.service.IBusEnterRoadService;
import org.dromara.land.service.IBusLandBlockService;
import org.dromara.land.service.IBusLandBlockUnitProjectService;
import org.dromara.land.service.IBusLandTransferLedgerService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 项目土地流转台账Service业务层处理
*
* @author Lion Li
* @date 2025-07-25
*/
@RequiredArgsConstructor
@Service
public class BusLandTransferLedgerServiceImpl implements IBusLandTransferLedgerService {
private final BusLandTransferLedgerMapper baseMapper;
private final IBusEnterRoadService iBusEnterRoadService;
private final IBusLandBlockService iBusLandBlockService;
private final IBusLandBlockUnitProjectService iBusLandBlockUnitProjectService;
/**
* 查询项目土地流转台账
*
* @param id 主键
* @return 项目土地流转台账
*/
@Override
public BusLandTransferLedgerVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询项目土地流转台账列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 项目土地流转台账分页列表
*/
@Override
public TableDataInfo<BusLandTransferLedgerVo> queryPageList(BusLandTransferLedgerBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BusLandTransferLedger> lqw = buildQueryWrapper(bo);
Page<BusLandTransferLedgerVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
List<BusLandTransferLedgerVo> records = result.getRecords();
List<Long> landIds = records.stream().map(BusLandTransferLedgerVo::getLandBlockId).toList();
List<Long> roadIds = records.stream().map(BusLandTransferLedgerVo::getEnterRoadId).toList();
List<BusLandBlockVo> landBlockList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(landIds)){
landBlockList = iBusLandBlockService.queryListByIds(landIds,false);
}
List<BusEnterRoadVo> roadList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(roadIds)){
roadList = iBusEnterRoadService.queryListByIds(roadIds);
}
for (BusLandTransferLedgerVo vo : records){
BusLandBlockVo landBlock = landBlockList.stream().filter(item -> item.getId().equals(vo.getLandBlockId())).findFirst().orElse(null);
if(landBlock != null){
vo.setLandCode(landBlock.getLandCode());
vo.setLandName(landBlock.getLandName());
}
BusEnterRoadVo enterRoad = roadList.stream().filter(item -> item.getId().equals(vo.getEnterRoadId())).findFirst().orElse(null);
if(enterRoad != null){
vo.setRoadCode(enterRoad.getRoadCode());
vo.setRoadName(enterRoad.getRoadName());
}
}
return TableDataInfo.build(result);
}
@Override
public TableDataInfo<BusLandTransferLedgerVo> queryUnitPageList(BusLandTransferLedgerBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BusLandTransferLedger> lqw = buildQueryWrapper(bo);
Page<BusLandTransferLedgerVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
List<BusLandTransferLedgerVo> records = result.getRecords();
List<Long> landIds = records.stream().map(BusLandTransferLedgerVo::getLandBlockId).toList();
List<BusLandBlockVo> landBlockList = new ArrayList<>();
List<BusLandBlockUnitProject> list = new ArrayList<>();
if(CollectionUtil.isNotEmpty(landIds)){
landBlockList = iBusLandBlockService.queryListByIds(landIds,false);
list = iBusLandBlockUnitProjectService.queryListByLandIds(landIds);
}
for (BusLandTransferLedgerVo vo : records){
List<BusLandBlockUnitProject> blockUnitProjects = list.stream().filter(item -> item.getLandBlockId().equals(vo.getLandBlockId())).toList();
if(CollectionUtil.isNotEmpty( blockUnitProjects)){
vo.setUnitBoList(BeanUtil.copyToList(blockUnitProjects, UnitBo.class));
}
BusLandBlockVo landBlock = landBlockList.stream().filter(item -> item.getId().equals(vo.getLandBlockId())).findFirst().orElse(null);
if(landBlock != null){
vo.setLandCode(landBlock.getLandCode());
vo.setLandName(landBlock.getLandName());
}
}
return TableDataInfo.build(result);
}
/**
* 查询符合条件的项目土地流转台账列表
*
* @param bo 查询条件
* @return 项目土地流转台账列表
*/
@Override
public List<BusLandTransferLedgerVo> queryList(BusLandTransferLedgerBo bo) {
LambdaQueryWrapper<BusLandTransferLedger> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BusLandTransferLedger> buildQueryWrapper(BusLandTransferLedgerBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BusLandTransferLedger> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(BusLandTransferLedger::getId);
lqw.eq(bo.getProjectId() != null, BusLandTransferLedger::getProjectId, bo.getProjectId());
lqw.eq(StringUtils.isNotBlank(bo.getLandType()), BusLandTransferLedger::getLandType, bo.getLandType());
lqw.eq(bo.getLandBlockId() != null, BusLandTransferLedger::getLandBlockId, bo.getLandBlockId());
lqw.eq(bo.getEnterRoadId() != null, BusLandTransferLedger::getEnterRoadId, bo.getEnterRoadId());
lqw.eq(StringUtils.isNotBlank(bo.getDesignArea()), BusLandTransferLedger::getDesignArea, bo.getDesignArea());
lqw.eq(StringUtils.isNotBlank(bo.getResponsiblePerson()), BusLandTransferLedger::getResponsiblePerson, bo.getResponsiblePerson());
lqw.eq(bo.getExpectedFinishDate() != null, BusLandTransferLedger::getExpectedFinishDate, bo.getExpectedFinishDate());
lqw.eq(StringUtils.isNotBlank(bo.getTransferAea()), BusLandTransferLedger::getTransferAea, bo.getTransferAea());
lqw.eq(StringUtils.isNotBlank(bo.getTransferRatio()), BusLandTransferLedger::getTransferRatio, bo.getTransferRatio());
lqw.eq(bo.getLandRent() != null, BusLandTransferLedger::getLandRent, bo.getLandRent());
lqw.eq(bo.getSeedlingCompensation() != null, BusLandTransferLedger::getSeedlingCompensation, bo.getSeedlingCompensation());
lqw.eq(bo.getTotalAmount() != null, BusLandTransferLedger::getTotalAmount, bo.getTotalAmount());
lqw.eq(StringUtils.isNotBlank(bo.getTransferStatus()), BusLandTransferLedger::getTransferStatus, bo.getTransferStatus());
lqw.eq(StringUtils.isNotBlank(bo.getStatusDescription()), BusLandTransferLedger::getStatusDescription, bo.getStatusDescription());
lqw.eq(StringUtils.isNotBlank(bo.getIssueSummary()), BusLandTransferLedger::getIssueSummary, bo.getIssueSummary());
lqw.eq(StringUtils.isNotBlank(bo.getNextStrategy()), BusLandTransferLedger::getNextStrategy, bo.getNextStrategy());
return lqw;
}
/**
* 新增项目土地流转台账
*
* @param bo 项目土地流转台账
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(BusLandTransferLedgerBo bo) {
BusLandTransferLedger add = MapstructUtils.convert(bo, BusLandTransferLedger.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改项目土地流转台账
*
* @param bo 项目土地流转台账
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(BusLandTransferLedgerBo bo) {
BusLandTransferLedger update = MapstructUtils.convert(bo, BusLandTransferLedger.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(BusLandTransferLedger entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除项目土地流转台账信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -0,0 +1,176 @@
package org.dromara.land.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.land.domain.BusNonTransferLedger;
import org.dromara.land.domain.bo.BusNonTransferLedgerBo;
import org.dromara.land.domain.vo.BusEnterRoadVo;
import org.dromara.land.domain.vo.BusLandBlockVo;
import org.dromara.land.domain.vo.BusNonTransferLedgerVo;
import org.dromara.land.mapper.BusNonTransferLedgerMapper;
import org.dromara.land.service.IBusEnterRoadService;
import org.dromara.land.service.IBusLandBlockService;
import org.dromara.land.service.IBusNonTransferLedgerService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 不流转台账Service业务层处理
*
* @author Lion Li
* @date 2025-07-25
*/
@RequiredArgsConstructor
@Service
public class BusNonTransferLedgerServiceImpl implements IBusNonTransferLedgerService {
private final BusNonTransferLedgerMapper baseMapper;
private final IBusEnterRoadService iBusEnterRoadService;
private final IBusLandBlockService iBusLandBlockService;
/**
* 查询不流转台账
*
* @param id 主键
* @return 不流转台账
*/
@Override
public BusNonTransferLedgerVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询不流转台账列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 不流转台账分页列表
*/
@Override
public TableDataInfo<BusNonTransferLedgerVo> queryPageList(BusNonTransferLedgerBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BusNonTransferLedger> lqw = buildQueryWrapper(bo);
Page<BusNonTransferLedgerVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
List<BusNonTransferLedgerVo> records = result.getRecords();
List<Long> landIds = records.stream().map(BusNonTransferLedgerVo::getLandBlockId).toList();
List<Long> roadIds = records.stream().map(BusNonTransferLedgerVo::getEnterRoadId).toList();
List<BusLandBlockVo> landBlockList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(landIds)){
landBlockList = iBusLandBlockService.queryListByIds(landIds,false);
}
List<BusEnterRoadVo> roadList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(roadIds)){
roadList = iBusEnterRoadService.queryListByIds(roadIds);
}
for (BusNonTransferLedgerVo vo : records){
BusLandBlockVo landBlock = landBlockList.stream().filter(item -> item.getId().equals(vo.getLandBlockId())).findFirst().orElse(null);
if(landBlock != null){
vo.setLandCode(landBlock.getLandCode());
vo.setLandName(landBlock.getLandName());
}
BusEnterRoadVo enterRoad = roadList.stream().filter(item -> item.getId().equals(vo.getEnterRoadId())).findFirst().orElse(null);
if(enterRoad != null){
vo.setRoadCode(enterRoad.getRoadCode());
vo.setRoadName(enterRoad.getRoadName());
}
}
return TableDataInfo.build(result);
}
/**
* 查询符合条件的不流转台账列表
*
* @param bo 查询条件
* @return 不流转台账列表
*/
@Override
public List<BusNonTransferLedgerVo> queryList(BusNonTransferLedgerBo bo) {
LambdaQueryWrapper<BusNonTransferLedger> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BusNonTransferLedger> buildQueryWrapper(BusNonTransferLedgerBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BusNonTransferLedger> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(BusNonTransferLedger::getId);
lqw.eq(bo.getProjectId() != null, BusNonTransferLedger::getProjectId, bo.getProjectId());
lqw.eq(StringUtils.isNotBlank(bo.getLandType()), BusNonTransferLedger::getLandType, bo.getLandType());
lqw.eq(bo.getLandBlockId() != null, BusNonTransferLedger::getLandBlockId, bo.getLandBlockId());
lqw.eq(bo.getEnterRoadId() != null, BusNonTransferLedger::getEnterRoadId, bo.getEnterRoadId());
lqw.eq(StringUtils.isNotBlank(bo.getDesignArea()), BusNonTransferLedger::getDesignArea, bo.getDesignArea());
lqw.eq(StringUtils.isNotBlank(bo.getNoContractArea()), BusNonTransferLedger::getNoContractArea, bo.getNoContractArea());
lqw.eq(StringUtils.isNotBlank(bo.getNoContractReason()), BusNonTransferLedger::getNoContractReason, bo.getNoContractReason());
lqw.eq(StringUtils.isNotBlank(bo.getNoSurveyArea()), BusNonTransferLedger::getNoSurveyArea, bo.getNoSurveyArea());
lqw.eq(StringUtils.isNotBlank(bo.getNonTransferReason()), BusNonTransferLedger::getNonTransferReason, bo.getNonTransferReason());
return lqw;
}
/**
* 新增不流转台账
*
* @param bo 不流转台账
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(BusNonTransferLedgerBo bo) {
BusNonTransferLedger add = MapstructUtils.convert(bo, BusNonTransferLedger.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改不流转台账
*
* @param bo 不流转台账
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(BusNonTransferLedgerBo bo) {
BusNonTransferLedger update = MapstructUtils.convert(bo, BusNonTransferLedger.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(BusNonTransferLedger entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除不流转台账信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.land.mapper.BusEnterRoadMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.land.mapper.BusLandBlockMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.land.mapper.BusLandBlockUnitProjectMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.land.mapper.BusLandTransferLedgerMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.land.mapper.BusNonTransferLedgerMapper">
</mapper>