排序展示组件查询逻辑优化

tags/yfai-pcn-ext-v2.3
yxw 8 months ago
parent ad5934cfd8
commit 5eaf01b076

@ -6,6 +6,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepSer
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdShiftContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProdShiftContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesQueueOrderModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesQueueOrderModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
@ -34,6 +35,8 @@ import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* @Description : * @Description :
@ -63,14 +66,15 @@ public class MesProductionSortModuleService extends BaseModuleService {
// 获取工单信息 // 获取工单信息
List<List<StationKvBean>> moduleContentContext = productionDispatchContextStepService.getModuleContentContext(reqBean); List<List<StationKvBean>> moduleContentContext = productionDispatchContextStepService.getModuleContentContext(reqBean);
//获取上下文信息 // 获取产成零件信息
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getEquipmentVariableList(reqBean, MesExtEnumUtil.EQUIP_VARIABLE_TYPE.PRODUCTION.getValue()); List<MesProductionPartContext> productionPartContext = productionDispatchContextStepService.getProductionPartContext(reqBean);
MesWorkCell mesWorkCell = productionProcessContext.getWorkCell(); // 排除掉空腔的产成零件
productionPartContext = CollectionUtils.isEmpty(productionPartContext) ? null : productionPartContext.stream().filter(o -> o.getForeignKey() != null).collect(Collectors.toList());
//获取班次信息,先查询缓存,缓存没有在查询数据库 //获取班次信息,先查询缓存,缓存没有在查询数据库
List<StationKvBean> prodShiftDataContext = getShiftRecordStationKvBeans(reqBean); List<StationKvBean> prodShiftDataContext = getShiftRecordStationKvBeans(reqBean);
MesProdShiftContext mesProdShiftKvBean = productionCustomContextStepService.getMesProdShiftKvBean(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode()); //MesProdShiftContext mesProdShiftKvBean = productionCustomContextStepService.getMesProdShiftKvBean(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode());
if (CollectionUtils.isEmpty(prodShiftDataContext)) { if (CollectionUtils.isEmpty(prodShiftDataContext)) {
this.sendMessage(reqBean, new StationResultBean().writeDbLog(), "请先开班", MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); this.sendMessage(reqBean, new StationResultBean().writeDbLog(), "请先开班", MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
@ -81,7 +85,7 @@ public class MesProductionSortModuleService extends BaseModuleService {
this.sendMessage(reqBean, resultBean); this.sendMessage(reqBean, resultBean);
// 获取当前工位最新修改的完成状态的队列单据数据 并根据其零件生产组代码按生产序号倒序前50条 // 获取当前工位最新修改的完成状态的队列单据数据 并根据其零件生产组代码按生产序号倒序前50条
resultBean = getStationResultBean(queryQueueOrderTopFiftyProduceSeq(getNewQueueOrder(reqBean))); resultBean = getStationResultBean(queryQueueOrderTopFiftyProduceSeq(reqBean, getNewPartProdGroupCode(reqBean, productionPartContext)));
this.sendMessage(reqBean, resultBean); this.sendMessage(reqBean, resultBean);
//验证工位是否锁定 //验证工位是否锁定
@ -110,22 +114,24 @@ public class MesProductionSortModuleService extends BaseModuleService {
return attrBeanList; return attrBeanList;
} }
private List<MesQueueOrderModel> queryQueueOrderTopFiftyProduceSeq(MesQueueOrder queueOrder) { private List<MesQueueOrderModel> queryQueueOrderTopFiftyProduceSeq(StationRequestBean reqBean, List<String> partProdGroupCodeList) {
if (queueOrder == null) return new ArrayList<>(); if (CollectionUtils.isEmpty(partProdGroupCodeList)) return new ArrayList<>();
List<MesQueueOrderModel> queueOrderModels = new ArrayList<>();
for (String partProdGroupCode : partProdGroupCodeList) {
Pager pager = new Pager(); Pager pager = new Pager();
pager.setStartRow(1); pager.setStartRow(1);
pager.setCurrentPage(1); pager.setCurrentPage(1);
pager.setPageSize(50); pager.setPageSize(50);
DdlPackBean packBean = DdlPackBean.getDdlPackBean(queueOrder.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(queueOrder.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean); DdlPreparedPack.getStringEqualPack(reqBean.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
DdlPreparedPack.getStringEqualPack(queueOrder.getWorkCellCode(), MesPcnExtConstWords.WORK_CELL_CODE, packBean); DdlPreparedPack.getStringEqualPack(reqBean.getWorkCellCode(), MesPcnExtConstWords.WORK_CELL_CODE, packBean);
DdlPreparedPack.getStringEqualPack(queueOrder.getPartProdGroupCode(), MesPcnExtConstWords.PART_PROD_GROUP_CODE, packBean); DdlPreparedPack.getStringEqualPack(partProdGroupCode, MesPcnExtConstWords.PART_PROD_GROUP_CODE, packBean);
packBean.setOrderByStr(" order by produceSeq desc "); packBean.setOrderByStr(" order by produceSeq desc ");
List<MesQueueOrder> queueOrderList = queueOrderRepository.findByHqlWherePage(packBean, pager); List<MesQueueOrder> queueOrderList = queueOrderRepository.findByHqlWherePage(packBean, pager);
List<MesQueueOrderModel> queueOrderModels = new ArrayList<>(); //List<MesQueueOrderModel> queueOrderModels = new ArrayList<>();
if (!CollectionUtils.isEmpty(queueOrderList)) { if (!CollectionUtils.isEmpty(queueOrderList)) {
boolean isComplete = false; boolean isComplete = false;
@ -140,10 +146,22 @@ public class MesProductionSortModuleService extends BaseModuleService {
queueOrderModels.add(queueOrderModel); queueOrderModels.add(queueOrderModel);
} }
} }
}
return queueOrderModels; return queueOrderModels;
} }
private List<String> getNewPartProdGroupCode(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContext) {
// 获取工单信息
if (!CollectionUtils.isEmpty(productionPartContext)) {
return productionPartContext.stream().map(MesProductionPartContext::getPartProdGroupCode).distinct().collect(Collectors.toList());
}
MesQueueOrder queueOrder = getNewQueueOrder(reqBean);
return Stream.of(queueOrder.getPartProdGroupCode()).collect(Collectors.toList());
}
private MesQueueOrder getNewQueueOrder(StationRequestBean reqBean) { private MesQueueOrder getNewQueueOrder(StationRequestBean reqBean) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(reqBean.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean); DdlPreparedPack.getStringEqualPack(reqBean.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);

Loading…
Cancel
Save