瀏覽代碼

1、SAP成本中心同步,增加禁用的逻辑。

wanghaiwu 1 周之前
父節點
當前提交
2e15cf14ce

+ 37 - 0
code/jyyy/nckd-jimin-jyyy-bd/src/main/java/nckd/jimin/jyyy/bd/task/impl/SynSapServiceImpl.java

@@ -17,6 +17,9 @@ import kd.bos.util.StringUtils;
 import nckd.jimin.jyyy.bd.common.oauth.FanWeiUtils;
 import nckd.jimin.jyyy.bd.task.SynSapService;
 import nckd.jimin.jyyy.bd.task.SyncSapUtils;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -95,6 +98,21 @@ public class SynSapServiceImpl implements SynSapService {
         ArrayList<DynamicObject> costList = new ArrayList<>();
         StringBuilder err = new StringBuilder();
 
+
+        SimpleDateFormat shortformat = new SimpleDateFormat("yyyy-MM-dd");
+        SimpleDateFormat longformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String curDateStr = shortformat.format(new Date());
+        String suffix = " 00:00:00";
+
+        Date curDate;
+        try {
+            curDate = longformat.parse(curDateStr + suffix);
+        } catch (ParseException e) {
+            result.put("code", "303");
+            result.put("msg", "当前日期格式异常");
+            return result;
+        }
+
         for (int i = 0; i < rItemArray.size(); ++i) {
             JSONObject item = rItemArray.getJSONObject(i);
             String number = item.getString("KOSTL");
@@ -108,6 +126,19 @@ public class SynSapServiceImpl implements SynSapService {
                 continue;
             }
 
+            //生效截止时间
+            String endDateStr = item.getString("DATBI");
+            Date endDate = curDate;
+            if(StringUtils.isNotEmpty(endDateStr) && !"0000-00-00".equals(endDateStr)) {
+                try {
+                    endDate = longformat.parse(endDateStr + suffix);
+                } catch (ParseException e) {
+                    result.put("code", "303");
+                    result.put("msg", "到期日期格式异常");
+                    return result;
+                }
+            }
+
             if (EmptyUtils.isNotEmpty(number)) {
                 DynamicObject dyn = costMap.get(number);
                 if (dyn == null) {
@@ -144,6 +175,12 @@ public class SynSapServiceImpl implements SynSapService {
                 dyn.set("name", item.getString("KTEXT"));////项目名称
                 dyn.set("status", "C");   ///单据状态
                 dyn.set("enable", "1");  //使用状态
+
+                //如果生效截止日期小于当前时间,则禁用
+                if(endDate.compareTo(curDate) < 0) {
+                    dyn.set("enable", "0");  //使用状态
+                }
+
                 if (EmptyUtils.isNotEmpty(parent)) {
                     dyn.set("parent", parent);
                 }