diff --git a/dao/base/ArtWorkLineLst.dao.go b/dao/base/ArtWorkLineLst.dao.go index b2934ce..ab3ed3d 100644 --- a/dao/base/ArtWorkLineLst.dao.go +++ b/dao/base/ArtWorkLineLst.dao.go @@ -221,6 +221,25 @@ type ArtWorkLineLstDAO interface { * ******************************************************************************/ UpdateWhere([]grmi.Predicate, *model.ArtWorkLineLst, ...string) error + /****************************************************************************** + * + * @Function Name : SelectByFinishArtWorkLine + *----------------------------------------------------------------------------- + * + * @Description : 跟据workLineId查询Article + * + * @Function Parameters : workLineId + * + * @Return Value : []model.Article + * + * @Return Value : 执行时发生的错误 + * + * @Author : 代码生成器创建 + * + * @Date : 2021-10-08 + * + ******************************************************************************/ + SelectByFinishArtWorkLine(workLineId string) ([]model.Article, error) } /****************************************************************************** diff --git a/dao/base/PrintDetail.dao.go b/dao/base/PrintDetail.dao.go index b367d0b..23d0479 100644 --- a/dao/base/PrintDetail.dao.go +++ b/dao/base/PrintDetail.dao.go @@ -189,6 +189,29 @@ type PrintDetailDAO interface { * ******************************************************************************/ SelectAndPaging(*grmi.Paging, []grmi.Predicate, []grmi.Field) (grmi.PagingResult, error) + /****************************************************************************** + * + * @Function Name : SelectAndPaging + *----------------------------------------------------------------------------- + * + * @Description : 按条件查询PrintDetail并分页 + * + * @Function Parameters : 分页信息 + * + * @Function Parameters : 查询条件 + * + * @Function Parameters : 排序字段 + * + * @Return Value : 查询结果 + * + * @Return Value : 执行时发生的错误 + * + * @Author : 代码生成器创建 + * + * @Date : 2021-04-13 13:08:46 + * + ******************************************************************************/ + SelectAndPagingForHead(artId string, sn string, pageIndex int, pageSize int) (grmi.PagingResult, error) /****************************************************************************** * * @Function Name : Update diff --git a/dao/base/implments/ArtWorkLineLst.dao.impl.go b/dao/base/implments/ArtWorkLineLst.dao.impl.go index 5cb4b75..db51e19 100644 --- a/dao/base/implments/ArtWorkLineLst.dao.impl.go +++ b/dao/base/implments/ArtWorkLineLst.dao.impl.go @@ -304,3 +304,26 @@ func (impl *ArtWorkLineLstDAOImplement) UpdateWhere(predicates []grmi.Predicate, } return nil } + + +/****************************************************************************** + * + * @Reference LAPP_LF_MOM_BACKEND/dao/base/ArtWorkLineLstDAO.SelectByFinishArtWorkLine + * + ******************************************************************************/ +func (impl *ArtWorkLineLstDAOImplement) SelectByFinishArtWorkLine(workLineId string) ([]model.Article, error) { + result := make([]model.Article, 0, 10) + condition := fmt.Sprintf("%s = %s and %s = %s", + meta.Article_PlantNr.ColumnName, + meta.ArtWorkLineLst_PlantNr.ColumnName, + meta.Article_ArtId.ColumnName, + meta.ArtWorkLineLst_ArtId.ColumnName) + where := fmt.Sprintf("%s = ? and %s = ? and ( %s = ? or %s = ?)", + meta.ArtWorkLineLst_PlantNr.ColumnName, + meta.ArtWorkLineLst_WorkLineId.ColumnName, + meta.Article_ArtSpec1.ColumnName, + meta.Article_ArtSpec1.ColumnName) + parameters := []interface{}{impl.plantNr, workLineId, model.ART_TYPE_VIRTUAL, model.ART_TYPE_FINISHED} + err := impl.session.Table(impl.meta.TableName).Join("LEFT", meta.Article.TableName, condition).Where(where, parameters...).Find(&result) + return result, err +} \ No newline at end of file diff --git a/dao/base/implments/PrintDetail.dao.impl.go b/dao/base/implments/PrintDetail.dao.impl.go index 48c675d..e41ee2a 100644 --- a/dao/base/implments/PrintDetail.dao.impl.go +++ b/dao/base/implments/PrintDetail.dao.impl.go @@ -302,3 +302,55 @@ func (impl *PrintDetailDAOImplement) UpdateWhere(predicates []grmi.Predicate, en } return nil } + +/****************************************************************************** + * + * @Reference LAPP_LF_MOM_BACKEND/dao/base/PrintDetailDAO.SelectAndPagingForHead + * + ******************************************************************************/ +func (impl *PrintDetailDAOImplement) SelectAndPagingForHead(artId string, sn string, pageIndex int, pageSize int) (grmi.PagingResult, error) { + + parameters := []interface{}{impl.plantNr} + where := fmt.Sprintf("%s = ?", meta.PrintDetail_PlantNr.ColumnName) + condition := fmt.Sprintf("%s = %s and %s = %s", + meta.PrintHead_PlantNr.ColumnName, + meta.PrintDetail_PlantNr.ColumnName, + meta.PrintHead_PrintHeadId.ColumnName, + meta.PrintDetail_PrintHeadId.ColumnName) + session := impl.session.Table(impl.meta.TableName).Join("LEFT", meta.PrintHead.TableName, condition) + query := session + query = query.Where(where, parameters...) + if artId != "" { + query = query.Where(fmt.Sprintf("%s = ? and %s = ?", + meta.PrintDetail_VarName.ColumnName, + meta.PrintDetail_VarValue.ColumnName), `$YFAS$`, artId) + where += fmt.Sprintf(" and %s = ? and %s = ? ", + meta.PrintDetail_VarName.ColumnName, + meta.PrintDetail_VarValue.ColumnName) + parameters = append(parameters, `$YFAS$`, artId) + } + if sn != "" { + query = query.Where(fmt.Sprintf("%s = ? and %s = ?", + meta.PrintDetail_VarName.ColumnName, + meta.PrintDetail_VarValue.ColumnName), `$S/N$`, sn) + where += fmt.Sprintf(" and %s = ? and %s = ? ", + meta.PrintDetail_VarName.ColumnName, + meta.PrintDetail_VarValue.ColumnName) + parameters = append(parameters, `$S/N$`, sn) + } + count, err := query.Count(impl.meta.Indicator) + if err != nil { + return grmi.EmptyPagingResult, err + } + orderBy := " order by " + meta.PrintDetail_PlantNr.ColumnName + parameters = append(parameters, pageSize*(pageIndex-1), pageSize) + data := make([]model.PrintHead, 0, 10) + if where != "" { + where = " where " + where + } + err = impl.session.Table(impl.meta.TableName).SQL("select * from "+impl.meta.TableName+where+orderBy+" offset ? row fetch next ? row only", parameters...).Find(&data) + if err != nil { + return grmi.EmptyPagingResult, err + } + return grmi.PagingResult{Records: data, Count: count, PageNumber: int64(pageIndex), PageSize: int64(pageSize)}, nil +} diff --git a/dao/om/WorkOrder.dao.go b/dao/om/WorkOrder.dao.go index 6f06041..6d7d2d7 100644 --- a/dao/om/WorkOrder.dao.go +++ b/dao/om/WorkOrder.dao.go @@ -367,6 +367,23 @@ type WorkOrderDAO interface { * ******************************************************************************/ SelectByPage(string, string, string, string, string, string, int, int, int, []string) (grmi.PagingResult, error) + /****************************************************************************** + * + * @Function Name : SelectByPage + *----------------------------------------------------------------------------- + * + * @Description : 按条件查询WorkOrderJoin + * + * @Return Value : 查询结果 + * + * @Return Value : 执行时发生的错误 + * + * @Author : 张鑫 + * + * @Date : 2021-04-27 + * + ******************************************************************************/ + SelectAndFilter(string, string, string, string, string, string, int, int, int, []string) (grmi.PagingResult, error) /****************************************************************************** * * @Function Name : SelectLockWorkOrder diff --git a/dao/om/implments/WorkOrder.dao.impl.go b/dao/om/implments/WorkOrder.dao.impl.go index 40b8220..034a54f 100644 --- a/dao/om/implments/WorkOrder.dao.impl.go +++ b/dao/om/implments/WorkOrder.dao.impl.go @@ -589,6 +589,105 @@ func (impl *WorkOrderDAOImplement) SelectByPage(projectId, artId, start, end, wo } return grmi.PagingResult{Records: data, Count: count, PageNumber: int64(pageIndex), PageSize: int64(pageSize)}, nil } + +/****************************************************************************** + * + * @Reference LAPP_LF_MOM_BACKEND/dao/om/WorkOrderDAO.SelectAndFilter + * + ******************************************************************************/ +func (impl *WorkOrderDAOImplement) SelectAndFilter(projectId, artId, start, end, workOrderId, orderType string, status, pageIndex, pageSize int, workLineIdLi []string) (grmi.PagingResult, error) { + data := make([]model.VOmWorkorder, 0, 10) + parameters := []interface{}{impl.plantNr} + session := impl.session.Table(impl.meta.TableName) + statusCondition := fmt.Sprintf("%s = %s and %s = %s", + meta.WorkOrder_PlantNr.ColumnName, + meta.WorkOrderStatus_PlantNr.ColumnName, + meta.WorkOrder_WorkOrderId.ColumnName, + meta.WorkOrderStatus_WorkOrderId.ColumnName) + qtyCondition := fmt.Sprintf("%s = %s and %s = %s", + meta.WorkOrder_PlantNr.ColumnName, + meta.WorkOrderQty_PlantNr.ColumnName, + meta.WorkOrder_WorkOrderId.ColumnName, + meta.WorkOrderQty_WorkOrderId.ColumnName) + session = session.Join("LEFT", meta.WorkOrderStatus.TableName, statusCondition) + session = session.Join("LEFT", meta.WorkOrderQty.TableName, qtyCondition) + query := session + query = query.Where(fmt.Sprintf("%s = ?", meta.WorkOrder_PlantNr.ColumnName), impl.plantNr) + where := fmt.Sprintf(" left join %s on %s left join %s on %s ", meta.WorkOrderStatus.TableName, statusCondition, + meta.WorkOrderQty.TableName, qtyCondition) + where += fmt.Sprintf(" where %s = ? ", meta.WorkOrder_PlantNr.ColumnName) + if projectId != "" { + parameters = append(parameters, projectId) + query = query.Where(fmt.Sprintf("%s = ?", meta.WorkOrder_ProjectId.ColumnName), projectId) + where += fmt.Sprintf(" and %s = ? ", meta.WorkOrder_ProjectId.ColumnName) + } + if artId != "" { + parameters = append(parameters, artId) + query = query.Where(fmt.Sprintf("%s = ?", meta.WorkOrder_ArtId.ColumnName), artId) + where += fmt.Sprintf(" and %s = ? ", meta.WorkOrder_ArtId.ColumnName) + } + if start != "" { + parameters = append(parameters, start) + query = query.Where(fmt.Sprintf("%s >= ?", meta.WorkOrder_PlanStartTime.ColumnName), start) + where += fmt.Sprintf(" and %s >= ? ", meta.WorkOrder_PlanStartTime.ColumnName) + } + if end != "" { + parameters = append(parameters, end) + query = query.Where(fmt.Sprintf("%s <= ?", meta.WorkOrder_PlanStartTime.ColumnName), end) + where += fmt.Sprintf(" and %s <= ? ", meta.WorkOrder_PlanStartTime.ColumnName) + } + if status != 0 { + parameters = append(parameters, status) + query = query.Where(fmt.Sprintf("%s = ?", meta.WorkOrderStatus_Status.ColumnName), status) + where += fmt.Sprintf(" and %s = ? ", meta.WorkOrderStatus_Status.ColumnName) + } + if workOrderId != "" { + parameters = append(parameters, workOrderId) + query = query.Where(fmt.Sprintf("%s = ?", meta.WorkOrder_WorkOrderId.ColumnName), workOrderId) + where += fmt.Sprintf(" and %s = ? ", meta.WorkOrder_WorkOrderId.ColumnName) + } + if orderType != "" { + parameters = append(parameters, orderType) + query = query.Where(fmt.Sprintf("%s = ?", meta.WorkOrder_OrderType.ColumnName), orderType) + where += fmt.Sprintf(" and %s = ? ", meta.WorkOrder_OrderType.ColumnName) + } + today := time.Now().Format(grmi.DateOutFormat) + query = query.Where( fmt.Sprintf(" (%s >= ?) or (%s < ? and %s <= ?) ", + meta.WorkOrder_PlanStartDate.ColumnName, + meta.WorkOrder_PlanStartDate.ColumnName, + meta.WorkOrderStatus_Status.ColumnName), today, today, common.WO_STATUS_FINISHED) + where += fmt.Sprintf(" and ( (%s >= ?) or (%s < ? and %s < ?) ) ", + meta.WorkOrder_PlanStartDate.ColumnName, + meta.WorkOrder_PlanStartDate.ColumnName, + meta.WorkOrderStatus_Status.ColumnName) + parameters = append(parameters, today, today, common.WO_STATUS_FINISHED) + query = query.In(meta.WorkOrder_PlanResourceId.ColumnName, workLineIdLi) + if len(workLineIdLi) == 0 { + where += " and 1 <> 1 " + } else { + var inStr string + for index, workLineId := range workLineIdLi { + if index == 0 { + inStr += fmt.Sprintf(`'%s'`, workLineId) + } else { + inStr += fmt.Sprintf(` ,'%s'`, workLineId) + } + } + where += fmt.Sprintf(" and %s in (%s) ", meta.WorkOrder_PlanResourceId.ColumnName, inStr) + } + count, err := query.Count(impl.meta.Indicator) + if err != nil { + return grmi.EmptyPagingResult, err + } + orderBy := " order by " + meta.WorkOrder_PlantNr.ColumnName + ", " + meta.WorkOrder_WorkOrderId.ColumnName + parameters = append(parameters, (pageIndex-1)*pageSize, pageSize) + err = session.SQL(fmt.Sprintf("select %s.*,%s.*,%s.* from ", meta.WorkOrder.TableName, meta.WorkOrderStatus.TableName, meta.WorkOrderQty.TableName)+impl.meta.TableName+where+orderBy+" offset ? row fetch next ? row only", parameters...).Find(&data) + if err != nil { + return grmi.EmptyPagingResult, err + } + return grmi.PagingResult{Records: data, Count: count, PageNumber: int64(pageIndex), PageSize: int64(pageSize)}, nil +} + /****************************************************************************** * * @Reference LAPP_LF_MOM_BACKEND/dao/om/WorkOrderDAO.SelectLockWorkOrder diff --git a/models/base/base.go b/models/base/base.go index 42f970e..f463642 100644 --- a/models/base/base.go +++ b/models/base/base.go @@ -212,3 +212,10 @@ type PrintBasicRuleInfoData struct { OperationId int `json:"operationId"` PrintBasicRuleInfoLi []PrintBasicRuleInfo `json:"printBaseRuleInfoLi"` } + + +// 角色产线关联返回结构体 +type RoleWorkLine struct { + RoleRel + WorkLineDesc string `json:"RoleRel-WorkLineDesc"` +} \ No newline at end of file diff --git a/services/base/Article.service.go b/services/base/Article.service.go index ca12678..b522f6e 100644 --- a/services/base/Article.service.go +++ b/services/base/Article.service.go @@ -173,6 +173,27 @@ type ArticleService interface { * ******************************************************************************/ Update(*models.Usertab, *[]model.Article) error + /****************************************************************************** + * + * @Function Name : SelectByWorkLine + *----------------------------------------------------------------------------- + * + * @Description : 通过workLineId查询Article + * + * @Function Parameters : 当前访问人员信息 + * + * @Function Parameters : workLineId + * + * @Return Value : article list + * + * @Return Value : 执行时发生的错误 + * + * @Author : zhangxin + * + * @Date : 2021-10-08 + * + ******************************************************************************/ + SelectByWorkLine(user *models.Usertab, workLineId string) (interface{}, error) } /****************************************************************************** diff --git a/services/base/implments/Article.service.impl.go b/services/base/implments/Article.service.impl.go index 0a2290d..5fd1520 100644 --- a/services/base/implments/Article.service.impl.go +++ b/services/base/implments/Article.service.impl.go @@ -436,3 +436,20 @@ func (impl *ArticleServiceImplement) Update(user *models.Usertab, entities *[]mo } return nil } + +/****************************************************************************** + * + * @Reference LAPP_LF_MOM_BACKEND/services/base/ArticleService.SelectByWorkLine + * + ******************************************************************************/ +func (impl *ArticleServiceImplement) SelectByWorkLine(user *models.Usertab, workLineId string) (interface{}, error) { + + grmi.Log(user, "/services/base/implments/Article.service.impl.go", "UpdateArticle", "修改多个Article") + + engine := db.Eloquent.Master() + session := engine.NewSession() + defer session.Close() + dao := dal.NewArtWorkLineLstDAO(session, user.Pid, user.Userid) + articleLi, err := dao.SelectByFinishArtWorkLine(workLineId) + return articleLi, err +} diff --git a/services/base/implments/PrintHead.service.impl.go b/services/base/implments/PrintHead.service.impl.go index 9ba1a7e..9fd5215 100644 --- a/services/base/implments/PrintHead.service.impl.go +++ b/services/base/implments/PrintHead.service.impl.go @@ -9,6 +9,7 @@ import ( meta "LAPP_LF_MOM_BACKEND/meta/base" model "LAPP_LF_MOM_BACKEND/models/base" "LAPP_LF_MOM_BACKEND/web/models" + "strconv" ) /****************************************************************************** @@ -277,33 +278,33 @@ func (impl *PrintHeadServiceImplement) Delete(user *models.Usertab, entities *[] * @Reference LAPP_LF_MOM_BACKEND/services/base/PrintHeadService.Select * ******************************************************************************/ -func (impl *PrintHeadServiceImplement) Select(user *models.Usertab, urlParameters map[string]string) (interface{}, error) { - - grmi.Log(user, "/services/base/implments/PrintHead.service.impl.go", "SelectPrintHead", "查询PrintHead") - - condition := DefaultConditionOfPrintHeadAndPaging - engine := db.Eloquent.Master() - session := engine.NewSession() - defer session.Close() - predicates, err := condition.BuildPredicates(urlParameters) - if err != nil { - return nil, err - } - dao := dal.NewPrintHeadDAO(session, user.Pid, user.Userid) - if condition.Fill(urlParameters) { - result, err := dao.SelectAndPaging(condition.Paging, predicates, condition.OrderByFields) - if err != nil { - return nil, err - } - return result, nil - } else { - result, err := dao.Select(predicates, condition.OrderByFields) - if err != nil { - return nil, err - } - return result, nil - } -} +//func (impl *PrintHeadServiceImplement) Select(user *models.Usertab, urlParameters map[string]string) (interface{}, error) { +// +// grmi.Log(user, "/services/base/implments/PrintHead.service.impl.go", "SelectPrintHead", "查询PrintHead") +// +// condition := DefaultConditionOfPrintHeadAndPaging +// engine := db.Eloquent.Master() +// session := engine.NewSession() +// defer session.Close() +// predicates, err := condition.BuildPredicates(urlParameters) +// if err != nil { +// return nil, err +// } +// dao := dal.NewPrintHeadDAO(session, user.Pid, user.Userid) +// if condition.Fill(urlParameters) { +// result, err := dao.SelectAndPaging(condition.Paging, predicates, condition.OrderByFields) +// if err != nil { +// return nil, err +// } +// return result, nil +// } else { +// result, err := dao.Select(predicates, condition.OrderByFields) +// if err != nil { +// return nil, err +// } +// return result, nil +// } +//} /****************************************************************************** * @@ -335,3 +336,54 @@ func (impl *PrintHeadServiceImplement) Update(user *models.Usertab, entities *[] } return nil } + + +/****************************************************************************** + * + * @Reference LAPP_LF_MOM_BACKEND/services/base/PrintHeadService.Select + * + ******************************************************************************/ +func (impl *PrintHeadServiceImplement) Select(user *models.Usertab, urlParameters map[string]string) (interface{}, error) { + + grmi.Log(user, "/services/base/implments/PrintHead.service.impl.go", "SelectPrintHead", "查询PrintHead") + + condition := DefaultConditionOfPrintHeadAndPaging + engine := db.Eloquent.Master() + session := engine.NewSession() + defer session.Close() + artId, _ := urlParameters["artId"] + sn, _ := urlParameters["sn"] + dao := dal.NewPrintHeadDAO(session, user.Pid, user.Userid) + detailDao := dal.NewPrintDetailDAO(session, user.Pid, user.Userid) + predicates, err := condition.BuildPredicates(urlParameters) + if err != nil { + return nil, err + } + if condition.Fill(urlParameters) { + pageIndexStr := urlParameters["pageNumber"] + pageSizeStr := urlParameters["pageSize"] + pageIndex, _ := strconv.Atoi(pageIndexStr) + pageSize, _ := strconv.Atoi(pageSizeStr) + if artId != "" || sn != "" { + result, err := detailDao.SelectAndPagingForHead(artId, sn, pageIndex, pageSize) + if err != nil { + return nil, err + } + return result, nil + + } else { + result, err := dao.SelectAndPaging(condition.Paging, predicates, condition.OrderByFields) + if err != nil { + return nil, err + } + return result, nil + } + + } else { + result, err := dao.Select(predicates, condition.OrderByFields) + if err != nil { + return nil, err + } + return result, nil + } +} \ No newline at end of file diff --git a/services/base/implments/RoleRel.service.impl.go b/services/base/implments/RoleRel.service.impl.go index f0a1923..9532d80 100644 --- a/services/base/implments/RoleRel.service.impl.go +++ b/services/base/implments/RoleRel.service.impl.go @@ -290,6 +290,7 @@ func (impl *RoleRelServiceImplement) Select(user *models.Usertab, urlParameters return nil, err } dao := dal.NewRoleRelDAO(session, user.Pid, user.Userid) + workLineDao := dal.NewWorkLineDAO(session, user.Pid, user.Userid) if condition.Fill(urlParameters) { result, err := dao.SelectAndPaging(condition.Paging, predicates, condition.OrderByFields) if err != nil { @@ -301,7 +302,27 @@ func (impl *RoleRelServiceImplement) Select(user *models.Usertab, urlParameters if err != nil { return nil, err } - return result, nil + workLineIdLi := make([]interface{}, 0, len(result)) + newRes := make([]model.RoleWorkLine, 0, len(result)) + for _, data := range result { + workLineIdLi = append(workLineIdLi, data.WorkLineid) + } + workLineLi, err := workLineDao.Select([]grmi.Predicate{meta.WorkLine_WorkLineid.NewPredicate(grmi.Include, workLineIdLi...)}, nil) + if err != nil { + return nil, err + } + workLineMap := make(map[string]string, len(result)) + for _, data := range workLineLi { + workLineMap[data.WorkLineid] = data.Descr + } + for _, data := range result { + var roleWorkLine model.RoleWorkLine + roleWorkLine.RoleRel = data + desc := workLineMap[data.WorkLineid] + roleWorkLine.WorkLineDesc = desc + newRes = append(newRes, roleWorkLine) + } + return newRes, nil } } diff --git a/services/om/WorkOrder.service.go b/services/om/WorkOrder.service.go index 0853057..8528ee0 100644 --- a/services/om/WorkOrder.service.go +++ b/services/om/WorkOrder.service.go @@ -154,6 +154,27 @@ type WorkOrderService interface { * ******************************************************************************/ Select(*models.Usertab, map[string]string) (interface{}, error) + /****************************************************************************** + * + * @Function Name : SelectAndPaging + *----------------------------------------------------------------------------- + * + * @Description : 查询WorkOrder + * + * @Function Parameters : 当前访问人员信息 + * + * @Function Parameters : 查询参数 + * + * @Return Value : 查询结果 + * + * @Return Value : 执行时发生的错误 + * + * @Author : 代码生成器创建 + * + * @Date : 2021-04-19 14:04:47 + * + ******************************************************************************/ + SelectAndFilter(*models.Usertab, map[string]string) (interface{}, error) /****************************************************************************** * * @Function Name : Update diff --git a/services/om/implments/WorkOrder.service.impl.go b/services/om/implments/WorkOrder.service.impl.go index 87c11f9..602ca7e 100644 --- a/services/om/implments/WorkOrder.service.impl.go +++ b/services/om/implments/WorkOrder.service.impl.go @@ -665,6 +665,78 @@ func (impl *WorkOrderServiceImplement) Select(user *models.Usertab, urlParameter return result, nil } + +/****************************************************************************** + * + * @Reference LAPP_LF_MOM_BACKEND/services/om/WorkOrderService.SelectAndFilter + * + ******************************************************************************/ +func (impl *WorkOrderServiceImplement) SelectAndFilter(user *models.Usertab, urlParameters map[string]string) (interface{}, error) { + + grmi.Log(user, "/services/om/implments/WorkOrder.service.impl.go", "SelectWorkOrder", "查询WorkOrder") + engine := db.Eloquent.Master() + session := engine.NewSession() + defer session.Close() + var projectId string + var artId string + var timeStart string + var timeEnd string + var workOrderId string + var orderType string + var statusStr string + var pageNumberStr string + var pageSizeStr string + projectId, _ = urlParameters["ProjectId"] + artId, _ = urlParameters["ArtId"] + workOrderId, _ = urlParameters["WorkOrderId"] + timeStart, _ = urlParameters["start"] + timeEnd, _ = urlParameters["end"] + orderType, _ = urlParameters["OrderType"] + statusStr, _ = urlParameters["status"] + pageNumberStr, _ = urlParameters["pageNumber"] + pageSizeStr, _ = urlParameters["pageSize"] + status, err := strconv.Atoi(statusStr) + if err != nil { + status = 0 + } + if timeStart != "" { + _, err = time.ParseInLocation("2006-01-02 15:04:05", timeStart, utils.TimezoneLocation) + if err != nil { + return nil, err + } + } + if timeEnd != "" { + _, err = time.ParseInLocation("2006-01-02 15:04:05", timeEnd, utils.TimezoneLocation) + if err != nil { + return nil, err + } + } + pageNumber, err := strconv.Atoi(pageNumberStr) + if err != nil { + pageNumber = 1 + } + pageSize, err := strconv.Atoi(pageSizeStr) + if err != nil { + pageSize = 10 + } + dao := dal.NewWorkOrderDAO(session, user.Pid, user.Userid) + roleRelDao := baseDal.NewRoleRelDAO(session, user.Pid, user.Userid) + roleRelLi, err := roleRelDao.Select([]grmi.Predicate{baseMeta.RoleRel_RoleId.NewPredicate(grmi.Equal, user.RoleId)}, nil) + if err != nil { + return nil, err + } + workLineIdLi := make([]string, 0, len(roleRelLi)) + for _, roleRel := range roleRelLi { + workLineIdLi = append(workLineIdLi, roleRel.WorkLineid) + } + result, err := dao.SelectAndFilter(projectId, artId, timeStart, timeEnd, workOrderId, orderType, status, pageNumber, pageSize, workLineIdLi) + if err != nil { + return nil, err + } + return result, nil +} + + /****************************************************************************** * * @Reference LAPP_LF_MOM_BACKEND/services/om/WorkOrderService.Update @@ -3105,26 +3177,28 @@ func (impl *WorkOrderServiceImplement) CancelUnCompletedSerialOrder(user *models if serialOrder.SerialOrderStatus.Status >= baseModel.ORDER_STATUS_CLOSED || serialOrder.SerialOrderStatus.Status == baseModel.WO_STATUS_INTERRUPT { _ = session.Rollback() return grmi.NewBusinessError("序列工单不合规,不允许取消, serialOrderId:" + serialOrder.SerialOrder.SerialOrderId) - } else if serialOrder.SerialOrderStatus.Status == baseModel.ORDER_STATUS_RUNNING { - poDataLi, err := poDao.GetSerialOrderPOData(serialOrder.SerialOrder.SerialOrderId, serialOrder.SerialOrder.UsedResourceId) - if err != nil { - _ = session.Rollback() - return grmi.NewBusinessError("查询工单工序数据失败, error:" + err.Error()) - } - for _, poData := range *poDataLi { - if !poData.Process.IsFirstPO { - if poData.SerialOrderPOLst.Status > baseModel.WO_STATUS_RELEASED { - _ = session.Rollback() - return grmi.NewBusinessError("首个工单的非首道序状态不是已下达") - } - } else { - if poData.SerialOrderPOLst.Status != baseModel.ORDER_STATUS_RUNNING && poData.SerialOrderPOLst.Status != baseModel.WO_STATUS_RELEASED { - _ = session.Rollback() - return grmi.NewBusinessError("首个工单的首道序状态不是生产中") - } - } - } } + // 校验工单的首道序是40其余是26才可以去取消 现在去掉这个限制了 + //else if serialOrder.SerialOrderStatus.Status == baseModel.ORDER_STATUS_RUNNING { + // poDataLi, err := poDao.GetSerialOrderPOData(serialOrder.SerialOrder.SerialOrderId, serialOrder.SerialOrder.UsedResourceId) + // if err != nil { + // _ = session.Rollback() + // return grmi.NewBusinessError("查询工单工序数据失败, error:" + err.Error()) + // } + // for _, poData := range *poDataLi { + // if !poData.Process.IsFirstPO { + // if poData.SerialOrderPOLst.Status > baseModel.WO_STATUS_RELEASED { + // _ = session.Rollback() + // return grmi.NewBusinessError("首个工单的非首道序状态不是已下达") + // } + // } else { + // if poData.SerialOrderPOLst.Status != baseModel.ORDER_STATUS_RUNNING && poData.SerialOrderPOLst.Status != baseModel.WO_STATUS_RELEASED { + // _ = session.Rollback() + // return grmi.NewBusinessError("首个工单的首道序状态不是生产中") + // } + // } + // } + //} } else { if serialOrder.SerialOrderStatus.Status >= baseModel.WO_STATUS_RUNNING || serialOrder.SerialOrderStatus.Status == baseModel.WO_STATUS_INTERRUPT { _ = session.Rollback() diff --git a/web/controllers/base/Article.rest.go b/web/controllers/base/Article.rest.go index ef4afa5..18e7292 100644 --- a/web/controllers/base/Article.rest.go +++ b/web/controllers/base/Article.rest.go @@ -362,3 +362,48 @@ func RegisterUpdateArticle(party router.Party, path string, method func(*models. RegisterMultiArticle(party, "PUT", path, method) } + +/****************************************************************************** + * + * @Function Name : RegisterSelectArticleByWorkLineId + *----------------------------------------------------------------------------- + * + * @Description : 通过workLineId查询Article的方法注册路由 + * + * @Function Parameters : 路由分组 + * + * @Function Parameters : 路径 + * + * @Function Parameters : 实际处理请求的方法 + * + * @Author : zhangxin + * + * @Date : 2021-10-08 + * + ******************************************************************************/ +func RegisterSelectArticleByWorkLineId(party router.Party, path string, method func(*models.Usertab, string) (interface{}, error)) { + + party.Get(path, func(ctx iris.Context) { + user, ok := jwts.ParseToken(ctx) + if !ok { + supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) + return + } + + workLineId := ctx.URLParam("workLineId") + if workLineId == "" { + supports.Error(ctx, iris.StatusBadRequest, "未获取到产线ID", nil) + return + } + result, err := method(user, workLineId) + if err != nil { + supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) + return + } + if result == nil { + supports.Error(ctx, iris.StatusNotFound, supports.NotFound, nil) + return + } + supports.Ok(ctx, supports.OptionSuccess, result) + }) +} \ No newline at end of file diff --git a/web/controllers/base/base.go b/web/controllers/base/base.go index dd1a9a5..a9aa86d 100644 --- a/web/controllers/base/base.go +++ b/web/controllers/base/base.go @@ -771,6 +771,8 @@ func RegisterRoutes() { RegisterUpdateOneArticle(article, "/updateone", serviceOfArticle.UpdateOne) // Article修改多条 // RegisterUpdateArticle(article, "/update", serviceOfArticle.Update) + // Article 通过产线查询总成和虚拟总成 + RegisterSelectArticleByWorkLineId(article, "/selectbyworkline", serviceOfArticle.SelectByWorkLine) // WorkLineWorkShiftLst的路由组 worklineworkshiftlst := party.Party("/worklineworkshiftlst") diff --git a/web/controllers/om/om.go b/web/controllers/om/om.go index a7fd3cc..021d4e9 100644 --- a/web/controllers/om/om.go +++ b/web/controllers/om/om.go @@ -143,6 +143,8 @@ func RegisterRoutes() { // RegisterDeleteWorkOrder(workorder, "/delete", serviceOfWorkOrder.Delete) // WorkOrder查询多条 RegisterSelectWorkOrder(workorder, "/query", serviceOfWorkOrder.Select) + // WorkOrder查询多条 同时按日期和状态过滤 + RegisterSelectWorkOrder(workorder, "/filter", serviceOfWorkOrder.SelectAndFilter) // WorkOrder查询一条 RegisterSelectOneWorkOrder(workorder, "/get", serviceOfWorkOrder.SelectOne) // WorkOrder修改一条 diff --git a/web/controllers/user_controller.go b/web/controllers/user_controller.go index 675d6b8..ef60d37 100644 --- a/web/controllers/user_controller.go +++ b/web/controllers/user_controller.go @@ -154,6 +154,7 @@ func GetUserInfo(ctx iris.Context) { mp["avatar"] = mUser.Avatar } mp["name"] = mUser.Nickname + mp["roleId"] = mUser.RoleId utils.TrimStruct(&mp, mp) supports.Ok(ctx, supports.Success, mp) }