From cae7da256e7240030a46820211daddb51632a96e Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 30 Jun 2021 13:16:37 +0800 Subject: [PATCH 01/36] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BB=A3=E7=A0=81=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/form/StaffPatrolStatsFormDTO.java | 22 +++ .../dto/user/result/CustomerStaffDTO.java | 137 ++++++++++++++++ .../StatsStaffPatrolRecordDailyDTO.java | 147 ++++++++++++++++++ .../controller/BizDataStatsController.java | 35 +++++ .../epmet/dao/org/CustomerStaffGridDao.java | 38 +++++ .../user/StatsStaffPatrolRecordDailyDao.java | 38 +++++ .../main/java/com/epmet/dao/user/UserDao.java | 15 ++ .../entity/org/CustomerStaffGridEntity.java | 40 +++++ .../StatsStaffPatrolRecordDailyEntity.java | 116 ++++++++++++++ .../extract/biz/BizDataStatsService.java | 31 ++++ .../biz/impl/BizDataStatsServiceImpl.java | 87 +++++++++++ .../service/org/CustomerStaffService.java | 22 +++ .../org/impl/CustomerStaffServiceImpl.java | 39 +++++ .../service/user/StatsStaffPatrolService.java | 13 ++ .../com/epmet/service/user/UserService.java | 15 ++ .../impl/StatsStaffPatrolServiceImpl.java | 32 ++++ .../service/user/impl/UserServiceImpl.java | 15 ++ .../mapper/org/CustomerStaffGridDao.xml | 29 ++++ .../user/StatsStaffPatrolRecordDailyDao.xml | 58 +++++++ .../main/resources/mapper/user/UserDao.xml | 30 ++++ 20 files changed, 959 insertions(+) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/StaffPatrolStatsFormDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StatsStaffPatrolRecordDailyDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerStaffGridDao.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/StatsStaffPatrolRecordDailyDao.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerStaffGridEntity.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/StatsStaffPatrolRecordDailyEntity.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerStaffService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerStaffServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/StatsStaffPatrolService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerStaffGridDao.xml create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/StaffPatrolStatsFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/StaffPatrolStatsFormDTO.java new file mode 100644 index 0000000000..252162a682 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/StaffPatrolStatsFormDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.extract.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * desc: 工作人员巡查统计参数 + * + * @author LiuJanJun + * @date 2021/6/29 10:19 上午 + */ +@Data +public class StaffPatrolStatsFormDTO implements Serializable { + + private static final long serialVersionUID = -3639860733213306581L; + private String customerId; + private String dateId; + private String staffId; + private String gridId; + private String roleType; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java new file mode 100644 index 0000000000..a5458793dd --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerStaffDTO.java @@ -0,0 +1,137 @@ +/** + * 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.user.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 政府工作人员表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-04-18 + */ +@Data +public class CustomerStaffDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + private String id; + + /** + * 关联User表的主键Id + */ + private String userId; + + /** + * 真实姓名 + */ + private String realName; + + /** + * 性别0.未知,1男,2.女 + */ + private Integer gender; + + /** + * 邮箱 + */ + private String email; + + /** + * 手机号-唯一键 + */ + private String mobile; + + /** + * 地址 + */ + private String address; + + /** + * 删除标识 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * fulltime专职parttime兼职 + */ + private String workType; + + /** + * 头像 + */ + private String headPhoto; + + /** + * inactive未激活,active已激活 + */ + private String activeFlag; + + /** + * 激活时间 + */ + private Date activeTime; + + /** + * 未禁用enable,已禁用diabled + */ + private String enableFlag; + + /** + * 客户id + */ + private String customerId; + + /** + * 角色名称 + */ + private String roleName; + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StatsStaffPatrolRecordDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StatsStaffPatrolRecordDailyDTO.java new file mode 100644 index 0000000000..ad8c156e77 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StatsStaffPatrolRecordDailyDTO.java @@ -0,0 +1,147 @@ +/** + * 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.user.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * [天]工作人员巡查记录统计 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-06-29 + */ +@Data +public class StatsStaffPatrolRecordDailyDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户Id + */ + private String customerId; + + /** + * 统计日期 关联日期dim表 + */ + private String dateId; + + /** + * 周ID + */ + private String weekId; + + /** + * 月ID + */ + private String monthId; + + /** + * 季ID + */ + private String quarterId; + + /** + * 年ID + */ + private String yearId; + + /** + * 网格id + */ + private String gridId; + + /** + * 工作人员所属组织id=网格所属的组织id + */ + private String agencyId; + + /** + * 网格所有上级id + */ + private String gridPids; + + /** + * 工作人员用户id + */ + private String staffId; + + /** + * 巡查次数 + */ + private Integer patrolTotal; + + /** + * 巡查时长 单位:秒 + */ + private Integer totalTime; + + /** + * 巡查期间直接立项项目数 + */ + private Integer reportProjectCount; + + /** + * 最新的巡查开始时间 + */ + private Date latestPatrolTime; + + /** + * 最新的巡查状态 正在巡查中:patrolling;结束:end + */ + private String latestPatrolStatus; + + /** + * 删除标识 0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java new file mode 100644 index 0000000000..94e30fb994 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java @@ -0,0 +1,35 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.service.evaluationindex.extract.biz.BizDataStatsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description 用户统计 + * @ClassName StatsUserController + * @Auth wangc + * @Date 2020-06-23 15:18 + */ +@RestController +@RequestMapping("bizData/stats") +public class BizDataStatsController { + + @Autowired + private BizDataStatsService bizDataStatsService; + + /** + * @return com.epmet.commons.tools.utils.Result + * @param formDTO + * @description 工作端数据一期,用户分析:参与用户、注册用户分析 + * @Date 2021/3/26 13:27 + **/ + @RequestMapping("patrol") + public Result execute(@RequestBody StaffPatrolStatsFormDTO formDTO) { + bizDataStatsService.initStaffPatrolStats(formDTO); + return new Result(); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerStaffGridDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerStaffGridDao.java new file mode 100644 index 0000000000..171f45db3c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerStaffGridDao.java @@ -0,0 +1,38 @@ +/** + * 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.org; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; +import com.epmet.entity.org.CustomerStaffGridEntity; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 客户网格人员关系表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-03-16 + */ +@Mapper +public interface CustomerStaffGridDao extends BaseDao { + + List selectGridStaffList(StaffPatrolStatsFormDTO formDTO); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/StatsStaffPatrolRecordDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/StatsStaffPatrolRecordDailyDao.java new file mode 100644 index 0000000000..60176314f3 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/StatsStaffPatrolRecordDailyDao.java @@ -0,0 +1,38 @@ +/** + * 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.user; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; +import com.epmet.entity.user.StatsStaffPatrolRecordDailyEntity; +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-06-29 + */ +@Mapper +public interface StatsStaffPatrolRecordDailyDao extends BaseDao { + + Integer insertBatch(@Param("list") List insertList); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java index dabacfd7da..608fe55e3f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java @@ -1,9 +1,12 @@ package com.epmet.dao.user; import com.epmet.dto.extract.form.GridHeartedFormDTO; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.extract.result.UserPartyResultDTO; import com.epmet.dto.screen.ScreenProjectDataDTO; import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO; +import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; import com.epmet.entity.evaluationindex.screen.ScreenPartyUserRankDataEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -159,5 +162,17 @@ public interface UserDao { * @date 2021/6/8 5:21 下午 */ List selectStaffInfo(@Param("list") List staffUserIdList); + + /** + * desc: 根据角色key条件获取所有的人 + * + * @param formDTO + * @return java.util.List + * @author LiuJanJun + * @date 2021/6/29 2:58 下午 + */ + List selectUserByRoleKey(StaffPatrolStatsFormDTO formDTO); + + List selectLastStaffPatrolList(StaffPatrolStatsFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerStaffGridEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerStaffGridEntity.java new file mode 100644 index 0000000000..bb94ef3ff2 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerStaffGridEntity.java @@ -0,0 +1,40 @@ +/** + * 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.org; + +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 2020-03-16 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("customer_staff_grid") +public class CustomerStaffGridEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + private String customerId; + private String gridId; + private String userId; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/StatsStaffPatrolRecordDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/StatsStaffPatrolRecordDailyEntity.java new file mode 100644 index 0000000000..9425887126 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/StatsStaffPatrolRecordDailyEntity.java @@ -0,0 +1,116 @@ +/** + * 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.user; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * [天]工作人员巡查记录统计 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-06-29 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("stats_staff_patrol_record_daily") +public class StatsStaffPatrolRecordDailyEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id + */ + private String customerId; + + /** + * 统计日期 关联日期dim表 + */ + private String dateId; + + /** + * 周ID + */ + private String weekId; + + /** + * 月ID + */ + private String monthId; + + /** + * 季ID + */ + private String quarterId; + + /** + * 年ID + */ + private String yearId; + + /** + * 网格id + */ + private String gridId; + + /** + * 工作人员所属组织id=网格所属的组织id + */ + private String agencyId; + + /** + * 网格所有上级id + */ + private String gridPids; + + /** + * 工作人员用户id + */ + private String staffId; + + /** + * 巡查次数 + */ + private Integer patrolTotal; + + /** + * 巡查时长 单位:秒 + */ + private Integer totalTime; + + /** + * 巡查期间直接立项项目数 + */ + private Integer reportProjectCount; + + /** + * 最新的巡查开始时间 + */ + private Date latestPatrolTime; + + /** + * 最新的巡查状态 正在巡查中:patrolling;结束:end + */ + private String latestPatrolStatus; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java new file mode 100644 index 0000000000..c644f2393e --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java @@ -0,0 +1,31 @@ +/** + * 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.extract.biz; + +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; + +/** + * [天]工作人员巡查记录统计 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-06-29 + */ +public interface BizDataStatsService { + + void initStaffPatrolStats(StaffPatrolStatsFormDTO formDTO); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java new file mode 100644 index 0000000000..ad796d528c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -0,0 +1,87 @@ +package com.epmet.service.evaluationindex.extract.biz.impl; + +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; +import com.epmet.service.evaluationindex.extract.biz.BizDataStatsService; +import com.epmet.service.org.CustomerStaffService; +import com.epmet.service.user.StatsStaffPatrolService; +import com.epmet.service.user.UserService; +import com.epmet.util.DimIdGenerator; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * desc:【天】网格员巡查统计 + * + * @author: LiuJanJun + * @date: 2021/6/29 3:08 下午 + * @version: 1.0 + */ +@Slf4j +@Service +public class BizDataStatsServiceImpl implements BizDataStatsService { + @Autowired + private CustomerStaffService customerStaffService; + @Autowired + private UserService userService; + @Autowired + private StatsStaffPatrolService statsStaffPatrolService; + + @Override + public void initStaffPatrolStats(StaffPatrolStatsFormDTO formDTO) { + //获取所有的网格员 + //1.获取所有网格用户 + List allStaffList = customerStaffService.selectStaffGridList(formDTO); + /* if (CollectionUtils.isEmpty(allStaffList)){ + log.warn("reloadStaffPatrolStats customerId:{} have any staff,param:{}",formDTO.getCustomerId(), JSON.toJSONString(formDTO)); + return + }*/ + //获取所有含有网格员角色的用户 + List gridMemberList = userService.selectUserListByRoleKey(formDTO); + /*if (CollectionUtils.isEmpty(gridMemberList)){ + log.warn("reloadStaffPatrolStats customerId:{} have any gridMembers,param:{}",formDTO.getCustomerId(), JSON.toJSONString(formDTO)); + return + }*/ + + List lastStaffPatrolList = userService.selectLastStaffPatrolList(formDTO); + Map lastPatrolMap = lastStaffPatrolList.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getStaffId(), o -> o, (o1, o2) -> o1)); + //构建数据 插入 + List insertList = new ArrayList<>(); + DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(new Date()); + allStaffList.forEach(gridStaff -> { + gridStaff.setDateId(dimIdBean.getDateId()); + gridStaff.setWeekId(dimIdBean.getWeekId()); + gridStaff.setQuarterId(dimIdBean.getQuarterId()); + gridStaff.setYearId(dimIdBean.getYearId()); + gridStaff.setMonthId(dimIdBean.getMonthId()); + StatsStaffPatrolRecordDailyDTO recordDailyDTO = lastPatrolMap.get(gridStaff.getGridId().concat(gridStaff.getStaffId())); + + gridStaff.setTotalTime(NumConstant.ZERO); + gridStaff.setPatrolTotal(NumConstant.ZERO); + gridStaff.setLatestPatrolStatus("end"); + //最后巡查时间 + gridStaff.setLatestPatrolTime(null); + if (recordDailyDTO != null) { + gridStaff.setLatestPatrolStatus(recordDailyDTO.getLatestPatrolStatus()); + gridStaff.setLatestPatrolTime(recordDailyDTO.getLatestPatrolTime()); + } + + gridMemberList.forEach(gridMember -> { + if (gridStaff.getStaffId().equals(gridMember.getUserId())) { + insertList.add(gridStaff); + } + }); + }); + Integer effectRow = statsStaffPatrolService.insertBatch(insertList); + log.debug("initStaffPatrolStats insert rows:{}", effectRow); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerStaffService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerStaffService.java new file mode 100644 index 0000000000..f498bbfe9c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerStaffService.java @@ -0,0 +1,22 @@ +package com.epmet.service.org; + +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; + +import java.util.List; + +/** + * @author liujianjun + */ +public interface CustomerStaffService { + + /** + * desc: 条件获取 网格下的所有人 + * + * @param formDTO + * @return java.util.List + * @author LiuJanJun + * @date 2021/6/29 3:13 下午 + */ + List selectStaffGridList(StaffPatrolStatsFormDTO formDTO); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerStaffServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerStaffServiceImpl.java new file mode 100644 index 0000000000..fc11765d10 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerStaffServiceImpl.java @@ -0,0 +1,39 @@ +package com.epmet.service.org.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.org.CustomerStaffGridDao; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; +import com.epmet.service.org.CustomerStaffService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * desc: + * + * @author: LiuJanJun + * @date: 2021/6/29 3:14 下午 + * @version: 1.0 + */ +@Service +@DataSource(DataSourceConstant.GOV_ORG) +public class CustomerStaffServiceImpl implements CustomerStaffService { + @Autowired + private CustomerStaffGridDao customerStaffGridDao; + + /** + * desc: 条件获取 网格下的所有人 + * + * @param formDTO + * @return java.util.List + * @author LiuJanJun + * @date 2021/6/29 3:13 下午 + */ + @Override + public List selectStaffGridList(StaffPatrolStatsFormDTO formDTO) { + return customerStaffGridDao.selectGridStaffList(formDTO); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/StatsStaffPatrolService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/StatsStaffPatrolService.java new file mode 100644 index 0000000000..430a46defd --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/StatsStaffPatrolService.java @@ -0,0 +1,13 @@ +package com.epmet.service.user; + +import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; + +import java.util.List; + +/** + * @author liujianjun + */ +public interface StatsStaffPatrolService { + + Integer insertBatch(List insertList); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java index ebc01ebdb3..aecbe35158 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java @@ -2,9 +2,12 @@ package com.epmet.service.user; import com.epmet.dto.AgencySubTreeDto; import com.epmet.dto.extract.form.GridHeartedFormDTO; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.org.result.OrgStaffDTO; import com.epmet.dto.screen.ScreenProjectDataDTO; import com.epmet.dto.stats.user.result.UserStatisticalData; +import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; import com.epmet.entity.evaluationindex.screen.ScreenPartyUserRankDataEntity; import com.epmet.util.DimIdGenerator; @@ -94,4 +97,16 @@ public interface UserService { * @return com.epmet.dto.user.OrgGridManagerTotalDTO */ Map queryOrgGridManager(String customerId,List orgStaffDTOList); + + /** + * desc: 请描述类的业务用途 + * + * @param formDTO + * @return + * @author LiuJanJun + * @date 2021/6/29 10:15 上午 + */ + List selectUserListByRoleKey(StaffPatrolStatsFormDTO formDTO); + + List selectLastStaffPatrolList(StaffPatrolStatsFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java new file mode 100644 index 0000000000..a4004de4d0 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java @@ -0,0 +1,32 @@ +package com.epmet.service.user.impl; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.user.StatsStaffPatrolRecordDailyDao; +import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; +import com.epmet.service.user.StatsStaffPatrolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * desc: + * + * @author: LiuJanJun + * @date: 2021/6/30 8:33 上午 + * @version: 1.0 + */ +@DataSource(DataSourceConstant.EPMET_USER) +@Service +public class StatsStaffPatrolServiceImpl implements StatsStaffPatrolService { + @Autowired + private StatsStaffPatrolRecordDailyDao statsStaffPatrolRecordDailyDao; + + @Override + public Integer insertBatch(List insertList) { + System.out.println("=====:"+JSON.toJSONString(insertList)); + return statsStaffPatrolRecordDailyDao.insertBatch(insertList); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java index 59897628e3..27ee9b6eb8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java @@ -6,15 +6,19 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.constant.ExtractConstant; import com.epmet.constant.ProjectConstant; +import com.epmet.constant.RoleKeyConstants; import com.epmet.dao.user.UserDao; import com.epmet.dto.AgencySubTreeDto; import com.epmet.dto.extract.form.GridHeartedFormDTO; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.extract.result.UserPartyResultDTO; import com.epmet.dto.org.result.OrgStaffDTO; import com.epmet.dto.screen.ScreenProjectDataDTO; import com.epmet.dto.stats.user.*; import com.epmet.dto.stats.user.result.UserStatisticalData; import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO; +import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; import com.epmet.entity.evaluationindex.screen.ScreenPartyUserRankDataEntity; import com.epmet.service.user.UserService; import com.epmet.util.DimIdGenerator; @@ -797,4 +801,15 @@ public class UserServiceImpl implements UserService { return resultMap; } + @Override + public List selectUserListByRoleKey(StaffPatrolStatsFormDTO formDTO) { + formDTO.setRoleType(RoleKeyConstants.ROLE_KEY_GRID_MEMBER); + return userDao.selectUserByRoleKey(formDTO); + } + + @Override + public List selectLastStaffPatrolList(StaffPatrolStatsFormDTO formDTO) { + return userDao.selectLastStaffPatrolList(formDTO); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerStaffGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerStaffGridDao.xml new file mode 100644 index 0000000000..5e41b9e84d --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerStaffGridDao.xml @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml new file mode 100644 index 0000000000..cba48614f3 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml @@ -0,0 +1,58 @@ + + + + + + insert into stats_staff_patrol_record_daily + ( + ID, + CUSTOMER_ID, + DATE_ID, + WEEK_ID, + MONTH_ID, + YEAR_ID, + QUARTER_ID, + GRID_ID, + AGENCY_ID, + GRID_PIDS, + STAFF_ID, + PATROL_TOTAL, + TOTAL_TIME, + REPORT_PROJECT_COUNT, + LATEST_PATROL_TIME, + LATEST_PATROL_STATUS, + DEL_FLAG, + REVISION, + CREATED_BY, + CREATED_TIME, + UPDATED_BY, + UPDATED_TIME + ) values + + ( + (SELECT REPLACE(UUID(), '-', '') AS id), + #{item.customerId}, + #{item.dateId}, + #{item.weekId}, + #{item.monthId}, + #{item.yearId}, + #{item.quarterId}, + #{item.gridId}, + #{item.agencyId}, + #{item.gridPids}, + #{item.staffId}, + #{item.patrolTotal}, + #{item.totalTime}, + #{item.reportProjectCount}, + #{item.latestPatrolTime}, + #{item.latestPatrolStatus}, + '0', + 0, + 'APP_USER', + now(), + 'APP_USER', + now() + ) + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml index acb6c9feb3..578d20590a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml @@ -570,4 +570,34 @@ user_id = #{userId} + + From 6af39126be72254a049b85f3bcd1e97ad2e48f40 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 30 Jun 2021 15:02:52 +0800 Subject: [PATCH 02/36] =?UTF-8?q?=E5=B7=A1=E6=9F=A5=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E8=A1=A8=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/StatsStaffPatrolRecordDailyDTO.java | 146 ++++++++++++++++++ ...StatsStaffPatrolRecordDailyController.java | 32 ++++ .../dao/StatsStaffPatrolRecordDailyDao.java | 43 ++++++ .../StatsStaffPatrolRecordDailyEntity.java | 116 ++++++++++++++ .../StatsStaffPatrolRecordDailyService.java | 15 ++ ...tatsStaffPatrolRecordDailyServiceImpl.java | 32 ++++ .../mapper/StatsStaffPatrolRecordDailyDao.xml | 18 +++ 7 files changed, 402 insertions(+) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/StatsStaffPatrolRecordDailyDTO.java create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsStaffPatrolRecordDailyController.java create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/entity/StatsStaffPatrolRecordDailyEntity.java create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsStaffPatrolRecordDailyService.java create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsStaffPatrolRecordDailyServiceImpl.java create mode 100644 epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/StatsStaffPatrolRecordDailyDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/StatsStaffPatrolRecordDailyDTO.java new file mode 100644 index 0000000000..43a8cdf336 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/StatsStaffPatrolRecordDailyDTO.java @@ -0,0 +1,146 @@ +/** + * 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; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * [天]工作人员巡查记录统计 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-06-30 + */ +@Data +public class StatsStaffPatrolRecordDailyDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户Id + */ + private String customerId; + + /** + * 统计日期 关联日期dim表 + */ + private String dateId; + + /** + * 周ID + */ + private String weekId; + + /** + * 月ID + */ + private String monthId; + + /** + * 季ID + */ + private String quarterId; + + /** + * 年ID + */ + private String yearId; + + /** + * 网格id + */ + private String gridId; + + /** + * 工作人员所属组织id=网格所属的组织id + */ + private String agencyId; + + /** + * 网格所有上级id + */ + private String gridPids; + + /** + * 工作人员用户id + */ + private String staffId; + + /** + * 巡查次数 + */ + private Integer patrolTotal; + + /** + * 巡查时长 单位:秒 + */ + private Integer totalTime; + + /** + * 巡查期间直接立项项目数 + */ + private Integer reportProjectCount; + + /** + * 最新的巡查开始时间 + */ + private Date latestPatrolTime; + + /** + * 最新的巡查状态 正在巡查中:patrolling;结束:end + */ + private String latestPatrolStatus; + + /** + * 删除标识 0.未删除 1.已删除 + */ + private Integer 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-user/epmet-user-server/src/main/java/com/epmet/controller/StatsStaffPatrolRecordDailyController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsStaffPatrolRecordDailyController.java new file mode 100644 index 0000000000..b2dad2bce4 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsStaffPatrolRecordDailyController.java @@ -0,0 +1,32 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.dto.StatsStaffPatrolRecordDailyDTO; +import com.epmet.service.StatsStaffPatrolRecordDailyService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * [天]工作人员巡查记录统计 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-06-30 + */ +@RestController +@RequestMapping("statsstaffpatrolrecorddaily") +public class StatsStaffPatrolRecordDailyController { + + @Autowired + private StatsStaffPatrolRecordDailyService statsStaffPatrolRecordDailyService; + + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java new file mode 100644 index 0000000000..ac7ea8b7da --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java @@ -0,0 +1,43 @@ +/** + * 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; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.StatsStaffPatrolRecordDailyEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * [天]工作人员巡查记录统计 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-06-30 + */ +@Mapper +public interface StatsStaffPatrolRecordDailyDao extends BaseDao { + + /** + * @Description 校验今天某人是不是有数据 + * @Param staffId + * @Param dateId + * @author zxc + * @date 2021/6/30 2:41 下午 + */ + Integer checkStatsCount(@Param("staffId")String staffId, @Param("dateId")String dateId); + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/StatsStaffPatrolRecordDailyEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/StatsStaffPatrolRecordDailyEntity.java new file mode 100644 index 0000000000..2bb2e583e3 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/StatsStaffPatrolRecordDailyEntity.java @@ -0,0 +1,116 @@ +/** + * 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; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * [天]工作人员巡查记录统计 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-06-30 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("stats_staff_patrol_record_daily") +public class StatsStaffPatrolRecordDailyEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id + */ + private String customerId; + + /** + * 统计日期 关联日期dim表 + */ + private String dateId; + + /** + * 周ID + */ + private String weekId; + + /** + * 月ID + */ + private String monthId; + + /** + * 季ID + */ + private String quarterId; + + /** + * 年ID + */ + private String yearId; + + /** + * 网格id + */ + private String gridId; + + /** + * 工作人员所属组织id=网格所属的组织id + */ + private String agencyId; + + /** + * 网格所有上级id + */ + private String gridPids; + + /** + * 工作人员用户id + */ + private String staffId; + + /** + * 巡查次数 + */ + private Integer patrolTotal; + + /** + * 巡查时长 单位:秒 + */ + private Integer totalTime; + + /** + * 巡查期间直接立项项目数 + */ + private Integer reportProjectCount; + + /** + * 最新的巡查开始时间 + */ + private Date latestPatrolTime; + + /** + * 最新的巡查状态 正在巡查中:patrolling;结束:end + */ + private String latestPatrolStatus; + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsStaffPatrolRecordDailyService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsStaffPatrolRecordDailyService.java new file mode 100644 index 0000000000..4eb51384d9 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsStaffPatrolRecordDailyService.java @@ -0,0 +1,15 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.entity.StatsStaffPatrolRecordDailyEntity; + +/** + * [天]工作人员巡查记录统计 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-06-30 + */ +public interface StatsStaffPatrolRecordDailyService extends BaseService { + + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsStaffPatrolRecordDailyServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsStaffPatrolRecordDailyServiceImpl.java new file mode 100644 index 0000000000..a53fc8e3a5 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsStaffPatrolRecordDailyServiceImpl.java @@ -0,0 +1,32 @@ +package com.epmet.service.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.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.dao.StatsStaffPatrolRecordDailyDao; +import com.epmet.dto.StatsStaffPatrolRecordDailyDTO; +import com.epmet.entity.StatsStaffPatrolRecordDailyEntity; +import com.epmet.service.StatsStaffPatrolRecordDailyService; +import lombok.extern.slf4j.Slf4j; +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-06-30 + */ +@Service +@Slf4j +public class StatsStaffPatrolRecordDailyServiceImpl extends BaseServiceImpl implements StatsStaffPatrolRecordDailyService { + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml new file mode 100644 index 0000000000..3c51b767fb --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file From ac97acf5b2e9cec8bbde0b061e796895e9d298ca Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 1 Jul 2021 10:27:52 +0800 Subject: [PATCH 03/36] =?UTF-8?q?=E5=B7=A1=E6=9F=A5=E6=9C=9F=E9=97=B4?= =?UTF-8?q?=E7=AB=8B=E9=A1=B9=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/PatrolProjectFormDTO.java | 29 +++++++++++++++++++ .../feign/GovProjectOpenFeignClient.java | 14 ++++++--- .../GovProjectOpenFeignClientFallback.java | 10 ++++--- .../epmet/controller/ProjectController.java | 12 ++++++++ .../main/java/com/epmet/dao/ProjectDao.java | 9 ++++++ .../com/epmet/service/ProjectService.java | 8 +++++ .../service/impl/ProjectServiceImpl.java | 11 +++++++ .../src/main/resources/mapper/ProjectDao.xml | 12 ++++++++ 8 files changed, 97 insertions(+), 8 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/PatrolProjectFormDTO.java diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/PatrolProjectFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/PatrolProjectFormDTO.java new file mode 100644 index 0000000000..c5add855bb --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/PatrolProjectFormDTO.java @@ -0,0 +1,29 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author zxc + * @DateTime 2021/7/1 10:10 上午 + * @DESC + */ +@Data +public class PatrolProjectFormDTO implements Serializable { + + private static final long serialVersionUID = 7244072033926913678L; + + private String userId; + + /** + * 巡查开始时间 + */ + private Date patrolStartTime; + + /** + * 巡查结束时间 + */ + private Date patrolEndTime; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index e3246e8bae..7bd2b95f31 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -4,10 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.ProjectCategoryDTO; import com.epmet.dto.ProjectDTO; -import com.epmet.dto.form.DelCategoryFormDTO; -import com.epmet.dto.form.ProcessListFormDTO; -import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO; -import com.epmet.dto.form.ProjectListFromDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.fallback.GovProjectOpenFeignClientFallback; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; @@ -86,4 +83,13 @@ public interface GovProjectOpenFeignClient { **/ @PostMapping("gov/project/projectcategory/getprojectcategorylist") Result> getProjectCategoryList(@RequestBody DelCategoryFormDTO formDTO); + + /** + * @Description 查询巡查期间的立项数 + * @Param formDTO + * @author zxc + * @date 2021/7/1 10:16 上午 + */ + @PostMapping("gov/project/project/patrolproject") + Result selectPatrolProject(@RequestBody PatrolProjectFormDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index f03dabfef1..cb2dbf1abd 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -5,10 +5,7 @@ import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.ProjectCategoryDTO; import com.epmet.dto.ProjectDTO; -import com.epmet.dto.form.DelCategoryFormDTO; -import com.epmet.dto.form.ProcessListFormDTO; -import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO; -import com.epmet.dto.form.ProjectListFromDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.GovProjectOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; @@ -78,4 +75,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli public Result> getProjectCategoryList(DelCategoryFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "getProjectCategoryList", formDTO); } + + @Override + public Result selectPatrolProject(PatrolProjectFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "selectPatrolProject", formDTO); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index 60257a5e4d..1c1460b3cb 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -222,4 +222,16 @@ public class ProjectController { projectService.platformCallBack(formDTO); return new Result(); } + + /** + * @Description 查询巡查期间的立项数 + * @Param formDTO + * @author zxc + * @date 2021/7/1 10:16 上午 + */ + @PostMapping("patrolproject") + public Result selectPatrolProject(@RequestBody PatrolProjectFormDTO formDTO){ + return new Result().ok(projectService.selectPatrolProject(formDTO)); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java index 2c2fe53f31..38176df2ad 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.ProjectDTO; import com.epmet.dto.ProjectStaffDTO; import com.epmet.dto.form.LatestListFormDTO; +import com.epmet.dto.form.PatrolProjectFormDTO; import com.epmet.dto.form.ProjectListFromDTO; import com.epmet.dto.form.ShiftProjectsFromDTO; import com.epmet.dto.result.*; @@ -164,4 +165,12 @@ public interface ProjectDao extends BaseDao { * @date 2021/5/14 1:59 下午 */ List selectProjectIdByTime(@Param("agencyId")String agencyId,@Param("endDate")Integer endDate,@Param("startDate")Integer startDate); + + /** + * @Description 查询巡查期间的立项数 + * @Param formDTO + * @author zxc + * @date 2021/7/1 10:16 上午 + */ + Integer selectPatrolProject(PatrolProjectFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 67112ab5d4..f04d8f050a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -295,4 +295,12 @@ public interface ProjectService extends BaseService { * @return void */ void platformCallBack(PlatformCallBackFormDTO formDTO); + + /** + * @Description 查询巡查期间的立项数 + * @Param formDTO + * @author zxc + * @date 2021/7/1 10:16 上午 + */ + Integer selectPatrolProject(PatrolProjectFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 2c1f91bc3b..953104da7b 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -2694,4 +2694,15 @@ public class ProjectServiceImpl extends BaseServiceImpl + + + \ No newline at end of file From 05b972456dbf6afc64e45c7e911670fab155ab57 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 1 Jul 2021 10:50:35 +0800 Subject: [PATCH 04/36] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/biz/impl/BizDataStatsServiceImpl.java | 1 + .../epmet/service/user/impl/StatsStaffPatrolServiceImpl.java | 1 - .../src/main/resources/mapper/user/UserDao.xml | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index ad796d528c..151b376e4e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -68,6 +68,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { gridStaff.setTotalTime(NumConstant.ZERO); gridStaff.setPatrolTotal(NumConstant.ZERO); gridStaff.setLatestPatrolStatus("end"); + gridStaff.setReportProjectCount(NumConstant.ZERO); //最后巡查时间 gridStaff.setLatestPatrolTime(null); if (recordDailyDTO != null) { diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java index a4004de4d0..0a08ff7908 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java @@ -26,7 +26,6 @@ public class StatsStaffPatrolServiceImpl implements StatsStaffPatrolService { @Override public Integer insertBatch(List insertList) { - System.out.println("=====:"+JSON.toJSONString(insertList)); return statsStaffPatrolRecordDailyDao.insertBatch(insertList); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml index 578d20590a..3babf9e21e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml @@ -591,7 +591,7 @@ t.PATROL_START_TIME latestPatrolTime, t.STATUS latestPatrolStatus FROM - ( SELECT GRID, STAFF_ID, max( CREATED_TIME ) AS CREATED_TIME FROM staff_patrol_record GROUP BY GRID, STAFF_ID ) a + ( SELECT DEL_FLAG,CUSTOMER_ID,GRID, STAFF_ID, max( CREATED_TIME ) AS CREATED_TIME FROM staff_patrol_record GROUP BY GRID, STAFF_ID ) a LEFT JOIN staff_patrol_record t ON t.GRID = a.GRID AND t.STAFF_ID = a.STAFF_ID AND t.CREATED_TIME = a.CREATED_TIME From 3985d96e5d842584626acc2a39887339c0f59539 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 1 Jul 2021 10:52:29 +0800 Subject: [PATCH 05/36] =?UTF-8?q?=E5=B7=A1=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/StatsStaffPatrolRecordDailyDao.java | 23 ++++- .../impl/StaffPatrolRecordServiceImpl.java | 89 +++++++++++++++++- .../java/com/epmet/util/DimIdGenerator.java | 91 +++++++++++++++++++ .../mapper/StatsStaffPatrolRecordDailyDao.xml | 27 +++++- 4 files changed, 224 insertions(+), 6 deletions(-) create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/util/DimIdGenerator.java diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java index ac7ea8b7da..1abb137809 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java @@ -22,6 +22,8 @@ import com.epmet.entity.StatsStaffPatrolRecordDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Date; + /** * [天]工作人员巡查记录统计 * @@ -38,6 +40,25 @@ public interface StatsStaffPatrolRecordDailyDao extends BaseDao patrolProject = govProjectOpenFeignClient.selectPatrolProject(formDTO); + if (!patrolProject.success()){ + throw new RenException("查询巡查期间立项数失败【"+patrolProject.getInternalMsg()+"】"); + } + Integer data = patrolProject.getData(); + statsStaffPatrolRecordDailyDao.updateStatsRecordEnd(userId,totalTime,data,dateId); } /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/util/DimIdGenerator.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/util/DimIdGenerator.java new file mode 100644 index 0000000000..35e1f6d99b --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/util/DimIdGenerator.java @@ -0,0 +1,91 @@ +package com.epmet.util; + +import com.epmet.commons.tools.utils.DateUtils; +import lombok.Data; + +import java.util.Calendar; +import java.util.Date; + +public class DimIdGenerator { + + /** + * 生成日期维度ID + * @param targetDate + * @return + */ + public static String getDateDimId(Date targetDate) { + return DateUtils.format(targetDate, DateUtils.DATE_PATTERN_YYYYMMDD); + } + + /** + * 获取月维度ID + * @param date + * @return + */ + public static String getMonthDimId(Date date) { + return DateUtils.format(date, DateUtils.DATE_PATTERN_YYYYMM); + } + + /** + * 获取周维度ID ,每周的星期一为 周的开始 + * @param date + * @return + */ + public static String getWeekDimId(Date date) { + String yyyy = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYY); + Calendar calendar = Calendar.getInstance(); + calendar.setFirstDayOfWeek(Calendar.MONDAY); + calendar.setTime(date); + return yyyy.concat("W").concat(calendar.get(Calendar.WEEK_OF_YEAR)+""); + } + + /** + * 获取季度维度ID + * @param date + * @return + */ + public static String getQuarterDimId(Date date) { + String yyyy = DateUtils.format(date, DateUtils.DATE_PATTERN_YYYY); + return yyyy.concat("Q").concat(DateUtils.getQuarterIndex(date) + ""); + } + + /** + * 获取年维度ID + * @param date + * @return + */ + public static String getYearDimId(Date date) { + return DateUtils.format(date, DateUtils.DATE_PATTERN_YYYY); + } + + /** + * 获取封装了所有ID的对象 + * @return + */ + public static DimIdBean getDimIdBean(Date date) { + DimIdBean dimIdBean = new DimIdBean(); + dimIdBean.setDateId(getDateDimId(date)); + dimIdBean.setMonthId(getMonthDimId(date)); + dimIdBean.setWeekId(getWeekDimId(date)); + dimIdBean.setQuarterId(getQuarterDimId(date)); + dimIdBean.setYearId(getYearDimId(date)); + return dimIdBean; + } + + public static void main(String[] args) { + DimIdBean dimIdBean = getDimIdBean(DateUtils.stringToDate("2020-06-14",DateUtils.DATE_PATTERN)); + System.out.println(dimIdBean); + } + + @Data + public static class DimIdBean { + private String dateId; + private String monthId; + private String quarterId; + private String yearId; + private String weekId; + + public DimIdBean() { + } + } +} diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml index 3c51b767fb..734e25a847 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StatsStaffPatrolRecordDailyDao.xml @@ -3,10 +3,33 @@ + + + update stats_staff_patrol_record_daily + set LATEST_PATROL_TIME = #{patrolStartTime}, + LATEST_PATROL_STATUS = 'patrolling', + UPDATED_TIME = NOW() + where DEL_FLAG = 0 + and ID = #{id} + + + + + update stats_staff_patrol_record_daily + SET TOTAL_TIME = (TOTAL_TIME + #{totalTime}), + PATROL_TOTAL = (PATROL_TOTAL + 1), + REPORT_PROJECT_COUNT = (REPORT_PROJECT_COUNT + #{projectCount}), + LATEST_PATROL_STATUS = 'end', + UPDATED_TIME = NOW() + WHERE DEL_FLAG = 0 + AND STAFF_ID = #{userId} + AND DATE_ID = #{dateId} + + - SELECT - COUNT(1) + ID FROM stats_staff_patrol_record_daily WHERE From ded4170c888f44743e76092c21e1607173e42082 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 1 Jul 2021 11:08:25 +0800 Subject: [PATCH 06/36] .. --- .../com/epmet/dao/StatsStaffPatrolRecordDailyDao.java | 4 ++-- .../epmet/service/impl/StaffPatrolRecordServiceImpl.java | 8 ++++---- .../resources/mapper/StatsStaffPatrolRecordDailyDao.xml | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java index 1abb137809..458a171d00 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StatsStaffPatrolRecordDailyDao.java @@ -40,7 +40,7 @@ public interface StatsStaffPatrolRecordDailyDao extends BaseDao @@ -36,6 +37,7 @@ DEL_FLAG = 0 AND DATE_ID = #{dateId} AND STAFF_ID = #{staffId} + AND GRID_ID = #{gridId} \ No newline at end of file From ab0fe9ddaddbf4fb9c085772e69b1d2356f6d19f Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 2 Jul 2021 08:59:07 +0800 Subject: [PATCH 07/36] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=91=98=E5=B7=A1?= =?UTF-8?q?=E6=9F=A5=E7=BB=9F=E8=AE=A1=E5=88=9D=E5=A7=8B=E5=8C=96=E5=87=A0?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E8=AE=A1=E7=AE=97=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/renren/GeneratorApplication.java | 1 - .../extract/form/StaffPatrolStatsFormDTO.java | 5 +- .../dto/user/result/CustomerGridStaffDTO.java | 61 ++++++ .../user/result/StaffPatrolRecordResult.java | 122 +++++++++++ .../controller/BizDataStatsController.java | 2 +- .../epmet/dao/org/CustomerStaffGridDao.java | 4 +- .../com/epmet/dao/project/ProjectDao.java | 63 +++--- .../user/StatsStaffPatrolRecordDailyDao.java | 3 + .../main/java/com/epmet/dao/user/UserDao.java | 3 + .../extract/biz/BizDataStatsService.java | 3 +- .../biz/impl/BizDataStatsServiceImpl.java | 196 ++++++++++++++---- .../service/org/CustomerStaffService.java | 4 +- .../org/impl/CustomerStaffServiceImpl.java | 4 +- .../epmet/service/project/ProjectService.java | 1 + .../project/impl/ProjectServiceImpl.java | 5 + .../service/user/StatsStaffPatrolService.java | 5 +- .../com/epmet/service/user/UserService.java | 3 + .../impl/StatsStaffPatrolServiceImpl.java | 30 ++- .../service/user/impl/UserServiceImpl.java | 8 +- .../mapper/org/CustomerStaffGridDao.xml | 40 ++-- .../resources/mapper/project/ProjectDao.xml | 7 + .../user/StatsStaffPatrolRecordDailyDao.xml | 11 + .../main/resources/mapper/user/UserDao.xml | 11 +- 23 files changed, 494 insertions(+), 98 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerGridStaffDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StaffPatrolRecordResult.java diff --git a/epmet-cloud-generator/src/main/java/io/renren/GeneratorApplication.java b/epmet-cloud-generator/src/main/java/io/renren/GeneratorApplication.java index caad8b0869..14d4210afa 100644 --- a/epmet-cloud-generator/src/main/java/io/renren/GeneratorApplication.java +++ b/epmet-cloud-generator/src/main/java/io/renren/GeneratorApplication.java @@ -2,7 +2,6 @@ package io.renren; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; - @SpringBootApplication public class GeneratorApplication { diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/StaffPatrolStatsFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/StaffPatrolStatsFormDTO.java index 252162a682..a3386e6e37 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/StaffPatrolStatsFormDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/StaffPatrolStatsFormDTO.java @@ -18,5 +18,8 @@ public class StaffPatrolStatsFormDTO implements Serializable { private String dateId; private String staffId; private String gridId; - private String roleType; + /** + * 角色key + */ + private String roleKey; } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerGridStaffDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerGridStaffDTO.java new file mode 100644 index 0000000000..defbb16696 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/CustomerGridStaffDTO.java @@ -0,0 +1,61 @@ +/** + * 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.user.result; + +import lombok.Data; + +import java.io.Serializable; + + +/** + * 政府工作人员表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-04-18 + */ +@Data +public class CustomerGridStaffDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 网格id + */ + private String gridId; + + /** + * 网格所属组织id + */ + private String agencyId; + + /** + * 网格所属的所有组织id + */ + private String gridPids; + + /** + * 关联User表的主键Id + */ + private String userId; + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StaffPatrolRecordResult.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StaffPatrolRecordResult.java new file mode 100644 index 0000000000..7239e34792 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/StaffPatrolRecordResult.java @@ -0,0 +1,122 @@ +/** + * 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.user.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 工作人员巡查主记录 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-06-07 + */ +@Data +public class StaffPatrolRecordResult implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户Id + */ + private String customerId; + + /** + * 网格id + */ + private String grid; + + /** + * 网格所有上级id + */ + private String gridPids; + + /** + * 工作人员用户id + */ + private String staffId; + + /** + * 工作人员所属组织id=网格所属的组织id + */ + private String agencyId; + + /** + * 巡查开始时间 + */ + private Date patrolStartTime; + + /** + * 巡查结束时间,前端传入 + */ + private Date patrolEndTime; + + /** + * 实际结束时间=操作结束巡查的时间 + */ + private Date actrualEndTime; + + /** + * 本次巡查总耗时,单位秒;结束巡查时写入 + */ + private Integer totalTime; + + /** + * 正在巡查中:patrolling;结束:end + */ + private String status; + + /** + * 删除标识 0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java index 94e30fb994..5910f13386 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java @@ -29,7 +29,7 @@ public class BizDataStatsController { **/ @RequestMapping("patrol") public Result execute(@RequestBody StaffPatrolStatsFormDTO formDTO) { - bizDataStatsService.initStaffPatrolStats(formDTO); + bizDataStatsService.executeStaffPatrolStats(formDTO); return new Result(); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerStaffGridDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerStaffGridDao.java index 171f45db3c..20e3c6310a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerStaffGridDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerStaffGridDao.java @@ -19,7 +19,7 @@ package com.epmet.dao.org; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; -import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; +import com.epmet.dto.user.result.CustomerGridStaffDTO; import com.epmet.entity.org.CustomerStaffGridEntity; import org.apache.ibatis.annotations.Mapper; @@ -34,5 +34,5 @@ import java.util.List; @Mapper public interface CustomerStaffGridDao extends BaseDao { - List selectGridStaffList(StaffPatrolStatsFormDTO formDTO); + List selectGridStaffList(StaffPatrolStatsFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java index 44e47f6f92..c4047cb0b3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java @@ -18,16 +18,12 @@ package com.epmet.dao.project; import com.epmet.commons.mybatis.dao.BaseDao; -import com.epmet.dto.CustomerProjectParameterDTO; import com.epmet.dto.ProjectDTO; -import com.epmet.dto.ProjectSatisfactionStatisticsDTO; import com.epmet.dto.project.ProjectAgencyDTO; import com.epmet.dto.project.ProjectCategoryDTO; import com.epmet.dto.project.ProjectGridDTO; import com.epmet.dto.project.ProjectPointDTO; import com.epmet.dto.project.result.ProjectExceedParamsResultDTO; -import com.epmet.dto.screen.ScreenProjectProcessAttachmentDTO; -import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; import com.epmet.entity.project.ProjectEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -52,110 +48,119 @@ public interface ProjectDao extends BaseDao { /** * 已结案项目统计 - * @author zhaoqifeng - * @date 2020/6/18 17:01 + * * @param customerId * @param date * @return java.util.List + * @author zhaoqifeng + * @date 2020/6/18 17:01 */ List selectAgencyClosedProjectTotal(@Param("customerId") String customerId, @Param("date") String date); /** * 已结案项目增量 - * @author zhaoqifeng - * @date 2020/6/18 17:01 + * * @param customerId * @param date * @return java.util.List + * @author zhaoqifeng + * @date 2020/6/18 17:01 */ List selectAgencyClosedProjectInc(@Param("customerId") String customerId, @Param("date") String date); /** * 已结案项目统计 - * @author zhaoqifeng - * @date 2020/6/18 17:01 + * * @param customerId * @param date * @return java.util.List + * @author zhaoqifeng + * @date 2020/6/18 17:01 */ List selectGridClosedProjectTotal(@Param("customerId") String customerId, @Param("date") String date); /** * 已结案项目增量 - * @author zhaoqifeng - * @date 2020/6/18 17:01 + * * @param customerId * @param date * @return java.util.List + * @author zhaoqifeng + * @date 2020/6/18 17:01 */ List selectGridClosedProjectInc(@Param("customerId") String customerId, @Param("date") String date); /** * 获取项目信息 - * @author zhaoqifeng - * @date 2020/9/15 16:13 + * * @param customerId * @param date * @return java.util.List + * @author zhaoqifeng + * @date 2020/9/15 16:13 */ List selectProjectInfo(@Param("customerId") String customerId, @Param("date") String date); /** * 获取用户可滞留天数 - * @author zhaoqifeng - * @date 2020/9/28 10:16 + * * @param customerId * @return java.lang.String + * @author zhaoqifeng + * @date 2020/9/28 10:16 */ String selectParameterValueByKey(@Param("customerId") String customerId); /** - * @Description 查找客户项目超期参数 - * * @param customerId * @return java.util.List + * @Description 查找客户项目超期参数 * @author wangc * @date 2021.03.05 17:52 - */ + */ List selectProjectExceedParams(@Param("customerId") String customerId); /** - * @Description 批量查询项目信息 * @param ids * @return java.util.List + * @Description 批量查询项目信息 * @author wangc * @date 2021.03.08 10:32 - */ - List batchSelectProjectInfo(@Param("ids")List ids); + */ + List batchSelectProjectInfo(@Param("ids") List ids); /** - * @Description 查询项目的分类信息 * @param list * @return java.util.List + * @Description 查询项目的分类信息 * @author wangc * @date 2021.03.08 23:44 - */ - List selectProjectCategory(@Param("list")List list); + */ + List selectProjectCategory(@Param("list") List list); List getProjectCategoryData(@Param("customerId") String customerId, @Param("dateId") String dateId); /** * 获取项目满意度 - * @author zhaoqifeng - * @date 2021/5/21 10:06 + * * @param customerId * @return java.util.List + * @author zhaoqifeng + * @date 2021/5/21 10:06 */ List selectProjectSatisfaction(@Param("customerId") String customerId); /** * 根据key查找value - * @author zhaoqifeng - * @date 2021/5/21 10:58 + * * @param customerId * @param parameterKey * @return java.lang.String + * @author zhaoqifeng + * @date 2021/5/21 10:58 */ String selectValueByKey(@Param("customerId") String customerId, @Param("parameterKey") String parameterKey); + + List selectProjectListByDateId(@Param("customerId") String customerId, @Param("dateId") String dateId, @Param("projectOrigin") String projectOrigin); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/StatsStaffPatrolRecordDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/StatsStaffPatrolRecordDailyDao.java index 60176314f3..1a25f9cfdf 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/StatsStaffPatrolRecordDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/StatsStaffPatrolRecordDailyDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.user; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; import com.epmet.entity.user.StatsStaffPatrolRecordDailyEntity; import org.apache.ibatis.annotations.Mapper; @@ -35,4 +36,6 @@ import java.util.List; public interface StatsStaffPatrolRecordDailyDao extends BaseDao { Integer insertBatch(@Param("list") List insertList); + + int delete(StaffPatrolStatsFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java index 608fe55e3f..3c278bc523 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java @@ -6,6 +6,7 @@ import com.epmet.dto.extract.result.UserPartyResultDTO; import com.epmet.dto.screen.ScreenProjectDataDTO; import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO; import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.StaffPatrolRecordResult; import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; import com.epmet.entity.evaluationindex.screen.ScreenPartyUserRankDataEntity; import org.apache.ibatis.annotations.Mapper; @@ -174,5 +175,7 @@ public interface UserDao { List selectUserByRoleKey(StaffPatrolStatsFormDTO formDTO); List selectLastStaffPatrolList(StaffPatrolStatsFormDTO formDTO); + + List selectStaffPatrolListByDateId(@Param("customerId") String customerId, @Param("dateId") String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java index c644f2393e..8bff5118b7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java @@ -27,5 +27,6 @@ import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; */ public interface BizDataStatsService { - void initStaffPatrolStats(StaffPatrolStatsFormDTO formDTO); + void executeStaffPatrolStats(StaffPatrolStatsFormDTO formDTO); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 151b376e4e..8ff799cd87 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -1,15 +1,26 @@ package com.epmet.service.evaluationindex.extract.biz.impl; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.constant.ProjectConstant; +import com.epmet.dto.ProjectDTO; import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.dto.user.result.CustomerGridStaffDTO; import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.StaffPatrolRecordResult; import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; +import com.epmet.entity.user.StatsStaffPatrolRecordDailyEntity; import com.epmet.service.evaluationindex.extract.biz.BizDataStatsService; import com.epmet.service.org.CustomerStaffService; +import com.epmet.service.project.ProjectService; import com.epmet.service.user.StatsStaffPatrolService; import com.epmet.service.user.UserService; import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,55 +45,168 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { @Autowired private UserService userService; @Autowired + private ProjectService projectService; + @Autowired private StatsStaffPatrolService statsStaffPatrolService; @Override - public void initStaffPatrolStats(StaffPatrolStatsFormDTO formDTO) { - //获取所有的网格员 - //1.获取所有网格用户 - List allStaffList = customerStaffService.selectStaffGridList(formDTO); - /* if (CollectionUtils.isEmpty(allStaffList)){ - log.warn("reloadStaffPatrolStats customerId:{} have any staff,param:{}",formDTO.getCustomerId(), JSON.toJSONString(formDTO)); - return - }*/ - //获取所有含有网格员角色的用户 - List gridMemberList = userService.selectUserListByRoleKey(formDTO); - /*if (CollectionUtils.isEmpty(gridMemberList)){ - log.warn("reloadStaffPatrolStats customerId:{} have any gridMembers,param:{}",formDTO.getCustomerId(), JSON.toJSONString(formDTO)); - return - }*/ + public void executeStaffPatrolStats(StaffPatrolStatsFormDTO formDTO) { + //校正数据 + //获取所有网格员 + List allGridMembers = getAllGridMembers(formDTO); + reloadStaffPatrolStatsData(formDTO, allGridMembers); + + //初始化今天的数据 + initStaffPatrolTodayData(formDTO, allGridMembers); + + } + + private void reloadStaffPatrolStatsData(StaffPatrolStatsFormDTO formDTO, List allGridMembers) { + //获取昨日的巡查统计记录 + String yesterdayStr = getYesterdayString(formDTO); + List yesterdayStatsList = statsStaffPatrolService.selectData(formDTO.getCustomerId(), yesterdayStr); + if (CollectionUtils.isEmpty(yesterdayStatsList)) { + log.warn("reloadStaffPatrolStatsData have any yesterdayStats data,dateId:{}", yesterdayStr); + return; + } + Map yesterdayStatsMap = yesterdayStatsList.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getStaffId(), o -> o, (o1, o2) -> o1)); + //获取昨日的巡查记录 + List yesterdayPatrolList = userService.selectStaffPatrolListByDateId(formDTO.getCustomerId(), yesterdayStr); + + //获取昨日的立项项目数 + List yesterdayProjectList = projectService.selectProjectListByDateId(formDTO.getCustomerId(), yesterdayStr, ProjectConstant.PROJECT_ORIGIN_AGENCY); + + //遍历网格员 设置其 巡查次数 巡查时常 上报项目数 + Map gridMemberMap = allGridMembers.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getUserId(), o -> o, (o1, o2) -> o1)); + List updateList = new ArrayList<>(); + yesterdayPatrolList.forEach(patrolRecord -> { + String key = patrolRecord.getGrid().concat(patrolRecord.getStaffId()); + StatsStaffPatrolRecordDailyDTO patrolRecordDailyDTO = yesterdayStatsMap.get(key); + if (patrolRecordDailyDTO != null) { + long total = (patrolRecord.getActrualEndTime().getTime() - patrolRecord.getPatrolStartTime().getTime()) / 1000; + if (patrolRecordDailyDTO.getTotalTime() == null) { + patrolRecordDailyDTO.setTotalTime(NumConstant.ZERO); + } + patrolRecordDailyDTO.setTotalTime(patrolRecordDailyDTO.getTotalTime() + (int) total); + if (patrolRecordDailyDTO.getPatrolTotal() == null) { + patrolRecordDailyDTO.setPatrolTotal(NumConstant.ZERO); + } + patrolRecordDailyDTO.setPatrolTotal(patrolRecordDailyDTO.getPatrolTotal() + NumConstant.ONE); + //如果巡查记录时间小于统计里的最新的时间 则更新 + if (patrolRecordDailyDTO.getLatestPatrolTime() == null || patrolRecordDailyDTO.getLatestPatrolTime().getTime() < patrolRecord.getPatrolStartTime().getTime()) { + patrolRecordDailyDTO.setLatestPatrolTime(patrolRecord.getPatrolStartTime()); + patrolRecordDailyDTO.setLatestPatrolStatus(patrolRecord.getStatus()); + } + } + }); + //填充项目数 + yesterdayProjectList.forEach(projectDTO -> { + String key = projectDTO.getCreatedBy(); + + yesterdayPatrolList.forEach(patrol -> { + //项目立项时间 在巡查期间时 总数加1 + long projectCreateTime = projectDTO.getCreatedTime().getTime(); + if (patrol.getPatrolStartTime().getTime() >= projectCreateTime && patrol.getPatrolStartTime().getTime() >= projectCreateTime) { + String unqPatrolKey = getUnqPatrolKey(patrol.getGrid(), patrol.getStaffId()); + StatsStaffPatrolRecordDailyDTO recordDailyDTO = yesterdayStatsMap.get(unqPatrolKey); + if (recordDailyDTO == null) { + log.error("have project data but have any patrolRecordDaily,gridId:{},staffId:{}", patrol.getGrid(), patrol.getStaffId()); + return; + } + recordDailyDTO.setReportProjectCount(recordDailyDTO.getReportProjectCount() + 1); + } + }); + }); + StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); + yesterdayParam.setDateId(yesterdayStr); + Integer effectRow = statsStaffPatrolService.delAndInsertBatch(yesterdayParam, yesterdayStatsList); + log.debug("initStaffPatrolStats insert rows:{}", effectRow); + } + + /** + * desc: 获取key + * + * @param gridId + * @param staffId + * @return java.lang.String + * @author LiuJanJun + * @date 2021/7/2 8:32 上午 + */ + private String getUnqPatrolKey(String gridId, String staffId) { + return gridId.concat(staffId); + } + + + @Nullable + private String getYesterdayString(StaffPatrolStatsFormDTO formDTO) { + Date dateParam = DateUtils.parse(formDTO.getDateId(), DateUtils.DATE_PATTERN_YYYYMMDD); + Date yesterdayDate = DateUtils.addDateDays(dateParam, -1); + return DateUtils.format(yesterdayDate, DateUtils.DATE_PATTERN_YYYYMMDD); + } + + private void initStaffPatrolTodayData(StaffPatrolStatsFormDTO formDTO, List allGridMembers) { + List lastStaffPatrolList = userService.selectLastStaffPatrolList(formDTO); Map lastPatrolMap = lastStaffPatrolList.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getStaffId(), o -> o, (o1, o2) -> o1)); //构建数据 插入 List insertList = new ArrayList<>(); - DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(new Date()); - allStaffList.forEach(gridStaff -> { - gridStaff.setDateId(dimIdBean.getDateId()); - gridStaff.setWeekId(dimIdBean.getWeekId()); - gridStaff.setQuarterId(dimIdBean.getQuarterId()); - gridStaff.setYearId(dimIdBean.getYearId()); - gridStaff.setMonthId(dimIdBean.getMonthId()); - StatsStaffPatrolRecordDailyDTO recordDailyDTO = lastPatrolMap.get(gridStaff.getGridId().concat(gridStaff.getStaffId())); - - gridStaff.setTotalTime(NumConstant.ZERO); - gridStaff.setPatrolTotal(NumConstant.ZERO); - gridStaff.setLatestPatrolStatus("end"); - gridStaff.setReportProjectCount(NumConstant.ZERO); + Date date = DateUtils.parse(formDTO.getDateId(), DateUtils.DATE_PATTERN_YYYYMMDD); + DimIdGenerator.DimIdBean dimIdBean = DimIdGenerator.getDimIdBean(date); + allGridMembers.forEach(gridMember -> { + StatsStaffPatrolRecordDailyDTO record = new StatsStaffPatrolRecordDailyDTO(); + record.setCustomerId(gridMember.getCustomerId()); + record.setGridId(gridMember.getGridId()); + record.setAgencyId(gridMember.getAgencyId()); + record.setGridPids(gridMember.getGridPids()); + record.setStaffId(gridMember.getUserId()); + record.setDateId(dimIdBean.getDateId()); + record.setWeekId(dimIdBean.getWeekId()); + record.setQuarterId(dimIdBean.getQuarterId()); + record.setYearId(dimIdBean.getYearId()); + record.setMonthId(dimIdBean.getMonthId()); + StatsStaffPatrolRecordDailyDTO recordDailyDTO = lastPatrolMap.get(gridMember.getGridId().concat(gridMember.getUserId())); + + record.setTotalTime(NumConstant.ZERO); + record.setPatrolTotal(NumConstant.ZERO); + record.setLatestPatrolStatus("end"); + record.setReportProjectCount(NumConstant.ZERO); //最后巡查时间 - gridStaff.setLatestPatrolTime(null); + record.setLatestPatrolTime(null); if (recordDailyDTO != null) { - gridStaff.setLatestPatrolStatus(recordDailyDTO.getLatestPatrolStatus()); - gridStaff.setLatestPatrolTime(recordDailyDTO.getLatestPatrolTime()); + record.setLatestPatrolStatus(recordDailyDTO.getLatestPatrolStatus()); + record.setLatestPatrolTime(recordDailyDTO.getLatestPatrolTime()); } - gridMemberList.forEach(gridMember -> { - if (gridStaff.getStaffId().equals(gridMember.getUserId())) { - insertList.add(gridStaff); - } - }); + insertList.add(record); + }); - Integer effectRow = statsStaffPatrolService.insertBatch(insertList); + Integer effectRow = statsStaffPatrolService.delAndInsertBatch(formDTO, insertList); log.debug("initStaffPatrolStats insert rows:{}", effectRow); } + + private List getAllGridMembers(StaffPatrolStatsFormDTO formDTO) { + //获取所有的网格员 + //1.获取所有网格用户 + List allStaffList = customerStaffService.selectStaffGridList(formDTO); + if (CollectionUtils.isEmpty(allStaffList)) { + log.warn("reloadStaffPatrolStats customerId:{} have any staff,param:{}", formDTO.getCustomerId(), JSON.toJSONString(formDTO)); + return allStaffList; + } + //获取所有含有网格员角色的用户 + List gridMemberList = userService.selectUserListByRoleKey(formDTO); + if (CollectionUtils.isEmpty(gridMemberList)) { + log.warn("reloadStaffPatrolStats customerId:{} have any gridMembers,param:{}", formDTO.getCustomerId(), JSON.toJSONString(formDTO)); + return allStaffList; + } + List insertList = new ArrayList<>(); + + allStaffList.forEach(gridStaff -> gridMemberList.forEach(gridMember -> { + if (gridStaff.getUserId().equals(gridMember.getUserId())) { + insertList.add(gridStaff); + } + })); + log.debug("getAllGridMembers result:{},param:{}", JSON.toJSONString(insertList), JSON.toJSONString(formDTO)); + return insertList; + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerStaffService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerStaffService.java index f498bbfe9c..6f03097838 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerStaffService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerStaffService.java @@ -1,7 +1,7 @@ package com.epmet.service.org; import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; -import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; +import com.epmet.dto.user.result.CustomerGridStaffDTO; import java.util.List; @@ -18,5 +18,5 @@ public interface CustomerStaffService { * @author LiuJanJun * @date 2021/6/29 3:13 下午 */ - List selectStaffGridList(StaffPatrolStatsFormDTO formDTO); + List selectStaffGridList(StaffPatrolStatsFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerStaffServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerStaffServiceImpl.java index fc11765d10..fba61dd8bf 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerStaffServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerStaffServiceImpl.java @@ -4,7 +4,7 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.org.CustomerStaffGridDao; import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; -import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; +import com.epmet.dto.user.result.CustomerGridStaffDTO; import com.epmet.service.org.CustomerStaffService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,7 +33,7 @@ public class CustomerStaffServiceImpl implements CustomerStaffService { * @date 2021/6/29 3:13 下午 */ @Override - public List selectStaffGridList(StaffPatrolStatsFormDTO formDTO) { + public List selectStaffGridList(StaffPatrolStatsFormDTO formDTO) { return customerStaffGridDao.selectGridStaffList(formDTO); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java index 36c3ebd05b..db9a4add14 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java @@ -162,4 +162,5 @@ public interface ProjectService extends BaseService { */ List getProjectSatisfaction(String customerId); + List selectProjectListByDateId(String customerId, String yesterdayStr, String projectOriginAgency); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java index 3581f920b1..f7aa9d8754 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java @@ -196,5 +196,10 @@ public class ProjectServiceImpl extends BaseServiceImpl selectProjectListByDateId(String customerId, String dateId, String projectOrigin) { + return baseDao.selectProjectListByDateId(customerId,dateId,projectOrigin); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/StatsStaffPatrolService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/StatsStaffPatrolService.java index 430a46defd..1f1f9cefff 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/StatsStaffPatrolService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/StatsStaffPatrolService.java @@ -1,5 +1,6 @@ package com.epmet.service.user; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; import java.util.List; @@ -9,5 +10,7 @@ import java.util.List; */ public interface StatsStaffPatrolService { - Integer insertBatch(List insertList); + Integer delAndInsertBatch(StaffPatrolStatsFormDTO formDTO, List insertList); + + List selectData(String customerId, String yesterdayStr); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java index aecbe35158..55e3b5f4fb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java @@ -7,6 +7,7 @@ import com.epmet.dto.org.result.OrgStaffDTO; import com.epmet.dto.screen.ScreenProjectDataDTO; import com.epmet.dto.stats.user.result.UserStatisticalData; import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.StaffPatrolRecordResult; import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; import com.epmet.entity.evaluationindex.screen.ScreenPartyUserRankDataEntity; import com.epmet.util.DimIdGenerator; @@ -109,4 +110,6 @@ public interface UserService { List selectUserListByRoleKey(StaffPatrolStatsFormDTO formDTO); List selectLastStaffPatrolList(StaffPatrolStatsFormDTO formDTO); + + List selectStaffPatrolListByDateId(String customerId, String yesterdayStr); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java index 0a08ff7908..ca6e9b5988 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java @@ -1,11 +1,17 @@ package com.epmet.service.user.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.user.StatsStaffPatrolRecordDailyDao; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; +import com.epmet.entity.user.StatsStaffPatrolRecordDailyEntity; import com.epmet.service.user.StatsStaffPatrolService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -18,6 +24,7 @@ import java.util.List; * @date: 2021/6/30 8:33 上午 * @version: 1.0 */ +@Slf4j @DataSource(DataSourceConstant.EPMET_USER) @Service public class StatsStaffPatrolServiceImpl implements StatsStaffPatrolService { @@ -25,7 +32,28 @@ public class StatsStaffPatrolServiceImpl implements StatsStaffPatrolService { private StatsStaffPatrolRecordDailyDao statsStaffPatrolRecordDailyDao; @Override - public Integer insertBatch(List insertList) { + public Integer delAndInsertBatch(StaffPatrolStatsFormDTO formDTO, List insertList) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StatsStaffPatrolRecordDailyEntity::getCustomerId, formDTO.getCustomerId()) + .eq(StatsStaffPatrolRecordDailyEntity::getDateId, formDTO.getDateId()); + if (StringUtils.isNotBlank(formDTO.getGridId())) { + queryWrapper.eq(StatsStaffPatrolRecordDailyEntity::getGridId, formDTO.getGridId()); + } + if (StringUtils.isNotBlank(formDTO.getStaffId())) { + queryWrapper.eq(StatsStaffPatrolRecordDailyEntity::getStaffId, formDTO.getStaffId()); + } + + int delete = statsStaffPatrolRecordDailyDao.delete(formDTO); + log.debug("delAndInsertBatch delete:{},param:{}", delete, JSON.toJSONString(formDTO)); return statsStaffPatrolRecordDailyDao.insertBatch(insertList); } + + @Override + public List selectData(String customerId, String yesterdayStr) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StatsStaffPatrolRecordDailyEntity::getCustomerId, customerId) + .eq(StatsStaffPatrolRecordDailyEntity::getDateId, yesterdayStr); + List list = statsStaffPatrolRecordDailyDao.selectList(queryWrapper); + return ConvertUtils.sourceToTarget(list, StatsStaffPatrolRecordDailyDTO.class); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java index 27ee9b6eb8..725c11d8f4 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java @@ -18,6 +18,7 @@ import com.epmet.dto.stats.user.*; import com.epmet.dto.stats.user.result.UserStatisticalData; import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO; import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.StaffPatrolRecordResult; import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; import com.epmet.entity.evaluationindex.screen.ScreenPartyUserRankDataEntity; import com.epmet.service.user.UserService; @@ -803,7 +804,7 @@ public class UserServiceImpl implements UserService { @Override public List selectUserListByRoleKey(StaffPatrolStatsFormDTO formDTO) { - formDTO.setRoleType(RoleKeyConstants.ROLE_KEY_GRID_MEMBER); + formDTO.setRoleKey(RoleKeyConstants.ROLE_KEY_GRID_MEMBER); return userDao.selectUserByRoleKey(formDTO); } @@ -812,4 +813,9 @@ public class UserServiceImpl implements UserService { return userDao.selectLastStaffPatrolList(formDTO); } + @Override + public List selectStaffPatrolListByDateId(String customerId, String yesterdayStr) { + return userDao.selectStaffPatrolListByDateId(customerId,yesterdayStr); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerStaffGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerStaffGridDao.xml index 5e41b9e84d..75b9aa5b40 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerStaffGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerStaffGridDao.xml @@ -5,25 +5,27 @@ + + - SELECT - sg.customer_id, - sg.user_id AS staffId, - sg.grid_id, - grid.grid_name, - grid.PID agencyId, - grid.PIDS gridPids - FROM - customer_staff_grid sg - LEFT JOIN customer_grid grid ON grid.id = sg.grid_id - WHERE - sg.del_flag = '0' - - AND sg.customer_id = #{customerId} - - - AND sg.GRID_ID = #{gridId} - + + AND sg.customer_id = #{customerId} + + + AND sg.GRID_ID = #{gridId} + + ) t WHERE t.agencyId IS NOT NULL diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml index 3c5ebd884f..18ba4d2a0f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml @@ -162,4 +162,11 @@ and CUSTOMER_ID = #{customerId} and PARAMETER_KEY = #{parameterKey} + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml index cba48614f3..d3ea3d3f9a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/StatsStaffPatrolRecordDailyDao.xml @@ -55,4 +55,15 @@ ) + + DELETE FROM stats_staff_patrol_record_daily + WHERE CUSTOMER_ID = #{customerId} + AND DATE_ID = #{dateId} + + AND GRID_ID = #{gridId} + + + AND STAFF_ID = #{staffId} + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml index 3babf9e21e..c21c5c9c40 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml @@ -582,7 +582,7 @@ LEFT JOIN gov_staff_role gsr ON gsr.ID = sr.ROLE_ID WHERE s.del_flag = '0' - AND gsr.ROLE_KEY = 'grid_member' + AND gsr.ROLE_KEY = #{roleKey} + From d633cf201d9f1852a31d49c17759666cc3d79403 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 2 Jul 2021 09:55:51 +0800 Subject: [PATCH 08/36] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=91=98=E5=B7=A1?= =?UTF-8?q?=E6=9F=A5=E7=BB=9F=E8=AE=A1=E8=84=9A=E6=9C=AC=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migration/V0.0.14__add_patrol_stats.sql | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.14__add_patrol_stats.sql diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.14__add_patrol_stats.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.14__add_patrol_stats.sql new file mode 100644 index 0000000000..38cd6b93d8 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.14__add_patrol_stats.sql @@ -0,0 +1,26 @@ +CREATE TABLE `stats_staff_patrol_record_daily` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id', + `DATE_ID` varchar(32) NOT NULL COMMENT '统计日期 关联日期dim表', + `WEEK_ID` varchar(32) NOT NULL COMMENT '周ID', + `MONTH_ID` varchar(32) NOT NULL COMMENT '月ID', + `QUARTER_ID` varchar(32) NOT NULL COMMENT '季ID', + `YEAR_ID` varchar(32) NOT NULL COMMENT '年ID', + `GRID_ID` varchar(64) NOT NULL COMMENT '网格id', + `AGENCY_ID` varchar(64) DEFAULT NULL COMMENT '工作人员所属组织id=网格所属的组织id', + `GRID_PIDS` varchar(512) DEFAULT NULL COMMENT '网格所有上级id', + `STAFF_ID` varchar(64) DEFAULT NULL COMMENT '工作人员用户id', + `PATROL_TOTAL` int(11) DEFAULT NULL COMMENT '巡查次数', + `TOTAL_TIME` int(11) DEFAULT NULL COMMENT '巡查时长 单位:秒', + `REPORT_PROJECT_COUNT` int(11) DEFAULT NULL COMMENT '巡查期间直接立项项目数', + `LATEST_PATROL_TIME` datetime DEFAULT NULL COMMENT '最新的巡查开始时间', + `LATEST_PATROL_STATUS` varchar(32) DEFAULT NULL COMMENT '最新的巡查状态 正在巡查中:patrolling;结束:end', + `DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`), + UNIQUE KEY `unx_staff` (`DATE_ID`,`GRID_ID`,`STAFF_ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='[天]工作人员巡查记录统计'; From 58eb90af5d85a49f84c1b6b2ddf0a2bfc1744685 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 2 Jul 2021 10:34:32 +0800 Subject: [PATCH 09/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=A1=E6=9F=A5?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/dto/form/PatrolProjectFormDTO.java | 4 ++-- .../epmet/service/impl/StaffPatrolRecordServiceImpl.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/PatrolProjectFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/PatrolProjectFormDTO.java index c5add855bb..5e3f4bf813 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/PatrolProjectFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/PatrolProjectFormDTO.java @@ -20,10 +20,10 @@ public class PatrolProjectFormDTO implements Serializable { /** * 巡查开始时间 */ - private Date patrolStartTime; + private String patrolStartTime; /** * 巡查结束时间 */ - private Date patrolEndTime; + private String patrolEndTime; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java index e9751e23f8..32599fccbf 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java @@ -272,7 +272,7 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl patrolProject = govProjectOpenFeignClient.selectPatrolProject(formDTO); if (!patrolProject.success()){ throw new RenException("查询巡查期间立项数失败【"+patrolProject.getInternalMsg()+"】"); From c91c94d83394b93c164a36e942e486ed3a2cd009 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 2 Jul 2021 10:51:32 +0800 Subject: [PATCH 10/36] =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=8C=89=E7=85=A7?= =?UTF-8?q?=E5=AE=9E=E9=99=85=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/StaffPatrolRecordServiceImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java index 32599fccbf..d9f45984ad 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java @@ -252,7 +252,8 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl 0) { throw new RenException(EpmetErrorCode.PATROL_END_TIME_ERROR.getCode()); } - record.setActrualEndTime(new Date()); + Date actrualEndTime = new Date(); + record.setActrualEndTime(actrualEndTime); record.setUpdatedTime(null); // 方便巡查统计表使用 Date patrolEndTime = DateUtils.parse(formDTO.getPatrolEndTime(), DateUtils.DATE_TIME_PATTERN); @@ -272,7 +273,7 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl Date: Fri, 2 Jul 2021 14:18:50 +0800 Subject: [PATCH 11/36] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=91=98=E5=B7=A1?= =?UTF-8?q?=E6=9F=A5=E7=BB=9F=E8=AE=A1=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/impl/BizDataStatsServiceImpl.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 8ff799cd87..223124e90a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -11,7 +11,6 @@ import com.epmet.dto.user.result.CustomerGridStaffDTO; import com.epmet.dto.user.result.CustomerStaffDTO; import com.epmet.dto.user.result.StaffPatrolRecordResult; import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; -import com.epmet.entity.user.StatsStaffPatrolRecordDailyEntity; import com.epmet.service.evaluationindex.extract.biz.BizDataStatsService; import com.epmet.service.org.CustomerStaffService; import com.epmet.service.project.ProjectService; @@ -20,6 +19,7 @@ import com.epmet.service.user.UserService; import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -64,12 +64,16 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { private void reloadStaffPatrolStatsData(StaffPatrolStatsFormDTO formDTO, List allGridMembers) { //获取昨日的巡查统计记录 String yesterdayStr = getYesterdayString(formDTO); - List yesterdayStatsList = statsStaffPatrolService.selectData(formDTO.getCustomerId(), yesterdayStr); + StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); + yesterdayParam.setDateId(yesterdayStr); + //遍历网格员重新初始化数据 + List insertList = buildInitPatrolStatsData(yesterdayParam, allGridMembers); + /* List yesterdayStatsList = statsStaffPatrolService.selectData(formDTO.getCustomerId(), yesterdayStr); if (CollectionUtils.isEmpty(yesterdayStatsList)) { log.warn("reloadStaffPatrolStatsData have any yesterdayStats data,dateId:{}", yesterdayStr); return; - } - Map yesterdayStatsMap = yesterdayStatsList.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getStaffId(), o -> o, (o1, o2) -> o1)); + }*/ + Map yesterdayStatsMap = insertList.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getStaffId(), o -> o, (o1, o2) -> o1)); //获取昨日的巡查记录 List yesterdayPatrolList = userService.selectStaffPatrolListByDateId(formDTO.getCustomerId(), yesterdayStr); @@ -77,8 +81,6 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { List yesterdayProjectList = projectService.selectProjectListByDateId(formDTO.getCustomerId(), yesterdayStr, ProjectConstant.PROJECT_ORIGIN_AGENCY); //遍历网格员 设置其 巡查次数 巡查时常 上报项目数 - Map gridMemberMap = allGridMembers.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getUserId(), o -> o, (o1, o2) -> o1)); - List updateList = new ArrayList<>(); yesterdayPatrolList.forEach(patrolRecord -> { String key = patrolRecord.getGrid().concat(patrolRecord.getStaffId()); StatsStaffPatrolRecordDailyDTO patrolRecordDailyDTO = yesterdayStatsMap.get(key); @@ -101,25 +103,24 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { }); //填充项目数 yesterdayProjectList.forEach(projectDTO -> { - String key = projectDTO.getCreatedBy(); yesterdayPatrolList.forEach(patrol -> { //项目立项时间 在巡查期间时 总数加1 long projectCreateTime = projectDTO.getCreatedTime().getTime(); - if (patrol.getPatrolStartTime().getTime() >= projectCreateTime && patrol.getPatrolStartTime().getTime() >= projectCreateTime) { + if (projectCreateTime>= patrol.getPatrolStartTime().getTime() && projectCreateTime <= patrol.getPatrolEndTime().getTime()) { String unqPatrolKey = getUnqPatrolKey(patrol.getGrid(), patrol.getStaffId()); StatsStaffPatrolRecordDailyDTO recordDailyDTO = yesterdayStatsMap.get(unqPatrolKey); if (recordDailyDTO == null) { log.error("have project data but have any patrolRecordDaily,gridId:{},staffId:{}", patrol.getGrid(), patrol.getStaffId()); return; } + recordDailyDTO.setReportProjectCount(recordDailyDTO.getReportProjectCount() + 1); } }); }); - StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); - yesterdayParam.setDateId(yesterdayStr); - Integer effectRow = statsStaffPatrolService.delAndInsertBatch(yesterdayParam, yesterdayStatsList); + + Integer effectRow = statsStaffPatrolService.delAndInsertBatch(yesterdayParam, insertList); log.debug("initStaffPatrolStats insert rows:{}", effectRow); } @@ -147,6 +148,13 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { private void initStaffPatrolTodayData(StaffPatrolStatsFormDTO formDTO, List allGridMembers) { + List insertList = buildInitPatrolStatsData(formDTO, allGridMembers); + Integer effectRow = statsStaffPatrolService.delAndInsertBatch(formDTO, insertList); + log.debug("initStaffPatrolStats insert rows:{}", effectRow); + } + + @NotNull + private List buildInitPatrolStatsData(StaffPatrolStatsFormDTO formDTO, List allGridMembers) { List lastStaffPatrolList = userService.selectLastStaffPatrolList(formDTO); Map lastPatrolMap = lastStaffPatrolList.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getStaffId(), o -> o, (o1, o2) -> o1)); //构建数据 插入 @@ -181,8 +189,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { insertList.add(record); }); - Integer effectRow = statsStaffPatrolService.delAndInsertBatch(formDTO, insertList); - log.debug("initStaffPatrolStats insert rows:{}", effectRow); + return insertList; } private List getAllGridMembers(StaffPatrolStatsFormDTO formDTO) { From 5053694b35384102c1373e21fa2005d7470848aa Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 2 Jul 2021 14:38:15 +0800 Subject: [PATCH 12/36] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=91=98=E5=B7=A1?= =?UTF-8?q?=E6=9F=A5=E7=BB=9F=E8=AE=A1=E5=AE=9E=E9=99=85=E7=BB=93=E6=9D=9F?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=8F=AA=E7=94=A8=E4=BA=8E=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=20=E4=B8=8D=E5=8F=82=E4=B8=8E=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/biz/impl/BizDataStatsServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 223124e90a..6f5491bb5c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -85,7 +85,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { String key = patrolRecord.getGrid().concat(patrolRecord.getStaffId()); StatsStaffPatrolRecordDailyDTO patrolRecordDailyDTO = yesterdayStatsMap.get(key); if (patrolRecordDailyDTO != null) { - long total = (patrolRecord.getActrualEndTime().getTime() - patrolRecord.getPatrolStartTime().getTime()) / 1000; + long total = (patrolRecord.getPatrolEndTime().getTime() - patrolRecord.getPatrolStartTime().getTime()) / 1000; if (patrolRecordDailyDTO.getTotalTime() == null) { patrolRecordDailyDTO.setTotalTime(NumConstant.ZERO); } @@ -107,7 +107,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { yesterdayPatrolList.forEach(patrol -> { //项目立项时间 在巡查期间时 总数加1 long projectCreateTime = projectDTO.getCreatedTime().getTime(); - if (projectCreateTime>= patrol.getPatrolStartTime().getTime() && projectCreateTime <= patrol.getPatrolEndTime().getTime()) { + if (projectCreateTime>= patrol.getPatrolStartTime().getTime() && projectCreateTime <= patrol.getPatrolEndTime().getTime()) { String unqPatrolKey = getUnqPatrolKey(patrol.getGrid(), patrol.getStaffId()); StatsStaffPatrolRecordDailyDTO recordDailyDTO = yesterdayStatsMap.get(unqPatrolKey); if (recordDailyDTO == null) { From 9967c2b46eaaf497efce05f0c4e087b0678d63ca Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 2 Jul 2021 14:43:11 +0800 Subject: [PATCH 13/36] =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4+=205?= =?UTF-8?q?9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/StaffPatrolRecordServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java index d9f45984ad..8751acbb5f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java @@ -252,13 +252,13 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl 0) { throw new RenException(EpmetErrorCode.PATROL_END_TIME_ERROR.getCode()); } - Date actrualEndTime = new Date(); - record.setActrualEndTime(actrualEndTime); + record.setActrualEndTime(new Date()); record.setUpdatedTime(null); // 方便巡查统计表使用 Date patrolEndTime = DateUtils.parse(formDTO.getPatrolEndTime(), DateUtils.DATE_TIME_PATTERN); record.setPatrolEndTime(patrolEndTime); - Integer totalTime = DateUtils.calculateSecond(record.getPatrolStartTime(), record.getPatrolEndTime()); + // 总时间+59s,防止筛选项目时漏掉 + Integer totalTime = DateUtils.calculateSecond(record.getPatrolStartTime(), record.getPatrolEndTime()) + 59; record.setTotalTime(totalTime); record.setStatus(PatrolConstant.END); baseDao.updateById(record); @@ -273,7 +273,7 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl Date: Fri, 2 Jul 2021 15:41:19 +0800 Subject: [PATCH 14/36] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=91=98=E5=B7=A1?= =?UTF-8?q?=E6=9F=A5=E7=BB=9F=E8=AE=A1=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/DataStatisticalOpenFeignClient.java | 11 ++++++ ...ataStatisticalOpenFeignClientFallBack.java | 6 ++++ .../biz/impl/BizDataStatsServiceImpl.java | 2 +- .../epmet/service/BizDataStatsService.java | 10 ++++++ .../service/impl/BizDataStatsServiceImpl.java | 23 +++++++++++++ .../com/epmet/task/StaffPatrolStatsTask.java | 34 +++++++++++++++++++ 6 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/BizDataStatsService.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java index dfafe94a1e..fdf97a670f 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java @@ -6,6 +6,7 @@ import com.epmet.dto.StatsFormDTO; import com.epmet.dto.extract.form.ExtractIndexFormDTO; import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.form.ExtractScreenFormDTO; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.group.form.GroupStatsFormDTO; import com.epmet.dto.screen.form.InitCustomerIndexForm; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; @@ -256,4 +257,14 @@ public interface DataStatisticalOpenFeignClient { @PostMapping("/data/stats/vanguard/gridvanguardstats") Result gridVanguardStats(@RequestBody StatsFormDTO formDTO); + /** + * desc: 网格员巡查统计初始化及校正 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author LiuJanJun + * @date 2021/7/2 3:04 下午 + */ + @PostMapping("/data/stats/bizData/stats/patrol") + Result staffPatrolStats(@RequestBody StaffPatrolStatsFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java index d842746b35..ecd3c7faf2 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java @@ -7,6 +7,7 @@ import com.epmet.dto.StatsFormDTO; import com.epmet.dto.extract.form.ExtractIndexFormDTO; import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.form.ExtractScreenFormDTO; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.group.form.GroupStatsFormDTO; import com.epmet.dto.screen.form.InitCustomerIndexForm; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; @@ -256,4 +257,9 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp public Result gridVanguardStats(StatsFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "gridVanguardStats", formDTO); } + + @Override + public Result staffPatrolStats(StaffPatrolStatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "staffPatrolStats", formDTO); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 6f5491bb5c..2db1363f5e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -31,7 +31,7 @@ import java.util.Map; import java.util.stream.Collectors; /** - * desc:【天】网格员巡查统计 + * desc:【天】业务库里的统计 * * @author: LiuJanJun * @date: 2021/6/29 3:08 下午 diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/BizDataStatsService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/BizDataStatsService.java new file mode 100644 index 0000000000..d610bf6790 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/BizDataStatsService.java @@ -0,0 +1,10 @@ +package com.epmet.service; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; + +public interface BizDataStatsService { + + Result exeStaffPatrolStats(StaffPatrolStatsFormDTO formDTO); + +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java new file mode 100644 index 0000000000..7f3fcb8d17 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java @@ -0,0 +1,23 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.service.BizDataStatsService; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * desc:业务库 数据统计服务实现 + * + * @author: LiuJanJun + * @date: 2021/7/2 2:58 下午 + * @version: 1.0 + */ +public class BizDataStatsServiceImpl implements BizDataStatsService { + @Autowired + private DataStatisticalOpenFeignClient feignClient; + @Override + public Result exeStaffPatrolStats(StaffPatrolStatsFormDTO formDTO) { + return feignClient.staffPatrolStats(formDTO); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java new file mode 100644 index 0000000000..d7b380acc3 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java @@ -0,0 +1,34 @@ +package com.epmet.task; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.service.BizDataStatsService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/6/23 14:36 + */ +@Slf4j +@Component("dimInitTask") +public class StaffPatrolStatsTask implements ITask { + + @Autowired + private BizDataStatsService bizDataStatsService; + + @Override + public void run(String params) { + log.debug("DimInitTask定时任务正在执行,参数为:{}", params); + StaffPatrolStatsFormDTO formDTO = JSON.parseObject(params, StaffPatrolStatsFormDTO.class); + Result result = bizDataStatsService.exeStaffPatrolStats(formDTO); + if (result.success()){ + log.debug("StaffPatrolStatsTask定时任务正在执行定时任务执行成功"); + }else { + log.debug("StaffPatrolStatsTask定时任务正在执行定时任务执行失败:" + result.getMsg()); + } + } +} From acaee9bd8b2dbe1b5f4b5e111d182892df385859 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Fri, 2 Jul 2021 17:17:36 +0800 Subject: [PATCH 15/36] =?UTF-8?q?=E6=9B=B4=E5=A4=9A-=E5=B7=A1=E6=9F=A5?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=88=97=E8=A1=A8-V2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/utils/DateUtils.java | 11 +++++ .../dto/epmetuser/form/StaffListFormDTO.java | 2 +- .../epmetuser/result/StaffListResultDTO.java | 5 ++ .../controller/EpmetUserController.java | 20 ++++++++ .../dao/epmetuser/StaffPatrolRecordDao.java | 5 ++ .../dataaggre/dao/govorg/CustomerGridDao.java | 6 +++ .../service/epmetuser/EpmetUserService.java | 7 +++ .../epmetuser/impl/EpmetUserServiceImpl.java | 36 ++++++++++++++ .../service/govorg/GovOrgService.java | 6 +++ .../govorg/impl/GovOrgServiceImpl.java | 11 +++++ .../mapper/epmetuser/StaffPatrolRecordDao.xml | 46 ++++++++++++++++++ .../mapper/govorg/CustomerGridDao.xml | 48 +++++++++++++++++++ 12 files changed, 202 insertions(+), 1 deletion(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java index 3a556da632..b47d56574c 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java @@ -847,4 +847,15 @@ public class DateUtils { return DateUtils.format(date,DateUtils.DATE_TIME_PATTERN); } + /** + * @Author sun + * @Description 获取当前日期几个自然月之前的日期(yyyy-MM-dd HH:mm:ss) + **/ + public static String getBeforeMonthDate(int beforMonth, String dateType){ + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, - beforMonth); + Date date = c.getTime(); + return DateUtils.format(date,dateType); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffListFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffListFormDTO.java index 4945b5de46..4de304f917 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffListFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/StaffListFormDTO.java @@ -24,7 +24,7 @@ public class StaffListFormDTO implements Serializable { @NotNull(message = "最近时间不能为空", groups = StaffListFormDTO.Staff.class) private Integer time; /** - * 排序字段【巡查总次数:patrolTotal;最近开始巡查时间:latestPatrolledTime】 + * 排序字段【巡查总次数:patrolTotal;最近开始巡查时间:latestPatrolledTime;上报项目数: reportProjectCount;巡查总时长:totalTime】 */ @NotBlank(message = "排序条件不能为空", groups = StaffListFormDTO.Staff.class) private String sortCode; diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffListResultDTO.java index 15f2647e88..bfe3117485 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffListResultDTO.java @@ -28,5 +28,10 @@ public class StaffListResultDTO implements Serializable { private String gender = "0"; //正在巡查中:patrolling;否则返回空字符串 private String status = ""; + //上报项目数 + private Integer reportProjectCount; + //巡查总时长 + private String totalTime = ""; + private Integer timeNum; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java index bd535ae77c..4e1cdf3238 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java @@ -79,5 +79,25 @@ public class EpmetUserController { return new Result().ok(epmetUserService.patrolDateList(formDTO)); } + /** + * @Param formDTO + * @Description 【更多-巡查记录-人员巡查记录列表】 + * @author sun + */ + @PostMapping("staffpatrollist") + @RequirePermission(requirePermission = RequirePermissionEnum.MORE_PATROL_RECORD_LIST) + public Result> staffPatrolList(@LoginUser TokenDto tokenDto, @RequestBody StaffListFormDTO formDTO) { + //String totalTimeDesc = minutes / 60 + "小时"+ minutes % 60 + "分"; + ValidatorUtils.validateEntity(formDTO, StaffListFormDTO.Staff.class); + if (!"patrolTotal".equals(formDTO.getSortCode()) && !"latestPatrolledTime".equals(formDTO.getSortCode()) + && !"reportProjectCount".equals(formDTO.getSortCode()) && !"totalTime".equals(formDTO.getSortCode())) { + throw new RenException("参数错误,排序条件值错误"); + } + if (formDTO.getTime() != 1 && formDTO.getTime() != 3) { + throw new RenException("参数错误,最近时间值不正确"); + } + formDTO.setUserId(tokenDto.getUserId()); + return new Result>().ok(epmetUserService.staffPatrolList(formDTO)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java index 5c6cb03bdb..f6a607f801 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java @@ -41,4 +41,9 @@ public interface StaffPatrolRecordDao extends BaseDao { */ List selectPatrolList(StaffListFormDTO formDTO); + /** + * @Description 按条件查询巡查业务数据V2 + * @author sun + */ + List selectStaffPatrolList(StaffListFormDTO formDTO); } 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 cc73cc2c1f..3fcc8655ed 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 @@ -62,4 +62,10 @@ public interface CustomerGridDao extends BaseDao { * @Description 查询工作人员所属组织下网格列表 **/ List gridListByStaffId(@Param("staffId") String staffId); + + /** + * @Description 有网格列表的查询网格基本信息,没有的查询工作人员所属组织级下级所有的网格信息 + * @author sun + */ + List getGridInfoList(@Param("gridIds") List gridIds, @Param("staffId") String staffId); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 359fcbe7a0..03fc33dbc9 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -64,4 +64,11 @@ public interface EpmetUserService { */ List staffGridRole(List forms, String staffName); + /** + * @Param formDTO + * @Description 【更多-巡查记录-人员巡查记录列表】 + * @author sun + */ + List staffPatrolList(StaffListFormDTO formDTO); + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 175525d16d..764819c4dc 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -247,5 +247,41 @@ public class EpmetUserServiceImpl implements EpmetUserService { return result; } + /** + * @Param formDTO + * @Description 【更多-巡查记录-人员巡查记录列表】 + * @author sun + */ + @Override + public List staffPatrolList(StaffListFormDTO formDTO) { + List resultList = new ArrayList<>(); + //1.查询网格信息供后续封装数据使用 + List list = govOrgService.getGridInfoList(formDTO.getGridIds(), formDTO.getUserId()); + if (CollectionUtils.isEmpty(formDTO.getGridIds())) { + formDTO.setGridIds(list.stream().map(CustomerGridDTO::getId).collect(Collectors.toList())); + } + + //2.按条件分页查询业务数据 + int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); + formDTO.setPageNo(pageIndex); + //起始查询日期 + formDTO.setPatrolStartTime(DateUtils.getBeforeMonthDate(formDTO.getTime(), "yyyyMMdd")); + resultList = staffPatrolRecordDao.selectStaffPatrolList(formDTO); + + //3.封装数据并返回 + resultList.forEach(re -> list.stream().filter(l -> re.getGridId().equals(l.getId())).forEach(s -> re.setGridName(s.getGridName()))); + resultList.forEach(re -> { + String totalTime = "0分钟"; + if (re.getTimeNum() > NumConstant.ZERO) { + int hour = re.getTimeNum() / 3600; + int minute = re.getTimeNum() % 3600; + totalTime = (hour < 1 ? "" : hour + "小时") + (minute < 1 ? "" : minute + "分钟"); + } + re.setTotalTime(totalTime == "" ? "0分钟" : totalTime); + list.stream().filter(l -> re.getGridId().equals(l.getId())).forEach(s -> re.setGridName(s.getGridName())); + }); + + return resultList; + } } 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 8008242d5f..bd28ef2b26 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 @@ -59,4 +59,10 @@ public interface GovOrgService { * @author sun */ List selectGridStaffByGridIds(List gridIds, String staffName); + + /** + * @Description 查询网格信息或查询当前人员所属组织下所有网格信息 + * @author sun + */ + List getGridInfoList(List gridIds, String staffId); } 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 29ed9208cf..38b29c2c12 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 @@ -264,4 +264,15 @@ public class GovOrgServiceImpl implements GovOrgService { return result; } + /** + * @Description 查询网格信息或查询当前人员所属组织下所有网格信息 + * @author sun + */ + @Override + public List getGridInfoList(List gridIds, String staffId) { + //1.有网格列表的查询网格基本信息,没有的查询工作人员所属组织级下级所有的网格信息 + List list = customerGridDao.getGridInfoList(gridIds, staffId); + return list; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml index 662ce08625..77db39a870 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml @@ -51,4 +51,50 @@ --> + + 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 92cffd9271..2ca96e0edd 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 @@ -99,4 +99,52 @@ ) + + From ac797ecaa2034e5fc27654f405cae6167e747bf2 Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 5 Jul 2021 09:33:09 +0800 Subject: [PATCH 16/36] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=91=98=E5=B7=A1?= =?UTF-8?q?=E6=9F=A5=E7=BB=9F=E8=AE=A1=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/task/StaffPatrolStatsTask.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java index d7b380acc3..2339fb1f62 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java @@ -14,7 +14,7 @@ import org.springframework.stereotype.Component; * @date 2020/6/23 14:36 */ @Slf4j -@Component("dimInitTask") +@Component("staffPatrolStatsTask") public class StaffPatrolStatsTask implements ITask { @Autowired @@ -26,9 +26,9 @@ public class StaffPatrolStatsTask implements ITask { StaffPatrolStatsFormDTO formDTO = JSON.parseObject(params, StaffPatrolStatsFormDTO.class); Result result = bizDataStatsService.exeStaffPatrolStats(formDTO); if (result.success()){ - log.debug("StaffPatrolStatsTask定时任务正在执行定时任务执行成功"); + log.debug("staffPatrolStatsTask定时任务正在执行定时任务执行成功"); }else { - log.debug("StaffPatrolStatsTask定时任务正在执行定时任务执行失败:" + result.getMsg()); + log.debug("staffPatrolStatsTask定时任务正在执行定时任务执行失败:" + result.getMsg()); } } } From 4ab94a58fba660c69546967d161b581a596d09fe Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 5 Jul 2021 09:45:17 +0800 Subject: [PATCH 17/36] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=91=98=E5=B7=A1?= =?UTF-8?q?=E6=9F=A5=E7=BB=9F=E8=AE=A1=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/BizDataStatsServiceImpl.java | 2 ++ .../src/main/java/com/epmet/task/StaffPatrolStatsTask.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java index 7f3fcb8d17..0e7a7b53e9 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java @@ -5,6 +5,7 @@ import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.feign.DataStatisticalOpenFeignClient; import com.epmet.service.BizDataStatsService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; /** * desc:业务库 数据统计服务实现 @@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired; * @date: 2021/7/2 2:58 下午 * @version: 1.0 */ +@Service public class BizDataStatsServiceImpl implements BizDataStatsService { @Autowired private DataStatisticalOpenFeignClient feignClient; diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java index 2339fb1f62..d07f233108 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java @@ -22,7 +22,7 @@ public class StaffPatrolStatsTask implements ITask { @Override public void run(String params) { - log.debug("DimInitTask定时任务正在执行,参数为:{}", params); + log.debug("staffPatrolStatsTask定时任务正在执行,参数为:{}", params); StaffPatrolStatsFormDTO formDTO = JSON.parseObject(params, StaffPatrolStatsFormDTO.class); Result result = bizDataStatsService.exeStaffPatrolStats(formDTO); if (result.success()){ From 3f4961b3474854c157a625d0a26fb865aa81225b Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 5 Jul 2021 09:53:42 +0800 Subject: [PATCH 18/36] =?UTF-8?q?=E6=9B=B4=E5=A4=9A-=E5=B7=A1=E6=9F=A5?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=88=97=E8=A1=A8-V2--=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataaggre/dto/epmetuser/result/StaffListResultDTO.java | 2 ++ .../com/epmet/dataaggre/controller/EpmetUserController.java | 1 - .../main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffListResultDTO.java index bfe3117485..53bf3715c1 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/StaffListResultDTO.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.dto.epmetuser.result; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -32,6 +33,7 @@ public class StaffListResultDTO implements Serializable { private Integer reportProjectCount; //巡查总时长 private String totalTime = ""; + @JsonIgnore private Integer timeNum; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java index 4e1cdf3238..779fa37fe3 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java @@ -87,7 +87,6 @@ public class EpmetUserController { @PostMapping("staffpatrollist") @RequirePermission(requirePermission = RequirePermissionEnum.MORE_PATROL_RECORD_LIST) public Result> staffPatrolList(@LoginUser TokenDto tokenDto, @RequestBody StaffListFormDTO formDTO) { - //String totalTimeDesc = minutes / 60 + "小时"+ minutes % 60 + "分"; ValidatorUtils.validateEntity(formDTO, StaffListFormDTO.Staff.class); if (!"patrolTotal".equals(formDTO.getSortCode()) && !"latestPatrolledTime".equals(formDTO.getSortCode()) && !"reportProjectCount".equals(formDTO.getSortCode()) && !"totalTime".equals(formDTO.getSortCode())) { diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml index 77db39a870..5748609036 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml @@ -57,7 +57,7 @@ ssp.staff_id AS staffId, cs.real_name AS staffName, cs.gender AS gender, - MAX(ssp.latest_patrol_time) AS patrolStartTime, + IFNULL(MAX(ssp.latest_patrol_time), '') AS patrolStartTime, IFNULL(SUM(ssp.patrol_total), 0) AS patrolTotal, ssp.latest_patrol_status AS STATUS, IFNULL(SUM(ssp.report_project_count), 0) AS reportProjectCount, From 204b4482ddd4140bd48fd1a2059ab05bbbb0dc74 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 5 Jul 2021 10:10:25 +0800 Subject: [PATCH 19/36] =?UTF-8?q?=E8=BD=AC=E5=B0=8F=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E4=BF=9D=E7=95=99=E4=B8=80=E4=BD=8D=E5=B0=8F=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/epmetuser/impl/EpmetUserServiceImpl.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 764819c4dc..b9965774c7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -25,6 +25,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.text.NumberFormat; import java.util.*; import java.util.stream.Collectors; @@ -270,14 +272,17 @@ public class EpmetUserServiceImpl implements EpmetUserService { //3.封装数据并返回 resultList.forEach(re -> list.stream().filter(l -> re.getGridId().equals(l.getId())).forEach(s -> re.setGridName(s.getGridName()))); + NumberFormat numberFormat = NumberFormat.getInstance(); + numberFormat.setMaximumFractionDigits(NumConstant.ONE); resultList.forEach(re -> { - String totalTime = "0分钟"; + /*String totalTime = "0分钟"; if (re.getTimeNum() > NumConstant.ZERO) { int hour = re.getTimeNum() / 3600; int minute = re.getTimeNum() % 3600; totalTime = (hour < 1 ? "" : hour + "小时") + (minute < 1 ? "" : minute + "分钟"); } - re.setTotalTime(totalTime == "" ? "0分钟" : totalTime); + re.setTotalTime(totalTime == "" ? "0分钟" : totalTime);*/ + re.setTotalTime(re.getTimeNum() < 1 ? BigDecimal.ZERO + "h" : new BigDecimal(numberFormat.format((float) re.getTimeNum() / (float) 3600)) + "h"); list.stream().filter(l -> re.getGridId().equals(l.getId())).forEach(s -> re.setGridName(s.getGridName())); }); From 80a6ca48511c1b63997efa578d89fc897a682749 Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 5 Jul 2021 10:24:21 +0800 Subject: [PATCH 20/36] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=91=98=E5=B7=A1?= =?UTF-8?q?=E6=9F=A5=E7=BB=9F=E8=AE=A1=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E8=B5=B7=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/extract/form/BizDataFormDTO.java | 41 +++++++++++ .../feign/DataStatisticalOpenFeignClient.java | 11 ++- ...ataStatisticalOpenFeignClientFallBack.java | 9 +-- .../controller/BizDataStatsController.java | 11 +++ .../extract/biz/BizDataStatsService.java | 8 +++ .../biz/impl/BizDataStatsServiceImpl.java | 69 +++++++++++++++++++ .../epmet/service/BizDataStatsService.java | 4 +- .../service/impl/BizDataStatsServiceImpl.java | 6 +- .../com/epmet/task/StaffPatrolStatsTask.java | 6 +- 9 files changed, 144 insertions(+), 21 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/BizDataFormDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/BizDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/BizDataFormDTO.java new file mode 100644 index 0000000000..23f164afe3 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/BizDataFormDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.extract.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * desc: 从业务数据抽取到统计库 dto + * + * @Author zxc + * @DateTime 2020/9/16 6:01 下午 + */ +@Data +public class BizDataFormDTO implements Serializable { + + + private static final long serialVersionUID = 2860395703825549825L; + + public interface ExtractForm extends CustomerClientShowGroup { + } + + @NotBlank(message = "客户ID不能为空", groups = ExtractForm.class) + private String customerId; + + @NotBlank(message = "dateId不能为空", groups = ExtractForm.class) + private String dateId; + + private String userId; + private String gridId; + + /** + * 开始时间 + */ + private String startDate; + /** + * 结束时间 + */ + private String endDate; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java index fdf97a670f..ee5daf2a47 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java @@ -3,10 +3,7 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.StatsFormDTO; -import com.epmet.dto.extract.form.ExtractIndexFormDTO; -import com.epmet.dto.extract.form.ExtractOriginFormDTO; -import com.epmet.dto.extract.form.ExtractScreenFormDTO; -import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.dto.extract.form.*; import com.epmet.dto.group.form.GroupStatsFormDTO; import com.epmet.dto.screen.form.InitCustomerIndexForm; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; @@ -258,13 +255,13 @@ public interface DataStatisticalOpenFeignClient { Result gridVanguardStats(@RequestBody StatsFormDTO formDTO); /** - * desc: 网格员巡查统计初始化及校正 + * desc: 业务库按天统计 统一入库 * * @param formDTO * @return com.epmet.commons.tools.utils.Result * @author LiuJanJun * @date 2021/7/2 3:04 下午 */ - @PostMapping("/data/stats/bizData/stats/patrol") - Result staffPatrolStats(@RequestBody StaffPatrolStatsFormDTO formDTO); + @PostMapping("/data/stats/bizData/stats/daily") + Result exeStatsDaily(@RequestBody BizDataFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java index ecd3c7faf2..4846a3e557 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java @@ -4,10 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.StatsFormDTO; -import com.epmet.dto.extract.form.ExtractIndexFormDTO; -import com.epmet.dto.extract.form.ExtractOriginFormDTO; -import com.epmet.dto.extract.form.ExtractScreenFormDTO; -import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.dto.extract.form.*; import com.epmet.dto.group.form.GroupStatsFormDTO; import com.epmet.dto.screen.form.InitCustomerIndexForm; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; @@ -259,7 +256,7 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp } @Override - public Result staffPatrolStats(StaffPatrolStatsFormDTO formDTO) { - return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "staffPatrolStats", formDTO); + public Result exeStatsDaily(BizDataFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "exeStatsDaily", formDTO); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java index 5910f13386..7fe1add999 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/BizDataStatsController.java @@ -1,6 +1,7 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.BizDataFormDTO; import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.service.evaluationindex.extract.biz.BizDataStatsService; import org.springframework.beans.factory.annotation.Autowired; @@ -22,6 +23,16 @@ public class BizDataStatsController { private BizDataStatsService bizDataStatsService; /** + * @return com.epmet.commons.tools.utils.Result + * @param formDTO + * @description 业务库统计数据 统一入库 + * @Date 2021/3/26 13:27 + **/ + @RequestMapping("daily") + public Result execute(@RequestBody BizDataFormDTO formDTO) { + bizDataStatsService.exeDailyAll(formDTO); + return new Result(); + } /** * @return com.epmet.commons.tools.utils.Result * @param formDTO * @description 工作端数据一期,用户分析:参与用户、注册用户分析 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java index 8bff5118b7..062bd2c49c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/BizDataStatsService.java @@ -17,6 +17,7 @@ package com.epmet.service.evaluationindex.extract.biz; +import com.epmet.dto.extract.form.BizDataFormDTO; import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; /** @@ -27,6 +28,13 @@ import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; */ public interface BizDataStatsService { + /** + * desc:抽取所有业务数据到统计库 + * + * @param dataFormDTO + */ + void exeDailyAll(BizDataFormDTO dataFormDTO); + void executeStaffPatrolStats(StaffPatrolStatsFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 2db1363f5e..01cb232071 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -6,6 +6,7 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.ProjectConstant; import com.epmet.dto.ProjectDTO; +import com.epmet.dto.extract.form.BizDataFormDTO; import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; import com.epmet.dto.user.result.CustomerGridStaffDTO; import com.epmet.dto.user.result.CustomerStaffDTO; @@ -14,11 +15,14 @@ import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; import com.epmet.service.evaluationindex.extract.biz.BizDataStatsService; import com.epmet.service.org.CustomerStaffService; import com.epmet.service.project.ProjectService; +import com.epmet.service.stats.DimCustomerService; import com.epmet.service.user.StatsStaffPatrolService; import com.epmet.service.user.UserService; import com.epmet.util.DimIdGenerator; +import com.google.common.util.concurrent.ThreadFactoryBuilder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Autowired; @@ -28,6 +32,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.concurrent.*; import java.util.stream.Collectors; /** @@ -40,6 +45,11 @@ import java.util.stream.Collectors; @Slf4j @Service public class BizDataStatsServiceImpl implements BizDataStatsService { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("bizDataStats-pool-%d").build(); + ExecutorService threadPool = new ThreadPoolExecutor(3, 6, + 10L, TimeUnit.MINUTES, + new LinkedBlockingQueue<>(500), namedThreadFactory, new ThreadPoolExecutor.CallerRunsPolicy()); @Autowired private CustomerStaffService customerStaffService; @Autowired @@ -48,6 +58,36 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { private ProjectService projectService; @Autowired private StatsStaffPatrolService statsStaffPatrolService; + @Autowired + private DimCustomerService dimCustomerService; + + @Override + public void exeDailyAll(BizDataFormDTO dataFormDTO) { + String customerId = dataFormDTO.getCustomerId(); + if (StringUtils.isBlank(dataFormDTO.getDateId()) && (StringUtils.isBlank(dataFormDTO.getStartDate()) && StringUtils.isBlank(dataFormDTO.getEndDate()))) { + //如果没有设置开始日期、结束日期,默认查询昨天 + dataFormDTO.setDateId(DimIdGenerator.getDateDimId(DateUtils.addDateDays(new Date(), -1))); + } + List customerIds = new ArrayList<>(); + if (StringUtils.isNotBlank(customerId)) { + //指定某个客户 + customerIds.add(customerId); + } else { + //查询全部客户 + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_HUNDRED; + customerIds = dimCustomerService.selectCustomerIdPage(pageNo, pageSize); + if (org.springframework.util.CollectionUtils.isEmpty(customerIds)) { + log.error("exeDailyAll 获取客户Id为空"); + return; + } + } + customerIds.forEach(cId -> { + + log.info("exeDailyAll param:{}", JSON.toJSONString(dataFormDTO)); + submitJob(dataFormDTO); + }); + } @Override public void executeStaffPatrolStats(StaffPatrolStatsFormDTO formDTO) { @@ -216,4 +256,33 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { log.debug("getAllGridMembers result:{},param:{}", JSON.toJSONString(insertList), JSON.toJSONString(formDTO)); return insertList; } + + private void submitJob(BizDataFormDTO param) { + boolean isRange = StringUtils.isBlank(param.getDateId()); + List daysBetween = null; + if (isRange) { + daysBetween = DateUtils.getDaysBetween(param.getStartDate(), param.getEndDate()); + } + List finalDaysBetween = daysBetween; + threadPool.submit(() -> { + StaffPatrolStatsFormDTO formDTO = ConvertUtils.sourceToTarget(param, StaffPatrolStatsFormDTO.class); + if (!isRange) { + try { + formDTO.setDateId(param.getDateId()); + this.executeStaffPatrolStats(formDTO); + } catch (Exception e) { + log.error("【网格员巡查数据统计】发生异常,参数:" + JSON.toJSONString(formDTO), e); + } + } else { + try { + for (String dateDimId : finalDaysBetween) { + formDTO.setDateId(dateDimId); + this.executeStaffPatrolStats(formDTO); + } + } catch (Exception e) { + log.error("【网格员巡查数据统计】发生异常,参数:" + JSON.toJSONString(param), e); + } + } + }); + } } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/BizDataStatsService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/BizDataStatsService.java index d610bf6790..56254e637f 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/BizDataStatsService.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/BizDataStatsService.java @@ -1,10 +1,10 @@ package com.epmet.service; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.dto.extract.form.BizDataFormDTO; public interface BizDataStatsService { - Result exeStaffPatrolStats(StaffPatrolStatsFormDTO formDTO); + Result exeStatsDaily(BizDataFormDTO formDTO); } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java index 0e7a7b53e9..5616de5bbe 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/BizDataStatsServiceImpl.java @@ -1,7 +1,7 @@ package com.epmet.service.impl; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.dto.extract.form.BizDataFormDTO; import com.epmet.feign.DataStatisticalOpenFeignClient; import com.epmet.service.BizDataStatsService; import org.springframework.beans.factory.annotation.Autowired; @@ -19,7 +19,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { @Autowired private DataStatisticalOpenFeignClient feignClient; @Override - public Result exeStaffPatrolStats(StaffPatrolStatsFormDTO formDTO) { - return feignClient.staffPatrolStats(formDTO); + public Result exeStatsDaily(BizDataFormDTO formDTO) { + return feignClient.exeStatsDaily(formDTO); } } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java index d07f233108..affb4a2e9d 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java @@ -2,7 +2,7 @@ package com.epmet.task; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO; +import com.epmet.dto.extract.form.BizDataFormDTO; import com.epmet.service.BizDataStatsService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -23,8 +23,8 @@ public class StaffPatrolStatsTask implements ITask { @Override public void run(String params) { log.debug("staffPatrolStatsTask定时任务正在执行,参数为:{}", params); - StaffPatrolStatsFormDTO formDTO = JSON.parseObject(params, StaffPatrolStatsFormDTO.class); - Result result = bizDataStatsService.exeStaffPatrolStats(formDTO); + BizDataFormDTO formDTO = JSON.parseObject(params, BizDataFormDTO.class); + Result result = bizDataStatsService.exeStatsDaily(formDTO); if (result.success()){ log.debug("staffPatrolStatsTask定时任务正在执行定时任务执行成功"); }else { From eccc22750386fc009470bedf73c38ed19973cfba Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 5 Jul 2021 10:34:50 +0800 Subject: [PATCH 21/36] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...trolStatsTask.java => BizDataStatsDailyTask.java} | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) rename epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/{StaffPatrolStatsTask.java => BizDataStatsDailyTask.java} (62%) diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/BizDataStatsDailyTask.java similarity index 62% rename from epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java rename to epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/BizDataStatsDailyTask.java index affb4a2e9d..bc79053a1f 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StaffPatrolStatsTask.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/BizDataStatsDailyTask.java @@ -10,25 +10,25 @@ import org.springframework.stereotype.Component; /** * @author zhaoqifeng - * @dscription + * @dscription 业务数据统计 【日】统一入库 * @date 2020/6/23 14:36 */ @Slf4j -@Component("staffPatrolStatsTask") -public class StaffPatrolStatsTask implements ITask { +@Component("bizDataStatsDailyTask") +public class BizDataStatsDailyTask implements ITask { @Autowired private BizDataStatsService bizDataStatsService; @Override public void run(String params) { - log.debug("staffPatrolStatsTask定时任务正在执行,参数为:{}", params); + log.debug("bizDataStatsDailyTask定时任务正在执行,参数为:{}", params); BizDataFormDTO formDTO = JSON.parseObject(params, BizDataFormDTO.class); Result result = bizDataStatsService.exeStatsDaily(formDTO); if (result.success()){ - log.debug("staffPatrolStatsTask定时任务正在执行定时任务执行成功"); + log.debug("bizDataStatsDailyTask定时任务正在执行定时任务执行成功"); }else { - log.debug("staffPatrolStatsTask定时任务正在执行定时任务执行失败:" + result.getMsg()); + log.debug("bizDataStatsDailyTask定时任务正在执行定时任务执行失败:" + result.getMsg()); } } } From 3f515a9991fd719ab19a9a50048923e4dfe69ffd Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 5 Jul 2021 11:11:17 +0800 Subject: [PATCH 22/36] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/task/BizDataStatsDailyTask.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/BizDataStatsDailyTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/BizDataStatsDailyTask.java index bc79053a1f..8a665e3148 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/BizDataStatsDailyTask.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/BizDataStatsDailyTask.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.extract.form.BizDataFormDTO; import com.epmet.service.BizDataStatsService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -23,7 +24,10 @@ public class BizDataStatsDailyTask implements ITask { @Override public void run(String params) { log.debug("bizDataStatsDailyTask定时任务正在执行,参数为:{}", params); - BizDataFormDTO formDTO = JSON.parseObject(params, BizDataFormDTO.class); + BizDataFormDTO formDTO = new BizDataFormDTO(); + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, BizDataFormDTO.class); + } Result result = bizDataStatsService.exeStatsDaily(formDTO); if (result.success()){ log.debug("bizDataStatsDailyTask定时任务正在执行定时任务执行成功"); From 99522533bf9b5b783b937df84063f59840c97ce4 Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 5 Jul 2021 13:57:21 +0800 Subject: [PATCH 23/36] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/biz/impl/BizDataStatsServiceImpl.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 01cb232071..393eb0cf1d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -108,11 +108,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { yesterdayParam.setDateId(yesterdayStr); //遍历网格员重新初始化数据 List insertList = buildInitPatrolStatsData(yesterdayParam, allGridMembers); - /* List yesterdayStatsList = statsStaffPatrolService.selectData(formDTO.getCustomerId(), yesterdayStr); - if (CollectionUtils.isEmpty(yesterdayStatsList)) { - log.warn("reloadStaffPatrolStatsData have any yesterdayStats data,dateId:{}", yesterdayStr); - return; - }*/ + Map yesterdayStatsMap = insertList.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getStaffId(), o -> o, (o1, o2) -> o1)); //获取昨日的巡查记录 List yesterdayPatrolList = userService.selectStaffPatrolListByDateId(formDTO.getCustomerId(), yesterdayStr); @@ -186,8 +182,6 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { } private void initStaffPatrolTodayData(StaffPatrolStatsFormDTO formDTO, List allGridMembers) { - - List insertList = buildInitPatrolStatsData(formDTO, allGridMembers); Integer effectRow = statsStaffPatrolService.delAndInsertBatch(formDTO, insertList); log.debug("initStaffPatrolStats insert rows:{}", effectRow); From a6b49b471f22e9a28537b82c28457ccacef14800 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 5 Jul 2021 14:22:38 +0800 Subject: [PATCH 24/36] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=AB=AF-=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E4=B8=AD=E5=BF=83-=E7=BD=91=E6=A0=BC=E5=91=98?= =?UTF-8?q?=E5=B7=A1=E6=9F=A5=E8=AE=B0=E5=BD=95=E6=B1=87=E6=80=BB=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/PersonalPatrolListResultDTO.java | 20 ++++++++++ .../controller/EpmetUserController.java | 10 +++++ .../dao/epmetuser/StaffPatrolRecordDao.java | 7 ++++ .../service/epmetuser/EpmetUserService.java | 10 +++-- .../epmetuser/impl/EpmetUserServiceImpl.java | 38 +++++++++++++++++-- .../mapper/epmetuser/StaffPatrolRecordDao.xml | 12 ++++++ 6 files changed, 90 insertions(+), 7 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PersonalPatrolListResultDTO.java diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PersonalPatrolListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PersonalPatrolListResultDTO.java new file mode 100644 index 0000000000..8e99eec996 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/PersonalPatrolListResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dataaggre.dto.epmetuser.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 个人中心-网格员巡查记录-接口入参 + * @Auth sun + */ +@Data +public class PersonalPatrolListResultDTO implements Serializable { + private static final long serialVersionUID = 7129564173128153335L; + + //巡查总次数;巡查总时长;立项事件数 + private String key; + //key对应值 + private String value; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java index 779fa37fe3..c8a34d86e8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java @@ -12,6 +12,7 @@ import com.epmet.dataaggre.dto.epmetuser.form.PatrolRecordListFormDTO; import com.epmet.dataaggre.dto.epmetuser.form.StaffListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolDateListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolRecordListResultDTO; +import com.epmet.dataaggre.dto.epmetuser.result.PersonalPatrolListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import org.springframework.beans.factory.annotation.Autowired; @@ -99,4 +100,13 @@ public class EpmetUserController { return new Result>().ok(epmetUserService.staffPatrolList(formDTO)); } + /** + * @Description 个人中心-网格员巡查记录 + * @author sun + */ + @PostMapping("personalpatrollist") + public Result> personalPatrolList(@LoginUser TokenDto tokenDto) { + return new Result>().ok(epmetUserService.personalPatrolList(tokenDto.getUserId())); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java index f6a607f801..36385a7cbd 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/StaffPatrolRecordDao.java @@ -23,6 +23,7 @@ import com.epmet.dataaggre.dto.epmetuser.form.StaffListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO; import com.epmet.dataaggre.entity.epmetuser.StaffPatrolRecordEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -46,4 +47,10 @@ public interface StaffPatrolRecordDao extends BaseDao { * @author sun */ List selectStaffPatrolList(StaffListFormDTO formDTO); + + /** + * @Description 汇总查询当前工作人员所有巡查记录数据 + * @author sun + */ + StaffListResultDTO selectPersonalPatrolList(@Param("staffId") String staffId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 03fc33dbc9..f548e47d4e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -3,10 +3,7 @@ package com.epmet.dataaggre.service.epmetuser; import com.epmet.dataaggre.dto.epmetuser.form.PatrolDateListFormDTO; import com.epmet.dataaggre.dto.epmetuser.form.PatrolRecordListFormDTO; import com.epmet.dataaggre.dto.epmetuser.form.StaffListFormDTO; -import com.epmet.dataaggre.dto.epmetuser.result.PatrolDateListResultDTO; -import com.epmet.dataaggre.dto.epmetuser.result.PatrolRecordListResultDTO; -import com.epmet.dataaggre.dto.epmetuser.result.StaffListResultDTO; -import com.epmet.dataaggre.dto.epmetuser.result.UserInfosResultDTO; +import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import java.util.List; @@ -71,4 +68,9 @@ public interface EpmetUserService { */ List staffPatrolList(StaffListFormDTO formDTO); + /** + * @Description 个人中心-网格员巡查记录 + * @author sun + */ + List personalPatrolList(String staffId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index b9965774c7..69815ed254 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -272,8 +272,8 @@ public class EpmetUserServiceImpl implements EpmetUserService { //3.封装数据并返回 resultList.forEach(re -> list.stream().filter(l -> re.getGridId().equals(l.getId())).forEach(s -> re.setGridName(s.getGridName()))); - NumberFormat numberFormat = NumberFormat.getInstance(); - numberFormat.setMaximumFractionDigits(NumConstant.ONE); + //NumberFormat numberFormat = NumberFormat.getInstance(); + //numberFormat.setMaximumFractionDigits(NumConstant.ZERO); resultList.forEach(re -> { /*String totalTime = "0分钟"; if (re.getTimeNum() > NumConstant.ZERO) { @@ -282,11 +282,43 @@ public class EpmetUserServiceImpl implements EpmetUserService { totalTime = (hour < 1 ? "" : hour + "小时") + (minute < 1 ? "" : minute + "分钟"); } re.setTotalTime(totalTime == "" ? "0分钟" : totalTime);*/ - re.setTotalTime(re.getTimeNum() < 1 ? BigDecimal.ZERO + "h" : new BigDecimal(numberFormat.format((float) re.getTimeNum() / (float) 3600)) + "h"); + //re.setTotalTime(re.getTimeNum() < 1 ? BigDecimal.ZERO + "h" : new BigDecimal(numberFormat.format((float) re.getTimeNum() / (float) 3600)) + "h"); + re.setTotalTime(re.getTimeNum() / 60 + "分钟"); list.stream().filter(l -> re.getGridId().equals(l.getId())).forEach(s -> re.setGridName(s.getGridName())); }); return resultList; } + /** + * @Description 个人中心-网格员巡查记录 + * @author sun + */ + @Override + public List personalPatrolList(String staffId) { + LinkedList resultList = new LinkedList<>(); + //1.汇总查询当前工作人员所有巡查记录数据 + StaffListResultDTO resultDTO = staffPatrolRecordDao.selectPersonalPatrolList(staffId); + if (null == resultDTO) { + return resultList; + } + //2.封装数据并返回 + NumberFormat numberFormat = NumberFormat.getInstance(); + numberFormat.setMaximumFractionDigits(NumConstant.ZERO); + PersonalPatrolListResultDTO personal1 = new PersonalPatrolListResultDTO(); + personal1.setKey("总次数"); + personal1.setValue(resultDTO.getPatrolTotal().toString()); + resultList.add(personal1); + PersonalPatrolListResultDTO personal2 = new PersonalPatrolListResultDTO(); + personal2.setKey("总时长"); + personal2.setValue(resultDTO.getTimeNum() / 60 + "分钟"); + resultList.add(personal2); + PersonalPatrolListResultDTO personal3 = new PersonalPatrolListResultDTO(); + personal3.setKey("事件数"); + personal3.setValue(resultDTO.getReportProjectCount().toString()); + resultList.add(personal3); + + return resultList; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml index 5748609036..08a1699368 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/StaffPatrolRecordDao.xml @@ -97,4 +97,16 @@ #{pageNo}, #{pageSize} + + From a01a585c8cacdde8673c61234c912ed207f662bf Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 5 Jul 2021 15:29:25 +0800 Subject: [PATCH 25/36] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=95=B0=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/biz/impl/BizDataStatsServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 393eb0cf1d..e5a322b1bf 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -143,7 +143,8 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { yesterdayPatrolList.forEach(patrol -> { //项目立项时间 在巡查期间时 总数加1 long projectCreateTime = projectDTO.getCreatedTime().getTime(); - if (projectCreateTime>= patrol.getPatrolStartTime().getTime() && projectCreateTime <= patrol.getPatrolEndTime().getTime()) { + //创建人为网格员 且时间在巡查期间的 则上报的项目数加1 + if (projectDTO.getCreatedBy().equals(patrol.getStaffId()) && projectCreateTime>= patrol.getPatrolStartTime().getTime() && projectCreateTime <= patrol.getPatrolEndTime().getTime()) { String unqPatrolKey = getUnqPatrolKey(patrol.getGrid(), patrol.getStaffId()); StatsStaffPatrolRecordDailyDTO recordDailyDTO = yesterdayStatsMap.get(unqPatrolKey); if (recordDailyDTO == null) { From e805f40924a8dc6b5235630cac142fe7213ac99c Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 5 Jul 2021 15:42:34 +0800 Subject: [PATCH 26/36] ...... --- .../epmetuser/impl/EpmetUserServiceImpl.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 69815ed254..86f97d96e4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -275,15 +275,15 @@ public class EpmetUserServiceImpl implements EpmetUserService { //NumberFormat numberFormat = NumberFormat.getInstance(); //numberFormat.setMaximumFractionDigits(NumConstant.ZERO); resultList.forEach(re -> { - /*String totalTime = "0分钟"; + String totalTime = "0分钟"; if (re.getTimeNum() > NumConstant.ZERO) { int hour = re.getTimeNum() / 3600; int minute = re.getTimeNum() % 3600; totalTime = (hour < 1 ? "" : hour + "小时") + (minute < 1 ? "" : minute + "分钟"); } - re.setTotalTime(totalTime == "" ? "0分钟" : totalTime);*/ + re.setTotalTime(totalTime == "" ? "0分钟" : totalTime); //re.setTotalTime(re.getTimeNum() < 1 ? BigDecimal.ZERO + "h" : new BigDecimal(numberFormat.format((float) re.getTimeNum() / (float) 3600)) + "h"); - re.setTotalTime(re.getTimeNum() / 60 + "分钟"); + //re.setTotalTime(re.getTimeNum() / 60 + "分钟"); list.stream().filter(l -> re.getGridId().equals(l.getId())).forEach(s -> re.setGridName(s.getGridName())); }); @@ -311,7 +311,14 @@ public class EpmetUserServiceImpl implements EpmetUserService { resultList.add(personal1); PersonalPatrolListResultDTO personal2 = new PersonalPatrolListResultDTO(); personal2.setKey("总时长"); - personal2.setValue(resultDTO.getTimeNum() / 60 + "分钟"); + //personal2.setValue(resultDTO.getTimeNum() / 60 + "分钟"); + String totalTime = "0分钟"; + if (resultDTO.getTimeNum() > NumConstant.ZERO) { + int hour = resultDTO.getTimeNum() / 3600; + int minute = resultDTO.getTimeNum() % 3600; + totalTime = (hour < 1 ? "" : hour + "小时") + (minute < 1 ? "" : minute + "分钟"); + } + personal2.setValue(totalTime == "" ? "0分钟" : totalTime); resultList.add(personal2); PersonalPatrolListResultDTO personal3 = new PersonalPatrolListResultDTO(); personal3.setKey("事件数"); From 3cf4bc042c060517583aca7fa0cd5d9ac0a90f67 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 5 Jul 2021 16:06:30 +0800 Subject: [PATCH 27/36] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/epmetuser/impl/EpmetUserServiceImpl.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 86f97d96e4..09b12685be 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -277,8 +277,9 @@ public class EpmetUserServiceImpl implements EpmetUserService { resultList.forEach(re -> { String totalTime = "0分钟"; if (re.getTimeNum() > NumConstant.ZERO) { - int hour = re.getTimeNum() / 3600; - int minute = re.getTimeNum() % 3600; + int num = re.getTimeNum() / 60; + int hour = num / 60; + int minute = num % 60; totalTime = (hour < 1 ? "" : hour + "小时") + (minute < 1 ? "" : minute + "分钟"); } re.setTotalTime(totalTime == "" ? "0分钟" : totalTime); @@ -314,8 +315,9 @@ public class EpmetUserServiceImpl implements EpmetUserService { //personal2.setValue(resultDTO.getTimeNum() / 60 + "分钟"); String totalTime = "0分钟"; if (resultDTO.getTimeNum() > NumConstant.ZERO) { - int hour = resultDTO.getTimeNum() / 3600; - int minute = resultDTO.getTimeNum() % 3600; + int num = resultDTO.getTimeNum() / 60; + int hour = num / 60; + int minute = num % 60; totalTime = (hour < 1 ? "" : hour + "小时") + (minute < 1 ? "" : minute + "分钟"); } personal2.setValue(totalTime == "" ? "0分钟" : totalTime); From 85e8b36fd05e77e3e29e45de7051213113fc1258 Mon Sep 17 00:00:00 2001 From: jianjun Date: Tue, 6 Jul 2021 15:38:58 +0800 Subject: [PATCH 28/36] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/biz/impl/BizDataStatsServiceImpl.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index e5a322b1bf..4e3e6ba211 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -91,12 +91,13 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { @Override public void executeStaffPatrolStats(StaffPatrolStatsFormDTO formDTO) { - //校正数据 + //校正参数里的前一天日期的数据 //获取所有网格员 List allGridMembers = getAllGridMembers(formDTO); reloadStaffPatrolStatsData(formDTO, allGridMembers); + String currentDateId = DimIdGenerator.getDateDimId(new Date()); - //初始化今天的数据 + //初始化参数里日期的数据 initStaffPatrolTodayData(formDTO, allGridMembers); } @@ -144,7 +145,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { //项目立项时间 在巡查期间时 总数加1 long projectCreateTime = projectDTO.getCreatedTime().getTime(); //创建人为网格员 且时间在巡查期间的 则上报的项目数加1 - if (projectDTO.getCreatedBy().equals(patrol.getStaffId()) && projectCreateTime>= patrol.getPatrolStartTime().getTime() && projectCreateTime <= patrol.getPatrolEndTime().getTime()) { + if (projectDTO.getCreatedBy().equals(patrol.getStaffId()) && projectCreateTime >= patrol.getPatrolStartTime().getTime() && projectCreateTime <= patrol.getPatrolEndTime().getTime()) { String unqPatrolKey = getUnqPatrolKey(patrol.getGrid(), patrol.getStaffId()); StatsStaffPatrolRecordDailyDTO recordDailyDTO = yesterdayStatsMap.get(unqPatrolKey); if (recordDailyDTO == null) { @@ -263,7 +264,12 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { StaffPatrolStatsFormDTO formDTO = ConvertUtils.sourceToTarget(param, StaffPatrolStatsFormDTO.class); if (!isRange) { try { - formDTO.setDateId(param.getDateId()); + //执行参数改为今天 + Date parse = DateUtils.parse(param.getDateId(), DateUtils.DATE_PATTERN_YYYYMMDD); + Date addDateId = DateUtils.addDateDays(parse, NumConstant.ONE); + String dateDimId = DimIdGenerator.getDateDimId(addDateId); + formDTO.setDateId(dateDimId); + //初始化form里的今天的数据 并纠正昨日的数据 this.executeStaffPatrolStats(formDTO); } catch (Exception e) { log.error("【网格员巡查数据统计】发生异常,参数:" + JSON.toJSONString(formDTO), e); From 497b7fd1622e2e4d9d08e2e34862f493d63e2380 Mon Sep 17 00:00:00 2001 From: jianjun Date: Tue, 6 Jul 2021 16:24:38 +0800 Subject: [PATCH 29/36] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/biz/impl/BizDataStatsServiceImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 4e3e6ba211..468bf5ce51 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -95,7 +95,6 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { //获取所有网格员 List allGridMembers = getAllGridMembers(formDTO); reloadStaffPatrolStatsData(formDTO, allGridMembers); - String currentDateId = DimIdGenerator.getDateDimId(new Date()); //初始化参数里日期的数据 initStaffPatrolTodayData(formDTO, allGridMembers); From 36503cbd936d8a10d3502969e9a3c32e53bed1ef Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 7 Jul 2021 10:42:31 +0800 Subject: [PATCH 30/36] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=91=98=E5=B7=A1?= =?UTF-8?q?=E6=9F=A5=E6=95=B0=E6=8D=AE=E7=BB=9F=E8=AE=A1=20=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/db/migration/V0.0.15__update_patrol_stats.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.15__update_patrol_stats.sql diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.15__update_patrol_stats.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.15__update_patrol_stats.sql new file mode 100644 index 0000000000..a97fdfaf7e --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.15__update_patrol_stats.sql @@ -0,0 +1,3 @@ +ALTER TABLE `epmet_user`.`stats_staff_patrol_record_daily` + DROP INDEX `unx_staff`, + ADD UNIQUE INDEX `unx_staff`(`DATE_ID`, `STAFF_ID`, `GRID_ID`) USING BTREE; From 1e56e0c0487d35368272f796f862aa1a845b5842 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 7 Jul 2021 13:50:16 +0800 Subject: [PATCH 31/36] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=8E=92=E6=9F=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/biz/impl/BizDataStatsServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 468bf5ce51..13cbf5e6e8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -102,6 +102,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { } private void reloadStaffPatrolStatsData(StaffPatrolStatsFormDTO formDTO, List allGridMembers) { + log.info("reloadStaffPatrolStatsData param:{}",JSON.toJSONString(formDTO)); //获取昨日的巡查统计记录 String yesterdayStr = getYesterdayString(formDTO); StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); @@ -183,6 +184,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { } private void initStaffPatrolTodayData(StaffPatrolStatsFormDTO formDTO, List allGridMembers) { + log.info("initStaffPatrolTodayData param:{}",JSON.toJSONString(formDTO)); List insertList = buildInitPatrolStatsData(formDTO, allGridMembers); Integer effectRow = statsStaffPatrolService.delAndInsertBatch(formDTO, insertList); log.debug("initStaffPatrolStats insert rows:{}", effectRow); From 651d6d02cde58056f31f3a2efd664dbecad433d7 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 7 Jul 2021 14:11:41 +0800 Subject: [PATCH 32/36] =?UTF-8?q?=E5=A4=9A=E5=AE=A2=E6=88=B7=E6=97=B6?= =?UTF-8?q?=E5=8F=82=E6=95=B0=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/biz/impl/BizDataStatsServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 13cbf5e6e8..157561cbe7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -83,7 +83,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { } } customerIds.forEach(cId -> { - + dataFormDTO.setCustomerId(cId); log.info("exeDailyAll param:{}", JSON.toJSONString(dataFormDTO)); submitJob(dataFormDTO); }); From a305493f91e016922c78b26951c18e2ede64a8b1 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 7 Jul 2021 00:02:27 +0800 Subject: [PATCH 33/36] =?UTF-8?q?=E5=A4=9A=E5=AE=A2=E6=88=B7=E6=97=B6?= =?UTF-8?q?=E5=8F=82=E6=95=B0=20=E8=B0=83=E6=95=B4=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/impl/BizDataStatsServiceImpl.java | 44 +++++++++++-------- .../impl/StatsStaffPatrolServiceImpl.java | 11 ----- 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 157561cbe7..b1326b0214 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -64,10 +64,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { @Override public void exeDailyAll(BizDataFormDTO dataFormDTO) { String customerId = dataFormDTO.getCustomerId(); - if (StringUtils.isBlank(dataFormDTO.getDateId()) && (StringUtils.isBlank(dataFormDTO.getStartDate()) && StringUtils.isBlank(dataFormDTO.getEndDate()))) { - //如果没有设置开始日期、结束日期,默认查询昨天 - dataFormDTO.setDateId(DimIdGenerator.getDateDimId(DateUtils.addDateDays(new Date(), -1))); - } + List customerIds = new ArrayList<>(); if (StringUtils.isNotBlank(customerId)) { //指定某个客户 @@ -94,28 +91,38 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { //校正参数里的前一天日期的数据 //获取所有网格员 List allGridMembers = getAllGridMembers(formDTO); - reloadStaffPatrolStatsData(formDTO, allGridMembers); + String yesterdayStr = getYesterdayString(formDTO); + StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); + yesterdayParam.setDateId(yesterdayStr); + reloadStaffPatrolStatsData(yesterdayParam, allGridMembers); - //初始化参数里日期的数据 - initStaffPatrolTodayData(formDTO, allGridMembers); + //初始化参数里日期的数据 如果当前时间在1分钟内 则初始化 + String todayDateDimId = DimIdGenerator.getDateDimId(new Date()); + if (todayDateDimId.equals(formDTO.getDateId())){ + //如果当前时间-1分钟还等于今天 则进行初始化操作 否则执行数据纠正 + String dateDimId = DimIdGenerator.getDateDimId(new Date(System.currentTimeMillis() - 1 * 60 * 1000)); + if (!dateDimId.equals(todayDateDimId)){ + initStaffPatrolTodayData(formDTO, allGridMembers); + }else{ + reloadStaffPatrolStatsData(formDTO, allGridMembers); + } + } } private void reloadStaffPatrolStatsData(StaffPatrolStatsFormDTO formDTO, List allGridMembers) { log.info("reloadStaffPatrolStatsData param:{}",JSON.toJSONString(formDTO)); //获取昨日的巡查统计记录 - String yesterdayStr = getYesterdayString(formDTO); - StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); - yesterdayParam.setDateId(yesterdayStr); + //遍历网格员重新初始化数据 - List insertList = buildInitPatrolStatsData(yesterdayParam, allGridMembers); + List insertList = buildInitPatrolStatsData(formDTO, allGridMembers); Map yesterdayStatsMap = insertList.stream().collect(Collectors.toMap(o -> o.getGridId() + o.getStaffId(), o -> o, (o1, o2) -> o1)); //获取昨日的巡查记录 - List yesterdayPatrolList = userService.selectStaffPatrolListByDateId(formDTO.getCustomerId(), yesterdayStr); + List yesterdayPatrolList = userService.selectStaffPatrolListByDateId(formDTO.getCustomerId(), formDTO.getDateId()); //获取昨日的立项项目数 - List yesterdayProjectList = projectService.selectProjectListByDateId(formDTO.getCustomerId(), yesterdayStr, ProjectConstant.PROJECT_ORIGIN_AGENCY); + List yesterdayProjectList = projectService.selectProjectListByDateId(formDTO.getCustomerId(), formDTO.getDateId(), ProjectConstant.PROJECT_ORIGIN_AGENCY); //遍历网格员 设置其 巡查次数 巡查时常 上报项目数 yesterdayPatrolList.forEach(patrolRecord -> { @@ -158,7 +165,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { }); }); - Integer effectRow = statsStaffPatrolService.delAndInsertBatch(yesterdayParam, insertList); + Integer effectRow = statsStaffPatrolService.delAndInsertBatch(formDTO, insertList); log.debug("initStaffPatrolStats insert rows:{}", effectRow); } @@ -255,6 +262,10 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { } private void submitJob(BizDataFormDTO param) { + if (StringUtils.isBlank(param.getDateId()) && (StringUtils.isBlank(param.getStartDate()) && StringUtils.isBlank(param.getEndDate()))) { + //如果没有设置开始日期、结束日期,默认查询今天 + param.setDateId(DimIdGenerator.getDateDimId(new Date())); + } boolean isRange = StringUtils.isBlank(param.getDateId()); List daysBetween = null; if (isRange) { @@ -265,11 +276,6 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { StaffPatrolStatsFormDTO formDTO = ConvertUtils.sourceToTarget(param, StaffPatrolStatsFormDTO.class); if (!isRange) { try { - //执行参数改为今天 - Date parse = DateUtils.parse(param.getDateId(), DateUtils.DATE_PATTERN_YYYYMMDD); - Date addDateId = DateUtils.addDateDays(parse, NumConstant.ONE); - String dateDimId = DimIdGenerator.getDateDimId(addDateId); - formDTO.setDateId(dateDimId); //初始化form里的今天的数据 并纠正昨日的数据 this.executeStaffPatrolStats(formDTO); } catch (Exception e) { diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java index ca6e9b5988..0da9e3eea6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/StatsStaffPatrolServiceImpl.java @@ -11,7 +11,6 @@ import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO; import com.epmet.entity.user.StatsStaffPatrolRecordDailyEntity; import com.epmet.service.user.StatsStaffPatrolService; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,16 +32,6 @@ public class StatsStaffPatrolServiceImpl implements StatsStaffPatrolService { @Override public Integer delAndInsertBatch(StaffPatrolStatsFormDTO formDTO, List insertList) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(StatsStaffPatrolRecordDailyEntity::getCustomerId, formDTO.getCustomerId()) - .eq(StatsStaffPatrolRecordDailyEntity::getDateId, formDTO.getDateId()); - if (StringUtils.isNotBlank(formDTO.getGridId())) { - queryWrapper.eq(StatsStaffPatrolRecordDailyEntity::getGridId, formDTO.getGridId()); - } - if (StringUtils.isNotBlank(formDTO.getStaffId())) { - queryWrapper.eq(StatsStaffPatrolRecordDailyEntity::getStaffId, formDTO.getStaffId()); - } - int delete = statsStaffPatrolRecordDailyDao.delete(formDTO); log.debug("delAndInsertBatch delete:{},param:{}", delete, JSON.toJSONString(formDTO)); return statsStaffPatrolRecordDailyDao.insertBatch(insertList); From 6149c964b5fa24bab5b2cf8969248f35577f7d32 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 7 Jul 2021 00:08:37 +0800 Subject: [PATCH 34/36] =?UTF-8?q?=E5=8A=A0=E5=BC=BA=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/biz/impl/BizDataStatsServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index b1326b0214..9dabdf11fd 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -91,6 +91,9 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { //校正参数里的前一天日期的数据 //获取所有网格员 List allGridMembers = getAllGridMembers(formDTO); + if (CollectionUtils.isEmpty(allGridMembers)){ + log.warn("executeStaffPatrolStats have any gridMembers,param:{}",JSON.toJSONString(formDTO)); + } String yesterdayStr = getYesterdayString(formDTO); StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); yesterdayParam.setDateId(yesterdayStr); From 3815afb494797e9a0c45ce03c6ce4d1bb5de8b18 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 7 Jul 2021 00:17:31 +0800 Subject: [PATCH 35/36] =?UTF-8?q?=E5=8A=A0=E5=BC=BA=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/biz/impl/BizDataStatsServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 9dabdf11fd..9175eca8f0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -93,6 +93,7 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { List allGridMembers = getAllGridMembers(formDTO); if (CollectionUtils.isEmpty(allGridMembers)){ log.warn("executeStaffPatrolStats have any gridMembers,param:{}",JSON.toJSONString(formDTO)); + return; } String yesterdayStr = getYesterdayString(formDTO); StaffPatrolStatsFormDTO yesterdayParam = ConvertUtils.sourceToTarget(formDTO, StaffPatrolStatsFormDTO.class); From 0502bead60f52239c264288268cdaf2c4ac1a03f Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 7 Jul 2021 15:30:14 +0800 Subject: [PATCH 36/36] =?UTF-8?q?=E5=8A=A0=E5=BC=BA=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/biz/impl/BizDataStatsServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java index 9175eca8f0..29cca916f7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/biz/impl/BizDataStatsServiceImpl.java @@ -270,14 +270,14 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { //如果没有设置开始日期、结束日期,默认查询今天 param.setDateId(DimIdGenerator.getDateDimId(new Date())); } - boolean isRange = StringUtils.isBlank(param.getDateId()); + StaffPatrolStatsFormDTO formDTO = ConvertUtils.sourceToTarget(param, StaffPatrolStatsFormDTO.class); + boolean isRange = StringUtils.isBlank(formDTO.getDateId()); List daysBetween = null; if (isRange) { daysBetween = DateUtils.getDaysBetween(param.getStartDate(), param.getEndDate()); } List finalDaysBetween = daysBetween; threadPool.submit(() -> { - StaffPatrolStatsFormDTO formDTO = ConvertUtils.sourceToTarget(param, StaffPatrolStatsFormDTO.class); if (!isRange) { try { //初始化form里的今天的数据 并纠正昨日的数据