Ver Fonte

售后项目导入

zzx há 2 anos atrás
pai
commit
17af7e06f4

+ 77 - 49
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunBuildProject.java

@@ -2,86 +2,114 @@ 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.capsule.bo.ChuanyunObject;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
+import javax.persistence.Transient;
+import java.time.LocalDateTime;
 import java.util.List;
 
 @Data
 @JsonIgnoreProperties(ignoreUnknown = true)
 public class ChuanyunBuildProject extends BasicDO {
-    /**
-     * 表名
-     */
+    //对应氚云中的项目立项
     public static final String SCHEMA_CODE = "D00178955900d6e8f104217b7ff8f7d36b34de1";
 
-    /**
-     * 项目编号
-     */
-    @JsonProperty(value = "F0000003")
-    private String projectCode;
+    //申请人
+    @JsonProperty(value = "F0000059")
+    private String proposer;
+
+    //申请日期
+    @JsonProperty(value = "F0000017")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    @DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss")
+    private LocalDateTime applicationDate;
+
+    //申请部门
+    @JsonProperty(value = "F0000060")
+    private String applicationDivision;
+
+    //立项日期
+    @JsonProperty(value = "F0000061")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    @DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss")
+    private LocalDateTime setUpDate;
 
-    /**
-     * 项目名称
-     */
+    //项目类型
+    @JsonProperty("F0000016")
+    private String projectType;
+
+    //项目名称
     @JsonProperty(value = "F0000004")
     private String projectName;
 
-    /**
-     * 签约公司
-     */
+    //项目编号
+    @JsonProperty(value = "F0000003")
+    private String projectCode;
+
+    //项目分类
+    @JsonProperty("F0000005")
+    private String projectClassify;
+
+    //受益部门
+    @JsonProperty("F0000063")
+    private String benefitingDepartment;
+
+    //实施项目经理
+    @JsonProperty("F0000120")
+    private String implementationManager;
+
+    //签约公司
     @JsonProperty(value = "F0000051")
     private String signingCompany;
 
-    /**
-     * 客户名称
-     */
+    //客户名称
     @JsonProperty(value = "F0000039")
     private String customerName;
-    /**
-     * 业主名称
-     */
+
+    //业主名称
     @JsonProperty(value = "F0000040")
     private String nameOfOwner;
 
-    /**
-     * 项目类型
-     */
-    @JsonProperty("F0000016")
-    private String projectType;
+    //主要交付内容
+    @JsonProperty(value = "F0000064")
+    private String mainContents;
+
+    //项目经理
+    @JsonProperty(value = "F0000037Object")
+    @Transient
+    private ChuanyunObject projectManager;
+
+    //项目总监
+    @JsonProperty(value = "F0000007Object")
+    @Transient
+    private ChuanyunObject projectDirector;
+
+    //销售负责人
+    @JsonProperty(value = "F0000011Object")
+    @Transient
+    private ChuanyunObject SalesDirector;
 
-    /**
-     * 项目经理
-     */
-    @JsonProperty(value = "F0000037")
-    private String projectManager;
-
-    /**
-     * 销售负责人
-     */
-    @JsonProperty(value = "F0000011")
-    private String SalesDirector;
-
-    /**
-     * 系统免费维保期
-     */
+    //系统免费维保期
     @JsonProperty(value = "F0000104")
     private Integer systemWarranty;
 
-    /**
-     * 设备免费维保期
-     */
+    //设备免费维保期
     @JsonProperty(value = "F0000105")
     private Integer deviceWarranty;
 
-    /**
-     * 维保交付子表
-     */
+    //维保-交付子表
     @JsonProperty(value = "D001789F28649f6f044a4224b5c68aa821918f50")
     private List<ChuanyunMaintenanceProDO> maintenanceProList;
 
-    /**
-     * 维保周期子表
-     */
+    //维保-周期子表
     @JsonProperty(value = "D001789F3ffb030bffbf45a78c830cd7da9d59c9")
     private List<ChuanyunMaintenanceCycleDO> maintenanceCycleList;
 }

