From 77bd26a8389bcd2ddef167d2aeb4da3c3fef1c3e Mon Sep 17 00:00:00 2001 From: YUJT Date: Mon, 25 Apr 2022 16:57:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BB=91=E5=AE=9A=E5=85=9A?= =?UTF-8?q?=E5=91=98=E4=B8=AD=E5=BF=83=E6=88=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../power/dto/axis/PowerAxisLeaderDTO.java | 5 +++ .../axis/form/PowerKernelHouseFormDTO.java | 23 ++++++++++- .../axis/dao/PowerKernelHouseholdDao.java | 18 +++++++-- .../impl/PowerAxisLeaderServiceImpl.java | 2 - .../impl/PowerKernelHouseholdServiceImpl.java | 38 +++++++++++-------- .../poweraxis/PowerKernelHouseholdDao.xml | 13 ++++--- 6 files changed, 70 insertions(+), 29 deletions(-) diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/axis/PowerAxisLeaderDTO.java b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/axis/PowerAxisLeaderDTO.java index 159d00f..b33b8cd 100644 --- a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/axis/PowerAxisLeaderDTO.java +++ b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/axis/PowerAxisLeaderDTO.java @@ -4,6 +4,8 @@ import java.io.Serializable; import java.util.Date; import lombok.Data; +import javax.validation.constraints.NotBlank; + /** * 动力主轴领导人 @@ -29,16 +31,19 @@ public class PowerAxisLeaderDTO implements Serializable { /** * 姓名 */ + @NotBlank(message = "姓名不能为空") private String name; /** * 关联动力主轴ID */ + @NotBlank(message = "绑定动力主轴不能为空") private String structReferenceId; /** * 性别 1男2女0未知 */ + @NotBlank(message = "性别不能为空") private String gender; /** diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/axis/form/PowerKernelHouseFormDTO.java b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/axis/form/PowerKernelHouseFormDTO.java index 907b360..20104c3 100644 --- a/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/axis/form/PowerKernelHouseFormDTO.java +++ b/epmet-plugins-module/pli-power-base/pli-power-base-client/src/main/java/com/epmet/plugin/power/dto/axis/form/PowerKernelHouseFormDTO.java @@ -2,8 +2,27 @@ package com.epmet.plugin.power.dto.axis.form; import lombok.Data; +import java.io.Serializable; +import java.util.List; + +/** + * 绑定党员中心户(房屋) + * + * @author work@yujt.net.cn + * @date 2022/4/25/0025 16:48 + */ @Data -public class PowerKernelHouseFormDTO { +public class PowerKernelHouseFormDTO implements Serializable { + + private static final long serialVersionUID = -3319310604730621237L; + + /** + * 动力主轴节点ID + */ private String axisStructId; - private String[] houseIdList; + + /** + * 要绑定的房屋ID集合 + */ + private List houseIdList; } diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/dao/PowerKernelHouseholdDao.java b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/dao/PowerKernelHouseholdDao.java index 77add6e..2dd0035 100644 --- a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/dao/PowerKernelHouseholdDao.java +++ b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/dao/PowerKernelHouseholdDao.java @@ -1,7 +1,6 @@ package com.epmet.plugin.power.modules.axis.dao; - import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.plugin.power.dto.axis.form.PowerKernelHouseFormDTO; import com.epmet.plugin.power.dto.axis.form.PowerKernelHouseHoldViewListFormDTO; @@ -28,12 +27,23 @@ public interface PowerKernelHouseholdDao extends BaseDao getListPosition(PowerKernelListPostitionFormDTO form,List axisStructIds); + List getListPosition(PowerKernelListPostitionFormDTO form, List axisStructIds); long getListTotal(PowerKernelListPostitionFormDTO form); - - List queryHouseIdList(String[] houseIdList, String customerId,String axisStructId); + /** + * 根据节点ID查询已绑定的房屋ID + * + * @param houseIdList 需要绑定的房屋ID + * @param customerId 客户ID + * @param axisStructId 动力主轴节点 + * @return java.util.List + * @author work@yujt.net.cn + * @date 2022/4/25/0025 16:49 + */ + List queryHouseIdList(@Param("houseIdList") List houseIdList, + @Param("customerId") String customerId, + @Param("axisStructId") String axisStructId); List queryIds(String customerId, String axisStructId); diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/service/impl/PowerAxisLeaderServiceImpl.java b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/service/impl/PowerAxisLeaderServiceImpl.java index 8212a11..dfc8564 100644 --- a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/service/impl/PowerAxisLeaderServiceImpl.java +++ b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/service/impl/PowerAxisLeaderServiceImpl.java @@ -1,6 +1,5 @@ package com.epmet.plugin.power.modules.axis.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -15,7 +14,6 @@ import com.epmet.plugin.power.dto.axis.result.PowerAxisSimpleListDTO; import com.epmet.plugin.power.modules.axis.dao.PowerAxisLeaderDao; import com.epmet.plugin.power.modules.axis.dao.PowerAxisStructLeaderDao; import com.epmet.plugin.power.modules.axis.entity.PowerAxisLeaderEntity; -import com.epmet.plugin.power.modules.axis.entity.PowerAxisStructEntity; import com.epmet.plugin.power.modules.axis.entity.PowerAxisStructLeaderEntity; import com.epmet.plugin.power.modules.axis.service.PowerAxisLeaderService; import org.apache.commons.lang3.StringUtils; diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/service/impl/PowerKernelHouseholdServiceImpl.java b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/service/impl/PowerKernelHouseholdServiceImpl.java index ec2a1e2..0a06d63 100644 --- a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/service/impl/PowerKernelHouseholdServiceImpl.java +++ b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/java/com/epmet/plugin/power/modules/axis/service/impl/PowerKernelHouseholdServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.plugin.power.modules.axis.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -27,6 +28,7 @@ import com.epmet.plugin.power.modules.axis.entity.PowerKernelHouseholdEntity; import com.epmet.plugin.power.modules.axis.redis.PowerKernelHouseholdRedis; import com.epmet.plugin.power.modules.axis.service.PowerAxisTagService; import com.epmet.plugin.power.modules.axis.service.PowerKernelHouseholdService; +import com.google.common.collect.Sets; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -135,7 +137,7 @@ public class PowerKernelHouseholdServiceImpl extends BaseServiceImpl getListPosition(PowerKernelListPostitionFormDTO form) { - return baseDao.queryListPosition(form.getAxisStructId(),form.getCustomerId(),form.getLimit()); + return baseDao.queryListPosition(form.getAxisStructId(), form.getCustomerId(), form.getLimit()); } @@ -148,29 +150,35 @@ public class PowerKernelHouseholdServiceImpl extends BaseServiceImpl idList = baseDao.queryHouseIdList(form.getHouseIdList(), form.getAxisStructId(), customerId); - // 将idList转换为Set集合进行去重 - Set setIdList = new HashSet<>(); - for (String id : idList) { - setIdList.add(id); + // 需要绑定的房屋ID集合 + List houseIdList = form.getHouseIdList(); + // 查询已绑定的houseId集合 + List existHouseIdList = baseDao.queryHouseIdList(houseIdList, form.getAxisStructId(), customerId); + // 倒序,取差集 + for (int i = houseIdList.size() - 1; i >= 0; i--) { + for (String existHouseId : existHouseIdList) { + if (existHouseId.equals(houseIdList.get(i))) { + houseIdList.remove(i); + } + } } - // 将前端发送的houseId放入Set集合 - Set houseIds = new HashSet<>(); - Collections.addAll(houseIds, form.getHouseIdList()); - // 去重 - houseIds.removeAll(setIdList); - Result> listResult = govOrgOpenFeignClient.queryListHouseInfo(houseIds, customerId); + if (CollUtil.isEmpty(houseIdList)) { + return; + } + // 查询房屋信息 + Result> listResult = govOrgOpenFeignClient.queryListHouseInfo(Sets.newHashSet(houseIdList), customerId); if (!listResult.success()) { return; } List houseList = listResult.getData(); PowerKernelHouseholdEntity entity; + Result icHouseDTOResult; for (HouseInfoDTO houseInfo : houseList) { - Result icHouseDTOResult = govOrgOpenFeignClient.get(houseInfo.getHomeId()); + + // 查询房屋与房主信息 + icHouseDTOResult = govOrgOpenFeignClient.get(houseInfo.getHomeId()); if (!icHouseDTOResult.success()) { continue; } diff --git a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/resources/mapper/poweraxis/PowerKernelHouseholdDao.xml b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/resources/mapper/poweraxis/PowerKernelHouseholdDao.xml index 0c08a74..c281065 100644 --- a/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/resources/mapper/poweraxis/PowerKernelHouseholdDao.xml +++ b/epmet-plugins-module/pli-power-base/pli-power-base-server/src/main/resources/mapper/poweraxis/PowerKernelHouseholdDao.xml @@ -94,16 +94,17 @@ FROM pli_power_kernel_household - house_id in - - #{houseId} - + del_flag = '0' + + and house_id in + + #{houseId} + + AND STRUCT_REFERENCE_ID = #{axisStructId} AND customer_id = #{customerId} - AND - del_flag = '0'