no message

main
HUOJIN\92525 2024-04-17 15:58:23 +08:00
parent 009873c137
commit bf7fe4e374
9 changed files with 164 additions and 186 deletions

View File

@ -112,32 +112,6 @@ public class AgvTaskController {
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
/**
*
*
* @param json
*/
@PostMapping("/agvTaskCallback")
@Log("料箱任务接口回调")
@ApiOperation("料箱任务接口回调")
@AnonymousAccess
public ResponseEntity<Object> agvTaskCallback(@RequestBody String json) {
JSONObject jsonObject = JSON.parseObject(json);
String taskCode = jsonObject.getString("taskCode") == null ? "" : jsonObject.getString("taskCode");//任务编号
String podCode = jsonObject.getString("podCode") == null ? "" : jsonObject.getString("podCode");//容器编号
String currentNodeCode = jsonObject.getString("currentNodeCode") == null ? "" : jsonObject.getString("currentNodeCode");//当前位置
String missionStatus = jsonObject.getString("missionStatus") == null ? "" : jsonObject.getString("missionStatus");//作业当前状态
//查询对应BOX
try {
AgvTaskDto dto = agvTaskService.findById(Integer.parseInt(taskCode));
AgvTask agvTask = agvTaskService.toEntity(dto);
agvTaskService.agvTaskCallback(agvTask, missionStatus, "");
return new ResponseEntity<>(ApiResult.success("", ""), HttpStatus.OK);
} catch (Exception e) {
return new ResponseEntity<>(ApiResult.fail(400, e.getMessage(), ""), HttpStatus.OK);
}
}
/** /**
* // * //
* *

View File

@ -1,31 +1,32 @@
package com.youchain.businessdata.rest; package com.youchain.businessdata.rest;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.youchain.annotation.AnonymousAccess;
import com.youchain.annotation.Log; import com.youchain.annotation.Log;
import com.youchain.appupdate.inputJson.ContainerIn; import com.youchain.annotation.AnonymousAccess;
import com.youchain.appupdate.inputJson.MissionStateCallback; import com.youchain.appupdate.inputJson.MissionStateCallback;
import com.youchain.basicdata.domain.Point;
import com.youchain.basicdata.domain.Stock;
import com.youchain.basicdata.repository.StockRepository;
import com.youchain.basicdata.service.PointService;
import com.youchain.businessdata.domain.AgvTask; import com.youchain.businessdata.domain.AgvTask;
import com.youchain.businessdata.domain.ItemKey;
import com.youchain.businessdata.domain.Task; import com.youchain.businessdata.domain.Task;
import com.youchain.businessdata.inputJson.ReturnMoInfo;
import com.youchain.businessdata.inputJson.ReturnMoParams;
import com.youchain.businessdata.repository.TaskRepository;
import com.youchain.businessdata.service.AgvTaskService; import com.youchain.businessdata.service.AgvTaskService;
import com.youchain.businessdata.service.MlsService;
import com.youchain.businessdata.service.OrderService;
import com.youchain.businessdata.service.TaskService; import com.youchain.businessdata.service.TaskService;
import com.youchain.businessdata.service.dto.AgvTaskDto; import com.youchain.businessdata.service.dto.AgvTaskDto;
import com.youchain.businessdata.service.dto.OrderDto;
import com.youchain.exception.handler.ApiResult; import com.youchain.exception.handler.ApiResult;
import com.youchain.utils.BaseStatus; import com.youchain.service.LogService;
import com.youchain.utils.BizStatus; import com.youchain.utils.BizStatus;
import com.youchain.utils.UrlApi;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -33,7 +34,9 @@ import org.springframework.web.bind.annotation.RestController;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.Date; import java.util.Date;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
import static org.springframework.http.HttpStatus.BAD_REQUEST; import static org.springframework.http.HttpStatus.BAD_REQUEST;
import static org.springframework.http.HttpStatus.OK; import static org.springframework.http.HttpStatus.OK;
@ -46,12 +49,11 @@ import static org.springframework.http.HttpStatus.OK;
public class KMReSController { public class KMReSController {
private final AgvTaskService agvTaskService; private final AgvTaskService agvTaskService;
private final TaskRepository taskRepository;
private final PointService pointService;
private final TaskService taskService; private final TaskService taskService;
private final OrderService orderService;
private final StockRepository stockRepository; private final MlsService mlsService;
private final LogService logService;
@PostMapping("/missionStateCallback") @PostMapping("/missionStateCallback")
@Log("KMReS接口回调") @Log("KMReS接口回调")
@ -61,12 +63,76 @@ public class KMReSController {
String id = missionStateCallback.getMissionCode();//作业 id String id = missionStateCallback.getMissionCode();//作业 id
String containerCode = missionStateCallback.getContainerCode();//容器编号 String containerCode = missionStateCallback.getContainerCode();//容器编号
String missionStatus = missionStateCallback.getMissionStatus();//作业当前状态 String missionStatus = missionStateCallback.getMissionStatus();//作业当前状态
try {
//货架任务 //料箱任务
AgvTaskDto agvTaskDto = agvTaskService.findById(Integer.parseInt(id)); AgvTaskDto agvTaskDto = agvTaskService.findById(Integer.parseInt(id));
AgvTask agvTask = agvTaskService.toEntity(agvTaskDto);//转实体 AgvTask agvTask = agvTaskService.toEntity(agvTaskDto);//转实体
agvTaskService.agvTaskCallback(agvTask, missionStatus, containerCode); List<Task> taskList = taskRepository.getAgvTaskList(agvTask.getId());
if (taskList.isEmpty()) {
return new ResponseEntity<>(ApiResult.fail(BAD_REQUEST.value(), "任务不存在!", ""), BAD_REQUEST);
}
Task task = taskList.get(0);
agvTaskService.agvTaskCallback(agvTask, task, missionStatus);
//回传
if (agvTask.getType().equals(BizStatus.ASN)) {
returnMo(task.getItemKey().getOrderNumber());
}
return new ResponseEntity<>(ApiResult.success(OK.value(), "", ""), HttpStatus.OK); return new ResponseEntity<>(ApiResult.success(OK.value(), "", ""), HttpStatus.OK);
} catch (Exception e) {
return new ResponseEntity<>(ApiResult.fail(BAD_REQUEST.value(), "KMReS接口回调异常", e.getMessage()), BAD_REQUEST);
}
}
public void returnMo(String orderNumber) {
OrderDto orderDto = orderService.findByBarcodeNumber(orderNumber);
if (orderDto == null) {
throw new RuntimeException(orderNumber + "系统无此送货单号!");
}
double receivedQty = agvTaskService.queryOrderNumberSum(orderNumber);
if (receivedQty == orderDto.getReceivedQty()) {
List<Task> tasks = taskService.findByOrderNumber(orderNumber);
ReturnMoInfo returnMoInfo = getReturnMoInfo(tasks);
long startTime = System.currentTimeMillis();
String resultJson = mlsService.returnMo(returnMoInfo);
long endTime = System.currentTimeMillis();
long time = endTime - startTime;
JSONObject resulObject = JSON.parseObject(resultJson);
if (resulObject == null) {
throw new RuntimeException("按MO票入库接口返回数据为空!");
}
com.youchain.domain.Log newlogs = new com.youchain.domain.Log();
newlogs.setDescription("按MO票入库");
newlogs.setLogType("INFO");
newlogs.setMethod(UrlApi.publicApi);
newlogs.setParams(JSON.toJSONString(returnMoInfo));
newlogs.setReturnData(resultJson);
newlogs.setRequestIp("127.0.0.1");
newlogs.setTime(time);
newlogs.setUsername("admin");
newlogs.setAddress("内网IP");
newlogs.setBrowser("Chrome 123");
newlogs.setCreateTime(new Timestamp(new Date().getTime()));
logService.saveLog(newlogs);
}
}
private static ReturnMoInfo getReturnMoInfo(List<Task> tasks) {
ReturnMoParams params = new ReturnMoParams();
params.setOrgId(100059);
params.setInvCode("MA2111");
Set<String> labelNos = new HashSet<>();
for (Task task : tasks) {
ItemKey itemKey = task.getItemKey();
labelNos.add(itemKey.getPropC1());
}
params.setLabelNos(labelNos);
ReturnMoInfo returnMoInfo = new ReturnMoInfo();
returnMoInfo.setIfaceCode("MLS-WQ-004");
returnMoInfo.setSourceSystem("WQ");
returnMoInfo.setParams(params);
return returnMoInfo;
} }
} }

View File

@ -80,9 +80,9 @@ public class MlsController {
} }
@PostMapping("/returnMo") @PostMapping("/returnMo")
@AnonymousAccess
@Log("按MO票入库") @Log("按MO票入库")
@ApiOperation("按MO票入库") @ApiOperation("按MO票入库")
@AnonymousAccess
public ResponseEntity<Object> returnMo(@RequestBody ReturnMoInfo returnMoInfo) { public ResponseEntity<Object> returnMo(@RequestBody ReturnMoInfo returnMoInfo) {
try { try {
String resultJson = mlsService.returnMo(returnMoInfo);//回传MO票J String resultJson = mlsService.returnMo(returnMoInfo);//回传MO票J

View File

@ -17,6 +17,8 @@ package com.youchain.businessdata.service;
import com.youchain.annotation.Log; import com.youchain.annotation.Log;
import com.youchain.businessdata.domain.AgvTask; import com.youchain.businessdata.domain.AgvTask;
import com.youchain.businessdata.domain.Task;
import com.youchain.businessdata.inputJson.ReturnMoInfo;
import com.youchain.businessdata.service.dto.AgvTaskDto; import com.youchain.businessdata.service.dto.AgvTaskDto;
import com.youchain.businessdata.service.dto.AgvTaskQueryCriteria; import com.youchain.businessdata.service.dto.AgvTaskQueryCriteria;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -144,9 +146,12 @@ public interface AgvTaskService {
* @param status * @param status
* @param containerCode * @param containerCode
*/ */
void agvTaskCallback(AgvTask agvTask,String status,String containerCode); void agvTaskCallback(AgvTask agvTask,Task task, String status);
boolean findByendSlotCode(String endSlotCode,String type,String jobType); boolean findByendSlotCode(String endSlotCode,String type,String jobType);
List<AgvTask> findById(List<Integer> ids); List<AgvTask> findById(List<Integer> ids);
double queryOrderNumberSum(String orderNumber);
} }

