add:新增强制完成接口
This commit is contained in:
@@ -626,6 +626,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void finish(String id) {
|
public void finish(String id) {
|
||||||
|
|
||||||
Instruction entity = this.findById(id);
|
Instruction entity = this.findById(id);
|
||||||
// if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!");
|
// if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!");
|
||||||
String currentUsername = SecurityUtils.getCurrentUsername();
|
String currentUsername = SecurityUtils.getCurrentUsername();
|
||||||
|
|||||||
@@ -115,6 +115,14 @@ public class TaskController {
|
|||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Log("强制完成任务")
|
||||||
|
@ApiOperation("强制完成任务")
|
||||||
|
@PostMapping(value = "/forceFinish/{id}")
|
||||||
|
public ResponseEntity<Object> forceFinish(@RequestBody String id) throws Exception {
|
||||||
|
taskService.forceFinish(id);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
@Log("取消任务")
|
@Log("取消任务")
|
||||||
@ApiOperation("取消任务")
|
@ApiOperation("取消任务")
|
||||||
@PostMapping(value = "/cancel/{id}")
|
@PostMapping(value = "/cancel/{id}")
|
||||||
|
|||||||
@@ -180,6 +180,14 @@ public interface TaskService {
|
|||||||
*/
|
*/
|
||||||
void finish(String ids);
|
void finish(String ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 强制完成任务
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
*/
|
||||||
|
void forceFinish(String ids) throws Exception;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取消任务
|
* 取消任务
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.Synchronized;
|
import lombok.Synchronized;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.nl.acs.AcsConfig;
|
import org.nl.acs.AcsConfig;
|
||||||
import org.nl.acs.agv.server.XianGongAgvService;
|
import org.nl.acs.agv.server.XianGongAgvService;
|
||||||
import org.nl.acs.auto.initial.ApplicationAutoInitial;
|
import org.nl.acs.auto.initial.ApplicationAutoInitial;
|
||||||
@@ -100,6 +101,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public synchronized void reload() {
|
public synchronized void reload() {
|
||||||
List list = this.queryAll("task_status <2 and is_delete =0 order by create_time");
|
List list = this.queryAll("task_status <2 and is_delete =0 order by create_time");
|
||||||
|
|
||||||
@@ -373,6 +375,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<TaskDto> queryTaskByStartAndIntStatus(String head_start_device_code) {
|
public List<TaskDto> queryTaskByStartAndIntStatus(String head_start_device_code) {
|
||||||
List<TaskDto> list = new ArrayList<>();
|
List<TaskDto> list = new ArrayList<>();
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
@@ -393,6 +396,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<TaskDto> queryTaskByNextAndIntStatus(String back_start_device_code) {
|
public List<TaskDto> queryTaskByNextAndIntStatus(String back_start_device_code) {
|
||||||
List<TaskDto> list = new ArrayList<>();
|
List<TaskDto> list = new ArrayList<>();
|
||||||
Iterator<TaskDto> iterator = tasks.iterator();
|
Iterator<TaskDto> iterator = tasks.iterator();
|
||||||
@@ -732,10 +736,14 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void finish(String id) {
|
public void finish(String id) {
|
||||||
TaskDto entity = this.findById(id);
|
TaskDto entity = this.findById(id);
|
||||||
if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!");
|
if (entity == null) {
|
||||||
|
throw new BadRequestException("被删除或无权限,操作失败!");
|
||||||
|
}
|
||||||
InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl");
|
InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl");
|
||||||
InstructionDto instdto = instructionservice.findByTaskid(id, "instruction_status <2 ");
|
InstructionDto instdto = instructionservice.findByTaskid(id, "instruction_status <2 ");
|
||||||
if (instdto != null) throw new BadRequestException("有指令未完成!");
|
if (instdto != null) {
|
||||||
|
throw new BadRequestException("有指令未完成!");
|
||||||
|
}
|
||||||
String currentUsername = SecurityUtils.getCurrentUsername();
|
String currentUsername = SecurityUtils.getCurrentUsername();
|
||||||
String now = DateUtil.now();
|
String now = DateUtil.now();
|
||||||
entity.setUpdate_time(now);
|
entity.setUpdate_time(now);
|
||||||
@@ -782,6 +790,161 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void finish1(String id) {
|
||||||
|
TaskDto entity = this.findById(id);
|
||||||
|
if (entity == null) {
|
||||||
|
throw new BadRequestException("被删除或无权限,操作失败!");
|
||||||
|
}
|
||||||
|
InstructionService instructionservice = SpringContextHolder.getBean("instructionServiceImpl");
|
||||||
|
InstructionDto instdto = instructionservice.findByTaskid(id, "instruction_status <2 ");
|
||||||
|
if (instdto != null) {
|
||||||
|
throw new BadRequestException("有指令未完成!");
|
||||||
|
}
|
||||||
|
String currentUsername = SecurityUtils.getCurrentUsername();
|
||||||
|
String now = DateUtil.now();
|
||||||
|
entity.setUpdate_time(now);
|
||||||
|
entity.setUpdate_by(currentUsername);
|
||||||
|
entity.setTask_status("2");
|
||||||
|
WQLObject wo = WQLObject.getWQLObject("acs_task");
|
||||||
|
JSONObject json = (JSONObject) JSONObject.toJSON(entity);
|
||||||
|
wo.update(json);
|
||||||
|
removeByCodeFromCache(entity.getTask_code());
|
||||||
|
// 判断是否为WMS下发的任务,如果是反馈任务状态给WMS
|
||||||
|
// String hasWms = paramService.findByCode(AcsConfig.HASWMS).getValue();
|
||||||
|
// if (!StrUtil.startWith(entity.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) {
|
||||||
|
// TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code());
|
||||||
|
// System.out.println(feefbackdto == null);
|
||||||
|
// JSONObject feed_jo = new JSONObject();
|
||||||
|
// feed_jo.put("task_id", entity.getTask_id());
|
||||||
|
// feed_jo.put("task_code", entity.getTask_code());
|
||||||
|
// feed_jo.put("task_status", entity.getTask_status());
|
||||||
|
// JSONArray ja = new JSONArray();
|
||||||
|
// ja.add(feed_jo);
|
||||||
|
//
|
||||||
|
// try {
|
||||||
|
// JSONObject request1 = new JSONObject();
|
||||||
|
// request1.put("REQCODE", entity.getExt_task_id());
|
||||||
|
// request1.put("TASKCODE", entity.getTask_code());
|
||||||
|
// request1.put("PODCODE", entity.getVehicle_code());
|
||||||
|
// request1.put("TASKTYPE", entity.getTask_type());
|
||||||
|
// request1.put("METHOD", "3");
|
||||||
|
// request1.put("REQTIME", DateUtil.now());
|
||||||
|
// log.info("atrAgvCallback 请求参数:" + request1.toString());
|
||||||
|
// String str1 = new RTMSAGVSERVICE().getBasicHttpBindingIRTMSAGVSERVICE().atrAgvCallback(request1.toJSONString());
|
||||||
|
// log.info("atrAgvCallback 返回参数:" + str1);
|
||||||
|
//
|
||||||
|
// JSONObject request = new JSONObject();
|
||||||
|
// request.put("REQCODE", entity.getExt_task_id());
|
||||||
|
// request.put("TASKCODE", entity.getTask_code());
|
||||||
|
// request.put("PODCODE", entity.getVehicle_code());
|
||||||
|
// request.put("TASKTYPE", entity.getTask_type());
|
||||||
|
// request.put("METHOD", "5");
|
||||||
|
// request.put("REQTIME", DateUtil.now());
|
||||||
|
// log.info("atrAgvCallback 请求参数:" + request.toString());
|
||||||
|
// String str = new RTMSAGVSERVICE().getBasicHttpBindingIRTMSAGVSERVICE().atrAgvCallback(request.toJSONString());
|
||||||
|
// log.info("atrAgvCallback 返回参数:" + str);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// throw new BadRequestException(e.getMessage());
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// 如果属于先知AGV,关闭运单序列
|
||||||
|
if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "3")) {
|
||||||
|
try {
|
||||||
|
agvService.markComplete(entity.getTask_code());
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceFinish(String ids) throws Exception {
|
||||||
|
TaskDto dto = this.findById(ids);
|
||||||
|
if (dto == null) {
|
||||||
|
throw new BadRequestException("权限不足,操作失败");
|
||||||
|
}
|
||||||
|
Instruction entity = instructionService.findByTaskid(ids, "instruction_status <2 ");
|
||||||
|
if (entity != null) {
|
||||||
|
String currentUsername = SecurityUtils.getCurrentUsername();
|
||||||
|
String now = DateUtil.now();
|
||||||
|
entity.setUpdate_time(now);
|
||||||
|
entity.setUpdate_by(currentUsername);
|
||||||
|
entity.setInstruction_status("2");
|
||||||
|
WQLObject wo = WQLObject.getWQLObject("acs_instruction");
|
||||||
|
JSONObject json = (JSONObject) JSONObject.toJSON(entity);
|
||||||
|
wo.update(json);
|
||||||
|
removeByCodeFromCache(entity.getInstruction_code());
|
||||||
|
}
|
||||||
|
|
||||||
|
String instnextdevice = dto.getNext_device_code();
|
||||||
|
WQLObject taskwo = WQLObject.getWQLObject("acs_task");
|
||||||
|
DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class);
|
||||||
|
Device startdevice = appService.findDeviceByCode(entity.getStart_device_code());
|
||||||
|
if (ObjectUtils.isEmpty(startdevice)) {
|
||||||
|
log.debug("地址对应设备未找到");
|
||||||
|
throw new BadRequestException("地址对应设备未找到");
|
||||||
|
}
|
||||||
|
if (instnextdevice.indexOf(".") != -1) {
|
||||||
|
instnextdevice = instnextdevice.substring(0, instnextdevice.indexOf("."));
|
||||||
|
}
|
||||||
|
Device device = appService.findDeviceByCode(instnextdevice);
|
||||||
|
if (device == null) {
|
||||||
|
log.debug("地址对应设备未找到");
|
||||||
|
throw new BadRequestException("地址对应设备未找到");
|
||||||
|
}
|
||||||
|
DeviceService deviceService = SpringContextHolder.getBean(DeviceServiceImpl.class);
|
||||||
|
|
||||||
|
JSONObject jo1 = new JSONObject();
|
||||||
|
jo1.put("device_code", instnextdevice);
|
||||||
|
|
||||||
|
String start_device_code = entity.getStart_device_code();
|
||||||
|
|
||||||
|
Device deviceByCode = deviceAppService.findDeviceByCode(start_device_code);
|
||||||
|
if (deviceByCode == null) {
|
||||||
|
log.debug("地址对应设备未找到");
|
||||||
|
throw new BadRequestException("地址对应设备未找到");
|
||||||
|
}
|
||||||
|
|
||||||
|
jo1.put("hasGoodStatus", "1");
|
||||||
|
jo1.put("material_type", startdevice.getMaterial_type());
|
||||||
|
|
||||||
|
jo1.put("quantity", startdevice.getQuantity());
|
||||||
|
jo1.put("remark", startdevice.getRemark());
|
||||||
|
jo1.put("batch", startdevice.getBatch());
|
||||||
|
jo1.put("vehicle_code", entity.getVehicle_code());
|
||||||
|
jo1.put("islock", "0");
|
||||||
|
jo1.put("barrels_code", startdevice.getBarrels_code());
|
||||||
|
jo1.put("cooperate_code", startdevice.getCooperate_code());
|
||||||
|
jo1.put("powder_name", startdevice.getPowder_name());
|
||||||
|
jo1.put("barrels_status", startdevice.getBarrels_status());
|
||||||
|
deviceService.changeDeviceStatus(jo1);
|
||||||
|
// 如果是无光电的设备 指令完成变更起点、终点状态
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
jo.put("device_code", entity.getStart_device_code());
|
||||||
|
jo.put("hasGoodStatus", "0");
|
||||||
|
jo.put("material_type", "");
|
||||||
|
jo.put("quantity", "");
|
||||||
|
jo.put("remark", "");
|
||||||
|
jo.put("batch", "");
|
||||||
|
jo.put("islock", "0");
|
||||||
|
deviceService.changeDeviceStatus(jo);
|
||||||
|
|
||||||
|
|
||||||
|
JSONObject taskjson = taskwo.query("task_id ='" + ids + "'").uniqueResult(0);
|
||||||
|
TaskDto obj = taskjson.toJavaObject(TaskDto.class);
|
||||||
|
// =0 则不用再次请求
|
||||||
|
if (StrUtil.equals(obj.getRequest_again(), "0")) {
|
||||||
|
if (StrUtil.equals(obj.getNext_device_code(), instnextdevice)) {
|
||||||
|
this.finish1(obj.getTask_id());
|
||||||
|
} else {
|
||||||
|
instructionService.finishAndCreateNextInst(entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void cancel(String id) {
|
public void cancel(String id) {
|
||||||
@@ -1164,6 +1327,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
return tasks;
|
return tasks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public TaskDto findByContainer(String container_code) {
|
public TaskDto findByContainer(String container_code) {
|
||||||
Iterator var3 = tasks.iterator();
|
Iterator var3 = tasks.iterator();
|
||||||
|
|
||||||
@@ -1177,6 +1341,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public TaskDto findByCodeFromCache(String task_code) {
|
public TaskDto findByCodeFromCache(String task_code) {
|
||||||
Iterator var3 = tasks.iterator();
|
Iterator var3 = tasks.iterator();
|
||||||
|
|
||||||
|
|||||||
@@ -13,11 +13,11 @@ spring:
|
|||||||
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:lzhl_one_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:lzhl_one_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||||
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:huaYan_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:huayan_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||||
username: ${DB_USER:root}
|
username: ${DB_USER:root}
|
||||||
# password: ${DB_PWD:P@ssw0rd}
|
# password: ${DB_PWD:P@ssw0rd}
|
||||||
# password: ${DB_PWD:Root.123456}
|
# password: ${DB_PWD:Root.123456}
|
||||||
password: ${DB_PWD:password}
|
password: ${DB_PWD:123456}
|
||||||
|
|
||||||
# 初始连接数
|
# 初始连接数
|
||||||
initial-size: 5
|
initial-size: 5
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ spring:
|
|||||||
freemarker:
|
freemarker:
|
||||||
check-template-location: false
|
check-template-location: false
|
||||||
profiles:
|
profiles:
|
||||||
active: dev
|
active: prod
|
||||||
jackson:
|
jackson:
|
||||||
time-zone: GMT+8
|
time-zone: GMT+8
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -32,6 +32,14 @@ export function finish(task_id) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function forceFinish(task_id) {
|
||||||
|
return request({
|
||||||
|
url: 'api/task/forceFinish/' + task_id,
|
||||||
|
method: 'post',
|
||||||
|
data: task_id
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function cancel(task_id) {
|
export function cancel(task_id) {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/task/cancel/' + task_id,
|
url: 'api/task/cancel/' + task_id,
|
||||||
@@ -95,5 +103,5 @@ export function reload() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export default { add, edit, del, finish, cancel, createTaskByClick, deviceAskTask, ordinaryTaskCreate, specialTaskCreate, createInst, reload }
|
export default { add, edit, del, finish, cancel, createTaskByClick, deviceAskTask, ordinaryTaskCreate, specialTaskCreate, createInst, reload, forceFinish }
|
||||||
|
|
||||||
|
|||||||
@@ -368,6 +368,7 @@
|
|||||||
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'a')">完成</el-dropdown-item>
|
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'a')">完成</el-dropdown-item>
|
||||||
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">取消</el-dropdown-item>
|
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">取消</el-dropdown-item>
|
||||||
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'c')">创建指令</el-dropdown-item>
|
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'c')">创建指令</el-dropdown-item>
|
||||||
|
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'d')">强制完成</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</template>
|
</template>
|
||||||
@@ -562,6 +563,14 @@ export default {
|
|||||||
console.log(err.response.data.message)
|
console.log(err.response.data.message)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
forceFinish(index, row) {
|
||||||
|
crudTask.forceFinish(row.task_id).then(res => {
|
||||||
|
this.crud.toQuery()
|
||||||
|
this.crud.notify('强制完成成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
|
}).catch(err => {
|
||||||
|
console.log(err.response.data.message)
|
||||||
|
})
|
||||||
|
},
|
||||||
reload() {
|
reload() {
|
||||||
crudTask.reload().then(res => {
|
crudTask.reload().then(res => {
|
||||||
this.crud.toQuery()
|
this.crud.toQuery()
|
||||||
@@ -588,6 +597,9 @@ export default {
|
|||||||
case 'c':// 创建指令
|
case 'c':// 创建指令
|
||||||
this.createInst(command.index, command.row)
|
this.createInst(command.index, command.row)
|
||||||
break
|
break
|
||||||
|
case 'd':// 强制完成
|
||||||
|
this.forceFinish(command.index, command.row)
|
||||||
|
break
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
showStartStorage(val) {
|
showStartStorage(val) {
|
||||||
|
|||||||
Reference in New Issue
Block a user