Ver código fonte

dat上传服务器调度计划

zhouger 7 meses atrás
pai
commit
0e2a84170e

+ 29 - 4
src/main/java/sys/sc/formplugin/CreatDatPlugin.java

@@ -5,6 +5,8 @@ import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.form.events.AfterDoOperationEventArgs;
 import kd.bos.list.plugin.AbstractListPlugin;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import sys.sc.opplugin.utils.DatFileCreatUtils;
 
@@ -41,15 +43,38 @@ public class CreatDatPlugin extends AbstractListPlugin {
             String tablenumber=dynamicObject.getString("number");
             //业务编码
             String bizappnum=dynamicObject.getString("nckd_biazppnum");
+            QFilter qFilter=new QFilter("number", QCP.equals,"creatdat");
+            DynamicObject jkdataDy= BusinessDataServiceHelper.loadSingle("nckd_jkpzxx",
+                    "id,number,name,nckd_servername" +
+                            ",nckd_port,nckd_url,nckd_filename,nckd_user" +
+                            ",nckd_password,nckd_split,nckd_endsign",new QFilter[]{qFilter});
+            //文件名
+            String filename=tablenumber+".dat";
             //生成文件的路径
-            String filePath="D:\\12331.dat";
+            String filePath="D:\\"+filename;
             //分割符号
-            String spiltsign="\u0001";
+            String spiltsign=jkdataDy.getString("nckd_split");
             //结束符号
-            String endsign="|$|";
+            String endsign=jkdataDy.getString("nckd_endsign");
+            //文件生成到本地路径
             DatFileCreatUtils datFileCreatUtils=new DatFileCreatUtils(tablenumber,bizappnum,fileList,filePath,spiltsign,endsign);
-            //生成dat文件
+            //生成dat文件到本地
             datFileCreatUtils.creatDatFile();
+            //上传文件到服务器中
+            //服务器端口
+            String host=jkdataDy.getString("nckd_servername");
+            //服务器用户名
+            String username=jkdataDy.getString("nckd_user");
+            //服务器密码
+            String password=jkdataDy.getString("nckd_password");
+            //服务器路径
+            String nckd_url=jkdataDy.getString("nckd_url");
+            //服务器端口号
+            int port=jkdataDy.getInt("nckd_port");
+
+//            DatFileCreatUtils datFileCreatUtils=new DatFileCreatUtils(tablenumber,bizappnum,fileList,filePath,spiltsign,endsign);
+//            //生成dat文件
+//            datFileCreatUtils.creatDatFile();
         }
 
     }

+ 6 - 0
src/main/java/sys/sc/opplugin/utils/SftpClient.java

