Commit b40a8b81 authored by 麻笑宇's avatar 麻笑宇

Merge remote-tracking branch 'origin/develop_tzs_bugfix' into develop_tzs_bugfix

parents 6caa9a95 9e0ebc0f
...@@ -4,17 +4,23 @@ import cn.hutool.core.util.URLUtil; ...@@ -4,17 +4,23 @@ import cn.hutool.core.util.URLUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.api.openapi.face.orm.entity.SSOAccountRelation; import com.yeejoin.amos.api.openapi.face.orm.entity.SSOAccountRelation;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.feign.model.Page;
import com.yeejoin.amos.component.feign.utils.FeignUtil; import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.component.robot.AmosRequestContext;
import com.yeejoin.amos.feign.privilege.Privilege; import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.LoginInfoModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.VerifyCodeAuthModel;
import com.yeejoin.amos.feign.privilege.util.AesUtil;
import com.yeejoin.amos.openapi.enums.SSOLoginStatusEnum; import com.yeejoin.amos.openapi.enums.SSOLoginStatusEnum;
import com.yeejoin.amos.openapi.enums.TaAccessConfigBizeEnum; import com.yeejoin.amos.openapi.enums.TaAccessConfigBizeEnum;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.HashMap;
import java.util.Map; import java.util.Map;
/** /**
...@@ -29,6 +35,9 @@ public class SSOServiceImpl { ...@@ -29,6 +35,9 @@ public class SSOServiceImpl {
@Autowired @Autowired
private SSOAccountRelationServiceImpl ssoAccountRelationService; private SSOAccountRelationServiceImpl ssoAccountRelationService;
@Autowired
AmosRequestContext amosRequestContext;
public Map<String, String> getPlatformUserInfo(String portalCode) { public Map<String, String> getPlatformUserInfo(String portalCode) {
// 获取统一门户accessToken // 获取统一门户accessToken
String accessToken = getPortalAccessToken(portalCode); String accessToken = getPortalAccessToken(portalCode);
...@@ -53,20 +62,41 @@ public class SSOServiceImpl { ...@@ -53,20 +62,41 @@ public class SSOServiceImpl {
ssoAccountRelationService.save(ssoAccountRelation); ssoAccountRelationService.save(ssoAccountRelation);
return null; return null;
} }
// 存在两个平台用户对应关系并且登录状态(LoginStatus)为1,则用查到的用户信息登录监管平台 RequestContext.setProduct(amosRequestContext.getProduct());
if (ssoAccountRelation.getLoginStatus().equals(SSOLoginStatusEnum.SUCCESS.getCode())) { RequestContext.setAppKey(amosRequestContext.getAppKey());
// 1.查询监管平台用户登录信息(loginId和password) RequestContext.setToken(amosRequestContext.getToken());
List<LoginInfoModel> agencyUserClientList = FeignUtil.remoteCall(() -> Privilege.agencyUserClient.getLoginInfoList(userPhoneNumber)); // 1.查询监管平台用户信息
if (ValidationUtil.isEmpty(agencyUserClientList)) { Page<AgencyUserModel> agencyUserModelList = FeignUtil.remoteCall(() -> Privilege.agencyUserClient.queryForPage(null, null, userPhoneNumber, null, 1, 100));
if (ValidationUtil.isEmpty(agencyUserModelList) || agencyUserModelList.getTotal() == 0) {
ssoAccountRelation.setLoginStatus(SSOLoginStatusEnum.FAILED.getCode()); ssoAccountRelation.setLoginStatus(SSOLoginStatusEnum.FAILED.getCode());
ssoAccountRelationService.updateById(ssoAccountRelation); ssoAccountRelationService.updateById(ssoAccountRelation);
return null; return null;
} } else {
ssoAccountRelation.setLoginStatus(SSOLoginStatusEnum.SUCCESS.getCode());
// 2.登录监管平台 // 2.登录监管平台
Map<String, String> agencyUserModel = (Map<String, String>) agencyUserModelList.getRecords().get(0);
VerifyCodeAuthModel verifyCodeAuthModel = new VerifyCodeAuthModel();
verifyCodeAuthModel.setLoginId(agencyUserModel.get("userName"));
verifyCodeAuthModel.setVerifyCode(AesUtil.encode(agencyUserModel.get("userName"),"qaz"));
FeignClientResult<Map<String, String>> loginResult;
loginResult = Privilege.authClient.userNameVerifyCode(verifyCodeAuthModel);
if (loginResult.getStatus() != 200) {
return null;
}
ssoAccountRelationService.updateById(ssoAccountRelation);
String amosUserId = loginResult.getResult().get("userId");
String amosToken = loginResult.getResult().get("token");
// 3.为用户授权应用 // 3.为用户授权应用
RequestContext.setToken(amosToken);
RequestContext.setAgencyCode("tzs");
RequestContext.setExeUserId(amosUserId);
FeignUtil.remoteCall(() -> Privilege.applicationClient.queryUserService());
// 4.返回监管平台用户登录信息 // 4.返回监管平台用户登录信息
Map<String, String> result = new HashMap<>();
result.put("amosToken", amosToken);
result.put("amosUserId", amosUserId);
return result;
} }
return null;
} }
/** /**
......
package com.yeejoin.amos.boot.module.jg.api.mapper; package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNoticeEq; import com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNoticeEq;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/** /**
* 安装告知设备关系表 Mapper 接口 * 安装告知设备关系表 Mapper 接口
...@@ -11,4 +13,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -11,4 +13,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface JgInstallationNoticeEqMapper extends CustomBaseMapper<JgInstallationNoticeEq> { public interface JgInstallationNoticeEqMapper extends CustomBaseMapper<JgInstallationNoticeEq> {
/**
* 查询安装告知完成但是纳管状态非已纳管的管道
*
* @return List<JgInstallationNoticeEq> 管道record数组
*/
List<JgInstallationNoticeEq> selectErrorRecordOfInIntoManage();
} }
...@@ -52,4 +52,11 @@ public interface JgInstallationNoticeMapper extends CustomBaseMapper<JgInstallat ...@@ -52,4 +52,11 @@ public interface JgInstallationNoticeMapper extends CustomBaseMapper<JgInstallat
List<Map<String, Object>> getDeviceListByProjectContraption(@Param("projectContraptionSeq") String projectContraptionSeq); List<Map<String, Object>> getDeviceListByProjectContraption(@Param("projectContraptionSeq") String projectContraptionSeq);
List<Map<String, Object>> getPipelineEquInfoByRecords(@Param("records") List<String> records); List<Map<String, Object>> getPipelineEquInfoByRecords(@Param("records") List<String> records);
/**
* 安装使用登记查询关联的安装告知
* @param useRegisterId 使用登记id
* @return 登记关联的告知
*/
JgInstallationNotice selectNoticeDataByUseRegisterId(@Param("useRegisterId") String useRegisterId );
} }
...@@ -34,6 +34,7 @@ public interface JgUseRegistrationManageMapper extends BaseMapper<JgUseRegistrat ...@@ -34,6 +34,7 @@ public interface JgUseRegistrationManageMapper extends BaseMapper<JgUseRegistrat
List<CertificateVo> queryCertificateInIds(@Param("ids") List<String> ids); List<CertificateVo> queryCertificateInIds(@Param("ids") List<String> ids);
@MapKey("year")
List<Map<String, String>> initUseRegistrationCodeIntoRedis(@Param("year") String year); List<Map<String, String>> initUseRegistrationCodeIntoRedis(@Param("year") String year);
List<Map<String, String>> initVehicleUseRegCodeIntoRedis(@Param("year") String year);
} }
...@@ -121,4 +121,5 @@ public interface JgUseRegistrationMapper extends BaseMapper<JgUseRegistration> { ...@@ -121,4 +121,5 @@ public interface JgUseRegistrationMapper extends BaseMapper<JgUseRegistration> {
* @return List<Map<String, Object>> * @return List<Map<String, Object>>
*/ */
List<Map<String, Object>> selectPieLineListByOfCanReg(@Param("projectContraptionSeq") String projectContraptionSeq); List<Map<String, Object>> selectPieLineListByOfCanReg(@Param("projectContraptionSeq") String projectContraptionSeq);
} }
...@@ -2,4 +2,18 @@ ...@@ -2,4 +2,18 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jg.api.mapper.JgInstallationNoticeEqMapper"> <mapper namespace="com.yeejoin.amos.boot.module.jg.api.mapper.JgInstallationNoticeEqMapper">
<select id="selectErrorRecordOfInIntoManage" resultType="com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNoticeEq">
SELECT
ne.equ_id
FROM
"tzs_jg_installation_notice" n,
tzs_jg_installation_notice_eq ne,
"idx_biz_jg_use_info" u
WHERE
n.notice_status = '6616'
and ne.equip_transfer_id = n.sequence_nbr
and ne.equ_id = u."RECORD"
and (u."IS_INTO_MANAGEMENT" = false or u."IS_INTO_MANAGEMENT" is null)
and n.project_contraption <![CDATA[<>]]> ''
</select>
</mapper> </mapper>
...@@ -315,6 +315,26 @@ ...@@ -315,6 +315,26 @@
</where> </where>
</select> </select>
<select id="selectNoticeDataByUseRegisterId" resultType="com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice">
SELECT
n.sequence_nbr,
n.project_contraption,
n.project_contraption_id,
ne.equ_id as remark
FROM
"tzs_jg_installation_notice" n,
tzs_jg_installation_notice_eq ne
WHERE
n.notice_status = '6616'
and ne.equip_transfer_id = n.sequence_nbr
and ne.equ_id = (
select
re.equ_id
from
tzs_jg_use_registration_eq re
where
re.equip_transfer_id = #{useRegisterId} limit 1
)
limit 1
</select>
</mapper> </mapper>
...@@ -217,25 +217,37 @@ ...@@ -217,25 +217,37 @@
<select id="initUseRegistrationCodeIntoRedis" resultType="java.util.Map"> <select id="initUseRegistrationCodeIntoRedis" resultType="java.util.Map">
SELECT SELECT
SUBSTR(t.use_registration_code, 1, 5) AS prefix, SUBSTR( T.use_registration_code, 1, 5 ) AS prefix,
SUBSTR(MAX(t.use_registration_code), 6, 5) AS code SUBSTR( MAX ( T.use_registration_code ), 6, 5 ) AS code
FROM FROM
tzs_jg_use_registration_manage t tzs_jg_use_registration_manage T
LEFT JOIN RIGHT JOIN tzs_jg_use_registration tjur ON tjur.use_registration_code = T.use_registration_code
tzs_jg_use_registration tjur
ON tjur.use_registration_code = t.use_registration_code
AND (tjur.reg_type IS NULL OR tjur.reg_type = '2' OR tjur.reg_type = '0')
AND tjur.is_delete = 0
LEFT JOIN
tzs_jg_vehicle_information v
ON v.use_registration_code = t.use_registration_code
and v.reg_type = '0'
WHERE WHERE
LENGTH(t.use_registration_code) = 14 LENGTH ( T.use_registration_code ) = 14
AND SUBSTR(t.use_registration_code, 1, 1) IN ('容', '锅', '管', '瓶', '梯', '起', '索', '游', '车') AND SUBSTR( T.use_registration_code, 1, 1 ) IN ( '容', '锅', '管', '瓶', '梯', '起', '索', '游', '车' )
AND TRIM(t.use_registration_code) LIKE concat('%(',#{year},')') AND TRIM(t.use_registration_code) LIKE concat('%(',#{year},')')
AND ( tjur.reg_type IS NULL OR tjur.reg_type = '2' OR tjur.reg_type = '0' )
AND tjur.is_delete = 0
GROUP BY
SUBSTR( T.use_registration_code, 1, 5 )
HAVING code <![CDATA[ <> ]]> '00000'
ORDER BY prefix
</select>
<select id="initVehicleUseRegCodeIntoRedis" resultType="java.util.Map">
SELECT
SUBSTR(M.use_registration_code, 1, 5) AS prefix,
SUBSTR(MAX(M.use_registration_code), 6, 5) AS code
FROM
tzs_jg_use_registration_manage M
RIGHT JOIN tzs_jg_vehicle_information v ON v.use_registration_code = M.use_registration_code
WHERE
LENGTH ( M.use_registration_code ) = 14
AND SUBSTR( M.use_registration_code, 1, 1 ) IN ( '容', '锅', '管', '瓶', '梯', '起', '索', '游', '车' )
and v.reg_type is null
AND TRIM ( M.use_registration_code ) LIKE concat ( '%(',#{year}, ')' )
GROUP BY GROUP BY
SUBSTR(t.use_registration_code, 1, 5) SUBSTR( M.use_registration_code, 1, 5 )
HAVING code <![CDATA[ <> ]]> '00000' HAVING code <![CDATA[ <> ]]> '00000'
ORDER BY prefix ORDER BY prefix
</select> </select>
......
...@@ -69,4 +69,21 @@ public class DataHandlerController extends BaseController { ...@@ -69,4 +69,21 @@ public class DataHandlerController extends BaseController {
return ResponseHelper.buildResponse(true); return ResponseHelper.buildResponse(true);
} }
@ApiOperation(httpMethod = "PUT", value = "安装告知缺少装置id、装置未创建、安装告知完成但是设备状态为未纳管数据处理", notes = "历史数据处理")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/v3/projectContraption/notice")
public ResponseModel<Boolean> projectContraptionNoticeDataDealV3(){
dataHandlerService.projectContraptionNoticeDataDeal();
return ResponseHelper.buildResponse(true);
}
@ApiOperation(httpMethod = "PUT", value = "使用登记缺少装置id数据处理", notes = "历史数据处理,依赖/v3/projectContraption/notice作为基础数据")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/v3/projectContraption/useRegister")
public ResponseModel<Boolean> projectContraptionUseRegisterDataDealV3(){
dataHandlerService.projectContraptionUseRegisterDataDeal();
return ResponseHelper.buildResponse(true);
}
} }
...@@ -318,9 +318,9 @@ public class JgUseRegistrationManageController extends BaseController { ...@@ -318,9 +318,9 @@ public class JgUseRegistrationManageController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/initRegCodeIntoRedis") @GetMapping(value = "/initRegCodeIntoRedis")
@ApiOperation(httpMethod = "GET", value = "初始化使用登记证序列号到Redis", notes = "初始化使用登记证序列号到Redis") @ApiOperation(httpMethod = "GET", value = "初始化使用登记证序列号到Redis", notes = "初始化使用登记证序列号到Redis")
public ResponseModel<Object> initUseRegistrationCodeIntoRedis() { public ResponseModel<Object> initUseRegistrationCodeIntoRedis(@RequestParam(value = "year", defaultValue = "24") String year) {
jgUseRegistrationManageServiceImpl.initUseRegistrationCodeIntoRedis(); jgUseRegistrationManageServiceImpl.initUseRegistrationCodeIntoRedis(year);
return ResponseHelper.buildResponse("Redis初始化完成!"); return ResponseHelper.buildResponse(year +"年使用登记证序列码Redis初始化完成!");
} }
/** /**
......
...@@ -766,12 +766,18 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr ...@@ -766,12 +766,18 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
return parseArray(json, FormValue.class); return parseArray(json, FormValue.class);
} }
public void initUseRegistrationCodeIntoRedis() { public void initUseRegistrationCodeIntoRedis(String year) {
// 获取当前年份的两位数 // 获取当前年份的两位数
String currentYearSuffix = String.valueOf(LocalDate.now().getYear() % 100); String currentYearSuffix = String.valueOf(LocalDate.now().getYear() % 100);
Date endOfYear = com.yeejoin.amos.boot.module.ymt.api.common.DateUtils.calculateEndOfYear(new Date()); Date endOfYear = com.yeejoin.amos.boot.module.ymt.api.common.DateUtils.calculateEndOfYear(new Date());
// 从数据库中加载数据并批量设置到 Redis // 非车用气瓶-从数据库中加载使用登记证最大序列码刷新到Redis中
jgUseRegistrationManageMapper.initUseRegistrationCodeIntoRedis(currentYearSuffix) jgUseRegistrationManageMapper.initUseRegistrationCodeIntoRedis(year)
.forEach(resultMap ->
Optional.ofNullable(resultMap)
.ifPresent(map -> setValueWithoutExpiration(map.get("prefix"), map.get("code")))
);
// 车用气瓶-从数据库中加载使用登记证最大序列码刷新到Redis中
jgUseRegistrationManageMapper.initVehicleUseRegCodeIntoRedis(year)
.forEach(resultMap -> .forEach(resultMap ->
Optional.ofNullable(resultMap) Optional.ofNullable(resultMap)
.ifPresent(map -> setValueWithoutExpiration(map.get("prefix"), map.get("code"))) .ifPresent(map -> setValueWithoutExpiration(map.get("prefix"), map.get("code")))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment