浏览代码

1.新增同步支出类型档案

WoNiu 5 年之前
父节点
当前提交
be6feb8664

+ 10 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunProjectTypeDao.java

@@ -0,0 +1,10 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectTypeDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunReimbursementDO;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ChuanyunProjectTypeDao extends GalaxisRepository<ChuanyunProjectTypeDO,String> {
+}

+ 35 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectTypeDO.java

@@ -0,0 +1,35 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_PROJECT_TYPE")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProjectTypeDO extends BasicDO{
+
+
+    /**
+     * 表编码
+     */
+    public static final String SCHEMA_CODE ="D001789c5fd57c1c1a24dba847760a52ea81571";
+
+    /**
+     * 项目类型
+     */
+    @JsonProperty("projectType")
+    private String projectType;
+
+    /**
+     * 编码
+     */
+    @JsonProperty("SeqNo")
+    private String projectTypeCode;
+}

+ 42 - 1
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -35,8 +35,9 @@ public class ChuanyunBasicDataScheduledTask {
     private final ChuanyunUserCompanyDao chuanyunUserCompanyDao;
     private final ChuanyunCostDao chuanyunCostDao;
     private final ChuanyunReimbursementSubjectDao chuanyunReimbursementSubjectDao;
+    private final ChuanyunProjectTypeDao chuanyunProjectTypeDao;
 
-    public ChuanyunBasicDataScheduledTask(ChuanYunManager chuanYunManager, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunUserDao chuanyunUserDao, ChuanyunSupplierDao chuanyunSupplierDao, ChuanyunCompanyDao chuanyunCompanyDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunCostDao chuanyunCostDao, ChuanyunReimbursementSubjectDao chuanyunReimbursementSubjectDao) {
+    public ChuanyunBasicDataScheduledTask(ChuanYunManager chuanYunManager, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunUserDao chuanyunUserDao, ChuanyunSupplierDao chuanyunSupplierDao, ChuanyunCompanyDao chuanyunCompanyDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunCostDao chuanyunCostDao, ChuanyunReimbursementSubjectDao chuanyunReimbursementSubjectDao, ChuanyunProjectTypeDao chuanyunProjectTypeDao) {
         this.chuanYunManager = chuanYunManager;
         this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
         this.chuanyunUserDao = chuanyunUserDao;
@@ -45,6 +46,7 @@ public class ChuanyunBasicDataScheduledTask {
         this.chuanyunUserCompanyDao = chuanyunUserCompanyDao;
         this.chuanyunCostDao = chuanyunCostDao;
         this.chuanyunReimbursementSubjectDao = chuanyunReimbursementSubjectDao;
+        this.chuanyunProjectTypeDao = chuanyunProjectTypeDao;
     }
 
     /**
@@ -52,6 +54,9 @@ public class ChuanyunBasicDataScheduledTask {
      */
     @Scheduled(fixedDelay = 360000L)
     private void getDataFromChuanyun() {
+
+        //支出档案类型
+        updateCostCenter();
         //获取报销科目
         getReimbursementSubject();
         //获取成本中心
@@ -191,6 +196,42 @@ public class ChuanyunBasicDataScheduledTask {
     }
 
     /**
+     * 更新支出档案类型
+     */
+    public void updateCostCenter() {
+        var objectMapper=new ObjectMapper();
+        var start=0;
+        var totalCount=0L;
+        var flag=true;
+        while (flag) {
+            try {
+                //从氚云查询数据
+                var filter = Filter.instance(start, start + pageSize, true);
+                var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunProjectTypeDO.SCHEMA_CODE, filter);
+                if (chuanyunFindAllResponse.getReturnData() == null) {
+                    flag = false;
+                    continue;
+                }
+                if (chuanyunFindAllResponse.getReturnData().getTotalCount() >= start + pageSize) {
+                    start += pageSize;
+                } else {
+                    flag = false;
+                }
+                //转化为POJO
+                List<ChuanyunProjectTypeDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                //获取项目总数
+                totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
+                //保存
+                chuanyunProjectTypeDao.saveAll(result);
+            }catch (Exception e) {
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+            log.info("支出档案类型"+totalCount);
+        }
+    }
+
+    /**
      * 更新公司信息
      */
     private void getCompany(){