Browse Source

Merge remote-tracking branch 'origin_elink/dev_1024'

dev
yinzuomei 3 years ago
parent
commit
ec267d4774
  1. 13
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/OrgData.java
  2. 5
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/GetListSocietyOrgFormDTO.java
  3. 3
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java
  4. 3
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActLiveRecServiceImpl.java
  5. 5
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcSocietyOrgServiceImpl.java
  6. 41
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/yantai/DataSyncUserAndOrgServiceImpl.java
  7. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncOrgDataDao.java
  8. 3
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncUserDataDao.java
  9. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DataSyncOrgDataService.java
  10. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DataSyncUserDataService.java
  11. 6
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DataSyncOrgDataServiceImpl.java
  12. 5
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DataSyncUserDataServiceImpl.java
  13. 4
      epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.18__yt_alter_sync.sql
  14. 6
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/yantai/DataSyncOrgDataDao.xml
  15. 8
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/yantai/DataSyncUserDataDao.xml
  16. 144
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcEnterpriseChangeRecordDTO.java
  17. 30
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseListFormDTO.java
  18. 23
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/NeighborHoodOptionFormDTO.java
  19. 46
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseChangeRecordController.java
  20. 28
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java
  21. 16
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcNeighborHoodController.java
  22. 29
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterpriseChangeRecordDao.java
  23. 4
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java
  24. 114
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcEnterpriseChangeRecordEntity.java
  25. 84
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcEnterpriseChangeRecordExcel.java
  26. 30
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcEnterpriseChangeRecordRedis.java
  27. 78
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseChangeRecordService.java
  28. 13
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java
  29. 8
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java
  30. 98
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseChangeRecordServiceImpl.java
  31. 191
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java
  32. 24
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java
  33. 52
      epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.44__add_enterprise_change_record.sql
  34. 45
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterpriseChangeRecordDao.xml
  35. 6
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
  36. 21
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml
  37. 92
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/UpdateArticleFormDTO.java
  38. 4
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/constant/ArticleConstant.java
  39. 39
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java
  40. 8
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleContentDao.java
  41. 1
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleCoverDao.java
  42. 2
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticlePublishRangeDao.java
  43. 1
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/ArticleOperateRecordEntity.java
  44. 8
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleOperateRecordService.java
  45. 21
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java
  46. 2
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleVisitRecordService.java
  47. 21
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleOperateRecordServiceImpl.java
  48. 195
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  49. 12
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleVisitRecordServiceImpl.java
  50. 10
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleContentDao.xml
  51. 6
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleCoverDao.xml
  52. 8
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticlePublishRangeDao.xml
  53. 2
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFootBarFormDTO.java
  54. 3
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  55. 6
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartymemberStyleDTO.java
  56. 1
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java
  57. 3
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java
  58. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNatRelationDTO.java
  59. 6
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EpidemicPreventionFormDTO.java
  60. 11
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/yqfk/IcNatCompareRecordPageFormDTO.java
  61. 6
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java
  62. 26
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RelationAndNatResultDTO.java
  63. 19
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiAndLocalResiResultDTO.java
  64. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicPreventionController.java
  65. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatCompareRecordController.java
  66. 13
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java
  67. 20
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java
  68. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  69. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNatRelationEntity.java
  70. 34
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/EpidemicPreventionExportExcel.java
  71. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatExcelImportListener.java
  72. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java
  73. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
  74. 1
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java
  75. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncRecordDisabilityServiceImpl.java
  76. 81
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java
  77. 66
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  78. 1
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.78__ic_nat_add_local.sql
  79. 2
      epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncRecordDisabilityDao.xml
  80. 9
      epmet-user/epmet-user-server/src/main/resources/mapper/IcNatCompareRecordDao.xml
  81. 49
      epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml
  82. 33
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

13
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/api/yt/OrgData.java

@ -74,6 +74,19 @@ public class OrgData implements Serializable {
*/
private String unifiedSocialCreditId;
/**
* 上级ID
*/
private String pid;
/**
* orgId全路径
*/
private String pids;
/**
* 上级组织名
*/
private String parentOrgName;
}

5
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/GetListSocietyOrgFormDTO.java

@ -57,4 +57,9 @@ public class GetListSocietyOrgFormDTO implements Serializable {
//token中userId所属组织Id
private String agencyId;
/**
* resi:居民端
*/
private String app;
}

3
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java

@ -142,6 +142,7 @@ public class IcSocietyOrgController implements ResultDataResolver {
public Result<GetListSocietyOrgResultDTO> getList(@LoginUser TokenDto tokenDto, @RequestBody GetListSocietyOrgFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setStaffId(tokenDto.getUserId());
formDTO.setApp(tokenDto.getApp());
return new Result<GetListSocietyOrgResultDTO>().ok(societyOrgService.getList(formDTO));
}
@ -171,7 +172,7 @@ public class IcSocietyOrgController implements ResultDataResolver {
// formDTO.setIsPage(false);
// GetListSocietyOrgResultDTO list = societyOrgService.getList(formDTO);
// ExcelUtils.exportExcelToTarget(response, null, list.getList(), IcSocietyOrgExportExcel.class);
formDTO.setApp(tokenDto.getApp());
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setStaffId(tokenDto.getUserId());
formDTO.setIsPage(false);

3
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActLiveRecServiceImpl.java

@ -24,6 +24,7 @@ import com.epmet.commons.tools.constant.MqConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.scan.param.ImgScanParamDTO;
import com.epmet.commons.tools.scan.param.ImgTaskDTO;
@ -95,7 +96,7 @@ public class ActLiveRecServiceImpl extends BaseServiceImpl<ActLiveRecDao, ActLiv
public Result<ResiActLiveRecResultDTO> liveRecList(TokenDto tokenDto,Map<String, String> map) {
if (!map.containsKey("actId") || StringUtils.isEmpty(map.get("actId"))) {
logger.warn("传参中没有actId,或者actId为空,userId:" + tokenDto.getUserId() + "客户id:" + tokenDto.getCustomerId());
throw new RenException("actId不能为空");
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"actId不能为空","活动id不能为空");
}
// 数据汇总
ResiActLiveRecResultDTO resultDto = new ResiActLiveRecResultDTO();

5
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcSocietyOrgServiceImpl.java

@ -19,6 +19,7 @@ package com.epmet.service.impl;
import com.alibaba.excel.EasyExcel;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
@ -148,10 +149,10 @@ public class IcSocietyOrgServiceImpl extends BaseServiceImpl<IcSocietyOrgDao, Ic
@Override
public GetListSocietyOrgResultDTO getList(GetListSocietyOrgFormDTO formDTO) {
GetListSocietyOrgResultDTO resultDTO = new GetListSocietyOrgResultDTO();
CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId());
//2022.1.7 应产品要求 当前组织只能看到自己组织添加的社会组织数据,不允许看其他下级的
//formDTO.setPids(staffInfoCache.getAgencyPIds());
if(StringUtils.isBlank(formDTO.getAgencyId())){
if (StringUtils.isBlank(formDTO.getAgencyId()) && !AppClientConstant.APP_RESI.equals(formDTO.getApp())) {
CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId());
formDTO.setAgencyId(staffInfoCache.getAgencyId());
}
//1.根据查询条件分页查询社会组织数据

41
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/yantai/DataSyncUserAndOrgServiceImpl.java

@ -63,6 +63,11 @@ public class DataSyncUserAndOrgServiceImpl implements DataSyncUserAndOrgService
@Override
public Boolean yanTaiSyncUser(String organizationId) {
String customerId = YT_CUSTOMER_ID;
// 先删除 旧数据
Integer delSize = NumConstant.ZERO;
do {
delSize = dataSyncUserDataService.deleteByCustomerId(customerId);
}while (null != delSize && delSize == NumConstant.ONE_THOUSAND);
// 缓存初始化staffs
epmetUserOpenFeignClient.allCustomerStaffInCache(customerId);
Integer no = NumConstant.ONE;
@ -106,19 +111,34 @@ public class DataSyncUserAndOrgServiceImpl implements DataSyncUserAndOrgService
@Override
public Boolean yanTaiSyncOrg(String organizationId) {
// 先删除 旧数据
Integer delSize = NumConstant.ZERO;
do {
delSize = dataSyncOrgDataService.deleteByCustomerId(YT_CUSTOMER_ID);
}while (null != delSize && delSize == NumConstant.ONE_THOUSAND);
List<OrgData> needInsert = new ArrayList<>();
// 根组织
OrgData rootOrg = YantaiApi.getOuInfoByOuGuid(organizationId);
if (null == rootOrg){
log.error("未查询到根组织:"+organizationId);
return true;
}
rootOrg.setPid("");
rootOrg.setPids("");
rootOrg.setNameOfOrganization("");
needInsert.add(rootOrg);
List<OrgData> data = YantaiApi.getChildOuInfoByGuid(organizationId);
if (CollectionUtils.isNotEmpty(data)){
List<OrgData> needInsert = new ArrayList<>();
data.forEach(d -> {
d.setPid(organizationId);
d.setPids(organizationId.concat(":").concat(d.getOrganizationId()));
d.setNameOfOrganization(rootOrg.getNameOfOrganization());
needInsert.add(d);
disposeYanTaiSyncOrg(d.getOrganizationId(),needInsert);
disposeYanTaiSyncOrg(d,needInsert);
});
List<DataSyncOrgDataEntity> entities = needInsert.stream().map(m -> {
DataSyncOrgDataEntity entity = ConvertUtils.sourceToTarget(m, DataSyncOrgDataEntity.class);
entity.setCustomerId(YT_CUSTOMER_ID);
entity.setPid("");
entity.setParentOrgName("");
entity.setPids("");
return entity;
}).collect(Collectors.toList());
dataSyncOrgDataService.insertBatch(entities, NumConstant.ONE_HUNDRED);
@ -126,12 +146,15 @@ public class DataSyncUserAndOrgServiceImpl implements DataSyncUserAndOrgService
return false;
}
public void disposeYanTaiSyncOrg(String organizationId, List<OrgData> needInsert){
List<OrgData> data = YantaiApi.getChildOuInfoByGuid(organizationId);
public void disposeYanTaiSyncOrg(OrgData orgData, List<OrgData> needInsert){
List<OrgData> data = YantaiApi.getChildOuInfoByGuid(orgData.getOrganizationId());
if (CollectionUtils.isNotEmpty(data)){
needInsert.addAll(data);
data.forEach(d -> {
disposeYanTaiSyncOrg(d.getOrganizationId(),needInsert);
d.setPid(orgData.getOrganizationId());
d.setPids(orgData.getPids().concat(":").concat(d.getOrganizationId()));
d.setNameOfOrganization(orgData.getNameOfOrganization());
needInsert.add(d);
disposeYanTaiSyncOrg(d,needInsert);
});
}
}

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncOrgDataDao.java

@ -24,4 +24,6 @@ public interface DataSyncOrgDataDao extends BaseDao<DataSyncOrgDataEntity> {
List<DataSyncOrgDataDTO> queryList(@Param("pid") String pid);
List<com.epmet.dto.DataSyncOrgDataDTO> getAllList(@Param("customerId") String customerId);
Integer deleteByCustomerId(@Param("customerId")String customerId);
}

3
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/yantai/DataSyncUserDataDao.java

@ -38,4 +38,7 @@ public interface DataSyncUserDataDao extends BaseDao<DataSyncUserDataEntity> {
@Param("staffId")String staffId,
@Param("name")String name,
@Param("mobile")String mobile);
Integer deleteByCustomerId(@Param("customerId")String customerId);
}

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DataSyncOrgDataService.java

@ -75,4 +75,6 @@ public interface DataSyncOrgDataService extends BaseService<DataSyncOrgDataEntit
* @date 2022-10-18
*/
void delete(String[] ids);
Integer deleteByCustomerId(String customerId);
}

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DataSyncUserDataService.java

@ -75,4 +75,6 @@ public interface DataSyncUserDataService extends BaseService<DataSyncUserDataEnt
* @date 2022-10-18
*/
void delete(String[] ids);
Integer deleteByCustomerId(String customerId);
}

6
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DataSyncOrgDataServiceImpl.java

@ -80,4 +80,10 @@ public class DataSyncOrgDataServiceImpl extends BaseServiceImpl<DataSyncOrgDataD
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer deleteByCustomerId(String customerId) {
return baseDao.deleteByCustomerId(customerId);
}
}

5
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DataSyncUserDataServiceImpl.java

@ -80,4 +80,9 @@ public class DataSyncUserDataServiceImpl extends BaseServiceImpl<DataSyncUserDat
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public Integer deleteByCustomerId(String customerId) {
return null;
}
}

4
epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.18__yt_alter_sync.sql

@ -0,0 +1,4 @@
alter table data_sync_org_data modify column PIDS varchar(1024) comment '所有上级组织。不包含本身!如果是根组织,此列为空串';
CREATE INDEX idx_data_sync_orgid on data_sync_org_data(ORGANIZATION_ID);
CREATE INDEX idx_data_sync_userorgid on data_sync_user_data(ORGANIZATION_ID);

6
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/yantai/DataSyncOrgDataDao.xml

@ -29,6 +29,12 @@
<result property="parentOrgName" column="PARENT_ORG_NAME"/>
<result property="pids" column="PIDS"/>
</resultMap>
<delete id="deleteByCustomerId">
delete from data_sync_org_data
where customer_id = #{customerId}
and del_flag = 0
limit 1000
</delete>
<select id="queryList" parameterType="map" resultType="com.epmet.dto.result.yantai.DataSyncOrgDataDTO">
select

