Forráskód Böngészése

报销数据同步
基础数据同步

verguenza 5 éve
szülő
commit
6c9494320f
20 módosított fájl, 870 hozzáadás és 127 törlés
  1. 14 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunPaymentReceiveActionDao.java
  2. 14 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunPaymentReceiveDao.java
  3. 14 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunPaymentReceiveInvoiceDao.java
  4. 14 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunPaymentReceivePlanDao.java
  5. 14 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunSaleContractDao.java
  6. 14 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunSaleContractDetailDao.java
  7. 1 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/BasicSubDO.java
  8. 68 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPaymentReceiveActionDO.java
  9. 89 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPaymentReceiveDO.java
  10. 67 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPaymentReceiveInvoiceDO.java
  11. 67 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPaymentReceivePlanDO.java
  12. 1 1
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunReimbursementDO.java
  13. 166 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSaleContractDO.java
  14. 58 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSaleContractDetailDO.java
  15. 2 7
      src/main/java/com/galaxis/manatee/manager/impl/DefaultChuanyunManagerImpl.java
  16. 4 2
      src/main/java/com/galaxis/manatee/service/ChuanyunBasicDataScheduledTask.java
  17. 143 0
      src/main/java/com/galaxis/manatee/task/ChuanyunFinancialScheduledTask.java
  18. 112 0
      src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java
  19. 4 114
      src/main/java/com/galaxis/manatee/service/ChuanyunScheduledTask.java
  20. 4 3
      src/main/java/com/galaxis/manatee/service/U9ScheduledTask.java

+ 14 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunPaymentReceiveActionDao.java

@@ -0,0 +1,14 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPaymentReceiveActionDO;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 3:42 下午
+ */
+@Repository
+public interface ChuanyunPaymentReceiveActionDao extends GalaxisRepository<ChuanyunPaymentReceiveActionDO,String> {
+}

+ 14 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunPaymentReceiveDao.java

@@ -0,0 +1,14 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPaymentReceiveDO;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 2:48 下午
+ */
+@Repository
+public interface ChuanyunPaymentReceiveDao extends GalaxisRepository<ChuanyunPaymentReceiveDO,String> {
+}

+ 14 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunPaymentReceiveInvoiceDao.java

@@ -0,0 +1,14 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPaymentReceiveInvoiceDO;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 3:41 下午
+ */
+@Repository
+public interface ChuanyunPaymentReceiveInvoiceDao extends GalaxisRepository<ChuanyunPaymentReceiveInvoiceDO,String> {
+}

+ 14 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunPaymentReceivePlanDao.java

@@ -0,0 +1,14 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPaymentReceivePlanDO;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 3:41 下午
+ */
+@Repository
+public interface ChuanyunPaymentReceivePlanDao extends GalaxisRepository<ChuanyunPaymentReceivePlanDO,String> {
+}

+ 14 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunSaleContractDao.java

@@ -0,0 +1,14 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSaleContractDO;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 1:48 下午
+ */
+@Repository
+public interface ChuanyunSaleContractDao extends GalaxisRepository<ChuanyunSaleContractDO,String> {
+}

+ 14 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunSaleContractDetailDao.java

@@ -0,0 +1,14 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSaleContractDetailDO;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 4:23 下午
+ */
+@Repository
+public interface ChuanyunSaleContractDetailDao extends GalaxisRepository<ChuanyunSaleContractDetailDO,String> {
+}

+ 1 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/BasicSubDO.java

@@ -36,4 +36,5 @@ public class BasicSubDO {
      */
     @JsonProperty("ParentObjectId")
     private String parentObjectId;
+
 }

+ 68 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPaymentReceiveActionDO.java

