From 6ce87953efba2c695266fae30b00a045b57366c3 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Fri, 15 Oct 2021 16:48:47 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/basereport/form/EventInfoFormDTO.java | 17 ++ .../basereport/result/EventInfoResultDTO.java | 143 ++++++++++++ .../dto/screen/ScreenCustomerGridDTO.java | 2 +- .../dto/screen/ScreenProjectDataDTO.java | 7 +- .../controller/DataReportingController.java | 17 +- .../screen/ScreenCustomerAgencyEntity.java | 2 +- .../screen/ScreenCustomerGridEntity.java | 1 + .../screen/ScreenProjectDataEntity.java | 12 +- .../epmet/service/DataReportingService.java | 16 +- .../screen/ScreenCustomerAgencyService.java | 19 +- .../screen/ScreenCustomerGridService.java | 18 ++ .../screen/ScreenProjectDataService.java | 11 + .../impl/ScreenCustomerAgencyServiceImpl.java | 33 ++- .../impl/ScreenCustomerGridServiceImpl.java | 41 +++- .../impl/ScreenProjectDataServiceImpl.java | 26 ++- .../impl/DataReportingServiceImpl.java | 115 +++++++++- .../impl/ProjectProcessServiceImpl.java | 9 +- .../CustomerProjectCategoryDictService.java | 10 + ...ustomerProjectCategoryDictServiceImpl.java | 19 ++ .../opendata/dto/BaseDisputeProcessDTO.java | 207 ++++++++++++++++++ .../opendata/dao/BaseDisputeProcessDao.java | 33 +++ .../entity/BaseDisputeProcessEntity.java | 177 +++++++++++++++ .../service/BaseDisputeProcessService.java | 95 ++++++++ .../impl/BaseDisputeProcessServiceImpl.java | 99 +++++++++ .../mapper/BaseDisputeProcessDao.xml | 42 ++++ 25 files changed, 1149 insertions(+), 22 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/result/EventInfoResultDTO.java create mode 100644 epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/BaseDisputeProcessDTO.java create mode 100644 epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseDisputeProcessDao.java create mode 100644 epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseDisputeProcessEntity.java create mode 100644 epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseDisputeProcessService.java create mode 100644 epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java create mode 100644 epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseDisputeProcessDao.xml diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java new file mode 100644 index 0000000000..f901f58270 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java @@ -0,0 +1,17 @@ +package com.epmet.dto.basereport.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2021/10/15 10:55 + */ +@Data +public class EventInfoFormDTO implements Serializable { + private static final long serialVersionUID = 8479649048108914555L; + private String customerId; + private String projectId; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/result/EventInfoResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/result/EventInfoResultDTO.java new file mode 100644 index 0000000000..faff5af737 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/result/EventInfoResultDTO.java @@ -0,0 +1,143 @@ +package com.epmet.dto.basereport.result; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2021/10/15 10:57 + */ +@Data +public class EventInfoResultDTO implements Serializable { + private static final long serialVersionUID = -6483163020737762044L; + /** + * 客户Id + */ + private String customerId; + + /** + * 网格编码 + */ + private String orgCode; + + /** + * 网格名称 + */ + private String orgName; + + /** + * 事件名称 + */ + private String eventName; + + /** + * 事件类别 + */ + private String eventCategory; + + /** + * 上报时间 YYYY-MM-DD HH:MM:SS + */ + private Date reportTime; + + /** + * 发生时间 格式为“YYYY-MM-DD” + */ + private Date happenDate; + + /** + * 发生地点 + */ + private String happenPlace; + + /** + * 事件简述 + */ + private String eventDescription; + + /** + * 办结方式 01自办;02上报 源于居民端的最终结案的项目为02;工作端立项的项目最终结案的01 + */ + private String waysOfResolving; + + /** + * 是否办结 Y:是、N:否 + */ + private String successfulOrNo; + + /** + * 办结层级01省、自治区、直辖市02地、市、州、盟03县、市、区、旗04乡镇、街道05片区06村、社区07网格 + */ + private String completeLevel; + + /** + * 基础信息主键 + */ + private String baseInfoId; + + /** + * 办结时间 + */ + private Date completeTime; + + /** + * 经度 + */ + private BigDecimal lng; + + /** + * 纬度 + */ + private BigDecimal lat; + + /** + * 主要当事人姓名 + */ + private String name; + + /** + * 涉及人数 + */ + private Integer numberInvolved; + + /** + * 涉及单位 + */ + private String relatedUnits; + + /** + * 重点场所类别 01九小场所, 02公共场所 + */ + private String keyAreaType; + + /** + * 宗教活动规模 01 0-50人,02 51-200人,03 201人以上 + + */ + private String religionScale; + + /** + * 宗教类别 01道教 02佛教 03基督教 04伊斯兰教 05其他 + + */ + private String religionType; + + /** + * 重点场所是否变动 Y:是、N:否 + */ + private String isKeyareaState; + + /** + * 重点人员是否在当地 Y:是、N:否 + */ + private String isKeypeopleLocate; + + /** + * 重点人员现状 + */ + private String keypeopleStatus; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenCustomerGridDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenCustomerGridDTO.java index 2a707f9540..2dcdc32028 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenCustomerGridDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenCustomerGridDTO.java @@ -43,7 +43,7 @@ public class ScreenCustomerGridDTO implements Serializable { * 客户id */ private String customerId; - + private String code; /** * 网格id */ diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectDataDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectDataDTO.java index fe859bfac0..0264c67805 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectDataDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectDataDTO.java @@ -165,7 +165,7 @@ public class ScreenProjectDataDTO implements Serializable { /** * 结案日期 */ - private String closeCaseTime; + private Date closeCaseTime; /** * 数据更新至: yyyy|yyyMM|yyyyMMdd @@ -185,4 +185,9 @@ public class ScreenProjectDataDTO implements Serializable { */ private BigDecimal satisfactionScore; + /** + * 分类编码,存在多个,以英文逗号隔开,注意与all_cagtegory_name顺序一致; + */ + private String categoryCode; + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java index 23ad509167..d9de9bc1e1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java @@ -2,13 +2,14 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.basereport.form.EventInfoFormDTO; import com.epmet.dto.org.result.CustomerAgencyDTO; import com.epmet.dto.org.result.CustomerGridDTO; import com.epmet.dto.user.param.MidPatrolFormDTO; -import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.GridUserInfoDTO; import com.epmet.dto.user.result.MidPatrolDetailResult; import com.epmet.dto.user.result.MidPatrolRecordResult; -import com.epmet.dto.user.result.GridUserInfoDTO; +import com.epmet.opendata.dto.BaseDisputeProcessDTO; import com.epmet.opendata.dto.form.GridBaseInfoFormDTO; import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO; import com.epmet.service.DataReportingService; @@ -89,4 +90,16 @@ public class DataReportingController { return new Result>().ok(dataReportingService.getPatrolDetailList(formDTO)); } + /** + * @Description 事件上报 + * @Param formDTO + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/15 14:09 + */ + @PostMapping("eventinfo") + public Result> getEventInfo(@RequestBody(required = false) EventInfoFormDTO formDTO) { + return new Result>().ok(dataReportingService.getEventInfo(formDTO)); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerAgencyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerAgencyEntity.java index ba06221d17..6bf9ea9e6f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerAgencyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerAgencyEntity.java @@ -92,7 +92,7 @@ public class ScreenCustomerAgencyEntity extends BaseEpmetEntity { * 行政地区编码 */ private String areaCode; - + private String code; private String sourceType; /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerGridEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerGridEntity.java index 4a0d8e53c8..9de3701b58 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerGridEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerGridEntity.java @@ -39,6 +39,7 @@ public class ScreenCustomerGridEntity extends BaseEpmetEntity { * 客户id */ private String customerId; + private String code; /** * 网格id diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectDataEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectDataEntity.java index 52c9a19ab3..fe852b8dfa 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectDataEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectDataEntity.java @@ -132,7 +132,7 @@ public class ScreenProjectDataEntity extends BaseEpmetEntity { /** * 结案日期 */ - private String closeCaseTime; + private Date closeCaseTime; /** * 数据更新至: yyyy|yyyMM|yyyyMMdd @@ -148,4 +148,14 @@ public class ScreenProjectDataEntity extends BaseEpmetEntity { * 满意度得分 */ private BigDecimal satisfactionScore; + + /** + * 来源:议题issue 项目立项:agency 事件:resi_event; + */ + private String origin; + + /** + * 分类编码,存在多个,以英文逗号隔开,注意与all_cagtegory_name顺序一致; + */ + private String categoryCode; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java index d1f051f8c6..bbaf18aa3c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java @@ -1,12 +1,14 @@ package com.epmet.service; +import com.epmet.dto.basereport.form.EventInfoFormDTO; +import com.epmet.dto.basereport.result.EventInfoResultDTO; import com.epmet.dto.org.result.CustomerAgencyDTO; import com.epmet.dto.org.result.CustomerGridDTO; import com.epmet.dto.user.param.MidPatrolFormDTO; -import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.GridUserInfoDTO; import com.epmet.dto.user.result.MidPatrolDetailResult; import com.epmet.dto.user.result.MidPatrolRecordResult; -import com.epmet.dto.user.result.GridUserInfoDTO; +import com.epmet.opendata.dto.BaseDisputeProcessDTO; import com.epmet.opendata.dto.form.GridBaseInfoFormDTO; import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO; @@ -58,4 +60,14 @@ public interface DataReportingService { */ List getPatrolDetailList(MidPatrolFormDTO formDTO); + + /** + * 事件上报 + * @Param formDTO + * @Return {@link List} + * @Author zhaoqifeng + * @Date 2021/10/15 14:10 + */ + List getEventInfo(EventInfoFormDTO formDTO); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java index 5ded177ae0..fcb81fc243 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java @@ -17,6 +17,7 @@ package com.epmet.service.evaluationindex.screen; +import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.extract.form.PartyBaseInfoFormDTO; import com.epmet.dto.extract.form.ScreenPartyBranchDataFormDTO; @@ -35,7 +36,7 @@ import java.util.Map; * @author generator generator@elink-cn.com * @since v1.0.0 2020-09-22 */ -public interface ScreenCustomerAgencyService{ +public interface ScreenCustomerAgencyService extends BaseService { /** * @Description 根据agencyId,查询所有子级agencyId,【当机关的级别为 community时,所有子级为gridId】 @@ -137,5 +138,21 @@ public interface ScreenCustomerAgencyService{ * @author sun */ List getByCustomerId(String customerId); + /** + * @Description 根据ID获取组织 + * @Param agencyId + * @Return {@link ScreenCustomerAgencyEntity} + * @Author zhaoqifeng + * @Date 2021/10/15 15:44 + */ + ScreenCustomerAgencyEntity getAgencyById(String agencyId); + /** + * @Description 获取组织列表 + * @Param customerId + * @Return {@link Map< String, ScreenCustomerAgencyEntity>} + * @Author zhaoqifeng + * @Date 2021/10/15 15:44 + */ + Map getAgencyList(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 1fb59aa3b5..bf701b81d3 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 @@ -28,6 +28,7 @@ import com.epmet.entity.evaluationindex.screen.ScreenCustomerGridEntity; import com.epmet.entity.org.CustomerGridEntity; import java.util.List; +import java.util.Map; /** * 网格(党支部)信息 @@ -111,4 +112,21 @@ public interface ScreenCustomerGridService extends BaseService selectGridInfoList(String customerId, String pids); List selectEntityByAgencyId(String customerId, String parentAgencyId); + + /** + * @Description 根据ID获取网格 + * @Param gridId + * @Return {@link ScreenCustomerGridDTO} + * @Author zhaoqifeng + * @Date 2021/10/15 15:50 + */ + ScreenCustomerGridDTO getGridById(String gridId); + /** + * @Description 获取网格列表 + * @Param customerId + * @Return {@link Map} + * @Author zhaoqifeng + * @Date 2021/10/15 15:50 + */ + Map getGridList(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java index 7b82707c91..2cf68852db 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java @@ -127,4 +127,15 @@ public interface ScreenProjectDataService extends BaseService meta,List orient); int updateProjectSatisfactionScore(String projectId, BigDecimal calProjectSatisfactionScore); + + /** + * 获取项目 + * @Param customerId + * @Param projectId + * @Return {@link List} + * @Author zhaoqifeng + * @Date 2021/10/15 14:22 + */ + List getProjectList(String customerId, String projectId); + } 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 16ba642e62..972d8ef961 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 @@ -17,7 +17,9 @@ package com.epmet.service.evaluationindex.screen.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.DataSourceConstant; @@ -36,13 +38,14 @@ import com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity; import com.epmet.entity.org.CustomerAgencyEntity; import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -54,7 +57,7 @@ import java.util.stream.Collectors; @Service @Slf4j @DataSource(DataSourceConstant.EVALUATION_INDEX) -public class ScreenCustomerAgencyServiceImpl implements ScreenCustomerAgencyService { +public class ScreenCustomerAgencyServiceImpl extends BaseServiceImpl implements ScreenCustomerAgencyService { @Autowired private ScreenCustomerAgencyDao screenCustomerAgencyDao; @@ -304,4 +307,30 @@ public class ScreenCustomerAgencyServiceImpl implements ScreenCustomerAgencyServ return screenCustomerAgencyDao.selectByCustomerId(customerId); } + @Override + public ScreenCustomerAgencyEntity getAgencyById(String agencyId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ScreenCustomerAgencyEntity::getAgencyId, agencyId); + return baseDao.selectOne(wrapper); + } + + /** + * @param customerId + * @Description 获取组织列表 + * @Param customerId + * @Return {@link Map< String, ScreenCustomerAgencyEntity>} + * @Author zhaoqifeng + * @Date 2021/10/15 15:44 + */ + @Override + public Map getAgencyList(String customerId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(customerId), ScreenCustomerAgencyEntity::getAgencyId, customerId); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(ScreenCustomerAgencyEntity::getAgencyId, Function.identity())); + } + } \ 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 1ae24e2d25..c87c58f7fd 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 @@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.DataSourceConstant; import com.epmet.constant.OrgSourceTypeConstant; @@ -34,15 +35,15 @@ import com.epmet.dto.screen.ScreenProjectGridDailyDTO; import com.epmet.entity.evaluationindex.screen.ScreenCustomerGridEntity; import com.epmet.entity.org.CustomerGridEntity; import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService; +import org.apache.commons.lang3.StringUtils; 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.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 网格(党支部)信息 @@ -215,4 +216,36 @@ public class ScreenCustomerGridServiceImpl extends BaseServiceImpl selectEntityByAgencyId(String customerId, String parentAgencyId) { return baseDao.selectEntityByAgencyId(customerId,parentAgencyId); } + + /** + * @param gridId + * @Description 根据ID获取网格 + * @Param gridId + * @Return {@link ScreenCustomerGridDTO} + * @Author zhaoqifeng + * @Date 2021/10/15 15:50 + */ + @Override + public ScreenCustomerGridDTO getGridById(String gridId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ScreenCustomerGridEntity::getGridId, gridId); + ScreenCustomerGridEntity entity = baseDao.selectOne(wrapper); + return ConvertUtils.sourceToTarget(entity, ScreenCustomerGridDTO.class); + } + + /** + * @param customerId + * @Description 获取网格列表 + * @Param customerId + * @Return {@link Map } + * @Author zhaoqifeng + * @Date 2021/10/15 15:50 + */ + @Override + public Map getGridList(String customerId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(customerId), ScreenCustomerGridEntity::getGridId, customerId); + List list = baseDao.selectList(wrapper); + return ConvertUtils.sourceToTarget(list, ScreenCustomerGridDTO.class).stream().collect(Collectors.toMap(ScreenCustomerGridDTO::getGridId, Function.identity())); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java index 5e14db736e..855e1a6a29 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.service.evaluationindex.screen.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.dynamic.datasource.annotation.DataSource; @@ -26,7 +27,8 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.constant.DataSourceConstant; -import com.epmet.dao.evaluationindex.screen.*; +import com.epmet.dao.evaluationindex.screen.ScreenProjectDataDao; +import com.epmet.dao.evaluationindex.screen.ScreenProjectImgDataDao; import com.epmet.dto.screen.ScreenProjectDataDTO; import com.epmet.dto.screen.form.ScreenProjectDataInfoFormDTO; import com.epmet.dto.screencoll.ScreenCollFormDTO; @@ -275,4 +277,26 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl} + * @Author zhaoqifeng + * @Date 2021/10/15 14:22 + */ + @Override + public List getProjectList(String customerId, String projectId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(customerId), ScreenProjectDataEntity::getCustomerId, customerId); + wrapper.eq(StringUtils.isNotBlank(projectId), ScreenProjectDataEntity::getProjectId, projectId); + wrapper.ne(ScreenProjectDataEntity::getCategoryCode, null); + wrapper.ne(ScreenProjectDataEntity::getCategoryCode, ""); + List list = baseDao.selectList(wrapper); + return ConvertUtils.sourceToTarget(list, ScreenProjectDataDTO.class); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java index 6e2396199d..c1895ff7c9 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java @@ -1,25 +1,42 @@ package com.epmet.service.impl; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.constant.OrgTypeConstant; +import com.epmet.constant.ProjectConstant; +import com.epmet.dto.basereport.form.EventInfoFormDTO; import com.epmet.dto.org.result.CustomerAgencyDTO; import com.epmet.dto.org.result.CustomerGridDTO; +import com.epmet.dto.screen.ScreenCustomerGridDTO; +import com.epmet.dto.screen.ScreenProjectDataDTO; import com.epmet.dto.user.param.MidPatrolFormDTO; import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.GridUserInfoDTO; import com.epmet.dto.user.result.MidPatrolDetailResult; import com.epmet.dto.user.result.MidPatrolRecordResult; -import com.epmet.dto.user.result.GridUserInfoDTO; +import com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity; +import com.epmet.entity.stats.CustomerProjectCategoryDictEntity; +import com.epmet.opendata.dto.BaseDisputeProcessDTO; import com.epmet.opendata.dto.form.GridBaseInfoFormDTO; import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO; import com.epmet.service.DataReportingService; +import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; +import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService; +import com.epmet.service.evaluationindex.screen.ScreenProjectDataService; import com.epmet.service.org.CustomerAgencyService; import com.epmet.service.org.CustomerGridService; +import com.epmet.service.stats.CustomerProjectCategoryDictService; import com.epmet.service.user.StatsStaffPatrolService; import com.epmet.service.user.UserService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * @dscription 省网格化平台数据上报--数据查询 @@ -34,8 +51,16 @@ public class DataReportingServiceImpl implements DataReportingService { private CustomerGridService customerGridService; @Autowired private UserService userService; + @Resource + private ScreenProjectDataService screenProjectDataService; + @Resource + private ScreenCustomerAgencyService screenCustomerAgencyService; + @Resource + private ScreenCustomerGridService screenCustomerGridService; @Autowired private StatsStaffPatrolService statsStaffPatrolService; + @Resource + private CustomerProjectCategoryDictService customerProjectCategoryDictService; /** * @Author sun @@ -105,6 +130,92 @@ public class DataReportingServiceImpl implements DataReportingService { return resultList; } + /** + * 事件上报 + * + * @param formDTO + * @Param formDTO + * @Return {@link List} + * @Author zhaoqifeng + * @Date 2021/10/15 14:10 + */ + @Override + public List getEventInfo(EventInfoFormDTO formDTO) { + List list; + //根据入参,获取项目 + List projectList = screenProjectDataService.getProjectList(formDTO.getCustomerId(), formDTO.getProjectId()); + //项目列表为空,返回空数组 + if(CollectionUtils.isEmpty(projectList)) { + return Collections.emptyList(); + } + //项目ID不为空时,因为只有一条,可以直接处理 + if (StringUtils.isNotEmpty(formDTO.getProjectId())) { + list = projectList.stream().map(project -> { + BaseDisputeProcessDTO dto = getBaseDisputeProcessDTO(project); + if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { + ScreenCustomerAgencyEntity agency = screenCustomerAgencyService.getAgencyById(project.getOrgId()); + dto.setOrgCode(agency.getCode()); + dto.setOrgName(agency.getAgencyName()); + } else { + ScreenCustomerGridDTO grid = screenCustomerGridService.getGridById(project.getOrgId()); + dto.setOrgCode(grid.getCode()); + dto.setOrgName(grid.getGridName()); + } + return dto; + }).collect(Collectors.toList()); + } else { + //项目ID不为空时,提前取出客户下的组织和网格 + Map agencyMap = screenCustomerAgencyService.getAgencyList(formDTO.getCustomerId()); + Map gridMap = screenCustomerGridService.getGridList(formDTO.getCustomerId()); + list = projectList.stream().map(project -> { + BaseDisputeProcessDTO dto = getBaseDisputeProcessDTO(project); + if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { + ScreenCustomerAgencyEntity agency = agencyMap.get(project.getOrgId()); + dto.setOrgCode(agency.getCode()); + dto.setOrgName(agency.getAgencyName()); + } else { + ScreenCustomerGridDTO grid = gridMap.get(project.getOrgId()); + dto.setOrgCode(grid.getCode()); + dto.setOrgName(grid.getGridName()); + } + return dto; + }).collect(Collectors.toList()); + } + return list.stream().filter(item -> StringUtils.isNotBlank(item.getEventCategory())).collect(Collectors.toList()); + } + + private BaseDisputeProcessDTO getBaseDisputeProcessDTO(ScreenProjectDataDTO project) { + BaseDisputeProcessDTO dto = new BaseDisputeProcessDTO(); + dto.setCustomerId(project.getCustomerId()); + dto.setEventName(project.getProjectTitle()); + String categoryCode = project.getCategoryCode().split(StrConstant.COMMA)[0]; + //如果是孔村、榆山、锦水的项目需要关联分类字典表 + if("2fe0065f70ca0e23ce4c26fca5f1d933".equals(project.getCustomerId()) || + "44876154d10d7cb7affd92000f84f833".equals(project.getCustomerId()) || + "46c55cb862d6d5e6d05d2ab61a1cc07e".equals(project.getCustomerId())) { + CustomerProjectCategoryDictEntity categoryEntity = customerProjectCategoryDictService.getByCategoryCode(project.getCustomerId(), categoryCode); + if (null != categoryEntity) { + categoryCode = categoryEntity.getEpmetCategoryCode(); + } else { + categoryCode = null; + } + } + dto.setReportTime(project.getProjectCreateTime()); + dto.setHappenDate(DateUtils.parseDate(DateUtils.format(project.getProjectCreateTime()), DateUtils.DATE_PATTERN)); + dto.setEventDescription(project.getProjectContent()); + //TODO 办结方式 + dto.setWaysOfResolving("01"); + dto.setSuccessfulOrNo(ProjectConstant.CLOSED_CASE.equals(project.getProjectStatusCode())?"Y":"N"); + //TODO 办结层级 + dto.setCompleteLevel("01"); + dto.setCompleteTime(project.getCloseCaseTime()); + dto.setLat(project.getLatitude()); + dto.setLng(project.getLongitude()); + return dto; + } + + + @Override public List getPatrolRecordList(MidPatrolFormDTO formDTO) { return userService.getPatrolRecordList(formDTO); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java index d16db0530e..a71c61bfbd 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java @@ -20,7 +20,6 @@ package com.epmet.service.project.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.project.ProjectProcessDao; import com.epmet.dto.ProjectProcessDTO; @@ -40,7 +39,9 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.*; +import java.util.Collections; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -144,7 +145,7 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl closedInfo.stream().filter(closedCase -> StringUtils.equals(closedCase.getProjectId(),target.getProjectId())).map( merge -> { target.setProjectStatusCode("closed_case"); - target.setCloseCaseTime(DateUtils.format(merge.getCreatedTime(),DateUtils.DATE_TIME_PATTERN)); + target.setCloseCaseTime(merge.getCreatedTime()); return target; } )).collect(Collectors.toList()); @@ -166,7 +167,7 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl closedInfo.stream().filter(closedCase -> StringUtils.equals(closedCase.getProjectId(),target.getProjectId())).map( merge -> { //target.setProjectStatusCode("closed_case"); - target.setCloseCaseTime(DateUtils.format(merge.getCreatedTime(),DateUtils.DATE_TIME_PATTERN)); + target.setCloseCaseTime(merge.getCreatedTime()); return target; } )).collect(Collectors.toList()); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java index ef8440c594..cc8633b08f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java @@ -55,4 +55,14 @@ public interface CustomerProjectCategoryDictService extends BaseService formDTO); + + /** + * @Description 获取分类信息 + * @Param customerId + * @Param categoryCode + * @Return {@link CustomerProjectCategoryDictEntity} + * @Author zhaoqifeng + * @Date 2021/10/15 16:33 + */ + CustomerProjectCategoryDictEntity getByCategoryCode(String customerId, String categoryCode); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java index 97a8a560f5..d7c81c93ad 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.service.stats.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; @@ -116,4 +117,22 @@ public class CustomerProjectCategoryDictServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(CustomerProjectCategoryDictEntity::getCategoryCode, categoryCode); + wrapper.eq(CustomerProjectCategoryDictEntity::getCustomerId, customerId); + return baseDao.selectOne(wrapper); + } } diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/BaseDisputeProcessDTO.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/BaseDisputeProcessDTO.java new file mode 100644 index 0000000000..38ab49fc12 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/BaseDisputeProcessDTO.java @@ -0,0 +1,207 @@ +/** + * 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.opendata.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 事件信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-10-15 + */ +@Data +public class BaseDisputeProcessDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户Id + */ + private String customerId; + + /** + * 网格编码 + */ + private String orgCode; + + /** + * 网格名称 + */ + private String orgName; + + /** + * 事件名称 + */ + private String eventName; + + /** + * 事件类别 + */ + private String eventCategory; + + /** + * 上报时间 YYYY-MM-DD HH:MM:SS + */ + private Date reportTime; + + /** + * 发生时间 格式为“YYYY-MM-DD” + */ + private Date happenDate; + + /** + * 发生地点 + */ + private String happenPlace; + + /** + * 事件简述 + */ + private String eventDescription; + + /** + * 办结方式 01自办;02上报 源于居民端的最终结案的项目为02;工作端立项的项目最终结案的01 + */ + private String waysOfResolving; + + /** + * 是否办结 Y:是、N:否 + */ + private String successfulOrNo; + + /** + * 办结层级 +01省、自治区、直辖市 +02地、市、州、盟 +03县、市、区、旗 +04乡镇、街道 +05片区 +06村、社区 +07网格 + + */ + private String completeLevel; + + /** + * 基础信息主键 + */ + private String baseInfoId; + + /** + * 办结时间 + */ + private Date completeTime; + + /** + * 经度 + */ + private BigDecimal lng; + + /** + * 纬度 + */ + private BigDecimal lat; + + /** + * 主要当事人姓名 + */ + private String name; + + /** + * 涉及人数 + */ + private Integer numberInvolved; + + /** + * 涉及单位 + */ + private String relatedUnits; + + /** + * 重点场所类别 01九小场所, 02公共场所 + */ + private String keyAreaType; + + /** + * 宗教活动规模 01 0-50人,02 51-200人,03 201人以上 + + */ + private String religionScale; + + /** + * 宗教类别 01道教 02佛教 03基督教 04伊斯兰教 05其他 + + */ + private String religionType; + + /** + * 重点场所是否变动 Y:是、N:否 + */ + private String isKeyareaState; + + /** + * 重点人员是否在当地 Y:是、N:否 + */ + private String isKeypeopleLocate; + + /** + * 重点人员现状 + */ + private String keypeopleStatus; + + /** + * 删除标识 0.未删除 1.已删除 + */ + private Long 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/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseDisputeProcessDao.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseDisputeProcessDao.java new file mode 100644 index 0000000000..c7b8df45d9 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseDisputeProcessDao.java @@ -0,0 +1,33 @@ +/** + * 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.opendata.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.opendata.entity.BaseDisputeProcessEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 事件信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-10-15 + */ +@Mapper +public interface BaseDisputeProcessDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseDisputeProcessEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseDisputeProcessEntity.java new file mode 100644 index 0000000000..c7266558ed --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseDisputeProcessEntity.java @@ -0,0 +1,177 @@ +/** + * 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.opendata.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 事件信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-10-15 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("base_dispute_process") +public class BaseDisputeProcessEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id + */ + private String customerId; + + /** + * 网格编码 + */ + private String orgCode; + + /** + * 网格名称 + */ + private String orgName; + + /** + * 事件名称 + */ + private String eventName; + + /** + * 事件类别 + */ + private String eventCategory; + + /** + * 上报时间 YYYY-MM-DD HH:MM:SS + */ + private Date reportTime; + + /** + * 发生时间 格式为“YYYY-MM-DD” + */ + private Date happenDate; + + /** + * 发生地点 + */ + private String happenPlace; + + /** + * 事件简述 + */ + private String eventDescription; + + /** + * 办结方式 01自办;02上报 源于居民端的最终结案的项目为02;工作端立项的项目最终结案的01 + */ + private String waysOfResolving; + + /** + * 是否办结 Y:是、N:否 + */ + private String successfulOrNo; + + /** + * 办结层级 +01省、自治区、直辖市 +02地、市、州、盟 +03县、市、区、旗 +04乡镇、街道 +05片区 +06村、社区 +07网格 + + */ + private String completeLevel; + + /** + * 基础信息主键 + */ + private String baseInfoId; + + /** + * 办结时间 + */ + private Date completeTime; + + /** + * 经度 + */ + private BigDecimal lng; + + /** + * 纬度 + */ + private BigDecimal lat; + + /** + * 主要当事人姓名 + */ + private String name; + + /** + * 涉及人数 + */ + private Integer numberInvolved; + + /** + * 涉及单位 + */ + private String relatedUnits; + + /** + * 重点场所类别 01九小场所, 02公共场所 + */ + private String keyAreaType; + + /** + * 宗教活动规模 01 0-50人,02 51-200人,03 201人以上 + + */ + private String religionScale; + + /** + * 宗教类别 01道教 02佛教 03基督教 04伊斯兰教 05其他 + + */ + private String religionType; + + /** + * 重点场所是否变动 Y:是、N:否 + */ + private String isKeyareaState; + + /** + * 重点人员是否在当地 Y:是、N:否 + */ + private String isKeypeopleLocate; + + /** + * 重点人员现状 + */ + private String keypeopleStatus; + +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseDisputeProcessService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseDisputeProcessService.java new file mode 100644 index 0000000000..874996c00b --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseDisputeProcessService.java @@ -0,0 +1,95 @@ +/** + * 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.opendata.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.opendata.dto.BaseDisputeProcessDTO; +import com.epmet.opendata.entity.BaseDisputeProcessEntity; + +import java.util.List; +import java.util.Map; + +/** + * 事件信息表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-10-15 + */ +public interface BaseDisputeProcessService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2021-10-15 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2021-10-15 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return BaseDisputeProcessDTO + * @author generator + * @date 2021-10-15 + */ + BaseDisputeProcessDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2021-10-15 + */ + void save(BaseDisputeProcessDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2021-10-15 + */ + void update(BaseDisputeProcessDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2021-10-15 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java new file mode 100644 index 0000000000..ade833cb71 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java @@ -0,0 +1,99 @@ +/** + * 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.opendata.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.constant.FieldConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.opendata.dao.BaseDisputeProcessDao; +import com.epmet.opendata.dto.BaseDisputeProcessDTO; +import com.epmet.opendata.entity.BaseDisputeProcessEntity; +import com.epmet.opendata.service.BaseDisputeProcessService; +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-10-15 + */ +@Service +public class BaseDisputeProcessServiceImpl extends BaseServiceImpl implements BaseDisputeProcessService { + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, BaseDisputeProcessDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, BaseDisputeProcessDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public BaseDisputeProcessDTO get(String id) { + BaseDisputeProcessEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, BaseDisputeProcessDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(BaseDisputeProcessDTO dto) { + BaseDisputeProcessEntity entity = ConvertUtils.sourceToTarget(dto, BaseDisputeProcessEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(BaseDisputeProcessDTO dto) { + BaseDisputeProcessEntity entity = ConvertUtils.sourceToTarget(dto, BaseDisputeProcessEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseDisputeProcessDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseDisputeProcessDao.xml new file mode 100644 index 0000000000..6fbc4d42a5 --- /dev/null +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseDisputeProcessDao.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 71d8b978f21f833e6908c6b5f643e7c444b380c5 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Fri, 15 Oct 2021 16:52:00 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/DataStatisticalOpenFeignClient.java | 16 +++++++++++++--- ...ataStatisticalOpenFeignClientFallBack.java | 19 +++++++++++++++++-- 2 files changed, 30 insertions(+), 5 deletions(-) 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 e91c56ad39..50b339b697 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,6 +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.basereport.form.EventInfoFormDTO; import com.epmet.dto.extract.form.BizDataFormDTO; import com.epmet.dto.extract.form.ExtractIndexFormDTO; import com.epmet.dto.extract.form.ExtractOriginFormDTO; @@ -14,15 +15,14 @@ import com.epmet.dto.org.result.CustomerGridDTO; import com.epmet.dto.screen.form.InitCustomerIndexForm; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; import com.epmet.dto.user.param.MidPatrolFormDTO; -import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.GridUserInfoDTO; import com.epmet.dto.user.result.MidPatrolDetailResult; import com.epmet.dto.user.result.MidPatrolRecordResult; -import com.epmet.dto.user.result.GridUserInfoDTO; import com.epmet.feign.impl.DataStatisticalOpenFeignClientFallBackFactory; +import com.epmet.opendata.dto.BaseDisputeProcessDTO; import com.epmet.opendata.dto.form.GridBaseInfoFormDTO; import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -331,4 +331,14 @@ public interface DataStatisticalOpenFeignClient { */ @PostMapping(value = "/data/stats/datareporting/getPatrolDetailList") Result> getPatrolDetailList(@RequestBody MidPatrolFormDTO midPatrolFormDTO); + + /** + * 事件上报 + * @Param formDTO + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/15 16:50 + */ + @PostMapping("/data/stats/datareporting/eventinfo") + Result> getEventInfo(@RequestBody EventInfoFormDTO 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 fd66b4a73f..b36b9e9434 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,6 +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.basereport.form.EventInfoFormDTO; import com.epmet.dto.extract.form.BizDataFormDTO; import com.epmet.dto.extract.form.ExtractIndexFormDTO; import com.epmet.dto.extract.form.ExtractOriginFormDTO; @@ -15,11 +16,11 @@ import com.epmet.dto.org.result.CustomerGridDTO; import com.epmet.dto.screen.form.InitCustomerIndexForm; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; import com.epmet.dto.user.param.MidPatrolFormDTO; -import com.epmet.dto.user.result.CustomerStaffDTO; +import com.epmet.dto.user.result.GridUserInfoDTO; import com.epmet.dto.user.result.MidPatrolDetailResult; import com.epmet.dto.user.result.MidPatrolRecordResult; -import com.epmet.dto.user.result.GridUserInfoDTO; import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.opendata.dto.BaseDisputeProcessDTO; import com.epmet.opendata.dto.form.GridBaseInfoFormDTO; import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO; @@ -319,4 +320,18 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp public Result> getPatrolDetailList(MidPatrolFormDTO midPatrolFormDTO) { return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getPatrolDetailList", midPatrolFormDTO); } + + /** + * 事件上报 + * + * @param formDTO + * @Param formDTO + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/15 16:50 + */ + @Override + public Result> getEventInfo(EventInfoFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getEventInfo", formDTO); + } } From d1812d28ba9689d7f02003c2e6a605f6e58e7c1b Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 15 Oct 2021 16:54:18 +0800 Subject: [PATCH 3/3] =?UTF-8?q?mq=E7=9B=91=E5=90=AC=E8=80=85=20=E6=A0=B9?= =?UTF-8?q?=E6=8D=AEtag=20=E8=B0=83=E7=94=A8=E4=B8=8D=E5=90=8C=E7=9A=84?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserPatrolRecordController.java | 2 +- .../OpenDataPatrolChangeEventListener.java | 18 ++++- .../service/UserPatrolRecordService.java | 11 ++- .../impl/UserPatrolRecordServiceImpl.java | 80 +++++++++++++------ 4 files changed, 79 insertions(+), 32 deletions(-) diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/UserPatrolRecordController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/UserPatrolRecordController.java index 3ee9ab1ccf..fb2334e8df 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/UserPatrolRecordController.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/UserPatrolRecordController.java @@ -48,7 +48,7 @@ public class UserPatrolRecordController { @PostMapping("patrol") public Result getStaffBaseInfo(@RequestBody(required = false) UpsertPatrolRecordForm formDTO) { ValidatorUtils.validateEntity(formDTO); - userPatrolRecordService.upsertPatrolRecord(formDTO); + userPatrolRecordService.insertPatrolRecord(formDTO); return new Result(); } } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java index a399c6c511..c09267411e 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java @@ -9,6 +9,7 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.SpringContextUtils; +import com.epmet.constant.SystemMessageType; import com.epmet.opendata.dto.form.UpsertPatrolRecordForm; import com.epmet.opendata.service.UserPatrolRecordService; import lombok.extern.slf4j.Slf4j; @@ -76,7 +77,19 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr patrolRecordForm.setCustomerId(msgObj.getCustomerId()); patrolRecordForm.setPatrolId(msgObj.getPatrolId()); patrolRecordForm.setActionType(tags); - Boolean aBoolean = SpringContextUtils.getBean(UserPatrolRecordService.class).upsertPatrolRecord(patrolRecordForm); + Boolean aBoolean = false; + switch (tags) { + case SystemMessageType.USER_PATROL_START: + aBoolean = SpringContextUtils.getBean(UserPatrolRecordService.class).insertPatrolRecord(patrolRecordForm); + break; + case SystemMessageType.USER_PATROL_STOP: + aBoolean = SpringContextUtils.getBean(UserPatrolRecordService.class).updatePatrolRecord(patrolRecordForm); + break; + default: + log.error("错误的消息类型:{}", tags); + + } + } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 logger.error("【开放数据事件监听器】-巡查记录信息变更-失败:".concat(ExceptionUtils.getErrorStackTrace(e))); @@ -98,10 +111,9 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr } /** - * @description - * * @param pendingMsgLabel * @return + * @description * @author wxz * @date 2021.10.14 16:32:32 */ diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolRecordService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolRecordService.java index f3d12add5a..45d894e531 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolRecordService.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolRecordService.java @@ -30,9 +30,16 @@ import com.epmet.opendata.entity.UserPatrolRecordEntity; public interface UserPatrolRecordService extends BaseService { /** - * desc:根据条件更新或者插入巡查记录 + * desc:根据条件插入巡查记录 * @param patrolRecordForm * @return */ - Boolean upsertPatrolRecord(UpsertPatrolRecordForm patrolRecordForm); + Boolean insertPatrolRecord(UpsertPatrolRecordForm patrolRecordForm); + + /** + * desc:根据条件更新巡查记录及轨迹 + * @param patrolRecordForm + * @return + */ + Boolean updatePatrolRecord(UpsertPatrolRecordForm patrolRecordForm); } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java index c0bc420f09..fdf0c2bc18 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java @@ -18,12 +18,12 @@ package com.epmet.opendata.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.constant.SystemMessageType; import com.epmet.dto.user.param.MidPatrolFormDTO; import com.epmet.dto.user.result.MidPatrolDetailResult; import com.epmet.dto.user.result.MidPatrolRecordResult; @@ -59,48 +59,76 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl> record = dataStatisticalOpenFeignClient.getPatrolRecordList(midPatrolFormDTO); - if (record == null || !record.success()){ + if (record == null || !record.success()) { log.error("获取巡查记录失败,param:{}", JSON.toJSONString(midPatrolFormDTO)); return false; } List data = record.getData(); - if (CollectionUtils.isEmpty(data)){ + if (CollectionUtils.isEmpty(data)) { //数据已被删除了 delFlag = true; //暂时设置error 用于排错 log.error("获取巡查记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO)); int effectRow = baseDao.deleteById(patrolRecordForm.getPatrolId()); - log.warn("del effectRow:{}",effectRow); + log.warn("del effectRow:{}", effectRow); return true; } MidPatrolRecordResult recordResult = data.get(NumConstant.ZERO); - switch (patrolRecordForm.getActionType()){ - case SystemMessageType.USER_PATROL_START: - //insert - baseDao.insert(buildEntity(recordResult)); - break; - case SystemMessageType.USER_PATROL_STOP: - //update - baseDao.updateById(buildEntity(recordResult)); - Result> detailResult = dataStatisticalOpenFeignClient.getPatrolDetailList(midPatrolFormDTO); - if (detailResult == null || !detailResult.success()){ - log.error("获取巡查记录明细失败,param:{}", JSON.toJSONString(midPatrolFormDTO)); - return false; - } - UserPatrolDetailEntity detailEntity = buildDetailEntity(recordResult, detailResult); + UserPatrolRecordEntity recordEntity = buildEntity(recordResult); - userPatrolDetailDao.insert(detailEntity); - break; - default: - log.info("======"); + //insert + baseDao.insert(recordEntity); + + return true; + } + + @Override + public Boolean updatePatrolRecord(UpsertPatrolRecordForm patrolRecordForm) { + log.info("updatePatrolRecord param:{}", JSON.toJSONString(patrolRecordForm)); + ValidatorUtils.validateEntity(patrolRecordForm); + boolean delFlag = false; + MidPatrolFormDTO midPatrolFormDTO = buildParam(patrolRecordForm); + Result> record = dataStatisticalOpenFeignClient.getPatrolRecordList(midPatrolFormDTO); + if (record == null || !record.success()) { + log.error("获取巡查记录失败,param:{}", JSON.toJSONString(midPatrolFormDTO)); + return false; + } + List data = record.getData(); + if (CollectionUtils.isEmpty(data)) { + //数据已被删除了 + delFlag = true; + //暂时设置error 用于排错 + log.error("获取巡查记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO)); + int effectRow = baseDao.deleteById(patrolRecordForm.getPatrolId()); + log.warn("del effectRow:{}", effectRow); + return true; + } + MidPatrolRecordResult recordResult = data.get(NumConstant.ZERO); + UserPatrolRecordEntity recordEntity = buildEntity(recordResult); + + //update + int effectRow = baseDao.updateById(recordEntity); + if (effectRow == 0) { + baseDao.insert(recordEntity); + } + Result> detailResult = dataStatisticalOpenFeignClient.getPatrolDetailList(midPatrolFormDTO); + if (detailResult == null || !detailResult.success()) { + log.error("获取巡查记录明细失败,param:{}", JSON.toJSONString(midPatrolFormDTO)); + return false; } + UserPatrolDetailEntity detailEntity = buildDetailEntity(recordResult, detailResult); + //先删除再新增 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(UserPatrolDetailEntity::getStaffPatrolRecId, recordEntity.getId()); + userPatrolDetailDao.delete(wrapper); + int insert = userPatrolDetailDao.insert(detailEntity); return true; } @@ -109,8 +137,8 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl{ + StringBuilder sb = new StringBuilder(); + detailResult.getData().forEach(o -> { sb.append(o.getLongitude()) .append(StrConstant.COMMA) .append(o.getLatitude())