forked from I3-YF/i3plus-mes-yfai
MES设备数据查询报表
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;
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue