Browse Source

工时ABC分析C

xuj 4 years ago
parent
commit
523b0ee7af

+ 10 - 0
src/main/java/com/galaxis/manatee/constant/ChuanYunConstant.java

@@ -15,6 +15,16 @@ import java.util.Map;
 public class ChuanYunConstant {
 
     /**
+     * 审核结束
+     */
+    public static final String FINISH="1";
+
+    /**
+     * 审核流程中
+     */
+    public static final String IN_PROCESS="2";
+
+    /**
      * 生产项目项目类型
      */
     public static final String PRODUCTION_PROJECT="生产项目";

+ 19 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunBudgetStatisticsDao.java

@@ -0,0 +1,19 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunBudgetStatisticsDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunMemberCostDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface ChuanyunBudgetStatisticsDao extends GalaxisRepository<ChuanyunBudgetStatisticsDO,String> {
+
+    @Query(value="SELECT chuanyun_group_project.object_id as project,chuanyun_budget_statist.object_id,SUM(chuanyun_budget_statist.budget_amount) AS budget_amount,SUM(chuanyun_budget_statist.final_amount) AS final_amount,\n" +
+            "chuanyun_budget_statist.fee_type,SUM(chuanyun_budget_statist.budget_amount)-SUM(chuanyun_budget_statist.final_amount) AS difference_amount\n" +
+            "FROM chuanyun_budget_statist LEFT JOIN chuanyun_group_project ON chuanyun_group_project.`name` = chuanyun_budget_statist.project\n" +
+            "GROUP BY\tchuanyun_budget_statist.project,chuanyun_budget_statist.fee_type",nativeQuery = true)
+    List<ChuanyunBudgetStatisticsDO> getTotalByProject();
+}

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

@@ -14,8 +14,16 @@ import java.util.List;
 public interface ChuanyunSelfCostDao extends GalaxisRepository<ChuanyunSelfCostDO,String> {
 
     /**
+     * 根据状态查询月工时统计记录
+     * @param status    状态
+     * @param userId    用户Id
+     * @return  月工时统计列表
+     */
+    List<ChuanyunSelfCostDO> findAllByStatusAndUserId(String status,String userId);
+
+    /**
      * 获取项目人员总工时
-     * @return
+     * @return  月工时统计列表
      */
     @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)
@@ -23,19 +31,11 @@ public interface ChuanyunSelfCostDao extends GalaxisRepository<ChuanyunSelfCostD
 
     /**
      * 根据用户ID和项目ID,日期获取工时成本数据
-     * @param userId
-     * @param projectId
-     * @param dayLogDate
-     * @return
+     * @param userId    用户Id
+     * @param projectId 项目Id
+     * @param dayLogDate    日期
+     * @return  月工时统计列表
      */
     @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);
-
-    /**
-     * 根据流程状态删除数据
-     * @param status
-     */
-    @Transactional
-    void deleteAllByStatus(String status);
-
 }

+ 15 - 4
src/main/java/com/galaxis/manatee/dao/ChuanyunSelfWorkHourDao.java

