Commit b900e65ecd58693efb138fd4c0390f136196858d

Authored by 王富生
1 parent d7f03be7

养护计划优化提交

urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/maintainplan/vo/MaintainPlanCommitRespVO.java
@@ -67,11 +67,14 @@ public class MaintainPlanCommitRespVO { @@ -67,11 +67,14 @@ public class MaintainPlanCommitRespVO {
67 @ExcelProperty("养护类型") 67 @ExcelProperty("养护类型")
68 private Integer planTypeId; 68 private Integer planTypeId;
69 69
70 -  
71 @Schema(description = "本次完成百分比") 70 @Schema(description = "本次完成百分比")
72 @ExcelProperty("本次完成百分比") 71 @ExcelProperty("本次完成百分比")
73 private Integer finishPercent; 72 private Integer finishPercent;
74 73
  74 + @Schema(description = "完成次数")
  75 + @ExcelProperty("完成次数")
  76 + private Integer planFinishNum;
  77 +
75 @Schema(description = "完成时间") 78 @Schema(description = "完成时间")
76 @ExcelProperty("完成时间") 79 @ExcelProperty("完成时间")
77 private LocalDateTime finishTime; 80 private LocalDateTime finishTime;
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/road/vo/RoadRespVO.java
1 package com.zteits.urbanops.module.garden.controller.admin.road.vo; 1 package com.zteits.urbanops.module.garden.controller.admin.road.vo;
2 2
  3 +import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  4 +import com.zteits.urbanops.module.garden.util.TwoDecimalFloatSerializer;
3 import io.swagger.v3.oas.annotations.media.Schema; 5 import io.swagger.v3.oas.annotations.media.Schema;
4 import lombok.*; 6 import lombok.*;
5 import java.util.*; 7 import java.util.*;
@@ -46,18 +48,22 @@ public class RoadRespVO { @@ -46,18 +48,22 @@ public class RoadRespVO {
46 48
47 @Schema(description = "行道树绿化面积", requiredMode = Schema.RequiredMode.REQUIRED) 49 @Schema(description = "行道树绿化面积", requiredMode = Schema.RequiredMode.REQUIRED)
48 @ExcelProperty("行道树绿化面积") 50 @ExcelProperty("行道树绿化面积")
  51 + @JsonSerialize(using = TwoDecimalFloatSerializer.class)
49 private Float greenBeltTreeArea; 52 private Float greenBeltTreeArea;
50 53
51 @Schema(description = "绿化带面积", requiredMode = Schema.RequiredMode.REQUIRED) 54 @Schema(description = "绿化带面积", requiredMode = Schema.RequiredMode.REQUIRED)
52 @ExcelProperty("绿化带面积") 55 @ExcelProperty("绿化带面积")
  56 + @JsonSerialize(using = TwoDecimalFloatSerializer.class)
53 private Float greenBeltArea; 57 private Float greenBeltArea;
54 58
55 @Schema(description = "总绿化带面积", requiredMode = Schema.RequiredMode.REQUIRED) 59 @Schema(description = "总绿化带面积", requiredMode = Schema.RequiredMode.REQUIRED)
56 @ExcelProperty("总绿化带面积") 60 @ExcelProperty("总绿化带面积")
  61 + @JsonSerialize(using = TwoDecimalFloatSerializer.class)
57 private Float totalArea; 62 private Float totalArea;
58 63
59 @Schema(description = "行道树(棵)面积", requiredMode = Schema.RequiredMode.REQUIRED) 64 @Schema(description = "行道树(棵)面积", requiredMode = Schema.RequiredMode.REQUIRED)
60 @ExcelProperty("行道树(棵)面积") 65 @ExcelProperty("行道树(棵)面积")
  66 + @JsonSerialize(using = TwoDecimalFloatSerializer.class)
61 private Float treeArea; 67 private Float treeArea;
62 68
63 @Schema(description = "起点经度", requiredMode = Schema.RequiredMode.REQUIRED) 69 @Schema(description = "起点经度", requiredMode = Schema.RequiredMode.REQUIRED)
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/road/RoadDO.java
1 package com.zteits.urbanops.module.garden.dal.dataobject.road; 1 package com.zteits.urbanops.module.garden.dal.dataobject.road;
2 2
  3 +import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  4 +import com.zteits.urbanops.module.garden.util.TwoDecimalFloatSerializer;
3 import lombok.*; 5 import lombok.*;
4 import java.util.*; 6 import java.util.*;
5 import java.time.LocalDateTime; 7 import java.time.LocalDateTime;
@@ -58,18 +60,22 @@ public class RoadDO extends BaseDO { @@ -58,18 +60,22 @@ public class RoadDO extends BaseDO {
58 /** 60 /**
59 * 行道树绿化面积 61 * 行道树绿化面积
60 */ 62 */
  63 + @JsonSerialize(using = TwoDecimalFloatSerializer.class)
61 private Float greenBeltTreeArea; 64 private Float greenBeltTreeArea;
62 /** 65 /**
63 * 绿化带面积 66 * 绿化带面积
64 */ 67 */
  68 + @JsonSerialize(using = TwoDecimalFloatSerializer.class)
65 private Float greenBeltArea; 69 private Float greenBeltArea;
66 /** 70 /**
67 * 总绿化带面积 71 * 总绿化带面积
68 */ 72 */
  73 + @JsonSerialize(using = TwoDecimalFloatSerializer.class)
69 private Float totalArea; 74 private Float totalArea;
70 /** 75 /**
71 * 行道树(棵)面积 76 * 行道树(棵)面积
72 */ 77 */
  78 + @JsonSerialize(using = TwoDecimalFloatSerializer.class)
73 private Float treeArea; 79 private Float treeArea;
74 /** 80 /**
75 * 起点经度 81 * 起点经度
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/util/TwoDecimalFloatSerializer.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.util;
  2 +
  3 +import com.fasterxml.jackson.core.JsonGenerator;
  4 +import com.fasterxml.jackson.databind.JsonSerializer;
  5 +import com.fasterxml.jackson.databind.SerializerProvider;
  6 +
  7 +import java.io.IOException;
  8 +import java.math.BigDecimal;
  9 +import java.math.RoundingMode;
  10 +
  11 +public class TwoDecimalFloatSerializer extends JsonSerializer<Float> {
  12 + @Override
  13 + public void serialize(Float value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
  14 + if (value == null) {
  15 + gen.writeNull();
  16 + } else {
  17 + // 转为 BigDecimal 并保留两位小数,避免浮点误差
  18 + BigDecimal bd = BigDecimal.valueOf(value)
  19 + .setScale(2, RoundingMode.HALF_UP);
  20 + gen.writeString(bd.toString()); // 输出为字符串:"5.00"
  21 + }
  22 + }
  23 +}
  24 +
urbanops-module-garden/src/main/resources/mapper/maintainplan/MaintainPlanCommitMapper.xml
@@ -27,16 +27,17 @@ @@ -27,16 +27,17 @@
27 a.end_time, 27 a.end_time,
28 a.company_id, 28 a.company_id,
29 a.dept_id, 29 a.dept_id,
30 - a.finish_num,  
31 c.finish_time, 30 c.finish_time,
32 - c.user_name 31 + c.user_name,
  32 + c.finish_percent
33 FROM 33 FROM
34 garden_maintain_plan_detail a, 34 garden_maintain_plan_detail a,
35 garden_maintain_plan b, 35 garden_maintain_plan b,
36 - (SELECT plan_no,finish_time,user_id,user_name FROM garden_maintain_plan_commit ORDER BY id ASC LIMIT 1) c 36 + garden_maintain_plan_commit c
37 WHERE 37 WHERE
38 a.batch_no = b.batch_no 38 a.batch_no = b.batch_no
39 - AND a.plan_no = c.plan_no 39 + AND a.plan_no = c.plan_no
  40 + AND b.batch_no = c.batch_no
40 <if test="req.planNo != null and req.planNo !=''"> 41 <if test="req.planNo != null and req.planNo !=''">
41 and a.plan_no = #{req.planNo} 42 and a.plan_no = #{req.planNo}
42 </if> 43 </if>