8
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/yantai/DataSyncUserDataDao.xml

@ -26,6 +26,12 @@
<result property="staffId" column="STAFF_ID"/>
<result property="remark" column="REMARK"/>
</resultMap>
<delete id="deleteByCustomerId">
delete from data_sync_user_data
where customer_id = #{customerId}
and del_flag = 0
limit 1000
</delete>
<!-- 运营端,统一认证 列表返参 -->
<select id="pageUser" parameterType="com.epmet.dto.form.yantai.YtUserPageFormDTO" resultType="com.epmet.dto.result.yantai.YtUserPageResDTO">
@ -37,7 +43,7 @@
else o.ORGANIZATIO_NABBREVIATION
end)as orgName,
u.USER_NAME AS userName,
u.TELEPHONE_NUMBER AS telephoneNumber,
u.MOBILE_TELEPHONE_NUMBER AS telephoneNumber,
u.GENDER AS gender,
u.`STATUS` AS status,
IFNULL(u.STAFF_ID,'') AS staffId,

144
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcEnterpriseChangeRecordDTO.java

@ -0,0 +1,144 @@
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 企事业单位变更记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-16
*/
@Data
public class IcEnterpriseChangeRecordDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 唯一标识
*/
private String id;
/**
* 客户Id
*/
private String customerId;
/**
* 网格Id场所区域
*/
private String gridId;
/**
* 网格所属的组织Id
*/
private String agencyId;
/**
* agency_id的所有上级
*/
private String agencyPids;
/**
* 场所类型来源于ic_coverage_category_dict
*/
private String placeType;
/**
* 场所名称
*/
private String placeOrgName;
/**
* 场所地址
*/
private String address;
/**
* 经度
*/
private String longitude;
/**
* 纬度
*/
private String latitude;
/**
* 字典value,场所规模
0:10人以下
1:10-20人
2:21-40人
3:41-100人
4:100人以上
*/
private String scale;
/**
* 场所负责人
*/
private String personInCharge;
/**
* 负责人电话
*/
private String mobile;
/**
* 来源新增:add 导入:import
*/
private String sourceType;
/**
* 最新巡查结果0:合格 1:不合格
*/
private String latestResult;
/**
* 最新检查时间
*/
private Date latestPatrolTime;
/**
* 删除标识0.未删除 1.已删除
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 原始记录id
*/
private String originId;
/**
* 操作类型,upd,del
*/
private String type;
}

30
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseListFormDTO.java

@ -16,6 +16,28 @@ public class IcHouseListFormDTO extends PageFormDTO {
private static final long serialVersionUID = -1L;
/**
* 10.24需求http://zentao.elinkservice.cn/story-view-710.html
* 小区id
*/
private String neighborHoodId;
/**
* 10.24需求http://zentao.elinkservice.cn/story-view-710.html
* 新增楼栋id
*/
private String buildingId;
/**
* 10.24需求http://zentao.elinkservice.cn/story-view-710.html
* 新增单元id
*/
private String buildingUnitId;
/**
* 10.24需求http://zentao.elinkservice.cn/story-view-710.html
* 新增房号
*/
private String houseId;
/**
* 组织类别
*/
@ -51,14 +73,6 @@ public class IcHouseListFormDTO extends PageFormDTO {
* 房屋状态 1出租 0自住 2闲置 3:未出售
*/
private String rentFlag;
/**
* 楼栋ID
*/
private String buildingId;
/**
* 小区ID
*/
private String neighborHoodId;
/**
* 搜索关键词社区查询搜索输入的关键词

23
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/NeighborHoodOptionFormDTO.java

@ -0,0 +1,23 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
/**
* @Description
* @Author yzm
* @Date 2022/10/25 15:44
*/
@Data
public class NeighborHoodOptionFormDTO extends PageFormDTO {
private String agencyId;
private String gridId;
private String neighborHoodName;
/**
* 当前登录用户
*/
private String staffId;
private String customerId;
}

46
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseChangeRecordController.java

@ -0,0 +1,46 @@
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IcEnterpriseChangeRecordDTO;
import com.epmet.service.IcEnterpriseChangeRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
/**
* 企事业单位变更记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-16
*/
@RestController
@RequestMapping("icEnterpriseChangeRecord")
public class IcEnterpriseChangeRecordController {
@Autowired
private IcEnterpriseChangeRecordService icEnterpriseChangeRecordService;
@RequestMapping("page")
public Result<PageData<IcEnterpriseChangeRecordDTO>> page(@RequestParam Map<String, Object> params) {
PageData<IcEnterpriseChangeRecordDTO> page = icEnterpriseChangeRecordService.page(params);
return new Result<PageData<IcEnterpriseChangeRecordDTO>>().ok(page);
}
@RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET})
public Result<IcEnterpriseChangeRecordDTO> get(@PathVariable("id") String id) {
IcEnterpriseChangeRecordDTO data = icEnterpriseChangeRecordService.get(id);
return new Result<IcEnterpriseChangeRecordDTO>().ok(data);
}
@RequestMapping("history/{originId}")
public Result<PageData<IcEnterpriseChangeRecordDTO>> page(@PathVariable("originId") String originId, @RequestParam Map<String, Object> params) {
params.put("originId", originId);
PageData<IcEnterpriseChangeRecordDTO> page = icEnterpriseChangeRecordService.page(params);
return new Result<PageData<IcEnterpriseChangeRecordDTO>>().ok(page);
}
}

28
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java

@ -22,6 +22,7 @@ import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.IcEnterpriseChangeRecordDTO;
import com.epmet.dto.form.EnterpriseFormDTO;
import com.epmet.dto.form.EnterprisePageFormDTO;
import com.epmet.dto.form.EnterprisePatrolFormDTO;
@ -100,6 +101,33 @@ public class IcEnterpriseController implements ResultDataResolver {
return new Result<PageData<EnterpriseDetailDTO>>().ok(icEnterpriseService.list(formDTO));
}
/**
* 操作日志基础表
*
* @param params
* @return com.epmet.commons.tools.utils.Result<com.epmet.commons.tools.page.PageData<com.epmet.dto.IcEnterpriseChangeRecordDTO>>
* @author zhy
* @date 2022/8/16 16:52
*/
@RequestMapping("page")
public Result<PageData<EnterpriseDetailDTO>> page(@LoginUser TokenDto tokenDto, @RequestParam Map<String, String> params){
EnterprisePageFormDTO formDTO = new EnterprisePageFormDTO();
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setCurrentStaffId(tokenDto.getUserId());
formDTO.setPageFlag(true);
formDTO.setPageNo(Integer.parseInt(params.get("page")));
formDTO.setPageSize(Integer.parseInt(params.get("limit")));
formDTO.setPlaceOrgName(params.get("placeOrgName"));
formDTO.setMobile(params.get("mobile"));
formDTO.setGridId(params.get("gridId"));
formDTO.setPlaceType(params.get("placeType"));
formDTO.setScale(params.get("scale"));
formDTO.setResult(params.get("result"));
PageData<EnterpriseDetailDTO> page = icEnterpriseService.list(formDTO);
return new Result<PageData<EnterpriseDetailDTO>>().ok(page);
}
/**
* 企事业单位列表导出
* @param tokenDto

16
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcNeighborHoodController.java

@ -39,6 +39,7 @@ import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.form.IcNeighborHoodAddFormDTO;
import com.epmet.dto.form.ImportInfoFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.form.NeighborHoodOptionFormDTO;
import com.epmet.dto.result.BuildingResultDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
@ -151,6 +152,21 @@ public class IcNeighborHoodController {
return new Result<List<OptionResultDTO>>().ok(icNeighborHoodService.getNeighborHoodOptions(dto.getAgencyId(), dto.getGridId(),tokenDto.getUserId(),tokenDto.getCustomerId()));
}
/**
* 入参gridIdagencyId
* 返回当前组织及下级下的所有小区
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("neighborhood-options")
public Result<List<OptionResultDTO>> queryNeighborHoodOptions(@LoginUser TokenDto tokenDto, @RequestBody NeighborHoodOptionFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setStaffId(tokenDto.getUserId());
List<OptionResultDTO> list=icNeighborHoodService.queryNeighborHoodOptions(formDTO);
return new Result<List<OptionResultDTO>>().ok(list);
}
/**
* 获取用户组织下小区列表
*

29
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterpriseChangeRecordDao.java

@ -0,0 +1,29 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcEnterpriseChangeRecordDTO;
import com.epmet.entity.IcEnterpriseChangeRecordEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 企事业单位变更记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-16
*/
@Mapper
public interface IcEnterpriseChangeRecordDao extends BaseDao<IcEnterpriseChangeRecordEntity> {
/**
* 分页列表
*
* @param params
* @return java.util.List<com.epmet.dto.IcEnterpriseChangeRecordDTO>
* @author zhy
* @date 2022/8/9 17:23
*/
List<IcEnterpriseChangeRecordDTO> listPage(Map<String, Object> params);
}

4
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java

@ -18,12 +18,14 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.ImportGeneralDTO;
import com.epmet.dto.NeighborHoodAndManagementDTO;
import com.epmet.dto.form.CheckHouseInfoFormDTO;
import com.epmet.dto.form.HouseInformationFormDTO;
import com.epmet.dto.form.IcNeighborHoodListFormDTO;
import com.epmet.dto.form.NeighborHoodOptionFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcHouseEntity;
import com.epmet.entity.IcNeighborHoodEntity;
@ -220,4 +222,6 @@ public interface IcNeighborHoodDao extends BaseDao<IcNeighborHoodEntity> {
* @return
*/
IcNeighborHoodEntity getNeighborHoodInfoByName(CheckHouseInfoFormDTO formDTO);
List<OptionResultDTO> queryNeighborHoodOptions(NeighborHoodOptionFormDTO formDTO);
}

114
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcEnterpriseChangeRecordEntity.java

@ -0,0 +1,114 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 企事业单位变更记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-16
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_enterprise_change_record")
public class IcEnterpriseChangeRecordEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id
*/
private String customerId;
/**
* 网格Id场所区域
*/
private String gridId;
/**
* 网格所属的组织Id
*/
private String agencyId;
/**
* agency_id的所有上级
*/
private String agencyPids;
/**
* 场所类型来源于ic_coverage_category_dict
*/
private String placeType;
/**
* 场所名称
*/
private String placeOrgName;
/**
* 场所地址
*/
private String address;
/**
* 经度
*/
private String longitude;
/**
* 纬度
*/
private String latitude;
/**
* 字典value,场所规模
0:10人以下
1:10-20人
2:21-40人
3:41-100人
4:100人以上
*/
private String scale;
/**
* 场所负责人
*/
private String personInCharge;
/**
* 负责人电话
*/
private String mobile;
/**
* 来源新增:add 导入:import
*/
private String sourceType;
/**
* 最新巡查结果0:合格 1:不合格
*/
private String latestResult;
/**
* 最新检查时间
*/
private Date latestPatrolTime;
/**
* 原始记录id
*/
private String originId;
/**
* 操作类型,upd,del
*/
private String type;
}

84
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcEnterpriseChangeRecordExcel.java

@ -0,0 +1,84 @@
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 企事业单位变更记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-16
*/
@Data
public class IcEnterpriseChangeRecordExcel {
@Excel(name = "唯一标识")
private String id;
@Excel(name = "客户Id")
private String customerId;
@Excel(name = "网格Id【场所区域】")
private String gridId;
@Excel(name = "网格所属的组织Id")
private String agencyId;
@Excel(name = "agency_id的所有上级")
private String agencyPids;
@Excel(name = "场所类型:来源于ic_coverage_category_dict")
private String placeType;
@Excel(name = "场所名称")
private String placeOrgName;
@Excel(name = "场所地址")
private String address;
@Excel(name = "经度")
private String longitude;
@Excel(name = "纬度")
private String latitude;
@Excel(name = "字典value,场所规模")
private String scale;
@Excel(name = "场所负责人")
private String personInCharge;
@Excel(name = "负责人电话")
private String mobile;
@Excel(name = "来源【新增:add 导入:import 】")
private String sourceType;
@Excel(name = "最新巡查结果【0:合格 1:不合格】")
private String latestResult;
@Excel(name = "最新检查时间")
private Date latestPatrolTime;
@Excel(name = "删除标识:0.未删除 1.已删除")
private Integer delFlag;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
}

30
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcEnterpriseChangeRecordRedis.java

@ -0,0 +1,30 @@
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 企事业单位变更记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-16
*/
@Component
public class IcEnterpriseChangeRecordRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

78
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseChangeRecordService.java

