From 01b999dd1669db895377b3ef95bdb026aa3c3a16 Mon Sep 17 00:00:00 2001
From: lishipeng <1572427111@qq.com>
Date: Tue, 29 Nov 2022 13:38:03 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 6 +
.../ftpdemo/controller/DockingController.java | 5 +-
.../ftpdemo/entity/NbmsEntApply.java | 2 +
.../ftpdemo/service/IdentificationIp.java | 16 +--
.../springblade/ftpdemo/service/Method.java | 8 +-
.../ftpdemo/service/impl/MethodImpl.java | 115 +++++++++++++++++-
.../ftpdemo/task/IdentificationUp.java | 32 -----
.../ftpdemo/task/IdentificationUpTask.java | 76 ++++++++++++
8 files changed, 213 insertions(+), 47 deletions(-)
delete mode 100644 src/main/java/org/springblade/ftpdemo/task/IdentificationUp.java
create mode 100644 src/main/java/org/springblade/ftpdemo/task/IdentificationUpTask.java
diff --git a/pom.xml b/pom.xml
index 17d07d1..1733d4c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -129,6 +129,12 @@
com.github.whvcse
easy-captcha
+
+
+ com.jcraft
+ jsch
+ 0.1.54
+
com.baomidou
diff --git a/src/main/java/org/springblade/ftpdemo/controller/DockingController.java b/src/main/java/org/springblade/ftpdemo/controller/DockingController.java
index 46307f3..db0a731 100644
--- a/src/main/java/org/springblade/ftpdemo/controller/DockingController.java
+++ b/src/main/java/org/springblade/ftpdemo/controller/DockingController.java
@@ -3,7 +3,8 @@ package org.springblade.ftpdemo.controller;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
-import cn.hutool.core.date.DateUtil;
+
+import org.springblade.core.tool.utils.DateUtil;
import org.springblade.ftpdemo.util.Encrypt;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
@@ -152,7 +153,7 @@ public class DockingController {
throw new RuntimeException(e);
}
// 要上传的目录
- String upSrc = "/001/"+ DateUtil.format(DateUtil.date(),"yyyyMMdd");
+ String upSrc = "/001/"+ DateUtil.format(DateUtil.now(),"yyyyMMdd");
System.out.println("目录地址"+upSrc);
// 确保目录一定存在
diff --git a/src/main/java/org/springblade/ftpdemo/entity/NbmsEntApply.java b/src/main/java/org/springblade/ftpdemo/entity/NbmsEntApply.java
index 8b2ec60..45022b8 100644
--- a/src/main/java/org/springblade/ftpdemo/entity/NbmsEntApply.java
+++ b/src/main/java/org/springblade/ftpdemo/entity/NbmsEntApply.java
@@ -6,11 +6,13 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@TableName("nbms_ent_apply")
+@Data
public class NbmsEntApply implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/springblade/ftpdemo/service/IdentificationIp.java b/src/main/java/org/springblade/ftpdemo/service/IdentificationIp.java
index adcba6b..31b33b6 100644
--- a/src/main/java/org/springblade/ftpdemo/service/IdentificationIp.java
+++ b/src/main/java/org/springblade/ftpdemo/service/IdentificationIp.java
@@ -13,13 +13,15 @@ import java.io.File;
*/
public class IdentificationIp {
public static void main(String[] args) throws Exception {
- MethodImpl method = new MethodImpl();
- String fileName = "d://aaa//test.txt";
- // 要上传的目录
- String upSrc = "/002/" + DateUtil.format(DateUtil.now(), "yyyyMMdd");
- // 表名(文件名的一部分)
- String tableName = "SDQN-basic_identification_ip-";
- method.upMethod(fileName, upSrc,tableName);
+// MethodImpl method = new MethodImpl();
+// String fileName = "d://aaa//test.txt";
+// // 要上传的目录
+// String upSrc = "/002/" + DateUtil.format(DateUtil.now(), "yyyyMMdd");
+// // 表名(文件名的一部分)
+// String tableName = "SDQN-basic_identification_ip-";
+// // 操作类型为新增
+// String operationName = "-add.bin";
+// method.upMethod(fileName, upSrc, tableName, operationName);
}
diff --git a/src/main/java/org/springblade/ftpdemo/service/Method.java b/src/main/java/org/springblade/ftpdemo/service/Method.java
index d1af4fa..79ea09c 100644
--- a/src/main/java/org/springblade/ftpdemo/service/Method.java
+++ b/src/main/java/org/springblade/ftpdemo/service/Method.java
@@ -1,10 +1,14 @@
package org.springblade.ftpdemo.service;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
/**
* @author laifeng
* @since 2022/11/27
*/
public interface Method {
- void upMethod(String readFile, String upSrc,String tableName) throws Exception;
- String creatFile();
+ void upMethod(String readFile, String upSrc,String tableName,String operationName) throws Exception;
+
+ Boolean creatIdentificationUpFile(Integer type,String yyyyMMdd,String yyyyMMddToday) throws IOException;
}
diff --git a/src/main/java/org/springblade/ftpdemo/service/impl/MethodImpl.java b/src/main/java/org/springblade/ftpdemo/service/impl/MethodImpl.java
index 1898099..a57dfbc 100644
--- a/src/main/java/org/springblade/ftpdemo/service/impl/MethodImpl.java
+++ b/src/main/java/org/springblade/ftpdemo/service/impl/MethodImpl.java
@@ -1,19 +1,46 @@
package org.springblade.ftpdemo.service.impl;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.ftpdemo.cache.CodeCache;
import org.springblade.ftpdemo.controller.SSHRemoteCall;
+import org.springblade.ftpdemo.entity.NbmsEntApply;
import org.springblade.ftpdemo.service.Method;
+import org.springblade.ftpdemo.service.NbmsEntApplyServcie;
import org.springblade.ftpdemo.util.Constant;
import org.springblade.ftpdemo.util.Encrypt;
+import org.springframework.stereotype.Service;
import java.io.*;
+import java.util.Date;
+import java.util.List;
/**
* @author laifeng
* @since 2022/11/27
*/
+@Service
+@AllArgsConstructor
public class MethodImpl implements Method {
+ private final NbmsEntApplyServcie nbmsEntApplyServcie;
+
+ String companyCode; //标识码企业前缀
+ String companyName; // 标识解析节点经营主体名称
+ String level; // 标识解析系统级别
+ String accessProvince; // 接入省份
+ String accessCity; // 接入地市
+ String registerTime; // 注册时间
+ String categoryA; // 经营主体行业门类
+ String categoryB; // 经营主体行业大类
+ String companyType; // 公司性质
+ String serviceProfession; //节点服务行业
+ String startIP = "223.99.228.240";
+ String endIP = "223.99.228.240";
+ String position = "中国山东省济南市自由贸易试验区济南片区颖秀路2299号";
+
@Override
- public void upMethod(String readFile, String upSrc,String tableName) throws Exception {
+ public void upMethod(String readFile, String upSrc, String tableName, String operationName) throws Exception {
File file = new File(readFile);
@@ -33,7 +60,7 @@ public class MethodImpl implements Method {
// 生成文件名
String dateStr = Long.toString(System.currentTimeMillis()); // 生成13位时间戳
- String fileName = tableName + dateStr + "-all.bin";
+ String fileName = tableName + dateStr + operationName;
String src = "D:\\aaa\\" + fileName;
// 写入文件
FileOutputStream stream = new FileOutputStream(src);
@@ -58,12 +85,71 @@ public class MethodImpl implements Method {
}
+ /**
+ * 生成三、 标识解析企业主体信息上报文件
+ * @param type 0 代表注册 1 代表修改
+ * @return
+ */
@Override
- public String creatFile() {
+ public Boolean creatIdentificationUpFile(Integer type,String yyyyMMdd,String yyyyMMddToday) throws IOException {
- return null;
+ List list =null;
+ // 新增操作
+ if (type==0) {
+ list = nbmsEntApplyServcie.lambdaQuery().eq(NbmsEntApply::getFirstAuditStatus, 2)
+ .eq(NbmsEntApply::getApplyType, 1)
+ .eq(NbmsEntApply::getApplyStep,4)
+ .ge(NbmsEntApply::getUpdateDate,yyyyMMdd)
+ .le(NbmsEntApply::getUpdateDate,yyyyMMddToday)
+ .list();
+ }
+ // 修改操作
+ if (type==1){
+ list = nbmsEntApplyServcie.lambdaQuery().eq(NbmsEntApply::getFirstAuditStatus, 2)
+ .eq(NbmsEntApply::getApplyType, 2)
+ .eq(NbmsEntApply::getApplyType, 3)
+ .eq(NbmsEntApply::getApplyStep,4)
+ .ge(NbmsEntApply::getUpdateDate,yyyyMMdd)
+ .le(NbmsEntApply::getUpdateDate,yyyyMMddToday)
+ .list();
+ }
+ // 创建输出流
+ FileOutputStream stream = new FileOutputStream("d://aaa//test.txt");
+ if (Func.isNotEmpty(list)) {
+ for (NbmsEntApply nbmsEnapply : list) {
+ companyCode = nbmsEnapply.getEntPrefix();
+ companyName = nbmsEnapply.getOrgName();
+ level = "4";
+ accessProvince = nbmsEnapply.getOrgAddrProvince();
+ accessProvince = CodeCache.codeMap.get(accessProvince);
+
+ accessCity = nbmsEnapply.getOrgAddrCity();
+ accessCity = CodeCache.codeMap.get(accessCity);
+
+ registerTime = DateUtil.format(nbmsEnapply.getUpdateDate(), "yyyy-MM-dd HH:mm:ss");
+
+ categoryA = nbmsEnapply.getIndustrySpecific();
+ categoryA = CodeCache.codeMap.get(categoryA);
+
+ categoryB = nbmsEnapply.getIndustryCategory();
+ categoryB = CodeCache.codeMap.get(categoryB);
+
+ companyType = judge(nbmsEnapply.getOrgNature());
+ serviceProfession = categoryB;
+
+ String template = companyCode + "|" + companyName + "|" + level + "|" + accessProvince + "|" + accessCity + "|" + registerTime + "|" + categoryA + "|" + categoryB + "|" + companyType + "|" + serviceProfession + "\n";
+ byte[] bytes = template.getBytes();
+ stream.write(bytes);
+ }
+ stream.flush();
+ stream.close();
+ return true;
+ }
+ return false;
}
+
+
// private void deleteFile(String src) {
//
// System.out.println(src);
@@ -71,4 +157,25 @@ public class MethodImpl implements Method {
// boolean delete = file.delete();
// System.out.println(delete);
// }
+
+ private String judge(int companyType) {
+ //单位性质,国有控股、民营控股、外商控股、事业单位、民营非盈利
+ if (companyType == 1) {
+ return "国有控股";
+ }
+ if (companyType == 2) {
+ return "民营控股";
+ }
+ if (companyType == 3) {
+ return "外商控股";
+ }
+ if (companyType == 4) {
+ return "事业单位";
+ }
+ if (companyType == 5) {
+ return "民营非盈利";
+ }
+
+ return null;
+ }
}
diff --git a/src/main/java/org/springblade/ftpdemo/task/IdentificationUp.java b/src/main/java/org/springblade/ftpdemo/task/IdentificationUp.java
deleted file mode 100644
index b5fa3f2..0000000
--- a/src/main/java/org/springblade/ftpdemo/task/IdentificationUp.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.springblade.ftpdemo.task;
-
-import org.springblade.ftpdemo.entity.NbmsEntApply;
-import org.springblade.ftpdemo.service.NbmsEntApplyServcie;
-import lombok.AllArgsConstructor;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * 三、 标识解析企业主体信息上报
- * @author laifeng
- * @since 2022/11/29
- */
-@Component
-@EnableScheduling
-@AllArgsConstructor
-public class IdentificationUp {
- private final NbmsEntApplyServcie service;
-
- @Scheduled(cron = "0 0/5 * * * ?")
- public void refreshAliDeviceStatus() {
-
- // 查询昨日新增注册
- List list = service.lambdaQuery().eq(NbmsEntApply::getFirstAuditStatus, 2)
- .eq(NbmsEntApply::getApplyType, 1)
- .eq(NbmsEntApply::getApplyStep,4)
- .list();
- }
-}
diff --git a/src/main/java/org/springblade/ftpdemo/task/IdentificationUpTask.java b/src/main/java/org/springblade/ftpdemo/task/IdentificationUpTask.java
new file mode 100644
index 0000000..4baeeb7
--- /dev/null
+++ b/src/main/java/org/springblade/ftpdemo/task/IdentificationUpTask.java
@@ -0,0 +1,76 @@
+package org.springblade.ftpdemo.task;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.ftpdemo.service.Method;
+import org.springblade.ftpdemo.service.NbmsEntApplyServcie;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.util.Date;
+
+/**
+ * 三、 标识解析企业主体信息上报
+ *
+ * @author laifeng
+ * @since 2022/11/29
+ */
+@Component
+@EnableScheduling
+@AllArgsConstructor
+public class IdentificationUpTask {
+ private final NbmsEntApplyServcie nbmsEntApplyServcie;
+ private final Method method;
+
+ @Scheduled(cron = "0 0/1 * * * ?")
+ public void refreshAliDeviceStatus() {
+ // 检测新增并上传
+ packMethod(0);
+ // 检测更新并上传
+ packMethod(1);
+
+ }
+
+ private void packMethod(Integer type) {
+ // 时间格式化
+ Date now = DateUtil.now();
+ Date date = DateUtil.minusDays(now, 1);
+ String yyyyMMdd = DateUtil.format(date, "yyyyMMdd");
+ String yyyyMMddToday = DateUtil.format(now, "yyyyMMdd");
+ Boolean temp = false;
+
+ try {
+ temp = method.creatIdentificationUpFile(type, yyyyMMdd, yyyyMMddToday);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ // 如果没有生成文件,可直接结束
+ if (!temp) {
+ return;
+ }
+
+
+ String fileName = "d://aaa//test.txt";
+ // 要上传的目录
+ String upSrc = "/001/" + yyyyMMdd;
+ // 表名(文件名的一部分)
+ String tableName = "SDQN-basic_identification_ip-";
+ String operationName = "";
+ if (type == 0) {
+ // 操作类型为新增
+ operationName = "-add.bin";
+ }
+ if (type == 1) {
+ // 操作类型为更新
+ operationName = "-update.bin";
+ }
+ try {
+ method.upMethod(fileName, upSrc, tableName, operationName);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+}