|
|
|
@ -4,36 +4,39 @@ import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesProdShiftRecordService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionCustomContextStepService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService;
|
|
|
|
|
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.MesProductionProcessContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesQueueOrderModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseModuleService;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.util.PojoAttrUtil;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.common.Pager;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesProdShiftRecord;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesStateMachineStatus;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.AttrBean;
|
|
|
|
|
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.repository.MesFileRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesQueueOrderRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @Description : 展示组件:非排序生产
|
|
|
|
|
* @Description : 展示组件:排序生产
|
|
|
|
|
* @Author :wangjie
|
|
|
|
|
**/
|
|
|
|
|
@Slf4j
|
|
|
|
@ -53,10 +56,7 @@ public class MesProductionSortModuleService extends BaseModuleService {
|
|
|
|
|
private IMesProdShiftRecordService mesProdShiftRecordService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesWorkOrderExtService workOrderExtService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesFileRepository mesFileRepository;
|
|
|
|
|
private MesQueueOrderRepository queueOrderRepository;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void init(StationRequestBean reqBean) {
|
|
|
|
@ -80,10 +80,9 @@ public class MesProductionSortModuleService extends BaseModuleService {
|
|
|
|
|
StationResultBean resultBean = getStationResultBean(reqBean, moduleContentContext, prodShiftDataContext);
|
|
|
|
|
this.sendMessage(reqBean, resultBean);
|
|
|
|
|
|
|
|
|
|
//TODO 右侧排序表格数据
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取当前工位最新修改的完成状态的队列单据数据 并根据其零件生产组代码按生产序号倒序前50条
|
|
|
|
|
resultBean = getStationResultBean(queryQueueOrderTopFiftyProduceSeq(getNewQueueOrder(reqBean)));
|
|
|
|
|
this.sendMessage(reqBean, resultBean);
|
|
|
|
|
|
|
|
|
|
//验证工位是否锁定
|
|
|
|
|
reqBean.getDataMap().put(MesPcnEnumUtil.ACTOR_RECEIVE_STRATEGY.WS_CMD_INIT_MODULE.getCode(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr());
|
|
|
|
@ -94,6 +93,66 @@ public class MesProductionSortModuleService extends BaseModuleService {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private StationResultBean getStationResultBean(List<MesQueueOrderModel> mesQueueOrderModelList) {
|
|
|
|
|
return new StationResultBean().busiType(MesPcnEnumUtil.STATION_BUSI_TYPE.MODULE_CUSTOM_CONTENT.getValue())
|
|
|
|
|
.customPageName(MesPcnExtConstWords.CUSTOM_PAGE_NAME_WORK_CELL)
|
|
|
|
|
.dataType(MesPcnEnumUtil.STATION_DATA_TYPE.TABLE.getValue())
|
|
|
|
|
.dataAttrList(dataAttrList()).resultList(mesQueueOrderModelList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//队列工单清单列表标题
|
|
|
|
|
public List<AttrBean> dataAttrList() {
|
|
|
|
|
List<AttrBean> attrBeanList = new ArrayList<>();
|
|
|
|
|
PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.PRODUCT_SEQ, "工单序号");
|
|
|
|
|
PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.CAR_MODEL_CODE, "车型配置");
|
|
|
|
|
PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.CUST_ORDER_NO, "客户订单号");
|
|
|
|
|
PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.PART_NO, "零件号");
|
|
|
|
|
return attrBeanList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<MesQueueOrderModel> queryQueueOrderTopFiftyProduceSeq(MesQueueOrder queueOrder) {
|
|
|
|
|
|
|
|
|
|
if (queueOrder == null) return new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
Pager pager = new Pager();
|
|
|
|
|
pager.setStartRow(1);
|
|
|
|
|
pager.setCurrentPage(1);
|
|
|
|
|
pager.setPageSize(50);
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(queueOrder.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(queueOrder.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(queueOrder.getWorkCellCode(), MesPcnExtConstWords.WORK_CELL_CODE, packBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(queueOrder.getPartProdGroupCode(), MesPcnExtConstWords.PART_PROD_GROUP_CODE, packBean);
|
|
|
|
|
packBean.setOrderByStr(" order by produceSeq desc ");
|
|
|
|
|
List<MesQueueOrder> queueOrderList = queueOrderRepository.findByHqlWherePage(packBean, pager);
|
|
|
|
|
|
|
|
|
|
List<MesQueueOrderModel> queueOrderModels = new ArrayList<>();
|
|
|
|
|
if (!CollectionUtils.isEmpty(queueOrderList)) {
|
|
|
|
|
|
|
|
|
|
boolean isComplete = false;
|
|
|
|
|
for (MesQueueOrder mesQueueOrder : queueOrderList) {
|
|
|
|
|
MesQueueOrderModel queueOrderModel = new MesQueueOrderModel();
|
|
|
|
|
BeanUtils.copyProperties(mesQueueOrder, queueOrderModel);
|
|
|
|
|
String color = MesExtEnumUtil.COLOR.GREEN.getValue();
|
|
|
|
|
if (queueOrderModel.getStatus() == MesExtEnumUtil.QUEUE_ORDER_STATUS.FINISH.getValue()) isComplete = true;
|
|
|
|
|
else if (!isComplete) color = MesExtEnumUtil.COLOR.WHITE.getValue();
|
|
|
|
|
else if (isComplete && (queueOrderModel.getStatus() == MesExtEnumUtil.QUEUE_ORDER_STATUS.CREATE.getValue())) color = MesExtEnumUtil.COLOR.YELLOW.getValue();
|
|
|
|
|
queueOrderModel.setColor(color);
|
|
|
|
|
queueOrderModels.add(queueOrderModel);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return queueOrderModels;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesQueueOrder getNewQueueOrder(StationRequestBean reqBean) {
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(reqBean.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(reqBean.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(reqBean.getWorkCellCode(), MesPcnExtConstWords.WORK_CELL_CODE, packBean);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.QUEUE_ORDER_STATUS.FINISH.getValue(), MesPcnExtConstWords.STATUS, packBean);
|
|
|
|
|
packBean.setOrderByStr(" order by modifyDatetime desc ");
|
|
|
|
|
return queueOrderRepository.getByProperty(packBean);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<StationKvBean> getShiftRecordStationKvBeans(StationRequestBean reqBean) {
|
|
|
|
|
// 获取班次信息 redis
|
|
|
|
|
List<StationKvBean> prodShiftDataContext = productionCustomContextStepService.getProdShiftDataContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode());
|
|
|
|
|