@ -0,0 +1,78 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcEnterpriseChangeRecordDTO;
import com.epmet.entity.IcEnterpriseChangeRecordEntity;
import java.util.List;
import java.util.Map;
/**
* 企事业单位变更记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-16
*/
public interface IcEnterpriseChangeRecordService extends BaseService<IcEnterpriseChangeRecordEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<IcEnterpriseChangeRecordDTO>
* @author generator
* @date 2022-08-16
*/
PageData<IcEnterpriseChangeRecordDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<IcEnterpriseChangeRecordDTO>
* @author generator
* @date 2022-08-16
*/
List<IcEnterpriseChangeRecordDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return IcEnterpriseChangeRecordDTO
* @author generator
* @date 2022-08-16
*/
IcEnterpriseChangeRecordDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-08-16
*/
void save(IcEnterpriseChangeRecordDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-08-16
*/
void update(IcEnterpriseChangeRecordDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-08-16
*/
void delete(String[] ids);
}

13
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java

@ -2,6 +2,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcEnterpriseChangeRecordDTO;
import com.epmet.dto.form.EnterpriseFormDTO;
import com.epmet.dto.form.EnterprisePageFormDTO;
import com.epmet.dto.form.EnterprisePatrolFormDTO;
@ -10,6 +11,7 @@ import com.epmet.dto.result.EnterprisePatrolResultDTO;
import com.epmet.entity.IcEnterpriseEntity;
import java.nio.file.Path;
import java.util.Map;
/**
* 企事业单位表
@ -78,4 +80,15 @@ public interface IcEnterpriseService extends BaseService<IcEnterpriseEntity> {
* @Date 2022/9/6 17:30
*/
void sendEnterprisePatrolRemindMessage();
/**
* 默认分页
*
* @param params
* @return PageData<IcEnterpriseChangeRecordDTO>
* @author generator
* @date 2022-08-16
*/
PageData<EnterpriseDetailDTO> page(Map<String, Object> params);
}

8
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java

@ -27,6 +27,7 @@ import com.epmet.dto.ImportGeneralDTO;
import com.epmet.dto.NeighborHoodAndManagementDTO;
import com.epmet.dto.form.IcNeighborHoodAddFormDTO;
import com.epmet.dto.form.ImportInfoFormDTO;
import com.epmet.dto.form.NeighborHoodOptionFormDTO;
import com.epmet.dto.result.BuildingResultDTO;
import com.epmet.dto.result.IcNeighborHoodDetailDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
@ -195,4 +196,11 @@ public interface IcNeighborHoodService extends BaseService<IcNeighborHoodEntity>
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.IcNeighborHoodDTO>
*/
Result<IcNeighborHoodDetailDTO> neighborhoodDetail(String neighborhoodId);
/**
* 返回当前组织及下级下的所有小区
* @param formDTO
* @return
*/
List<OptionResultDTO> queryNeighborHoodOptions(NeighborHoodOptionFormDTO formDTO);
}

98
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseChangeRecordServiceImpl.java

@ -0,0 +1,98 @@
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
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.enums.DictTypeEnum;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IcEnterpriseChangeRecordDao;
import com.epmet.dto.IcEnterpriseChangeRecordDTO;
import com.epmet.dto.IcWorkLogDTO;
import com.epmet.entity.IcEnterpriseChangeRecordEntity;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.redis.IcEnterpriseChangeRecordRedis;
import com.epmet.service.IcEnterpriseChangeRecordService;
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 java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 企事业单位变更记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-08-16
*/
@Service
public class IcEnterpriseChangeRecordServiceImpl extends BaseServiceImpl<IcEnterpriseChangeRecordDao, IcEnterpriseChangeRecordEntity> implements IcEnterpriseChangeRecordService {
@Autowired
private IcEnterpriseChangeRecordRedis icEnterpriseChangeRecordRedis;
@Autowired
private LoginUserUtil loginUserUtil;
@Override
public PageData<IcEnterpriseChangeRecordDTO> page(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
IPage<IcWorkLogDTO> page = getPage(params);
List<IcEnterpriseChangeRecordDTO> list = baseDao.listPage(params);
return new PageData<>(list, page.getTotal());
}
@Override
public List<IcEnterpriseChangeRecordDTO> list(Map<String, Object> params) {
List<IcEnterpriseChangeRecordEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, IcEnterpriseChangeRecordDTO.class);
}
private QueryWrapper<IcEnterpriseChangeRecordEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
String originId = (String) params.get("originId");
QueryWrapper<IcEnterpriseChangeRecordEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(originId), "ORIGIN_ID", originId);
return wrapper;
}
@Override
public IcEnterpriseChangeRecordDTO get(String id) {
IcEnterpriseChangeRecordEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, IcEnterpriseChangeRecordDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(IcEnterpriseChangeRecordDTO dto) {
IcEnterpriseChangeRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcEnterpriseChangeRecordEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(IcEnterpriseChangeRecordDTO dto) {
IcEnterpriseChangeRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcEnterpriseChangeRecordEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

191
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java

@ -1,9 +1,13 @@
package com.epmet.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
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.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
@ -18,6 +22,7 @@ import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.FileUtils;
@ -28,9 +33,7 @@ import com.epmet.dao.*;
import com.epmet.dto.SysDictDataDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.IcEnterpriseEntity;
import com.epmet.entity.IcEnterprisePatrolAttachmentEntity;
import com.epmet.entity.IcEnterprisePatrolRecordEntity;
import com.epmet.entity.*;
import com.epmet.excel.EnterpriseImportExcelDTO;
import com.epmet.excel.handler.IcEnterpriseExcelImportListener;
import com.epmet.feign.EpmetAdminOpenFeignClient;
@ -38,6 +41,7 @@ import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.service.CoverageService;
import com.epmet.service.IcEnterpriseChangeRecordService;
import com.epmet.service.IcEnterpriseService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -90,6 +94,13 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
private CustomerGridDao customerGridDao;
@Resource
private EpmetMessageOpenFeignClient messageOpenFeignClient;
@Autowired
private IcEnterpriseChangeRecordService icEnterpriseChangeRecordService;
@Autowired
private EpmetAdminOpenFeignClient epmetAdminOpenFeignClient;
@Autowired
private LoginUserUtil loginUserUtil;
/**
* 企事业单位巡查新增/编辑
@ -106,23 +117,27 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
}
AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(formDTO.getAgencyId());
if (null == agencyInfoCache) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"组织信息查询异常","组织信息查询异常");
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "组织信息查询异常", "组织信息查询异常");
}
IcEnterpriseEntity enterpriseEntity = ConvertUtils.sourceToTarget(formDTO, IcEnterpriseEntity.class);
enterpriseEntity.setAgencyPids(agencyInfoCache.getPids());
if(StringUtils.isBlank(formDTO.getEnterpriseId())){
if (StringUtils.isBlank(formDTO.getEnterpriseId())) {
enterpriseEntity.setLatestResult(StrConstant.EPMETY_STR);
enterpriseEntity.setSourceType(CommonOperateTypeEnum.ADD.getCode());
baseDao.insert(enterpriseEntity);
}else{
} else {
//如果是编辑判断下权限
IcEnterpriseEntity origin=baseDao.selectById(formDTO.getEnterpriseId());
CustomerStaffInfoCacheResult staffInfo=CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(),formDTO.getCurrentStaffId());
IcEnterpriseEntity origin = baseDao.selectById(formDTO.getEnterpriseId());
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getCurrentStaffId());
if (!staffInfo.getAgencyId().equals(origin.getAgencyId())) {
AgencyInfoCache orginAgencyInfo = CustomerOrgRedis.getAgencyInfo(origin.getAgencyId());
String agencyName = null != orginAgencyInfo ? orginAgencyInfo.getOrganizationName() : StrConstant.EPMETY_STR;
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "", String.format("修改失败,当前场所属于%s", agencyName));
}
// 历史记录
log(origin, formDTO, "UPD");
enterpriseEntity.setId(formDTO.getEnterpriseId());
//获取一下最新的巡检时间和巡检结果
LambdaQueryWrapper<IcEnterprisePatrolRecordEntity> queryWrapper = new LambdaQueryWrapper();
@ -146,14 +161,14 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
@Transactional(rollbackFor = Exception.class)
@Override
public String addOrUpdatePatrol(EnterprisePatrolFormDTO formDTO) {
IcEnterprisePatrolRecordEntity patrolRecordEntity=ConvertUtils.sourceToTarget(formDTO,IcEnterprisePatrolRecordEntity.class);
if(StringUtils.isBlank(formDTO.getPatrolId())){
IcEnterprisePatrolRecordEntity patrolRecordEntity = ConvertUtils.sourceToTarget(formDTO, IcEnterprisePatrolRecordEntity.class);
if (StringUtils.isBlank(formDTO.getPatrolId())) {
enterprisePatrolRecordDao.insert(patrolRecordEntity);
}else{
} else {
patrolRecordEntity.setId(formDTO.getPatrolId());
enterprisePatrolRecordDao.updateById(patrolRecordEntity);
//删除之前的图片
enterprisePatrolAttachmentDao.deleteByPatrolId(formDTO.getPatrolId(),formDTO.getUserId());
enterprisePatrolAttachmentDao.deleteByPatrolId(formDTO.getPatrolId(), formDTO.getUserId());
}
int sort = 1;
for (String imgUrl : formDTO.getImgList()) {
@ -168,7 +183,7 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
sort++;
}
// 更新主表的最新结果和最新检查时间
baseDao.updateLatestPatrol(formDTO.getEnterpriseId(),patrolRecordEntity.getPatrolTime(),patrolRecordEntity.getResult(),formDTO.getUserId());
baseDao.updateLatestPatrol(formDTO.getEnterpriseId(), patrolRecordEntity.getPatrolTime(), patrolRecordEntity.getResult(), formDTO.getUserId());
return patrolRecordEntity.getId();
}
@ -179,26 +194,27 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void delPatrol(String patrolId,String currentUserId) {
IcEnterprisePatrolRecordEntity origin=enterprisePatrolRecordDao.selectById(patrolId);
if(null==origin){
public void delPatrol(String patrolId, String currentUserId) {
IcEnterprisePatrolRecordEntity origin = enterprisePatrolRecordDao.selectById(patrolId);
if (null == origin) {
return;
}
//1、删除巡查记录
enterprisePatrolRecordDao.deleteById(patrolId);
//2、删除之前的图片
enterprisePatrolAttachmentDao.deleteByPatrolId(patrolId,currentUserId);
enterprisePatrolAttachmentDao.deleteByPatrolId(patrolId, currentUserId);
//3、如果是记录清空,那主表的最近一次巡查时间和最新结果也置空
LambdaQueryWrapper<IcEnterprisePatrolRecordEntity> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(IcEnterprisePatrolRecordEntity::getEnterpriseId,origin.getEnterpriseId());
LambdaQueryWrapper<IcEnterprisePatrolRecordEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(IcEnterprisePatrolRecordEntity::getEnterpriseId, origin.getEnterpriseId());
if (NumConstant.ZERO == enterprisePatrolRecordDao.selectCount(queryWrapper)) {
baseDao.updateLatestPatrol(origin.getEnterpriseId(),null,StrConstant.EPMETY_STR,currentUserId);
baseDao.updateLatestPatrol(origin.getEnterpriseId(), null, StrConstant.EPMETY_STR, currentUserId);
}
}
/**
* 巡查记录列表
* 暂时不分页
*
* @param enterpriseId
* @return
*/
@ -230,9 +246,9 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
resultDto.setAgencyName(gridInfoCache.getAgencyName());
}
String placeTypeName = coverageCategoryDictDao.selectCategoryName(customerId, CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode(), resultDto.getPlaceType());
if(StringUtils.isNotBlank(placeTypeName)){
if (StringUtils.isNotBlank(placeTypeName)) {
resultDto.setPlaceTypeName(placeTypeName);
}else{
} else {
resultDto.setPlaceTypeName(coverageCategoryDictDao.selectCategoryName(Constant.DEFAULT_CUSTOMER, CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode(), resultDto.getPlaceType()));
}
//规模名称
@ -258,12 +274,17 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
public void delete(String enterpriseId, String customerId, String userId) {
//如果是编辑判断下权限要删除的记录的agencyId要与当前登录用户的agencyId一致
IcEnterpriseEntity origin = baseDao.selectById(enterpriseId);
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId);
if (!staffInfo.getAgencyId().equals(origin.getAgencyId())) {
AgencyInfoCache orginAgencyInfo = CustomerOrgRedis.getAgencyInfo(origin.getAgencyId());
String agencyName = null != orginAgencyInfo ? orginAgencyInfo.getOrganizationName() : StrConstant.EPMETY_STR;
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "", String.format("删除失败,当前场所属于%s", agencyName));
}
// 历史记录
log(origin, null, "DEL");
baseDao.deleteById(enterpriseId);
}
@ -296,9 +317,9 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
detailDTO.setAgencyName(gridInfoCache.getAgencyName());
}
String placeTypeName = coverageCategoryDictDao.selectCategoryName(formDTO.getCustomerId(), CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode(), detailDTO.getPlaceType());
if(StringUtils.isNotBlank(placeTypeName)){
if (StringUtils.isNotBlank(placeTypeName)) {
detailDTO.setPlaceTypeName(placeTypeName);
}else{
} else {
detailDTO.setPlaceTypeName(coverageCategoryDictDao.selectCategoryName(Constant.DEFAULT_CUSTOMER, CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode(), detailDTO.getPlaceType()));
}
detailDTO.setScaleName(dictMap.containsKey(detailDTO.getScale()) ? dictMap.get(detailDTO.getScale()) : StrConstant.EPMETY_STR);
@ -309,26 +330,26 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
@Async
@Override
public void execAsyncExcelImport(Path filePath, String importTaskId,String customerId,String userId) {
public void execAsyncExcelImport(Path filePath, String importTaskId, String customerId, String userId) {
try {
//获取当前登录用户所属组织id
CustomerStaffInfoCacheResult staffInfo= queryCurrentStaff(customerId,userId);
CustomerStaffInfoCacheResult staffInfo = queryCurrentStaff(customerId, userId);
//1、查询 ic_coverage_category_dict 注意key:场所的名称 value:编码
List<IcCoverageCategoryDictListResultDTO> dictList = coverageService.dictMap(customerId, CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode());
Map<String, String> placeTypeMap = dictList.stream().collect(Collectors.toMap(IcCoverageCategoryDictListResultDTO::getLabel, IcCoverageCategoryDictListResultDTO::getValue));
//2、规模名称
Result<List<SysDictDataDTO>> dictMapRes = adminOpenFeignClient.dictDataList(DictTypeEnum.SCALE.getCode());
Map<String, String> scaleMap = dictMapRes.success() && CollectionUtils.isNotEmpty(dictMapRes.getData()) ? dictMapRes.getData().stream().collect(Collectors.toMap(SysDictDataDTO::getDictLabel,SysDictDataDTO::getDictValue)) : new HashMap<>();
Map<String, String> scaleMap = dictMapRes.success() && CollectionUtils.isNotEmpty(dictMapRes.getData()) ? dictMapRes.getData().stream().collect(Collectors.toMap(SysDictDataDTO::getDictLabel, SysDictDataDTO::getDictValue)) : new HashMap<>();
//3、当前工作人员所属组织下的网格列表
List<GridListResultDTO> gridList = customerGridDao.selectGridList(staffInfo.getAgencyId());
if (CollectionUtils.isEmpty(gridList)) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "当前组织下没有网格", "当前组织下没有直属网格");
}
Map<String,String> gridMap=gridList.stream().collect(Collectors.toMap(GridListResultDTO::getGridName,GridListResultDTO::getGridId));
Map<String, String> gridMap = gridList.stream().collect(Collectors.toMap(GridListResultDTO::getGridName, GridListResultDTO::getGridId));
IcEnterpriseExcelImportListener listener = new IcEnterpriseExcelImportListener(customerId,staffInfo, this,placeTypeMap,scaleMap,gridMap);
IcEnterpriseExcelImportListener listener = new IcEnterpriseExcelImportListener(customerId, staffInfo, this, placeTypeMap, scaleMap, gridMap);
EasyExcel.read(filePath.toFile(), EnterpriseImportExcelDTO.class, listener).headRowNumber(1).sheet(0).doRead();
Path errorDescFile = null;
@ -403,13 +424,13 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
@Override
public void sendEnterprisePatrolRemindMessage() {
//一天后
Date afterThreeDayDate=DateUtils.calDateBaseDay(new Date(), NumConstant.ONE);
String dateId= DateUtils.format(afterThreeDayDate, DateUtils.DATE_PATTERN_YYYYMMDD);
Date afterThreeDayDate = DateUtils.calDateBaseDay(new Date(), NumConstant.ONE);
String dateId = DateUtils.format(afterThreeDayDate, DateUtils.DATE_PATTERN_YYYYMMDD);
LambdaQueryWrapper<IcEnterprisePatrolRecordEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.apply("DATE_FORMAT(REVIEW_TIME,'%Y%m%d') = " + dateId);
List<IcEnterprisePatrolRecordEntity> list = enterprisePatrolRecordDao.selectList(wrapper);
if (CollectionUtils.isNotEmpty(list)) {
List<SendSmsFormDTO> smsList=new ArrayList<>();
List<SendSmsFormDTO> smsList = new ArrayList<>();
list.forEach(item -> {
IcEnterpriseEntity enterprise = baseDao.selectById(item.getEnterpriseId());
if (null != enterprise) {
@ -418,8 +439,8 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
sms.setMobile(item.getMobile());
sms.setAliyunTemplateCode(SmsTemplateConstant.ENTERPRISE_PATROL_TEM);
Map<String, String> paramMap = new HashMap<>();
paramMap.put("name",enterprise.getPlaceOrgName());
paramMap.put("date",DateUtils.format(item.getReviewTime(),DateUtils.DATE_PATTERN));
paramMap.put("name", enterprise.getPlaceOrgName());
paramMap.put("date", DateUtils.format(item.getReviewTime(), DateUtils.DATE_PATTERN));
sms.setParamMap(paramMap);
smsList.add(sms);
}
@ -428,6 +449,35 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
}
}
public PageData<EnterpriseDetailDTO> page(Map<String, Object> params) {
IPage<IcEnterpriseEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, EnterpriseDetailDTO.class);
}
private QueryWrapper<IcEnterpriseEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
String placeOrgName = (String) params.get("placeOrgName");
String mobile = (String) params.get("mobile");
String gridId = (String) params.get("gridId");
String placeType = (String) params.get("placeType");
String scale = (String) params.get("scale");
String result = (String) params.get("result");
QueryWrapper<IcEnterpriseEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(placeOrgName), "PLACE_ORG_NAME", placeOrgName);
wrapper.eq(StringUtils.isNotBlank(mobile), "MOBILE", mobile);
wrapper.eq(StringUtils.isNotBlank(gridId), "GRID_ID", gridId);
wrapper.eq(StringUtils.isNotBlank(placeType), "PLACE_TYPE", placeType);
wrapper.eq(StringUtils.isNotBlank(scale), "SCALE", scale);
wrapper.eq(StringUtils.isNotBlank(result), "LATEST_RESULT", result);
return wrapper;
}
private CustomerStaffInfoCacheResult queryCurrentStaff(String customerId, String userId) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId);
if (null == staffInfo) {
@ -439,4 +489,77 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl<IcEnterpriseDao, Ic
public List<IcEnterpriseEntity> selectForUniqueName(String gridId, String placeOrgName, String enterpriseId) {
return baseDao.selectForUniqueName(gridId, placeOrgName, enterpriseId);
}
/**
* 记录操作日志
*
* @param origin
* @param type
* @return void
* @author zhy
* @date 2022/8/16 15:36
*/
private void log(IcEnterpriseEntity origin, EnterpriseFormDTO formDTO, String type) {
// 历史记录
IcEnterpriseChangeRecordEntity record = ConvertUtils.sourceToTarget(origin, IcEnterpriseChangeRecordEntity.class);
List<IcCoverageCategoryDictListResultDTO> categoryList = coverageService.dictMap(loginUserUtil.getLoginUserCustomerId(), "enterprise_patrol");
Map<String, String> categoryMap = categoryList.stream().collect(Collectors.toMap(IcCoverageCategoryDictListResultDTO::getValue, IcCoverageCategoryDictListResultDTO::getLabel));
CustomerGridEntity originGrid = customerGridDao.selectById(origin.getGridId());
Map<String, String> scaleMap;
Result<Map<String, String>> result = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.SCALE.getCode());
if (!result.success() || null == result.getData()) {
throw new EpmetException("查询字典信息失败" + JSON.toJSONString(result));
} else {
scaleMap = result.getData();
}
if (formDTO != null) {
if (!origin.getPlaceType().equals(formDTO.getPlaceType())) {
record.setPlaceType(categoryMap.get(origin.getPlaceType()).concat("->").concat(categoryMap.get(formDTO.getPlaceType())));
} else {
record.setPlaceType(categoryMap.get(origin.getPlaceType()));
}
if (!origin.getGridId().equals(formDTO.getGridId())) {
CustomerGridEntity thisGrid = customerGridDao.selectById(formDTO.getGridId());
record.setGridId(origin.getGridId().concat("->").concat(thisGrid.getGridName()));
if (originGrid != null && thisGrid != null) {
record.setGridId(originGrid.getGridName().concat("->").concat(formDTO.getGridId()));
}
} else {
record.setGridId(originGrid.getGridName());
}
if (!origin.getPlaceOrgName().equals(formDTO.getPlaceOrgName())) {
record.setPlaceOrgName(origin.getPlaceOrgName().concat("->").concat(formDTO.getPlaceOrgName()));
}
if (!origin.getScale().equals(formDTO.getScale())) {
record.setScale(scaleMap.get(origin.getScale()).concat("->").concat(scaleMap.get(formDTO.getScale())));
} else {
record.setScale(scaleMap.get(origin.getScale()));
}
if (!origin.getPersonInCharge().equals(formDTO.getPersonInCharge())) {
record.setPersonInCharge(origin.getPersonInCharge().concat("->").concat(formDTO.getPersonInCharge()));
}
if (!origin.getMobile().equals(formDTO.getMobile())) {
record.setMobile(origin.getMobile().concat("->").concat(formDTO.getMobile()));
}
if (!origin.getAddress().equals(formDTO.getAddress())) {
record.setAddress(origin.getAddress().concat("->").concat(formDTO.getAddress()));
}
}
record.setId(null);
record.setCreatedBy(null);
record.setCreatedTime(null);
record.setUpdatedBy(null);
record.setUpdatedTime(null);
record.setOriginId(origin.getId());
record.setType(type);
icEnterpriseChangeRecordService.insert(record);
}
}

