diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/costfee/vo/MechanicalCostImport.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/costfee/vo/MechanicalCostImport.java index 9646367..6a12bfd 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/costfee/vo/MechanicalCostImport.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/costfee/vo/MechanicalCostImport.java @@ -86,12 +86,10 @@ public class MechanicalCostImport { private Long serviceLife; /** 状态(0正常 1停用) */ - @ExcelProperty(index = 10) - @NotNull(message = "当前状态不能为空") - @Min(value = 0, message = "状态只能为0(在用)或1(报废)") - @Max(value = 1, message = "状态只能为0(在用)或1(报废)") private Long status; + @ExcelProperty(index = 10) + @NotNull(message = "当前状态不能为空") private String statusTxt; /** 归属公司 */ @@ -110,27 +108,55 @@ public class MechanicalCostImport { private String remark; - // 设置status时自动更新statusTxt + /** + * 1. 修改 statusTxt(文本状态)时,自动同步 status(数字状态) + * 支持 Excel 导入的文本值:“在用”“正常”→0;“报废”“停用”→1;其他→默认未知状态 + */ + public void setStatusTxt(String statusTxt) { + this.statusTxt = statusTxt; // 先赋值文本状态 + this.status = parseStatusFromTxt(statusTxt); // 同步数字状态 + } + + /** + * 2. 修改 status(数字状态)时,自动同步 statusTxt(文本状态) + * 保持双向联动:改数字→更文本,改文本→更数字 + */ public void setStatus(Long status) { - this.status = status; - updateStatusTxt(); + this.status = status; // 先赋值数字状态 + this.statusTxt = parseTxtFromStatus(status); // 同步文本状态 } - private void updateStatusTxt() { - if (status == null) { - statusTxt = null; - return; + /** + * 辅助方法:将状态文本转为数字状态 + */ + private Long parseStatusFromTxt(String statusTxt) { + if (statusTxt == null || statusTxt.trim().isEmpty()) { + this.statusTxt = "未知状态"; // 空文本兜底 + return null; } + String trimmedTxt = statusTxt.trim(); + // 支持多文本映射(兼容 Excel 中可能的不同写法) + return switch (trimmedTxt) { + case "在用", "正常", "0" -> 0L; + case "报废", "停用", "1" -> 1L; + default -> { + this.statusTxt = "未知状态"; // 非法文本兜底 + yield null; // 非法状态返回 null,后续可做校验 + } + }; + } - switch (status.intValue()) { - case 0: - statusTxt = "在用"; - break; - case 1: - statusTxt = "报废"; - break; - default: - statusTxt = "未知状态"; + /** + * 辅助方法:将数字状态转为文本状态 + */ + private String parseTxtFromStatus(Long status) { + if (status == null) { + return "未知状态"; } + return switch (status.intValue()) { + case 0 -> "在用"; + case 1 -> "报废"; + default -> "未知状态"; + }; } } diff --git a/urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml b/urbanops-module-garden/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml index d2abe01..5a02843 100644 --- a/urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml @@ -4,7 +4,7 @@