@@ -0,0 +1,68 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.NaturalId;
+
+import javax.persistence.*;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 2:36 下午
+ */
+@Slf4j
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Entity(name = "CHUANYUN_PAYMENT_RECEIVE_ACTION")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunPaymentReceiveActionDO extends BasicSubDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789Fdaace842c0d3428aa65141faf13c794e";
+
+    /**
+     * 阶段
+     */
+    @JsonProperty("F0000039")
+    private String step;
+    /**
+     * 回款金额
+     */
+    @JsonProperty("F0000023")
+    private String receiveAmount;
+    /**
+     * 回款日期
+     */
+    @JsonProperty("F0000024")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime receiveDate;
+    /**
+     * 差额
+     */
+    @JsonProperty("F0000025")
+    private BigDecimal receiveAmountDifference;
+    /**
+     * 差额原因
+     */
+    @JsonProperty("F0000026")
+    private String reason;
+    /**
+     * 备注
+     */
+    @JsonProperty("F0000043")
+    private String content;
+}

+ 89 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPaymentReceiveDO.java

@@ -0,0 +1,89 @@
+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.*;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 2:34 下午
+ */
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_PAYMENT_RECEIVE")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunPaymentReceiveDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D0017890fc02ad7b8ff4348a25f61f7ed8abbc2";
+    /**
+     * 销售合同Id
+     */
+    @JsonProperty("F0000001")
+    private String saleContractId;
+    /**
+     * 销售合同编码
+     */
+    @JsonProperty("F0000002")
+    private String saleContractCode;
+    /**
+     * 合同金额
+     */
+    @JsonProperty("F0000003")
+    private BigDecimal contractAmount;
+    /**
+     * 合同未税金额
+     */
+    @JsonProperty("F0000013")
+    private BigDecimal contractAmountWithoutTax;
+    /**
+     * 销售合同条款
+     */
+    @JsonProperty("F0000037")
+    @Column(length = Integer.MAX_VALUE)
+    private String saleContractTerms;
+    /**
+     * 回款计划列表
+     */
+    @JsonProperty("D001789F2a010fe1818a4020b1ff5a33533f9e44")
+    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.EAGER)
+    private Set<ChuanyunPaymentReceivePlanDO> planList;
+    /**
+     * 实际回款情况列表
+     */
+    @JsonProperty("D001789Fdaace842c0d3428aa65141faf13c794e")
+    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.EAGER)
+    private Set<ChuanyunPaymentReceiveActionDO> actionList;
+    /**
+     * 累计回款金额
+     */
+    @JsonProperty("F0000012")
+    private BigDecimal paymentReceived;
+    /**
+     * 剩余待回款金额
+     */
+    @JsonProperty("F0000027")
+    private BigDecimal restPaymentReceivable;
+    /**
+     * 应收账款
+     */
+    @JsonProperty("F0000040")
+    private BigDecimal paymentReceivable;
+    /**
+     * 发票
+     */
+    @JsonProperty("D001789F2ebaaf8fa86b478eb93d270680f2ff1d")
+    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.EAGER)
+    private Set<ChuanyunPaymentReceiveInvoiceDO> invoiceList;
+}

+ 67 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPaymentReceiveInvoiceDO.java

@@ -0,0 +1,67 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.NaturalId;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 2:36 下午
+ */
+@Slf4j
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Entity(name = "CHUANYUN_PAYMENT_RECEIVE_INVOICE")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunPaymentReceiveInvoiceDO extends BasicSubDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789F2ebaaf8fa86b478eb93d270680f2ff1d";
+    /**
+     * 回款节点
+     */
+    @JsonProperty("F0000041")
+    private String step;
+    /**
+     * 发票类型
+     */
+    @JsonProperty("F0000028")
+    private String type;
+    /**
+     * 发票金额
+     */
+    @JsonProperty("F0000029")
+    private BigDecimal invoiceAmount;
+    /**
+     * 发票税率
+     */
+    @JsonProperty("F0000030")
+    private BigDecimal invoiceRate;
+    /**
+     * 发票时间
+     */
+    @JsonProperty("F0000031")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime invoiceDateTime;
+    /**
+     * 备注
+     */
+    @JsonProperty("F0000044")
+    private String content;
+}

+ 67 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPaymentReceivePlanDO.java

