|
|
|
@ -52,12 +52,13 @@ public class MesQueueOrderPushService implements IMesQueueOrderPushService {
|
|
|
|
|
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workCenterCode});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取当前工单对应的工位推单队列中最大的顺序号; 递增步长10,取整10位; 例如:查询=10 >> 返回=20 ; 查询=29 >> 返回=30
|
|
|
|
|
//获取当前生产线推单代码中最大的顺序号; 递增步长10,取整10位; 例如:查询=10 >> 返回=20 ; 查询=29 >> 返回=30
|
|
|
|
|
@Override
|
|
|
|
|
public Integer getQueueOrderPushMaxSeq(String organizeCode, String workOrderNo) {
|
|
|
|
|
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workOrderNo)) return MesPcnExtConstWords.TEN;
|
|
|
|
|
public Integer getQueueOrderPushMaxSeq(String organizeCode, MesQueueOrderPushCellCfg queueOrderPushCellCfg) {
|
|
|
|
|
if (StringUtils.isEmpty(organizeCode) || null == queueOrderPushCellCfg) return MesPcnExtConstWords.TEN;
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(workOrderNo, MesPcnExtConstWords.WORK_ORDER_NO, packBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(queueOrderPushCellCfg.getPushSourceCode(), MesPcnExtConstWords.PUSH_SOURCE_CODE, packBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(queueOrderPushCellCfg.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
|
|
|
|
|
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesPcnExtConstWords.PROCESS_SEQ}, packBean);
|
|
|
|
|
MesQueueOrderPush queueOrderPushDb2MaxSeq = queueOrderPushRepository.getByProperty(packBean);
|
|
|
|
|
return ((null == queueOrderPushDb2MaxSeq || queueOrderPushDb2MaxSeq.getProcessSeq().compareTo(MesPcnExtConstWords.ZERO) == 0)
|
|
|
|
@ -65,13 +66,29 @@ public class MesQueueOrderPushService implements IMesQueueOrderPushService {
|
|
|
|
|
) * MesPcnExtConstWords.TEN;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//根据条件顺序号查询上一个顺序号,返回加一
|
|
|
|
|
@Override
|
|
|
|
|
public Integer getQueueOrderPushCalcSeq(String organizeCode, MesQueueOrderPushCellCfg queueOrderPushCellCfg, Integer processSeqUp) {
|
|
|
|
|
if (StringUtils.isEmpty(organizeCode) || null == queueOrderPushCellCfg) return MesPcnExtConstWords.TEN;
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(queueOrderPushCellCfg.getPushSourceCode(), MesPcnExtConstWords.PUSH_SOURCE_CODE, packBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(queueOrderPushCellCfg.getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
|
|
|
|
|
DdlPreparedPack.getNumberSmallerPackContainsZero(processSeqUp, MesPcnExtConstWords.PROCESS_SEQ, packBean);
|
|
|
|
|
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesPcnExtConstWords.PROCESS_SEQ}, packBean);
|
|
|
|
|
MesQueueOrderPush queueOrderPushDb2MaxSeq = queueOrderPushRepository.getByProperty(packBean);
|
|
|
|
|
if (null == queueOrderPushDb2MaxSeq) return MesPcnExtConstWords.ONE;
|
|
|
|
|
Integer processSeq = queueOrderPushDb2MaxSeq.getProcessSeq() + 1;
|
|
|
|
|
if (processSeq.compareTo(processSeqUp) == 0) return queueOrderPushDb2MaxSeq.getProcessSeq();
|
|
|
|
|
return processSeq;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//写入工位工单推送信息
|
|
|
|
|
@Override
|
|
|
|
|
public void insertQueueOrderPush(String organizeCode, String userInfo, List<MesQueueOrderPushCellCfg> queueOrderPushCellCfgList,
|
|
|
|
|
MesProductionPsOutContext productionPsOutContext, MesProductionPartContext productionPartContext) {
|
|
|
|
|
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(userInfo) || null == productionPsOutContext || CollectionUtils.isEmpty(queueOrderPushCellCfgList)) return;
|
|
|
|
|
Integer processSeq = getQueueOrderPushMaxSeq(organizeCode, productionPsOutContext.getWorkOrderNo());
|
|
|
|
|
for (MesQueueOrderPushCellCfg queueOrderPushCellCfg : queueOrderPushCellCfgList) {
|
|
|
|
|
Integer processSeq = getQueueOrderPushMaxSeq(organizeCode, queueOrderPushCellCfg);
|
|
|
|
|
if (null == queueOrderPushCellCfg) continue;
|
|
|
|
|
MesQueueOrderPush queueOrderPush = new MesQueueOrderPush();
|
|
|
|
|
queueOrderPush.setPushSourceCode(queueOrderPushCellCfg.getPushSourceCode());
|
|
|
|
@ -98,10 +115,17 @@ public class MesQueueOrderPushService implements IMesQueueOrderPushService {
|
|
|
|
|
|
|
|
|
|
//写入工位工单推送信息
|
|
|
|
|
@Override
|
|
|
|
|
public void insertQueueOrderPush(StationRequestBean reqBean, MesWorkOrder workOrder, Map<String, String> paramMap) {
|
|
|
|
|
public void insertQueueOrderPush(StationRequestBean reqBean, MesWorkOrder workOrder, MesQueueOrderPushCellCfg queueOrderPushCellCfg, String processSeqUp) {
|
|
|
|
|
Integer processSeq;
|
|
|
|
|
//获取当前生产线推单代码中最大的顺序号
|
|
|
|
|
if (StringUtils.isEmpty(processSeqUp)) processSeq = getQueueOrderPushMaxSeq(reqBean.getOrganizeCode(), queueOrderPushCellCfg);
|
|
|
|
|
//根据条件顺序号查询上一个顺序号,返回加一
|
|
|
|
|
else processSeq = getQueueOrderPushCalcSeq(reqBean.getOrganizeCode(), queueOrderPushCellCfg, Integer.valueOf(processSeqUp));
|
|
|
|
|
|
|
|
|
|
//新增队列
|
|
|
|
|
MesQueueOrderPush queueOrderPush = new MesQueueOrderPush();
|
|
|
|
|
queueOrderPush.setPushSourceCode(paramMap.get(MesPcnExtConstWords.PUSH_SOURCE_CODE));
|
|
|
|
|
queueOrderPush.setProcessSeq(Integer.valueOf(paramMap.get(MesPcnExtConstWords.PROCESS_SEQ)));
|
|
|
|
|
queueOrderPush.setPushSourceCode(queueOrderPushCellCfg.getPushSourceCode());
|
|
|
|
|
queueOrderPush.setProcessSeq(processSeq);
|
|
|
|
|
queueOrderPush.setWorkOrderNo(workOrder.getWorkOrderNo());
|
|
|
|
|
queueOrderPush.setProductSn(workOrder.getWorkOrderNo());
|
|
|
|
|
queueOrderPush.setCustSn(workOrder.getCustSn());
|
|
|
|
@ -134,7 +158,7 @@ public class MesQueueOrderPushService implements IMesQueueOrderPushService {
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesQueueOrderPush> getQueueOrderPushList(String organizeCode, List<MesQueueOrderPushCellCfg> queueOrderPushCellCfgList) {
|
|
|
|
|
if (StringUtils.isEmpty(organizeCode) || CollectionUtils.isEmpty(queueOrderPushCellCfgList)) return null;
|
|
|
|
|
//搜集推送来源代码 去重; 根据生产线代码,推送来源代码集合查询创建状态的生产队列工位推送信息【创建时间正序】
|
|
|
|
|
//搜集推送来源代码 去重; 根据生产线代码,推送来源代码集合查询创建状态的生产队列工位推送信息【工序顺序号正序,创建时间正序】
|
|
|
|
|
List<MesQueueOrderPush> queueOrderPushList = getQueueOrderPushListByStatus(organizeCode, queueOrderPushCellCfgList, CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), MesExtEnumUtil.QUEUE_ORDER_STATUS.CREATE.getValue());
|
|
|
|
|
//条码去重
|
|
|
|
|
return CollectionUtils.isEmpty(queueOrderPushList) ? null :
|
|
|
|
@ -145,7 +169,7 @@ public class MesQueueOrderPushService implements IMesQueueOrderPushService {
|
|
|
|
|
|
|
|
|
|
//根据配置查询生产队列工位推送信息
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesQueueOrderPush> getQueueOrderPushListByStatus(String organizeCode, List<MesQueueOrderPushCellCfg> queueOrderPushCellCfgList, Integer cdtAscOrDesc, Integer... queueStatusArr) {
|
|
|
|
|
public List<MesQueueOrderPush> getQueueOrderPushListByStatus(String organizeCode, List<MesQueueOrderPushCellCfg> queueOrderPushCellCfgList, Integer ascOrDesc, Integer... queueStatusArr) {
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(organizeCode) || CollectionUtils.isEmpty(queueOrderPushCellCfgList)) return null;
|
|
|
|
|
|
|
|
|
@ -155,7 +179,7 @@ public class MesQueueOrderPushService implements IMesQueueOrderPushService {
|
|
|
|
|
).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
|
|
|
|
|
if (CollectionUtils.isEmpty(pushSourceCodeList)) return null;
|
|
|
|
|
|
|
|
|
|
//根据生产线代码,推送来源代码集合查询入参状态的生产队列工位推送信息【创建时间正序】
|
|
|
|
|
//根据生产线代码,推送来源代码集合查询入参状态的生产队列工位推送信息【工艺顺序号,创建时间根据条件排序】
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(queueOrderPushCellCfgList.get(0).getWorkCenterCode(), MesPcnExtConstWords.WORK_CENTER_CODE, packBean);
|
|
|
|
|
|
|
|
|
@ -166,7 +190,7 @@ public class MesQueueOrderPushService implements IMesQueueOrderPushService {
|
|
|
|
|
if (pushSourceCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(pushSourceCodeList.get(0), MesPcnExtConstWords.PUSH_SOURCE_CODE, packBean);
|
|
|
|
|
else DdlPreparedPack.getInPackList(pushSourceCodeList, MesPcnExtConstWords.PUSH_SOURCE_CODE, packBean);
|
|
|
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(cdtAscOrDesc)) DdlPreparedPack.getOrderByPack(new Object[]{cdtAscOrDesc}, new String[]{MesPcnExtConstWords.CREATE_DATE_TIME}, packBean);
|
|
|
|
|
if (!StringUtils.isEmpty(ascOrDesc)) DdlPreparedPack.getOrderByPack(new Object[]{ascOrDesc, ascOrDesc}, new String[]{MesPcnExtConstWords.PROCESS_SEQ, MesPcnExtConstWords.CREATE_DATE_TIME}, packBean);
|
|
|
|
|
|
|
|
|
|
return queueOrderPushRepository.findByHqlWhere(packBean);
|
|
|
|
|
}
|
|
|
|
@ -193,7 +217,7 @@ public class MesQueueOrderPushService implements IMesQueueOrderPushService {
|
|
|
|
|
else DdlPreparedPack.getInPackList(queueStatusList, MesPcnExtConstWords.QUEUE_STATUS, packBean);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesPcnExtConstWords.CREATE_DATE_TIME}, packBean);
|
|
|
|
|
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue(), CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{MesPcnExtConstWords.PROCESS_SEQ, MesPcnExtConstWords.CREATE_DATE_TIME}, packBean);
|
|
|
|
|
|
|
|
|
|
pager = PagerHelper.getPager(pager, queueOrderPushRepository.findByHqlWhereCount(packBean));
|
|
|
|
|
List<MesQueueOrderPush> list = queueOrderPushRepository.findByHqlWherePage(packBean, pager);
|
|
|
|
|