|
@@ -10,6 +10,7 @@ import com.github.zuihou.business.DemoLine.YunjianConstant;
|
|
|
import com.github.zuihou.business.operationManagementCenter.dao.TTaskMapper;
|
|
|
import com.github.zuihou.business.operationManagementCenter.dao.TaskNodeMapper;
|
|
|
import com.github.zuihou.business.operationManagementCenter.dao.WorkpieceMapper;
|
|
|
+import com.github.zuihou.business.operationManagementCenter.entity.Order;
|
|
|
import com.github.zuihou.business.operationManagementCenter.entity.TTask;
|
|
|
import com.github.zuihou.business.operationManagementCenter.entity.TWorkpiece;
|
|
|
import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
|
|
@@ -195,10 +196,15 @@ public class ZZoneServiceImpl extends SuperServiceImpl<ZZoneMapper, ZZone> imple
|
|
|
|
|
|
//修改workpiece当前正在执行的工序
|
|
|
//先查出当前产线的零件
|
|
|
- List<BBom>bBomList = bomMapper.selectList(Wraps.<BBom>lbQ().eq(BBom::getZoneId, data.getId()));
|
|
|
- List<Long>bomIdList = bBomList.stream().map(p -> p.getId()).collect(Collectors.toList());
|
|
|
+ // begin modify by yejian on 20220524 for 模式切换工件查找还需判断订单是否在生产中,如果非生产中不能推送消息
|
|
|
+// List<BBom>bBomList = bomMapper.selectList(Wraps.<BBom>lbQ().eq(BBom::getZoneId, data.getId()));
|
|
|
+// List<Long>bomIdList = bBomList.stream().map(p -> p.getId()).collect(Collectors.toList());
|
|
|
+// List<TWorkpiece>workpieceList = workpieceService.list(Wraps.<TWorkpiece>lbQ().eq(TWorkpiece::getIsEnd, "0").in(TWorkpiece::getBomId,bomIdList));
|
|
|
+ List<Order> orderList = orderService.list(Wraps.<Order>lbQ().eq(Order::getZoneId, data.getId()));
|
|
|
+ List<Long> orderIds = orderList.stream().map(p -> p.getId()).collect(Collectors.toList());
|
|
|
+ List<TWorkpiece> workpieceList = workpieceService.list(Wraps.<TWorkpiece>lbQ().eq(TWorkpiece::getIsEnd, "0").in(TWorkpiece::getOrderId,orderIds));
|
|
|
|
|
|
- List<TWorkpiece>workpieceList = workpieceService.list(Wraps.<TWorkpiece>lbQ().eq(TWorkpiece::getIsEnd, "0").in(TWorkpiece::getBomId,bomIdList));
|
|
|
+ // end modify by yejian on 20220524 for 模式切换工件查找还需判断订单是否在生产中,如果非生产中不能推送消息
|
|
|
|
|
|
if(CollectionUtil.isNotEmpty(workpieceList)){
|
|
|
workpieceList.stream().map((t) -> {
|
|
@@ -208,11 +214,25 @@ public class ZZoneServiceImpl extends SuperServiceImpl<ZZoneMapper, ZZone> imple
|
|
|
List<TaskNode> taskNodeList = taskNodeMapper.selectList(Wraps.<TaskNode>lbQ().eq(TaskNode::getCompleteBatchNo, t.getCompleteBatchNo()).eq(TaskNode::getExeStatus,"1").orderByAsc(TaskNode::getCompleteBatchSort));
|
|
|
if(CollectionUtil.isNotEmpty(taskNodeList)){
|
|
|
TaskNode taskNode = taskNodeList.get(0);
|
|
|
- jsonObject.put("taskNodeId",taskNode.getId().toString());
|
|
|
- jsonObject.put("bizType", BizConstant.MQ_TASK_NODE_TYPE_COMMON);
|
|
|
- System.err.println("切换模式===========推送mq队列{}消息{}"+jsonObject.toString());
|
|
|
- log.info("推送mq队列{}消息{}",taskNode.getResourceId().toString(),jsonObject.toString());
|
|
|
- dynamicRabbitMq.sendMsg(taskNode.getResourceId().toString(),jsonObject.toString());
|
|
|
+ // begin add by yejian on 20220524 for 判断当前节点是否是是否是工序的第一个节点,如果是推送,如果不是不推送,防止模式切换平凡时,之前工序节点继续走,模式切换在调用一次的极端情况
|
|
|
+ TaskNode beforTaskNode = taskNodeMapper.selectOne(Wraps.<TaskNode>lbQ().eq(TaskNode::getCompleteBatchNo, taskNode.getCompleteBatchNo()).eq(TaskNode::getCompleteBatchSort,taskNode.getCompleteBatchSort() -1));
|
|
|
+ if(null != beforTaskNode){
|
|
|
+ // 非第一个节点
|
|
|
+ if(!beforTaskNode.getProcedureId().equals(taskNode.getProcedureId())){
|
|
|
+ jsonObject.put("taskNodeId",taskNode.getId().toString());
|
|
|
+ jsonObject.put("bizType", BizConstant.MQ_TASK_NODE_TYPE_COMMON);
|
|
|
+ System.err.println("切换模式===========推送mq队列{}消息{}"+jsonObject.toString());
|
|
|
+ log.info("推送mq队列{}消息{}",taskNode.getResourceId().toString(),jsonObject.toString());
|
|
|
+ dynamicRabbitMq.sendMsg(taskNode.getResourceId().toString(),jsonObject.toString());
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ jsonObject.put("taskNodeId",taskNode.getId().toString());
|
|
|
+ jsonObject.put("bizType", BizConstant.MQ_TASK_NODE_TYPE_COMMON);
|
|
|
+ System.err.println("切换模式===========推送mq队列{}消息{}"+jsonObject.toString());
|
|
|
+ log.info("推送mq队列{}消息{}",taskNode.getResourceId().toString(),jsonObject.toString());
|
|
|
+ dynamicRabbitMq.sendMsg(taskNode.getResourceId().toString(),jsonObject.toString());
|
|
|
+ }
|
|
|
+ // end add by yejian on 20220524 for 判断当前节点是否是是否是工序的第一个节点,如果是推送,如果不是不推送,防止模式切换平凡时,之前工序节点继续走,模式切换在调用一次的极端情况
|
|
|
}
|
|
|
}
|
|
|
|