Browse Source

Merge branch 'pingyin_master' of http://git.elinkit.com.cn:7070/r/epmet-cloud into pingyin_master

master
wangxianzhang 3 years ago
parent
commit
e9f8eeadad
  1. 1
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java
  2. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java
  3. 37
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/StrUtil.java
  4. 4
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/DataSourceConstant.java
  5. 2
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/form/GridBaseInfoFormDTO.java
  6. 7
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java
  7. 1
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java
  8. 6
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml
  9. 6
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml
  10. 2
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
  11. 11
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
  12. 13
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java
  13. 4
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml
  14. 8
      epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/constant/DataWorkerConstant.java
  15. 4
      epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java
  16. 22
      epmet-module/open-data-worker/open-data-worker-server/pom.xml
  17. 17
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java
  18. 6
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridInfoPingyinDao.java
  19. 2
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffInfoPingyinDao.java
  20. 7
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/EventreportPingyinEntity.java
  21. 7
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridInfoPingyinEntity.java
  22. 11
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffInfoPingyinEntity.java
  23. 4
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java
  24. 4
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java
  25. 4
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java
  26. 17
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseGridDailyworkService.java
  27. 7
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffInfoPingyinService.java
  28. 12
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffWorkInfoPingyinService.java
  29. 155
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseGridDailyworkServiceImpl.java
  30. 36
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java
  31. 68
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java
  32. 46
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffInfoPingyinServiceImpl.java
  33. 137
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffWorkInfoPingyinServiceImpl.java
  34. 8
      epmet-module/open-data-worker/open-data-worker-server/src/main/resources/bootstrap.yml
  35. 11
      epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridInfoPingyinDao.xml
  36. 12
      epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffInfoPingyinDao.xml
  37. 13
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridStaffUploadResultDTO.java
  38. 4
      epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml

1
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java

@ -18,6 +18,7 @@ public class OrgOrStaffMQMsg implements Serializable {
//数据类型【组织:agency 网格:grid 人员:staff】
private String orgType;
//操作类型【组织新增:agency_create 组织变更:agency_change 网格新增:grid_create 网格变更:grid_change 人员新增:staff_create 人员变更:staff_change】
//删除网格:grid_delete;删除组织:agency_delete
private String type;

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java

@ -50,6 +50,8 @@ public interface NumConstant {
BigDecimal ZERO_DECIMAL = new BigDecimal(0);
int ONE_THOUSAND = 1000;
int TEN_THOUSAND = 10000;
int THREE_THOUSAND = 3000;
int MAX = 99999999;
int EIGHTY_EIGHT = 88;
int EIGHTY = 80;

37
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/StrUtil.java

@ -0,0 +1,37 @@
package com.epmet.commons.tools.utils;
import org.apache.commons.lang3.StringUtils;
/**
* desc:utf8mb4转为utf8
*
* @author: LiuJanJun
* @date: 2022/7/22 9:45 下午
* @version: 1.0
*/
public class StrUtil {
private static final int LAST_BMP = 0xFFFF;
public static String filterEmoji(String source) {
if (StringUtils.isBlank(source)) {
return source;
}
StringBuilder sb = new StringBuilder(source.length());
for (int i = 0; i < source.length(); i++) {
int codePoint = source.codePointAt(i);
if (codePoint < LAST_BMP) {
sb.appendCodePoint(codePoint);
} else {
i++;
}
}
return sb.toString();
}
public static void main(String[] args) {
String x = StrUtil.filterEmoji("😀😁😆😅🥹🥹😇😗😀😂666");
System.out.println(x);
}
}

4
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/DataSourceConstant.java

@ -17,4 +17,8 @@ public interface DataSourceConstant {
String EPMET_HEART="epmetHeart";
String EPMET_POINT = "epmetPoint";
String OPER_CUSTOMIZE="operCustomize";
/**
* 济南的中间数据库
*/
String JI_NAN = "jinan";
}

2
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/form/GridBaseInfoFormDTO.java

@ -28,7 +28,7 @@ public class GridBaseInfoFormDTO implements Serializable {
* 操作类型新增:add 修改删除:edit 初始化所有数据:all
*/
private String type;
private String delFlag;
public interface Grid extends CustomerClientShowGroup {}
}

7
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java

@ -20,6 +20,7 @@ package com.epmet.dto.user.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
@ -78,6 +79,12 @@ public class GridUserInfoDTO implements Serializable {
*/
private String sex;
/**
* 网格员信息编辑插入更新时间,县市区填写
*/
private Date updateTime;
}

1
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java

@ -118,6 +118,7 @@ public class DataReportingServiceImpl implements DataReportingService {
st.setUserType(dto.getWorkType().equals("fulltime") ? "01" : "02");
st.setPhonenumber(dto.getMobile());
st.setSex(0 == dto.getGender() ? "9" : dto.getGender().toString());
st.setUpdateTime(dto.getUpdatedTime());
}
});

6
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml

@ -158,8 +158,10 @@
*
FROM
customer_grid
WHERE del_flag = '0'
AND customer_id = #{customerId}
WHERE customer_id = #{customerId}
<if test="delFlag != null and delFlag !=''">
AND del_flag = #{delFlag}
</if>
and CODE is not null
and CODE !=''
and grid_name not like '%专属网格'

6
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml

@ -214,10 +214,12 @@
*
FROM
customer_agency
WHERE del_flag = '0'
AND customer_id = #{customerId}
WHERE customer_id = #{customerId}
and CODE is not null
and CODE !=''
<if test="delFlag != null and delFlag !=''">
AND del_flag = #{delFlag}
</if>
<if test="orgIdList != null and orgIdList.size() > 0">
<foreach collection="orgIdList" item="agencyId" open="AND id IN (" separator="," close=")">
#{agencyId}

2
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java

