|
@@ -1,11 +1,14 @@
|
|
|
package com.github.zuihou.business.controller.operationManagementCenter;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.date.DateUnit;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alibaba.fastjson.support.spring.GenericFastJsonRedisSerializer;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.github.zuihou.authority.service.common.ParameterService;
|
|
|
import com.github.zuihou.base.R;
|
|
@@ -17,10 +20,8 @@ import com.github.zuihou.business.edgeLibrary.service.StockInfoService;
|
|
|
import com.github.zuihou.business.edgeLibrary.service.StorgeService;
|
|
|
import com.github.zuihou.business.externalApi.service.AgvHikOrderInfoService;
|
|
|
import com.github.zuihou.business.operationManagementCenter.dto.PlanPageDTO;
|
|
|
-import com.github.zuihou.business.operationManagementCenter.entity.Order;
|
|
|
-import com.github.zuihou.business.operationManagementCenter.entity.OrderTask;
|
|
|
-import com.github.zuihou.business.operationManagementCenter.entity.Plan;
|
|
|
-import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
|
|
|
+import com.github.zuihou.business.operationManagementCenter.dto.TTaskPageDTO;
|
|
|
+import com.github.zuihou.business.operationManagementCenter.entity.*;
|
|
|
import com.github.zuihou.business.operationManagementCenter.service.OrderTaskService;
|
|
|
import com.github.zuihou.business.operationManagementCenter.service.TaskNodeService;
|
|
|
import com.github.zuihou.business.operationManagementCenter.service.TaskService;
|
|
@@ -33,6 +34,7 @@ import com.github.zuihou.business.util.DynamicRabbitMq;
|
|
|
import com.github.zuihou.business.util.MsgUtil;
|
|
|
import com.github.zuihou.common.constant.ParameterKey;
|
|
|
import com.github.zuihou.common.util.DateUtil;
|
|
|
+import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
|
|
|
import com.github.zuihou.log.annotation.SysLog;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -168,16 +170,46 @@ public class ToolQueryController {
|
|
|
@PostMapping("/getOrderTaskList")
|
|
|
public R getOrderTaskList(@RequestBody Map<String, String> data) {
|
|
|
PageParams<PlanPageDTO> planPage = new PageParams<PlanPageDTO>();
|
|
|
- IPage<Plan> page = planPage.buildPage();
|
|
|
PlanPageDTO planPageDTO = PlanPageDTO.builder().build();
|
|
|
- planPageDTO.setPlanStatus("2").setSingleTaskFlag("1");
|
|
|
+ //无排产且加工进行状态
|
|
|
+ planPageDTO.setProduceStatus("2").setPlanStatus("1");
|
|
|
planPage.setModel(planPageDTO);
|
|
|
- planController.query(planPage, page, 10L);
|
|
|
+ planPage.setSize(100L);
|
|
|
R result = planController.page(planPage);
|
|
|
return R.success(result);
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @ApiOperation(value = "查询线边库调度任务", notes = "查询线边库调度任务")
|
|
|
+ @PostMapping("/getXbkDyTaskList")
|
|
|
+ public R getXbkDyTaskList(@RequestBody Map<String, String> data) {
|
|
|
+ List<TaskNode> taskNodeList = taskNodeService.list(new LambdaQueryWrapper<TaskNode>().eq(TaskNode::getExeStatus,"2").eq(TaskNode::getNodeName,"放本序设备").orderByAsc(TaskNode::getStartTime));
|
|
|
+ List<Long> taskIds = taskNodeList.stream().map(TaskNode::getTaskId).collect(Collectors.toList());
|
|
|
+ PageParams<TTaskPageDTO> taskPage = new PageParams<TTaskPageDTO>();
|
|
|
+ IPage<TTask> page = taskPage.buildPage();
|
|
|
+ page.setSize(100L);
|
|
|
+ Map map = new HashMap();
|
|
|
+ IPage<TTask> ipage = taskService.pageList(page,"2", new LbqWrapper<TTask>().eq(TTask::getStatus, "2").gt(TTask::getIsReload, 0).lt(TTask::getIsReload, 5).in(TTask::getId, taskIds));
|
|
|
+ map.put("data", ipage.getRecords());
|
|
|
+ return R.success(map);
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "查询暂存位调度任务", notes = "查询暂存位调度任务")
|
|
|
+ @PostMapping("/getZcwDyTaskList")
|
|
|
+ public R getZcwDyTaskList(@RequestBody Map<String, String> data) {
|
|
|
+ List<TWorkpiece> workpieceList = workpieceService.list(new LambdaQueryWrapper<TWorkpiece>().eq(TWorkpiece::getIsEnd, "0").like(TWorkpiece::getPointId, "125").or(i->i.like(TWorkpiece::getPointId, "126")));
|
|
|
+ List<Long> taskNodeIds = workpieceList.stream().map(TWorkpiece::getTaskNodeId).collect(Collectors.toList());
|
|
|
+ List<TaskNode> taskNodeList = taskNodeService.listByIds(taskNodeIds);
|
|
|
+ List<Long> taskIds = taskNodeList.stream().map(TaskNode::getTaskId).collect(Collectors.toList());
|
|
|
+ PageParams<TTaskPageDTO> taskPage = new PageParams<TTaskPageDTO>();
|
|
|
+ IPage<TTask> page = taskPage.buildPage();
|
|
|
+ Map map = new HashMap();
|
|
|
+ IPage<TTask> ipage = taskService.pageList(page,"2", new LbqWrapper<TTask>().eq(TTask::getStatus, "2").in(TTask::getId, taskIds));
|
|
|
+ map.put("data", ipage.getRecords());
|
|
|
+ return R.success(map);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 处理超时节点
|
|
|
*
|
|
@@ -199,5 +231,23 @@ public class ToolQueryController {
|
|
|
String content = dataMap.get("operateName").toString()+"节点("+ dataMap.get("taskNodeId").toString() +")任务执行超时";
|
|
|
msgUtil.createWarnLog(content, "TimeoutException");
|
|
|
}
|
|
|
+ //处理线边库等待超时
|
|
|
+ List<TTask> xbkTaskList = taskService.list(new LambdaQueryWrapper<TTask>().eq(TTask::getStatus, "2").gt(TTask::getIsReload, 0).lt(TTask::getIsReload, 5));
|
|
|
+ if(xbkTaskList.size()>0) {
|
|
|
+ List<Long> taskIds = xbkTaskList.stream().filter(item -> {
|
|
|
+ Productionresource productionresource = productionresourceBizMapper.selectById(item.getResourceId());
|
|
|
+ Long timeSpan = cn.hutool.core.date.DateUtil.between(item.getExpectStartTime(), item.getExpectEndTime(), DateUnit.MINUTE);
|
|
|
+ int iTimeSpan = Integer.parseInt(String.valueOf(timeSpan));
|
|
|
+ //动态调度以后超出预定加工周期且延迟20分钟
|
|
|
+ Date waitDate = DateUtils.addMinutes(new Date(), -1 * (iTimeSpan+20));
|
|
|
+ return DateUtil.dateDiff(item.getStartTime(), waitDate) && !productionresource.getStatus().equals("1") && productionresource.getOnlineStatus().equals("1");
|
|
|
+ }).map(TTask::getId).collect(Collectors.toList());
|
|
|
+ if(taskIds.size()>0){
|
|
|
+ UpdateWrapper<TTask> updateWrapper = new UpdateWrapper<TTask>();
|
|
|
+ updateWrapper.lambda().set(TTask::getIsReload, 0).eq(TTask::getStatus, "2").in(TTask::getId, taskIds).ne(TTask::getIsReload, 0);
|
|
|
+ taskService.update(null, updateWrapper);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|