View File

@ -22,6 +22,8 @@ import com.youchain.businessdata.domain.ItemKey;
import com.youchain.businessdata.service.dto.InventoryLogDto; import com.youchain.businessdata.service.dto.InventoryLogDto;
import com.youchain.businessdata.service.dto.InventoryLogQueryCriteria; import com.youchain.businessdata.service.dto.InventoryLogQueryCriteria;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.scheduling.annotation.Async;
import java.util.Map; import java.util.Map;
import java.util.List; import java.util.List;
import java.io.IOException; import java.io.IOException;
@ -84,5 +86,6 @@ public interface InventoryLogService {
*/ */
void download(List<InventoryLogDto> all, HttpServletResponse response) throws IOException; void download(List<InventoryLogDto> all, HttpServletResponse response) throws IOException;
@Async
InventoryLog storeInventoryLog(String logType, int incDec, String relatedBill, ItemKey itemKey, Point srcPoint, Point dstPoint, Stock srcStock, Stock dstStock, Double srcQty, Double occurQty, String refObj, Long refObjId, Long invId,String description); InventoryLog storeInventoryLog(String logType, int incDec, String relatedBill, ItemKey itemKey, Point srcPoint, Point dstPoint, Stock srcStock, Stock dstStock, Double srcQty, Double occurQty, String refObj, Long refObjId, Long invId,String description);
} }