+ 3 - 2
src/test/java/com/galaxis/manatee/Test/buildProjectTest/BuildProjectTest.java

@@ -137,6 +137,7 @@ public class BuildProjectTest {
         bpList.forEach(chuanyunBuildProject -> {
             try {
                 Thread.sleep(200);
+
                 ProjectSubAccount projectSubAccount = new ProjectSubAccount();
                 projectSubAccount.setProjectType("实施");
                 projectSubAccount.setImplProjectName(chuanyunBuildProject.getProjectName());
@@ -144,8 +145,8 @@ public class BuildProjectTest {
                 projectSubAccount.setSigningCompany(chuanyunBuildProject.getSigningCompany());
                 projectSubAccount.setCustomerName(chuanyunBuildProject.getCustomerName());
                 projectSubAccount.setNameOfOwner(chuanyunBuildProject.getNameOfOwner());
-                projectSubAccount.setProjectManager(chuanyunBuildProject.getProjectManager());
-                projectSubAccount.setSalesDirector(chuanyunBuildProject.getSalesDirector());
+//                projectSubAccount.setProjectManager(chuanyunBuildProject.getProjectManager());
+//                projectSubAccount.setSalesDirector(chuanyunBuildProject.getSalesDirector());
                 projectSubAccount.setSystemWarranty(chuanyunBuildProject.getSystemWarranty());
                 projectSubAccount.setDeviceWarranty(chuanyunBuildProject.getDeviceWarranty());
 

+ 60 - 41
src/test/java/com/galaxis/manatee/Test/zzx/ProjectTest1.java

@@ -11,6 +11,7 @@ import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunMaintenanceCycleD
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunMaintenanceProDO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunFindAllBizDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.Filter;
+import com.galaxis.manatee.exception.BigSizeException;
 import com.galaxis.manatee.manager.ChuanYunManager;
 import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
 import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
@@ -39,7 +40,7 @@ public class ProjectTest1 {
         var filter = Filter.instance(0, 400, true, Filter.OR, m);
         ChuanyunFindAllBizDTO<Object> chuanyunFindAllResponse = null;
         try {
-            chuanyunFindAllResponse = chuanYunManager.findAll("D001789b5ed9b2567ad41368f496cce76e5a32e", filter);
+            chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunBuildProject.SCHEMA_CODE, filter);
         } catch (JsonProcessingException e) {
             e.printStackTrace();
         }
@@ -49,31 +50,61 @@ public class ProjectTest1 {
         }
 
         List<Object> bizObjectArray = chuanyunFindAllResponse.getReturnData().getBizObjectArray();
-//        ObjectMapper objectMapper = new ObjectMapper();
-//        List<ChuanyunBuildProject> bpList = objectMapper.convertValue(bizObjectArray, new TypeReference<>() {
-//        });
-
-        log.info("{bizObjectArray => {}}", bizObjectArray);
-//        bpList.forEach(chuanyunBuildProject -> {
-
-//            try {
-//                Thread.sleep(200);  //避免同步数据时因为氚云的限制而导致失败
-//
-//                Aftermarket aftermarket = new Aftermarket();
-//                if (chuanyunBuildProject.getProjectType() == "维保") {
-//
-//                } else { //售后
-//
-//                }
-//            } catch (Exception e) {
-//                e.printStackTrace();
-//            }
-//        });
-    }
-
-    @Data
-    static class NeedSync {     //售后项目资料(保留)的实体类
-
+        ObjectMapper objectMapper = new ObjectMapper();
+        List<ChuanyunBuildProject> bpList = objectMapper.convertValue(bizObjectArray, new TypeReference<>() {
+        });
+
+        for (int i = 0; i < bpList.size(); i++) {
+            if (i > 1) {
+                return;
+            }
+
+            ChuanyunBuildProject chuanyunBuildProject = bpList.get(i);
+             log.info("{chuanyunBuildProject => {}}", chuanyunBuildProject);
+
+            try {
+                Thread.sleep(200);  //避免同步数据时因为氚云的限制而导致失败
+
+                Aftermarket aftermarket = new Aftermarket();
+                aftermarket.setProjectName(chuanyunBuildProject.getProjectName());
+                aftermarket.setProjectNo(chuanyunBuildProject.getProjectCode());
+                aftermarket.setCustomName(chuanyunBuildProject.getCustomerName());
+                aftermarket.setAfterProType(chuanyunBuildProject.getProjectType());
+                aftermarket.setProClassify(chuanyunBuildProject.getProjectClassify());
+
+                if (chuanyunBuildProject.getProjectType() == "维保") {    //DW(维保)
+                    aftermarket.setMaintenanceProManager(chuanyunBuildProject.getProjectManager().getObjectId());
+                    aftermarket.setMaintenanceProDirector(chuanyunBuildProject.getProjectDirector().getObjectId());
+                    aftermarket.setMaintenanceSaleChargeMan(chuanyunBuildProject.getSalesDirector().getObjectId());
+
+                    aftermarket.setImplProManager(chuanyunBuildProject.getImplementationManager());
+                    aftermarket.setMaintenanceProList(chuanyunBuildProject.getMaintenanceProList());
+                    aftermarket.setMaintenanceCycleList(chuanyunBuildProject.getMaintenanceCycleList());
+                } else { //AS(售后)
+                    aftermarket.setAfterSaleManager(chuanyunBuildProject.getProjectManager().getObjectId());
+                    aftermarket.setAfterSaleDirector(chuanyunBuildProject.getProjectDirector().getObjectId());
+                    aftermarket.setAfterSaleChargeMan(chuanyunBuildProject.getSalesDirector().getObjectId());
+
+                    aftermarket.setDeliverManager(chuanyunBuildProject.getMainContents());
+                    aftermarket.setSysMaintenanceMonth(chuanyunBuildProject.getSystemWarranty());
+                    aftermarket.setDeviceMaintenanceMonth(chuanyunBuildProject.getDeviceWarranty());
+                    aftermarket.setSetUpDate(chuanyunBuildProject.getSetUpDate());
+                }
+
+                log.info("{aftermarket => {}}", aftermarket);
+
+                String json = null;
+                try {
+                    json = objectMapper.writeValueAsString(aftermarket);
+                    // log.info("{json => {}}", json);
+                    chuanYunManager.save("D001789Srquo86tpfq1iuuqww4heu2w73", json, true);
+                } catch (JsonProcessingException | BigSizeException e) {
+                    e.printStackTrace();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
     }
 
     @Data
@@ -117,7 +148,7 @@ public class ProjectTest1 {
 
         @JsonProperty("D001789Fe75a894fabe3490ab47812cb7d79fd25")
         @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
-        private List<ChuanyunMaintenanceCycleDO> MaintenanceCycleList;      //维保周期(子表)(仅维保项目有)
+        private List<ChuanyunMaintenanceCycleDO> maintenanceCycleList;      //维保周期(子表)(仅维保项目有)
 
         @JsonProperty("F0000123")
         private String deliverManager;                                      //主要交付内容(仅售后项目有)
@@ -137,23 +168,11 @@ public class ProjectTest1 {
         @JsonProperty("F0000112")
         private String afterSaleChargeMan;                                  //销售负责人(仅针对售后项目)
 
-        @JsonProperty("F0000088")
-        @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
-        @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
-        @DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss")
-        private LocalDateTime startProDate;                                 //项目启动实际日期(仅售后项目有)
-
-        @JsonProperty("F0000089")
-        @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
-        @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
-        @DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss")
-        private LocalDateTime endProDate;                                   //终验收实际日期(仅售后项目有)
-
         @JsonProperty("F0000125")
-        private String sysMaintenanceMonth;                                 //系统免费维保期(仅针对售后项目)
+        private Integer sysMaintenanceMonth;                                //系统免费维保期(仅针对售后项目)
 
         @JsonProperty("F0000128")
-        private String deviceMaintenanceMonth;                              //设备免费维保期(仅针对售后项目)
+        private Integer deviceMaintenanceMonth;                             //设备免费维保期(仅针对售后项目)
     }
 }