diff --git a/klp-admin/pom.xml b/klp-admin/pom.xml
index be50e50d3..08c5aa7c2 100644
--- a/klp-admin/pom.xml
+++ b/klp-admin/pom.xml
@@ -140,6 +140,12 @@
klp-pt
+
+
+ com.klp
+ klp-pltcm
+
+
org.springframework.boot
spring-boot-starter-test
diff --git a/klp-pltcm/pom.xml b/klp-pltcm/pom.xml
new file mode 100644
index 000000000..53127a4e2
--- /dev/null
+++ b/klp-pltcm/pom.xml
@@ -0,0 +1,22 @@
+
+
+ 4.0.0
+
+ com.klp
+ klp-oa
+ 0.8.3
+
+
+ klp-pltcm
+ klp-pltcm
+ 工艺模型配置模块(厚度/宽度/屈服强度分类及比例策略)
+
+
+
+ com.klp
+ klp-common
+
+
+
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModStrategyController.java b/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModStrategyController.java
new file mode 100644
index 000000000..01658e7d6
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModStrategyController.java
@@ -0,0 +1,99 @@
+package com.klp.pltcm.controller;
+
+import java.util.List;
+import java.util.Arrays;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.klp.common.annotation.RepeatSubmit;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.validate.AddGroup;
+import com.klp.common.core.validate.EditGroup;
+import com.klp.common.enums.BusinessType;
+import com.klp.common.utils.poi.ExcelUtil;
+import com.klp.pltcm.domain.vo.ModStrategyVo;
+import com.klp.pltcm.domain.bo.ModStrategyBo;
+import com.klp.pltcm.service.IModStrategyService;
+import com.klp.common.core.page.TableDataInfo;
+
+/**
+ * 策略关联
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/pltcm/strategy")
+public class ModStrategyController extends BaseController {
+
+ private final IModStrategyService iModStrategyService;
+
+ /**
+ * 查询策略关联列表
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(ModStrategyBo bo, PageQuery pageQuery) {
+ return iModStrategyService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 导出策略关联列表
+ */
+ @Log(title = "策略关联", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(ModStrategyBo bo, HttpServletResponse response) {
+ List list = iModStrategyService.queryList(bo);
+ ExcelUtil.exportExcel(list, "策略关联", ModStrategyVo.class, response);
+ }
+
+ /**
+ * 获取策略关联详细信息
+ *
+ * @param id 主键
+ */
+ @GetMapping("/{id}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long id) {
+ return R.ok(iModStrategyService.queryById(id));
+ }
+
+ /**
+ * 新增策略关联
+ */
+ @Log(title = "策略关联", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody ModStrategyBo bo) {
+ return toAjax(iModStrategyService.insertByBo(bo));
+ }
+
+ /**
+ * 修改策略关联
+ */
+ @Log(title = "策略关联", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody ModStrategyBo bo) {
+ return toAjax(iModStrategyService.updateByBo(bo));
+ }
+
+ /**
+ * 删除策略关联
+ *
+ * @param ids 主键串
+ */
+ @Log(title = "策略关联", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] ids) {
+ return toAjax(iModStrategyService.deleteWithValidByIds(Arrays.asList(ids), true));
+ }
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModThickClassController.java b/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModThickClassController.java
new file mode 100644
index 000000000..3e6720516
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModThickClassController.java
@@ -0,0 +1,99 @@
+package com.klp.pltcm.controller;
+
+import java.util.List;
+import java.util.Arrays;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.klp.common.annotation.RepeatSubmit;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.validate.AddGroup;
+import com.klp.common.core.validate.EditGroup;
+import com.klp.common.enums.BusinessType;
+import com.klp.common.utils.poi.ExcelUtil;
+import com.klp.pltcm.domain.vo.ModThickClassVo;
+import com.klp.pltcm.domain.bo.ModThickClassBo;
+import com.klp.pltcm.service.IModThickClassService;
+import com.klp.common.core.page.TableDataInfo;
+
+/**
+ * 厚度分类
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/pltcm/thickClass")
+public class ModThickClassController extends BaseController {
+
+ private final IModThickClassService iModThickClassService;
+
+ /**
+ * 查询厚度分类列表
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(ModThickClassBo bo, PageQuery pageQuery) {
+ return iModThickClassService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 导出厚度分类列表
+ */
+ @Log(title = "厚度分类", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(ModThickClassBo bo, HttpServletResponse response) {
+ List list = iModThickClassService.queryList(bo);
+ ExcelUtil.exportExcel(list, "厚度分类", ModThickClassVo.class, response);
+ }
+
+ /**
+ * 获取厚度分类详细信息
+ *
+ * @param classId 主键
+ */
+ @GetMapping("/{classId}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long classId) {
+ return R.ok(iModThickClassService.queryById(classId));
+ }
+
+ /**
+ * 新增厚度分类
+ */
+ @Log(title = "厚度分类", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody ModThickClassBo bo) {
+ return toAjax(iModThickClassService.insertByBo(bo));
+ }
+
+ /**
+ * 修改厚度分类
+ */
+ @Log(title = "厚度分类", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody ModThickClassBo bo) {
+ return toAjax(iModThickClassService.updateByBo(bo));
+ }
+
+ /**
+ * 删除厚度分类
+ *
+ * @param classIds 主键串
+ */
+ @Log(title = "厚度分类", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{classIds}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] classIds) {
+ return toAjax(iModThickClassService.deleteWithValidByIds(Arrays.asList(classIds), true));
+ }
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModWidthClassController.java b/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModWidthClassController.java
new file mode 100644
index 000000000..18abd50ad
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModWidthClassController.java
@@ -0,0 +1,99 @@
+package com.klp.pltcm.controller;
+
+import java.util.List;
+import java.util.Arrays;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.klp.common.annotation.RepeatSubmit;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.validate.AddGroup;
+import com.klp.common.core.validate.EditGroup;
+import com.klp.common.enums.BusinessType;
+import com.klp.common.utils.poi.ExcelUtil;
+import com.klp.pltcm.domain.vo.ModWidthClassVo;
+import com.klp.pltcm.domain.bo.ModWidthClassBo;
+import com.klp.pltcm.service.IModWidthClassService;
+import com.klp.common.core.page.TableDataInfo;
+
+/**
+ * 宽度分类
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/pltcm/widthClass")
+public class ModWidthClassController extends BaseController {
+
+ private final IModWidthClassService iModWidthClassService;
+
+ /**
+ * 查询宽度分类列表
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(ModWidthClassBo bo, PageQuery pageQuery) {
+ return iModWidthClassService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 导出宽度分类列表
+ */
+ @Log(title = "宽度分类", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(ModWidthClassBo bo, HttpServletResponse response) {
+ List list = iModWidthClassService.queryList(bo);
+ ExcelUtil.exportExcel(list, "宽度分类", ModWidthClassVo.class, response);
+ }
+
+ /**
+ * 获取宽度分类详细信息
+ *
+ * @param classId 主键
+ */
+ @GetMapping("/{classId}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long classId) {
+ return R.ok(iModWidthClassService.queryById(classId));
+ }
+
+ /**
+ * 新增宽度分类
+ */
+ @Log(title = "宽度分类", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody ModWidthClassBo bo) {
+ return toAjax(iModWidthClassService.insertByBo(bo));
+ }
+
+ /**
+ * 修改宽度分类
+ */
+ @Log(title = "宽度分类", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody ModWidthClassBo bo) {
+ return toAjax(iModWidthClassService.updateByBo(bo));
+ }
+
+ /**
+ * 删除宽度分类
+ *
+ * @param classIds 主键串
+ */
+ @Log(title = "宽度分类", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{classIds}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] classIds) {
+ return toAjax(iModWidthClassService.deleteWithValidByIds(Arrays.asList(classIds), true));
+ }
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModYieldStressClassController.java b/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModYieldStressClassController.java
new file mode 100644
index 000000000..2dbe38e0d
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/controller/ModYieldStressClassController.java
@@ -0,0 +1,99 @@
+package com.klp.pltcm.controller;
+
+import java.util.List;
+import java.util.Arrays;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.klp.common.annotation.RepeatSubmit;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.validate.AddGroup;
+import com.klp.common.core.validate.EditGroup;
+import com.klp.common.enums.BusinessType;
+import com.klp.common.utils.poi.ExcelUtil;
+import com.klp.pltcm.domain.vo.ModYieldStressClassVo;
+import com.klp.pltcm.domain.bo.ModYieldStressClassBo;
+import com.klp.pltcm.service.IModYieldStressClassService;
+import com.klp.common.core.page.TableDataInfo;
+
+/**
+ * 屈服强度分类
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/pltcm/yieldStressClass")
+public class ModYieldStressClassController extends BaseController {
+
+ private final IModYieldStressClassService iModYieldStressClassService;
+
+ /**
+ * 查询屈服强度分类列表
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(ModYieldStressClassBo bo, PageQuery pageQuery) {
+ return iModYieldStressClassService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 导出屈服强度分类列表
+ */
+ @Log(title = "屈服强度分类", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(ModYieldStressClassBo bo, HttpServletResponse response) {
+ List list = iModYieldStressClassService.queryList(bo);
+ ExcelUtil.exportExcel(list, "屈服强度分类", ModYieldStressClassVo.class, response);
+ }
+
+ /**
+ * 获取屈服强度分类详细信息
+ *
+ * @param classId 主键
+ */
+ @GetMapping("/{classId}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long classId) {
+ return R.ok(iModYieldStressClassService.queryById(classId));
+ }
+
+ /**
+ * 新增屈服强度分类
+ */
+ @Log(title = "屈服强度分类", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody ModYieldStressClassBo bo) {
+ return toAjax(iModYieldStressClassService.insertByBo(bo));
+ }
+
+ /**
+ * 修改屈服强度分类
+ */
+ @Log(title = "屈服强度分类", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody ModYieldStressClassBo bo) {
+ return toAjax(iModYieldStressClassService.updateByBo(bo));
+ }
+
+ /**
+ * 删除屈服强度分类
+ *
+ * @param classIds 主键串
+ */
+ @Log(title = "屈服强度分类", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{classIds}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] classIds) {
+ return toAjax(iModYieldStressClassService.deleteWithValidByIds(Arrays.asList(classIds), true));
+ }
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/controller/SchRatioController.java b/klp-pltcm/src/main/java/com/klp/pltcm/controller/SchRatioController.java
new file mode 100644
index 000000000..1709df749
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/controller/SchRatioController.java
@@ -0,0 +1,99 @@
+package com.klp.pltcm.controller;
+
+import java.util.List;
+import java.util.Arrays;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.klp.common.annotation.RepeatSubmit;
+import com.klp.common.annotation.Log;
+import com.klp.common.core.controller.BaseController;
+import com.klp.common.core.domain.PageQuery;
+import com.klp.common.core.domain.R;
+import com.klp.common.core.validate.AddGroup;
+import com.klp.common.core.validate.EditGroup;
+import com.klp.common.enums.BusinessType;
+import com.klp.common.utils.poi.ExcelUtil;
+import com.klp.pltcm.domain.vo.SchRatioVo;
+import com.klp.pltcm.domain.bo.SchRatioBo;
+import com.klp.pltcm.service.ISchRatioService;
+import com.klp.common.core.page.TableDataInfo;
+
+/**
+ * 比例表
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/pltcm/ratio")
+public class SchRatioController extends BaseController {
+
+ private final ISchRatioService iSchRatioService;
+
+ /**
+ * 查询比例列表
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(SchRatioBo bo, PageQuery pageQuery) {
+ return iSchRatioService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 导出比例列表
+ */
+ @Log(title = "比例表", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(SchRatioBo bo, HttpServletResponse response) {
+ List list = iSchRatioService.queryList(bo);
+ ExcelUtil.exportExcel(list, "比例表", SchRatioVo.class, response);
+ }
+
+ /**
+ * 获取比例详细信息
+ *
+ * @param id 主键
+ */
+ @GetMapping("/{id}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long id) {
+ return R.ok(iSchRatioService.queryById(id));
+ }
+
+ /**
+ * 新增比例
+ */
+ @Log(title = "比例表", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody SchRatioBo bo) {
+ return toAjax(iSchRatioService.insertByBo(bo));
+ }
+
+ /**
+ * 修改比例
+ */
+ @Log(title = "比例表", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody SchRatioBo bo) {
+ return toAjax(iSchRatioService.updateByBo(bo));
+ }
+
+ /**
+ * 删除比例
+ *
+ * @param ids 主键串
+ */
+ @Log(title = "比例表", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] ids) {
+ return toAjax(iSchRatioService.deleteWithValidByIds(Arrays.asList(ids), true));
+ }
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModStrategy.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModStrategy.java
new file mode 100644
index 000000000..858525441
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModStrategy.java
@@ -0,0 +1,47 @@
+package com.klp.pltcm.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 策略关联表 mod_strategy
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("mod_strategy")
+public class ModStrategy extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 分类ID
+ */
+ private Long classId;
+
+ /**
+ * 比例表ID
+ */
+ private Long ratioTableid;
+
+ /**
+ * 策略ID
+ */
+ private Long strategyId;
+
+ /**
+ * 删除标志(0正常 1删除)
+ */
+ @TableLogic
+ private Long delFlag;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModThickClass.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModThickClass.java
new file mode 100644
index 000000000..911741a56
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModThickClass.java
@@ -0,0 +1,49 @@
+package com.klp.pltcm.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 厚度分类 mod_thick_class
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("mod_thick_class")
+public class ModThickClass extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 分类ID
+ */
+ @TableId(value = "class_id", type = IdType.INPUT)
+ private Long classId;
+
+ /**
+ * 边界值
+ */
+ private Double border;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 录入日期
+ */
+ private Date insDate;
+
+ /**
+ * 删除标志(0正常 1删除)
+ */
+ @TableLogic
+ private Long delFlag;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModWidthClass.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModWidthClass.java
new file mode 100644
index 000000000..69b16edb2
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModWidthClass.java
@@ -0,0 +1,49 @@
+package com.klp.pltcm.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 宽度分类 mod_width_class
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("mod_width_class")
+public class ModWidthClass extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 分类ID
+ */
+ @TableId(value = "class_id", type = IdType.INPUT)
+ private Long classId;
+
+ /**
+ * 边界值
+ */
+ private Double border;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 录入日期
+ */
+ private Date insDate;
+
+ /**
+ * 删除标志(0正常 1删除)
+ */
+ @TableLogic
+ private Long delFlag;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModYieldStressClass.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModYieldStressClass.java
new file mode 100644
index 000000000..252d13b02
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/ModYieldStressClass.java
@@ -0,0 +1,49 @@
+package com.klp.pltcm.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 屈服强度分类 mod_yield_stress_class
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("mod_yield_stress_class")
+public class ModYieldStressClass extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 分类ID
+ */
+ @TableId(value = "class_id", type = IdType.INPUT)
+ private Long classId;
+
+ /**
+ * 边界值
+ */
+ private Double border;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 录入日期
+ */
+ private Date insDate;
+
+ /**
+ * 删除标志(0正常 1删除)
+ */
+ @TableLogic
+ private Long delFlag;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/SchRatio.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/SchRatio.java
new file mode 100644
index 000000000..570d560d7
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/SchRatio.java
@@ -0,0 +1,114 @@
+package com.klp.pltcm.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 比例表 sch_ratio
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("sch_ratio")
+public class SchRatio extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 比例索引
+ */
+ private Long ratioIndex;
+
+ /**
+ * 比例表ID
+ */
+ private Long ratioTableid;
+
+ /**
+ * 厚度ID
+ */
+ private Long thickId;
+
+ /**
+ * 比例
+ */
+ private Double ratio;
+
+ /**
+ * 标准0
+ */
+ private Double stand0;
+
+ /**
+ * 标准1
+ */
+ private Double stand1;
+
+ /**
+ * 标准2
+ */
+ private Double stand2;
+
+ /**
+ * 标准3
+ */
+ private Double stand3;
+
+ /**
+ * 标准4
+ */
+ private Double stand4;
+
+ /**
+ * 标准5
+ */
+ private Double stand5;
+
+ /**
+ * 标准6
+ */
+ private Double stand6;
+
+ /**
+ * 标准7
+ */
+ private Double stand7;
+
+ /**
+ * 标准8
+ */
+ private Double stand8;
+
+ /**
+ * 标准9
+ */
+ private Double stand9;
+
+ /**
+ * 录入日期
+ */
+ private Date insDate;
+
+ /**
+ * 合计(STAND0-STAND9之和)
+ */
+ private Double total;
+
+ /**
+ * 删除标志(0正常 1删除)
+ */
+ @TableLogic
+ private Long delFlag;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModStrategyBo.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModStrategyBo.java
new file mode 100644
index 000000000..4b3a99f52
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModStrategyBo.java
@@ -0,0 +1,36 @@
+package com.klp.pltcm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 策略关联业务对象 mod_strategy
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ModStrategyBo extends BaseEntity {
+
+ /**
+ * 主键ID
+ */
+ private Long id;
+
+ /**
+ * 分类ID
+ */
+ private Long classId;
+
+ /**
+ * 比例表ID
+ */
+ private Long ratioTableid;
+
+ /**
+ * 策略ID
+ */
+ private Long strategyId;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModThickClassBo.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModThickClassBo.java
new file mode 100644
index 000000000..741b80807
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModThickClassBo.java
@@ -0,0 +1,38 @@
+package com.klp.pltcm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 厚度分类业务对象 mod_thick_class
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ModThickClassBo extends BaseEntity {
+
+ /**
+ * 分类ID
+ */
+ private Long classId;
+
+ /**
+ * 边界值
+ */
+ private Double border;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 录入日期
+ */
+ private Date insDate;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModWidthClassBo.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModWidthClassBo.java
new file mode 100644
index 000000000..c211ebf1f
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModWidthClassBo.java
@@ -0,0 +1,38 @@
+package com.klp.pltcm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 宽度分类业务对象 mod_width_class
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ModWidthClassBo extends BaseEntity {
+
+ /**
+ * 分类ID
+ */
+ private Long classId;
+
+ /**
+ * 边界值
+ */
+ private Double border;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 录入日期
+ */
+ private Date insDate;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModYieldStressClassBo.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModYieldStressClassBo.java
new file mode 100644
index 000000000..03d378cab
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/ModYieldStressClassBo.java
@@ -0,0 +1,38 @@
+package com.klp.pltcm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 屈服强度分类业务对象 mod_yield_stress_class
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ModYieldStressClassBo extends BaseEntity {
+
+ /**
+ * 分类ID
+ */
+ private Long classId;
+
+ /**
+ * 边界值
+ */
+ private Double border;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 录入日期
+ */
+ private Date insDate;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/SchRatioBo.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/SchRatioBo.java
new file mode 100644
index 000000000..8fa203249
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/bo/SchRatioBo.java
@@ -0,0 +1,103 @@
+package com.klp.pltcm.domain.bo;
+
+import com.klp.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 比例表业务对象 sch_ratio
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class SchRatioBo extends BaseEntity {
+
+ /**
+ * 主键ID
+ */
+ private Long id;
+
+ /**
+ * 比例索引
+ */
+ private Long ratioIndex;
+
+ /**
+ * 比例表ID
+ */
+ private Long ratioTableid;
+
+ /**
+ * 厚度ID
+ */
+ private Long thickId;
+
+ /**
+ * 比例
+ */
+ private Double ratio;
+
+ /**
+ * 标准0
+ */
+ private Double stand0;
+
+ /**
+ * 标准1
+ */
+ private Double stand1;
+
+ /**
+ * 标准2
+ */
+ private Double stand2;
+
+ /**
+ * 标准3
+ */
+ private Double stand3;
+
+ /**
+ * 标准4
+ */
+ private Double stand4;
+
+ /**
+ * 标准5
+ */
+ private Double stand5;
+
+ /**
+ * 标准6
+ */
+ private Double stand6;
+
+ /**
+ * 标准7
+ */
+ private Double stand7;
+
+ /**
+ * 标准8
+ */
+ private Double stand8;
+
+ /**
+ * 标准9
+ */
+ private Double stand9;
+
+ /**
+ * 录入日期
+ */
+ private Date insDate;
+
+ /**
+ * 合计
+ */
+ private Double total;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModStrategyVo.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModStrategyVo.java
new file mode 100644
index 000000000..9a6c6d7ff
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModStrategyVo.java
@@ -0,0 +1,38 @@
+package com.klp.pltcm.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 策略关联视图对象 mod_strategy
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class ModStrategyVo {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty(value = "主键ID")
+ private Long id;
+
+ @ExcelProperty(value = "分类ID")
+ private Long classId;
+
+ @ExcelProperty(value = "比例表ID")
+ private Long ratioTableid;
+
+ @ExcelProperty(value = "策略ID")
+ private Long strategyId;
+
+ @ExcelProperty(value = "创建时间")
+ private Date createTime;
+
+ @ExcelProperty(value = "更新时间")
+ private Date updateTime;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModThickClassVo.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModThickClassVo.java
new file mode 100644
index 000000000..74d481c62
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModThickClassVo.java
@@ -0,0 +1,38 @@
+package com.klp.pltcm.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 厚度分类视图对象 mod_thick_class
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class ModThickClassVo {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty(value = "分类ID")
+ private Long classId;
+
+ @ExcelProperty(value = "边界值")
+ private Double border;
+
+ @ExcelProperty(value = "描述")
+ private String description;
+
+ @ExcelProperty(value = "录入日期")
+ private Date insDate;
+
+ @ExcelProperty(value = "创建时间")
+ private Date createTime;
+
+ @ExcelProperty(value = "更新时间")
+ private Date updateTime;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModWidthClassVo.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModWidthClassVo.java
new file mode 100644
index 000000000..417ff1f6b
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModWidthClassVo.java
@@ -0,0 +1,38 @@
+package com.klp.pltcm.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 宽度分类视图对象 mod_width_class
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class ModWidthClassVo {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty(value = "分类ID")
+ private Long classId;
+
+ @ExcelProperty(value = "边界值")
+ private Double border;
+
+ @ExcelProperty(value = "描述")
+ private String description;
+
+ @ExcelProperty(value = "录入日期")
+ private Date insDate;
+
+ @ExcelProperty(value = "创建时间")
+ private Date createTime;
+
+ @ExcelProperty(value = "更新时间")
+ private Date updateTime;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModYieldStressClassVo.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModYieldStressClassVo.java
new file mode 100644
index 000000000..5653dd027
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/ModYieldStressClassVo.java
@@ -0,0 +1,38 @@
+package com.klp.pltcm.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 屈服强度分类视图对象 mod_yield_stress_class
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class ModYieldStressClassVo {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty(value = "分类ID")
+ private Long classId;
+
+ @ExcelProperty(value = "边界值")
+ private Double border;
+
+ @ExcelProperty(value = "描述")
+ private String description;
+
+ @ExcelProperty(value = "录入日期")
+ private Date insDate;
+
+ @ExcelProperty(value = "创建时间")
+ private Date createTime;
+
+ @ExcelProperty(value = "更新时间")
+ private Date updateTime;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/SchRatioVo.java b/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/SchRatioVo.java
new file mode 100644
index 000000000..0528f3686
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/domain/vo/SchRatioVo.java
@@ -0,0 +1,77 @@
+package com.klp.pltcm.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 比例表视图对象 sch_ratio
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class SchRatioVo {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty(value = "主键ID")
+ private Long id;
+
+ @ExcelProperty(value = "比例索引")
+ private Long ratioIndex;
+
+ @ExcelProperty(value = "比例表ID")
+ private Long ratioTableid;
+
+ @ExcelProperty(value = "厚度ID")
+ private Long thickId;
+
+ @ExcelProperty(value = "比例")
+ private Double ratio;
+
+ @ExcelProperty(value = "标准0")
+ private Double stand0;
+
+ @ExcelProperty(value = "标准1")
+ private Double stand1;
+
+ @ExcelProperty(value = "标准2")
+ private Double stand2;
+
+ @ExcelProperty(value = "标准3")
+ private Double stand3;
+
+ @ExcelProperty(value = "标准4")
+ private Double stand4;
+
+ @ExcelProperty(value = "标准5")
+ private Double stand5;
+
+ @ExcelProperty(value = "标准6")
+ private Double stand6;
+
+ @ExcelProperty(value = "标准7")
+ private Double stand7;
+
+ @ExcelProperty(value = "标准8")
+ private Double stand8;
+
+ @ExcelProperty(value = "标准9")
+ private Double stand9;
+
+ @ExcelProperty(value = "录入日期")
+ private Date insDate;
+
+ @ExcelProperty(value = "合计")
+ private Double total;
+
+ @ExcelProperty(value = "创建时间")
+ private Date createTime;
+
+ @ExcelProperty(value = "更新时间")
+ private Date updateTime;
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModStrategyMapper.java b/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModStrategyMapper.java
new file mode 100644
index 000000000..8d34dee1c
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModStrategyMapper.java
@@ -0,0 +1,15 @@
+package com.klp.pltcm.mapper;
+
+import com.klp.pltcm.domain.ModStrategy;
+import com.klp.pltcm.domain.vo.ModStrategyVo;
+import com.klp.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 策略关联Mapper接口
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+public interface ModStrategyMapper extends BaseMapperPlus {
+
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModThickClassMapper.java b/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModThickClassMapper.java
new file mode 100644
index 000000000..69d8acc87
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModThickClassMapper.java
@@ -0,0 +1,15 @@
+package com.klp.pltcm.mapper;
+
+import com.klp.pltcm.domain.ModThickClass;
+import com.klp.pltcm.domain.vo.ModThickClassVo;
+import com.klp.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 厚度分类Mapper接口
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+public interface ModThickClassMapper extends BaseMapperPlus {
+
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModWidthClassMapper.java b/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModWidthClassMapper.java
new file mode 100644
index 000000000..0281fa894
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModWidthClassMapper.java
@@ -0,0 +1,15 @@
+package com.klp.pltcm.mapper;
+
+import com.klp.pltcm.domain.ModWidthClass;
+import com.klp.pltcm.domain.vo.ModWidthClassVo;
+import com.klp.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 宽度分类Mapper接口
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+public interface ModWidthClassMapper extends BaseMapperPlus {
+
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModYieldStressClassMapper.java b/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModYieldStressClassMapper.java
new file mode 100644
index 000000000..b145eb43e
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/mapper/ModYieldStressClassMapper.java
@@ -0,0 +1,15 @@
+package com.klp.pltcm.mapper;
+
+import com.klp.pltcm.domain.ModYieldStressClass;
+import com.klp.pltcm.domain.vo.ModYieldStressClassVo;
+import com.klp.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 屈服强度分类Mapper接口
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+public interface ModYieldStressClassMapper extends BaseMapperPlus {
+
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/mapper/SchRatioMapper.java b/klp-pltcm/src/main/java/com/klp/pltcm/mapper/SchRatioMapper.java
new file mode 100644
index 000000000..298277348
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/mapper/SchRatioMapper.java
@@ -0,0 +1,15 @@
+package com.klp.pltcm.mapper;
+
+import com.klp.pltcm.domain.SchRatio;
+import com.klp.pltcm.domain.vo.SchRatioVo;
+import com.klp.common.core.mapper.BaseMapperPlus;
+
+/**
+ * 比例表Mapper接口
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+public interface SchRatioMapper extends BaseMapperPlus {
+
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/service/IModStrategyService.java b/klp-pltcm/src/main/java/com/klp/pltcm/service/IModStrategyService.java
new file mode 100644
index 000000000..7287437e6
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/service/IModStrategyService.java
@@ -0,0 +1,49 @@
+package com.klp.pltcm.service;
+
+import com.klp.pltcm.domain.ModStrategy;
+import com.klp.pltcm.domain.vo.ModStrategyVo;
+import com.klp.pltcm.domain.bo.ModStrategyBo;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.core.domain.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 策略关联Service接口
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+public interface IModStrategyService {
+
+ /**
+ * 查询策略关联
+ */
+ ModStrategyVo queryById(Long id);
+
+ /**
+ * 查询策略关联列表
+ */
+ TableDataInfo queryPageList(ModStrategyBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询策略关联列表
+ */
+ List queryList(ModStrategyBo bo);
+
+ /**
+ * 新增策略关联
+ */
+ Boolean insertByBo(ModStrategyBo bo);
+
+ /**
+ * 修改策略关联
+ */
+ Boolean updateByBo(ModStrategyBo bo);
+
+ /**
+ * 校验并批量删除策略关联信息
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/service/IModThickClassService.java b/klp-pltcm/src/main/java/com/klp/pltcm/service/IModThickClassService.java
new file mode 100644
index 000000000..907ca8b9b
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/service/IModThickClassService.java
@@ -0,0 +1,49 @@
+package com.klp.pltcm.service;
+
+import com.klp.pltcm.domain.ModThickClass;
+import com.klp.pltcm.domain.vo.ModThickClassVo;
+import com.klp.pltcm.domain.bo.ModThickClassBo;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.core.domain.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 厚度分类Service接口
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+public interface IModThickClassService {
+
+ /**
+ * 查询厚度分类
+ */
+ ModThickClassVo queryById(Long classId);
+
+ /**
+ * 查询厚度分类列表
+ */
+ TableDataInfo queryPageList(ModThickClassBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询厚度分类列表
+ */
+ List queryList(ModThickClassBo bo);
+
+ /**
+ * 新增厚度分类
+ */
+ Boolean insertByBo(ModThickClassBo bo);
+
+ /**
+ * 修改厚度分类
+ */
+ Boolean updateByBo(ModThickClassBo bo);
+
+ /**
+ * 校验并批量删除厚度分类信息
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/service/IModWidthClassService.java b/klp-pltcm/src/main/java/com/klp/pltcm/service/IModWidthClassService.java
new file mode 100644
index 000000000..f01514eff
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/service/IModWidthClassService.java
@@ -0,0 +1,49 @@
+package com.klp.pltcm.service;
+
+import com.klp.pltcm.domain.ModWidthClass;
+import com.klp.pltcm.domain.vo.ModWidthClassVo;
+import com.klp.pltcm.domain.bo.ModWidthClassBo;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.core.domain.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 宽度分类Service接口
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+public interface IModWidthClassService {
+
+ /**
+ * 查询宽度分类
+ */
+ ModWidthClassVo queryById(Long classId);
+
+ /**
+ * 查询宽度分类列表
+ */
+ TableDataInfo queryPageList(ModWidthClassBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询宽度分类列表
+ */
+ List queryList(ModWidthClassBo bo);
+
+ /**
+ * 新增宽度分类
+ */
+ Boolean insertByBo(ModWidthClassBo bo);
+
+ /**
+ * 修改宽度分类
+ */
+ Boolean updateByBo(ModWidthClassBo bo);
+
+ /**
+ * 校验并批量删除宽度分类信息
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/service/IModYieldStressClassService.java b/klp-pltcm/src/main/java/com/klp/pltcm/service/IModYieldStressClassService.java
new file mode 100644
index 000000000..840000e12
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/service/IModYieldStressClassService.java
@@ -0,0 +1,49 @@
+package com.klp.pltcm.service;
+
+import com.klp.pltcm.domain.ModYieldStressClass;
+import com.klp.pltcm.domain.vo.ModYieldStressClassVo;
+import com.klp.pltcm.domain.bo.ModYieldStressClassBo;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.core.domain.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 屈服强度分类Service接口
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+public interface IModYieldStressClassService {
+
+ /**
+ * 查询屈服强度分类
+ */
+ ModYieldStressClassVo queryById(Long classId);
+
+ /**
+ * 查询屈服强度分类列表
+ */
+ TableDataInfo queryPageList(ModYieldStressClassBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询屈服强度分类列表
+ */
+ List queryList(ModYieldStressClassBo bo);
+
+ /**
+ * 新增屈服强度分类
+ */
+ Boolean insertByBo(ModYieldStressClassBo bo);
+
+ /**
+ * 修改屈服强度分类
+ */
+ Boolean updateByBo(ModYieldStressClassBo bo);
+
+ /**
+ * 校验并批量删除屈服强度分类信息
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/service/ISchRatioService.java b/klp-pltcm/src/main/java/com/klp/pltcm/service/ISchRatioService.java
new file mode 100644
index 000000000..42c4c9173
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/service/ISchRatioService.java
@@ -0,0 +1,49 @@
+package com.klp.pltcm.service;
+
+import com.klp.pltcm.domain.SchRatio;
+import com.klp.pltcm.domain.vo.SchRatioVo;
+import com.klp.pltcm.domain.bo.SchRatioBo;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.core.domain.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 比例表Service接口
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+public interface ISchRatioService {
+
+ /**
+ * 查询比例
+ */
+ SchRatioVo queryById(Long id);
+
+ /**
+ * 查询比例列表
+ */
+ TableDataInfo queryPageList(SchRatioBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询比例列表
+ */
+ List queryList(SchRatioBo bo);
+
+ /**
+ * 新增比例
+ */
+ Boolean insertByBo(SchRatioBo bo);
+
+ /**
+ * 修改比例
+ */
+ Boolean updateByBo(SchRatioBo bo);
+
+ /**
+ * 校验并批量删除比例信息
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModStrategyServiceImpl.java b/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModStrategyServiceImpl.java
new file mode 100644
index 000000000..990e1244f
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModStrategyServiceImpl.java
@@ -0,0 +1,83 @@
+package com.klp.pltcm.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.core.domain.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import com.klp.pltcm.domain.bo.ModStrategyBo;
+import com.klp.pltcm.domain.vo.ModStrategyVo;
+import com.klp.pltcm.domain.ModStrategy;
+import com.klp.pltcm.mapper.ModStrategyMapper;
+import com.klp.pltcm.service.IModStrategyService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 策略关联Service业务层处理
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@RequiredArgsConstructor
+@Service
+public class ModStrategyServiceImpl implements IModStrategyService {
+
+ private final ModStrategyMapper baseMapper;
+
+ @Override
+ public ModStrategyVo queryById(Long id) {
+ return baseMapper.selectVoById(id);
+ }
+
+ @Override
+ public TableDataInfo queryPageList(ModStrategyBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ @Override
+ public List queryList(ModStrategyBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(ModStrategyBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getClassId() != null, ModStrategy::getClassId, bo.getClassId());
+ lqw.eq(bo.getRatioTableid() != null, ModStrategy::getRatioTableid, bo.getRatioTableid());
+ lqw.eq(bo.getStrategyId() != null, ModStrategy::getStrategyId, bo.getStrategyId());
+ return lqw;
+ }
+
+ @Override
+ public Boolean insertByBo(ModStrategyBo bo) {
+ ModStrategy add = BeanUtil.toBean(bo, ModStrategy.class);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ @Override
+ public Boolean updateByBo(ModStrategyBo bo) {
+ ModStrategy update = BeanUtil.toBean(bo, ModStrategy.class);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if (isValid) {
+ // TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteBatchIds(ids) > 0;
+ }
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModThickClassServiceImpl.java b/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModThickClassServiceImpl.java
new file mode 100644
index 000000000..eb274e328
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModThickClassServiceImpl.java
@@ -0,0 +1,85 @@
+package com.klp.pltcm.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.core.domain.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.klp.common.utils.StringUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import com.klp.pltcm.domain.bo.ModThickClassBo;
+import com.klp.pltcm.domain.vo.ModThickClassVo;
+import com.klp.pltcm.domain.ModThickClass;
+import com.klp.pltcm.mapper.ModThickClassMapper;
+import com.klp.pltcm.service.IModThickClassService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 厚度分类Service业务层处理
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@RequiredArgsConstructor
+@Service
+public class ModThickClassServiceImpl implements IModThickClassService {
+
+ private final ModThickClassMapper baseMapper;
+
+ @Override
+ public ModThickClassVo queryById(Long classId) {
+ return baseMapper.selectVoById(classId);
+ }
+
+ @Override
+ public TableDataInfo queryPageList(ModThickClassBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ @Override
+ public List queryList(ModThickClassBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(ModThickClassBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getClassId() != null, ModThickClass::getClassId, bo.getClassId());
+ lqw.eq(bo.getBorder() != null, ModThickClass::getBorder, bo.getBorder());
+ lqw.like(StringUtils.isNotBlank(bo.getDescription()), ModThickClass::getDescription, bo.getDescription());
+ lqw.orderByAsc(ModThickClass::getClassId);
+ return lqw;
+ }
+
+ @Override
+ public Boolean insertByBo(ModThickClassBo bo) {
+ ModThickClass add = BeanUtil.toBean(bo, ModThickClass.class);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setClassId(add.getClassId());
+ }
+ return flag;
+ }
+
+ @Override
+ public Boolean updateByBo(ModThickClassBo bo) {
+ ModThickClass update = BeanUtil.toBean(bo, ModThickClass.class);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if (isValid) {
+ // TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteBatchIds(ids) > 0;
+ }
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModWidthClassServiceImpl.java b/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModWidthClassServiceImpl.java
new file mode 100644
index 000000000..dd0e60592
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModWidthClassServiceImpl.java
@@ -0,0 +1,85 @@
+package com.klp.pltcm.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.core.domain.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.klp.common.utils.StringUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import com.klp.pltcm.domain.bo.ModWidthClassBo;
+import com.klp.pltcm.domain.vo.ModWidthClassVo;
+import com.klp.pltcm.domain.ModWidthClass;
+import com.klp.pltcm.mapper.ModWidthClassMapper;
+import com.klp.pltcm.service.IModWidthClassService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 宽度分类Service业务层处理
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@RequiredArgsConstructor
+@Service
+public class ModWidthClassServiceImpl implements IModWidthClassService {
+
+ private final ModWidthClassMapper baseMapper;
+
+ @Override
+ public ModWidthClassVo queryById(Long classId) {
+ return baseMapper.selectVoById(classId);
+ }
+
+ @Override
+ public TableDataInfo queryPageList(ModWidthClassBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ @Override
+ public List queryList(ModWidthClassBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(ModWidthClassBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getClassId() != null, ModWidthClass::getClassId, bo.getClassId());
+ lqw.eq(bo.getBorder() != null, ModWidthClass::getBorder, bo.getBorder());
+ lqw.like(StringUtils.isNotBlank(bo.getDescription()), ModWidthClass::getDescription, bo.getDescription());
+ lqw.orderByAsc(ModWidthClass::getClassId);
+ return lqw;
+ }
+
+ @Override
+ public Boolean insertByBo(ModWidthClassBo bo) {
+ ModWidthClass add = BeanUtil.toBean(bo, ModWidthClass.class);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setClassId(add.getClassId());
+ }
+ return flag;
+ }
+
+ @Override
+ public Boolean updateByBo(ModWidthClassBo bo) {
+ ModWidthClass update = BeanUtil.toBean(bo, ModWidthClass.class);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if (isValid) {
+ // TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteBatchIds(ids) > 0;
+ }
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModYieldStressClassServiceImpl.java b/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModYieldStressClassServiceImpl.java
new file mode 100644
index 000000000..d7be7e8b1
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/ModYieldStressClassServiceImpl.java
@@ -0,0 +1,85 @@
+package com.klp.pltcm.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.core.domain.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.klp.common.utils.StringUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import com.klp.pltcm.domain.bo.ModYieldStressClassBo;
+import com.klp.pltcm.domain.vo.ModYieldStressClassVo;
+import com.klp.pltcm.domain.ModYieldStressClass;
+import com.klp.pltcm.mapper.ModYieldStressClassMapper;
+import com.klp.pltcm.service.IModYieldStressClassService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 屈服强度分类Service业务层处理
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@RequiredArgsConstructor
+@Service
+public class ModYieldStressClassServiceImpl implements IModYieldStressClassService {
+
+ private final ModYieldStressClassMapper baseMapper;
+
+ @Override
+ public ModYieldStressClassVo queryById(Long classId) {
+ return baseMapper.selectVoById(classId);
+ }
+
+ @Override
+ public TableDataInfo queryPageList(ModYieldStressClassBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ @Override
+ public List queryList(ModYieldStressClassBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(ModYieldStressClassBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getClassId() != null, ModYieldStressClass::getClassId, bo.getClassId());
+ lqw.eq(bo.getBorder() != null, ModYieldStressClass::getBorder, bo.getBorder());
+ lqw.like(StringUtils.isNotBlank(bo.getDescription()), ModYieldStressClass::getDescription, bo.getDescription());
+ lqw.orderByAsc(ModYieldStressClass::getClassId);
+ return lqw;
+ }
+
+ @Override
+ public Boolean insertByBo(ModYieldStressClassBo bo) {
+ ModYieldStressClass add = BeanUtil.toBean(bo, ModYieldStressClass.class);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setClassId(add.getClassId());
+ }
+ return flag;
+ }
+
+ @Override
+ public Boolean updateByBo(ModYieldStressClassBo bo) {
+ ModYieldStressClass update = BeanUtil.toBean(bo, ModYieldStressClass.class);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if (isValid) {
+ // TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteBatchIds(ids) > 0;
+ }
+}
diff --git a/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/SchRatioServiceImpl.java b/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/SchRatioServiceImpl.java
new file mode 100644
index 000000000..30e9d645b
--- /dev/null
+++ b/klp-pltcm/src/main/java/com/klp/pltcm/service/impl/SchRatioServiceImpl.java
@@ -0,0 +1,104 @@
+package com.klp.pltcm.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.klp.common.core.page.TableDataInfo;
+import com.klp.common.core.domain.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import com.klp.pltcm.domain.bo.SchRatioBo;
+import com.klp.pltcm.domain.vo.SchRatioVo;
+import com.klp.pltcm.domain.SchRatio;
+import com.klp.pltcm.mapper.SchRatioMapper;
+import com.klp.pltcm.service.ISchRatioService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 比例表Service业务层处理
+ *
+ * @author klp
+ * @date 2026-07-06
+ */
+@RequiredArgsConstructor
+@Service
+public class SchRatioServiceImpl implements ISchRatioService {
+
+ private final SchRatioMapper baseMapper;
+
+ @Override
+ public SchRatioVo queryById(Long id) {
+ return baseMapper.selectVoById(id);
+ }
+
+ @Override
+ public TableDataInfo queryPageList(SchRatioBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ @Override
+ public List queryList(SchRatioBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(SchRatioBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.eq(bo.getRatioIndex() != null, SchRatio::getRatioIndex, bo.getRatioIndex());
+ lqw.eq(bo.getRatioTableid() != null, SchRatio::getRatioTableid, bo.getRatioTableid());
+ lqw.eq(bo.getThickId() != null, SchRatio::getThickId, bo.getThickId());
+ lqw.eq(bo.getRatio() != null, SchRatio::getRatio, bo.getRatio());
+ return lqw;
+ }
+
+ @Override
+ public Boolean insertByBo(SchRatioBo bo) {
+ SchRatio add = BeanUtil.toBean(bo, SchRatio.class);
+ // 替代Oracle触发器: 计算STAND0-STAND9的合计值
+ calculateTotal(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ @Override
+ public Boolean updateByBo(SchRatioBo bo) {
+ SchRatio update = BeanUtil.toBean(bo, SchRatio.class);
+ // 替代Oracle触发器: 计算STAND0-STAND9的合计值
+ calculateTotal(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 计算STAND0-STAND9之和 (替代Oracle触发器 TRG_BEF_SCH_RATIO)
+ */
+ private void calculateTotal(SchRatio entity) {
+ double total = nvl(entity.getStand0()) + nvl(entity.getStand1())
+ + nvl(entity.getStand2()) + nvl(entity.getStand3())
+ + nvl(entity.getStand4()) + nvl(entity.getStand5())
+ + nvl(entity.getStand6()) + nvl(entity.getStand7())
+ + nvl(entity.getStand8()) + nvl(entity.getStand9());
+ entity.setTotal(total);
+ }
+
+ private double nvl(Double val) {
+ return val != null ? val : 0D;
+ }
+
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if (isValid) {
+ // TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteBatchIds(ids) > 0;
+ }
+}
diff --git a/klp-pltcm/src/main/resources/mapper/pltcm/ModStrategyMapper.xml b/klp-pltcm/src/main/resources/mapper/pltcm/ModStrategyMapper.xml
new file mode 100644
index 000000000..3477b555d
--- /dev/null
+++ b/klp-pltcm/src/main/resources/mapper/pltcm/ModStrategyMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/klp-pltcm/src/main/resources/mapper/pltcm/ModThickClassMapper.xml b/klp-pltcm/src/main/resources/mapper/pltcm/ModThickClassMapper.xml
new file mode 100644
index 000000000..8a903c0bd
--- /dev/null
+++ b/klp-pltcm/src/main/resources/mapper/pltcm/ModThickClassMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/klp-pltcm/src/main/resources/mapper/pltcm/ModWidthClassMapper.xml b/klp-pltcm/src/main/resources/mapper/pltcm/ModWidthClassMapper.xml
new file mode 100644
index 000000000..809e1c9ff
--- /dev/null
+++ b/klp-pltcm/src/main/resources/mapper/pltcm/ModWidthClassMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/klp-pltcm/src/main/resources/mapper/pltcm/ModYieldStressClassMapper.xml b/klp-pltcm/src/main/resources/mapper/pltcm/ModYieldStressClassMapper.xml
new file mode 100644
index 000000000..a6401dd86
--- /dev/null
+++ b/klp-pltcm/src/main/resources/mapper/pltcm/ModYieldStressClassMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/klp-pltcm/src/main/resources/mapper/pltcm/SchRatioMapper.xml b/klp-pltcm/src/main/resources/mapper/pltcm/SchRatioMapper.xml
new file mode 100644
index 000000000..381a61e50
--- /dev/null
+++ b/klp-pltcm/src/main/resources/mapper/pltcm/SchRatioMapper.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index b3b5b1946..8eb007ae8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -450,6 +450,7 @@
klp-cost
klp-flow
klp-pt
+ klp-pltcm
pom