ソースを参照

1.修改项目人力成本从u9获取

WoNiu 4 年 前
コミット
83bb0b6979

+ 6 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunMonthLaborCostDao.java

@@ -3,8 +3,14 @@ package com.galaxis.manatee.dao;
 import com.galaxis.capsule.util.GalaxisRepository;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunMonthLaborCostDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPayrollDO;
+import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 @Repository
 public interface ChuanyunMonthLaborCostDao extends GalaxisRepository<ChuanyunMonthLaborCostDO,String> {
+
+    @Query(value="SELECT SUM(chuanyun_month_laborcost.amount)AS totoalamount ,chuanyun_month_laborcost.* FROM chuanyun_month_laborcost \n" +
+            "LEFT JOIN chuanyun_group_project ON chuanyun_group_project.project_code = chuanyun_month_laborcost.project_code\n" +
+            "WHERE chuanyun_group_project.object_id = ? GROUP BY chuanyun_month_laborcost.project_code",nativeQuery = true)
+    ChuanyunMonthLaborCostDO getTotalCost(String projectCode);
 }

+ 4 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunMonthLaborCostDO.java

@@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.persistence.Entity;
+import javax.persistence.Transient;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
@@ -35,6 +36,9 @@ public class ChuanyunMonthLaborCostDO extends BasicDO{
     @JsonProperty("F0000003")
     private BigDecimal amount;
 
+    @Transient
+    private BigDecimal totalamount;
+
     @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
     @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
     @JsonProperty("F0000002")

+ 16 - 9
src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java

@@ -240,9 +240,13 @@ public class ChuanyunProjectScheduledTask {
         list1.forEach(chuanyunProjectCostDO -> {
             //获取项目实施费用
             ChuanyunReimbursementAmountDO chuanyunReimbursementAmountDO = chuanyunReimbursementAmountDao.getAmount(chuanyunProjectCostDO.getProjectId());
+            //人力成本
+            ChuanyunMonthLaborCostDO chuanyunMonthLaborCostDO = chuanyunMonthLaborCostDao.getTotalCost(chuanyunProjectCostDO.getProjectId());
             //更新数据库
             ChuanyunProjectCostDO projectCostDO = new ChuanyunProjectCostDO();
-            projectCostDO.setCost(chuanyunProjectCostDO.getCost());
+            if (chuanyunMonthLaborCostDO!=null){
+                projectCostDO.setCost(chuanyunMonthLaborCostDO.getAmount());
+            }
             projectCostDO.setProjectType(chuanyunProjectCostDO.getProjectType());
             projectCostDO.setProjectId(chuanyunProjectCostDO.getProjectId());
             projectCostDO.setTotalHour(chuanyunProjectCostDO.getTotalHour());
@@ -260,7 +264,9 @@ public class ChuanyunProjectScheduledTask {
                 ChuanyunProjectTotalCostDTO chuanyunProjectTotalCostDTO = new ChuanyunProjectTotalCostDTO();
                 chuanyunProjectTotalCostDTO.setProjectType(chuanyunProjectCostDO.getProjectType());
                 chuanyunProjectTotalCostDTO.setProjectId(chuanyunProjectCostDO.getProjectId());
-                chuanyunProjectTotalCostDTO.setCost(chuanyunProjectCostDO.getCost());
+                if (chuanyunMonthLaborCostDO!=null){
+                    chuanyunProjectTotalCostDTO.setCost(chuanyunMonthLaborCostDO.getAmount());
+                }
                 chuanyunProjectTotalCostDTO.setStatus(chuanyunProjectCostDO.getStatus());
                 chuanyunProjectTotalCostDTO.setWorkHour(chuanyunProjectCostDO.getTotalHour());
                 chuanyunProjectTotalCostDTO.setPersonDays(chuanyunProjectCostDO.getPersonDays());
@@ -471,14 +477,15 @@ public class ChuanyunProjectScheduledTask {
             ChuanyunSelfWorkHourDO monthHour = chuanyunSelfWorkHourDao.getMonthHour(projectMonth.getUserId(),df.format(projectMonth.getDayLogDate()),projectMonth.getStatus());
             //获取人员月度工资信息
             //TODO 张曦铭的薪资信息同步之后需要使用U9中的数据更新薪资信息
-            ChuanyunPayrollDO chuanyunPayrollDO = chuanyunPayrollDao.getPayroll(projectMonth.getUserId(),df.format(projectMonth.getDayLogDate()));
+//            ChuanyunPayrollDO chuanyunPayrollDO = chuanyunPayrollDao.getPayroll(projectMonth.getUserId(),df.format(projectMonth.getDayLogDate()));
+
+//            if (chuanyunPayrollDO != null) {
+//                BigDecimal cost = (projectMonth.getStandardWorkHour().divide(monthHour.getStandardWorkHour(), 2, RoundingMode.HALF_UP)).multiply(chuanyunPayrollDO.getWagesPayable());
+//                chuanyunSelfCostDO.setCost(cost);
+//            }else{
+//                chuanyunSelfCostDO.setCost(BigDecimal.ZERO);
+//            }
             ChuanyunSelfCostDO chuanyunSelfCostDO = new ChuanyunSelfCostDO();
-            if (chuanyunPayrollDO != null) {
-                BigDecimal cost = (projectMonth.getStandardWorkHour().divide(monthHour.getStandardWorkHour(), 2, RoundingMode.HALF_UP)).multiply(chuanyunPayrollDO.getWagesPayable());
-                chuanyunSelfCostDO.setCost(cost);
-            }else{
-                chuanyunSelfCostDO.setCost(BigDecimal.ZERO);
-            }
             chuanyunSelfCostDO.setStatus(projectMonth.getStatus());
             chuanyunSelfCostDO.setMonthlyTotalHour(monthHour.getStandardWorkHour());
             chuanyunSelfCostDO.setProjectId(projectMonth.getProjectId());