diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 31b8e903f8..b9795ef8dc 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -790,15 +790,5 @@ public class RedisKeys { return rootPrefix.concat("updateHouseResiNumber:").concat(customerId); } - /** - * desc:获取更新 房屋内有居民数量 线程的key - * @param customerId - * @return - */ - public static String updateIcHouseResiNumberThread(String customerId) { - if (StringUtils.isBlank(customerId)){ - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误"); - } - return rootPrefix.concat("updateHouseResiNumber:thread:").concat(customerId); - } + } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 60419614fc..9c018aa171 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -12,6 +12,7 @@ import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -672,4 +673,12 @@ public interface GovOrgOpenFeignClient { */ @PostMapping("/gov/org/house/getHomeInfoByHouseCode") Result getHomeInfoByHouseCode(CommonHouseFormDTO dto); + + /** + * desc:根据房屋id更新 屋内的居民数量 + * @param paramList + * @return + */ + @PostMapping("/gov/org/ichouse/updateIcHouseResiNumber") + Result updateIcHouseResiNumber(List> paramList); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 23054533c7..85110205e0 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -10,6 +10,7 @@ import com.epmet.dto.result.*; import com.epmet.feign.GovOrgOpenFeignClient; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -431,4 +432,9 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getHomeInfoByHouseCode", dto); } + @Override + public Result updateIcHouseResiNumber(List> paramList) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "updateIcHouseResiNumber", paramList); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java index e6f1522353..f7f7ef5b33 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java @@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; /** @@ -94,4 +95,14 @@ public class IcHouseController { public Result getByHouseCode(@PathVariable("houseCode") String houseCode){ return new Result().ok(icHouseService.getByHouseCode(houseCode)); } + + /** + * desc:更新房屋的屋内居民数 + * @param paramList houseId:'123',resiNumber:20 + * @return + */ + @PostMapping("updateIcHouseResiNumber") + public Result updateIcHouseResiNumber(@RequestBody List> paramList){ + return new Result().ok(icHouseService.updateIcHouseResiNumber(paramList)); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java index 8efb45cf92..1d43ba521e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java @@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -147,29 +148,38 @@ public interface IcHouseDao extends BaseDao { List selectBatchHouseCodeAndUrl(@Param("customerId") String customerId); /** - * @describe: 通过客户id查询 - * @author wangtong - * @date 2022/6/7 18:36 - * @params [customerId] - * @return com.epmet.dto.result.IcHouseQrcodeConfigDTO - */ + * @return com.epmet.dto.result.IcHouseQrcodeConfigDTO + * @describe: 通过客户id查询 + * @author wangtong + * @date 2022/6/7 18:36 + * @params [customerId] + */ CustomerOrgParameterEntity selectByCustomerId(@Param("customerId") String customerId, @Param("preKey") String preKey); /** - * @describe: 工作端-通过房屋编码获取房屋信息 - * @author wangtong - * @date 2022/6/9 15:23 - * @params [houseCode] - * @return com.epmet.dto.result.HouseInfoResultDTO - */ + * @return com.epmet.dto.result.HouseInfoResultDTO + * @describe: 工作端-通过房屋编码获取房屋信息 + * @author wangtong + * @date 2022/6/9 15:23 + * @params [houseCode] + */ HouseInfoResultDTO selectHomeInfoByHouseCode(@Param("houseCode") String houseCode); /** - * @describe: 根据筛选获取需要下载的一户一码信息 - * @author wangtong - * @date 2022/6/13 16:34 - * @params [formDTO] - * @return java.util.List - */ + * @return java.util.List + * @describe: 根据筛选获取需要下载的一户一码信息 + * @author wangtong + * @date 2022/6/13 16:34 + * @params [formDTO] + */ List searchHouseZipList(IcHouseListFormDTO formDTO); + + /** + * desc:更新房屋的屋内居民数 + * + * @param paramList houseId:'123',resiNumber:20 + * @return + */ + Integer updateIcHouseResiNumber(@Param("paramList") List> paramList); + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java index 10e0c9234c..5dd3b221f4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java @@ -11,6 +11,7 @@ import com.epmet.dto.result.HousesNameResultDTO; import com.epmet.entity.IcHouseEntity; import java.util.List; +import java.util.Map; /** * 房屋信息 @@ -100,4 +101,11 @@ public interface IcHouseService extends BaseService { * @return */ String getFullName(String neighborHoodId, String buildingId, String unitId, String doorName); + + /** + * desc:更新房屋的屋内居民数 + * @param paramList houseId:'123',resiNumber:20 + * @return + */ + Integer updateIcHouseResiNumber(List> paramList); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java index 61792e822b..6ab786976b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java @@ -43,6 +43,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -274,4 +275,29 @@ public class IcHouseServiceImpl extends BaseServiceImpl u.getUnitNum().concat("单元")).orElse(""); return new StringBuilder().append(neighborhoodName).append(buildingName).append(unitName).append(doorName).toString(); } + + @Override + public Integer updateIcHouseResiNumber(List> paramList) { + if (CollectionUtils.isEmpty(paramList)){ + log.warn("updateIcHouseResiNumber param is empty"); + return 0; + } + IcHouseEntity entity = new IcHouseEntity(); + + AtomicInteger effects = new AtomicInteger(0); + paramList.forEach(o->{ + Object houseId = o.get("houseId"); + Object resiNumber = o.get("resiNumber"); + if (houseId == null || resiNumber == null){ + return; + } + entity.setId(houseId.toString()); + + entity.setResiNumber(resiNumber.toString()); + int i = baseDao.updateById(entity); + effects.incrementAndGet(); + }); + return effects.get(); + // return baseDao.updateIcHouseResiNumber(paramList); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index c55f985fc5..c750f98353 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -521,5 +521,10 @@ #{id} ) + + + UPDATE ic_house SET RESI_NUMBER = #{item.resiNumber} where ID = #{item.houseId} and DEL_FLAG = '0' + + diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java index 8b201da55d..3c7025f28c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java @@ -376,5 +376,5 @@ public interface IcResiUserDao extends BaseDao { * @param customerId * @return */ - List getResiUserCountGroupHomeId(@Param("customerId") String customerId); + List> getResiUserCountGroupHomeId(@Param("customerId") String customerId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java index 4ea3eb92b5..e74c011246 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java @@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON; import com.epmet.commons.rocketmq.constants.MQUserPropertys; import com.epmet.commons.rocketmq.messages.IcResiUserAddMQMsg; import com.epmet.commons.tools.distributedlock.DistributedLock; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.RedisKeys; @@ -69,7 +71,7 @@ public class ICWarnStatsEventListener implements MessageListenerConcurrently { log.info("obj is {}", JSON.toJSONString(obj)); try { if (!resiWarnStats(obj)||!updateIcNatResiFlag(tags, obj)||!updateIcHouseResiNumber(obj)){ - + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"消费失败,等待重新消费"); } } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index decd30dfc6..0186481855 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -19,12 +19,12 @@ package com.epmet.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.bean.ResiExportBaseInfoData; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.*; -import com.epmet.commons.tools.distributedlock.DistributedLock; import com.epmet.commons.tools.dto.form.DictListFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.DictListResultDTO; @@ -60,7 +60,10 @@ import com.epmet.dto.result.demand.IcResiDemandDictDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.*; import com.epmet.excel.support.ExportResiUserItemDTO; -import com.epmet.feign.*; +import com.epmet.feign.EpmetAdminOpenFeignClient; +import com.epmet.feign.EpmetHeartOpenFeignClient; +import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.feign.OperCustomizeOpenFeignClient; import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.service.*; import com.github.pagehelper.Page; @@ -109,8 +112,6 @@ public class IcResiUserServiceImpl extends BaseServiceImpl getWrapper(Map params) { String id = (String) params.get(FieldConstant.ID_HUMP); @@ -2583,37 +2580,27 @@ public class IcResiUserServiceImpl extends BaseServiceImpl o = (Future) redisUtils.get(threadKey); - if (o != null){ - //如果是自己的 则取消就行了 - //o.cancel(true); - log.info("updateIcHouseResiNumber 任务取消"); - } - }*/ Future submit = executorService.submit(() -> { int pageNo = 1; int pageSize = NumConstant.TEN_THOUSAND; - Page houseReisCountListPage = null; + Page> houseReisCountListPage = null; String key = RedisKeys.getUpdateHouseResiNumer(customerId); redisUtils.delete(key); do { houseReisCountListPage = PageHelper.startPage(pageNo++, pageSize, false) .doSelectPage(() -> baseDao.getResiUserCountGroupHomeId(customerId)); System.out.println(houseReisCountListPage.getResult().size()); - List result = houseReisCountListPage.getResult(); - for (HouseIcResiUserCountResultDTO o: result){ - redisUtils.leftPush(key,o); - } + List> result = houseReisCountListPage.getResult(); + Result effectRowResult = govOrgOpenFeignClient.updateIcHouseResiNumber(result); + if (effectRowResult == null || !effectRowResult.success()){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"调用org服务失败"); + } + log.debug("updateIcHouseResiNumber org effectRowResult:{}",JSON.toJSONString(effectRowResult)); } while (houseReisCountListPage.getResult().size() == pageSize); log.info("updateIcHouseResiNumber 执行完毕"); - //distributedLock.unLock(lock); }); - redisUtils.set(threadKey,submit); } /** diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index 84fc723e61..032d74f02b 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -1132,7 +1132,7 @@ AND customer_id = #{customerId} AND DEL_FLAG = '0' - + select HOME_ID houseId,count(1) resiNumber from ic_resi_user WHERE CUSTOMER_ID = #{customerId} and DEL_FLAG = '0' AND `status` = '0' group by HOME_ID