|
@@ -24,7 +24,7 @@ import java.util.*;
|
|
|
/**
|
|
|
* @author cjz
|
|
|
* @date 2024/9/10 11:06
|
|
|
- * @description:减值数据自动更新
|
|
|
+ * @description:减值数据自动更新,并更新客户基础资料
|
|
|
*/
|
|
|
public class UpdateImpairmentDailyTask extends AbstractTask {
|
|
|
private static final Log log = LogFactory.getLog(UpdateImpairmentDailyTask.class);
|
|
@@ -59,7 +59,7 @@ public class UpdateImpairmentDailyTask extends AbstractTask {
|
|
|
//减值表字段
|
|
|
List<String> selector = Arrays.asList(
|
|
|
"nckd_dubil_id", "nckd_cust_id", "nckd_cur_cd", "nckd_dubil_amt", "nckd_asset_bal",
|
|
|
- "nckd_stage_rslt", "nckd_ecl_ratio"
|
|
|
+ "nckd_stage_rslt", "nckd_ecl_ratio","nckd_cust_name"
|
|
|
);
|
|
|
List<DynamicObject> createdataList = new ArrayList<>();
|
|
|
QFilter filter=new QFilter("nckd_isdelete", QCP.equals,false);
|
|
@@ -94,10 +94,12 @@ public class UpdateImpairmentDailyTask extends AbstractTask {
|
|
|
}
|
|
|
}
|
|
|
sftpClient.disconnect();
|
|
|
+ //读取的文件数据转化成DynamicObject
|
|
|
+ DynamicObject[] dynamicObjectlist=createdataList.toArray(new DynamicObject[0]);
|
|
|
//新增数据不为空则更新到数据库中
|
|
|
if (!createdataList.isEmpty()) {
|
|
|
//转换list为DynamicObject类型
|
|
|
- SaveServiceHelper.save(dynamicObjectType, createdataList.toArray(new DynamicObject[0]));
|
|
|
+ SaveServiceHelper.save(dynamicObjectType,dynamicObjectlist);
|
|
|
}
|
|
|
//删除所有的数据,再新增
|
|
|
for (int i=0;i<existingData.length;i++) {
|
|
@@ -106,7 +108,9 @@ public class UpdateImpairmentDailyTask extends AbstractTask {
|
|
|
SaveServiceHelper.save(existingData);
|
|
|
QFilter qFilter=new QFilter("nckd_isdelete",QCP.equals,true);
|
|
|
DeleteServiceHelper.delete(dynamicObjectType.getName(),new QFilter[]{qFilter});
|
|
|
- log.info("-----------------------数据已成功保存---------------------");
|
|
|
+ log.info("-----------------------减值数据已成功保存---------------------");
|
|
|
+ custSave(dynamicObjectlist);
|
|
|
+ log.info("------------------------客户数据已成功保存----------------------");
|
|
|
} catch (IOException ex) {
|
|
|
ex.printStackTrace();
|
|
|
log.error("----------------------------读取文件发生错误"+ex.getMessage()+"--------------------------");
|
|
@@ -147,4 +151,48 @@ public class UpdateImpairmentDailyTask extends AbstractTask {
|
|
|
String realPath = nckd_url+datestr+ File.separator+nckd_filename;
|
|
|
return realPath;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ //根据减值数据存储客户名客户号数据
|
|
|
+ public void custSave(DynamicObject[] dynamicObjectlist)
|
|
|
+ {
|
|
|
+ //客户基础资料
|
|
|
+ DynamicObjectType dynamicObjectType = EntityMetadataCache.getDataEntityType("nckd_customer");
|
|
|
+ //客户表字段
|
|
|
+ List<String> selector = Arrays.asList(
|
|
|
+ "nckd_cust_id", "nckd_cust_name"
|
|
|
+ );
|
|
|
+ List<DynamicObject> createdataList = new ArrayList<>();
|
|
|
+ QFilter filter=new QFilter("nckd_isdelete",QCP.equals,false);
|
|
|
+ //查询已经存在的客户数据
|
|
|
+ DynamicObject[] existingData = BusinessDataServiceHelper
|
|
|
+ .load(dynamicObjectType.getName(), String.join(",", selector),null);
|
|
|
+
|
|
|
+
|
|
|
+ List<DynamicObject> dataListAdd = new ArrayList<>();
|
|
|
+ //存在数据的客户号
|
|
|
+ Map<String, DynamicObject> existingDataMap = new HashMap<>();
|
|
|
+ for (DynamicObject obj : existingData) {
|
|
|
+ existingDataMap.put(obj.getString("nckd_cust_id"), obj);
|
|
|
+ }
|
|
|
+
|
|
|
+ for(DynamicObject dataList:dynamicObjectlist)
|
|
|
+ {
|
|
|
+ //获取这条数据的
|
|
|
+ String nckd_cust_id=dataList.getString("nckd_cust_id");
|
|
|
+ //客户号不存在则保存
|
|
|
+ if (!existingDataMap.containsKey(nckd_cust_id))
|
|
|
+ {
|
|
|
+ DynamicObject data = new DynamicObject(dynamicObjectType);
|
|
|
+ //客户号
|
|
|
+ data.set("nckd_cust_id",dataList.getString("nckd_cust_id"));
|
|
|
+ //客户名
|
|
|
+ data.set("nckd_cust_name",dataList.getString("nckd_cust_name"));
|
|
|
+ dataListAdd.add(data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //保存
|
|
|
+ SaveServiceHelper.save(dynamicObjectType,dataListAdd.toArray(new DynamicObject[0]));
|
|
|
+
|
|
|
+ }
|
|
|
}
|