Prechádzať zdrojové kódy

减值数据读取后更新客户基础资料

zhouger 7 mesiacov pred
rodič
commit
e4e239b7b8

+ 53 - 5
src/main/java/sys/sc/formplugin/TestPlugin.java

@@ -592,7 +592,7 @@ public class TestPlugin  extends AbstractListPlugin {
                 //减值表字段
                 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);
@@ -627,20 +627,25 @@ public class TestPlugin  extends AbstractListPlugin {
                         createdataList.add(data);
                     }
                 }
+                //读取的文件数据转化成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++) {
-                    existingData[i].set("nckd_isdelete",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});
+
+                //保存客户基础资料
+                custSave(dynamicObjectlist);
                 this.getView().showMessage("数据已成功保存!");
+
             } catch (IOException ex) {
                 ex.printStackTrace();
                 this.getView().showMessage("读取文件时发生错误:" + ex.getMessage());
@@ -833,6 +838,49 @@ public class TestPlugin  extends AbstractListPlugin {
         fis.close();
         sftpClient.disconnect();
     }
+
+    //根据减值数据存储客户名客户号数据
+    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]));
+
+    }
 }
 
 

+ 52 - 4
src/main/java/sys/sc/task/UpdateImpairmentDailyTask.java

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