tags/yfai-mes-ext-v1.0
gsz 11 months ago
commit bedb0c264c

@ -16,7 +16,7 @@ public interface IMesWorkOrderService extends IBaseMesService<MesWorkOrder> {
void doProductReportExt(MesWorkOrder mesWorkOrder);
void deleteUnSortOrder(String userName,String organizeCode);
void deleteUnSortOrder(String userName, String organizeCode, List<String> partNoList);
List<MesWorkOrder> sumMesWorkOrderQtyToSap(String organizeCode);

@ -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);
}

@ -4,10 +4,12 @@ import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService;
import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderToSapService;
import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt;
import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel.MesExcelTool;
import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.i3plus.pojo.model.wms.WmsProductModel;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
@ -18,12 +20,16 @@ import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Api(description = "工单主页面")
@RestController
@ -41,26 +47,33 @@ public class MesWorkOrderController extends BaseMesController<MesWorkOrder> {
public ResultBean importMesWorkOrderExcel(@RequestParam("file") MultipartFile file, @RequestParam("status") Integer type) {
try {
MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis());
List<MesWorkOrder> beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), MesWorkOrder.class);
List<MesWorkOrderModel> beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), MesWorkOrderModel.class);
// 校验导入数据
validateImport(beanList);
if(CollectionUtils.isEmpty(beanList)){
MesException.throwMesBusiException("导入数据不存在");
}
String userName = AuthUtil.getSessionUser().getUserName();
String organizeCode = AuthUtil.getOrganize().getOrganizeCode();
//非排序工单导入前删除
if (MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue() == type) {
mesWorkOrderService.deleteUnSortOrder(userName,organizeCode);
List<String> partNoList = beanList.stream().map(MesWorkOrderModel::getPartNo).filter(partNo -> !StringUtils.isEmpty(partNo)).distinct().collect(Collectors.toList());
if(CollectionUtils.isEmpty(partNoList)){
MesException.throwMesBusiException("导入物料信息数据无效");
}
mesWorkOrderService.deleteUnSortOrder(userName,organizeCode,partNoList);
}
List<MesWorkOrder> mesWorkOrderList = new ArrayList<>();
// 导入数据初始化
for (MesWorkOrder bean : beanList) {
bean.setWorkOrderType(type);
ConvertBean.serviceModelInitialize(bean, userName);
bean.setOrganizeCode(organizeCode);
for (MesWorkOrderModel bean : beanList) {
MesWorkOrder mesWorkOrder = new MesWorkOrder();
BeanUtils.copyProperties(bean, mesWorkOrder);
mesWorkOrder.setWorkOrderType(type);
ConvertBean.serviceModelInitialize(mesWorkOrder, userName);
mesWorkOrder.setOrganizeCode(organizeCode);
mesWorkOrderList.add(mesWorkOrder);
}
baseService.insertBatch(beanList);
baseService.insertBatch(mesWorkOrderList);
// 导入后
afterImport(beanList);
return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException e) {
return ResultBean.fail(e);

@ -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);
}
}

@ -14,6 +14,7 @@ import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* @Description :
@ -208,6 +209,14 @@ public class WmsSAPDbTranslator extends WmsSAPDbSyncBase {
return defaultValue;
}
//表达式包含 :NotTrans 或 NotTrans
boolean hasNotTrans = false;
if (defaultValue.toString().endsWith(WmsSAPDbExpression.NOT_TRANS)) {
defaultValue = defaultValue.toString().replace(":" + WmsSAPDbExpression.NOT_TRANS, "");
defaultValue = defaultValue.toString().replace(WmsSAPDbExpression.NOT_TRANS, "");
hasNotTrans = true;
}
Object objResult;
try {
@ -221,6 +230,10 @@ public class WmsSAPDbTranslator extends WmsSAPDbSyncBase {
+ JSONObject.toJSONString(rowMap));
}
//添加NotTrans
if (!Objects.isNull(objResult) && hasNotTrans) {
objResult = objResult + ":" + WmsSAPDbExpression.NOT_TRANS;
}
// 计算后返回
return objResult;
}

@ -24,6 +24,7 @@ public class MesPackingDefineServiceImpl extends BaseMesService<MesPackingDefine
protected void setPackQueryBean(MesPackingDefine bean, DdlPackBean packBean) {
DdlPreparedPack.getStringEqualPack(bean.getPackCode(), "packCode", packBean);
DdlPreparedPack.getStringLikerPack(bean.getPackName(), "packName", packBean);
DdlPreparedPack.getNumEqualPack(bean.getCheckLotnumberFlag(), "checkLotnumberFlag", packBean);
}
@Override

@ -7,7 +7,6 @@ import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.mes.apiservice.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.MathOperation;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
@ -22,13 +21,13 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.i3plus.pojo.model.wms.WmsProductModel;
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.ValidatorBean;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
@ -85,7 +84,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
//获取相同类型 相同标识 生产序号最大值的
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), "workOrderStatus", orderPackBean);
DdlPreparedPack.getNumEqualPack(bean.getOrderFlag(), "orderFlag", orderPackBean);
DdlPreparedPack.getStringEqualPack(bean.getOrderFlag(), "orderFlag", orderPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"produceSeq"}, orderPackBean);
MesWorkOrder result = baseRDao.getByProperty(orderPackBean);
@ -232,7 +231,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (result.getWorkOrderStatus() >= MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()) {
if (!Objects.equals(bean.getPartNo(), result.getPartNo())) {
MesException.throwMesBusiException(String.format("工单状态为【%s】不允许修改物料",
MesExtEnumUtil.ORDER_TYPE.valueOfDescription(result.getWorkOrderStatus())));
MesExtEnumUtil.ORDER_STATUS.valueOfDescription(result.getWorkOrderStatus())));
}
}
@ -249,12 +248,6 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
//更新状态
if (bean.getWorkOrderStatus() > 0) {
if (MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue() == bean.getWorkOrderStatus()) {
if (MesExtEnumUtil.ORDER_STATUS.CREATE.getValue() != result.getWorkOrderStatus()) {
MesException.throwMesBusiException(String.format("工单状态为【%s】不为创建不允许发布",
MesExtEnumUtil.ORDER_TYPE.valueOfDescription(result.getWorkOrderStatus())));
}
}
result.setWorkOrderStatus(bean.getWorkOrderStatus());
}
ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName());
@ -286,6 +279,25 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
DdlPreparedPack.getStringSmallerPack(bean.getEndTimeEnd(), "planEndTime", packBean);
packBean.setOrderByStr(" order by createDatetime desc,workOrderSeq asc,workOrderNo asc ");
}
@Override
protected void setBeanModel(List<MesWorkOrder> mesWorkOrderList) {
//查询工作中心名称
if(CollectionUtils.isEmpty(mesWorkOrderList)){
return;
}
MesWorkOrder mesWorkOrder = mesWorkOrderList.iterator().next();
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode());
DdlPreparedPack.getInPackList(mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).filter(workCenterCode -> !StringUtils.isEmpty(workCenterCode)).distinct().collect(Collectors.toList()), "workCenterCode", ddlPackBean);
List<MesWorkCenter> mesWorkCenterList = mesWorkCenterRDao.findByHqlWhere(ddlPackBean);
if (CollectionUtils.isEmpty(mesWorkCenterList)) {
return;
}
Map<String, String> mesWorkCenterMap = mesWorkCenterList.stream().collect(Collectors.toMap(MesWorkCenter::getWorkCenterCode, MesWorkCenter::getWorkCenterName));
mesWorkOrderList.forEach(t->{
t.setWorkCenterName(mesWorkCenterMap.get(t.getWorkCenterCode()));
});
}
@Override
protected void onInsertBean(MesWorkOrder item) {
@ -293,6 +305,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
// 数据校验
ValidatorBean.checkNotNull(item.getWorkOrderType(), "工单类型不能为空");
ValidatorBean.checkNotNull(item.getWorkCenterCode(), "产线不能为空");
ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空");
ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空");
@ -308,19 +321,15 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空");
//若工单类型为排序 标识为 N E P S
if (item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue() &&
item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() &&
item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue() &&
item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()) {
throw ImppExceptionBuilder.newInstance()
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail(String.format("工单标识为【%s】请选择 【%s】、【%s】、【%s】、【%s】 标识",
item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getDescription()
, MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getDescription(),
MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getDescription(),
MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getDescription()))
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.build();
if (!MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue().equals(item.getOrderFlag())&&
!MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue().equals(item.getOrderFlag())&&
!MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue().equals(item.getOrderFlag())&&
!MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(item.getOrderFlag())){
MesException.throwMesBusiException(String.format("工单标识为【%s】请选择 【%s】、【%s】、【%s】、【%s】 标识",
item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue()
, MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(),
MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue(),
MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue()));
}
if (StringUtil.isEmpty(item.getPlanStartTime()) || StringUtil.isEmpty(item.getPlanEndTime())) {
packPlanTime(item);
@ -353,15 +362,13 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) {
ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空");
ValidatorBean.checkNotNull(item.getProductVersion(), "生产版本不能为空");
if (item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() &&
item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue()) {
throw ImppExceptionBuilder.newInstance()
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail(String.format("工单标识为【%s】请选择 【%s】、【%s】 标识",
item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getDescription(),
MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getDescription()))
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.build();
if (!MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue().equals(item.getOrderFlag())&&
!MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue().equals(item.getOrderFlag())&&
!MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(item.getOrderFlag())){
MesException.throwMesBusiException(String.format("工单标识为【%s】请选择 【%s】、【%s】、【%s】 标识",
item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue()
, MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(),
MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue()));
}
if (StringUtil.isEmpty(item.getPlanStartTime()) || StringUtil.isEmpty(item.getPlanEndTime())) {
packPlanTime(item);
@ -730,8 +737,9 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
@Override
public void deleteUnSortOrder(String userName, String organizeCode) {
public void deleteUnSortOrder(String userName, String organizeCode, List<String> partNoList) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(partNoList, "partNo", ddlPackBean);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue(), "workOrderType", ddlPackBean);
DdlPreparedPack.getStringSmallerNotEqualPack(TimeTool.getToday(), "planStartTime", ddlPackBean);
DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), "workOrderStatus", ddlPackBean);

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