forked from I3-YF/i3plus-mes-pcn-yfai
Merge remote-tracking branch 'origin/dev' into dev
commit
3d80650895
@ -0,0 +1,61 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.api.busi;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblySortContext;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderAssembly;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IMesAssemblyExtService {
|
||||
|
||||
|
||||
@ApiOperation(value = "【排序线】获取生产工单装配件绑定记录 【List<MesProductionAssemblyContext>】")
|
||||
List<MesProductionAssemblyContext> getProductionAssemblySortContextList(MesProductionAssemblySortContext productionAssemblyContext, List<String> workOrderNoList);
|
||||
|
||||
@ApiOperation(value = "【排序线】获取生产工单装配件清单 【List<MesWorkOrderAssembly>】")
|
||||
List<MesWorkOrderAssembly> getWorkOrderAssemblyList(MesProductionAssemblySortContext productionAssemblySortCmontext, List<String> workOrderNoList);
|
||||
|
||||
@ApiOperation(value = "获取装配件绑定记录 【List<MesProductionAssembly>】")
|
||||
List<MesProductionAssembly> getProductionAssemblyList(MesProductionAssemblyContext productionAssemblyContext, List<Long> sourceIdList);
|
||||
|
||||
|
||||
|
||||
// @ApiOperation(value = "【排序线】获取装配件清单 【List<MesAssemblyNosortCfg>】")
|
||||
// List<MesAssemblyNosortCfg> getAssemblyNosortCfgList(MesProductionAssemblyNoSortContext productionAssemblyNosortContext);
|
||||
|
||||
|
||||
|
||||
// @ApiOperation(value = "获取装配件绑定记录 【List<MesProductionAssembly>】")
|
||||
// List<MesProductionAssembly> getProductionAssemblyList(MesProductionAssemblyContext productionAssemblyContext);
|
||||
//
|
||||
|
||||
//
|
||||
// @ApiOperation(value = "【非排序线】获取装配件绑定记录 【List<MesProductionAssembly>】")
|
||||
// List<MesProductionAssembly> getProductionAssemblyNosortList(MesProductionAssemblyNoSortContext productionAssemblyNosortContext);
|
||||
|
||||
|
||||
|
||||
// @ApiOperation(value = "【排序线】获取生产工单装配件绑定记录 【List<MesProductionAssemblySortContext>】")
|
||||
// List<MesProductionAssemblySortContext> getProductionAssemblyContextSortList(List<MesWorkOrderAssembly> workOrderAssemblyList, List<MesProductionAssembly> productionAssemblyList);
|
||||
//
|
||||
// @ApiOperation(value = "【非排序线】获取装配件绑定记录 【List<MesProductionAssemblyNoSortContext>】")
|
||||
// List<MesProductionAssemblyNoSortContext> getProductionAssemblyContextNosortList(List<MesWorkOrderAssembly> workOrderAssemblyList, List<MesProductionAssembly> productionAssemblyList);
|
||||
//
|
||||
// @ApiOperation(value = "获取装配件绑定记录 【List<MesProductionAssemblyContext>】")
|
||||
// List<MesProductionAssemblyContext> getProductionAssemblyContextList(List<MesWorkOrderAssembly> workOrderAssemblyList, List<MesProductionAssembly> productionAssemblyList);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// @ApiOperation(value = "【排序线】获取生产工单装配件绑定记录 【List<MesProductionAssemblySortContext>】")
|
||||
// List<MesProductionAssemblySortContext> getProductionAssemblyContextSortList(MesProductionAssemblySortContext productionAssemblySortContext);
|
||||
//
|
||||
// @ApiOperation(value = "【非排序线】获取装配件绑定记录 【List<MesProductionAssemblyNoSortContext>】")
|
||||
// List<MesProductionAssemblyNoSortContext> getProductionAssemblyContextNosortList(MesProductionAssemblyNoSortContext productionAssemblyNosortContext);
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.api.busi;
|
||||
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProdRuleNosortCfg;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProdRuleSortCfg;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IMesProdRuleCfgExtService {
|
||||
|
||||
@ApiOperation(value = "【非排序线】获取产品加工规则信息")
|
||||
List<MesProdRuleNosortCfg> getProdRuleNosortCfgList(MesProdRuleNosortCfg prodRuleNosortCfg);
|
||||
|
||||
@ApiOperation(value = "【排序线】获取产品加工规则信息")
|
||||
List<MesProdRuleSortCfg> getProdRuleSortCfgList(MesProdRuleSortCfg prodRuleSortCfg);
|
||||
|
||||
}
|
@ -0,0 +1,157 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.api.busi;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesWorkOrderContext;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesMouldMultiCavity;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
|
||||
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
|
||||
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
|
||||
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 获取生产过程上下文对象接口【BUSI】
|
||||
*/
|
||||
public interface IMesProductionDispatchContextStepService {
|
||||
|
||||
@ApiOperation(value = "发送设备质量信息")
|
||||
void sendEquipQualityMessage(StationRequestBean reqBean, MesCellEquipContext cellEquipContext);
|
||||
|
||||
@ApiOperation(value = "存储展示组件MODULE_CONTENT内容")
|
||||
Boolean saveModuleContentContext(StationRequestBean reqBean, List<List<StationKvBean>> dataList);
|
||||
|
||||
@ApiOperation(value = "获取展示组件MODULE_CONTENT内容")
|
||||
List<List<StationKvBean>> getModuleContentContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "存储上个扫描/读取信息")
|
||||
Boolean saveLastScanContext(StationRequestBean reqBean, List<StationKvBean> dataList);
|
||||
|
||||
@ApiOperation(value = "获取上个扫描/读取信息")
|
||||
List<StationKvBean> getLastScanContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "发送工步内容")
|
||||
void doSendStepContextMessage(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "发送工步内容")
|
||||
void doSendStepContextMessage(StationRequestBean reqBean, String scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE source);
|
||||
|
||||
@ApiOperation(value = "发送工步内容")
|
||||
void sendStepContextMessage(StationRequestBean reqBean, List<StationKvBean> resultList);
|
||||
|
||||
@ApiOperation(value = "获取上下文加工结果")
|
||||
String getProductResultContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "保存上下文加工结果", notes = "加工结果:成功/报废/可疑 【写入的值是变量类别代码】【报废/可疑: 在保存逻辑条码时有特殊业务处理】")
|
||||
Boolean saveProductResultContext(StationRequestBean reqBean, String productResult);
|
||||
|
||||
@ApiOperation(value = "删除上下文加工结果")
|
||||
void deleteProductResultContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "获取上下文就绪信号")
|
||||
String getReadySignalContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "保存上下文就绪信号", notes = "写1")
|
||||
Boolean saveReadySignalContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "删除上下文就绪信号")
|
||||
void deleteReadySignalContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "获取上下文头道模具号")
|
||||
MesEquipVariableCollectContext getFirstMouldNoContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "验证上下文头道模具号是否存在")
|
||||
Boolean checkFirstMouldNoIsExistContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "保存上下文头道模具号", notes = "[JSON]MesEquipVariableCollectContext::equipVariableValue")
|
||||
Boolean saveFirstMouldNoContext(StationRequestBean reqBean, MesEquipVariableCollectContext firstMouldNo);
|
||||
|
||||
@ApiOperation(value = "删除上下文头道模具号")
|
||||
void deleteFirstMouldNoContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "获取上下文一模多腔信息")
|
||||
List<MesMouldMultiCavity> getMouldMultiCavityContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "验证上下文一模多腔信息是否存在")
|
||||
Boolean checkMouldMultiCavityIsExistContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "保存上下文一模多腔信息", notes = "[JSON]List<MesMouldMultiCavity>")
|
||||
Boolean saveMouldMultiCavityContext(StationRequestBean reqBean, List<MesMouldMultiCavity> mouldMultiCavityList);
|
||||
|
||||
@ApiOperation(value = "删除上下文一模多腔信息")
|
||||
void deleteMouldMultiCavityContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "获取上下文零件数据信息")
|
||||
Map<String, MesPart> getPartDataContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "保存上下文零件数据信息", notes = "[JSON]Map<String, MesPart>")
|
||||
Boolean savePartDataContext(StationRequestBean reqBean, Map<String, MesPart> partDataMap);
|
||||
|
||||
@ApiOperation(value = "删除上下文零件数据信息")
|
||||
void deletePartDataContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "获取上下文模具号")
|
||||
MesEquipVariableCollectContext getMouldNoContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "验证上下文模具号是否存在")
|
||||
Boolean checkMouldNoIsExistContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "保存上下文模具号", notes = "[JSON]MesEquipVariableCollectContext::equipVariableValue")
|
||||
Boolean saveMouldNoContext(StationRequestBean reqBean, MesEquipVariableCollectContext mouldNo);
|
||||
|
||||
@ApiOperation(value = "删除上下文模具号")
|
||||
void deleteMouldNoContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "获取上下文生产工单数据信息集合")
|
||||
List<MesWorkOrderContext> getWorkOrderDataContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "验证上下文生产工单数据信息集合是否存在")
|
||||
Boolean checkWorkOrderDataIsExistContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "保存上下文生产工单数据信息集合", notes = "[JSON]List<MesWorkOrderContext>")
|
||||
Boolean saveWorkOrderDataContext(StationRequestBean reqBean, List<MesWorkOrderContext> workOrderContextList);
|
||||
|
||||
@ApiOperation(value = "删除上下文生产工单数据信息集合")
|
||||
void deleteWorkOrderDataContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "获取上下文生产扫/读信息:主条码")
|
||||
List<MesEquipVariableCollectContext> getScanProductSnContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "验证上下文扫/读信息:主条码是否存在")
|
||||
Boolean checkScanProductSnIsExistContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "保存上下文扫/读信息:主条码", notes = "[JSON]List<MesEquipVariableCollectContext>")
|
||||
Boolean saveScanProductSnContext(StationRequestBean reqBean, List<MesEquipVariableCollectContext> productSnList);
|
||||
|
||||
@ApiOperation(value = "删除上下文扫/读信息:装配件条码")
|
||||
void deleteScanProductSnContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "获取上下文生产扫/读信息:装配件条码")
|
||||
List<MesEquipVariableCollectContext> getScanAssemblySnContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "验证上下文扫/读信息:装配件条码是否存在")
|
||||
Boolean checkScanAssemblySnIsExistContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "保存上下文扫/读信息:装配件条码", notes = "[JSON]List<MesEquipVariableCollectContext>")
|
||||
Boolean saveScanAssemblySnContext(StationRequestBean reqBean, List<MesEquipVariableCollectContext> productSnList);
|
||||
|
||||
@ApiOperation(value = "删除上下文扫/读信息:装配件条码")
|
||||
void deleteScanAssemblySnContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "获取上下文产出条码数据信息集合")
|
||||
List<MesProduceSn> getOutProduceSnDataContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "验证上下文产出条码数据信息集合是否存在")
|
||||
Boolean checkOutProduceSnDataIsExistContext(StationRequestBean reqBean);
|
||||
|
||||
@ApiOperation(value = "保存上下文产出条码数据信息集合", notes = "[JSON]List<MesProduceSn>")
|
||||
Boolean saveOutProduceSnDataContext(StationRequestBean reqBean, List<MesProduceSn> outProduceSnDataList);
|
||||
|
||||
@ApiOperation(value = "删除上下文产出条码数据信息集合")
|
||||
void deleteOutProduceSnDataContext(StationRequestBean reqBean);
|
||||
|
||||
}
|
@ -0,0 +1,108 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblyContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionAssemblySortContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
||||
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderAssembly;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesProductionAssemblyRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderAssemblyRepository;
|
||||
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
||||
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.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class MesAssemblyExtService implements IMesAssemblyExtService {
|
||||
|
||||
@Autowired
|
||||
private MesWorkOrderAssemblyRepository workOrderAssemblyRepository;
|
||||
|
||||
@Autowired
|
||||
private MesProductionAssemblyRepository productionAssemblyRepository;
|
||||
|
||||
@Override
|
||||
public List<MesProductionAssemblyContext> getProductionAssemblySortContextList(MesProductionAssemblySortContext productionAssemblySortContext, List<String> workOrderNoList) {
|
||||
|
||||
if (null == productionAssemblySortContext || CollectionUtils.isEmpty(workOrderNoList)) return null;
|
||||
|
||||
if (StringUtils.isEmpty(productionAssemblySortContext.getOrganizeCode()) || StringUtils.isEmpty(productionAssemblySortContext.getWorkCenterCode()) ||
|
||||
StringUtils.isEmpty(productionAssemblySortContext.getWorkCellCode()) || StringUtils.isEmpty(productionAssemblySortContext.getProcessCode())) return null;
|
||||
|
||||
//【排序线】获取生产工单装配件清单
|
||||
List<MesWorkOrderAssembly> workOrderAssemblyList = getWorkOrderAssemblyList(productionAssemblySortContext, workOrderNoList);
|
||||
|
||||
if (CollectionUtils.isEmpty(workOrderAssemblyList)) return null;
|
||||
|
||||
//获取装配件绑定记录
|
||||
Map<Long, MesProductionAssembly> productionAssemblyMap = groupProductionAssembly(filterProductionAssemblyList(getProductionAssemblyList(
|
||||
productionAssemblySortContext.dataSource(MesExtEnumUtil.PRODUCTION_ASSEMBLY_DATA_SOURCE.SORT.getValue()), workOrderAssemblyList.stream().filter(o -> null != o).map(MesWorkOrderAssembly::getId).collect(Collectors.toList()))));
|
||||
|
||||
List<MesProductionAssemblyContext> productionAssemblyContextList = new ArrayList<>();
|
||||
|
||||
workOrderAssemblyList.forEach(o -> productionAssemblyContextList.add(new MesProductionAssemblySortContext(o, getProductionAssembly(productionAssemblyMap, o.getId()))));
|
||||
|
||||
return productionAssemblyContextList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MesWorkOrderAssembly> getWorkOrderAssemblyList(MesProductionAssemblySortContext productionAssemblySortContext, List<String> workOrderNoList) {
|
||||
|
||||
if (null == productionAssemblySortContext || CollectionUtils.isEmpty(workOrderNoList)) return null;
|
||||
|
||||
if (StringUtils.isEmpty(productionAssemblySortContext.getOrganizeCode()) || StringUtils.isEmpty(productionAssemblySortContext.getWorkCenterCode()) ||
|
||||
StringUtils.isEmpty(productionAssemblySortContext.getWorkCellCode()) || StringUtils.isEmpty(productionAssemblySortContext.getProcessCode())) return null;
|
||||
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(productionAssemblySortContext.getOrganizeCode());
|
||||
DdlPreparedPack.getStringEqualPack(productionAssemblySortContext.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
|
||||
DdlPreparedPack.getStringEqualPack(productionAssemblySortContext.getWorkCellCode(), MesPcnExtConstWords.WORK_CELL_CODE, packBean);
|
||||
DdlPreparedPack.getStringEqualPack(productionAssemblySortContext.getProcessCode(), MesPcnExtConstWords.PROCESS_CODE, packBean);
|
||||
if (workOrderNoList.size() == 1) DdlPreparedPack.getStringEqualPack(workOrderNoList.get(0), MesPcnExtConstWords.WORK_ORDER_NO, packBean);
|
||||
else DdlPreparedPack.getInPackList(workOrderNoList, MesPcnExtConstWords.WORK_ORDER_NO, packBean);
|
||||
|
||||
return workOrderAssemblyRepository.findByHqlWhere(packBean);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MesProductionAssembly> getProductionAssemblyList(MesProductionAssemblyContext productionAssemblyContext, List<Long> sourceIdList) {
|
||||
|
||||
if (null == productionAssemblyContext || CollectionUtils.isEmpty(sourceIdList)) return null;
|
||||
|
||||
if (StringUtils.isEmpty(productionAssemblyContext.getOrganizeCode()) || StringUtils.isEmpty(productionAssemblyContext.getDataSource())) return null;
|
||||
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(productionAssemblyContext.getOrganizeCode());
|
||||
DdlPreparedPack.getNumEqualPack(productionAssemblyContext.getDataSource(), MesPcnExtConstWords.ASSEMBLY_STATUS, packBean);
|
||||
DdlPreparedPack.getNumEqualPack(productionAssemblyContext.getDataSource(), MesPcnExtConstWords.DATD_SOURCE, packBean);
|
||||
if (sourceIdList.size() == 1) DdlPreparedPack.getNumEqualPack(sourceIdList.get(0), MesPcnExtConstWords.SOURCE_ID, packBean);
|
||||
else DdlPreparedPack.getInPackList(sourceIdList, MesPcnExtConstWords.SOURCE_ID, packBean);
|
||||
|
||||
return productionAssemblyRepository.findByHqlWhere(packBean);
|
||||
|
||||
}
|
||||
|
||||
private List<MesProductionAssembly> filterProductionAssemblyList(List<MesProductionAssembly> productionAssemblyList) {
|
||||
return CollectionUtils.isEmpty(productionAssemblyList) ? null : productionAssemblyList.stream().filter(o -> (null != o && MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_PART_STATUS_20.getValue() != o.getAssemblyStatus())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private Map<Long, MesProductionAssembly> groupProductionAssembly(List<MesProductionAssembly> productionAssemblyList) {
|
||||
return CollectionUtils.isEmpty(productionAssemblyList) ? null : productionAssemblyList.stream().filter(o -> null != o).collect(Collectors.toMap(MesProductionAssembly::getSourceId, o -> o));
|
||||
}
|
||||
|
||||
private MesProductionAssembly getProductionAssembly(Map<Long, MesProductionAssembly> productionAssemblyMap, Long id) {
|
||||
return CollectionUtils.isEmpty(productionAssemblyMap) ? null : productionAssemblyMap.get(id);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @Description : 装配规则匹配工步
|
||||
* @Author : wangjie
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("mesAssemblyRuleMatchStepService")
|
||||
public class MesAssemblyRuleMatchStepService extends BaseStepService {
|
||||
|
||||
@Autowired
|
||||
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
||||
|
||||
@Override
|
||||
public StepResult execute(StationRequestBean reqBean) {
|
||||
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
|
||||
StepResult stepResult = StepResult.getSuccessComplete();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return stepResult;
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,119 +0,0 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMouldMultiCavityService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipVariableCfgRuleMatchDispatchService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipmentLogExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipLogDispatchContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
|
||||
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IPartService;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.*;
|
||||
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.util.MesExtEnumUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
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.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @Description : 发送初始化指令工步
|
||||
* @Author : wangjie
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("MesSendInitializationCmdStepSeryice")
|
||||
public class MesSendInitializationCmdStepSeryice extends BaseStepService {
|
||||
|
||||
@Autowired
|
||||
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
||||
|
||||
@Autowired
|
||||
private IMesEquipmentLogExtService equipmentLogExtService;
|
||||
|
||||
@Autowired
|
||||
private IMesEquipVariableCfgRuleMatchDispatchService equipVariableCfgRuleMatchService;
|
||||
|
||||
@Autowired
|
||||
private IMesMouldMultiCavityService mouldMultiCavityService;
|
||||
|
||||
@Autowired
|
||||
private IPartService partService;
|
||||
|
||||
@Override
|
||||
public StepResult init(StationRequestBean reqBean) {
|
||||
|
||||
productionProcessContextStepService.doSendStepContextMessage(reqBean);
|
||||
|
||||
return super.init(reqBean);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public StepResult execute(StationRequestBean reqBean) {
|
||||
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
|
||||
StepResult stepResult = StepResult.getSuccessComplete();
|
||||
|
||||
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
|
||||
|
||||
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
|
||||
|
||||
//当前工序已存在头道模具号跟一模多腔信息
|
||||
if (!StringUtils.isEmpty(productionProcessContext.getFirstMouldNo()) && !StringUtils.isEmpty(productionProcessContext.getMouldCavityJson())) return stepResult;
|
||||
|
||||
//获取生产过程上下文对象有异常信息 抛出异常
|
||||
if (!productionProcessContextStepService.getEquipmentVariableCfgList(productionProcessContext).getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean, productionProcessContext.getMessage());
|
||||
|
||||
List<MesEquipmentVariableCfg> equipmentVariableCfgList = productionProcessContext.getEquipVariableCfgListByVct();
|
||||
|
||||
equipmentVariableCfgList = productionProcessContextStepService.collectEquipmentVariableCfgList(equipmentVariableCfgList, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.SEND_INIT.getValue());
|
||||
|
||||
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
|
||||
|
||||
//配置错误 抛出异常
|
||||
if (CollectionUtils.isEmpty(equipmentVariableCfgList)) execExpSendMsgAndThrowEx(reqBean, resultBean,
|
||||
String.format("请检查设备数据变量接口逻辑信息,设备[%s]未配置变量配置类型[%s]头道模具号相关变量类别的数据变量接口逻辑信息!", cellEquipContext.getEquipmentCode(), cellEquipContext.getVariableCfgType()));
|
||||
|
||||
List<String> categoryLevelTwoList = productionProcessContextStepService.collectCategoryLevelTwoList(equipmentVariableCfgList);
|
||||
|
||||
List<MesEquipmentVariable> equipmentVariableList = productionProcessContextStepService.findEquipmentVariableList(productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue(), categoryLevelTwoList);
|
||||
|
||||
//配置错误 抛出异常
|
||||
if (CollectionUtils.isEmpty(equipmentVariableList)) execExpSendMsgAndThrowEx(reqBean, resultBean,
|
||||
String.format("请检查设备数据变量信息,根据设备[%s]对应的数据变量接口逻辑信息,未配置变量类型[%s]二级变量%s相关的数据变量信息!", cellEquipContext.getEquipmentCode(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getDescription(), categoryLevelTwoList.toString()));
|
||||
|
||||
MesEquipLogDispatchContext equipLogDispatchContext = equipmentLogExtService.doHandleEquipmentLogList(cellEquipContext, equipmentVariableList, equipmentVariableCfgList);
|
||||
this.sendMessage(reqBean, resultBean, JSONObject.toJSONString(equipLogDispatchContext), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
|
||||
|
||||
//发送 todo
|
||||
MesEquipmentVariableCfg mesEquipmentVariableCfg = equipmentVariableCfgList.get(0);
|
||||
StringBuilder jsonSb = new StringBuilder();
|
||||
for (MesEquipmentVariable mesEquipmentVariable : equipmentVariableList) {
|
||||
jsonSb.append("{\n");
|
||||
jsonSb.append("\"tem:ReadVariable\":{\n");
|
||||
jsonSb.append("\"tem:equipmentId\":\""+mesEquipmentVariable.getEquipId()+"\",\n");
|
||||
jsonSb.append("\"tem:channel\":\""+mesEquipmentVariable.getChannel()+"\",\n");
|
||||
jsonSb.append("\"tem:clientHandle\":\""+mesEquipmentVariable.getClientHandle()+"\",\n");
|
||||
jsonSb.append("\"tem:v\":\""+mesEquipmentVariableCfg.getValue()+"\"\n");
|
||||
jsonSb.append("}\n");
|
||||
String json = jsonSb.append("}\n").toString();
|
||||
//发送
|
||||
}
|
||||
|
||||
return stepResult;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,126 +0,0 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesMouldMultiCavityService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipVariableCfgRuleMatchDispatchService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEquipmentLogExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IPartService;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
||||
import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
|
||||
import cn.estsh.i3plus.platform.common.util.MesPcnConstWords;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.*;
|
||||
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
|
||||
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.util.MesExtEnumUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import javassist.tools.web.Webserver;
|
||||
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 javax.jws.WebService;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description : 发送允许加工指令工步
|
||||
* @Author : wangjie
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("MesSendProcessCmdStepService")
|
||||
public class MesSendProcessCmdStepService extends BaseStepService {
|
||||
|
||||
@Autowired
|
||||
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
||||
|
||||
@Autowired
|
||||
private IMesEquipmentLogExtService equipmentLogExtService;
|
||||
|
||||
@Autowired
|
||||
private IMesEquipVariableCfgRuleMatchDispatchService equipVariableCfgRuleMatchService;
|
||||
|
||||
@Autowired
|
||||
private IMesMouldMultiCavityService mouldMultiCavityService;
|
||||
|
||||
@Autowired
|
||||
private IPartService partService;
|
||||
|
||||
@Override
|
||||
public StepResult init(StationRequestBean reqBean) {
|
||||
|
||||
productionProcessContextStepService.doSendStepContextMessage(reqBean);
|
||||
|
||||
return super.init(reqBean);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public StepResult execute(StationRequestBean reqBean) {
|
||||
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
|
||||
StepResult stepResult = StepResult.getSuccessComplete();
|
||||
|
||||
Optional<Map<String, MesProdRouteOptParam>> stepParamMap = getStepParams(reqBean);
|
||||
|
||||
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getCurCellEquipment(reqBean, stepParamMap);
|
||||
|
||||
//当前工序已存在头道模具号跟一模多腔信息
|
||||
if (!StringUtils.isEmpty(productionProcessContext.getFirstMouldNo()) && !StringUtils.isEmpty(productionProcessContext.getMouldCavityJson())) return stepResult;
|
||||
|
||||
//获取生产过程上下文对象有异常信息 抛出异常
|
||||
if (!productionProcessContextStepService.getEquipmentVariableCfgList(productionProcessContext).getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean, productionProcessContext.getMessage());
|
||||
|
||||
List<MesEquipmentVariableCfg> equipmentVariableCfgList = productionProcessContext.getEquipVariableCfgListByVct();
|
||||
|
||||
equipmentVariableCfgList = productionProcessContextStepService.collectEquipmentVariableCfgList(equipmentVariableCfgList, MesExtEnumUtil.EQUIP_VARIABLE_CFG_CATEGORY.SEND_PROCESS.getValue());
|
||||
|
||||
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
|
||||
|
||||
//配置错误 抛出异常
|
||||
if (CollectionUtils.isEmpty(equipmentVariableCfgList)) execExpSendMsgAndThrowEx(reqBean, resultBean,
|
||||
String.format("请检查设备数据变量接口逻辑信息,设备[%s]未配置变量配置类型[%s]允许加工指令工步 相关变量类别的数据变量接口逻辑信息!", cellEquipContext.getEquipmentCode(), cellEquipContext.getVariableCfgType()));
|
||||
|
||||
List<String> categoryLevelTwoList = productionProcessContextStepService.collectCategoryLevelTwoList(equipmentVariableCfgList);
|
||||
|
||||
List<MesEquipmentVariable> equipmentVariableList = productionProcessContextStepService.findEquipmentVariableList(productionProcessContext, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue(), categoryLevelTwoList);
|
||||
|
||||
//配置错误 抛出异常
|
||||
if (CollectionUtils.isEmpty(equipmentVariableList)) execExpSendMsgAndThrowEx(reqBean, resultBean,
|
||||
String.format("请检查设备数据变量信息,根据设备[%s]对应的数据变量接口逻辑信息,未配置变量类型[%s]二级变量%s相关的数据变量信息!", cellEquipContext.getEquipmentCode(), MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getDescription(), categoryLevelTwoList.toString()));
|
||||
|
||||
MesEquipLogDispatchContext equipLogDispatchContext = equipmentLogExtService.doHandleEquipmentLogList(cellEquipContext, equipmentVariableList, equipmentVariableCfgList);
|
||||
this.sendMessage(reqBean, resultBean, JSONObject.toJSONString(equipLogDispatchContext), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
|
||||
//发送 todo
|
||||
MesEquipmentVariableCfg mesEquipmentVariableCfg = equipmentVariableCfgList.get(0);
|
||||
StringBuilder jsonSb = new StringBuilder();
|
||||
for (MesEquipmentVariable mesEquipmentVariable : equipmentVariableList) {
|
||||
jsonSb.append("{\n");
|
||||
jsonSb.append("\"tem:ReadVariable\":{\n");
|
||||
jsonSb.append("\"tem:equipmentId\":\""+mesEquipmentVariable.getEquipId()+"\",\n");
|
||||
jsonSb.append("\"tem:channel\":\""+mesEquipmentVariable.getChannel()+"\",\n");
|
||||
jsonSb.append("\"tem:clientHandle\":\""+mesEquipmentVariable.getClientHandle()+"\",\n");
|
||||
jsonSb.append("\"tem:v\":\""+mesEquipmentVariableCfg.getValue()+"\"\n");
|
||||
jsonSb.append("}\n");
|
||||
String json = jsonSb.append("}\n").toString();
|
||||
//发送
|
||||
}
|
||||
|
||||
if (!stepResult.isCompleted()) threadSleep(stepParamMap, MesPcnExtConstWords.READ_FAILURE_SLEEP, MesPcnExtConstWords.READ_FAILURE_SLEEP_DEFAULT_TIME);
|
||||
|
||||
return stepResult;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,354 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.context;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesWorkOrderContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
||||
import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesMouldMultiCavity;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
|
||||
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
|
||||
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
|
||||
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
|
||||
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.TypeReference;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description : 获取生产过程上下文对象接口实现【BUSI】
|
||||
* @Author : wangjie
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("mesProductionDispatchContextStepService")
|
||||
public class MesProductionDispatchContextStepService extends BaseStepService implements IMesProductionDispatchContextStepService {
|
||||
|
||||
private String getContextKey(StationRequestBean reqBean) { return getFsmBusikey(reqBean, MesPcnExtConstWords.PRODUCTION_PROCESS_CONTEXT); }
|
||||
|
||||
//发送设备质量信息
|
||||
@Override
|
||||
public void sendEquipQualityMessage(StationRequestBean reqBean, MesCellEquipContext cellEquipContext) {
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
resultBean.setResultObj(MesExtEnumUtil.EQUIP_LOG_QUALITY.valueOfColor(cellEquipContext.getQuality()));
|
||||
resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.QUALITY_MODULE.getValue());
|
||||
resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.COLOR.getValue());
|
||||
this.sendMessage(reqBean, resultBean);
|
||||
}
|
||||
|
||||
//存储展示组件MODULE_CONTENT内容
|
||||
@Override
|
||||
public Boolean saveModuleContentContext(StationRequestBean reqBean, List<List<StationKvBean>> dataList) {
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MODULE_CONTENT_CONTEXT, JSONObject.toJSONString(dataList));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<List<StationKvBean>> getModuleContentContext(StationRequestBean reqBean) {
|
||||
String moduleContent = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MODULE_CONTENT_CONTEXT);
|
||||
return StringUtils.isEmpty(moduleContent) ? null : JSONObject.parseObject(moduleContent, new TypeReference<List<List<StationKvBean>>>() {});
|
||||
}
|
||||
|
||||
//存储上个扫描/读取信息
|
||||
@Override
|
||||
public Boolean saveLastScanContext(StationRequestBean reqBean, List<StationKvBean> dataList) {
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.LAST_SCAN_INFO_CONTEXT, JSONObject.toJSONString(dataList));
|
||||
}
|
||||
|
||||
//获取上个扫描/读取信息
|
||||
@Override
|
||||
public List<StationKvBean> getLastScanContext(StationRequestBean reqBean) {
|
||||
String lastScanContent = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.LAST_SCAN_INFO_CONTEXT);
|
||||
return StringUtils.isEmpty(lastScanContent) ? new ArrayList<>() : JSONObject.parseArray(lastScanContent, StationKvBean.class);
|
||||
}
|
||||
|
||||
//发送工步内容
|
||||
@Override
|
||||
public void doSendStepContextMessage(StationRequestBean reqBean) {
|
||||
sendStepContextMessage(reqBean, getLastScanContext(reqBean));
|
||||
}
|
||||
|
||||
//发送工步内容
|
||||
@Override
|
||||
public void doSendStepContextMessage(StationRequestBean reqBean, String scanInfo, MesExtEnumUtil.CELL_MESSAGE_SOURCE source) {
|
||||
|
||||
List<StationKvBean> lastScanContext = getLastScanContext(reqBean);
|
||||
|
||||
lastScanContext = StationKvBeanUtil.addStationKvBeanLimix100ThenHalf(lastScanContext, new StationKvBean().name(source.getDescription()).value(scanInfo));
|
||||
|
||||
saveLastScanContext(reqBean, lastScanContext);
|
||||
|
||||
sendStepContextMessage(reqBean, lastScanContext);
|
||||
|
||||
}
|
||||
|
||||
//发送工步内容
|
||||
@Override
|
||||
public void sendStepContextMessage(StationRequestBean reqBean, List<StationKvBean> lastScanContext) {
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
resultBean.setResultList(StationKvBeanUtil.addStationKvBeanList(new ArrayList<>(),
|
||||
lastScanContext.size() > 1 ? lastScanContext.get(1).name("上次" + lastScanContext.get(1).getName()).key(MesPcnExtConstWords.LAST_SCAN_INFO) : null,
|
||||
lastScanContext.size() > 0 ? lastScanContext.get(0).name("当前" + lastScanContext.get(0).getName()).key(MesPcnExtConstWords.SCAN_INFO) : null));
|
||||
resultBean.setBusiType(MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_CONTENT.getValue());
|
||||
resultBean.setDataType(MesPcnEnumUtil.STATION_DATA_TYPE.KEY_VALUE.getValue());
|
||||
this.sendMessage(reqBean, resultBean);
|
||||
}
|
||||
|
||||
//获取上下文加工结果
|
||||
@Override
|
||||
public String getProductResultContext(StationRequestBean reqBean) {
|
||||
return getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCT_RESULT_CONTEXT);
|
||||
}
|
||||
|
||||
//保存上下文加工结果 加工结果:成功/报废/可疑 【写入的值是变量类别代码】【报废/可疑: 在保存逻辑条码时有特殊业务处理】
|
||||
@Override
|
||||
public Boolean saveProductResultContext(StationRequestBean reqBean, String productResult) {
|
||||
if (StringUtils.isEmpty(productResult)) return false;
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCT_RESULT_CONTEXT, productResult);
|
||||
}
|
||||
|
||||
//删除上下文加工结果
|
||||
@Override
|
||||
public void deleteProductResultContext(StationRequestBean reqBean) {
|
||||
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCT_RESULT_CONTEXT);
|
||||
}
|
||||
|
||||
//获取上下文就绪信号
|
||||
@Override
|
||||
public String getReadySignalContext(StationRequestBean reqBean) {
|
||||
return getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.READY_SIGNAL_CONTEXT);
|
||||
}
|
||||
|
||||
//保存上下文就绪信号 写1
|
||||
@Override
|
||||
public Boolean saveReadySignalContext(StationRequestBean reqBean) {
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.READY_SIGNAL_CONTEXT, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr());
|
||||
}
|
||||
|
||||
//删除上下文就绪信号
|
||||
@Override
|
||||
public void deleteReadySignalContext(StationRequestBean reqBean) {
|
||||
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.READY_SIGNAL_CONTEXT);
|
||||
}
|
||||
|
||||
//获取上下文头道模具号
|
||||
@Override
|
||||
public MesEquipVariableCollectContext getFirstMouldNoContext(StationRequestBean reqBean) {
|
||||
String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FIRST_MOULD_NO_CONTEXT);
|
||||
return !StringUtils.isEmpty(firstMouldNo) ? JSONObject.parseObject(firstMouldNo, MesEquipVariableCollectContext.class) : null;
|
||||
}
|
||||
|
||||
//验证上下文头道模具号是否存在
|
||||
@Override
|
||||
public Boolean checkFirstMouldNoIsExistContext(StationRequestBean reqBean) {
|
||||
String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FIRST_MOULD_NO_CONTEXT);
|
||||
return !StringUtils.isEmpty(firstMouldNo) ? true : false;
|
||||
}
|
||||
|
||||
//保存上下文头道模具号 [JSON]MesEquipVariableCollectContext::equipVariableValue
|
||||
@Override
|
||||
public Boolean saveFirstMouldNoContext(StationRequestBean reqBean, MesEquipVariableCollectContext firstMouldNo) {
|
||||
if (null == firstMouldNo) return false;
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FIRST_MOULD_NO_CONTEXT, JSONObject.toJSONString(firstMouldNo));
|
||||
}
|
||||
|
||||
//删除上下文头道模具号
|
||||
@Override
|
||||
public void deleteFirstMouldNoContext(StationRequestBean reqBean) {
|
||||
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.FIRST_MOULD_NO_CONTEXT);
|
||||
}
|
||||
|
||||
//获取上下文一模多腔信息
|
||||
@Override
|
||||
public List<MesMouldMultiCavity> getMouldMultiCavityContext(StationRequestBean reqBean) {
|
||||
String mouldCavityJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_MULTI_CAVITY_CONTEXT);
|
||||
return !StringUtils.isEmpty(mouldCavityJson) ? JSONObject.parseArray(mouldCavityJson, MesMouldMultiCavity.class) : null;
|
||||
}
|
||||
|
||||
//验证上下文一模多腔信息是否存在
|
||||
@Override
|
||||
public Boolean checkMouldMultiCavityIsExistContext(StationRequestBean reqBean) {
|
||||
String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_MULTI_CAVITY_CONTEXT);
|
||||
return !StringUtils.isEmpty(firstMouldNo) ? true : false;
|
||||
}
|
||||
|
||||
//保存上下文一模多腔信息 [JSON]List<MesMouldMultiCavity>
|
||||
@Override
|
||||
public Boolean saveMouldMultiCavityContext(StationRequestBean reqBean, List<MesMouldMultiCavity> mouldMultiCavityList) {
|
||||
if (CollectionUtils.isEmpty(mouldMultiCavityList)) return false;
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_MULTI_CAVITY_CONTEXT, JSONObject.toJSONString(mouldMultiCavityList));
|
||||
}
|
||||
|
||||
//删除上下文一模多腔信息
|
||||
@Override
|
||||
public void deleteMouldMultiCavityContext(StationRequestBean reqBean) {
|
||||
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_MULTI_CAVITY_CONTEXT);
|
||||
}
|
||||
|
||||
//获取上下文零件数据信息
|
||||
@Override
|
||||
public Map<String, MesPart> getPartDataContext(StationRequestBean reqBean) {
|
||||
String partDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PART_DATA_CONTEXT);
|
||||
return !StringUtils.isEmpty(partDataJson) ? JSONObject.parseObject(partDataJson, new TypeReference<Map<String, MesPart>>() {}) : null;
|
||||
}
|
||||
|
||||
//保存上下文零件数据信息 [JSON]Map<String, MesPart>
|
||||
@Override
|
||||
public Boolean savePartDataContext(StationRequestBean reqBean, Map<String, MesPart> partDataMap) {
|
||||
if (CollectionUtils.isEmpty(partDataMap)) return false;
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PART_DATA_CONTEXT, JSONObject.toJSONString(partDataMap));
|
||||
}
|
||||
|
||||
//删除上下文零件数据信息
|
||||
@Override
|
||||
public void deletePartDataContext(StationRequestBean reqBean) {
|
||||
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PART_DATA_CONTEXT);
|
||||
}
|
||||
|
||||
//获取上下文模具号
|
||||
@Override
|
||||
public MesEquipVariableCollectContext getMouldNoContext(StationRequestBean reqBean) {
|
||||
String mouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_NO_CONTEXT);
|
||||
return !StringUtils.isEmpty(mouldNo) ? JSONObject.parseObject(mouldNo, MesEquipVariableCollectContext.class) : null;
|
||||
}
|
||||
|
||||
//验证上下文模具号是否存在
|
||||
@Override
|
||||
public Boolean checkMouldNoIsExistContext(StationRequestBean reqBean) {
|
||||
String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_NO_CONTEXT);
|
||||
return !StringUtils.isEmpty(firstMouldNo) ? true : false;
|
||||
}
|
||||
|
||||
//保存上下文模具号 [JSON]MesEquipVariableCollectContext::equipVariableValue
|
||||
@Override
|
||||
public Boolean saveMouldNoContext(StationRequestBean reqBean, MesEquipVariableCollectContext mouldNo) {
|
||||
if (null == mouldNo) return false;
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_NO_CONTEXT, JSONObject.toJSONString(mouldNo));
|
||||
}
|
||||
|
||||
//删除上下文模具号
|
||||
@Override
|
||||
public void deleteMouldNoContext(StationRequestBean reqBean) {
|
||||
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.MOULD_NO_CONTEXT);
|
||||
}
|
||||
|
||||
//获取上下文生产工单数据信息集合
|
||||
@Override
|
||||
public List<MesWorkOrderContext> getWorkOrderDataContext(StationRequestBean reqBean) {
|
||||
String workOrderDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.WORK_ORDER_DATA_CONTEXT);
|
||||
return !StringUtils.isEmpty(workOrderDataJson) ? JSONObject.parseArray(workOrderDataJson, MesWorkOrderContext.class) : null;
|
||||
}
|
||||
|
||||
//验证上下文生产工单数据信息集合是否存在
|
||||
@Override
|
||||
public Boolean checkWorkOrderDataIsExistContext(StationRequestBean reqBean) {
|
||||
String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.WORK_ORDER_DATA_CONTEXT);
|
||||
return !StringUtils.isEmpty(firstMouldNo) ? true : false;
|
||||
}
|
||||
|
||||
//保存上下文生产工单数据信息集合 [JSON]List<MesWorkOrderContext>
|
||||
@Override
|
||||
public Boolean saveWorkOrderDataContext(StationRequestBean reqBean, List<MesWorkOrderContext> workOrderContextList) {
|
||||
if (CollectionUtils.isEmpty(workOrderContextList)) return false;
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.WORK_ORDER_DATA_CONTEXT, JSONObject.toJSONString(workOrderContextList));
|
||||
}
|
||||
|
||||
//删除上下文生产工单数据信息集合
|
||||
@Override
|
||||
public void deleteWorkOrderDataContext(StationRequestBean reqBean) {
|
||||
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.WORK_ORDER_DATA_CONTEXT);
|
||||
}
|
||||
|
||||
//获取上下文扫/读信息:主条码
|
||||
@Override
|
||||
public List<MesEquipVariableCollectContext> getScanProductSnContext(StationRequestBean reqBean) {
|
||||
String productSnJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_PRODUCT_SN_CONTEXT);
|
||||
return !StringUtils.isEmpty(productSnJson) ? JSONObject.parseArray(productSnJson, MesEquipVariableCollectContext.class) : null;
|
||||
}
|
||||
|
||||
//验证上下文扫/读信息:主条码是否存在
|
||||
@Override
|
||||
public Boolean checkScanProductSnIsExistContext(StationRequestBean reqBean) {
|
||||
String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_PRODUCT_SN_CONTEXT);
|
||||
return !StringUtils.isEmpty(firstMouldNo) ? true : false;
|
||||
}
|
||||
|
||||
//保存上下文扫/读信息:主条码 [JSON]List<MesEquipVariableCollectContext>
|
||||
@Override
|
||||
public Boolean saveScanProductSnContext(StationRequestBean reqBean, List<MesEquipVariableCollectContext> productSnList) {
|
||||
if (CollectionUtils.isEmpty(productSnList)) return false;
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_PRODUCT_SN_CONTEXT, JSONObject.toJSONString(productSnList));
|
||||
}
|
||||
|
||||
//删除上下文扫/读信息:主条码
|
||||
@Override
|
||||
public void deleteScanProductSnContext(StationRequestBean reqBean) {
|
||||
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_PRODUCT_SN_CONTEXT);
|
||||
}
|
||||
|
||||
//获取上下文扫/读信息:装配件条码
|
||||
@Override
|
||||
public List<MesEquipVariableCollectContext> getScanAssemblySnContext(StationRequestBean reqBean) {
|
||||
String assemblySnJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_ASSEMBLY_SN_CONTEXT);
|
||||
return !StringUtils.isEmpty(assemblySnJson) ? JSONObject.parseArray(assemblySnJson, MesEquipVariableCollectContext.class) : null;
|
||||
}
|
||||
|
||||
//验证上下文扫/读信息:装配件条码是否存在
|
||||
@Override
|
||||
public Boolean checkScanAssemblySnIsExistContext(StationRequestBean reqBean) {
|
||||
String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_ASSEMBLY_SN_CONTEXT);
|
||||
return !StringUtils.isEmpty(firstMouldNo) ? true : false;
|
||||
}
|
||||
|
||||
//保存上下文扫/读信息:装配件条码 [JSON]List<MesEquipVariableCollectContext>
|
||||
@Override
|
||||
public Boolean saveScanAssemblySnContext(StationRequestBean reqBean, List<MesEquipVariableCollectContext> assemblySnList) {
|
||||
if (CollectionUtils.isEmpty(assemblySnList)) return false;
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_ASSEMBLY_SN_CONTEXT, JSONObject.toJSONString(assemblySnList));
|
||||
}
|
||||
|
||||
//删除上下文扫/读信息:装配件条码
|
||||
@Override
|
||||
public void deleteScanAssemblySnContext(StationRequestBean reqBean) {
|
||||
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_ASSEMBLY_SN_CONTEXT);
|
||||
}
|
||||
|
||||
//获取上下文产出条码数据信息集合
|
||||
@Override
|
||||
public List<MesProduceSn> getOutProduceSnDataContext(StationRequestBean reqBean) {
|
||||
String outProduceSnDataJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.OUT_PRODUCE_SN_DATA_CONTEXT);
|
||||
return !StringUtils.isEmpty(outProduceSnDataJson) ? JSONObject.parseArray(outProduceSnDataJson, MesProduceSn.class) : null;
|
||||
}
|
||||
|
||||
//验证上下文产出条码数据信息集合是否存在
|
||||
@Override
|
||||
public Boolean checkOutProduceSnDataIsExistContext(StationRequestBean reqBean) {
|
||||
String firstMouldNo = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.OUT_PRODUCE_SN_DATA_CONTEXT);
|
||||
return !StringUtils.isEmpty(firstMouldNo) ? true : false;
|
||||
}
|
||||
|
||||
//保存上下文产出条码数据信息集合 [JSON]List<MesProduceSn>
|
||||
@Override
|
||||
public Boolean saveOutProduceSnDataContext(StationRequestBean reqBean, List<MesProduceSn> outProduceSnDataList) {
|
||||
if (CollectionUtils.isEmpty(outProduceSnDataList)) return false;
|
||||
return saveFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.OUT_PRODUCE_SN_DATA_CONTEXT, JSONObject.toJSONString(outProduceSnDataList));
|
||||
}
|
||||
|
||||
//删除上下文产出条码数据信息集合
|
||||
@Override
|
||||
public void deleteOutProduceSnDataContext(StationRequestBean reqBean) {
|
||||
deleteFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.OUT_PRODUCE_SN_DATA_CONTEXT);
|
||||
}
|
||||
|
||||
|
||||
}
|
87
modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionProcessContextStepService.java → modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java
87
modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProductionProcessContextStepService.java → modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionProcessContextStepService.java
@ -0,0 +1,28 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.pojo.context;
|
||||
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 生产过程上下文对象-产品加工规则(非排序)
|
||||
*/
|
||||
@Data
|
||||
public class MesProdRuleNoSortContext extends MesProductionAssemblyContext implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 2240955722926511959L;
|
||||
|
||||
@ApiParam(value = "BOM明细ID")
|
||||
private String bomDetailId;
|
||||
|
||||
@ApiParam(value = "是否可复用条码")
|
||||
private Integer isRepeat;
|
||||
|
||||
@ApiParam(value = "是否忽略回车")
|
||||
private Integer isIgnoreEntry;
|
||||
|
||||
@ApiParam(value = "工序用量")
|
||||
private Integer qty;
|
||||
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.pojo.context;
|
||||
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 生产过程上下文对象-装配件清单信息(非排序)
|
||||
*/
|
||||
@Data
|
||||
public class MesWorkOrderContext extends MesWorkOrder implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 5562937531822977296L;
|
||||
|
||||
}
|
Loading…
Reference in New Issue