diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml index 4259540d53..bc6bb866cd 100644 --- a/epmet-gateway/src/main/resources/bootstrap.yml +++ b/epmet-gateway/src/main/resources/bootstrap.yml @@ -481,6 +481,9 @@ epmet: - /epmetuser/customerstaff/customerlist - /message/template/** - /data/aggregator/project/projectdistribution + - /data/aggregator/epmetuser/open-staffdetail + - /data/stats/statsuser/gm-uploadevent + - /data/stats/statsuser/gm-uploaddata # 对外开放接口认证白名单 externalAuthUrlsWhiteList: diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/OpenStaffDetailFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/OpenStaffDetailFormDTO.java new file mode 100644 index 0000000000..4d3d81aebe --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/OpenStaffDetailFormDTO.java @@ -0,0 +1,29 @@ +package com.epmet.dataaggre.dto.epmetuser.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 对外接口--查询工作人员基本信息-接口入参 + * @Auth sun + */ +@Data +public class OpenStaffDetailFormDTO implements Serializable { + + private static final long serialVersionUID = -3381286960911634231L; + /** + * 客户Id + */ + @NotBlank(message = "客户Id不能为空", groups = OpenStaffDetailFormDTO.Open.class) + private String customerId; + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空", groups = OpenStaffDetailFormDTO.Open.class) + private String mobile; + public interface Open extends CustomerClientShowGroup {} + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/OpenStaffDetailResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/OpenStaffDetailResultDTO.java new file mode 100644 index 0000000000..9707a14f67 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/OpenStaffDetailResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dataaggre.dto.epmetuser.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 对外接口--查询工作人员基本信息-接口返参 + * @Auth sun + */ +@Data +public class OpenStaffDetailResultDTO implements Serializable { + private static final long serialVersionUID = 7129564173128153335L; + + //工作人员用户id + private String staffId = ""; + //工作人员姓名 + private String staffName = ""; + //手机号 + private String mobile = ""; + //用户所属组织id + private String agencyId = ""; + //用户所属组织全路径名称 + private String agencyAllName = ""; + //客户Id + private String customerId = ""; + +} 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 f63ccdcc2c..39a634fb76 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 @@ -7,10 +7,12 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dataaggre.dto.epmetuser.form.OpenStaffDetailFormDTO; import com.epmet.dataaggre.dto.epmetuser.form.GridMemberStatsFormDTO; 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.OpenStaffDetailResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolDateListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolRecordListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PersonalPatrolListResultDTO; @@ -186,5 +188,16 @@ public class EpmetUserController { maps.add(projectClosedCountMap); return maps; } + /** + * @Param formDTO + * @Description 对外接口--查询工作人员基本信息 + * @author sun + */ + @PostMapping("open-staffdetail") + public Result openStaffDetail(@RequestBody OpenStaffDetailFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, OpenStaffDetailFormDTO.Open.class); + return new Result().ok(epmetUserService.openStaffDetail(formDTO)); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java index 9d3004c815..b3ca304972 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java @@ -18,8 +18,10 @@ package com.epmet.dataaggre.dao.epmetuser; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO; import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 政府工作人员表 @@ -29,5 +31,10 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface CustomerStaffDao extends BaseDao { - + + /** + * @Description 按staffId查询基础信息 + * @author sun + */ + CustomerStaffDTO selectByMobile(@Param("customerId") String customerId, @Param("mobile") String mobile); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java index f8b58c698b..445e796c61 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerStaffAgencyDao.java @@ -18,6 +18,7 @@ package com.epmet.dataaggre.dao.govorg; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO; import com.epmet.dataaggre.entity.govorg.CustomerStaffAgencyEntity; import org.apache.ibatis.annotations.Mapper; @@ -38,4 +39,9 @@ public interface CustomerStaffAgencyDao extends BaseDao personalPatrolList(String staffId); + /** + * @Param formDTO + * @Description 对外接口--查询工作人员基本信息 + * @author sun + */ + OpenStaffDetailResultDTO openStaffDetail(OpenStaffDetailFormDTO 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 09b12685be..326bb24f20 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 @@ -4,15 +4,19 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dataaggre.constant.DataSourceConstant; +import com.epmet.dataaggre.dao.epmetuser.CustomerStaffDao; import com.epmet.dataaggre.dao.epmetuser.StaffPatrolRecordDao; import com.epmet.dataaggre.dao.epmetuser.StaffRoleDao; import com.epmet.dataaggre.dao.epmetuser.UserBaseInfoDao; +import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO; import com.epmet.dataaggre.dto.epmetuser.StaffPatrolDetailDTO; import com.epmet.dataaggre.dto.epmetuser.StaffPatrolRecordDTO; +import com.epmet.dataaggre.dto.epmetuser.form.OpenStaffDetailFormDTO; 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.*; +import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; @@ -51,6 +55,8 @@ public class EpmetUserServiceImpl implements EpmetUserService { private StaffPatrolRecordService staffPatrolRecordService; @Resource private StaffRoleDao staffRoleDao; + @Resource + private CustomerStaffDao customerStaffDao; /** * @Description 根据UserIds查询 @@ -329,5 +335,35 @@ public class EpmetUserServiceImpl implements EpmetUserService { return resultList; } + /** + * @Param formDTO + * @Description 对外接口--查询工作人员基本信息 + * @author sun + */ + @Override + public OpenStaffDetailResultDTO openStaffDetail(OpenStaffDetailFormDTO formDTO) { + OpenStaffDetailResultDTO resultDTO = new OpenStaffDetailResultDTO(); + //1.按staffId查询基础信息 + CustomerStaffDTO staffDTO = customerStaffDao.selectByMobile(formDTO.getCustomerId(), formDTO.getMobile()); + if (null == staffDTO) { + return resultDTO; + } + + //2.查询工作人员所属组织信息 + CustomerAgencyDTO agencyDTO = govOrgService.gridByAgencyId(formDTO.getCustomerId(), staffDTO.getUserId()); + + //3.封装数据并返回 + resultDTO.setCustomerId(formDTO.getCustomerId()); + if (null != agencyDTO) { + resultDTO.setAgencyId(agencyDTO.getId()); + resultDTO.setAgencyAllName(agencyDTO.getAllParentName()); + } + resultDTO.setStaffId(staffDTO.getUserId()); + resultDTO.setStaffName(staffDTO.getRealName()); + resultDTO.setMobile(formDTO.getMobile()); + + return resultDTO; + } + } 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 bd28ef2b26..8cfd4a2276 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 @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.govorg; +import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; import com.epmet.dataaggre.dto.govorg.result.*; @@ -65,4 +66,10 @@ public interface GovOrgService { * @author sun */ List getGridInfoList(List gridIds, String staffId); + + /** + * @Description 查询工作人员所属组织信息 + * @author sun + */ + CustomerAgencyDTO gridByAgencyId(String customerId, 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 38b29c2c12..31b5f9272c 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 @@ -11,6 +11,7 @@ import com.epmet.dataaggre.dao.govorg.CustomerAgencyDao; import com.epmet.dataaggre.dao.govorg.CustomerGridDao; import com.epmet.dataaggre.dao.govorg.CustomerStaffAgencyDao; import com.epmet.dataaggre.dao.govorg.CustomerStaffGridDao; +import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerGridDTO; import com.epmet.dataaggre.dto.govorg.CustomerStaffAgencyDTO; import com.epmet.dataaggre.dto.govorg.form.NextAreaCodeFormDTO; @@ -275,4 +276,13 @@ public class GovOrgServiceImpl implements GovOrgService { return list; } + /** + * @Description 查询工作人员所属组织信息 + * @author sun + */ + @Override + public CustomerAgencyDTO gridByAgencyId(String customerId, String staffId) { + return customerStaffAgencyDao.selectAgencyByStaffId(customerId, staffId); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml index 6795b4cd23..fdbb6fdc04 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/FactGridMemberStatisticsDailyDao.xml @@ -98,7 +98,7 @@ and del_flag = 0 group by member.staff_id, member.grid_id - order by ${sort} desc + order by ${sort} desc, convert(member.staff_name using gbk) asc, member.GRID_ID asc + SELECT + * + FROM + customer_staff + WHERE + del_flag = '0' + AND customer_id = #{customerId} + AND mobile = #{mobile} + LIMIT 1 + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml index 50269ca116..763c06694b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml @@ -16,4 +16,18 @@ AND user_id = #{userId} + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/crm/CustomerRelationDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/crm/CustomerRelationDTO.java new file mode 100644 index 0000000000..3a2fa60edf --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/crm/CustomerRelationDTO.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.dto.crm; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 客户关系表(01.14 add) + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-02-03 + */ +@Data +public class CustomerRelationDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户id + */ + private String customerId; + + /** + * 父级客户id;如果是顶级客户,此列=0 + */ + private String parentCustomerId; + + /** + * 当前客户的所有父级客户id,以英文冒号隔开,如果是顶级客户,此列=0 + */ + private String pids; + + /** + * 当前客户类型取值: external:外部客户,internal:内部客户 + */ + private String customerType; + + /** + * 父级客户类型取值: external:外部客户,internal:内部客户;如果是顶级客户,此列=0 + */ + private String parentCustomerType; + + /** + * open,closed是否启用 + */ + private String status; + + /** + * 当前客户级别(社区级:community, +乡(镇、街道)级:street, +区县级: district, +市级: city +省级:province) + */ + private String level; + + /** + * 当前客户的地区编码,实际就是根组织的area_code + */ + private String areaCode; + + /** + * 删除标识0未删除1已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/SyncOrgInfoFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/SyncOrgInfoFormDTO.java new file mode 100644 index 0000000000..bd1e2034f9 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/SyncOrgInfoFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.extract.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2021/7/6 16:37 + */ +@Data +public class SyncOrgInfoFormDTO implements Serializable { + private static final long serialVersionUID = -3533276226280926966L; + @NotBlank(message = "孔村or榆山or锦水客户id不能为空") + private String fromCustomerId; + @NotBlank(message = "平阴客户id不能为空") + private String toCustomerId; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactGridMemberStatisticsDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactGridMemberStatisticsDailyDTO.java index 071d00753c..6beb42f54d 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactGridMemberStatisticsDailyDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactGridMemberStatisticsDailyDTO.java @@ -53,11 +53,21 @@ public class FactGridMemberStatisticsDailyDTO implements Serializable { */ private String yearId; - /** - * 客户ID - */ + /** + * 来源类型 external:外部,internal:内部 + */ + private String sourceType; + + /** + * 客户Id + */ private String customerId; + /** + * 数据来源客户Id + */ + private String sourceCustomerId; + /** * 组织ID */ diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/GmUploadDataFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/GmUploadDataFormDTO.java new file mode 100644 index 0000000000..576a4eb8a3 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/GmUploadDataFormDTO.java @@ -0,0 +1,82 @@ +package com.epmet.dto.stats.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @Description 数据上报--网格员事件总数上报-接口入参 + * @Auth sun + */ +@Data +public class GmUploadDataFormDTO implements Serializable { + private static final long serialVersionUID = -9178779369245037701L; + /** + * 为true时需要删除历史数据 + */ + private Boolean isFirst; + //数据集合对象 + @NotEmpty(message = "数据集合对象不能为空",groups = UploadData.class) + private List dataList; + public interface UploadData extends CustomerClientShowGroup {} + + @Data + public static class DataList{ + //来源类型 external:外部,internal:内部 + private String sourceType; + //客户Id 【dim_customer.id】[接口传入的是来源数据的客户Id] + private String customerId; + //数据来源客户Id + private String parentCustomerId; + //机关Id 【dim_agency.id】 + private String agencyId; + //日维度Id 【dim_date.id】 + private String dateId; + //月维度Id 【dim_month.id】 + private String monthId; + //年维度Id 【dim_year.id】 + private String yearId; + //网格id + private String gridId; + //上级ID(网格所属Agency的上级组织Id) + private String pid; + //所有agencyId的上级组织ID(包含agencyId) + private String pids; + //工作人员id + private String staffId; + //工作人员姓名 + private String staffName; + //项目立项数,截止到当前dateId的总数 + private Integer projectCount; + //议题转项目数,截止到当前dateId的总数 + private Integer issueToProjectCount; + //议题关闭数,截止到当前dateId的总数 + private Integer closedIssueCount; + //项目响应数,截止到当前dateId的总数 + private Integer projectResponseCount; + //项目吹哨数,截止到当前dateId的总数 + private Integer projectTransferCount; + //项目结案数,dateId这一天的增量 + private Integer projectClosedCount; + //项目立项数,dateId这一天的增量 + private Integer projectIncr; + //议题转项目数,dateId这一天的增量 + private Integer issueToProjectIncr; + //议题关闭数,dateId这一天的增量 + private Integer closedIssueIncr; + //项目响应数,dateId这一天的增量 + private Integer projectResponseIncr; + //项目吹哨数,dateId这一天的增量 + private Integer projectTransferIncr; + //项目结案数,截止到当前dateId的总数 + private Integer projectClosedIncr; + + } + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/GmUploadEventFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/GmUploadEventFormDTO.java new file mode 100644 index 0000000000..d4ece8c8e5 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/GmUploadEventFormDTO.java @@ -0,0 +1,65 @@ +package com.epmet.dto.stats.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @Description 数据上报--网格员事件总数上报-接口入参 + * @Auth sun + */ +@Data +public class GmUploadEventFormDTO implements Serializable { + private static final long serialVersionUID = -9178779369245037701L; + //为true时需要删除历史数据 + private Boolean isFirst; + //数据集合对象 + @NotEmpty(message = "数据集合对象不能为空",groups = UploadEvent.class) + private List dataList; + public interface UploadEvent extends CustomerClientShowGroup {} + + @Data + public static class DataList{ + //来源类型 external:外部,internal:内部 + private String sourceType; + //客户Id 【dim_customer.id】[接口传入的是来源数据的客户Id] + private String customerId; + //数据来源客户Id + private String parentCustomerId; + //机关Id 【dim_agency.id】 + private String agencyId; + //日维度Id 【dim_date.id】 + private String dateId; + //周维度Id 【dim_week.id】 + private String weekId; + //月维度Id 【dim_month.id】 + private String monthId; + //季ID + private String quarterId; + //年维度Id 【dim_year.id】 + private String yearId; + //网格id + private String gridId; + //网格所有上级id + private String gridPids; + //产品这边工作人员用户id + private String staffId; + //巡查次数 + private Integer patrolTotal = 0; + //巡查时长 单位:秒 + private Integer totalTime = 0; + //事件数【立项项目数】 + private Integer reportProjectCount = 0; + //最新的巡查开始时间 + private Date latestPatrolTime; + //最新的巡查状态 正在巡查中:patrolling;结束:end + private String latestPatrolStatus = "end"; + + } + +} 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 index ad8c156e77..64d3eb84e4 100644 --- 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 @@ -39,11 +39,21 @@ public class StatsStaffPatrolRecordDailyDTO implements Serializable { */ private String id; + /** + * 来源类型 external:外部,internal:内部 + */ + private String sourceType; + /** * 客户Id */ private String customerId; + /** + * 来源客户Id + */ + private String sourceCustomerId; + /** * 统计日期 关联日期dim表 */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java index 7f71ea10ff..ca81ce0ba7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java @@ -6,6 +6,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constant.DataSourceConstant; import com.epmet.constant.IndexCalConstant; import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyDao; @@ -22,6 +23,7 @@ import com.epmet.dto.StatsFormDTO; import com.epmet.dto.extract.form.ExtractFactGridGovernDailyFromDTO; import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.form.ExtractScreenFormDTO; +import com.epmet.dto.extract.form.SyncOrgInfoFormDTO; import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.dto.project.form.UpdateProjectSatisfactionScoreFormDTO; import com.epmet.dto.screen.form.ScreenCentralZoneDataFormDTO; @@ -43,6 +45,8 @@ import com.epmet.service.evaluationindex.extract.todata.*; import com.epmet.service.evaluationindex.extract.toscreen.*; import com.epmet.service.evaluationindex.indexcal.*; import com.epmet.service.evaluationindex.screen.*; +import com.epmet.service.org.CustomerAgencyService; +import com.epmet.service.org.CustomerGridService; import com.epmet.service.stats.DimAgencyService; import com.epmet.service.stats.DimCustomerPartymemberService; import com.epmet.service.stats.DimCustomerService; @@ -978,4 +982,22 @@ public class DemoController { return new Result(); } + @Autowired + private CustomerAgencyService customerAgencyService; + @Autowired + private CustomerGridService customerGridService; + + + /** + * 将孔村、榆山、锦水3个街道的网格、组织插入到gov-org库的customer_grid、customer_agency + * + * @param formDTO + * @return Result + */ + @PostMapping("syncorginfo") + public Result syncOrgInfo(@RequestBody SyncOrgInfoFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + customerAgencyService.sysAgencyInfo(formDTO.getFromCustomerId(), formDTO.getToCustomerId()); + return new Result(); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsUserController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsUserController.java index 9c521b770a..c42929f386 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsUserController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsUserController.java @@ -1,9 +1,13 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.StatsFormDTO; +import com.epmet.dto.stats.form.GmUploadDataFormDTO; +import com.epmet.dto.stats.form.GmUploadEventFormDTO; import com.epmet.service.StatsUserService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -32,4 +36,29 @@ public class StatsUserController { statsUserService.partition(formDTO); return new Result(); } + + /** + * @Param formDTO + * @Description 数据上报--网格员事件总数上报 + * @author sun + */ + @PostMapping("gm-uploadevent") + public Result gmUploadEvent(@RequestBody GmUploadEventFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, GmUploadEventFormDTO.UploadEvent.class); + statsUserService.gmUploadEvent(formDTO); + return new Result(); + } + + /** + * @Param formDTO + * @Description 数据上报--网格员数据分析上报 + * @author sun + */ + @PostMapping("gm-uploaddata") + public Result gmUploadData(@RequestBody GmUploadDataFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, GmUploadDataFormDTO.UploadData.class); + statsUserService.gmUploadData(formDTO); + return new Result(); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/crm/CustomerRelationDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/crm/CustomerRelationDao.java index 11ec9c119c..db7fab8791 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/crm/CustomerRelationDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/crm/CustomerRelationDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.crm; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.crm.CustomerRelationDTO; import com.epmet.dto.indexcal.CustomerSubInfoDTO; import com.epmet.entity.crm.CustomerRelationEntity; import org.apache.ibatis.annotations.Mapper; @@ -51,4 +52,11 @@ public interface CustomerRelationDao extends BaseDao { * @date 2021/3/23 上午10:21 */ List selectSubCustomer(@Param("customerId") String customerId); + + /** + * @Description 查询客户所属父客户信息 + * @author sun + */ + CustomerRelationDTO selectByCustomerId(@Param("customerId") String customerId); + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java index b0dedb0db5..e6155e982e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.evaluationindex.screen; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.extract.form.PartyBaseInfoFormDTO; import com.epmet.dto.extract.form.ScreenPartyBranchDataFormDTO; import com.epmet.dto.extract.form.ScreenPartyLinkMassesDataFormDTO; @@ -34,7 +35,6 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; -import java.util.Map; /** * 组织机构信息 @@ -231,4 +231,17 @@ public interface ScreenCustomerAgencyDao extends BaseDao selectByPid(@Param("customerId") String customerId, @Param("parentAgencyId")String parentAgencyId); + + List selectKcCommunity(String customerId); + + /** + * @Description 查询客户index库组织信息供数据封装使用 + * @author sun + */ + List selectByCustomerId(@Param("customerId") String customerId); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerGridDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerGridDao.java index 6aa2aacc1c..90875a233a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerGridDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerGridDao.java @@ -216,4 +216,6 @@ public interface ScreenCustomerGridDao extends BaseDao * @date 2021/6/10 10:45 上午 */ List selectGridInfoList(@Param("customerId") String customerId, @Param("pids") String pids); + + List selectEntityByAgencyId(@Param("customerId") String customerId, @Param("parentAgencyId") String parentAgencyId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/StatsCustomerAgencyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/StatsCustomerAgencyDao.java index fc575d3024..5745ff7cca 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/StatsCustomerAgencyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/StatsCustomerAgencyDao.java @@ -69,4 +69,6 @@ public interface StatsCustomerAgencyDao extends BaseDao { * @return com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity */ CustomerAgencyEntity selectByDeptId(String deptId); + + CustomerAgencyEntity selecByAreaCode(@Param("customerId")String customerId, @Param("areaCode")String areaCode); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DataStatsDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DataStatsDao.java new file mode 100644 index 0000000000..8572bf2616 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DataStatsDao.java @@ -0,0 +1,45 @@ +/** + * 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.stats; + +import com.epmet.dto.stats.form.GmUploadDataFormDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Author sun + * @Description 数据统计服务 + */ +@Mapper +public interface DataStatsDao { + + /** + * @Description 数据上报--网格员数据分析上报--按客户Id和dateId删除历史数据 + * @author sun + */ + int delGmUploadData(String customerId, String dateId); + + /** + * @Description 数据上报--网格员数据分析上报--批量新增或修改数据 + * @author sun + */ + int saveOrUpGmUploadData(@Param("list") List list); + +} \ No newline at end of file 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 1a25f9cfdf..42233f31d6 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 @@ -35,7 +35,23 @@ import java.util.List; @Mapper public interface StatsStaffPatrolRecordDailyDao extends BaseDao { + /** + * desc: 请描述类的业务用途 + * + * @param insertList + * @return java.lang.Integer + * @author LiuJanJun + * @date 2021/7/9 1:57 下午 + */ Integer insertBatch(@Param("list") List insertList); - int delete(StaffPatrolStatsFormDTO formDTO); + /** + * desc: 删除内部数据 + * + * @param formDTO + * @return int + * @author LiuJanJun + * @date 2021/7/9 2:03 下午 + */ + int deleteInternal(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 9ad54a48e6..3d63f88ce5 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 @@ -4,6 +4,7 @@ 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.stats.form.GmUploadEventFormDTO; import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO; import com.epmet.dto.user.result.StaffRoleInfoDTO; import com.epmet.dto.user.result.CustomerStaffDTO; @@ -180,5 +181,17 @@ public interface UserDao { List selectLastStaffPatrolList(StaffPatrolStatsFormDTO formDTO); List selectStaffPatrolListByDateId(@Param("customerId") String customerId, @Param("dateId") String dateId); + + /** + * @Description 数据上报--网格员事件总数上报--按客户Id和dateId删除历史数据 + * @author sun + */ + int delGmUploadEvent(@Param("customerId") String customerId, @Param("dateId") String dateId); + + /** + * @Description 数据上报--网格员事件总数上报--批量新增或修改数据 + * @author sun + */ + int saveOrUpGmUploadEvent(@Param("list") List list); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactGridMemberStatisticsDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactGridMemberStatisticsDailyEntity.java index 76ff908449..27ac16cb34 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactGridMemberStatisticsDailyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactGridMemberStatisticsDailyEntity.java @@ -53,11 +53,21 @@ public class FactGridMemberStatisticsDailyEntity extends BaseEpmetEntity { */ private String yearId; - /** - * 客户ID - */ + /** + * 来源类型 external:外部,internal:内部 + */ + private String sourceType; + + /** + * 客户Id + */ private String customerId; + /** + * 数据来源客户Id + */ + private String sourceCustomerId; + /** * 组织ID */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java index 4fbb9bfb83..f521f0aa60 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerAgencyEntity.java @@ -108,4 +108,9 @@ public class CustomerAgencyEntity extends BaseEpmetEntity { * 社区 */ private String community; + + /** + * 是否同步到统计库和指标库,1同步。0不同步 + */ + private String syncFlag; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java index 6c01df7df8..dc760a4b5e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java @@ -79,4 +79,9 @@ public class CustomerGridEntity extends BaseEpmetEntity { * 所有上级组织ID */ private String pids; + + /** + * 是否同步到统计库和指标库,1同步。0不同步 + */ + private String syncFlag; } 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 index 9425887126..d0d3445589 100644 --- 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 @@ -38,11 +38,21 @@ public class StatsStaffPatrolRecordDailyEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; - /** - * 客户Id - */ + /** + * 来源类型 external:外部,internal:内部 + */ + private String sourceType; + + /** + * 客户Id + */ private String customerId; + /** + * 数据来源客户Id + */ + private String sourceCustomerId; + /** * 统计日期 关联日期dim表 */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsUserService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsUserService.java index db22288094..f09cf007a0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsUserService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsUserService.java @@ -1,6 +1,8 @@ package com.epmet.service; import com.epmet.dto.StatsFormDTO; +import com.epmet.dto.stats.form.GmUploadDataFormDTO; +import com.epmet.dto.stats.form.GmUploadEventFormDTO; /** * @author wangc @@ -17,4 +19,18 @@ public interface StatsUserService { * @date 2020.06.28 14:38 **/ void partition(StatsFormDTO formDTO); + + /** + * @Param formDTO + * @Description 数据上报--网格员事件总数上报 + * @author sun + */ + void gmUploadEvent(GmUploadEventFormDTO formDTO); + + /** + * @Param formDTO + * @Description 数据上报--网格员数据分析上报 + * @author sun + */ + void gmUploadData(GmUploadDataFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/CustomerService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/CustomerService.java index dbc2cc03f9..d6f9e8e2d3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/CustomerService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/CustomerService.java @@ -1,5 +1,6 @@ package com.epmet.service.crm; +import com.epmet.dto.crm.CustomerRelationDTO; import com.epmet.entity.crm.CustomerEntity; import java.util.Date; @@ -10,4 +11,10 @@ public interface CustomerService { List listValidCustomersByCreateTime(Date createTimeFrom, Date createTimeTo); List listValidCustomersByUpdatedTime(Date updatedTime, Date initTime); + + /** + * @Description 查询客户所属父客户信息 + * @author sun + */ + CustomerRelationDTO getByCustomerId(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/impl/CustomerServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/impl/CustomerServiceImpl.java index 056df4e50e..84598562ca 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/impl/CustomerServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/impl/CustomerServiceImpl.java @@ -3,6 +3,8 @@ package com.epmet.service.crm.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.crm.CustomerDao; +import com.epmet.dao.crm.CustomerRelationDao; +import com.epmet.dto.crm.CustomerRelationDTO; import com.epmet.entity.crm.CustomerEntity; import com.epmet.service.crm.CustomerService; import org.springframework.beans.factory.annotation.Autowired; @@ -17,6 +19,8 @@ public class CustomerServiceImpl implements CustomerService { @Autowired private CustomerDao customerDao; + @Autowired + private CustomerRelationDao customerRelationDao; @Override public List listValidCustomersByCreateTime(Date createTimeFrom, Date createTimeTo) { @@ -27,4 +31,13 @@ public class CustomerServiceImpl implements CustomerService { public List listValidCustomersByUpdatedTime(Date startTime, Date endTime) { return customerDao.listValidCustomersByUpdateTime(startTime, endTime); } + + /** + * @Description 查询客户所属父客户信息 + * @author sun + */ + @Override + public CustomerRelationDTO getByCustomerId(String customerId) { + return customerRelationDao.selectByCustomerId(customerId); + } } 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 29cca916f7..fbeb7a391f 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 @@ -227,6 +227,9 @@ public class BizDataStatsServiceImpl implements BizDataStatsService { record.setPatrolTotal(NumConstant.ZERO); record.setLatestPatrolStatus("end"); record.setReportProjectCount(NumConstant.ZERO); + + record.setSourceType("internal"); + record.setSourceCustomerId(record.getCustomerId()); //最后巡查时间 record.setLatestPatrolTime(null); if (recordDailyDTO != null) { diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridMemberStatisticsDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridMemberStatisticsDailyServiceImpl.java index e7f436de06..08a2528e8e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridMemberStatisticsDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridMemberStatisticsDailyServiceImpl.java @@ -293,6 +293,8 @@ public class FactGridMemberStatisticsDailyServiceImpl extends BaseServiceImpl getByPid(String customerId, String parentAgencyId); + + /** + * 查询出孔村的社区 + * + * @param customerId + * @return com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity + */ + List selectKcCommunity(String customerId); + + /** + * @Description 查询客户index库组织信息供数据封装使用 + * @author sun + */ + List getByCustomerId(String customerId); + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java index f2a40b11c0..358b102ea6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java @@ -109,4 +109,6 @@ public interface ScreenCustomerGridService extends BaseService selectGridInfoByCustomerId(String customerId); List selectGridInfoList(String customerId, String pids); + + List selectEntityByAgencyId(String customerId, String parentAgencyId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerAgencyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerAgencyServiceImpl.java index 96019615ea..16ba642e62 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerAgencyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerAgencyServiceImpl.java @@ -25,6 +25,7 @@ import com.epmet.constant.OrgSourceTypeConstant; import com.epmet.constant.ScreenConstant; import com.epmet.dao.evaluationindex.screen.ScreenCustomerAgencyDao; import com.epmet.dao.evaluationindex.screen.ScreenCustomerGridDao; +import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.extract.form.PartyBaseInfoFormDTO; import com.epmet.dto.extract.form.ScreenPartyBranchDataFormDTO; import com.epmet.dto.extract.form.ScreenPartyLinkMassesDataFormDTO; @@ -267,5 +268,40 @@ public class ScreenCustomerAgencyServiceImpl implements ScreenCustomerAgencyServ return screenCustomerAgencyDao.selectTopAgency(customerId); } + /** + * 获取当前客户下的跟组织 + * + * @param customerId + * @return com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity + */ + @Override + public ScreenCustomerAgencyEntity getRootAgency(String customerId) { + return screenCustomerAgencyDao.selectRootAgency(customerId); + } + + @Override + public List getByPid(String customerId, String parentAgencyId) { + return screenCustomerAgencyDao.selectByPid(customerId,parentAgencyId); + } + + /** + * 查询出孔村的社区 + * + * @param customerId + * @return com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity + */ + @Override + public List selectKcCommunity(String customerId) { + return screenCustomerAgencyDao.selectKcCommunity(customerId); + } + + /** + * @Description 查询客户index库组织信息供数据封装使用 + * @author sun + */ + @Override + public List getByCustomerId(String customerId) { + return screenCustomerAgencyDao.selectByCustomerId(customerId); + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java index b012accfe0..11aa43e27b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java @@ -210,4 +210,9 @@ public class ScreenCustomerGridServiceImpl extends BaseServiceImpl selectGridInfoList(String customerId, String pids) { return baseDao.selectGridInfoList(customerId,pids); } + + @Override + public List selectEntityByAgencyId(String customerId, String parentAgencyId) { + return baseDao.selectEntityByAgencyId(customerId,parentAgencyId); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java index 0d35eede37..dc082b44ca 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java @@ -3,28 +3,40 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.ProjectConstant; +import com.epmet.dao.stats.DataStatsDao; import com.epmet.dto.AgencySubTreeDto; +import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.StatsFormDTO; +import com.epmet.dto.crm.CustomerRelationDTO; +import com.epmet.dto.stats.form.GmUploadDataFormDTO; +import com.epmet.dto.stats.form.GmUploadEventFormDTO; import com.epmet.dto.stats.user.result.UserStatisticalData; import com.epmet.service.StatsUserService; +import com.epmet.service.crm.CustomerService; +import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; import com.epmet.service.stats.DimAgencyService; import com.epmet.service.stats.DimCustomerService; import com.epmet.service.stats.user.UserStatisticalService; import com.epmet.service.user.UserService; import com.epmet.util.DimIdGenerator; import com.epmet.util.ModuleConstant; +import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.Calendar; import java.util.Date; +import java.util.Iterator; import java.util.List; +import java.util.concurrent.atomic.AtomicReference; /** @@ -49,6 +61,13 @@ public class StatsUserServiceImpl implements StatsUserService { @Autowired private UserStatisticalService userStatisticalService; + @Autowired + private ScreenCustomerAgencyService screenCustomerAgencyService; + @Autowired + private DataStatsDao dataStatsDao; + @Autowired + private CustomerService customerService; + /** * @param formDTO 如果目标日期为空,则自动计算为T-1天 @@ -59,9 +78,9 @@ public class StatsUserServiceImpl implements StatsUserService { **/ @Override public void partition(StatsFormDTO formDTO) { - if(StringUtils.isBlank(formDTO.getDate())){ + if (StringUtils.isBlank(formDTO.getDate())) { //如果定时任务没有指定参数,默认数据更新至t-1,包含t-1这一天内的数据 - formDTO.setDate(DateUtils.getBeforeNDay(1,DateUtils.DATE_PATTERN)); + formDTO.setDate(DateUtils.getBeforeNDay(1, DateUtils.DATE_PATTERN)); } int pageNo = NumConstant.ONE; @@ -91,15 +110,15 @@ public class StatsUserServiceImpl implements StatsUserService { } /** - * @Description 生成用户统计数据 * @param customerId 客户Id - * @param date 目标日期 + * @param date 目标日期 * @return + * @Description 生成用户统计数据 * @author wangc * @date 2020.06.28 14:40 - **/ - void generate(String customerId,Date date){ - log.info("customerId:"+customerId+";date:"+DateUtils.format(date,DateUtils.DATE_TIME_PATTERN)); + **/ + void generate(String customerId, Date date) { + log.info("customerId:" + customerId + ";date:" + DateUtils.format(date, DateUtils.DATE_TIME_PATTERN)); //1.初始化时间参数 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); @@ -111,14 +130,14 @@ public class StatsUserServiceImpl implements StatsUserService { //2.初始化时间维度{"dateId":"20210325","monthId":"202103","quarterId":"2021Q1","weekId":"2021W13","yearId":"2021"} DimIdGenerator.DimIdBean timeDimension = DimIdGenerator.getDimIdBean(null == date ? calendar.getTime() : date); - log.info("timeDimension:"+ JSON.toJSONString(timeDimension)); + log.info("timeDimension:" + JSON.toJSONString(timeDimension)); //3.初始化机关维度 - List agencies = dimAgencyService.getAllAgency(customerId); + List agencies = dimAgencyService.getAllAgency(customerId); //4.计算机关统计数据、生成唯一性统计数据 try { UserStatisticalData agencyData = userService.traverseAgencyUser(agencies, date, timeDimension); userStatisticalService.insertUniquely(agencyData); - }catch(Exception e){ + } catch (Exception e) { log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, ModuleConstant.EXCEPTION_DING_INTERCEPTOR_PREFIX_AGENCY_USER_STATISTICAL, customerId, new Date().toString(), e.getMessage())); } @@ -126,8 +145,126 @@ public class StatsUserServiceImpl implements StatsUserService { try { UserStatisticalData gridData = userService.traverseGridUser(agencies, date, timeDimension); userStatisticalService.insertUniquely(gridData); - }catch(Exception e){ + } catch (Exception e) { log.error(String.format(ProjectConstant.STATS_FAILED_PREFIX, ModuleConstant.EXCEPTION_DING_INTERCEPTOR_PREFIX_GRID_USER_STATISTICAL, customerId, new Date().toString(), e.getMessage())); } } + + /** + * @Param formDTO + * @Description 数据上报--网格员事件总数上报 + * @author sun + */ + @Override + public void gmUploadEvent(GmUploadEventFormDTO formDTO) { + //1.数据上报只涉及数据库部分数据,其他数据都是计算出来的,所以不存在删除历史数据,有就更新没有就新增 + String customerId = formDTO.getDataList().get(0).getCustomerId(); + + //2.数据准备 + //2-1.查询当前客户index库组织信息供数据封装使用 + List agencyList = screenCustomerAgencyService.getByCustomerId(customerId); + //2-2.查询客户所属父客户信息 + CustomerRelationDTO crm = customerService.getByCustomerId(customerId); + if (null == crm) { + throw new RenException(String.format("未查询到子客户所属父客户信息,子客户Id->%s", customerId)); + } + + //3.分批处理上传数据 + List> partition = ListUtils.partition(formDTO.getDataList(), NumConstant.ONE_HUNDRED); + for (int i = 0; i < partition.size(); i++) { + List p = partition.get(i); + //4.封装数据并执行 + Iterator iterator = p.iterator(); + while (iterator.hasNext()) { + GmUploadEventFormDTO.DataList m = iterator.next(); + AtomicReference bl = new AtomicReference<>(false); + StringBuffer gridPids = new StringBuffer(""); + agencyList.forEach(ag -> { + if (m.getAgencyId().equals(ag.getId())) { + bl.set(true); + gridPids.append((StringUtils.isEmpty(ag.getPids()) || "0".equals(ag.getPids()) ? ag.getId() : ag.getPids().replaceAll(",", ":") + ":" + ag.getId())); + } + }); + if (bl.get()) { + m.setSourceType("external"); + m.setParentCustomerId(crm.getParentCustomerId()); + m.setGridPids(gridPids.toString()); + m.setPatrolTotal(NumConstant.ZERO); + m.setTotalTime(NumConstant.ZERO); + m.setLatestPatrolStatus("end"); + } else { + log.warn(String.format("网格员事件总数上报,数据错误,根据agencyId未查询到组织信息,客户Id->%s,组织Id->%s", m.getCustomerId(), m.getAgencyId())); + iterator.remove(); + } + } + //批量新增或修改数据 + if (!CollectionUtils.isEmpty(p)) { + userService.saveOrUpGmUploadEvent(p); + } + } + + } + + /** + * @Param formDTO + * @Description 数据上报--网格员数据分析上报 + * @author sun + */ + @Override + public void gmUploadData(GmUploadDataFormDTO formDTO) { + String customerId = formDTO.getDataList().get(0).getCustomerId(); + //1.判断是否批量删除历史数据 + if (formDTO.getIsFirst()) { + int deleteNum; + do { + deleteNum = dataStatsDao.delGmUploadData(customerId, formDTO.getDataList().get(0).getDateId()); + } while (deleteNum > NumConstant.ZERO); + } + + //2.数据准备 + //2-1.查询当前客户index库组织信息供数据封装使用 + List agencyList = screenCustomerAgencyService.getByCustomerId(customerId); + //2-2.查询客户所属父客户信息 + CustomerRelationDTO crm = customerService.getByCustomerId(customerId); + if (null == crm) { + throw new RenException(String.format("未查询到子客户所属父客户信息,子客户Id->%s", customerId)); + } + + //3.分批处理上传数据 + List> partition = ListUtils.partition(formDTO.getDataList(), NumConstant.ONE_HUNDRED); + for (int i = 0; i < partition.size(); i++) { + List p = partition.get(i); + //4.封装数据并执行 + Iterator iterator = p.iterator(); + while (iterator.hasNext()) { + GmUploadDataFormDTO.DataList m = iterator.next(); + AtomicReference bl = new AtomicReference<>(false); + StringBuffer pid = new StringBuffer(""); + StringBuffer pids = new StringBuffer(""); + agencyList.forEach(ag -> { + if (m.getAgencyId().equals(ag.getId())) { + bl.set(true); + pid.append(ag.getPid()); + pids.append((StringUtils.isEmpty(ag.getPids()) || "0".equals(ag.getPids()) ? ag.getId() : ag.getPids().replaceAll(",", ":") + ":" + ag.getId())); + } + }); + if (bl.get()) { + m.setSourceType("external"); + m.setParentCustomerId(crm.getParentCustomerId()); + m.setPid(pid.toString()); + m.setPids(pids.toString()); + } else { + log.warn(String.format("网格员数据分析上报,数据错误,根据agencyId未查询到组织信息,客户Id->%s,组织Id->%s", m.getCustomerId(), m.getAgencyId())); + iterator.remove(); + } + } + //批量新增或修改数据 + if (!CollectionUtils.isEmpty(p)) { + dataStatsDao.saveOrUpGmUploadData(p); + } + } + + } + + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerAgencyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerAgencyService.java index 0eb247471e..60991b69bf 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerAgencyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerAgencyService.java @@ -48,4 +48,14 @@ public interface CustomerAgencyService { * @return com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity */ CustomerAgencyEntity getAgencyByDeptId(String deptId); + + /** + * 将孔村、榆山、锦水3个街道的组织插入到gov-org库的customer_agency + * + * @param fromCustomerId + * @param toCustomerId + * @return Result + */ + void sysAgencyInfo(String fromCustomerId, String toCustomerId); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java index b25ff45b5f..392b90bc89 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java @@ -1,5 +1,6 @@ package com.epmet.service.org; +import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dto.group.AgencyDTO; import com.epmet.dto.group.result.AgencyGridTotalCountResultDTO; import com.epmet.dto.group.result.GridIdListByCustomerResultDTO; @@ -10,7 +11,7 @@ import com.epmet.entity.org.CustomerGridEntity; import java.util.Date; import java.util.List; -public interface CustomerGridService { +public interface CustomerGridService extends BaseService { /** * 根据创建时间,截取时间段内的网格 * @param start diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java index d603b6781c..66ea3b4b37 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java @@ -1,15 +1,24 @@ package com.epmet.service.org.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.org.StatsCustomerAgencyDao; import com.epmet.dto.org.result.CustomerAreaCodeResultDTO; import com.epmet.dto.org.result.OrgStaffDTO; +import com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity; +import com.epmet.entity.evaluationindex.screen.ScreenCustomerGridEntity; import com.epmet.entity.org.CustomerAgencyEntity; +import com.epmet.entity.org.CustomerGridEntity; +import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; +import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService; import com.epmet.service.org.CustomerAgencyService; +import com.epmet.service.org.CustomerGridService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.Date; @@ -21,6 +30,12 @@ public class CustomerAgencyServiceImpl implements CustomerAgencyService { @Autowired private StatsCustomerAgencyDao customerAgencyDao; + @Autowired + private ScreenCustomerAgencyService screenCustomerAgencyService; + @Autowired + private ScreenCustomerGridService screenCustomerGridService; + @Autowired + private CustomerGridService customerGridService; @Override public List listAgenciesByCreateTime(Date statsStartTime, Date statsEndTime) { @@ -103,4 +118,157 @@ public class CustomerAgencyServiceImpl implements CustomerAgencyService { public CustomerAgencyEntity getAgencyByDeptId(String deptId) { return customerAgencyDao.selectByDeptId(deptId); } + + /** + * 将孔村、榆山、锦水3个街道的组织插入到gov-org库的customer_agency + * + * @param fromCustomerId + * @param toCustomerId + * @return Result + */ + @Override + public void sysAgencyInfo(String fromCustomerId, String toCustomerId) { + // 1、查询出平阴县组织信息 + CustomerAgencyEntity pingYin = customerAgencyDao.selecByAreaCode(toCustomerId, "370124"); + // 2、查询出街道 + ScreenCustomerAgencyEntity street = screenCustomerAgencyService.getRootAgency(fromCustomerId); + CustomerAgencyEntity insertStreetEntity = new CustomerAgencyEntity(); + insertStreetEntity.setCustomerId(pingYin.getCustomerId()); + insertStreetEntity.setPid(pingYin.getId()); + if(!StringUtils.isEmpty(pingYin.getPids())){ + insertStreetEntity.setPids(pingYin.getPids().concat(StrConstant.COLON).concat(pingYin.getId())); + }else{ + insertStreetEntity.setPids(pingYin.getId()); + } + if(org.apache.commons.lang3.StringUtils.isNotBlank(pingYin.getAllParentName())){ + insertStreetEntity.setAllParentName(pingYin.getAllParentName().concat(StrConstant.HYPHEN).concat(pingYin.getOrganizationName())); + }else { + insertStreetEntity.setAllParentName(pingYin.getOrganizationName()); + } + insertStreetEntity.setOrganizationName(street.getAgencyName()); + insertStreetEntity.setLevel("street"); + insertStreetEntity.setAreaCode(street.getAreaCode()); + insertStreetEntity.setSyncFlag("0"); + insertStreetEntity.setTotalUser(0); + insertStreetEntity.setProvince("山东省"); + insertStreetEntity.setCity("济南市"); + insertStreetEntity.setDistrict(pingYin.getOrganizationName()); + insertStreetEntity.setStreet(street.getAgencyName()); + insertStreetEntity.setCommunity(StrConstant.EPMETY_STR); + insertStreetEntity.setParentAreaCode(pingYin.getAreaCode()); + insertStreetEntity.setId(street.getAgencyId()); + insertStreetEntity.setCreatedBy("APP_USER"); + insertStreetEntity.setUpdatedBy("APP_USER"); + // 3、插入街道 + if (null == customerAgencyDao.selectById(insertStreetEntity.getId())) { + customerAgencyDao.insert(insertStreetEntity); + } else { + customerAgencyDao.updateById(insertStreetEntity); + } + // 3.1、街道的直属网格 + this.insertCustomerGrid(street.getCustomerId(),street.getAgencyId(),insertStreetEntity); + + if ("2fe0065f70ca0e23ce4c26fca5f1d933".equals(fromCustomerId)) { + List kcCommunityList = screenCustomerAgencyService.selectKcCommunity(fromCustomerId); + for(ScreenCustomerAgencyEntity kcCommunity:kcCommunityList){ + CustomerAgencyEntity insertCommunityEntity = new CustomerAgencyEntity(); + insertCommunityEntity.setCustomerId(pingYin.getCustomerId()); + insertCommunityEntity.setPid(insertStreetEntity.getId()); + insertCommunityEntity.setPids(insertStreetEntity.getPids().concat(StrConstant.COLON).concat(insertStreetEntity.getId())); + insertCommunityEntity.setAllParentName(insertStreetEntity.getAllParentName().concat(StrConstant.HYPHEN).concat(insertStreetEntity.getOrganizationName())); + insertCommunityEntity.setOrganizationName(kcCommunity.getAgencyName()); + insertCommunityEntity.setLevel("community"); + insertCommunityEntity.setAreaCode(kcCommunity.getAreaCode()); + insertCommunityEntity.setSyncFlag(NumConstant.ZERO_STR); + insertCommunityEntity.setTotalUser(NumConstant.ZERO); + insertCommunityEntity.setProvince("山东省"); + insertCommunityEntity.setCity("济南市"); + insertCommunityEntity.setDistrict(pingYin.getOrganizationName()); + insertCommunityEntity.setStreet(insertStreetEntity.getOrganizationName()); + insertCommunityEntity.setCommunity(kcCommunity.getAgencyName()); + insertCommunityEntity.setParentAreaCode(insertStreetEntity.getAreaCode()); + insertCommunityEntity.setId(kcCommunity.getAgencyId()); + insertCommunityEntity.setCreatedBy("APP_USER"); + insertCommunityEntity.setUpdatedBy("APP_USER"); + CustomerAgencyEntity customerAgencyEntity=customerAgencyDao.selectById(insertCommunityEntity.getId()); + if(null==customerAgencyEntity){ + // 4、插入社区 + customerAgencyDao.insert(insertCommunityEntity); + }else{ + customerAgencyDao.updateById(insertCommunityEntity); + } + // 4.1插入社区下的直属网格 + this.insertCustomerGrid(kcCommunity.getCustomerId(),kcCommunity.getAgencyId(),insertCommunityEntity); + } + } else { + // 4、查询出社区 + List communityList = screenCustomerAgencyService.getByPid(fromCustomerId,street.getAgencyId()); + for(ScreenCustomerAgencyEntity community:communityList){ + CustomerAgencyEntity insertCommunityEntity = new CustomerAgencyEntity(); + insertCommunityEntity.setCustomerId(pingYin.getCustomerId()); + insertCommunityEntity.setPid(insertStreetEntity.getId()); + insertCommunityEntity.setPids(insertStreetEntity.getPids().concat(StrConstant.COLON).concat(insertStreetEntity.getId())); + insertCommunityEntity.setAllParentName(insertStreetEntity.getAllParentName().concat(StrConstant.HYPHEN).concat(insertStreetEntity.getOrganizationName())); + insertCommunityEntity.setOrganizationName(community.getAgencyName()); + insertCommunityEntity.setLevel("community"); + insertCommunityEntity.setAreaCode(community.getAreaCode()); + insertCommunityEntity.setSyncFlag(NumConstant.ZERO_STR); + insertCommunityEntity.setTotalUser(NumConstant.ZERO); + insertCommunityEntity.setProvince("山东省"); + insertCommunityEntity.setCity("济南市"); + insertCommunityEntity.setDistrict(pingYin.getOrganizationName()); + insertCommunityEntity.setStreet(insertStreetEntity.getOrganizationName()); + insertCommunityEntity.setCommunity(community.getAgencyName()); + insertCommunityEntity.setParentAreaCode(insertStreetEntity.getAreaCode()); + insertCommunityEntity.setId(community.getAgencyId()); + insertCommunityEntity.setCreatedBy("APP_USER"); + insertCommunityEntity.setUpdatedBy("APP_USER"); + CustomerAgencyEntity customerAgencyEntity=customerAgencyDao.selectById(insertCommunityEntity.getId()); + if(null==customerAgencyEntity){ + customerAgencyDao.insert(insertCommunityEntity); + }else{ + customerAgencyDao.updateById(insertCommunityEntity); + } + // 4.1插入社区下的直属网格 + this.insertCustomerGrid(community.getCustomerId(),community.getAgencyId(),insertCommunityEntity); + } + + } + } + + /** + * @return void + * @param customerId 孔村、榆山、锦水的客户id + * @param agencyId 孔村、榆山、锦水的组织id + * @param parentCustomerEntity 在平阴客户里,网格所属组织信息 + * @author yinzuomei + * @description 将3个街道的网格,插入到gov-org.customer_grid库 + * @Date 2021/7/7 9:54 + **/ + private void insertCustomerGrid(String customerId, String agencyId, CustomerAgencyEntity parentCustomerEntity) { + List gridEntityList = screenCustomerGridService.selectEntityByAgencyId(customerId, agencyId); + for (ScreenCustomerGridEntity gridEntity : gridEntityList) { + CustomerGridEntity insertGrid = new CustomerGridEntity(); + insertGrid.setId(gridEntity.getGridId()); + insertGrid.setCustomerId(parentCustomerEntity.getCustomerId()); + insertGrid.setGridName(gridEntity.getGridName()); + insertGrid.setAreaCode(gridEntity.getAreaCode()); + insertGrid.setSyncFlag(NumConstant.ZERO_STR); + insertGrid.setManageDistrict(gridEntity.getGridName()); + insertGrid.setTotalUser(NumConstant.ZERO); + insertGrid.setPid(gridEntity.getParentAgencyId()); + insertGrid.setCreatedBy("APP_USER"); + insertGrid.setUpdatedBy("APP_USER"); + if(StringUtils.isEmpty(parentCustomerEntity.getPids())){ + insertGrid.setPids(insertGrid.getPid()); + }else{ + insertGrid.setPids(parentCustomerEntity.getPids().concat(StrConstant.COLON).concat(insertGrid.getPid())); + } + if (null == customerGridService.selectById(insertGrid.getId())) { + customerGridService.insert(insertGrid); + } else { + customerGridService.updateById(insertGrid); + } + } + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java index b3474f5574..680c9892bb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java @@ -1,6 +1,7 @@ package com.epmet.service.org.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.org.CustomerGridDao; import com.epmet.dto.group.AgencyDTO; @@ -18,14 +19,14 @@ import java.util.List; @Service @DataSource(DataSourceConstant.GOV_ORG) -public class CustomerGridServiceImpl implements CustomerGridService { +public class CustomerGridServiceImpl extends BaseServiceImpl implements CustomerGridService { @Autowired private CustomerGridDao customerGridDao; @Override public List listGridsByCreateTime(Date start, Date end) { - return customerGridDao.listGridsByCreateTime(start, end); + return baseDao.listGridsByCreateTime(start, end); } /** @@ -35,7 +36,7 @@ public class CustomerGridServiceImpl implements CustomerGridService { */ @Override public List selectAgencyGridTotalCount(List community, String dateId) { - return customerGridDao.selectAgencyGridTotalCount(community,dateId); + return baseDao.selectAgencyGridTotalCount(community,dateId); } /** @@ -46,12 +47,12 @@ public class CustomerGridServiceImpl implements CustomerGridService { */ @Override public List getCustomerGridIdList(String customerId, String dateId) { - return customerGridDao.getCustomerGridIdList(customerId, dateId); + return baseDao.getCustomerGridIdList(customerId, dateId); } @Override public List listUpdatedGridsByUpdateTime(Date lastInitTime, Date now) { - return customerGridDao.listUpdatedGridsByUpdateTime(lastInitTime, now); + return baseDao.listUpdatedGridsByUpdateTime(lastInitTime, now); } /** @@ -63,7 +64,7 @@ public class CustomerGridServiceImpl implements CustomerGridService { **/ @Override public List queryGridInfoList(String customerId) { - return customerGridDao.selectListGridInfo(customerId); + return baseDao.selectListGridInfo(customerId); } /** 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 f53f544575..f45809be94 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 @@ -5,6 +5,7 @@ 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.form.GmUploadEventFormDTO; import com.epmet.dto.stats.user.result.UserStatisticalData; import com.epmet.dto.user.result.StaffRoleInfoDTO; import com.epmet.dto.user.result.CustomerStaffDTO; @@ -124,4 +125,16 @@ public interface UserService { List selectLastStaffPatrolList(StaffPatrolStatsFormDTO formDTO); List selectStaffPatrolListByDateId(String customerId, String yesterdayStr); + + /** + * @Description 数据上报--网格员事件总数上报--按客户Id和dateId删除历史数据 + * @author sun [接口废弃,暂无使用] + */ + int delGmUploadEvent(String customerId, String dateId); + + /** + * @Description 数据上报--网格员事件总数上报--批量新增或修改数据 + * @author sun + */ + void saveOrUpGmUploadEvent(List list); } 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 0da9e3eea6..b07253b001 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 @@ -32,7 +32,7 @@ public class StatsStaffPatrolServiceImpl implements StatsStaffPatrolService { @Override public Integer delAndInsertBatch(StaffPatrolStatsFormDTO formDTO, List insertList) { - int delete = statsStaffPatrolRecordDailyDao.delete(formDTO); + int delete = statsStaffPatrolRecordDailyDao.deleteInternal(formDTO); log.debug("delAndInsertBatch delete:{},param:{}", delete, JSON.toJSONString(formDTO)); 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 22a454fcb2..6cfcc8e89e 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 @@ -14,6 +14,7 @@ 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.form.GmUploadEventFormDTO; import com.epmet.dto.stats.user.*; import com.epmet.dto.stats.user.result.UserStatisticalData; import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO; @@ -833,4 +834,22 @@ public class UserServiceImpl implements UserService { return userDao.selectStaffPatrolListByDateId(customerId,yesterdayStr); } + /** + * @Description 数据上报--网格员事件总数上报--按客户Id和dateId删除历史数据 + * @author sun + */ + @Override + public int delGmUploadEvent(String customerId, String dateId) { + return userDao.delGmUploadEvent(customerId, dateId); + } + + /** + * @Description 数据上报--网格员事件总数上报--批量新增或修改数据 + * @author sun + */ + @Override + public void saveOrUpGmUploadEvent(List list) { + userDao.saveOrUpGmUploadEvent(list); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.21__grid_member_statistics.sql b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.21__grid_member_statistics.sql index c8c90b5370..7fbadf02ed 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.21__grid_member_statistics.sql +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.21__grid_member_statistics.sql @@ -39,3 +39,9 @@ ALTER TABLE `epmet_data_statistical`.`fact_grid_member_statistics_daily` ALTER TABLE `epmet_data_statistical`.`fact_origin_project_main_daily` ADD COLUMN `PROJECT_CREATOR` varchar(32) NULL COMMENT '项目创建人(议题转项目或立项人)' AFTER `IS_SATISFIED`; + +#fact_grid_member_statistics_daily 表添加字段 +ALTER TABLE `fact_grid_member_statistics_daily` + MODIFY COLUMN `CUSTOMER_ID` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数据归属客户ID【例:孔村上报数据属于平阴的】' AFTER `YEAR_ID`, + ADD COLUMN `SOURCE_TYPE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'internal' COMMENT '来源类型 external:外部,internal:内部' AFTER `YEAR_ID`, + ADD COLUMN `SOURCE_CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据来源客户Id' AFTER `CUSTOMER_ID`; \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/crm/CustomerRelationDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/crm/CustomerRelationDao.xml index fad1ca0443..ba3cccf88b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/crm/CustomerRelationDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/crm/CustomerRelationDao.xml @@ -39,4 +39,15 @@ + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml index 1b6d972783..1b90262608 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml @@ -452,4 +452,55 @@ DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} + + + + + + + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml index 0fca6febf5..3838261c45 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml @@ -386,4 +386,19 @@ AND cg.ALL_PARENT_IDS like concat(#{pids},'%') + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml index c80de35a85..ed9d05b49a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml @@ -9,6 +9,7 @@ FROM customer_grid DEL_FLAG = 0 + AND SYNC_FLAG='1' AND CREATED_TIME >= #{start} @@ -65,7 +66,8 @@ pid, pids FROM customer_grid - WHERE UPDATED_TIME >= #{startTime} + WHERE SYNC_FLAG='1' + AND UPDATED_TIME >= #{startTime} AND UPDATED_TIME #{endTime} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml index cf3ce06acc..c0209242e6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml @@ -16,6 +16,7 @@ FROM customer_agency DEL_FLAG = 0 + AND SYNC_FLAG='1' AND CREATED_TIME >= #{statsStartTime} @@ -97,7 +98,8 @@ district, PARENT_AREA_CODE as parentAreaCode from customer_agency - where UPDATED_TIME >= #{startTime} + where SYNC_FLAG='1' + AND UPDATED_TIME >= #{startTime} and UPDATED_TIME #{endTime} @@ -191,4 +193,15 @@ AND cd.DEL_FLAG = '0' ) + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DatsStatsDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DatsStatsDao.xml new file mode 100644 index 0000000000..862f136e20 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DatsStatsDao.xml @@ -0,0 +1,108 @@ + + + + + + + DELETE + FROM + fact_grid_member_statistics_daily + WHERE + source_customer_id = #{customerId} + AND date_id = #{dateId} + LIMIT 1000 + + + + INSERT INTO fact_grid_member_statistics_daily + ( + id, + date_id, + month_id, + year_id, + source_type, + customer_id, + source_customer_id, + agency_id, + grid_id, + pid, + pids, + staff_id, + staff_name, + project_count, + issue_to_project_count, + closed_issue_count, + project_response_count, + project_transfer_count, + project_closed_count, + project_incr, + issue_to_project_incr, + closed_issue_incr, + project_response_incr, + project_transfer_incr, + project_closed_incr, + del_flag, + revision, + created_by, + created_time, + updated_by, + updated_time + ) + VALUES + + ( + REPLACE(UUID(), '-', ''), + #{i.dateId}, + #{i.monthId}, + #{i.yearId}, + #{i.sourceType}, + #{i.parentCustomerId}, + #{i.customerId}, + #{i.agencyId}, + #{i.gridId}, + #{i.pid}, + #{i.pids}, + #{i.staffId}, + #{i.staffName}, + #{i.projectCount}, + #{i.issueToProjectCount}, + #{i.closedIssueCount}, + #{i.projectResponseCount}, + #{i.projectTransferCount}, + #{i.projectClosedCount}, + #{i.projectIncr}, + #{i.issueToProjectIncr}, + #{i.closedIssueIncr}, + #{i.projectResponseIncr}, + #{i.projectTransferIncr}, + #{i.projectClosedIncr}, + 0, + 0, + 'BASE_REPORT', + NOW(), + 'BASE_REPORT', + NOW() + ) + + ON DUPLICATE KEY + UPDATE + source_type = values(source_type), + customer_id = values(customer_id), + source_customer_id = values(source_customer_id), + project_count = values(project_count), + issue_to_project_count = values(issue_to_project_count), + closed_issue_count = values(closed_issue_count), + project_response_count = values(project_response_count), + project_transfer_count = values(project_transfer_count), + project_closed_count = values(project_closed_count), + project_incr = values(project_incr), + issue_to_project_incr = values(issue_to_project_incr), + closed_issue_incr = values(closed_issue_incr), + project_response_incr = values(project_response_incr), + project_transfer_incr = values(project_transfer_incr), + project_closed_incr = values(project_closed_incr), + updated_by = 'BASE_REPORT', + updated_time = NOW() + + + 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 d3ea3d3f9a..3f6cda5d85 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 @@ -6,7 +6,9 @@ insert into stats_staff_patrol_record_daily ( ID, + SOURCE_TYPE, CUSTOMER_ID, + SOURCE_CUSTOMER_ID, DATE_ID, WEEK_ID, MONTH_ID, @@ -31,7 +33,9 @@ ( (SELECT REPLACE(UUID(), '-', '') AS id), + #{item.sourceType}, #{item.customerId}, + #{item.sourceCustomerId}, #{item.dateId}, #{item.weekId}, #{item.monthId}, @@ -54,11 +58,16 @@ now() ) + ON DUPLICATE KEY UPDATE + PATROL_TOTAL = values(PATROL_TOTAL), + TOTAL_TIME = values(TOTAL_TIME), + UPDATED_BY = VALUES(UPDATED_BY) - + DELETE FROM stats_staff_patrol_record_daily WHERE CUSTOMER_ID = #{customerId} AND DATE_ID = #{dateId} + AND SOURCE_TYPE = 'internal' AND GRID_ID = #{gridId} 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 e04a6931bf..d0fc049555 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 @@ -626,4 +626,82 @@ r.del_flag = '0' and r.customer_id = #{customerId} AND DATE_FORMAT( r.ACTRUAL_END_TIME, '%Y%m%d' ) = #{dateId} + + + DELETE + FROM + stats_staff_patrol_record_daily + WHERE + customer_id = #{customerId} + AND date_id = #{dateId} + LIMIT 1000 + + + + INSERT INTO stats_staff_patrol_record_daily + ( + id, + source_type, + customer_id, + source_customer_id, + date_id, + week_id, + month_id, + quarter_id, + year_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 + + ( + REPLACE(UUID(), '-', ''), + #{i.sourceType}, + #{i.parentCustomerId}, + #{i.customerId}, + #{i.dateId}, + #{i.weekId}, + #{i.monthId}, + #{i.quarterId}, + #{i.yearId}, + #{i.gridId}, + #{i.agencyId}, + #{i.gridPids}, + #{i.staffId}, + #{i.patrolTotal}, + #{i.totalTime}, + #{i.reportProjectCount}, + #{i.latestPatrolTime}, + #{i.latestPatrolStatus}, + 0, + 0, + 'BASE_REPORT', + NOW(), + 'BASE_REPORT', + NOW() + ) + + ON DUPLICATE KEY + UPDATE + source_type = values(source_type), + customer_id = values(customer_id), + source_customer_id = values(source_customer_id), + report_project_count = values(report_project_count), + updated_by = 'BASE_REPORT', + updated_time = NOW() + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.5__add_sync_flag.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.5__add_sync_flag.sql new file mode 100644 index 0000000000..1f511e8a14 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.5__add_sync_flag.sql @@ -0,0 +1,2 @@ +alter table customer_agency add column SYNC_FLAG VARCHAR(1) not null default '1' comment '当前组织是否同步到统计库和指标库' AFTER AREA_CODE; +alter table customer_grid add column SYNC_FLAG VARCHAR(1) not null default '1' comment '当前网格是否同步到统计库和指标库' AFTER AREA_CODE; \ No newline at end of file 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 index 43a8cdf336..dfbc170559 100644 --- 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 @@ -38,10 +38,20 @@ public class StatsStaffPatrolRecordDailyDTO implements Serializable { */ private String id; + /** + * 来源类型 external:外部,internal:内部 + */ + private String sourceType; + /** * 客户Id */ - private String customerId; + private String customerId; + + /** + * 数据来源客户Id + */ + private String sourceCustomerId; /** * 统计日期 关联日期dim表 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 index 2bb2e583e3..93edb74930 100644 --- 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 @@ -38,11 +38,21 @@ public class StatsStaffPatrolRecordDailyEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; - /** - * 客户Id - */ + /** + * 来源类型 external:外部,internal:内部 + */ + private String sourceType; + + /** + * 客户Id + */ private String customerId; + /** + * 数据来源客户Id + */ + private String sourceCustomerId; + /** * 统计日期 关联日期dim表 */ diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.16__alter_stats_staff_patrol_record_daily.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.16__alter_stats_staff_patrol_record_daily.sql new file mode 100644 index 0000000000..1aa5a6c45e --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.16__alter_stats_staff_patrol_record_daily.sql @@ -0,0 +1,4 @@ +ALTER TABLE `stats_staff_patrol_record_daily` +ADD COLUMN `SOURCE_TYPE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'internal' COMMENT '来源类型 external:外部,internal:内部' AFTER `ID`, +ADD COLUMN `SOURCE_CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '数据来源客户Id' AFTER `CUSTOMER_ID`; +