xuj před 4 roky
rodič
revize
2d45887389

+ 40 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunDayWorkAbcDao.java

@@ -0,0 +1,40 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunDayWorkAbcDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunUserCompanyDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ * author: xuj
+ * Date: 2020/8/7
+ * description: 项目工时ABC分析
+ */
+@Repository
+public interface ChuanyunDayWorkAbcDao extends GalaxisRepository<ChuanyunDayWorkAbcDO,String> {
+
+    @Query(value = "select d.project_code,d.project_name,a.object_id,a.project_id,sum(a.standard_work_hour) as total_time,r.plan_time,p.sell_time,q.other_time from chuanyun_self_work_hour a " +
+            " left join (select c.project_id,c.user_type,sum(c.standard_work_hour) as plan_time from (select a.*,b.user_type from chuanyun_self_work_hour a " +
+            " left join  chuanyun_user_company b on a.user_id = b.user_id) c " +
+       "where c.user_type = 0 " +
+    "group by c.project_id) r on a.project_id = r.project_id " +
+    "left join(	select c.project_id,c.user_type,sum(c.standard_work_hour) as sell_time from (select a.*,b.user_type from chuanyun_self_work_hour a " +
+    "left join  chuanyun_user_company b on a.user_id = b.user_id) c " +
+   "where c.user_type = 1" +
+   " group by c.project_id) p on a.project_id = p.project_id " +
+   " left join (select c.project_id,c.user_type,sum(c.standard_work_hour) as other_time from (select a.*,b.user_type from chuanyun_self_work_hour a " +
+   " left join  chuanyun_user_company b on a.user_id = b.user_id) c " +
+   " where c.user_type = 2 " +
+   " group by c.project_id) q on a.project_id = q.project_id " +
+   " left join chuanyun_project d on a.project_id = d.object_id " +
+   " group by a.project_id" ,
+            nativeQuery = true)
+    List<ChuanyunDayWorkAbcDO> queryDayWorkAbc();
+
+    ChuanyunDayWorkAbcDO findByProjectId(String projectId);
+
+}

+ 74 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunDayWorkAbcDO.java

@@ -0,0 +1,74 @@
+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.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+
+/**
+ * Created by IntelliJ IDEA.
+ * author: xuj
+ * Date: 2020/8/7
+ * Description: 项目工时分析
+ */
+@Slf4j
+@Data
+@Entity(name = "CHUANYUN_DAY_WORK_ABC")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunDayWorkAbcDO {
+
+    @Id
+    @GeneratedValue(generator = "idGeneratorUser")
+    @GenericGenerator(name ="idGeneratorUser" ,strategy="com.galaxis.capsule.util.GalaxisIdGenerator")
+    private Long objectId;
+
+    /**
+     * 项目id
+     */
+    @JsonProperty("project_id")
+    private String projectId;
+
+    /**
+     * 项目编号
+     */
+    @JsonProperty("project_code")
+    private String projectCode;
+
+    /**
+     * 项目名称
+     */
+    @JsonProperty("project_name")
+    private String projectName;
+
+    /**
+     * 总工时
+     */
+    @JsonProperty("total_time")
+    private BigDecimal totalTime;
+
+    /**
+     * 规划人员本项目工时
+     */
+    @JsonProperty("plan_time")
+    private BigDecimal planTime;
+
+    /**
+     * 销售人员本项目工时
+     */
+    @JsonProperty("sell_time")
+    private BigDecimal sellTime;
+
+    /**
+     * 其他支持人员本项目工时
+     */
+    @JsonProperty("other_time")
+    private BigDecimal otherTime;
+
+}

+ 6 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunUserCompanyDO.java

@@ -67,6 +67,12 @@ public class ChuanyunUserCompanyDO extends BasicDO{
     private String department;
 
     /**
+     * 人员类型:规划,销售
+     */
+    @JsonProperty("F0000035")
+    private String userType;
+
+    /**
      * 人员所属部门ID
      */
     private String departmentId;

+ 36 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunDayWorkAbcDTO.java

@@ -0,0 +1,36 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ * author: xuj
+ * Date: 2020/8/7
+ */
+@Data
+public class ChuanyunDayWorkAbcDTO {
+
+    @JsonProperty("project_id")
+    private String projectId;
+
+//    @JsonProperty("project_code")
+//    private String projectCode;
+//
+//    @JsonProperty("project_name")
+//    private String projectName;
+
+    @JsonProperty("total_time")
+    private String totalTime;
+
+    @JsonProperty("paln_time")
+    private String planTime;
+
+    @JsonProperty("sell_time")
+    private String sellTime;
+
+    @JsonProperty("other_time")
+    private String otherTime;
+
+
+}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 34 - 2
src/main/java/com/galaxis/manatee/task/ChuanyunProjectScheduledTask.java