浏览代码

1.新增供应商信息

WoNiu 4 年之前
父节点
当前提交
21a3b27d9a

+ 11 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunSupplierDTO.java

@@ -0,0 +1,11 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+import lombok.Data;
+
+@Data
+public class ChuanyunSupplierDTO {
+
+    private String code;
+
+    private String name;
+}

+ 9 - 0
src/main/java/com/galaxis/manatee/manager/ClawFeign.java

@@ -7,6 +7,7 @@ import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunReimbursementDO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunLaborCostDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunProjectCashFlowDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunPurCostDTO;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSupplierDTO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -56,6 +57,14 @@ public interface ClawFeign {
     PageDTO<ChuanyunPurCostDTO> findChuanyunPurCost(@RequestParam Map<String,String> map);
 
     /**
+     * 获取供应商
+     * @param map
+     * @return
+     */
+    @GetMapping("/supplier/findAllByParameters")
+    PageDTO<ChuanyunSupplierDTO> findChuanyunSupplier(@RequestParam Map<String,String> map);
+
+    /**
      * 查询人力成本
      * @param map
      * @return

+ 80 - 2
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -105,7 +105,6 @@ public class ChuanyunBasicDataScheduledTask {
      */
     @Scheduled(fixedDelay = 3600000L)
     private void getDataFromChuanyun() {
-        saveBudgetStatistics();
         //钉钉请假
         saveAskForLeave();
         //专项费用分摊
@@ -134,7 +133,10 @@ public class ChuanyunBasicDataScheduledTask {
         savePurCost();
         //项目收付款
         saveCashFlow();
-
+        //项目预决算
+        saveBudgetStatistics();
+        //新增供应商信息
+        saveSupplier();
     }
 
     /**
@@ -360,6 +362,9 @@ public class ChuanyunBasicDataScheduledTask {
         }
     }
 
+    /**
+     * 更新项目预决算统计
+     */
     private void saveBudgetStatistics() {
         List<ChuanyunBudgetStatisticsDO> list = chuanyunBudgetStatisticsDao.getTotalByProject();
         list.forEach(chuanyunBudgetStatisticsDO -> {
@@ -439,6 +444,53 @@ public class ChuanyunBasicDataScheduledTask {
         });
     }
 
+    private void saveSupplier() {
+        var objectMapper=new ObjectMapper();
+        var page = 1;
+        var size = 20;
+        var flag=true;
+        while (flag) {
+            Map<String,String> map=new HashMap<>(1);
+            map.put("page",String.valueOf(page));
+            map.put("size",String.valueOf(size));
+            //获取供应商信息
+            PageDTO<ChuanyunSupplierDTO> pageInfo=clawFeign.findChuanyunSupplier(map);
+            if (page<=pageInfo.getTotalPages()){
+                page += 1;
+            }else {
+                flag = false;
+                break;
+            }
+            List<ChuanyunSupplierDTO> list = pageInfo.getContent();
+            list.forEach(chuanyunSupplierDTO -> {
+                SupplierDTO supplierDTO = new SupplierDTO(chuanyunSupplierDTO);
+                try {
+                    var supplierString = objectMapper.writeValueAsString(supplierDTO);
+                    ChuanyunSaveDTO chuanyunSaveDTO;
+                    //根据编码判断供应商是否存在
+                    List<String> macthers = new ArrayList<>();
+                    macthers.add("F0000002_2,"+chuanyunSupplierDTO.getCode());
+                    var filter= Filter.instance(0,1,true,"And",macthers);
+                    var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunSupplierDO.SCHEMA_CODE,filter);
+                    if (chuanyunFindAllResponse.getReturnData() == null) {
+                        chuanyunSaveDTO=chuanYunManager.save(ChuanyunSupplierDO.SCHEMA_CODE,supplierString,true);
+                    }else {
+                        List<ChuanyunSupplierDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                        chuanyunSaveDTO=chuanYunManager.update(ChuanyunSupplierDO.SCHEMA_CODE,result.get(0).getObjectId(),supplierString);
+                    }
+                    if(chuanyunSaveDTO.getSuccessful()){
+                        log.info("新增供应商信息成功");
+                    }else{
+                        log.warn("新增供应商信息失败");
+                    }
+                } catch (JsonProcessingException | BigSizeException e) {
+                    e.printStackTrace();
+                }
+
+            });
+        }
+    }
+
     /**
      * 更新项目物料成本
      */
@@ -1122,6 +1174,32 @@ public class ChuanyunBasicDataScheduledTask {
     }
 
     @Data
+    class SupplierDTO{
+        /**
+         * 供应商名称
+         */
+        @JsonProperty("F0000001")
+        private String supplierName;
+
+        /**
+         * U9代码
+         */
+        @JsonProperty("F0000002")
+        private String supplierCode;
+
+        public SupplierDTO(ChuanyunSupplierDTO chuanyunSupplierDTO) {
+            if (null!=chuanyunSupplierDTO){
+                if (null!=chuanyunSupplierDTO.getCode()){
+                    this.supplierCode=chuanyunSupplierDTO.getCode();
+                }
+                if (null!=chuanyunSupplierDTO.getName()){
+                    this.supplierName=chuanyunSupplierDTO.getName();
+                }
+            }
+        }
+    }
+
+    @Data
     class PurCostDTO {
         @JsonProperty("F0000001")
         private String projectcode;