zhangqian
2024-04-19 cdb38521ea1f662b53bafb87412c38dfd0d5e11d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
package purchase
 
import (
    "context"
    "github.com/gin-gonic/gin"
    "go.uber.org/zap"
    "srm/global"
    "srm/model/common/response"
    "srm/model/purchase"
    purchaserequest "srm/model/purchase/request"
    purchaseRes "srm/model/purchase/response"
    "srm/proto/qualityinspect"
    service "srm/service/purchase"
    "srm/utils"
)
 
type QualityInspectApi struct{}
 
// GetQualityInspectList
// @Tags      QualityInspect
// @Summary   分页获取质检单列表
// @Security  ApiKeyAuth
// @accept    application/json
// @Produce   application/json
// @Param     data  query     purchaserequest.PurchaseSearch                                       true  "参数"
// @Success   200   {object}  response.Response{data=response.PageResult,msg=string}  "分页获取质检单列表,返回包括列表,总数,页码,每页数量"
// @Router    /purchase/qualityInspectList [get]
func (e *QualityInspectApi) GetQualityInspectList(c *gin.Context) {
    var pageInfo purchaserequest.PurchaseSearch
    err := c.ShouldBindQuery(&pageInfo)
    if err != nil {
        response.FailWithMessage(err.Error(), c)
        return
    }
    err = utils.Verify(pageInfo, utils.PageInfoVerify)
    if err != nil {
        response.FailWithMessage(err.Error(), c)
        return
    }
    list, total, err := service.NewPurchaseService().GetPurchaseList(pageInfo)
    purchaseList := list.([]*purchase.Purchase)
    purchaseNumbers := make([]string, 0, len(purchaseList))
    for _, item := range purchaseList {
        purchaseNumbers = append(purchaseNumbers, item.Number)
    }
    resultList := make([]*purchaseRes.QualityInspectList, 0, len(purchaseList))
    if len(purchaseList) != 0 {
        err = utils.AssignTo(purchaseList, &resultList)
        if err != nil {
            global.GVA_LOG.Error("mapStructure decode", zap.Error(err))
            response.FailWithMessage("内部错误", c)
            return
        }
 
        client := qualityinspect.NewQualityInspectServiceClient(qualityinspect.Conn)
        inspectList, err := client.GetInspectList(context.Background(), &qualityinspect.GetInspectListRequest{
            PurchaseOrderId: purchaseNumbers,
        })
        if err != nil {
            global.GVA_LOG.Error("GetInspectList", zap.Error(err))
            response.FailWithMessage("内部错误", c)
            return
        }
 
        inspectUnFinishedMap := make(map[string]bool, len(purchaseNumbers)) //默认完成
        for _, inspectItem := range inspectList.List {
            if inspectItem.Status != qualityinspect.InspectStatus_InspectStatusInspectFinish {
                inspectUnFinishedMap[inspectItem.PurchaseOrderId] = true
            }
        }
 
        for _, result := range resultList {
            if inspectUnFinishedMap[result.Number] {
                result.InspectStatus = "待质检"
            } else {
                result.InspectStatus = "已完成"
            }
        }
    }
    response.OkWithDetailed(response.PageResult{
        List:     resultList,
        Total:    total,
        Page:     pageInfo.Page,
        PageSize: pageInfo.PageSize,
    }, "获取成功", c)
}
 
//
//// QualityTest
//// @Tags      QualityInspect
//// @Summary   QualityTest
//// @Security  ApiKeyAuth
//// @accept    application/json
//// @Produce   application/json
//// @Success   200   {object}  response.Response{data=response.PageResult,msg=string}  "分页获取质检单列表,返回包括列表,总数,页码,每页数量"
//// @Router    /purchase/qualityTest [get]
//func (e *QualityInspectApi) QualityTest(c *gin.Context) {
//    client := quality.NewQualityServiceClient(qualityinspect.Conn)
//    list, err := client.GetQualityStatusList(context.Background(), &quality.QualityStatusRequest{WorkOrderId: []string{"GD-0116", "GD-0117", "GD-0156"}})
//    if err != nil {
//        fmt.Println(err)
//        response.FailWithMessage("内部错误", c)
//        return
//    }
//    for _, status := range list.List {
//        fmt.Println(status)
//    }
//    response.Ok(c)
//}
 
//
//// GetQualityInspect
//// @Tags      QualityInspect
//// @Summary   获取单一质检单信息
//// @Security  ApiKeyAuth
//// @accept    application/json
//// @Produce   application/json
//// @Param        id    path        int    true    "质检单ID"                                           true  "质检单ID"
//// @Success   200   {object}  response.Response{data=QualityInspectRes.QualityInspectResponse,msg=string}  "获取单一质检单信息,返回包括质检单详情"
//// @Router    /purchase/qualityInspect/{id} [get]
//func (e *QualityInspectApi) GetQualityInspect(c *gin.Context) {
//    id, _ := strconv.Atoi(c.Param("id"))
//    if id == 0 {
//        response.FailWithMessage("参数缺失", c)
//        return
//    }
//    data, err := service.NewPurchaseService().GetPurchase(uint(id))
//    if err != nil {
//        global.GVA_LOG.Error("获取失败!", zap.Error(err))
//        response.FailWithMessage("获取失败", c)
//        return
//    }
//    productList, err := service.NewPurchaseService().GetPurchaseProductList(uint(id))
//    if err != nil {
//        global.GVA_LOG.Error("获取失败!", zap.Error(err))
//        response.FailWithMessage("获取失败", c)
//        return
//    }
//    respProductList := make([]*purchaseRes.PurchaseProducts, len(productList))
//    err = mapstructure.Decode(productList, &respProductList)
//    if err != nil {
//        global.GVA_LOG.Error("获取失败!", zap.Error(err))
//        response.FailWithMessage("获取失败", c)
//        return
//    }
//    for k, item := range productList {
//        respProductList[k].Amount = item.Amount
//        respProductList[k].Price = item.Price
//        respProductList[k].Total = item.Total
//        err = mapstructure.Decode(item.Product, &respProductList[k])
//        if err != nil {
//            global.GVA_LOG.Error("获取失败!", zap.Error(err))
//            response.FailWithMessage("获取失败", c)
//            return
//        }
//    }
//
//    response.OkWithDetailed(purchaseRes.PurchaseResponse{Purchase: data, ProductList: respProductList}, "获取成功", c)
//}