View File

@ -123,10 +123,17 @@ public interface TaskService {
List<RPTaskList> queryTaskApp(IPTask t); List<RPTaskList> queryTaskApp(IPTask t);
/** /**
* *
* @param labelNo * @param labelNo
* @return List<Task> * @return List<Task>
*/ */
List<Task> findByLabelNo(String labelNo); List<Task> findByLabelNo(String labelNo);
/**
*
* @param orderNumber
* @return List<Task>
*/
List<Task> findByOrderNumber(String orderNumber);
} }

View File

@ -18,29 +18,20 @@ package com.youchain.businessdata.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.youchain.Netty.NettyUtils;
import com.youchain.basicdata.domain.Box;
import com.youchain.basicdata.domain.Point; import com.youchain.basicdata.domain.Point;
import com.youchain.basicdata.domain.Stock; import com.youchain.basicdata.domain.Stock;
import com.youchain.basicdata.repository.BoxRepository;
import com.youchain.basicdata.repository.StockRepository; import com.youchain.basicdata.repository.StockRepository;
import com.youchain.basicdata.service.BoxService;
import com.youchain.basicdata.service.PointService; import com.youchain.basicdata.service.PointService;
import com.youchain.basicdata.service.impl.BoxServiceImpl;
import com.youchain.businessdata.domain.*; import com.youchain.businessdata.domain.*;
import com.youchain.businessdata.repository.AsnDetailRepository; import com.youchain.businessdata.repository.AsnDetailRepository;
import com.youchain.businessdata.repository.TaskRepository; import com.youchain.businessdata.repository.TaskRepository;
import com.youchain.businessdata.service.InventoryLogService; import com.youchain.businessdata.service.*;
import com.youchain.businessdata.service.InventoryService;
import com.youchain.businessdata.service.TaskService;
import com.youchain.modules.quartz.utils.TimeNumberUtils; import com.youchain.modules.quartz.utils.TimeNumberUtils;
import com.youchain.modules.system.service.DictService; import com.youchain.modules.system.service.DictService;
import com.youchain.modules.system.service.dto.DictDto; import com.youchain.service.LogService;
import com.youchain.modules.system.service.dto.DictQueryCriteria;
import com.youchain.utils.*; import com.youchain.utils.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import com.youchain.businessdata.repository.AgvTaskRepository; import com.youchain.businessdata.repository.AgvTaskRepository;
import com.youchain.businessdata.service.AgvTaskService;
import com.youchain.businessdata.service.dto.AgvTaskDto; import com.youchain.businessdata.service.dto.AgvTaskDto;
import com.youchain.businessdata.service.dto.AgvTaskQueryCriteria; import com.youchain.businessdata.service.dto.AgvTaskQueryCriteria;
import com.youchain.businessdata.service.mapstruct.AgvTaskMapper; import com.youchain.businessdata.service.mapstruct.AgvTaskMapper;
@ -80,6 +71,9 @@ public class AgvTaskServiceImpl implements AgvTaskService {
private final StockRepository stockRepository; private final StockRepository stockRepository;
private final DictService dictService; private final DictService dictService;
private final EntityManager entityMapper; private final EntityManager entityMapper;
private final OrderService orderService;
private final LogService logService;
@Override @Override
public Map<String, Object> queryAll(AgvTaskQueryCriteria criteria, Pageable pageable) { public Map<String, Object> queryAll(AgvTaskQueryCriteria criteria, Pageable pageable) {
@ -464,7 +458,7 @@ public class AgvTaskServiceImpl implements AgvTaskService {
} }
@Override @Override
public synchronized void agvTaskCallback(AgvTask agvTask, String status, String containerCode) { public synchronized void agvTaskCallback(AgvTask agvTask, Task task, String status) {
String agv_on_off = "OFF"; String agv_on_off = "OFF";
agv_on_off = dictService.getDictDescription("agv_on_off") == null ? "OFF" : dictService.getDictDescription("agv_on_off").getDescription(); agv_on_off = dictService.getDictDescription("agv_on_off") == null ? "OFF" : dictService.getDictDescription("agv_on_off").getDescription();
String code = "0"; String code = "0";
@ -474,10 +468,8 @@ public class AgvTaskServiceImpl implements AgvTaskService {
} else if (status.equals("UP_CONTAINER")) { } else if (status.equals("UP_CONTAINER")) {
} else if (status.equals("COMPLETED")) { } else if (status.equals("COMPLETED")) {
List<Task> taskList = taskRepository.getAgvTaskList(agvTask.getId());
if (agvTask.getType().equals(BizStatus.ASN)) { if (agvTask.getType().equals(BizStatus.ASN)) {
//增加库存 //增加库存
for (Task task : taskList) {
AsnDetail ad = task.getAsnDetail(); AsnDetail ad = task.getAsnDetail();
ad.setReceivedQty(ad.getOrderQty()); ad.setReceivedQty(ad.getOrderQty());
ad.setStatus(BizStatus.RECEIVED); ad.setStatus(BizStatus.RECEIVED);
@ -501,120 +493,26 @@ public class AgvTaskServiceImpl implements AgvTaskService {
inventoryService.update(inventory); inventoryService.update(inventory);
inventoryLogService.storeInventoryLog(BizStatus.RECEIVING_UP, BizStatus.ADD, null, task.getItemKey(), task.getSrcPoint(), task.getDstPoint(), task.getSrcStock(), task.getSrcStock(), task.getPlanQty(), task.getPlanQty(), BizStatus.ASN, ad.getId(), inventory.getId(), ad.getRemark()); inventoryLogService.storeInventoryLog(BizStatus.RECEIVING_UP, BizStatus.ADD, null, task.getItemKey(), task.getSrcPoint(), task.getDstPoint(), task.getSrcStock(), task.getSrcStock(), task.getPlanQty(), task.getPlanQty(), BizStatus.ASN, ad.getId(), inventory.getId(), ad.getRemark());
}
} else if (agvTask.getType().equals(BizStatus.PICK)) { } else if (agvTask.getType().equals(BizStatus.PICK)) {
//处理实际逻辑 //处理实际逻辑
//扣除库存 //扣除库存
for (Task task : taskList) {
try { try {
taskService.pickConfirm(task.getId(), task.getPlanQty()); taskService.pickConfirm(task.getId(), task.getPlanQty());
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e.getMessage()); throw new RuntimeException(e.getMessage());
} }
} }
}
//任务完成 //任务完成
agvTask.setStatus(BizStatus.FINISH); agvTask.setStatus(BizStatus.FINISH);
agvTask.setEndTime(new Timestamp(new Date().getTime())); agvTask.setEndTime(new Timestamp(new Date().getTime()));
this.update(agvTask); this.update(agvTask);
} else if (status.equals("CANCELED")) { } else if (status.equals("CANCELED")) {
//任务取消完成
Point endPoint = pointService.findByCode(agvTask.getEndSlotCode(), null, null, null, null);
String endAreaName = endPoint.getArea().getName();
//呼叫空车时异常,容器不出场,线边点位释放
if (endAreaName.equals(AreaNameDic.OneFCX)) {
} else if (endAreaName.equals(AreaNameDic.TwoFCX)) {
//查询容器状态
String jsonObject = this.containerQuery(containerCode);
String resultJson = HttpPostUtil.sendPostReq(UrlApi.containerQuery, jsonObject.toString());
JSONObject resulObject = JSON.parseObject(resultJson);
if (resulObject != null) {
code = resulObject.getString("code") == null ? "" : resulObject.getString("code");
if (code.equals("0")) {
String data1 = resulObject.getString("data") == null ? "" : resulObject.getString("data");
JSONArray jsonArray = JSON.parseArray(data1);
JSONObject dataObject = JSON.parseObject(jsonArray.get(0).toString());
String isCarry = dataObject.getString("isCarry") == null ? "" : dataObject.getString("isCarry");
if (isCarry.equals("0")) {
//任务取消库存占用数还原
Stock stock = stockRepository.getStockByCode(containerCode);
if (stock != null) {
List<Inventory> inventoryList = inventoryService.queryInventory(stock);
for (Inventory inventory : inventoryList) {
inventory.setQueuedQty(0d);
inventoryService.update(inventory);
}
}
log.info(agvTask.getId() + "任务" + containerCode + "容器未移动!");
} else {
//容器已经移则释放储存点位状态
Point startPoint = pointService.findByCode(agvTask.getStartSlotCode(), null, null, null, null);
startPoint.setStatus(BaseStatus.FREE);
pointService.update(startPoint);
//扣减库存
List<Task> taskList = taskRepository.getAgvTaskList(agvTask.getId());
for (Task task : taskList) {
try {
taskService.pickConfirm(task.getId(), task.getPlanQty());
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
}
//呼叫满车时异常,线边点位释放
endPoint.setStatus(BaseStatus.FREE);
pointService.update(endPoint);
}
} else {
throw new RuntimeException("查询容器信息接口异常");
}
} else if (endAreaName.equals(AreaNameDic.TwoFB) || endAreaName.equals(AreaNameDic.OneFC)) {
//回存储区取消任务,不生成库存 入库任务取消即可
Stock stock = stockRepository.getStockByCode(containerCode);
List<Task> taskList = taskRepository.getAgvTaskList(agvTask.getId());
for (Task task : taskList) {
AsnDetail ad = task.getAsnDetail();
ad.setStatus(BizStatus.CANCEL);
ad.setStock(stock);
asnDetailRepository.save(ad);
task.setTaskStatus(BizStatus.CANCEL);
task.setSrcStock(stock);
if (stock != null) {
task.setSrcStockCode(stock.getCode());
task.setDstStockCode(stock.getCode());
}
task.setDstStock(stock);
taskService.update(task);
}
//存储点位释放
endPoint.setStatus(BaseStatus.FREE);
pointService.update(endPoint);
// 线边点位释放
Point startPoint = pointService.findByCode(agvTask.getStartSlotCode(), null, null, null, null);
startPoint.setStatus(BaseStatus.FREE);
pointService.update(startPoint);
} else if (endAreaName.equals(AreaNameDic.OneFK) || endAreaName.equals(AreaNameDic.TwoFK)) {
//回空车取消任务,空车点位释放
endPoint.setStatus(BaseStatus.FREE);
pointService.update(endPoint);
// 线边点位释放
Point startPoint = pointService.findByCode(agvTask.getStartSlotCode(), null, null, null, null);
startPoint.setStatus(BaseStatus.FREE);
pointService.update(startPoint);
}
agvTask.setStatus(BizStatus.CANCEL);
agvTask.setEndTime(new Timestamp(new Date().getTime()));
this.update(agvTask);
} }
} }
@ -630,6 +528,7 @@ public class AgvTaskServiceImpl implements AgvTaskService {
} }
return true; return true;
} }
@Override @Override
public List<AgvTask> findById(List<Integer> ids) { public List<AgvTask> findById(List<Integer> ids) {
String agvTaskIds = StringUtils.strip(ids.toString(), "[]"); String agvTaskIds = StringUtils.strip(ids.toString(), "[]");
@ -639,4 +538,18 @@ public class AgvTaskServiceImpl implements AgvTaskService {
return agvTaskList; return agvTaskList;
} }
@Override
public double queryOrderNumberSum(String orderNumber) {
String hql = "select sum(task.moveQty) from Task task where task.itemKey.orderNumber= :orderNumber";
Query query = entityMapper.createQuery(hql);
query.setParameter("orderNumber", orderNumber);
List<Double> orderNumberSumList = query.getResultList();
if (orderNumberSumList.size() > 0) {
return orderNumberSumList.get(0);
}
return 0d;
}
} }

View File

@ -262,6 +262,15 @@ public class TaskServiceImpl implements TaskService {
return tasks; return tasks;
} }
@Override
public List<Task> findByOrderNumber(String orderNumber) {
String hql = "from Task t where t.itemKey.orderNumber = :orderNumber";
Query query = entityMapper.createQuery(hql);
query.setParameter("orderNumber", orderNumber); // 工单号
List<Task> tasks = query.getResultList();
return tasks;
}
public List<Object[]> queryAreaMonth(String type) { public List<Object[]> queryAreaMonth(String type) {
List<Object[]> taskList=null; List<Object[]> taskList=null;
String hql = ""; String hql = "";

View File

@ -3,6 +3,7 @@ package com.youchain.modules.quartz.task;
import com.github.s7connector.api.S7Connector; import com.github.s7connector.api.S7Connector;
import com.youchain.businessdata.rest.MoController; import com.youchain.businessdata.rest.MoController;
import com.youchain.businessdata.rest.PlcController; import com.youchain.businessdata.rest.PlcController;
import com.youchain.businessdata.service.TaskService;
import com.youchain.utils.S7ConnectorUtils; import com.youchain.utils.S7ConnectorUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;