24
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java

@ -51,6 +51,7 @@ import com.epmet.dto.*;
import com.epmet.dto.form.IcNeighborHoodAddFormDTO;
import com.epmet.dto.form.ImportInfoFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.form.NeighborHoodOptionFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.*;
import com.epmet.excel.IcNeighborHoodExcel;
@ -824,4 +825,27 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
return new Result<IcNeighborHoodDetailDTO>().ok(result);
}
/**
* 返回当前组织及下级下的所有小区
*
* @param formDTO
* @return
*/
@Override
public List<OptionResultDTO> queryNeighborHoodOptions(NeighborHoodOptionFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getGridId()) && StringUtils.isBlank(formDTO.getAgencyId())) {
// 默认查询当前工作人员所属组织及下级的
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId());
formDTO.setAgencyId(staffInfoCacheResult.getAgencyId());
}
List<OptionResultDTO> list = baseDao.queryNeighborHoodOptions(formDTO);
return list;
}
}

52
epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.44__add_enterprise_change_record.sql

@ -0,0 +1,52 @@
/*
Navicat Premium Data Transfer
Source Server : epmet_cloud_dev_org
Source Server Type : MySQL
Source Server Version : 50726
Source Host : 192.168.1.140:3306
Source Schema : epmet_gov_org
Target Server Type : MySQL
Target Server Version : 50726
File Encoding : 65001
Date: 17/08/2022 14:20:39
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for ic_enterprise_change_record
-- ----------------------------
DROP TABLE IF EXISTS `ic_enterprise_change_record`;
CREATE TABLE `ic_enterprise_change_record` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '唯一标识',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户Id',
`GRID_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网格Id【场所区域】',
`AGENCY_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网格所属的组织Id',
`AGENCY_PIDS` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'agency_id的所有上级',
`PLACE_TYPE` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '场所类型:来源于ic_coverage_category_dict',
`PLACE_ORG_NAME` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '场所名称',
`ADDRESS` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '场所地址',
`LONGITUDE` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '经度',
`LATITUDE` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '纬度',
`SCALE` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '字典value,场所规模【\r\n0:10人以下\r\n1:10-20人\r\n2:21-40人\r\n3:41-100人\r\n4:100人以上】',
`PERSON_IN_CHARGE` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '场所负责人',
`MOBILE` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '负责人电话',
`SOURCE_TYPE` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '来源【新增:add 导入:import 】',
`LATEST_RESULT` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '最新巡查结果【0:合格 1:不合格】',
`LATEST_PATROL_TIME` datetime NULL DEFAULT NULL COMMENT '最新检查时间',
`DEL_FLAG` int(11) NOT NULL COMMENT '删除标识:0.未删除 1.已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
`ORIGIN_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '原始记录ID',
`TYPE` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作类型,upd,del',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '企事业单位变更记录表' ROW_FORMAT = COMPACT;
SET FOREIGN_KEY_CHECKS = 1;

45
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterpriseChangeRecordDao.xml

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.IcEnterpriseChangeRecordDao">
<resultMap type="com.epmet.entity.IcEnterpriseChangeRecordEntity" id="icEnterpriseChangeRecordMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="gridId" column="GRID_ID"/>
<result property="agencyId" column="AGENCY_ID"/>
<result property="agencyPids" column="AGENCY_PIDS"/>
<result property="placeType" column="PLACE_TYPE"/>
<result property="placeOrgName" column="PLACE_ORG_NAME"/>
<result property="address" column="ADDRESS"/>
<result property="longitude" column="LONGITUDE"/>
<result property="latitude" column="LATITUDE"/>
<result property="scale" column="SCALE"/>
<result property="personInCharge" column="PERSON_IN_CHARGE"/>
<result property="mobile" column="MOBILE"/>
<result property="sourceType" column="SOURCE_TYPE"/>
<result property="latestResult" column="LATEST_RESULT"/>
<result property="latestPatrolTime" column="LATEST_PATROL_TIME"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
<result property="originId" column="ORIGIN_ID"/>
<result property="type" column="TYPE"/>
</resultMap>
<select id="listPage" resultType="com.epmet.dto.IcEnterpriseChangeRecordDTO">
SELECT
r.*
FROM
ic_enterprise_change_record r
WHERE
r.DEL_FLAG = '0'
AND r.CUSTOMER_ID = #{customerId}
AND r.ORIGIN_ID = #{originId}
ORDER BY r.CREATED_TIME DESC
</select>
</mapper>

6
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml

@ -147,6 +147,12 @@
<if test="neighborHoodId != null and neighborHoodId != ''">
AND a.NEIGHBOR_HOOD_ID = #{neighborHoodId}
</if>
<if test="buildingUnitId != null and buildingUnitId != ''">
AND a.BUILDING_UNIT_ID = #{buildingUnitId}
</if>
<if test="houseId != null and houseId != ''">
AND a.ID = #{houseId}
</if>
<if test='level == "building"'>
AND b.id = #{id}
</if>

21
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml

@ -673,4 +673,25 @@
</select>
<select id="queryNeighborHoodOptions" parameterType="com.epmet.dto.form.NeighborHoodOptionFormDTO" resultType="com.epmet.commons.tools.dto.result.OptionResultDTO">
SELECT
h.NEIGHBOR_HOOD_NAME as label,
h.ID as `value`
FROM
ic_neighbor_hood h
WHERE
h.DEL_FLAG = '0'
AND h.CUSTOMER_ID = #{customerId}
<if test=" null != agencyId and agencyId != ''">
AND ( h.AGENCY_ID = #{agencyId} OR h.AGENCY_PIDS LIKE concat( '%', #{agencyId}, '%' ) )
</if>
<if test=" null != neighborHoodName and neighborHoodName != ''">
and h.NEIGHBOR_HOOD_NAME like concat('%',#{neighborHoodName},'%')
</if>
<if test=" null != gridId and gridId != ''">
and h.GRID_ID=#{gridId}
</if>
ORDER BY
h.NEIGHBOR_HOOD_NAME ASC
</select>
</mapper>

92
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/UpdateArticleFormDTO.java

@ -0,0 +1,92 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @Description 修改文章
* @Author yzm
* @Date 2022/10/24 14:12
*/
@Data
public class UpdateArticleFormDTO {
public interface AddUserInternalGroup {
}
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
/**
* 文章id
*/
@NotBlank(message = "articleId不能为空", groups = {AddUserInternalGroup.class})
private String articleId;
@NotBlank(message = "文章标题不能为空", groups = {AddUserShowGroup.class})
@Length(max = 50, message = "文章标题最长为50个字")
private String title;
/**
* 发布范围IDs
*/
@NotEmpty(message = "发布范围不能为空", groups = AddUserShowGroup.class)
private List<String> gridIdList;
/**
* 发布范围Names
*/
@NotBlank(message = "发布范围名称不能为空", groups = AddUserShowGroup.class)
private String publishRangeDesc;
@NotBlank(message = "发布单位不能为空", groups = AddUserShowGroup.class)
private String publisher;
@NotBlank(message = "发布单位名称不能为空", groups = AddUserShowGroup.class)
private String publisherName;
/**
* 发布单位类型 机关:agency部门department网格grid
*/
@NotBlank(message = "发布单位类型不能为空", groups = AddUserShowGroup.class)
private String publisherType;
/**
* 封面图地址
*/
private String imgUrl;
@NotBlank(message = "发布时间不能为空", groups = AddUserShowGroup.class)
private String publishDate;
/**
* 文章标签
*/
private List<String> tagNameList;
@NotBlank(message = "文章内容不能为空", groups = {AddUserShowGroup.class})
private String content;
/**
* 是否置顶 1是0否
*/
@NotNull(message = "请选择是否置顶", groups = AddUserShowGroup.class)
private Integer isTop;
/**
* token中获取
*/
@NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class)
private String userId;
/**
* token中获取
*/
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
private String customerId;
}