@ -21,7 +21,7 @@ import java.util.Set;
* @author yinzuomei@elink-cn.com
* @date 2020/6/4 13:37
*/
// @FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class, url = "localhost:8092")
//@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class, url = "localhost:8092")
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = GovOrgOpenFeignClientFallbackFactory.class)
public interface GovOrgOpenFeignClient {

11
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java

@ -201,7 +201,16 @@ public class AgencyController {
public Result removeAgency(@LoginUser TokenDto tokenDTO, @RequestBody RemoveAgencyFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
formDTO.setCustomerId(tokenDTO.getCustomerId());
return agencyService.removeAgency(formDTO);
Result result= agencyService.removeAgency(formDTO);
//2021-11-30 推送mq,数据同步到中介库 start
OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg();
mq.setCustomerId(tokenDTO.getCustomerId());
mq.setOrgId(formDTO.getAgencyId());
mq.setOrgType("agency");
mq.setType("agency_delete");
SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq);
//2021-11-30 end
return result;
}
/**

13
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java

@ -100,7 +100,18 @@ public class GridController {
@RequirePermission(requirePermission = RequirePermissionEnum.ORG_GRID_DELETE)
public Result deleteGrid(@LoginUser TokenDto tokenDto, @RequestBody DeleteGridFormDTO deleteGridFormDTO){
deleteGridFormDTO.setCustomerId(tokenDto.getCustomerId());
return customerGridService.deleteGrid(tokenDto,deleteGridFormDTO);
Result result =customerGridService.deleteGrid(tokenDto,deleteGridFormDTO);
//2021-10-18 推送mq,数据同步到中介库 start
if (result.success()) {
OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg();
mq.setCustomerId(tokenDto.getCustomerId());
mq.setOrgId(deleteGridFormDTO.getGridId());
mq.setOrgType("grid");
mq.setType("grid_delete");
SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq);
}
//2021-10-18 end
return result;
}
/**

4
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml

@ -240,7 +240,9 @@
set
grid_name = #{gridName},
manage_district = #{manageDistrict},
code = #{code},
<if test="code != null and code !=''">
code = #{code},
</if>
grid_type = #{gridType},
contacts = #{contacts},
mobile = #{mobile},

8
epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/constant/DataWorkerConstant.java

@ -0,0 +1,8 @@
package com.epmet.opendata.dto.constant;
public interface DataWorkerConstant {
String ALL = "all";
String CREATE = "create";
String CHANGE = "change";
String DELETE = "delete";
}

4
epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java

@ -30,7 +30,9 @@ public class ExractGridInfoPingYinFormDTO implements Serializable {
private List<String> orgIdList;
/**
* 操作类型新增:add 修改删除:edit 初始化所有数据:all
* 废弃这个不对操作类型新增:add 修改删除:edit 初始化所有数据:all
* 操作类型组织新增:agency_create 组织变更:agency_change 网格新增:grid_create 网格变更:grid_change 人员新增:staff_create 人员变更:staff_change
* 删除网格grid_delete删除组织agency_delete
*/
@NotBlank(message = "操作类型【新增:add 修改删除:edit 初始化所有数据:all】不能为空", groups = {GridInfo.class})
private String type;

22
epmet-module/open-data-worker/open-data-worker-server/pom.xml

@ -85,6 +85,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-commons-dynamic-datasource</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
@ -273,10 +279,18 @@
<!-- 数据库配置-->
<spring.datasource.druid.url>
<![CDATA[jdbc:mysql://172.20.92.220:3306/district_grid_record?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
<![CDATA[jdbc:mysql://172.22.76.30:3306/epmet_open_data?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</spring.datasource.druid.url>
<spring.datasource.druid.username>sync_gridinfo_pingyin</spring.datasource.druid.username>
<spring.datasource.druid.password>xvfuz2lz</spring.datasource.druid.password>
<spring.datasource.druid.username>epmet_open_data_user</spring.datasource.druid.username>
<spring.datasource.druid.password>EpmEtOpEndAtArw_)$</spring.datasource.druid.password>
<!--JN datanbase-->
<datasource.druid.jinan.url>
<![CDATA[jdbc:mysql://172.20.92.220:3306/district_grid_record?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</datasource.druid.jinan.url>
<datasource.druid.jinan.username>sync_gridinfo_pingyin</datasource.druid.jinan.username>
<datasource.druid.jinan.password>xvfuz2lz</datasource.druid.jinan.password>
<!-- redis配置 -->
<spring.redis.index>0</spring.redis.index>
<spring.redis.cluster.nodes>172.22.76.1:6379,172.22.76.20:6379,172.22.76.36:6379,172.22.76.1:6389,172.22.76.20:6389,172.22.76.36:6389</spring.redis.cluster.nodes>
@ -304,7 +318,7 @@
<thread.threadPool.rejected-execution-handler>callerRunsPolicy</thread.threadPool.rejected-execution-handler>
<!--flyway migration 数据库迁移工具-->
<spring.flyway.enabled>true</spring.flyway.enabled>
<spring.flyway.enabled>false</spring.flyway.enabled>
<!--生产钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c</dingTalk.robot.webHook>

17
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java

@ -21,9 +21,9 @@ package com.epmet.opendata.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.opendata.dto.form.HistoryDataSyncFormDTO;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.service.BaseGridDailyworkService;
import com.epmet.opendata.service.GridstaffWorkInfoPingyinService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -43,6 +43,8 @@ public class BaseGridDailyworkController {
@Autowired
private BaseGridDailyworkService baseGridDailyworkService;
@Autowired
private GridstaffWorkInfoPingyinService gridstaffWorkInfoPingyinService;
/**
* @Author sun
@ -64,20 +66,9 @@ public class BaseGridDailyworkController {
@PostMapping("syncV2")
public Result getStaffBaseInfoV2(@RequestBody(required = false) UpsertPatrolRecordForm formDTO) {
ValidatorUtils.validateEntity(formDTO, DefaultGroup.class);
baseGridDailyworkService.insertBaseGridWorkRecordV2(formDTO);
gridstaffWorkInfoPingyinService.insertBaseGridWorkRecordV2(formDTO);
return new Result();
}
/**
* Desc: 历史数据处理
* @param formDTO
* @author zxc
* @date 2022/7/22 13:24
*/
@PostMapping("historyDataSync")
public Result historyDataSync(@RequestBody HistoryDataSyncFormDTO formDTO){
baseGridDailyworkService.historyDataSync(formDTO);
return new Result();
}
}

6
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridInfoPingyinDao.java

@ -23,9 +23,11 @@ public interface GridInfoPingyinDao extends BaseDao<GridInfoPingyinEntity> {
List<GridInfoPingyinEntity> selectByGridCode(String gridCode);
int updateSomeCol(@Param("id") Long id,
int updateSomeCol(@Param("gridCode") String gridCode,
@Param("gridName")String gridName,
@Param("gridLevel")Integer gridLevel,
@Param("lng")BigDecimal lng,
@Param("lat")BigDecimal lat);
}
int deleteByCode(String gridCode);
}

2
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/GridstaffInfoPingyinDao.java

@ -14,4 +14,6 @@ import org.apache.ibatis.annotations.Mapper;
public interface GridstaffInfoPingyinDao extends BaseDao<GridstaffInfoPingyinEntity> {
void del();
void edit(GridstaffInfoPingyinEntity entity);
}

7
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/EventreportPingyinEntity.java

@ -1,8 +1,6 @@
package com.epmet.opendata.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -22,11 +20,6 @@ public class EventreportPingyinEntity {
private static final long serialVersionUID = 1L;
/**
* 数据库主键自增字段请勿指定
*/
private Long id;
/**
* 上报区县代码参照6位行政区划代码
*/

7
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridInfoPingyinEntity.java

@ -1,8 +1,6 @@
package com.epmet.opendata.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -22,11 +20,6 @@ public class GridInfoPingyinEntity {
private static final long serialVersionUID = 1L;
/**
* 数据库主键自增字段请勿指定
*/
private Long id;
/**
* 上报区县代码参照6位行政区划代码
*/

11
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/GridstaffInfoPingyinEntity.java

@ -1,8 +1,6 @@
package com.epmet.opendata.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -21,11 +19,6 @@ public class GridstaffInfoPingyinEntity {
private static final long serialVersionUID = 1L;
/**
* 数据库主键自增字段请勿指定
*/
private Long id;
/**
* 上报区县代码参照6位行政区划代码
*/
@ -97,7 +90,7 @@ public class GridstaffInfoPingyinEntity {
private String education;
/**
* 入职时间格式为YYYY-MM-DD
* 入职时间格式为YYYY-MM-DD
*/
private Date entryDate;
@ -107,7 +100,7 @@ public class GridstaffInfoPingyinEntity {
private String isLeave;
/**
* 离职时间格式为YYYY-MM-DD
* 离职时间格式为YYYY-MM-DD
*/
private Date leaveDate;

4
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java

@ -95,7 +95,9 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent
extractFormDto.setCustomerId(obj.getCustomerId());
extractFormDto.setType(obj.getType());
List<String> orgIdList = new ArrayList<>();
orgIdList.add(obj.getOrgId());
if(StringUtils.isNotBlank(obj.getOrgId())){
orgIdList.add(obj.getOrgId());
}
extractFormDto.setOrgIdList(orgIdList);
if ("agency".equals(obj.getOrgType())) {
SpringContextUtils.getBean(GridInfoPingyinService.class).exractAgency(extractFormDto);

4
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java

@ -15,7 +15,7 @@ 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.BaseGridDailyworkService;
import com.epmet.opendata.service.GridstaffWorkInfoPingyinService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
@ -99,7 +99,7 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
break;
case SystemMessageType.PATROL_ROUTINE_WORK_ADD:
// aBoolean = SpringContextUtils.getBean(BaseGridDailyworkService.class).insertBaseGridWorkRecord(patrolRecordForm);
aBoolean = SpringContextUtils.getBean(BaseGridDailyworkService.class).insertBaseGridWorkRecordV2(patrolRecordForm);
aBoolean = SpringContextUtils.getBean(GridstaffWorkInfoPingyinService.class).insertBaseGridWorkRecordV2(patrolRecordForm);
break;
default:
log.error("错误的消息类型:{}", tags);

4
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java

@ -12,6 +12,7 @@ import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
import com.epmet.opendata.service.ExUserService;
import com.epmet.opendata.service.GridstaffInfoPingyinService;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
@ -86,7 +87,8 @@ public class OpenDataStaffChangeEventListener implements MessageListenerConcurre
List<String> staffIdList = new ArrayList<>();
staffIdList.add(obj.getOrgId());
dto.setStaffIdList(staffIdList);
SpringContextUtils.getBean(ExUserService.class).getStaffBaseInfo(dto);
//SpringContextUtils.getBean(ExUserService.class).getStaffBaseInfo(dto);
SpringContextUtils.getBean(GridstaffInfoPingyinService.class).getStaffBaseInfo(dto);
} catch (RenException e) {
// 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试
logger.error("【开放数据事件监听器】-工作人员信息变更-初始化客户组织失败:".concat(ExceptionUtils.getErrorStackTrace(e)));

17
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseGridDailyworkService.java

@ -18,7 +18,6 @@
package com.epmet.opendata.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.opendata.dto.form.HistoryDataSyncFormDTO;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.entity.BaseGridDailyworkEntity;
@ -37,14 +36,6 @@ public interface BaseGridDailyworkService extends BaseService<BaseGridDailyworkE
*/
Boolean insertBaseGridWorkRecord(UpsertPatrolRecordForm patrolRecordForm);
/**
* Desc: 2022-07-22 新表 例行工作同步
* @param formDTO
* @author zxc
* @date 2022/7/22 11:16
*/
Boolean insertBaseGridWorkRecordV2(UpsertPatrolRecordForm formDTO);
/**
* desc重新加载数据
* @param customerId
@ -52,12 +43,4 @@ public interface BaseGridDailyworkService extends BaseService<BaseGridDailyworkE
*/
Boolean reloadPatrolData(String customerId);
/**
* Desc: 历史数据处理
* @param formDTO
* @author zxc
* @date 2022/7/22 13:24
*/
void historyDataSync(HistoryDataSyncFormDTO formDTO);
}

7
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffInfoPingyinService.java

@ -2,6 +2,7 @@ package com.epmet.opendata.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.opendata.dto.form.GridStaffInfoFormDTO;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
import com.epmet.opendata.entity.GridstaffInfoPingyinEntity;
import java.util.Map;
@ -15,4 +16,10 @@ import java.util.Map;
public interface GridstaffInfoPingyinService extends BaseService<GridstaffInfoPingyinEntity> {
void gridStaffInfo(GridStaffInfoFormDTO formDTO);
/**
* @Author sun
* @Description 网格员信息中间库同步
**/
void getStaffBaseInfo(StaffBaseInfoFormDTO formDTO);
}

12
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/GridstaffWorkInfoPingyinService.java

@ -1,6 +1,7 @@
package com.epmet.opendata.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity;
/**
@ -10,7 +11,12 @@ import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity;
* @since v1.0.0 2022-07-22
*/
public interface GridstaffWorkInfoPingyinService extends BaseService<GridstaffWorkInfoPingyinEntity> {
/**
* Desc: 2022-07-22 新表 例行工作同步
* @param formDTO
* @author zxc
* @date 2022/7/22 11:16
*/
Boolean insertBaseGridWorkRecordV2(UpsertPatrolRecordForm formDTO);
Integer delAllGridStaffWorkInfoPY();
}
}

155
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseGridDailyworkServiceImpl.java

@ -1,3 +1,20 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.service.impl;
import com.alibaba.fastjson.JSON;
@ -6,10 +23,6 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
@ -19,18 +32,15 @@ import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.opendata.dao.BaseGridDailyworkDao;
import com.epmet.opendata.dto.ExDeptDTO;
import com.epmet.opendata.dto.ExUserDTO;
import com.epmet.opendata.dto.form.HistoryDataSyncFormDTO;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.entity.BaseGridDailyworkEntity;
import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity;
import com.epmet.opendata.service.*;
import com.epmet.opendata.service.BaseGridDailyworkService;
import com.epmet.opendata.service.ExDeptService;
import com.epmet.opendata.service.ExUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
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;
@ -54,12 +64,6 @@ public class BaseGridDailyworkServiceImpl extends BaseServiceImpl<BaseGridDailyw
private ExDeptService exDeptService;
@Autowired
private ExUserService exUserService;
@Autowired
private GridstaffWorkInfoPingyinService pingYinService;
@Autowired
private GridstaffInfoPingyinService gridstaffInfoPingyinService;
@Autowired
private GridInfoPingyinService gridInfoPingyinService;
@Override
public Boolean insertBaseGridWorkRecord(UpsertPatrolRecordForm patrolRecordForm) {
@ -113,7 +117,6 @@ public class BaseGridDailyworkServiceImpl extends BaseServiceImpl<BaseGridDailyw
return null;
}
private Boolean insertRecordBatch(List<PatrolRoutineWorkResult> list, Map<String, ExDeptDTO> deptMap, Map<String, ExUserDTO> userMap){
List<BaseGridDailyworkEntity> insertList = new ArrayList<>();
list.forEach(o-> insertList.add(buildEntity(o, deptMap, userMap)));
@ -127,6 +130,7 @@ public class BaseGridDailyworkServiceImpl extends BaseServiceImpl<BaseGridDailyw
return true;
}
private BaseGridDailyworkEntity buildEntity(PatrolRoutineWorkResult record, Map<String, ExDeptDTO> deptMap, Map<String, ExUserDTO> userMap) {
BaseGridDailyworkEntity entity = new BaseGridDailyworkEntity();
entity.setCustomerId(record.getCustomerId());
@ -174,122 +178,9 @@ public class BaseGridDailyworkServiceImpl extends BaseServiceImpl<BaseGridDailyw
private PatrolQueryFormDTO buildParam(UpsertPatrolRecordForm patrolRecordForm) {
PatrolQueryFormDTO midPatrolFormDTO = new PatrolQueryFormDTO();
midPatrolFormDTO.setCustomerId(patrolRecordForm.getCustomerId());
midPatrolFormDTO.setId(StringUtils.isBlank(patrolRecordForm.getId()) ? "" : patrolRecordForm.getId());
midPatrolFormDTO.setId(patrolRecordForm.getId());
midPatrolFormDTO.setPageNo(patrolRecordForm.getPageNo());
midPatrolFormDTO.setPageSize(NumConstant.ONE_THOUSAND);
midPatrolFormDTO.setPageSize(patrolRecordForm.getPageSize());
return midPatrolFormDTO;
}
private GridstaffWorkInfoPingyinEntity buildNewEntity(PatrolRoutineWorkResult record) {
GridstaffWorkInfoPingyinEntity entity = ConvertUtils.sourceToTarget(record, GridstaffWorkInfoPingyinEntity.class);
entity.setQxBm("370124");
entity.setQxMc("平阴县");
entity.setHappenTime(DateUtils.parseDate(record.getHappenTime().concat(" 00:00:00"),DateUtils.DATE_PATTERN));
entity.setWorkResult(NumConstant.ONE == record.getIsNormal()? "Y":"N");
entity.setWorkType(record.getWorkTypeSecondCode());
entity.setRecoredInsertTime(record.getCreatedTime());
entity.setUpdateTime(record.getUpdatedTime());
entity.setId(null);
entity.setIsDel(NumConstant.ZERO_STR);
return entity;
}
@Override
public Boolean insertBaseGridWorkRecordV2(UpsertPatrolRecordForm patrolRecordForm) {
log.info("insertBaseGridWorkRecordV2 param:{}", JSON.toJSONString(patrolRecordForm));
ValidatorUtils.validateEntity(patrolRecordForm, AddGroup.class);
// 构建传参
PatrolQueryFormDTO midPatrolFormDTO = buildParam(patrolRecordForm);
if (StringUtils.isBlank(patrolRecordForm.getId())){
Integer row;
do {
row = pingYinService.delAllGridStaffWorkInfoPY();
}while (row == NumConstant.ONE_THOUSAND);
}
List<PatrolRoutineWorkResult> data;
do {
Result<List<PatrolRoutineWorkResult>> record = epmetUserOpenFeignClient.getPatrolRoutineWorkListV2(midPatrolFormDTO);
if (record == null || !record.success()) {
log.error("获取例行工作记录V2失败,param:{}", JSON.toJSONString(midPatrolFormDTO));
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode());
}
data = record.getData();
if (CollectionUtils.isEmpty(data)) {
//数据已被删除了
//暂时设置error 用于排错
log.error("获取例行工作记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
int effectRow = baseDao.deleteById(patrolRecordForm.getId());
log.warn("del effectRow:{}", effectRow);
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode());
}
data.forEach(d -> {
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(d.getGridId());
if (null == gridInfo){
throw new EpmetException("未查询到网格信息:"+ d.getGridId());
}
d.setGridCode(gridInfo.getCode());
d.setGridName(gridInfo.getGridName());
});
insertNewRecordBatch(data);
}while (data.size() == NumConstant.ONE_THOUSAND);
return true;
}
/**
* Desc: 历史数据处理
* @param formDTO
* @author zxc
* @date 2022/7/22 13:24
*/
@Override
public void historyDataSync(HistoryDataSyncFormDTO formDTO) {
Integer pageSize = NumConstant.ONE_THOUSAND;
Integer pageNo = NumConstant.ONE;
List<BaseGridDailyworkEntity> baseGridDailyWork;
do {
baseGridDailyWork = baseDao.getBaseGridDailyWork(formDTO.getCustomerId(),(pageNo - NumConstant.ONE) * pageSize);
List<GridstaffWorkInfoPingyinEntity> newEntities = ConvertUtils.sourceToTarget(baseGridDailyWork, GridstaffWorkInfoPingyinEntity.class);
newEntities.forEach(n -> {
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(n.getGridId());
if (null == gridInfo){
throw new EpmetException("未查询到网格信息:"+ n.getGridId());
}
n.setGridCode(gridInfo.getCode());
n.setHappenTime(DateUtils.parseDate(n.getHappenTimeString(),DateUtils.DATE_PATTERN));
n.setIsDel(NumConstant.ZERO_STR);
});
insertGridStaffWorkInfoPY(newEntities);
pageNo++;
}while (baseGridDailyWork.size() == NumConstant.ONE_THOUSAND);
}
/**
* Desc: 数据存入
* @param newEntities
* @author zxc
* @date 2022/7/22 14:17
*/
@Transactional(rollbackFor = Exception.class)
public void insertGridStaffWorkInfoPY(List<GridstaffWorkInfoPingyinEntity> newEntities){
if (!CollectionUtils.isEmpty(newEntities)){
List<List<GridstaffWorkInfoPingyinEntity>> partition = ListUtils.partition(newEntities, NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
pingYinService.insertBatch(p);
});
}
}
private Boolean insertNewRecordBatch(List<PatrolRoutineWorkResult> list){
List<GridstaffWorkInfoPingyinEntity> insertList = new ArrayList<>();
list.forEach(o-> insertList.add(buildNewEntity(o)));
//insert
if (CollectionUtils.isEmpty(insertList)){
log.error("新构建要插入的数据为空,param:{}", JSON.toJSONString(list));
return false;
}
insertGridStaffWorkInfoPY(insertList);
// pingYinService.saveOrUpdateBatch(insertList, NumConstant.ONE_HUNDRED);
return true;
}
}

36
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/EventreportPingyinServiceImpl.java

@ -1,10 +1,13 @@
package com.epmet.opendata.service.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.exception.RenException;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.StrUtil;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dto.basereport.form.EventInfoFormDTO;
import com.epmet.dto.basereport.result.EventInfoResultDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
@ -31,6 +34,7 @@ import java.util.stream.Collectors;
*/
@Slf4j
@Service
@DataSource(DataSourceConstant.JI_NAN)
public class EventreportPingyinServiceImpl extends BaseServiceImpl<EventreportPingyinDao, EventreportPingyinEntity> implements EventreportPingyinService {
@Resource
private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient;
@ -83,7 +87,9 @@ public class EventreportPingyinServiceImpl extends BaseServiceImpl<EventreportPi
entity.setGridCode(item.getOrgCode());
entity.setGridName(item.getOrgName());
entity.setEventCode(("py_").concat(item.getId()));
entity.setEventName(item.getEventName());
String eventName = StrUtil.filterEmoji(item.getEventName());
entity.setEventName(eventName);
entity.setEventCategory(item.getEventCategory());
entity.setGridUserCardid("");
entity.setGridUserName("");
@ -107,17 +113,15 @@ public class EventreportPingyinServiceImpl extends BaseServiceImpl<EventreportPi
}
}
}
if (StringUtils.isBlank(entity.getGridUserCardid())) {
log.warn("项目" + item.getId() + "的网格员没有身份证ID,舍弃该条数据");
}
entity.setReportTime(item.getReportTime());
entity.setHappenTime(item.getHappenDate());
entity.setHappenPlace(item.getHappenPlace());
String eventDescription = item.getEventDescription();
//如果不为空 长度控制1000以内
if (StringUtils.isNotBlank(eventDescription) && eventDescription.length() > NumConstant.ONE_THOUSAND) {
eventDescription = eventDescription.substring(NumConstant.ZERO, NumConstant.ONE_THOUSAND);
//如果不为空 长度控制3000以内
if (StringUtils.isNotBlank(eventDescription) && eventDescription.length() > NumConstant.THREE_THOUSAND) {
eventDescription = eventDescription.substring(NumConstant.ZERO, NumConstant.THREE_THOUSAND);
}
eventDescription = StrUtil.filterEmoji(eventDescription);
entity.setEventDescription(eventDescription);
entity.setWaysOfResolving(item.getWaysOfResolving());
//业务不确定
@ -138,8 +142,17 @@ public class EventreportPingyinServiceImpl extends BaseServiceImpl<EventreportPi
}
return entity;
}).collect(Collectors.toList());
//过滤掉身份证为空的数据
entityList = entityList.stream().filter(item -> StringUtils.isNotBlank(item.getGridUserCardid())).collect(Collectors.toList());
log.info("数据拼装结果" + entityList);
//过滤掉必填字段为空的数据
entityList = entityList.stream().filter(item ->
StringUtils.isNotBlank(item.getGridCode()) && StringUtils.isNotBlank(item.getGridName()) &&
StringUtils.isNotBlank(item.getEventCategory()) && StringUtils.isNotBlank(item.getGridUserName()) &&
StringUtils.isNotBlank(item.getGridUserCardid()) && null != item.getReportTime() &&
null != item.getHappenTime() && StringUtils.isNotBlank(item.getHappenPlace()) &&
StringUtils.isNotBlank(item.getGridUserCardid()) && StringUtils.isNotBlank(item.getEventDescription()) &&
StringUtils.isNotBlank(item.getWaysOfResolving()) && null != item.getLng() && null != item.getLat()
).collect(Collectors.toList());
log.info("数据过滤结果" + entityList.size());
if (NumConstant.ZERO_STR.equals(initFlag)) {
entityList.forEach(entity -> {
LambdaQueryWrapper<EventreportPingyinEntity> wrapper = new LambdaQueryWrapper<>();
@ -148,8 +161,7 @@ public class EventreportPingyinServiceImpl extends BaseServiceImpl<EventreportPi
if (null == event) {
baseDao.insert(entity);
} else {
entity.setId(event.getId());
baseDao.updateById(entity);
baseDao.update(entity, wrapper);
}
});
} else {
@ -158,4 +170,4 @@ public class EventreportPingyinServiceImpl extends BaseServiceImpl<EventreportPi
}
}
}

68
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java

@ -1,20 +1,25 @@
package com.epmet.opendata.service.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.DataSourceConstant;
import com.epmet.constant.IndexCalConstant;
import com.epmet.dto.org.result.CustomerAgencyDTO;
import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import com.epmet.opendata.dao.GridInfoPingyinDao;
import com.epmet.opendata.dto.constant.DataWorkerConstant;
import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO;
import com.epmet.opendata.entity.GridInfoPingyinEntity;
import com.epmet.opendata.service.GridInfoPingyinService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -30,6 +35,7 @@ import java.util.List;
* @since v1.0.0 2022-07-22
*/
@Service
@DataSource(DataSourceConstant.JI_NAN)
public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinDao, GridInfoPingyinEntity> implements GridInfoPingyinService {
@Autowired
private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient;
@ -44,6 +50,15 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
public void exractAgency(ExractGridInfoPingYinFormDTO formDTO) {
// 1.查询组织基础信息,customer_agency.code为空的不抽取
com.epmet.dto.org.form.GridBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, com.epmet.dto.org.form.GridBaseInfoFormDTO.class);
if (DataWorkerConstant.ALL.equals(formDTO.getType())) {
formDTO1.setDelFlag("0");
} else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) {
formDTO1.setDelFlag(NumConstant.ZERO_STR);
} else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) {
formDTO1.setDelFlag(NumConstant.ZERO_STR);
} else if (formDTO.getType().contains(DataWorkerConstant.DELETE)) {
formDTO1.setDelFlag(NumConstant.ONE_STR);
}
Result<List<CustomerAgencyDTO>> result = dataStatisticalOpenFeignClient.getAgencyBaseInfo(formDTO1);
if (!result.success()) {
throw new RenException(result.getInternalMsg());
@ -59,11 +74,11 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
entity.setQxMc("平阴县");
entity.setGridCode(ag.getCode());
entity.setGridName(ag.getOrganizationName());
if ("district".equals(ag.getLevel())) {
if (Constant.DISTRICT.equals(ag.getLevel())) {
entity.setGridLevel(3);
} else if ("street".equals(ag.getLevel())) {
} else if (Constant.STREET.equals(ag.getLevel())) {
entity.setGridLevel(4);
} else if ("community".equals(ag.getLevel())) {
} else if (Constant.COMMUNITY.equals(ag.getLevel())) {
entity.setGridLevel(6);
}
entity.setLat(new BigDecimal(ag.getLatitude()));
@ -71,7 +86,7 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
gridInfoList.add(entity);
});
// 3、初始化传all;新增或者编辑
if ("all".equals(formDTO.getType())) {
if (DataWorkerConstant.ALL.equals(formDTO.getType())) {
// 全删,全增
baseDao.deleteAllAgencyData();
// 一次100
@ -80,11 +95,11 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
this.insertBatch(list);
});
} else if ("add".equals(formDTO.getType())) {
} else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) {
// 单独新增组织
this.insertBatch(gridInfoList);
} else if ("edit".equals(formDTO.getType())) {
} else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) {
// 修改组织时,先根据code查询,如果有数据,更新
for (GridInfoPingyinEntity entity : gridInfoList) {
@ -94,7 +109,7 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
// 更新网格名称、网格层级、网格中心点的经度,网格中心点纬度
for (GridInfoPingyinEntity oigin : orginList) {
baseDao.updateSomeCol(oigin.getId(), entity.getGridName(), entity.getGridLevel(), entity.getLng(), entity.getLat());
baseDao.updateSomeCol(oigin.getGridCode(), entity.getGridName(), entity.getGridLevel(), entity.getLng(), entity.getLat());
}
} else {
@ -102,6 +117,16 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
baseDao.insert(entity);
}
}
}else if(formDTO.getType().contains(DataWorkerConstant.DELETE)){
// 要删除的组织id
for (GridInfoPingyinEntity entity : gridInfoList) {
List<GridInfoPingyinEntity> orginList = baseDao.selectByGridCode(entity.getGridCode());
if (CollectionUtils.isNotEmpty(orginList)) {
for (GridInfoPingyinEntity oigin : orginList) {
baseDao.deleteByCode(oigin.getGridCode());
}
}
}
}
}
@ -115,6 +140,15 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
public void exractGrid(ExractGridInfoPingYinFormDTO formDTO) {
// 1.查询网格基础信息
com.epmet.dto.org.form.GridBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, com.epmet.dto.org.form.GridBaseInfoFormDTO.class);
if (StringUtils.isBlank(formDTO.getType())||DataWorkerConstant.ALL.equals(formDTO.getType())) {
formDTO1.setDelFlag("0");
} else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) {
formDTO1.setDelFlag(NumConstant.ZERO_STR);
} else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) {
formDTO1.setDelFlag(NumConstant.ZERO_STR);
} else if (formDTO.getType().contains(DataWorkerConstant.DELETE)) {
formDTO1.setDelFlag(NumConstant.ONE_STR);
}
Result<List<CustomerGridDTO>> result = dataStatisticalOpenFeignClient.getGridBaseInfo(formDTO1);
if (!result.success()) {
throw new RenException(result.getInternalMsg());
@ -145,7 +179,7 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
gridInfoList.add(entity);
});
// 3、初始化传all;新增或者编辑
if ("all".equals(formDTO.getType())) {
if (DataWorkerConstant.ALL.equals(formDTO.getType())) {
// 全删,全增
baseDao.deleteAllGridData();
// 一次100
@ -153,11 +187,11 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
partition.forEach(list -> {
this.insertBatch(list);
});
} else if ("add".equals(formDTO.getType())) {
} else if (formDTO.getType().contains(DataWorkerConstant.CREATE)) {
// 单独新增组织
this.insertBatch(gridInfoList);
} else if ("edit".equals(formDTO.getType())) {
} else if (formDTO.getType().contains(DataWorkerConstant.CHANGE)) {
// 修改组织时,先根据code查询,如果有数据,更新
for (GridInfoPingyinEntity entity : gridInfoList) {
@ -167,7 +201,7 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
// 更新网格名称、网格层级、网格中心点的经度,网格中心点纬度
for (GridInfoPingyinEntity oigin : orginList) {
baseDao.updateSomeCol(oigin.getId(), entity.getGridName(), entity.getGridLevel(), entity.getLng(), entity.getLat());
baseDao.updateSomeCol(oigin.getGridCode(), entity.getGridName(), entity.getGridLevel(), entity.getLng(), entity.getLat());
}
} else {
@ -175,9 +209,19 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl<GridInfoPingyinD
baseDao.insert(entity);
}
}
}else if(formDTO.getType().contains(DataWorkerConstant.DELETE)){
// 要删除的网格id
for (GridInfoPingyinEntity entity : gridInfoList) {
List<GridInfoPingyinEntity> orginList = baseDao.selectByGridCode(entity.getGridCode());
if (CollectionUtils.isNotEmpty(orginList)) {
for (GridInfoPingyinEntity oigin : orginList) {
baseDao.deleteByCode(oigin.getGridCode());
}
}
}
}
}
}
}

