MES设备数据查询报表

tags/yfai-mes-ext-v1.0
logic.fang 11 months ago
parent 1194039fff
commit a9993e56b4

@ -0,0 +1,25 @@
package cn.estsh.i3plus.ext.mes.api.busi.report;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
/**
* @Description : -
* @Reference :
* @Author : logic
* @CreateDate : 2024/6/15 11:30
* @Modify:
**/
public interface IMesYfReportService {
/**
* -
* @param queryReportModel
* @param pager
* @return
*/
ListPager<MesDeviceDataQueryReportResultModel> queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager);
}

@ -0,0 +1,70 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.report;
import cn.estsh.i3plus.ext.mes.api.busi.report.IMesYfReportService;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.impp.framework.base.controller.MesBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description :
* @Reference :
* @Author : logic
* @CreateDate : 2024/6/15 11:23
* @Modify:
**/
@Api("设备数据查询报表")
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/device-data-query-report")
public class MesDeviceDataQueryReportController extends MesBaseController {
@Autowired
private IMesYfReportService mesYfReportService;
@ApiOperation(value = "查询设备数据", notes = "查询设备数据")
@GetMapping("/query")
public ResultBean queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel conditionModel, Pager pager){
try {
//查询条件核验
if (StringUtils.isEmpty(conditionModel.getCreateDateTimeStart()) || StringUtils.isEmpty(conditionModel.getCreateDateTimeEnd())) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("【查询时间区间】条件必填!")
.build();
}
if (StringUtils.isEmpty(conditionModel.getWorkCellCode()) && StringUtils.isEmpty(conditionModel.getEquipmentCode())) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("请至少指定【工位】与【设备编号】其中一个查询条件!")
.build();
}
String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
conditionModel.setOrganizeCode(organizeCode);
ListPager<MesDeviceDataQueryReportResultModel> queryResultListPager = mesYfReportService.queryMesDeviceDataByPager(conditionModel, pager);
return ResultBean.success("查询设备数据成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setListPager(queryResultListPager);
} catch (ImppBusiException e) {
return ResultBean.fail(e);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -0,0 +1,25 @@
package cn.estsh.i3plus.ext.mes.apiservice.dao.report;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
/**
* @Description : -
* @Reference :
* @Author : logic
* @CreateDate : 2024/6/15 13:30
* @Modify:
**/
public interface IMesYfReportDao {
/**
* -
* @param queryReportModel
* @param pager
* @return
*/
ListPager<MesDeviceDataQueryReportResultModel> queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager);
}

@ -0,0 +1,109 @@
package cn.estsh.i3plus.ext.mes.apiservice.daoimpl.report;
import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IMesYfReportDao;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.List;
/**
* @Description : -
* @Reference :
* @Author : logic
* @CreateDate : 2024/6/15 13:30
* @Modify:
**/
@Service
public class MesYfReportDaoImpl implements IMesYfReportDao {
@Autowired
private EntityManager entityManager;
@Override
public ListPager<MesDeviceDataQueryReportResultModel> queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) {
StringBuilder dataQuerySql = new StringBuilder();
StringBuilder countQuerySql = new StringBuilder();
StringBuilder commonQuerySql = new StringBuilder();
dataQuerySql.append("select new ")
.append(MesDeviceDataQueryReportResultModel.class.getName())
.append("(organizeCode, workCenterCode, workCellCode, workOrderNo, serialNumber, ")
.append("logType, message, errorType, equipmentCode, equipmentName, createDatetime, createUser) ");
countQuerySql.append("select count(1) ");
commonQuerySql.append("from MesWorkCellScanMonitorLog " +
"where isValid = :isValid and isDeleted = :isDeleted and organizeCode = :organizeCode " +
"and createDatetime >= :createDateTimeStart and createDatetime <= :createDateTimeEnd ");
//非空查询条件拼接语句
if (!StringUtils.isEmpty(queryReportModel.getWorkCenterCode())) {
commonQuerySql.append("and workCenterCode = :workCenterCode ");
}
if (!StringUtils.isEmpty(queryReportModel.getWorkCellCode())) {
commonQuerySql.append("and workCellCode = :workCellCode ");
}
if (!StringUtils.isEmpty(queryReportModel.getWorkOrderNo())) {
commonQuerySql.append("and workOrderNo = :workOrderNo ");
}
if (!StringUtils.isEmpty(queryReportModel.getSerialNumber())) {
commonQuerySql.append("and serialNumber = :serialNumber ");
}
if (!StringUtils.isEmpty(queryReportModel.getEquipmentCode())) {
commonQuerySql.append("and equipmentCode = :equipmentCode ");
}
if (!StringUtils.isEmpty(queryReportModel.getLogType())) {
commonQuerySql.append("and logType = :logType ");
}
Query dataQuery = entityManager.createQuery(dataQuerySql.append(commonQuerySql).toString(), MesDeviceDataQueryReportResultModel.class);
dataQuery.setParameter("isValid", CommonEnumUtil.IS_VAILD.VAILD.getValue());
dataQuery.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
dataQuery.setParameter("organizeCode", queryReportModel.getOrganizeCode());
dataQuery.setParameter("createDateTimeStart", queryReportModel.getCreateDateTimeStart());
dataQuery.setParameter("createDateTimeEnd", queryReportModel.getCreateDateTimeEnd());
Query countQuery = entityManager.createQuery(countQuerySql.append(commonQuerySql).toString());
countQuery.setParameter("isValid", CommonEnumUtil.IS_VAILD.VAILD.getValue());
countQuery.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
countQuery.setParameter("organizeCode", queryReportModel.getOrganizeCode());
countQuery.setParameter("createDateTimeStart", queryReportModel.getCreateDateTimeStart());
countQuery.setParameter("createDateTimeEnd", queryReportModel.getCreateDateTimeEnd());
if (!StringUtils.isEmpty(queryReportModel.getWorkCenterCode())) {
dataQuery.setParameter("workCenterCode", queryReportModel.getWorkCenterCode());
countQuery.setParameter("workCenterCode", queryReportModel.getWorkCenterCode());
}
if (!StringUtils.isEmpty(queryReportModel.getWorkCellCode())) {
dataQuery.setParameter("workCellCode", queryReportModel.getWorkCellCode());
countQuery.setParameter("workCellCode", queryReportModel.getWorkCellCode());
}
if (!StringUtils.isEmpty(queryReportModel.getWorkOrderNo())) {
dataQuery.setParameter("workOrderNo", queryReportModel.getWorkOrderNo());
countQuery.setParameter("workOrderNo", queryReportModel.getWorkOrderNo());
}
if (!StringUtils.isEmpty(queryReportModel.getSerialNumber())) {
dataQuery.setParameter("serialNumber", queryReportModel.getSerialNumber());
countQuery.setParameter("serialNumber", queryReportModel.getSerialNumber());
}
if (!StringUtils.isEmpty(queryReportModel.getEquipmentCode())) {
dataQuery.setParameter("equipmentCode", queryReportModel.getEquipmentCode());
countQuery.setParameter("equipmentCode", queryReportModel.getEquipmentCode());
}
if (!StringUtils.isEmpty(queryReportModel.getLogType())) {
dataQuery.setParameter("logType", queryReportModel.getLogType());
countQuery.setParameter("logType", queryReportModel.getLogType());
}
//本次查询满足条件的总数
int count = Integer.parseInt(String.valueOf(countQuery.getSingleResult()));
pager = PagerHelper.getPager(pager, count);
//查询本页数据
dataQuery.setMaxResults(pager.getPageSize());
dataQuery.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize());
List<MesDeviceDataQueryReportResultModel> resultList = dataQuery.getResultList();
return new ListPager<>(resultList, pager);
}
}

@ -0,0 +1,30 @@
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report;
import cn.estsh.i3plus.ext.mes.api.busi.report.IMesYfReportService;
import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IMesYfReportDao;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel;
import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Description : -
* @Reference :
* @Author : logic
* @CreateDate : 2024/6/15 11:31
* @Modify:
**/
@Service
public class MesYfReportServiceImpl implements IMesYfReportService {
@Autowired
private IMesYfReportDao mesYfReportDao;
@Override
public ListPager<MesDeviceDataQueryReportResultModel> queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) {
return mesYfReportDao.queryMesDeviceDataByPager(queryReportModel, pager);
}
}

@ -0,0 +1,48 @@
package cn.estsh.i3plus.ext.mes.pojo.model.report;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam;
import lombok.Data;
/**
* @Description : -
* @Reference :
* @Author : logic
* @CreateDate : 2024/6/15 11:38
* @Modify:
**/
@Data
@ApiModel("设备数据查询报表-查询条件封装")
public class MesDeviceDataQueryReportConditionModel {
@ApiParam(value = "组织代码")
private String organizeCode;
/**
*
*/
@ApiParam(value = "工作中心(产线)")
private String workCenterCode;
@ApiParam(value = "工作单元代码(工位)")
private String workCellCode;
@ApiParam(value = "生产工单号(工单)")
private String workOrderNo;
@ApiParam(value = "过程条码(主条码)")
private String serialNumber;
@ApiParam(value = "设备代码(设备编号)")
private String equipmentCode;
@ApiParam(value = "日志类型")
private Integer logType;
@ApiParam(value = "创建日期查询用,查询起始日期")
private String createDateTimeStart;
@ApiParam(value = "创建日期查询用,查询结束日期")
private String createDateTimeEnd;
}

@ -0,0 +1,71 @@
package cn.estsh.i3plus.ext.mes.pojo.model.report;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam;
import lombok.Data;
/**
* @Description : -
* @Reference :
* @Author : logic
* @CreateDate : 2024/6/15 13:23
* @Modify:
**/
@Data
@ApiModel("设备数据查询报表-查询结果封装")
public class MesDeviceDataQueryReportResultModel {
@ApiParam(value = "ERP工厂号组织代码")
private String organizeCode;
@ApiParam(value = "工作中心(产线)")
private String workCenterCode;
@ApiParam(value = "工作单元代码(工位)")
private String workCellCode;
@ApiParam(value = "生产工单号(工单)")
private String workOrderNo;
@ApiParam(value = "过程条码(主条码)")
private String serialNumber;
@ApiParam(value = "日志类型")
private Integer logType;
@ApiParam(value = "日志内容")
private String message;
@ApiParam(value = "错误类型")
private String errorType;
@ApiParam(value = "设备代码(设备编号)")
private String equipmentCode;
@ApiParam(value = "设备名称")
private String equipmentName;
@ApiParam(value = "创建时间")
private String createDatetime;
@ApiParam(value = "创建人")
private String createUser;
public MesDeviceDataQueryReportResultModel(String organizeCode, String workCenterCode, String workCellCode,
String workOrderNo, String serialNumber, Integer logType, String message,
String errorType, String equipmentCode, String equipmentName,
String createDatetime, String createUser) {
this.organizeCode = organizeCode;
this.workCenterCode = workCenterCode;
this.workCellCode = workCellCode;
this.workOrderNo = workOrderNo;
this.serialNumber = serialNumber;
this.logType = logType;
this.message = message;
this.errorType = errorType;
this.equipmentCode = equipmentCode;
this.equipmentName = equipmentName;
this.createDatetime = createDatetime;
this.createUser = createUser;
}
}
Loading…
Cancel
Save