@@ -0,0 +1,67 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.NaturalId;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 2:35 下午
+ */
+@Slf4j
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Entity(name = "CHUANYUN_PAYMENT_RECEIVE_PLAN")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunPaymentReceivePlanDO extends BasicSubDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789F2a010fe1818a4020b1ff5a33533f9e44";
+    /**
+     * 阶段
+     */
+    @JsonProperty("F0000034")
+    private String step;
+    /**
+     * 回款条件
+     */
+    @JsonProperty("F0000032")
+    private String receiveCondition;
+    /**
+     * 计划回款时间
+     */
+    @JsonProperty("F0000033")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime planDateTime;
+    /**
+     * 回款比例啊
+     */
+    @JsonProperty("F0000035")
+    private BigDecimal rate;
+    /**
+     * 回款金额
+     */
+    @JsonProperty("F0000036")
+    private BigDecimal receiveAmount;
+    /**
+     * 备注
+     */
+    @JsonProperty("F0000042")
+    private String content;
+}

+ 1 - 1
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunReimbursementDO.java

@@ -176,7 +176,7 @@ public class ChuanyunReimbursementDO extends BasicDO{
      * 报销明细
      */
     @JsonProperty("D001789F9bd83c8c4057448aa49e5758784dbfc1")
-    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
+    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.EAGER)
     private List<ChuanyunReimbursementDetailDO> detailList;
 
     /**

+ 166 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSaleContractDO.java

@@ -0,0 +1,166 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.OneToMany;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 11:43 上午
+ */
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_SALE_CONTRACT")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunSaleContractDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D0017890aeaad9526574422aa5e7403bf5400c3";
+
+    /**
+     * 合同名
+     */
+    @JsonProperty("F0000004")
+    private String contractName;
+    /**
+     * 合同编号
+     */
+    @JsonProperty("F0000001")
+    private String contractCode;
+    /**
+     * 项目Id
+     */
+    @JsonProperty("F0000020")
+    private String projectId;
+    /**
+     * 项目编码
+     */
+    @JsonProperty("F0000025")
+    private String projectCode;
+    /**
+     * 项目类型
+     */
+    @JsonProperty("F0000051")
+    private String projectType;
+    /**
+     * 签约公司Id
+     */
+    @JsonProperty("F0000002")
+    private String companyId;
+    /**
+     * 签约时间
+     */
+    @JsonProperty("F0000003")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime signedDateTime;
+    /**
+     * 客户Id
+     */
+    @JsonProperty("F0000027")
+    private String clientId;
+    /**
+     * 合同接收时间
+     */
+    @JsonProperty("F0000045")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime receivedDateTime;
+    /**
+     * 项目执行地
+     */
+    @JsonProperty("F0000028")
+    private String location;
+    /**
+     * 销售负责人Id
+     */
+    @JsonProperty("F0000043")
+    private String salesInChargeId;
+    /**
+     * 销售负责人名称
+     */
+    private String salesInChargeName;
+    /**
+     * 合同接收人Id
+     */
+    @JsonProperty("F0000044")
+    private String contractReceiverId;
+    /**
+     * 合同接受人姓名
+     */
+    private String contractReceiverName;
+    /**
+     * 业主Id
+     */
+    @JsonProperty("F0000029")
+    private String ownerId;
+    /**
+     * 业主行业
+     */
+    @JsonProperty("F0000024")
+    private String ownerIndustry;
+    /**
+     * 应用场景
+     */
+    @JsonProperty("F0000007")
+    private String scene;
+    /**
+     * 备注
+     */
+    @JsonProperty("F0000046")
+    private String content;
+    /**
+     * 合同类别
+     */
+    @JsonProperty("F0000005")
+    private String contractType;
+    /**
+     * 合同子类
+     */
+    @JsonProperty("F0000006")
+    private String contractSubType;
+    /**
+     * 合同总价
+     */
+    @JsonProperty("F0000021")
+    private BigDecimal totalAmount;
+    /**
+     * 不含税总价
+     */
+    @JsonProperty("F0000047")
+    private BigDecimal totalAmountWithoutTax;
+    /**
+     * 预估毛利
+     */
+    @JsonProperty("F0000048")
+    private BigDecimal grossProfit;
+    /**
+     * 预估毛利率
+     */
+    @JsonProperty("F0000049")
+    private BigDecimal grossProfitRate;
+
+    /**
+     * 销售合同明细
+     */
+    @JsonProperty("D001789Ffc834ddecbfe44b084795aa48e80bfcf")
+    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
+    private List<ChuanyunSaleContractDetailDO> chuanyunSaleContractDetailDOList;
+}

