Commit 4c64c91e39784bf68b0a1b3c6ab302a24249b829
1 parent
814c8684
人机材导入修改
Showing
2 changed files
with
47 additions
and
21 deletions
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/costfee/vo/MechanicalCostImport.java
| ... | ... | @@ -86,12 +86,10 @@ public class MechanicalCostImport { |
| 86 | 86 | private Long serviceLife; |
| 87 | 87 | |
| 88 | 88 | /** 状态(0正常 1停用) */ |
| 89 | - @ExcelProperty(index = 10) | |
| 90 | - @NotNull(message = "当前状态不能为空") | |
| 91 | - @Min(value = 0, message = "状态只能为0(在用)或1(报废)") | |
| 92 | - @Max(value = 1, message = "状态只能为0(在用)或1(报废)") | |
| 93 | 89 | private Long status; |
| 94 | 90 | |
| 91 | + @ExcelProperty(index = 10) | |
| 92 | + @NotNull(message = "当前状态不能为空") | |
| 95 | 93 | private String statusTxt; |
| 96 | 94 | |
| 97 | 95 | /** 归属公司 */ |
| ... | ... | @@ -110,27 +108,55 @@ public class MechanicalCostImport { |
| 110 | 108 | private String remark; |
| 111 | 109 | |
| 112 | 110 | |
| 113 | - // 设置status时自动更新statusTxt | |
| 111 | + /** | |
| 112 | + * 1. 修改 statusTxt(文本状态)时,自动同步 status(数字状态) | |
| 113 | + * 支持 Excel 导入的文本值:“在用”“正常”→0;“报废”“停用”→1;其他→默认未知状态 | |
| 114 | + */ | |
| 115 | + public void setStatusTxt(String statusTxt) { | |
| 116 | + this.statusTxt = statusTxt; // 先赋值文本状态 | |
| 117 | + this.status = parseStatusFromTxt(statusTxt); // 同步数字状态 | |
| 118 | + } | |
| 119 | + | |
| 120 | + /** | |
| 121 | + * 2. 修改 status(数字状态)时,自动同步 statusTxt(文本状态) | |
| 122 | + * 保持双向联动:改数字→更文本,改文本→更数字 | |
| 123 | + */ | |
| 114 | 124 | public void setStatus(Long status) { |
| 115 | - this.status = status; | |
| 116 | - updateStatusTxt(); | |
| 125 | + this.status = status; // 先赋值数字状态 | |
| 126 | + this.statusTxt = parseTxtFromStatus(status); // 同步文本状态 | |
| 117 | 127 | } |
| 118 | 128 | |
| 119 | - private void updateStatusTxt() { | |
| 120 | - if (status == null) { | |
| 121 | - statusTxt = null; | |
| 122 | - return; | |
| 129 | + /** | |
| 130 | + * 辅助方法:将状态文本转为数字状态 | |
| 131 | + */ | |
| 132 | + private Long parseStatusFromTxt(String statusTxt) { | |
| 133 | + if (statusTxt == null || statusTxt.trim().isEmpty()) { | |
| 134 | + this.statusTxt = "未知状态"; // 空文本兜底 | |
| 135 | + return null; | |
| 123 | 136 | } |
| 137 | + String trimmedTxt = statusTxt.trim(); | |
| 138 | + // 支持多文本映射(兼容 Excel 中可能的不同写法) | |
| 139 | + return switch (trimmedTxt) { | |
| 140 | + case "在用", "正常", "0" -> 0L; | |
| 141 | + case "报废", "停用", "1" -> 1L; | |
| 142 | + default -> { | |
| 143 | + this.statusTxt = "未知状态"; // 非法文本兜底 | |
| 144 | + yield null; // 非法状态返回 null,后续可做校验 | |
| 145 | + } | |
| 146 | + }; | |
| 147 | + } | |
| 124 | 148 | |
| 125 | - switch (status.intValue()) { | |
| 126 | - case 0: | |
| 127 | - statusTxt = "在用"; | |
| 128 | - break; | |
| 129 | - case 1: | |
| 130 | - statusTxt = "报废"; | |
| 131 | - break; | |
| 132 | - default: | |
| 133 | - statusTxt = "未知状态"; | |
| 149 | + /** | |
| 150 | + * 辅助方法:将数字状态转为文本状态 | |
| 151 | + */ | |
| 152 | + private String parseTxtFromStatus(Long status) { | |
| 153 | + if (status == null) { | |
| 154 | + return "未知状态"; | |
| 134 | 155 | } |
| 156 | + return switch (status.intValue()) { | |
| 157 | + case 0 -> "在用"; | |
| 158 | + case 1 -> "报废"; | |
| 159 | + default -> "未知状态"; | |
| 160 | + }; | |
| 135 | 161 | } |
| 136 | 162 | } | ... | ... |
urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml renamed to urbanops-module-garden/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml