浏览代码

1.新增氚云数据更新

WoNiu 4 年之前
父节点
当前提交
bca26039cf

+ 60 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunMemberMonthCostDO.java

@@ -0,0 +1,60 @@
+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.Entity;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunMemberMonthCostDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789f4833b5cbd0147a4957a7a466e65297a";
+
+    /**
+     * 项目ID
+     */
+    @JsonProperty("F0000003")
+    private String projectId;
+
+    /**
+     * 用户ID
+     */
+    @JsonProperty("F0000002")
+    private String userId;
+
+    /**
+     * 日期
+     */
+    @JsonProperty("F0000004")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime dayLogDate;
+
+    /**
+     * 工时
+     */
+    @JsonProperty("F0000005")
+    private BigDecimal workHour;
+
+    /**
+     * 成本
+     */
+    @JsonProperty("F0000006")
+    private BigDecimal cost;
+}

+ 48 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectMemberCostDO.java

@@ -0,0 +1,48 @@
+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;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProjectMemberCostDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789dac5cdee041d471faab9d0f303cc9b49";
+
+    /**
+     * 项目ID
+     */
+    @JsonProperty("F0000001")
+    private String projectId;
+
+    /**
+     * 用户ID
+     */
+    @JsonProperty("F0000002")
+    private String userId;
+
+    /**
+     * 工时
+     */
+    @JsonProperty("F0000003")
+    private BigDecimal workHour;
+
+    /**
+     * 成本
+     */
+    @JsonProperty("F0000004")
+    private BigDecimal cost;
+}

+ 44 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectTotalCostDO.java

@@ -0,0 +1,44 @@
+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;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProjectTotalCostDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D0017895783d9521d604a32bba65a287409ba9a";
+
+    /**
+     * 项目ID
+     */
+    @JsonProperty("F0000001")
+    private String projectId;
+
+
+    /**
+     * 工时
+     */
+    @JsonProperty("F0000003")
+    private BigDecimal workHour;
+
+    /**
+     * 成本
+     */
+    @JsonProperty("F0000002")
+    private BigDecimal cost;
+
+}

+ 93 - 4
src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java

@@ -188,7 +188,7 @@ public class ChuanyunProjectScheduledTask {
     /**
      * 项目核算登记
      */
-    @Scheduled(fixedDelay = 3600000L)
+//    @Scheduled(fixedDelay = 3600000L)
     private void saveAdjustAccount() {
         var objectMapper=new ObjectMapper();
         var flag = true;
@@ -315,6 +315,7 @@ public class ChuanyunProjectScheduledTask {
      */
     @Scheduled(fixedDelay = 3600000L)
     private void laborcost() {
+        var objectMapper=new ObjectMapper();
         var flag = true;
         var pageSize = 20;
         var page = 0;
@@ -330,9 +331,9 @@ public class ChuanyunProjectScheduledTask {
             List<ChuanyunUserCompanyDO> userCompanyDOList = chuanyunUserCompanyDOS.getContent();
             userCompanyDOList.forEach(chuanyunUserCompanyDO -> {
                 //工时标准化
-                standardHour(chuanyunUserCompanyDO);
+//                standardHour(chuanyunUserCompanyDO);
                 //单项目单人单月成本
-                selfCost(chuanyunUserCompanyDO);
+//                selfCost(chuanyunUserCompanyDO);
             });
             //每人月度汇总
             List<ChuanyunMemberCostDO> list = chuanyunMemberCostDao.getMemberCost();
@@ -347,6 +348,36 @@ public class ChuanyunProjectScheduledTask {
                     chuanyunMemberCostDao.delete(oldCostDO);
                 }
                 chuanyunMemberCostDao.save(memberCostDO);
+                //更新氚云数据
+                try {
+                    ChuanyunProjectMemberCostDO chuanyunProjectMemberCostDO = new ChuanyunProjectMemberCostDO();
+                    chuanyunProjectMemberCostDO.setProjectId(chuanyunMemberCostDO.getProjectId());
+                    chuanyunProjectMemberCostDO.setUserId(chuanyunMemberCostDO.getUserId());
+                    chuanyunProjectMemberCostDO.setCost(chuanyunMemberCostDO.getCost());
+                    chuanyunProjectMemberCostDO.setWorkHour(chuanyunMemberCostDO.getTotalHour());
+                    List<String> macthers = new ArrayList<>();
+                    macthers.add("F0000001_2,"+chuanyunMemberCostDO.getProjectId());
+                    macthers.add("F0000002_2,"+chuanyunMemberCostDO.getUserId());
+                    var filter= Filter.instance(0,1,true,"And",macthers);
+                    var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectMemberCostDO.SCHEMA_CODE,filter);
+                    var projectmemberString=objectMapper.writeValueAsString(chuanyunProjectMemberCostDO);
+                    ChuanyunSaveDTO chuanyunSaveDTO;
+                    if (chuanyunFindAllResponse.getReturnData()!=null) {
+                        List<ChuanyunProjectMemberCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                        ChuanyunProjectMemberCostDO oldProjectMemberCostDO = result.get(0);
+                        chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectMemberCostDO.SCHEMA_CODE,oldProjectMemberCostDO.getObjectId(),projectmemberString);
+                    }else {
+                        chuanyunSaveDTO = chuanYunManager.save(ChuanyunProjectMemberCostDO.SCHEMA_CODE,projectmemberString,true);
+
+                    }
+                    if(chuanyunSaveDTO.getSuccessful()){
+                        log.info("新增项目成员成本汇总成功");
+                    }else{
+                        log.warn("新增项目成员成本汇总失败");
+                    }
+                } catch (JsonProcessingException | BigSizeException e) {
+                    e.printStackTrace();
+                }
             });
             //项目汇总
            List<ChuanyunProjectCostDO> list1 = chuanyunProjectCostDao.getProjectCost();
@@ -360,6 +391,33 @@ public class ChuanyunProjectScheduledTask {
                    chuanyunProjectCostDao.delete(oldPeojectDO);
                }
                chuanyunProjectCostDao.save(projectCostDO);
+               try {
+                   ChuanyunProjectTotalCostDO chuanyunProjectTotalCostDO = new ChuanyunProjectTotalCostDO();
+                   chuanyunProjectTotalCostDO.setProjectId(chuanyunProjectCostDO.getProjectId());
+                   chuanyunProjectTotalCostDO.setCost(chuanyunProjectCostDO.getCost());
+                   chuanyunProjectTotalCostDO.setWorkHour(chuanyunProjectCostDO.getTotalHour());
+                   List<String> macthers = new ArrayList<>();
+                   macthers.add("F0000001_2,"+chuanyunProjectCostDO.getProjectId());
+                   var filter= Filter.instance(0,1,true,"And",macthers);
+                   var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectTotalCostDO.SCHEMA_CODE,filter);
+                   var projecttotalString=objectMapper.writeValueAsString(chuanyunProjectTotalCostDO);
+                   ChuanyunSaveDTO chuanyunSaveDTO;
+                   if (chuanyunFindAllResponse.getReturnData()!=null) {
+                       List<ChuanyunProjectTotalCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                       ChuanyunProjectTotalCostDO chuanyunProjectTotalCostDO1 = result.get(0);
+                       chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectTotalCostDO.SCHEMA_CODE,chuanyunProjectTotalCostDO1.getObjectId(),projecttotalString);
+                   }else {
+                       chuanyunSaveDTO = chuanYunManager.save(ChuanyunProjectTotalCostDO.SCHEMA_CODE,projecttotalString,true);
+
+                   }
+                   if(chuanyunSaveDTO.getSuccessful()){
+                       log.info("新增项目成本汇总成功");
+                   }else{
+                       log.warn("新增项目成本汇总失败");
+                   }
+               } catch (JsonProcessingException | BigSizeException e) {
+                   e.printStackTrace();
+               }
            });
         }
     }
