From 577d4301f7b7c56a74648a263de89e4b0b6e450f Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 8 Feb 2023 13:29:50 +0800 Subject: [PATCH 01/47] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=97=B6=EF=BC=8C=E6=9C=8D=E5=8A=A1=E4=BA=8B?= =?UTF-8?q?=E9=A1=B9=E5=8F=AF=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/IcPublicServiceOrgServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPublicServiceOrgServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPublicServiceOrgServiceImpl.java index cc1dba2e71..7dd3dbc851 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPublicServiceOrgServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPublicServiceOrgServiceImpl.java @@ -89,11 +89,11 @@ public class IcPublicServiceOrgServiceImpl extends BaseServiceImpl deleteWrapper=new LambdaQueryWrapper<>(); + deleteWrapper.eq(IcPublicServiceOrgServiceMatterEntity::getOrgId,formDTO.getId()); + icPublicServiceOrgServiceMatterDao.delete(deleteWrapper); if(CollectionUtils.isNotEmpty(formDTO.getServiceMatterList())){ - //先删除 - LambdaQueryWrapper deleteWrapper=new LambdaQueryWrapper<>(); - deleteWrapper.eq(IcPublicServiceOrgServiceMatterEntity::getOrgId,formDTO.getId()); - icPublicServiceOrgServiceMatterDao.delete(deleteWrapper); formDTO.getServiceMatterList().forEach(dto->{ IcPublicServiceOrgServiceMatterEntity serviceOrgServiceMatterEntity=ConvertUtils.sourceToTarget(dto,IcPublicServiceOrgServiceMatterEntity.class); serviceOrgServiceMatterEntity.setOrgId(entity.getId()); From 47248cd113ec0f6f41fb1cdc1943e44a6dd446ec Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 8 Feb 2023 13:59:33 +0800 Subject: [PATCH 02/47] or --- .../src/main/resources/mapper/IcPublicServiceOrgDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPublicServiceOrgDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPublicServiceOrgDao.xml index 9d4185f476..a877134331 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPublicServiceOrgDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPublicServiceOrgDao.xml @@ -62,7 +62,7 @@ AND o.`NAME` LIKE concat( '%', #{name}, '%' ) - + m.CATEGORY_ID = #{categoryId} From b2593ce719218c0a022acca19e12934b1770f64d Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 9 Feb 2023 10:24:34 +0800 Subject: [PATCH 03/47] resilogin-internalding --- .../service/impl/UserBaseInfoServiceImpl.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java index 89da786c34..8761e6cbef 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java @@ -575,11 +575,15 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl Date: Thu, 9 Feb 2023 13:22:39 +0800 Subject: [PATCH 04/47] =?UTF-8?q?=E8=AF=9D=E9=A2=98=E8=BD=AC=E8=AE=AE?= =?UTF-8?q?=E9=A2=98=E5=B8=A6=E8=BF=87=E5=8E=BB=E7=BB=8F=E7=BA=AC=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/IssueShiftedFromTopicFormDTO.java | 15 ++++ .../result/ResiTopicAndGroupResultDTO.java | 15 ++++ .../service/impl/ResiTopicServiceImpl.java | 86 ++++++++++++------- .../resources/mapper/topic/ResiTopicDao.xml | 5 +- 4 files changed, 88 insertions(+), 33 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java index 872eb43772..b41592a829 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java @@ -122,4 +122,19 @@ public class IssueShiftedFromTopicFormDTO implements Serializable { private String groupId; private String issueId; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 地址 + */ + private String address; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicAndGroupResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicAndGroupResultDTO.java index ac3516418d..8577b8493b 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicAndGroupResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicAndGroupResultDTO.java @@ -33,4 +33,19 @@ public class ResiTopicAndGroupResultDTO implements Serializable { * 客户Id * */ private String customerId; + + /** + * 定位地址 + * */ + private String locateAddress; + + /** + * 定位经度 + * */ + private String locateLongitude; + + /** + * 定位纬度 + * */ + private String locateDimension; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index 1592aa0fe7..3c000533e0 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -1797,38 +1797,10 @@ public class ResiTopicServiceImpl extends BaseServiceImpl textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScan); - if (!textSyncScanResult.success()) { - throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); - } else { - if (!textSyncScanResult.getData().isAllPass()) { - log.error(String.format(TopicConstant.SHIFT_ISSUE, issueTitle, suggestion)); - throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); - } - } - } + // 是否已经转议题? + checkShiftedIssue(topicTurnIssueFromDTO.getTopicId()); + // 话题转议题审核:标题、建议 + scanIssueContent(topicTurnIssueFromDTO.getIssueTitle(),topicTurnIssueFromDTO.getSuggestion()); FirstTopicShiftedToIssueApplicationResultDTO result = null; //1.统一时间(群组服务 -> 议题服务) @@ -1856,6 +1828,9 @@ public class ResiTopicServiceImpl extends BaseServiceImpl issueResult = issueOpenFeignClient.topicShiftedToIssueV2(issueInfo); if (issueResult == null || !issueResult.success() || null == issueResult.getData()) { @@ -1994,6 +1969,53 @@ public class ResiTopicServiceImpl extends BaseServiceImpl result = govIssueFeignClient.checkTopicShiftIssue(topicInfoFormDTO); + if (result.success()) { + Integer issueCount = result.getData(); + if (issueCount != NumConstant.ZERO) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), ModuleConstant.ALREADY_SHIFT_ISSUE, ModuleConstant.ALREADY_SHIFT_ISSUE); + } + } + } + + /** + * 审核提出来 + * @param issueTitle + * @param suggestion + */ + private void scanIssueContent(String issueTitle, String suggestion) { + //话题转议题审核:标题、建议 + if (StringUtils.isNotBlank(issueTitle) || StringUtils.isNotBlank(suggestion)) { + TextScanParamDTO textScan = new TextScanParamDTO(); + //标题 + TextTaskDTO taskTitle = new TextTaskDTO(); + taskTitle.setContent(issueTitle); + taskTitle.setDataId(UUID.randomUUID().toString().replace("-", "")); + textScan.getTasks().add(taskTitle); + //建议 + TextTaskDTO taskSuggestion = new TextTaskDTO(); + taskSuggestion.setDataId(UUID.randomUUID().toString().replace("-", "")); + taskSuggestion.setContent(suggestion); + textScan.getTasks().add(taskSuggestion); + Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScan); + if (!textSyncScanResult.success()) { + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + log.error(String.format(TopicConstant.SHIFT_ISSUE, issueTitle, suggestion)); + throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); + } + } + } + } + /** * @Description 工作端审核议题通过时获取一些议题相关信息 * @param param diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml index 2610b429eb..c5ebbc64ea 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml @@ -400,7 +400,10 @@ groupp.ID AS groupId, IFNULL(groupp.GRID_ID,'') AS gridId, IFNULL(groupp.CUSTOMER_ID,'') AS customerId, - topic.CREATED_BY AS topicAuthorId + topic.CREATED_BY AS topicAuthorId, + topic.LOCATE_ADDRESS as locateAddress, + topic.LOCATE_LONGITUDE as locateLongitude, + topic.LOCATE_DIMENSION as locateDimension FROM RESI_TOPIC topic INNER JOIN RESI_GROUP groupp ON topic.GROUP_ID = groupp.ID From 4285e2e0ffcd2293371c6c93073791578e7f1af6 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 9 Feb 2023 13:49:53 +0800 Subject: [PATCH 05/47] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/IssueServiceImpl.java | 36 ++++++++++--------- .../form/IssueShiftedFromTopicFormDTO.java | 15 ++++++++ .../service/impl/ResiTopicServiceImpl.java | 4 ++- 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index b576a0f1ca..ac11b644fc 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -510,23 +510,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp @Override @Transactional(rollbackFor = Exception.class) public String audit(TokenDto token, IssueAuditionFormDTO param){ - - if (StringUtils.isNotBlank(param.getReason())) { - TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); - TextTaskDTO taskDTO = new TextTaskDTO(); - taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); - taskDTO.setContent(param.getReason()); - textScanParamDTO.getTasks().add(taskDTO); - Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); - if (!textSyncScanResult.success()){ - throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); - } else { - if (!textSyncScanResult.getData().isAllPass()) { - throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); - } - } - } - + scanReason(param.getReason()); Date unifiedDate = new Date(); IssueApplicationDTO application = applicationService.get(param.getIssueApplicationId()); @@ -613,6 +597,24 @@ public class IssueServiceImpl extends BaseServiceImpl imp return app2update.getIssueId(); } + private void scanReason(String reason) { + if (StringUtils.isNotBlank(reason)) { + TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); + TextTaskDTO taskDTO = new TextTaskDTO(); + taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); + taskDTO.setContent(reason); + textScanParamDTO.getTasks().add(taskDTO); + Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); + if (!textSyncScanResult.success()){ + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); + } + } + } + } + /** * @Description 表决中列表 * @param issueListForm diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java index 6eba4678d7..ac45f7b351 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/IssueShiftedFromTopicFormDTO.java @@ -122,4 +122,19 @@ public class IssueShiftedFromTopicFormDTO implements Serializable { private String groupId; private String issueId; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 地址 + */ + private String address; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index 3c000533e0..eeda789667 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -2041,7 +2041,9 @@ public class ResiTopicServiceImpl extends BaseServiceImpl Date: Thu, 9 Feb 2023 14:11:51 +0800 Subject: [PATCH 06/47] =?UTF-8?q?ww=E6=B2=A1=E6=83=B3=E5=88=B0=E6=89=8B?= =?UTF-8?q?=E5=86=99=E7=9A=84insert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/IssueDao.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml index 77e9db60da..5f7be12f1b 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml @@ -115,6 +115,15 @@ suggestion, + + ADDRESS, + + + LONGITUDE, + + + LATITUDE, + customer_id, @@ -186,6 +195,15 @@ #{suggestion}, + + #{address}, + + + #{longitude}, + + + #{latitude}, + #{customerId}, From 28c42a7308cf0f9e8a6b236964e83d9fbe517146 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 9 Feb 2023 14:39:43 +0800 Subject: [PATCH 07/47] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E5=BC=82=E5=B8=B8=E5=A4=A7?= =?UTF-8?q?=E5=93=A5=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/IssueCommentServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCommentServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCommentServiceImpl.java index 863c589f82..61df62df96 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCommentServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCommentServiceImpl.java @@ -16,6 +16,7 @@ import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.service.IssueCommentService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -30,6 +31,7 @@ import java.util.List; * @author generator generator@elink-cn.com * @since v1.0.0 2023-02-02 */ +@Slf4j @Service public class IssueCommentServiceImpl extends BaseServiceImpl implements IssueCommentService { @Autowired @@ -61,6 +63,7 @@ public class IssueCommentServiceImpl extends BaseServiceImpl> userInfoRes= userOpenFeignClient.queryUserBaseInfo(userIdList); if(!userInfoRes.success()|| CollectionUtils.isEmpty(userInfoRes.getData())){ + log.error("议题评论查询用户信息异常userId: "+dto.getUserId()); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"查询用户信息异常userId:"+dto.getUserId(),"查询用户信息异常"); } IssueCommentEntity entity = ConvertUtils.sourceToTarget(dto, IssueCommentEntity.class); From edfa7ffcd87f5d6d1408fda2f1972e09bf8debe5 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 9 Feb 2023 14:47:15 +0800 Subject: [PATCH 08/47] =?UTF-8?q?/epmetuser/userbaseinfo/getUserInfo/{user?= =?UTF-8?q?Id}=E6=80=A7=E5=88=AB=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/redis/UserBaseInfoRedis.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBaseInfoRedis.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBaseInfoRedis.java index 0322d7b528..9fa450b142 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBaseInfoRedis.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBaseInfoRedis.java @@ -131,15 +131,19 @@ public class UserBaseInfoRedis { String gridFullName = gridInfoCache.getGridNamePath(); baseInfo.setRegisteredGridName(gridFullName); StringBuffer buffer = new StringBuffer(baseInfo.getSurname()); - switch (baseInfo.getGender()) { - case NumConstant.ONE_STR: - buffer.append(ModuleConstant.RESI_USER_NICKNAME_SUFFIX_MALE); - break; - case NumConstant.TWO_STR: - buffer.append(ModuleConstant.RESI_USER_NICKNAME_SUFFIX_FEMALE); - break; - default: - buffer.append(ModuleConstant.RESI_USER_NICKNAME_SUFFIX_GENDER_UNKNOWN); + if(StringUtils.isNotBlank(baseInfo.getGender())){ + switch (baseInfo.getGender()) { + case NumConstant.ONE_STR: + buffer.append(ModuleConstant.RESI_USER_NICKNAME_SUFFIX_MALE); + break; + case NumConstant.TWO_STR: + buffer.append(ModuleConstant.RESI_USER_NICKNAME_SUFFIX_FEMALE); + break; + default: + buffer.append(ModuleConstant.RESI_USER_NICKNAME_SUFFIX_GENDER_UNKNOWN); + } + }else{ + buffer.append(ModuleConstant.RESI_USER_NICKNAME_SUFFIX_GENDER_UNKNOWN); } baseInfo.setShowName(buffer.toString()); } From 4159955d4d39c4047e7aa2903b2b1879698d200c Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 9 Feb 2023 19:12:14 +0800 Subject: [PATCH 09/47] =?UTF-8?q?=E8=AE=A4=E8=AF=81=E5=85=9A=E5=91=98?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=B6/resi/mine/resiregister/sub?= =?UTF-8?q?mit=E8=BF=94=E5=9B=9EidCard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PartyMemberConfirmServiceImpl.java | 23 +++++++++++-------- .../dto/result/UserResiInfoResultDTO.java | 4 ++++ .../service/impl/UserResiInfoServiceImpl.java | 1 + 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java index a980778c64..2aa897402d 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java @@ -114,17 +114,20 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO(); userResiInfoFormDTO.setCustomerId(fromDto.getCustomerId()); userResiInfoFormDTO.setUserId(fromDto.getUserId()); - UserResiInfoResultDTO userResiInfoResult = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO).getData(); - if (null != userResiInfoResult) { - PartymemberInfoDTO partyMemberInfo = ConvertUtils.sourceToTarget(userResiInfoResult, - PartymemberInfoDTO.class); - partyMemberInfo.setId(""); - partyMemberInfo.setMobile(userResiInfoResult.getRegMobile()); - partyMemberInfo.setEstate(userResiInfoResult.getDistrict()); - partyMemberInfo.setBuilding(userResiInfoResult.getBuildingAddress()); - result.setPartyMemberInfo(partyMemberInfo); + Result res = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO); + if (res.success() && null != res) { + UserResiInfoResultDTO userResiInfoResult = res.getData(); + if (null != userResiInfoResult) { + PartymemberInfoDTO partyMemberInfo = ConvertUtils.sourceToTarget(userResiInfoResult, + PartymemberInfoDTO.class); + partyMemberInfo.setId(""); + partyMemberInfo.setMobile(userResiInfoResult.getRegMobile()); + partyMemberInfo.setEstate(userResiInfoResult.getDistrict()); + partyMemberInfo.setBuilding(userResiInfoResult.getBuildingAddress()); + partyMemberInfo.setIdCard(userResiInfoResult.getIdNum()); + result.setPartyMemberInfo(partyMemberInfo); + } } - } // 将访问行为存入热心居民申请行为记录表 String visitId = saveOrUpdateVisit(null, fromDto, PartyMemberConstant.OPERATE_INITIALIZE); diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserResiInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserResiInfoResultDTO.java index a4be7e8745..4dc667ec51 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserResiInfoResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserResiInfoResultDTO.java @@ -59,4 +59,8 @@ public class UserResiInfoResultDTO implements Serializable { private String nickName; private String realName; + /** + * 身份证号 + */ + private String idNum; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java index 3efd7e01fa..6101e9c2d5 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java @@ -186,6 +186,7 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl Date: Fri, 10 Feb 2023 09:17:13 +0800 Subject: [PATCH 10/47] =?UTF-8?q?=E5=8A=9E=E4=BA=8B=E6=8C=87=E5=8D=97?= =?UTF-8?q?=E5=B7=B2=E8=AF=BB=E6=9C=AA=E8=AF=BB=E6=A0=87=E5=BF=97=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gov-voice-server/src/main/resources/mapper/GuideDao.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideDao.xml index 06e0fa5407..c93cf14e36 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideDao.xml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideDao.xml @@ -29,7 +29,8 @@ g.UPDATED_TIME AS "updatedTime", if(exists( select gr.id from guide_reader gr where gr.del_flag='0' - and gr.GUIDE_ID=g.id),1,0) AS readFlag + and gr.GUIDE_ID=g.id + and gr.USER_ID = #{userId}),1,0) AS readFlag FROM guide g INNER JOIN guide_category gc ON g.CATEGORY_CODE = gc.CATEGORY_CODE AND gc.DEL_FLAG = 0 AND gc.CUSTOMER_ID = #{customerId} From 273294a31f4a73d61996c3ee40338bcba9799d6f Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 10 Feb 2023 09:44:12 +0800 Subject: [PATCH 11/47] =?UTF-8?q?=E4=BB=A5=E7=94=A8=E6=88=B7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=9A=84=E4=B8=BA=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/UserBaseInfoServiceImpl.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java index 8761e6cbef..1d5b46b1ca 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java @@ -574,14 +574,20 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl Date: Fri, 10 Feb 2023 10:30:43 +0800 Subject: [PATCH 12/47] set --- .../src/main/java/com/epmet/redis/UserBaseInfoRedis.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBaseInfoRedis.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBaseInfoRedis.java index 9fa450b142..8b42599906 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBaseInfoRedis.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/redis/UserBaseInfoRedis.java @@ -183,7 +183,7 @@ public class UserBaseInfoRedis { } } } - + set(baseInfo); return baseInfo; } @@ -270,7 +270,7 @@ public class UserBaseInfoRedis { } } } - + set(baseInfo); return baseInfo; } From c7495915849c900e5901e194ee195afc365ccd48 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 10 Feb 2023 10:44:27 +0800 Subject: [PATCH 13/47] =?UTF-8?q?=E8=AF=A5=E5=BB=BA=E8=AE=AE=E5=B7=B2?= =?UTF-8?q?=E8=A2=AB=E5=9B=9E=E5=A4=8D=EF=BC=8C=E4=B8=8D=E8=83=BD=E5=86=8D?= =?UTF-8?q?=E6=AC=A1=E5=9B=9E=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/UserAdviceServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java index 55c7bd0e13..b3ac688a0f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java @@ -25,6 +25,7 @@ import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; @@ -163,7 +164,7 @@ public class UserAdviceServiceImpl extends BaseServiceImpl Date: Fri, 10 Feb 2023 11:21:13 +0800 Subject: [PATCH 14/47] =?UTF-8?q?yitiId=E4=B8=8D=E8=83=BD=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/dto/form/IssueDetailFormDTO.java | 6 ++++-- .../src/main/java/com/epmet/controller/IssueController.java | 1 + .../main/java/com/epmet/dto/form/IssueDetailFormDTO.java | 6 ++++-- .../src/main/java/com/epmet/controller/IssueController.java | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueDetailFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueDetailFormDTO.java index 84b0d8f5e6..11532b097f 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueDetailFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueDetailFormDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -13,8 +14,9 @@ import java.io.Serializable; @Data public class IssueDetailFormDTO implements Serializable { private static final long serialVersionUID = 4859779755214503489L; - - @NotBlank(message = "议题id不能为空") + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + @NotBlank(message = "议题id不能为空",groups =AddUserShowGroup.class ) private String issueId; } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java index efb1ede9f1..1f642c9790 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java @@ -43,6 +43,7 @@ public class IssueController { */ @PostMapping(value = "detail") public Result detail(@RequestBody IssueDetailFormDTO issueDetail){ + ValidatorUtils.validateEntity(issueDetail,IssueDetailFormDTO.AddUserShowGroup.class); return new Result().ok(issueService.detail(issueDetail)); } diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueDetailFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueDetailFormDTO.java index 84b0d8f5e6..22e0323ed6 100644 --- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueDetailFormDTO.java +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueDetailFormDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -13,8 +14,9 @@ import java.io.Serializable; @Data public class IssueDetailFormDTO implements Serializable { private static final long serialVersionUID = 4859779755214503489L; - - @NotBlank(message = "议题id不能为空") + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + @NotBlank(message = "议题id不能为空",groups = AddUserShowGroup.class) private String issueId; } diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java index 881b45bb13..fe7136134b 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java @@ -36,7 +36,7 @@ public class IssueController { @PostMapping(value = "/detail") // @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_DETAIL) public Result detail(@LoginUser TokenDto tokenDto,@RequestBody IssueDetailFormDTO issueDetail){ - ValidatorUtils.validateEntity(issueDetail); + ValidatorUtils.validateEntity(issueDetail,IssueDetailFormDTO.AddUserShowGroup.class); return new Result().ok(issueService.detail(tokenDto,issueDetail)); } From 790f35d7b5a4be5e131918312b19c2e158607051 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 10 Feb 2023 14:28:13 +0800 Subject: [PATCH 15/47] shishi --- .../src/main/java/com/epmet/controller/UserBadgeController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBadgeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBadgeController.java index 4b6b4c2c56..637da83ce0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBadgeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBadgeController.java @@ -104,6 +104,7 @@ public class UserBadgeController { */ @PostMapping("certification/detail") public Result certificationDetail(@LoginUser TokenDto tokenDto,@RequestBody CertificationDetailFormDTO certificationDetailFormDTO){ + certificationDetailFormDTO.setCustomerId(tokenDto.getCustomerId()); ValidatorUtils.validateEntity(certificationDetailFormDTO); return new Result().ok(userBadgeService.certificationDetail(tokenDto,certificationDetailFormDTO)); } From 4f412bd094a6ecac7f460b60f8370dbcc344c486 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 10 Feb 2023 15:18:30 +0800 Subject: [PATCH 16/47] =?UTF-8?q?/resi/mine/badge/list=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E6=B2=A1=E6=9C=89=E5=BE=BD=E7=AB=A0=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=88=9D=E5=A7=8B=E5=8C=96=E4=B8=80=E5=A5=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/UserBadgeServiceImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java index 527c8e0c43..009870cb44 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java @@ -125,9 +125,13 @@ public class UserBadgeServiceImpl implements UserBadgeService { List userAuthBadgeList = userBadgeDao.selectAuthRecord(userOperListFormDTO.getUserId()); Object userBadge = userBadgeRedis.getCustomerBadge(userOperListFormDTO.getCustomerId()); if (null == userBadge){ - return new ArrayList<>(); + this.reloadCustomerBadge(userOperListFormDTO.getCustomerId()); + userBadge = userBadgeRedis.getCustomerBadge(userOperListFormDTO.getCustomerId()); } List userOperListResultDTOS = JSON.parseArray(userBadge.toString(), UserOperListResultDTO.class); + if(CollectionUtils.isEmpty(userOperListResultDTOS)){ + return new ArrayList<>(); + } // 没有任何记录 if (CollectionUtils.isEmpty(userAuthBadgeList)){ userOperListResultDTOS.forEach(u -> { From 1c1c4c6369d34d0654784f2a7199d5a08dbd3b3b Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 13 Feb 2023 09:12:55 +0800 Subject: [PATCH 17/47] autoFailedDetail --- .../partymember/service/impl/PartyMemberConfirmServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java index 2aa897402d..cb24ca9f41 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java @@ -505,7 +505,7 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService List failedReason = new ArrayList<>(); if (null != fromDTO.getAutoId() && !fromDTO.getAutoId().isEmpty()&& !("null").equals(fromDTO.getAutoId())) { PartymemberConfirmAutoEntity autoEntity = partymemberConfirmAutoService.selectById(fromDTO.getAutoId()); - resultDTO.setCertifyTime(autoEntity.getContrastTime().getTime()); + resultDTO.setCertifyTime(autoEntity.getCreatedTime().getTime()); if (PartyMemberConstant.SAME.equals(autoEntity.getMobileResult())) { failedReason.add("手机号匹配"); } else { From 7ba71a9635199ef5e90c7e5b902855dc4487d839 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 16 Feb 2023 09:33:28 +0800 Subject: [PATCH 18/47] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=B0=8F=E5=8C=BA?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=E6=8E=89=E4=BA=8C=E7=BB=B4=E7=A0=81=E9=82=A3?= =?UTF-8?q?=E4=B8=80=E5=9D=971623486671774978060?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/HouseInformationController.java | 1 + .../epmet/controller/NeighborHoodController.java | 6 ++++++ .../com/epmet/service/NeighborHoodService.java | 7 ++++++- .../service/impl/NeighborHoodServiceImpl.java | 16 +++++++++++++++- 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseInformationController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseInformationController.java index 21cddd9951..0de2518bcd 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseInformationController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseInformationController.java @@ -254,6 +254,7 @@ public class HouseInformationController { /** * @describe: 【双实录入】获取小区编码 + * 生成小区编码 * @author wangtong * @date 2022/6/29 9:59 * @params [tokenDTO, gridId] diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java index d318f9116b..9302784464 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java @@ -77,6 +77,12 @@ public class NeighborHoodController { } + /** + * 房屋管理-新增小区 + * @param tokenDTO + * @param formDTO + * @return + */ @NoRepeatSubmit @PostMapping("neighborhoodadd") public Result neighborhoodadd(@LoginUser TokenDto tokenDTO, @RequestBody IcNeighborHoodAddFormDTO formDTO){ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/NeighborHoodService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/NeighborHoodService.java index b091fc4e32..72524f19ff 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/NeighborHoodService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/NeighborHoodService.java @@ -33,7 +33,12 @@ import javax.servlet.http.HttpServletResponse; * @since v1.0.0 2021-10-25 */ public interface NeighborHoodService{ - + /** + * 房屋管理-新增小区 + * + * @param customerId + * @param formDTO + */ void addNeighborhood(String customerId, IcNeighborHoodAddFormDTO formDTO); PageData listNeighborhood(IcNeighborHoodListFormDTO formDTO); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java index a7d6cf0769..1571604c05 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.enums.CollectUrlEnum; import com.epmet.commons.tools.enums.OrgTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -82,7 +83,12 @@ public class NeighborHoodServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(IcNeighborHoodEntity::getCustomerId,customerId) From 930bebd386c97e130471a0b624fe4a6bcde0b215 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 16 Feb 2023 10:02:54 +0800 Subject: [PATCH 19/47] =?UTF-8?q?/gov/org/house/houseadd=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=E6=8E=89=E4=BA=8C=E7=BB=B4=E7=A0=81=E7=94=9F=E6=88=90=E8=BF=99?= =?UTF-8?q?=E4=B8=80=E5=9D=97=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/HouseController.java | 8 ++++++++ .../java/com/epmet/service/HouseService.java | 7 ++++++- .../com/epmet/service/impl/HouseServiceImpl.java | 16 ++++++++++------ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index f462449ec9..53738a3d4c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -169,6 +169,14 @@ public class HouseController implements ResultDataResolver { return new Result>().ok(houseService.getHouseList(formDTO)); } + /** + * 房屋管理-新增房屋 + * + * @param tokenDTO + * @param formDTO + * @return + * @throws Exception + */ @NoRepeatSubmit @PostMapping("houseadd") public Result houseAdd(@LoginUser TokenDto tokenDTO, @RequestBody IcHouseAddFormDTO formDTO) throws Exception { diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java index d1d1b87503..1161a1ee9f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java @@ -38,7 +38,12 @@ import java.util.Set; */ public interface HouseService { - + /** + * 房屋管理-新增房屋 + * + * @param customerId + * @param formDTO + */ void addHouse(String customerId, IcHouseAddFormDTO formDTO); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index 4cd8945a4a..d7e3b1f8b2 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -8,7 +8,6 @@ import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.HouseQrcodeEnum; @@ -35,17 +34,14 @@ import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.*; import com.epmet.dto.*; import com.epmet.dto.form.*; -import com.epmet.dto.form.stats.UserHouseStatsQueryFormDTO; import com.epmet.dto.result.*; import com.epmet.entity.*; import com.epmet.enums.*; import com.epmet.feign.*; import com.epmet.model.HouseInfoModel; import com.epmet.model.ImportHouseInfoListener; -import com.epmet.redis.CustomerAgencyRedis; import com.epmet.redis.IcHouseRedis; import com.epmet.service.*; -import com.epmet.stats.UserHouseStatsResultDTO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.google.common.cache.Cache; @@ -69,7 +65,6 @@ import java.awt.image.BufferedImage; import java.io.*; import java.net.URLEncoder; import java.text.NumberFormat; -import java.time.LocalDate; import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; @@ -137,7 +132,12 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { @Autowired private DataReportOpenFeignClient dataReportOpenFeignClient; - + /** + * 房屋管理-新增房屋 + * + * @param customerId + * @param formDTO + */ @Override @Transactional(rollbackFor = Exception.class) public void addHouse(String customerId, IcHouseAddFormDTO formDTO) { @@ -1155,6 +1155,10 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { if (null == house) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未查到房屋信息", "未查到房屋信息"); } + // 市北区-智慧社区: 1623486671774978060 23.2月为了方便社区的同事们演示系统,新建的一个客户id + if("1623486671774978060".equals(house.getCustomerId())){ + return StrConstant.EPMETY_STR; + } //url组成:小程序地址?房屋编码 CustomerOrgParameterEntity codePre = icHouseDao.selectByCustomerId(house.getCustomerId(), HouseQrcodeEnum.PREFIX_KEY.getCode()); if(null == codePre){ From 5fe95c558d92e36f9a42f8523440319ae2015798 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 17 Feb 2023 12:55:12 +0800 Subject: [PATCH 20/47] =?UTF-8?q?=E7=A6=8F=E5=88=A9=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=91=E6=94=BE=E6=A0=87=E8=AF=86=E3=80=81?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E7=B1=BB=E5=88=AB=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/ChangeWelfareDTO.java | 14 ++++++- .../com/epmet/entity/ChangeWelfareEntity.java | 8 ++++ .../com/epmet/excel/ChangeWelfareExcel.java | 18 +++++++-- .../epmet/excel/ChangeWelfareImportExcel.java | 10 +++++ .../epmet/service/ChangeWelfareService.java | 2 +- .../impl/ChangeWelfareServiceImpl.java | 35 +++++++++++++----- .../migration/V0.0.94__pli_change_welfare.sql | 4 ++ .../resources/excel/pli_change_welfare.xlsx | Bin 11358 -> 11461 bytes .../resources/mapper/ChangeWelfareDao.xml | 16 ++++++-- 9 files changed, 89 insertions(+), 18 deletions(-) create mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.94__pli_change_welfare.sql diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java index 02ce0b34c8..7ee639d7dc 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java @@ -1,6 +1,8 @@ package com.epmet.dto; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; +import org.hibernate.validator.constraints.Length; import java.io.Serializable; import java.util.Date; @@ -16,7 +18,7 @@ import java.util.Date; public class ChangeWelfareDTO implements Serializable { private static final long serialVersionUID = 1L; - + public interface AddUserShowGroup extends CustomerClientShowGroup {} /** * 主键 */ @@ -116,4 +118,14 @@ public class ChangeWelfareDTO implements Serializable { * 是否享受福利,1是 0否 空是 */ private String isWelfare; + + /** + * 福利发放标识:1:已发放;0:未发放 + */ + private Integer grantFlag; + /** + * 福利类别 + */ + @Length(max = 100,message = "福利类别最多输入100字",groups = AddUserShowGroup.class) + private String categoryName; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/ChangeWelfareEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/ChangeWelfareEntity.java index 2ddb43582a..7f0ec9189d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/ChangeWelfareEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/ChangeWelfareEntity.java @@ -72,6 +72,14 @@ public class ChangeWelfareEntity extends BaseEpmetEntity { * 移除原因 */ private String removeReason; + /** + * 福利发放标识:1:已发放;0:未发放 + */ + private Integer grantFlag; + /** + * 福利类别 + */ + private String categoryName; /** * 客户ID diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/ChangeWelfareExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/ChangeWelfareExcel.java index acb7705b2f..5a58288ba0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/ChangeWelfareExcel.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/ChangeWelfareExcel.java @@ -21,13 +21,13 @@ public class ChangeWelfareExcel { // @Excel(name = "epmet网格ID") // private String gridId; - @Excel(name = "姓名") + @Excel(name = "姓名",width = 20) private String name; - @Excel(name = "证件号") + @Excel(name = "证件号",width = 20) private String idCard; - @Excel(name = "手机号") + @Excel(name = "手机号",width = 20) private String mobile; @Excel(name = "性别",replace = { "男_1", "女_0", "女_2", " _null"} ) @@ -36,8 +36,18 @@ public class ChangeWelfareExcel { // @Excel(name = "类型") // private String type; // - @Excel(name = "加入时间") + @Excel(name = "加入时间",width = 25) private String joinDate; + /** + * 福利发放标识:1:已发放;0:未发放 + */ + @Excel(name = "福利发放",replace = { "已发放_1", "未发放_0", "_null"},width = 20) + private Integer grantFlag; + /** + * 福利类别 + */ + @Excel(name = "福利类别",width = 120) + private String categoryName; // // @Excel(name = "加入原因") // private String joinReason; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/ChangeWelfareImportExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/ChangeWelfareImportExcel.java index 992be96b4a..07869bfb2f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/ChangeWelfareImportExcel.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/ChangeWelfareImportExcel.java @@ -33,6 +33,16 @@ public class ChangeWelfareImportExcel { // @Excel(name = "客户ID") // private String customerId; + /** + * 福利发放标识:1:已发放;0:未发放 + */ + @Excel(name = "福利发放",replace = { "已发放_1", "未发放_0", "_null"}) + private Integer grantFlag; + /** + * 福利类别 + */ + @Excel(name = "福利类别") + private String categoryName; @ExcelIgnore private Boolean addStatus = false; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/ChangeWelfareService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/ChangeWelfareService.java index 184cfd9c9a..099c7ae432 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/ChangeWelfareService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/ChangeWelfareService.java @@ -21,7 +21,7 @@ import java.util.Map; public interface ChangeWelfareService extends BaseService { /** - * 默认分页 + * 福利人员管理-分页查询 * * @param params * @return PageData diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java index f5808bdf3b..9fd94f7a7f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java @@ -16,10 +16,7 @@ import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; 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.ExcelPoiUtils; -import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.*; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; @@ -38,7 +35,6 @@ import com.epmet.entity.ChangeWelfareEntity; import com.epmet.excel.ChangeWelfareImportExcel; import com.epmet.excel.error.ChangeWelfareErrorExcel; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; -import com.epmet.feign.GovOrgFeignClient; import com.epmet.feign.OssFeignClient; import com.epmet.redis.ChangeWelfareRedis; import com.epmet.service.ChangeWelfareService; @@ -88,12 +84,15 @@ public class ChangeWelfareServiceImpl extends BaseServiceImpl page(Map params) { params.put("customerId", loginUserUtil.getLoginUserCustomerId()); @@ -137,6 +136,12 @@ public class ChangeWelfareServiceImpl extends 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 RyJbLX2vXpY-~D^;{{V&@GeiIY delta 5344 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 AND w.JOIN_DATE <= #{endTime} + + AND w.CATEGORY_NAME like concat('%',#{categoryName},'%') + + + AND w.GRANT_FLAG = #{grantFlag} + order by w.CREATED_TIME desc @@ -76,12 +84,14 @@ where ID_CARD=#{idCard} and del_flag='0' - + update pli_change_welfare set REMOVE_DATE=#{removeDate}, REMOVE_REASON=#{removeReason}, - del_flag='1' + del_flag='1', + UPDATED_BY = #{updatedBy}, + UPDATED_TIME = #{removeDate} where del_flag='0' AND ID = #{id} From 64a9eae8cdecf9290616db982d9bc53e5ed94e70 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 17 Feb 2023 14:26:06 +0800 Subject: [PATCH 21/47] =?UTF-8?q?=E8=81=94=E5=BB=BA=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E3=80=81=E8=81=94=E5=BB=BA=E5=8D=95=E4=BD=8D=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcPartyActivityController.java | 31 ++++++++++++++++++ .../controller/IcPartyUnitController.java | 28 ++++++++++++++++ .../templates/icpartyactivity_import_tem.xlsx | Bin 0 -> 9091 bytes .../templates/icpartyunit_impoort_tem.xlsx | Bin 0 -> 9316 bytes 4 files changed, 59 insertions(+) create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/icpartyactivity_import_tem.xlsx create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/icpartyunit_impoort_tem.xlsx diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java index 38b63b836d..5fb1845333 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java @@ -41,13 +41,18 @@ import com.epmet.service.IcPartyActivityService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.FilenameUtils; +import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -214,4 +219,30 @@ public class IcPartyActivityController { PageData page = icPartyActivityService.getActivityList(tokenDto, formDTO); return new Result>().ok(page); } + + /** + * 下载联建活动导入模板 + * @param response + * @throws IOException + */ + @RequestMapping(value = "import-template-download", method = {RequestMethod.GET, RequestMethod.POST}) + public void downloadTemplate(HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + //response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("联建活动导入模板", "UTF-8") + ".xlsx"); + + InputStream is = this.getClass().getClassLoader().getResourceAsStream("templates/icpartyactivity_import_tem.xlsx"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + } + + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index 4545cb226b..dfa0808fce 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -27,14 +27,19 @@ import com.epmet.service.IcPartyUnitService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.FilenameUtils; +import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; @@ -330,4 +335,27 @@ public class IcPartyUnitController { return new Result(); } + /** + * 下载联建单位导入模板 + * @param response + * @throws IOException + */ + @RequestMapping(value = "import-template-download", method = {RequestMethod.GET, RequestMethod.POST}) + public void downloadTemplate(HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + //response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("联建单位导入模板", "UTF-8") + ".xlsx"); + + InputStream is = this.getClass().getClassLoader().getResourceAsStream("templates/icpartyunit_impoort_tem.xlsx"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/icpartyactivity_import_tem.xlsx b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/icpartyactivity_import_tem.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1d04c7c15d9349ff3e64e60391b15e6d6dcc760a GIT binary patch literal 9091 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 literal 0 HcmV?d00001 From c1d3bdee289e338dbb1fc4d3d27d425136923144 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 17 Feb 2023 17:05:41 +0800 Subject: [PATCH 22/47] =?UTF-8?q?=E8=81=94=E5=BB=BA=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/IcPartyUnitDTO.java | 5 ++ .../com/epmet/dto/form/PartyUnitFormDTO.java | 7 +- .../controller/IcPartyUnitController.java | 67 ++++++++++++------- .../com/epmet/excel/IcPartyUnitExcel.java | 41 ++++++++---- .../service/impl/IcPartyUnitServiceImpl.java | 6 ++ 5 files changed, 83 insertions(+), 43 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java index 1aed3be19f..b269fa0d5b 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java @@ -86,6 +86,11 @@ public class IcPartyUnitDTO implements Serializable { */ private List serviceMatterNameList; + /** + * 服务事项名称多个按照中文顿号隔开 + */ + private String serviceMatterName; + /** * 联系人 */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyUnitFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyUnitFormDTO.java index ec4a1751dd..f238e5dbe1 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyUnitFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyUnitFormDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.dto.form.PageFormDTO; import lombok.Data; import lombok.NoArgsConstructor; @@ -12,7 +13,7 @@ import java.io.Serializable; */ @NoArgsConstructor @Data -public class PartyUnitFormDTO implements Serializable { +public class PartyUnitFormDTO extends PageFormDTO implements Serializable { private static final long serialVersionUID = 1256798619648265622L; private String customerId; @@ -22,8 +23,8 @@ public class PartyUnitFormDTO implements Serializable { private String type; private String contact; private String contactMobile; - private Integer pageNo; - private Integer pageSize; + // private Integer pageNo; + // private Integer pageSize; /** * 工作端当前登录人员 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index dfa0808fce..2832d0009d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -1,16 +1,24 @@ package com.epmet.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; import com.epmet.commons.rocketmq.messages.ServerSatisfactionCalFormDTO; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.AppClientConstant; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; @@ -28,6 +36,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.FilenameUtils; 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.*; @@ -40,11 +49,9 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; -import java.nio.file.Path; -import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -64,11 +71,6 @@ public class IcPartyUnitController { @Resource private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient; - /** - * 联建单位上传临时目录 - */ - private Path IC_PARTY_UNIT_UPLOAD_DIR; - /** * 联建单位-列表查询 @@ -122,25 +124,38 @@ public class IcPartyUnitController { @PostMapping("export") public void export(@LoginUser TokenDto tokenDto, @RequestBody PartyUnitFormDTO formDTO, HttpServletResponse response) throws Exception { formDTO.setCustomerId(tokenDto.getCustomerId()); - List list = icPartyUnitService.list(formDTO); - List excelList = new ArrayList<>(); - AtomicInteger i = new AtomicInteger(1); - if (CollectionUtils.isNotEmpty(list)) { - excelList = list.stream().map(item -> { - IcPartyUnitExcel excel = new IcPartyUnitExcel(); - excel.setIndex(i.getAndIncrement()); - excel.setUnitName(item.getUnitName()); - excel.setContact(item.getContact()); - excel.setContactMobile(item.getContactMobile()); - excel.setType(item.getType()); - excel.setMemberCount(item.getMemberCount()); - excel.setRemark(item.getRemark()); - excel.setSatisfaction(item.getSatisfaction()); - excel.setServiceMatter(String.join(String.valueOf((char) 10), item.getServiceMatterList())); - return excel; - }).collect(Collectors.toList()); + formDTO.setIsPage(false); + formDTO.setCurrentStaffId(tokenDto.getUserId()); + ExcelWriter excelWriter = null; + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + int pageNo = formDTO.getPageNo(); + try { + // 这里 需要指定写用哪个class去写 + String today= DateUtils.format(new Date(),DateUtils.DATE_PATTERN_MMDD); + String fileName = "行程上报信息".concat(today); + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPartyUnitExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + PageData data = null; + List list = null; + do { + data = icPartyUnitService.search(formDTO); + data.getList().stream().map(item -> { + item.setServiceMatterName(StringUtils.join(item.getServiceMatterList(), StrConstant.COMMA_ZH)); + return item; + }).collect(Collectors.toList()); + list = ConvertUtils.sourceToTarget(data.getList(), IcPartyUnitExcel.class); + formDTO.setPageNo(++pageNo); + excelWriter.write(list, writeSheet); + } while (CollectionUtils.isNotEmpty(data.getList()) && data.getList().size() == formDTO.getPageSize()); + + } catch (Exception e) { + log.error("export exception", e); + } finally { + // 千万别忘记finish 会帮忙关闭流 + if (excelWriter != null) { + excelWriter.finish(); + } } - ExcelUtils.exportExcelToTarget(response, null, excelList, IcPartyUnitExcel.class); } /** diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitExcel.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitExcel.java index 652542ef62..36e9484acc 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitExcel.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitExcel.java @@ -17,7 +17,8 @@ package com.epmet.excel; -import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import lombok.Data; /** @@ -29,30 +30,42 @@ import lombok.Data; @Data public class IcPartyUnitExcel { - @Excel(name = "序号") - private Integer index; - - @Excel(name = "单位名称") + @ColumnWidth(30) + @ExcelProperty(value = "单位名称") private String unitName; - @Excel(name = "分类") - private String type; + @ColumnWidth(25) + @ExcelProperty(value = "所属组织") + private String agencyName; + + @ColumnWidth(25) + @ExcelProperty(value = "分类") + private String typeName; - @Excel(name = "服务事项") - private String serviceMatter; + /** + * 服务事项名称多个按照中文顿号隔开 + */ + @ColumnWidth(100) + @ExcelProperty(value = "服务事项") + private String serviceMatterName; - @Excel(name = "联系人") + @ColumnWidth(16) + @ExcelProperty(value = "联系人") private String contact; - @Excel(name = "联系电话") + @ColumnWidth(16) + @ExcelProperty(value = "联系电话") private String contactMobile; - @Excel(name = "在职党员") + @ColumnWidth(18) + @ExcelProperty(value = "在职党员数") private Integer memberCount; - @Excel(name = "群众满意度") + @ColumnWidth(18) + @ExcelProperty(value = "群众满意度") private String satisfaction; - @Excel(name = "备注") + @ColumnWidth(100) + @ExcelProperty(value = "备注") private String remark; } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index 0f31a1287d..f430f2b711 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -145,6 +145,8 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl pointMap = icUserDemandRecService.getServicePoint(formDTO.getCustomerId(), UserDemandConstant.PARTY_UNIT); dtoList.forEach(item -> { + item.setTypeName(unitTypeMap.getData().get(item.getType())); + //这是错误的,应该是赋值type,遗留bug, 先不改了.... item.setType(unitTypeMap.getData().get(item.getType())); if (StringUtils.isNotBlank(item.getServiceMatter())) { List matters = Arrays.asList(item.getServiceMatter().split(StrConstant.COMMA)); @@ -183,6 +185,8 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl pointMap = icUserDemandRecService.getServicePoint(formDTO.getCustomerId(), UserDemandConstant.PARTY_UNIT); dtoList.forEach(item -> { + item.setTypeName(unitTypeMap.getData().get(item.getType())); + //这是错误的,应该是赋值type,遗留bug, 先不改了.... item.setType(unitTypeMap.getData().get(item.getType())); if (StringUtils.isNotBlank(item.getServiceMatter())) { List matters = Arrays.asList(item.getServiceMatter().split(StrConstant.COMMA)); @@ -217,6 +221,8 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl> typeDictMapRes=epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); Map typeDictMap = typeDictMapRes.success() && MapUtils.isNotEmpty(typeDictMapRes.getData()) ? typeDictMapRes.getData() : new HashMap<>(); + dto.setTypeName(MapUtils.isNotEmpty(typeDictMap) && typeDictMap.containsKey(dto.getType()) ? typeDictMap.get(dto.getType()) : StrConstant.EPMETY_STR); + //这是错误的,应该是赋值type,遗留bug, 先不改了.... dto.setType(MapUtils.isNotEmpty(typeDictMap) && typeDictMap.containsKey(dto.getType()) ? typeDictMap.get(dto.getType()) : StrConstant.EPMETY_STR); // 服务事项 if(CollectionUtils.isNotEmpty(dto.getServiceMatterList())){ From cc9a49883e11094bfcb204251d9561fa09ff42e6 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 17 Feb 2023 17:30:50 +0800 Subject: [PATCH 23/47] =?UTF-8?q?=E8=81=94=E5=BB=BA=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/IcPartyActivityDTO.java | 6 +- .../epmet/dto/form/PartyActivityFormDTO.java | 7 ++- .../controller/IcPartyActivityController.java | 55 ++++++++++++------- .../controller/IcPartyUnitController.java | 2 +- .../com/epmet/excel/IcPartyActivityExcel.java | 30 ++++++---- .../impl/IcPartyActivityServiceImpl.java | 5 ++ 6 files changed, 70 insertions(+), 35 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java index 0115706902..1217ea6875 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyActivityDTO.java @@ -179,5 +179,9 @@ public class IcPartyActivityDTO implements Serializable { */ @JsonIgnore private Date updatedTime; - + /** + * actId不为空小程序 + * 为空管理平台 + */ + private String originName; } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java index fb67921cd8..76f6d485db 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PartyActivityFormDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.dto.form.PageFormDTO; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.format.annotation.DateTimeFormat; @@ -15,7 +16,7 @@ import java.util.Date; */ @NoArgsConstructor @Data -public class PartyActivityFormDTO implements Serializable { +public class PartyActivityFormDTO extends PageFormDTO implements Serializable { private static final long serialVersionUID = -2510068555703677L; @NotBlank(message = "组织Id不能为空" ) private String agencyId; @@ -27,7 +28,7 @@ public class PartyActivityFormDTO implements Serializable { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date endTime; private String serviceMatter; - private Integer pageNo; - private Integer pageSize; + // private Integer pageNo; + // private Integer pageSize; private String customerId; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java index 5fb1845333..2dce5600b5 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java @@ -17,15 +17,21 @@ package com.epmet.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; @@ -53,11 +59,9 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; -import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.stream.Collectors; /** @@ -116,23 +120,36 @@ public class IcPartyActivityController { } @PostMapping("export") - public void export(@RequestBody PartyActivityFormDTO formDTO, HttpServletResponse response) throws Exception { - List list = icPartyActivityService.list(formDTO); - List excelList = new ArrayList<>(); - AtomicInteger i = new AtomicInteger(1); - if (CollectionUtils.isNotEmpty(list)) { - excelList = list.stream().map(item -> { - IcPartyActivityExcel excel = new IcPartyActivityExcel(); - excel.setIndex(i.getAndIncrement()); - excel.setUnitName(item.getUnitName()); - excel.setTitle(item.getTitle()); - excel.setAddress(item.getAddress()); - excel.setPeopleCount(item.getPeopleCount()); - excel.setActivityTime(DateUtils.format(item.getActivityTime(), DateUtils.DATE_TIME_PATTERN)); - return excel; - }).collect(Collectors.toList()); + public void export(@LoginUser TokenDto tokenDto, @RequestBody PartyActivityFormDTO formDTO, HttpServletResponse response) throws Exception { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setIsPage(false); + ExcelWriter excelWriter = null; + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + int pageNo = formDTO.getPageNo(); + try { + // 这里 需要指定写用哪个class去写 + String today= DateUtils.format(new Date(),DateUtils.DATE_PATTERN_MMDD); + String fileName = "联建活动".concat(today); + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPartyActivityExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + PageData data = null; + List list = null; + do { + data = icPartyActivityService.search(formDTO); + list = ConvertUtils.sourceToTarget(data.getList(), IcPartyActivityExcel.class); + formDTO.setPageNo(++pageNo); + excelWriter.write(list, writeSheet); + } while (CollectionUtils.isNotEmpty(data.getList()) && data.getList().size() == formDTO.getPageSize()); + + } catch (Exception e) { + log.error("export exception", e); + } finally { + // 千万别忘记finish 会帮忙关闭流 + if (excelWriter != null) { + excelWriter.finish(); + } } - ExcelUtils.exportExcelToTarget(response, null, excelList, IcPartyActivityExcel.class); + } /** diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index 2832d0009d..e1578a2d78 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -132,7 +132,7 @@ public class IcPartyUnitController { try { // 这里 需要指定写用哪个class去写 String today= DateUtils.format(new Date(),DateUtils.DATE_PATTERN_MMDD); - String fileName = "行程上报信息".concat(today); + String fileName = "联建单位".concat(today); excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPartyUnitExcel.class).build(); WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); PageData data = null; diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityExcel.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityExcel.java index 9ea9544285..9f54fc3b8f 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityExcel.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityExcel.java @@ -17,7 +17,8 @@ package com.epmet.excel; -import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import lombok.Data; /** @@ -28,23 +29,30 @@ import lombok.Data; */ @Data public class IcPartyActivityExcel { - - @Excel(name = "序号") - private Integer index; - - @Excel(name = "单位名称") + @ColumnWidth(20) + @ExcelProperty(value = "单位名称") private String unitName; - @Excel(name = "活动标题") + @ColumnWidth(25) + @ExcelProperty(value = "活动标题") private String title; - @Excel(name = "活动地址") + @ColumnWidth(35) + @ExcelProperty(value = "活动地址") private String address; - @Excel(name = "服务人数") + @ColumnWidth(15) + @ExcelProperty(value = "服务人数") private Integer peopleCount; - @Excel(name = "活动时间") + @ColumnWidth(20) + @ExcelProperty(value = "活动时间") private String activityTime; - + /** + * actId不为空小程序 + * 为空管理平台 + */ + @ColumnWidth(20) + @ExcelProperty(value = "来源") + private String originName; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java index 4d89c1bef8..1e72ac9ae5 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyActivityServiceImpl.java @@ -151,6 +151,11 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl Date: Fri, 17 Feb 2023 17:39:35 +0800 Subject: [PATCH 24/47] =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/excel/IcPartyActivityExcel.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityExcel.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityExcel.java index 9f54fc3b8f..4b52917350 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityExcel.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityExcel.java @@ -19,8 +19,11 @@ package com.epmet.excel; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import java.util.Date; + /** * 联建活动 * @@ -47,7 +50,8 @@ public class IcPartyActivityExcel { @ColumnWidth(20) @ExcelProperty(value = "活动时间") - private String activityTime; + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date activityTime; /** * actId不为空小程序 * 为空管理平台 From 7d31349b590538b2caac97f5532dddee7382ffca Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 20 Feb 2023 14:02:09 +0800 Subject: [PATCH 25/47] =?UTF-8?q?/icNat/add=E8=8E=B7=E5=8F=96=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E7=83=9F=E5=8F=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../redis/common/CustomerStaffRedis.java | 3 ++- .../epmetuser/impl/EpmetUserServiceImpl.java | 4 ++-- .../com/epmet/dto/form/AddIcNatFormDTO.java | 6 ++++-- .../com/epmet/controller/IcNatController.java | 3 ++- .../epmet/service/impl/IcNatServiceImpl.java | 21 ++++++++++++------- 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerStaffRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerStaffRedis.java index 66abe790f3..61b5b6f250 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerStaffRedis.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerStaffRedis.java @@ -88,11 +88,12 @@ public class CustomerStaffRedis { private static CustomerStaffInfoCache reloadStaffCache(String staffId, String key) { Result staffResult = customerStaffRedis.commonAggFeignClient.getStaffInfo(staffId); if (staffResult == null || !staffResult.success()) { + log.error("/data/aggregator/epmetuser/getStaffInfo/{staffId} 异常 staffId: ",staffId); throw new RenException("获取工作人员信息失败"); } CustomerStaffInfoCache resultData = staffResult.getData(); if (resultData == null) { - log.warn("getStaffInfo staff is null,staffId:{}", staffId); + log.error("getStaffInfo staff is null,staffId:{}", staffId); return null; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index f6de7bd634..d81bb9b1e7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -9,7 +9,6 @@ import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.form.IdAndNameDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.OrgTypeEnum; -import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; @@ -56,9 +55,9 @@ import com.epmet.dataaggre.service.opercustomize.CustomerFootBarService; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.UserBaseInfoDTO; import com.epmet.dto.form.DetailByTypeFormDTO; +import com.epmet.dto.form.GetStaffExistRoleFormDTO; import com.epmet.dto.form.SystemMsgFormDTO; import com.epmet.dto.result.DetailByTypeResultDTO; -import com.epmet.dto.form.GetStaffExistRoleFormDTO; import com.epmet.dto.result.NewUserRoleResultDTO; import com.epmet.dto.result.StaffRoleResultDTO; import com.epmet.feign.EpmetMessageOpenFeignClient; @@ -638,6 +637,7 @@ public class EpmetUserServiceImpl implements EpmetUserService { .eq(CustomerStaffEntity::getDelFlag,NumConstant.ZERO_STR); CustomerStaffEntity staffEntity = customerStaffDao.selectOne(queryWrapper); if (null == staffEntity) { + log.error(String.format("customer_staff is null staffId:%s",staffId)); return null; } CustomerStaffResultDTO result = ConvertUtils.sourceToTarget(staffEntity, CustomerStaffResultDTO.class); diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AddIcNatFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AddIcNatFormDTO.java index b87f03d8d7..5fe8f73f31 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AddIcNatFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AddIcNatFormDTO.java @@ -5,7 +5,6 @@ import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; @@ -110,6 +109,9 @@ public class AddIcNatFormDTO implements Serializable { private String customerId; private String staffId; private String client; - + /** + * 政府端:gov、居民端:resi、运营端:oper + */ + private String app; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java index 512a43f7e9..b85f409d2b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java @@ -92,7 +92,8 @@ public class IcNatController implements ResultDataResolver { ValidatorUtils.validateEntity(formDTO, AddIcNatFormDTO.Nat.class); formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setStaffId(tokenDto.getUserId()); - formDTO.setClient(tokenDto.getClient()); + // formDTO.setClient(tokenDto.getClient()); + formDTO.setApp(tokenDto.getApp()); icNucleinService.add(formDTO); return new Result(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java index b9cb1331f1..08fde1f5f9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java @@ -119,7 +119,7 @@ public class IcNatServiceImpl extends BaseServiceImpl imp if (null != icNatDTO && icNatDTO.getNatResult().equals(formDTO.getNatResult())) { throw new RenException(EpmetErrorCode.IC_NAT_IDCARD_NATTIME.getCode(), EpmetErrorCode.IC_NAT_IDCARD_NATTIME.getMsg()); } else if (null != icNatDTO && !icNatDTO.getNatResult().equals(formDTO.getNatResult())) { - if ("wxmp".equals(formDTO.getClient())) { + if (AppClientConstant.APP_RESI.equals(formDTO.getApp())) { throw new RenException(EpmetErrorCode.RESI_IC_NAT.getCode(), EpmetErrorCode.RESI_IC_NAT.getMsg()); } throw new RenException(EpmetErrorCode.IC_NAT.getCode(), EpmetErrorCode.IC_NAT.getMsg()); @@ -129,10 +129,6 @@ public class IcNatServiceImpl extends BaseServiceImpl 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); @@ -146,8 +142,19 @@ public class IcNatServiceImpl extends BaseServiceImpl imp IcNatRelationEntity relationEntity = ConvertUtils.sourceToTarget(formDTO, IcNatRelationEntity.class); relationEntity.setIcNatId(entity.getId()); 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()); + if(AppClientConstant.APP_GOV.equals(formDTO.getApp())){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + if (null == staffInfo){ + log.error(String.format("获取工作人员信息失败%s", formDTO.getStaffId())); + throw new EpmetException(String.format("获取工作人员信息失败%s", formDTO.getStaffId())); + } + relationEntity.setAgencyId(staffInfo.getAgencyId()); + relationEntity.setPids(StringUtils.isNotBlank(staffInfo.getAgencyPIds()) ? staffInfo.getAgencyPIds() + ":" + staffInfo.getAgencyId() : staffInfo.getAgencyId()); + }else{ + relationEntity.setAgencyId(formDTO.getAgencyId()); + AgencyInfoCache agencyInfoCache=CustomerOrgRedis.getAgencyInfo(formDTO.getAgencyId()); + relationEntity.setPids(StringUtils.isNotBlank(agencyInfoCache.getPids()) ? agencyInfoCache.getPids() + ":" + formDTO.getAgencyId() : formDTO.getAgencyId()); + } icNatRelationDao.insert(relationEntity); //3.新增通知表信息 From ebe86eb2ca68077900707fcf98998786d369a93d Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 20 Feb 2023 14:07:39 +0800 Subject: [PATCH 26/47] =?UTF-8?q?epmetuser/tripreport/resi-save=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/form/IcTripReportFormDTO.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcTripReportFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcTripReportFormDTO.java index 65f289cd46..4ae7ae8b61 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcTripReportFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcTripReportFormDTO.java @@ -183,7 +183,7 @@ public class IcTripReportFormDTO implements Serializable { /** * 交通方式,来源字典表(traffic_type) */ - @NotBlank(message = "返回方式不能为空", groups = {PcAddRequired.class, ResiUserRequired.class}) + // @NotBlank(message = "返回方式不能为空", groups = {PcAddRequired.class, ResiUserRequired.class}) private String trafficType; /** * 其他返回方式,交通方式为其他时此列需要有值 @@ -192,7 +192,7 @@ public class IcTripReportFormDTO implements Serializable { /** * 来源地详细信息 source_address字段的说明 */ - @NotBlank(message = "来自地区不能为空", groups = {PcAddRequired.class, ResiUserRequired.class}) + // @NotBlank(message = "来自地区不能为空", groups = {PcAddRequired.class, ResiUserRequired.class}) private String sourceDetailAddress; /** * 疫苗接种针次 (0针 1针 2针 3针)【小寨子】 From 52bce7e426bf9e3d9bba80ca5031e391c5a882fd Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 20 Feb 2023 15:01:34 +0800 Subject: [PATCH 27/47] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8B=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/excel/IcPartyUnitImportExcel.java | 33 ++++++++++--------- .../excel/IcPartyUnitImportFailedExcel.java | 20 ++++++++++- .../service/impl/IcPartyUnitServiceImpl.java | 18 +++++----- 3 files changed, 45 insertions(+), 26 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportExcel.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportExcel.java index 13e8f27c6a..0644af0d69 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportExcel.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportExcel.java @@ -30,33 +30,34 @@ import lombok.Data; @Data public class IcPartyUnitImportExcel extends ExcelVerifyInfo { - @Excel(name = "单位名称") + @Excel(name = "单位名称*") private String unitName; - @Excel(name = "分类") + @Excel(name = "分类*") private String type; - @Excel(name = "服务事项") - private String serviceMatter; + // @Excel(name = "服务事项") + // private String serviceMatter; - @Excel(name = "联系人") + @Excel(name = "联系人*") private String contact; - @Excel(name = "联系电话") + @Excel(name = "联系电话*") private String contactMobile; - @Excel(name = "在职党员") + @Excel(name = "在职党员*") private Integer memberCount; - @Excel(name = "地址") - private String address; - - @Excel(name = "中心位置经度") - private String longitude; - - @Excel(name = "中心位置纬度") - private String latitude; - @Excel(name = "备注") private String remark; + + @Excel(name = "详细地址*") + private String address; + + // + // @Excel(name = "中心位置经度") + // private String longitude; + // + // @Excel(name = "中心位置纬度") + // private String latitude; } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportFailedExcel.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportFailedExcel.java index 2cd7e44e2a..fe47433803 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportFailedExcel.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportFailedExcel.java @@ -30,9 +30,27 @@ import lombok.Data; @Data public class IcPartyUnitImportFailedExcel extends ExcelVerifyInfo { - @Excel(name = "单位名称", width = 40) + @Excel(name = "单位名称*", width = 40) private String unitName; + @Excel(name = "分类*",width = 20) + private String type; + + @Excel(name = "联系人*",width = 20) + private String contact; + + @Excel(name = "联系电话*",width = 20) + private String contactMobile; + + @Excel(name = "在职党员*",width = 10) + private Integer memberCount; + + @Excel(name = "备注",width = 30) + private String remark; + + @Excel(name = "详细地址*",width = 50) + private String address; + @Excel(name = "错误信息", width = 50) private String errorInfo; } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index f430f2b711..326212a645 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -450,7 +450,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl matters = Arrays.asList(obj.getServiceMatter().split(StrConstant.COLON)); matters.forEach(item -> { if (null == categoryMap.get(item)) { @@ -461,7 +461,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl%s", obj.getRowNum())); - } else if (StringUtils.isBlank(obj.getLatitude())) { + } /*else if (StringUtils.isBlank(obj.getLatitude())) { IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyUnitImportFailedExcel.class); failed.setErrorInfo("中心位置纬度为空"); fileList.add(failed); @@ -494,7 +494,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl%s", obj.getRowNum())); - } + }*/ } if (CollectionUtils.isNotEmpty(result)) { @@ -505,14 +505,14 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl Date: Mon, 20 Feb 2023 16:06:19 +0800 Subject: [PATCH 28/47] =?UTF-8?q?=E8=81=94=E5=BB=BA=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcPartyUnitController.java | 93 +++-- .../epmet/excel/IcPartyUnitImportExcel.java | 80 ++++- .../IcPartyUnitExcelImportListener.java | 132 +++++++ .../com/epmet/service/IcPartyUnitService.java | 22 +- .../service/impl/IcPartyUnitServiceImpl.java | 333 ++++++------------ 5 files changed, 358 insertions(+), 302 deletions(-) create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyUnitExcelImportListener.java diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index e1578a2d78..dca2669ab8 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -8,16 +8,16 @@ import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.OptionDataResultDTO; +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.RenException; +import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.commons.tools.utils.ExcelUtils; -import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.*; import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -34,7 +34,6 @@ import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.service.IcPartyUnitService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -46,12 +45,14 @@ import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; +import java.nio.file.Path; import java.util.Date; import java.util.List; -import java.util.concurrent.CompletableFuture; +import java.util.UUID; import java.util.stream.Collectors; @@ -64,7 +65,7 @@ import java.util.stream.Collectors; @Slf4j @RestController @RequestMapping("icpartyunit") -public class IcPartyUnitController { +public class IcPartyUnitController implements ResultDataResolver { @Autowired private IcPartyUnitService icPartyUnitService; @@ -192,37 +193,48 @@ public class IcPartyUnitController { */ @PostMapping("import") public Result importData(@LoginUser TokenDto tokenDto, HttpServletRequest multipartRequest, HttpServletResponse response, @RequestPart("file") MultipartFile file) throws IOException { + // 1.暂存文件 + String originalFilename = file.getOriginalFilename(); + String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); - if (file.isEmpty()) { - throw new RenException("请上传文件"); + Path fileSavePath; + try { + Path importPath = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_party_unit", "import"); + fileSavePath = importPath.resolve(UUID.randomUUID().toString().concat(extName)); + } catch (IOException e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【联建单位导入】创建临时存储文件失败:{}", errorMsg); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "文件上传失败", "文件上传失败"); } - String originalFilename = file.getOriginalFilename(); - // 校验文件类型 - String extension = FilenameUtils.getExtension(originalFilename); - if (!"xls".equals(extension) && !"xlsx".equals(extension)) { - throw new RenException("文件类型不匹配"); + InputStream is = null; + FileOutputStream os = null; + + try { + is = file.getInputStream(); + os = new FileOutputStream(fileSavePath.toString()); + IOUtils.copy(is, os); + } catch (Exception e) { + log.error("method exception", e); + } finally { + org.apache.poi.util.IOUtils.closeQuietly(is); + org.apache.poi.util.IOUtils.closeQuietly(os); } - //1.查询当前工作人员是否有再导入的党员先锋数据,有则不允许导入,没有则进行新的导入 + // 2.生成导入任务记录 ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO(); - importTaskForm.setOriginFileName(file.getOriginalFilename()); importTaskForm.setOperatorId(tokenDto.getUserId()); importTaskForm.setBizType(ImportTaskConstants.BIZ_TYPE_PARTY_UNIT); - Result result = commonServiceOpenFeignClient.createImportTask(importTaskForm); - if (!result.success()) { - throw new RenException(result.getInternalMsg()); - } + importTaskForm.setOriginFileName(originalFilename); - // 异步执行导入 - CompletableFuture.runAsync(() -> { - try { - Thread.sleep(1000L); - } catch (InterruptedException e) { - log.error("method exception", e); - } - submitResiImportTask(tokenDto, response, file, result.getData().getTaskId()); - }); + ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException(commonServiceOpenFeignClient.createImportTask(importTaskForm), + ServiceConstant.EPMET_COMMON_SERVICE, + EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), + "excel行程上报导入错误", + "行程上报导入失败"); + + // 3.执行导入 + icPartyUnitService.execAsyncExcelImport(fileSavePath, rstData.getTaskId(),tokenDto.getCustomerId(),tokenDto.getUserId()); return new Result(); } @@ -297,27 +309,6 @@ public class IcPartyUnitController { return new Result(); } - private void submitResiImportTask(TokenDto tokenDto, HttpServletResponse response, MultipartFile file, String importTaskId) { - - try { - icPartyUnitService.importData(tokenDto, response, file, importTaskId); - } catch (Throwable e) { - String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); - log.error("【导入联建单位信息失败】导入失败:{}", errorMsg); - - ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO(); - importTaskForm.setOperatorId(tokenDto.getUserId()); - importTaskForm.setBizType(ImportTaskConstants.BIZ_TYPE_PARTY_UNIT); - importTaskForm.setTaskId(importTaskId); - importTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL); - importTaskForm.setResultDesc("联建单位信息导入失败,请查看系统日志"); - Result result = commonServiceOpenFeignClient.finishImportTask(importTaskForm); - if (!result.success()) { - throw new RenException(result.getInternalMsg()); - } - } - } - /** * Desc: 获取联建单位名字 * @param formDTO diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportExcel.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportExcel.java index 0644af0d69..b1fd6d7dff 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportExcel.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyUnitImportExcel.java @@ -17,9 +17,14 @@ package com.epmet.excel; -import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.epmet.commons.tools.utils.ExcelVerifyInfo; import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; /** * 联建单位 @@ -30,34 +35,73 @@ import lombok.Data; @Data public class IcPartyUnitImportExcel extends ExcelVerifyInfo { - @Excel(name = "单位名称*") + @NotBlank(message = "单位名称必填") + @Length(max = 50,message = "单位名称最多输入50字") + @ExcelProperty(value = "单位名称*") private String unitName; - @Excel(name = "分类*") - private String type; - - // @Excel(name = "服务事项") - // private String serviceMatter; + @NotBlank(message = "分类必填") + @ExcelProperty(value = "分类*") + private String typeName; - @Excel(name = "联系人*") + @Length(max = 30,message = "联系人最多输入30字") + @NotBlank(message = "联系人必填") + @ExcelProperty(value = "联系人*") private String contact; - @Excel(name = "联系电话*") + + @Length(max = 30,message = "联系电话最多输入30字") + @NotBlank(message = "联系电话必填") + @ExcelProperty(value = "联系电话*") private String contactMobile; - @Excel(name = "在职党员*") + + @NotNull(message = "在职党员必填") + @ExcelProperty(value = "在职党员*") private Integer memberCount; - @Excel(name = "备注") + @Length(max = 500,message = "备注最多输入50字") + @ExcelProperty(value = "备注") private String remark; - @Excel(name = "详细地址*") + + @Length(max = 250,message = "详细地址最多输入250字") + @NotBlank(message = "详细地址必填") + @ExcelProperty(value = "详细地址*") private String address; - // - // @Excel(name = "中心位置经度") - // private String longitude; - // - // @Excel(name = "中心位置纬度") - // private String latitude; + @Data + public static class ErrorRow { + @ColumnWidth(40) + @ExcelProperty("单位名称*") + private String unitName; + + @ColumnWidth(20) + @ExcelProperty("分类*") + private String type; + + @ColumnWidth(20) + @ExcelProperty("联系人*") + private String contact; + + @ColumnWidth(20) + @ExcelProperty("联系电话*") + private String contactMobile; + + @ColumnWidth(10) + @ExcelProperty("在职党员*") + private Integer memberCount; + + @ColumnWidth(30) + @ExcelProperty("备注") + private String remark; + + @ColumnWidth(50) + @ExcelProperty("详细地址*") + private String address; + + @ColumnWidth(50) + @ExcelProperty("错误信息") + private String errorInfo; + } } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyUnitExcelImportListener.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyUnitExcelImportListener.java new file mode 100644 index 0000000000..612d77840c --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyUnitExcelImportListener.java @@ -0,0 +1,132 @@ +package com.epmet.excel.handler; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.read.listener.ReadListener; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +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.entity.IcPartyUnitEntity; +import com.epmet.excel.IcPartyUnitImportExcel; +import com.epmet.service.impl.IcPartyUnitServiceImpl; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicBoolean; + +/** + * @Description + * @Author yzm + * @Date 2023/2/20 15:36 + */ +@Slf4j +public class IcPartyUnitExcelImportListener implements ReadListener { + /** + * 最大条数阈值 + */ + public static final int MAX_THRESHOLD = 200; + /** + * 当前操作用户 + */ + private CustomerStaffInfoCacheResult staffInfo; + private String customerId; + /** + * 数据 + */ + private List datas = new ArrayList<>(); + + /** + * 错误项列表 + */ + private List errorRows = new ArrayList<>(); + private IcPartyUnitServiceImpl icPartyUnitService; + //字典表数据 + private Map partyUnitTypeMap; + + public IcPartyUnitExcelImportListener(String customerId, CustomerStaffInfoCacheResult staffInfo, IcPartyUnitServiceImpl icPartyUnitService,Map partyUnitTypeMap) { + this.customerId=customerId; + this.staffInfo = staffInfo; + this.icPartyUnitService = icPartyUnitService; + this.partyUnitTypeMap=partyUnitTypeMap; + } + + + @Override + public void invoke(IcPartyUnitImportExcel data, AnalysisContext context) { + try { + // 先校验数据 + ValidatorUtils.validateEntity(data); + AtomicBoolean bl = new AtomicBoolean(false); + StringBuffer errMsg = new StringBuffer(""); + //先对一下字段值填写是否正确做判断 + if (!partyUnitTypeMap.containsKey(data.getTypeName())) { + errMsg.append("‘返回方式’值填写错误;"); + bl.set(true); + } + //错误数据记录到错误文件 + if (bl.get()) { + IcPartyUnitImportExcel.ErrorRow errorRow = ConvertUtils.sourceToTarget(data,IcPartyUnitImportExcel.ErrorRow.class); + errorRow.setErrorInfo(errMsg.toString()); + errorRows.add(errorRow); + return; + } + + IcPartyUnitEntity e = ConvertUtils.sourceToTarget(data, IcPartyUnitEntity.class); + if (partyUnitTypeMap.containsKey(data.getTypeName())) { + e.setType(partyUnitTypeMap.get(data.getTypeName())); + } + e.setCustomerId(customerId); + e.setAgencyId(staffInfo.getAgencyId()); + e.setPids(staffInfo.getAgencyPIds()); + datas.add(e); + + if (datas.size() == MAX_THRESHOLD) { + execPersist(); + } + } catch (Exception e) { + String errorMsg = null; + if (e instanceof ValidateException) { + errorMsg = ((ValidateException) e).getMsg(); + } else { + errorMsg = "未知错误"; + log.error("【联建单位导入】出错:{}", ExceptionUtils.getErrorStackTrace(e)); + } + + IcPartyUnitImportExcel.ErrorRow errorRow = ConvertUtils.sourceToTarget(data,IcPartyUnitImportExcel.ErrorRow.class); + errorRow.setErrorInfo(errorMsg); + errorRows.add(errorRow); + } + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + // 最后几条达不到阈值,这里必须再调用一次 + execPersist(); + } + + + /** + * 执行持久化 + */ + private void execPersist() { + try { + if (datas != null && datas.size() > 0) { + icPartyUnitService.batchPersist(datas); + } + } finally { + datas.clear(); + } + } + + /** + * 获取错误行 + * @return + */ + public List getErrorRows() { + return errorRows; + } +} + diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java index 3ea2e48394..a0995baa76 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java @@ -14,10 +14,8 @@ import com.epmet.dto.result.PartyUnitDistributionResultDTO; import com.epmet.dto.result.PartyUnitListResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyUnitEntity; -import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; +import java.nio.file.Path; import java.util.List; /** @@ -107,18 +105,6 @@ public interface IcPartyUnitService extends BaseService { */ List options(IcPartyUnitDTO dto); - /** - * 导入数据 - * - * @Param tokenDto - * @Param response - * @Param file - * @Return - * @Author zhaoqifeng - * @Date 2021/11/29 11:01 - */ - void importData(TokenDto tokenDto, HttpServletResponse response, MultipartFile file, String taskId) throws IOException; - /** * @Description 按类型统计单位数量 * @Param formDTO @@ -187,4 +173,10 @@ public interface IcPartyUnitService extends BaseService { * @return */ List getUnitNames(List unitIds); + + /** + * 执行Excel导入 + * @param filePath + */ + void execAsyncExcelImport(Path filePath, String importTaskId,String customerId,String userId); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index 326212a645..eeb056f07f 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -17,12 +17,11 @@ package com.epmet.service.impl; -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.ExportParams; -import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; +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.toolkit.IdWorker; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.rocketmq.messages.ServerSatisfactionCalFormDTO; import com.epmet.commons.tools.constant.FieldConstant; @@ -33,11 +32,9 @@ import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.DictListResultDTO; import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.tools.enums.DictTypeEnum; -import com.epmet.commons.tools.enums.PartyUnitTypeEnum; 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.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; @@ -45,7 +42,7 @@ import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.ExcelPoiUtils; +import com.epmet.commons.tools.utils.FileUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.UserDemandConstant; import com.epmet.constants.ImportTaskConstants; @@ -59,7 +56,7 @@ import com.epmet.dto.result.demand.ServiceStatDTO; import com.epmet.entity.IcCommunitySelfOrganizationEntity; import com.epmet.entity.IcPartyUnitEntity; import com.epmet.excel.IcPartyUnitImportExcel; -import com.epmet.excel.IcPartyUnitImportFailedExcel; +import com.epmet.excel.handler.IcPartyUnitExcelImportListener; import com.epmet.feign.*; import com.epmet.service.IcCommunitySelfOrganizationService; import com.epmet.service.IcPartyUnitService; @@ -75,18 +72,17 @@ import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.lang3.StringUtils; import org.apache.http.entity.ContentType; -import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.math.BigDecimal; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.*; import java.util.stream.Collectors; @@ -380,214 +376,6 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl fileList = new ArrayList<>(); - - ExcelImportResult importResult = ExcelPoiUtils.importExcelMore(file, 0, 1, IcPartyUnitImportExcel.class); - List failList = importResult.getFailList(); - //存放错误数据行号 - if (!org.springframework.util.CollectionUtils.isEmpty(failList)) { - for (IcPartyUnitImportExcel entity : failList) { - //打印失败的行 和失败的信息 - log.warn("第{}行,{}", entity.getRowNum(), entity.getErrorMsg()); - IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(entity, IcPartyUnitImportFailedExcel.class); - failed.setErrorInfo(entity.getErrorMsg()); - fileList.add(failed); - } - } - List result = importResult.getList(); - - CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); - if (null == staffInfoCache) { - throw new EpmetException(8000, "获取用户缓存失败"); - } - List serviceItemList = icServiceItemDictService.queryDictList(tokenDto.getCustomerId()); - Map categoryMap = serviceItemList.stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); - //1.数据校验 - Iterator iterator = result.iterator(); - while (iterator.hasNext()) { - IcPartyUnitImportExcel obj = iterator.next(); - //单位名称不能为空,不可重复 - if (StringUtils.isBlank(obj.getUnitName())) { - IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyUnitImportFailedExcel.class); - failed.setErrorInfo("单位名称为空"); - fileList.add(failed); - log.warn(String.format("单位名称为空,行号->%s", obj.getRowNum())); - iterator.remove(); - } else { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(IcPartyUnitEntity::getAgencyId, staffInfoCache.getAgencyId()); - wrapper.eq(IcPartyUnitEntity::getUnitName, obj.getUnitName()); - List list = baseDao.selectList(wrapper); - if (CollectionUtils.isNotEmpty(list)) { - IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyUnitImportFailedExcel.class); - failed.setErrorInfo("单位名称已存在"); - fileList.add(failed); - log.warn(String.format("单位名称已存在,行号->%s", obj.getRowNum())); - iterator.remove(); - } - } - //分类校验 - if (StringUtils.isBlank(obj.getType()) || null == PartyUnitTypeEnum.getCode(obj.getType())) { - IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyUnitImportFailedExcel.class); - failed.setErrorInfo("分类名不存在"); - fileList.add(failed); - log.warn(String.format("分类名不存在,行号->%s", obj.getRowNum())); - iterator.remove(); - } - //服务事项校验 - /*if (StringUtils.isNotBlank(obj.getServiceMatter())) { - List matters = Arrays.asList(obj.getServiceMatter().split(StrConstant.COLON)); - matters.forEach(item -> { - if (null == categoryMap.get(item)) { - IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyUnitImportFailedExcel.class); - failed.setErrorInfo("服务事项不存在"); - fileList.add(failed); - log.warn(String.format("服务事项不存在,行号->%s", obj.getRowNum())); - iterator.remove(); - } - }); - }*/ - //联系人 联系电话 在职党员 地址 中心位置经度 中心位置纬度 校验 - if (StringUtils.isBlank(obj.getContact())) { - IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyUnitImportFailedExcel.class); - failed.setErrorInfo("联系人为空"); - fileList.add(failed); - log.warn(String.format("联系人为空,行号->%s", obj.getRowNum())); - iterator.remove(); - } else if (StringUtils.isBlank(obj.getContactMobile())) { - IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyUnitImportFailedExcel.class); - failed.setErrorInfo("联系电话为空"); - fileList.add(failed); - log.warn(String.format("联系电话为空,行号->%s", obj.getRowNum())); - } else if (StringUtils.isBlank(obj.getAddress())) { - IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyUnitImportFailedExcel.class); - failed.setErrorInfo("地址为空"); - fileList.add(failed); - log.warn(String.format("地址为空,行号->%s", obj.getRowNum())); - } else if (null == obj.getMemberCount()) { - IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyUnitImportFailedExcel.class); - failed.setErrorInfo("在职党员为空"); - fileList.add(failed); - log.warn(String.format("在职党员为空,行号->%s", obj.getRowNum())); - } /*else if (StringUtils.isBlank(obj.getLatitude())) { - IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyUnitImportFailedExcel.class); - failed.setErrorInfo("中心位置纬度为空"); - fileList.add(failed); - log.warn(String.format("中心位置纬度为空,行号->%s", obj.getRowNum())); - } else if (StringUtils.isBlank(obj.getLongitude())) { - IcPartyUnitImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyUnitImportFailedExcel.class); - failed.setErrorInfo("中心位置经度为空"); - fileList.add(failed); - log.warn(String.format("中心位置经度为空,行号->%s", obj.getRowNum())); - }*/ - - } - if (CollectionUtils.isNotEmpty(result)) { - List list = result.stream().map(item -> { - IcPartyUnitEntity entity = new IcPartyUnitEntity(); - entity.setCustomerId(tokenDto.getCustomerId()); - entity.setAgencyId(staffInfoCache.getAgencyId()); - entity.setPids(staffInfoCache.getAgencyPIds()); - entity.setUnitName(item.getUnitName()); - entity.setType(PartyUnitTypeEnum.getCode(item.getType())); - // if (StringUtils.isNotBlank(item.getServiceMatter())) { - // entity.setServiceMatter(getServiceMatter(categoryMap, item.getServiceMatter())); - // } - entity.setContact(item.getContact()); - entity.setContactMobile(item.getContactMobile()); - entity.setAddress(item.getAddress()); - // entity.setLatitude(item.getLatitude()); - // entity.setLongitude(item.getLongitude()); - entity.setMemberCount(item.getMemberCount()); - entity.setRemark(item.getRemark()); - return entity; - }).collect(Collectors.toList()); - - insertBatch(list); - } - - String str = String.format("共%s条,成功导入%s条。", fileList.size() + result.size(), fileList.size() + result.size() - fileList.size()); - if (fileList.size() > NumConstant.ZERO) { - List numList = fileList.stream().map(IcPartyUnitImportFailedExcel::getRowNum).sorted().collect(Collectors.toList()); - String subList = numList.stream().map(String::valueOf).collect(Collectors.joining("、")); - log.warn(str + "第" + subList + "行未成功!"); - } - - //错误数据生成文件,修改导入任务状态 - erroeImport(fileList, taskId, tokenDto.getUserId()); - } - - private void erroeImport(List fileList, String importTaskId, String staffId) throws IOException { - String url = ""; - //1.有错误数据则生成错误数据存放文件传到阿里云服务 - if (CollectionUtils.isNotEmpty(fileList)) { - Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("导入失败的数据列表", "导入失败的数据列表"), - IcPartyUnitImportFailedExcel.class, fileList); - // 文件名 - String resultDescFileName = UUID.randomUUID().toString().concat(".xlsx"); - FileItemFactory factory = new DiskFileItemFactory(16, null); - FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, resultDescFileName); - OutputStream os = fileItem.getOutputStream(); - Result uploadResult = null; - try { - workbook.write(os); - uploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); - } catch (Exception e) { - String errormsg = ExceptionUtils.getErrorStackTrace(e); - log.error("【联建单位信息导入】上传错误描述文件:{}", errormsg); - } finally { - try { - os.close(); - } catch (IOException e) { - String errormsg = ExceptionUtils.getErrorStackTrace(e); - log.error("【联建单位信息导入】上传错误描述文件关闭输出流:{}", errormsg); - } - try { - fileItem.delete(); - } catch (Exception e) { - String errormsg = ExceptionUtils.getErrorStackTrace(e); - log.error("【联建单位信息导入】上传错误描述文件删除临时文件:{}", errormsg); - } - } - - if (uploadResult == null || !uploadResult.success()) { - log.error("【联建单位信息导入】调用OSS上传结果描述文件失败"); - } else { - url = uploadResult.getData().getUrl(); - } - } - //2.更新导入任务数据 - ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO(); - importTaskForm.setOperatorId(staffId); - importTaskForm.setBizType(ImportTaskConstants.BIZ_TYPE_PARTY_UNIT); - importTaskForm.setTaskId(importTaskId); - importTaskForm.setResultDescFilePath(url); - importTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS); - if (CollectionUtils.isNotEmpty(fileList)) { - importTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL); - importTaskForm.setResultDesc("联建单位导入存在错误数据"); - } - Result result = commonServiceOpenFeignClient.finishImportTask(importTaskForm); - if (!result.success()) { - throw new RenException(result.getInternalMsg()); - } - } - /** * @param formDTO * @Description 按类型统计单位数量 @@ -798,4 +586,113 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl> partyUnitTypeMap = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); + Map tMap = partyUnitTypeMap.getData().entrySet().stream().collect(Collectors.toMap(entry -> entry.getValue(), entry -> entry.getKey())); + + IcPartyUnitExcelImportListener listener = new IcPartyUnitExcelImportListener(customerId,staffInfo, this,tMap); + + EasyExcel.read(filePath.toFile(), IcPartyUnitImportExcel.class, listener).headRowNumber(1).sheet(0).doRead(); + + Path errorDescFile = null; + String errorDesFileUrl = null; + List errorRows = listener.getErrorRows(); + + boolean failed = errorRows.size() > 0; + if (failed) { + // 生成并上传错误文件 + try { + // 文件生成 + Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_party_unit", "import", "error_des"); + String fileName = UUID.randomUUID().toString().concat(".xlsx"); + errorDescFile = errorDescDir.resolve(fileName); + + FileItemFactory factory = new DiskFileItemFactory(16, errorDescDir.toFile()); + FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, fileName); + OutputStream os = fileItem.getOutputStream(); + + EasyExcel.write(os, IcPartyUnitImportExcel.ErrorRow.class).sheet("导入失败列表").doWrite(errorRows); + + // 文件上传oss + Result errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); + if (errorDesFileUploadResult.success()) { + errorDesFileUrl = errorDesFileUploadResult.getData().getUrl(); + } + } finally { + if (Files.exists(errorDescFile)) { + Files.delete(errorDescFile); + } + } + } + + ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO(); + importFinishTaskForm.setTaskId(importTaskId); + importFinishTaskForm.setProcessStatus(failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS); + importFinishTaskForm.setOperatorId(userId); + importFinishTaskForm.setResultDesc(""); + importFinishTaskForm.setResultDescFilePath(errorDesFileUrl); + + Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm); + if (!result.success()) { + log.error("【联建单位导入】finishImportTask失败"); + } + } catch (Exception e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【联建单位导入】出错:{}", errorMsg); + + ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO(); + importFinishTaskForm.setTaskId(importTaskId); + importFinishTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL); + importFinishTaskForm.setOperatorId(userId); + importFinishTaskForm.setResultDesc("导入失败"); + + Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm); + if (!result.success()) { + log.error("【联建单位导入】导入记录状态修改为'完成'失败"); + } + } finally { + // 删除临时文件 + if (Files.exists(filePath)) { + try { + Files.delete(filePath); + } catch (IOException e) { + log.error("method exception", e); + } + } + } + } + + private CustomerStaffInfoCacheResult queryCurrentStaff(String customerId, String userId) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询工作人员缓存信息异常", EpmetErrorCode.SERVER_ERROR.getMsg()); + } + return staffInfo; + } + + /** + * 批量持久化 + * @param entities + */ + public void batchPersist(List entities) { + entities.forEach(e -> { + String id = IdWorker.getIdStr(e); + e.setId(id); + baseDao.insert(e); + }); + } } From ce5df14431da5aff5080e05252de8e4358b63998 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 20 Feb 2023 16:10:37 +0800 Subject: [PATCH 29/47] =?UTF-8?q?=E8=81=94=E5=BB=BA=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=88=86=E7=B1=BB=EF=BC=8C=20=E5=8F=AF=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/db/migration/V0.0.30__icpartyunit.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.30__icpartyunit.sql diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.30__icpartyunit.sql b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.30__icpartyunit.sql new file mode 100644 index 0000000000..1256f76295 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.30__icpartyunit.sql @@ -0,0 +1 @@ +alter table ic_party_unit MODIFY COLUMN `TYPE` varchar(32) NULL COMMENT '分类 【字典表】:02.20因烟台导入需求改为不必填'; From 10fa229d9b0df57c72531f0f5b4ad189d855c164 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 20 Feb 2023 16:20:30 +0800 Subject: [PATCH 30/47] =?UTF-8?q?=E8=81=94=E5=BB=BA=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=B7=B2=E5=AD=98=E5=9C=A8=EF=BC=8Cexceltish?= =?UTF-8?q?i?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IcPartyUnitExcelImportListener.java | 7 +++++++ .../service/impl/IcPartyUnitServiceImpl.java | 20 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyUnitExcelImportListener.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyUnitExcelImportListener.java index 612d77840c..eb823af8e4 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyUnitExcelImportListener.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyUnitExcelImportListener.java @@ -73,6 +73,13 @@ public class IcPartyUnitExcelImportListener implements ReadListener wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyUnitEntity::getAgencyId, agencyId) + .eq(IcPartyUnitEntity::getUnitName, unitName) + .ne(StringUtils.isNotBlank(id),IcPartyUnitEntity::getId,id); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isNotEmpty(list)) { + return true; + } + return false; + } } From 86c9181c513683421243b0966974943e3bc108fd Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 20 Feb 2023 17:01:49 +0800 Subject: [PATCH 31/47] zhushi --- .../main/java/com/epmet/controller/IcPartyUnitController.java | 4 ++-- .../java/com/epmet/service/impl/IcPartyUnitServiceImpl.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index dca2669ab8..f986fa328d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -230,8 +230,8 @@ public class IcPartyUnitController implements ResultDataResolver { ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException(commonServiceOpenFeignClient.createImportTask(importTaskForm), ServiceConstant.EPMET_COMMON_SERVICE, EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), - "excel行程上报导入错误", - "行程上报导入失败"); + "联建单位导入错误", + "联建单位导入失败"); // 3.执行导入 icPartyUnitService.execAsyncExcelImport(fileSavePath, rstData.getTaskId(),tokenDto.getCustomerId(),tokenDto.getUserId()); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index 92db4d937f..ffbdd291b4 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -600,7 +600,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl> partyUnitTypeMap = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); Map tMap = partyUnitTypeMap.getData().entrySet().stream().collect(Collectors.toMap(entry -> entry.getValue(), entry -> entry.getKey())); @@ -676,7 +676,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl Date: Mon, 20 Feb 2023 17:15:47 +0800 Subject: [PATCH 32/47] /epmetuser/changeWelfare/save --- .../src/main/java/com/epmet/dto/ChangeWelfareDTO.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java index 7ee639d7dc..ef8ec9ae08 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java @@ -1,9 +1,11 @@ package com.epmet.dto; +import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import org.hibernate.validator.constraints.Length; +import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.Date; @@ -27,6 +29,7 @@ public class ChangeWelfareDTO implements Serializable { /** * epmet用户主键 */ + @NotBlank(message = "userId不能为空",groups = AddGroup.class) private String userId; /** From b83ace2edbc3101ff3572fd260b914f871160fc5 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 20 Feb 2023 17:17:13 +0800 Subject: [PATCH 33/47] =?UTF-8?q?=E8=81=94=E5=BB=BA=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcPartyActivityController.java | 96 ++--- .../excel/IcPartyActivityImportExcel.java | 71 ++-- .../IcPartyActivityImportListener.java | 111 ++++++ .../epmet/service/IcPartyActivityService.java | 21 +- .../impl/IcPartyActivityServiceImpl.java | 377 ++++++------------ .../templates/icpartyactivity_import_tem.xlsx | Bin 9091 -> 9088 bytes 6 files changed, 324 insertions(+), 352 deletions(-) create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyActivityImportListener.java diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java index 2dce5600b5..7e428aa6a0 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyActivityController.java @@ -23,14 +23,14 @@ import com.alibaba.excel.write.metadata.WriteSheet; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.ServiceConstant; +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.RenException; +import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.commons.tools.utils.ExcelUtils; -import com.epmet.commons.tools.utils.Result; +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.commons.tools.validator.group.AddGroup; @@ -46,7 +46,6 @@ import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.service.IcPartyActivityService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; @@ -56,12 +55,14 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; +import java.nio.file.Path; import java.util.Date; import java.util.List; -import java.util.concurrent.CompletableFuture; +import java.util.UUID; /** @@ -73,7 +74,7 @@ import java.util.concurrent.CompletableFuture; @Slf4j @RestController @RequestMapping("icpartyactivity") -public class IcPartyActivityController { +public class IcPartyActivityController implements ResultDataResolver { @Autowired private IcPartyActivityService icPartyActivityService; @@ -163,58 +164,49 @@ public class IcPartyActivityController { */ @PostMapping("import") public Result importData(@LoginUser TokenDto tokenDto, HttpServletResponse response, @RequestPart("file") MultipartFile file) throws IOException { - if (file.isEmpty()) { - throw new RenException("请上传文件"); + // 1.暂存文件 + String originalFilename = file.getOriginalFilename(); + String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); + + Path fileSavePath; + try { + Path importPath = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_party_activity", "import"); + fileSavePath = importPath.resolve(UUID.randomUUID().toString().concat(extName)); + } catch (IOException e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【联建活动导入】创建临时存储文件失败:{}", errorMsg); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "文件上传失败", "文件上传失败"); } - String originalFilename = file.getOriginalFilename(); - // 校验文件类型 - String extension = FilenameUtils.getExtension(originalFilename); - if (!"xls".equals(extension) && !"xlsx".equals(extension)) { - throw new RenException("文件类型不匹配"); + InputStream is = null; + FileOutputStream os = null; + + try { + is = file.getInputStream(); + os = new FileOutputStream(fileSavePath.toString()); + IOUtils.copy(is, os); + } catch (Exception e) { + log.error("method exception", e); + } finally { + org.apache.poi.util.IOUtils.closeQuietly(is); + org.apache.poi.util.IOUtils.closeQuietly(os); } - //1.查询当前工作人员是否有再导入的党员先锋数据,有则不允许导入,没有则进行新的导入 + // 2.生成导入任务记录 ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO(); - importTaskForm.setOriginFileName(file.getOriginalFilename()); importTaskForm.setOperatorId(tokenDto.getUserId()); - importTaskForm.setBizType(ImportTaskConstants.BIZ_TYPE_PARTY_UNIT); - Result result = commonServiceOpenFeignClient.createImportTask(importTaskForm); - if (!result.success()) { - throw new RenException(result.getInternalMsg()); - } + importTaskForm.setBizType(ImportTaskConstants.BIZ_TYPE_PARTY_ACTIVITY); + importTaskForm.setOriginFileName(originalFilename); - // 异步执行导入 - CompletableFuture.runAsync(() -> { - try { - Thread.sleep(1000L); - } catch (InterruptedException e) { - log.error("method exception", e); - } - submitResiImportTask(tokenDto, response, file, result.getData().getTaskId()); - }); - return new Result(); - } + ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException(commonServiceOpenFeignClient.createImportTask(importTaskForm), + ServiceConstant.EPMET_COMMON_SERVICE, + EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), + "联建活动导入错误", + "联建活动导入失败"); - private void submitResiImportTask(TokenDto tokenDto, HttpServletResponse response, MultipartFile file, String importTaskId) { - - try { - icPartyActivityService.importData(tokenDto, response, file, importTaskId); - } catch (Throwable e) { - String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); - log.error("【导入联建活动信息失败】导入失败:{}", errorMsg); - - ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO(); - importTaskForm.setOperatorId(tokenDto.getUserId()); - importTaskForm.setBizType(ImportTaskConstants.BIZ_TYPE_PARTY_ACTIVITY); - importTaskForm.setTaskId(importTaskId); - importTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL); - importTaskForm.setResultDesc("联建活动信息导入失败,请查看系统日志"); - Result result = commonServiceOpenFeignClient.finishImportTask(importTaskForm); - if (!result.success()) { - throw new RenException(result.getInternalMsg()); - } - } + // 3.执行导入 + icPartyActivityService.execAsyncExcelImport(fileSavePath, rstData.getTaskId(),tokenDto.getCustomerId(),tokenDto.getUserId()); + return new Result(); } /** diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityImportExcel.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityImportExcel.java index 6a2d4116ef..6998d20078 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityImportExcel.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/IcPartyActivityImportExcel.java @@ -17,9 +17,16 @@ package com.epmet.excel; -import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.epmet.commons.tools.utils.ExcelVerifyInfo; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.Date; /** * 联建活动 @@ -28,39 +35,57 @@ import lombok.Data; * @since v1.0.0 2021-11-19 */ @Data -public class IcPartyActivityImportExcel extends ExcelVerifyInfo { - - @Excel(name = "单位名称") - private String unitName; +public class IcPartyActivityImportExcel extends ExcelVerifyInfo { - @Excel(name = "服务事项") - private String serviceMatter; - - @Excel(name = "活动标题") + @NotBlank(message = "活动标题必填") + @Length(max = 50, message = "活动标题最多输入50字") + @ExcelProperty(value = "活动标题*") private String title; - @Excel(name = "活动目标") + @NotBlank(message = "活动目标必填") + @Length(max = 100, message = "活动目标最多输入100字") + @ExcelProperty(value = "活动目标*") private String target; - @Excel(name = "活动内容") - private String content; + @NotNull(message = "服务人数必填") + @ExcelProperty(value = "服务人数*") + private Integer peopleCount; - @Excel(name = "活动地址") + @NotNull(message = "活动时间不能为空") + @ExcelProperty("活动时间*") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date activityTime; + + @NotBlank(message = "详细地址") + @Length(max = 250, message = "详细地址最多输入250字") + @ExcelProperty(value = "详细地址*") private String address; - @Excel(name = "活动地址经度") - private String longitude; - @Excel(name = "活动地址纬度") - private String latitude; + @Data + public static class ErrorRow { + @ColumnWidth(38) + @ExcelProperty(value = "活动标题*") + private String title; - @Excel(name = "服务人数") - private Integer peopleCount; + @ColumnWidth(40) + @ExcelProperty(value = "活动目标*") + private String target; + + @ColumnWidth(10) + @ExcelProperty(value = "服务人数*") + private Integer peopleCount; - @Excel(name = "活动时间") - private String activityTime; + @ColumnWidth(25) + @ExcelProperty("活动时间*") + private Date activityTime; - @Excel(name = "活动结果") - private String result; + @ColumnWidth(40) + @ExcelProperty(value = "详细地址*") + private String address; + @ColumnWidth(60) + @ExcelProperty("错误信息") + private String errorInfo; + } } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyActivityImportListener.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyActivityImportListener.java new file mode 100644 index 0000000000..26e1d9d2a3 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/handler/IcPartyActivityImportListener.java @@ -0,0 +1,111 @@ +package com.epmet.excel.handler; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.read.listener.ReadListener; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +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.entity.IcPartyActivityEntity; +import com.epmet.excel.IcPartyActivityImportExcel; +import com.epmet.service.impl.IcPartyActivityServiceImpl; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2023/2/20 15:36 + */ +@Slf4j +public class IcPartyActivityImportListener implements ReadListener { + /** + * 最大条数阈值 + */ + public static final int MAX_THRESHOLD = 200; + /** + * 当前操作用户 + */ + private CustomerStaffInfoCacheResult staffInfo; + private String customerId; + /** + * 数据 + */ + private List datas = new ArrayList<>(); + + /** + * 错误项列表 + */ + private List errorRows = new ArrayList<>(); + private IcPartyActivityServiceImpl icPartyActivityService; + + public IcPartyActivityImportListener(String customerId, CustomerStaffInfoCacheResult staffInfo, IcPartyActivityServiceImpl icPartyActivityService) { + this.customerId=customerId; + this.staffInfo = staffInfo; + this.icPartyActivityService = icPartyActivityService; + } + + + @Override + public void invoke(IcPartyActivityImportExcel data, AnalysisContext context) { + try { + // 先校验数据 + ValidatorUtils.validateEntity(data); + IcPartyActivityEntity e = ConvertUtils.sourceToTarget(data, IcPartyActivityEntity.class); + e.setCustomerId(customerId); + e.setAgencyId(staffInfo.getAgencyId()); + e.setPids(staffInfo.getAgencyPIds()); + e.setContent(StrConstant.EPMETY_STR); + datas.add(e); + + if (datas.size() == MAX_THRESHOLD) { + execPersist(); + } + } catch (Exception e) { + String errorMsg = null; + if (e instanceof ValidateException) { + errorMsg = ((ValidateException) e).getMsg(); + } else { + errorMsg = "未知错误"; + log.error("【联建活动导入】出错:{}", ExceptionUtils.getErrorStackTrace(e)); + } + + IcPartyActivityImportExcel.ErrorRow errorRow = ConvertUtils.sourceToTarget(data,IcPartyActivityImportExcel.ErrorRow.class); + errorRow.setErrorInfo(errorMsg); + errorRows.add(errorRow); + } + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + // 最后几条达不到阈值,这里必须再调用一次 + execPersist(); + } + + + /** + * 执行持久化 + */ + private void execPersist() { + try { + if (datas != null && datas.size() > 0) { + icPartyActivityService.batchPersist(datas); + } + } finally { + datas.clear(); + } + } + + /** + * 获取错误行 + * @return + */ + public List getErrorRows() { + return errorRows; + } +} + diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java index 6fe8225b11..22c559aace 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyActivityService.java @@ -24,10 +24,8 @@ import com.epmet.dto.IcPartyActivityDTO; import com.epmet.dto.form.PartyActivityFormDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyActivityEntity; -import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; +import java.nio.file.Path; import java.util.List; /** @@ -88,17 +86,6 @@ public interface IcPartyActivityService extends BaseService option = icPartyUnitService.option(unitDTO).stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); dtoList.forEach(dto -> { - //联建单位ID与单位名匹配 - List unitIds = Arrays.asList(dto.getUnitId().split(StrConstant.COMMA)); - // List unitNames = unitIds.stream().map(option::get).collect(Collectors.toList()); - // if(CollectionUtils.isEmpty(unitNames)){ - List unitNames=icPartyUnitService.getUnitNames(unitIds); - // } - dto.setUnitIdList(unitIds); - dto.setUnitName(StringUtils.join(unitNames, StrConstant.COMMA)); - dto.setUnitNameList(unitNames); + if(StringUtils.isNotBlank(dto.getUnitId())){ + //联建单位ID与单位名匹配 + List unitIds = Arrays.asList(dto.getUnitId().split(StrConstant.COMMA)); + // List unitNames = unitIds.stream().map(option::get).collect(Collectors.toList()); + // if(CollectionUtils.isEmpty(unitNames)){ + List unitNames=icPartyUnitService.getUnitNames(unitIds); + // } + dto.setUnitIdList(unitIds); + dto.setUnitName(StringUtils.join(unitNames, StrConstant.COMMA)); + dto.setUnitNameList(unitNames); + } if (StringUtils.isNotEmpty(dto.getGridId())) { GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(dto.getGridId()); if (null != gridInfo) { @@ -283,248 +279,6 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl fileList = new ArrayList<>(); - ExcelImportResult importResult = ExcelPoiUtils.importExcelMore(file, 0, 1, IcPartyActivityImportExcel.class); - List failList = importResult.getFailList(); - //存放错误数据行号 - if (!org.springframework.util.CollectionUtils.isEmpty(failList)) { - for (IcPartyActivityImportExcel entity : failList) { - //打印失败的行 和失败的信息 - log.warn("第{}行,{}", entity.getRowNum(), entity.getErrorMsg()); - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(entity, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo(entity.getErrorMsg()); - fileList.add(failed); - } - } - List result = importResult.getList(); - - CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); - //获取服务事项 - List serviceItemList = icServiceItemDictService.queryDictList(tokenDto.getCustomerId()); - Map categoryMap = serviceItemList.stream().collect(Collectors.toMap(OptionDTO::getValue, OptionDTO::getLabel)); - //获取联建单位 - IcPartyUnitDTO unitDTO = new IcPartyUnitDTO(); - unitDTO.setAgencyId(staffInfoCache.getAgencyId()); - Map option = icPartyUnitService.option(unitDTO).stream().collect(Collectors.toMap(OptionDTO::getLabel, OptionDTO::getValue)); - - //1.数据校验 - Iterator iterator = result.iterator(); - while (iterator.hasNext()) { - IcPartyActivityImportExcel obj = iterator.next(); - //单位名称校验 - if (StringUtils.isBlank(obj.getUnitName())) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("单位名称为空"); - fileList.add(failed); - log.warn(String.format("单位名称为空,行号->%s", obj.getRowNum())); - iterator.remove(); - } else { - List unitList = Arrays.asList(obj.getUnitName().split(StrConstant.COMMA)); - unitList.forEach(unit -> { - if (null == option.get(unit)) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("单位名称不存在"); - fileList.add(failed); - log.warn(String.format("单位名称不存在,行号->%s", obj.getRowNum())); - iterator.remove(); - } - }); - } - //服务事项校验 - if (StringUtils.isBlank(obj.getServiceMatter())) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("服务事项为空"); - fileList.add(failed); - log.warn(String.format("服务事项为空,行号->%s", obj.getRowNum())); - iterator.remove(); - } else { - List serviceList = Arrays.asList(obj.getServiceMatter().split(StrConstant.SEMICOLON)); - serviceList.forEach(service -> { - if (null == categoryMap.get(service)) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("服务事项不存在"); - fileList.add(failed); - log.warn(String.format("服务事项不存在,行号->%s", obj.getRowNum())); - iterator.remove(); - } - }); - - } - //活动标题 活动目标 活动内容 活动时间 活动地址 活动地址经度 活动地址纬度 活动结果 - if (StringUtils.isBlank(obj.getTitle())) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("活动标题为空"); - fileList.add(failed); - log.warn(String.format("活动标题为空,行号->%s", obj.getRowNum())); - iterator.remove(); - } else if (StringUtils.isBlank(obj.getTarget())) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("活动目标为空"); - fileList.add(failed); - log.warn(String.format("活动目标为空,行号->%s", obj.getRowNum())); - } else if (StringUtils.isBlank(obj.getContent())) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("活动内容为空"); - fileList.add(failed); - log.warn(String.format("活动内容为空,行号->%s", obj.getRowNum())); - } else if (StringUtils.isBlank(obj.getActivityTime())) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("活动时间为空"); - fileList.add(failed); - log.warn(String.format("活动时间为空,行号->%s", obj.getRowNum())); - } else if (StringUtils.isBlank(obj.getAddress())) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("活动地址为空"); - fileList.add(failed); - log.warn(String.format("活动地址为空,行号->%s", obj.getRowNum())); - } else if (StringUtils.isBlank(obj.getLatitude())) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("活动地址纬度为空"); - fileList.add(failed); - log.warn(String.format("活动地址纬度为空,行号->%s", obj.getRowNum())); - } else if (StringUtils.isBlank(obj.getLongitude())) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("活动地址经度为空"); - fileList.add(failed); - log.warn(String.format("活动地址经度为空,行号->%s", obj.getRowNum())); - } else if (StringUtils.isBlank(obj.getResult())) { - IcPartyActivityImportFailedExcel failed = ConvertUtils.sourceToTarget(obj, IcPartyActivityImportFailedExcel.class); - failed.setErrorInfo("活动结果为空"); - fileList.add(failed); - log.warn(String.format("活动结果为空,行号->%s", obj.getRowNum())); - } - } - if (CollectionUtils.isNotEmpty(result)) { - result.forEach(item -> { - IcPartyActivityEntity entity = new IcPartyActivityEntity(); - entity.setCustomerId(tokenDto.getCustomerId()); - entity.setAgencyId(staffInfoCache.getAgencyId()); - entity.setPids(staffInfoCache.getAgencyPIds()); - entity.setTitle(item.getTitle()); - entity.setTarget(item.getTarget()); - entity.setContent(item.getContent()); - entity.setPeopleCount(item.getPeopleCount()); - entity.setActivityTime(DateUtils.parse(item.getActivityTime(), DateUtils.DATE_TIME_PATTERN)); - entity.setAddress(item.getAddress()); - entity.setLatitude(item.getLatitude()); - entity.setLongitude(item.getLongitude()); - entity.setResult(item.getResult()); - insert(entity); - - //保存活动与单位关系 - icActivityUnitRelationService.deleteByActivity(entity.getId()); - AtomicInteger i = new AtomicInteger(NumConstant.ONE); - List unitRelationList = Arrays.stream(item.getUnitName().split(StrConstant.COMMA)).map(unit -> { - IcActivityUnitRelationEntity relation = new IcActivityUnitRelationEntity(); - relation.setCustomerId(entity.getCustomerId()); - relation.setAgencyId(entity.getAgencyId()); - relation.setPids(entity.getPids()); - relation.setActivityId(entity.getId()); - relation.setUnitId(option.get(unit)); - relation.setSort(i.getAndIncrement()); - return relation; - }).collect(Collectors.toList()); - icActivityUnitRelationService.insertBatch(unitRelationList); - - //保存活动与服务关系 - icActivityServiceRelationService.deleteByActivity(entity.getId()); - AtomicInteger j = new AtomicInteger(NumConstant.ONE); - List serviceRelationList = Arrays.stream(item.getServiceMatter().split(StrConstant.SEMICOLON)).map(service -> { - IcActivityServiceRelationEntity relation = new IcActivityServiceRelationEntity(); - relation.setCustomerId(entity.getCustomerId()); - relation.setAgencyId(entity.getAgencyId()); - relation.setPids(entity.getPids()); - relation.setActivityId(entity.getId()); - relation.setServiceMatter(categoryMap.get(service)); - relation.setSort(j.getAndIncrement()); - return relation; - }).collect(Collectors.toList()); - icActivityServiceRelationService.insertBatch(serviceRelationList); - }); - } - String str = String.format("共%s条,成功导入%s条。", fileList.size() + result.size(), fileList.size() + result.size() - fileList.size()); - - if (fileList.size() > NumConstant.ZERO) { - List numList = fileList.stream().map(IcPartyActivityImportFailedExcel::getRowNum).sorted().collect(Collectors.toList()); - String subList = numList.stream().map(String::valueOf).collect(Collectors.joining("、")); - log.warn(str + "第" + subList + "行未成功!"); - } - - //错误数据生成文件,修改导入任务状态 - erroeImport(fileList, taskId, tokenDto.getUserId()); - } - - private void erroeImport(List fileList, String importTaskId, String staffId) throws IOException { - String url = ""; - //1.有错误数据则生成错误数据存放文件传到阿里云服务 - if (CollectionUtils.isNotEmpty(fileList)) { - Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("导入失败的数据列表", "导入失败的数据列表"), - IcPartyActivityImportFailedExcel.class, fileList); - // 文件名 - String resultDescFileName = UUID.randomUUID().toString().concat(".xlsx"); - FileItemFactory factory = new DiskFileItemFactory(16, null); - FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, resultDescFileName); - OutputStream os = fileItem.getOutputStream(); - Result uploadResult = null; - try { - workbook.write(os); - uploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); - } catch (Exception e) { - String errormsg = ExceptionUtils.getErrorStackTrace(e); - log.error("【联建活动信息导入】上传错误描述文件:{}", errormsg); - } finally { - try { - os.close(); - } catch (IOException e) { - String errormsg = ExceptionUtils.getErrorStackTrace(e); - log.error("【联建活动信息导入】上传错误描述文件关闭输出流:{}", errormsg); - } - try { - fileItem.delete(); - } catch (Exception e) { - String errormsg = ExceptionUtils.getErrorStackTrace(e); - log.error("【联建活动信息导入】上传错误描述文件删除临时文件:{}", errormsg); - } - } - - if (uploadResult == null || !uploadResult.success()) { - log.error("【联建活动信息导入】调用OSS上传结果描述文件失败"); - } else { - url = uploadResult.getData().getUrl(); - } - } - //2.更新导入任务数据 - ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO(); - importTaskForm.setOperatorId(staffId); - importTaskForm.setBizType(ImportTaskConstants.BIZ_TYPE_PARTY_ACTIVITY); - importTaskForm.setTaskId(importTaskId); - importTaskForm.setResultDescFilePath(url); - importTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS); - if (CollectionUtils.isNotEmpty(fileList)) { - importTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL); - importTaskForm.setResultDesc("联建活动导入存在错误数据"); - } - Result result = commonServiceOpenFeignClient.finishImportTask(importTaskForm); - if (!result.success()) { - throw new RenException(result.getInternalMsg()); - } - } - /** * 联建活动统计 * @@ -656,4 +410,101 @@ public class IcPartyActivityServiceImpl extends BaseServiceImpl errorRows = listener.getErrorRows(); + + boolean failed = errorRows.size() > 0; + if (failed) { + // 生成并上传错误文件 + try { + // 文件生成 + Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_party_activity", "import", "error_des"); + String fileName = UUID.randomUUID().toString().concat(".xlsx"); + errorDescFile = errorDescDir.resolve(fileName); + + FileItemFactory factory = new DiskFileItemFactory(16, errorDescDir.toFile()); + FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, fileName); + OutputStream os = fileItem.getOutputStream(); + + EasyExcel.write(os, IcPartyActivityImportExcel.ErrorRow.class).sheet("导入失败列表").doWrite(errorRows); + + // 文件上传oss + Result errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); + if (errorDesFileUploadResult.success()) { + errorDesFileUrl = errorDesFileUploadResult.getData().getUrl(); + } + } finally { + if (Files.exists(errorDescFile)) { + Files.delete(errorDescFile); + } + } + } + + ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO(); + importFinishTaskForm.setTaskId(importTaskId); + importFinishTaskForm.setProcessStatus(failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS); + importFinishTaskForm.setOperatorId(userId); + importFinishTaskForm.setResultDesc(""); + importFinishTaskForm.setResultDescFilePath(errorDesFileUrl); + + Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm); + if (!result.success()) { + log.error("【联建活动导入】finishImportTask失败"); + } + } catch (Exception e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【联建活动导入】出错:{}", errorMsg); + + ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO(); + importFinishTaskForm.setTaskId(importTaskId); + importFinishTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL); + importFinishTaskForm.setOperatorId(userId); + importFinishTaskForm.setResultDesc("导入失败"); + + Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm); + if (!result.success()) { + log.error("【联建活动导入】导入记录状态修改为'完成'失败"); + } + } finally { + // 删除临时文件 + if (Files.exists(filePath)) { + try { + Files.delete(filePath); + } catch (IOException e) { + log.error("method exception", e); + } + } + } + } + + /** + * 批量持久化 + * @param entities + */ + public void batchPersist(List entities) { + entities.forEach(e -> { + String id = IdWorker.getIdStr(e); + e.setId(id); + baseDao.insert(e); + }); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/icpartyactivity_import_tem.xlsx b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/icpartyactivity_import_tem.xlsx index 1d04c7c15d9349ff3e64e60391b15e6d6dcc760a..c7ef327c10ebf733cd261e809a102ac14ff3dc61 100644 GIT binary patch delta 1547 zcmV+m2K4!ZM}SALlK}<7WA_70lb8W4e-@~$B$WVlMI|JHKXP`nhmS|{i>Tlh2N8OxMlMX4Y` z4Hz^}kB?$rQC@1e)@23S=3qQWQik#>K^to;im~AvkjwPZ(JKyVBNNKn?`FbMIF*MgSj&xTGJIc08}%I&m^ zJ7x>si-UV>^1)cwbx=>b7%qQ^@0V9M-Ku`B+FNlzX)HM98kjA0+PugZkLvbz1v7T( z&b-P&oHyy$$Lr_YdyIc84%FrDK4~C4mxT7Y_sZSm;xb#HG$PT&Cy^hXW#ojCGfK!q zJNTf#P1Zli-S~eHBa)FBolfaA91-_`w99??8`5vH`~tH93ZQF!ERzBN0QLowxdb17 zRNHRbFbsVkuzwJQzSg%SO&i21+N8w>Y(TN=vm(>6P}%Y%C2szHloY!OQWSl$EQ&ll zB#$(|eW@kcfi^-lIZdO45@@(8M6=21?_ZCX*OVB`nu1ByKu-5y=!PkT5pNDGjvACsW3bDAt+A?J zG0W&;?kDi1)^iM2X{{#u#LV;4D#7SVS)U$K^ zil)S2dk2TexD`8Cf|L#zRrD|9xJYMr7iluSo=mS?u6Rgx{NE>j^!jC{bH0MFZbp2NDl+IzF`_h_hjGt|Vr{FR6voKP5GL z3B`phBfJpC?j=e;qlEi59tfldfDnqOJ`~q3gl1P!hGaezJvv0=dWcTP(P;V_jtB1~ z$NGG7T;C3VpF5`U;kfqPr>>9hQIA9G{P3Kv7IUpSf_Ki1+J6JzFhFmAa0AMQLWYr{ zf6LqplFlZmAnriCVEo)L#-Me#Napbl6~Yf5_aP5fJb0w19?Rf?bqpTasmJOZV|42A zaPBc4JYuYPC>zsw0gl7aLq*vv>npl<{mf~Qyblb*54~&I2EH@B5se`dN+g^_Zu&aN zI&7?JeIM7#;$;pk#RnA^uwRKASE-ckH>mB(pFMh`yJy3Tz4#B194%d@ z0RRBa1(Sgo8h_=K&r8EF6vyv^|3k=8aB1fcMB45k^z1?ZfY`>i&?Yr68|ulE!o-uv z1ShBm@iccB9ya`M*3SJGrmgO{lc2aq2)yrm;eGjp#A+NTF={ahk>EBqYX(M)d%}-+ zVB`HgcXbORP?Y;L7M$7mgaK|i%S#r3Li#KR8;44z+kb?B7qWyxO{9$L%At@6RXUXc zfmAZ;L&%s)Vp2DZO_I=vW8{e@S2o_jsL7+FCfoVW9Sb7Il6vjx4Ng&u#@b&U6UXvI zEF@BTnl@w>igX26RZG^p9KTF-o_$?5VyPjq-^D^%){w;{^Rn~qS4~O|pf3ZPS zPowiT?F<$g#K-INWOSZ&``P{39|A%2ckFxuv*H=91p&*Gksm+-Gn3LEGXYnV1|X9K z!ejRXOp~4m0ily7B02$XlVKt@0hN=OB0vG(li4CX0eO=a xBOx51Yke$}0ssK^1pojT000000000103ZMW0Hp+zy#yMQZ6go{V;=wj000ml%S8YH delta 1560 zcmV+z2Iu*JM}tSOlK};+Sw)vflb8W4f2b5$Nh$&Aib_Znf!JC0w2g=z%Ql3t;sPwW z2Dd_711D)iD_F1`|37d3jGWD$WfeSuv1P4t6h{OFpm;4xwa(Gaavq+dz&fS`t7-)~ zYQdseaeS0(#hn$ z8+_2;B^w^(cKpAI>6DUWkGKOAeeT2GP<#Wj1G51NY*O1$n*sm;Oa_y^1RsA@+m6~W z5Ph%If3W<%xe%5uh_Gs*sFhl2)$6lyCd67NPHjVW|Gr~8$%0s|c!`NUbLO0xQvq0l2#v{U zWo^5NW5X+`nTb>j4W5)r*UW$7tKP?^)xZj$RLgjhB(u0?qM-p{p|8PEWhppp6hG9^ z*Z`tIGK>68C0a9}Jr!5s6`FOZb>MSCaT88PymWfOuNGV@qe>fbRmXwarOJ6cKhs(B z3!qn;RWto~Xm1d>MR7YJg?;vN2SQ+9aJsIGy4FOz=~rL~ZNdYB0NV`_@uPAJl(>WdXeyHvXh<#;| zN*3Kxq7GJy2EM@&Bp!d}bb7vrAUXBwxRO{2pQIMf^pw=>DJTk6(rGlCAf&O+5K| z>*;UHp7rUt4&3kD7~T>dhtB)iJ1?%5T6F~Psk4WF2EJkbe#3vwcQOhYCywzgb6=fw zF+R`jhi1a*SeHk%1kJy9=R61g0=MkSTF{bAc z+slaCF(SsEjE%uE-r>_=i=a7MWP|3l>v&FQ{!aPCaI->pTegSqOz%Zwh=dXeCz11q z4)-R!Sk?MY@01_KPef=sex?CCnz(_MO4;EBeP8*rt>1JPdHf$({Rfa9vy2Dl5DLJT zRH{b-003YFlYJN(f6bJ^N&_(vhVO#!5ONf3wpEHqHa!SEd(a1n+t^*$O=>1B>ZvEi ziU$#?U@g^yc&ZhOht|GLcWd9mY^(JZb{GQl=O5-90->eTC`1jRAyCrA`J981ke;dp zvg+c)gYxDMMqs$C@K8zN;xhrb#Maj+fI+rbf{T4)YP*Dhf9H#cLr&F%v^U2}N8H#_ zR|(X#;1%$NFi}Vfj#DHN44O?qFH z7)FVe)7-ZQoTCO0EqMVGMm-fOjdb18pN-h-`Y;K z#R_8Si~^~2Nh*@XAj39R!%52a&o>;$t+%9iIe&RrSu)2rd+b}pO!9SZ;@0zYG)nFV zndDo(Z~JrJ9%hm6`~7t`zKA=6_^Fv8K4O0e_5-uu8LkBZ&XbNGKmj(B&mS`ZT9X4H zlLf3 Date: Mon, 20 Feb 2023 17:18:11 +0800 Subject: [PATCH 34/47] =?UTF-8?q?=E8=81=94=E5=BB=BA=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/icpartyactivity_import_tem.xlsx | Bin 9088 -> 9051 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/icpartyactivity_import_tem.xlsx b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/icpartyactivity_import_tem.xlsx index c7ef327c10ebf733cd261e809a102ac14ff3dc61..a21f2da6ccbfdcf1c9256336eaddcfcf5ccfec61 100644 GIT binary patch delta 4244 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 V0Hp+zzyunTMI#UfV;=wj0047>)ujLc From f8ade32067c7b2de5fb16de1463aa37698fcc7bf Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 21 Feb 2023 09:54:59 +0800 Subject: [PATCH 35/47] =?UTF-8?q?=E7=A6=8F=E5=88=A9=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/ChangeWelfareServiceImpl.java | 9 ++++++--- .../src/main/resources/mapper/ChangeWelfareDao.xml | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java index 9fd94f7a7f..1e6e5f6e01 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java @@ -3,7 +3,6 @@ package com.epmet.service.impl; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; 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.constant.NumConstant; @@ -38,6 +37,8 @@ import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.OssFeignClient; import com.epmet.redis.ChangeWelfareRedis; import com.epmet.service.ChangeWelfareService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.fileupload.FileItem; @@ -96,9 +97,11 @@ public class ChangeWelfareServiceImpl extends BaseServiceImpl page(Map params) { params.put("customerId", loginUserUtil.getLoginUserCustomerId()); - IPage page = getPage(params); + // IPage page = getPage(params); + PageHelper.startPage((Integer) params.get("page"), (Integer) params.get("limit")); List list = baseDao.getWelfareList(params); - return new PageData<>(list, page.getTotal()); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); } @Override diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml index 6953f24a98..c163416934 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml @@ -56,13 +56,13 @@ AND w.GRID_ID = #{gridId} - AND w.NAME = #{name} + AND w.NAME like concat('%', #{name},'%') - AND w.ID_CARD = #{idCard} + AND w.ID_CARD like concat('%', #{idCard},'%') - AND w.MOBILE = #{mobile} + AND w.MOBILE like concat('%', #{mobile},'%') AND w.JOIN_DATE >= #{startTime} From e820c536fa8abf4493eb4cec4b4686e3ffbf47f5 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 21 Feb 2023 10:08:33 +0800 Subject: [PATCH 36/47] =?UTF-8?q?=E7=A6=8F=E5=88=A9=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/ChangeWelfareServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java index 1e6e5f6e01..85ff254bc4 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/ChangeWelfareServiceImpl.java @@ -98,7 +98,7 @@ public class ChangeWelfareServiceImpl extends BaseServiceImpl page(Map params) { params.put("customerId", loginUserUtil.getLoginUserCustomerId()); // IPage page = getPage(params); - PageHelper.startPage((Integer) params.get("page"), (Integer) params.get("limit")); + PageHelper.startPage(Integer.valueOf((String) params.get("page")), Integer.valueOf((String) params.get("limit"))); List list = baseDao.getWelfareList(params); PageInfo pageInfo = new PageInfo<>(list); return new PageData<>(list, pageInfo.getTotal()); From 6cb92e429160f7376edc6bfe504a0ff2f0e00a27 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 21 Feb 2023 10:09:34 +0800 Subject: [PATCH 37/47] ) --- .../src/main/resources/mapper/ChangeWelfareDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml index c163416934..f45370a95f 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml @@ -56,7 +56,7 @@ AND w.GRID_ID = #{gridId} - AND w.NAME like concat('%', #{name},'%') + AND w.NAME like concat('%', #{name},'%') AND w.ID_CARD like concat('%', #{idCard},'%') From 58bf5a27340d09c0eef89bd21839310ef036c3a0 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 21 Feb 2023 10:43:30 +0800 Subject: [PATCH 38/47] page --- .../src/main/java/com/epmet/dto/ChangeWelfareDTO.java | 2 ++ .../java/com/epmet/controller/ChangeWelfareController.java | 4 ++-- .../src/main/resources/mapper/ChangeWelfareDao.xml | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java index ef8ec9ae08..f04be7b82e 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java @@ -70,6 +70,7 @@ public class ChangeWelfareDTO implements Serializable { /** * 加入原因 */ + @Length(max = 250,message = "添加原因最多输入250字",groups = AddUserShowGroup.class) private String joinReason; /** @@ -80,6 +81,7 @@ public class ChangeWelfareDTO implements Serializable { /** * 移除原因 */ + @Length(max = 250,message = "移除原因最多输入250字",groups = AddUserShowGroup.class) private String removeReason; /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java index 671c4c8681..c3ea057e9b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java @@ -70,7 +70,7 @@ public class ChangeWelfareController { @PostMapping("save") public Result save(@RequestBody ChangeWelfareDTO dto){ //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class,ChangeWelfareDTO.AddUserShowGroup.class); return changeWelfareService.save(dto); } @@ -78,7 +78,7 @@ public class ChangeWelfareController { @PostMapping("update") public Result update(@RequestBody ChangeWelfareDTO dto){ //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class,ChangeWelfareDTO.AddUserShowGroup.class); changeWelfareService.update(dto); return new Result(); } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml index f45370a95f..9c4a45bc10 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/ChangeWelfareDao.xml @@ -73,7 +73,7 @@ AND w.CATEGORY_NAME like concat('%',#{categoryName},'%') - + AND w.GRANT_FLAG = #{grantFlag} order by w.CREATED_TIME desc From 2d1777f8fc3f5c322f0f7a476a73c2f762874418 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 21 Feb 2023 11:04:04 +0800 Subject: [PATCH 39/47] RemoveWelfareShowGroup --- .../src/main/java/com/epmet/dto/ChangeWelfareDTO.java | 5 ++++- .../java/com/epmet/controller/ChangeWelfareController.java | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java index f04be7b82e..e3fbf74e1f 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/ChangeWelfareDTO.java @@ -21,9 +21,12 @@ public class ChangeWelfareDTO implements Serializable { private static final long serialVersionUID = 1L; public interface AddUserShowGroup extends CustomerClientShowGroup {} + + public interface RemoveWelfareShowGroup extends CustomerClientShowGroup {} /** * 主键 */ + @NotBlank(message = "id不能为空",groups = RemoveWelfareShowGroup.class) private String id; /** @@ -81,7 +84,7 @@ public class ChangeWelfareDTO implements Serializable { /** * 移除原因 */ - @Length(max = 250,message = "移除原因最多输入250字",groups = AddUserShowGroup.class) + @Length(max = 250,message = "移除原因最多输入250字",groups = RemoveWelfareShowGroup.class) private String removeReason; /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java index c3ea057e9b..730347fabc 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/ChangeWelfareController.java @@ -108,6 +108,7 @@ public class ChangeWelfareController { @NoRepeatSubmit @PostMapping("removeWelfare") public Result removeWelfare(@RequestBody ChangeWelfareDTO dto){ + ValidatorUtils.validateEntity(dto,ChangeWelfareDTO.RemoveWelfareShowGroup.class); return changeWelfareService.removeWelfare(dto); } From 44e912aba00c86c0148b8f7aa63e33b80c7ca954 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 21 Feb 2023 13:10:11 +0800 Subject: [PATCH 40/47] =?UTF-8?q?/data/aggregator/epmetuser/stafflistbyrea?= =?UTF-8?q?lname=E5=A2=9E=E5=8A=A0=E5=85=A5=E5=8F=82mobile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataaggre/dto/epmetuser/form/ListStaffFormDTO.java | 5 +++++ .../epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java | 4 +++- .../service/epmetuser/impl/EpmetUserServiceImpl.java | 2 +- .../main/resources/mapper/epmetuser/CustomerStaffDao.xml | 7 ++++++- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/ListStaffFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/ListStaffFormDTO.java index e7569b16d1..4a2bd9687d 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/ListStaffFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/ListStaffFormDTO.java @@ -25,4 +25,9 @@ public class ListStaffFormDTO implements Serializable { private String customerId; public interface Staff extends CustomerClientShowGroup {} + /** + * 手机号 + * 可以不填 + */ + private String mobile; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java index 2319248c83..c6f991e732 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java @@ -53,7 +53,9 @@ public interface CustomerStaffDao extends BaseDao { * @Description 模糊查询用户、角色信息 * @author sun */ - List selectByRealName(@Param("customerId") String customerId, @Param("realName") String realName); + List selectByRealName(@Param("customerId") String customerId, + @Param("realName") String realName, + @Param("mobile") String mobile); /** * @Description 分页查询排好序的工作人员Id列表 diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index d81bb9b1e7..34e0b45ad2 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -537,7 +537,7 @@ public class EpmetUserServiceImpl implements EpmetUserService { @Override public List listStaff(ListStaffFormDTO formDTO) { //1.模糊查询用户、角色信息 - List resultList = customerStaffDao.selectByRealName(formDTO.getCustomerId(), formDTO.getRealName()); + List resultList = customerStaffDao.selectByRealName(formDTO.getCustomerId(), formDTO.getRealName(),formDTO.getMobile()); if (null == resultList || resultList.size() < NumConstant.ONE) { return new ArrayList<>(); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml index 2ee923a736..fe3eb13354 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml @@ -49,7 +49,12 @@ WHERE del_flag = '0' AND customer_id = #{customerId} - AND real_name LIKE CONCAT('%', #{realName}, '%') + + AND real_name LIKE CONCAT('%', #{realName}, '%') + + + and MOBILE LIKE CONCAT('%', #{mobile}, '%') + From d1aeedeba31b44e8739569379a93cd5276704e7b Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 21 Feb 2023 15:01:27 +0800 Subject: [PATCH 42/47] test --- .../templates/icpartyactivity_import_tem.xlsx | Bin 9051 -> 9049 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/icpartyactivity_import_tem.xlsx b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/icpartyactivity_import_tem.xlsx index a21f2da6ccbfdcf1c9256336eaddcfcf5ccfec61..143cdaa637a7013aed8475a160f06aa52c6c1931 100644 GIT binary patch delta 1089 zcmV-H1it&*M%hNNlK};6)1#eAlb8W5f2IL8QL`sEF%hHj*0i&`L|RB&W%1+-c=R=V zE8}ZeU>Diw!Q=G*=bL{fP3Bu!de5LuQK=M#0YM%pUWr1jQ*@gz{4?Yk%amYcr65Hu z7&On0j}l%}UTL`2RSnt}U_3`shVnW^8*6KdvEdt#%mmJ%oVcpAWY(2>jcdjqf7u#v zM93+YV3}Z+;ST86BN6S8f{)1hNtZo9a113#P}blu2=R~Cf|lmbhF+OCWntUe?X-(K zWeYxtqkC(L(bzOi(8PTVmp{b!%d4AyRliW(tvH}85u9=j%vL&UUu1$Ob$7dx8M}06 zUKJqD+wAM(_4DmL!M_y;>T?e?I}n~rLWkUY_8i#nw+LlLJ2fn6{6YX^w-bT^#@9fWlh1PY9Oc2VCci_ z{kv(W^pmLoEJ1|E71Yc`s)YtmN~LRNajQ46X*ICI2h}pplH@k7nP_N0 znCMF|R9OlROU1V}G&X=}kjx@~Q-6up^l1CyBD_Mg4r}fC98p|`lL0RspYf{&*UG5U zMqJf#pmtv6eSCjXXU)%mUTId%^wYMzM&K5UTMH@dvoE(N1oj1|>$<3GO~ji6i=zgm zcQM$-)>u_9nPqe~^%Hp1@oZWM?4lbz(NN}eo=!fc6z$&Qw}8$Z{S(X9KYu_1w@{!| zC~*>4EA`|Yzo02`*xtb*GH%5V79b@8XQ-loKF8HOn_T@}Ek~J46c3q>|NE>fFP=wD z3MkoD+J%yTL}9C(-qYUpU3H&9Y$}VCM$ru=YHOuv;4ADvVn9yEE)iD}QSnP^;e<{} z&Gw;+fH*?s8~ZF#<4BhKet#X3`IZc!c-?acfM!#zI)axAdx+N_zkzQUmN&RzWJ4jt zc+kIP?x{#8Hz*bEK;{7j>%ka<*4-?b#yeC4KX`mR_ef7Y7QqAS7*H^>Q;+32#^}@o zb?>S<<}n^TVyw8=XJ|poHt>z)Wwb7B64u3_gH>Whbud zrBb%vphPQww(>@IHHH^<_8+rR2NxItq?2hMKmiPssvk1}Fq7UNlLc(kqn%2Vb|6#% z{*%ifKmk^h3?VQ9Sd%>=HUfVflbswKlaV1R0X~zwAwdCxll~z(0Z)@TA~peblW-zH z0l1T~B0K?ilkOrR9O`Bob#?*(0Hy^102lxO000000096X0001^1e3r78k0pM5C%LS H00000rfTsM(VyCSo++ns#=VNDFDJES`J;kG_U) zWqb__>>?XIc%1(KeDlww$$TSA?-{fyDwU!zAjkv7D^aLbif;3Te}X(?nG&q56r`vH zgXY=cLBeawD-GAWszKWVjOR$oP+q5KZEa04Hhc||nZP-e6PJ~i%(_yqaLxE5e_H{L z2sy?QEECK!+yVW1B%&=+@DW)*>9Pk1j-dnz${HL7A^!1N(9-hh*v)h|?cD-I}21gBgBvz5-;7n$Hm-QBKa#$LHI zFAET7ZT9u?`uX;r;NOY^^|=QcJP6Mvp+oMSau=UpP_;u~6CaBqdJ&ew1Xp2~re&u`G%_JS2}azdO{D>_Ho$nw+LlLJ2fn6{6YZ^w-bz zJoA3(FI;?fz zb3}0!PDZ?Rdd9C7Tq~nW8*x>~f!cYMxAE;soi#rLdZAf0(~rCM5`kMRZX=|yPrlrN z5ZGs&uIr+%H4$%m7Do+AZ(^{^ow2H3G0W&;?kDh|3ur;lv1>N zkKY11bM#Lv+x!3t+(Lm;p~OjGqtv5w{DP*$VS5LM$hZ}ISb~%YoS};T`5YJb+3e!) zdX-IFqIk@7{6Az}d+|JIQb5Ue(k_+!BMMvP^p*~`@2dL@Vq00HG>NV#Q9CO|17Bee z5(9ENb&0r=h>BlQe+wscN@{ipRRqKdD&N>Ai5f?;-1n-?acfEIJDI)axA zdx+N_zkzQUmN&Rz;C%aoaXjeXGWS%Zvn!MecOdrx1?#~WW`oxKBALf~R0HolKAwA| zryk4Tfpv@+*{R3s9Ak3ofx36q9P^lt9x+xt=rgpSWn1{h^j0*6NGLIH61gGjpv17T zs`c&ID2tabbOs+lz_Jt9^-?K2Y*3<=KU;gFyBgyQyZ8@~9RsIss9WHzGCxc$01-KmodwuOd7Fc$4fR zAsmQE{dac)005>1000;O0000000031AOHXWqy&?{1R54lO9ci10000H01*HO1ONa& I9{>OV05-M_k^lez From e466c91bc67f3cf1f189249e7121fd104267b876 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 22 Feb 2023 13:43:29 +0800 Subject: [PATCH 43/47] /heart/icpartyunit/listbrief --- .../java/com/epmet/controller/IcPartyUnitController.java | 3 ++- .../src/main/java/com/epmet/service/IcPartyUnitService.java | 3 ++- .../java/com/epmet/service/impl/IcPartyUnitServiceImpl.java | 6 ++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index f986fa328d..649def0e1d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -265,7 +265,8 @@ public class IcPartyUnitController implements ResultDataResolver { } /** - * 联建单位-简要信息列表 + * 可视化平台-社区党建-联建单位分析 + * 联建单位-简要信息列表展示:单位名称、单位类型 * * @param form * @return com.epmet.commons.tools.utils.Result diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java index a0995baa76..f02f19a262 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java @@ -151,7 +151,8 @@ public interface IcPartyUnitService extends BaseService { /** - * 联建单位-简要信息列表 + * 可视化平台-社区党建-联建单位分析 + * 联建单位-简要信息列表展示:单位名称、单位类型 * * @param form */ diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index ffbdd291b4..5d7a93a53b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -491,6 +491,12 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl> unitTypeMap = epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); From d300d46e81176d1c17a0d997bc4d22361ba9a0f9 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 22 Feb 2023 13:55:33 +0800 Subject: [PATCH 44/47] "typestatistics" --- .../java/com/epmet/controller/IcPartyUnitController.java | 4 ++-- .../main/java/com/epmet/service/IcPartyUnitService.java | 6 +++--- .../com/epmet/service/impl/IcPartyUnitServiceImpl.java | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index 649def0e1d..ac52cea051 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -239,7 +239,7 @@ public class IcPartyUnitController implements ResultDataResolver { } /** - * @Description 按类型统计单位数量 + * @Description 按类型统计单位数量、可视化平台-社区党建-联建单位分析-饼图展示分类下的联建单位数量 * @Param dto * @Return {@link Result< List< OptionDataResultDTO>>} * @Author zhaoqifeng @@ -248,7 +248,7 @@ public class IcPartyUnitController implements ResultDataResolver { @PostMapping("typestatistics") public Result> typeStatistics(@RequestBody PartyActivityFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); - return new Result>().ok(icPartyUnitService.typeStatistics(formDTO)); + return new Result>().ok(icPartyUnitService.typeStatistics(formDTO.getAgencyId())); } /** diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java index f02f19a262..3f8ab4cd96 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java @@ -106,13 +106,13 @@ public interface IcPartyUnitService extends BaseService { List options(IcPartyUnitDTO dto); /** - * @Description 按类型统计单位数量 - * @Param formDTO + * @Description 按类型统计单位数量、可视化平台-社区党建-联建单位分析-饼图展示分类下的联建单位数量 + * @Param agencyId * @Return {@link List< OptionDataResultDTO>} * @Author zhaoqifeng * @Date 2021/12/8 14:56 */ - List typeStatistics(PartyActivityFormDTO formDTO); + List typeStatistics(String agencyId); /** * 联建单位分布 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index 5d7a93a53b..5ef0e10604 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -377,15 +377,15 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl} * @Author zhaoqifeng * @Date 2021/12/8 14:56 */ @Override - public List typeStatistics(PartyActivityFormDTO formDTO) { + public List typeStatistics(String agencyId) { DictListFormDTO dictFromDTO = new DictListFormDTO(); dictFromDTO.setDictType(DictTypeEnum.PARTY_UNIT_TYPE.getCode()); Result> dictResult = epmetAdminOpenFeignClient.dictList(dictFromDTO); @@ -393,7 +393,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl list = baseDao.getTypeStatistics(formDTO.getAgencyId()); + List list = baseDao.getTypeStatistics(agencyId); Map map = list.stream().collect(Collectors.toMap(OptionDataResultDTO::getCode, OptionDataResultDTO::getValue)); return dictResult.getData().stream().map(item -> { From 988ce11bdfeaf1189cdc198fd023c86aa8a749b5 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 22 Feb 2023 14:03:34 +0800 Subject: [PATCH 45/47] /heart/icpartyunit/getPartyUnitList --- .../src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java | 1 + .../main/java/com/epmet/controller/IcPartyUnitController.java | 1 + .../src/main/java/com/epmet/service/IcPartyUnitService.java | 1 + .../main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java | 1 + 4 files changed, 4 insertions(+) diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java index 168d343a79..f0906621f7 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java @@ -119,6 +119,7 @@ public interface EpmetHeartOpenFeignClient { /** * Desc: 获取联建单位名字 + * 查询项目处理进展时调用 * @param formDTO * @author zxc * @date 2022/5/17 17:53 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index ac52cea051..bc1fd3485f 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -312,6 +312,7 @@ public class IcPartyUnitController implements ResultDataResolver { /** * Desc: 获取联建单位名字 + * 查询项目处理进展时调用 * @param formDTO * @author zxc * @date 2022/5/17 17:53 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java index 3f8ab4cd96..36d886e439 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java @@ -135,6 +135,7 @@ public interface IcPartyUnitService extends BaseService { /** * Desc: 获取联建单位名字 + * 查询项目处理进展时调用 * @param formDTO * @author zxc * @date 2022/5/17 17:53 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index 5ef0e10604..de0db86d34 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -456,6 +456,7 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl Date: Wed, 22 Feb 2023 14:10:12 +0800 Subject: [PATCH 46/47] remark --- .../java/com/epmet/controller/IcPartyUnitController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index bc1fd3485f..d94fcf94ce 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -299,7 +299,7 @@ public class IcPartyUnitController implements ResultDataResolver { /** * 计算区域化党建单位的群众满意度 - * + * 服务完成后,会发mq * @param formDTO * @return */ @@ -323,7 +323,8 @@ public class IcPartyUnitController implements ResultDataResolver { } /** - * Desc: 协办单位列表 + * Desc: 协办单位列表、本来是前端调用,后面需求升级,联建单位+社区自组织同步到了部门中 + * 此接口已弃用 * @param tokenDto * @author zxc * @date 2022/5/18 13:37 From cb62889161a945740a39215066cdcb33b345467f Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 24 Feb 2023 14:42:17 +0800 Subject: [PATCH 47/47] =?UTF-8?q?=E5=B0=8F=E5=AF=A8=E5=AD=90=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E6=A0=A1=E9=AA=8C=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/commons/tools/constant/StrConstant.java | 3 ++- .../com/epmet/controller/IcTripReportRecordController.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java index fb294721f8..57e1a2b236 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java @@ -101,7 +101,8 @@ public interface StrConstant { String PY_ROOT_AGENCY = "53613e1c5de6ed473467f0159a10b135"; //磐石街道客户Id String PS_CUSTOMER_ID = "1580460084738760705"; - + //小寨子客户id + String XIAOZHAIZI_CUSTOMER_ID="1536638904600752130"; /** * 单位积分,积分上限,积分说明,积分事件 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java index 83b232bec7..22aa867f4b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java @@ -186,7 +186,8 @@ public class IcTripReportRecordController implements ResultDataResolver { //磐石客户 if(StrConstant.PS_CUSTOMER_ID.equals(formDTO.getCustomerId())){ ValidatorUtils.validateEntity(formDTO,IcTripReportFormDTO.PsAdd.class); - }else { + }else if(StrConstant.XIAOZHAIZI_CUSTOMER_ID.equals(formDTO.getCustomerId())) { + //小寨子客户id ValidatorUtils.validateEntity(formDTO,IcTripReportFormDTO.XzzAdd.class); } //校验参数