4
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/constant/ArticleConstant.java

@ -20,6 +20,10 @@ public interface ArticleConstant {
*/
String PUBLISHED = "published";
String PUBLISH = "publish";
/**
* pc,已发布的文章可编辑
*/
String UPDATE_ARTICEL="update";
String PUBLISH_CONTENT = "发布文章";
/**
* 发布状态-已下线

39
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java

@ -37,6 +37,7 @@ import com.epmet.service.ArticleOperateRecordService;
import com.epmet.service.ArticleService;
import com.epmet.service.DraftService;
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.scheduling.annotation.Async;
@ -468,4 +469,42 @@ public class ArticleController {
articleService.addOrSaveDraft(formDTO);
return new Result();
}
/**
* 已发布的文章可以编辑
*
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("updateArticle")
public Result updateArticle(@LoginUser TokenDto tokenDto, @RequestBody UpdateArticleFormDTO formDTO) {
formDTO.setUserId(tokenDto.getUserId());
formDTO.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(formDTO, UpdateArticleFormDTO.AddUserShowGroup.class, UpdateArticleFormDTO.AddUserInternalGroup.class);
articleService.updateArticle(formDTO);
return new Result();
}
/**
* 删除文章,所有相关表都删除吧
* article 文章表
* article_content 文章内容表
* article_cover 文章封面表
* article_operate_record 文章操作记录表
* article_publish_range 文章发布范围表
* article_tags 文章标签表
* article_visit_record 文章访问记录表
* @param tokenDto
* @param articleIds
* @return
*/
@PostMapping("delete")
public Result delete(@LoginUser TokenDto tokenDto, @RequestBody List<String> articleIds) {
if (CollectionUtils.isNotEmpty(articleIds)) {
articleService.delete(articleIds, tokenDto.getCustomerId(), tokenDto.getUserId());
}
return new Result();
}
}

8
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleContentDao.java

@ -29,5 +29,11 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ArticleContentDao extends BaseDao<ArticleContentEntity> {
/**
* 只支持富文本的文章
* 如果是最开始一段文字一个图片那种文章在article_content表会有多条
* @param articleId
* @return
*/
ArticleContentEntity selectByArticleId(String articleId);
}

1
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleCoverDao.java

@ -30,4 +30,5 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ArticleCoverDao extends BaseDao<ArticleCoverEntity> {
ArticleCoverEntity selectByArticleId(String articleId);
}

2
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticlePublishRangeDao.java

@ -47,4 +47,6 @@ public interface ArticlePublishRangeDao extends BaseDao<ArticlePublishRangeEntit
* @return
*/
List<ArticlePublishRangeEntity> selectInitData(@Param("customerIdList") List<String> customerIdList);
int deleteByArticleId(@Param("articleId") String articleId,@Param("operUserId")String operUserId);
}

1
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/ArticleOperateRecordEntity.java

@ -64,6 +64,7 @@ public class ArticleOperateRecordEntity extends BaseEpmetEntity {
/**
* 操作类型 发布文章publish取消文章置顶canceltop设置置顶settom下线文章offline修改文章发布范围updatepublishrange
* 修改文章update
*/
private String opType;

8
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleOperateRecordService.java

@ -103,4 +103,12 @@ public interface ArticleOperateRecordService extends BaseService<ArticleOperateR
* @date 2020-06-02
*/
List<ArticleOperationResultDTO> listOfArticleOperation(String articleId);
/**
*
* @param articleId
* @param customerId
* @param currentOperUserId
*/
void deleteByArticleId(String articleId, String customerId, String currentOperUserId);
}

21
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java

@ -257,4 +257,25 @@ public interface ArticleService extends BaseService<ArticleEntity> {
PublishedListResultDTO detailV2(ArticleListFormDTO formDTO);
void topArticle(String articleId, String type,String imgUrl);
/**
* 修改文章
* @param formDTO
*/
void updateArticle(UpdateArticleFormDTO formDTO);
/**
* 删除文章
* article 文章表
* article_content 文章内容表
* article_cover 文章封面表
* article_operate_record 文章操作记录表
* article_publish_range 文章发布范围表
* article_tags 文章标签表
* article_visit_record 文章访问记录表
* @param articleIds
* @param customerId
* @param currentOperUserId
*/
void delete(List<String> articleIds,String customerId,String currentOperUserId);
}

2
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleVisitRecordService.java

@ -92,4 +92,6 @@ public interface ArticleVisitRecordService extends BaseService<ArticleVisitRecor
* @date 2020-06-02
*/
void delete(String[] ids);
void deleteByArticleId(String articleId, String customerId, String currentOperUserId);
}

21
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleOperateRecordServiceImpl.java

@ -18,9 +18,11 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.ArticleOperateRecordDao;
@ -32,10 +34,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 文章操作记录表
@ -107,4 +106,18 @@ public class ArticleOperateRecordServiceImpl extends BaseServiceImpl<ArticleOper
return list;
}
/**
* @param articleId
* @param customerId
* @param currentOperUserId
*/
@Override
public void deleteByArticleId(String articleId, String customerId, String currentOperUserId) {
LambdaUpdateWrapper<ArticleOperateRecordEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(ArticleOperateRecordEntity::getDelFlag, NumConstant.ONE_STR)
.set(ArticleOperateRecordEntity::getUpdatedBy, currentOperUserId)
.set(ArticleOperateRecordEntity::getUpdatedTime, new Date());
updateWrapper.eq(ArticleOperateRecordEntity::getArticleId, articleId);
baseDao.update(null,updateWrapper);
}
}

195
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java

