Commit c2c2487e LN

1053:增加报表菜单

1 个父辈 d2e9462e
......@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.message.service.manager;
import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.core.message.service.po.Message;
import org.springframework.data.mongodb.core.query.Query;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
......@@ -11,4 +12,6 @@ public interface IMessageManager extends IBaseManager<Message> {
void download(List<Message> list, HttpServletResponse response, Locale locale);
List<String> findDeviceNameList();
Message findOne(Query query);
}
......@@ -120,6 +120,10 @@ public class MessageManagerImpl implements IMessageManager {
}
return result;
}
@Override
public Message findOne(Query query){
return messageDao.findOne(query);
}
@Data
private class MsgDeviceName {
......
......@@ -65,6 +65,13 @@ public class Micron1053Menu {
MenuInit.addMenu(menuLabel,null,166, "Diagnosis","diagnosis", "system/diagnosis/index","diagnosis");
//Help
MenuInit.addMenu(menuLabel,null,167, "Help","helps", "help/helps/index","help");
//报表:出入库、库存
Menu pMenuReport = Menu.CreatePMenu("报表", 7, "report","inOutData",null);
MenuInit.addMenu(menuLabel,pMenuReport,201, "料盘日志","trayLog", "report/trayLog/index","trayLog");
MenuInit.addMenu(menuLabel,pMenuReport,202, "Utilization ","utilization ", "report/utilization/index","utilization");
MenuInit.addMenu(menuLabel,pMenuReport,203, "ErrorLog","errorLog", "report/errorLog/index","errorLog");
MenuInit.addMenu(menuLabel,pMenuReport,204, "ErrorReport","errorReport", "report/errorReport/index","errorReport");
MenuInit.addMenu(menuLabel,pMenuReport,205, "EventLog","eventLog", "report/eventLog/index","eventLog");
String apiName = smfApi.getApiName();
if(Strings.isNotBlank(apiName) && apiName.equals(menuLabel)){
......
package com.neotel.smfcore.custom.micron1053.bean.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DeviceUtilizationDto implements Serializable {
private String deviceName;
private String state;
private Date updateDate;
}
package com.neotel.smfcore.custom.micron1053.controller;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.message.rest.bean.dto.MessageDto;
import com.neotel.smfcore.core.message.rest.bean.mapstruct.MessageMapper;
import com.neotel.smfcore.core.message.rest.bean.query.MessageCriteria;
import com.neotel.smfcore.core.message.service.manager.IMessageManager;
import com.neotel.smfcore.core.message.service.po.Message;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.custom.micron1053.bean.dto.DeviceUtilizationDto;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Slf4j
@Api(tags = "1053:报表 trayLog, utilization,errorLog, errorReport, eventLog")
@RestController
@RequestMapping("/rest/micron/report")
@RequiredArgsConstructor
public class MicronReportController {
@Autowired
private DataCache dataCache;
@Autowired
private IMessageManager messageManager;
@Autowired
private MessageMapper messageMapper;
@ApiOperation("utilization:获取数据列表")
@GetMapping("/utilization")
@AnonymousAccess
public List<DeviceUtilizationDto> utilization(HttpServletRequest servletRequest) {
List<DeviceUtilizationDto> dtos = new ArrayList<>();
//获取所有料仓状态
Map<String, Storage> allStorages = dataCache.getAllStorage();
String[] msgCodes = new String[]{"smfcore.messages.online", "smfcore.messages.offline"};
for (Storage storage :
allStorages.values()) {
Criteria criteria = Criteria.where("deviceId").is(storage.getId());
criteria.and("msgCode").in(msgCodes);
Sort sort = Sort.by(Sort.Direction.DESC, "createDate");
Query query = new Query(criteria);
query.with(sort);
Message message = messageManager.findOne(query);
if (message != null) {
DeviceUtilizationDto dto = new DeviceUtilizationDto(message.getDeviceName(), message.getShowMsg(servletRequest.getLocale()), message.getUpdateDate());
dtos.add(dto);
}
}
return dtos;
}
@ApiOperation("ErrorLog:错误数据列表")
@GetMapping("/errorLog")
public PageData<MessageDto> errorLog(MessageCriteria criteria, Pageable pageable, HttpServletRequest request){
criteria.setType("error");
Query query = QueryHelp.getQuery(criteria);
PageData<Message> messagePageData=messageManager.findByPage(query,pageable);
List<MessageDto> dtos=messageMapper.toDto(messagePageData.getContent());
for (int i=0;i<dtos.size();i++) {
if(ObjectUtil.isNotEmpty(dtos.get(i).getMsgCode())){
dtos.get(i).setMsg(MessageUtils.getText(dtos.get(i).getMsgCode(),dtos.get(i).getMsgParams(),request.getLocale(),dtos.get(i).getMsg()));
}
}
return new PageData(dtos,messagePageData.getTotalElements());
}
}
......@@ -36,7 +36,7 @@ import java.util.*;
@RestController
@RequestMapping("/rest/micron/sp")
@RequiredArgsConstructor
public class MicronReportController {
public class MicronSpReportController {
@Autowired
private TaskService taskService;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!