|
|
@ -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 |
|
|
|