@ -19,6 +19,7 @@ package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
@ -1435,8 +1436,14 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
e.setArticleId(articleId);
articleTags.add(e);
});
if(!CollectionUtils.isEmpty(articleTags)){
LambdaQueryWrapper<ArticleTagsEntity> queryWrapper=new LambdaQueryWrapper();
queryWrapper.eq(ArticleTagsEntity::getCustomerId,customerId)
.eq(ArticleTagsEntity::getArticleId,articleId);
articleTagsDao.delete(queryWrapper);
articleTagsService.insertBatch(articleTags);
}
}
/**
* @Description 专题文章列表
@ -1543,7 +1550,7 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
articleContent.setArticleId(article.getId());
articleContent.setContent(formDTO.getContent());
articleContent.setContentType("rich_text");
articleContent.setOrderNum(NumConstant.ZERO);
articleContent.setOrderNum(NumConstant.ONE);
articleContentDao.insert(articleContent);
// 3.操作记录
ArticleOperateRecordEntity articleOperateRecord = new ArticleOperateRecordEntity();
@ -1808,4 +1815,190 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
baseDao.updateById(articleEntity);
}
}
/**
* 修改文章
*
* @param formDTO
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void updateArticle(UpdateArticleFormDTO formDTO) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(staffInfo.getAgencyId());
if (null == agencyInfo){
throw new EpmetException("未查询到组织信息:"+staffInfo.getAgencyId());
}
// 1.文章
ArticleEntity articleEntity = baseDao.selectById(formDTO.getArticleId());
if (ArticleConstant.OFFLINE.equals(articleEntity.getStatusFlag())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "已下线的文章不能编辑", "已下线的文章不能编辑");
}
articleEntity.setPublishWay(ArticleConstant.PUBLISH_WAY_MANUAL);
if (formDTO.getPublisherType().equals(DraftConstant.GRID)){
articleEntity.setGridId(formDTO.getPublisher());
}
articleEntity.setPreviewContent(getPreviewContent(formDTO.getContent()).length() > DraftConstant.PREVIEW_CONTENT_MAX_LENGTH ? getPreviewContent(formDTO.getContent()).substring(NumConstant.ZERO,DraftConstant.PREVIEW_CONTENT_MAX_LENGTH) : getPreviewContent(formDTO.getContent()));
articleEntity.setPublishDate(DateUtils.stringToDate(formDTO.getPublishDate(),DateUtils.DATE_PATTERN));
articleEntity.setPublisherId(formDTO.getPublisher());
articleEntity.setTags(CollectionUtils.isEmpty(formDTO.getTagNameList()) ? "" : formDTO.getTagNameList().stream().collect(Collectors.joining("|")));
articleEntity.setOrgId(staffInfo.getAgencyId());
articleEntity.setOrgIdPath(StringUtils.isBlank(agencyInfo.getPids()) || agencyInfo.getPids().equals(NumConstant.ZERO_STR) ? agencyInfo.getId() : agencyInfo.getPids().concat(":").concat(agencyInfo.getId()));
articleEntity.setRichTextFlag(NumConstant.ONE_STR);
baseDao.updateById(articleEntity);
// 2.内容
ArticleContentEntity articleContent = articleContentDao.selectByArticleId(formDTO.getArticleId());
if (null != articleContent) {
articleContent.setContent(formDTO.getContent());
articleContentDao.updateById(articleContent);
}else{
ArticleContentEntity articleContent1=new ArticleContentEntity();
articleContent1.setCustomerId(formDTO.getCustomerId());
articleContent1.setArticleId(formDTO.getArticleId());
articleContent1.setContent(formDTO.getContent());
articleContent1.setContentType("rich_text");
articleContent1.setOrderNum(NumConstant.ONE);
articleContentDao.insert(articleContent1);
}
// 3.操作记录
ArticleOperateRecordEntity articleOperateRecord = new ArticleOperateRecordEntity();
articleOperateRecord.setCustomerId(formDTO.getCustomerId());
articleOperateRecord.setArticleId(formDTO.getArticleId());
articleOperateRecord.setGridIds(CollectionUtils.isEmpty(formDTO.getGridIdList()) ? "" : formDTO.getGridIdList().stream().collect(Collectors.joining(":")));
articleOperateRecord.setOpUser(staffInfo.getAgencyName().concat("-").concat(staffInfo.getRealName()));
articleOperateRecord.setContent(articleOperateRecord.getOpUser() + "编辑文章【" +formDTO.getTitle() + "】");
articleOperateRecord.setOpType(ArticleConstant.UPDATE_ARTICEL);
articleOperateRecord.setOpTime(new Date());
articleOperateRecordService.insert(articleOperateRecord);
// 4.发布范围
if (!CollectionUtils.isEmpty(formDTO.getGridIdList())){
List<ArticlePublishRangeEntity> rangeList = new ArrayList<>();
formDTO.getGridIdList().forEach(g -> {
GridInfoCache gridInfoCache = CustomerOrgRedis.getGridInfo(g);
if (null == gridInfoCache){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"gridId:"+g,"发布范围:网格信息查询异常");
}
ArticlePublishRangeEntity articlePublishRange = ConvertUtils.sourceToTarget(gridInfoCache,ArticlePublishRangeEntity.class);
articlePublishRange.setCustomerId(formDTO.getCustomerId());
articlePublishRange.setArticleId(formDTO.getArticleId());
articlePublishRange.setGridId(g);
articlePublishRange.setAgencyGridName(gridInfoCache.getGridNamePath());
articlePublishRange.setAgencyId(gridInfoCache.getPid());
AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(gridInfoCache.getPid());
if (null == agencyInfoCache){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"agencyId:"+gridInfoCache.getPid(),"发布范围:网格所属组织信息查询异常");
}
//组织id的所有上级
articlePublishRange.setPids(agencyInfoCache.getPids());
articlePublishRange.setPublishStatus(ArticleConstant.PUBLISHED);
articlePublishRange.setId(null);
rangeList.add(articlePublishRange);
});
if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(rangeList)){
//先删除,后插入
articlePublishRangeDao.deleteByArticleId(formDTO.getArticleId(),formDTO.getUserId());
articlePublishRangeService.insertBatch(rangeList);
}
}
// 5.文章标签
UpdateCustomerTagCacheDTO updateCustomerTagCacheDTO = updateCustomerTagV2(formDTO.getUserId(), formDTO.getCustomerId(), StringUtils.isBlank(articleEntity.getTags()) ? "" : articleEntity.getTags());
if (null != updateCustomerTagCacheDTO){
addArticleTagsV2(updateCustomerTagCacheDTO,formDTO.getCustomerId(),articleEntity.getId());
}
// 6.更新网格tag
List<UpdateGridTagCacheDTO> updateGridTagCacheDTOS = updateGridTagV2(updateCustomerTagCacheDTO, formDTO.getCustomerId(), formDTO.getGridIdList(), formDTO.getUserId());
// 7.文章封面
if (StringUtils.isNotBlank(formDTO.getImgUrl())){
ArticleCoverEntity articleCoverEntity = articleCoverDao.selectByArticleId(formDTO.getArticleId());
if (null != articleCoverEntity) {
articleCoverEntity.setImgUrl(formDTO.getImgUrl());
articleCoverEntity.setAuditStatus("pass");
articleCoverDao.updateById(articleCoverEntity);
}else{
ArticleCoverEntity articleCover = new ArticleCoverEntity();
articleCover.setCustomerId(formDTO.getCustomerId());
articleCover.setArticleId(formDTO.getArticleId());
articleCover.setImgUrl(formDTO.getImgUrl());
articleCover.setAuditStatus("pass");
articleCoverDao.insert(articleCover);
}
}
// 8.更新redis
try {
this.updateCacheCustomerTag(updateCustomerTagCacheDTO);
this.updateCacheGridTag(updateGridTagCacheDTOS);
} catch (Exception e) {
//我觉着没必要抛出异常吧,日志打印一下吧
log.warn("updateArticle update redis exception", e);
// throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg());
}
}
/**
* 删除文章
* article 文章表
* article_content 文章内容表
* article_cover 文章封面表
* article_operate_record 文章操作记录表
* article_publish_range 文章发布范围表
* article_tags 文章标签表
* article_visit_record 文章访问记录表
*
* @param articleIds
* @param customerId
* @param currentOperUserId
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void delete(List<String> articleIds, String customerId, String currentOperUserId) {
Date now=new Date();
for(String articleId:articleIds){
//文章表
LambdaUpdateWrapper<ArticleEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(ArticleEntity::getDelFlag, NumConstant.ONE_STR)
.set(ArticleEntity::getUpdatedBy, currentOperUserId)
.set(ArticleEntity::getUpdatedTime, now);
updateWrapper.eq(ArticleEntity::getId, articleId);
baseDao.update(null, updateWrapper);
//文章内容表
LambdaUpdateWrapper<ArticleContentEntity> articleContentUpdate = new LambdaUpdateWrapper<>();
articleContentUpdate.set(ArticleContentEntity::getDelFlag, NumConstant.ONE_STR)
.set(ArticleContentEntity::getUpdatedBy, currentOperUserId)
.set(ArticleContentEntity::getUpdatedTime, now);
articleContentUpdate.eq(ArticleContentEntity::getArticleId, articleId);
articleContentDao.update(null,articleContentUpdate);
//文章封面表
LambdaUpdateWrapper<ArticleCoverEntity> articleCoverUpdate = new LambdaUpdateWrapper<>();
articleCoverUpdate.set(ArticleCoverEntity::getDelFlag, NumConstant.ONE_STR)
.set(ArticleCoverEntity::getUpdatedBy, currentOperUserId)
.set(ArticleCoverEntity::getUpdatedTime, now);
articleCoverUpdate.eq(ArticleCoverEntity::getArticleId, articleId);
articleCoverDao.update(null,articleCoverUpdate);
//文章操作记录表
articleOperateRecordService.deleteByArticleId(articleId,customerId,currentOperUserId);
//文章发布范围表
LambdaUpdateWrapper<ArticlePublishRangeEntity> publishRangeUpdate = new LambdaUpdateWrapper<>();
publishRangeUpdate.set(ArticlePublishRangeEntity::getDelFlag, NumConstant.ONE_STR)
.set(ArticlePublishRangeEntity::getUpdatedBy, currentOperUserId)
.set(ArticlePublishRangeEntity::getUpdatedTime, now);
publishRangeUpdate.eq(ArticlePublishRangeEntity::getArticleId, articleId);
articlePublishRangeDao.update(null,publishRangeUpdate);
//文章标签表
LambdaUpdateWrapper<ArticleTagsEntity> articleTagsUpdate = new LambdaUpdateWrapper<>();
articleTagsUpdate.set(ArticleTagsEntity::getDelFlag, NumConstant.ONE_STR)
.set(ArticleTagsEntity::getUpdatedBy, currentOperUserId)
.set(ArticleTagsEntity::getUpdatedTime, now);
articleTagsUpdate.eq(ArticleTagsEntity::getArticleId, articleId);
articleTagsDao.update(null,articleTagsUpdate);
//文章访问记录表
articleVisitRecordService.deleteByArticleId(articleId,customerId,currentOperUserId);
}
}
}

12
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleVisitRecordServiceImpl.java

@ -18,9 +18,11 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.ArticleVisitRecordDao;
@ -33,6 +35,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -105,4 +108,13 @@ public class ArticleVisitRecordServiceImpl extends BaseServiceImpl<ArticleVisitR
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public void deleteByArticleId(String articleId, String customerId, String currentOperUserId) {
LambdaUpdateWrapper<ArticleVisitRecordEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(ArticleVisitRecordEntity::getDelFlag, NumConstant.ONE_STR)
.set(ArticleVisitRecordEntity::getUpdatedBy, currentOperUserId)
.set(ArticleVisitRecordEntity::getUpdatedTime, new Date());
updateWrapper.eq(ArticleVisitRecordEntity::getArticleId, articleId);
baseDao.update(null,updateWrapper);
}
}

10
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleContentDao.xml

@ -4,4 +4,14 @@
<mapper namespace="com.epmet.dao.ArticleContentDao">
<select id="selectByArticleId" parameterType="java.lang.String" resultType="com.epmet.entity.ArticleContentEntity">
SELECT
ac.*
FROM
article_content ac
WHERE
ac.DEL_FLAG = '0'
AND ac.ID = #{articleId}
</select>
</mapper>

6
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleCoverDao.xml

@ -3,5 +3,9 @@
<mapper namespace="com.epmet.dao.ArticleCoverDao">
<select id="selectByArticleId" parameterType="java.lang.String" resultType="com.epmet.entity.ArticleCoverEntity">
select ac.* from article_cover ac
where ac.DEL_FLAG='0'
and ac.ARTICLE_ID=#{articleId}
</select>
</mapper>

8
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticlePublishRangeDao.xml

@ -35,5 +35,11 @@
ORDER BY GRID_ID
</select>
<update id="deleteByArticleId" parameterType="java.lang.String">
update article_publish_range r
set r.del_flag='1',
r.UPDATED_BY = #{operUserId},
r.UPDATED_TIME = now()
where r.ARTICLE_ID = #{articleId}
</update>
</mapper>

2
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFootBarFormDTO.java

@ -44,7 +44,7 @@ public class CustomerFootBarFormDTO {
@NotBlank(message = "FootBar的ID不能为空", groups = { UpdateFootBarGroup.class, FootBarDetailGroup.class, UpdateDisplayStatusGroup.class, DeleteFootbarsGroup.class })
private String id;
@NotBlank(message = "客户ID不能为空", groups = { CreateFootBarGroup.class, AddDefaultFootbars4Customer.class, ListFootBarGroup4Oper.class , DeleteFootbarsGroup.class})
@NotBlank(message = "客户ID不能为空", groups = { ListFootBarGroup.class,CreateFootBarGroup.class, AddDefaultFootbars4Customer.class, ListFootBarGroup4Oper.class , DeleteFootbarsGroup.class})
private String customerId;
// 哪一个端:gov,resi

3
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

@ -1346,6 +1346,9 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
List<AchievementDetailResultDTO.AchievementBean> achievementList = new ArrayList<>();
//1.小组创建时间
ResiGroupEntity group = baseDao.selectById(formDTO.getGroupId());
if (null == group) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "resi_group is null groupId:" + formDTO.getGroupId(), "小组不存在");
}
resultDTO.setCreatedDate(DateUtils.dateToTimestamp(group.getCreatedTime()));
//2.即将完成的3个成就

6
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartymemberStyleDTO.java

@ -19,6 +19,7 @@ package com.epmet.resi.partymember.dto.partymember;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@ -34,10 +35,11 @@ import java.util.List;
public class IcPartymemberStyleDTO implements Serializable {
private static final long serialVersionUID = 1L;
public interface DetailGroup {}
/**
* 楼栋主键
* 主键
*/
@NotBlank(message = "党员风采主键不能为空",groups = DetailGroup.class)
private String id;
/**

1
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java

@ -84,6 +84,7 @@ public class IcPartymemberStyleController {
@PostMapping("detail")
public Result<IcPartymemberStyleDTO> get(@RequestBody IcPartymemberStyleDTO dto) {
ValidatorUtils.validateEntity(dto,IcPartymemberStyleDTO.DetailGroup.class);
IcPartymemberStyleDTO data = icPartymemberStyleService.get(dto.getId());
return new Result<IcPartymemberStyleDTO>().ok(data);
}

3
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java

@ -156,6 +156,9 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl<IcPartymember
@Override
public IcPartymemberStyleDTO get(String id) {
IcPartymemberStyleEntity entity = baseDao.selectById(id);
if (null == entity) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"ic_partymember_style is null id:"+id,"没有找到党员风采记录");
}
IcPartymemberStyleDTO dto = ConvertUtils.sourceToTarget(entity, IcPartymemberStyleDTO.class);
dto.setImageList(icPartymemberStyleImageService.getByStyleId(id));
GridInfoCache gridInfoCache = CustomerOrgRedis.getGridInfo(dto.getGridId());

5
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcNatRelationDTO.java

@ -42,6 +42,11 @@ public class IcNatRelationDTO implements Serializable {
*/
private String icNatId;
/**
* 是否本辖区居民10
*/
private String isLocalResiUser;
/**
* 关系数据的绑定途径居民端录入resi;
数字社区录入icresi;

6
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EpidemicPreventionFormDTO.java

@ -67,6 +67,12 @@ public class EpidemicPreventionFormDTO extends PageFormDTO implements Serializab
* 结束日期
*/
private String endDate;
/**
* 核酸检测开始结束时间 eg:2022-10-10
*/
private String natStartDate;
private String natEndDate;
/**
* 疫苗接种次数
*/

11
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/yqfk/IcNatCompareRecordPageFormDTO.java

@ -38,5 +38,16 @@ public class IcNatCompareRecordPageFormDTO extends PageFormDTO {
private String customerId;
private String userId;
private String agencyId;
/**
* 检测时间
*/
private String natDate;
/**
* 1:已检测
* 0未检测
*/
private String natStatus;
}

6
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/NatListResultDTO.java

