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); + } + + } +}