diff --git a/doc/epmet-cloud.md b/doc/epmet-cloud.md index 18928176dc..15a6fa173d 100644 --- a/doc/epmet-cloud.md +++ b/doc/epmet-cloud.md @@ -20,6 +20,9 @@ PS:目前正在测试通过负载均衡器和本地环境变量实现动态修 - dysmsapi.aliyuncs.com 阿里云短信 - api.weixin.qq.com 微信直接交互(二维码等) - oss-cn-qingdao.aliyuncs.com(如果需要用到oss) +- service.sdmap.gov.cn 地图搜索代理 +- wprd03.is.autonavi.com 地图瓦片代理 +- oapi.dingtalk.com 钉钉后台交互(如果需要) diff --git a/epmet-auth/pom.xml b/epmet-auth/pom.xml index 67ee59978f..ed6c10e513 100644 --- a/epmet-auth/pom.xml +++ b/epmet-auth/pom.xml @@ -138,11 +138,11 @@ epmet-auth-client 2.0.0 - - dingtalk-spring-boot-starter - com.taobao - 1.0.0 - + + + + + commons-codec commons-codec diff --git a/epmet-auth/src/main/java/com/epmet/AuthApplication.java b/epmet-auth/src/main/java/com/epmet/AuthApplication.java index 07d85a0d5f..7cd7afed50 100644 --- a/epmet-auth/src/main/java/com/epmet/AuthApplication.java +++ b/epmet-auth/src/main/java/com/epmet/AuthApplication.java @@ -8,7 +8,6 @@ package com.epmet; -import com.taobao.dingtalk.spring.annotations.EnableDingTalk; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @@ -21,7 +20,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; * @author Mark sunlightcs@gmail.com * @since 1.0.0 */ -@EnableDingTalk +//@EnableDingTalk @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients diff --git a/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java b/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java index bfea4bbbb8..f2aec2828e 100644 --- a/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java +++ b/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java @@ -3,7 +3,6 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.*; -import com.epmet.dto.result.ResiDingAppLoginResDTO; import com.epmet.dto.result.StaffOrgsResultDTO; import com.epmet.dto.result.UserTokenResultDTO; import com.epmet.service.ThirdLoginService; @@ -159,11 +158,11 @@ public class ThirdLoginController { * @param formDTO * @return */ - @PostMapping("resilogin-ding") - public Result resiLoginDing(@RequestBody ResiDingAppLoginFormDTO formDTO) { - ValidatorUtils.validateEntity(formDTO,ResiDingAppLoginFormDTO.InnerMiniApp.class); - return new Result().ok(thirdLoginService.resiLoginDing(formDTO)); - } +// @PostMapping("resilogin-ding") +// public Result resiLoginDing(@RequestBody ResiDingAppLoginFormDTO formDTO) { +// ValidatorUtils.validateEntity(formDTO,ResiDingAppLoginFormDTO.InnerMiniApp.class); +// return new Result().ok(thirdLoginService.resiLoginDing(formDTO)); +// } /** * 烟台建立应用,授权给我们,走企业免登 @@ -173,11 +172,11 @@ public class ThirdLoginController { * @param formDTO * @return */ - @PostMapping("resilogin-ding-md") - public Result resiLoginDingMd(@RequestBody DingAppLoginMdFormDTO formDTO) { - ValidatorUtils.validateEntity(formDTO); - return new Result().ok(thirdLoginService.resiLoginDingMd(formDTO)); - } +// @PostMapping("resilogin-ding-md") +// public Result resiLoginDingMd(@RequestBody DingAppLoginMdFormDTO formDTO) { +// ValidatorUtils.validateEntity(formDTO); +// return new Result().ok(thirdLoginService.resiLoginDingMd(formDTO)); +// } /** * 企业内部应用开发,不授权了 文档地址:https://open.dingtalk.com/document/orgapp-server/enterprise-internal-application-logon-free @@ -200,11 +199,11 @@ public class ThirdLoginController { * @return * 目前烟台用的这个!!!!!! */ - @PostMapping("resilogin-internalding") - public Result resiLoginInternalDing(@RequestBody DingAppLoginMdFormDTO formDTO) { - ValidatorUtils.validateEntity(formDTO); - return new Result().ok(thirdLoginService.resiLoginInternalDing(formDTO)); - } +// @PostMapping("resilogin-internalding") +// public Result resiLoginInternalDing(@RequestBody DingAppLoginMdFormDTO formDTO) { +// ValidatorUtils.validateEntity(formDTO); +// return new Result().ok(thirdLoginService.resiLoginInternalDing(formDTO)); +// } /** * 根据免登授权码, 获取登录用户身份 @@ -212,11 +211,11 @@ public class ThirdLoginController { * @param formDTO 免登授权码 * @return */ - @PostMapping("govlogin-internalding") - public Result login(@RequestBody DingAppLoginMdFormDTO formDTO) { - ValidatorUtils.validateEntity(formDTO); - return new Result().ok(thirdLoginService.govLoginInternalDing(formDTO)); - } +// @PostMapping("govlogin-internalding") +// public Result login(@RequestBody DingAppLoginMdFormDTO formDTO) { +// ValidatorUtils.validateEntity(formDTO); +// return new Result().ok(thirdLoginService.govLoginInternalDing(formDTO)); +// } /** * 根据免登授权码, 获取登录用户身份 diff --git a/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java b/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java index 6003df29b1..97653d51d0 100644 --- a/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java +++ b/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java @@ -1,7 +1,6 @@ package com.epmet.service; import com.epmet.dto.form.*; -import com.epmet.dto.result.ResiDingAppLoginResDTO; import com.epmet.dto.result.StaffOrgsResultDTO; import com.epmet.dto.result.UserTokenResultDTO; @@ -93,7 +92,7 @@ public interface ThirdLoginService { * @param formDTO * @return */ - ResiDingAppLoginResDTO resiLoginDing(ResiDingAppLoginFormDTO formDTO); +// ResiDingAppLoginResDTO resiLoginDing(ResiDingAppLoginFormDTO formDTO); /** * 企业简历内部应用授权给第三方 @@ -102,21 +101,21 @@ public interface ThirdLoginService { * @param formDTO * @return */ - ResiDingAppLoginResDTO resiLoginDingMd(DingAppLoginMdFormDTO formDTO); +// ResiDingAppLoginResDTO resiLoginDingMd(DingAppLoginMdFormDTO formDTO); /** * 企业内部应用免登 文档地址:https://open.dingtalk.com/document/orgapp-server/enterprise-internal-application-logon-free * @param formDTO * @return */ - ResiDingAppLoginResDTO resiLoginInternalDing(DingAppLoginMdFormDTO formDTO); +// ResiDingAppLoginResDTO resiLoginInternalDing(DingAppLoginMdFormDTO formDTO); /** * desc:企业内部应用 工作端登录 * @param formDTO * @return */ - UserTokenResultDTO govLoginInternalDing(DingAppLoginMdFormDTO formDTO); +// UserTokenResultDTO govLoginInternalDing(DingAppLoginMdFormDTO formDTO); /** * desc:烟台sso根据authCode 获取本系统token diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java index ce1635c8cc..16944c4e7b 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java @@ -5,22 +5,18 @@ import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.aliyun.dingtalk.module.DingTalkResult; import com.epmet.auth.constants.AuthOperationConstants; import com.epmet.common.token.constant.LoginConstant; import com.epmet.commons.rocketmq.messages.LoginMQMsg; 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.enums.EnvEnum; 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.redis.common.CustomerDingDingRedis; -import com.epmet.commons.tools.redis.common.bean.DingMiniInfoCache; import com.epmet.commons.tools.security.dto.GovTokenDto; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.password.PasswordUtils; @@ -31,8 +27,6 @@ import com.epmet.commons.tools.validator.PhoneValidatorUtils; import com.epmet.constant.AuthHttpUrlConstant; import com.epmet.constant.SmsTemplateConstant; import com.epmet.dto.*; -import com.epmet.dto.dingres.DingUserDetailDTO; -import com.epmet.dto.dingres.V2UserGetuserinfoResDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.EpmetMessageOpenFeignClient; @@ -43,11 +37,6 @@ import com.epmet.jwt.JwtTokenUtils; import com.epmet.redis.CaptchaRedis; import com.epmet.service.GovWebService; import com.epmet.service.ThirdLoginService; -import com.taobao.api.ApiException; -import com.taobao.dingtalk.client.DingTalkClientToken; -import com.taobao.dingtalk.client.DingTalkClientUser; -import com.taobao.dingtalk.vo.result.AccessTokenResult; -import com.taobao.dingtalk.vo.result.UserBaseInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -87,10 +76,10 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; @Autowired private EpmetMessageOpenFeignClient messageOpenFeignClient; - @Autowired - private DingTalkClientToken dingTalkClientToken; - @Autowired - private DingTalkClientUser dingTalkClientUser; +// @Autowired +// private DingTalkClientToken dingTalkClientToken; +// @Autowired +// private DingTalkClientUser dingTalkClientUser; @Autowired private GovWebService govWebService; @@ -870,54 +859,54 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol * @param formDTO * @return */ - @Override - public ResiDingAppLoginResDTO resiLoginDing(ResiDingAppLoginFormDTO formDTO) { - //获取用户手机号 - log.info("1、钉钉居民端应用登录入参:"+ JSON.toJSONString(formDTO)); - ResiDingAppLoginResDTO resDTO= null; - try { - resDTO = new ResiDingAppLoginResDTO(); - resDTO.setCustomerId(getCurrentCustomerId()); - //1、获取用户手机号 - String miniAppId = formDTO.getMiniAppId(); - DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId); - DingTalkResult userAccessToken = dingTalkClientToken.getUserAccessToken(formDTO.getAuthCode(), dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret()); - log.info("2、resiLoginDing userAccessToken:{}",JSON.toJSONString(userAccessToken)); - if (!userAccessToken.success() || null == userAccessToken.getData()) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "调用微信api异常:" + JSON.toJSONString(userAccessToken), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg()); - } - DingTalkResult me = dingTalkClientUser.getUserInfo("me", userAccessToken.getData().getAccessToken()); - log.info("3、resiLoginDing me:{}",JSON.toJSONString(me)); - resDTO.setExtInfo(JSON.toJSONString(me.getData())); - if (!me.success() || StringUtils.isBlank(me.getData().getMobile())) { - log.error("resilogin-ding登录接口报错,入参:" + JSON.toJSONString(formDTO) + ";获取手机号为空, userAccessToken.getData().getAccessToken()=" + userAccessToken.getData().getAccessToken()); - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空"); - } - // 2、调用userfeign接口获取userId、注册网格相关信息 todo - DingLoginResiFormDTO dingLoginResiFormDTO=ConvertUtils.sourceToTarget(me.getData(),DingLoginResiFormDTO.class); - dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId()); - Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO); - if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) { - //临时打个日志 - log.error(String.format("resilogin-ding获取epmetUserId异常,入参:%s,user服务返参:%s", JSON.toJSONString(formDTO), JSON.toJSONString(loginResiResDTOResult))); - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:" + JSON.toJSONString(loginResiResDTOResult), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg()); - } - DingLoginResiResDTO resiResDTO=loginResiResDTOResult.getData(); - resDTO.setGridId(resiResDTO.getGridId()); - resDTO.setGridName(resiResDTO.getGridName()); - resDTO.setAgencyId(resiResDTO.getAgencyId()); - resDTO.setEpmetUserId(resiResDTO.getEpmetUserId()); - resDTO.setRegFlag(resiResDTO.getRegFlag()); - - //3.生成token,并且存放Redis - String token=this.saveTokenDtoDing(formDTO.getMiniAppId(),AppClientConstant.APP_RESI,AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId()); - resDTO.setAuthorization(token); - - } catch (ApiException e) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getErrMsg(), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg()); - } - return resDTO; - } +// @Override +// public ResiDingAppLoginResDTO resiLoginDing(ResiDingAppLoginFormDTO formDTO) { +// //获取用户手机号 +// log.info("1、钉钉居民端应用登录入参:"+ JSON.toJSONString(formDTO)); +// ResiDingAppLoginResDTO resDTO= null; +// try { +// resDTO = new ResiDingAppLoginResDTO(); +// resDTO.setCustomerId(getCurrentCustomerId()); +// //1、获取用户手机号 +// String miniAppId = formDTO.getMiniAppId(); +// DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId); +// DingTalkResult userAccessToken = dingTalkClientToken.getUserAccessToken(formDTO.getAuthCode(), dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret()); +// log.info("2、resiLoginDing userAccessToken:{}",JSON.toJSONString(userAccessToken)); +// if (!userAccessToken.success() || null == userAccessToken.getData()) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "调用微信api异常:" + JSON.toJSONString(userAccessToken), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg()); +// } +// DingTalkResult me = dingTalkClientUser.getUserInfo("me", userAccessToken.getData().getAccessToken()); +// log.info("3、resiLoginDing me:{}",JSON.toJSONString(me)); +// resDTO.setExtInfo(JSON.toJSONString(me.getData())); +// if (!me.success() || StringUtils.isBlank(me.getData().getMobile())) { +// log.error("resilogin-ding登录接口报错,入参:" + JSON.toJSONString(formDTO) + ";获取手机号为空, userAccessToken.getData().getAccessToken()=" + userAccessToken.getData().getAccessToken()); +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空"); +// } +// // 2、调用userfeign接口获取userId、注册网格相关信息 todo +// DingLoginResiFormDTO dingLoginResiFormDTO=ConvertUtils.sourceToTarget(me.getData(),DingLoginResiFormDTO.class); +// dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId()); +// Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO); +// if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) { +// //临时打个日志 +// log.error(String.format("resilogin-ding获取epmetUserId异常,入参:%s,user服务返参:%s", JSON.toJSONString(formDTO), JSON.toJSONString(loginResiResDTOResult))); +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:" + JSON.toJSONString(loginResiResDTOResult), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg()); +// } +// DingLoginResiResDTO resiResDTO=loginResiResDTOResult.getData(); +// resDTO.setGridId(resiResDTO.getGridId()); +// resDTO.setGridName(resiResDTO.getGridName()); +// resDTO.setAgencyId(resiResDTO.getAgencyId()); +// resDTO.setEpmetUserId(resiResDTO.getEpmetUserId()); +// resDTO.setRegFlag(resiResDTO.getRegFlag()); +// +// //3.生成token,并且存放Redis +// String token=this.saveTokenDtoDing(formDTO.getMiniAppId(),AppClientConstant.APP_RESI,AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId()); +// resDTO.setAuthorization(token); +// +// } catch (ApiException e) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getErrMsg(), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg()); +// } +// return resDTO; +// } private String saveTokenDtoDing(String miniAppId,String app,String client, String userId,String customerId) { //生成token串 @@ -943,84 +932,84 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol return token; } - @Override - public ResiDingAppLoginResDTO resiLoginDingMd(DingAppLoginMdFormDTO formDTO) { - // 获取用户手机号 - log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO)); - ResiDingAppLoginResDTO resDTO = null; - resDTO = new ResiDingAppLoginResDTO(); - resDTO.setCustomerId(getCurrentCustomerId()); - // 1、获取用户手机号 - DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOMd(formDTO.getMiniAppId(), formDTO.getAuthCode()); - dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId()); - // 2、调用userfeign接口获取userId、注册网格相关信息 - Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO); - if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) { - // 临时打个日志 - log.error(String.format("resiLoginDingMd获取epmetUserId异常,入参:%s,user服务返参:%s", JSON.toJSONString(formDTO), JSON.toJSONString(loginResiResDTOResult))); - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:" + JSON.toJSONString(loginResiResDTOResult), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg()); - } - DingLoginResiResDTO resiResDTO = loginResiResDTOResult.getData(); - resDTO.setGridId(resiResDTO.getGridId()); - resDTO.setGridName(resiResDTO.getGridName()); - resDTO.setAgencyId(resiResDTO.getAgencyId()); - resDTO.setEpmetUserId(resiResDTO.getEpmetUserId()); - resDTO.setRegFlag(resiResDTO.getRegFlag()); - - // 3.生成token,并且存放Redis - String token = this.saveTokenDtoDing(formDTO.getMiniAppId(), AppClientConstant.APP_RESI, AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId()); - resDTO.setAuthorization(token); - - return resDTO; - } - - private DingLoginResiFormDTO getDingLoginResiFormDTOMd(String miniAppId, String authCode) { - DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId); - - // 1、服务商获取第三方应用授权企业的access_token,文档地址:https://open.dingtalk.com/document/orgapp-server/obtains-the-enterprise-authorized-credential - // 烟台的CorpId: dingaae55cbc47a96845f5bf40eda33b7ba0 - String yantaiCorpId = "dingaae55cbc47a96845f5bf40eda33b7ba0"; - DingTalkResult res = dingTalkClientToken.getThirdAuthCorpAccessToken(dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret(), "abc", yantaiCorpId); - if (!res.success() || StringUtils.isBlank(res.getData())) { - log.error(String.format("企业内部应用免登服务商获取第三方应用授权企业的access_token失败,customKey:%s,customSecret:%s,corpId:%s", dingMiniInfo.getSuiteSecret(), dingMiniInfo.getSuiteSecret(), yantaiCorpId)); - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "服务商获取第三方应用授权企业的access_token", "服务商获取第三方应用授权企业的access_token"); - } - String accessToken = res.getData(); - log.info(String.format("1、服务商获取第三方应用授权企业的access_token返参:%s", accessToken)); - - // 2、通过免登码获取用户信息,文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-userid-of-a-user-by-using-the-log-free - DingTalkResult v2UserGetuserinfoRes = dingTalkClientToken.getUserInfo(accessToken, authCode); - if (!v2UserGetuserinfoRes.success() || StringUtils.isBlank(v2UserGetuserinfoRes.getData())) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "通过免登码获取用户信息异常", "通过免登码获取用户信息异常"); - } - log.info(String.format("2、通过免登码获取用户信息返参:%s", v2UserGetuserinfoRes.getData())); - V2UserGetuserinfoResDTO v2UserGetuserinfoResDTO = JSON.parseObject(v2UserGetuserinfoRes.getData(), V2UserGetuserinfoResDTO.class); - if (null == v2UserGetuserinfoResDTO || StringUtils.isBlank(v2UserGetuserinfoResDTO.getUserid())) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉用户userid为空", "获取钉钉用户userid为空"); - } - - - // 3、查询用户详情,文档地址:https://open.dingtalk.com/document/isvapp-server/query-user-details - DingTalkResult v2UserGetRes = dingTalkClientToken.getUserDetail(v2UserGetuserinfoResDTO.getUserid(), accessToken); - if (!v2UserGetRes.success() || StringUtils.isBlank(v2UserGetRes.getData())) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据userId查询用户详情失败", "根据userId查询用户详情失败"); - } - log.info(String.format("3、查询用户详情:%s", v2UserGetRes.getData())); - DingUserDetailDTO dingUserDetailDTO = JSON.parseObject(v2UserGetRes.getData(), DingUserDetailDTO.class); - if (null == dingUserDetailDTO || StringUtils.isBlank(dingUserDetailDTO.getMobile())) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空"); - } - - DingLoginResiFormDTO dingLoginResiFormDTO = new DingLoginResiFormDTO(); - dingLoginResiFormDTO.setAvatarUrl(dingUserDetailDTO.getAvatar()); - dingLoginResiFormDTO.setEmail(dingUserDetailDTO.getOrg_email()); - dingLoginResiFormDTO.setMobile(dingUserDetailDTO.getMobile()); - dingLoginResiFormDTO.setNick(dingUserDetailDTO.getName()); - dingLoginResiFormDTO.setOpenId(StrConstant.EPMETY_STR); - dingLoginResiFormDTO.setStateCode(dingUserDetailDTO.getState_code()); - dingLoginResiFormDTO.setUnionId(dingUserDetailDTO.getUnionid()); - return dingLoginResiFormDTO; - } +// @Override +// public ResiDingAppLoginResDTO resiLoginDingMd(DingAppLoginMdFormDTO formDTO) { +// // 获取用户手机号 +// log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO)); +// ResiDingAppLoginResDTO resDTO = null; +// resDTO = new ResiDingAppLoginResDTO(); +// resDTO.setCustomerId(getCurrentCustomerId()); +// // 1、获取用户手机号 +// DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOMd(formDTO.getMiniAppId(), formDTO.getAuthCode()); +// dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId()); +// // 2、调用userfeign接口获取userId、注册网格相关信息 +// Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO); +// if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) { +// // 临时打个日志 +// log.error(String.format("resiLoginDingMd获取epmetUserId异常,入参:%s,user服务返参:%s", JSON.toJSONString(formDTO), JSON.toJSONString(loginResiResDTOResult))); +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:" + JSON.toJSONString(loginResiResDTOResult), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg()); +// } +// DingLoginResiResDTO resiResDTO = loginResiResDTOResult.getData(); +// resDTO.setGridId(resiResDTO.getGridId()); +// resDTO.setGridName(resiResDTO.getGridName()); +// resDTO.setAgencyId(resiResDTO.getAgencyId()); +// resDTO.setEpmetUserId(resiResDTO.getEpmetUserId()); +// resDTO.setRegFlag(resiResDTO.getRegFlag()); +// +// // 3.生成token,并且存放Redis +// String token = this.saveTokenDtoDing(formDTO.getMiniAppId(), AppClientConstant.APP_RESI, AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId()); +// resDTO.setAuthorization(token); +// +// return resDTO; +// } + +// private DingLoginResiFormDTO getDingLoginResiFormDTOMd(String miniAppId, String authCode) { +// DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId); +// +// // 1、服务商获取第三方应用授权企业的access_token,文档地址:https://open.dingtalk.com/document/orgapp-server/obtains-the-enterprise-authorized-credential +// // 烟台的CorpId: dingaae55cbc47a96845f5bf40eda33b7ba0 +// String yantaiCorpId = "dingaae55cbc47a96845f5bf40eda33b7ba0"; +// DingTalkResult res = dingTalkClientToken.getThirdAuthCorpAccessToken(dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret(), "abc", yantaiCorpId); +// if (!res.success() || StringUtils.isBlank(res.getData())) { +// log.error(String.format("企业内部应用免登服务商获取第三方应用授权企业的access_token失败,customKey:%s,customSecret:%s,corpId:%s", dingMiniInfo.getSuiteSecret(), dingMiniInfo.getSuiteSecret(), yantaiCorpId)); +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "服务商获取第三方应用授权企业的access_token", "服务商获取第三方应用授权企业的access_token"); +// } +// String accessToken = res.getData(); +// log.info(String.format("1、服务商获取第三方应用授权企业的access_token返参:%s", accessToken)); +// +// // 2、通过免登码获取用户信息,文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-userid-of-a-user-by-using-the-log-free +// DingTalkResult v2UserGetuserinfoRes = dingTalkClientToken.getUserInfo(accessToken, authCode); +// if (!v2UserGetuserinfoRes.success() || StringUtils.isBlank(v2UserGetuserinfoRes.getData())) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "通过免登码获取用户信息异常", "通过免登码获取用户信息异常"); +// } +// log.info(String.format("2、通过免登码获取用户信息返参:%s", v2UserGetuserinfoRes.getData())); +// V2UserGetuserinfoResDTO v2UserGetuserinfoResDTO = JSON.parseObject(v2UserGetuserinfoRes.getData(), V2UserGetuserinfoResDTO.class); +// if (null == v2UserGetuserinfoResDTO || StringUtils.isBlank(v2UserGetuserinfoResDTO.getUserid())) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉用户userid为空", "获取钉钉用户userid为空"); +// } +// +// +// // 3、查询用户详情,文档地址:https://open.dingtalk.com/document/isvapp-server/query-user-details +// DingTalkResult v2UserGetRes = dingTalkClientToken.getUserDetail(v2UserGetuserinfoResDTO.getUserid(), accessToken); +// if (!v2UserGetRes.success() || StringUtils.isBlank(v2UserGetRes.getData())) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据userId查询用户详情失败", "根据userId查询用户详情失败"); +// } +// log.info(String.format("3、查询用户详情:%s", v2UserGetRes.getData())); +// DingUserDetailDTO dingUserDetailDTO = JSON.parseObject(v2UserGetRes.getData(), DingUserDetailDTO.class); +// if (null == dingUserDetailDTO || StringUtils.isBlank(dingUserDetailDTO.getMobile())) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空"); +// } +// +// DingLoginResiFormDTO dingLoginResiFormDTO = new DingLoginResiFormDTO(); +// dingLoginResiFormDTO.setAvatarUrl(dingUserDetailDTO.getAvatar()); +// dingLoginResiFormDTO.setEmail(dingUserDetailDTO.getOrg_email()); +// dingLoginResiFormDTO.setMobile(dingUserDetailDTO.getMobile()); +// dingLoginResiFormDTO.setNick(dingUserDetailDTO.getName()); +// dingLoginResiFormDTO.setOpenId(StrConstant.EPMETY_STR); +// dingLoginResiFormDTO.setStateCode(dingUserDetailDTO.getState_code()); +// dingLoginResiFormDTO.setUnionId(dingUserDetailDTO.getUnionid()); +// return dingLoginResiFormDTO; +// } /** @@ -1043,57 +1032,57 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol * @param formDTO * @return */ - @Override - public ResiDingAppLoginResDTO resiLoginInternalDing(DingAppLoginMdFormDTO formDTO) { - // 获取用户手机号 - log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO)); - ResiDingAppLoginResDTO resDTO = new ResiDingAppLoginResDTO(); - resDTO.setCustomerId(getCurrentCustomerId()); - - // 1、获取用户手机号 - DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOInternal(formDTO.getMiniAppId(), formDTO.getAuthCode()); - dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId()); - resDTO.setRealName(dingLoginResiFormDTO.getNick()); - // 2、调用userfeign接口获取userId、注册网格相关信息 - Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO); - if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) { - // 临时打个日志 - log.error(String.format("resiLoginInternalDing获取epmetUserId异常,入参:%s", JSON.toJSONString(dingLoginResiFormDTO))); - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:"+ JSON.toJSONString(loginResiResDTOResult), "获取epmetUserId异常"); - } - DingLoginResiResDTO resiResDTO = loginResiResDTOResult.getData(); - resDTO.setGridId(resiResDTO.getGridId()); - resDTO.setGridName(resiResDTO.getGridName()); - resDTO.setAgencyId(resiResDTO.getAgencyId()); - resDTO.setEpmetUserId(resiResDTO.getEpmetUserId()); - resDTO.setRegFlag(resiResDTO.getRegFlag()); - - // 3.生成token,并且存放Redis - String token = this.saveTokenDtoDing(formDTO.getMiniAppId(), AppClientConstant.APP_RESI, AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId()); - resDTO.setAuthorization(token); - - return resDTO; - } - - @Override - public UserTokenResultDTO govLoginInternalDing(DingAppLoginMdFormDTO formDTO) { - // 获取用户手机号 - log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO)); - ResiDingAppLoginResDTO resDTO = null; - resDTO = new ResiDingAppLoginResDTO(); - resDTO.setCustomerId(getCurrentCustomerId()); - - // 1、获取用户手机号 - DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOInternal(formDTO.getMiniAppId(), formDTO.getAuthCode()); - dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId()); - - - GovWebLoginFormDTO loginGovParam = new GovWebLoginFormDTO(); - loginGovParam.setCustomerId(dingLoginResiFormDTO.getCustomerId()); - loginGovParam.setPhone(dingLoginResiFormDTO.getMobile()); - - return govWebService.loginByThirdPlatform(loginGovParam); - } +// @Override +// public ResiDingAppLoginResDTO resiLoginInternalDing(DingAppLoginMdFormDTO formDTO) { +// // 获取用户手机号 +// log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO)); +// ResiDingAppLoginResDTO resDTO = new ResiDingAppLoginResDTO(); +// resDTO.setCustomerId(getCurrentCustomerId()); +// +// // 1、获取用户手机号 +// DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOInternal(formDTO.getMiniAppId(), formDTO.getAuthCode()); +// dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId()); +// resDTO.setRealName(dingLoginResiFormDTO.getNick()); +// // 2、调用userfeign接口获取userId、注册网格相关信息 +// Result loginResiResDTOResult = epmetUserOpenFeignClient.dingResiLogin(dingLoginResiFormDTO); +// if (!loginResiResDTOResult.success() || null == loginResiResDTOResult.getData()) { +// // 临时打个日志 +// log.error(String.format("resiLoginInternalDing获取epmetUserId异常,入参:%s", JSON.toJSONString(dingLoginResiFormDTO))); +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取epmetUserId异常:"+ JSON.toJSONString(loginResiResDTOResult), "获取epmetUserId异常"); +// } +// DingLoginResiResDTO resiResDTO = loginResiResDTOResult.getData(); +// resDTO.setGridId(resiResDTO.getGridId()); +// resDTO.setGridName(resiResDTO.getGridName()); +// resDTO.setAgencyId(resiResDTO.getAgencyId()); +// resDTO.setEpmetUserId(resiResDTO.getEpmetUserId()); +// resDTO.setRegFlag(resiResDTO.getRegFlag()); +// +// // 3.生成token,并且存放Redis +// String token = this.saveTokenDtoDing(formDTO.getMiniAppId(), AppClientConstant.APP_RESI, AppClientConstant.MINI_DING, resDTO.getEpmetUserId(), resDTO.getCustomerId()); +// resDTO.setAuthorization(token); +// +// return resDTO; +// } + +// @Override +// public UserTokenResultDTO govLoginInternalDing(DingAppLoginMdFormDTO formDTO) { +// // 获取用户手机号 +// log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO)); +// ResiDingAppLoginResDTO resDTO = null; +// resDTO = new ResiDingAppLoginResDTO(); +// resDTO.setCustomerId(getCurrentCustomerId()); +// +// // 1、获取用户手机号 +// DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOInternal(formDTO.getMiniAppId(), formDTO.getAuthCode()); +// dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId()); +// +// +// GovWebLoginFormDTO loginGovParam = new GovWebLoginFormDTO(); +// loginGovParam.setCustomerId(dingLoginResiFormDTO.getCustomerId()); +// loginGovParam.setPhone(dingLoginResiFormDTO.getMobile()); +// +// return govWebService.loginByThirdPlatform(loginGovParam); +// } @Override public UserTokenResultDTO yanTaiSSOLogin(String authCode) { @@ -1115,55 +1104,55 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol * @param authCode * @return */ - private DingLoginResiFormDTO getDingLoginResiFormDTOInternal(String miniAppId, String authCode) { - DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId); - if (dingMiniInfo == null){ - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉应用配置异常", "获取钉钉应用配置异常"); - } - // 1、获取企业内部应用的accessToken文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-access_token-of-an-internal-app - String accessToken = ""; - DingTalkResult dingTalkResult = dingTalkClientToken.getAppAccessTokenToken(dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret()); - if (!dingTalkResult.success() || StringUtils.isBlank(dingTalkResult.getData())) { - log.error(String.format("获取企业内部应用的accessToken失败,customKey:%s,customSecret:%s", dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret())); - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取企业内部应用的accessToken异常", "获取企业内部应用的accessToken"); - } - accessToken = dingTalkResult.getData(); - log.info(String.format("1、获取企业内部应用的accessToken返参:%s", accessToken)); - - - // 2、通过免登码获取用户信息,文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-userid-of-a-user-by-using-the-log-free - DingTalkResult v2UserGetuserinfoRes = dingTalkClientToken.getUserInfo(accessToken, authCode); - if (!v2UserGetuserinfoRes.success() || StringUtils.isBlank(v2UserGetuserinfoRes.getData())) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "通过免登码获取用户信息异常", "通过免登码获取用户信息异常"); - } - log.info(String.format("2、通过免登码获取用户信息返参:%s", v2UserGetuserinfoRes.getData())); - V2UserGetuserinfoResDTO v2UserGetuserinfoResDTO = JSON.parseObject(v2UserGetuserinfoRes.getData(), V2UserGetuserinfoResDTO.class); - if (null == v2UserGetuserinfoResDTO || StringUtils.isBlank(v2UserGetuserinfoResDTO.getUserid())) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉用户userid为空", "获取钉钉用户userid为空"); - } - - - // 3、查询用户详情,文档地址:https://open.dingtalk.com/document/isvapp-server/query-user-details - DingTalkResult v2UserGetRes = dingTalkClientToken.getUserDetail(v2UserGetuserinfoResDTO.getUserid(), accessToken); - if (!v2UserGetRes.success() || StringUtils.isBlank(v2UserGetRes.getData())) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据userId查询用户详情失败", "根据userId查询用户详情失败"); - } - log.info(String.format("3、查询用户详情:%s", v2UserGetRes.getData())); - DingUserDetailDTO dingUserDetailDTO = JSON.parseObject(v2UserGetRes.getData(), DingUserDetailDTO.class); - if (null == dingUserDetailDTO || StringUtils.isBlank(dingUserDetailDTO.getMobile())) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空"); - } - - DingLoginResiFormDTO dingLoginResiFormDTO = new DingLoginResiFormDTO(); - dingLoginResiFormDTO.setAvatarUrl(dingUserDetailDTO.getAvatar()); - dingLoginResiFormDTO.setEmail(dingUserDetailDTO.getOrg_email()); - dingLoginResiFormDTO.setMobile(dingUserDetailDTO.getMobile()); - dingLoginResiFormDTO.setNick(dingUserDetailDTO.getName()); - dingLoginResiFormDTO.setOpenId(StrConstant.EPMETY_STR); - dingLoginResiFormDTO.setStateCode(dingUserDetailDTO.getState_code()); - dingLoginResiFormDTO.setUnionId(dingUserDetailDTO.getUnionid()); - return dingLoginResiFormDTO; - } +// private DingLoginResiFormDTO getDingLoginResiFormDTOInternal(String miniAppId, String authCode) { +// DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId); +// if (dingMiniInfo == null){ +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉应用配置异常", "获取钉钉应用配置异常"); +// } +// // 1、获取企业内部应用的accessToken文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-access_token-of-an-internal-app +// String accessToken = ""; +// DingTalkResult dingTalkResult = dingTalkClientToken.getAppAccessTokenToken(dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret()); +// if (!dingTalkResult.success() || StringUtils.isBlank(dingTalkResult.getData())) { +// log.error(String.format("获取企业内部应用的accessToken失败,customKey:%s,customSecret:%s", dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret())); +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取企业内部应用的accessToken异常", "获取企业内部应用的accessToken"); +// } +// accessToken = dingTalkResult.getData(); +// log.info(String.format("1、获取企业内部应用的accessToken返参:%s", accessToken)); +// +// +// // 2、通过免登码获取用户信息,文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-userid-of-a-user-by-using-the-log-free +// DingTalkResult v2UserGetuserinfoRes = dingTalkClientToken.getUserInfo(accessToken, authCode); +// if (!v2UserGetuserinfoRes.success() || StringUtils.isBlank(v2UserGetuserinfoRes.getData())) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "通过免登码获取用户信息异常", "通过免登码获取用户信息异常"); +// } +// log.info(String.format("2、通过免登码获取用户信息返参:%s", v2UserGetuserinfoRes.getData())); +// V2UserGetuserinfoResDTO v2UserGetuserinfoResDTO = JSON.parseObject(v2UserGetuserinfoRes.getData(), V2UserGetuserinfoResDTO.class); +// if (null == v2UserGetuserinfoResDTO || StringUtils.isBlank(v2UserGetuserinfoResDTO.getUserid())) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉用户userid为空", "获取钉钉用户userid为空"); +// } +// +// +// // 3、查询用户详情,文档地址:https://open.dingtalk.com/document/isvapp-server/query-user-details +// DingTalkResult v2UserGetRes = dingTalkClientToken.getUserDetail(v2UserGetuserinfoResDTO.getUserid(), accessToken); +// if (!v2UserGetRes.success() || StringUtils.isBlank(v2UserGetRes.getData())) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据userId查询用户详情失败", "根据userId查询用户详情失败"); +// } +// log.info(String.format("3、查询用户详情:%s", v2UserGetRes.getData())); +// DingUserDetailDTO dingUserDetailDTO = JSON.parseObject(v2UserGetRes.getData(), DingUserDetailDTO.class); +// if (null == dingUserDetailDTO || StringUtils.isBlank(dingUserDetailDTO.getMobile())) { +// throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取手机号为空", "获取手机号为空"); +// } +// +// DingLoginResiFormDTO dingLoginResiFormDTO = new DingLoginResiFormDTO(); +// dingLoginResiFormDTO.setAvatarUrl(dingUserDetailDTO.getAvatar()); +// dingLoginResiFormDTO.setEmail(dingUserDetailDTO.getOrg_email()); +// dingLoginResiFormDTO.setMobile(dingUserDetailDTO.getMobile()); +// dingLoginResiFormDTO.setNick(dingUserDetailDTO.getName()); +// dingLoginResiFormDTO.setOpenId(StrConstant.EPMETY_STR); +// dingLoginResiFormDTO.setStateCode(dingUserDetailDTO.getState_code()); +// dingLoginResiFormDTO.setUnionId(dingUserDetailDTO.getUnionid()); +// return dingLoginResiFormDTO; +// } /** * 客户写死吧 diff --git a/epmet-commons/epmet-commons-tools/pom.xml b/epmet-commons/epmet-commons-tools/pom.xml index 4cd073f977..bf8cd4c2a3 100644 --- a/epmet-commons/epmet-commons-tools/pom.xml +++ b/epmet-commons/epmet-commons-tools/pom.xml @@ -14,7 +14,6 @@ 6.0.17.Final - 3.7 1.3.3 2.6 4.6.1 @@ -32,6 +31,12 @@ org.springframework.boot spring-boot-starter-web provided + + + hibernate-validator + org.hibernate.validator + + org.springframework.boot @@ -45,6 +50,16 @@ org.springframework.cloud spring-cloud-starter-openfeign + + + guava + com.google.guava + + + commons-fileupload + commons-fileupload + + org.springframework.boot @@ -66,15 +81,16 @@ hibernate-validator ${hibernate.validator.version} - - org.apache.commons - commons-lang3 - ${commons.lang.version} - commons-fileupload commons-fileupload ${commons.fileupload.version} + + + commons-io + commons-io + + commons-io @@ -90,6 +106,12 @@ cn.afterturn easypoi-base ${easypoi.version} + + + javassist + org.javassist + + @@ -137,24 +159,54 @@ org.apache.httpcomponents httpmime + + + httpclient + org.apache.httpcomponents + + org.apache.httpcomponents httpmime + + + httpclient + org.apache.httpcomponents + + commons-httpclient commons-httpclient 3.1 + + + commons-logging + commons-logging + + com.aliyun alibaba-dingtalk-service-sdk + + + commons-logging + commons-logging + + com.squareup.okhttp3 okhttp + + + kotlin-stdlib-common + org.jetbrains.kotlin + + io.github.wnjustdoit @@ -201,6 +253,16 @@ com.tencentcloudapi tencentcloud-sdk-java 3.1.322 + + + okio + com.squareup.okio + + + commons-logging + commons-logging + + diff --git a/epmet-module/data-report/data-report-client/pom.xml b/epmet-module/data-report/data-report-client/pom.xml index 8700a85f3b..52b71441b2 100644 --- a/epmet-module/data-report/data-report-client/pom.xml +++ b/epmet-module/data-report/data-report-client/pom.xml @@ -16,6 +16,16 @@ com.epmet epmet-commons-tools 2.0.0 + + + commons-collections4 + org.apache.commons + + + objenesis + org.objenesis + + com.epmet diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml index 4beaf875c2..9d3a4efd46 100644 --- a/epmet-module/data-report/data-report-server/pom.xml +++ b/epmet-module/data-report/data-report-server/pom.xml @@ -100,6 +100,11 @@ 2.0.0 compile + + org.apache.commons + commons-collections4 + 4.4 + diff --git a/epmet-module/epmet-heart/epmet-heart-client/pom.xml b/epmet-module/epmet-heart/epmet-heart-client/pom.xml index 6ef934f473..93ddda3345 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/pom.xml +++ b/epmet-module/epmet-heart/epmet-heart-client/pom.xml @@ -17,12 +17,24 @@ com.epmet epmet-commons-tools 2.0.0 + + + objenesis + org.objenesis + + com.epmet epmet-user-client 2.0.0 compile + + + commons-collections4 + org.apache.commons + + diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java index 4669c0a2ce..f9e9cf9db2 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java @@ -1,10 +1,14 @@ package com.epmet.dto.result.agentservice; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.security.PrivateKey; +import java.util.ArrayList; import java.util.Date; +import java.util.List; @Data @AllArgsConstructor @@ -13,8 +17,9 @@ public class LingShanScreenServiceRstDTO { private String content; private String applicantName; private String applicantMobile; - private String applicantHomeAddress; + private String exceptServeAddress; private Date createdTime; + private Date exceptServeTime; private String agentName; private String agentMobile; @@ -26,4 +31,29 @@ public class LingShanScreenServiceRstDTO { * 纬度 */ private String latitude; + + private String processTime; + private String processDesc; + private List attachments; + private String processStatus; + private String closeDesc; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date closeTime; + private Integer satisfication; + + /** + * 处理进展 + */ + private List processNodes = new ArrayList<>(); + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class ProcessNode { + private Integer processType; + private String processTypeName; + private String processorName; + private String processDesc; + private List processAttachments = new ArrayList<>(); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java index 541462c10b..6bca986b45 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java @@ -286,6 +286,19 @@ public class LingShanAgentServiceController { return new Result>().ok(rl); } + /** + * @Description: 中央大屏:服务详情 + * @param id: + * @Return com.epmet.commons.tools.utils.Result + * @Author: wangxianzhang + * @Date: 2023/5/17 2:40 PM + */ + @GetMapping("screen/serviceDetail") + public Result screenServiceDetail(@RequestParam("id") String id) { + LingShanScreenServiceRstDTO c = lingShanServiceAgentService.screenServiceDetail(id); + return new Result().ok(c); + } + /** * @Description: 服务类型数量分析 * @param orgType: diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java index 992244d76b..539809106a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java @@ -38,4 +38,6 @@ public interface LingShanAgentServiceService { List serviceCategoryAnalysis(String orgType, String orgId); List serviceTrendAnalysis(String orgType, String orgId); + + LingShanScreenServiceRstDTO screenServiceDetail(String id); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java index cfa4aef5ee..0b2fc2bd19 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java @@ -513,7 +513,6 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ d.setAgentMobile(agentInfo.getMobile()); } - // todo 此处要查什么??申请人家庭住址?申请人家庭住址是什么? // IcResiUserDTO resiUser = getResultDataOrReturnNull(userOpenFeignClient.getIcResiUserDTO(rec.getApplicantId()), ServiceConstant.EPMET_USER_SERVER); // if (resiUser == null) { // log.error("【灵山大屏】代办事件列表:查询申请人信息失败,申请人ID:" + rec.getApplicantId()); @@ -527,6 +526,8 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ // } d.setContent(rec.getContent()); + d.setExceptServeAddress(rec.getExceptServeAddress()); + d.setExceptServeTime(rec.getExceptServeTime()); d.setCreatedTime(rec.getCreatedTime()); d.setApplicantName(rec.getApplicantName()); d.setApplicantMobile(rec.getContactMobile()); @@ -537,6 +538,73 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ }).collect(Collectors.toList()); } + @Override + public LingShanScreenServiceRstDTO screenServiceDetail(String id) { + LingshanAgentServiceRecordEntity serviceRecord = agentServiceRecordDao.selectById(id); + if (serviceRecord == null) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未找到对应服务,ID:" + id); + } + + LingShanScreenServiceRstDTO rd = new LingShanScreenServiceRstDTO(); + rd.setExceptServeAddress(serviceRecord.getExceptServeAddress()); + rd.setExceptServeTime(serviceRecord.getExceptServeTime()); + rd.setContent(serviceRecord.getContent()); + rd.setLatitude(serviceRecord.getLatitude()); + rd.setLongitude(serviceRecord.getLongitude()); + rd.setAgentMobile(serviceRecord.getContactMobile()); + rd.setAgentName(serviceRecord.getAgentName()); + rd.setApplicantMobile(serviceRecord.getContactMobile()); + rd.setApplicantName(serviceRecord.getApplicantName()); + rd.setCreatedTime(serviceRecord.getCreatedTime()); + rd.setCloseTime(serviceRecord.getCloseTime()); + rd.setSatisfication(serviceRecord.getSatisfication()); + rd.setAttachments(JSON.parseArray(serviceRecord.getAttachments(), String.class)); + + // 处理进展 + List processNodes = rd.getProcessNodes(); + + // 创建起始节点 + LingShanScreenServiceRstDTO.ProcessNode nc = createProcessNode(LingShanAgentServiceProcessStatusEnum.WAIT_ACCEPT, serviceRecord.getApplicantName(), null, new ArrayList<>()); + processNodes.add(nc); + + // 根据最新状态拼接后续处理节点 + int processStatus = serviceRecord.getProcessStatus().intValue(); + LingShanAgentServiceProcessStatusEnum processStatusEnum = LingShanAgentServiceProcessStatusEnum.getByStatus(processStatus); + + if (LingShanAgentServiceProcessStatusEnum.WITHDRAW.getStatusCode() == processStatus) { + // 已撤回 + LingShanScreenServiceRstDTO.ProcessNode nd = createProcessNode(processStatusEnum, serviceRecord.getApplicantName(), null, new ArrayList<>()); + processNodes.add(nd); + } else { + // 正常处理流程 + if (processStatus == LingShanAgentServiceProcessStatusEnum.ACCEPTED.getStatusCode()) { + // 受理 0 1 + LingShanScreenServiceRstDTO.ProcessNode np = createProcessNode(processStatusEnum, serviceRecord.getAgentName(), serviceRecord.getProcessDesc(), new ArrayList<>()); + processNodes.add(np); + } else if (processStatus == LingShanAgentServiceProcessStatusEnum.REJECTED.getStatusCode()) { + // 驳回 0 2 + LingShanScreenServiceRstDTO.ProcessNode np = createProcessNode(processStatusEnum, serviceRecord.getAgentName(), serviceRecord.getProcessDesc(), new ArrayList<>()); + processNodes.add(np); + } else { + // 办结 0 1 3 + LingShanScreenServiceRstDTO.ProcessNode na = createProcessNode(LingShanAgentServiceProcessStatusEnum.ACCEPTED, serviceRecord.getAgentName(), serviceRecord.getProcessDesc(), new ArrayList<>()); + LingShanScreenServiceRstDTO.ProcessNode ncc = createProcessNode(LingShanAgentServiceProcessStatusEnum.CLOSED, serviceRecord.getAgentName(), serviceRecord.getCloseDesc(), JSON.parseArray(serviceRecord.getProcessAttachments(), String.class)); + processNodes.add(na); + processNodes.add(ncc); + } + + } + + return rd; + } + + private LingShanScreenServiceRstDTO.ProcessNode createProcessNode(LingShanAgentServiceProcessStatusEnum processStatusEnum, String applicantName, String processDesc, List processAttachments) { + return new LingShanScreenServiceRstDTO.ProcessNode( + processStatusEnum.getStatusCode(), + processStatusEnum.getStatusName(), + applicantName, processDesc, processAttachments); + } + @Override public List serviceCategoryAnalysis(String orgType, String orgId) { diff --git a/epmet-module/epmet-third/epmet-third-client/pom.xml b/epmet-module/epmet-third/epmet-third-client/pom.xml index 37b51d9479..6f547acc9b 100644 --- a/epmet-module/epmet-third/epmet-third-client/pom.xml +++ b/epmet-module/epmet-third/epmet-third-client/pom.xml @@ -24,6 +24,14 @@ feign-form-spring io.github.openfeign.form + + objenesis + org.objenesis + + + asm + org.ow2.asm + @@ -31,12 +39,28 @@ weixin-java-mp 3.6.0 compile + + + guava + com.google.guava + + + commons-io + commons-io + + com.epmet epmet-user-client 2.0.0 compile + + + commons-collections4 + org.apache.commons + + io.github.openfeign.form @@ -52,6 +76,12 @@ commons-fileupload commons-fileupload 1.3.3 + + + commons-io + commons-io + + diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index ae368d1906..e5b52a57ed 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -157,16 +157,27 @@ rocketmq-acl 4.9.2 - - dingtalk-spring-boot-starter - com.taobao - 1.0.0 - + + + + + + + + + + commons-codec commons-codec 1.15 + + + com.github.xiaoymin + knife4j-spring-boot-starter + 2.0.5 + @@ -228,7 +239,8 @@ 20 60 epmet-third - callerRunsPolicy + callerRunsPolicy + false @@ -288,7 +300,8 @@ 20 60 epmet-third - callerRunsPolicy + callerRunsPolicy + false @@ -347,7 +360,8 @@ 20 60 epmet-third - callerRunsPolicy + callerRunsPolicy + true @@ -407,7 +421,8 @@ 20 60 epmet-third - callerRunsPolicy + callerRunsPolicy + true diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java index 21c518e033..3efd642c87 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java @@ -1,7 +1,6 @@ package com.epmet; import com.epmet.mq.properties.RocketMQProperties; -import com.taobao.dingtalk.spring.annotations.EnableDingTalk; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -9,7 +8,6 @@ import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; -@EnableDingTalk @EnableConfigurationProperties(RocketMQProperties.class) @SpringBootApplication @EnableDiscoveryClient diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java index 8164c4cdbe..a978ece6eb 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java @@ -1,29 +1,14 @@ package com.epmet.controller.dingtalk; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.aliyun.dingtalk.util.DingCallbackCrypto; -import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.dto.form.DingMiniInfoFormDTO; -import com.epmet.commons.tools.redis.common.bean.DingMiniInfoCache; -import com.epmet.commons.tools.utils.Result; -import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dao.OpenSyncBizDataDao; -import com.epmet.dto.DingMiniInfoDTO; -import com.epmet.dto.form.ExemptLoginUserDetailFormDTO; -import com.epmet.entity.OpenSyncBizDataEntity; import com.epmet.redis.DingDingCallbackRedis; import com.epmet.service.DingTalkService; import com.epmet.service.OpenSyncBizDataService; -import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** * ISV 小程序回调信息处理 @@ -65,81 +50,81 @@ public class CallbackController { @Autowired private DingTalkService dingTalkService; - @PostMapping(value = "dingCallback") - public Object dingCallback( - @RequestParam(value = "signature") String signature, - @RequestParam(value = "timestamp") Long timestamp, - @RequestParam(value = "nonce") String nonce, - @RequestParam(value = "suiteKey") String suiteKey, - @RequestBody(required = false) JSONObject body - ) { - String params = "signature:" + signature + " timestamp:" + timestamp + " nonce:" + nonce + " body:" + body + "suiteKey::"+suiteKey; - try { - log.info("begin callback:" + params); - DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfo(suiteKey); - DingCallbackCrypto dingTalkEncryptor = new DingCallbackCrypto(dingMiniInfo.getToken(), dingMiniInfo.getAesKey(), suiteKey); - - // 从post请求的body中获取回调信息的加密数据进行解密处理 - String encrypt = body.getString("encrypt"); - String plainText = dingTalkEncryptor.getDecryptMsg(signature, timestamp.toString(), nonce, encrypt); - JSONObject callBackContent = JSON.parseObject(plainText); - - log.info("推来的消息体:"+plainText); - - // 根据回调事件类型做不同的业务处理 - String eventType = callBackContent.getString("EventType"); - if (EVENT_CHECK_CREATE_SUITE_URL.equals(eventType)) { - log.info("验证新创建的回调URL有效性: " + plainText); - } else if (EVENT_CHECK_UPADTE_SUITE_URL.equals(eventType)) { - log.info("验证更新回调URL有效性: " + plainText); - } else if (EVENT_SUITE_TICKET.equals(eventType)) { - // suite_ticket用于用签名形式生成accessToken(访问钉钉服务端的凭证),需要保存到应用的db。 - // 钉钉会定期向本callback url推送suite_ticket新值用以提升安全性。 - // 应用在获取到新的时值时,保存db成功后,返回给钉钉success加密串(如本demo的return) - log.info("应用suite_ticket数据推送: " + plainText); - } else if (EVENT_TMP_AUTH_CODE.equals(eventType)) { - // 本事件应用应该异步进行授权开通企业的初始化,目的是尽最大努力快速返回给钉钉服务端。用以提升企业管理员开通应用体验 - // 即使本接口没有收到数据或者收到事件后处理初始化失败都可以后续再用户试用应用时从前端获取到corpId并拉取授权企业信息,进而初始化开通及企业。 - log.info("企业授权开通应用事件: " + plainText); - } else if (EVENT_SYNC_HTTP_PUSH_HIGH.equals(eventType)){ - List> bizData = (List>) callBackContent.get("bizData"); - if (CollectionUtils.isNotEmpty(bizData)){ - List list = new ArrayList<>(); - bizData.forEach(b -> { - OpenSyncBizDataEntity e = new OpenSyncBizDataEntity(); - e.setSuiteKey(suiteKey); - e.setSubscribeId(b.get("subscribe_id").toString()); - e.setCorpId(b.get("corp_id").toString()); - e.setBizId(b.get("biz_id").toString()); - e.setBizData(b.get("biz_data").toString()); - e.setBizType(b.get("biz_type").toString()); - list.add(e); - openSyncBizDataService.delete(e); - if (e.getBizType().equals(NumConstant.TWO_STR)){ - Map ticketMap = JSON.parseObject(e.getBizData(), Map.class); - dingCallbackRedis.set(suiteKey,ticketMap.get("suiteTicket")); - } - }); - openSyncBizDataService.insertBatch(list); - } - } else{ - // 其他类型事件处理 - } - - // 返回success的加密信息表示回调处理成功 - return dingTalkEncryptor.getEncryptedMap("success", timestamp, nonce); - } catch (Exception e) { - //失败的情况,应用的开发者应该通过告警感知,并干预修复 - log.error("process callback fail." + params, e); - return "fail"; - } - } - - @PostMapping("getExemptLoginUserDetail") - public Result getExemptLoginUserDetail(@RequestBody ExemptLoginUserDetailFormDTO formDTO){ - ValidatorUtils.validateEntity(formDTO, ExemptLoginUserDetailFormDTO.ExemptLoginUserDetailForm.class); - return new Result().ok(dingTalkService.getExemptLoginUserDetail(formDTO)); - } +// @PostMapping(value = "dingCallback") +// public Object dingCallback( +// @RequestParam(value = "signature") String signature, +// @RequestParam(value = "timestamp") Long timestamp, +// @RequestParam(value = "nonce") String nonce, +// @RequestParam(value = "suiteKey") String suiteKey, +// @RequestBody(required = false) JSONObject body +// ) { +// String params = "signature:" + signature + " timestamp:" + timestamp + " nonce:" + nonce + " body:" + body + "suiteKey::"+suiteKey; +// try { +// log.info("begin callback:" + params); +// DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfo(suiteKey); +// DingCallbackCrypto dingTalkEncryptor = new DingCallbackCrypto(dingMiniInfo.getToken(), dingMiniInfo.getAesKey(), suiteKey); +// +// // 从post请求的body中获取回调信息的加密数据进行解密处理 +// String encrypt = body.getString("encrypt"); +// String plainText = dingTalkEncryptor.getDecryptMsg(signature, timestamp.toString(), nonce, encrypt); +// JSONObject callBackContent = JSON.parseObject(plainText); +// +// log.info("推来的消息体:"+plainText); +// +// // 根据回调事件类型做不同的业务处理 +// String eventType = callBackContent.getString("EventType"); +// if (EVENT_CHECK_CREATE_SUITE_URL.equals(eventType)) { +// log.info("验证新创建的回调URL有效性: " + plainText); +// } else if (EVENT_CHECK_UPADTE_SUITE_URL.equals(eventType)) { +// log.info("验证更新回调URL有效性: " + plainText); +// } else if (EVENT_SUITE_TICKET.equals(eventType)) { +// // suite_ticket用于用签名形式生成accessToken(访问钉钉服务端的凭证),需要保存到应用的db。 +// // 钉钉会定期向本callback url推送suite_ticket新值用以提升安全性。 +// // 应用在获取到新的时值时,保存db成功后,返回给钉钉success加密串(如本demo的return) +// log.info("应用suite_ticket数据推送: " + plainText); +// } else if (EVENT_TMP_AUTH_CODE.equals(eventType)) { +// // 本事件应用应该异步进行授权开通企业的初始化,目的是尽最大努力快速返回给钉钉服务端。用以提升企业管理员开通应用体验 +// // 即使本接口没有收到数据或者收到事件后处理初始化失败都可以后续再用户试用应用时从前端获取到corpId并拉取授权企业信息,进而初始化开通及企业。 +// log.info("企业授权开通应用事件: " + plainText); +// } else if (EVENT_SYNC_HTTP_PUSH_HIGH.equals(eventType)){ +// List> bizData = (List>) callBackContent.get("bizData"); +// if (CollectionUtils.isNotEmpty(bizData)){ +// List list = new ArrayList<>(); +// bizData.forEach(b -> { +// OpenSyncBizDataEntity e = new OpenSyncBizDataEntity(); +// e.setSuiteKey(suiteKey); +// e.setSubscribeId(b.get("subscribe_id").toString()); +// e.setCorpId(b.get("corp_id").toString()); +// e.setBizId(b.get("biz_id").toString()); +// e.setBizData(b.get("biz_data").toString()); +// e.setBizType(b.get("biz_type").toString()); +// list.add(e); +// openSyncBizDataService.delete(e); +// if (e.getBizType().equals(NumConstant.TWO_STR)){ +// Map ticketMap = JSON.parseObject(e.getBizData(), Map.class); +// dingCallbackRedis.set(suiteKey,ticketMap.get("suiteTicket")); +// } +// }); +// openSyncBizDataService.insertBatch(list); +// } +// } else{ +// // 其他类型事件处理 +// } +// +// // 返回success的加密信息表示回调处理成功 +// return dingTalkEncryptor.getEncryptedMap("success", timestamp, nonce); +// } catch (Exception e) { +// //失败的情况,应用的开发者应该通过告警感知,并干预修复 +// log.error("process callback fail." + params, e); +// return "fail"; +// } +// } + +// @PostMapping("getExemptLoginUserDetail") +// public Result getExemptLoginUserDetail(@RequestBody ExemptLoginUserDetailFormDTO formDTO){ +// ValidatorUtils.validateEntity(formDTO, ExemptLoginUserDetailFormDTO.ExemptLoginUserDetailForm.class); +// return new Result().ok(dingTalkService.getExemptLoginUserDetail(formDTO)); +// } /** * Desc: 获取钉钉小程序信息 @@ -147,9 +132,9 @@ public class CallbackController { * @author zxc * @date 2022/9/15 10:46 */ - @PostMapping("getDingMiniInfo") - public Result getDingMiniInfo(@RequestBody DingMiniInfoFormDTO formDTO){ - ValidatorUtils.validateEntity(formDTO, DingMiniInfoFormDTO.DingMiniInfoForm.class); - return new Result().ok(dingTalkService.getDingMiniInfo(formDTO)); - } +// @PostMapping("getDingMiniInfo") +// public Result getDingMiniInfo(@RequestBody DingMiniInfoFormDTO formDTO){ +// ValidatorUtils.validateEntity(formDTO, DingMiniInfoFormDTO.DingMiniInfoForm.class); +// return new Result().ok(dingTalkService.getDingMiniInfo(formDTO)); +// } } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/tccc/TCCCAuthController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/tccc/TCCCAuthController.java index dd852c7eca..086f325d11 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/tccc/TCCCAuthController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/tccc/TCCCAuthController.java @@ -1,6 +1,8 @@ package com.epmet.controller.tccc; import com.epmet.commons.tools.utils.net.TCCCClientUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -8,8 +10,10 @@ import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController @RequestMapping("tccc") +@Api(tags = "获取腾讯呼叫中心URL") public class TCCCAuthController { + @ApiOperation(value = "tccc") @RequestMapping("getTcccAuth") public String getTcccAuth() { try { diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DingTalkService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DingTalkService.java index ca0ba390f8..1d282c1749 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DingTalkService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DingTalkService.java @@ -1,9 +1,5 @@ package com.epmet.service; -import com.epmet.commons.tools.dto.form.DingMiniInfoFormDTO; -import com.epmet.commons.tools.redis.common.bean.DingMiniInfoCache; -import com.epmet.dto.form.ExemptLoginUserDetailFormDTO; - /** * @Author zxc * @DateTime 2022/9/14 14:56 @@ -11,7 +7,7 @@ import com.epmet.dto.form.ExemptLoginUserDetailFormDTO; */ public interface DingTalkService { - Object getExemptLoginUserDetail(ExemptLoginUserDetailFormDTO formDTO); +// Object getExemptLoginUserDetail(ExemptLoginUserDetailFormDTO formDTO); /** * Desc: 获取钉钉小程序信息 @@ -19,6 +15,6 @@ public interface DingTalkService { * @author zxc * @date 2022/9/15 10:46 */ - DingMiniInfoCache getDingMiniInfo(DingMiniInfoFormDTO formDTO); +// DingMiniInfoCache getDingMiniInfo(DingMiniInfoFormDTO formDTO); } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java index ec239a3ee9..ab2357d109 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java @@ -1,24 +1,11 @@ package com.epmet.service.impl; -import cn.hutool.core.bean.BeanUtil; -import com.aliyun.dingtalk.module.DingTalkResult; -import com.epmet.commons.tools.dto.form.DingMiniInfoFormDTO; -import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; -import com.epmet.commons.tools.redis.common.bean.DingMiniInfoCache; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.dao.OpenSyncBizDataDao; -import com.epmet.dto.DingMiniInfoDTO; -import com.epmet.dto.form.ExemptLoginUserDetailFormDTO; import com.epmet.redis.DingDingCallbackRedis; import com.epmet.service.DingTalkService; -import com.taobao.dingtalk.client.DingTalkClientToken; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; - -import java.util.Map; /** * @Author zxc @@ -29,21 +16,21 @@ import java.util.Map; @Slf4j public class DingTalkServiceImpl implements DingTalkService { - @Autowired - private DingTalkClientToken dingTalkClientToken; - @Autowired - private OpenSyncBizDataDao openSyncBizDataDao; +// @Autowired +// private DingTalkClientToken dingTalkClientToken; +// @Autowired +// private OpenSyncBizDataDao openSyncBizDataDao; @Autowired private DingDingCallbackRedis dingCallbackRedis; @Autowired private RedisUtils redisUtils; - @Override - public Object getExemptLoginUserDetail(ExemptLoginUserDetailFormDTO formDTO) { - DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfoByAppId(formDTO.getMiniAppId()); - DingTalkResult exemptLoginUserDetail = dingTalkClientToken.getExemptLoginUserDetail(formDTO.getCorpId(), dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret(), dingCallbackRedis.get(dingMiniInfo.getSuiteKey()), formDTO.getCode()); - return exemptLoginUserDetail.getData(); - } +// @Override +// public Object getExemptLoginUserDetail(ExemptLoginUserDetailFormDTO formDTO) { +// DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfoByAppId(formDTO.getMiniAppId()); +// DingTalkResult exemptLoginUserDetail = dingTalkClientToken.getExemptLoginUserDetail(formDTO.getCorpId(), dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret(), dingCallbackRedis.get(dingMiniInfo.getSuiteKey()), formDTO.getCode()); +// return exemptLoginUserDetail.getData(); +// } /** * Desc: 获取钉钉小程序信息 @@ -51,18 +38,18 @@ public class DingTalkServiceImpl implements DingTalkService { * @author zxc * @date 2022/9/15 10:46 */ - @Override - public DingMiniInfoCache getDingMiniInfo(DingMiniInfoFormDTO formDTO) { - String key = RedisKeys.getDingMiniInfoKey(formDTO.getMiniAppId()); - Map dingMiniInfoMap = redisUtils.hGetAll(key); - if (!CollectionUtils.isEmpty(dingMiniInfoMap)) { - return ConvertUtils.mapToEntity(dingMiniInfoMap,DingMiniInfoCache.class); - } - DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfoByAppId(formDTO.getMiniAppId()); - if (null != dingMiniInfo){ - redisUtils.hMSet(key, BeanUtil.beanToMap(dingMiniInfo)); - return ConvertUtils.sourceToTarget(dingMiniInfo,DingMiniInfoCache.class); - } - return null; - } +// @Override +// public DingMiniInfoCache getDingMiniInfo(DingMiniInfoFormDTO formDTO) { +// String key = RedisKeys.getDingMiniInfoKey(formDTO.getMiniAppId()); +// Map dingMiniInfoMap = redisUtils.hGetAll(key); +// if (!CollectionUtils.isEmpty(dingMiniInfoMap)) { +// return ConvertUtils.mapToEntity(dingMiniInfoMap,DingMiniInfoCache.class); +// } +// DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfoByAppId(formDTO.getMiniAppId()); +// if (null != dingMiniInfo){ +// redisUtils.hMSet(key, BeanUtil.beanToMap(dingMiniInfo)); +// return ConvertUtils.sourceToTarget(dingMiniInfo,DingMiniInfoCache.class); +// } +// return null; +// } } diff --git a/epmet-module/gov-issue/gov-issue-client/pom.xml b/epmet-module/gov-issue/gov-issue-client/pom.xml index 9d07717da1..3d3e48c82b 100644 --- a/epmet-module/gov-issue/gov-issue-client/pom.xml +++ b/epmet-module/gov-issue/gov-issue-client/pom.xml @@ -16,6 +16,20 @@ com.epmet epmet-commons-tools 2.0.0 + + + objenesis + org.objenesis + + + asm + org.ow2.asm + + + commons-collections4 + org.apache.commons + + com.epmet diff --git a/epmet-module/gov-org/gov-org-client/pom.xml b/epmet-module/gov-org/gov-org-client/pom.xml index 45a34fa42a..d608d5c67a 100644 --- a/epmet-module/gov-org/gov-org-client/pom.xml +++ b/epmet-module/gov-org/gov-org-client/pom.xml @@ -17,6 +17,20 @@ com.epmet epmet-commons-tools 2.0.0 + + + objenesis + org.objenesis + + + commons-collections4 + org.apache.commons + + + asm + org.ow2.asm + + diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java index 03346cb6fc..459fb1bcca 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java @@ -89,5 +89,8 @@ public class IcHouseListResultDTO implements Serializable { */ private String houseCode; - + /** + * 灵山项目:是否党员中心户:1是;0不是 + */ + private String partyCenterHouseFlag; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/ConfigPartyCenterHouseFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/ConfigPartyCenterHouseFormDTO.java new file mode 100644 index 0000000000..faa711dc25 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/ConfigPartyCenterHouseFormDTO.java @@ -0,0 +1,18 @@ +package com.epmet.dto.result.lingshan; + +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2023/5/17 12:45 + */ +@Data +public class ConfigPartyCenterHouseFormDTO { + private String houseId; + /** + * 灵山项目:是否党员中心户:1是;0不是 + */ + private String partyCenterHouseFlag; +} + diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/HouseTreeDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/HouseTreeDTO.java new file mode 100644 index 0000000000..5125ddb301 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/HouseTreeDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.result.lingshan; + +import lombok.Data; + +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2023/5/17 9:21 + */ +@Data +public class HouseTreeDTO { + private String id; + /** + * 小区:neighborHood + * 楼栋:building + * 单元:unit + * 房屋:house + */ + private String type; + private String name; + /** + * 下级机关组织 + */ + private List children; +} + diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/HouseTreeFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/HouseTreeFormDTO.java new file mode 100644 index 0000000000..66fe4256f7 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/HouseTreeFormDTO.java @@ -0,0 +1,14 @@ +package com.epmet.dto.result.lingshan; + +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2023/5/17 9:29 + */ +@Data +public class HouseTreeFormDTO { + private String gridId; +} + diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/LingshanPartyCenterHouseLianhuDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/LingshanPartyCenterHouseLianhuDTO.java new file mode 100644 index 0000000000..0a7df6be25 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/LingshanPartyCenterHouseLianhuDTO.java @@ -0,0 +1,75 @@ +package com.epmet.dto.result.lingshan; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + + +/** + * 灵山_党员中心户联户 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2023-05-16 + */ +@Data +public class LingshanPartyCenterHouseLianhuDTO implements Serializable { + + /** + * 主键(联户记录表) + */ + @JsonIgnore + private String id; + + /** + * 客户id + */ + @JsonIgnore + private String customerId; + + /** + * 党员中心户房屋id:lingshan_party_center_house.HOUSE_ID + */ + @JsonIgnore + private String partyCenterHouseId; + + /** + * 联户:房屋所属组织id + */ + @JsonIgnore + private String agencyId; + + /** + * 联户:房屋所属网格id + */ + @JsonIgnore + private String gridId; + + /** + * 联户:grid_id的path。包含grid_id + */ + @JsonIgnore + private String gridIdPath; + + /** + * 联户:小区id + */ + private String neighborHoodId; + + /** + * 联户:楼栋id + */ + private String buildingId; + + /** + * 联户:单元id + */ + private String buildingUnitId; + + /** + * 联户:联户房屋id + */ + private String houseId; + + +} \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/PartyCenterHouseBindLianHuFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/PartyCenterHouseBindLianHuFormDTO.java index 5f532f0cf2..1a39e04169 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/PartyCenterHouseBindLianHuFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/PartyCenterHouseBindLianHuFormDTO.java @@ -12,6 +12,6 @@ import java.util.List; @Data public class PartyCenterHouseBindLianHuFormDTO { private String partyCenterHouseId; - private List lianHuHouseIdList; + private List lianHuHouseList; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/PartyCenterHouseResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/PartyCenterHouseResultDTO.java index e649184ce0..9dbe05c71c 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/PartyCenterHouseResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/PartyCenterHouseResultDTO.java @@ -93,6 +93,9 @@ public class PartyCenterHouseResultDTO { * 联户数 */ private Integer totalLianHu; - + /** + * 灵山项目:是否党员中心户:1是;0不是 + */ + private String partyCenterHouseFlag; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java index bd8cd9a1be..e10170853d 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java @@ -14,8 +14,9 @@ public enum HouseChangeEnums { RENT_FLAG("RENT_FLAG","房屋状态"), OWNER_NAME("OWNER_NAME","房主姓名"), OWNER_PHONE("OWNER_PHONE","房主电话"), - OWNER_ID_CARD("OWNER_ID_CARD","房主身份证"); - + OWNER_ID_CARD("OWNER_ID_CARD","房主身份证"), + // 灵山项目:是否党员中心户:1是;0不是 + PARTY_CENTER_HOUSE_FLAG("PARTY_CENTER_HOUSE_FLAG", "党员中心户"); private String column; private String columnName; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 6712f7247e..3f76336879 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -6,6 +6,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.dto.result.lingshan.ConfigPartyCenterHouseFormDTO; import com.epmet.feign.fallback.GovOrgOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; @@ -782,4 +783,13 @@ public interface GovOrgOpenFeignClient { Result> lingshanPartyServiceCenterList( @RequestParam(value = "objType", required = false) String objType, @RequestParam(value = "orgId", required = false) String orgId); + + /** + * 灵山项目:新增居民/修改居民/删除居民/导入居民时,重新更新房屋是否是党员中心户 + * + * @param formDTO + * @return + */ + @PostMapping("/gov/org/ichouse/updatePartyCenterHouse") + Result updatePartyCenterHouse(@RequestBody ConfigPartyCenterHouseFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 040c046b85..5d8c8ebf4b 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -7,6 +7,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.dto.result.lingshan.ConfigPartyCenterHouseFormDTO; import com.epmet.feign.GovOrgOpenFeignClient; import java.util.List; @@ -483,4 +484,15 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { public Result> lingshanPartyServiceCenterList(String objType, String orgId) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "lingshanPartyServiceCenterList", objType, orgId); } + + /** + * 灵山项目:新增居民/修改居民/删除居民/导入居民时,重新更新房屋是否是党员中心户 + * + * @param formDTO + * @return + */ + @Override + public Result updatePartyCenterHouse(ConfigPartyCenterHouseFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "updatePartyCenterHouse", formDTO); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java index 27ca372d06..ae3393cf17 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java @@ -33,8 +33,7 @@ import com.epmet.dto.result.HouseAgencyInfoResultDTO; import com.epmet.dto.result.HouseInfoDTO; import com.epmet.dto.result.HouseListResultDTO; import com.epmet.dto.result.HousesNameResultDTO; -import com.epmet.dto.result.lingshan.PartyCenterHouseBindLianHuFormDTO; -import com.epmet.dto.result.lingshan.PartyCenterHouseResultDTO; +import com.epmet.dto.result.lingshan.*; import com.epmet.service.IcHouseService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -189,7 +188,7 @@ public class IcHouseController { @PostMapping("bingLianHu") public Result bingLianHu( @RequestBody PartyCenterHouseBindLianHuFormDTO formDTO) { if(StringUtils.isNotBlank(formDTO.getPartyCenterHouseId())){ - icHouseService.bingLianHu(formDTO.getPartyCenterHouseId(),formDTO.getLianHuHouseIdList()); + icHouseService.bingLianHu(formDTO.getPartyCenterHouseId(),formDTO.getLianHuHouseList()); } return new Result(); } @@ -200,12 +199,33 @@ public class IcHouseController { * @param partyCenterHouseId * @return */ - @PostMapping("queryLianHuHouseId/{partyCenterHouseId}") - public Result> queryLianHuHouseId(@PathVariable("partyCenterHouseId") String partyCenterHouseId) { - List list = icHouseService.queryLianHuHouseId(partyCenterHouseId); - return new Result>().ok(list); + @PostMapping("queryLianHuHouse/{partyCenterHouseId}") + public Result> queryLianHuHouse(@PathVariable("partyCenterHouseId") String partyCenterHouseId) { + List list = icHouseService.queryLianHuHouse(partyCenterHouseId); + return new Result>().ok(list); } + /** + * 灵山项目-绑定联户时候,选择同网格内的房屋 + * 房屋树:小区-楼栋-单元-房屋,共4级 + * 可以根据网格id的房屋 + * + * @param formDTO + * @return + */ + @PostMapping("housetree") + public Result> getOrgTreeData(@RequestBody HouseTreeFormDTO formDTO) { + return new Result>().ok(icHouseService.getOrgTreeData(formDTO.getGridId())); + } - + /** + * 灵山项目:新增居民/修改居民/删除居民/导入居民时,重新更新房屋是否是党员中心户 + * @param formDTO + * @return + */ + @PostMapping("updatePartyCenterHouse") + public Result updatePartyCenterHouse(@RequestBody ConfigPartyCenterHouseFormDTO formDTO){ + icHouseService.updatePartyCenterHouse(formDTO.getHouseId(),formDTO.getPartyCenterHouseFlag()); + return new Result(); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java index 4b10e94bf1..2275021a67 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java @@ -24,6 +24,7 @@ import com.epmet.dto.ImportGeneralDTO; import com.epmet.dto.form.CheckHouseInfoFormDTO; import com.epmet.dto.form.IcBuildingListFormDTO; import com.epmet.dto.result.*; +import com.epmet.dto.result.lingshan.HouseTreeDTO; import com.epmet.entity.CustomerAgencyEntity; import com.epmet.entity.IcBuildingEntity; import com.epmet.entity.IcHouseEntity; @@ -255,4 +256,25 @@ public interface IcBuildingDao extends BaseDao { */ IcBuildingEntity getBuildingInfoByName(CheckHouseInfoFormDTO formDTO); + /** + * 1、楼栋节点 + * @param neighborHoodId + * @return + */ + List selectBuildingTree(@Param("neighborHoodId") String neighborHoodId); + + /** + * 2、单元节点 + * @param buildingId + * @return + */ + List selectUnit(@Param("buildingId") String buildingId); + + /** + * 3、房屋节点 + * @param unitId + * @return + */ + List selectHouseTree(@Param("unitId") String unitId); } + diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/LingshanPartyCenterHouseLianhuDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/LingshanPartyCenterHouseLianhuDao.java index 0750103ca0..7b712e100c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/LingshanPartyCenterHouseLianhuDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/LingshanPartyCenterHouseLianhuDao.java @@ -4,8 +4,6 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.entity.LingshanPartyCenterHouseLianhuEntity; import org.apache.ibatis.annotations.Mapper; -import java.util.List; - /** * 灵山_党员中心户联户 * @@ -15,12 +13,7 @@ import java.util.List; @Mapper public interface LingshanPartyCenterHouseLianhuDao extends BaseDao { - /** - * 查询党员中心对应的联户房屋id - * @param partyCenterHouseId - * @return - */ - List queryLianHuHouseId(String partyCenterHouseId); - int deleteByPartyCenterHouseId(String partyCenterHouseId); + + LingshanPartyCenterHouseLianhuEntity selectByHouseId(String houseId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java index d77a7a0eab..cec8ca1349 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java @@ -14,6 +14,8 @@ import com.epmet.dto.result.HouseAgencyInfoResultDTO; import com.epmet.dto.result.HouseInfoDTO; import com.epmet.dto.result.HouseListResultDTO; import com.epmet.dto.result.HousesNameResultDTO; +import com.epmet.dto.result.lingshan.HouseTreeDTO; +import com.epmet.dto.result.lingshan.LingshanPartyCenterHouseLianhuDTO; import com.epmet.dto.result.lingshan.PartyCenterHouseBindLianHuDetailDTO; import com.epmet.dto.result.lingshan.PartyCenterHouseResultDTO; import com.epmet.entity.IcHouseEntity; @@ -154,14 +156,31 @@ public interface IcHouseService extends BaseService { /** * 灵山项目-党员中心户,绑定联户 * @param partyCenterHouseId - * @param lianHuHouseIdList + * @param lianHuHouseList */ - void bingLianHu(String partyCenterHouseId, List lianHuHouseIdList); + void bingLianHu(String partyCenterHouseId, List lianHuHouseList); /** * 灵山项目-查询联户房屋列表 * @param partyCenterHouseId * @return */ - List queryLianHuHouseId(String partyCenterHouseId); + List queryLianHuHouse(String partyCenterHouseId); + + /** + * 灵山项目-绑定联户时候,选择同网格内的房屋 + * 房屋树:小区-楼栋-单元-房屋,共4级 + * 可以根据网格id的房屋 + * + * @param gridId + * @return + */ + List getOrgTreeData(String gridId); + + /** + * 更新房屋是否是党员中心户 + * @param houseId + * @param partyCenterHouseFlag + */ + void updatePartyCenterHouse(String houseId, String partyCenterHouseFlag); } 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 d47c6e0132..a642150cf9 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 @@ -356,6 +356,44 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { e.setChangeBefore(StringUtils.isNotBlank(entity.getOwnerIdCard()) ? entity.getOwnerIdCard() : "无"); entityList.add(e); } + if (StringUtils.isNotBlank(entity.getPartyCenterHouseFlag())) { + if(!entity.getPartyCenterHouseFlag().equals(houseDTO.getPartyCenterHouseFlag())){ + String originName=NumConstant.ZERO_STR.equals(entity.getPartyCenterHouseFlag())?"否":"是"; + String nowName=""; + if(NumConstant.ZERO_STR.equals(houseDTO.getPartyCenterHouseFlag())){ + nowName="否"; + }else if(NumConstant.ONE_STR.equals(houseDTO.getPartyCenterHouseFlag())){ + nowName="是"; + }else{ + nowName="-"; + } + sbAfter.append(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumnName()).append(":").append(nowName).append(";"); + sbBefore.append(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumnName()).append(":").append(originName).append(";"); + IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); + e.setChangeCol(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumn()); + e.setChangeAfter(nowName); + e.setChangeBefore(originName); + entityList.add(e); + } + } else { + // 原来不确定是否是党员中心户 + String nowName=""; + if(NumConstant.ZERO_STR.equals(houseDTO.getPartyCenterHouseFlag())){ + nowName="否"; + }else if(NumConstant.ONE_STR.equals(houseDTO.getPartyCenterHouseFlag())){ + nowName="是"; + }else{ + nowName="-"; + } + sbAfter.append(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumnName()).append(":").append(nowName).append(";"); + sbBefore.append(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumnName()).append(":").append("-").append(";"); + IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity(); + e.setChangeCol(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumn()); + e.setChangeAfter(nowName); + e.setChangeBefore("-"); + entityList.add(e); + } + if (StringUtils.isNotBlank(sbAfter)) { String before = sbBefore.substring(NumConstant.ZERO, sbBefore.length() - NumConstant.ONE); String after = sbAfter.substring(NumConstant.ZERO, sbAfter.length() - NumConstant.ONE); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java index 724190b047..8a782c376a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java @@ -1,6 +1,7 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; @@ -25,6 +26,8 @@ import com.epmet.dto.form.CheckHouseInfoFormDTO; import com.epmet.dto.form.HouseFormDTO; import com.epmet.dto.form.lingshan.PartyCenterHousePageFormDTO; import com.epmet.dto.result.*; +import com.epmet.dto.result.lingshan.HouseTreeDTO; +import com.epmet.dto.result.lingshan.LingshanPartyCenterHouseLianhuDTO; import com.epmet.dto.result.lingshan.PartyCenterHouseBindLianHuDetailDTO; import com.epmet.dto.result.lingshan.PartyCenterHouseResultDTO; import com.epmet.entity.*; @@ -36,6 +39,7 @@ import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.OperCustomizeOpenFeignClient; import com.epmet.redis.IcHouseRedis; import com.epmet.service.CustomerGridService; +import com.epmet.service.HouseService; import com.epmet.service.IcHouseService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -422,8 +426,12 @@ public class IcHouseServiceImpl extends BaseServiceImpl queryPartyCenterHouseList(PartyCenterHousePageFormDTO formDTO) { CustomerStaffInfoCacheResult staffInfoCacheResult= CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(),formDTO.getStaffId()); PageHelper.startPage(formDTO.getPageNo(),formDTO.getPageSize()); - List list=baseDao.selectListPartyCenterHouse(formDTO.getCustomerId(),staffInfoCacheResult.getAgencyId(), - formDTO.getNeighborHoodName(),formDTO.getBuildingName(),formDTO.getBuildingId(),formDTO.getPartyCenterHouseFlag()); + List list=baseDao.selectListPartyCenterHouse(formDTO.getCustomerId(), + staffInfoCacheResult.getAgencyId(), + formDTO.getNeighborHoodName(), + formDTO.getBuildingName(), + formDTO.getBuildingId(), + formDTO.getPartyCenterHouseFlag()); list.forEach(item -> { item.setHouseTypeName(HouseTypeEnums.getTypeValue(item.getHouseType())); item.setPurposeName(HousePurposeEnums.getTypeValue(item.getPurpose())); @@ -436,48 +444,50 @@ public class IcHouseServiceImpl extends BaseServiceImpl lianHuHouseIdList) { + public void bingLianHu(String partyCenterHouseId, List lianHuHouseList) { IcHouseEntity partyCenterHouse=baseDao.selectById(partyCenterHouseId); IcNeighborHoodEntity neighborHoodEntity=icNeighborHoodDao.selectById(partyCenterHouse.getNeighborHoodId()); CustomerGridDTO gridDTO=SpringContextUtils.getBean(CustomerGridService.class).get(neighborHoodEntity.getGridId()); String gridIdPath=PidUtils.convertPid2OrgIdPath(gridDTO.getId(), gridDTO.getPids()); // 先删除 - LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); - queryWrapper.eq(LingshanPartyCenterHouseLianhuEntity::getPartyCenterHouseId,partyCenterHouseId); partyCenterHouseLianhuDao.deleteByPartyCenterHouseId(partyCenterHouseId); // 后插入 - lianHuHouseIdList.forEach(lianHuHouseId->{ + lianHuHouseList.forEach(lianHuHouse->{ //根据选中类型,查询下面的房屋 List list=new ArrayList<>(); - if(!"house".equals(lianHuHouseId.getType())){ + if(!"house".equals(lianHuHouse.getType())){ LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.eq("neighborHood".equals(lianHuHouseId.getType()), IcHouseEntity::getNeighborHoodId, lianHuHouseId.getId()) - .eq("building".equals(lianHuHouseId.getType()), IcHouseEntity::getBuildingId, lianHuHouseId.getId()) - .eq("unit".equals(lianHuHouseId.getType()), IcHouseEntity::getBuildingUnitId, lianHuHouseId.getId()); + query.eq("neighborHood".equals(lianHuHouse.getType()), IcHouseEntity::getNeighborHoodId, lianHuHouse.getId()) + .eq("building".equals(lianHuHouse.getType()), IcHouseEntity::getBuildingId, lianHuHouse.getId()) + .eq("unit".equals(lianHuHouse.getType()), IcHouseEntity::getBuildingUnitId, lianHuHouse.getId()); list.addAll(baseDao.selectList(query)); }else{ - IcHouseEntity icHouseEntity=baseDao.selectById(lianHuHouseId.getId()); + IcHouseEntity icHouseEntity=baseDao.selectById(lianHuHouse.getId()); list.add(icHouseEntity); } if(CollectionUtils.isNotEmpty(list)){ for(IcHouseEntity houseEntity:list){ - LingshanPartyCenterHouseLianhuEntity entity=new LingshanPartyCenterHouseLianhuEntity(); - entity.setPartyCenterHouseId(partyCenterHouseId); - //目前只能绑定同一个网格下的房屋 - entity.setCustomerId(neighborHoodEntity.getCustomerId()); - entity.setAgencyId(neighborHoodEntity.getAgencyId()); - entity.setGridId(neighborHoodEntity.getGridId()); - entity.setGridIdPath(gridIdPath); - - entity.setNeighborHoodId(houseEntity.getNeighborHoodId()); - entity.setBuildingId(houseEntity.getBuildingId()); - entity.setBuildingUnitId(houseEntity.getBuildingUnitId()); - entity.setHouseId(houseEntity.getId()); - partyCenterHouseLianhuDao.insert(entity); + LingshanPartyCenterHouseLianhuEntity existedEntiy=partyCenterHouseLianhuDao.selectByHouseId(houseEntity.getId()); + if (null == existedEntiy) { + LingshanPartyCenterHouseLianhuEntity entity = new LingshanPartyCenterHouseLianhuEntity(); + entity.setPartyCenterHouseId(partyCenterHouseId); + // 目前只能绑定同一个网格下的房屋 + entity.setCustomerId(neighborHoodEntity.getCustomerId()); + entity.setAgencyId(neighborHoodEntity.getAgencyId()); + entity.setGridId(neighborHoodEntity.getGridId()); + entity.setGridIdPath(gridIdPath); + + entity.setNeighborHoodId(houseEntity.getNeighborHoodId()); + entity.setBuildingId(houseEntity.getBuildingId()); + entity.setBuildingUnitId(houseEntity.getBuildingUnitId()); + entity.setHouseId(houseEntity.getId()); + partyCenterHouseLianhuDao.insert(entity); + } } } }); @@ -491,11 +501,66 @@ public class IcHouseServiceImpl extends BaseServiceImpl queryLianHuHouseId(String partyCenterHouseId) { + public List queryLianHuHouse(String partyCenterHouseId) { if(StringUtils.isBlank(partyCenterHouseId)){ return new ArrayList<>(); } - return partyCenterHouseLianhuDao.queryLianHuHouseId(partyCenterHouseId); + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(LingshanPartyCenterHouseLianhuEntity::getPartyCenterHouseId,partyCenterHouseId); + List list=partyCenterHouseLianhuDao.selectList(queryWrapper); + return ConvertUtils.sourceToTarget(list,LingshanPartyCenterHouseLianhuDTO.class); + } + + /** + * 灵山项目-绑定联户时候,选择同网格内的房屋 + * 房屋树:小区-楼栋-单元-房屋,共4级 + * 可以根据网格id的房屋 + * + * @param gridId + * @return + */ + @Override + public List getOrgTreeData(String gridId) { + LambdaQueryWrapper neighborHoodWrapper = new LambdaQueryWrapper<>(); + neighborHoodWrapper.eq(IcNeighborHoodEntity::getGridId, gridId) + .select(IcNeighborHoodEntity::getId,IcNeighborHoodEntity::getNeighborHoodName); + List list = icNeighborHoodDao.selectList(neighborHoodWrapper); + List resultList = new ArrayList<>(); + for (IcNeighborHoodEntity neighborHoodEntity : list) { + HouseTreeDTO houseTreeDTO = new HouseTreeDTO(); + houseTreeDTO.setId(neighborHoodEntity.getId()); + houseTreeDTO.setType("neighborHood"); + houseTreeDTO.setName(neighborHoodEntity.getNeighborHoodName()); + List buildingList=icBuildingDao.selectBuildingTree(neighborHoodEntity.getId()); + houseTreeDTO.setChildren(buildingList); + resultList.add(houseTreeDTO); + } + return resultList; + } + + /** + * 更新房屋是否是党员中心户 + * + * @param houseId + * @param partyCenterHouseFlag:是否党员中心户:1是;0不是 + */ + @Override + public void updatePartyCenterHouse(String houseId, String partyCenterHouseFlag) { + if(NumConstant.ZERO_STR.equals(partyCenterHouseFlag)){ + //房屋如果不是党员中心户,自动删除绑定的联户 + partyCenterHouseLianhuDao.deleteByPartyCenterHouseId(houseId); + } + //加一条变更记录吧。。 就当留痕了 + IcHouseEntity origin = baseDao.selectById(houseId); + IcHouseDTO icHouseDTO = ConvertUtils.sourceToTarget(origin, IcHouseDTO.class); + icHouseDTO.setPartyCenterHouseFlag(partyCenterHouseFlag); + SpringContextUtils.getBean(HouseService.class).houseChangeRecord(houseId, icHouseDTO.getCustomerId(), icHouseDTO); + //修改 + LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); + update.set(IcHouseEntity::getPartyCenterHouseFlag, partyCenterHouseFlag) + .set(IcHouseEntity::getUpdatedTime,new Date()) + .eq(IcHouseEntity::getId, houseId); + baseDao.update(null, update); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml index 2c8176a18f..2224b68099 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml @@ -552,4 +552,54 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index 1ccf5a4d65..7ffaff80a2 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -118,7 +118,8 @@ gr.GRID_NAME, IFNULL(a.sort,0) as sort, IFNULL(a.REMARK,'') AS remark, - a.CUSTOMER_ID + a.CUSTOMER_ID, + a.PARTY_CENTER_HOUSE_FLAG as partyCenterHouseFlag from ic_house a LEFT JOIN ic_building b on a.BUILDING_ID = b.ID and b.DEL_FLAG = '0' LEFT JOIN ic_neighbor_hood c on a.NEIGHBOR_HOOD_ID = c.ID and c.DEL_FLAG = '0' @@ -736,7 +737,8 @@ from lingshan_party_center_house_lianhu r where r.PARTY_CENTER_HOUSE_ID=ih.ID and r.DEL_FLAG='0' - )as totalLianHu + )as totalLianHu, + ih.PARTY_CENTER_HOUSE_FLAG as partyCenterHouseFlag FROM ic_house ih inner join ic_building_unit u diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/LingshanPartyCenterHouseLianhuDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/LingshanPartyCenterHouseLianhuDao.xml index 663d63ab6c..285b47922e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/LingshanPartyCenterHouseLianhuDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/LingshanPartyCenterHouseLianhuDao.xml @@ -22,18 +22,16 @@ - - delete from lingshan_party_center_house_lianhu where PARTY_CENTER_HOUSE_ID=#{partyCenterHouseId} + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/pom.xml b/epmet-module/gov-project/gov-project-client/pom.xml index 6bf188e6e8..024e15c963 100644 --- a/epmet-module/gov-project/gov-project-client/pom.xml +++ b/epmet-module/gov-project/gov-project-client/pom.xml @@ -16,12 +16,21 @@ com.epmet epmet-commons-tools 2.0.0 + + + objenesis + org.objenesis + + + commons-collections4 + org.apache.commons + + com.epmet resi-mine-client 2.0.0 - compile \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventAddEditFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventAddEditFormDTO.java deleted file mode 100644 index d31d57b3d1..0000000000 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventAddEditFormDTO.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.epmet.dto.form; - -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - - -@Data -public class EventAddEditFormDTO implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 事件编号 - */ - private String code; - /** - * 事件状态 - */ - private String status; - /** - * 上报人员 - */ - private String reporter; - /** - * 联系电话 - */ - private String phone; - /** - * 上报事件 - */ - private Date reportDate; - /** - * 紧急程度 - */ - private String urgency; - /** - * 所属网格 - */ - private String grid; - /** - * 事件类型 - */ - private String eventType; - /** - * 即办类型 - */ - private String type; - /** - * 办理期限 - */ - private Date lastDate; - - /** - * 满意度 - */ - private String satisficing; - - /** - * 页码 - */ - private Integer pageNo = 1; - /** - * 每页显示数量 - */ - private Integer pageSize = 20; - - private Boolean isPage = true; - - - private String customerId; - - private String agencyId; - - private String staffId; - - private String userId; - - private String app; - - private String client; -} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventFormsDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventFormsDTO.java deleted file mode 100644 index a9c4c2baa5..0000000000 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventFormsDTO.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.epmet.dto.form; - -import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -/** - * 灵山项目事件 formDTO - */ - -@Data -public class EventFormsDTO implements Serializable { - private static final long serialVersionUID = 1; - - public interface Detail extends CustomerClientShowGroup { - } - - public interface GovRedDot extends CustomerClientShowGroup { - } - - /** - * 事件编号 - */ - private String code; - /** - * 事件状态 - */ - private String status; - /** - * 上报人员 - */ - private String reporter; - /** - * 联系电话 - */ - private String phone; - /** - * 上报事件 - */ - private Date reportDate; - /** - * 紧急程度 - */ - private String urgency; - /** - * 所属网格 - */ - private String grid; - /** - * 事件类型 - */ - private String eventType; - /** - * 即办类型 - */ - private String type; - /** - * 办理期限 - */ - private Date lastDate; - - /** - * 满意度 - */ - private String satisficing; - - /** - * 页码 - */ - private Integer pageNo = 1; - /** - * 每页显示数量 - */ - private Integer pageSize = 20; - - private Boolean isPage = true; - - - private String customerId; - - private String agencyId; - - private String staffId; -} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventAddEditFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventAddEditFormDTO.java index 31010e536f..c630f4940a 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventAddEditFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventAddEditFormDTO.java @@ -124,4 +124,24 @@ public class IcEventAddEditFormDTO implements Serializable { @Valid private IcEventToIssueFormDTO issueInfo; -} \ No newline at end of file + /** + * 办理状态:0、上报 1、阅收 2、完结 3、审核 4、事件评价 5、结案归档 + */ + private Integer manageStatus; + + /** + * 办理时间 + */ + private Date manageTime; + + /** + * 办理人 + */ + private String manageResi; + + /** + * 办理人电话 + */ + private String manageResiTel; + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventReplyFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventReplyFormDTO.java index 6c9bacafa8..05e42de873 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventReplyFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventReplyFormDTO.java @@ -6,6 +6,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.util.Date; /** * @Description 事件管理_回复 @@ -50,7 +51,27 @@ public class IcEventReplyFormDTO implements Serializable { @NotBlank(message = "满意度不能为空", groups = {Comment.class}) private String satisfaction; + /** + * 办理状态:0、上报 1、阅收 2、完结 3、审核 4、事件评价 5、结案归档 + */ + private Integer manageStatus; + + /** + * 办理时间 + */ + private Date manageTime; + + /** + * 办理人 + */ + private String manageResi; + + /** + * 办理人电话 + */ + private String manageResiTel; + private String customerId; private String userId; -} \ No newline at end of file +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EventResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EventResultDTO.java deleted file mode 100644 index 059905086a..0000000000 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EventResultDTO.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.epmet.dto.result; - -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -/** - * 即墨灵山项目 - */ - -@Data -public class EventResultDTO implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 主键ID - */ - private String id; - - /** - * 事件编号 - */ - private String code; - - /** - * 事件状态 - */ - private String status; - - /** - * 事件明细ID - */ - private String detailId; - /** - * 上报人员 - */ - private String reporter; - /** - * 联系电话 - */ - private String phone; - /** - * 上报事件事件 - */ - private Date reportDate; - /** - * 紧急程度 - */ - private String urgency; - /** - * 所属网格 - */ - private String grid; - /** - * 事件类型 - */ - private String eventType; - /** - * 即办类型 - */ - private String type; - /** - * 办理期限 - */ - private Date lastDate; - /** - * 事件地址 - */ - private String eventAddr; - - /** - * 坐标经度 - */ - private String longitude; - /** - * 坐标纬度 - */ - private String latitude; - /** - * 音频 - */ - private String voice; - /** - * 视频 - */ - private String video; - /** - * 满意度 - */ - private String satisficing; - /** - * 解决情况 - */ - private String remark; - /** - * 事件描述 - */ - private String conetnt; - -} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java index 4379252a67..51b82fcfca 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; +import java.util.Date; import java.util.List; /** @@ -92,5 +93,25 @@ public class IcEventProcessListResultDTO implements Serializable { */ private String actualServiceTime; + /** + * 办理状态:0、上报 1、阅收 2、完结 3、审核 4、事件评价 5、结案归档 + */ + private Integer manageStatus; + + /** + * 办理时间 + */ + private Date manageTime; + + /** + * 办理人 + */ + private String manageResi; + + /** + * 办理人电话 + */ + private String manageResiTel; + } diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml index 5c6d2c07a7..4cdd96861b 100644 --- a/epmet-module/gov-project/gov-project-server/pom.xml +++ b/epmet-module/gov-project/gov-project-server/pom.xml @@ -33,6 +33,12 @@ com.epmet epmet-commons-tools 2.0.0 + + + objenesis + org.objenesis + + com.epmet @@ -59,6 +65,12 @@ com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery + + + guava + com.google.guava + + com.alibaba.cloud diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/EventController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/EventController.java deleted file mode 100644 index 2a85af367f..0000000000 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/EventController.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.epmet.controller; - -import com.epmet.commons.tools.annotation.LoginUser; -import com.epmet.commons.tools.aop.NoRepeatSubmit; -import com.epmet.commons.tools.page.PageData; -import com.epmet.commons.tools.security.dto.TokenDto; -import com.epmet.commons.tools.utils.Result; -import com.epmet.commons.tools.validator.AssertUtils; -import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.commons.tools.validator.group.AddGroup; -import com.epmet.commons.tools.validator.group.DefaultGroup; -import com.epmet.commons.tools.validator.group.UpdateGroup; -import com.epmet.dto.form.EventAddEditFormDTO; -import com.epmet.dto.form.EventFormsDTO; -import com.epmet.dto.result.EventResultDTO; -import com.epmet.service.EventService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -/** - * @author yan Lu - * @date 2023-04-14 19:07 - * @deprecated 社会治理--事件处理 - */ -@Slf4j -@RestController -@RequestMapping("event") -public class EventController { - - @Autowired - private EventService eventService; - - /** - * 社会治理 事件列表 - * @param tokenDto - * @param formDTO - * @return - */ - @PostMapping("list") - public Result> getList(@LoginUser TokenDto tokenDto, @RequestBody EventFormsDTO formDTO) { - formDTO.setCustomerId(tokenDto.getCustomerId()); - formDTO.setStaffId(tokenDto.getUserId()); - return new Result>().ok(eventService.getList(formDTO)); - } - - /** - * @deprecated 根据ID获取事件 - * @param id - * @return - */ - @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) - public Result get(@PathVariable("id") String id){ - EventResultDTO data = eventService.getById(id); - return new Result().ok(data); - } - - - @NoRepeatSubmit - @PostMapping("add") - public Result save(@LoginUser TokenDto tokenDto, @RequestBody EventAddEditFormDTO formDTO){ - ValidatorUtils.validateEntity(formDTO, AddGroup.class, DefaultGroup.class); - formDTO.setCustomerId(tokenDto.getCustomerId()); - formDTO.setUserId(tokenDto.getUserId()); - formDTO.setApp(tokenDto.getApp()); - formDTO.setClient(tokenDto.getClient()); - eventService.save(formDTO); - return new Result(); - } - - @NoRepeatSubmit - @PostMapping("update") - public Result update(@RequestBody EventResultDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - eventService.update(dto); - return new Result(); - } - - @PostMapping("delete") - public Result delete(@RequestBody String[] ids){ - //效验数据 - AssertUtils.isArrayEmpty(ids, "id"); - eventService.delete(ids); - return new Result(); - } - -} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java index 1aebe7b1d7..8d1f5b826e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java @@ -87,5 +87,5 @@ public interface CustomerProjectParameterDao extends BaseDao { - - List getList(EventFormsDTO formDTO); -} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/EventDetailEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/EventDetailEntity.java deleted file mode 100644 index 84d4c2e0c8..0000000000 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/EventDetailEntity.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.epmet.entity; - -import com.baomidou.mybatisplus.annotation.TableName; -import com.epmet.commons.mybatis.entity.BaseEpmetEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; - -@Data -@EqualsAndHashCode(callSuper = false) -@TableName("event_detail") -public class EventDetailEntity extends BaseEpmetEntity { - - /** - * 事件ID - */ - private String eventId; - /** - * 上报人 - */ - private String reporter; - /** - * 接收人 - */ - private String recipient; - /** - * 上报事件 - */ - private Date reportDate; - /** - * 事件附件地址 - */ - private String atts; - /** - * 事件处理耗时 - */ - private String timeSpent; - /** - * 反馈内容 - */ - private String content; -} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/EventEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/EventEntity.java deleted file mode 100644 index 1d6212adcf..0000000000 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/EventEntity.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.epmet.entity; - - -import com.baomidou.mybatisplus.annotation.TableName; -import com.epmet.commons.mybatis.entity.BaseEpmetEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; - -/** - * 灵山项目事件 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@TableName("event_entity") -public class EventEntity extends BaseEpmetEntity { - - /** - * 事件编号 - */ - private String code; - /** - * 事件状态 - */ - private String status; - /** - * 事件明细ID - */ - private String detailId; - /** - * 上报人员 - */ - private String reporter; - /** - * 联系电话 - */ - private String phone; - /** - * 上报事件事件 - */ - private Date reportDate; - /** - * 紧急程度 - */ - private String urgency; - /** - * 所属网格 - */ - private String grid; - /** - * 事件类型 - */ - private String eventType; - /** - * 即办类型 - */ - private String type; - /** - * 办理期限 - */ - private Date lastDate; - /** - * 事件地址 - */ - private String eventAddr; - - /** - * 坐标经度 - */ - private String longitude; - /** - * 坐标纬度 - */ - private String latitude; - /** - * 音频 - */ - private String voice; - /** - * 视频 - */ - private String video; - /** - * 满意度 - */ - private String satisficing; - /** - * 解决情况 - */ - private String remark; - /** - * 事件描述 - */ - private String conetnt; - -} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/IcEventEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/IcEventEntity.java index 81c5635aaf..c20ab1ec25 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/IcEventEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/IcEventEntity.java @@ -61,6 +61,11 @@ public class IcEventEntity extends BaseEpmetEntity { */ private String idCard; + /** + * 事件分类分类Id :灵山专用 + */ + private String categoryId; + /** * 反映渠道【字典表】dictTypeKey:ic_event_source_type;随手拍随时讲0、多媒体反应1、社区电话2、12345:3、网格员手持终端:4 */ @@ -117,7 +122,7 @@ public class IcEventEntity extends BaseEpmetEntity { private Integer readFlag; /** - * 报事人的红点:展示1;不展示:0;人大代表回复,工作人员回复/立项/转需求/办结更新为1; + * 报事人的红点:展示1;不展示:0;人大代表回复,工作人员回复/立项/转需求/办结更新为1; */ private Integer redDot; @@ -157,7 +162,7 @@ public class IcEventEntity extends BaseEpmetEntity { private Date commentTime; /** - * 事件审核状态[涉及附件审核需要加的状态](审核中:auditing; + * 事件审核状态[涉及附件审核需要加的状态](审核中:auditing; auto_passed: 自动通过; review:结果不确定,需要人工审核; block: 结果违规; diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/IcEventReplyEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/IcEventReplyEntity.java index e477a9cb2a..dfa2b8cbc7 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/IcEventReplyEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/IcEventReplyEntity.java @@ -46,4 +46,24 @@ public class IcEventReplyEntity extends BaseEpmetEntity { */ private String userShowName; + /** + * 办理状态:0、上报 1、阅收 2、完结 3、审核 4、事件评价 5、结案归档 + */ + private Integer manageStatus; + + /** + * 办理时间 + */ + private Date manageTime; + + /** + * 办理人 + */ + private String manageResi; + + /** + * 办理人电话 + */ + private String manageResiTel; + } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/EventService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/EventService.java deleted file mode 100644 index 07371f7f4f..0000000000 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/EventService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.epmet.service; - - -import com.epmet.commons.tools.page.PageData; -import com.epmet.dto.form.EventAddEditFormDTO; -import com.epmet.dto.form.EventFormsDTO; -import com.epmet.dto.result.EventResultDTO; - -public interface EventService { - PageData getList(EventFormsDTO formDTO); - - EventResultDTO getById(String id); - - void update(EventResultDTO dto); - - void delete(String[] ids); - - void save(EventAddEditFormDTO dto); -} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/EventServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/EventServiceImpl.java deleted file mode 100644 index 7567d05e6d..0000000000 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/EventServiceImpl.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.epmet.service.impl; - -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.toolkit.IdWorker; -import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; -import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; -import com.epmet.commons.tools.exception.EpmetException; -import com.epmet.commons.tools.page.PageData; -import com.epmet.commons.tools.redis.common.CustomerStaffRedis; -import com.epmet.commons.tools.security.user.LoginUserUtil; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.dao.EventEntityDao; -import com.epmet.dto.form.EventAddEditFormDTO; -import com.epmet.dto.form.EventFormsDTO; -import com.epmet.dto.result.EventResultDTO; -import com.epmet.entity.EventEntity; -import com.epmet.entity.IcEventOperationLogEntity; -import com.epmet.service.EventService; -import com.epmet.service.IcEventOperationLogService; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Date; -import java.util.List; - -@Service -public class EventServiceImpl extends BaseServiceImpl implements EventService { - - @Autowired - private LoginUserUtil loginUserUtil; - - @Autowired - private IcEventOperationLogService icEventOperationLogService; - - /** - * @param formDTO - * @return - * @deprecated 查询事件列表 - */ - @Override - public PageData getList(EventFormsDTO formDTO) { - if (StringUtils.isBlank(formDTO.getAgencyId())) { - //获取当前工作人员缓存信息 - CustomerStaffInfoCacheResult staffInfo = getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); - formDTO.setAgencyId(staffInfo.getAgencyId()); - } - //分页查询当前组织下网格内事件数据 - PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); - List list = baseDao.getList(formDTO); - PageInfo pageInfo = new PageInfo<>(list); - return new PageData<>(list, pageInfo.getTotal()); - } - - /** - * @param id - * @return - * @deprecated 获取事件详情 - */ - @Override - public EventResultDTO getById(String id) { - EventEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, EventResultDTO.class); - } - - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(EventResultDTO dto) { - EventEntity entity = ConvertUtils.sourceToTarget(dto, EventEntity.class); - updateById(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - for (String id : ids) { - EventEntity entity = baseDao.selectById(id); - if (null == entity) { - continue; - } - LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper(); - wrapper.eq(EventEntity::getId, id).set(EventEntity::getUpdatedTime, new Date()) - .set(EventEntity::getUpdatedBy, loginUserUtil.getLoginUserId()) - .set(EventEntity::getDelFlag, NumConstant.ONE_STR); - baseDao.update(null, wrapper); -// icEventCategoryService.delInsert(id,null); - } - } - - @Override - public void save(EventAddEditFormDTO formDTO) { - EventEntity entity = ConvertUtils.sourceToTarget(formDTO, EventEntity.class); - entity.setId(IdWorker.getIdStr()); -// List logList = new ArrayList<>(); -// logList.add(logEntity(formDTO.getCustomerId(), entity.getId(), formDTO.getUserId(), new Date(), "add", "publish")); -// icEventOperationLogService.insertBatch(logList); - insert(entity); - } - - /** - * @param customerId - * @param staffId - * @return - * @deprecated 获取当前登陆人员信息 - */ - - public CustomerStaffInfoCacheResult getStaffInfo(String customerId, String staffId) { - CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId); - if (null == staffInfo) { - throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", staffId)); - } - return staffInfo; - } - - /** - * 事件管理操作日志记录 - * - * @return - */ - private IcEventOperationLogEntity logEntity(String customerId, String icEventId, String userId, Date operateTime, String actionCode, String actionDesc) { - IcEventOperationLogEntity logEntity = new IcEventOperationLogEntity(); - logEntity.setCustomerId(customerId); - logEntity.setIcEventId(icEventId); - logEntity.setUserId(userId); - logEntity.setUserIdentity("staff"); - logEntity.setActionCode(actionCode); - logEntity.setActionDesc(actionDesc); - logEntity.setOperateTime(operateTime); - return logEntity; - } -} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java index e5bf477bc6..915f834a44 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java @@ -378,6 +378,10 @@ public class IcEventServiceImpl extends BaseServiceImpl - - - - - - \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventReplyDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventReplyDao.xml index 60dadc46aa..d9640a4f00 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventReplyDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventReplyDao.xml @@ -10,7 +10,11 @@ '回复' processName, UNIX_TIMESTAMP(created_time) processTime, user_show_name departmentName, - content publicReply + content publicReply, + manage_status, + manage_time, + manage_resi, + manage_resi_tel FROM ic_event_reply WHERE @@ -34,4 +38,4 @@ ORDER BY r.CREATED_TIME DESC - \ No newline at end of file + diff --git a/epmet-user/epmet-user-client/pom.xml b/epmet-user/epmet-user-client/pom.xml index 876d2e5e57..7d9a737683 100644 --- a/epmet-user/epmet-user-client/pom.xml +++ b/epmet-user/epmet-user-client/pom.xml @@ -17,6 +17,16 @@ com.epmet epmet-commons-tools 2.0.0 + + + objenesis + org.objenesis + + + asm + org.ow2.asm + + @@ -24,6 +34,12 @@ gov-org-client 2.0.0 compile + + + commons-collections4 + org.apache.commons + + diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java index c1328f548a..8d9b07a7ab 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java @@ -15,6 +15,7 @@ import com.epmet.constant.SystemMessageType; import com.epmet.service.IcNatService; import com.epmet.service.IcResiUserService; import com.epmet.service.StatsResiWarnService; +import com.epmet.service.impl.IcResiUserServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; @@ -77,6 +78,10 @@ public class ICWarnStatsEventListener implements MessageListenerConcurrently { if (!updateIcNatResiFlag(tags, obj)){ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"消费失败,等待重新消费"); } + + //灵山需求:如果放屋里的人,有党员中心户, 将ic_house.party_center_house_flag置为1,说明该房屋是党员中心户 + SpringContextUtils.getBean(IcResiUserServiceImpl.class).syncHousePartyCenterHouse(null,obj.getIcResiUser()); + } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 logger.error("【开放数据事件监听器】-居民信息变动MQ失败:".concat(ExceptionUtils.getErrorStackTrace(e))); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportDyzxhPostProcessor.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportDyzxhPostProcessor.java new file mode 100644 index 0000000000..ec5628378d --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportDyzxhPostProcessor.java @@ -0,0 +1,35 @@ +package com.epmet.processor; + +import com.epmet.commons.rocketmq.messages.IcResiUserAddMQMsg; +import com.epmet.constant.SystemMessageType; +import com.epmet.dto.form.SystemMsgFormDTO; +import com.epmet.feign.EpmetMessageOpenFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Slf4j +@Component +public class ResiImportDyzxhPostProcessor extends ResiImportPostProcessor{ + @Autowired + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + + + @Override + public void consume(Map resiInfoMap) { + System.out.println(resiInfoMap); + String customerId=resiInfoMap.get("CUSTOMER_ID"); + // String userId=resiInfoMap.get("ID"); + String userId=resiInfoMap.get("IC_RESI_USER"); + //推送MQ事件 + IcResiUserAddMQMsg mqMsg = new IcResiUserAddMQMsg(); + mqMsg.setCustomerId(customerId); + mqMsg.setIcResiUser(userId); + SystemMsgFormDTO form = new SystemMsgFormDTO(); + form.setMessageType(SystemMessageType.IC_RESI_USER_ADD); + form.setContent(mqMsg); + epmetMessageOpenFeignClient.sendSystemMsgByMQ(form); + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportPostProcessor.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportPostProcessor.java new file mode 100644 index 0000000000..8fb7633444 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportPostProcessor.java @@ -0,0 +1,21 @@ +package com.epmet.processor; + +import java.util.Map; + +/** + * @Description 居民信息导入之后的处理方法 + * @Author wangxianzhang + * @Time 2023/5/17 1:33 PM + */ +public abstract class ResiImportPostProcessor { + + /** + * @Description: 居民信息导入之后的消费方法 + * @param resiInfoMap: 居民信息map + * @Return void + * @Author: wangxianzhang + * @Date: 2023/5/17 1:33 PM + */ + public abstract void consume(Map resiInfoMap); + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index e0b5c91837..b5151a3cb7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -6,7 +6,6 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.hutool.core.bean.BeanUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcelFactory; -import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.epmet.bean.ResiImportCategoryData; @@ -46,6 +45,7 @@ import com.epmet.enums.IcResiUserTableEnum; import com.epmet.excel.handler.IcResiImportDynamicExcelListener; import com.epmet.excel.handler.IcResiVirtualSheetImportListener; import com.epmet.feign.*; +import com.epmet.processor.ResiImportPostProcessor; import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.send.SendMqMsgUtil; import com.epmet.service.IcResiUserImportService; @@ -170,6 +170,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res private IcPartyMemberDao icPartyMemberDao; @Autowired private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + @Autowired + private List resiImportPostProcessors; /** * 子表中不需要的列。因为主表中需要身份证号,网格等信息,但子表中不需要这些列必填,只要有身份证号即可,因此字表判断的时候需要排除这些列 @@ -584,6 +586,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res categoryData = null; } + } catch (Exception e) { String errorMsg; @@ -762,6 +765,12 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res // 将成功的居民的身份证号添加到列表中 successIdCards.add(row.get(ID_CARD_COLUMN_NO)); + + // 居民信息-党员信息导入后置处理器回调 + LinkedHashMap finalColumnAndValues = columnAndValues; + resiImportPostProcessors.forEach(p -> { + p.consume(finalColumnAndValues); + }); } catch (Exception e) { String errorMsg; if (e instanceof RenException || e instanceof EpmetException) { @@ -1040,7 +1049,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res superOptions = new HashMap<>(); superOptions.put(superColumnValue, options); itemIdAndOptionsCache.put(currentItemId, superOptions); - + if (options == null) { + System.out.println(options); + } String colValue = options.get(cellContent); columnWrapper.setColValue(colValue); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 9a3863b42d..b149345970 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -61,6 +61,7 @@ import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; import com.epmet.dto.result.*; import com.epmet.dto.result.demand.IcResiDemandDictDTO; import com.epmet.dto.result.demand.OptionDTO; +import com.epmet.dto.result.lingshan.ConfigPartyCenterHouseFormDTO; import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO; import com.epmet.entity.*; import com.epmet.enums.RenHuConditionEnum; @@ -132,8 +133,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> subTableRes = operCustomizeOpenFeignClient.queryIcResiSubTables(queryDTO); @@ -232,7 +234,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl resiWrapper=new LambdaQueryWrapper<>(); resiWrapper.eq(IcResiUserEntity::getAgencyId,formDTO.getAgencyId()); resiWrapper.select(IcResiUserEntity::getId); - List resiIds=icResiUserDao.selectList(resiWrapper); + List resiIds=baseDao.selectList(resiWrapper); for(IcResiUserEntity entity:resiIds){ baseDao.updateToDel(entity.getId(),formDTO.getCurrentStaffId()); CustomerFormQueryDTO queryDTO = ConvertUtils.sourceToTarget(formDTO, CustomerFormQueryDTO.class); @@ -448,7 +450,6 @@ public class IcResiUserServiceImpl extends BaseServiceImpl columns = categoryListResult.getData().stream().map(IcResiCategoryStatsConfigDTO::getColumnName).collect(Collectors.toList()); - Map hash = icResiUserDao.getCategoryListMap(columns, entity.getId()); + Map hash = baseDao.getCategoryListMap(columns, entity.getId()); //封装变更记录和变更明细数据 //变更记录 IcUserChangeRecordEntity changeRecordEntity = new IcUserChangeRecordEntity(); @@ -1684,7 +1686,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl volunteers = icResiUserDao.selectVolunteerByUserId(resiEntity.getId()); + List volunteers = baseDao.selectVolunteerByUserId(resiEntity.getId()); if (CollectionUtils.isNotEmpty(volunteers)) { String[] vCategories = volunteers.get(0).split(","); @@ -1701,7 +1703,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl resiCategoryNames = new ArrayList<>(); - Map categories = icResiUserDao.getCategoryListMap(resiCategoryColumns, resiUserId); + Map categories = baseDao.getCategoryListMap(resiCategoryColumns, resiUserId); categories.forEach((k, v) -> { if (NumConstant.ONE_STR.equals(v)) { ResiCategoryEnum enumObject = ResiCategoryEnum.getEnum(k); @@ -2831,7 +2833,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl userWrapper = new LambdaQueryWrapper<>(); userWrapper.ne(IcResiUserEntity::getId, dto.getIcResiUserId()); @@ -3247,7 +3249,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl resultDTOResult = getGovOrgOpenFeignClient.getHouseAgencyInfo(houseInfo.getHomeId()); + Result resultDTOResult = govOrgOpenFeignClient.getHouseAgencyInfo(houseInfo.getHomeId()); HouseAgencyInfoResultDTO data = resultDTOResult.getData(); entity.setGridId(data.getGridId()); entity.setPids(data.getPids() + ":" + data.getAgencyId()); @@ -3911,4 +3913,38 @@ public class IcResiUserServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getHomeId, houseId) + .eq(IcResiUserEntity::getStatus, NumConstant.ZERO_STR) + .select(IcResiUserEntity::getId); + List resiList = baseDao.selectList(wrapper); + + //默认该房屋不是党员中心户 + ConfigPartyCenterHouseFormDTO configPartyCenterHouseFormDTO=new ConfigPartyCenterHouseFormDTO(); + configPartyCenterHouseFormDTO.setHouseId(houseId); + configPartyCenterHouseFormDTO.setPartyCenterHouseFlag(NumConstant.ZERO_STR); + + if(CollectionUtils.isNotEmpty(resiList)){ + List resiIds = resiList.stream().map(IcResiUserEntity::getId).collect(Collectors.toList()); + // 是否有党员中心户 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); + queryWrapper.in(IcPartyMemberEntity::getIcResiUser, resiIds) + .eq(IcPartyMemberEntity::getIsDyzxh, NumConstant.ONE_STR); + List dyzxhList = icPartyMemberDao.selectList(queryWrapper); + if (CollectionUtils.isNotEmpty(dyzxhList)) { + configPartyCenterHouseFormDTO.setPartyCenterHouseFlag(NumConstant.ONE_STR); + } + } + govOrgOpenFeignClient.updatePartyCenterHouse(configPartyCenterHouseFormDTO); + } }