@ -89,6 +89,12 @@ public class NatListResultDTO implements Serializable {
@ExcelIgnore
private String isResiUser;
/**
* 是否本辖区居民(0: 1:)
*/
@ExcelIgnore
private String isLocalResiUser;
/**
* 检测地点
*/

26
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RelationAndNatResultDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/10/25 09:37
*/
@Data
public class RelationAndNatResultDTO implements Serializable {
private static final long serialVersionUID = 5245015978083295931L;
private String relationId;
private String natId;
private String staffAgencyIdPath;
private String idCard;
/**
* 默认不是本辖区居民
*/
private String isLocalResiUser = NumConstant.ZERO_STR;
}

19
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiAndLocalResiResultDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/10/24 16:09
*/
@Data
public class ResiAndLocalResiResultDTO implements Serializable {
private static final long serialVersionUID = -7702043408016900850L;
private Integer isLocal;
private Integer isResi;
private String userId;
}

9
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicPreventionController.java

@ -33,6 +33,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
@ -67,6 +69,13 @@ public class IcEpidemicPreventionController{
return new Result<PageData<EpidemicPreventionResultDTO>>().ok(result);
}
@PostMapping("epidemicPreventionExport")
public void epidemicPreventionExport(@LoginUser TokenDto tokenDto, @RequestBody EpidemicPreventionFormDTO formDTO, HttpServletResponse response) throws IOException {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setStaffId(tokenDto.getUserId());
icResiUserService.epidemicPreventionExport(formDTO,response);
}
@PostMapping("user-list")
public Result<PageData<EpidemicPreventionResultDTO>> userList(@LoginUser TokenDto tokenDto, @RequestBody EpidemicPreventionFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());

5
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatCompareRecordController.java

@ -27,6 +27,7 @@ import com.epmet.service.IcNatCompareRecordService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.*;
@ -61,6 +62,7 @@ public class IcNatCompareRecordController implements ResultDataResolver {
/**
* 未做核酸比对-分页查询
* http://yapi.elinkservice.cn/project/245/interface/api/8129
* @param tokenDto
* @param formDTO
* @return
@ -68,6 +70,9 @@ public class IcNatCompareRecordController implements ResultDataResolver {
@RequestMapping("page")
@MaskResponse(fieldNames = { "mobile", "idCard" }, fieldsMaskType = { MaskResponse.MASK_TYPE_MOBILE, MaskResponse.MASK_TYPE_ID_CARD })
public Result<PageData<IcNatCompareRecordDTO>> page(@LoginUser TokenDto tokenDto, @RequestBody IcNatCompareRecordPageFormDTO formDTO){
if (StringUtils.isNotBlank(formDTO.getNatDate()) && StringUtils.isBlank(formDTO.getNatStatus())) {
formDTO.setNatStatus(NumConstant.ONE_STR);
}
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
PageData<IcNatCompareRecordDTO> page = icNatCompareRecordService.page(formDTO);

13
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java

@ -315,5 +315,18 @@ public class IcNatController implements ResultDataResolver {
}
}
/**
* 需求原描述http://zentao.elinkservice.cn/story-view-709.html
* 3核酸检测信息页面本辖区居民选项查询是都是居民信息里居民现在的是否意思是你点新增的时候是从居民信息里选的还是你手动录入的
* 无论是导入新增定时任务拉取
* 根据身份证号取居民信息表数如果agencyId与当前操作用户所属组织id一致那说明就是他组织下的 本辖区居民
* 上线后需要此接口/epmetuser/icNat/initNatLocal
* @return
*/
@PostMapping("initNatLocal")
public Result initNatLocal(){
icNucleinService.initNatLocal();
return new Result();
}
}

20
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java

@ -6,7 +6,9 @@ import com.epmet.dto.form.MyNatListFormDTO;
import com.epmet.dto.result.MyNatListResultDTO;
import com.epmet.dto.result.NatListResultDTO;
import com.epmet.dto.result.NatUserInfoResultDTO;
import com.epmet.dto.result.RelationAndNatResultDTO;
import com.epmet.entity.IcNatEntity;
import com.epmet.entity.IcResiUserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -66,4 +68,22 @@ public interface IcNatDao extends BaseDao<IcNatEntity> {
void updateBatchNat(@Param("list")List<IcNatEntity> entities);
List<RelationAndNatResultDTO> getRelationAndNat();
List<IcResiUserEntity> getResiByIdCards(@Param("idCards")List<String> idCards);
/**
* @Description 批量更新关系
* @param list
* @Author zxc
* @Date 2022/10/25 10:56
*/
void updateRelation(@Param("list") List<RelationAndNatResultDTO> list);
/**
* @Description 更新的 userType != 'import'
* @Author zxc
* @Date 2022/10/25 11:13
*/
void updateRelationOther();
}

9
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java

@ -430,4 +430,13 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
List<IcUserCountResultDTO> getIcUserCount(IcUserCountFormDTO formDTO);
List<SearchByNameResultDTO> icUserStatisList(UserChartFormDTO formDTO);
/**
* @Description 根据身份证获取组织下的居民个数
* @param agencyId
* @param idCard
* @Author zxc
* @Date 2022/10/24 15:47
*/
ResiAndLocalResiResultDTO getResiCount(@Param("agencyId")String agencyId,@Param("idCard")String idCard,@Param("customerId")String customerId);
}

5
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcNatRelationEntity.java

@ -41,6 +41,11 @@ public class IcNatRelationEntity extends BaseEpmetEntity {
*/
private String icNatId;
/**
* 是否本辖区居民10
*/
private String isLocalResiUser;
/**
* 关系数据的绑定途径居民端录入resi;
数字社区录入icresi;

34
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/EpidemicPreventionExportExcel.java

@ -0,0 +1,34 @@
package com.epmet.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
/**
* @Author zxc
* @DateTime 2022/10/24 14:36
*/
@Data
public class EpidemicPreventionExportExcel {
@ExcelProperty(value = "姓名")
@ColumnWidth(20)
private String name;
@ExcelProperty(value = "所属网格")
@ColumnWidth(20)
private String gridName;
@ExcelProperty(value = "所属房屋")
@ColumnWidth(20)
private String houseName;
@ExcelProperty(value = "手机号")
@ColumnWidth(20)
private String mobile;
@ExcelProperty(value = "证件号")
@ColumnWidth(20)
private String idCard;
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatExcelImportListener.java

@ -2,12 +2,15 @@ package com.epmet.excel.handler;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
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.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.ValidateException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dao.IcResiUserDao;
import com.epmet.dto.result.ResiAndLocalResiResultDTO;
import com.epmet.entity.IcNatEntity;
import com.epmet.excel.data.IcNatImportExcelData;
import com.epmet.service.impl.IcNatServiceImpl;
@ -53,12 +56,14 @@ public class IcNatExcelImportListener implements ReadListener<IcNatImportExcelDa
private List<IcNatImportExcelData.RowRemarkMessage> otherRows = new ArrayList<>();
private IcNatServiceImpl icNatService;
private IcResiUserDao icResiUserDao;
public IcNatExcelImportListener(String currentUserId, String currentAgencyId, String currentAgencyPids, IcNatServiceImpl icNatService) {
public IcNatExcelImportListener(String currentUserId, String currentAgencyId, String currentAgencyPids, IcNatServiceImpl icNatService, IcResiUserDao icResiUserDao) {
this.currentUserId = currentUserId;
this.currentAgencyId = currentAgencyId;
this.currentAgencyPids = currentAgencyPids;
this.icNatService = icNatService;
this.icResiUserDao = icResiUserDao;
}
@Override
@ -116,6 +121,7 @@ public class IcNatExcelImportListener implements ReadListener<IcNatImportExcelDa
if (e instanceof ValidateException) {
errorMsg = ((ValidateException) e).getMsg();
} else {
log.error("【核酸检测信息导入】出错:{}", e.getStackTrace());
errorMsg = ((EpmetException)e).getInternalMsg();
log.error("【核酸检测信息导入】出错:{}", ExceptionUtils.getErrorStackTrace(e));
}

3
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java

@ -94,4 +94,7 @@ public interface IcNatService extends BaseService<IcNatEntity> {
Integer updateIsResiFlag(String customerId, String icResiUserId);
void updateBatchNat(List<IcNatEntity> entities);
void initNatLocal();
}

4
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java

@ -32,6 +32,8 @@ import com.epmet.entity.IcResiUserEntity;
import com.epmet.excel.support.ExportResiUserItemDTO;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@ -521,4 +523,6 @@ public interface IcResiUserService extends BaseService<IcResiUserEntity> {
void updateYlfn();
IcResiUserInfoCache getIcResiUserInfo(String userId);
void epidemicPreventionExport(EpidemicPreventionFormDTO formDTO, HttpServletResponse response) throws IOException;
}

1
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncConfigServiceImpl.java

@ -557,6 +557,7 @@ public class DataSyncConfigServiceImpl extends BaseServiceImpl<DataSyncConfigDao
e.setAgencyId(ne.getAgencyId());
e.setPids(ne.getPids());
e.setIcNatId(ne.getId());
e.setIsLocalResiUser(NumConstant.ONE_STR);
e.setUserType(isSync.equals(NumConstant.ONE_STR) ? "manualSync" : "sync");
relationEntities.add(e);
}

4
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncRecordDisabilityServiceImpl.java

@ -245,6 +245,7 @@ public class DataSyncRecordDisabilityServiceImpl extends BaseServiceImpl<DataSyn
String customerId = tokenDto.getCustomerId();
String userId = tokenDto.getUserId();
List<String> all = Arrays.asList(ids);
// 根据IDs查询烟台拉取的残疾信息
List<DataSyncRecordDisabilityEntity> entities = baseDao.selectBatchIds(all);
IcFormOptionsQueryFormDTO formDTO = new IcFormOptionsQueryFormDTO();
formDTO.setCustomerId(customerId);
@ -273,7 +274,8 @@ public class DataSyncRecordDisabilityServiceImpl extends BaseServiceImpl<DataSyn
}
});
});
entities.stream().filter(e -> StringUtils.isBlank(e.getCjzk()) || StringUtils.isBlank(e.getCjlb())).forEach(e -> e.setUpdateStatus(true));
// cjzk,cjlb为空的,处理结果赋值 处理失败
// entities.stream().filter(e -> StringUtils.isBlank(e.getCjzk()) || StringUtils.isBlank(e.getCjlb())).forEach(e -> e.setUpdateStatus(true));
// 变更记录
List<CategoryStatusAndIdDTO> collect = entities.stream().map(m -> {
CategoryStatusAndIdDTO dto = new CategoryStatusAndIdDTO();

81
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java

@ -129,16 +129,25 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
if (null == agencyInfo) {
throw new RenException(String.format("获取组织缓存信息失败%s", formDTO.getAgencyId()));
}
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId());
if (null == staffInfo){
throw new EpmetException(String.format("获取工作人员信息失败%s", formDTO.getStaffId()));
}
ResiAndLocalResiResultDTO resiCount = icResiUserDao.getResiCount(formDTO.getAgencyId(), formDTO.getIdCard(), formDTO.getCustomerId());
//2.新增核酸基础信息数据
IcNatEntity entity = ConvertUtils.sourceToTarget(formDTO, IcNatEntity.class);
if (StringUtils.isNotBlank(formDTO.getUserId())) {
/*if (StringUtils.isNotBlank(formDTO.getUserId())) {
entity.setIsResiUser("1");
}
}*/
entity.setIsResiUser(org.apache.commons.lang3.StringUtils.isNotBlank(resiCount.getUserId()) ? NumConstant.ONE_STR : NumConstant.ZERO_STR);
entity.setUserId(null == resiCount.getUserId() ? "" : resiCount.getUserId());
insert(entity);
//3.核酸记录关系表新增与组织的关系数据
IcNatRelationEntity relationEntity = ConvertUtils.sourceToTarget(formDTO, IcNatRelationEntity.class);
relationEntity.setIcNatId(entity.getId());
relationEntity.setPids(StringUtils.isNotBlank(agencyInfo.getPids()) ? agencyInfo.getPids() + ":" + formDTO.getAgencyId() : formDTO.getAgencyId());
relationEntity.setIsLocalResiUser(resiCount.getIsLocal() == NumConstant.ZERO ? NumConstant.ZERO_STR : NumConstant.ONE_STR);
relationEntity.setAgencyId(staffInfo.getAgencyId());
relationEntity.setPids(StringUtils.isNotBlank(staffInfo.getAgencyPIds()) ? staffInfo.getAgencyPIds() + ":" + staffInfo.getAgencyId() : staffInfo.getAgencyId());
icNatRelationDao.insert(relationEntity);
//3.新增通知表信息
@ -346,7 +355,7 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
String agencyId = loginUserDetails.getAgencyId();
IcNatExcelImportListener listener = new IcNatExcelImportListener(userId, agencyId, loginUserDetails.getOrgIdPath().replace(":".concat(agencyId), ""), this);
IcNatExcelImportListener listener = new IcNatExcelImportListener(userId, agencyId, loginUserDetails.getOrgIdPath().replace(":".concat(agencyId), ""), this, icResiUserDao);
EasyExcel.read(filePath.toFile(), IcNatImportExcelData.class, listener).headRowNumber(2).sheet(0).doRead();
@ -473,6 +482,54 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
}
}
@Override
public void initNatLocal() {
Integer no = NumConstant.ONE;
Integer size;
// 查询关系表
do {
// user_type = 'import'
PageInfo<RelationAndNatResultDTO> pageInfo = PageHelper.startPage(no, NumConstant.ONE_THOUSAND).doSelectPageInfo(() -> baseDao.getRelationAndNat());
List<RelationAndNatResultDTO> list = pageInfo.getList();
size = list.size();
if (CollectionUtils.isNotEmpty(list)){
List<IcResiUserEntity> users = baseDao.getResiByIdCards(list.stream().map(m -> m.getIdCard()).distinct().collect(Collectors.toList()));
if (CollectionUtils.isNotEmpty(users)){
for (RelationAndNatResultDTO l : list) {
for (IcResiUserEntity u : users) {
if (l.getStaffAgencyIdPath().contains(u.getAgencyId())){
l.setIsLocalResiUser(NumConstant.ONE_STR);
break;
}
}
}
updateRelation(list,NumConstant.ONE_STR);
}
}
}while (size == NumConstant.ONE_THOUSAND);
// 其他类型的userType直接是居民的组织信息,所以直接赋值 is_local_resi_user = '1'
updateRelation(null,NumConstant.TWO_STR);
log.error("/epmetuser/icNat/initNatLocal更新核酸检测记录关系表,是否是本辖区居民标志 end");
}
/**
* @Description 更新核酸关系表
* @param list
* @param type 1:userType为import2除了import
* @Author zxc
* @Date 2022/10/25 10:55
*/
@Transactional(rollbackFor = Exception.class)
public void updateRelation(List<RelationAndNatResultDTO> list,String type){
if (NumConstant.ONE_STR.equals(type)){
if (CollectionUtils.isNotEmpty(list)){
baseDao.updateRelation(list);
}
}else {
baseDao.updateRelationOther();
}
}
/**
* 批量持久化
* @param entities
@ -536,6 +593,7 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
return;
}
// 存在某时间的核酸检测信息
if (resiNat != null) {
boolean needUpdate = false;
// 有这个人,也是导入的,那就要更新le
@ -587,8 +645,9 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
}
// 还要创建关系。只有本辖区及下级居民,才建立关系
// 2022-10-25 修改:导入的都插入关系
if (resi != null) {
createNatRelation(resiNat.getId(), resi.getAgencyId(), resi.getPids());
createNatRelation(resiNat.getId(), resi.getAgencyId(), agencyPids,agencyId);
}
return;
@ -603,7 +662,7 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
// 还要创建关系。只有本辖区及下级居民,才建立关系
if (resi != null) {
createNatRelation(e.getId(), resi.getAgencyId(), resi.getPids());
createNatRelation(e.getId(), resi.getAgencyId(), agencyPids,agencyId);
}
}
@ -643,11 +702,15 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
/**
* 创建nat关系
* @param natId
* @param currentUserAgencyId
* @param currentUserAgencyId 居民所属组织
* @param staffAgencyId 工作人员所属组织
* @param agencyPids 工作人员所属组织路径
*/
private void createNatRelation(String natId, String currentUserAgencyId, String agencyPids) {
private void createNatRelation(String natId, String currentUserAgencyId, String agencyPids,String staffAgencyId) {
// 没有关系创建关系,有关系就跳过
// 2022-10-25 修改:不管是不是本辖区居民,都创建关系,用 is_local_resi_user区分是不是本辖区居民
// 组织ID都改成工作人员所属组织ID
LambdaQueryWrapper<IcNatRelationEntity> query = new LambdaQueryWrapper<>();
query.eq(IcNatRelationEntity::getIcNatId, natId);
query.eq(IcNatRelationEntity::getAgencyId, currentUserAgencyId);
@ -660,6 +723,8 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
relation.setPids(String.join(":", Arrays.asList(agencyPids, currentUserAgencyId)));
relation.setIcNatId(natId);
relation.setUserType("import");
relation.setIsLocalResiUser(agencyPids.contains(currentUserAgencyId) ? NumConstant.ONE_STR : NumConstant.ZERO_STR);
icNatRelationDao.insert(relation);
}
}