46
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffInfoPingyinServiceImpl.java

@ -1,17 +1,22 @@
package com.epmet.opendata.service.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dto.form.CustomerGridStaffListFormDTO;
import com.epmet.dto.form.GridStaffUploadtFormDTO;
import com.epmet.dto.result.CustomerGridStaffListResultDTO;
import com.epmet.dto.result.GridStaffUploadResultDTO;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.opendata.dao.GridstaffInfoPingyinDao;
import com.epmet.opendata.dto.form.GridStaffInfoFormDTO;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
import com.epmet.opendata.entity.GridstaffInfoPingyinEntity;
import com.epmet.opendata.service.GridstaffInfoPingyinService;
import lombok.extern.slf4j.Slf4j;
@ -33,12 +38,15 @@ import java.util.stream.Collectors;
*/
@Service
@Slf4j
@DataSource(DataSourceConstant.JI_NAN)
public class GridstaffInfoPingyinServiceImpl extends BaseServiceImpl<GridstaffInfoPingyinDao, GridstaffInfoPingyinEntity> implements GridstaffInfoPingyinService {
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient;
@Override
@ -73,6 +81,7 @@ public class GridstaffInfoPingyinServiceImpl extends BaseServiceImpl<GridstaffIn
entity.setQxMc("平阴县");
entity.setGridCode(gs.getGridCode());
entity.setGridName(gs.getGridName());
entity.setIsLeave("N");
entityList.add(entity);
}
}
@ -88,4 +97,39 @@ public class GridstaffInfoPingyinServiceImpl extends BaseServiceImpl<GridstaffIn
}
}
/**
* @Author sun
* @Description 网格员信息中间库同步
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void getStaffBaseInfo(StaffBaseInfoFormDTO formDTO) {
//1.查询网格基础信息
com.epmet.dto.user.form.StaffBaseInfoFormDTO formDTO1 = ConvertUtils.sourceToTarget(formDTO, com.epmet.dto.user.form.StaffBaseInfoFormDTO.class);
Result<List<GridUserInfoDTO>> result = dataStatisticalOpenFeignClient.getStaffBaseInfo(formDTO1);
if (!result.success()) {
throw new RenException(result.getInternalMsg());
}
//2.中间库新增/修改数据【基本一个人一条数据,程序按批量处理】
result.getData().forEach(r -> {
GridstaffInfoPingyinEntity entity = ConvertUtils.sourceToTarget(r, GridstaffInfoPingyinEntity.class);
entity.setQxBm("370124");
entity.setQxMc("平阴县");
entity.setGridCode(r.getCode());
entity.setGridName(r.getGridName());
entity.setUserType("01");
entity.setIsLeave("N");
entity.setGridUserId(r.getStaffId());
if (!"staff_create".equals(formDTO.getType())) {
baseDao.edit(entity);
}else {
insert(entity);
}
});
}
}

137
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridstaffWorkInfoPingyinServiceImpl.java

@ -1,10 +1,38 @@
package com.epmet.opendata.service.impl;
import com.alibaba.fastjson.JSON;
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.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.StrUtil;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.opendata.dao.GridstaffWorkInfoPingyinDao;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity;
import com.epmet.opendata.service.GridstaffWorkInfoPingyinService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
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.List;
/**
* 平阴区网格员例行工作信息
@ -12,12 +40,115 @@ import org.springframework.stereotype.Service;
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-22
*/
@Slf4j
@Service
@DataSource(DataSourceConstant.JI_NAN)
public class GridstaffWorkInfoPingyinServiceImpl extends BaseServiceImpl<GridstaffWorkInfoPingyinDao, GridstaffWorkInfoPingyinEntity> implements GridstaffWorkInfoPingyinService {
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Override
public Integer delAllGridStaffWorkInfoPY() {
return baseDao.delAllGridStaffWorkInfoPY();
public Boolean insertBaseGridWorkRecordV2(UpsertPatrolRecordForm patrolRecordForm) {
log.info("insertBaseGridWorkRecordV2 param:{}", JSON.toJSONString(patrolRecordForm));
ValidatorUtils.validateEntity(patrolRecordForm, AddGroup.class);
// 构建传参
PatrolQueryFormDTO midPatrolFormDTO = buildParam(patrolRecordForm);
if (StringUtils.isBlank(patrolRecordForm.getId())) {
Integer row;
do {
row = baseDao.delAllGridStaffWorkInfoPY();
} while (row == NumConstant.ONE_THOUSAND);
}
List<PatrolRoutineWorkResult> data;
do {
Result<List<PatrolRoutineWorkResult>> record = epmetUserOpenFeignClient.getPatrolRoutineWorkListV2(midPatrolFormDTO);
midPatrolFormDTO.setPageNo(midPatrolFormDTO.getPageNo() + 1);
if (record == null || !record.success()) {
log.error("获取例行工作记录V2失败,param:{}", JSON.toJSONString(midPatrolFormDTO));
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode());
}
data = record.getData();
if (CollectionUtils.isEmpty(data)) {
//数据已被删除了
//暂时设置error 用于排错
log.error("获取例行工作记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
int effectRow = baseDao.deleteById(patrolRecordForm.getId());
log.warn("del effectRow:{}", effectRow);
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode());
}
data.forEach(d -> {
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(d.getGridId());
if (null == gridInfo) {
log.warn("未查询到网格信息:" + d.getGridId());
return;
}
String s = StrUtil.filterEmoji(d.getWorkContent());
d.setWorkContent(s);
d.setGridCode(gridInfo.getCode());
d.setGridName(gridInfo.getGridName());
});
insertNewRecordBatch(data);
} while (data.size() == NumConstant.ONE_THOUSAND);
return true;
}
/**
* Desc: 数据存入
*
* @param newEntities
* @author zxc
* @date 2022/7/22 14:17
*/
@Transactional(rollbackFor = Exception.class)
public void insertGridStaffWorkInfoPY(List<GridstaffWorkInfoPingyinEntity> newEntities) {
if (!CollectionUtils.isEmpty(newEntities)) {
List<List<GridstaffWorkInfoPingyinEntity>> partition = ListUtils.partition(newEntities, NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
this.insertBatch(p);
});
}
}
private Boolean insertNewRecordBatch(List<PatrolRoutineWorkResult> list) {
List<GridstaffWorkInfoPingyinEntity> insertList = new ArrayList<>();
list.forEach(o -> {
if (StringUtils.isBlank(o.getGridCode())) {
return;
}
insertList.add(buildNewEntity(o));
});
//insert
if (CollectionUtils.isEmpty(insertList)) {
log.error("新构建要插入的数据为空,param:{}", JSON.toJSONString(list));
return false;
}
insertGridStaffWorkInfoPY(insertList);
return true;
}
private GridstaffWorkInfoPingyinEntity buildNewEntity(PatrolRoutineWorkResult record) {
GridstaffWorkInfoPingyinEntity entity = ConvertUtils.sourceToTarget(record, GridstaffWorkInfoPingyinEntity.class);
entity.setQxBm("370124");
entity.setQxMc("平阴县");
entity.setHappenTime(DateUtils.parseDate(record.getHappenTime().concat(" 00:00:00"), DateUtils.DATE_PATTERN));
entity.setWorkResult(NumConstant.ONE == record.getIsNormal() ? "Y" : "N");
entity.setWorkType(record.getWorkTypeSecondCode());
entity.setRecoredInsertTime(record.getCreatedTime());
entity.setUpdateTime(record.getUpdatedTime());
entity.setId(null);
entity.setIsDel(NumConstant.ZERO_STR);
return entity;
}
@NotNull
private PatrolQueryFormDTO buildParam(UpsertPatrolRecordForm patrolRecordForm) {
PatrolQueryFormDTO midPatrolFormDTO = new PatrolQueryFormDTO();
midPatrolFormDTO.setCustomerId(patrolRecordForm.getCustomerId());
midPatrolFormDTO.setId(StringUtils.isBlank(patrolRecordForm.getId()) ? "" : patrolRecordForm.getId());
midPatrolFormDTO.setPageNo(patrolRecordForm.getPageNo());
midPatrolFormDTO.setPageSize(NumConstant.ONE_THOUSAND);
return midPatrolFormDTO;
}
}
}

