Ver código fonte

1.修改周工时统计

WoNiu 4 anos atrás
pai
commit
8a66ad0f53

+ 1 - 1
src/main/java/com/galaxis/manatee/dao/ChuanyunReimbursementAmountDao.java

@@ -9,6 +9,6 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface ChuanyunReimbursementAmountDao extends GalaxisRepository<ChuanyunReimbursementAmountDO,String> {
 
-    @Query(value="SELECT SUM(chuanyun_reimbursement.amount) AS total_amount,chuanyun_reimbursement.object_id  FROM chuanyun_reimbursement WHERE chuanyun_reimbursement.group_project_id = ?",nativeQuery = true)
+    @Query(value="SELECT SUM(chuanyun_reimbursement.amount) AS total_amount,chuanyun_reimbursement.object_id  FROM chuanyun_reimbursement WHERE chuanyun_reimbursement.group_project_id = ? and chuanyun_reimbursement.status=1",nativeQuery = true)
     ChuanyunReimbursementAmountDO getAmount(String projectId);
 }

+ 26 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunWeekMemberHourDao.java

@@ -4,6 +4,7 @@ import com.galaxis.capsule.util.GalaxisRepository;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectCostDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunWeekMemberHourDO;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -41,6 +42,26 @@ public interface ChuanyunWeekMemberHourDao extends GalaxisRepository<ChuanyunWee
     List<ChuanyunWeekMemberHourDO> getWeekMemberHour();
 
     /**
+     * 判断是否有流程中数据
+     * @return
+     */
+    @Query(value="SELECT chuanyun_self_work_hour.object_id," +
+            "DATE_FORMAT(day_log_date,'%Y') as year," +
+            "WEEKOFYEAR(chuanyun_self_work_hour.day_log_date) AS week," +
+            "project_id,user_id," +
+            "SUM(standard_work_hour)AS standard_work_hour," +
+            "project_type," +
+            "`status`" +
+            "FROM chuanyun_self_work_hour " +
+            "WHERE project_id=?1 and user_id=?2 and DATE_FORMAT(day_log_date,'%Y')=?3 and WEEKOFYEAR(chuanyun_self_work_hour.day_log_date)=?4 and status=2" +
+            " GROUP BY chuanyun_self_work_hour.project_id," +
+            "chuanyun_self_work_hour.user_id," +
+            "DATE_FORMAT(day_log_date,'%Y')," +
+            "WEEKOFYEAR(chuanyun_self_work_hour.day_log_date)," +
+            "chuanyun_self_work_hour.`status`",nativeQuery = true)
+    ChuanyunWeekMemberHourDO getProcessWeekHour(@Param("projectId")String projectId,@Param("userId")String userId,@Param("year")String year,@Param("week")String week);
+
+    /**
      * 项目人员周度是否存在
      * @param projectId
      * @param userId
@@ -48,4 +69,9 @@ public interface ChuanyunWeekMemberHourDao extends GalaxisRepository<ChuanyunWee
      * @return
      */
     ChuanyunWeekMemberHourDO findByProjectIdAndUserIdAndWeekAndStatusAndProjectTypeAndYear(String projectId,String userId,String week,String status,String projectType,String year);
+
+    /**
+     * 删除状态为审核中的数据
+     */
+    void deleteByProjectIdAndUserIdAndYearAndWeekAndStatus(String projectId,String userId,String year,String week,String status);
 }

+ 13 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunBudgetAmountDO.java

@@ -2,12 +2,17 @@ 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)
@@ -40,6 +45,14 @@ public class ChuanyunBudgetAmountDO extends BasicDO{
     private BigDecimal budgetAmount;
 
     /**
+     * 默认日期(4月份)
+     */
+    @JsonProperty("F0000006")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime date;
+
+    /**
      * 决算金额
      */
     @JsonProperty("F0000004")

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

@@ -100,11 +100,14 @@ public class ChuanyunBasicDataScheduledTask {
 
     public void getGroupProjectForSynchronizationManually() {this.getGroupProjectForSynchronization();}
 
+
     /**
      * 定时将氚云中的数据保存到manatee
      */
     @Scheduled(fixedDelay = 3600000L)
     private void getDataFromChuanyun() {
+        //项目预决算
+        saveBudgetStatistics();
         //钉钉请假
         saveAskForLeave();
         //专项费用分摊
@@ -133,8 +136,6 @@ public class ChuanyunBasicDataScheduledTask {
         savePurCost();
         //项目收付款
         saveCashFlow();
-        //项目预决算
-        saveBudgetStatistics();
         //新增供应商信息
         saveSupplier();
     }
@@ -371,6 +372,7 @@ public class ChuanyunBasicDataScheduledTask {
             if (!StringUtils.isEmpty(chuanyunBudgetStatisticsDO.getProject())){
                 var objectMapper = new ObjectMapper();
                 BudgetDTO budgetDTO = new BudgetDTO(chuanyunBudgetStatisticsDO);
+                budgetDTO.setDate(LocalDateTime.of(2020,4,1,0,0));
                 try {
                     List<String> matchers = new ArrayList<>();
                     ChuanyunSaveDTO chuanyunSaveDTO;
@@ -1109,6 +1111,14 @@ public class ChuanyunBasicDataScheduledTask {
         private BigDecimal budgetAmount;
 
         /**
+         * 默认日期(4月份)
+         */
+        @JsonProperty("F0000006")
+        @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+        @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+        private LocalDateTime date;
+
+        /**
          * 决算金额
          */
         @JsonProperty("F0000004")

+ 5 - 0
src/main/java/com/galaxis/manatee/task/WorkHourStatistics.java

@@ -156,6 +156,11 @@ public class WorkHourStatistics {
                     chuanyunWeekMemberHourDao.delete(oldWeekHour);
                 }
                 chuanyunWeekMemberHourDao.save(weekMemberHourDO);
+                //搜索是否还有处于审批中的数据
+                ChuanyunWeekMemberHourDO processWeekHour = chuanyunWeekMemberHourDao.getProcessWeekHour(chuanyunWeekMemberHourDO.getProjectId(),chuanyunWeekMemberHourDO.getUserId(),chuanyunWeekMemberHourDO.getYear(),chuanyunWeekMemberHourDO.getWeek());
+                if (processWeekHour == null){
+                    chuanyunWeekMemberHourDao.deleteByProjectIdAndUserIdAndYearAndWeekAndStatus(chuanyunWeekMemberHourDO.getProjectId(),chuanyunWeekMemberHourDO.getUserId(),chuanyunWeekMemberHourDO.getYear(),chuanyunWeekMemberHourDO.getWeek(),"2");
+                }
             }
         });
         log.info("周工时标准化"+(Instant.now().getEpochSecond()-start)+"秒");