|
@@ -18,6 +18,7 @@ import kd.bos.sec.user.utils.UserOperationUtils;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
import sys.sc.formplugin.ABillServiceHelper;
|
|
import sys.sc.formplugin.ABillServiceHelper;
|
|
|
|
+import sys.sc.opplugin.utils.InterFaceImgUtils;
|
|
import sys.sc.opplugin.utils.SftpClient;
|
|
import sys.sc.opplugin.utils.SftpClient;
|
|
|
|
|
|
import java.io.*;
|
|
import java.io.*;
|
|
@@ -32,10 +33,18 @@ import java.util.*;
|
|
public class UpdateDataDailyTask extends AbstractTask {
|
|
public class UpdateDataDailyTask extends AbstractTask {
|
|
|
|
|
|
private static final Log log = LogFactory.getLog(UpdateDataDailyTask.class);
|
|
private static final Log log = LogFactory.getLog(UpdateDataDailyTask.class);
|
|
- public static String host="192.168.10.69";//服务器ip地址
|
|
|
|
- public static String username="root";//用户名
|
|
|
|
- public static int port = 22;//端口号
|
|
|
|
- public static String password="Kd@86262007";//用户密码
|
|
|
|
|
|
+ public InterFaceImgUtils interFaceImgUtils=new InterFaceImgUtils("produceurl"); //服务器ip
|
|
|
|
+ public String host=interFaceImgUtils.getServerName();
|
|
|
|
+ //用户名
|
|
|
|
+ public String username=interFaceImgUtils.getServerUser();
|
|
|
|
+ //用户密码
|
|
|
|
+ public String password=interFaceImgUtils.getServerPassword();
|
|
|
|
+ //分割符
|
|
|
|
+ public String splitsign=interFaceImgUtils.getServerSplit();
|
|
|
|
+ //结尾符
|
|
|
|
+ public String endsign=interFaceImgUtils.getServerEndsign();
|
|
|
|
+ public int port= interFaceImgUtils.getProt();
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -50,6 +59,7 @@ public class UpdateDataDailyTask extends AbstractTask {
|
|
//文件路径
|
|
//文件路径
|
|
String path=getFileUrl("organduserurl");
|
|
String path=getFileUrl("organduserurl");
|
|
try {
|
|
try {
|
|
|
|
+
|
|
//获取连接对象
|
|
//获取连接对象
|
|
SftpClient sftpClient=new SftpClient(host,username,password,port);
|
|
SftpClient sftpClient=new SftpClient(host,username,password,port);
|
|
sftpClient.connect();
|
|
sftpClient.connect();
|
|
@@ -93,9 +103,9 @@ public class UpdateDataDailyTask extends AbstractTask {
|
|
String line;
|
|
String line;
|
|
while ((line = reader.readLine()) != null) {
|
|
while ((line = reader.readLine()) != null) {
|
|
//去掉换行符|$|
|
|
//去掉换行符|$|
|
|
- line = line.replace("|$|", "");
|
|
|
|
|
|
+ line = line.replace(endsign, "");
|
|
//空格符号,根据这个符号分割
|
|
//空格符号,根据这个符号分割
|
|
- String[] fields = line.split("\u0001");
|
|
|
|
|
|
+ String[] fields = line.split(splitsign);
|
|
//如果获取的数据行不等于预设字段的行,则跳过这行数据
|
|
//如果获取的数据行不等于预设字段的行,则跳过这行数据
|
|
if (fields.length != selector.size()) {
|
|
if (fields.length != selector.size()) {
|
|
continue;
|
|
continue;
|
|
@@ -184,7 +194,7 @@ public class UpdateDataDailyTask extends AbstractTask {
|
|
log.info("指定的上级组织 'jxyh' 未找到!");
|
|
log.info("指定的上级组织 'jxyh' 未找到!");
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- IFormView orgview = ABillServiceHelper.createAddView("bos_adminorg");
|
|
|
|
|
|
+
|
|
for (DynamicObject record : nckdData) {
|
|
for (DynamicObject record : nckdData) {
|
|
// 判断并创建或更新所在单位
|
|
// 判断并创建或更新所在单位
|
|
//所在单位编码
|
|
//所在单位编码
|
|
@@ -196,6 +206,7 @@ public class UpdateDataDailyTask extends AbstractTask {
|
|
);
|
|
);
|
|
//没有单位则创建
|
|
//没有单位则创建
|
|
if (org == null) {
|
|
if (org == null) {
|
|
|
|
+ IFormView orgview = ABillServiceHelper.createAddView("bos_adminorg");
|
|
//组织编码
|
|
//组织编码
|
|
orgview.getModel().setValue("number", szdwbm);
|
|
orgview.getModel().setValue("number", szdwbm);
|
|
//组织名称
|
|
//组织名称
|
|
@@ -232,7 +243,7 @@ public class UpdateDataDailyTask extends AbstractTask {
|
|
//一级机构
|
|
//一级机构
|
|
DynamicObject yjjg = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{new QFilter("number", "=", yjjgbm)});
|
|
DynamicObject yjjg = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{new QFilter("number", "=", yjjgbm)});
|
|
if (yjjg == null) {
|
|
if (yjjg == null) {
|
|
- IFormView yjjgView=orgview;
|
|
|
|
|
|
+ IFormView yjjgView=ABillServiceHelper.createAddView("bos_adminorg");
|
|
yjjgView.getModel().setValue("number", yjjgbm);
|
|
yjjgView.getModel().setValue("number", yjjgbm);
|
|
yjjgView.getModel().setValue("name", yjjgmc);
|
|
yjjgView.getModel().setValue("name", yjjgmc);
|
|
yjjgView.getModel().setValue("parent", org); // 父级组织为 org
|
|
yjjgView.getModel().setValue("parent", org); // 父级组织为 org
|
|
@@ -258,7 +269,7 @@ public class UpdateDataDailyTask extends AbstractTask {
|
|
//所在部门
|
|
//所在部门
|
|
DynamicObject szbm = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{new QFilter("number", "=", szbmbm)});
|
|
DynamicObject szbm = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{new QFilter("number", "=", szbmbm)});
|
|
if (szbm == null) {
|
|
if (szbm == null) {
|
|
- IFormView szbmView=orgview;
|
|
|
|
|
|
+ IFormView szbmView=ABillServiceHelper.createAddView("bos_adminorg");
|
|
szbmView.getModel().setValue("number", szbmbm);
|
|
szbmView.getModel().setValue("number", szbmbm);
|
|
szbmView.getModel().setValue("name", szbmmc);
|
|
szbmView.getModel().setValue("name", szbmmc);
|
|
szbmView.getModel().setValue("parent", yjjg); // 设置父级为 yjjg
|
|
szbmView.getModel().setValue("parent", yjjg); // 设置父级为 yjjg
|
|
@@ -354,15 +365,20 @@ public class UpdateDataDailyTask extends AbstractTask {
|
|
// 更新组织结构
|
|
// 更新组织结构
|
|
DynamicObjectCollection structureInfoCollection = newOrgInfo.getDynamicObjectCollection("structure");
|
|
DynamicObjectCollection structureInfoCollection = newOrgInfo.getDynamicObjectCollection("structure");
|
|
if (structureInfoCollection != null && !structureInfoCollection.isEmpty()) {
|
|
if (structureInfoCollection != null && !structureInfoCollection.isEmpty()) {
|
|
- DynamicObject structureInfo = structureInfoCollection.get(0);
|
|
|
|
- if(existingDeptEntry.getDynamicObject("orgstructure")!=null){
|
|
|
|
- if (!structureInfo.getPkValue().equals(existingDeptEntry.getDynamicObject("orgstructure").getPkValue())) {
|
|
|
|
- existingDeptEntry.set("orgstructure", structureInfo.getPkValue());
|
|
|
|
- deptUpdated = true;
|
|
|
|
|
|
+ for (DynamicObject item:structureInfoCollection) {
|
|
|
|
+ //不为兼职则更新
|
|
|
|
+ if (!item.getBoolean("ispartjob")) {
|
|
|
|
+ DynamicObject structureInfo=item;//获取结构信息
|
|
|
|
+ if(existingDeptEntry.getDynamicObject("orgstructure")!=null){
|
|
|
|
+ if (!structureInfo.getPkValue().equals(existingDeptEntry.getDynamicObject("orgstructure").getPkValue())) {
|
|
|
|
+ existingDeptEntry.set("orgstructure", structureInfo.getPkValue());
|
|
|
|
+ deptUpdated = true;
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ existingDeptEntry.set("orgstructure", structureInfo.getPkValue());
|
|
|
|
+ deptUpdated = true;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- }else{
|
|
|
|
- existingDeptEntry.set("orgstructure", structureInfo.getPkValue());
|
|
|
|
- deptUpdated = true;
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// 标记是否需要保存
|
|
// 标记是否需要保存
|
|
@@ -433,8 +449,13 @@ public class UpdateDataDailyTask extends AbstractTask {
|
|
// 获取组织的分录集合 structure 的第一条数据
|
|
// 获取组织的分录集合 structure 的第一条数据
|
|
DynamicObjectCollection structureInfoCollection = orginfo.getDynamicObjectCollection("structure");
|
|
DynamicObjectCollection structureInfoCollection = orginfo.getDynamicObjectCollection("structure");
|
|
if (structureInfoCollection != null && !structureInfoCollection.isEmpty()) {
|
|
if (structureInfoCollection != null && !structureInfoCollection.isEmpty()) {
|
|
- DynamicObject structureInfo = structureInfoCollection.get(0); // 获取第一条结构信息
|
|
|
|
- bumeninfo.set("orgstructure", structureInfo.getPkValue());
|
|
|
|
|
|
+ for (DynamicObject item:structureInfoCollection) {
|
|
|
|
+ //不为兼职则更新
|
|
|
|
+ if (!item.getBoolean("ispartjob")) {
|
|
|
|
+ DynamicObject structureInfo=item;//获取结构信息
|
|
|
|
+ bumeninfo.set("orgstructure",structureInfo.getPkValue());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
log.info("部门编码为 " + deptCode + " 的部门缺少组织结构信息,跳过该记录。");
|
|
log.info("部门编码为 " + deptCode + " 的部门缺少组织结构信息,跳过该记录。");
|
|
}
|
|
}
|
|
@@ -477,9 +498,6 @@ public class UpdateDataDailyTask extends AbstractTask {
|
|
String datestr=sf.format(newDate);
|
|
String datestr=sf.format(newDate);
|
|
//文件路径拼接
|
|
//文件路径拼接
|
|
//真实路径
|
|
//真实路径
|
|
- if (nckd_url.equals("/var/appstatic/")) {
|
|
|
|
- nckd_url="/home/kingdee/cosmic/nginx-appstatic/store/appstatic/";
|
|
|
|
- }
|
|
|
|
String realPath = nckd_url+datestr+"/"+nckd_filename;
|
|
String realPath = nckd_url+datestr+"/"+nckd_filename;
|
|
return realPath;
|
|
return realPath;
|
|
}
|
|
}
|