排序展示组件开发

tags/yfai-pcn-ext-v2.3
yxw 8 months ago
parent f441b07b4b
commit bdceeb26f5

@ -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());

@ -0,0 +1,74 @@
package cn.estsh.i3plus.ext.mes.pcn.pojo.model;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
import java.io.Serializable;
/**
*
*/
@Data
public class MesQueueOrderModel implements Serializable {
@ApiParam("区域代码")
private String areaCode;
@Column(name = "WORK_CENTER_CODE")
@ApiParam("工作中心")
private String workCenterCode;
@Column(name = "WORK_CELL_CODE")
@ApiParam("工位代码")
private String workCellCode;
@ApiParam("生产工单号")
private String workOrderNo;
@ApiParam("过程条码")
private String serialNumber;
@ApiParam("产品条码")
private String productSn;
@ApiParam("客户条码")
private String custSn;
@ApiParam("物料号")
private String partNo;
@ApiParam("物料名称")
private String partName;
@ApiParam("状态")
private Integer status;
@ApiParam("零件生产组代码")
private String partProdGroupCode;
@ApiParam("零件生产组名称")
private String partProdGroupName;
@ApiParam("生产序号")
private Long produceSeq;
@ApiParam("工单序号")
private String workOrderSeq;
@ApiParam("车型大类")
private String carModelCode;
@ApiParam("客户订单号")
private String custOrderNo;
@ApiParam("客户物料号")
private String custPartNo;
@ApiParam(value = "工艺顺序号")
private Integer processSeq;
@ApiParam(value = "颜色")
private String color;
}

@ -575,4 +575,6 @@ public class MesPcnExtConstWords {
// 产线名称
public static final String WORK_CENTER_NAME = "workCenterName";
// 生产序号
public static final String PRODUCT_SEQ = "productSeq";
}

Loading…
Cancel
Save