Browse Source

1.修改月度汇总和项目汇总

WoNiu 4 years ago
parent
commit
c93eb5dc95

+ 2 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunMemberCostDao.java

@@ -15,4 +15,6 @@ public interface ChuanyunMemberCostDao extends GalaxisRepository<ChuanyunMemberC
     @Query(value="SELECT chuanyun_self_cost.object_id,SUM(chuanyun_self_cost.total_hour) AS total_hour,SUM(chuanyun_self_cost.cost) AS cost,chuanyun_self_cost.project_id,chuanyun_self_cost.user_id"+
             " FROM chuanyun_self_cost GROUP BY chuanyun_self_cost.project_id,chuanyun_self_cost.user_id",nativeQuery = true)
     List<ChuanyunMemberCostDO> getMemberCost();
+
+    ChuanyunMemberCostDO findByUserIdAndProjectId(String userId,String projectId);
 }

+ 2 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunProjectCostDao.java

@@ -14,4 +14,6 @@ public interface ChuanyunProjectCostDao extends GalaxisRepository<ChuanyunProjec
     @Query(value="SELECT chuanyun_member_cost.object_id,SUM(chuanyun_member_cost.cost) AS cost,SUM(chuanyun_member_cost.total_hour) AS total_hour,chuanyun_member_cost.project_id FROM chuanyun_member_cost GROUP BY chuanyun_member_cost.project_id",nativeQuery = true)
     List<ChuanyunProjectCostDO> getProjectCost();
 
+    ChuanyunProjectCostDO findByProjectId(String projectId);
+
 }

+ 3 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunSelfCostDao.java

@@ -4,6 +4,7 @@ import com.galaxis.capsule.util.GalaxisRepository;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSelfCostDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSelfWorkHourDO;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -15,5 +16,7 @@ public interface ChuanyunSelfCostDao extends GalaxisRepository<ChuanyunSelfCostD
             " FROM chuanyun_self_cost GROUP BY chuanyun_self_cost.project_id,chuanyun_self_cost.user_id",nativeQuery = true)
     List<ChuanyunSelfCostDO> getMemberCost();
 
+    @Query(value="SELECT * FROM chuanyun_self_cost WHERE user_id = ?1 AND project_id = ?2 AND DATE_FORMAT(chuanyun_self_cost.day_log_date,'%Y-%m')=DATE_FORMAT(?3,'%Y-%m')",nativeQuery = true)
+    ChuanyunSelfCostDO getOldSelfDO(@Param("userId")String userId,@Param("projectId")String projectId,@Param("dayLogDate")String dayLogDate);
 
 }

+ 22 - 6
src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java

@@ -15,6 +15,7 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
@@ -340,6 +341,10 @@ public class ChuanyunProjectScheduledTask {
                 memberCostDO.setProjectId(chuanyunMemberCostDO.getProjectId());
                 memberCostDO.setUserId(chuanyunMemberCostDO.getUserId());
                 memberCostDO.setTotalHour(chuanyunMemberCostDO.getTotalHour());
+                ChuanyunMemberCostDO oldCostDO = chuanyunMemberCostDao.findByUserIdAndProjectId(chuanyunMemberCostDO.getUserId(),chuanyunMemberCostDO.getProjectId());
+                if (oldCostDO !=null) {
+                    chuanyunMemberCostDao.delete(oldCostDO);
+                }
                 chuanyunMemberCostDao.save(memberCostDO);
             });
             //项目汇总
@@ -349,6 +354,10 @@ public class ChuanyunProjectScheduledTask {
                projectCostDO.setCost(chuanyunProjectCostDO.getCost());
                projectCostDO.setProjectId(chuanyunProjectCostDO.getProjectId());
                projectCostDO.setTotalHour(chuanyunProjectCostDO.getTotalHour());
+               ChuanyunProjectCostDO oldPeojectDO = chuanyunProjectCostDao.findByProjectId(chuanyunProjectCostDO.getProjectId());
+               if (oldPeojectDO !=null) {
+                   chuanyunProjectCostDao.delete(oldPeojectDO);
+               }
                chuanyunProjectCostDao.save(projectCostDO);
            });
         }
@@ -394,13 +403,20 @@ public class ChuanyunProjectScheduledTask {
             if (chuanyunPayrollDO != null) {
                 BigDecimal cost = (projectMonth.getStandardWorkHour().divide(monthHour.getStandardWorkHour(), 2, BigDecimal.ROUND_HALF_UP)).multiply(chuanyunPayrollDO.getWagesPayable());
                 chuanyunSelfCostDO.setCost(cost);
-                chuanyunSelfCostDO.setProjectId(projectMonth.getProjectId());
-                chuanyunSelfCostDO.setUserId(projectMonth.getUserId());
-                chuanyunSelfCostDO.setDayLogDate(projectMonth.getDayLogDate());
-                chuanyunSelfCostDO.setTotalHour(monthHour.getStandardWorkHour());
-                chuanyunSelfCostDao.save(chuanyunSelfCostDO);
-                log.info("人力成本计算");
             }
+            chuanyunSelfCostDO.setProjectId(projectMonth.getProjectId());
+            chuanyunSelfCostDO.setUserId(projectMonth.getUserId());
+            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-01 HH:mm:ss");
+            String newdate = dateTimeFormatter.format(projectMonth.getDayLogDate());
+            LocalDateTime dt = LocalDateTime.parse(newdate,df);
+            chuanyunSelfCostDO.setDayLogDate(dt);
+            chuanyunSelfCostDO.setTotalHour(monthHour.getStandardWorkHour());
+            ChuanyunSelfCostDO oldSelfDO = chuanyunSelfCostDao.getOldSelfDO(chuanyunSelfCostDO.getUserId(),chuanyunSelfCostDO.getProjectId(),df.format(chuanyunSelfCostDO.getDayLogDate()));
+            if (oldSelfDO !=null) {
+                chuanyunSelfCostDao.delete(oldSelfDO);
+            }
+            chuanyunSelfCostDao.save(chuanyunSelfCostDO);
+            log.info("人力成本计算");
         });
     }
 }