fix: 强制完成

This commit is contained in:
2024-04-08 17:11:20 +08:00
parent 7ddf8e7af5
commit 8611b43a98
12 changed files with 80 additions and 22 deletions

View File

@@ -51,11 +51,13 @@ import org.nl.acs.route.service.dto.RouteLineDto;
import org.nl.acs.route.service.impl.RouteLineServiceImpl; import org.nl.acs.route.service.impl.RouteLineServiceImpl;
import org.nl.acs.task.TaskInstructionLock; import org.nl.acs.task.TaskInstructionLock;
import org.nl.acs.task.domain.Task; import org.nl.acs.task.domain.Task;
import org.nl.acs.task.enums.TaskStatusEnum;
import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.TaskService;
import org.nl.acs.task.service.dto.TaskDto; import org.nl.acs.task.service.dto.TaskDto;
import org.nl.acs.common.base.PageInfo; import org.nl.acs.common.base.PageInfo;
import org.nl.acs.common.base.QueryHelpMybatisPlus; import org.nl.acs.common.base.QueryHelpMybatisPlus;
import org.nl.acs.common.base.impl.CommonServiceImpl; import org.nl.acs.common.base.impl.CommonServiceImpl;
import org.nl.acs.task.service.dto.TaskIdAndStatusDTO;
import org.nl.acs.task.service.mapper.TaskMapper; import org.nl.acs.task.service.mapper.TaskMapper;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.acs.utils.ConvertUtil; import org.nl.acs.utils.ConvertUtil;
@@ -880,7 +882,10 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
//中转为空 //中转为空
if (StrUtil.isEmpty(task.getPut_device_code())) { if (StrUtil.isEmpty(task.getPut_device_code())) {
if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) { if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) {
taskService.finish(task.getTask_id()); TaskIdAndStatusDTO taskIdAndStatusDTO = new TaskIdAndStatusDTO();
taskIdAndStatusDTO.setTask_id(task.getTask_id());
taskIdAndStatusDTO.setTask_status(TaskStatusEnum.FINISHED.getIndex());
taskService.finish(taskIdAndStatusDTO);
} else { } else {
finishAndCreateNextInst(ConvertUtil.convert(entity, Instruction.class)); finishAndCreateNextInst(ConvertUtil.convert(entity, Instruction.class));
} }
@@ -888,13 +893,19 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) { if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) {
finishAndCreateHXInst(ConvertUtil.convert(entity, Instruction.class)); finishAndCreateHXInst(ConvertUtil.convert(entity, Instruction.class));
} else if (StrUtil.equals(task.getPut_device_code(), instnextdevice)) { } else if (StrUtil.equals(task.getPut_device_code(), instnextdevice)) {
taskService.finish(task.getTask_id()); TaskIdAndStatusDTO taskIdAndStatusDTO = new TaskIdAndStatusDTO();
taskIdAndStatusDTO.setTask_id(task.getTask_id());
taskIdAndStatusDTO.setTask_status(TaskStatusEnum.FINISHED.getIndex());
taskService.finish(taskIdAndStatusDTO);
} }
} }
} else { } else {
if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) { if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) {
taskService.finish(task.getTask_id()); TaskIdAndStatusDTO taskIdAndStatusDTO = new TaskIdAndStatusDTO();
taskIdAndStatusDTO.setTask_id(task.getTask_id());
taskIdAndStatusDTO.setTask_status(TaskStatusEnum.FINISHED.getIndex());
taskService.finish(taskIdAndStatusDTO);
} else { } else {
finishAndCreateNextInst(ConvertUtil.convert(entity, Instruction.class)); finishAndCreateNextInst(ConvertUtil.convert(entity, Instruction.class));
} }
@@ -926,7 +937,10 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
//中转为空 //中转为空
if (StrUtil.isEmpty(task.getPut_device_code())) { if (StrUtil.isEmpty(task.getPut_device_code())) {
if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) { if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) {
taskService.finish(task.getTask_id()); TaskIdAndStatusDTO taskIdAndStatusDTO = new TaskIdAndStatusDTO();
taskIdAndStatusDTO.setTask_id(task.getTask_id());
taskIdAndStatusDTO.setTask_status(TaskStatusEnum.FINISHED.getIndex());
taskService.finish(taskIdAndStatusDTO);
} else { } else {
finishAndCreateNextInst(ConvertUtil.convert(ins, Instruction.class)); finishAndCreateNextInst(ConvertUtil.convert(ins, Instruction.class));
} }
@@ -934,13 +948,19 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) { if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) {
finishAndCreateHXInst(ConvertUtil.convert(ins, Instruction.class)); finishAndCreateHXInst(ConvertUtil.convert(ins, Instruction.class));
} else if (StrUtil.equals(task.getPut_device_code(), instnextdevice)) { } else if (StrUtil.equals(task.getPut_device_code(), instnextdevice)) {
taskService.finish(task.getTask_id()); TaskIdAndStatusDTO taskIdAndStatusDTO = new TaskIdAndStatusDTO();
taskIdAndStatusDTO.setTask_id(task.getTask_id());
taskIdAndStatusDTO.setTask_status(TaskStatusEnum.FINISHED.getIndex());
taskService.finish(taskIdAndStatusDTO);
} }
} }
} else { } else {
if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) { if (StrUtil.equals(task.getNext_device_code(), instnextdevice)) {
taskService.finish(task.getTask_id()); TaskIdAndStatusDTO taskIdAndStatusDTO = new TaskIdAndStatusDTO();
taskIdAndStatusDTO.setTask_id(task.getTask_id());
taskIdAndStatusDTO.setTask_status(TaskStatusEnum.FINISHED.getIndex());
taskService.finish(taskIdAndStatusDTO);
} else { } else {
finishAndCreateNextInst(ConvertUtil.convert(ins, Instruction.class)); finishAndCreateNextInst(ConvertUtil.convert(ins, Instruction.class));
} }