@@ -19,14 +19,25 @@ public interface ChuanyunSelfWorkHourDao extends GalaxisRepository<ChuanyunSelfW
 
     /**
      * 根据项目id,用户id,日期获取工时数据
-     * @param userId
-     * @param projectId
-     * @param dayLogDate
-     * @return
+     * @param userId    用户Id
+     * @param projectId 项目Id
+     * @param dayLogDate    日志日期
+     * @return  日工时记录
      */
     ChuanyunSelfWorkHourDO findByUserIdAndAndProjectIdAndAndDayLogDate(String userId, String projectId, LocalDateTime dayLogDate);
 
     /**
+     * 根据用户Id,项目Id,起止时间获取工时列表
+     * @param userId    用户Id
+     * @param projectId 项目Id
+     * @param status    状态
+     * @param start     开始时间
+     * @param end       结束时间
+     * @return  日工时列表
+     */
+    List<ChuanyunSelfWorkHourDO> findAllByUserIdAndProjectIdAndStatusAndDayLogDateBetween(String userId,String projectId,String status,LocalDateTime start,LocalDateTime end);
+
+    /**
      * 获取人员-项目-月度标准总工时
      * @param userId    用户ID
      * @return  汇总数据

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

@@ -0,0 +1,53 @@
+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 ChuanyunBudgetAmountDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D0017898109525336e64d83bd9552c98b4385aa";
+
+    /**
+     * 所属项目
+     */
+    @JsonProperty("F0000001")
+    private String project;
+
+    /**
+     * 费用类型
+     */
+    @JsonProperty("F0000002")
+    private String feeType;
+
+    /**
+     * 预算金额
+     */
+    @JsonProperty("F0000003")
+    private BigDecimal budgetAmount;
+
+    /**
+     * 决算金额
+     */
+    @JsonProperty("F0000004")
+    private BigDecimal finalAmount;
+
+    /**
+     * 预算绝算差异
+     */
+    @JsonProperty("F0000005")
+    private BigDecimal differenceAmount;
+}

+ 51 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunBudgetStatisticsDO.java

@@ -0,0 +1,51 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+
+@Slf4j
+@Data
+@Entity(name = "CHUANYUN_BUDGET_STATIST")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunBudgetStatisticsDO {
+    /**
+     * 主键
+     */
+    @Id
+    @GeneratedValue(generator = "idGeneratorChuanyunSelfCost")
+    @GenericGenerator(name ="idGeneratorChuanyunSelfCost" ,strategy="com.galaxis.capsule.util.GalaxisIdGenerator")
+    private Long objectId;
+
+    /**
+     * 所属项目
+     */
+    private String project;
+
+    /**
+     * 费用类型
+     */
+    private String feeType;
+
+    /**
+     * 预算金额
+     */
+    private BigDecimal budgetAmount;
+
+    /**
+     * 决算金额
+     */
+    private BigDecimal finalAmount;
+
+    /**
+     * 预算绝算差异
+     */
+    private BigDecimal differenceAmount;
+}

+ 11 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunSupplierDTO.java

@@ -0,0 +1,11 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+import lombok.Data;
+
+@Data
+public class ChuanyunSupplierDTO {
+
+    private String code;
+
+    private String name;
+}

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

@@ -7,6 +7,7 @@ import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunReimbursementDO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunLaborCostDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunProjectCashFlowDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunPurCostDTO;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSupplierDTO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -56,6 +57,14 @@ public interface ClawFeign {
     PageDTO<ChuanyunPurCostDTO> findChuanyunPurCost(@RequestParam Map<String,String> map);
 
     /**
+     * 获取供应商
+     * @param map
+     * @return
+     */
+    @GetMapping("/supplier/findAllByParameters")
+    PageDTO<ChuanyunSupplierDTO> findChuanyunSupplier(@RequestParam Map<String,String> map);
+
+    /**
      * 查询人力成本
      * @param map
      * @return

File diff suppressed because it is too large
+ 172 - 4
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java


+ 1 - 0
src/main/java/com/galaxis/manatee/task/ChuanyunFinancialScheduledTask.java

@@ -97,6 +97,7 @@ public class ChuanyunFinancialScheduledTask {
                     }catch (NoSuchElementException e){
                         //没有之前的数据不做处理
                     }
+                    //TODO 等财务定义外部名称
                     //同步报销单中外部部门名称
 //                    synchroOutDepartment(chuanyunReimbursementDO);
 

+ 1 - 1
src/main/java/com/galaxis/manatee/task/ChuanyunHumanResourceScheduledTask.java

@@ -60,7 +60,7 @@ public class ChuanyunHumanResourceScheduledTask {
     /**
      * 每天3点更新日志记录
      */
-    @Scheduled(cron = "0 0 3 * * *")
+    @Scheduled(cron = "0 0 1 * * *")
     private void updateLog() {
         var objectMapper = new ObjectMapper();
         var start = 0;

File diff suppressed because it is too large
+ 43 - 15
src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java