@@ -57,6 +57,12 @@ public class SftpClient {
 //        }
 //    }
 
+    //上传文件到服务器路径,
+    public void fileCreat(String localFilePath,String remoteFilePath) throws SftpException {
+        //本地服务器传到服务器文件
+        sftpChannel.put(localFilePath,remoteFilePath);
+    }
+
     // 断开连接
     public void disconnect() {
         if (sftpChannel != null && sftpChannel.isConnected()) {

+ 37 - 45
src/main/java/sys/sc/task/CreatDatDailyTask.java

@@ -6,6 +6,7 @@ import kd.bos.context.RequestContext;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.exception.KDException;
+import kd.bos.openapi.base.util.QFilterUtil;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.schedule.api.MessageHandler;
@@ -38,42 +39,6 @@ public class CreatDatDailyTask extends AbstractTask {
 
     @Override
     public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
-        //读取接口配置信息获取
-        DynamicObject[] jkpzDy= BusinessDataServiceHelper.load(nckd_jkpzxx,
-                        "id,number,name,nckd_servername" +
-                                ",nckd_port,nckd_url,nckd_filename,nckd_user" +
-                                ",nckd_password,nckd_split,nckd_endsign",new QFilter[]{});
-//        for (DynamicObject item:jkpzDy)
-//        {
-//            //服务器地址
-//            String nckd_servername=item.getString("nckd_servername");
-//            //服务器端口
-//            int  nckd_port=item.getInt("nckd_port");
-//            //服务器文件路径
-//            String nckd_url=item.getString("nckd_url");
-//            //文件名
-//            String nckd_filename=item.getString("nckd_filename");
-//            //用户名
-//            String nckd_user=item.getString("nckd_user");
-//            //用户密码
-//            String nckd_password=item.getString("nckd_password");
-//            //分隔符
-//            String nckd_split=item.getString("nckd_split");
-//            //结尾符
-//            String nckd_endsign=item.getString("nckd_endsign");
-//
-//
-//            //获取服务器连接
-//            SftpClient sftpClient=new SftpClient(nckd_servername,nckd_user,nckd_password,nckd_port);
-//            try {
-//                sftpClient.connect();
-//                log.info("--------------------------获取服务器连接成功-----------------------");
-//
-//            } catch (Exception e) {
-//                throw new RuntimeException(e);
-//            }
-//
-//        }
         //取已审核的数据
         QFilter filter=new QFilter("status", QCP.equals,"C");
         //数据表基础资料
@@ -96,21 +61,48 @@ public class CreatDatDailyTask extends AbstractTask {
             String tablenumber=item.getString("number");
             //业务编码
             String bizappnum=item.getString("nckd_biazppnum");
+            //接口配置信息获取
+            //读取接口配置信息获取
+            QFilter qFilter=new QFilter("number",QCP.equals,"creatdat");
+            DynamicObject jkdataDy= BusinessDataServiceHelper.loadSingle(nckd_jkpzxx,
+                    "id,number,name,nckd_servername" +
+                            ",nckd_port,nckd_url,nckd_filename,nckd_user" +
+                            ",nckd_password,nckd_split,nckd_endsign",new QFilter[]{qFilter});
+            //文件名
+            String filename=tablenumber+".dat";
             //生成文件的路径
-            String filePath="D:\\12331.dat";
+            String filePath="C:\\"+filename;
             //分割符号
-            String spiltsign="\u0001";
+            String spiltsign=jkdataDy.getString("nckd_split");
             //结束符号
-            String endsign="|$|";
+            String endsign=jkdataDy.getString("nckd_endsign");
+            //文件生成到本地路径
             DatFileCreatUtils datFileCreatUtils=new DatFileCreatUtils(tablenumber,bizappnum,fileList,filePath,spiltsign,endsign);
-            //生成dat文件
+            //生成dat文件到本地
             datFileCreatUtils.creatDatFile();
-
+            //上传文件到服务器中
+            //服务器端口
+            String host=jkdataDy.getString("nckd_servername");
+            //服务器用户名
+            String username=jkdataDy.getString("nckd_user");
+            //服务器密码
+            String password=jkdataDy.getString("nckd_password");
+            //服务器路径
+            String nckd_url=jkdataDy.getString("nckd_url");
+            //服务器端口号
+            int port=jkdataDy.getInt("nckd_port");
+            SftpClient sftpClient=new SftpClient(host,username,password,port);
+            //获取服务器连接
+            try {
+                sftpClient.connect();
+                //上传文件到服务器指定路径
+                sftpClient.fileCreat(filePath,nckd_url+filename);
+                //关闭连接
+                sftpClient.disconnect();
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
         }
-
-
-
-
     }
 
     @Override

+ 2 - 1
src/main/java/sys/sc/task/UpdateImpairmentDailyTask.java

@@ -101,13 +101,14 @@ public class UpdateImpairmentDailyTask extends AbstractTask {
                 //转换list为DynamicObject类型
                 SaveServiceHelper.save(dynamicObjectType,dynamicObjectlist);
             }
+            QFilter qFilter=new QFilter("nckd_isdelete",QCP.equals,true);
             //删除所有的数据,再新增
             for (DynamicObject existingDatum : existingData) {
                 existingDatum.set("nckd_isdelete", true);
             }
             SaveServiceHelper.save(existingData);
-            QFilter qFilter=new QFilter("nckd_isdelete",QCP.equals,true);
             DeleteServiceHelper.delete(dynamicObjectType.getName(),new QFilter[]{qFilter});
+
             log.info("-----------------------减值数据已成功保存---------------------");
             custSave(dynamicObjectlist);
             log.info("------------------------客户数据已成功保存----------------------");