@@ -402,6 +460,7 @@ public class ChuanyunProjectScheduledTask {
      * @param chuanyunUserCompanyDO
      */
     private void selfCost(ChuanyunUserCompanyDO chuanyunUserCompanyDO) {
+        var objectMapper=new ObjectMapper();
         //每月每项目工时
         List<ChuanyunSelfWorkHourDO> list = chuanyunSelfWorkHourDao.getMonthProjectHour(chuanyunUserCompanyDO.getUserId());
         list.forEach(projectMonth->{
@@ -409,9 +468,11 @@ public class ChuanyunProjectScheduledTask {
             ChuanyunSelfWorkHourDO monthHour = chuanyunSelfWorkHourDao.getMonthHour(projectMonth.getUserId(),df.format(projectMonth.getDayLogDate()));
             ChuanyunPayrollDO chuanyunPayrollDO = chuanyunPayrollDao.getPayroll(projectMonth.getUserId(),df.format(projectMonth.getDayLogDate()));
             ChuanyunSelfCostDO chuanyunSelfCostDO = new ChuanyunSelfCostDO();
+            ChuanyunMemberMonthCostDO chuanyunMemberMonthCostDO = new ChuanyunMemberMonthCostDO();
             if (chuanyunPayrollDO != null) {
                 BigDecimal cost = (projectMonth.getStandardWorkHour().divide(monthHour.getStandardWorkHour(), 2, RoundingMode.HALF_UP)).multiply(chuanyunPayrollDO.getWagesPayable());
                 chuanyunSelfCostDO.setCost(cost);
+                chuanyunMemberMonthCostDO.setCost(cost);
             }
             chuanyunSelfCostDO.setProjectId(projectMonth.getProjectId());
             chuanyunSelfCostDO.setUserId(projectMonth.getUserId());
@@ -425,7 +486,35 @@ public class ChuanyunProjectScheduledTask {
                 chuanyunSelfCostDao.delete(oldSelfDO);
             }
             chuanyunSelfCostDao.save(chuanyunSelfCostDO);
-            log.info("人力成本计算");
+            //更新氚云数据
+            chuanyunMemberMonthCostDO.setProjectId(projectMonth.getProjectId());
+            chuanyunMemberMonthCostDO.setUserId(projectMonth.getUserId());
+            chuanyunMemberMonthCostDO.setDayLogDate(dt);
+            chuanyunMemberMonthCostDO.setWorkHour(monthHour.getStandardWorkHour());
+            try {
+                List<String> macthers = new ArrayList<>();
+                macthers.add("F0000003_2,"+projectMonth.getProjectId());
+                macthers.add("F0000002_2,"+projectMonth.getUserId());
+                macthers.add("F0000004_2,"+dt);
+                var filter= Filter.instance(0,1,true,"And",macthers);
+                var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunMemberMonthCostDO.SCHEMA_CODE,filter);
+                var membermonthString=objectMapper.writeValueAsString(chuanyunMemberMonthCostDO);
+                ChuanyunSaveDTO chuanyunSaveDTO;
+                if (chuanyunFindAllResponse.getReturnData()!=null){
+                    List<ChuanyunMemberMonthCostDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                    ChuanyunMemberMonthCostDO chuanyunMemberMonthCostDO1 = result.get(0);
+                    chuanyunSaveDTO =chuanYunManager.update(ChuanyunMemberMonthCostDO.SCHEMA_CODE,chuanyunMemberMonthCostDO1.getObjectId(),membermonthString);
+                }else {
+                    chuanyunSaveDTO =chuanYunManager.save(ChuanyunMemberMonthCostDO.SCHEMA_CODE,membermonthString,true);
+                }
+                if(chuanyunSaveDTO.getSuccessful()){
+                    log.info("新增项目成员月度成本汇总成功");
+                }else{
+                    log.warn("新增项目成员月度成本汇总失败");
+                }
+            } catch (JsonProcessingException | BigSizeException e) {
+                e.printStackTrace();
+            }
         });
     }
 }