From 02d0dbba93ac7be553c6f049cab0cde646dca81f Mon Sep 17 00:00:00 2001 From: itcast Date: Fri, 14 Nov 2025 18:06:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/controller/ProjectController.java | 112 ++++++++++++ .../project/controller/RegionController.java | 51 ++++++ .../material/project/domain/Project.java | 60 +++++++ .../material/project/domain/ProjectType.java | 22 +++ .../bonus/material/project/domain/Region.java | 27 +++ .../project/mapper/ProjectMapper.java | 59 +++++++ .../material/project/mapper/RegionMapper.java | 19 ++ .../project/service/ProjectService.java | 23 +++ .../project/service/RegionService.java | 11 ++ .../service/impl/ProjectServiceImpl.java | 115 ++++++++++++ .../service/impl/RegionServiceImpl.java | 45 +++++ .../mapper/material/project/ProjectMapper.xml | 165 ++++++++++++++++++ .../mapper/material/project/RegionMapper.xml | 54 ++++++ 13 files changed, 763 insertions(+) create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/controller/ProjectController.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/controller/RegionController.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/Project.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/ProjectType.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/Region.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/mapper/ProjectMapper.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/mapper/RegionMapper.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/ProjectService.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/RegionService.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/impl/ProjectServiceImpl.java create mode 100644 bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/impl/RegionServiceImpl.java create mode 100644 bonus-modules/bonus-material-mall/src/main/resources/mapper/material/project/ProjectMapper.xml create mode 100644 bonus-modules/bonus-material-mall/src/main/resources/mapper/material/project/RegionMapper.xml diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/controller/ProjectController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/controller/ProjectController.java new file mode 100644 index 0000000..522d3f9 --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/controller/ProjectController.java @@ -0,0 +1,112 @@ +package com.bonus.material.project.controller; + +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.project.domain.Project; +import com.bonus.material.project.domain.ProjectType; +import com.bonus.material.project.service.ProjectService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author 30791 + * @version 1.0 + * Create by 2025/11/13 11:23 + */ + +@RestController +@RequestMapping("/project") +@Api(value = "工程管理", tags = "工程管理") +public class ProjectController extends BaseController { + + @Resource + private ProjectService projectService; + + /** + * 查询工程列表 + */ + @ApiOperation(value = "查询工程列表") + @GetMapping("/list") + public AjaxResult list(Project project) + { + startPage(); + List list = projectService.selectProjectList(project); + return AjaxResult.success(getDataTable(list)); + } + + /** + * 查询工程详细 + */ + @ApiOperation(value = "查询工程详细") + @GetMapping(value = "/{projectId}") + public AjaxResult getInfo(@PathVariable("projectId") Long projectId) + { + Project project=projectService.selectProjectById(projectId); + return AjaxResult.success(project); + } + + /** + * 新增工程 + */ + @ApiOperation(value = "新增工程") + @PostMapping + public AjaxResult add(@RequestBody Project project) + { + projectService.insertProject(project); + return AjaxResult.success(); + } + + /** + * 修改工程 + */ + @ApiOperation(value = "修改工程") + @PostMapping("/edit") + public AjaxResult edit(@RequestBody Project project) + { + projectService.updateProject(project); + return AjaxResult.success(); + } + + /** + * 删除工程 + */ + @ApiOperation(value = "删除工程") + @PostMapping("/delete/{projectId}") + public AjaxResult remove(@PathVariable("projectId") Long projectId) + { + projectService.deleteProjectById(projectId); + return AjaxResult.success(); + } + + /** + * 批量删除 + * @param ids + * @return + */ + @ApiOperation(value = "批量删除工程") + @PostMapping("/batch/delete") + public AjaxResult delProjectBatch(@RequestBody List ids) { + projectService.delProjectBatch(ids); + return AjaxResult.success(); + } + + /** + * 获取工程类型列表 + */ + @ApiOperation(value = "获取工程类型列表") + @GetMapping("/list/project_type") + public AjaxResult getProjectTypeList() + { + + // 从字典表中查询 + List projectTypes = projectService.selectProjectTypeList(); + return AjaxResult.success(projectTypes); + } + + +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/controller/RegionController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/controller/RegionController.java new file mode 100644 index 0000000..2fd72d1 --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/controller/RegionController.java @@ -0,0 +1,51 @@ +package com.bonus.material.project.controller; + +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.project.service.RegionService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 地区信息 + * + * @author 30791 + * @version 1.0 + * Create by 2025/11/13 22:05 + */ + +@RestController +@RequestMapping("/region") +public class RegionController { + + @Resource + private RegionService regionService; + + + // 获取所有省份(无变化) + @GetMapping("/provinces") + public AjaxResult getProvinces() { + List> provinces = regionService.getProvinces(); + return AjaxResult.success(provinces); + } + + // 根据「省的area_code」获取城市(参数名改为provinceAreaCode) + @GetMapping("/cities") + public AjaxResult getCities(@RequestParam String provinceAreaCode) { + List> cities = regionService.getCitiesByProvinceAreaCode(provinceAreaCode); + return AjaxResult.success(cities); + } + + // 根据「市的area_code」获取区县(参数名改为cityAreaCode) + @GetMapping("/counties") + public AjaxResult getCounties(@RequestParam String cityAreaCode) { + List> counties = regionService.getDistrictsByCityAreaCode(cityAreaCode); + return AjaxResult.success(counties); + } +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/Project.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/Project.java new file mode 100644 index 0000000..bed7e65 --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/Project.java @@ -0,0 +1,60 @@ +package com.bonus.material.project.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.models.auth.In; +import lombok.Data; + +import java.util.Date; + +/** + * @author 30791 + * @version 1.0 + * Create by 2025/11/13 13:32 + */ + +@Data +public class Project { + //工程id 主键 + private Integer id; + + //工程编号 + private String pro_code; + + //工程名称 + private String pro_name; + + //电压等级 + private String voltage; + + //规模 + private String scale; + + //工程类型 + private String project_type; + + //工程类型名称 + private String dict_label; + + //建管单位名称 + private String org_name; + + //机械化率 + private String mechanize_rate; + + //开工时间 + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date start_time; + + //投产时间 + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date put_time; + + //省 + private String province; + + //市 + private String city; + + //县 + private String county; +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/ProjectType.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/ProjectType.java new file mode 100644 index 0000000..41a69ef --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/ProjectType.java @@ -0,0 +1,22 @@ +package com.bonus.material.project.domain; + +import lombok.Data; + +/** + * @author 30791 + * @version 1.0 + * Create by 2025/11/13 13:45 + */ + +@Data +public class ProjectType { + + //字典类型 + private String dict_type; + + //字典键值 + private String dict_value; + + //字典标签 + private String dict_label; +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/Region.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/Region.java new file mode 100644 index 0000000..6df75cf --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/domain/Region.java @@ -0,0 +1,27 @@ +package com.bonus.material.project.domain; + +import lombok.Data; + +/** + * @author 30791 + * @version 1.0 + * Create by 2025/11/13 22:03 + */ + +@Data +public class Region { + private Long id; + private Integer level; // 级别:0-省,1-市,2-区县 + private String parentCode; // 父级编码 + private String areaCode; + private String zipCode; + private String cityCode; + private String name; // 地区名称(如“北京市”“朝阳区”) + private String short_name; + private String mergerName; + private String pinyin; + private Double lng; // 经度 + private Double lat; // 纬度 + private String createdAt; + private String updatedAt; +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/mapper/ProjectMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/mapper/ProjectMapper.java new file mode 100644 index 0000000..c4f2abb --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/mapper/ProjectMapper.java @@ -0,0 +1,59 @@ +package com.bonus.material.project.mapper; + +import com.bonus.material.project.domain.Project; +import com.bonus.material.project.domain.ProjectType; +import feign.Param; + +import java.util.List; + +public interface ProjectMapper { + + /** + * 查询工程列表 + * + * @param project 工程信息 + * @return 工程集合 + */ + public List selectProjectList(Project project); + + /** + * 通过ID查询工程 + * + * @param projectId 工程ID + * @return 工程对象 + */ + public Project selectProjectById(@Param("projectId") Long projectId); + + /** + * 新增工程 + * + * @param project 工程信息 + * @return 结果 + */ + public int insertProject(Project project); + + /** + * 修改工程 + * + * @param project 工程信息 + * @return 结果 + */ + public int updateProject(Project project); + + /** + * 删除工程 + * + * @param projectId 工程ID + * @return 结果 + */ + public int deleteProjectById(@Param("projectId") Long projectId); + + /** + * 查询工程类型列表 + * + * @return 工程类型集合 + */ + public List selectProjectTypeList(); + + public int delProjectBatch(List ids); +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/mapper/RegionMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/mapper/RegionMapper.java new file mode 100644 index 0000000..2f23dab --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/mapper/RegionMapper.java @@ -0,0 +1,19 @@ +package com.bonus.material.project.mapper; + +import feign.Param; + +import java.util.List; +import java.util.Map; + +public interface RegionMapper { + // 查询所有省份 + List> selectAllProvinces(); + + // 根据「省的area_code」查询城市(参数名改为provinceAreaCode) + List> selectCitiesByProvinceId(@Param("provinceAreaCode") String provinceAreaCode); + + // 根据「市的area_code」查询区县(参数名改为cityAreaCode) + List> selectDistrictsByCityId(@Param("cityAreaCode") String cityAreaCode); + + String getNameByCode(String area_code); +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/ProjectService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/ProjectService.java new file mode 100644 index 0000000..7ff84ce --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/ProjectService.java @@ -0,0 +1,23 @@ +package com.bonus.material.project.service; + +import com.bonus.material.project.domain.Project; +import com.bonus.material.project.domain.ProjectType; + +import java.util.List; + +public interface ProjectService { + + List selectProjectList(Project project); + + Project selectProjectById(Long projectId); + + void insertProject(Project project); + + void updateProject(Project project); + + void deleteProjectById(Long projectId); + + List selectProjectTypeList(); + + boolean delProjectBatch(List ids); +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/RegionService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/RegionService.java new file mode 100644 index 0000000..e966c2e --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/RegionService.java @@ -0,0 +1,11 @@ +package com.bonus.material.project.service; + +import java.util.List; +import java.util.Map; + +public interface RegionService { + List> getProvinces(); + // 参数改为String类型(area_code通常是字符串,避免数字过长丢失精度) + List> getCitiesByProvinceAreaCode(String provinceAreaCode); + List> getDistrictsByCityAreaCode(String cityAreaCode); +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/impl/ProjectServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/impl/ProjectServiceImpl.java new file mode 100644 index 0000000..f3ec4ee --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/impl/ProjectServiceImpl.java @@ -0,0 +1,115 @@ +package com.bonus.material.project.service.impl; + +import com.bonus.common.core.utils.DateUtils; +import com.bonus.material.project.domain.Project; +import com.bonus.material.project.domain.ProjectType; +import com.bonus.material.project.mapper.ProjectMapper; +import com.bonus.material.project.mapper.RegionMapper; +import com.bonus.material.project.service.ProjectService; +import org.checkerframework.checker.units.qual.A; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author 30791 + * @version 1.0 + * Create by 2025/11/13 11:25 + */ + +@Service +public class ProjectServiceImpl implements ProjectService { + + @Resource + private ProjectMapper projectMapper; + + @Resource + private RegionMapper regionMapper; + + /** + * 查询工程列表 + * + * @param project 工程信息 + * @return 工程集合 + */ + @Override + public List selectProjectList(Project project) + { + return projectMapper.selectProjectList(project); + } + + /** + * 通过ID查询工程 + * + * @param projectId 工程ID + * @return 工程对象 + */ + @Override + public Project selectProjectById(Long projectId) + { + return projectMapper.selectProjectById(projectId); + } + + /** + * 新增工程 + * + * @param project 工程信息 + */ + @Override + public void insertProject(Project project) + { + project.setProvince(regionMapper.getNameByCode(project.getProvince())); + project.setCity(regionMapper.getNameByCode(project.getCity())); + project.setCounty(regionMapper.getNameByCode(project.getCounty())); + projectMapper.insertProject(project); + } + + /** + * 修改工程 + * + * @param project 工程信息 + */ + @Override + public void updateProject(Project project) + { + project.setProvince(regionMapper.getNameByCode(project.getProvince())); + project.setCity(regionMapper.getNameByCode(project.getCity())); + project.setCounty(regionMapper.getNameByCode(project.getCounty())); + projectMapper.updateProject(project); + } + + /** + * 删除工程信息 + * + * @param projectId 工程ID + */ + @Override + public void deleteProjectById(Long projectId) + { + projectMapper.deleteProjectById(projectId); + } + + /** + * 批量删除 + * @param ids + * @return + */ + @Override + public boolean delProjectBatch(List ids) { + return projectMapper.delProjectBatch(ids) > 0; + } + + /** + * 获取工程类型列表 + * + * @return 工程类型集合 + */ + @Override + public List selectProjectTypeList() { + // 这里假设你的工程类型是存在一个单独的表中 + return projectMapper.selectProjectTypeList(); + } + +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/impl/RegionServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/impl/RegionServiceImpl.java new file mode 100644 index 0000000..7b53076 --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/project/service/impl/RegionServiceImpl.java @@ -0,0 +1,45 @@ +package com.bonus.material.project.service.impl; + + +import com.bonus.material.project.mapper.RegionMapper; +import com.bonus.material.project.service.RegionService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + + +/** + * @author 30791 + * @version 1.0 + * Create by 2025/11/13 11:25 + */ + +@Service +public class RegionServiceImpl implements RegionService { + @Resource + private RegionMapper regionMapper; + + @Override + public List> getProvinces() { + return regionMapper.selectAllProvinces(); + } + + // 调用Mapper的「根据省area_code查询城市」方法 + @Override + public List> getCitiesByProvinceAreaCode(String provinceAreaCode) { + return regionMapper.selectCitiesByProvinceId(provinceAreaCode); + } + + // 调用Mapper的「根据市area_code查询区县」方法 + @Override + public List> getDistrictsByCityAreaCode(String cityAreaCode) { + return regionMapper.selectDistrictsByCityId(cityAreaCode); + } + + //获取地区名称 + public String getNameByCode(String area_code) { + return regionMapper.getNameByCode(area_code); + } +} diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/project/ProjectMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/project/ProjectMapper.xml new file mode 100644 index 0000000..cec96c7 --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/project/ProjectMapper.xml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into + jj_sing_project + (pro_code, + pro_name, + voltage, + scale, + project_type, + org_name, + start_time, + put_time, + province, + city, + county, + mechanize_rate) + values (#{pro_code}, + #{pro_name}, + #{voltage}, + #{scale}, + #{project_type}, + #{org_name}, + #{start_time}, + #{put_time}, + #{province}, + #{city}, + #{county}, + #{mechanize_rate}) + + + + + update jj_sing_project + + + pro_code = #{pro_code}, + + + pro_name = #{pro_name}, + + + voltage = #{voltage}, + + + scale = #{scale}, + + + project_type = #{project_type}, + + + org_name = #{org_name}, + + + province = #{province}, + + + city = #{city}, + + + county = #{county}, + + + mechanize_rate = #{mechanize_rate}, + + + start_time = #{start_time}, + + + put_time = #{put_time}, + + + where id = #{id} + + + + + delete from jj_sing_project where id = #{id} + + + + + DELETE FROM jj_sing_project WHERE id IN + + #{id} + + + + + + + + \ No newline at end of file diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/project/RegionMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/project/RegionMapper.xml new file mode 100644 index 0000000..e8e0072 --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/project/RegionMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file