正在显示
6 个修改的文件
包含
481 行增加
和
34 行删除
@@ -260,7 +260,7 @@ func (srv ProductTroubleService) ListProductTrouble(param *query.ListProductTrou | @@ -260,7 +260,7 @@ func (srv ProductTroubleService) ListProductTrouble(param *query.ListProductTrou | ||
260 | offset := param.PageSize * (param.PageNumber - 1) | 260 | offset := param.PageSize * (param.PageNumber - 1) |
261 | condition := map[string]interface{}{ | 261 | condition := map[string]interface{}{ |
262 | "limit": limit, | 262 | "limit": limit, |
263 | - "offsett": offset, | 263 | + "offset": offset, |
264 | "companyId": param.CompanyId, | 264 | "companyId": param.CompanyId, |
265 | "orgId": param.OrgId, | 265 | "orgId": param.OrgId, |
266 | } | 266 | } |
1 | package service | 1 | package service |
2 | + | ||
3 | +import ( | ||
4 | + "github.com/linmadan/egglib-go/core/application" | ||
5 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/factory" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/constant" | ||
8 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/dao" | ||
9 | +) | ||
10 | + | ||
11 | +//车间看板(生产) | ||
12 | + | ||
13 | +// 车间描述 | ||
14 | +func (svr *CommonStatisticsService) WorkshopDesc() (interface{}, error) { | ||
15 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
16 | + if err != nil { | ||
17 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
18 | + } | ||
19 | + if err := transactionContext.StartTransaction(); err != nil { | ||
20 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
21 | + } | ||
22 | + defer func() { | ||
23 | + _ = transactionContext.RollbackTransaction() | ||
24 | + }() | ||
25 | + boardShowData, _ := dao.NewBoardShowDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
26 | + workshopDesc, err := boardShowData.WorkshopDesc( | ||
27 | + constant.MANUFACTURE_DEFAULT_COMPANYID, | ||
28 | + constant.MANUFACTURE_DEFAULT_ORGID, | ||
29 | + constant.MANUFACTURE_DEFAULT_WORKSHOPID, | ||
30 | + ) | ||
31 | + if err != nil { | ||
32 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
33 | + } | ||
34 | + //在岗人数 | ||
35 | + onDuty, err := boardShowData.OnDutyCount( | ||
36 | + constant.MANUFACTURE_DEFAULT_COMPANYID, | ||
37 | + constant.MANUFACTURE_DEFAULT_ORGID, | ||
38 | + constant.MANUFACTURE_DEFAULT_WORKSHOPID, | ||
39 | + ) | ||
40 | + if err != nil { | ||
41 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
42 | + } | ||
43 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
44 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
45 | + } | ||
46 | + result := map[string]interface{}{ | ||
47 | + "lines": workshopDesc.Lines, | ||
48 | + "uname": workshopDesc.Uname, | ||
49 | + "workon": workshopDesc.Workon, | ||
50 | + "workshopName": workshopDesc.WorkshopName, | ||
51 | + "onDuty": onDuty, | ||
52 | + } | ||
53 | + return result, nil | ||
54 | +} | ||
55 | + | ||
56 | +// 员工效率排名 | ||
57 | +func (svr *CommonStatisticsService) EmployeeWorkpieceRatio() (interface{}, error) { | ||
58 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
59 | + if err != nil { | ||
60 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
61 | + } | ||
62 | + if err := transactionContext.StartTransaction(); err != nil { | ||
63 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
64 | + } | ||
65 | + defer func() { | ||
66 | + _ = transactionContext.RollbackTransaction() | ||
67 | + }() | ||
68 | + boardShowData, _ := dao.NewBoardShowDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
69 | + result, err := boardShowData.EmployeeWorkpieceRatio( | ||
70 | + constant.MANUFACTURE_DEFAULT_COMPANYID, | ||
71 | + constant.MANUFACTURE_DEFAULT_ORGID, | ||
72 | + constant.MANUFACTURE_DEFAULT_WORKSHOPID, | ||
73 | + ) | ||
74 | + if err != nil { | ||
75 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
76 | + } | ||
77 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
78 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
79 | + } | ||
80 | + listData := map[string]interface{}{ | ||
81 | + "list": result, | ||
82 | + } | ||
83 | + return listData, nil | ||
84 | +} | ||
85 | + | ||
86 | +// TimeSectionProductRecord 时段产能 | ||
87 | +func (svr *CommonStatisticsService) TimeSectionProductRecord() (interface{}, error) { | ||
88 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
89 | + if err != nil { | ||
90 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
91 | + } | ||
92 | + if err := transactionContext.StartTransaction(); err != nil { | ||
93 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
94 | + } | ||
95 | + defer func() { | ||
96 | + _ = transactionContext.RollbackTransaction() | ||
97 | + }() | ||
98 | + boardShowData, _ := dao.NewBoardShowDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
99 | + // todo | ||
100 | + result, err := boardShowData.TimeSectionProductRecord( | ||
101 | + constant.MANUFACTURE_DEFAULT_COMPANYID, | ||
102 | + constant.MANUFACTURE_DEFAULT_ORGID, | ||
103 | + constant.MANUFACTURE_DEFAULT_WORKSHOPID, | ||
104 | + 0, 0, | ||
105 | + ) | ||
106 | + if err != nil { | ||
107 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
108 | + } | ||
109 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
110 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
111 | + } | ||
112 | + listData := map[string]interface{}{ | ||
113 | + "list": result, | ||
114 | + } | ||
115 | + return listData, nil | ||
116 | +} | ||
117 | + | ||
118 | +// TopShow 今日昨日历史最佳 | ||
119 | +func (svr *CommonStatisticsService) TopShow() (interface{}, error) { | ||
120 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
121 | + if err != nil { | ||
122 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
123 | + } | ||
124 | + if err := transactionContext.StartTransaction(); err != nil { | ||
125 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
126 | + } | ||
127 | + defer func() { | ||
128 | + _ = transactionContext.RollbackTransaction() | ||
129 | + }() | ||
130 | + boardShowData, _ := dao.NewBoardShowDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
131 | + result, err := boardShowData.TopShow( | ||
132 | + constant.MANUFACTURE_DEFAULT_COMPANYID, | ||
133 | + constant.MANUFACTURE_DEFAULT_ORGID, | ||
134 | + constant.MANUFACTURE_DEFAULT_WORKSHOPID, | ||
135 | + ) | ||
136 | + if err != nil { | ||
137 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
138 | + } | ||
139 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
140 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
141 | + } | ||
142 | + return result, nil | ||
143 | +} | ||
144 | + | ||
145 | +// ProportionOfSecondLevel 二级品占比 | ||
146 | +func (svr *CommonStatisticsService) ProportionOfSecondLevel() (interface{}, error) { | ||
147 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
148 | + if err != nil { | ||
149 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
150 | + } | ||
151 | + if err := transactionContext.StartTransaction(); err != nil { | ||
152 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
153 | + } | ||
154 | + defer func() { | ||
155 | + _ = transactionContext.RollbackTransaction() | ||
156 | + }() | ||
157 | + boardShowData, _ := dao.NewBoardShowDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
158 | + result, err := boardShowData.ProportionOfSecondLevel( | ||
159 | + constant.MANUFACTURE_DEFAULT_COMPANYID, | ||
160 | + constant.MANUFACTURE_DEFAULT_ORGID, | ||
161 | + constant.MANUFACTURE_DEFAULT_WORKSHOPID, | ||
162 | + ) | ||
163 | + if err != nil { | ||
164 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
165 | + } | ||
166 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
167 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
168 | + } | ||
169 | + listData := map[string]interface{}{ | ||
170 | + "list": result, | ||
171 | + } | ||
172 | + return listData, nil | ||
173 | +} | ||
174 | + | ||
175 | +// SectionProductInfo 工段生产信息 | ||
176 | +func (svr *CommonStatisticsService) SectionProductInfo() (interface{}, error) { | ||
177 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
178 | + if err != nil { | ||
179 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
180 | + } | ||
181 | + if err := transactionContext.StartTransaction(); err != nil { | ||
182 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
183 | + } | ||
184 | + defer func() { | ||
185 | + _ = transactionContext.RollbackTransaction() | ||
186 | + }() | ||
187 | + boardShowData, _ := dao.NewBoardShowDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
188 | + result, err := boardShowData.ProportionOfSecondLevel( | ||
189 | + constant.MANUFACTURE_DEFAULT_COMPANYID, | ||
190 | + constant.MANUFACTURE_DEFAULT_ORGID, | ||
191 | + constant.MANUFACTURE_DEFAULT_WORKSHOPID, | ||
192 | + ) | ||
193 | + if err != nil { | ||
194 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
195 | + } | ||
196 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
197 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
198 | + } | ||
199 | + listData := map[string]interface{}{ | ||
200 | + "list": result, | ||
201 | + } | ||
202 | + return listData, nil | ||
203 | +} | ||
204 | + | ||
205 | +// WorkshopPlanCompletionCurrent 当前计划达成率 | ||
206 | +func (svr *CommonStatisticsService) WorkshopPlanCompletionCurrent() (interface{}, error) { | ||
207 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
208 | + if err != nil { | ||
209 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
210 | + } | ||
211 | + if err := transactionContext.StartTransaction(); err != nil { | ||
212 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
213 | + } | ||
214 | + defer func() { | ||
215 | + _ = transactionContext.RollbackTransaction() | ||
216 | + }() | ||
217 | + boardShowData, _ := dao.NewBoardShowDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
218 | + result, err := boardShowData.WorkshopPlanCompletionCurrent( | ||
219 | + constant.MANUFACTURE_DEFAULT_COMPANYID, | ||
220 | + constant.MANUFACTURE_DEFAULT_ORGID, | ||
221 | + constant.MANUFACTURE_DEFAULT_WORKSHOPID, | ||
222 | + ) | ||
223 | + if err != nil { | ||
224 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
225 | + } | ||
226 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
227 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
228 | + } | ||
229 | + listData := map[string]interface{}{ | ||
230 | + "rate": result, | ||
231 | + } | ||
232 | + return listData, nil | ||
233 | +} | ||
234 | + | ||
235 | +// WorkshopPlanCompletion5Day 近5天计划达成率 | ||
236 | +func (svr *CommonStatisticsService) WorkshopPlanCompletion5Day() (interface{}, error) { | ||
237 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
238 | + if err != nil { | ||
239 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
240 | + } | ||
241 | + if err := transactionContext.StartTransaction(); err != nil { | ||
242 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
243 | + } | ||
244 | + defer func() { | ||
245 | + _ = transactionContext.RollbackTransaction() | ||
246 | + }() | ||
247 | + boardShowData, _ := dao.NewBoardShowDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
248 | + result, err := boardShowData.WorkshopPlanCompletion5Day( | ||
249 | + constant.MANUFACTURE_DEFAULT_COMPANYID, | ||
250 | + constant.MANUFACTURE_DEFAULT_ORGID, | ||
251 | + constant.MANUFACTURE_DEFAULT_WORKSHOPID, | ||
252 | + ) | ||
253 | + if err != nil { | ||
254 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
255 | + } | ||
256 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
257 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
258 | + } | ||
259 | + listData := map[string]interface{}{ | ||
260 | + "list": result, | ||
261 | + } | ||
262 | + return listData, nil | ||
263 | +} | ||
264 | + | ||
265 | +// 批次产能 | ||
266 | +func (svr *CommonStatisticsService) ProductPlan() (interface{}, error) { | ||
267 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
268 | + if err != nil { | ||
269 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
270 | + } | ||
271 | + if err := transactionContext.StartTransaction(); err != nil { | ||
272 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
273 | + } | ||
274 | + defer func() { | ||
275 | + _ = transactionContext.RollbackTransaction() | ||
276 | + }() | ||
277 | + boardShowData, _ := dao.NewBoardShowDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
278 | + result, err := boardShowData.ProductPlan( | ||
279 | + constant.MANUFACTURE_DEFAULT_COMPANYID, | ||
280 | + constant.MANUFACTURE_DEFAULT_ORGID, | ||
281 | + constant.MANUFACTURE_DEFAULT_WORKSHOPID, | ||
282 | + ) | ||
283 | + if err != nil { | ||
284 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
285 | + } | ||
286 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
287 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
288 | + } | ||
289 | + listData := map[string]interface{}{ | ||
290 | + "list": result, | ||
291 | + } | ||
292 | + return listData, nil | ||
293 | +} |
1 | package dao | 1 | package dao |
2 | 2 | ||
3 | -import pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | 3 | +import ( |
4 | + "fmt" | ||
5 | + | ||
6 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
7 | +) | ||
4 | 8 | ||
5 | //车间看板(生产)的展示数据 | 9 | //车间看板(生产)的展示数据 |
6 | 10 | ||
@@ -8,6 +12,16 @@ type BoardShowDao struct { | @@ -8,6 +12,16 @@ type BoardShowDao struct { | ||
8 | transactionContext *pgTransaction.TransactionContext | 12 | transactionContext *pgTransaction.TransactionContext |
9 | } | 13 | } |
10 | 14 | ||
15 | +func NewBoardShowDao(transactionContext *pgTransaction.TransactionContext) (*BoardShowDao, error) { | ||
16 | + if transactionContext == nil { | ||
17 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
18 | + } else { | ||
19 | + return &BoardShowDao{ | ||
20 | + transactionContext: transactionContext, | ||
21 | + }, nil | ||
22 | + } | ||
23 | +} | ||
24 | + | ||
11 | type BoardWorkshopDesc struct { | 25 | type BoardWorkshopDesc struct { |
12 | WorkshopName string `json:"workshopName"` | 26 | WorkshopName string `json:"workshopName"` |
13 | Uname string `json:"uname"` | 27 | Uname string `json:"uname"` |
@@ -15,7 +29,7 @@ type BoardWorkshopDesc struct { | @@ -15,7 +29,7 @@ type BoardWorkshopDesc struct { | ||
15 | Workon string `json:"workon"` | 29 | Workon string `json:"workon"` |
16 | } | 30 | } |
17 | 31 | ||
18 | -//WorkshopDesc 车间描述 | 32 | +// WorkshopDesc 车间描述 |
19 | func (d *BoardShowDao) WorkshopDesc(companyId int, orgId int, workshopId int) (*BoardWorkshopDesc, error) { | 33 | func (d *BoardShowDao) WorkshopDesc(companyId int, orgId int, workshopId int) (*BoardWorkshopDesc, error) { |
20 | sqlStr := `with workshop as ( | 34 | sqlStr := `with workshop as ( |
21 | select a.workshop_name,a.uname,a.line->>'lineName' linename from ( | 35 | select a.workshop_name,a.uname,a.line->>'lineName' linename from ( |
@@ -41,7 +55,7 @@ func (d *BoardShowDao) WorkshopDesc(companyId int, orgId int, workshopId int) (* | @@ -41,7 +55,7 @@ func (d *BoardShowDao) WorkshopDesc(companyId int, orgId int, workshopId int) (* | ||
41 | return &result, nil | 55 | return &result, nil |
42 | } | 56 | } |
43 | 57 | ||
44 | -//在岗人数 | 58 | +// 在岗人数 |
45 | func (d *BoardShowDao) OnDutyCount(companyId int, orgId int, workshopId int) (int, error) { | 59 | func (d *BoardShowDao) OnDutyCount(companyId int, orgId int, workshopId int) (int, error) { |
46 | sqlStr := `select count(distinct product_worker->>'userId') from manufacture.product_attendance_record | 60 | sqlStr := `select count(distinct product_worker->>'userId') from manufacture.product_attendance_record |
47 | where company_id = ? | 61 | where company_id = ? |
@@ -54,7 +68,7 @@ func (d *BoardShowDao) OnDutyCount(companyId int, orgId int, workshopId int) (in | @@ -54,7 +68,7 @@ func (d *BoardShowDao) OnDutyCount(companyId int, orgId int, workshopId int) (in | ||
54 | return cnt, err | 68 | return cnt, err |
55 | } | 69 | } |
56 | 70 | ||
57 | -//员工效率排名 | 71 | +// 员工效率排名 |
58 | type BoardEmployeeWorkpieceRatio struct { | 72 | type BoardEmployeeWorkpieceRatio struct { |
59 | Uname string `json:"uname"` | 73 | Uname string `json:"uname"` |
60 | Today string `json:"today"` | 74 | Today string `json:"today"` |
@@ -62,7 +76,7 @@ type BoardEmployeeWorkpieceRatio struct { | @@ -62,7 +76,7 @@ type BoardEmployeeWorkpieceRatio struct { | ||
62 | History string `json:"history"` | 76 | History string `json:"history"` |
63 | } | 77 | } |
64 | 78 | ||
65 | -//员工效率排名 | 79 | +// 员工效率排名 |
66 | func (d *BoardShowDao) EmployeeWorkpieceRatio(companyId int, orgId int, workshopId int) ( | 80 | func (d *BoardShowDao) EmployeeWorkpieceRatio(companyId int, orgId int, workshopId int) ( |
67 | []BoardEmployeeWorkpieceRatio, error) { | 81 | []BoardEmployeeWorkpieceRatio, error) { |
68 | sqlStr := `with employee_plan_product as( | 82 | sqlStr := `with employee_plan_product as( |
@@ -92,14 +106,14 @@ func (d *BoardShowDao) EmployeeWorkpieceRatio(companyId int, orgId int, workshop | @@ -92,14 +106,14 @@ func (d *BoardShowDao) EmployeeWorkpieceRatio(companyId int, orgId int, workshop | ||
92 | return result, nil | 106 | return result, nil |
93 | } | 107 | } |
94 | 108 | ||
95 | -//时段产能 | 109 | +// 时段产能 |
96 | type BoardTimeSectionProductRecord struct { | 110 | type BoardTimeSectionProductRecord struct { |
97 | Ts string `json:"ts"` | 111 | Ts string `json:"ts"` |
98 | Total string `json:"total"` | 112 | Total string `json:"total"` |
99 | Line string `json:"line"` | 113 | Line string `json:"line"` |
100 | } | 114 | } |
101 | 115 | ||
102 | -//TimeSectionProductRecord 时段产能 | 116 | +// TimeSectionProductRecord 时段产能 |
103 | func (d *BoardShowDao) TimeSectionProductRecord(companyId int, orgId int, workshopId int, lineIdA int, lineIdB int) ( | 117 | func (d *BoardShowDao) TimeSectionProductRecord(companyId int, orgId int, workshopId int, lineIdA int, lineIdB int) ( |
104 | []BoardTimeSectionProductRecord, error, | 118 | []BoardTimeSectionProductRecord, error, |
105 | ) { | 119 | ) { |
@@ -178,14 +192,14 @@ func (d *BoardShowDao) TimeSectionProductRecord(companyId int, orgId int, worksh | @@ -178,14 +192,14 @@ func (d *BoardShowDao) TimeSectionProductRecord(companyId int, orgId int, worksh | ||
178 | return result, err | 192 | return result, err |
179 | } | 193 | } |
180 | 194 | ||
181 | -//今日昨日历史最佳 | 195 | +// 今日昨日历史最佳 |
182 | type BoardTopShow struct { | 196 | type BoardTopShow struct { |
183 | Today string `json:"today"` | 197 | Today string `json:"today"` |
184 | Yesterday string `json:"yesterday"` | 198 | Yesterday string `json:"yesterday"` |
185 | History string `json:"history"` | 199 | History string `json:"history"` |
186 | } | 200 | } |
187 | 201 | ||
188 | -//TopShop 今日昨日历史最佳 | 202 | +// TopShop 今日昨日历史最佳 |
189 | func (d *BoardShowDao) TopShow(companyId int, orgId int, workshopId int) (*BoardTopShow, error) { | 203 | func (d *BoardShowDao) TopShow(companyId int, orgId int, workshopId int) (*BoardTopShow, error) { |
190 | sqlStr := `with today_product as ( | 204 | sqlStr := `with today_product as ( |
191 | select | 205 | select |
@@ -225,13 +239,13 @@ func (d *BoardShowDao) TopShow(companyId int, orgId int, workshopId int) (*Board | @@ -225,13 +239,13 @@ func (d *BoardShowDao) TopShow(companyId int, orgId int, workshopId int) (*Board | ||
225 | return &result, err | 239 | return &result, err |
226 | } | 240 | } |
227 | 241 | ||
228 | -//二级品占比 | 242 | +// 二级品占比 |
229 | type BoardProportionOfSecondLevel struct { | 243 | type BoardProportionOfSecondLevel struct { |
230 | Sname string `json:"sname"` //品名 | 244 | Sname string `json:"sname"` //品名 |
231 | Rate string `json:"rate"` //占比 | 245 | Rate string `json:"rate"` //占比 |
232 | } | 246 | } |
233 | 247 | ||
234 | -//二级品占比 | 248 | +// 二级品占比 |
235 | func (d *BoardShowDao) ProportionOfSecondLevel(companyId int, orgId int, workshopId int) ( | 249 | func (d *BoardShowDao) ProportionOfSecondLevel(companyId int, orgId int, workshopId int) ( |
236 | []BoardProportionOfSecondLevel, error) { | 250 | []BoardProportionOfSecondLevel, error) { |
237 | sqlStr := `with item_product as ( | 251 | sqlStr := `with item_product as ( |
@@ -263,7 +277,7 @@ func (d *BoardShowDao) ProportionOfSecondLevel(companyId int, orgId int, worksho | @@ -263,7 +277,7 @@ func (d *BoardShowDao) ProportionOfSecondLevel(companyId int, orgId int, worksho | ||
263 | return result, err | 277 | return result, err |
264 | } | 278 | } |
265 | 279 | ||
266 | -//工段生产信息 | 280 | +// 工段生产信息 |
267 | type BoardSectionProductInfo struct { | 281 | type BoardSectionProductInfo struct { |
268 | Sname string `json:"sname"` | 282 | Sname string `json:"sname"` |
269 | ProductWeight string `json:"productWeight"` | 283 | ProductWeight string `json:"productWeight"` |
@@ -273,7 +287,7 @@ type BoardSectionProductInfo struct { | @@ -273,7 +287,7 @@ type BoardSectionProductInfo struct { | ||
273 | Sort string `json:"sort"` //排名 | 287 | Sort string `json:"sort"` //排名 |
274 | } | 288 | } |
275 | 289 | ||
276 | -//工段生产信息 | 290 | +// 工段生产信息 |
277 | func (d *BoardShowDao) SectionProductInfo(companyId int, orgId int, workshopId int) ( | 291 | func (d *BoardShowDao) SectionProductInfo(companyId int, orgId int, workshopId int) ( |
278 | []BoardSectionProductInfo, error) { | 292 | []BoardSectionProductInfo, error) { |
279 | sqlStr := `with section_product as( | 293 | sqlStr := `with section_product as( |
@@ -322,7 +336,7 @@ func (d *BoardShowDao) SectionProductInfo(companyId int, orgId int, workshopId i | @@ -322,7 +336,7 @@ func (d *BoardShowDao) SectionProductInfo(companyId int, orgId int, workshopId i | ||
322 | return result, err | 336 | return result, err |
323 | } | 337 | } |
324 | 338 | ||
325 | -//当前计划达成率 | 339 | +// 当前计划达成率 |
326 | func (d *BoardShowDao) WorkshopPlanCompletionCurrent(companyId int, orgId int, workshopId int) (string, error) { | 340 | func (d *BoardShowDao) WorkshopPlanCompletionCurrent(companyId int, orgId int, workshopId int) (string, error) { |
327 | sqlStr := `select rate rate from manufacture.workshop_plan_completion_record where | 341 | sqlStr := `select rate rate from manufacture.workshop_plan_completion_record where |
328 | company_id = ? | 342 | company_id = ? |
@@ -339,23 +353,82 @@ func (d *BoardShowDao) WorkshopPlanCompletionCurrent(companyId int, orgId int, w | @@ -339,23 +353,82 @@ func (d *BoardShowDao) WorkshopPlanCompletionCurrent(companyId int, orgId int, w | ||
339 | return result, err | 353 | return result, err |
340 | } | 354 | } |
341 | 355 | ||
342 | -//近5天 计划达成率 | ||
343 | -func (d *BoardShowDao) WorkshopPlanCompletion5Day(companyId int, orgId int, workshopId int) { | ||
344 | - // sqlStr := `with ts_product as ( | ||
345 | - // select rate, | ||
346 | - // to_char(created_at,'mm-dd') ts | ||
347 | - // from manufacture.workshop_plan_completion_record | ||
348 | - // where company_id = 23 | ||
349 | - // and org_id = 487 | ||
350 | - // and workshop_id= 38 | ||
351 | - // and created_at > (now()-interval '6d') | ||
352 | - // ) | ||
353 | - // ,ts_product_list as ( | ||
354 | - // select d.ts,ts_product.rate from ( | ||
355 | - // select to_char(c.ts::timestamp,'mm-dd') ts from ( | ||
356 | - // select generate_series(now() - interval '4 day',now(),'1 day') ts | ||
357 | - // ) c ) d left join ts_product on d.ts = ts_product.ts | ||
358 | - // ) | ||
359 | - // SELECT ts, coalesce(rate,0) total | ||
360 | - // from ts_product_list` | 356 | +type PlanCompletion5Day struct { |
357 | + Ts string `jsonL:"ts"` | ||
358 | + Total string `json:"total"` | ||
359 | +} | ||
360 | + | ||
361 | +// 近5天 计划达成率 | ||
362 | +func (d *BoardShowDao) WorkshopPlanCompletion5Day(companyId int, orgId int, workshopId int) ([]PlanCompletion5Day, error) { | ||
363 | + sqlStr := `with ts_product as ( | ||
364 | + select rate, | ||
365 | + to_char(created_at,'mm-dd') ts | ||
366 | + from manufacture.workshop_plan_completion_record | ||
367 | + where company_id = ? | ||
368 | + and org_id = ? | ||
369 | + and workshop_id= ? | ||
370 | + and created_at > (now()-interval '6d') | ||
371 | + ) | ||
372 | + ,ts_product_list as ( | ||
373 | + select d.ts,ts_product.rate from ( | ||
374 | + select to_char(c.ts::timestamp,'mm-dd') ts from ( | ||
375 | + select generate_series(now() - interval '4 day',now(),'1 day') ts | ||
376 | + ) c ) d left join ts_product on d.ts = ts_product.ts | ||
377 | + ) | ||
378 | + SELECT ts, coalesce(rate,0) total | ||
379 | + from ts_product_list` | ||
380 | + var result []PlanCompletion5Day | ||
381 | + condition := []interface{}{ | ||
382 | + companyId, orgId, workshopId, | ||
383 | + } | ||
384 | + tx := d.transactionContext.PgTx | ||
385 | + _, err := tx.Query(&result, sqlStr, condition...) | ||
386 | + return result, err | ||
387 | + | ||
388 | +} | ||
389 | + | ||
390 | +// product_plan 批次产能 | ||
391 | +func (d *BoardShowDao) ProductPlan(companyId int, orgId int, workshopId int) ([]PlanCompletion5Day, error) { | ||
392 | + sqlStr := `with product_record as ( | ||
393 | + select | ||
394 | + (case when product_record_type=1 then cast(product_record_info->>'weigh' as DECIMAL) | ||
395 | + ELSE -(cast(product_record_info->>'weigh' as DECIMAL)) | ||
396 | + END) as weight, | ||
397 | + cast(product_record_info->>'productPlanId' as INTEGER) plan_id | ||
398 | + from manufacture.product_records | ||
399 | + where company_id =? | ||
400 | + and org_id = ? | ||
401 | + and work_station->>'workshopId'='?' | ||
402 | + and work_station->>'sectionName'='包装' | ||
403 | + and product_record_type in (1,2) | ||
404 | + and created_at>to_date(to_char((now() -interval '3 day'), 'YYYY-MM-DD'),'YYYY-MM-DD') --'2022-01-01' -- | ||
405 | + ), product_record_sum as( | ||
406 | + select sum(weight) weight,plan_id | ||
407 | + from product_record | ||
408 | + GROUP BY plan_id | ||
409 | + ) | ||
410 | + select | ||
411 | + a.product_plan_id | ||
412 | + ,batch_number --批次号 | ||
413 | + ,plan_product_name --品名 | ||
414 | + ,machine --机台 | ||
415 | + ,coalesce(plan_devoted->>'unit','') unit --规格 | ||
416 | + ,cast(coalesce(plan_devoted->>'quantity','0') as DECIMAL) quantity -- 数量 | ||
417 | + ,cast(coalesce(plan_devoted->>'weight','0')as DECIMAL) plan_weight -- 计划重量 | ||
418 | + , coalesce(b.weight,0) real_weight --批次实际产能 | ||
419 | + from manufacture.product_plan a left join product_record_sum b on a.product_plan_id = b.plan_id | ||
420 | + where company_id = ? | ||
421 | + and org_id = ? | ||
422 | + and workshop->>'workshopId'='?' | ||
423 | + and product_date >to_date(to_char(now() -interval '3 day', 'YYYY-MM-DD'),'YYYY-MM-DD') | ||
424 | + and cast(coalesce(plan_devoted->>'weight','0')as DECIMAL) >0 | ||
425 | + order by created_at desc` | ||
426 | + var result []PlanCompletion5Day | ||
427 | + condition := []interface{}{ | ||
428 | + companyId, orgId, workshopId, | ||
429 | + companyId, orgId, workshopId, | ||
430 | + } | ||
431 | + tx := d.transactionContext.PgTx | ||
432 | + _, err := tx.Query(&result, sqlStr, condition...) | ||
433 | + return result, err | ||
361 | } | 434 | } |
@@ -125,6 +125,7 @@ func (repo *ProductTroubleRepository) Find(queryOptions map[string]interface{}) | @@ -125,6 +125,7 @@ func (repo *ProductTroubleRepository) Find(queryOptions map[string]interface{}) | ||
125 | query.Where(fmt.Sprintf(`product_worker->>'userName' like '%%%v%%'`, v)) | 125 | query.Where(fmt.Sprintf(`product_worker->>'userName' like '%%%v%%'`, v)) |
126 | } | 126 | } |
127 | 127 | ||
128 | + //TODO | ||
128 | cnt, err := query.SelectAndCount() | 129 | cnt, err := query.SelectAndCount() |
129 | if err != nil { | 130 | if err != nil { |
130 | return 0, nil, err | 131 | return 0, nil, err |
1 | +package controllers | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/linmadan/egglib-go/web/beego" | ||
5 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/statistics/service" | ||
6 | +) | ||
7 | + | ||
8 | +type BoardDataController struct { | ||
9 | + beego.BaseController | ||
10 | +} | ||
11 | + | ||
12 | +func (c *BoardDataController) WorkshopDesc() { | ||
13 | + srv := service.NewCommonStatisticsService(nil) | ||
14 | + data, err := srv.WorkshopDesc() | ||
15 | + c.Response(data, err) | ||
16 | +} | ||
17 | + | ||
18 | +func (c *BoardDataController) EmployeeWorkpieceRatio() { | ||
19 | + srv := service.NewCommonStatisticsService(nil) | ||
20 | + data, err := srv.EmployeeWorkpieceRatio() | ||
21 | + c.Response(data, err) | ||
22 | +} | ||
23 | + | ||
24 | +func (c *BoardDataController) TimeSectionProductRecord() { | ||
25 | + srv := service.NewCommonStatisticsService(nil) | ||
26 | + data, err := srv.TimeSectionProductRecord() | ||
27 | + c.Response(data, err) | ||
28 | +} | ||
29 | + | ||
30 | +func (c *BoardDataController) TopShow() { | ||
31 | + srv := service.NewCommonStatisticsService(nil) | ||
32 | + data, err := srv.TopShow() | ||
33 | + c.Response(data, err) | ||
34 | +} | ||
35 | + | ||
36 | +func (c *BoardDataController) ProportionOfSecondLevel() { | ||
37 | + srv := service.NewCommonStatisticsService(nil) | ||
38 | + data, err := srv.ProportionOfSecondLevel() | ||
39 | + c.Response(data, err) | ||
40 | +} | ||
41 | + | ||
42 | +func (c *BoardDataController) SectionProductInfo() { | ||
43 | + srv := service.NewCommonStatisticsService(nil) | ||
44 | + data, err := srv.SectionProductInfo() | ||
45 | + c.Response(data, err) | ||
46 | +} | ||
47 | + | ||
48 | +func (c *BoardDataController) WorkshopPlanCompletionCurrent() { | ||
49 | + srv := service.NewCommonStatisticsService(nil) | ||
50 | + data, err := srv.WorkshopPlanCompletionCurrent() | ||
51 | + c.Response(data, err) | ||
52 | +} | ||
53 | + | ||
54 | +func (c *BoardDataController) WorkshopPlanCompletion5Day() { | ||
55 | + srv := service.NewCommonStatisticsService(nil) | ||
56 | + data, err := srv.WorkshopPlanCompletion5Day() | ||
57 | + c.Response(data, err) | ||
58 | +} | ||
59 | + | ||
60 | +func (c *BoardDataController) ProductPlan() { | ||
61 | + srv := service.NewCommonStatisticsService(nil) | ||
62 | + data, err := srv.ProductPlan() | ||
63 | + c.Response(data, err) | ||
64 | +} |
pkg/port/beego/routers/board_show_router.go
0 → 100644
1 | +package routers | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/beego/beego/v2/server/web" | ||
5 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/port/beego/controllers" | ||
6 | +) | ||
7 | + | ||
8 | +func init() { | ||
9 | + web.Router("/workshop-public-notice/workshop", &controllers.BoardDataController{}, "Get:WorkshopDesc") | ||
10 | + web.Router("/workshop-public-notice/employee/workpiece-ratio", &controllers.BoardDataController{}, "Get:EmployeeWorkpieceRatio") | ||
11 | + web.Router("/workshop-public-notice/section-product-info", &controllers.BoardDataController{}, "Get:TimeSectionProductRecord") | ||
12 | + web.Router("/workshop-public-notice/proportion-of-second-level", &controllers.BoardDataController{}, "Get:ProportionOfSecondLevel") | ||
13 | + web.Router("/workshop-public-notice/top-show", &controllers.BoardDataController{}, "Get:TopShow") | ||
14 | + web.Router("/workshop-public-notice/product_plan", &controllers.BoardDataController{}, "Get:ProductPlan") | ||
15 | + web.Router("/workshop-public-notice/workshop-plan-completion/current", &controllers.BoardDataController{}, "Get:WorkshopPlanCompletionCurrent") | ||
16 | + web.Router("/workshop-public-notice/workshop-plan-completion/5day", &controllers.BoardDataController{}, "Get:WorkshopPlanCompletion5Day") | ||
17 | +} |
-
请 注册 或 登录 后发表评论