8
epmet-module/open-data-worker/open-data-worker-server/src/main/resources/bootstrap.yml

@ -72,6 +72,14 @@ spring:
baseline-on-migrate: true
baseline-version: 0
dynamic:
datasource:
jinan:
driver-class-name: com.mysql.cj.jdbc.Driver
url: @datasource.druid.jinan.url@
username: @datasource.druid.jinan.username@
password: @datasource.druid.jinan.password@
management:
endpoints:

11
epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridInfoPingyinDao.xml

@ -33,7 +33,7 @@
<select id="selectByGridCode" parameterType="java.lang.String" resultType="com.epmet.opendata.entity.GridInfoPingyinEntity">
select g.* from grid_info_pingyin g
where g.grid_code = #{gridCode}
where g.grid_code = #{gridCode} and is_del = 'N'
</select>
<update id="updateSomeCol" parameterType="map">
@ -42,6 +42,11 @@
grid_level = #{gridLevel},
lng = #{lng},
lat = #{lat}
where id = #{id}
where grid_code = #{gridCode} and is_del = 'N'
</update>
</mapper>
<update id="deleteByCode">
update grid_info_pingyin set is_del = 'Y'
where grid_code = #{gridCode}
</update>
</mapper>

12
epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/GridstaffInfoPingyinDao.xml

