1.全过程管理附件上送

This commit is contained in:
2024-10-31 19:49:44 +08:00
parent 7bc9cb9792
commit 8229653fb0
2 changed files with 68 additions and 76 deletions

View File

@@ -26,10 +26,12 @@ import java.util.concurrent.atomic.AtomicBoolean;
@Slf4j @Slf4j
public class GwSendUtil { public class GwSendUtil {
private static final String GWURL = "dwzyywzt-pms3-proxy.com"; public static final String GWURL = "dwzyywzt-pms3-proxy.com";
private static final String CODE = "13B9B47F1E483324E05338297A0A0595"; public static final String CODE = "13B9B47F1E483324E05338297A0A0595";
//最新的上送接口路径
public static final String NEWGWURL = "http://pms.pms30.com.cn/pms-tech-seval"; public static final String NEWGWURL = "http://pms.pms30.com.cn/pms-tech-seval";
public static final String secretKey = "xQcEF+9hnekk2ZAD1+K1y3PS1d7e3wf0dmPXeeMKf/19qRhyP+4c0FTr70bGINpR";
/** /**
* *

View File

@@ -125,7 +125,6 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
Map<String, DictData> mapSupvUserClass = supvUserClassList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); Map<String, DictData> mapSupvUserClass = supvUserClassList.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
List<DictData> supvVoltageDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); List<DictData> supvVoltageDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
Map<String, DictData> mapVoltage = supvVoltageDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); Map<String, DictData> mapVoltage = supvVoltageDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
@@ -185,10 +184,10 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
} }
if(supvPlan.getSupvType().equals("05")){ if (supvPlan.getSupvType().equals("05")) {
//电容器组需要上送对象 //电容器组需要上送对象
List<SupvPlanRel> supvPlanRelList = supvPlanRelMapper.selectList(new LambdaQueryWrapper<SupvPlanRel>().eq(SupvPlanRel::getPlanId,supvPlan.getPlanId())); List<SupvPlanRel> supvPlanRelList = supvPlanRelMapper.selectList(new LambdaQueryWrapper<SupvPlanRel>().eq(SupvPlanRel::getPlanId, supvPlan.getPlanId()));
if(CollUtil.isNotEmpty(supvPlanRelList)){ if (CollUtil.isNotEmpty(supvPlanRelList)) {
supvPlanRelList.forEach(SupvPlanRel::prepareForSerialization); supvPlanRelList.forEach(SupvPlanRel::prepareForSerialization);
supvPlan.setPlanRel(supvPlanRelList); supvPlan.setPlanRel(supvPlanRelList);
} }
@@ -205,18 +204,18 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
} }
//监督对象类型 //监督对象类型
if(StrUtil.isNotBlank(supvPlan.getSupvObjType())){ if (StrUtil.isNotBlank(supvPlan.getSupvObjType())) {
if(supvPlan.getSupvType().equals("01")){ if (supvPlan.getSupvType().equals("01")) {
}else if(supvPlan.getSupvType().equals("02")){ } else if (supvPlan.getSupvType().equals("02")) {
supvPlan.setSupvObjType(mapSubvObjType.get(supvPlan.getSupvObjType()).getValue()); supvPlan.setSupvObjType(mapSubvObjType.get(supvPlan.getSupvObjType()).getValue());
}else if(supvPlan.getSupvType().equals("03")){ } else if (supvPlan.getSupvType().equals("03")) {
supvPlan.setSupvObjType(mapSupvUserClass.get(supvPlan.getSupvObjType()).getValue()); supvPlan.setSupvObjType(mapSupvUserClass.get(supvPlan.getSupvObjType()).getValue());
}else if(supvPlan.getSupvType().equals("04")){ } else if (supvPlan.getSupvType().equals("04")) {
}else if(supvPlan.getSupvType().equals("05")){ } else if (supvPlan.getSupvType().equals("05")) {
}else if(supvPlan.getSupvType().equals("06")){ } else if (supvPlan.getSupvType().equals("06")) {
supvPlan.setSupvObjType(mapSupvEvaluationReport.get(supvPlan.getSupvObjType()).getValue()); supvPlan.setSupvObjType(mapSupvEvaluationReport.get(supvPlan.getSupvObjType()).getValue());
} }
if (mapSubvObjType.containsKey(supvPlan.getSupvObjType())) { if (mapSubvObjType.containsKey(supvPlan.getSupvObjType())) {
@@ -307,7 +306,7 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
for (SupvProblem supvProblem : supvProblemList) { for (SupvProblem supvProblem : supvProblemList) {
supvProblemService.checkParam(supvProblem.getPlanId(),DateUtil.formatLocalDateTime(supvProblem.getDiscoveryTime())); supvProblemService.checkParam(supvProblem.getPlanId(), DateUtil.formatLocalDateTime(supvProblem.getDiscoveryTime()));
Dept dept = deptFeignClient.getDeptByCode(supvProblem.getDutyOrgId()).getData(); Dept dept = deptFeignClient.getDeptByCode(supvProblem.getDutyOrgId()).getData();
supvProblem.setDutyOrgName(dept.getName()); supvProblem.setDutyOrgName(dept.getName());
@@ -381,14 +380,14 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
} }
List<DictData> fileList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.file_type.getCode().trim()).getData(); List<DictData> fileList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.file_type.getCode().trim()).getData();
Map<String, DictData> mapFile = fileList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); Map<String, DictData> mapFile = fileList.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
DictData dictData ; DictData dictData;
//TODO 调用上送接口 //TODO 调用上送接口
for (int i = 0; i < supvFiles.size(); i++) { for (int i = 0; i < supvFiles.size(); i++) {
if(mapFile.containsKey(supvFiles.get(i).getAttachmentType())){ if (mapFile.containsKey(supvFiles.get(i).getAttachmentType())) {
dictData = mapFile.get(supvFiles.get(i).getAttachmentType()); dictData = mapFile.get(supvFiles.get(i).getAttachmentType());
supvFiles.get(i).setAttachmentType(dictData.getValue()); supvFiles.get(i).setAttachmentType(dictData.getValue());
}else{ } else {
stringBuilder.append("" + (i+1) + "行文件上送失败: 请检查上送附件类型是否正确;</br>"); stringBuilder.append("" + (i + 1) + "行文件上送失败: 请检查上送附件类型是否正确;</br>");
continue; continue;
} }
log.info(Thread.currentThread().getName() + "获取返回体 推送附件接口:" + supvFiles.get(i) + "结束----"); log.info(Thread.currentThread().getName() + "获取返回体 推送附件接口:" + supvFiles.get(i) + "结束----");
@@ -396,12 +395,12 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
log.info(Thread.currentThread().getName() + "获取返回体 总部提供附件接收接口,省公司调用此接口,完成附件上报响应结果:" + sendFile + "结束----"); log.info(Thread.currentThread().getName() + "获取返回体 总部提供附件接收接口,省公司调用此接口,完成附件上报响应结果:" + sendFile + "结束----");
if (sendFile.containsKey("succeed")) { if (sendFile.containsKey("succeed")) {
supvFileService.update(new LambdaUpdateWrapper<SupvFile>() supvFileService.update(new LambdaUpdateWrapper<SupvFile>()
.eq(SupvFile::getUuid,supvFiles.get(i).getUuid()) .eq(SupvFile::getUuid, supvFiles.get(i).getUuid())
.set(SupvFile::getIsUploadHead,1) .set(SupvFile::getIsUploadHead, 1)
); );
stringBuilder.append("" + (i+1) + "行文件上送成功:成功数据" + sendFile.get("succeed") + "条;</br>"); stringBuilder.append("" + (i + 1) + "行文件上送成功:成功数据" + sendFile.get("succeed") + "条;</br>");
} else { } else {
stringBuilder.append("" + (i+1) + "次行文件上送失败:" + sendFile.get("error")+";</br>"); stringBuilder.append("" + (i + 1) + "次行文件上送失败:" + sendFile.get("error") + ";</br>");
} }
} }
@@ -712,32 +711,18 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
return map; return map;
} }
/* public String LoginToken() {
String token = null;
String clientId = "e512d3940a7d11eeae0cd6fb272b183c";
String clientSecret = "k8cF9CgXsj/lnuP2C4Vhx8tuNsPwieBIU8n14vHL1EoWSadcX0we2wffjyTUYGsK";
String userUrl = "http://" + gwUrl + "/psr-auth/oauth/accessToken?grant_type={grant_type}&client_id={client_id}&client_secret={client_secret}"; /**
Map<String, String> map = new HashMap<>(); * 附件推送
map.put("grant_type", "credentials"); *
map.put("client_id", clientId); * @param url
map.put("client_secret", clientSecret); * @param supvFile
ResponseEntity<Map> userEntity = RestTemplateUtil.get(userUrl, Map.class, map); * @return
* @throws IOException
if (userEntity.getStatusCodeValue() == 200) { */
log.info(Thread.currentThread().getName() + "数据:" + userEntity.getBody() + "结束----"); public Map<String, String> sendFile(String url, SupvFile supvFile) throws IOException {
//获取返回体
Map body = userEntity.getBody();
token = body.get("access_token").toString();
} else {
throw new BusinessException("获取数据token出现未知异常请检查ip端口是否正确");
}
return token;
}*/
public Map<String,String> sendFile(String url,SupvFile supvFile) throws IOException {
//获取文件服务器地址 //获取文件服务器地址
Map<String,String> maps=new HashMap<>(); Map<String, String> maps = new HashMap<>();
String path = supvFile.getFileUrl(); String path = supvFile.getFileUrl();
if (StrUtil.isBlank(path)) { if (StrUtil.isBlank(path)) {
maps.put("error", "获取文件上传路径为空!请检查原始路径是否存在"); maps.put("error", "获取文件上传路径为空!请检查原始路径是否存在");
@@ -750,39 +735,42 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
return maps; return maps;
} }
Map<String, String> otherParams = new HashMap<>();
Map<String,String> otherParams = new HashMap<>(); otherParams.put("provinceId", code);
otherParams.put("provinceId",code ); otherParams.put("secretKey", GwSendUtil.secretKey);
otherParams.put("uuid", supvFile.getUuid()); otherParams.put("uuid", supvFile.getUuid());
otherParams.put("attachmentName",supvFile.getAttachmentName()); otherParams.put("attachmentName", supvFile.getAttachmentName());
otherParams.put("attachmentType",supvFile.getAttachmentType()); otherParams.put("attachmentType", supvFile.getAttachmentType());
otherParams.put("busiId", supvFile.getBusiId()); otherParams.put("busiId", supvFile.getBusiId());
otherParams.put("uploaderName",supvFile.getUploaderName()); otherParams.put("uploaderName", supvFile.getUploaderName());
String uploadTime = supvFile.getUploadTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); String uploadTime = supvFile.getUploadTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
otherParams.put("uploadTime",uploadTime); otherParams.put("uploadTime", uploadTime);
otherParams.put("uploaderId",supvFile.getUploaderId()); otherParams.put("uploaderId", supvFile.getUploaderId());
log.info("文件上报接口发送:{}",JSONObject.toJSONString(otherParams));
byte[] bytes = IOUtils.toByteArray(in); byte[] bytes = IOUtils.toByteArray(in);
String s = Base64.encodeStr(bytes, false, false); String s = Base64.encodeStr(bytes, false, false);
int m = 1; int m = 1;
String str=""; String str = "";
log.info("文件上报接口发送:{}", JSONObject.toJSONString(otherParams));
for (int i = 0; i < s.length(); i += 1365000) { for (int i = 0; i < s.length(); i += 1365000) {
otherParams.put("fileCount", (int) Math.ceil(s.length() / (1365000 * 1.0)) + "");
otherParams.put("fileCurrentNum", m + "");
str = requestCommon("pqFileFromHyCreate", url, otherParams);
otherParams.put("fileByte", s.substring(i, Math.min(i + 1365000, s.length()))); otherParams.put("fileByte", s.substring(i, Math.min(i + 1365000, s.length())));
otherParams.put("fileCount", (int) Math.ceil(s.length() /(1365000 * 1.0)) + "");
otherParams.put("fileCurrentNum",m + "");
str= requestCommon("pqFileFromHyCreate", url, otherParams);
m++; m++;
} }
if(StrUtil.isNotBlank(str)) { if (StrUtil.isNotBlank(str)) {
String[] split = str.split("_"); String[] split = str.split("_");
if("succeed".equals(split[0])){ if ("succeed".equals(split[0])) {
maps.put("succeed", "1"); maps.put("succeed", "1");
}else{ } else {
maps.put("error", split[1]); maps.put("error", split[1]);
} }
}else { } else {
maps.put("error", "国网文件上传失败"); maps.put("error", "国网文件上传失败");
} }
in.close(); in.close();
@@ -792,6 +780,7 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
/** /**
* 文件上传请求 * 文件上传请求
*
* @param serviceName * @param serviceName
* @param url * @param url
* @param param * @param param
@@ -812,6 +801,7 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
.contentType("application/x-www-form-urlencoded;charset=utf-8") //设置请求content-type .contentType("application/x-www-form-urlencoded;charset=utf-8") //设置请求content-type
.putHeaderParamsMap("Content-Type", "application/x-www-form-urlencoded;charset=utf-8") .putHeaderParamsMap("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
.putHeaderParamsMap("serviceName", serviceName) .putHeaderParamsMap("serviceName", serviceName)
.putHeaderParamsMap("secretKey", "lW2xr6zKjbaqVDOSgQpcGrM6Rg0=")
.putParamsMapAll(param); .putParamsMapAll(param);
try { try {
HttpReturn ret = HttpCaller.invokeReturn(builder.build()); HttpReturn ret = HttpCaller.invokeReturn(builder.build());
@@ -824,14 +814,14 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
String status = map.get("status").toString(); String status = map.get("status").toString();
String errors = map.get("errors").toString(); String errors = map.get("errors").toString();
if ("000000".equals(status)) { if ("000000".equals(status)) {
str="succeed_"+errors; str = "succeed_" + errors;
}else{ } else {
str="error_"+errors; str = "error_" + errors;
} }
} catch (HttpCallerException e) { } catch (HttpCallerException e) {
// error process // error process
log.info(Thread.currentThread().getName() + "附件错误信息:" + e); log.info(Thread.currentThread().getName() + "附件错误信息:" + e);
str="error_"+"国网附件服务器内部错误"; str = "error_" + "国网附件服务器内部错误";
} }
return str; return str;
} }
@@ -912,7 +902,7 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
private void checkParam(SupvPlan supvPlan) { private void checkParam(SupvPlan supvPlan) {
//判断时间范围 //判断时间范围
if (ObjectUtil.isAllNotEmpty(supvPlan.getEffectStartTime(), supvPlan.getEffectEndTime())|| if (ObjectUtil.isAllNotEmpty(supvPlan.getEffectStartTime(), supvPlan.getEffectEndTime()) ||
ObjectUtil.isAllNotEmpty(supvPlan.getEffectStartTime(), supvPlan.getReportIssueTime()) ObjectUtil.isAllNotEmpty(supvPlan.getEffectStartTime(), supvPlan.getReportIssueTime())
) { ) {
LocalDateTime problemOcTime1 = supvPlan.getProblemOcTime(); LocalDateTime problemOcTime1 = supvPlan.getProblemOcTime();
@@ -922,14 +912,14 @@ public class SupvPushGwServiceImpl implements SupvPushGwService {
//问题发现时间 //问题发现时间
DateTime problemOcTime = DateUtil.parse(DateUtil.formatLocalDateTime(problemOcTime1), "yyyy-MM-dd HH:mm:ss"); DateTime problemOcTime = DateUtil.parse(DateUtil.formatLocalDateTime(problemOcTime1), "yyyy-MM-dd HH:mm:ss");
Boolean fly = false; Boolean fly = false;
if(ObjectUtil.isNotNull(supvPlan.getEffectEndTime())){ if (ObjectUtil.isNotNull(supvPlan.getEffectEndTime())) {
//实施结束时间 //实施结束时间
DateTime effectEndTime = DateUtil.parse(DateUtil.formatLocalDateTime(supvPlan.getEffectEndTime()), "yyyy-MM-dd HH:mm:ss"); DateTime effectEndTime = DateUtil.parse(DateUtil.formatLocalDateTime(supvPlan.getEffectEndTime()), "yyyy-MM-dd HH:mm:ss");
if (DateUtil.isIn(problemOcTime, effectStartTime, effectEndTime)) { if (DateUtil.isIn(problemOcTime, effectStartTime, effectEndTime)) {
fly = true; fly = true;
} }
} }
if(ObjectUtil.isNotNull(supvPlan.getReportIssueTime())){ if (ObjectUtil.isNotNull(supvPlan.getReportIssueTime())) {
//报告出具时间 //报告出具时间
DateTime reportIssueTime = DateUtil.parse(DateUtil.formatLocalDateTime(supvPlan.getReportIssueTime()), "yyyy-MM-dd HH:mm:ss"); DateTime reportIssueTime = DateUtil.parse(DateUtil.formatLocalDateTime(supvPlan.getReportIssueTime()), "yyyy-MM-dd HH:mm:ss");
if (DateUtil.isIn(problemOcTime, effectStartTime, reportIssueTime)) { if (DateUtil.isIn(problemOcTime, effectStartTime, reportIssueTime)) {