WoNiu 4 лет назад
Родитель
Сommit
84e693f1f7

+ 46 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSubLaborCostDO.java

@@ -0,0 +1,46 @@
+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.entity.chuanyun.data.object.BasicDO;
+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.Entity;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_SUB_LABORCOST")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunSubLaborCostDO extends BasicDO {
+
+    public static final String SCHEMA_CODE ="D001789Syexg3kma26vetik4ggte00nc0";
+
+    @JsonProperty("F0000005")
+    private String projectCode;
+
+    @JsonProperty("F0000016")
+    private String subProjectCode;
+
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    @JsonProperty("F0000002")
+    private LocalDateTime logDate;
+
+    @JsonProperty("F0000017")
+    private String department;
+
+    @JsonProperty("F0000003")
+    private BigDecimal amount;
+
+    @JsonProperty("F0000004")
+    private String dataType;
+}

+ 15 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunSubLaborCostDTO.java

@@ -0,0 +1,15 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class ChuanyunSubLaborCostDTO {
+
+    private ChuanyunSubLaborCostPrimaryKey chuanyunSubLaborCostPrimaryKey;
+
+    private String projectcode;
+
+    private BigDecimal costamount;
+}

+ 23 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunSubLaborCostPrimaryKey.java

@@ -0,0 +1,23 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import lombok.Data;
+
+import javax.persistence.Embeddable;
+import java.time.LocalDateTime;
+
+@Embeddable
+@Data
+public class ChuanyunSubLaborCostPrimaryKey {
+
+    protected String subprojectcode;
+
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    protected LocalDateTime period;
+
+    protected String department;
+}

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

