From ce68cca915d9d79536e77cf77188816aab5a276c Mon Sep 17 00:00:00 2001 From: lcj <2331845269@qq.com> Date: Tue, 5 Aug 2025 09:26:39 +0800 Subject: [PATCH] =?UTF-8?q?[update]=20=E4=BF=AE=E6=94=B9=E6=96=BD=E5=B7=A5?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E8=AE=A1=E5=88=92=E3=80=81=E5=A1=AB=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FacPhotovoltaicPanelPartsController.java | 17 +++-- .../FacPhotovoltaicPanelPointController.java | 5 -- .../domain/FacPhotovoltaicPanelColumn.java | 7 ++ .../domain/FacPhotovoltaicPanelPoint.java | 7 ++ .../domain/FacPhotovoltaicPanelSupport.java | 7 ++ .../FacPhotovoltaicPanelPartsQueryReq.java | 33 ++++++++++ ...acPhotovoltaicPanelPartsByPanelNameVo.java | 63 ++++++++++++++++++ .../FacPhotovoltaicPanelColumnMapper.java | 17 ++++- .../FacPhotovoltaicPanelPointMapper.java | 28 +++----- .../FacPhotovoltaicPanelSupportMapper.java | 15 ++++- .../IFacPhotovoltaicPanelColumnService.java | 12 ++++ .../IFacPhotovoltaicPanelPartsService.java | 14 ++++ .../IFacPhotovoltaicPanelPointService.java | 12 +++- .../IFacPhotovoltaicPanelSupportService.java | 12 ++++ ...FacPhotovoltaicPanelColumnServiceImpl.java | 63 ++++++++++++++++++ .../FacPhotovoltaicPanelPartsServiceImpl.java | 33 ++++++++++ .../FacPhotovoltaicPanelPointServiceImpl.java | 64 +++++++++++++++++-- ...acPhotovoltaicPanelSupportServiceImpl.java | 63 ++++++++++++++++++ .../impl/PgsProgressCategoryServiceImpl.java | 38 +++++++++-- .../PgsProgressPlanDetailServiceImpl.java | 32 ++++++++-- .../impl/PgsProgressPlanServiceImpl.java | 22 +++++-- .../FacPhotovoltaicPanelColumnMapper.xml | 15 +++++ .../FacPhotovoltaicPanelPointMapper.xml | 15 +++++ .../FacPhotovoltaicPanelSupportMapper.xml | 15 +++++ 24 files changed, 554 insertions(+), 55 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/dto/photovoltaicpanelparts/FacPhotovoltaicPanelPartsQueryReq.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/vo/photovoltaicpanelparts/FacPhotovoltaicPanelPartsByPanelNameVo.java diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPartsController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPartsController.java index 87b9cf1d..00f09fbb 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPartsController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPartsController.java @@ -5,15 +5,16 @@ import org.dromara.common.core.domain.R; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsCreateByGeoJsonReq; import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsCreateReq; +import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsQueryReq; +import org.dromara.facility.domain.vo.photovoltaicpanelparts.FacPhotovoltaicPanelPartsByPanelNameVo; import org.dromara.facility.service.IFacPhotovoltaicPanelPartsService; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * 设施-光伏板桩点、立柱、支架 @@ -29,6 +30,14 @@ public class FacPhotovoltaicPanelPartsController extends BaseController { @Resource private IFacPhotovoltaicPanelPartsService photovoltaicPanelPartsService; + /** + * 查询设施-光伏板桩点、立柱、支架根据光伏板名称 + */ + @GetMapping("/list/byPanelName") + public R> queryPageListByPanelName(FacPhotovoltaicPanelPartsQueryReq req, PageQuery pageQuery) { + return R.ok(photovoltaicPanelPartsService.queryPageListByPanelName(req, pageQuery)); + } + /** * 通过GeoJson新增设施-光伏板桩点、立柱、支架 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPointController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPointController.java index 77edc617..87474a44 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPointController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/controller/FacPhotovoltaicPanelPointController.java @@ -106,9 +106,4 @@ public class FacPhotovoltaicPanelPointController extends BaseController { return toAjax(facPhotovoltaicPanelPointService.deleteWithValidByIds(List.of(ids), true)); } - @GetMapping("/test") - public R test() { - facPhotovoltaicPanelPointService.test(); - return toAjax(true); - } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelColumn.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelColumn.java index b84b1207..fa5a05f8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelColumn.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelColumn.java @@ -1,5 +1,6 @@ package org.dromara.facility.domain; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -79,4 +80,10 @@ public class FacPhotovoltaicPanelColumn extends BaseEntity { */ private String remark; + /** + * 光伏板名称 + */ + @TableField(exist = false) + private String panelName; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelPoint.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelPoint.java index 43116001..d402bbde 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelPoint.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelPoint.java @@ -1,5 +1,6 @@ package org.dromara.facility.domain; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -79,4 +80,10 @@ public class FacPhotovoltaicPanelPoint extends BaseEntity { */ private String remark; + /** + * 光伏板名称 + */ + @TableField(exist = false) + private String panelName; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelSupport.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelSupport.java index 1f1e1929..a22395b7 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelSupport.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/FacPhotovoltaicPanelSupport.java @@ -1,5 +1,6 @@ package org.dromara.facility.domain; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -79,4 +80,10 @@ public class FacPhotovoltaicPanelSupport extends BaseEntity { */ private String remark; + /** + * 光伏板名称 + */ + @TableField(exist = false) + private String panelName; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/dto/photovoltaicpanelparts/FacPhotovoltaicPanelPartsQueryReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/dto/photovoltaicpanelparts/FacPhotovoltaicPanelPartsQueryReq.java new file mode 100644 index 00000000..58f77202 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/dto/photovoltaicpanelparts/FacPhotovoltaicPanelPartsQueryReq.java @@ -0,0 +1,33 @@ +package org.dromara.facility.domain.dto.photovoltaicpanelparts; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * @author lilemy + * @date 2025-08-04 10:35 + */ +@Data +public class FacPhotovoltaicPanelPartsQueryReq implements Serializable { + + @Serial + private static final long serialVersionUID = -3165283945470753140L; + + /** + * 光伏板名称 + */ + private String panelName; + + /** + * 进度类别id + */ + private Long progressCategoryId; + + /** + * 完成状态 + */ + private List finishStatusList; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/vo/photovoltaicpanelparts/FacPhotovoltaicPanelPartsByPanelNameVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/vo/photovoltaicpanelparts/FacPhotovoltaicPanelPartsByPanelNameVo.java new file mode 100644 index 00000000..01a28abc --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/domain/vo/photovoltaicpanelparts/FacPhotovoltaicPanelPartsByPanelNameVo.java @@ -0,0 +1,63 @@ +package org.dromara.facility.domain.vo.photovoltaicpanelparts; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * @author lilemy + * @date 2025-08-04 10:37 + */ +@Data +public class FacPhotovoltaicPanelPartsByPanelNameVo implements Serializable { + + @Serial + private static final long serialVersionUID = -3560638633508857432L; + + /** + * 光伏板名称 + */ + private String panelName; + + /** + * 光伏板桩点列表 + */ + private List children; + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class Children { + + /** + * 主键 + */ + private Long id; + + /** + * 光伏板桩点名称 + */ + private String name; + + /** + * 完成状态(0未开始 1进行中 2完成) + */ + private String status; + + /** + * 完成类型(1手动填报 2AI填报) + */ + private String finishType; + + /** + * 备注 + */ + private String remark; + + } + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelColumnMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelColumnMapper.java index cd828a4b..2ca96937 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelColumnMapper.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelColumnMapper.java @@ -1,8 +1,13 @@ package org.dromara.facility.mapper; -import org.dromara.facility.domain.FacPhotovoltaicPanelColumn; -import org.dromara.facility.domain.vo.photovoltaicpanelcolumn.FacPhotovoltaicPanelColumnVo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.facility.domain.FacPhotovoltaicPanelColumn; +import org.dromara.facility.domain.FacPhotovoltaicPanelPoint; +import org.dromara.facility.domain.vo.photovoltaicpanelcolumn.FacPhotovoltaicPanelColumnVo; + +import java.util.List; /** * 设施-光伏板立柱Mapper接口 @@ -12,4 +17,12 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface FacPhotovoltaicPanelColumnMapper extends BaseMapperPlus { + /** + * 分页查询 panelName(即 name 的前三段) + */ + Page selectPanelNamePage(Page page, + @Param("progressCategoryId") Long progressCategoryId, + @Param("panelName") String panelName, + @Param("statusList") List statusList); + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelPointMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelPointMapper.java index 5e22766f..ee76c1c8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelPointMapper.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelPointMapper.java @@ -1,12 +1,12 @@ package org.dromara.facility.mapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.facility.domain.FacPhotovoltaicPanelPoint; import org.dromara.facility.domain.vo.photovoltaicpanelpoint.FacPhotovoltaicPanelPointVo; -import java.util.Map; +import java.util.List; /** * 设施-光伏板桩点Mapper接口 @@ -17,22 +17,10 @@ import java.util.Map; public interface FacPhotovoltaicPanelPointMapper extends BaseMapperPlus { /** - * 按 code 的前三段(即取到第 3 个 "." 之前)做前缀分组, - * 并分页返回每组的 prefix(前缀)和 cnt(该组记录数)。 - *

- * 例如: - * G11101.06.22.05 → G11101.06.22 - * G11008.02.05#2.01 → G11008.02.05#2 + * 分页查询 panelName(即 name 的前三段) */ - default

>> P selectNameGroups(P page, Long progressCategoryId) { - return this.selectMapsPage(page, - new QueryWrapper() - .select("SUBSTRING_INDEX(name, '.', 3) AS prefix", - "COUNT(*) AS cnt") - .in("status", "0", "1") - .eq("progress_category_id", progressCategoryId) - .groupBy("prefix") - ); - } - + Page selectPanelNamePage(Page page, + @Param("progressCategoryId") Long progressCategoryId, + @Param("panelName") String panelName, + @Param("statusList") List statusList); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelSupportMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelSupportMapper.java index dacacf94..dba18344 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelSupportMapper.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/mapper/FacPhotovoltaicPanelSupportMapper.java @@ -1,8 +1,13 @@ package org.dromara.facility.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.facility.domain.FacPhotovoltaicPanelPoint; import org.dromara.facility.domain.FacPhotovoltaicPanelSupport; import org.dromara.facility.domain.vo.photovoltaicpanelsupport.FacPhotovoltaicPanelSupportVo; -import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +import java.util.List; /** * 设施-光伏板支架Mapper接口 @@ -12,4 +17,12 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface FacPhotovoltaicPanelSupportMapper extends BaseMapperPlus { + /** + * 分页查询 panelName(即 name 的前三段) + */ + Page selectPanelNamePage(Page page, + @Param("progressCategoryId") Long progressCategoryId, + @Param("panelName") String panelName, + @Param("statusList") List statusList); + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelColumnService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelColumnService.java index aa1c7ba0..dcdc5521 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelColumnService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelColumnService.java @@ -9,7 +9,9 @@ import org.dromara.facility.domain.FacPhotovoltaicPanelColumn; import org.dromara.facility.domain.dto.photovoltaicpanelcolumn.FacPhotovoltaicPanelColumnCreateReq; import org.dromara.facility.domain.dto.photovoltaicpanelcolumn.FacPhotovoltaicPanelColumnQueryReq; import org.dromara.facility.domain.dto.photovoltaicpanelcolumn.FacPhotovoltaicPanelColumnUpdateReq; +import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsQueryReq; import org.dromara.facility.domain.vo.photovoltaicpanelcolumn.FacPhotovoltaicPanelColumnVo; +import org.dromara.facility.domain.vo.photovoltaicpanelparts.FacPhotovoltaicPanelPartsByPanelNameVo; import java.util.Collection; import java.util.List; @@ -96,4 +98,14 @@ public interface IFacPhotovoltaicPanelColumnService extends IService getVoPage(Page photovoltaicPanelColumnPage); + /** + * 获取设施-光伏板立柱分页对象视图 + * + * @param req 查询条件 + * @param pageQuery 分页参数 + * @return 设施-光伏板立柱分页对象视图 + */ + TableDataInfo queryPageListByPanelName(FacPhotovoltaicPanelPartsQueryReq req, + PageQuery pageQuery); + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPartsService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPartsService.java index 503aa6af..087004df 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPartsService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPartsService.java @@ -1,10 +1,14 @@ package org.dromara.facility.service; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.facility.domain.FacPhotovoltaicPanelColumn; import org.dromara.facility.domain.FacPhotovoltaicPanelPoint; import org.dromara.facility.domain.FacPhotovoltaicPanelSupport; import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsCreateByGeoJsonReq; import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsCreateReq; +import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsQueryReq; +import org.dromara.facility.domain.vo.photovoltaicpanelparts.FacPhotovoltaicPanelPartsByPanelNameVo; import java.util.Collection; import java.util.Date; @@ -18,6 +22,16 @@ import java.util.List; */ public interface IFacPhotovoltaicPanelPartsService { + /** + * 查询光伏板(桩点、立柱、支架)列表 + * + * @param req 查询参数 + * @param pageQuery 分页参数 + * @return 光伏板(桩点、立柱、支架)列表 + */ + TableDataInfo queryPageListByPanelName(FacPhotovoltaicPanelPartsQueryReq req, + PageQuery pageQuery); + /** * 批量新增设施-光伏板(桩点、立柱、支架) * diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPointService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPointService.java index 249f85d1..5928b253 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPointService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelPointService.java @@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.facility.domain.FacPhotovoltaicPanelPoint; +import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsQueryReq; import org.dromara.facility.domain.dto.photovoltaicpanelpoint.FacPhotovoltaicPanelPointCreateReq; import org.dromara.facility.domain.dto.photovoltaicpanelpoint.FacPhotovoltaicPanelPointQueryReq; import org.dromara.facility.domain.dto.photovoltaicpanelpoint.FacPhotovoltaicPanelPointUpdateReq; +import org.dromara.facility.domain.vo.photovoltaicpanelparts.FacPhotovoltaicPanelPartsByPanelNameVo; import org.dromara.facility.domain.vo.photovoltaicpanelpoint.FacPhotovoltaicPanelPointVo; import java.util.Collection; @@ -96,5 +98,13 @@ public interface IFacPhotovoltaicPanelPointService extends IService getVoPage(Page photovoltaicPanelPointPage); - void test(); + /** + * 获取设施-光伏板桩点分页对象视图 + * + * @param req 查询条件 + * @param pageQuery 分页参数 + * @return 设施-光伏板桩点分页对象视图 + */ + TableDataInfo queryPageListByPanelName(FacPhotovoltaicPanelPartsQueryReq req, + PageQuery pageQuery); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelSupportService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelSupportService.java index 11dabd98..a62f302b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelSupportService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/IFacPhotovoltaicPanelSupportService.java @@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.facility.domain.FacPhotovoltaicPanelSupport; +import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsQueryReq; import org.dromara.facility.domain.dto.photovoltaicpanelsupport.FacPhotovoltaicPanelSupportCreateReq; import org.dromara.facility.domain.dto.photovoltaicpanelsupport.FacPhotovoltaicPanelSupportQueryReq; import org.dromara.facility.domain.dto.photovoltaicpanelsupport.FacPhotovoltaicPanelSupportUpdateReq; +import org.dromara.facility.domain.vo.photovoltaicpanelparts.FacPhotovoltaicPanelPartsByPanelNameVo; import org.dromara.facility.domain.vo.photovoltaicpanelsupport.FacPhotovoltaicPanelSupportVo; import java.util.Collection; @@ -96,4 +98,14 @@ public interface IFacPhotovoltaicPanelSupportService extends IService getVoPage(Page photovoltaicPanelSupportPage); + /** + * 获取设施-光伏板支架分页对象视图 + * + * @param req 查询条件 + * @param pageQuery 分页参数 + * @return 设施-光伏板支架分页对象视图 + */ + TableDataInfo queryPageListByPanelName(FacPhotovoltaicPanelPartsQueryReq req, + PageQuery pageQuery); + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelColumnServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelColumnServiceImpl.java index d440b0a4..f715169d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelColumnServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelColumnServiceImpl.java @@ -3,6 +3,7 @@ package org.dromara.facility.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; @@ -17,7 +18,10 @@ import org.dromara.facility.domain.FacPhotovoltaicPanelColumn; import org.dromara.facility.domain.dto.photovoltaicpanelcolumn.FacPhotovoltaicPanelColumnCreateReq; import org.dromara.facility.domain.dto.photovoltaicpanelcolumn.FacPhotovoltaicPanelColumnQueryReq; import org.dromara.facility.domain.dto.photovoltaicpanelcolumn.FacPhotovoltaicPanelColumnUpdateReq; +import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsQueryReq; +import org.dromara.facility.domain.enums.FacFinishStatusEnum; import org.dromara.facility.domain.vo.photovoltaicpanelcolumn.FacPhotovoltaicPanelColumnVo; +import org.dromara.facility.domain.vo.photovoltaicpanelparts.FacPhotovoltaicPanelPartsByPanelNameVo; import org.dromara.facility.mapper.FacPhotovoltaicPanelColumnMapper; import org.dromara.facility.service.IFacMatrixService; import org.dromara.facility.service.IFacPhotovoltaicPanelColumnService; @@ -26,8 +30,11 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 设施-光伏板立柱Service业务层处理 @@ -277,4 +284,60 @@ public class FacPhotovoltaicPanelColumnServiceImpl extends ServiceImpl queryPageListByPanelName(FacPhotovoltaicPanelPartsQueryReq req, PageQuery pageQuery) { + Long progressCategoryId = req.getProgressCategoryId(); + if (progressCategoryId == null) { + throw new ServiceException("请选择进度类别", HttpStatus.BAD_REQUEST); + } + List finishStatusList = req.getFinishStatusList(); + if (CollUtil.isEmpty(finishStatusList)) { + finishStatusList = List.of(FacFinishStatusEnum.UNFINISH.getValue(), FacFinishStatusEnum.INPROGRESS.getValue()); + } + // 第一步:分页获取 panelName + Page panelNamePage = baseMapper.selectPanelNamePage( + pageQuery.build(), progressCategoryId, + req.getPanelName(), req.getFinishStatusList()); + List panelNameList = panelNamePage.getRecords(); + if (CollUtil.isEmpty(panelNameList)) { + return TableDataInfo.build(); + } + // 第二步:获取这些 panelName 对应的所有记录 + QueryWrapper qw = new QueryWrapper<>(); + qw.select("*", "SUBSTRING_INDEX(name, '.', 3) AS panelName") + .eq("progress_category_id", progressCategoryId) + .in("status", finishStatusList) + .orderByAsc("panelName"); + // 拼接 panelName 列表到 SQL + String inClause = panelNameList.stream() + .map(s -> "'" + s + "'") + .collect(Collectors.joining(",")); + qw.apply("SUBSTRING_INDEX(name, '.', 3) IN (" + inClause + ")"); + List columnList = this.list(qw); + Map> map = columnList.stream().collect(Collectors.groupingBy(FacPhotovoltaicPanelColumn::getPanelName)); + List result = new ArrayList<>(); + for (Map.Entry> entry : map.entrySet()) { + FacPhotovoltaicPanelPartsByPanelNameVo vo = new FacPhotovoltaicPanelPartsByPanelNameVo(); + String key = entry.getKey(); + List value = entry.getValue(); + vo.setPanelName(key); + vo.setChildren(value.stream().map(column -> new FacPhotovoltaicPanelPartsByPanelNameVo.Children( + column.getId(), + column.getName(), + column.getStatus(), + column.getFinishType(), + column.getRemark() + )).toList()); + result.add(vo); + } + return new TableDataInfo<>(result, panelNamePage.getTotal()); + } + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPartsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPartsServiceImpl.java index 5077b3a2..e62f933c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPartsServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPartsServiceImpl.java @@ -9,6 +9,8 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.constant.HttpStatus; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.sse.dto.SseMessageDto; import org.dromara.common.sse.utils.SseMessageUtils; @@ -22,8 +24,10 @@ import org.dromara.facility.domain.FacPhotovoltaicPanelSupport; import org.dromara.facility.domain.dto.geojson.FacFeatureByPoint; import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsCreateByGeoJsonReq; import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsCreateReq; +import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsQueryReq; import org.dromara.facility.domain.enums.FacFinishStatusEnum; import org.dromara.facility.domain.enums.FacFinishTypeEnum; +import org.dromara.facility.domain.vo.photovoltaicpanelparts.FacPhotovoltaicPanelPartsByPanelNameVo; import org.dromara.facility.service.*; import org.dromara.progress.constant.PgsProgressCategoryConstant; import org.dromara.progress.domain.PgsProgressCategory; @@ -82,6 +86,35 @@ public class FacPhotovoltaicPanelPartsServiceImpl implements IFacPhotovoltaicPan @Resource private FacPhotovoltaicPanelPartsServiceImpl self; // 注入自己 + /** + * 查询光伏板(桩点、立柱、支架)列表 + * + * @param req 查询参数 + * @param pageQuery 分页参数 + * @return 光伏板(桩点、立柱、支架)列表 + */ + @Override + public TableDataInfo queryPageListByPanelName(FacPhotovoltaicPanelPartsQueryReq req, PageQuery pageQuery) { + Long progressCategoryId = req.getProgressCategoryId(); + if (progressCategoryId == null) { + throw new ServiceException("请选择进度类别", HttpStatus.BAD_REQUEST); + } + PgsProgressCategory progressCategory = progressCategoryService.getById(progressCategoryId); + if (progressCategory == null) { + throw new ServiceException("进度类别不存在", HttpStatus.NOT_FOUND); + } + String workType = progressCategory.getWorkType(); + return switch (workType) { + case PgsProgressCategoryConstant.PHOTOVOLTAIC_PANEL_POINT_WORK_TYPE -> + photovoltaicPanelPointService.queryPageListByPanelName(req, pageQuery); + case PgsProgressCategoryConstant.PHOTOVOLTAIC_PANEL_COLUMN_WORK_TYPE -> + photovoltaicPanelColumnService.queryPageListByPanelName(req, pageQuery); + case PgsProgressCategoryConstant.PHOTOVOLTAIC_PANEL_SUPPORT_WORK_TYPE -> + photovoltaicPanelSupportService.queryPageListByPanelName(req, pageQuery); + case null, default -> throw new ServiceException("未定义的进度计划类别", HttpStatus.BAD_REQUEST); + }; + } + /** * 批量新增设施-光伏板(桩点、立柱、支架) * diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPointServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPointServiceImpl.java index a57cc25b..bf0d12fb 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPointServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelPointServiceImpl.java @@ -3,7 +3,7 @@ package org.dromara.facility.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; @@ -15,9 +15,12 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.facility.domain.FacPhotovoltaicPanelPoint; +import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsQueryReq; import org.dromara.facility.domain.dto.photovoltaicpanelpoint.FacPhotovoltaicPanelPointCreateReq; import org.dromara.facility.domain.dto.photovoltaicpanelpoint.FacPhotovoltaicPanelPointQueryReq; import org.dromara.facility.domain.dto.photovoltaicpanelpoint.FacPhotovoltaicPanelPointUpdateReq; +import org.dromara.facility.domain.enums.FacFinishStatusEnum; +import org.dromara.facility.domain.vo.photovoltaicpanelparts.FacPhotovoltaicPanelPartsByPanelNameVo; import org.dromara.facility.domain.vo.photovoltaicpanelpoint.FacPhotovoltaicPanelPointVo; import org.dromara.facility.mapper.FacPhotovoltaicPanelPointMapper; import org.dromara.facility.service.IFacMatrixService; @@ -27,9 +30,11 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 设施-光伏板桩点Service业务层处理 @@ -279,11 +284,60 @@ public class FacPhotovoltaicPanelPointServiceImpl extends ServiceImpl> page = new Page<>(1, 20); - IPage> result = baseMapper.selectNameGroups(page, 1951552040378360699L); - System.out.println(result); + public TableDataInfo queryPageListByPanelName(FacPhotovoltaicPanelPartsQueryReq req, PageQuery pageQuery) { + Long progressCategoryId = req.getProgressCategoryId(); + if (progressCategoryId == null) { + throw new ServiceException("请选择进度类别", HttpStatus.BAD_REQUEST); + } + List finishStatusList = req.getFinishStatusList(); + if (CollUtil.isEmpty(finishStatusList)) { + finishStatusList = List.of(FacFinishStatusEnum.UNFINISH.getValue(), FacFinishStatusEnum.INPROGRESS.getValue()); + } + // 第一步:分页获取 panelName + Page panelNamePage = baseMapper.selectPanelNamePage( + pageQuery.build(), progressCategoryId, + req.getPanelName(), req.getFinishStatusList()); + List panelNameList = panelNamePage.getRecords(); + if (CollUtil.isEmpty(panelNameList)) { + return TableDataInfo.build(); + } + // 第二步:获取这些 panelName 对应的所有记录 + QueryWrapper qw = new QueryWrapper<>(); + qw.select("*", "SUBSTRING_INDEX(name, '.', 3) AS panelName") + .eq("progress_category_id", progressCategoryId) + .in("status", finishStatusList) + .orderByAsc("panelName"); + // 拼接 panelName 列表到 SQL + String inClause = panelNameList.stream() + .map(s -> "'" + s + "'") + .collect(Collectors.joining(",")); + qw.apply("SUBSTRING_INDEX(name, '.', 3) IN (" + inClause + ")"); + List pointList = this.list(qw); + Map> map = pointList.stream().collect(Collectors.groupingBy(FacPhotovoltaicPanelPoint::getPanelName)); + List result = new ArrayList<>(); + for (Map.Entry> entry : map.entrySet()) { + FacPhotovoltaicPanelPartsByPanelNameVo vo = new FacPhotovoltaicPanelPartsByPanelNameVo(); + String key = entry.getKey(); + List value = entry.getValue(); + vo.setPanelName(key); + vo.setChildren(value.stream().map(point -> new FacPhotovoltaicPanelPartsByPanelNameVo.Children( + point.getId(), + point.getName(), + point.getStatus(), + point.getFinishType(), + point.getRemark() + )).toList()); + result.add(vo); + } + return new TableDataInfo<>(result, panelNamePage.getTotal()); } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelSupportServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelSupportServiceImpl.java index d82adab3..c38b3646 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelSupportServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/facility/service/impl/FacPhotovoltaicPanelSupportServiceImpl.java @@ -3,6 +3,7 @@ package org.dromara.facility.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; @@ -14,9 +15,12 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.facility.domain.FacPhotovoltaicPanelSupport; +import org.dromara.facility.domain.dto.photovoltaicpanelparts.FacPhotovoltaicPanelPartsQueryReq; import org.dromara.facility.domain.dto.photovoltaicpanelsupport.FacPhotovoltaicPanelSupportCreateReq; import org.dromara.facility.domain.dto.photovoltaicpanelsupport.FacPhotovoltaicPanelSupportQueryReq; import org.dromara.facility.domain.dto.photovoltaicpanelsupport.FacPhotovoltaicPanelSupportUpdateReq; +import org.dromara.facility.domain.enums.FacFinishStatusEnum; +import org.dromara.facility.domain.vo.photovoltaicpanelparts.FacPhotovoltaicPanelPartsByPanelNameVo; import org.dromara.facility.domain.vo.photovoltaicpanelsupport.FacPhotovoltaicPanelSupportVo; import org.dromara.facility.mapper.FacPhotovoltaicPanelSupportMapper; import org.dromara.facility.service.IFacMatrixService; @@ -26,8 +30,11 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 设施-光伏板支架Service业务层处理 @@ -277,4 +284,60 @@ public class FacPhotovoltaicPanelSupportServiceImpl extends ServiceImpl queryPageListByPanelName(FacPhotovoltaicPanelPartsQueryReq req, PageQuery pageQuery) { + Long progressCategoryId = req.getProgressCategoryId(); + if (progressCategoryId == null) { + throw new ServiceException("请选择进度类别", HttpStatus.BAD_REQUEST); + } + List finishStatusList = req.getFinishStatusList(); + if (CollUtil.isEmpty(finishStatusList)) { + finishStatusList = List.of(FacFinishStatusEnum.UNFINISH.getValue(), FacFinishStatusEnum.INPROGRESS.getValue()); + } + // 第一步:分页获取 panelName + Page panelNamePage = baseMapper.selectPanelNamePage( + pageQuery.build(), progressCategoryId, + req.getPanelName(), req.getFinishStatusList()); + List panelNameList = panelNamePage.getRecords(); + if (CollUtil.isEmpty(panelNameList)) { + return TableDataInfo.build(); + } + // 第二步:获取这些 panelName 对应的所有记录 + QueryWrapper qw = new QueryWrapper<>(); + qw.select("*", "SUBSTRING_INDEX(name, '.', 3) AS panelName") + .eq("progress_category_id", progressCategoryId) + .in("status", finishStatusList) + .orderByAsc("panelName"); + // 拼接 panelName 列表到 SQL + String inClause = panelNameList.stream() + .map(s -> "'" + s + "'") + .collect(Collectors.joining(",")); + qw.apply("SUBSTRING_INDEX(name, '.', 3) IN (" + inClause + ")"); + List supportList = this.list(qw); + Map> map = supportList.stream().collect(Collectors.groupingBy(FacPhotovoltaicPanelSupport::getPanelName)); + List result = new ArrayList<>(); + for (Map.Entry> entry : map.entrySet()) { + FacPhotovoltaicPanelPartsByPanelNameVo vo = new FacPhotovoltaicPanelPartsByPanelNameVo(); + String key = entry.getKey(); + List value = entry.getValue(); + vo.setPanelName(key); + vo.setChildren(value.stream().map(support -> new FacPhotovoltaicPanelPartsByPanelNameVo.Children( + support.getId(), + support.getName(), + support.getStatus(), + support.getFinishType(), + support.getRemark() + )).toList()); + result.add(vo); + } + return new TableDataInfo<>(result, panelNamePage.getTotal()); + } + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressCategoryServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressCategoryServiceImpl.java index 8d38a5af..7aa65a1f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressCategoryServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressCategoryServiceImpl.java @@ -43,6 +43,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @@ -138,7 +139,8 @@ public class PgsProgressCategoryServiceImpl extends ServiceImpl= 0) { + progressCategory.setPlanTotal(progressCategory.getPlanTotal().subtract(progressPlan.getPlanNumber())); + } BigDecimal completedTotal = progressCategory.getCompleted().add(new BigDecimal(size)); progressCategory.setCompleted(completedTotal); if (completedTotal.compareTo(progressCategory.getTotal()) == 0) { @@ -299,6 +309,10 @@ public class PgsProgressPlanDetailServiceImpl extends ServiceImpl 0) { + throw new ServiceException("总进度不能大于100", HttpStatus.BAD_REQUEST); + } Long progressPlanId = progressPlanDetail.getProgressPlanId(); PgsProgressPlan progressPlan = progressPlanService.getById(progressPlanId); if (progressPlan == null) { @@ -310,14 +324,14 @@ public class PgsProgressPlanDetailServiceImpl extends ServiceImpl= 0) { + progressCategory.setPlanTotal(progressCategory.getPlanTotal().subtract(progressPlan.getPlanNumber())); + } boolean updateCategory = progressCategoryService.updateById(progressCategory); if (!updateCategory) { throw new ServiceException("更新进度分类异常", HttpStatus.ERROR); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressPlanServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressPlanServiceImpl.java index 00550f01..0f047673 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressPlanServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressPlanServiceImpl.java @@ -171,7 +171,7 @@ public class PgsProgressPlanServiceImpl extends ServiceImpl progressCategoryList = progressCategoryService.listByIds(categoryIdList); + if (CollUtil.isEmpty(progressCategoryList) || progressCategoryList.size() != categoryIdList.size()) { + log.error("进度类别不存在,id:{},entry:{}", categoryIdList, progressCategoryList); + return false; + } // 批量更新 boolean result = this.updateBatchById(progressPlanList); if (!result) { throw new ServiceException("更新施工进度失败", HttpStatus.ERROR); } - boolean update = progressCategoryService.lambdaUpdate() - .in(PgsProgressCategory::getId, categoryIdList) - .set(PgsProgressCategory::getIsDelay, PgsDelayStatusEnum.DELAY.getValue()) - .update(); + List updateCategoryList = progressCategoryList.stream().map(category -> { + PgsProgressCategory progressCategory = new PgsProgressCategory(); + Long id = category.getId(); + progressCategory.setId(id); + progressCategory.setIsDelay(PgsDelayStatusEnum.DELAY.getValue()); + List plans = delayPlanMap.get(id); + BigDecimal planNumber = plans.stream().map(PgsProgressPlan::getPlanNumber).reduce(BigDecimal.ZERO, BigDecimal::add); + progressCategory.setPlanTotal(progressCategory.getPlanTotal().subtract(planNumber)); + return progressCategory; + }).toList(); + boolean update = progressCategoryService.updateBatchById(updateCategoryList); if (!update) { throw new ServiceException("更新进度类别异常", HttpStatus.ERROR); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelColumnMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelColumnMapper.xml index 5974251a..6a9bfe69 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelColumnMapper.xml +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelColumnMapper.xml @@ -4,4 +4,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelPointMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelPointMapper.xml index 121e2296..4afe0f93 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelPointMapper.xml +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelPointMapper.xml @@ -4,4 +4,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelSupportMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelSupportMapper.xml index 4d5278ad..57461f9d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelSupportMapper.xml +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/facility/FacPhotovoltaicPanelSupportMapper.xml @@ -4,4 +4,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +