瀏覽代碼

针对12月25日的讨论进行修改/software,plan,task等添加company_id字段

bigcat 2 年之前
父節點
當前提交
a563e99c3a
共有 9 個文件被更改,包括 51 次插入2 次删除
  1. 35 1
      controller/company.go
  2. 1 0
      controller/plan.go
  3. 1 1
      controller/software.go
  4. 9 0
      controller/user.go
  5. 1 0
      model/plan.go
  6. 1 0
      model/software.go
  7. 1 0
      model/task.go
  8. 1 0
      router.go
  9. 1 0
      vo/groupVo.go

+ 35 - 1
controller/company.go

@@ -372,7 +372,7 @@ func GetCompanyStatisticsList(c *gin.Context) {
 	}
 	res := make([]result, len(companies))
 	for i, v := range companies {
-		totalSendCount, totalRecvCount, totalFinishedCount := GetStatisticsData(v.CreatorId)
+		totalSendCount, totalRecvCount, totalFinishedCount := GetCompanyStatisticsData(v.ID)
 		res[i].TotalSendCount = totalSendCount
 		res[i].TotalRecvCount = totalRecvCount
 		res[i].TotalFinishedCount = totalFinishedCount
@@ -381,3 +381,37 @@ func GetCompanyStatisticsList(c *gin.Context) {
 	}
 	response.Success(c, gin.H{"companyList": res}, "查询成功")
 }
+
+func GetCompanyStatisticsData(companyId int) (int64, int64, int64) {
+
+	db := common.GetDB()
+	//总发包数
+	var totalSendCount int64
+	db.Model(&model.Task{}).Where("company_id = ?", companyId).Count(&totalSendCount)
+	//发包中总接包数
+	var totalRecvCount int64
+	db.Model(&model.Task{}).Where("company_id = ? and state <> 3", companyId).Count(&totalRecvCount)
+
+	//发包中总完成数
+	var totalFinishedCount int64
+	db.Model(&model.Task{}).Where("company_id = ? and task.state = 2", companyId).Count(&totalFinishedCount)
+	return totalSendCount, totalRecvCount, totalFinishedCount
+}
+
+func GetCompanyStatistics(c *gin.Context) {
+	companyId := c.Params.ByName("companyId")
+	db := common.GetDB()
+	var company model.Company
+	if err := db.Model(&model.Company{}).Where("id = ?", companyId).First(&company).Error; err != nil {
+		response.Fail(c, nil, "公司不存在")
+		return
+	}
+	companyIntId, _ := strconv.Atoi(companyId)
+	totalSendCount, totalRecvCount, totalFinishedCount := GetCompanyStatisticsData(companyIntId)
+	response.Success(c, gin.H{
+		"company":            company,
+		"totalSendCount":     totalSendCount,
+		"totalRecvCount":     totalRecvCount,
+		"totalFinishedCount": totalFinishedCount,
+	}, "查询成功")
+}

+ 1 - 0
controller/plan.go

@@ -194,6 +194,7 @@ func AssignPlan(c *gin.Context) {
 				Delete:         0,
 				PlanId:         plan.Id,
 				ExecutorId:     item.UserId,
+				CompanyId:      groupVo.CompanyId,
 			}
 
 			// 判断任务是否被重复分配, 同时生成分配失败的Task的错误列表及其错误信息

+ 1 - 1
controller/software.go

@@ -11,7 +11,7 @@ func ShowRelatedSoftwares(c *gin.Context) {
 	db := common.GetDB()
 	userId := c.Params.ByName("userId")
 	var softwares []model.Software
-	db.Raw("SELECT DISTINCT software.`id`,software.`name`,software.`type`,software.`report_file`,"+
+	db.Raw("SELECT DISTINCT software.`id`,software.`name`,software.`type`,software.`report_file`, software.`company_id`"+
 		"software.`create_time`,software.`update_time`,software.`delete`,software.`creator_id` FROM task,plan,software"+
 		" WHERE task.plan_id = plan.id and plan.software_id = software.id and "+
 		"task.executor_id = ? and task.`delete` <> 1 and software.`delete` <> 1 order by software.`create_time` desc", userId).Find(&softwares)

+ 9 - 0
controller/user.go

@@ -139,3 +139,12 @@ func GetUsers(c *gin.Context) {
 	response.Success(c, gin.H{"users": res}, "查询成功")
 
 }
+
+func GetUserCompanyId(userId string) int {
+	db := common.GetDB()
+	var company2user model.Company2Users
+	if err := db.Model(&model.Company2Users{}).Where("user_id = ? and state = 1", userId).First(&company2user).Error; err != nil {
+		return -1
+	}
+	return company2user.CompanyId
+}

+ 1 - 0
model/plan.go

@@ -12,6 +12,7 @@ type Plan struct {
 	SoftwareId    string `json:"softwareId" gorm:"column:software_id;type:varchar(128);not null"`
 	CreatedAt     Time   `json:"created_at" gorm:"column:create_time;type:datetime default CURRENT_TIMESTAMP"`
 	UpdatedAt     Time   `json:"updated_at" gorm:"column:update_time;type:datetime default CURRENT_TIMESTAMP"`
+	CompanyId     int    `json:"company_id" gorm:"column:company_id;type:bigint(20)"`
 }
 
 func (Plan) TableName() string {

+ 1 - 0
model/software.go

@@ -9,6 +9,7 @@ type Software struct {
 	Delete     int    `json:"delete" gorm:"type:tinyint(1);not null"`
 	CreatedAt  Time   `json:"created_at" gorm:"column:create_time;type:datetime default CURRENT_TIMESTAMP"`
 	UpdatedAt  Time   `json:"updated_at" gorm:"column:update_time;type:datetime default CURRENT_TIMESTAMP"`
+	CompanyId  int    `json:"company_id" gorm:"column:company_id;type:bigint(20)"`
 }
 
 func (Software) TableName() string {

+ 1 - 0
model/task.go

@@ -16,6 +16,7 @@ type Task struct {
 	Delete         int    `gorm:"type:tinyint(1);not null" json:"delete"`
 	PlanId         string `gorm:"type:varchar(128);not null" json:"planId"`
 	ExecutorId     string `gorm:"type:varchar(128);not null" json:"executorId"`
+	CompanyId      int    `json:"company_id" gorm:"column:company_id;type:bigint(20)"`
 }
 
 func (Task) TableName() string {

+ 1 - 0
router.go

@@ -55,6 +55,7 @@ func CollectRoute(r *gin.Engine) *gin.Engine {
 		company.GET("members/:companyId", controller.GetCompanyMembers)
 		company.DELETE("applyRequest/confirmReject/:userId", controller.ConfirmRejectInfo)
 		company.GET("lists", controller.GetCompanyStatisticsList)
+		company.GET("statistic/:companyId", controller.GetCompanyStatistics)
 	}
 	file := r.Group("files")
 	{

+ 1 - 0
vo/groupVo.go

@@ -3,4 +3,5 @@ package vo
 type GroupVo struct {
 	PlanId      string   `json:"planId"`
 	GroupIdList []string `json:"groupIdList"`
+	CompanyId   int      `json:"companyId"`
 }