@@ -72,6 +72,14 @@ public interface ClawFeign {
     PageDTO<ChuanyunLaborCostDTO> findChuanyunLaborCost(@RequestParam Map<String,String> map);
 
     /**
+     * 查询子项目人力成本
+     * @param map
+     * @return
+     */
+    @GetMapping("/sublaborcost/findAllByParameters")
+    PageDTO<ChuanyunSubLaborCostDTO> findChuanyunSubLaborCost(@RequestParam Map<String,String> map);
+
+    /**
      * 查询设备配置信息
      * @param map
      * @return

+ 1 - 1
src/main/java/com/galaxis/manatee/service/DataArcherService.java

@@ -103,7 +103,7 @@ public class DataArcherService {
             }
         } catch (Exception e) {
             e.printStackTrace();
-            log.warn("更新标准工时异常" + chuanyunWeekMemberHourDTO);
+            log.warn("更新标准工时异常" + chuanyunWeekMemberHourDTO);
         }
     }
 

+ 119 - 10
src/main/java/com/galaxis/manatee/task/U9InfoTask.java

@@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.galaxis.capsule.dto.PageDTO;
 import com.galaxis.manatee.dao.*;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSubLaborCostDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.*;
 import com.galaxis.manatee.entity.chuanyun.dto.*;
 import com.galaxis.manatee.exception.BigSizeException;
@@ -60,6 +61,7 @@ public class U9InfoTask {
         savePurCost();
         saveCashFlow();
         saveLaborCost();
+        saveSubLaborCost();
         saveBudgetStatistics();
         savePurContract();
         saveSalesContract();
@@ -222,8 +224,8 @@ public class U9InfoTask {
     private void saveSalesContract(){
         log.info("开始更新销售合同管理");
         var objectMapper=new ObjectMapper();
-        var page = 1;
-        var size = 20;
+        var page = 2;
+        var size = 100;
         var flag=true;
         while (flag) {
             Map<String,String> map=new HashMap<>(1);
@@ -240,13 +242,17 @@ public class U9InfoTask {
             list.forEach(chuanyunSalesContractDTO -> {
                 try {
                     if (!StringUtils.isEmpty(chuanyunSalesContractDTO.getOrgname())){
-                        chuanyunSalesContractDTO.setOrgname(chuanyunCompanyDao.findByCompanyName(chuanyunSalesContractDTO.getOrgname()).getObjectId());
+                        if (chuanyunCompanyDao.findByCompanyName(chuanyunSalesContractDTO.getOrgname())!=null){
+                            chuanyunSalesContractDTO.setOrgname(chuanyunCompanyDao.findByCompanyName(chuanyunSalesContractDTO.getOrgname()).getObjectId());
+                        }
                     }
                     if (chuanyunClientDao.findByClientCode(chuanyunSalesContractDTO.getCustname())!=null){
                         chuanyunSalesContractDTO.setCustname(chuanyunClientDao.findByClientCode(chuanyunSalesContractDTO.getCustname()).getObjectId());
                     }
                     if (!StringUtils.isEmpty(chuanyunSalesContractDTO.getCreatedby())){
-                        chuanyunSalesContractDTO.setCreatedby(chuanyunUserDao.findByName(chuanyunSalesContractDTO.getCreatedby()).getObjectId());
+                        if (chuanyunUserDao.findByName(chuanyunSalesContractDTO.getCreatedby())!=null){
+                            chuanyunSalesContractDTO.setCreatedby(chuanyunUserDao.findByName(chuanyunSalesContractDTO.getCreatedby()).getObjectId());
+                        }
                     }
                     SalesContractDTO salesContractDTO = new SalesContractDTO(chuanyunSalesContractDTO);
                     salesContractDTO.setContractStatus("已完结");
@@ -279,18 +285,22 @@ public class U9InfoTask {
                     List<String> macthers = new ArrayList<>();
                     macthers.add("F0000001_2,"+chuanyunSalesContractDTO.getDocno());
                     macthers.add("F0000025_2,"+chuanyunSalesContractDTO.getProjectcode());
-                    var filter= Filter.instance(0,1,true,"And",macthers);
+                    var filter= Filter.instance(0,Integer.MAX_VALUE,true,"And",macthers);
                     var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunSaleContractDO.SCHEMA_CODE,filter);
                     ChuanyunSaveDTO chuanyunSaveDTO;
                     if (chuanyunFindAllResponse.getReturnData() != null) {
                         List<ChuanyunSaleContractDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                        chuanyunSaveDTO=chuanYunManager.delete(ChuanyunSaleContractDO.SCHEMA_CODE,result.get(0).getObjectId());
+                        for(ChuanyunSaleContractDO chuanyunSaleContractDO : result){
+                            chuanyunSaveDTO=chuanYunManager.delete(ChuanyunSaleContractDO.SCHEMA_CODE,chuanyunSaleContractDO.getObjectId());
+                        }
                     }
                     chuanyunSaveDTO =chuanYunManager.save(ChuanyunSaleContractDO.SCHEMA_CODE,purcostString,true);
                     if(chuanyunSaveDTO.getSuccessful()){
-//                        log.info("新增销售合同管理成功");
+                        log.info("新增销售合同管理成功");
                     }else{
                         log.warn("新增销售合同管理失败");
+                        log.warn(chuanyunSaveDTO.getErrorMessage());
+                        log.warn(purcostString);
                     }
                     } catch (JsonProcessingException | BigSizeException e) {
                         e.printStackTrace();
@@ -357,18 +367,22 @@ public class U9InfoTask {
                             //根据合同号新增回款明细
                             List<String> macthers = new ArrayList<>();
                             macthers.add("F0000002_2,"+chuanyunSaleContractDO.getContractCode());
-                            var newfilter= Filter.instance(0,1,true,"And",macthers);
+                            var newfilter= Filter.instance(0,Integer.MAX_VALUE,true,"And",macthers);
                             var newchuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunPaymentReceiveDO.SCHEMA_CODE,newfilter);
                             ChuanyunSaveDTO chuanyunSaveDTO;
                             if (newchuanyunFindAllResponse.getReturnData() != null) {
                                 List<ChuanyunPaymentReceiveDO> receiveDOSresult=objectMapper.convertValue(newchuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
-                                chuanyunSaveDTO=chuanYunManager.delete(ChuanyunPaymentReceiveDO.SCHEMA_CODE,receiveDOSresult.get(0).getObjectId());
+                                for(ChuanyunPaymentReceiveDO chuanyunPaymentReceiveDO : receiveDOSresult){
+                                    chuanyunSaveDTO=chuanYunManager.delete(ChuanyunPaymentReceiveDO.SCHEMA_CODE,chuanyunPaymentReceiveDO.getObjectId());
+                                }
                             }
                             chuanyunSaveDTO =chuanYunManager.save(ChuanyunPaymentReceiveDO.SCHEMA_CODE,purcostString,true);
                             if(chuanyunSaveDTO.getSuccessful()){
-//                                log.info("新增销售合同汇款明细成功");
+                                log.info("新增销售合同汇款明细成功");
                             }else{
                                 log.warn("新增销售合同汇款明细失败");
+                                log.warn(chuanyunSaveDTO.getErrorMessage());
+                                log.warn(purcostString);
                             }
                         } catch (JsonProcessingException | BigSizeException e) {
                             e.printStackTrace();
@@ -557,6 +571,58 @@ public class U9InfoTask {
     }
 
     /**
+     * 更新子项目人力成本
+     */
+    private void saveSubLaborCost(){
+        log.info("开始更新子项目人力成本");
+        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<ChuanyunSubLaborCostDTO> pageInfo = clawFeign.findChuanyunSubLaborCost(map);
+            if (page<=pageInfo.getTotalPages()){
+                page += 1;
+            }else {
+                flag = false;
+                break;
+            }
+            List<ChuanyunSubLaborCostDTO> list = pageInfo.getContent();
+            list.forEach(chuanyunSubLaborCostDTO -> {
+                try {
+                    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
+                    String newDate = dateTimeFormatter.format(chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().getPeriod());
+                    LocalDateTime dt = LocalDateTime.parse(newDate,dateTimeFormatter);
+                    chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().setPeriod(dt);
+                    String[] deparmentName = chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().getDepartment().split("/");
+                    chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().setDepartment(deparmentName[deparmentName.length-1]);
+                    SubLaborCostDTO subLaborCostDTO = new SubLaborCostDTO(chuanyunSubLaborCostDTO);
+                    var purcostString=objectMapper.writeValueAsString(subLaborCostDTO);
+                    ChuanyunSaveDTO chuanyunSaveDTO;
+                    List<String> matchers = new ArrayList<>();
+                    matchers.add("F0000016_2,"+chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().getSubprojectcode());
+                    matchers.add("F0000002_2,"+chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().getPeriod());
+                    matchers.add("F0000017_2,"+chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().getDepartment());
+                    var filter= Filter.instance(0,1,true,"And",matchers);
+                    var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunSubLaborCostDO.SCHEMA_CODE,filter);
+                    if (chuanyunFindAllResponse.getReturnData() != null) {
+                        List<ChuanyunSubLaborCostDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {});
+                        chuanYunManager.delete(ChuanyunSubLaborCostDO.SCHEMA_CODE,result.get(0).getObjectId());
+                    }
+                    chuanyunSaveDTO =chuanYunManager.save(ChuanyunSubLaborCostDO.SCHEMA_CODE,purcostString,true);
+                }catch (Exception e){
+                    e.printStackTrace();
+                    log.info(e.getMessage());
+                }
+            });
+        }
+    }
+
+    /**
      * 更新项目预决算统计
      */
     private void saveBudgetStatistics() {
@@ -662,6 +728,49 @@ public class U9InfoTask {
     }
 
     @Data
+    class SubLaborCostDTO {
+        @JsonProperty("F0000005")
+        private String projectCode;
+
+        @JsonProperty("F0000016")
+        private String subProjectCode;
+
+        @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+        @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+        @JsonProperty("F0000002")
+        private LocalDateTime logDate;
+
+        @JsonProperty("F0000017")
+        private String department;
+
+        @JsonProperty("F0000003")
+        private BigDecimal amount;
+
+        @JsonProperty("F0000004")
+        private String dataType;
+
+        public SubLaborCostDTO(ChuanyunSubLaborCostDTO chuanyunSubLaborCostDO){
+            if(null!=chuanyunSubLaborCostDO){
+                if (null!=chuanyunSubLaborCostDO.getCostamount()){
+                    this.amount=chuanyunSubLaborCostDO.getCostamount();
+                }
+                if (null!=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getDepartment()){
+                    this.department=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getDepartment();
+                }
+                if (null!=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getPeriod()){
+                    this.logDate=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getPeriod();
+                }
+                if (null!=chuanyunSubLaborCostDO.getProjectcode()){
+                    this.projectCode=chuanyunSubLaborCostDO.getProjectcode();
+                }
+                if (null!=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getSubprojectcode()){
+                    this.subProjectCode=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getSubprojectcode();
+                }
+            }
+        }
+    }
+
+    @Data
     class LaborCostDTO {
 
         @JsonProperty("F0000005")