任务和指令加锁处理
This commit is contained in:
@@ -728,7 +728,10 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe
|
|||||||
requireSucess = true;
|
requireSucess = true;
|
||||||
applySucess = false;
|
applySucess = false;
|
||||||
} else {
|
} else {
|
||||||
message = jo.get("message").toString();
|
if (jo.get("message")!=null){
|
||||||
|
message = jo.get("message").toString();
|
||||||
|
}
|
||||||
|
|
||||||
List list = new ArrayList();
|
List list = new ArrayList();
|
||||||
Map map = new HashMap();
|
Map map = new HashMap();
|
||||||
map.put("code","to_target");
|
map.put("code","to_target");
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,10 @@
|
|||||||
|
|
||||||
package org.nl.acs.log.service.impl;
|
package org.nl.acs.log.service.impl;
|
||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.acs.log.service.DeviceExecuteLogService;
|
import org.nl.acs.log.service.DeviceExecuteLogService;
|
||||||
|
import org.nl.acs.opc.OpcUtl;
|
||||||
import org.slf4j.MDC;
|
import org.slf4j.MDC;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -13,45 +12,41 @@ import org.springframework.stereotype.Service;
|
|||||||
* @author loujf
|
* @author loujf
|
||||||
* @description 服务实现
|
* @description 服务实现
|
||||||
* @date 2022-02-25
|
* @date 2022-02-25
|
||||||
**/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class DeviceExecuteLogServiceImpl implements DeviceExecuteLogService {
|
public class DeviceExecuteLogServiceImpl implements DeviceExecuteLogService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deviceItemValue(String device_code, String key, String value) {
|
||||||
|
String now = DateUtil.now();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deviceItemValue(String device_code, String key, String value) {
|
public void deviceExecuteLog(
|
||||||
String now = DateUtil.now();
|
String device_code, String vehicle_code, String inst_code, String message) {
|
||||||
|
try {
|
||||||
|
MDC.put("device_code_log", device_code);
|
||||||
|
log.info("{},{}", device_code, message);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
MDC.remove("device_code_log");
|
||||||
|
System.out.println("successNum:" + OpcUtl.successNum);
|
||||||
|
System.out.println("errNum:" + OpcUtl.errNum);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deviceExecuteLog(String device_code, String vehicle_code, String inst_code, String message) {
|
public void extLog(String name, String message) {
|
||||||
try {
|
try {
|
||||||
MDC.put("device_code_log", device_code);
|
MDC.put(name, name);
|
||||||
log.info("{},{}", device_code, message);
|
log.info("{}", message);
|
||||||
} catch (Exception e){
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
} finally {
|
||||||
|
MDC.remove(name);
|
||||||
finally {
|
|
||||||
MDC.remove("device_code_log");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void extLog(String name, String message) {
|
|
||||||
try {
|
|
||||||
MDC.put(name, name);
|
|
||||||
log.info("{}", message);
|
|
||||||
} catch (Exception e){
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
MDC.remove(name);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -18,10 +18,14 @@ import java.util.concurrent.Executors;
|
|||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class OpcUtl {
|
public class OpcUtl {
|
||||||
private static int timeout = 300000;
|
private static int timeout = 1*60*1000;
|
||||||
private static String key = "rpc.socketTimeout";
|
private static String key = "rpc.socketTimeout";
|
||||||
private static int successNum=0;
|
public static int successNum=0;
|
||||||
private static int errNum=0;
|
public static int errNum=0;
|
||||||
|
|
||||||
|
static {
|
||||||
|
checkTimeout();
|
||||||
|
}
|
||||||
|
|
||||||
public static void checkTimeout() {
|
public static void checkTimeout() {
|
||||||
if (Integer.getInteger(key, 0).intValue() != timeout) {
|
if (Integer.getInteger(key, 0).intValue() != timeout) {
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
@Override
|
@Override
|
||||||
public void autoInitial() throws Exception {
|
public void autoInitial() throws Exception {
|
||||||
Class var1 = TaskInstructionLock.class;
|
Class var1 = TaskInstructionLock.class;
|
||||||
synchronized(TaskInstructionLock.class) {
|
synchronized (TaskInstructionLock.class) {
|
||||||
this.reload();
|
this.reload();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -138,6 +138,9 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> queryAllByCache(Map whereJson, Pageable page) {
|
public Map<String, Object> queryAllByCache(Map whereJson, Pageable page) {
|
||||||
|
synchronized (TaskServiceImpl.class){
|
||||||
|
|
||||||
|
|
||||||
this.reload();
|
this.reload();
|
||||||
String task_code = (String) whereJson.get("task_code");
|
String task_code = (String) whereJson.get("task_code");
|
||||||
String vehicle_code = (String) whereJson.get("vehicle_code");
|
String vehicle_code = (String) whereJson.get("vehicle_code");
|
||||||
@@ -201,6 +204,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
jo.put("content", taskDtoList);
|
jo.put("content", taskDtoList);
|
||||||
jo.put("totalElements", taskList.size());
|
jo.put("totalElements", taskList.size());
|
||||||
return jo;
|
return jo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -288,107 +292,119 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TaskDto> queryTaskByDeviceCode(String device_code) {
|
public List<TaskDto> queryTaskByDeviceCode(String device_code) {
|
||||||
List<TaskDto> list = new ArrayList<>();
|
synchronized (TaskServiceImpl.class) {
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
List<TaskDto> list = new ArrayList<>();
|
||||||
while (iterator.hasNext()) {
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
TaskDto task = iterator.next();
|
while (iterator.hasNext()) {
|
||||||
if (task.getStart_device_code().equals(device_code)
|
TaskDto task = iterator.next();
|
||||||
&& StrUtil.equals(task.getTask_status(), "0")) {
|
if (task.getStart_device_code().equals(device_code)
|
||||||
list.add(task);
|
&& StrUtil.equals(task.getTask_status(), "0")) {
|
||||||
|
list.add(task);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
return list;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TaskDto> queryTaskByStartDeviceCode(String start_device_code) {
|
public List<TaskDto> queryTaskByStartDeviceCode(String start_device_code) {
|
||||||
List<TaskDto> list = new ArrayList<>();
|
synchronized (TaskServiceImpl.class) {
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
List<TaskDto> list = new ArrayList<>();
|
||||||
while (iterator.hasNext()) {
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
TaskDto task = iterator.next();
|
while (iterator.hasNext()) {
|
||||||
if (!StrUtil.equals(task.getTask_type(), "6")) {
|
TaskDto task = iterator.next();
|
||||||
continue;
|
if (!StrUtil.equals(task.getTask_type(), "6")) {
|
||||||
}
|
continue;
|
||||||
if ((task.getStart_device_code().equals(start_device_code)
|
}
|
||||||
|| task.getStart_device_code2().equals(start_device_code))
|
if ((task.getStart_device_code().equals(start_device_code)
|
||||||
&& StrUtil.equals(task.getTask_status(), "0")) {
|
|| task.getStart_device_code2().equals(start_device_code))
|
||||||
list.add(task);
|
&& StrUtil.equals(task.getTask_status(), "0")) {
|
||||||
|
list.add(task);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
return list;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TaskDto> queryTaskByBackDeviceCode(String back_start_device_code) {
|
public List<TaskDto> queryTaskByBackDeviceCode(String back_start_device_code) {
|
||||||
List<TaskDto> list = new ArrayList<>();
|
synchronized (TaskServiceImpl.class) {
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
List<TaskDto> list = new ArrayList<>();
|
||||||
while (iterator.hasNext()) {
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
TaskDto task = iterator.next();
|
while (iterator.hasNext()) {
|
||||||
if (!StrUtil.equals(task.getTask_type(), "6")) {
|
TaskDto task = iterator.next();
|
||||||
continue;
|
if (!StrUtil.equals(task.getTask_type(), "6")) {
|
||||||
}
|
continue;
|
||||||
if (task.getStart_device_code().equals(back_start_device_code)
|
}
|
||||||
&& StrUtil.equals(task.getTask_status(), "0")) {
|
if (task.getStart_device_code().equals(back_start_device_code)
|
||||||
list.add(task);
|
&& StrUtil.equals(task.getTask_status(), "0")) {
|
||||||
|
list.add(task);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
return list;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TaskDto> queryTaskByDeviceCodeAndStatus(String device_code) {
|
public List<TaskDto> queryTaskByDeviceCodeAndStatus(String device_code) {
|
||||||
List<TaskDto> list = new ArrayList<>();
|
synchronized (TaskServiceImpl.class) {
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
List<TaskDto> list = new ArrayList<>();
|
||||||
while (iterator.hasNext()) {
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
TaskDto task = iterator.next();
|
while (iterator.hasNext()) {
|
||||||
if (task.getStart_device_code().equals(device_code)
|
TaskDto task = iterator.next();
|
||||||
&& StrUtil.equals(task.getTask_status(), "1")) {
|
if (task.getStart_device_code().equals(device_code)
|
||||||
Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code());
|
&& StrUtil.equals(task.getTask_status(), "1")) {
|
||||||
if (ObjectUtil.isNotEmpty(instruction)) {
|
Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code());
|
||||||
list.add(task);
|
if (ObjectUtil.isNotEmpty(instruction)) {
|
||||||
|
list.add(task);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
return list;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<TaskDto> queryTaskByStartAndIntStatus(String head_start_device_code) {
|
public List<TaskDto> queryTaskByStartAndIntStatus(String head_start_device_code) {
|
||||||
List<TaskDto> list = new ArrayList<>();
|
synchronized (TaskServiceImpl.class) {
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
List<TaskDto> list = new ArrayList<>();
|
||||||
while (iterator.hasNext()) {
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
TaskDto task = iterator.next();
|
while (iterator.hasNext()) {
|
||||||
if (!StrUtil.equals(task.getTask_type(), "6")) {
|
TaskDto task = iterator.next();
|
||||||
continue;
|
if (!StrUtil.equals(task.getTask_type(), "6")) {
|
||||||
}
|
continue;
|
||||||
if ((task.getStart_device_code().equals(head_start_device_code)
|
}
|
||||||
|| task.getStart_device_code2().equals(head_start_device_code))
|
if ((task.getStart_device_code().equals(head_start_device_code)
|
||||||
&& StrUtil.equals(task.getTask_status(), "1")) {
|
|| task.getStart_device_code2().equals(head_start_device_code))
|
||||||
Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code());
|
&& StrUtil.equals(task.getTask_status(), "1")) {
|
||||||
if (ObjectUtil.isNotEmpty(instruction)) {
|
Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code());
|
||||||
list.add(task);
|
if (ObjectUtil.isNotEmpty(instruction)) {
|
||||||
|
list.add(task);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
return list;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<TaskDto> queryTaskByNextAndIntStatus(String back_start_device_code) {
|
public List<TaskDto> queryTaskByNextAndIntStatus(String back_start_device_code) {
|
||||||
List<TaskDto> list = new ArrayList<>();
|
synchronized (TaskServiceImpl.class) {
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
List<TaskDto> list = new ArrayList<>();
|
||||||
while (iterator.hasNext()) {
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
TaskDto task = iterator.next();
|
while (iterator.hasNext()) {
|
||||||
if (!StrUtil.equals(task.getTask_type(), "6")) {
|
TaskDto task = iterator.next();
|
||||||
continue;
|
if (!StrUtil.equals(task.getTask_type(), "6")) {
|
||||||
}
|
continue;
|
||||||
if ((task.getStart_device_code().equals(back_start_device_code))
|
}
|
||||||
&& StrUtil.equals(task.getTask_status(), "1")) {
|
if ((task.getStart_device_code().equals(back_start_device_code))
|
||||||
Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code());
|
&& StrUtil.equals(task.getTask_status(), "1")) {
|
||||||
if (ObjectUtil.isNotEmpty(instruction)) {
|
Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code());
|
||||||
list.add(task);
|
if (ObjectUtil.isNotEmpty(instruction)) {
|
||||||
|
list.add(task);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
return list;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -637,116 +653,118 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void update(TaskDto dto) {
|
public void update(TaskDto dto) {
|
||||||
TaskDto entity = this.findById(dto.getTask_id());
|
synchronized (TaskServiceImpl.class) {
|
||||||
if (entity == null) {
|
TaskDto entity = this.findById(dto.getTask_id());
|
||||||
throw new BadRequestException("被删除或无权限,操作失败!");
|
if (entity == null) {
|
||||||
}
|
throw new BadRequestException("被删除或无权限,操作失败!");
|
||||||
|
|
||||||
String currentUsername = SecurityUtils.getCurrentUsername();
|
|
||||||
String now = DateUtil.now();
|
|
||||||
dto.setUpdate_time(now);
|
|
||||||
dto.setUpdate_by(currentUsername);
|
|
||||||
|
|
||||||
WQLObject wo = WQLObject.getWQLObject("acs_task");
|
|
||||||
JSONObject json = (JSONObject) JSONObject.toJSON(dto);
|
|
||||||
|
|
||||||
wo.update(json);
|
|
||||||
|
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
|
||||||
while (iterator.hasNext()) {
|
|
||||||
TaskDto task = iterator.next();
|
|
||||||
if (task.getTask_code().equals(dto.getTask_code())) {
|
|
||||||
iterator.remove();
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (StrUtil.equals(dto.getTask_status(), "0") || StrUtil.equals(dto.getTask_status(), "1")) {
|
|
||||||
tasks.add(dto);
|
|
||||||
}
|
|
||||||
// 判断是否为WMS下发的任务,如果是反馈任务状态给WMS
|
|
||||||
String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue();
|
|
||||||
if (!StrUtil.startWith(dto.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) {
|
|
||||||
TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code());
|
|
||||||
JSONObject feed_jo = new JSONObject();
|
|
||||||
feed_jo.put("task_id", entity.getExt_task_id());
|
|
||||||
feed_jo.put("task_code", dto.getTask_code());
|
|
||||||
feed_jo.put("task_status", dto.getTask_status());
|
|
||||||
JSONArray ja = new JSONArray();
|
|
||||||
ja.add(feed_jo);
|
|
||||||
String message = null;
|
|
||||||
HttpResponse body = null;
|
|
||||||
boolean flag = false;
|
|
||||||
try {
|
|
||||||
body = acstowmsService.feedbackTaskStatusToWms(ja);
|
|
||||||
} catch (Exception e) {
|
|
||||||
flag = true;
|
|
||||||
message = e.getMessage();
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
|
|
||||||
}
|
String currentUsername = SecurityUtils.getCurrentUsername();
|
||||||
if (flag) {
|
String now = DateUtil.now();
|
||||||
if (ObjectUtil.isEmpty(feefbackdto)) {
|
dto.setUpdate_time(now);
|
||||||
feefbackdto = new TaskFeedbackDto();
|
dto.setUpdate_by(currentUsername);
|
||||||
feefbackdto.setTask_id(entity.getTask_id());
|
|
||||||
feefbackdto.setTask_code(entity.getTask_code());
|
WQLObject wo = WQLObject.getWQLObject("acs_task");
|
||||||
feefbackdto.setTask_status(entity.getTask_status());
|
JSONObject json = (JSONObject) JSONObject.toJSON(dto);
|
||||||
feefbackdto.setVehicle_type(entity.getVehicle_type());
|
|
||||||
feefbackdto.setVehicle_code(entity.getVehicle_code());
|
wo.update(json);
|
||||||
feefbackdto.setStart_device_code(entity.getStart_device_code());
|
|
||||||
feefbackdto.setStart_point_code(entity.getStart_point_code());
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
feefbackdto.setNext_device_code(entity.getNext_device_code());
|
while (iterator.hasNext()) {
|
||||||
feefbackdto.setNext_point_code(entity.getNext_point_code());
|
TaskDto task = iterator.next();
|
||||||
feefbackdto.setError_code("400");
|
if (task.getTask_code().equals(dto.getTask_code())) {
|
||||||
feefbackdto.setIs_finished("0");
|
iterator.remove();
|
||||||
feefbackdto.setRemark(message);
|
|
||||||
taskFeedbackService.create(feefbackdto);
|
|
||||||
} else {
|
|
||||||
feefbackdto.setTask_status(entity.getTask_status());
|
|
||||||
feefbackdto.setStart_device_code(entity.getStart_device_code());
|
|
||||||
feefbackdto.setStart_point_code(entity.getStart_point_code());
|
|
||||||
feefbackdto.setNext_device_code(entity.getNext_device_code());
|
|
||||||
feefbackdto.setNext_point_code(entity.getNext_point_code());
|
|
||||||
feefbackdto.setError_code("400");
|
|
||||||
feefbackdto.setRemark(message);
|
|
||||||
taskFeedbackService.update(feefbackdto);
|
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
int status = body.getStatus();
|
if (StrUtil.equals(dto.getTask_status(), "0") || StrUtil.equals(dto.getTask_status(), "1")) {
|
||||||
JSONObject jo = JSONObject.parseObject(body.body());
|
tasks.add(dto);
|
||||||
if (ObjectUtil.isEmpty(feefbackdto)) {
|
}
|
||||||
feefbackdto = new TaskFeedbackDto();
|
// 判断是否为WMS下发的任务,如果是反馈任务状态给WMS
|
||||||
feefbackdto.setTask_id(entity.getTask_id());
|
String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue();
|
||||||
feefbackdto.setTask_code(entity.getTask_code());
|
if (!StrUtil.startWith(dto.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) {
|
||||||
feefbackdto.setTask_status(entity.getTask_status());
|
TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code());
|
||||||
feefbackdto.setVehicle_type(entity.getVehicle_type());
|
JSONObject feed_jo = new JSONObject();
|
||||||
feefbackdto.setVehicle_code(entity.getVehicle_code());
|
feed_jo.put("task_id", entity.getExt_task_id());
|
||||||
feefbackdto.setError_code(String.valueOf(body.getStatus()));
|
feed_jo.put("task_code", dto.getTask_code());
|
||||||
feefbackdto.setStart_device_code(entity.getStart_device_code());
|
feed_jo.put("task_status", dto.getTask_status());
|
||||||
feefbackdto.setStart_point_code(entity.getNext_point_code());
|
JSONArray ja = new JSONArray();
|
||||||
feefbackdto.setNext_device_code(entity.getNext_device_code());
|
ja.add(feed_jo);
|
||||||
feefbackdto.setNext_point_code(entity.getNext_point_code());
|
String message = null;
|
||||||
if (status == 200) {
|
HttpResponse body = null;
|
||||||
if (StrUtil.equals(entity.getTask_status(), "2")) {
|
boolean flag = false;
|
||||||
feefbackdto.setIs_finished("1");
|
try {
|
||||||
} else {
|
body = acstowmsService.feedbackTaskStatusToWms(ja);
|
||||||
feefbackdto.setIs_finished("0");
|
} catch (Exception e) {
|
||||||
}
|
flag = true;
|
||||||
} else {
|
message = e.getMessage();
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
|
||||||
|
}
|
||||||
|
if (flag) {
|
||||||
|
if (ObjectUtil.isEmpty(feefbackdto)) {
|
||||||
|
feefbackdto = new TaskFeedbackDto();
|
||||||
|
feefbackdto.setTask_id(entity.getTask_id());
|
||||||
|
feefbackdto.setTask_code(entity.getTask_code());
|
||||||
|
feefbackdto.setTask_status(entity.getTask_status());
|
||||||
|
feefbackdto.setVehicle_type(entity.getVehicle_type());
|
||||||
|
feefbackdto.setVehicle_code(entity.getVehicle_code());
|
||||||
|
feefbackdto.setStart_device_code(entity.getStart_device_code());
|
||||||
|
feefbackdto.setStart_point_code(entity.getStart_point_code());
|
||||||
|
feefbackdto.setNext_device_code(entity.getNext_device_code());
|
||||||
|
feefbackdto.setNext_point_code(entity.getNext_point_code());
|
||||||
|
feefbackdto.setError_code("400");
|
||||||
feefbackdto.setIs_finished("0");
|
feefbackdto.setIs_finished("0");
|
||||||
feefbackdto.setRemark(jo.getString("message"));
|
feefbackdto.setRemark(message);
|
||||||
}
|
taskFeedbackService.create(feefbackdto);
|
||||||
taskFeedbackService.create(feefbackdto);
|
|
||||||
} else {
|
|
||||||
feefbackdto.setTask_status(entity.getTask_status());
|
|
||||||
if (status == 200) {
|
|
||||||
} else {
|
} else {
|
||||||
if (StrUtil.equals(entity.getTask_status(), "2")) {
|
feefbackdto.setTask_status(entity.getTask_status());
|
||||||
feefbackdto.setIs_finished("1");
|
feefbackdto.setStart_device_code(entity.getStart_device_code());
|
||||||
|
feefbackdto.setStart_point_code(entity.getStart_point_code());
|
||||||
|
feefbackdto.setNext_device_code(entity.getNext_device_code());
|
||||||
|
feefbackdto.setNext_point_code(entity.getNext_point_code());
|
||||||
|
feefbackdto.setError_code("400");
|
||||||
|
feefbackdto.setRemark(message);
|
||||||
|
taskFeedbackService.update(feefbackdto);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int status = body.getStatus();
|
||||||
|
JSONObject jo = JSONObject.parseObject(body.body());
|
||||||
|
if (ObjectUtil.isEmpty(feefbackdto)) {
|
||||||
|
feefbackdto = new TaskFeedbackDto();
|
||||||
|
feefbackdto.setTask_id(entity.getTask_id());
|
||||||
|
feefbackdto.setTask_code(entity.getTask_code());
|
||||||
|
feefbackdto.setTask_status(entity.getTask_status());
|
||||||
|
feefbackdto.setVehicle_type(entity.getVehicle_type());
|
||||||
|
feefbackdto.setVehicle_code(entity.getVehicle_code());
|
||||||
|
feefbackdto.setError_code(String.valueOf(body.getStatus()));
|
||||||
|
feefbackdto.setStart_device_code(entity.getStart_device_code());
|
||||||
|
feefbackdto.setStart_point_code(entity.getNext_point_code());
|
||||||
|
feefbackdto.setNext_device_code(entity.getNext_device_code());
|
||||||
|
feefbackdto.setNext_point_code(entity.getNext_point_code());
|
||||||
|
if (status == 200) {
|
||||||
|
if (StrUtil.equals(entity.getTask_status(), "2")) {
|
||||||
|
feefbackdto.setIs_finished("1");
|
||||||
|
} else {
|
||||||
|
feefbackdto.setIs_finished("0");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
feefbackdto.setIs_finished("0");
|
feefbackdto.setIs_finished("0");
|
||||||
|
feefbackdto.setRemark(jo.getString("message"));
|
||||||
}
|
}
|
||||||
|
taskFeedbackService.create(feefbackdto);
|
||||||
|
} else {
|
||||||
|
feefbackdto.setTask_status(entity.getTask_status());
|
||||||
|
if (status == 200) {
|
||||||
|
} else {
|
||||||
|
if (StrUtil.equals(entity.getTask_status(), "2")) {
|
||||||
|
feefbackdto.setIs_finished("1");
|
||||||
|
} else {
|
||||||
|
feefbackdto.setIs_finished("0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
taskFeedbackService.update(feefbackdto);
|
||||||
}
|
}
|
||||||
taskFeedbackService.update(feefbackdto);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -899,16 +917,16 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
wo.update(json);
|
wo.update(json);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Iterator<TaskDto> it = tasks.iterator();
|
Iterator<TaskDto> it = tasks.iterator();
|
||||||
// 清理缓存
|
// 清理缓存
|
||||||
while (it.hasNext()){
|
while (it.hasNext()) {
|
||||||
TaskDto taskDto = it.next();
|
TaskDto taskDto = it.next();
|
||||||
if (taskDto.getTask_id().equals(id)) {
|
if (taskDto.getTask_id().equals(id)) {
|
||||||
tasks.remove(taskDto);
|
tasks.remove(taskDto);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
// 判断是否为WMS下发的任务,如果是反馈任务状态给WMS
|
// 判断是否为WMS下发的任务,如果是反馈任务状态给WMS
|
||||||
String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue();
|
String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue();
|
||||||
@@ -1251,15 +1269,17 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean removeByCodeFromCache(String code) {
|
public boolean removeByCodeFromCache(String code) {
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
synchronized (TaskServiceImpl.class) {
|
||||||
while (iterator.hasNext()) {
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
TaskDto task = iterator.next();
|
while (iterator.hasNext()) {
|
||||||
if (task.getTask_code().equals(code)) {
|
TaskDto task = iterator.next();
|
||||||
iterator.remove();
|
if (task.getTask_code().equals(code)) {
|
||||||
return true;
|
iterator.remove();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1268,41 +1288,47 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public TaskDto findByContainer(String container_code) {
|
public TaskDto findByContainer(String container_code) {
|
||||||
Iterator var3 = tasks.iterator();
|
synchronized (TaskServiceImpl.class) {
|
||||||
|
Iterator var3 = tasks.iterator();
|
||||||
|
|
||||||
while (var3.hasNext()) {
|
while (var3.hasNext()) {
|
||||||
TaskDto task = (TaskDto) var3.next();
|
TaskDto task = (TaskDto) var3.next();
|
||||||
if (StrUtil.equals(task.getVehicle_code(), container_code)) {
|
if (StrUtil.equals(task.getVehicle_code(), container_code)) {
|
||||||
return task;
|
return task;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public TaskDto findByCodeFromCache(String task_code) {
|
public TaskDto findByCodeFromCache(String task_code) {
|
||||||
Iterator var3 = tasks.iterator();
|
synchronized (TaskServiceImpl.class) {
|
||||||
|
Iterator var3 = tasks.iterator();
|
||||||
|
|
||||||
while (var3.hasNext()) {
|
while (var3.hasNext()) {
|
||||||
TaskDto task = (TaskDto) var3.next();
|
TaskDto task = (TaskDto) var3.next();
|
||||||
if (StrUtil.equals(task.getTask_code(), task_code)) {
|
if (StrUtil.equals(task.getTask_code(), task_code)) {
|
||||||
return task;
|
return task;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TaskDto findByNextCode(String device_code) {
|
public TaskDto findByNextCode(String device_code) {
|
||||||
Iterator var3 = tasks.iterator();
|
synchronized (TaskServiceImpl.class) {
|
||||||
|
Iterator var3 = tasks.iterator();
|
||||||
|
|
||||||
while (var3.hasNext()) {
|
while (var3.hasNext()) {
|
||||||
TaskDto task = (TaskDto) var3.next();
|
TaskDto task = (TaskDto) var3.next();
|
||||||
if (StrUtil.equals(task.getNext_device_code(), device_code)) {
|
if (StrUtil.equals(task.getNext_device_code(), device_code)) {
|
||||||
return task;
|
return task;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1317,32 +1343,36 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TaskDto findByStartCodeAndReady(String device_code) {
|
public TaskDto findByStartCodeAndReady(String device_code) {
|
||||||
Iterator var3 = tasks.iterator();
|
synchronized (TaskServiceImpl.class) {
|
||||||
|
Iterator var3 = tasks.iterator();
|
||||||
|
|
||||||
while (var3.hasNext()) {
|
while (var3.hasNext()) {
|
||||||
TaskDto task = (TaskDto) var3.next();
|
TaskDto task = (TaskDto) var3.next();
|
||||||
// if (!StrUtil.equals(task.getTask_type(), "5")) {
|
// if (!StrUtil.equals(task.getTask_type(), "5")) {
|
||||||
// continue;
|
// continue;
|
||||||
// }
|
// }
|
||||||
if (StrUtil.equals(task.getStart_device_code(), device_code)
|
if (StrUtil.equals(task.getStart_device_code(), device_code)
|
||||||
&& StrUtil.equals(task.getTask_status(), "0")) {
|
&& StrUtil.equals(task.getTask_status(), "0")) {
|
||||||
return task;
|
return task;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TaskDto findByStartCode(String device_code) {
|
public TaskDto findByStartCode(String device_code) {
|
||||||
Iterator var3 = tasks.iterator();
|
synchronized (TaskServiceImpl.class) {
|
||||||
|
Iterator var3 = tasks.iterator();
|
||||||
|
|
||||||
while (var3.hasNext()) {
|
while (var3.hasNext()) {
|
||||||
TaskDto task = (TaskDto) var3.next();
|
TaskDto task = (TaskDto) var3.next();
|
||||||
if (StrUtil.equals(task.getStart_device_code(), device_code)) {
|
if (StrUtil.equals(task.getStart_device_code(), device_code)) {
|
||||||
return task;
|
return task;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1484,14 +1514,16 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateByCodeFromCache(TaskDto dto) {
|
public void updateByCodeFromCache(TaskDto dto) {
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
synchronized (TaskServiceImpl.class) {
|
||||||
while (iterator.hasNext()) {
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
TaskDto task = iterator.next();
|
while (iterator.hasNext()) {
|
||||||
if (task.getTask_code().equals(dto.getTask_code())) {
|
TaskDto task = iterator.next();
|
||||||
iterator.remove();
|
if (task.getTask_code().equals(dto.getTask_code())) {
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
tasks.add(dto);
|
||||||
}
|
}
|
||||||
tasks.add(dto);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1537,59 +1569,67 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer querySameDeviceReadyTask(String start_device, String next_device, String status) {
|
public Integer querySameDeviceReadyTask(String start_device, String next_device, String status) {
|
||||||
int num = 0;
|
synchronized (TaskServiceImpl.class) {
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
|
||||||
while (iterator.hasNext()) {
|
|
||||||
TaskDto task = iterator.next();
|
|
||||||
if (StrUtil.equals(task.getStart_device_code(), start_device)
|
|
||||||
&& StrUtil.equals(task.getNext_device_code(), next_device)
|
|
||||||
&& StrUtil.equals(task.getTask_status(), status)) {
|
|
||||||
num++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return num;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Integer querySameTaskByType(String taskType) {
|
|
||||||
int num = 0;
|
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
|
||||||
while (iterator.hasNext()) {
|
|
||||||
TaskDto task = iterator.next();
|
|
||||||
if (task.getTask_type().equals(taskType) && task.getTask_status().equals("1")) {
|
|
||||||
num++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return num;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Integer querySameOriginTask(String code) {
|
|
||||||
int num = 0;
|
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
|
||||||
while (iterator.hasNext()) {
|
|
||||||
TaskDto task = iterator.next();
|
|
||||||
if (StrUtil.equals(task.getStart_device_code(),code)) {
|
|
||||||
num++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return num;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Integer querySameDestinationTask(String code) {
|
|
||||||
int num = 0;
|
int num = 0;
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
TaskDto task = iterator.next();
|
TaskDto task = iterator.next();
|
||||||
if (StrUtil.equals(task.getNext_device_code(),code)) {
|
if (StrUtil.equals(task.getStart_device_code(), start_device)
|
||||||
|
&& StrUtil.equals(task.getNext_device_code(), next_device)
|
||||||
|
&& StrUtil.equals(task.getTask_status(), status)) {
|
||||||
num++;
|
num++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return num;
|
return num;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer querySameTaskByType(String taskType) {
|
||||||
|
synchronized (TaskServiceImpl.class) {
|
||||||
|
int num = 0;
|
||||||
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
TaskDto task = iterator.next();
|
||||||
|
if (task.getTask_type().equals(taskType) && task.getTask_status().equals("1")) {
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer querySameOriginTask(String code) {
|
||||||
|
synchronized (TaskServiceImpl.class) {
|
||||||
|
int num = 0;
|
||||||
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
TaskDto task = iterator.next();
|
||||||
|
if (StrUtil.equals(task.getStart_device_code(), code)) {
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer querySameDestinationTask(String code) {
|
||||||
|
synchronized (TaskServiceImpl.class) {
|
||||||
|
int num = 0;
|
||||||
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
TaskDto task = iterator.next();
|
||||||
|
if (StrUtil.equals(task.getNext_device_code(), code)) {
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return num;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user