66
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -19,6 +19,9 @@ package com.epmet.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -47,6 +50,7 @@ import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.*;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.constant.IcPlatformConstant;
import com.epmet.constant.IcResiUserConstant;
import com.epmet.constant.UserConstant;
@ -60,6 +64,8 @@ import com.epmet.dto.result.demand.IcResiDemandDictDTO;
import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO;
import com.epmet.entity.*;
import com.epmet.excel.DataSyncRecordDisabilityExcel;
import com.epmet.excel.EpidemicPreventionExportExcel;
import com.epmet.excel.support.ExportResiUserItemDTO;
import com.epmet.feign.*;
import com.epmet.opendata.dto.form.GetResidentDetailByIdCardFormDTO;
@ -85,6 +91,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Timestamp;
@ -317,14 +326,20 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
if (formMap.containsKey("ic_party_member")) {
for (LinkedHashMap<String, String> hash : formMap.get("ic_party_member")) {
if (!hash.containsKey("SSZB")) {
// 10.26灵山卫的暂时放开,不校验
if(!"57eaadaab264b816e7159c1a91ac50c1".equals(tokenDto.getCustomerId())){
String errorMsg = "党员信息所属支部不能为空";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg);
}
}
}
} else {
// 10.26灵山卫的暂时放开,不校验
if(!"57eaadaab264b816e7159c1a91ac50c1".equals(tokenDto.getCustomerId())){
String errorMsg = "党员信息所属支部不能为空";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg);
}
}
partyMemberDTO.setCustomerId(tokenDto.getCustomerId());
partyMemberDTO.setAgencyId(agencyId);
@ -546,24 +561,33 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
if (formMap.containsKey("ic_party_member")) {
for (LinkedHashMap<String, String> hash : formMap.get("ic_party_member")) {
if (!hash.containsKey("ID") && !hash.containsKey("SSZB")) {
// 10.26灵山卫的暂时放开,不校验
if(!"57eaadaab264b816e7159c1a91ac50c1".equals(tokenDto.getCustomerId())){
String errorMsg = "党员信息所属支部不能为空";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg);
}
}
}
} else {
// 10.26灵山卫的暂时放开,不校验
if(!"57eaadaab264b816e7159c1a91ac50c1".equals(tokenDto.getCustomerId())){
String errorMsg = "党员信息所属支部不能为空";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg);
}
}
} else if (!map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(icResiUser.getIsParty())) {
if (formMap.containsKey("ic_party_member")) {
for (LinkedHashMap<String, String> hash : formMap.get("ic_party_member")) {
if (!hash.containsKey("ID") && !hash.containsKey("SSZB")) {
// 10.26灵山卫的暂时放开,不校验
if(!"57eaadaab264b816e7159c1a91ac50c1".equals(tokenDto.getCustomerId())){
String errorMsg = "党员信息所属支部不能为空";
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg);
}
}
}
}
}
if ((map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(map.get("IS_PARTY")))
|| (!map.containsKey("IS_PARTY") && NumConstant.ONE_STR.equals(icResiUser.getIsParty()))) {
partyMemberDTO.setCustomerId(tokenDto.getCustomerId());
@ -1678,8 +1702,14 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
if (null != staffInfo) {
formDTO.setAgencyId(staffInfo.getAgencyId());
}
List<EpidemicPreventionResultDTO> list = new ArrayList<>();
if (formDTO.getIsPage()){
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<EpidemicPreventionResultDTO> list = baseDao.getEpidemicPreventionList(formDTO);
list = baseDao.getEpidemicPreventionList(formDTO);
}else {
list = baseDao.getEpidemicPreventionList(formDTO);
}
PageInfo<EpidemicPreventionResultDTO> pageInfo = new PageInfo<>(list);
if (CollectionUtils.isNotEmpty(list)) {
//查询网格名称
@ -3561,4 +3591,38 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
IcResiUserEntity icResiUserEntity = baseDao.selectById(userId);
return ConvertUtils.sourceToTarget(icResiUserEntity,IcResiUserInfoCache.class);
}
@Override
public void epidemicPreventionExport(EpidemicPreventionFormDTO formDTO, HttpServletResponse response) throws IOException {
ExcelWriter excelWriter = null;
formDTO.setPageNo(NumConstant.ONE);
formDTO.setPageSize(NumConstant.TEN_THOUSAND);
try {
String fileName = "居民防疫信息" + DateUtils.format(new Date()) + ".xlsx";
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), EpidemicPreventionExportExcel.class).build();
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build();
List<EpidemicPreventionExportExcel> list = null;
do {
PageData<EpidemicPreventionResultDTO> data = epidemicPreventionList(formDTO);
list = ConvertUtils.sourceToTarget(data.getList(), EpidemicPreventionExportExcel.class);
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
excelWriter.write(list, writeSheet);
} while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize());
} catch (EpmetException e) {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "application/json; charset=UTF-8");
PrintWriter printWriter = response.getWriter();
Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg());
printWriter.write(JSON.toJSONString(result));
printWriter.close();
} catch (Exception e) {
log.error("export exception", e);
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
}

1
epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.78__ic_nat_add_local.sql

@ -0,0 +1 @@
alter table ic_nat_relation add COLUMN `IS_LOCAL_RESI_USER` VARCHAR(1) COMMENT '是否本辖区居民,1:是;0:否'after IC_NAT_ID;

2
epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncRecordDisabilityDao.xml

@ -112,7 +112,7 @@
when id = #{item.id} then '处理失败'
</when>
<otherwise>
when id = #{item.id} then '处理成功'
when id = #{item.id} then ''
</otherwise>
</choose>
</foreach>

9
epmet-user/epmet-user-server/src/main/resources/mapper/IcNatCompareRecordDao.xml

@ -55,6 +55,15 @@
<if test='null != agencyId and "" != agencyId'>
AND (r.AGENCY_ID = #{agencyId} or r.pids like concat('%',#{agencyId},'%') )
</if>
<if test='null != natDate and "" != natDate'>
<if test='null != natStatus and "1" == natStatus'>
AND DATE_FORMAT( c.LATEST_NAT_TIME, '%Y%m%d' ) = #{natDate}
</if>
<if test='null != natStatus and "0" == natStatus'>
AND DATE_FORMAT( c.LATEST_NAT_TIME, '%Y%m%d' ) != #{natDate}
</if>
</if>
ORDER BY
r.IMPORT_TIME DESC,r.AGENCY_ID desc
</select>

49
epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml

@ -38,6 +38,7 @@
a.user_type userType,
b.user_id userId,
b.is_resi_user isResiUser,
a.is_local_resi_user isLocalResiUser,
b.`name` `name`,
b.mobile mobile,
b.id_card idCard,
@ -75,7 +76,7 @@
AND b.sample_time <![CDATA[ <= ]]> #{sampleEndTime}
</if>
<if test='null != isResiUser and "" != isResiUser'>
AND b.is_resi_user = #{isResiUser}
AND a.is_local_resi_user = #{isResiUser}
</if>
ORDER BY b.nat_time DESC, b.id ASC
</select>
@ -169,6 +170,29 @@
</foreach>
</select>
<!-- 获取关系和核酸检测 -->
<select id="getRelationAndNat" resultType="com.epmet.dto.result.RelationAndNatResultDTO">
SELECT
r.ID AS relationId,
i.ID AS natId,
i.ID_CARD,
r.PIDS AS staffAgencyIdPath
FROM ic_nat_relation r
INNER JOIN ic_nat i ON i.ID = r.IC_NAT_ID AND i.DEL_FLAG = 0
WHERE r.DEL_FLAG = 0
AND r.USER_TYPE IN ('import')
</select>
<select id="getResiByIdCards" resultType="com.epmet.entity.IcResiUserEntity">
SELECT * FROM ic_resi_user
WHERE DEL_FLAG = '0'
AND `STATUS` = '0'
AND ID_CARD IN (
<foreach collection="idCards" item="idCard" separator=",">
#{idCard}
</foreach>
)
</select>
<delete id="delById">
DELETE FROM ic_nat WHERE id = #{icNatId}
</delete>
@ -222,4 +246,27 @@
</foreach>)
</update>
<!-- 批量更新关系 -->
<update id="updateRelation">
UPDATE ic_nat_relation
<trim prefix="set" suffixOverrides=",">
<trim prefix="IS_LOCAL_RESI_USER =(case" suffix="end),">
<foreach collection="list" item="l">
when ID = #{l.relationId} then #{l.isLocalResiUser}
</foreach>
</trim>
UPDATED_TIME = NOW()
</trim>
WHERE ID IN(
<foreach collection="list" item="l" separator=",">
#{l.relationId}
</foreach>)
</update>
<update id="updateRelationOther">
UPDATE ic_nat_relation
set IS_LOCAL_RESI_USER = '1',
UPDATED_TIME = NOW()
where user_type != 'import'
</update>
</mapper>

33
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -849,10 +849,10 @@
FROM ic_vaccine
WHERE DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId}
<if test="startDate != null and startDate != ''">
AND DATE_FORMAT(INOCULATE_TIME,"%Y-%m-%d") &gt; #{startDate}
AND DATE_FORMAT(INOCULATE_TIME,"%Y-%m-%d") &gt;= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND DATE_FORMAT(INOCULATE_TIME,"%Y-%m-%d") &lt; #{endDate}
AND DATE_FORMAT(INOCULATE_TIME,"%Y-%m-%d") &lt;= #{endDate}
</if>
GROUP BY ID_CARD ) b ON a.ID_CARD = b.ID_CARD
LEFT JOIN (
@ -860,10 +860,16 @@
FROM ic_nat
WHERE DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId}
<if test="startDate != null and startDate != ''">
AND DATE_FORMAT(NAT_TIME,"%Y-%m-%d") &gt; #{startDate}
AND DATE_FORMAT(NAT_TIME,"%Y-%m-%d") &gt;= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND DATE_FORMAT(NAT_TIME,"%Y-%m-%d") &lt; #{endDate}
AND DATE_FORMAT(NAT_TIME,"%Y-%m-%d") &lt;= #{endDate}
</if>
<if test='natStartDate != null and natStartDate != "" '>
AND DATE_FORMAT(NAT_TIME,"%Y-%m-%d") &gt;= #{natStartDate}
</if>
<if test='natEndDate != null and natEndDate != "" '>
AND DATE_FORMAT(NAT_TIME,"%Y-%m-%d") &lt;= #{natEndDate}
</if>
GROUP BY ID_CARD ) c ON a.ID_CARD = c.ID_CARD
WHERE
@ -1377,4 +1383,23 @@
ORDER BY `name` ASC
</select>
<!-- 根据身份证获取组织下的居民个数 -->
<select id="getResiCount" resultType="com.epmet.dto.result.ResiAndLocalResiResultDTO">
SELECT
(SELECT
COUNT(ID)
FROM ic_resi_user
WHERE DEL_FLAG = '0'
AND `STATUS` = 0
AND PIDS LIKE CONCAT('%',#{agencyId},'%')
AND ID_CARD = #{idCard}) AS isLocal,
COUNT(ID) AS isResi,
id as userId
from ic_resi_user
WHERE DEL_FLAG = '0'
AND `STATUS` = 0
AND CUSTOMER_ID = #{customerId}
AND ID_CARD = #{idCard}
</select>
</mapper>

Loading…
Cancel
Save