@ -3,6 +3,18 @@
<mapper namespace="com.epmet.opendata.dao.GridstaffInfoPingyinDao">
<update id="edit">
UPDATE gridstaff_info_pingyin
SET grid_name = #{gridName},
nick_name = #{nickName},
card_num = #{cardNum},
phonenumber = #{phonenumber},
sex = #{sex}
WHERE
grid_user_id = #{gridUserId}
AND grid_code = #{gridCode}
</update>
<delete id="del">
delete from gridstaff_info_pingyin
</delete>

13
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridStaffUploadResultDTO.java

@ -1,9 +1,8 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.util.List;
import java.util.Date;
/**
* @description: 网格工作人员数据上报-查询客户网格下有效工作人员信息数据
@ -36,4 +35,14 @@ public class GridStaffUploadResultDTO {
*/
private String sex;
/**
* 网格员类型符合标准10.3
*/
private String userType;
/**
* 网格员信息编辑插入更新时间,县市区填写
*/
private Date updateTime;
}

4
epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml

@ -462,7 +462,9 @@
real_name nickName,
id_card cardNum,
gender sex,
mobile phonenumber
mobile phonenumber,
IF(work_type = 'fulltime', '01', '02') userType,
updated_time updateTime
FROM
customer_staff
WHERE

Loading…
Cancel
Save