View File

@@ -18,6 +18,7 @@ public enum TaskStatusEnum {
BUSY("1", "BUSY", "执行中"), BUSY("1", "BUSY", "执行中"),
FINISHED("2", "FINISHED", "完成"), FINISHED("2", "FINISHED", "完成"),
CANCEL("3", "CANCEL", "取消"), CANCEL("3", "CANCEL", "取消"),
FORCED_COMPLETION("4", "", "强制完成"),
ERROR("99", "ERROR", "异常"); ERROR("99", "ERROR", "异常");
/** /**

View File

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.TaskService;
import org.nl.acs.task.service.dto.TaskDto; import org.nl.acs.task.service.dto.TaskDto;
import org.nl.acs.task.service.dto.TaskIdAndStatusDTO;
import org.nl.common.logging.annotation.Log; import org.nl.common.logging.annotation.Log;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
@@ -87,9 +88,9 @@ public class TaskController {
} }
@Log("完成任务") @Log("完成任务")
@PostMapping(value = "/finish/{id}") @PostMapping(value = "/finish")
public ResponseEntity<Object> finish(@RequestBody String id) { public ResponseEntity<Object> finish(@RequestBody TaskIdAndStatusDTO taskIdAndStatus) {
taskService.finish(id); taskService.finish(taskIdAndStatus);
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }

View File

@@ -6,6 +6,7 @@ import org.nl.acs.common.base.PageInfo;
import org.nl.acs.common.base.CommonService; import org.nl.acs.common.base.CommonService;
import org.nl.acs.task.domain.Task; import org.nl.acs.task.domain.Task;
import org.nl.acs.task.service.dto.TaskDto; import org.nl.acs.task.service.dto.TaskDto;
import org.nl.acs.task.service.dto.TaskIdAndStatusDTO;
import org.nl.acs.task.service.dto.TaskQueryParam; import org.nl.acs.task.service.dto.TaskQueryParam;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
@@ -291,7 +292,7 @@ public interface TaskService extends CommonService<Task> {
* *
* @param ids * @param ids
*/ */
void finish(String ids); void finish(TaskIdAndStatusDTO ids);
/** /**
* 取消任务 * 取消任务

View File

@@ -0,0 +1,10 @@
package org.nl.acs.task.service.dto;
import lombok.Data;
@Data
public class TaskIdAndStatusDTO {
private String task_id;
private String task_status;
}

View File

@@ -2,7 +2,6 @@ package org.nl.acs.task.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
@@ -12,7 +11,6 @@ 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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
@@ -48,6 +46,7 @@ import org.nl.acs.task.service.TaskFeedbackService;
import org.nl.acs.common.base.PageInfo; import org.nl.acs.common.base.PageInfo;
import org.nl.acs.common.base.QueryHelpMybatisPlus; import org.nl.acs.common.base.QueryHelpMybatisPlus;
import org.nl.acs.common.base.impl.CommonServiceImpl; import org.nl.acs.common.base.impl.CommonServiceImpl;
import org.nl.acs.task.service.dto.TaskIdAndStatusDTO;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.acs.utils.ConvertUtil; import org.nl.acs.utils.ConvertUtil;
import org.nl.common.utils.FileUtil; import org.nl.common.utils.FileUtil;
@@ -806,13 +805,13 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void finish(String id) { public void finish(TaskIdAndStatusDTO taskIdAndStatus) {
TaskDto entity = this.findById(id); TaskDto entity = this.findById(taskIdAndStatus.getTask_id());
if (entity == null) { if (entity == null) {
throw new BadRequestException(LangProcess.msg("error_sysAuth")); throw new BadRequestException(LangProcess.msg("error_sysAuth"));
} }
InstructionDto instdto = instructionService.findByTaskid(id, "instruction_status <2 "); InstructionDto instdto = instructionService.findByTaskid(taskIdAndStatus.getTask_id(), "instruction_status <2 ");
if (instdto != null) { if (instdto != null) {
throw new BadRequestException(LangProcess.msg("task_insHas")); throw new BadRequestException(LangProcess.msg("task_insHas"));
} }
@@ -821,7 +820,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
String now = DateUtil.now(); String now = DateUtil.now();
entity.setUpdate_time(now); entity.setUpdate_time(now);
entity.setUpdate_by(currentUsername); entity.setUpdate_by(currentUsername);
entity.setTask_status(TaskStatusEnum.FINISHED.getIndex()); entity.setTask_status(taskIdAndStatus.getTask_status());
Task task = ConvertUtil.convert(entity, Task.class); Task task = ConvertUtil.convert(entity, Task.class);
taskMapper.updateById(task); taskMapper.updateById(task);

View File

@@ -25,8 +25,10 @@ import org.nl.acs.instruction.domain.InstructionMybatis;
import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.InstructionService;
import org.nl.acs.instruction.service.dto.InstructionDto; import org.nl.acs.instruction.service.dto.InstructionDto;
import org.nl.acs.task.domain.Task; import org.nl.acs.task.domain.Task;
import org.nl.acs.task.enums.TaskStatusEnum;
import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.TaskService;
import org.nl.acs.task.service.dto.TaskDto; import org.nl.acs.task.service.dto.TaskDto;
import org.nl.acs.task.service.dto.TaskIdAndStatusDTO;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil; import org.nl.common.utils.CodeUtil;
import org.nl.hand.dto.HeadDto; import org.nl.hand.dto.HeadDto;
@@ -425,7 +427,10 @@ public class HandServiceImpl implements HandService {
resultJson.put("data", data); resultJson.put("data", data);
return resultJson; return resultJson;
} }
taskserver.finish(task_uuid); TaskIdAndStatusDTO taskIdAndStatusDTO = new TaskIdAndStatusDTO();
taskIdAndStatusDTO.setTask_id(task_uuid);
taskIdAndStatusDTO.setTask_status(TaskStatusEnum.FINISHED.getIndex());
taskserver.finish(taskIdAndStatusDTO);
} }
resultJson.put("message", "操作成功"); resultJson.put("message", "操作成功");
resultJson.put("data", data); resultJson.put("data", data);

View File

@@ -24,11 +24,11 @@ export function edit(data) {
}) })
} }
export function finish(task_id) { export function finish(data) {
return request({ return request({
url: 'api/task/finish/' + task_id, url: 'api/task/finish',
method: 'post', method: 'post',
data: task_id data: data
}) })
} }

View File

@@ -35,6 +35,7 @@ export default {
'Ready': 'Ready', 'Ready': 'Ready',
'In_progress': 'In Progress', 'In_progress': 'In Progress',
'Completed': 'Completed', 'Completed': 'Completed',
'Forced_Completed': 'Forced Completed',
'Pickup_point': 'Pickup Point', 'Pickup_point': 'Pickup Point',
'Delivery_point': 'Delivery Point', 'Delivery_point': 'Delivery Point',
'Remark': 'Remark', 'Remark': 'Remark',

View File

@@ -35,6 +35,7 @@ export default {
'Ready': 'Siap', 'Ready': 'Siap',
'In_progress': 'Sedang Berlangsung', 'In_progress': 'Sedang Berlangsung',
'Completed': 'Selesai', 'Completed': 'Selesai',
'Forced_Completed': 'Penyelesaian wajib',
'Pickup_point': 'Titik Pengambilan', 'Pickup_point': 'Titik Pengambilan',
'Delivery_point': 'Titik Pengiriman', 'Delivery_point': 'Titik Pengiriman',
'Remark': 'Catatan', 'Remark': 'Catatan',

View File

@@ -35,6 +35,7 @@ export default {
'Ready': '就绪', 'Ready': '就绪',
'In_progress': '执行中', 'In_progress': '执行中',
'Completed': '完成', 'Completed': '完成',
'Forced_Completed': '强制完成',
'Pickup_point': '取货点', 'Pickup_point': '取货点',
'Delivery_point': '放货点', 'Delivery_point': '放货点',
'Remark': '备注', 'Remark': '备注',

View File

@@ -559,6 +559,15 @@
{{ $t('task.select.Create_command') }} {{ $t('task.select.Create_command') }}
</el-button> </el-button>
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item>
<el-button
type="text"
icon="el-icon-finished"
@click="handleCommand(scope.$index, scope.row,'d')"
>
{{ $t('task.select.Forced_Completed') }}
</el-button>
</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
</el-dropdown> </el-dropdown>
@@ -695,6 +704,10 @@ export default {
agv_system_type: '', agv_system_type: '',
interactionJson: null interactionJson: null
}, },
taskStatus: {
task_status: '',
task_id: null
},
extension: [{ extension: [{
name: '', name: '',
value: '' value: ''
@@ -790,7 +803,9 @@ export default {
return true return true
}, },
finish(index, row) { finish(index, row) {
crudTask.finish(row.task_id).then(res => { this.taskStatus.task_id = row.task_id
this.taskStatus.task_status = index
crudTask.finish(this.taskStatus).then(res => {
this.crud.toQuery() this.crud.toQuery()
this.crud.notify('完成成功', CRUD.NOTIFICATION_TYPE.SUCCESS) this.crud.notify('完成成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
}).catch(err => { }).catch(err => {
@@ -831,7 +846,7 @@ export default {
handleCommand(index, row, command) { handleCommand(index, row, command) {
switch (command) { switch (command) {
case 'a':// 完成 case 'a':// 完成
this.finish(index, row) this.finish('3', row)
break break
case 'b':// 取消 case 'b':// 取消
this.cancel(index, row) this.cancel(index, row)
@@ -839,6 +854,9 @@ export default {
case 'c':// 创建指令 case 'c':// 创建指令
this.createInst(index, row) this.createInst(index, row)
break break
case 'd':// 完成
this.finish('4', row)
break
} }
}, },
showStartStorage(val) { showStartStorage(val) {