diff --git a/epmet-admin/epmet-admin-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-admin/epmet-admin-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-admin/epmet-admin-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-admin/epmet-admin-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-auth/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-auth/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-auth/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-auth/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java index 1281b269f4..9ba8e7a96a 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java @@ -64,6 +64,8 @@ public interface NumConstant { long THREE_L = 3L; long FOUR_L = 4L; long MINUS_ONE_L = -1L; + long TEN_L = 10L; + long SIX_HUNDRED_L = 600L; String ZERO_STR = "0"; String ONE_STR = "1"; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/DistributedLock.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/DistributedLock.java index 60e17175f1..6cf45797d0 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/DistributedLock.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/DistributedLock.java @@ -18,7 +18,7 @@ import java.util.concurrent.TimeUnit; @Component public class DistributedLock { - @Autowired + @Autowired(required = false) private RedissonClient redissonClient; /** diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/LockConstants.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/LockConstants.java index 3174a43a8e..a823816952 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/LockConstants.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/distributedlock/LockConstants.java @@ -9,4 +9,6 @@ public interface LockConstants { String TEST_LOCK_NAME = "testLock"; String STATS_LOCK_NAME = "stats"; + + String SCREEN_DAILY = "screenDaily"; } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java index 5bfb7b698f..5a03583011 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java @@ -2,11 +2,14 @@ package com.epmet.commons.tools.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.feign.fallback.CommonAggFeignClientFallBackFactory; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.Result; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; /** @@ -24,4 +27,22 @@ public interface CommonAggFeignClient { */ @PostMapping("/data/aggregator/epmetuser/getStaffInfo/{staffId}") Result getStaffInfo(@PathVariable("staffId") String staffId); + + /** + * @Description 查询组织信息 + * @param agencyId + * @author zxc + * @date 2021/11/5 2:54 下午 + */ + @PostMapping("/data/aggregator/org/agency") + Result getAgencyInfo(@RequestParam("agencyId")String agencyId); + + /** + * @Description 查询网格信息 + * @param gridId + * @author zxc + * @date 2021/11/5 2:54 下午 + */ + @PostMapping("/data/aggregator/org/grid") + Result getGridInfo(@RequestParam("gridId")String gridId); } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java index 2495d6b588..02f209f4f2 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java @@ -2,7 +2,9 @@ package com.epmet.commons.tools.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.feign.CommonAggFeignClient; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import org.springframework.stereotype.Component; @@ -20,4 +22,14 @@ public class CommonAggFeignClientFallback implements CommonAggFeignClient { public Result getStaffInfo(String staffId) { return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "getStaffInfo", staffId); } + + @Override + public Result getAgencyInfo(String agencyId) { + return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "getAgencyInfo", agencyId); + } + + @Override + public Result getGridInfo(String gridId) { + return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "getGridInfo", gridId); + } } 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 388927ce5a..2ac7d19f96 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 @@ -12,6 +12,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.utils.DateUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; /** * @author Mark sunlightcs@gmail.com @@ -559,4 +560,13 @@ public class RedisKeys { public static String blockedMqMsgKey(String blockedMsgLabel) { return rootPrefix.concat("message:mq:blocked:").concat(blockedMsgLabel); } + + /** + * desc:获取执行完毕的 业务 参数结果key + * @param bizMethod + * @return + */ + public static String getBackDoorbizExcuteResult(String bizMethod) { + return rootPrefix.concat("backdoor:").concat(bizMethod); + } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java new file mode 100644 index 0000000000..9cf82c29d6 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java @@ -0,0 +1,93 @@ +package com.epmet.commons.tools.redis.common; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.feign.CommonAggFeignClient; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.redis.common.bean.*; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import javax.annotation.PostConstruct; +import java.util.Map; + +/** + * @Author zxc + * @DateTime 2021/11/5 2:29 下午 + * @DESC + */ +@Slf4j +@Component +public class CustomerOrgRedis { + + @Autowired + private RedisUtils redisUtils; + + @Autowired + private CommonAggFeignClient commonAggFeignClient; + + private static CustomerOrgRedis customerOrgRedis; + private static final String ROLE_MAP_KEY = "roleMap"; + + @PostConstruct + public void init() { + customerOrgRedis = this; + customerOrgRedis.redisUtils = this.redisUtils; + customerOrgRedis.commonAggFeignClient = this.commonAggFeignClient; + } + + /** + * @Description 获取网格信息 + * @param gridId + * @author zxc + * @date 2021/11/5 3:12 下午 + */ + public static GridInfoCache getGridInfo(String gridId){ + String key = RedisKeys.getGridInfoKey(gridId); + Map grid = customerOrgRedis.redisUtils.hGetAll(key); + if (!CollectionUtils.isEmpty(grid)) { + return ConvertUtils.mapToEntity(grid, GridInfoCache.class); + } + Result gridInfoResult = customerOrgRedis.commonAggFeignClient.getGridInfo(gridId); + if (!gridInfoResult.success()){ + throw new RenException("查询网格信息失败..."); + } + if (null == gridInfoResult.getData()){ + throw new RenException("没有此网格信息..."); + } + Map map = BeanUtil.beanToMap(gridInfoResult.getData(), false, true); + customerOrgRedis.redisUtils.hMSet(key, map); + return gridInfoResult.getData(); + } + + /** + * @Description 获取组织信息 + * @param agencyId + * @author zxc + * @date 2021/11/5 3:12 下午 + */ + public static AgencyInfoCache getAgencyInfo(String agencyId){ + String key = RedisKeys.getAgencyByIdKey(agencyId); + Map agency = customerOrgRedis.redisUtils.hGetAll(key); + if (!CollectionUtils.isEmpty(agency)) { + return ConvertUtils.mapToEntity(agency, AgencyInfoCache.class); + } + Result agencyInfoResult = customerOrgRedis.commonAggFeignClient.getAgencyInfo(agencyId); + if (!agencyInfoResult.success()){ + throw new RenException("查询组织信息失败..."); + } + if (null == agencyInfoResult.getData()){ + throw new RenException("没有此组织信息..."); + } + Map map = BeanUtil.beanToMap(agencyInfoResult.getData(), false, true); + customerOrgRedis.redisUtils.hMSet(key, map); + return agencyInfoResult.getData(); + } + +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/AgencyInfoCache.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/AgencyInfoCache.java new file mode 100644 index 0000000000..684440db65 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/AgencyInfoCache.java @@ -0,0 +1,142 @@ +package com.epmet.commons.tools.redis.common.bean; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author zxc + * @DateTime 2021/11/5 2:45 下午 + * @DESC + */ +@Data +public class AgencyInfoCache implements Serializable { + + private static final long serialVersionUID = -1332373159954084159L; + + /** + * ID + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 上级组织机构ID + */ + private String pid; + + /** + * 所有上级组织机构ID(以英文:隔开) + */ + private String pids; + + /** + * 所有上级名称,以-连接 + */ + private String allParentName; + + /** + * 组织名称 + */ + private String organizationName; + + /** + * 机关级别(社区级:community, + 乡(镇、街道)级:street, + 区县级: district, + 市级: city + 省级:province) 机关级别(社区级:community,乡(镇、街道)级:street,区县级: district,市级: city省级:province) + */ + private String level; + + /** + * 地区编码 + */ + private String areaCode; + + /** + * 删除标识 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 总人数 + */ + private Integer totalUser; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区县 + */ + private String district; + + /** + * 当前组织的上级行政地区编码add0204;举例平阴县对应的是济南市3701 + */ + private String parentAreaCode; + + /** + * 街道 + */ + private String street; + + /** + * 社区 + */ + private String community; + + /** + * 坐标区域 + */ + private String coordinates; + + + /** + * 中心位置经度 + */ + private String longitude; + + /** + * 中心位置纬度 + */ + private String latitude; +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/GridInfoCache.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/GridInfoCache.java new file mode 100644 index 0000000000..cf90afee5b --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/GridInfoCache.java @@ -0,0 +1,116 @@ +package com.epmet.commons.tools.redis.common.bean; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author zxc + * @DateTime 2021/11/5 2:24 下午 + * @DESC + */ +@Data +public class GridInfoCache implements Serializable { + + private static final long serialVersionUID = -6159429894486235267L; + + + /** + * ID 唯一标识 + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 网格名称 + */ + private String gridName; + + /** 组织-网格 */ + private String gridNamePath; + + /** + * 中心位置经度 + */ + private String longitude; + + /** + * 中心位置纬度 + */ + private String latitude; + + /** + * 所属地区码(所属组织地区码) + */ + private String areaCode; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 管辖区域 + */ + private String manageDistrict; + + /** + * 当前网格总人数 + */ + private Integer totalUser; + + /** + * 所属组织机构ID(customer_organization.id) + */ + private String pid; + + /** + * 所有上级组织ID + */ + private String pids; + + /** + * 所属组织机构名 + */ + private String agencyName; + + /** + * 所有上级组织名 + */ + private String allParentName; + + /** + * 坐标区域 + */ + private String coordinates; +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java index 773291dfcc..6dae6eb249 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java @@ -19,8 +19,8 @@ import org.springframework.util.CollectionUtils; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.OutputStream; import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; import java.util.Date; @@ -121,5 +121,14 @@ public class ExcelUtils { out.flush(); out.close(); } + public static OutputStream getOutputStream(String fileName, HttpServletResponse response) throws Exception { + fileName = URLEncoder.encode(fileName, "UTF-8"); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf8"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + response.addHeader("Access-Control-Expose-Headers", "Content-disposition"); + + return response.getOutputStream(); + } } diff --git a/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java b/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java index 5a86194ea7..a1630c821e 100644 --- a/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java +++ b/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java @@ -9,9 +9,9 @@ package com.epmet; import com.epmet.commons.tools.aspect.ServletExceptionHandler; +import com.epmet.commons.tools.config.RedissonConfig; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; @@ -23,11 +23,11 @@ import org.springframework.context.annotation.FilterType; * @author Mark sunlightcs@gmail.com * @since 1.0.0 */ -@SpringBootApplication() +@SpringBootApplication @EnableDiscoveryClient @EnableFeignClients //@ServletComponentScan -@ComponentScan(basePackages = {"com.epmet.*"}, excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {ServletExceptionHandler.class})) +@ComponentScan(basePackages = {"com.epmet.*"}, excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {RedissonConfig.class, ServletExceptionHandler.class})) public class GatewayApplication { public static void main(String[] args) { diff --git a/epmet-gateway/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-gateway/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-gateway/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-gateway/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java index 10620c89d2..fcb6d13250 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java @@ -59,6 +59,11 @@ public class CustomerGridDTO implements Serializable { */ private String latitude; + /** + * 坐标区域 + */ + private String coordinates; + /** * 所属地区码(所属组织地区码) */ @@ -123,4 +128,9 @@ public class CustomerGridDTO implements Serializable { * 所有上级组织名 */ private String allParentName; + + /** + * 组织-网格 + */ + private String gridNamePath; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/config/NacosServiceListListenerRegisterer.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/config/NacosServiceListListenerRegisterer.java index a97d477908..c776cfbe47 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java index 17f939b2c6..14500cc2ab 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java @@ -9,18 +9,19 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; +import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.form.*; import com.epmet.dataaggre.dto.govorg.result.*; +import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; +import com.epmet.dataaggre.entity.govorg.CustomerGridEntity; import com.epmet.dataaggre.enums.GridMemberDataAnalysisEnums; import com.epmet.dataaggre.service.AggreGridService; import com.epmet.dataaggre.service.govorg.GovOrgService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; -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.*; import java.util.ArrayList; import java.util.List; @@ -178,4 +179,26 @@ public class GovOrgController { return new Result>().ok(govOrgService.getAgencyTree(tokenDto, formDTO)); } + /** + * @Description 查询组织信息 + * @param agencyId + * @author zxc + * @date 2021/11/5 2:54 下午 + */ + @PostMapping("agency") + public Result getAgencyInfo(@RequestParam("agencyId")String agencyId){ + return new Result().ok(govOrgService.getAgencyInfo(agencyId)); + } + + /** + * @Description 查询网格信息 + * @param gridId + * @author zxc + * @date 2021/11/5 2:54 下午 + */ + @PostMapping("grid") + public Result getGridInfo(@RequestParam("gridId")String gridId){ + return new Result().ok(govOrgService.getGridInfo(gridId)); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java index 56d07daafb..4ee22247f2 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java @@ -76,4 +76,12 @@ public interface CustomerGridDao extends BaseDao { **/ List getGridListByAgencyId(@Param("agencyId") String agencyId); + /** + * @Description 查询网格信息 + * @param gridId + * @author zxc + * @date 2021/11/5 3:39 下午 + */ + CustomerGridDTO getGridInfo(@Param("gridId") String gridId); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index b175478e6e..4f1deda6ca 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -1231,35 +1231,28 @@ public class DataStatsServiceImpl implements DataStatsService { } //1.查询当前组织的直属下级组织信息【机关维度】 - List subAgencyList = dataStatsDao.getSubAgencyList(formDTO.getAgencyId()); + List subAgencyList = indexService.getSubAgencyList(formDTO.getAgencyId(), null); if (subAgencyList.size() < NumConstant.ONE) { return resultList; } - List agencyIds = subAgencyList.stream().map(DimAgencyEntity::getId).collect(Collectors.toList()); + List agencyIds = subAgencyList.stream().map(ScreenCustomerAgencyDTO::getAgencyId).collect(Collectors.toList()); ScreenCustomerAgencyDTO agencyDTO = indexService.getAgencyInfo(formDTO.getAgencyId()); if (CollectionUtils.isNotEmpty(customerRelation.haveSubCustomer(agencyDTO.getCustomerId()))) { - List subAgencies = indexService.getSubAgencyList(formDTO.getAgencyId(), agencyDTO.getAreaCode()); - agencyIds = subAgencies.stream().map(ScreenCustomerAgencyDTO::getAgencyId).collect(Collectors.toList()); - subAgencyList = subAgencies.stream().map(item -> { - DimAgencyEntity entity = new DimAgencyEntity(); - entity.setId(item.getAgencyId()); - entity.setAgencyName(item.getAgencyName()); - entity.setLevel(item.getLevel()); - return entity; - }).collect(Collectors.toList()); + subAgencyList = indexService.getSubAgencyList(formDTO.getAgencyId(), agencyDTO.getAreaCode()); + agencyIds = subAgencyList.stream().map(ScreenCustomerAgencyDTO::getAgencyId).collect(Collectors.toList()); } //2.按日期查询所有下级组织的事件治理指数 List list = dataStatsDao.getAgencyGovern(agencyIds, formDTO.getDateId()); //3.封装数据 - for (DimAgencyEntity sub : subAgencyList) { + for (ScreenCustomerAgencyDTO sub : subAgencyList) { AgencyGovrnResultDTO dto = new AgencyGovrnResultDTO(); - dto.setAgencyId(sub.getId()); + dto.setAgencyId(sub.getAgencyId()); dto.setAgencyName(sub.getAgencyName()); dto.setLevel(sub.getLevel()); for (AgencyGovrnResultDTO re : list) { - if (sub.getId().equals(re.getAgencyId())) { + if (sub.getAgencyId().equals(re.getAgencyId())) { dto.setProblemResolvedCount(re.getProblemResolvedCount()); dto.setGroupSelfGovernRatio(re.getGroupSelfGovernRatio()); dto.setGridSelfGovernRatio(re.getGridSelfGovernRatio()); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index 41b97b57ac..77c8c33d0f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -10,6 +10,8 @@ import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.form.SubOrgFormDTO; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; +import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; +import com.epmet.dataaggre.entity.govorg.CustomerGridEntity; import java.util.List; @@ -154,4 +156,20 @@ public interface GovOrgService { * @Date 2021/9/23 10:14 */ List getStaffOrgList(String staffId); + + /** + * @Description 查询组织信息 + * @param agencyId + * @author zxc + * @date 2021/11/5 2:54 下午 + */ + CustomerAgencyEntity getAgencyInfo(String agencyId); + + /** + * @Description 查询网格信息 + * @param gridId + * @author zxc + * @date 2021/11/5 2:57 下午 + */ + CustomerGridDTO getGridInfo(String gridId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index d4e265cdec..db39899f4f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -20,6 +20,7 @@ import com.epmet.dataaggre.dto.govorg.form.SubOrgFormDTO; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; +import com.epmet.dataaggre.entity.govorg.CustomerGridEntity; import com.epmet.dataaggre.service.commonservice.AreaCodeService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.govorg.GovOrgService; @@ -532,4 +533,26 @@ public class GovOrgServiceImpl implements GovOrgService { return customerAgencyDao.getOrgList(staffId); } + /** + * @Description 查询组织信息 + * @param agencyId + * @author zxc + * @date 2021/11/5 2:54 下午 + */ + @Override + public CustomerAgencyEntity getAgencyInfo(String agencyId) { + return customerAgencyDao.selectById(agencyId); + } + + /** + * @Description 查询网格信息 + * @param gridId + * @author zxc + * @date 2021/11/5 2:57 下午 + */ + @Override + public CustomerGridDTO getGridInfo(String gridId) { + return customerGridDao.getGridInfo(gridId); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml index 90029209ad..228e1c3fc6 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml @@ -769,32 +769,39 @@ SELECT staff_id staffId, - IFNULL(SUM(patrol_total), 0) reportProjectCount, + IFNULL(SUM(report_project_count), 0) reportProjectCount, IFNULL(SUM(total_time), 0) timeNum FROM stats_staff_patrol_record_daily diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml index 0fa266afc8..fde243eafa 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml @@ -163,4 +163,16 @@ AND cg.pid = #{agencyId} + + + diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/CategoryProjectListFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/CategoryProjectListFormDTO.java new file mode 100644 index 0000000000..3da140aa04 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/CategoryProjectListFormDTO.java @@ -0,0 +1,49 @@ +package com.epmet.project.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/11/4 3:23 下午 + * @DESC + */ +@Data +public class CategoryProjectListFormDTO extends ProjectCategoryFormDTO implements Serializable { + + private static final long serialVersionUID = -5448734274886241594L; + + public interface CategoryProjectListForm{} + + + @NotNull(message = "pageSize不能为空",groups = CategoryProjectListForm.class) + private Integer pageSize; + + @NotNull(message = "pageNo不能为空",groups = CategoryProjectListForm.class) + private Integer pageNo; + + /** + * 项目状态:closed:已结案,all:全部 + */ + @NotNull(message = "status不能为空",groups = {CategoryProjectListForm.class, CategoryProjectExportForm.class}) + private String status; + + @NotNull(message = "categoryCode不能为空",groups = {CategoryProjectListForm.class, CategoryProjectExportForm.class}) + private String categoryCode; + + @NotNull(message = "categoryName不能为空",groups = CategoryProjectExportForm.class) + private String categoryName; + private String parentCategoryName; + + /** + * 组织ID + */ + private String orgId; + + /** + * 是否分页,默认true,false的时候 给导出用 + */ + private Boolean isPage = true; +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java new file mode 100644 index 0000000000..c7a585ec6c --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/ProjectCategoryFormDTO.java @@ -0,0 +1,44 @@ +package com.epmet.project.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/11/4 3:18 下午 + * @DESC + */ +@Data +public class ProjectCategoryFormDTO implements Serializable { + + private static final long serialVersionUID = 5047143743629810527L; + + public interface ProjectCategoryForm{} + public interface CategoryProjectExportForm {} + + /** + * 组织ID + */ + private String orgId; + + /** + * 组织类型 组织:agency,网格:grid + */ + private String orgType; + + @NotBlank(message = "结束时间不能为空",groups = {ProjectCategoryForm.class,CategoryProjectExportForm.class}) + private String endTime; + + /** + * 开始时间 + */ + private String startTime; + + /** + * 组织名称 + */ + @NotBlank(message = "组织名称不能为空",groups = CategoryProjectExportForm.class) + private String orgName; +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryProjectListResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryProjectListResultDTO.java new file mode 100644 index 0000000000..ec8694fd1b --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryProjectListResultDTO.java @@ -0,0 +1,86 @@ +package com.epmet.project.dto.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/11/4 3:31 下午 + * @DESC + */ +@Data +public class CategoryProjectListResultDTO implements Serializable { + + private static final long serialVersionUID = 8820354423099062062L; + + /** + * 分类 + */ + private String category; + + /** + * 项目状态:待处理 pending,结案closed + */ + private String projectStatus; + + /** + * 项目状态:待处理 pending,结案closed + */ + private String projectStatusDesc; + + /** + * 项目标题 + */ + private String projectTitle; + + /** + * 网格 + */ + private String gridName; + + /** + * 项目创建时间 + */ + private String createTime; + + /** + * 项目ID + */ + private String projectId; + + /** + * 上报人 + */ + private String linkName; + + /** + * 上报人电话 + */ + private String linkMobile; + + /** + * 事件地址 + */ + private String projectAddress; + + @JsonIgnore + private String orgId; + + @JsonIgnore + private String orgType; + + public CategoryProjectListResultDTO() { + this.category = ""; + this.projectStatus = ""; + this.projectStatusDesc = ""; + this.projectTitle = ""; + this.gridName = ""; + this.createTime = ""; + } + + public String getProjectStatusDesc() { + return "closed".equals(projectStatus)?"已结案":"处理中"; + } +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/PageCategoryProjectListResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/PageCategoryProjectListResultDTO.java new file mode 100644 index 0000000000..c17f00bf77 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/PageCategoryProjectListResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.project.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2021/11/5 1:51 下午 + * @DESC + */ +@Data +public class PageCategoryProjectListResultDTO implements Serializable { + + private static final long serialVersionUID = 8822993169364931502L; + + private Integer total; + + private List list; + + public PageCategoryProjectListResultDTO() { + this.total = NumConstant.ZERO; + this.list = new ArrayList<>(); + } +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryResultDTO.java new file mode 100644 index 0000000000..d51825c27b --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryResultDTO.java @@ -0,0 +1,80 @@ +package com.epmet.project.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2021/11/4 3:13 下午 + * @DESC + */ +@Data +public class ProjectCategoryResultDTO implements Serializable { + + private static final long serialVersionUID = -2662970383306349424L; + + /** + * 分类CODE + */ + private String categoryCode; + + /** + * 分类code父级 + */ + private String parentCategoryCode; + + /** + * 分类名字 + */ + private String categoryName; + + /** + * 分类名字父级 + */ + private String parentCategoryName; + + /** + * 项目总数 + */ + private Integer projectTotal; + + /** + * 结案项目数 + */ + private Integer closedProjectTotal; + + /** + * 所有项目总数 + */ + private Integer allProjectTotal; + + /** + * 总数占比 + */ + private String totalRatio; + + /** + * 结案率 + */ + private String closedRatio; + + private List children; + @JsonIgnore + private int index; + + public ProjectCategoryResultDTO() { + this.categoryCode = ""; + this.categoryName = ""; + this.projectTotal = NumConstant.ZERO; + this.closedProjectTotal = NumConstant.ZERO; + this.totalRatio = "0.00%"; + this.closedRatio = "0.00%"; + this.children = new ArrayList<>(); + this.allProjectTotal = NumConstant.ZERO; + } +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategorySonResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategorySonResultDTO.java new file mode 100644 index 0000000000..22cbbbd0bb --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategorySonResultDTO.java @@ -0,0 +1,56 @@ +package com.epmet.project.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/11/4 3:13 下午 + * @DESC + */ +@Data +public class ProjectCategorySonResultDTO implements Serializable { + + private static final long serialVersionUID = -2662970383306349424L; + + /** + * 分类CODE + */ + private String categoryCode; + + /** + * 分类名字 + */ + private String categoryName; + + /** + * 项目总数 + */ + private Integer projectTotal; + + /** + * 结案项目数 + */ + private Integer closedProjectTotal; + + /** + * 总数占比 + */ + private String totalRatio; + + /** + * 结案率 + */ + private String closedRatio; + + public ProjectCategorySonResultDTO() { + this.categoryCode = ""; + this.categoryName = ""; + this.projectTotal = NumConstant.ZERO; + this.closedProjectTotal = NumConstant.ZERO; + this.totalRatio = ""; + this.closedRatio = ""; + } +} diff --git a/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml index fa6f9d7f73..c07cfe618a 100644 --- a/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml +++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml @@ -9,10 +9,10 @@ services: volumes: - "/opt/epmet-cloud-logs/prod:/logs" environment: - RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./data-report.jar" + RUN_INSTRUCT: "java -Xms256m -Xmx1024m -jar ./data-report.jar" restart: "unless-stopped" deploy: resources: limits: cpus: '0.1' - memory: 600M + memory: 1600M diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml index 43c7bffcae..25a8220b54 100644 --- a/epmet-module/data-report/data-report-server/pom.xml +++ b/epmet-module/data-report/data-report-server/pom.xml @@ -100,6 +100,12 @@ 2.0.0 compile + + com.alibaba + easyexcel + 3.0.3 + compile + @@ -116,6 +122,16 @@ true + + org.apache.maven.plugins + maven-resources-plugin + + + xls + xlsx + + + ${project.basedir}/src/main/java diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/config/NacosServiceListListenerRegisterer.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/config/NacosServiceListListenerRegisterer.java index 37ad4c96f7..869279e230 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java index 94cd036277..98cda05a2b 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java @@ -1,5 +1,16 @@ package com.epmet.datareport.controller.screen; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectOrgDailyService; @@ -12,13 +23,26 @@ import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDetailFormDTO; import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDistributionFormDTO; import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDistributionResultDTO; +import com.epmet.project.dto.form.CategoryProjectListFormDTO; import com.epmet.project.dto.form.CategoryTopAppealFormDTO; +import com.epmet.project.dto.form.ProjectCategoryFormDTO; import com.epmet.project.dto.result.CategoryTopAppealResultDTO; +import com.epmet.project.dto.result.PageCategoryProjectListResultDTO; +import com.epmet.project.dto.result.ProjectCategoryResultDTO; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.Workbook; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 项目 @@ -155,4 +179,133 @@ public class ScreenProjectController { return new Result>().ok(screenProjectService.categoryTopAppeal(formDTO)); } + + /** + * @Description 【项目分类】查询项目分类 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/11/4 3:38 下午 + */ + @PostMapping("selectprojectcategory") + public Result> selectProjectCategory(@RequestBody ProjectCategoryFormDTO formDTO, @LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.ProjectCategoryForm.class); + return new Result>().ok(screenProjectService.selectProjectCategory(formDTO,tokenDto)); + } + /** + * @Description 【项目分类】查询项目分类 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/11/4 3:38 下午 + */ + @PostMapping("selectprojectcategory/export") + public void selectProjectCategoryExport(@RequestBody ProjectCategoryFormDTO formDTO, @LoginUser TokenDto tokenDto, HttpServletResponse response) throws Exception { + //tokenDto.setUserId("36bc0fb38565ecdebf8ab9b476b44548"); + //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); + ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.CategoryProjectExportForm.class); + List data = screenProjectService.selectProjectCategory(formDTO, tokenDto); + String templatePath = "excel/project_category_temp.xlsx"; + + List resultDTOList = new ArrayList<>(); + data.forEach(e->{ + resultDTOList.add(e); + e.setIndex(1); + resultDTOList.addAll(ConvertUtils.sourceToTarget(e.getChildren(),ProjectCategoryResultDTO.class)); + }); + Map mapData = new HashMap<>(); + mapData.put("list",resultDTOList); + mapData.put("orgName", formDTO.getOrgName()); + mapData.put("exportDate",getExportDateStr(formDTO.getStartTime(),formDTO.getEndTime())); + Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath), mapData); + response.setHeader("content-Type", "application/vnd.ms-excel"); + response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("项目分类统计.xls", "UTF-8")); + workbook.write(response.getOutputStream()); + } + + /** + * @Description 【项目分类】查询分类下的项目 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/11/4 3:39 下午 + */ + @PostMapping("selectcategoryprojectlist") + public Result selectCategoryProjectList(@RequestBody CategoryProjectListFormDTO formDTO, @LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, CategoryProjectListFormDTO.CategoryProjectListForm.class); + return new Result().ok(screenProjectService.selectCategoryProjectList(formDTO,tokenDto)); + } + + /** + * @Description 【项目分类】查询项目分类 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/11/4 3:38 下午 + */ + @PostMapping("selectcategoryprojectlist/export") + public void selectProjectCategoryExport(@RequestBody CategoryProjectListFormDTO formDTO, @LoginUser TokenDto tokenDto, HttpServletResponse response) throws Exception { + ExcelWriter excelWriter = null; + try { + //tokenDto.setUserId("36bc0fb38565ecdebf8ab9b476b44548"); + //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); + formDTO.setPageNo(NumConstant.ONE); + formDTO.setPageSize(NumConstant.ONE_THOUSAND); + formDTO.setIsPage(false); + ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.CategoryProjectExportForm.class); + + Map mapData = new HashMap<>(); + mapData.put("orgName", formDTO.getOrgName()); + mapData.put("exportDate", getExportDateStr(formDTO.getStartTime(), formDTO.getEndTime())); + mapData.put("categoryName", formDTO.getCategoryName()); + if (StringUtils.isNotBlank(formDTO.getParentCategoryName())) { + mapData.put("categoryName", formDTO.getParentCategoryName().concat(StrConstant.HYPHEN).concat(formDTO.getCategoryName())); + } + + String templatePath = "excel/project_temp_easy_excel.xlsx"; + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(templatePath); + + + //String template = this.getClass().getResource(templatePath).getPath(); + String fileName = "项目统计.xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStream(fileName, response)).withTemplate(inputStream).build(); + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + excelWriter.fill(mapData, writeSheet); + + PageCategoryProjectListResultDTO data = null; + do { + data = screenProjectService.selectCategoryProjectList(formDTO, tokenDto); + if (data.getList().isEmpty()) { + break; + } + formDTO.setPageNo(formDTO.getPageNo() + 1); + excelWriter.fill(data.getList(), writeSheet); + data.getList().clear(); + } while (data.getList().size() == formDTO.getPageSize()); + +// String templatePath = "excel/project_temp.xlsx"; +// Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath), mapData); +// response.setHeader("content-Type", "application/vnd.ms-excel"); +// response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("项目统计.xls", "UTF-8")); +// workbook.write(response.getOutputStream()); + + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + + @NotNull + private String getExportDateStr(String startTime,String endTime) { + StringBuilder dateBuilder = new StringBuilder(); + if (StringUtils.isNotBlank(startTime)) { + dateBuilder.append(startTime).append(StrConstant.HYPHEN); + } + if (StringUtils.isNotBlank(endTime)) { + dateBuilder.append(endTime); + } + return dateBuilder.toString(); + } + } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java index e3cf3d074d..93b6564f87 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java @@ -19,7 +19,9 @@ package com.epmet.datareport.dao.evaluationindex.screen; import com.epmet.dto.result.screen.CategoryAnalysisResultDTO; import com.epmet.project.CustomerProjectCategoryDTO; +import com.epmet.project.dto.form.ProjectCategoryFormDTO; import com.epmet.project.dto.result.CategoryTopAppealResultDTO; +import com.epmet.project.dto.result.ProjectCategoryResultDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -52,4 +54,33 @@ public interface ScreenProjectCategoryOrgDailyDao { * @date 2021/8/18 1:40 下午 */ List categoryTopAppeal(@Param("agencyId") String agencyId,@Param("customerId")String customerId,@Param("topCount")Integer topCount); + + /** + * @Description 组织查询分类 + * @param customerId + * @param time + * @param orgId + * @author zxc + * @date 2021/11/5 8:54 上午 + */ + List selectProjectCategoryByAgency(@Param("customerId")String customerId,@Param("time")String time,@Param("orgId")String orgId); + + /** + * @Description 网格查询分类 + * @param customerId + * @param time + * @param orgId + * @author zxc + * @date 2021/11/5 8:55 上午 + */ + List selectProjectCategoryByGrid(@Param("customerId")String customerId,@Param("time")String time,@Param("orgId")String orgId); + + /** + * @Description 查询客户下所有分类 + * @param customerId + * @author zxc + * @date 2021/11/4 5:45 下午 + */ + List selectCategoryByCustomerId(@Param("customerId")String customerId); + } \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java index 49797b9cb2..d20a3f1183 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectDataDao.java @@ -3,6 +3,7 @@ package com.epmet.datareport.dao.evaluationindex.screen; import com.epmet.dto.result.screen.ColorProjectTotalResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDetailResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDistributionResultDTO; +import com.epmet.project.dto.result.CategoryProjectListResultDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -45,4 +46,16 @@ public interface ScreenProjectDataDao { * @date 2021/6/1 3:48 下午 */ List selectColorProjectByAreaCode(@Param("areaCode") String areaCode,@Param("monthCount")Integer monthCount); + + /** + * @Description 查询分类下的项目列表 + * @param customerId + * @param orgId + * @author zxc + * @date 2021/11/5 1:40 下午 + */ + List selectCategoryProjectList(@Param("orgId") String orgId, + @Param("categoryCode")String categoryCode,@Param("status")String status, + @Param("startTime")String startTime,@Param("endTime")String endTime); + } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectOrgDailyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectOrgDailyDao.java index 2a26119d9c..aeb20bdb97 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectOrgDailyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectOrgDailyDao.java @@ -19,6 +19,7 @@ package com.epmet.datareport.dao.evaluationindex.screen; import com.epmet.dto.result.screen.EfficiencyAnalysisResultDTO; import com.epmet.dto.result.screen.ProjectQuantityResultDTO; +import com.epmet.project.dto.form.ProjectCategoryFormDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -45,4 +46,9 @@ public interface ScreenProjectOrgDailyDao { * @description 下级组织的效率(解决率)列表 **/ List queryEfficiencyAnalysis(@Param("customerId")String customerId,@Param("areaCode") String areaCode); + + Integer selectProjectTotalByAgency(@Param("customerId")String customerId,@Param("time")String time,@Param("orgId")String orgId); + + Integer selectProjectTotalByGrid(@Param("customerId")String customerId,@Param("time")String time,@Param("orgId")String orgId); + } \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java index e8d9110198..2f268cd35e 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java @@ -1,5 +1,6 @@ package com.epmet.datareport.service.evaluationindex.screen; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.screen.CategoryAnalysisFormDTO; import com.epmet.dto.form.screen.ColorProjectTotalFormDTO; @@ -10,8 +11,13 @@ import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDetailFormDTO; import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDistributionFormDTO; import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDistributionResultDTO; +import com.epmet.project.dto.form.CategoryProjectListFormDTO; import com.epmet.project.dto.form.CategoryTopAppealFormDTO; +import com.epmet.project.dto.form.ProjectCategoryFormDTO; +import com.epmet.project.dto.result.CategoryProjectListResultDTO; import com.epmet.project.dto.result.CategoryTopAppealResultDTO; +import com.epmet.project.dto.result.PageCategoryProjectListResultDTO; +import com.epmet.project.dto.result.ProjectCategoryResultDTO; import java.util.List; @@ -62,4 +68,24 @@ public interface ScreenProjectService { */ List categoryTopAppeal(CategoryTopAppealFormDTO formDTO); + + /** + * @Description 【项目分类】查询项目分类 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/11/4 3:38 下午 + */ + List selectProjectCategory(ProjectCategoryFormDTO formDTO, TokenDto tokenDto); + + /** + * @Description 【项目分类】查询分类下的项目 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/11/4 3:39 下午 + */ + PageCategoryProjectListResultDTO selectCategoryProjectList(CategoryProjectListFormDTO formDTO, TokenDto tokenDto); + + } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java index a23152697e..a40da16683 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java @@ -3,14 +3,19 @@ package com.epmet.datareport.service.evaluationindex.screen.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.DataSourceConstant; -import com.epmet.datareport.dao.evaluationindex.screen.ScreenEventDataDao; -import com.epmet.datareport.dao.evaluationindex.screen.ScreenEventImgDataDao; -import com.epmet.datareport.dao.evaluationindex.screen.ScreenProjectCategoryOrgDailyDao; -import com.epmet.datareport.dao.evaluationindex.screen.ScreenProjectDataDao; +import com.epmet.datareport.constant.FactConstant; +import com.epmet.datareport.dao.evaluationindex.screen.*; import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectService; import com.epmet.dto.UserDTO; import com.epmet.dto.form.CustomerAgencyUserRoleFormDTO; @@ -26,15 +31,21 @@ import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDetailResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDistributionResultDTO; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.project.CustomerProjectCategoryDTO; +import com.epmet.project.dto.form.CategoryProjectListFormDTO; import com.epmet.project.dto.form.CategoryTopAppealFormDTO; -import com.epmet.project.dto.result.CategoryTopAppealResultDTO; +import com.epmet.project.dto.form.ProjectCategoryFormDTO; +import com.epmet.project.dto.result.*; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -63,6 +74,9 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { @Autowired private EpmetUserOpenFeignClient userOpenFeignClient; + @Autowired + private ScreenProjectOrgDailyDao screenProjectOrgDailyDao; + /** * @Description 3、项目详情 * @param projectDetailFormDTO @@ -159,7 +173,7 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { List resultList = new ArrayList<>(); if (!CollectionUtils.isEmpty(resultDTOList)) { for (CategoryAnalysisResultDTO dto : resultDTOList) { - CustomerProjectCategoryDTO projectCategoryDTO = screenProjectCategoryOrgDailyDao.selectProjectCategory(dto.getCategoryCode(), dto.getCategoryOriginCustomerId()); + CustomerProjectCategoryDTO projectCategoryDTO = screenProjectCategoryOrgDailyDao.selectProjectCategory(dto.getCategoryCode(), customerId); if (null == projectCategoryDTO || StringUtils.isBlank(projectCategoryDTO.getCategoryName())) { log.warn(String.format("查询分类名称失败,当前客户:%s, categoryCode:%s", dto.getCategoryCode(), customerId)); continue; @@ -219,7 +233,7 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { return new ArrayList<>(); } for (CategoryTopAppealResultDTO r : result) { - CustomerProjectCategoryDTO projectCategoryDTO = screenProjectCategoryOrgDailyDao.selectProjectCategory(r.getCategoryId(), r.getCategoryOriginCustomerId()); + CustomerProjectCategoryDTO projectCategoryDTO = screenProjectCategoryOrgDailyDao.selectProjectCategory(r.getCategoryId(), customerId); if (null == projectCategoryDTO || StringUtils.isBlank(projectCategoryDTO.getCategoryName())) { log.warn(String.format("查询分类名称失败,当前客户:%s, categoryCode:%s", r.getCategoryId(), r.getCategoryOriginCustomerId())); continue; @@ -228,4 +242,167 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { } return result; } + + + /** + * @Description 【项目分类】查询项目分类 + * 二级分类总数占比改为 二级分类总数/一级分类总数 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/11/4 3:38 下午 + */ + @Override + public List selectProjectCategory(ProjectCategoryFormDTO formDTO, TokenDto tokenDto) { + if (StringUtils.isNotBlank(formDTO.getStartTime())){ + formDTO.setStartTime(DateUtils.getBeforeNDay(formDTO.getStartTime(),NumConstant.ONE)); + } + if (StringUtils.isBlank(formDTO.getOrgId())){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfo){ + throw new RenException("未查询到此工作人员的所属组织信息..."); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + formDTO.setOrgType(FactConstant.AGENCY); + } + String customerId = tokenDto.getCustomerId(); + String endTime = formDTO.getEndTime(); + String startTime = formDTO.getStartTime(); + String orgId = formDTO.getOrgId(); + // 查询客户下的所有分类 + List result = screenProjectCategoryOrgDailyDao.selectCategoryByCustomerId(tokenDto.getCustomerId()); + List endCategoryList = new ArrayList<>(); + if (formDTO.getOrgType().equals(FactConstant.GRID)){ + Integer endTotal = screenProjectOrgDailyDao.selectProjectTotalByGrid(customerId, endTime, orgId); + endTotal = null == endTotal ? NumConstant.ZERO : endTotal; + endCategoryList = screenProjectCategoryOrgDailyDao.selectProjectCategoryByGrid(customerId,endTime,orgId); + Integer total = endTotal; + if (StringUtils.isNotBlank(startTime)){ + Integer startTotal = screenProjectOrgDailyDao.selectProjectTotalByGrid(customerId, startTime, orgId); + startTotal = null == startTotal ? NumConstant.ZERO : startTotal; + total = endTotal - startTotal; + List startCategoryList = screenProjectCategoryOrgDailyDao.selectProjectCategoryByGrid(customerId,startTime,orgId); + endCategoryList.forEach(e -> startCategoryList.stream().filter(s -> e.getCategoryCode().equals(s.getCategoryCode())).forEach(s -> e.setProjectTotal(subtract(e.getProjectTotal(),s.getProjectTotal())))); + endCategoryList.forEach(e -> startCategoryList.stream().filter(s -> e.getCategoryCode().equals(s.getCategoryCode())).forEach(s -> e.setClosedProjectTotal(subtract(e.getClosedProjectTotal(),s.getClosedProjectTotal())))); + } + Integer finalTotal = total; + endCategoryList.forEach(e -> { + e.setTotalRatio(ratio(e.getProjectTotal(), finalTotal)); + e.setClosedRatio(ratio(e.getClosedProjectTotal(),e.getProjectTotal())); + e.setAllProjectTotal(finalTotal); + }); + }else { + Integer endTotal = screenProjectOrgDailyDao.selectProjectTotalByAgency(customerId, endTime, orgId); + endTotal = null == endTotal ? NumConstant.ZERO : endTotal; + endCategoryList = screenProjectCategoryOrgDailyDao.selectProjectCategoryByAgency(customerId,endTime,orgId); + Integer total = endTotal; + if (StringUtils.isNotBlank(startTime)){ + Integer startTotal = screenProjectOrgDailyDao.selectProjectTotalByAgency(customerId, startTime, orgId); + startTotal = null == startTotal ? NumConstant.ZERO : startTotal; + total = endTotal - startTotal; + List startCategoryList = screenProjectCategoryOrgDailyDao.selectProjectCategoryByAgency(customerId,startTime,orgId); + endCategoryList.forEach(e -> startCategoryList.stream().filter(s -> e.getCategoryCode().equals(s.getCategoryCode())).forEach(s -> e.setProjectTotal(subtract(e.getProjectTotal(),s.getProjectTotal())))); + endCategoryList.forEach(e -> startCategoryList.stream().filter(s -> e.getCategoryCode().equals(s.getCategoryCode())).forEach(s -> e.setClosedProjectTotal(subtract(e.getClosedProjectTotal(),s.getClosedProjectTotal())))); + } + Integer finalTotal = total; + endCategoryList.forEach(e -> { + e.setTotalRatio(ratio(e.getProjectTotal(), finalTotal)); + e.setClosedRatio(ratio(e.getClosedProjectTotal(),e.getProjectTotal())); + e.setAllProjectTotal(finalTotal); + }); + } + List finalEndCategoryList = endCategoryList; + result.forEach(r -> { + finalEndCategoryList.stream().filter(e -> r.getCategoryCode().equals(e.getCategoryCode())).forEach(e -> { + r.setTotalRatio(e.getTotalRatio());r.setClosedRatio(e.getClosedRatio()); + r.setProjectTotal(e.getProjectTotal()); + r.setClosedProjectTotal(e.getClosedProjectTotal()); + r.setAllProjectTotal(e.getAllProjectTotal()); + }); + r.getChildren().forEach(son -> finalEndCategoryList.stream().filter(e -> son.getCategoryCode().equals(e.getCategoryCode())).forEach(e -> { + son.setTotalRatio(e.getTotalRatio());son.setClosedRatio(e.getClosedRatio()); + son.setProjectTotal(e.getProjectTotal());son.setClosedProjectTotal(e.getClosedProjectTotal()); + son.setAllProjectTotal(e.getAllProjectTotal()); + })); + }); + // 排序 + List collect = result.stream().sorted(Comparator.comparing(ProjectCategoryResultDTO::getProjectTotal).reversed()).collect(Collectors.toList()); + collect.forEach(c -> { + c.setChildren(c.getChildren().stream().sorted(Comparator.comparing(ProjectCategoryResultDTO::getProjectTotal).reversed()).collect(Collectors.toList())); + }); + collect.forEach(p -> { + p.getChildren().forEach(c -> { + c.setTotalRatio(ratio(c.getProjectTotal(), p.getProjectTotal())); + }); + }); + return collect; + } + + /** + * @Description 俩数相减,小于0就赋值为0 + * @param end + * @param start + * @author zxc + * @date 2021/11/5 9:18 上午 + */ + public Integer subtract(Integer end,Integer start){ + return end - start < NumConstant.ZERO ? NumConstant.ZERO : end - start; + } + + /** + * @Description 返回占比,保留小数点2位 + * @param molecule 分子 + * @param denominator 分母 + * @author zxc + * @date 2021/11/5 9:26 上午 + */ + public String ratio(Integer molecule, Integer denominator){ + if (denominator == NumConstant.ZERO){ + return "0.00%"; + } + BigDecimal bigDecimalMolecule = new BigDecimal(molecule * NumConstant.ONE_HUNDRED); + BigDecimal bigDecimalDenominator = new BigDecimal(denominator); + BigDecimal divide = bigDecimalMolecule.divide(bigDecimalDenominator, NumConstant.TWO, BigDecimal.ROUND_HALF_UP); + return divide+"%"; + } + + /** + * @Description 【项目分类】查询分类下的项目 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/11/4 3:39 下午 + */ + @Override + public PageCategoryProjectListResultDTO selectCategoryProjectList(CategoryProjectListFormDTO formDTO, TokenDto tokenDto) { + if (StringUtils.isBlank(formDTO.getOrgId())){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfo){ + throw new RenException("未查询到此工作人员的所属组织信息..."); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + formDTO.setOrgType(FactConstant.AGENCY); + } + PageCategoryProjectListResultDTO result = new PageCategoryProjectListResultDTO(); + List list; + PageInfo objectPageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()) + .doSelectPageInfo(() -> screenProjectDataDao.selectCategoryProjectList(formDTO.getOrgId(), formDTO.getCategoryCode(), formDTO.getStatus(),formDTO.getStartTime(),formDTO.getEndTime())); + list = objectPageInfo.getList(); + result.setTotal(Integer.valueOf(String.valueOf(objectPageInfo.getTotal()))); + + if (!CollectionUtils.isEmpty(list)){ + list.forEach(l -> { + if (l.getOrgType().equals(FactConstant.AGENCY)){ + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(l.getOrgId()); + l.setGridName(agencyInfo.getOrganizationName()); + }else { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(l.getOrgId()); + l.setGridName(gridInfo.getGridNamePath()); + } + }); + } + result.setList(list); + return result; + } + } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/excel/project_category_temp.xlsx b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_category_temp.xlsx new file mode 100644 index 0000000000..6054a88289 Binary files /dev/null and b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_category_temp.xlsx differ diff --git a/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp.xlsx b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp.xlsx new file mode 100644 index 0000000000..743bd60ecc Binary files /dev/null and b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp.xlsx differ diff --git a/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp_easy_excel.xlsx b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp_easy_excel.xlsx new file mode 100644 index 0000000000..41f27c780c Binary files /dev/null and b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_temp_easy_excel.xlsx differ diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml index 8b4eed6642..8e29ff2cec 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenIndexDataMonthlyDao.xml @@ -388,6 +388,9 @@ ROUND((ROUND(sy.govern_ablity,1) * sy.GOVERN_ABLITY_WEIGHT),1) AS governAbility, ROUND((ROUND(sy.party_dev_ablity,1) * sy.PARTY_DEV_WEIGHT),1) AS partyDevAbility, ROUND((ROUND(sy.service_ablity,1) * sy.SERVICE_ABLITY_WEIGHT),1) AS serviceAbility, + ROUND(sy.govern_ablity,1) AS originGovernAbility, + ROUND(sy.party_dev_ablity,1) AS originPartyDevAbility, + ROUND(sy.service_ablity,1) AS originServiceAbility, sy.ORG_ID as orgId, scg.area_code as areaCode FROM screen_customer_grid scg diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml index 5731b27e2b..b9dfb3faaa 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml @@ -63,4 +63,58 @@ AND DATE_ID = (select date_id from screen_project_category_org_daily where del_flag = '0' and ORG_ID = #{agencyId} and CUSTOMER_ID= #{customerId} order by date_id desc, created_time desc limit 1) ORDER BY PROJECT_TOTAL DESC LIMIT #{topCount} + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml index e890e36389..28b422ab4d 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectDataDao.xml @@ -135,7 +135,7 @@ AND pd.ORG_TYPE = 'agency' AND pd.PROJECT_LEVEL != 0 AND sca.AREA_CODE LIKE CONCAT(#{areaCode},'%') - AND UNIX_TIMESTAMP(pd.CREATED_TIME) >= UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL #{monthCount} MONTH)) + AND UNIX_TIMESTAMP(pd.PROJECT_CREATE_TIME) >= UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL #{monthCount} MONTH)) ) UNION ALL (SELECT pd.PROJECT_LEVEL @@ -145,7 +145,7 @@ AND pd.ORG_TYPE = 'grid' AND pd.PROJECT_LEVEL != 0 AND scg.AREA_CODE LIKE CONCAT(#{areaCode},'%') - AND UNIX_TIMESTAMP(pd.CREATED_TIME) >= UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL #{monthCount} MONTH)) + AND UNIX_TIMESTAMP(pd.PROJECT_CREATE_TIME) >= UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL #{monthCount} MONTH)) ) UNION ALL (SELECT pd.PROJECT_LEVEL @@ -155,7 +155,35 @@ AND pd.ORG_TYPE = 'department' AND pd.PROJECT_LEVEL != 0 AND scd.AREA_CODE LIKE CONCAT(#{areaCode},'%') - AND UNIX_TIMESTAMP(pd.CREATED_TIME) >= UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL #{monthCount} MONTH)) + AND UNIX_TIMESTAMP(pd.PROJECT_CREATE_TIME) >= UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL #{monthCount} MONTH)) ) + + + diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectOrgDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectOrgDailyDao.xml index 4189b03d16..0294005b7f 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectOrgDailyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectOrgDailyDao.xml @@ -54,4 +54,30 @@ )and m.CUSTOMER_ID=#{customerId} order by resolvedRatio+0 desc + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ClosedProjectTotalResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ClosedProjectTotalResultDTO.java new file mode 100644 index 0000000000..bd2aea194f --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ClosedProjectTotalResultDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dto.project.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/11/4 9:12 上午 + * @DESC + */ +@Data +public class ClosedProjectTotalResultDTO implements Serializable { + + private static final long serialVersionUID = -3683494871244065806L; + + /** + * 组织ID + */ + private String orgId; + + /** + * 分类code + */ + private String categoryCode; + + /** + * 结案的项目数 + */ + private Integer closedProjectTotal = 0; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryDTO.java new file mode 100644 index 0000000000..f9fedd5560 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryDTO.java @@ -0,0 +1,102 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.screen; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 项目所属分类表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-11-10 + */ +@Data +public class ScreenProjectCategoryDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户id + */ + private String customerId; + + /** + * 项目id + */ + private String projectId; + + /** + * 分类编码 + */ + private String categoryCode; + + /** + * 所属父类分类编码 + */ + private String parentCategoryCode; + + /** + * 原始分类编码 + */ + private String originCategoryCode; + + /** + * 分类等级:1、2....;产品目前只有2级分类 + */ + private Integer level; + + /** + * 删除标识 0未删除;1已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java index cd31f554bb..e47c97f841 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectCategoryGridDailyDTO.java @@ -120,4 +120,6 @@ public class ScreenProjectCategoryGridDailyDTO implements Serializable { */ private Boolean status = false; + private Integer closedProjectTotal = 0; + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/CategoryProjectResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/CategoryProjectResultDTO.java index 48af51b5ef..29cc0ea5db 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/CategoryProjectResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/CategoryProjectResultDTO.java @@ -42,6 +42,11 @@ public class CategoryProjectResultDTO implements Serializable { */ private Integer projectTotal; + /** + * 结案数 + */ + private Integer closedProjectTotal; + /** * 分类级别 */ diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/GridAndOrgCategoryCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/GridAndOrgCategoryCountResultDTO.java new file mode 100644 index 0000000000..7f3f9aa96d --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/result/GridAndOrgCategoryCountResultDTO.java @@ -0,0 +1,76 @@ +package com.epmet.dto.screen.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/11/10 10:36 上午 + * @DESC + */ +@Data +public class GridAndOrgCategoryCountResultDTO implements Serializable { + + private static final long serialVersionUID = -5167964547464983118L; + + /** + * 组织ID + */ + private String orgId; + + /** + * 组织类型 + */ + private String orgType; + + /** + * 网格ID + */ + private String gridId; + + /** + * 上级组织ID + */ + private String pid; + + /** + * 所有上级组织ID + */ + private String pids; + + private String dateId; + + private String customerId; + + private String categoryOriginCustomerId; + + /** + * 分类CODE + */ + private String categoryCode; + + /** + * 分类CODE级别 + */ + private Integer level; + + /** + * 项目总数 + */ + private Integer projectTotal; + + /** + * 关闭【结案】项目总数 + */ + private Integer closedProjectTotal; + + public GridAndOrgCategoryCountResultDTO() { + this.orgId = ""; + this.categoryCode = ""; + this.level = NumConstant.ZERO; + this.projectTotal = NumConstant.ZERO; + this.closedProjectTotal = NumConstant.ZERO; + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/pom.xml b/epmet-module/data-statistical/data-statistical-server/pom.xml index cf2f0f200b..434c57712e 100644 --- a/epmet-module/data-statistical/data-statistical-server/pom.xml +++ b/epmet-module/data-statistical/data-statistical-server/pom.xml @@ -128,6 +128,12 @@ 2.0.0 compile + + com.epmet + oper-crm-client + 2.0.0 + compile + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/PingYinConstant.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/PingYinConstant.java index 16526ef4fe..043e256c42 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/PingYinConstant.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/PingYinConstant.java @@ -15,4 +15,7 @@ public interface PingYinConstant { String YU_SHAN_AGENCY_ID = "1258587398679126017"; String YU_SHAN_CUSTOMER_ID = "a4bbf298d8e427844038cee466f022ef"; + + String TEST_PING_YIN_CUSTOMER_ID = "78e2b2227c07de1fe54da14e2b2d9eb6"; + String PROD_PING_YIN_CUSTOMER_ID = "6f203e30de1a65aab7e69c058826cd80"; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java index 6b9966b154..ec417c1c60 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java @@ -90,4 +90,7 @@ public interface ProjectConstant { * 上报 */ String PROJECT_REPORT="02"; + + String PROJECT_STATUS_CLOSED = "closed"; + String PROJECT_STATUS_ALL = "all"; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java index 9b2d86b77f..bc7d990f6e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -60,9 +62,9 @@ import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.*; import java.util.ArrayList; import java.util.Date; -import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; @@ -74,7 +76,8 @@ import java.util.concurrent.Future; public class DemoController { @Autowired private StatsDemoService demoService; - + @Autowired + private RedisUtils redisUtils; @Autowired private ExecutorService executorService; @@ -136,6 +139,8 @@ public class DemoController { private FactGridMemberStatisticsDailyService factGridMemberStatisticsDailyService; @Autowired private DimCustomerService dimCustomerService; + @Autowired + private ScreenProjectDataService screenProjectDataService; @GetMapping("testAlarm") public void testAlarm() { @@ -760,6 +765,7 @@ public class DemoController { orgRankExtractService.extractGridData(formDTO.getCustomerId(), formDTO.getDateId()); orgRankExtractService.extractCommunityData(formDTO.getCustomerId(), formDTO.getDateId()); orgRankExtractService.extractStreetData(formDTO.getCustomerId(), formDTO.getDateId()); + orgRankExtractService.extractDistrictData(formDTO.getCustomerId(), formDTO.getDateId()); return new Result(); } @@ -935,7 +941,7 @@ public class DemoController { paramDTO.setCustomerId(customerId); paramDTO.setDateId(formDTO.getDateId()); originProjectCategoryDailyService.extractProjectCategory(paramDTO); - log.error(String.format("/data/stats/demo/extractProjectCategory,fact_origin_project_category_daily表抽取完毕,customerId:%s", customerId)); + log.warn(String.format("/data/stats/demo/extractProjectCategory,fact_origin_project_category_daily表抽取完毕,customerId:%s", customerId)); } return new Result(); } @@ -943,9 +949,25 @@ public class DemoController { @Autowired private ScreenProjectCategoryOrgDailyService screenProjectCategoryOrgDailyService; - @PostMapping("orgdaily") - public Result orgDaily(@RequestParam("customerId")String customerId,@RequestParam("dateId")String dateId){ - screenProjectCategoryOrgDailyService.extractProjectCategoryOrgData(customerId,dateId); + @PostMapping("gridandorgdaily") + public Result orgDaily(@RequestParam("customerId")String customerId,@RequestParam("dateId")String dateId, + @RequestParam(name = "startDate",required = false)String startDate, + @RequestParam(name = "endDate",required = false)String endDate + ){ + long start = System.currentTimeMillis(); + if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)){ + List daysBetween = DateUtils.getDaysBetween(startDate, endDate); + daysBetween.forEach(d -> { + projectCategoryGridDailyService.extractProjectCategoryData(customerId,d); + screenProjectCategoryOrgDailyService.extractProjectCategoryOrgData(customerId,d); + }); + }else { + projectCategoryGridDailyService.extractProjectCategoryData(customerId,dateId); + screenProjectCategoryOrgDailyService.extractProjectCategoryOrgData(customerId,dateId); + } + long end = System.currentTimeMillis(); + long l = (end - start) / 1000; + log.info("gridAndOrgDaily耗时" + l+ "s"); return new Result(); } @@ -1052,4 +1074,39 @@ public class DemoController { customerAgencyService.sysAgencyInfo(formDTO.getFromCustomerId(), formDTO.getToCustomerId()); return new Result(); } + + @PostMapping("extractCategory") + public Result extractCategory(@RequestBody StatsFormDTO formDTO) { + screenProjectDataService.extractCategory(formDTO.getCustomerId()); + return new Result(); + } + + @Autowired + private ScreenProjectCategoryGridAndOrgDailyService screenProjectCategoryGridAndOrgDailyService; + + @PostMapping("gridandorgdailynew") + public Result gridAndDaily(@RequestParam("customerId")String customerId,@RequestParam("dateId")String dateId, + @RequestParam(name = "startDate",required = false)String startDate, + @RequestParam(name = "endDate",required = false)String endDate + ){ + + long start = System.currentTimeMillis(); + Set result = new LinkedHashSet<>(); + if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)){ + List daysBetween = DateUtils.getDaysBetween(startDate, endDate); + daysBetween.forEach(d -> { + screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectGridData(customerId,d); + screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectOrgData(customerId,d); + result.add(d); + redisUtils.hSet(RedisKeys.getBackDoorbizExcuteResult("gridandorgdailynew"),customerId,result,3*24*60*60L); + }); + }else { + screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectGridData(customerId,dateId); + screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectOrgData(customerId,dateId); + redisUtils.hSet(RedisKeys.getBackDoorbizExcuteResult("gridandorgdailynew"),customerId,result,3*24*60*60L); + } + long end = System.currentTimeMillis(); + long l = (end - start) / 1000; + return new Result().ok("gridAndOrgDaily耗时" + l+ "s"); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java index dcd9105781..e520998bda 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectCategoryDailyDao.java @@ -42,7 +42,7 @@ public interface FactOriginProjectCategoryDailyDao extends BaseDao selectListProjectCategoryGridDailyDTO(@Param("customerId") String customerId); + List selectListProjectCategoryGridDailyDTO(@Param("customerId") String customerId,@Param("subCount")Integer subCount,@Param("projectType")String projectType); /** * @Description 查询客户下,组织直接立项的,各项目分类下的项目数量【筛选组织创建的项目,fact_origin_project_main_daily表gridId为空】 @@ -50,7 +50,8 @@ public interface FactOriginProjectCategoryDailyDao extends BaseDao selectListProjectCategoryByOrg(@Param("orgIds")List orgIds,@Param("customerId") String customerId); + List selectListProjectCategoryByOrg(@Param("orgIds")List orgIds,@Param("customerId") String customerId, + @Param("subCount") Integer subCount,@Param("projectType")String projectType); int deleteByProjectIds(@Param("list") List list); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java index 45f3ba2350..4fb104b4a1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java @@ -288,6 +288,7 @@ public interface FactOriginProjectLogDailyDao extends BaseDao */ List selectGridClosed(@Param("customerId") String customerId, @Param("monthId") String monthId); + List selectAgencyClosed(@Param("customerId") String customerId, @Param("monthId") String monthId); /** * 网格自治率统计--按天 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java index e6155e982e..619e9f2e67 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java @@ -28,6 +28,7 @@ import com.epmet.dto.extract.result.OrgNameResultDTO; import com.epmet.dto.indexcal.AgencyAndParentResultDTO; import com.epmet.dto.indexcollect.form.CustomerBizOrgFormDTO; import com.epmet.dto.screen.ScreenProjectOrgDailyDTO; +import com.epmet.dto.screen.result.GridAndOrgCategoryCountResultDTO; import com.epmet.dto.screen.result.TreeResultDTO; import com.epmet.dto.screencoll.form.CustomerAgencyFormDTO; import com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity; @@ -244,4 +245,15 @@ public interface ScreenCustomerAgencyDao extends BaseDao selectByCustomerId(@Param("customerId") String customerId); + /** + * @Description 查询父子客户的组织【平阴】 + * @param customerIds 平阴,榆山,锦水的客户ID + * @param customerId 孔村的客户ID🤬 + * @author zxc + * @date 2021/11/10 2:52 下午 + */ + List selectParentSonAgency(@Param("customerIds") List customerIds ,@Param("customerId") String customerId); + + + String getParentAgencyId(@Param("agencyId") String agencyId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryDao.java new file mode 100644 index 0000000000..08d28b6c86 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryDao.java @@ -0,0 +1,36 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dao.evaluationindex.screen; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.evaluationindex.screen.ScreenProjectCategoryEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 项目所属分类表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-11-10 + */ +@Mapper +public interface ScreenProjectCategoryDao extends BaseDao { + void deleteByProjectIds(@Param("customerId") String customerId, @Param("projectIds") List projectIds); +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java index d5336c4a34..51cb145080 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.evaluationindex.screen; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.project.result.ClosedProjectTotalResultDTO; import com.epmet.dto.screen.result.CategoryProjectResultDTO; import com.epmet.entity.evaluationindex.screen.ScreenProjectCategoryOrgDailyEntity; import com.sun.org.apache.xpath.internal.operations.Bool; @@ -55,16 +56,28 @@ public interface ScreenProjectCategoryOrgDailyDao extends BaseDao selectOrgCategoryInfo(@Param("customerId") String customerId, @Param("dateId") String dateId,@Param("level")String level); /** - * @Description 查询组织分类信息【多客户】 + * @Description 查询组织分类信息【多客户】父客户存在的分类 * @Param customerId * @Param dateId * @Param level - * @Param existsStatus 父客户是否存在 * @author zxc * @date 2021/3/24 下午2:48 */ List selectOrgCategoryMoreCustomerInfo(@Param("customerIds")List customerIds, @Param("dateId") String dateId, - @Param("level")String level, @Param("customerId")String customerId, @Param("existsStatus")Boolean existsStatus); + @Param("level")String level, @Param("customerId")String customerId); + + /** + * @Description 查询组织分类信息【多客户】父客户存在的分类 + * @param customerIds + * @param dateId + * @param level + * @param customerId + * @author zxc + * @date 2021/10/21 4:03 下午 + */ + List selectOrgCategoryMoreCustomerInfoNotExists(@Param("customerIds")List customerIds, @Param("dateId") String dateId, + @Param("level")String level, @Param("customerId")String customerId); + /** * @Description 查询组织分类信息【多客户】升级版 * @Param customerIds @@ -94,4 +107,15 @@ public interface ScreenProjectCategoryOrgDailyDao extends BaseDao selectSelfAgencyCategory(@Param("dateId") String dateId,@Param("orgIds")List orgIds); + + /** + * @Description 查询父客户 存在 分类的结案项目数 + * @param customerIds + * @param dateId + * @author zxc + * @date 2021/11/4 9:26 上午 + */ + List selectClosedProjectTotal(@Param("customerIds")List customerIds, @Param("dateId") String dateId, + @Param("status")Boolean status); + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java index 97c85d1bc0..26aa8892d9 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectDataDao.java @@ -19,6 +19,7 @@ package com.epmet.dao.evaluationindex.screen; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.screen.ScreenProjectDataDTO; +import com.epmet.dto.screen.result.GridAndOrgCategoryCountResultDTO; import com.epmet.entity.evaluationindex.screen.ScreenProjectDataEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -68,4 +69,46 @@ public interface ScreenProjectDataDao extends BaseDao { int updateProjectSatisfactionScore(@Param("projectId")String projectId, @Param("score")BigDecimal score); List selectProjectList(@Param("customerId") String customerId, @Param("projectId") String projectId); + + /** + * @Description 查询网格下的项目分类 + * @param customerIds 父子客户的customerId + * @param dateId 日期ID + * @param status 所有项目:all,已结案项目:closed + * @param customerId 父级客户ID + * @param subCount 分类截取位数 + * @author zxc + * @date 2021/11/10 3:12 下午 + */ + List selectGridCategoryProjectCount(@Param("dateId") String dateId,@Param("parentCustomerId") String parentCustomerId, + @Param("status")String status,@Param("customerId") String customerId, + @Param("subCount")Integer subCount); + + /** + * @Description 查询组织下的项目分类 + * @param dateId 日期ID + * @param status 所有项目:all,已结案项目:closed + * @param customerId 父级客户ID + * @param subCount 分类截取位数 + * @author zxc + * @date 2021/11/10 3:14 下午 + */ + List selectOrgCategoryProjectCount(@Param("dateId") String dateId, @Param("status")String status, + @Param("customerId") String customerId, @Param("subCount")Integer subCount, + @Param("allAgencies") List allAgencies); + + /** + * @Description 查询组织下的1级项目分类 + * @param dateId + * @param status + * @param customerId + * @param subCount + * @param allAgencies + * @author zxc + * @date 2021/11/11 11:14 上午 + */ + List selectOrgCategoryOneLevelProjectCount(@Param("dateId") String dateId, @Param("status")String status, + @Param("customerId") String customerId, @Param("subCount")Integer subCount, + @Param("allAgencies") List allAgencies); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerAgencyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerAgencyEntity.java index 6bf9ea9e6f..475e9907bd 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerAgencyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerAgencyEntity.java @@ -88,11 +88,12 @@ public class ScreenCustomerAgencyEntity extends BaseEpmetEntity { */ private String level; + private String code; + /** * 行政地区编码 */ private String areaCode; - private String code; private String sourceType; /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryEntity.java new file mode 100644 index 0000000000..4e1ea78bfe --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryEntity.java @@ -0,0 +1,68 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.entity.evaluationindex.screen; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 项目所属分类表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-11-10 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("screen_project_category") +public class ScreenProjectCategoryEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 项目id + */ + private String projectId; + + /** + * 分类编码 + */ + private String categoryCode; + + /** + * 所属父类分类编码 + */ + private String parentCategoryCode; + + /** + * 原始分类编码 + */ + private String originCategoryCode; + + /** + * 分类等级:1、2....;产品目前只有2级分类 + */ + private Integer level; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryGridDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryGridDailyEntity.java index 82b03555ac..2a5881cbf4 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryGridDailyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryGridDailyEntity.java @@ -74,4 +74,9 @@ public class ScreenProjectCategoryGridDailyEntity extends BaseEpmetEntity { * 分类等级1、2.... */ private Integer level; + + /** + * 分类下所有结案的项目 + */ + private Integer closedProjectTotal; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java index bdfba9bbc6..2d4dd0dde2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectCategoryOrgDailyEntity.java @@ -82,6 +82,11 @@ public class ScreenProjectCategoryOrgDailyEntity extends BaseEpmetEntity { */ private Integer projectTotal; + /** + * 分类下所有结案项目数 + */ + private Integer closedProjectTotal; + /** * 分类等级1、2.... */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java index f521f0aa60..e3ea7f6109 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java @@ -69,6 +69,8 @@ public class CustomerAgencyEntity extends BaseEpmetEntity { */ private String level; + private String code; + /** * 地区编码 */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java index dc760a4b5e..ba86713249 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java @@ -55,6 +55,7 @@ public class CustomerGridEntity extends BaseEpmetEntity { */ private String latitude; + private String code; /** * 所属地区码(所属组织地区码) */ @@ -84,4 +85,5 @@ public class CustomerGridEntity extends BaseEpmetEntity { * 是否同步到统计库和指标库,1同步。0不同步 */ private String syncFlag; + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimAgencyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimAgencyEntity.java index 411c633990..93ce0f0bfc 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimAgencyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimAgencyEntity.java @@ -76,4 +76,6 @@ public class DimAgencyEntity extends BaseEpmetEntity { */ private String level; + private String code; + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimGridEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimGridEntity.java index 8c49f7f9d9..2d3fc94740 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimGridEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimGridEntity.java @@ -57,4 +57,6 @@ public class DimGridEntity extends BaseEpmetEntity { */ private String areaCode; + private String code; + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectCategoryDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectCategoryDailyService.java index 2da14685eb..3bd2029431 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectCategoryDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectCategoryDailyService.java @@ -54,5 +54,5 @@ public interface FactOriginProjectCategoryDailyService extends BaseService selectListProjectCategoryByOrg(List orgIds,String customerId); + List selectListProjectCategoryByOrg(List orgIds,String customerId,Integer subCount,String projectType); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java index 2d95509fca..b3b50560f6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java @@ -21,7 +21,6 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.extract.FactOriginProjectLogDailyDTO; import com.epmet.dto.extract.result.*; -import com.epmet.dto.screen.ScreenProjectDataDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectLogDailyEntity; import java.math.BigDecimal; @@ -310,7 +309,7 @@ public interface FactOriginProjectLogDailyService extends BaseService */ List getGridClosed(String customerId, String monthId); - + List getAgencyClosed(String customerId, String monthId); /** * 网格自制率统计-按天 * @author zhaoqifeng diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java index d1c8e145dc..28a57a5b3c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectCategoryDailyServiceImpl.java @@ -23,6 +23,8 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.constant.DataSourceConstant; +import com.epmet.constant.PingYinConstant; +import com.epmet.constant.PingYinConstants; import com.epmet.dao.evaluationindex.extract.FactOriginProjectCategoryDailyDao; import com.epmet.dto.ProjectCategoryDTO; import com.epmet.dto.extract.form.ExtractOriginFormDTO; @@ -136,10 +138,22 @@ public class FactOriginProjectCategoryDailyServiceImpl extends BaseServiceImpl selectListProjectCategoryGridDailyDTO(String customerId) { - List list=baseDao.selectListProjectCategoryGridDailyDTO(customerId); + List list=baseDao.selectListProjectCategoryGridDailyDTO(customerId,getSubCount(customerId),"all"); + List closedList = baseDao.selectListProjectCategoryGridDailyDTO(customerId,getSubCount(customerId),"closed"); + if (!CollectionUtils.isEmpty(closedList)){ + list.forEach(l -> closedList.stream().filter(c -> l.getGridId().equals(c.getGridId()) && l.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> l.setClosedProjectTotal(c.getClosedProjectTotal()))); + } return list; } + public Integer getSubCount(String customerId){ + Integer result = NumConstant.FOUR; + if (customerId.equals(PingYinConstant.TEST_PING_YIN_CUSTOMER_ID) || customerId.equals(PingYinConstant.PROD_PING_YIN_CUSTOMER_ID)){ + return NumConstant.TWO; + } + return result; + } + /** * @Description 查询客户下,组织直接立项的,各项目分类下的项目数量【筛选组织创建的项目,fact_origin_project_main_daily表gridId为空】 * @Param orgIds @@ -147,10 +161,10 @@ public class FactOriginProjectCategoryDailyServiceImpl extends BaseServiceImpl selectListProjectCategoryByOrg(List orgIds,String customerId) { + public List selectListProjectCategoryByOrg(List orgIds,String customerId,Integer subCount,String projectType) { if (!CollectionUtils.isEmpty(orgIds)){ return new ArrayList<>(); } - return baseDao.selectListProjectCategoryByOrg(orgIds,customerId); + return baseDao.selectListProjectCategoryByOrg(orgIds,customerId,subCount,projectType); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java index 311da04715..e59b8eab6e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java @@ -401,6 +401,11 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl getAgencyClosed(String customerId, String monthId) { + return baseDao.selectAgencyClosed(customerId, monthId); + } + /** * 网格自制率统计-按天 * diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/OrgRankExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/OrgRankExtractServiceImpl.java index 4e7ecc27aa..fde0f879bc 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/OrgRankExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/OrgRankExtractServiceImpl.java @@ -6,8 +6,6 @@ import com.epmet.constant.OrgTypeConstant; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; import com.epmet.dto.stats.user.FactRegUserAgencyMonthlyDTO; import com.epmet.dto.stats.user.FactRegUserGridMonthlyDTO; -import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyEntity; -import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyEntity; import com.epmet.entity.evaluationindex.screen.ScreenOrgRankDataEntity; import com.epmet.service.evaluationindex.extract.todata.*; import com.epmet.service.evaluationindex.extract.toscreen.OrgRankExtractService; @@ -17,9 +15,9 @@ import com.epmet.service.evaluationindex.screen.ScreenOrgRankDataService; import com.epmet.service.stats.user.FactRegUserAgencyMonthlyService; import com.epmet.service.stats.user.FactRegUserGridMonthlyService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.apache.commons.collections4.CollectionUtils; import java.math.BigDecimal; import java.math.RoundingMode; @@ -184,11 +182,15 @@ public class OrgRankExtractServiceImpl implements OrgRankExtractService { )); } //结案率 结案数/项目数 - List abilityList = factIndexGovrnAblityOrgMonthlyService.getOrgByCustomer(customerId, monthId, OrgTypeConstant.COMMUNITY); - if (CollectionUtils.isNotEmpty(abilityList)) { - list.forEach(entity -> abilityList.stream().filter(item -> item.getAgencyId().equals(entity.getOrgId())).forEach(dto -> - entity.setCloseProjectRatio(dto.getClosedProjectRatio()) - )); + List closed = factOriginProjectLogDailyService.getAgencyClosed(customerId, monthId); + if (CollectionUtils.isNotEmpty(closed)) { + list.forEach(entity -> closed.stream().filter(item -> item.getOrgId().equals(entity.getOrgId())).forEach(dto -> { + if (dto.getSum() != NumConstant.ZERO) { + BigDecimal sum = new BigDecimal(dto.getSum()); + BigDecimal count = new BigDecimal(dto.getCount()); + entity.setCloseProjectRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); } //满意率 满意和非常满意占比 List satisfactionList = factOriginProjectLogDailyService.getOrgSatisfaction(customerId, monthId, OrgTypeConstant.COMMUNITY); @@ -252,11 +254,15 @@ public class OrgRankExtractServiceImpl implements OrgRankExtractService { )); } //结案率 结案数/项目数 - List abilityList = factIndexGovrnAblityOrgMonthlyService.getOrgByCustomer(customerId, monthId, OrgTypeConstant.STREET); - if (CollectionUtils.isNotEmpty(abilityList)) { - list.forEach(entity -> abilityList.stream().filter(item -> item.getAgencyId().equals(entity.getOrgId())).forEach(dto -> - entity.setCloseProjectRatio(dto.getClosedProjectRatio()) - )); + List closed = factOriginProjectLogDailyService.getAgencyClosed(customerId, monthId); + if (CollectionUtils.isNotEmpty(closed)) { + list.forEach(entity -> closed.stream().filter(item -> item.getOrgId().equals(entity.getOrgId())).forEach(dto -> { + if (dto.getSum() != NumConstant.ZERO) { + BigDecimal sum = new BigDecimal(dto.getSum()); + BigDecimal count = new BigDecimal(dto.getCount()); + entity.setCloseProjectRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); } //满意率 满意和非常满意占比 List satisfactionList = factOriginProjectLogDailyService.getOrgSatisfaction(customerId, monthId, OrgTypeConstant.STREET); @@ -320,11 +326,15 @@ public class OrgRankExtractServiceImpl implements OrgRankExtractService { )); } //结案率 结案数/项目数 - List abilityList = factIndexGovrnAblityOrgMonthlyService.getOrgByCustomer(customerId, monthId, OrgTypeConstant.DISTRICT); - if (CollectionUtils.isNotEmpty(abilityList)) { - list.forEach(entity -> abilityList.stream().filter(item -> item.getAgencyId().equals(entity.getOrgId())).forEach(dto -> - entity.setCloseProjectRatio(dto.getClosedProjectRatio()) - )); + List closed = factOriginProjectLogDailyService.getAgencyClosed(customerId, monthId); + if (CollectionUtils.isNotEmpty(closed)) { + list.forEach(entity -> closed.stream().filter(item -> item.getOrgId().equals(entity.getOrgId())).forEach(dto -> { + if (dto.getSum() != NumConstant.ZERO) { + BigDecimal sum = new BigDecimal(dto.getSum()); + BigDecimal count = new BigDecimal(dto.getCount()); + entity.setCloseProjectRatio(count.multiply(hundred).divide(sum, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); } //满意率 满意和非常满意占比 List satisfactionList = factOriginProjectLogDailyService.getOrgSatisfaction(customerId, monthId, OrgTypeConstant.STREET); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java index 600786782c..74af482075 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java @@ -2,6 +2,8 @@ package com.epmet.service.evaluationindex.extract.toscreen.impl; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.distributedlock.DistributedLock; +import com.epmet.commons.tools.distributedlock.LockConstants; import com.epmet.commons.tools.enums.EnvEnum; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.HttpClientManager; @@ -20,6 +22,7 @@ import com.epmet.service.stats.DimCustomerService; import com.google.common.util.concurrent.ThreadFactoryBuilder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.redisson.api.RLock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -84,6 +87,10 @@ public class ScreenExtractServiceImpl implements ScreenExtractService { private FactAgencyGovernDailyService factAgencyGovernDailyService; @Autowired private FactGridMemberStatisticsDailyService factGridMemberStatisticsDailyService; + @Autowired + private ScreenProjectCategoryGridAndOrgDailyService screenProjectCategoryGridAndOrgDailyService; + @Autowired + private DistributedLock distributedLock; /** * @param extractOriginFormDTO @@ -161,155 +168,177 @@ public class ScreenExtractServiceImpl implements ScreenExtractService { * @date 2020/9/24 10:16 上午 */ public void extractDaily(String customerId, String dateId, boolean isLast) { - //等待3个线程执行完毕后再 继续执行下一个客户的 避免死锁 - final CountDownLatch latch = new CountDownLatch(NumConstant.FOUR); - threadPool.submit(() -> { - //党员基本情况screen_cpc_base_data - try { - partyBaseInfoService.statsPartyMemberBaseInfoToScreen(customerId, dateId); - } catch (Exception e) { - log.error("党员基本情况抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } - //先锋模范screen_pioneer_data - if (isLast) { - try { - pioneerDataExtractService.extractGridPioneerData(customerId, dateId); - } catch (Exception e) { - log.error("先锋模范【网格】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } - try { - pioneerDataExtractService.extractCommunityPioneerData(customerId, dateId); - } catch (Exception e) { - log.error("先锋模范【社区】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } + RLock lock = null; + try { + // 锁持有10分钟,等待10s + lock = distributedLock.getLock(LockConstants.SCREEN_DAILY, NumConstant.SIX_HUNDRED_L, NumConstant.TEN_L, TimeUnit.SECONDS); + //等待3个线程执行完毕后再 继续执行下一个客户的 避免死锁 + final CountDownLatch latch = new CountDownLatch(NumConstant.FOUR); + threadPool.submit(() -> { + //党员基本情况screen_cpc_base_data try { - pioneerDataExtractService.extractExceptCommunityPioneerData(customerId, dateId); - } catch (Exception e) { - log.error("先锋模范【extractExceptCommunityPioneerData】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + try { + partyBaseInfoService.statsPartyMemberBaseInfoToScreen(customerId, dateId); + } catch (Exception e) { + log.error("党员基本情况抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + //先锋模范screen_pioneer_data + if (isLast) { + try { + pioneerDataExtractService.extractGridPioneerData(customerId, dateId); + } catch (Exception e) { + log.error("先锋模范【网格】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + try { + pioneerDataExtractService.extractCommunityPioneerData(customerId, dateId); + } catch (Exception e) { + log.error("先锋模范【社区】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + try { + pioneerDataExtractService.extractExceptCommunityPioneerData(customerId, dateId); + } catch (Exception e) { + log.error("先锋模范【extractExceptCommunityPioneerData】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + } + } finally { + latch.countDown(); + log.info("extractDaily 1 thread run end ========= dateId:{},customerId:{}", dateId, customerId); } - } - latch.countDown(); - log.info("extractDaily 1 thread run end ========= dateId:{},customerId:{}", dateId, customerId); - }); - threadPool.submit(() -> { - //公众参与排行(注册人数、参与人数、话题数、议题数、项目数)screen_public_party_total_data - try { - publicPartiTotalDataExtractService.extractPublicPartiTotalData(customerId, dateId); - } catch (Exception e) { - log.error("公众参与排行抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } - if (isLast) { - //基层治理- 难点赌点 screen_difficulty_data | screen_difficulty_img_data + }); + threadPool.submit(() -> { + //公众参与排行(注册人数、参与人数、话题数、议题数、项目数)screen_public_party_total_data try { - ScreenCentralZoneDataFormDTO param2 = new ScreenCentralZoneDataFormDTO(); - param2.setCustomerId(customerId); - param2.setDateId(null); - log.info("【难点赌点数据上报开始------】 当前客户Id{}", param2.getCustomerId()); - //screenGrassrootsGovernDataAbsorptionService.difficultyDataHub(param); + try { + publicPartiTotalDataExtractService.extractPublicPartiTotalData(customerId, dateId); + } catch (Exception e) { + log.error("公众参与排行抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + if (isLast) { + //基层治理- 难点赌点 screen_difficulty_data | screen_difficulty_img_data + try { + ScreenCentralZoneDataFormDTO param2 = new ScreenCentralZoneDataFormDTO(); + param2.setCustomerId(customerId); + param2.setDateId(null); + log.info("【难点赌点数据上报开始------】 当前客户Id{}", param2.getCustomerId()); + //screenGrassrootsGovernDataAbsorptionService.difficultyDataHub(param); - screenGrassrootsGovernDataAbsorptionService.difficultyDataExtract(param2); - log.info("【难点赌点数据上报结束------】 当前客户Id{}", param2.getCustomerId()); - } catch (Exception e) { - log.error("基层治理-难点赌点抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + screenGrassrootsGovernDataAbsorptionService.difficultyDataExtract(param2); + log.info("【难点赌点数据上报结束------】 当前客户Id{}", param2.getCustomerId()); + } catch (Exception e) { + log.error("基层治理-难点赌点抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + } + } finally { + latch.countDown(); + log.info("extractDaily 2 thread run end ========= dateId:{},customerId:{}", dateId, customerId); } - } - latch.countDown(); - log.info("extractDaily 2 thread run end ========= dateId:{},customerId:{}", dateId, customerId); - }); - threadPool.submit(() -> { - ScreenCentralZoneDataFormDTO param = new ScreenCentralZoneDataFormDTO(); - param.setCustomerId(customerId); - param.setDateId(dateId); - //中央区 screen_user_total_data - try { - screenCentralZoneDataAbsorptionService.centralZoneDataHub(param); - } catch (Exception e) { - log.error("中央区抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } + }); + threadPool.submit(() -> { + try { + ScreenCentralZoneDataFormDTO param = new ScreenCentralZoneDataFormDTO(); + param.setCustomerId(customerId); + param.setDateId(dateId); + //中央区 screen_user_total_data + try { + screenCentralZoneDataAbsorptionService.centralZoneDataHub(param); + } catch (Exception e) { + log.error("中央区抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } - try { - // 项目(事件)分析按网格_按天统计 - screenProjectGridDailyService.extractionProjectGridDaily(customerId, dateId); - } catch (Exception e) { - log.error("项目(事件)分析按网格_按天统计失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } - try { - // 项目(事件)分析按组织_按天统计 - screenProjectOrgDailyService.extractionProjectOrgDaily(customerId, dateId); - } catch (Exception e) { - log.error("项目(事件)分析按组织_按天统计失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } + try { + // 项目(事件)分析按网格_按天统计 + screenProjectGridDailyService.extractionProjectGridDaily(customerId, dateId); + } catch (Exception e) { + log.error("项目(事件)分析按网格_按天统计失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + try { + // 项目(事件)分析按组织_按天统计 + screenProjectOrgDailyService.extractionProjectOrgDaily(customerId, dateId); + } catch (Exception e) { + log.error("项目(事件)分析按组织_按天统计失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } - //按天统计:网格内各个分类下的项目总数 - try { - projectCategoryGridDailyService.extractProjectCategoryData(customerId, dateId); - } catch (Exception e) { - log.error("按天统计:网格内各个分类下的项目总数,customerId为:" + customerId + "dateId为:" + dateId, e); - } + //按天统计:网格内各个分类下的项目总数 + try { + screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectGridData(customerId, dateId); + } catch (Exception e) { + log.error("按天统计:网格内各个分类下的项目总数,customerId为:" + customerId + "dateId为:" + dateId, e); + } - // 按天统计:组织内各个分类下的项目总数 - try { - projectCategoryOrgDailyService.extractProjectCategoryOrgData(customerId, dateId); - } catch (Exception e) { - log.error("按天统计:组织内各个分类下的项目总数,customerId为:" + customerId + "dateId为:" + dateId, e); - } - latch.countDown(); - log.info("extractDaily 3 thread run end ========= dateId:{},customerId:{}", dateId, customerId); - }); - threadPool.submit(() -> { - //治理能力排行screen_govern_rank_data - try { - governRankDataExtractService.extractGridDataDaily(customerId, dateId); - } catch (Exception e) { - log.error("治理能力排行【网格】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } - try { - governRankDataExtractService.extractCommunityDataDaily(customerId, dateId); - } catch (Exception e) { - log.error("治理能力排行【社区】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } - try { - governRankDataExtractService.extractStreetDataDaily(customerId, dateId); - } catch (Exception e) { - log.error("治理能力排行【街道】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } - try { - governRankDataExtractService.extractDistrictDataDaily(customerId, dateId); - } catch (Exception e) { - log.error("治理能力排行【全区】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } + // 按天统计:组织内各个分类下的项目总数 + try { + screenProjectCategoryGridAndOrgDailyService.extractCategoryProjectOrgData(customerId, dateId); + } catch (Exception e) { + log.error("按天统计:组织内各个分类下的项目总数,customerId为:" + customerId + "dateId为:" + dateId, e); + } + } finally { + latch.countDown(); + log.info("extractDaily 3 thread run end ========= dateId:{},customerId:{}", dateId, customerId); + } + }); + threadPool.submit(() -> { + //治理能力排行screen_govern_rank_data + try { + try { + governRankDataExtractService.extractGridDataDaily(customerId, dateId); + } catch (Exception e) { + log.error("治理能力排行【网格】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + try { + governRankDataExtractService.extractCommunityDataDaily(customerId, dateId); + } catch (Exception e) { + log.error("治理能力排行【社区】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + try { + governRankDataExtractService.extractStreetDataDaily(customerId, dateId); + } catch (Exception e) { + log.error("治理能力排行【街道】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + try { + governRankDataExtractService.extractDistrictDataDaily(customerId, dateId); + } catch (Exception e) { + log.error("治理能力排行【全区】抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } - try { - ExtractFactGridGovernDailyFromDTO extractFactGridGovernDailyFromDTO = new ExtractFactGridGovernDailyFromDTO(); - extractFactGridGovernDailyFromDTO.setCustomerId(customerId); - extractFactGridGovernDailyFromDTO.setDateId(dateId); - factGridGovernDailyService.extractFactGridGovernDaily(extractFactGridGovernDailyFromDTO); - } catch (Exception e) { - log.error("治理指数-网格fact_grid_govern_daily抽取失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } + try { + ExtractFactGridGovernDailyFromDTO extractFactGridGovernDailyFromDTO = new ExtractFactGridGovernDailyFromDTO(); + extractFactGridGovernDailyFromDTO.setCustomerId(customerId); + extractFactGridGovernDailyFromDTO.setDateId(dateId); + factGridGovernDailyService.extractFactGridGovernDaily(extractFactGridGovernDailyFromDTO); + } catch (Exception e) { + log.error("治理指数-网格fact_grid_govern_daily抽取失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } - try { - factAgencyGovernDailyService.extractFactAgencyGovernDaily(customerId, dateId); - } catch (Exception e) { - log.error("治理指数-组织fact_agency_govern_daily抽取失败,customerId为:" + customerId + "dateId为:" + dateId, e); - } + try { + factAgencyGovernDailyService.extractFactAgencyGovernDaily(customerId, dateId); + } catch (Exception e) { + log.error("治理指数-组织fact_agency_govern_daily抽取失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + try { + factGridMemberStatisticsDailyService.extractGridMemberStatisticsDaily(customerId, dateId); + } catch (Exception e) { + log.error("网格员数据统计fact_grid_member_statistics_daily抽取失败,customerId为:" + customerId + "dateId为:" + dateId, e); + } + extractPartData(customerId, dateId); + } finally { + latch.countDown(); + log.info("extractDaily 4 thread run end ========= dateId:{},customerId:{}", dateId, customerId); + } + }); try { - factGridMemberStatisticsDailyService.extractGridMemberStatisticsDaily(customerId, dateId); - } catch (Exception e) { - log.error("网格员数据统计fact_grid_member_statistics_daily抽取失败,customerId为:" + customerId + "dateId为:" + dateId, e); + latch.await(); + } catch (InterruptedException e) { + log.error("extractDaily run exception", e); } - extractPartData(customerId, dateId); - latch.countDown(); - log.info("extractDaily 4 thread run end ========= dateId:{},customerId:{}", dateId, customerId); - }); - try { - latch.await(); - } catch (InterruptedException e) { - log.error("extractDaily run exception", e); + log.info("===== extractDaily method end customerId:{}======",customerId); + } catch (Exception e) { + log.error("extractDaily exception msg:{}", e); + } finally { + distributedLock.unLock(lock); } - log.info("===== extractDaily method end customerId:{}======",customerId); + } @Override diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java index 744e0c61b6..6ad38758e4 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java @@ -198,7 +198,7 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic } } - log.error(String.format("/data/stats/demo/project-test,screen_project_**表抽取完毕,customerId:%s", param.getCustomerId())); + log.warn(String.format("/data/stats/demo/project-test,screen_project_**表抽取完毕,customerId:%s", param.getCustomerId())); } /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java index fcb81fc243..9a46990c1d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java @@ -155,4 +155,13 @@ public interface ScreenCustomerAgencyService extends BaseService getAgencyList(String customerId); + /** + * @Description 获取父级组织ID(外部客户) + * @Param agencyId + * @Return {@link String} + * @Author zhaoqifeng + * @Date 2021/11/10 17:00 + */ + String getParentAgencyId(String agencyId); + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectCategoryGridAndOrgDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectCategoryGridAndOrgDailyService.java new file mode 100644 index 0000000000..9cdc9f3522 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectCategoryGridAndOrgDailyService.java @@ -0,0 +1,34 @@ +package com.epmet.service.evaluationindex.screen; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.screen.ScreenProjectCategoryOrgDailyDTO; +import com.epmet.dto.screencoll.ScreenCollFormDTO; +import com.epmet.entity.evaluationindex.screen.ScreenProjectCategoryOrgDailyEntity; + +import java.util.List; +import java.util.Map; + +/** + * 项目(事件)分类按 网格——组织——按天统计 + */ +public interface ScreenProjectCategoryGridAndOrgDailyService { + + /** + * @Description 分类下的项目数【grid】 + * @param customerId + * @param dateId + * @author zxc + * @date 2021/11/10 10:23 上午 + */ + void extractCategoryProjectGridData(String customerId, String dateId); + + /** + * @Description 分类下的项目数【org】 + * @param customerId + * @param dateId + * @author zxc + * @date 2021/11/10 10:23 上午 + */ + void extractCategoryProjectOrgData(String customerId, String dateId); +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectCategoryService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectCategoryService.java new file mode 100644 index 0000000000..7cea3ea62c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectCategoryService.java @@ -0,0 +1,105 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.service.evaluationindex.screen; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.screen.ScreenProjectCategoryDTO; +import com.epmet.entity.evaluationindex.screen.ScreenProjectCategoryEntity; + +import java.util.List; +import java.util.Map; + +/** + * 项目所属分类表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-11-10 + */ +public interface ScreenProjectCategoryService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2021-11-10 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2021-11-10 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return ScreenProjectCategoryDTO + * @author generator + * @date 2021-11-10 + */ + ScreenProjectCategoryDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2021-11-10 + */ + void save(ScreenProjectCategoryDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2021-11-10 + */ + void update(ScreenProjectCategoryDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2021-11-10 + */ + void delete(String[] ids); + + /** + * 删除项目分类 + * @Param customerId + * @Param projectIds + * @Return + * @Author zhaoqifeng + * @Date 2021/11/10 11:06 + */ + void deleteByProjectId(String customerId, List projectIds); +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java index a29640a75b..845a2fc844 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java @@ -148,4 +148,13 @@ public interface ScreenProjectDataService extends BaseService relationInfo = relationService.selectSubCustomer(customerId); + List customerIds = new ArrayList<>(); + customerIds.add(customerId); + List allList = new ArrayList<>(); + List closedList = new ArrayList<>(); + if (CollectionUtils.isEmpty(relationInfo)){ + // 单客户 + allList = screenProjectDataDao.selectGridCategoryProjectCount(dateId, customerId, ProjectConstant.PROJECT_STATUS_ALL,customerId, NumConstant.FOUR); + closedList = screenProjectDataDao.selectGridCategoryProjectCount(dateId, customerId, ProjectConstant.PROJECT_STATUS_CLOSED,customerId, NumConstant.FOUR); + }else { + // 多客户 + List subCustomerIds = relationInfo.stream().map(CustomerRelationEntity::getCustomerId).collect(Collectors.toList()); + customerIds.addAll(subCustomerIds); + List finalAllList = allList; + List finalClosedList1 = closedList; + customerIds.forEach(c -> { + List all = screenProjectDataDao.selectGridCategoryProjectCount(dateId, customerId, ProjectConstant.PROJECT_STATUS_ALL, c, NumConstant.TWO); + finalAllList.addAll(all); + List closed = screenProjectDataDao.selectGridCategoryProjectCount(dateId, customerId, ProjectConstant.PROJECT_STATUS_CLOSED, c, NumConstant.TWO); + finalClosedList1.addAll(closed); + }); + } + List finalClosedList = closedList; + allList.forEach(a -> finalClosedList.stream().filter(c -> c.getGridId().equals(a.getGridId()) && c.getCategoryCode().equals(a.getCategoryCode())).forEach(c -> a.setClosedProjectTotal(c.getClosedProjectTotal()))); + gridDel(customerId,dateId); + log.info("网格-所有项目分类即将插入的集合{}",JSON.toJSONString(allList)); + gridInsert(allList); + long end = System.currentTimeMillis(); + log.info("网格项目分类统计结束,耗时:"+ (end-start)/1000 + "s"); + } + + /** + * @Description 项目分类网格删除 + * @param customerId + * @param dateId + * @author zxc + * @date 2021/11/10 1:55 下午 + */ + @Transactional(rollbackFor = Exception.class) + public void gridDel(String customerId,String dateId){ + Integer num = NumConstant.ZERO; + do { + num = gridDailyDao.deleteByDateIdAndCustomerId(customerId, dateId); + }while (num > NumConstant.ZERO && num == NumConstant.ONE_THOUSAND); + } + + /** + * @Description 项目分类网格添加 + * @param needInsert + * @author zxc + * @date 2021/11/10 1:55 下午 + */ + @Transactional(rollbackFor = Exception.class) + public void gridInsert(List needInsert){ + List> partition = ListUtils.partition(needInsert, NumConstant.ONE_HUNDRED); + partition.forEach(p -> { + gridDailyService.insertBatch(ConvertUtils.sourceToTarget(p,ScreenProjectCategoryGridDailyEntity.class)); + log.info("插入的网格项目分类为" + JSON.toJSONString(p)); + }); + } + + /** + * @Description 分类下的项目数【org】 + * 项目分类来源 + * 本级【直接立项】 + 下级 + 直属网格 + * @param customerId + * @param dateId + * @author zxc + * @date 2021/11/10 10:23 上午 + */ + @Override + public void extractCategoryProjectOrgData(String customerId, String dateId) { + log.info("开始执行组织项目分类统计"); + long start = System.currentTimeMillis(); + List relationInfo = relationService.selectSubCustomer(customerId); + List customerIds = new ArrayList<>(); + customerIds.add(customerId); + List result = new ArrayList<>(); + if (CollectionUtils.isEmpty(relationInfo)){ + // one customer + List agencies = screenCustomerAgencyDao.selectAgencyByCustomer(customerId); + if (CollectionUtils.isEmpty(agencies)){ + return; + } + List allAgencies = ConvertUtils.sourceToTarget(agencies, GridAndOrgCategoryCountResultDTO.class); + + result = screenProjectDataDao.selectOrgCategoryProjectCount(dateId, ProjectConstant.PROJECT_STATUS_ALL, customerId, NumConstant.FOUR, allAgencies); + List closedList = screenProjectDataDao.selectOrgCategoryProjectCount(dateId, ProjectConstant.PROJECT_STATUS_CLOSED, customerId, NumConstant.FOUR, allAgencies); + result.forEach(r -> closedList.stream().filter(c -> r.getOrgId().equals(c.getOrgId()) && r.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> r.setClosedProjectTotal(c.getClosedProjectTotal()))); + + + List oneLevelList = screenProjectDataDao.selectOrgCategoryOneLevelProjectCount(dateId, ProjectConstant.PROJECT_STATUS_ALL, customerId, NumConstant.FOUR, allAgencies); + List oneLevelClosedList = screenProjectDataDao.selectOrgCategoryOneLevelProjectCount(dateId, ProjectConstant.PROJECT_STATUS_CLOSED, customerId, NumConstant.FOUR, allAgencies); + oneLevelList.forEach(a -> oneLevelClosedList.stream().filter(c -> a.getOrgId().equals(c.getOrgId()) && a.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> a.setClosedProjectTotal(c.getClosedProjectTotal()))); + + result.addAll(oneLevelList); + }else { + // more customers + // 去除孔村的客户ID,孔村镇的单独查😡 + List subCustomerIds = relationInfo.stream().map(CustomerRelationEntity::getCustomerId).collect(Collectors.toList()); + for (int i = NumConstant.ZERO; i < subCustomerIds.size(); i++) { + if (subCustomerIds.get(i).equals(PingYinConstant.KONG_CUN_CUSTOMER_ID)){ + customerIds.remove(i); + continue; + } + } + subCustomerIds.add(customerId); + List allAgencies = screenCustomerAgencyDao.selectParentSonAgency(subCustomerIds, PingYinConstant.KONG_CUN_CUSTOMER_ID); + List> partition = ListUtils.partition(allAgencies, NumConstant.FIFTY); + List allOrgCategoryList = result; + partition.forEach(p -> { + List allOrgList = screenProjectDataDao.selectOrgCategoryProjectCount(dateId, ProjectConstant.PROJECT_STATUS_ALL, customerId, NumConstant.TWO, p); + List closedOrgList = screenProjectDataDao.selectOrgCategoryProjectCount(dateId, ProjectConstant.PROJECT_STATUS_CLOSED, customerId, NumConstant.TWO, p); + allOrgList.forEach(a -> closedOrgList.stream().filter(c -> a.getOrgId().equals(c.getOrgId()) && a.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> a.setClosedProjectTotal(c.getClosedProjectTotal()))); + + List oneLevelList = screenProjectDataDao.selectOrgCategoryOneLevelProjectCount(dateId, ProjectConstant.PROJECT_STATUS_ALL, customerId, NumConstant.TWO, p); + List oneLevelClosedList = screenProjectDataDao.selectOrgCategoryOneLevelProjectCount(dateId, ProjectConstant.PROJECT_STATUS_CLOSED, customerId, NumConstant.TWO, p); + oneLevelList.forEach(a -> oneLevelClosedList.stream().filter(c -> a.getOrgId().equals(c.getOrgId()) && a.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> a.setClosedProjectTotal(c.getClosedProjectTotal()))); + + allOrgList.addAll(oneLevelList); + allOrgCategoryList.addAll(allOrgList); + }); + } + orgDel(customerId,dateId); + log.info("组织-即将插入的项目分类{}",JSON.toJSONString(result)); + orgInsert(result); + long end = System.currentTimeMillis(); + log.info("组织项目分类统计结束,耗时:"+ (end-start)/1000 + "s"); + } + + /** + * @Description 项目分类组织删除 + * @param customerId + * @param dateId + * @author zxc + * @date 2021/11/10 4:58 下午 + */ + @Transactional(rollbackFor = Exception.class) + public void orgDel(String customerId,String dateId){ + Integer num = NumConstant.ZERO; + do { + num = orgDailyDao.deleteByDateIdAndCustomerId(customerId, dateId); + }while (num > NumConstant.ZERO && num == NumConstant.ONE_THOUSAND); + } + + /** + * @Description 项目分类组织插入 + * @param needInsert + * @author zxc + * @date 2021/11/10 5:03 下午 + */ + @Transactional(rollbackFor = Exception.class) + public void orgInsert(List needInsert){ + List> partition = ListUtils.partition(needInsert, NumConstant.ONE_HUNDRED); + partition.forEach(p -> { + orgDailyService.insertBatch(ConvertUtils.sourceToTarget(p, ScreenProjectCategoryOrgDailyEntity.class)); + log.info("插入的组织项目分类为" + JSON.toJSONString(p)); + }); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryOrgDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryOrgDailyServiceImpl.java index 902981793a..1cd79eabd8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryOrgDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryOrgDailyServiceImpl.java @@ -32,6 +32,7 @@ import com.epmet.constant.ScreenConstant; import com.epmet.dao.evaluationindex.screen.ScreenProjectCategoryGridDailyDao; import com.epmet.dao.evaluationindex.screen.ScreenProjectCategoryOrgDailyDao; import com.epmet.dto.extract.result.CustomerAgencyInfoResultDTO; +import com.epmet.dto.project.result.ClosedProjectTotalResultDTO; import com.epmet.dto.screen.ScreenCustomerGridDTO; import com.epmet.dto.screen.ScreenProjectCategoryGridDailyDTO; import com.epmet.dto.screen.ScreenProjectCategoryOrgDailyDTO; @@ -264,6 +265,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl { if (agency.getOrgId().equals(grid.getOrgId()) && agency.getCategoryCode().equals(grid.getCategoryCode())){ agency.setProjectTotal(agency.getProjectTotal() + grid.getProjectTotal()); + agency.setClosedProjectTotal(agency.getClosedProjectTotal() + grid.getClosedProjectTotal()); grid.setStatus(true); } }); @@ -280,7 +282,11 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl levelAgencyInfo = groupByLevel.get(level); if (!CollectionUtils.isEmpty(levelAgencyInfo)){ - List screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds,customerId); + List screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds,customerId,NumConstant.FOUR,"all"); + List closedScreenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds,customerId,NumConstant.FOUR,"closed"); + if (!CollectionUtils.isEmpty(closedScreenProjectCategory)){ + screenProjectCategory.forEach(l -> closedScreenProjectCategory.stream().filter(c -> l.getGridId().equals(c.getGridId()) && l.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> l.setClosedProjectTotal(c.getClosedProjectTotal()))); + } if (!CollectionUtils.isEmpty(result)){ if (!CollectionUtils.isEmpty(screenProjectCategory)){ result.forEach(r -> { @@ -288,6 +294,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl sonCustomerList = new ArrayList<>(); // 父客户存在的分类 - List categoryProjectExists = baseDao.selectOrgCategoryMoreCustomerInfo(customerIds, dateId, level, customerId, true); + List categoryProjectExists = baseDao.selectOrgCategoryMoreCustomerInfo(customerIds, dateId, level, customerId); log.info("父客户存在的分类{}"+ JSON.toJSONString(categoryProjectExists)); + // 父客户存在的分类 已结案的项目数 + List closedProjectTotalExist = baseDao.selectClosedProjectTotal(customerIds, dateId, true); // 父客户不存在的分类 - List categoryProjectNotExists = baseDao.selectOrgCategoryMoreCustomerInfo(customerIds, dateId, level, customerId, false); + List categoryProjectNotExists = baseDao.selectOrgCategoryMoreCustomerInfoNotExists(customerIds, dateId, level, customerId); log.info("父客户不存在的分类{}"+ JSON.toJSONString(categoryProjectNotExists)); + // 父客户 不存在 的分类 已结案的项目数 + List closedProjectTotalNotExist = baseDao.selectClosedProjectTotal(customerIds, dateId, false); if (!CollectionUtils.isEmpty(categoryProjectExists)){ + if (!CollectionUtils.isEmpty(closedProjectTotalExist)){ + categoryProjectExists.forEach(l -> closedProjectTotalExist.stream().filter(c -> l.getOrgId().equals(c.getOrgId()) && l.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> l.setClosedProjectTotal(c.getClosedProjectTotal()))); + } sonCustomerList.addAll(categoryProjectExists); } if (!CollectionUtils.isEmpty(categoryProjectNotExists)){ + if (!CollectionUtils.isEmpty(closedProjectTotalNotExist)){ + categoryProjectNotExists.forEach(l -> closedProjectTotalNotExist.stream().filter(c -> l.getOrgId().equals(c.getOrgId()) && l.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> l.setClosedProjectTotal(c.getClosedProjectTotal()))); + } sonCustomerList.addAll(categoryProjectNotExists); } if (!CollectionUtils.isEmpty(sonCustomerList)){ @@ -443,6 +461,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl { if (f.getCategoryCode().equals(c.getCategoryCode())){ f.setProjectTotal(f.getProjectTotal() + c.getProjectTotal()); + f.setClosedProjectTotal(f.getClosedProjectTotal() + c.getClosedProjectTotal()); c.setStatus(true); } }); @@ -481,6 +500,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl levelAgencyInfo = groupByLevel.get(level); if (!CollectionUtils.isEmpty(levelAgencyInfo)) { // 查询客户下,组织直接立项的,各项目分类下的项目数量【筛选组织创建的项目,fact_origin_project_main_daily表gridId为空】 - List screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds, customerId); + List screenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds, customerId,NumConstant.TWO,"all"); + List closedScreenProjectCategory = factOriginProjectCategoryDailyService.selectListProjectCategoryByOrg(orgIds, customerId,NumConstant.TWO,"closed"); + if (!CollectionUtils.isEmpty(closedScreenProjectCategory)){ + screenProjectCategory.forEach(l -> closedScreenProjectCategory.stream().filter(c -> l.getGridId().equals(c.getGridId()) && l.getCategoryCode().equals(c.getCategoryCode())).forEach(c -> l.setClosedProjectTotal(c.getClosedProjectTotal()))); + } log.info("直接立项的统计:"+screenProjectCategory); if (!CollectionUtils.isEmpty(result)) { if (!CollectionUtils.isEmpty(screenProjectCategory)) { @@ -505,6 +529,7 @@ public class ScreenProjectCategoryOrgDailyServiceImpl extends BaseServiceImpl NumConstant.ZERO && row == NumConstant.ONE_THOUSAND); } -} \ No newline at end of file +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryServiceImpl.java new file mode 100644 index 0000000000..b696efeeb3 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectCategoryServiceImpl.java @@ -0,0 +1,119 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.service.evaluationindex.screen.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.evaluationindex.screen.ScreenProjectCategoryDao; +import com.epmet.dto.screen.ScreenProjectCategoryDTO; +import com.epmet.entity.evaluationindex.screen.ScreenProjectCategoryEntity; +import com.epmet.service.evaluationindex.screen.ScreenProjectCategoryService; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 项目所属分类表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-11-10 + */ +@Service +public class ScreenProjectCategoryServiceImpl extends BaseServiceImpl implements ScreenProjectCategoryService { + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, ScreenProjectCategoryDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, ScreenProjectCategoryDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public ScreenProjectCategoryDTO get(String id) { + ScreenProjectCategoryEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, ScreenProjectCategoryDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(ScreenProjectCategoryDTO dto) { + ScreenProjectCategoryEntity entity = ConvertUtils.sourceToTarget(dto, ScreenProjectCategoryEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(ScreenProjectCategoryDTO dto) { + ScreenProjectCategoryEntity entity = ConvertUtils.sourceToTarget(dto, ScreenProjectCategoryEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除项目分类 + * + * @param customerId + * @param projectIds + * @Param customerId + * @Param projectIds + * @Return + * @Author zhaoqifeng + * @Date 2021/11/10 11:06 + */ + @Override + public void deleteByProjectId(String customerId, List projectIds) { + if (CollectionUtils.isEmpty(projectIds)) { + return; + } + baseDao.deleteByProjectIds(customerId, projectIds); + } + +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java index f04234049e..e2597eae16 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.service.evaluationindex.screen.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.dynamic.datasource.annotation.DataSource; @@ -24,20 +25,29 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.rocketmq.messages.DisputeProcessMQMsg; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.evaluationindex.screen.ScreenProjectDataDao; import com.epmet.dao.evaluationindex.screen.ScreenProjectImgDataDao; import com.epmet.dto.screen.ScreenProjectDataDTO; +import com.epmet.dto.screen.ScreenProjectImgDataDTO; import com.epmet.dto.screen.form.ScreenProjectDataInfoFormDTO; import com.epmet.dto.screencoll.ScreenCollFormDTO; +import com.epmet.entity.evaluationindex.screen.ScreenProjectCategoryEntity; import com.epmet.entity.evaluationindex.screen.ScreenProjectDataEntity; -import com.epmet.entity.evaluationindex.screen.ScreenProjectImgDataEntity; +import com.epmet.entity.stats.CustomerProjectCategoryDictEntity; import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.feign.OperCrmOpenFeignClient; import com.epmet.send.SendMqMsgUtil; +import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; +import com.epmet.service.evaluationindex.screen.ScreenProjectCategoryService; import com.epmet.service.evaluationindex.screen.ScreenProjectDataService; +import com.epmet.service.stats.CustomerProjectCategoryDictService; import com.github.pagehelper.PageHelper; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; @@ -47,11 +57,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.math.BigDecimal; -import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * 中央区-项目数据 @@ -59,6 +66,7 @@ import java.util.Map; * @author qu qu@elink-cn.com * @since v1.0.0 2021-02-23 */ +@Slf4j @Service @DataSource(value = DataSourceConstant.EVALUATION_INDEX) public class ScreenProjectDataServiceImpl extends BaseServiceImpl implements ScreenProjectDataService { @@ -67,6 +75,14 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl page(Map params) { @@ -121,95 +137,84 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl param) { - /*if (param.getIsFirst()) { - int affectedRows = baseDao.deleteByDateIdAndCustomerId(param.getCustomerId(), param.getDateId()); - while (affectedRows > 0) { - affectedRows = baseDao.deleteByDateIdAndCustomerId(param.getCustomerId(), param.getDateId()); - } - }*/ - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date today = new Date(); param.getDataList().forEach(item -> { String projectStatusCode = item.getProjectStatusCode(); //2021.3.8 epmet中,调用方传level,这边不再计算 - if(item.getProjectLevel() == null){ - //todo 动态获取超时时间 - //如果结案 结案时间立项时间; - if ("closed_case".equals(projectStatusCode)) { - Date createTime = item.getProjectCreateTime(); - Date closeCaseTime = item.getCloseCaseTime(); - - if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4) { - //如果结案时间-立项时间小于等于4天 未超期 level3 - item.setProjectLevel(3); - } else if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5) { - //如果结案时间-立项时间大于4天小于5天 即将超期 level2 - item.setProjectLevel(2); - } else { - //大于5天 已超期 level1 - item.setProjectLevel(1); - } - } else if ("pending".equals(projectStatusCode)) { - //如果处理中 当前时间-立项时间; - Date createTime = item.getProjectCreateTime(); - - if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4) { - //如果当前时间-立项时间小于等于4天 未超期 level3 - item.setProjectLevel(3); - } else if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5) { - //如果当前时间-立项时间大于4天小于5天 即将超期 level2 - item.setProjectLevel(2); - } else { - //大于5天 已超期 level1 - item.setProjectLevel(1); - } - } - } - //先删除该projectId对应的旧数据 - baseDao.deleteByProjectId(param.getCustomerId(), item.getProjectId()); - screenProjectImgDataDao.deleteByProjectId(param.getCustomerId(), item.getProjectId()); - - //如果orgType未知,获取一下 -// if ("unknown".equals(item.getOrgType())){ -// ScreenCustomerAgencyEntity screenCustomerAgencyEntity = agencyDao.selectById(item.getOrgId()); -// if (screenCustomerAgencyEntity != null){ -// item.setOrgType("agency"); -// }else { -// ScreenCustomerDeptEntity screenCustomerDeptEntity = deptDao.selectById(item.getOrgId()); -// if (screenCustomerDeptEntity!=null){ -// item.setOrgType("department"); -// }else { -// ScreenCustomerGridEntity screenCustomerGridEntity = gridDao.selectById(item.getOrgId()); -// if (screenCustomerGridEntity != null){ -// item.setOrgType("grid"); -// } -// } -// } -// } + setLevelByCreateTime(item, projectStatusCode); //插入项目表 ScreenProjectDataEntity screenProjectDataEntity = ConvertUtils.sourceToTarget(item, ScreenProjectDataEntity.class); screenProjectDataEntity.setCustomerId(param.getCustomerId()); screenProjectDataEntity.setDataEndTime(param.getDateId()); - baseDao.insert(screenProjectDataEntity); - //插入图片表 - String[] projectImgUrl = item.getProjectImgUrl(); - if (ArrayUtils.isNotEmpty(projectImgUrl)) { - for (int i = 0; i < projectImgUrl.length; i++) { - ScreenProjectImgDataEntity screenProjectImgDataEntity = new ScreenProjectImgDataEntity(); - screenProjectImgDataEntity.setCustomerId(param.getCustomerId()); - screenProjectImgDataEntity.setProjectId(item.getProjectId()); - screenProjectImgDataEntity.setProjectImgUrl(projectImgUrl[i]); - screenProjectImgDataEntity.setSort(i); - screenProjectImgDataDao.insert(screenProjectImgDataEntity); - } + String agencyId = screenCustomerAgencyService.getParentAgencyId(screenProjectDataEntity.getAllParentIds().split(StrConstant.COMMA)[0]); + if(StringUtils.isNotBlank(agencyId)) { + screenProjectDataEntity.setAllParentIds(agencyId.concat(StrConstant.COMMA).concat(screenProjectDataEntity.getAllParentIds())); } + //删除 并插入新的项目数据 + delAndInsertProjectData(param, item, screenProjectDataEntity); }); } + @Transactional(rollbackFor = Exception.class) + public void delAndInsertProjectData(ScreenCollFormDTO param, ScreenProjectDataInfoFormDTO item, ScreenProjectDataEntity screenProjectDataEntity) { + //先删除该projectId对应的旧数据 + baseDao.deleteByProjectId(param.getCustomerId(), item.getProjectId()); + screenProjectImgDataDao.deleteByProjectId(param.getCustomerId(), item.getProjectId()); + baseDao.insert(screenProjectDataEntity); + saveCategory(param.getCustomerId(), Collections.singletonList(screenProjectDataEntity)); + //插入该项目图片表 + String[] projectImgUrl = item.getProjectImgUrl(); + if (ArrayUtils.isNotEmpty(projectImgUrl)) { + List imgList = new ArrayList<>(); + for (int i = 0; i < projectImgUrl.length; i++) { + ScreenProjectImgDataDTO screenProjectImgDataEntity = new ScreenProjectImgDataDTO(); + screenProjectImgDataEntity.setCustomerId(param.getCustomerId()); + screenProjectImgDataEntity.setProjectId(item.getProjectId()); + screenProjectImgDataEntity.setProjectImgUrl(projectImgUrl[i]); + screenProjectImgDataEntity.setSort(i); + imgList.add(screenProjectImgDataEntity); + } + screenProjectImgDataDao.insertBatch(imgList); + } + } + + private void setLevelByCreateTime(ScreenProjectDataInfoFormDTO item, String projectStatusCode) { + if(item.getProjectLevel() == null){ + //todo 动态获取超时时间 + //如果结案 结案时间立项时间; + if ("closed_case".equals(projectStatusCode)) { + Date createTime = item.getProjectCreateTime(); + Date closeCaseTime = item.getCloseCaseTime(); + + if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4L) { + //如果结案时间-立项时间小于等于4天 未超期 level3 + item.setProjectLevel(3); + } else if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5L) { + //如果结案时间-立项时间大于4天小于5天 即将超期 level2 + item.setProjectLevel(2); + } else { + //大于5天 已超期 level1 + item.setProjectLevel(1); + } + } else if ("pending".equals(projectStatusCode)) { + //如果处理中 当前时间-立项时间; + Date createTime = item.getProjectCreateTime(); + Date today = new Date(); + if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4L) { + //如果当前时间-立项时间小于等于4天 未超期 level3 + item.setProjectLevel(3); + } else if (today.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5L) { + //如果当前时间-立项时间大于4天小于5天 即将超期 level2 + item.setProjectLevel(2); + } else { + //大于5天 已超期 level1 + item.setProjectLevel(1); + } + } + } + } /** @@ -255,20 +260,24 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl 0) { + while (affectedRows > NumConstant.ZERO) { affectedRows = baseDao.deleteByProjectTimeAndCustomerId(customerId, dateId); } List> partition = ListUtils.partition(meta, NumConstant.ONE_HUNDRED); partition.forEach(part -> { List list = ConvertUtils.sourceToTarget(part, ScreenProjectDataEntity.class); insertBatch(list); + saveCategory(customerId, list); }); } if(!CollectionUtils.isEmpty(orient)){ List> partition = ListUtils.partition(orient, NumConstant.ONE_HUNDRED); - partition.forEach(part -> baseDao.updateBatch(part,dateId)); + partition.forEach(part -> { + baseDao.updateBatch(part,dateId); + saveCategory(customerId, ConvertUtils.sourceToTarget(part, ScreenProjectDataEntity.class)); + }); } } @@ -306,4 +315,73 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(customerId), ScreenProjectDataEntity::getCustomerId, customerId); + List projectList = baseDao.selectList(wrapper); + saveCategory(customerId, projectList); + } + + private void saveCategory(String customerId, List projectList) { + + Result parentCustomer = operCrmOpenFeignClient.getExternalAndParentCustomerId(customerId); + //删除旧分类 + List projectIds = projectList.stream().map(ScreenProjectDataEntity::getProjectId).collect(Collectors.toList()); + screenProjectCategoryService.deleteByProjectId(customerId, projectIds); + //提取分类信息 + List projectCategoryList = new ArrayList<>(); + projectList.forEach(project -> { + //分类为空不作处理 + if (StringUtils.isBlank(project.getCategoryCode())) { + return; + } + + List categoryList = Arrays.asList(project.getCategoryCode().split(StrConstant.COMMA)); + categoryList.forEach(category -> { + ScreenProjectCategoryEntity entity = new ScreenProjectCategoryEntity(); + entity.setCustomerId(customerId); + entity.setProjectId(project.getProjectId()); + entity.setOriginCategoryCode(category); + CustomerProjectCategoryDictEntity categoryEntity = customerProjectCategoryDictService.getByCategoryCode(customerId, category); + if (null == categoryEntity) { + log.error("customerId:{} categoryCode:{} is not exist in ProjectCategoryDict", customerId, category); + return; + } + if ("external".equals(categoryEntity.getCustomerType())) { + entity.setCategoryCode(categoryEntity.getEpmetCategoryCode()); + CustomerProjectCategoryDictEntity parent = customerProjectCategoryDictService.getByCategoryCode(parentCustomer.getData(), categoryEntity.getEpmetCategoryCode()); + if (null != parent) { + entity.setParentCategoryCode(parent.getParentCategoryCode()); + entity.setLevel(parent.getLevel()); + } else { + log.error("未找到对应分类"); + } + } else { + entity.setCategoryCode(categoryEntity.getCategoryCode()); + entity.setParentCategoryCode(categoryEntity.getParentCategoryCode()); + entity.setLevel(categoryEntity.getLevel()); + } + projectCategoryList.add(entity); + //如果分类数据已经超过100了 就插入一批 + if (projectCategoryList.size() > NumConstant.ONE_HUNDRED){ + screenProjectCategoryService.insertBatch(projectCategoryList); + projectCategoryList.clear(); + } + }); + }); + //如果不为空 则插入剩余的那一部分 + if (projectCategoryList.size() > NumConstant.ZERO){ + screenProjectCategoryService.insertBatch(projectCategoryList); + } + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectOrgDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectOrgDailyServiceImpl.java index 9fbca67078..ec0377ab83 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectOrgDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectOrgDailyServiceImpl.java @@ -195,7 +195,7 @@ public class ScreenProjectOrgDailyServiceImpl extends BaseServiceImpl { a.setDateId(dateId); projectOrgDaily.forEach(p -> { - if (a.getAreaCode().equals(p.getAreaCode())){ + if (a.getOrgId().equals(p.getOrgId())){ a.setBadTotal(p.getBadTotal() + a.getBadTotal()); a.setEvaluateTotal(p.getEvaluateTotal() + a.getEvaluateTotal()); a.setGoodTotal(p.getGoodTotal() + a.getGoodTotal()); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/BaseReportServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/BaseReportServiceImpl.java index b00c8cace6..1f8fdf806c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/BaseReportServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/BaseReportServiceImpl.java @@ -1,7 +1,6 @@ package com.epmet.service.impl; import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.constant.BaseReportConstant; import com.epmet.dao.stats.BaseReportDao; import com.epmet.dto.basereport.form.*; import com.epmet.service.BaseReportService; @@ -60,7 +59,8 @@ public class BaseReportServiceImpl implements BaseReportService { } while (deleteNum > NumConstant.ZERO); } if (!CollectionUtils.isEmpty(formDTO.getDataList())) { - baseReportDao.insertBatchAgencyRegUser(formDTO.getDataList()); + ListUtils.partition(formDTO.getDataList(),NumConstant.ONE_HUNDRED) + .forEach(part->baseReportDao.insertBatchAgencyRegUser(part)); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java index 09db5e717d..2002b545a8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java @@ -106,6 +106,7 @@ public class StatsDimServiceImpl implements StatsDimService { dimGrid.setGridName(updatedGrid.getGridName()); dimGrid.setUpdatedTime(now); dimGrid.setUpdatedBy(RobotConstant.DIMENSION_ROBOT); + dimGrid.setCode(updatedGrid.getCode()); dimGrids.add(dimGrid); } } @@ -134,6 +135,7 @@ public class StatsDimServiceImpl implements StatsDimService { dimGrid.setUpdatedBy(RobotConstant.DIMENSION_ROBOT); dimGrid.setCreatedTime(initTime); dimGrid.setUpdatedTime(initTime); + dimGrid.setCode(grid.getCode()); return dimGrid; }).collect(Collectors.toList()); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java index f0f530fa4f..c1ab8fb3d0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java @@ -141,6 +141,7 @@ public class DimAgencyServiceImpl extends BaseServiceImpl + count(1) AS closedProjectTotal + + + count(1)as projectTotal + FROM fact_origin_project_category_daily c LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0' AND p.GRID_ID != '') WHERE c.DEL_FLAG = '0' AND c.CUSTOMER_ID = #{customerId} + + AND p.PROJECT_STATUS = 'closed' + AND c.`LEVEL` = '2' AND p.GRID_ID != '' GROUP BY @@ -55,22 +63,30 @@ union all SELECT c.CUSTOMER_ID, - left(c.CATEGORY_CODE, 4) as CATEGORY_CODE, + left(c.CATEGORY_CODE, #{subCount}) as CATEGORY_CODE, '1'as `LEVEL`, p.GRID_ID, p.AGENCY_ID AS PID, P.PIDS, - count(distinct c.project_id)as projectTotal + + count(distinct c.project_id) AS closedProjectTotal + + + count(distinct c.project_id)as projectTotal + FROM fact_origin_project_category_daily c LEFT JOIN fact_origin_project_main_daily p ON ( c.PROJECT_Id = p.id and p.del_flag='0' AND p.GRID_ID != '') WHERE c.DEL_FLAG = '0' AND p.GRID_ID != '' + + AND p.PROJECT_STATUS = 'closed' + AND c.CUSTOMER_ID = #{customerId} GROUP BY c.CUSTOMER_ID, - left(c.CATEGORY_CODE, 4), + left(c.CATEGORY_CODE, #{subCount}), c.`LEVEL`, p.GRID_ID, p.AGENCY_ID, @@ -87,7 +103,12 @@ p.AGENCY_ID AS orgId, p.PID AS PID, P.PIDS, - COUNT(DISTINCT p.ID) AS projectTotal + + COUNT(DISTINCT p.ID) AS projectTotal + + + COUNT(DISTINCT p.ID) AS closedProjectTotal + FROM fact_origin_project_main_daily p LEFT JOIN fact_origin_project_category_daily c ON ( c.PROJECT_Id = p.id AND p.del_flag='0' AND p.GRID_ID = '') WHERE c.DEL_FLAG = '0' @@ -99,17 +120,25 @@ ) AND c.`LEVEL` = '2' AND p.GRID_ID = '' + + AND p.PROJECT_STATUS = 'closed' + GROUP BY c.CUSTOMER_ID, c.CATEGORY_CODE, c.`LEVEL`, p.AGENCY_ID, p.PID, P.PIDS UNION ALL SELECT c.CUSTOMER_ID, c.CUSTOMER_ID AS categoryOriginCustomerId, - left(c.CATEGORY_CODE, 4) AS CATEGORY_CODE, + left(c.CATEGORY_CODE, #{subCount}) AS CATEGORY_CODE, '1' AS `LEVEL`, p.AGENCY_ID AS orgId, p.PID AS PID, P.PIDS, - COUNT(distinct p.ID) AS projectTotal + + COUNT(DISTINCT p.ID) AS projectTotal + + + COUNT(DISTINCT p.ID) AS closedProjectTotal + FROM fact_origin_project_main_daily p LEFT JOIN fact_origin_project_category_daily c ON ( c.PROJECT_Id = p.id AND p.del_flag='0' AND p.GRID_ID = '') WHERE c.DEL_FLAG = '0' @@ -120,6 +149,9 @@ ) AND p.GRID_ID = '' - GROUP BY c.CUSTOMER_ID, left(c.CATEGORY_CODE, 4), c.`LEVEL`, p.PID, p.AGENCY_ID, P.PIDS + + AND p.PROJECT_STATUS = 'closed' + + GROUP BY c.CUSTOMER_ID, left(c.CATEGORY_CODE, #{subCount}), c.`LEVEL`, p.PID, p.AGENCY_ID, P.PIDS diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml index 92dd3ee38a..121c909d15 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml @@ -488,30 +488,62 @@ + + + + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml index 71ae010181..fd05c3968d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml @@ -179,7 +179,8 @@ updated_by, updated_time, data_end_time, - all_parent_ids + all_parent_ids, + code from screen_customer_grid where DEL_FLAG = 0 and SOURCE_TYPE='internal' order by CREATED_TIME desc @@ -204,7 +205,8 @@ updated_by, updated_time, data_end_time, - all_parent_ids + all_parent_ids, + code from screen_customer_grid where DEL_FLAG = 0 and SOURCE_TYPE='internal' order by UPDATED_TIME desc diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryDao.xml new file mode 100644 index 0000000000..afe80a6416 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryDao.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + delete from screen_project_category + where CUSTOMER_ID = #{customerId} + + PROJECT_ID = #{projectId} + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryGridDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryGridDailyDao.xml index 8ec1fcc4bd..763d1c0d49 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryGridDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryGridDailyDao.xml @@ -20,6 +20,7 @@ sg.CUSTOMER_ID AS categoryOriginCustomerId, sg.CATEGORY_CODE, SUM(sg.PROJECT_TOTAL) AS projectTotal, + SUM(sg.CLOSED_PROJECT_TOTAL) AS closedProjectTotal, sg.level, sg.DATE_ID, sca.`LEVEL` AS orgType diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml index cdce01974a..c2f3323cd7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.xml @@ -32,6 +32,7 @@ sa.CATEGORY_ORIGIN_CUSTOMER_ID, sa.CATEGORY_CODE, SUM(sa.PROJECT_TOTAL) AS projectTotal, + SUM(sa.CLOSED_PROJECT_TOTAL) AS closedProjectTotal, sa.level, sa.DATE_ID, sca.`LEVEL` AS orgType @@ -44,7 +45,7 @@ GROUP BY sa.CATEGORY_CODE,sca.AGENCY_ID - + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml index 5930ae87c9..a15debd1c6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml @@ -269,4 +269,120 @@ ORDER BY a.CREATED_TIME ASC + + + + + + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml index a3b0b4b23c..5b39b9e9a1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml @@ -54,6 +54,7 @@ grid_name, longitude, latitude, + code, area_code, del_flag, revision, @@ -87,6 +88,7 @@ WHERE CG.CUSTOMER_ID =#{customerId} and cg.del_flag='0' + AND cg.SYNC_FLAG = '1' - \ No newline at end of file + diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/config/NacosServiceListListenerRegisterer.java b/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/config/NacosServiceListListenerRegisterer.java index d372fca779..105501553f 100644 --- a/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/config/NacosServiceListListenerRegisterer.java +++ b/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try { diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java index 7d9a1fef05..5a43aa5038 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/config/NacosServiceListListenerRegisterer.java @@ -86,11 +86,11 @@ public class NacosServiceListListenerRegisterer { serviceListView = namingService.getServicesOfServer(1, 100); //启动监听 if (serviceListView == null || serviceListView.getCount() == 0) { - log.info("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); + log.debug("【Nacos服务列表定时刷新】当前无任何可添加监听的服务"); return; } List serviceList = serviceListView.getData(); - log.info("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); + log.debug("【Nacos服务列表定时刷新】Nacos服务端服务列表: {}", serviceList); for (String service : serviceList) { try {