tags/yfai-pcn-ext-v1.0
王杰 12 months ago
parent b63a8c51af
commit d7614e1d8a

@ -1,203 +0,0 @@
/*
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.step;
import cn.estsh.i3plus.mes.pcn.serviceimpl.base.BaseStepService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.util.MesConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipment;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentInterfaceInfo;
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentParam;
import cn.estsh.i3plus.pojo.mes.bean.MesWcEquipment;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentInterfaceInfoRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentParamRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesWcEquipmentRepository;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
*/
/**
* @Description :
* @Reference :
* @Author : xiangwei.zhang
* @CreateDate : 2024-04-22
* @Modify:
**//*
@Slf4j
@Service("jxSnLineOnCheckMcOrPsStepService")
public class ReadWorkResultStepService extends BaseStepService {
@Autowired
private MesWcEquipmentRepository wcEquipmentRepository;
@Autowired
private MesEquipmentRepository equipmentRepository;
@Autowired
private MesEquipmentParamRepository equipmentParamRepository;
@Autowired
private MesEquipmentInterfaceInfoRepository mesEquipmentInterfaceInfoRepository;
@Override
public StepResult init(StationRequestBean reqBean) {
reqBean.setSerialNumber(null);
reqBean.setProductSn(null);
reqBean.setTray(null);
clearStepContent(reqBean);
return super.init(reqBean);
}
*/
/**
* , : ---> equParamList
* equParamList : , :
* equParamList : , :
* :, , ,
* , ,
* ++
* IDDB, : +
* , 0 (0)
* ,
* ,
* , , , ,
* , //, ,
*
* 1(1)
* @param reqBean
* @return
*//*
@Override
public StepResult execute(StationRequestBean reqBean) {
// 1 获取工位信息
String workCell = reqBean.getWorkCellCode();
// 2 根据工位在组织模型中获取设备信息编号
MesWcEquipment mesWcEquipment = wcEquipmentRepository.getByProperty(
new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED, MesConstWords.IS_VALID, "workCellCode"},
new Object[]{AuthUtil.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),
CommonEnumUtil.IS_VAILD.VAILD.getValue(), workCell});
if (null == mesWcEquipment) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("工位代码【%s】无效", workCell)
.build();
}
// 3 查询设备信息
MesEquipment mesEquipmentDb = equipmentRepository.getByProperty(
new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED, MesConstWords.IS_VALID, "equipmentCode"},
new Object[]{mesWcEquipment.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),
CommonEnumUtil.IS_VAILD.VAILD.getValue(), mesWcEquipment.getEquipmentCode()});
if (null == mesEquipmentDb) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("设备代码【%s】无效", mesWcEquipment.getEquipmentCode())
.build();
}
//4 查询设备参数信息
List<MesEquipmentParam> mesEquipmentParamList = equipmentParamRepository.findByProperty(
new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED, MesConstWords.IS_VALID, "equipmentCode"},
new Object[]{mesWcEquipment.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),
CommonEnumUtil.IS_VAILD.VAILD.getValue(), mesWcEquipment.getEquipmentCode()});
if (CollectionUtils.isEmpty(mesEquipmentParamList)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("设备代码【%s】无效", mesWcEquipment.getEquipmentCode())
.build();
}
//
List<MesEquipmentParam> mesEquipmentParams = mesEquipmentParamList.stream().filter(mesEquipParam -> Objects.equals(mesEquipParam.getVariableType(), cn.estsh.i3plus.ext.mes.pojo.util.MesPcnExtEnumUtil.EQUIPMENT_VARIABLE_TYPE.PRODUCTION_PARAM.getValue())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(mesEquipmentParams)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("未配置加工结果", mesWcEquipment.getEquipmentCode())
.build();
}
// 从equParamList中筛选 一个点位: 加工模式, 条件: 二级类别。
List<MesEquipmentParam> mesEquipmentParamsModel = mesEquipmentParamList.stream().filter(mesEquipParam -> Objects.equals(mesEquipParam.getVariableType(), cn.estsh.i3plus.ext.mes.pojo.util.MesPcnExtEnumUtil.EQUIPMENT_VARIABLE_TYPE.PRODUCTION_PARAM.getValue())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(mesEquipmentParams)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("未配置加工模式", mesWcEquipment.getEquipmentCode())
.build();
}
// 从equParamList中筛选 多个点位: 加工结果, 条件: 二级类别。
List<MesEquipmentParam> mesEquipmentParamsResult = mesEquipmentParamList.stream().filter(mesEquipParam -> Objects.equals(mesEquipParam.getVariableType(), cn.estsh.i3plus.ext.mes.pojo.util.MesPcnExtEnumUtil.EQUIPMENT_VARIABLE_TYPE.PRODUCTION_PARAM.getValue())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(mesEquipmentParams)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("未配置加工结果", mesWcEquipment.getEquipmentCode())
.build();
}
for (MesEquipmentParam mesEquipmentParam : mesEquipmentParamsModel) {
// 查询设备接口逻辑维护(可以拿到 查询的值以及对应的参考值) 有4个点位 成功 失败 报废 可疑
List<MesEquipmentInterfaceInfo> mesEquipmentInterfaceInfoList = mesEquipmentInterfaceInfoRepository.findByProperty(
new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED, MesConstWords.IS_VALID, "variableConfigType", "secondCategory"},
new Object[]{mesWcEquipment.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),
CommonEnumUtil.IS_VAILD.VAILD.getValue(), mesEquipmentDb.getVariableConfigType(), mesEquipmentParam.getSecondCategory()});
if (CollectionUtils.isEmpty(mesEquipmentInterfaceInfoList)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("设备接口逻辑维护信息缺失", mesWcEquipment.getEquipmentCode())
.build();
}
MesEquipmentInterfaceInfo mesEquipmentInterfaceInfo = mesEquipmentInterfaceInfoList.get(0);
// 查询设备数据采集表
boolean flag = Objects.equals(mesEquipmentInterfaceInfo.getIsOftenChangeValue(), 1);
Integer status = 1;
if (flag) {
status = 0;
}
//根据加工模式点位读取数据,判断值是否匹配接口逻辑的参考值 需要带条件 状态=0
// readEquipmentInfo();
String res = "";
//res = readEquipmentInfo();
if (StringUtils.isEmpty(res)) {
// 无结果
} else if (Objects.equals(res, mesEquipmentInterfaceInfo.getReferValue())) {
// 手动
// todo 修改状态为1 进入下一个工步
return StepResult.getSuccessComplete("");
} else {
// 自动/半自动
// todo 修改状态为1
}
}
// todo 查询数据库看设备的返回信息 与 逻辑维护的数据进行匹配,匹配成功则直接
//todo 根据设备id找到分表然后查询
return stepResult;
}
private
}
*/

@ -100,7 +100,7 @@ public class MesProductResultReadStepService extends BaseStepService {
execDynamicsCompleteAndSendMsg(reqBean, resultBean, stepResult, false, execDynamicsCompleteAndSendMsg(reqBean, resultBean, stepResult, false,
MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("请检查设备的质量状态,读取到设备[%s]的数据变量质量值为[%s]!", cellEquipContext.getEquipmentCode(), cellEquipContext.getQuality())); MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT, String.format("请检查设备的质量状态,读取到设备[%s]的数据变量质量值为[%s]!", cellEquipContext.getEquipmentCode(), cellEquipContext.getQuality()));
if (stepResult.isCompleted()) matchProductResult(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, collectContextList); matchProductResult(reqBean, resultBean, stepResult, productionProcessContext, cellEquipContext, collectContextList);
productionProcessContextStepService.doCacheProductionProcessContext(reqBean, productionProcessContext); productionProcessContextStepService.doCacheProductionProcessContext(reqBean, productionProcessContext);

@ -44,7 +44,7 @@ public class MesProductionProcessContext {
@ApiParam("工艺代码") @ApiParam("工艺代码")
private String craftCode; private String craftCode;
@ApiParam("工艺代码") @ApiParam("工艺名称")
private String craftName; private String craftName;
@ApiParam("当前工位设备对象([Json]MesCellEquipContext)") @ApiParam("当前工位设备对象([Json]MesCellEquipContext)")
@ -74,7 +74,7 @@ public class MesProductionProcessContext {
@ApiParam("模具号") @ApiParam("模具号")
private String mouldNo; private String mouldNo;
@ApiParam("一模多腔信息") @ApiParam("一模多腔信息JSON LIST")
private String mouldCavityJson; private String mouldCavityJson;
@ApiParam("零件信息") @ApiParam("零件信息")

Loading…
Cancel
Save