forked from I3-YF/i3plus-mes-pcn-yfai
step
parent
d32a698bb1
commit
2795d3109d
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -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