|
@@ -0,0 +1,120 @@
|
|
|
|
+package sys.sc.task;
|
|
|
|
+
|
|
|
|
+import com.alibaba.druid.support.logging.Log;
|
|
|
|
+import com.alibaba.druid.support.logging.LogFactory;
|
|
|
|
+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.orm.query.QCP;
|
|
|
|
+import kd.bos.orm.query.QFilter;
|
|
|
|
+import kd.bos.schedule.api.MessageHandler;
|
|
|
|
+import kd.bos.schedule.executor.AbstractTask;
|
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
|
+import scala.Dynamic;
|
|
|
|
+import sys.sc.opplugin.utils.DatFileCreatUtils;
|
|
|
|
+import sys.sc.opplugin.utils.SftpClient;
|
|
|
|
+
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @author cjz
|
|
|
|
+ * @date 2024/9/19 16:00
|
|
|
|
+ * @description:表数据生成dat文件,放在指定服务器路径下调度计划
|
|
|
|
+ */
|
|
|
|
+public class CreatDatDailyTask extends AbstractTask {
|
|
|
|
+ private static final Log log = LogFactory.getLog(CreatDatDailyTask.class);
|
|
|
|
+
|
|
|
|
+ //接口配置信息基础资料标识
|
|
|
|
+ private static String nckd_jkpzxx="nckd_jkpzxx";
|
|
|
|
+ //数据表字段基础资料标识
|
|
|
|
+ private static String nckd_tablebasic="nckd_tablebasic";
|
|
|
|
+ @Override
|
|
|
|
+ public MessageHandler getMessageHandle() {
|
|
|
|
+ return super.getMessageHandle();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @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");
|
|
|
|
+ //数据表基础资料
|
|
|
|
+ DynamicObject[] tableDy=BusinessDataServiceHelper.load(nckd_tablebasic,"id",new QFilter[]{filter});
|
|
|
|
+ log.info("----------------------读取数据表基础资料-------------------");
|
|
|
|
+ for (DynamicObject item:tableDy)
|
|
|
|
+ {
|
|
|
|
+ log.info("-------------------------获取服务器连接-----------------");
|
|
|
|
+ List<String> fileList=new ArrayList<>();
|
|
|
|
+ //获取表字段当前分录
|
|
|
|
+ DynamicObjectCollection dynamicObjectCollection=item.getDynamicObjectCollection("nckd_tableentry");
|
|
|
|
+ for (DynamicObject itemmen:dynamicObjectCollection) {
|
|
|
|
+ //将打勾的字段到处
|
|
|
|
+ if (itemmen.getBoolean("nckd_isable")) {
|
|
|
|
+ //需要导入的标识写入list中
|
|
|
|
+ fileList.add(itemmen.getString("nckd_entrycode"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //获取当前选择的表名
|
|
|
|
+ String tablenumber=item.getString("number");
|
|
|
|
+ //业务编码
|
|
|
|
+ String bizappnum=item.getString("nckd_biazppnum");
|
|
|
|
+ //生成文件的路径
|
|
|
|
+ String filePath="D:\\12331.dat";
|
|
|
|
+ //分割符号
|
|
|
|
+ String spiltsign="\u0001";
|
|
|
|
+ //结束符号
|
|
|
|
+ String endsign="|$|";
|
|
|
|
+ DatFileCreatUtils datFileCreatUtils=new DatFileCreatUtils(tablenumber,bizappnum,fileList,filePath,spiltsign,endsign);
|
|
|
|
+ //生成dat文件
|
|
|
|
+ datFileCreatUtils.creatDatFile();
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean isSupportReSchedule() {
|
|
|
|
+ return super.isSupportReSchedule();
|
|
|
|
+ }
|
|
|
|
+}
|