+ 58 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSaleContractDetailDO.java

@@ -0,0 +1,58 @@
+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;
+import java.math.BigDecimal;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 12:02 下午
+ */
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_SALE_CONTRACT_DETAIL")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunSaleContractDetailDO extends BasicSubDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789Ffc834ddecbfe44b084795aa48e80bfcf";
+    /**
+     * 产品名称
+     */
+    @JsonProperty("F0000010")
+    private String productName;
+    /**
+     * 规格型号
+     */
+    @JsonProperty("F0000011")
+    private String model;
+    /**
+     * 设备数量
+     */
+    @JsonProperty("F0000012")
+    private Integer number;
+    /**
+     * 总价
+     */
+    @JsonProperty("F0000013")
+    private BigDecimal price;
+    /**
+     * 税率
+     */
+    @JsonProperty("F0000015")
+    private BigDecimal rate;
+    /**
+     * 未税总价
+     */
+    @JsonProperty("F0000050")
+    private BigDecimal priceWithoutTax;
+}

+ 2 - 7
src/main/java/com/galaxis/manatee/manager/impl/DefaultChuanyunManagerImpl.java

@@ -25,12 +25,6 @@ import java.util.List;
 @Service
 public class DefaultChuanyunManagerImpl implements ChuanYunManager {
 
-    private final ObjectMapper objectMapper;
-
-    public DefaultChuanyunManagerImpl(ObjectMapper objectMapper) {
-        this.objectMapper = objectMapper;
-    }
-
     @Override
     public ChuanyunFindDTO find(String appCode, String actionName, String controller) {
         @Data
@@ -55,7 +49,7 @@ public class DefaultChuanyunManagerImpl implements ChuanYunManager {
     }
 
     @Override
-    public ChuanyunFindAllDTO findAll(String appCode, String actionName, String controller) {
+    public synchronized ChuanyunFindAllDTO findAll(String appCode, String actionName, String controller) {
         @Data
         @AllArgsConstructor
         class FindAll{
@@ -120,6 +114,7 @@ public class DefaultChuanyunManagerImpl implements ChuanYunManager {
                 this.filter = filter;
             }
         }
+        ObjectMapper objectMapper=new ObjectMapper();
         //构建请求体
         FindList findList=new FindList(schemaCode,objectMapper.writeValueAsString(filter));
         //请求客户端

+ 4 - 2
src/main/java/com/galaxis/manatee/service/ChuanyunBasicDataScheduledTask.java

@@ -1,4 +1,4 @@
-package com.galaxis.manatee.service;
+package com.galaxis.manatee.task;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -263,7 +263,9 @@ public class ChuanyunBasicDataScheduledTask {
                 //保存
                 result.forEach(chuanyunUserCompanyDO -> {
                     try {
-                        chuanyunUserCompanyDO.setUserId(chuanyunUserCompanyDO.getUser().getObjectId());
+                        if(chuanyunUserCompanyDO.getUser()!=null){
+                            chuanyunUserCompanyDO.setUserId(chuanyunUserCompanyDO.getUser().getObjectId());
+                        }
                     }catch (Exception exception){
                         log.warn(chuanyunUserCompanyDO+"");
                         log.warn(exception.getMessage());

+ 143 - 0
src/main/java/com/galaxis/manatee/task/ChuanyunFinancialScheduledTask.java

@@ -0,0 +1,143 @@
+package com.galaxis.manatee.task;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.galaxis.manatee.dao.*;
+import com.galaxis.manatee.entity.chuanyun.data.object.*;
+import com.galaxis.manatee.entity.chuanyun.dto.Filter;
+import com.galaxis.manatee.manager.ChuanYunManager;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 4:25 下午
+ */
+@Slf4j
+@Service
+public class ChuanyunFinancialScheduledTask {
+
+    private final Integer pageSize=20;
+    private final ChuanYunManager chuanYunManager;
+    private final ChuanyunReimbursementDao chuanyunReimbursementDao;
+    private final ChuanyunCompanyDao chuanyunCompanyDao;
+    private final ChuanyunSupplierDao chuanyunSupplierDao;
+    private final ChuanyunGroupProjectDao chuanyunGroupProjectDao;
+    private final ChuanyunUserCompanyDao chuanyunUserCompanyDao;
+    private final ChuanyunUserDao chuanyunUserDao;
+    private final ChuanyunCostDao chuanyunCostDao;
+    private final ChuanyunReimbursementSubjectDao chuanyunReimbursementSubjectDao;
+
+    public ChuanyunFinancialScheduledTask(ChuanYunManager chuanYunManager, ChuanyunReimbursementDao chuanyunReimbursementDao, ChuanyunCompanyDao chuanyunCompanyDao, ChuanyunSupplierDao chuanyunSupplierDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunUserDao chuanyunUserDao, ChuanyunCostDao chuanyunCostDao, ChuanyunReimbursementSubjectDao chuanyunReimbursementSubjectDao) {
+        this.chuanYunManager = chuanYunManager;
+        this.chuanyunReimbursementDao = chuanyunReimbursementDao;
+        this.chuanyunCompanyDao = chuanyunCompanyDao;
+        this.chuanyunSupplierDao = chuanyunSupplierDao;
+        this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
+        this.chuanyunUserCompanyDao = chuanyunUserCompanyDao;
+        this.chuanyunUserDao = chuanyunUserDao;
+        this.chuanyunCostDao = chuanyunCostDao;
+        this.chuanyunReimbursementSubjectDao = chuanyunReimbursementSubjectDao;
+    }
+
+    /**
+     * 将报销信息从氚云中同步
+     */
+    @Scheduled(fixedDelay = 27600000L,initialDelay = 10000L)
+    private void reimbursementInformationSync(){
+        getReimbursementFromChuanyun();
+    }
+
+    /**
+     * 获取报销单
+     */
+    protected void getReimbursementFromChuanyun(){
+        var objectMapper=new ObjectMapper();
+        var start=0;
+        var totalCount=0L;
+        var flag=true;
+        List<String> matchersString=new ArrayList<>();
+        matchersString.add("Status_2,1");
+        while (flag){
+            try {
+                //从氚云查询数据
+                var filter= Filter.instance(start,start+pageSize,true,Filter.AND,matchersString);
+                var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunReimbursementDO.SCHEMA_CODE,filter);
+                if(chuanyunFindAllResponse.getReturnData()==null){
+                    flag=false;
+                    continue;
+                }
+                if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
+                    start+=pageSize;
+                }else{
+                    flag=false;
+                }
+                //转化为POJO
+                List<ChuanyunReimbursementDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                //获取项目总数
+                totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
+                //保存
+                result.removeIf(chuanyunReimbursementDO->chuanyunReimbursementDao.findById(chuanyunReimbursementDO.getObjectId()).isPresent());
+                result.forEach(chuanyunReimbursementDO -> {
+                    //将报销单中关联信息的id转化为具体的数据
+                    try{
+                        ChuanyunCompanyDO chuanyunCompanyDO=chuanyunCompanyDao.findById(chuanyunReimbursementDO.getBeneficiaryId()).orElseThrow();
+                        if("对公".equals(chuanyunReimbursementDO.getPrivateOrPublic())&&!StringUtils.isEmpty(chuanyunReimbursementDO.getSupplierId())){
+                            ChuanyunSupplierDO chuanyunSupplierDO=chuanyunSupplierDao.findById(chuanyunReimbursementDO.getSupplierId()).orElseThrow();
+                            chuanyunReimbursementDO.setSupplierCode(chuanyunSupplierDO.getSupplierCode());
+                        }
+                        StringBuilder chuanyunGroupProjectCode=new StringBuilder();
+                        if(!StringUtils.isEmpty(chuanyunReimbursementDO.getGroupProjectId())){
+                            ChuanyunGroupProjectDO chuanyunGroupProjectDO=chuanyunGroupProjectDao.findById(chuanyunReimbursementDO.getGroupProjectId()).orElseThrow();
+                            chuanyunReimbursementDO.setGroupProjectCode(chuanyunGroupProjectDO.getProjectCode());
+                            chuanyunGroupProjectCode.append(chuanyunGroupProjectDO.getProjectCode());
+                        }
+                        chuanyunReimbursementDO.setReimburseUserId(chuanyunReimbursementDO.getReimburseUserObject().getObjectId());
+                        ChuanyunUserDO chuanyunUserDO=chuanyunUserDao.findById(chuanyunReimbursementDO.getReimburseUserId()).orElseThrow();
+                        List<ChuanyunUserCompanyDO> userCompanyList=chuanyunUserCompanyDao.findAllByUserId(chuanyunReimbursementDO.getReimburseUserId());
+                        if(userCompanyList.size()!=1){
+                            log.error(chuanyunUserDO.getName()+chuanyunReimbursementDO.getReimburseUserId());
+                        }else{
+                            ChuanyunUserCompanyDO chuanyunUserCompany=userCompanyList.get(0);
+                            chuanyunReimbursementDO.setReimburseUserCostCode(chuanyunUserCompany.getCostCode());
+                        }
+                        ChuanyunCostDO chuanyunCostDO=chuanyunCostDao.findById(chuanyunReimbursementDO.getBeneficiaryCostId()).orElseThrow();
+                        chuanyunReimbursementDO.setBusinessDate(chuanyunReimbursementDO.getCreatedTime());
+                        chuanyunReimbursementDO.setReimburseUserCompanyCode(chuanyunCompanyDO.getErpCode());
+                        chuanyunReimbursementDO.setReimburseUserCode(chuanyunUserDO.getEmployeeNumber());
+                        chuanyunReimbursementDO.setBeneficiaryBankCode(chuanyunCompanyDO.getBankCode());
+                        chuanyunReimbursementDO.setBeneficiaryBankAccount(chuanyunCompanyDO.getBankAccount());
+                        chuanyunReimbursementDO.setBeneficiaryCostCode(chuanyunCostDO.getCostCode());
+                        chuanyunReimbursementDO.setCurrency("C001");
+                        chuanyunReimbursementDO.setExchangeRate(new BigDecimal("1"));
+                        chuanyunReimbursementDO.setSettlementMethod("101");
+                        chuanyunReimbursementDO.setErpFlag(0);
+                        chuanyunReimbursementDO.getDetailList().forEach(chuanyunReimbursementDetailDO -> {
+                            ChuanyunReimbursementSubjectDO chuanyunReimbursementSubjectDO=chuanyunReimbursementSubjectDao.findById(chuanyunReimbursementDetailDO.getReimburseSubjectId()).orElseThrow();
+                            chuanyunReimbursementDetailDO.setReimburseSubjectCode(chuanyunReimbursementSubjectDO.getSubjectCode());
+                            chuanyunReimbursementDetailDO.setReimburseSubjectName(chuanyunReimbursementSubjectDO.getSubjectName());
+                            chuanyunReimbursementDetailDO.setReimburseUserCompanyCode(chuanyunCompanyDO.getErpCode());
+                            chuanyunReimbursementDetailDO.setGroupProjectCode(chuanyunGroupProjectCode.toString());
+                            chuanyunReimbursementDetailDO.setReimburseUserCostCode(chuanyunCostDO.getCostCode());
+                        });
+                    }catch (Exception e){
+                        log.warn(e.getMessage());
+                        e.printStackTrace();
+                    }
+                });
+                chuanyunReimbursementDao.saveAll(result);
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+        log.info("报销信息保存保存"+totalCount);
+    }
+}

+ 112 - 0
src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java

@@ -0,0 +1,112 @@
+package com.galaxis.manatee.task;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.galaxis.manatee.dao.ChuanyunPaymentReceiveDao;
+import com.galaxis.manatee.dao.ChuanyunSaleContractDao;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPaymentReceiveDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSaleContractDO;
+import com.galaxis.manatee.entity.chuanyun.dto.Filter;
+import com.galaxis.manatee.manager.ChuanYunManager;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/5/1 11:37 上午
+ */
+@Slf4j
+@Service
+public class ChuanyunProjectScheduledTask {
+
+    private final Integer pageSize=20; final ObjectMapper objectMapper=new ObjectMapper();
+    private final ChuanYunManager chuanYunManager;
+    private final ChuanyunSaleContractDao chuanyunSaleContractDao;
+    private final ChuanyunPaymentReceiveDao chuanyunPaymentReceiveDao;
+
+    public ChuanyunProjectScheduledTask(ChuanYunManager chuanYunManager, ChuanyunSaleContractDao chuanyunSaleContractDao, ChuanyunPaymentReceiveDao chuanyunPaymentReceiveDao) {
+        this.chuanYunManager = chuanYunManager;
+        this.chuanyunSaleContractDao = chuanyunSaleContractDao;
+        this.chuanyunPaymentReceiveDao = chuanyunPaymentReceiveDao;
+    }
+
+    /**
+     * 更新销售合同数据
+     */
+    @Scheduled(fixedDelay = 3600000L)
+    private void getSaleContractFromChuanyun(){
+        var start=0;
+        var totalCount=0L;
+        var flag=true;
+        while (flag){
+            try {
+                //从氚云查询数据
+                var filter= Filter.instance(start,start+pageSize,true);
+                var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunSaleContractDO.SCHEMA_CODE,filter);
+                if(chuanyunFindAllResponse.getReturnData()==null){
+                    flag=false;
+                    continue;
+                }
+                if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
+                    start+=pageSize;
+                }else{
+                    flag=false;
+                }
+                //转化为POJO
+                List<ChuanyunSaleContractDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                //获取项目总数
+                totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
+                //保存
+                chuanyunSaleContractDao.saveAll(result);
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+        log.info("项目销售合同信息保存保存"+totalCount);
+    }
+
+    /**
+     * 更新销售合同回款数据
+     */
+    @Scheduled(fixedDelay = 3600000L)
+    private void getSaleContractPaymentReceiveFromChuanyun(){
+        var start=0;
+        var totalCount=0L;
+        var flag=true;
+        while (flag){
+            try {
+                //从氚云查询数据
+                var filter= Filter.instance(start,start+pageSize,true);
+                var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunPaymentReceiveDO.SCHEMA_CODE,filter);
+                if(chuanyunFindAllResponse.getReturnData()==null){
+                    flag=false;
+                    continue;
+                }
+                if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
+                    start+=pageSize;
+                }else{
+                    flag=false;
+                }
+                //转化为POJO
+                List<ChuanyunPaymentReceiveDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                result.forEach(chuanyunPaymentReceiveDO -> {
+                    var tmp=chuanyunPaymentReceiveDao.findById(chuanyunPaymentReceiveDO.getObjectId());
+                    tmp.ifPresent(chuanyunPaymentReceiveDao::delete);
+                });
+                //获取项目总数
+                totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
+                //保存
+                chuanyunPaymentReceiveDao.saveAll(result);
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+        log.info("项目销售合同回款信息保存保存"+totalCount);
+    }
+}

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 4 - 114
src/main/java/com/galaxis/manatee/service/ChuanyunScheduledTask.java


+ 4 - 3
src/main/java/com/galaxis/manatee/service/U9ScheduledTask.java

@@ -1,4 +1,4 @@
-package com.galaxis.manatee.service;
+package com.galaxis.manatee.task;
 
 import com.galaxis.capsule.dto.ChuanyunReimbursementDTO;
 import com.galaxis.manatee.dao.ChuanyunProjectDao;
@@ -45,7 +45,7 @@ public class U9ScheduledTask {
     /**
      *
      */
-    @Scheduled(fixedDelay = 43200000L)
+//    @Scheduled(fixedDelay = 43200000L)
     private void reimbursementInformationSync(){
         putReimbursementToClaw();
     }
@@ -74,7 +74,8 @@ public class U9ScheduledTask {
                 try{
                     sendReimbursement(chuanyunReimbursementDO);
                 }catch (Exception exception){
-                    log.error("保存到claw失败"+chuanyunReimbursementDO.toString());
+                    exception.printStackTrace();
+                    log.error("保存到claw失败"+chuanyunReimbursementDO);
                 }
             });
             page++;