Browse Source

Merge pull request 'feature_CustomizedQuery' (#150) from feature_CustomizedQuery into develop

Reviewed-on: http://101.201.121.115:3000/leo/LAPP_Acura_MES_Backend/pulls/150
pull/155/head
zhangxin 3 years ago
parent
commit
c914a4238e
5 changed files with 669 additions and 7 deletions
  1. +89
    -0
      services/report/CustomizedQuery.service.go
  2. +456
    -0
      services/report/implments/CustomizedQuery.service.impl.go
  3. +7
    -7
      services/report/implments/FilterDataInfo.service.impl.go
  4. +115
    -0
      web/controllers/report/CustomizedQuery.rest.go
  5. +2
    -0
      web/controllers/report/report.go

+ 89
- 0
services/report/CustomizedQuery.service.go View File

@ -0,0 +1,89 @@
// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
package report
import (
"LAPP_ACURA_MOM_BACKEND/global"
impl "LAPP_ACURA_MOM_BACKEND/services/report/implments"
)
/******************************************************************************
*
* @Interface Name : CustomizedQueryService
*-----------------------------------------------------------------------------
*
* @Description : 定制查询服务接口
*
* @Author : chenglei.wei@le-it.com.cn
*
* @Date : 2022-03-08 17:50
*
******************************************************************************/
type CustomizedQueryService interface {
/******************************************************************************
*
* @Function Name : ProductFamilyInventoryQuery
*-----------------------------------------------------------------------------
*
* @Description : 派生库存查询
*
* @Function Parameters : 当前访问人员信息
*
* @Function Parameters : 派生号
*
* @Function Parameters : 项目
*
* @Function Parameters : 座椅条码
*
* @Return Value : 查询结果
*
* @Return Value : 执行时发生的错误
*
* @Author : chenglei.wei@le-it.com.cn
*
* @Date : 2022-03-08 17:56
*
******************************************************************************/
ProductFamilyInventoryQuery(*global.User, string, string, string) ([]impl.ProductFamilyInventoryQuery_ProductFamilyStatistics, error)
/******************************************************************************
*
* @Function Name : SeatQuery
*-----------------------------------------------------------------------------
*
* @Description : 座椅查询
*
* @Function Parameters : 当前访问人员信息
*
* @Function Parameters : 座椅条码
*
* @Function Parameters : 状态已打包已目检
*
* @Return Value : 查询结果
*
* @Return Value : 执行时发生的错误
*
* @Author : chenglei.wei@le-it.com.cn
*
* @Date : 2022-03-08 17:58
*
******************************************************************************/
SeatQuery(*global.User, string, string) ([]impl.SeatQuery_PackOrderSummary, error)
}
/******************************************************************************
*
* @Function Name : NewCustomizedQueryService
*-----------------------------------------------------------------------------
*
* @Description : 创建一个CustomizedQueryService
*
* @Return Value : CustomizedQueryService实例
*
* @Author : chenglei.wei@le-it.com.cn
*
* @Date : 2022-03-09 10:48
*
******************************************************************************/
func NewCustomizedQueryService() CustomizedQueryService {
return impl.NewCustomizedQueryServiceImplement()
}

+ 456
- 0
services/report/implments/CustomizedQuery.service.impl.go View File

@ -0,0 +1,456 @@
package implments
import (
"LAPP_ACURA_MOM_BACKEND/db"
"LAPP_ACURA_MOM_BACKEND/global"
"LAPP_ACURA_MOM_BACKEND/grmi"
jitMeta "LAPP_ACURA_MOM_BACKEND/meta/jit"
omMeta "LAPP_ACURA_MOM_BACKEND/meta/om"
jitModel "LAPP_ACURA_MOM_BACKEND/models/jit"
omModel "LAPP_ACURA_MOM_BACKEND/models/om"
"fmt"
"github.com/go-xorm/xorm"
"sort"
"strings"
)
type SeatQuery_PackOrderSummary struct {
PackOrderId string `json:"SeatQuery_PackOrderId"` // 包装单号
QualityCheckTime grmi.DateTime `json:"SeatQuery_QualityCheckTime"` // 目检时间
PackTime grmi.DateTime `json:"SeatQuery_PackTime"` // 打包时间
ShipOrderId string `json:"SeatQuery_ShipOrderId"` // 发运单号
ShipTime grmi.DateTime `json:"SeatQuery_ShipTime"` // 发运时间
ShipType string `json:"SeatQuery_ShipType` // 发运模式
ProductFamilies string `json:"SeatQuery_ProductFamilies"` // 座椅关联的派生
}
type ProductFamilyInventoryQuery_ProductFamilyStatistics struct {
ProductFamilyId string `json:"ProductFamilyInventoryQuery_ProductFamilyId"` // 派生号
InventoryQuantity float64 `json:"ProductFamilyInventoryQuery_InventoryQuantity"` // 库存数量
PackOrders []ProductFamilyInventoryQuery_PackOrderSummary `json:"ProductFamilyInventoryQuery_PackOrders"` // 派生关联的包装单
}
type ProductFamilyInventoryQuery_PackOrderSummary struct {
InventoryQuantity float64 `json:"ProductFamilyInventoryQuery_InventoryQuantity"` // 库存数量
PackOrderId string `json:"ProductFamilyInventoryQuery_PackOrderId"` // 包装单号
PackStatus int `json:"ProductFamilyInventoryQuery_PackStatus"` // 包装状态
PackTime *grmi.DateTime `json:"ProductFamilyInventoryQuery_PackTime"` // 包装时间
ShipOrderId string `json:"ProductFamilyInventoryQuery_ShipOrderId"` // 发运单号
ShipTime *grmi.DateTime `json:"ProductFamilyInventoryQuery_ShipTime"` // 发运时间
ShipType string `json:"ProductFamilyInventoryQuery_ShipType"` // 发运模式
Seats []ProductFamilyInventoryQuery_SeatSummary `json:"ProductFamilyInventoryQuery_Seats"` // 包装单关联的座椅
}
type ProductFamilyInventoryQuery_SeatSummary struct {
SerialOrderId string `json:"ProductFamilyInventoryQuery_SerialOrderId"` // 座椅条码
}
type wrapper_SerialOrder struct {
omModel.SerialOrder `xorm:"extends"`
omModel.SerialOrderStatus `xorm:"extends"`
jitModel.PackOrderItemLst `xorm:"extends"`
}
type wrapper_PackOrder struct {
jitModel.PackOrder `xorm:"extends"`
jitModel.PackOrderStatus `xorm:"extends"`
jitModel.ShipOrderDataLst `xorm:"extends"`
ProductFamilyKey string `xorm:"-"`
}
func (packOrder *wrapper_PackOrder) PackStatus() int {
if packOrder.PackOrderStatus.Status == 80 {
if packOrder.PackOrderStatus.ShipStatus < 80 {
return 1
} else if packOrder.PackOrderStatus.ShipStatus == 80 {
return 2
} else {
return 3
}
}
return 0
}
func (packOrder *wrapper_PackOrder) PackTime() *grmi.DateTime {
if packOrder.PackOrderStatus.Status == 80 {
return &packOrder.PackOrder.CloseTime
}
return nil
}
func (packOrder *wrapper_PackOrder) IsInventory() bool {
return packOrder.PackOrderStatus.Status == 80 && packOrder.PackOrderStatus.ShipStatus < 80
}
type wrapper_ShipOrder struct {
jitModel.ShipOrder `xorm:"extends"`
jitModel.ShipOrderStatus `xorm:"extends"`
}
func (shipOrder *wrapper_ShipOrder) ShipTime() *grmi.DateTime {
if shipOrder.ShipOrderStatus.Status == 80 {
return &shipOrder.ShipOrder.CloseTime
}
return nil
}
/******************************************************************************
*
* @Struct Name : CustomizedQueryServiceImplement
*-----------------------------------------------------------------------------
*
* @Description : CustomizedQuery的服务实现
*
*
* @Author : chenglei.wei@le-it.com.cn
*
* @Date : 2022-03-09 10:44
*
******************************************************************************/
type CustomizedQueryServiceImplement struct {
}
/******************************************************************************
*
* @Function Name : NewCustomizedQueryServiceImplement
*-----------------------------------------------------------------------------
*
* @Description : 创建一个CustomizedQueryServiceImplement实例
*
* @Return Value : CustomizedQueryServiceImplement实例
*
* @Author : chenglei.wei@le-it.com.cn
*
* @Date : 2022-03-09 11:02
*
******************************************************************************/
func NewCustomizedQueryServiceImplement() *CustomizedQueryServiceImplement {
return &CustomizedQueryServiceImplement{}
}
func (impl *CustomizedQueryServiceImplement) querySerialOrdersWithMapping(user *global.User, session *xorm.Session, projectId string) (shipOrders []wrapper_ShipOrder, packOrderGroups map[string][]*wrapper_PackOrder, serialOrderGroups map[string][]*wrapper_SerialOrder, productFamilyKeyMapping map[string][]string, err error) {
// 查询座椅-座椅状态-包装单项
serialOrders := make([]wrapper_SerialOrder, 0, 1000)
{
query := session.Table(omMeta.SerialOrder.TableName)
query = query.Join("INNER", omMeta.SerialOrderStatus.TableName, fmt.Sprintf("%s = %s and %s = %s", omMeta.SerialOrder_PlantNr.ColumnName, omMeta.SerialOrderStatus_PlantNr.ColumnName, omMeta.SerialOrder_SerialOrderId.ColumnName, omMeta.SerialOrderStatus_SerialOrderId.ColumnName))
query = query.Join("LEFT OUTER", jitMeta.PackOrderItemLst.TableName, fmt.Sprintf("%s = %s and %s = %s", omMeta.SerialOrder_PlantNr.ColumnName, jitMeta.PackOrderItemLst_PlantNr.ColumnName, omMeta.SerialOrder_SerialOrderId.ColumnName, jitMeta.PackOrderItemLst_SerialOrderId.ColumnName))
query = query.Where(fmt.Sprintf("%s = ?", omMeta.SerialOrder_PlantNr.ColumnName), user.PlantNr)
query = query.Where(fmt.Sprintf("%s <> 'PRE'", omMeta.SerialOrder_OrderType.ColumnName))
query = query.Where(fmt.Sprintf("%s <> 1", omMeta.SerialOrder_GenerateFlag.ColumnName))
if projectId != "" {
query = query.Where(fmt.Sprintf("%s = ?", omMeta.SerialOrder_ProjectId.ColumnName), projectId)
}
err = query.Find(&serialOrders)
if err != nil {
return
}
}
// 查询包装单-包装单状态-发运单项
packOrders := make([]wrapper_PackOrder, 0, 1000)
{
query := session.Table(jitMeta.PackOrder.TableName)
query = query.Join("INNER", jitMeta.PackOrderStatus.TableName, fmt.Sprintf("%s = %s and %s = %s", jitMeta.PackOrder_PlantNr.ColumnName, jitMeta.PackOrderStatus_PlantNr.ColumnName, jitMeta.PackOrder_PackOrderId.ColumnName, jitMeta.PackOrderStatus_PackOrderId.ColumnName))
query = query.Join("LEFT OUTER", jitMeta.ShipOrderDataLst.TableName, fmt.Sprintf("%s = %s and %s = %s", jitMeta.PackOrder_PlantNr.ColumnName, jitMeta.ShipOrderDataLst_PlantNr.ColumnName, jitMeta.PackOrder_PackOrderId.ColumnName, jitMeta.ShipOrderDataLst_PackOrderId.ColumnName))
query = query.Where(fmt.Sprintf("%s = ?", jitMeta.PackOrder_PlantNr.ColumnName), user.PlantNr)
if projectId != "" {
query = query.Where(fmt.Sprintf("%s = ?", jitMeta.PackOrder_ProjectId.ColumnName), projectId)
}
err = query.Find(&packOrders)
if err != nil {
return
}
}
// 查询发运单-发运单状态
allShipOrders := make([]wrapper_ShipOrder, 0, 1000)
{
query := session.Table(jitMeta.ShipOrder.TableName)
query = query.Join("INNER", jitMeta.ShipOrderStatus.TableName, fmt.Sprintf("%s = %s and %s = %s", jitMeta.ShipOrder_PlantNr.ColumnName, jitMeta.ShipOrderStatus_PlantNr.ColumnName, jitMeta.ShipOrder_ShipOrderId.ColumnName, jitMeta.ShipOrderStatus_ShipOrderId.ColumnName))
query = query.Where(fmt.Sprintf("%s = ?", jitMeta.ShipOrder_PlantNr.ColumnName), user.PlantNr)
if projectId != "" {
query = query.Where(fmt.Sprintf("%s = ?", jitMeta.ShipOrder_ProjectId.ColumnName), projectId)
}
err = query.Find(&allShipOrders)
if err != nil {
return
}
}
// 合并正式发运单和预发运单
shipOrderMapping := make(map[string]wrapper_ShipOrder)
for _, shipOrder := range shipOrders {
if shipOrder.ShipType == "ADVANCE" {
shipOrderMapping[shipOrder.ShipOrder.ShipOrderId] = shipOrder
}
}
for _, shipOrder := range shipOrders {
if shipOrder.ShipType == "FORMAL" {
if _, ok := shipOrderMapping[shipOrder.ShipOrder.SourceId]; ok {
delete(shipOrderMapping, shipOrder.ShipOrder.SourceId)
}
shipOrderMapping[shipOrder.ShipOrder.ShipOrderId] = shipOrder
}
}
shipOrders = make([]wrapper_ShipOrder, 0, 100)
for _, shipOrder := range shipOrderMapping {
shipOrders = append(shipOrders, shipOrder)
}
// 查询包装单模板项
templateItems := make([]jitModel.PackTemplateItemLst, 0, 10)
{
query := session.Table(jitMeta.PackTemplateItemLst.TableName)
query = query.Select(fmt.Sprintf("%s.*", jitMeta.PackTemplateItemLst.TableName))
query = query.Join("INNER", jitMeta.PackTemplate.TableName, fmt.Sprintf("%s = %s and %s = %s", jitMeta.PackTemplateItemLst_PlantNr.ColumnName, jitMeta.PackTemplate_PlantNr.ColumnName, jitMeta.PackTemplateItemLst_PackTemplateId.ColumnName, jitMeta.PackTemplate_PackTemplateId.ColumnName))
query = query.Where(fmt.Sprintf("%s = ?", jitMeta.PackTemplate_PlantNr.ColumnName), user.PlantNr)
query = query.Where(fmt.Sprintf("%s = 1", jitMeta.PackTemplate_EnabledToggle.ColumnName))
if projectId != "" {
query = query.Where(fmt.Sprintf("%s = ?", jitMeta.PackTemplate_ProjectId.ColumnName), projectId)
}
err = query.Find(&templateItems)
if err != nil {
return
}
}
// 按包装单模板分组包装单模板项
templateItemGroups := make(map[string][]*jitModel.PackTemplateItemLst)
for i := 0; i < len(templateItems); i++ {
templateItem := templateItems[i]
group, ok := templateItemGroups[templateItem.PackTemplateId]
if !ok {
group = make([]*jitModel.PackTemplateItemLst, 0, 10)
}
templateItemGroups[templateItem.PackTemplateId] = append(group, &templateItems[i])
}
// 计算系统中现有派生
productFamilyKeyMapping = make(map[string][]string)
for packTemplateId, group := range templateItemGroups {
parts := make([]string, 0, 10)
for _, templateItem := range group {
parts = append(parts, templateItem.PartId)
}
sort.Strings(parts)
productFamilyKey := strings.Join(parts, ",")
packTemplateIdGroup, ok := productFamilyKeyMapping[productFamilyKey]
if !ok {
packTemplateIdGroup = make([]string, 0, 10)
}
productFamilyKeyMapping[productFamilyKey] = append(packTemplateIdGroup, packTemplateId)
}
// 按发运单分组包装单, key为"" 为没有关联到发运单的包装单(不应该出现)
packOrderGroups = make(map[string][]*wrapper_PackOrder)
for i := 0; i < len(packOrders); i++ {
packOrder := packOrders[i]
group, ok := packOrderGroups[packOrder.ShipOrderId]
if !ok {
group = make([]*wrapper_PackOrder, 0, 10)
}
group = append(group, &packOrders[i])
packOrderGroups[packOrder.ShipOrderId] = group
}
// 按包装单分组座椅, key为"" 为没有关联到包装单的座椅
serialOrderGroups = make(map[string][]*wrapper_SerialOrder)
for i := 0; i < len(serialOrders); i++ {
serialOrder := serialOrders[i]
group, ok := serialOrderGroups[serialOrder.PackOrderId]
if !ok {
group = make([]*wrapper_SerialOrder, 0, 10)
}
group = append(group, &serialOrders[i])
serialOrderGroups[serialOrder.PackOrderId] = group
}
// 计算包装单的派生
for i := 0; i < len(packOrders); i++ {
if serialOrderGroup, ok := serialOrderGroups[packOrders[i].PackOrder.PackOrderId]; ok {
parts := make([]string, 0, 10)
for _, serialOrder := range serialOrderGroup {
parts = append(parts, serialOrder.PartId)
}
sort.Strings(parts)
packOrders[i].ProductFamilyKey = strings.Join(parts, ",")
}
}
return
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/report/CustomizedQueryService.ProductFamilyInventoryQuery
*
******************************************************************************/
func (impl *CustomizedQueryServiceImplement) ProductFamilyInventoryQuery(user *global.User, productFamilyId string, projectId string, serialOrderId string) (result []ProductFamilyInventoryQuery_ProductFamilyStatistics, err error) {
productFamilyId = strings.TrimSpace(productFamilyId)
projectId = strings.TrimSpace(projectId)
serialOrderId = strings.TrimSpace(serialOrderId)
engine := db.Eloquent.Master()
session := engine.NewSession()
engine.ShowSQL(true)
shipOrders, packOrderGroups, serialOrderGroups, productFamilyKeyMapping, err := impl.querySerialOrdersWithMapping(user, session, projectId)
if err != nil {
return
}
productFamilyStatisticsMapping := make(map[string]*ProductFamilyInventoryQuery_ProductFamilyStatistics)
for _, packTemplateIdGroup := range productFamilyKeyMapping {
for _, packTemplateId := range packTemplateIdGroup {
if productFamilyId != "" && packTemplateId != packTemplateId {
continue
}
productFamilyStatistics := ProductFamilyInventoryQuery_ProductFamilyStatistics{
ProductFamilyId: packTemplateId,
PackOrders: make([]ProductFamilyInventoryQuery_PackOrderSummary, 0, 10),
}
productFamilyStatisticsMapping[packTemplateId] = &productFamilyStatistics
}
}
for _, shipOrder := range shipOrders {
packOrderGroup, ok := packOrderGroups[shipOrder.ShipOrder.ShipOrderId]
if !ok {
continue
}
delete(packOrderGroups, shipOrder.ShipOrder.ShipOrderId)
for _, packOrder := range packOrderGroup {
// 没找到座椅
serialOrderGroup, ok := serialOrderGroups[packOrder.PackOrder.PackOrderId]
if !ok {
continue
}
delete(serialOrderGroups, packOrder.PackOrder.PackOrderId)
seats := make([]ProductFamilyInventoryQuery_SeatSummary, 0, 10)
for _, serialOrder := range serialOrderGroup {
if serialOrderId == "" || serialOrderId == serialOrder.SerialOrder.SerialOrderId {
seats = append(seats, ProductFamilyInventoryQuery_SeatSummary{
SerialOrderId: serialOrder.SerialOrder.SerialOrderId,
})
}
}
// 没有匹配的座椅
if len(seats) <= 0 {
continue
}
var inventoryQuantity float64 = 0
if packOrder.IsInventory() {
inventoryQuantity = float64(len(seats))
}
// 没找到派生
packTemplateIds, ok := productFamilyKeyMapping[packOrder.ProductFamilyKey]
if !ok {
continue
}
packOrderSummary := ProductFamilyInventoryQuery_PackOrderSummary{
PackOrderId: packOrder.PackOrder.PackOrderId,
InventoryQuantity: inventoryQuantity,
PackStatus: packOrder.PackStatus(),
PackTime: packOrder.PackTime(),
ShipOrderId: shipOrder.ShipOrder.ShipOrderId,
ShipTime: shipOrder.ShipTime(),
ShipType: shipOrder.ShipType,
Seats: seats,
}
for _, packTemplateId := range packTemplateIds {
// 没找到模板
productFamilyStatistics, ok := productFamilyStatisticsMapping[packTemplateId]
if !ok {
continue
}
productFamilyStatisticsMapping[packTemplateId].InventoryQuantity += inventoryQuantity
productFamilyStatisticsMapping[packTemplateId].PackOrders = append(productFamilyStatistics.PackOrders, packOrderSummary)
}
}
}
packOrderGroup, ok := packOrderGroups[""] // 未关联发运单的包装单
if ok {
for _, packOrder := range packOrderGroup {
// 没找到座椅
serialOrderGroup, ok := serialOrderGroups[packOrder.PackOrder.PackOrderId]
if !ok {
continue
}
delete(serialOrderGroups, packOrder.PackOrder.PackOrderId)
seats := make([]ProductFamilyInventoryQuery_SeatSummary, 0, 10)
for _, serialOrder := range serialOrderGroup {
if serialOrderId == "" || serialOrderId == serialOrder.SerialOrder.SerialOrderId {
seats = append(seats, ProductFamilyInventoryQuery_SeatSummary{
SerialOrderId: serialOrder.SerialOrder.SerialOrderId,
})
}
}
// 没有匹配的座椅
if len(seats) <= 0 {
continue
}
var inventoryQuantity float64 = 0
if packOrder.IsInventory() {
inventoryQuantity = float64(len(seats))
}
// 没找到派生
packTemplateIds, ok := productFamilyKeyMapping[packOrder.ProductFamilyKey]
if !ok {
continue
}
packOrderSummary := ProductFamilyInventoryQuery_PackOrderSummary{
PackOrderId: packOrder.PackOrder.PackOrderId,
InventoryQuantity: inventoryQuantity,
PackStatus: packOrder.PackStatus(),
PackTime: packOrder.PackTime(),
Seats: seats,
}
for _, packTemplateId := range packTemplateIds {
// 没找到模板
productFamilyStatistics, ok := productFamilyStatisticsMapping[packTemplateId]
if !ok {
continue
}
productFamilyStatisticsMapping[packTemplateId].InventoryQuantity += inventoryQuantity
productFamilyStatisticsMapping[packTemplateId].PackOrders = append(productFamilyStatistics.PackOrders, packOrderSummary)
}
}
}
result = make([]ProductFamilyInventoryQuery_ProductFamilyStatistics, 0, 1)
for _, productFamilyStatistics := range productFamilyStatisticsMapping {
// 如果按座椅查询,则需要过滤到没有座椅的空的派生
if serialOrderId == "" || len(productFamilyStatistics.PackOrders) > 0 {
result = append(result, *productFamilyStatistics)
}
}
return
}
/******************************************************************************
*
* @Reference LAPP_ACURA_MOM_BACKEND/services/report/CustomizedQueryService.SeatQuery
*
******************************************************************************/
func (impl *CustomizedQueryServiceImplement) SeatQuery(user *global.User, serialOrderId string, status string) (result []SeatQuery_PackOrderSummary, err error) {
serialOrderId = strings.TrimSpace(serialOrderId)
status = strings.TrimSpace(status)
engine := db.Eloquent.Master()
engine.ShowSQL(true)
session := engine.NewSession()
//shipOrders, packOrderGroups, serialOrderGroups, productFamilyKeyMapping, err := impl.querySerialOrdersWithMapping(user, session, "")
_, _, _, _, err = impl.querySerialOrdersWithMapping(user, session, "")
if err != nil {
return
}
return nil, nil
}

+ 7
- 7
services/report/implments/FilterDataInfo.service.impl.go View File

@ -544,8 +544,8 @@ func (impl *FilterDataInfoServiceImplement) GetDisplayData() (result []model.AWM
yesterdayLength += yesterdayModel.S3Len
}
}
yesterdayStartStr := yesterdayBegin.Add(time.Duration(yesterdayStart) * time.Second).Format(grmi.DatetimeOutFormat)
yesterdayEndStr := yesterdayBegin.Add(time.Duration(yesterdayEnd) * time.Second).Format(grmi.DatetimeOutFormat)
yesterdayStartStr := yesterdayBegin.Add(time.Duration(yesterdayStart) * time.Second).Format(grmi.DateTimeOutFormat)
yesterdayEndStr := yesterdayBegin.Add(time.Duration(yesterdayEnd) * time.Second).Format(grmi.DateTimeOutFormat)
// 求取今天的开始 结束时间
var startInt int
@ -589,12 +589,12 @@ func (impl *FilterDataInfoServiceImplement) GetDisplayData() (result []model.AWM
startDayModel := todayBegin.Add(time.Duration(startInt) * time.Second)
if endTime == "" {
endTime = time.Now().Format(grmi.DatetimeOutFormat)
endTime = time.Now().Format(grmi.DateTimeOutFormat)
endTime = endTime[11:len(endTime)]
}
if startTime != "" {
startTimeStr := todayString + " " + startTime
start, err = time.ParseInLocation(grmi.DatetimeOutFormat, startTimeStr, utils.TimezoneLocation)
start, err = time.ParseInLocation(grmi.DateTimeOutFormat, startTimeStr, utils.TimezoneLocation)
if err != nil {
return nil, err
}
@ -602,14 +602,14 @@ func (impl *FilterDataInfoServiceImplement) GetDisplayData() (result []model.AWM
start = startDayModel
}
endTimeStr := todayString + " " + endTime
end, err = time.ParseInLocation(grmi.DatetimeOutFormat, endTimeStr, utils.TimezoneLocation)
end, err = time.ParseInLocation(grmi.DateTimeOutFormat, endTimeStr, utils.TimezoneLocation)
if err != nil {
return nil, err
}
//dayModelList := impl.InitDayModelList(dayModel, today)
//duration := impl.GetValidDuration(dayModelList, start, end)
startStr := start.Format(grmi.DatetimeOutFormat)
endStr := end.Format(grmi.DatetimeOutFormat)
startStr := start.Format(grmi.DateTimeOutFormat)
endStr := end.Format(grmi.DateTimeOutFormat)
var displayData model.AWMDisplay
arcLi, err := dao.SelectDisplayData(descCN, startStr, endStr)
if err != nil {


+ 115
- 0
web/controllers/report/CustomizedQuery.rest.go View File

@ -0,0 +1,115 @@
package report
import (
svr "LAPP_ACURA_MOM_BACKEND/services/report"
"LAPP_ACURA_MOM_BACKEND/web/middleware/jwts"
"LAPP_ACURA_MOM_BACKEND/web/supports"
"github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/core/router"
)
/******************************************************************************
*
* @Function Name : RegisterRouteMappingOfCustomizedQuery
*-----------------------------------------------------------------------------
*
* @Description : 注册自定义查询的路由
*
* @Function Parameters : 路由分组
*
* @Author : chenglei.wei@le-it.com.cn
*
* @Date : 2022-03-09 16:52
*
******************************************************************************/
func RegisterRouteMappingOfCustomizedQuery(party router.Party) {
party = party.Party("/customizedquery")
var service = svr.NewCustomizedQueryService()
RegisterRouteOfProductFamilyInventoryQueryInCustomizedQuery(party, service)
RegisterRouteMappingOfSeatQueryInCustomizedQuery(party, service)
}
/******************************************************************************
*
* @Function Name : RegisterRouteOfProductFamilyInventoryQueryInCustomizedQuery
*-----------------------------------------------------------------------------
*
* @Description : 注册自定义查询中派生库存查询的路由
*
* @Function Parameters : 路由分组
*
* @Author : chenglei.wei@le-it.com.cn
*
* @Date : 2022-03-09 16:52
*
******************************************************************************/
func RegisterRouteOfProductFamilyInventoryQueryInCustomizedQuery(party router.Party, service svr.CustomizedQueryService) {
party.Get("/productfamilyinventoryquery", func(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
if !ok {
return
}
urlParameters := ctx.URLParams()
var productFamilyId string
if productFamilyId, ok = urlParameters["productfamilyid"]; !ok {
productFamilyId = ""
}
var projectId string
if projectId, ok = urlParameters["projectid"]; !ok {
projectId = ""
}
var serialOrderId string
if serialOrderId, ok = urlParameters["serialorderid"]; !ok {
serialOrderId = ""
}
result, err := service.ProductFamilyInventoryQuery(user, productFamilyId, projectId, serialOrderId)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, result)
})
}
/******************************************************************************
*
* @Function Name : RegisterRouteMappingOfSeatQueryInCustomizedQuery
*-----------------------------------------------------------------------------
*
* @Description : 注册自定义查询中座椅查询的路由
*
* @Function Parameters : 路由分组
*
* @Author : chenglei.wei@le-it.com.cn
*
* @Date : 2022-03-09 16:52
*
******************************************************************************/
func RegisterRouteMappingOfSeatQueryInCustomizedQuery(party router.Party, service svr.CustomizedQueryService) {
party.Get("/seatquery", func(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
if !ok {
return
}
urlParameters := ctx.URLParams()
var status string
if status, ok = urlParameters["serialorderid"]; !ok {
status = ""
}
var serialOrderId string
if serialOrderId, ok = urlParameters["serialorderid"]; !ok {
serialOrderId = ""
}
result, err := service.SeatQuery(user, serialOrderId, status)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, result)
})
}

+ 2
- 0
web/controllers/report/report.go View File

@ -134,6 +134,8 @@ func RegisterRoutes() {
// RegisterUpdateOneDashBoardLst(dashboardlst, "/updateone", serviceOfDashBoardLst.UpdateOne)
// DashBoardLst修改多条
// RegisterUpdateDashBoardLst(dashboardlst, "/update", serviceOfDashBoardLst.Update)
RegisterRouteMappingOfCustomizedQuery(party)
})
}


Loading…
Cancel
Save