From 24263eddd103309fc461e59d4f9bfc793b422fb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=AE=9D=E9=BE=99?= Date: Thu, 2 Jul 2026 12:41:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lEmploymentMonitorCompositeController.java | 96 ++++++++++++ .../ModelEmploymentMonitorComposite.java | 58 +++++++ ...ModelEmploymentMonitorCompositeMapper.java | 59 ++++++++ ...odelEmploymentMonitorCompositeService.java | 51 +++++++ ...EmploymentMonitorCompositeServiceImpl.java | 141 ++++++++++++++++++ .../ModelEmploymentMonitorCompositeMapper.xml | 71 +++++++++ 6 files changed, 476 insertions(+) create mode 100644 ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/ModelEmploymentMonitorCompositeController.java create mode 100644 ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ModelEmploymentMonitorComposite.java create mode 100644 ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/ModelEmploymentMonitorCompositeMapper.java create mode 100644 ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/ModelEmploymentMonitorCompositeService.java create mode 100644 ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ModelEmploymentMonitorCompositeServiceImpl.java create mode 100644 ruoyi-bussiness/src/main/resources/mapper/ModelEmploymentMonitorCompositeMapper.xml diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/ModelEmploymentMonitorCompositeController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/ModelEmploymentMonitorCompositeController.java new file mode 100644 index 0000000..aeea356 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/ModelEmploymentMonitorCompositeController.java @@ -0,0 +1,96 @@ +package com.ruoyi.cms.controller; + +import com.ruoyi.cms.domain.ModelEmploymentMonitorComposite; +import com.ruoyi.cms.service.ModelEmploymentMonitorCompositeService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +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.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.Valid; +import java.util.List; + +/** + * 就业监测综合指数管理 + * + * @author 马宝龙 + * @date 2026/7/2 + */ +@RestController +@RequestMapping("/model/employmentMonitorComposite") +@RequiredArgsConstructor +public class ModelEmploymentMonitorCompositeController extends BaseController { + + private final ModelEmploymentMonitorCompositeService modelEmploymentMonitorCompositeService; + + /** + * 创建 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + * @return 创建结果 + */ + @PostMapping("/create") + public AjaxResult create(@Valid @RequestBody ModelEmploymentMonitorComposite modelEmploymentMonitorComposite) { + modelEmploymentMonitorCompositeService.create(modelEmploymentMonitorComposite); + return AjaxResult.success(); + } + + /** + * 更新 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + * @return 更新结果 + */ + @PutMapping("/update") + public AjaxResult update(@Valid @RequestBody ModelEmploymentMonitorComposite modelEmploymentMonitorComposite) { + modelEmploymentMonitorCompositeService.update(modelEmploymentMonitorComposite); + return AjaxResult.success(); + } + + /** + * 删除 + * + * @param id ID + * @return 删除结果 + */ + @DeleteMapping("/delete") + public AjaxResult delete(@RequestParam Long id) { + modelEmploymentMonitorCompositeService.delete(id); + return AjaxResult.success(); + } + + /** + * 查询详情 + * + * @param id ID + * @return 就业监测综合指数 + */ + @GetMapping("/detail") + public AjaxResult detail(@RequestParam Long id) { + ModelEmploymentMonitorComposite monitor = modelEmploymentMonitorCompositeService.detail(id); + return AjaxResult.success(monitor); + } + + /** + * 查询分页列表 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + * @return 分页列表 + */ + @PostMapping("/page") + @ResponseBody + public TableDataInfo page(@RequestBody ModelEmploymentMonitorComposite modelEmploymentMonitorComposite) { + startPage(); + List list = modelEmploymentMonitorCompositeService.list(modelEmploymentMonitorComposite); + return getDataTable(list); + } +} \ No newline at end of file diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ModelEmploymentMonitorComposite.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ModelEmploymentMonitorComposite.java new file mode 100644 index 0000000..8f2d9e0 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ModelEmploymentMonitorComposite.java @@ -0,0 +1,58 @@ +package com.ruoyi.cms.domain; + +import com.ruoyi.common.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 就业监测综合指数管理 + * + * @author 马宝龙 + * @date 2026/7/2 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ModelEmploymentMonitorComposite implements Serializable { + private static final long serialVersionUID = -3444223057995852028L; + + /** + * 主键 + */ + private Long id; + + /** + * 指标编码 + */ + @Excel(name = "指标编码") + private String indicatorCode; + + /** + * 指标名称 + */ + private String indicatorName; + + /** + * 指标权重 + */ + @Excel(name = "指标权重") + private BigDecimal indicatorWeight; + + /** + * 指标类型 + */ + @Excel(name = "指标类型") + private Integer indicatorType; + + /** + * 排序 + */ + @Excel(name = "排序") + private Integer sortOrder; +} \ No newline at end of file diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/ModelEmploymentMonitorCompositeMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/ModelEmploymentMonitorCompositeMapper.java new file mode 100644 index 0000000..6f17df1 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/ModelEmploymentMonitorCompositeMapper.java @@ -0,0 +1,59 @@ +package com.ruoyi.cms.mapper; + +import com.ruoyi.cms.domain.ModelEmploymentMonitorComposite; + +import java.util.List; + +/** + * 就业监测综合指数管理 + * + * @author 马宝龙 + * @date 2026/7/2 + */ +public interface ModelEmploymentMonitorCompositeMapper { + + /** + * 新增 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + */ + void insert(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite); + + /** + * 修改 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + */ + void update(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite); + + /** + * 通过ID删除 + * + * @param id ID + */ + void deleteById(Long id); + + /** + * 通过ID查询 + * + * @param id ID + * @return 就业监测综合指数 + */ + ModelEmploymentMonitorComposite selectById(Long id); + + /** + * 查询唯一 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + * @return 就业监测综合指数 + */ + ModelEmploymentMonitorComposite findUnique(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite); + + /** + * 查询列表 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + * @return 列表 + */ + List list(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite); +} \ No newline at end of file diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/ModelEmploymentMonitorCompositeService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/ModelEmploymentMonitorCompositeService.java new file mode 100644 index 0000000..ed4b910 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/ModelEmploymentMonitorCompositeService.java @@ -0,0 +1,51 @@ +package com.ruoyi.cms.service; + +import com.ruoyi.cms.domain.ModelEmploymentMonitorComposite; + +import java.util.List; + +/** + * 就业监测综合指数管理 + * + * @author 马宝龙 + * @date 2026/7/2 + */ +public interface ModelEmploymentMonitorCompositeService { + + /** + * 创建 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + */ + void create(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite); + + /** + * 更新 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + */ + void update(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite); + + /** + * 删除 + * + * @param id ID + */ + void delete(Long id); + + /** + * 查询详情 + * + * @param id ID + * @return 就业监测综合指数 + */ + ModelEmploymentMonitorComposite detail(Long id); + + /** + * 查询列表 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + * @return 列表 + */ + List list(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite); +} \ No newline at end of file diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ModelEmploymentMonitorCompositeServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ModelEmploymentMonitorCompositeServiceImpl.java new file mode 100644 index 0000000..6f3185c --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ModelEmploymentMonitorCompositeServiceImpl.java @@ -0,0 +1,141 @@ +package com.ruoyi.cms.service.impl; + +import com.ruoyi.cms.domain.ModelEmploymentMonitorComposite; +import com.ruoyi.cms.domain.ModelWarningIndicator; +import com.ruoyi.cms.mapper.ModelEmploymentMonitorCompositeMapper; +import com.ruoyi.cms.mapper.ModelWarningIndicatorMapper; +import com.ruoyi.cms.service.ModelEmploymentMonitorCompositeService; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; + +/** + * 就业监测综合指数管理 + * + * @author 马宝龙 + * @date 2026/7/2 + */ +@Slf4j +@Service +@Validated +@RequiredArgsConstructor +public class ModelEmploymentMonitorCompositeServiceImpl implements ModelEmploymentMonitorCompositeService { + + + private final ModelEmploymentMonitorCompositeMapper modelEmploymentMonitorCompositeMapper; + private final ModelWarningIndicatorMapper modelWarningIndicatorMapper; + + @Override + public void create(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite) { + + check(modelEmploymentMonitorComposite); + + // 查询唯一 + Optional optional = findUnique(modelEmploymentMonitorComposite); + if (optional.isPresent()) { + // 更新 + ModelEmploymentMonitorComposite exists = optional.get(); + modelEmploymentMonitorComposite.setId(exists.getId()); + modelEmploymentMonitorCompositeMapper.update(modelEmploymentMonitorComposite); + } else { + // 新增 + modelEmploymentMonitorCompositeMapper.insert(modelEmploymentMonitorComposite); + } + } + + /** + * 检查 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + */ + void check(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite) { + if (StringUtils.isBlank(modelEmploymentMonitorComposite.getIndicatorCode())) { + throw new ServiceException("指标编码不能为空"); + } + if (Objects.isNull(modelEmploymentMonitorComposite.getIndicatorWeight())) { + throw new ServiceException("指标权重不能为空"); + } + Set indicatorTypes = new HashSet<>(); + indicatorTypes.add(1); + indicatorTypes.add(2); + if (Objects.isNull(modelEmploymentMonitorComposite.getIndicatorType()) + || !indicatorTypes.contains(modelEmploymentMonitorComposite.getIndicatorType())) { + throw new ServiceException("指标类型错误"); + } + if (Objects.isNull(modelEmploymentMonitorComposite.getSortOrder())) { + throw new ServiceException("排序不能为空"); + } + + // 校验指标是否存在 + ModelWarningIndicator unique = + modelWarningIndicatorMapper.findUnique(modelEmploymentMonitorComposite.getIndicatorCode()); + if (Objects.isNull(unique)) { + throw new ServiceException("指标[" + modelEmploymentMonitorComposite.getIndicatorCode() + "]不存在"); + } + + } + + @Override + public void update(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite) { + + check(modelEmploymentMonitorComposite); + + if (Objects.isNull(modelEmploymentMonitorComposite.getId())) { + throw new ServiceException("id不能为空"); + } + Optional unique = findUnique(modelEmploymentMonitorComposite); + if (!unique.isPresent()) { + modelEmploymentMonitorCompositeMapper.update(modelEmploymentMonitorComposite); + return; + } + ModelEmploymentMonitorComposite exists = unique.get(); + if (!exists.getId().equals(modelEmploymentMonitorComposite.getId())) { + throw new ServiceException("指标已存在"); + } + modelEmploymentMonitorCompositeMapper.update(modelEmploymentMonitorComposite); + } + + @Override + public void delete(Long id) { + if (Objects.isNull(id)) { + throw new ServiceException("id不能为空"); + } + modelEmploymentMonitorCompositeMapper.deleteById(id); + } + + @Override + public ModelEmploymentMonitorComposite detail(Long id) { + + if (Objects.isNull(id)) { + throw new ServiceException("id不能为空"); + } + + return modelEmploymentMonitorCompositeMapper.selectById(id); + } + + /** + * 查询唯一 + * + * @param modelEmploymentMonitorComposite 就业监测综合指数 + * @return 就业监测综合指数 + */ + private Optional findUnique(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite) { + ModelEmploymentMonitorComposite unique = + modelEmploymentMonitorCompositeMapper.findUnique(modelEmploymentMonitorComposite); + return Optional.ofNullable(unique); + } + + @Override + public List list(ModelEmploymentMonitorComposite modelEmploymentMonitorComposite) { + return modelEmploymentMonitorCompositeMapper.list(modelEmploymentMonitorComposite); + } +} \ No newline at end of file diff --git a/ruoyi-bussiness/src/main/resources/mapper/ModelEmploymentMonitorCompositeMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/ModelEmploymentMonitorCompositeMapper.xml new file mode 100644 index 0000000..4f33cdb --- /dev/null +++ b/ruoyi-bussiness/src/main/resources/mapper/ModelEmploymentMonitorCompositeMapper.xml @@ -0,0 +1,71 @@ + + + + + + INSERT INTO model_employment_monitor_composite (indicator_code, indicator_weight, indicator_type, sort_order) + VALUES (#{indicatorCode}, #{indicatorWeight}, #{indicatorType}, #{sortOrder}) + + + + UPDATE model_employment_monitor_composite + SET indicator_code = #{indicatorCode}, + indicator_weight = #{indicatorWeight}, + indicator_type = #{indicatorType}, + sort_order = #{sortOrder} + WHERE id = #{id} + + + + DELETE + FROM model_employment_monitor_composite + WHERE id = #{id} + + + + + + + + + \ No newline at end of file