| | |
| | | import com.zy.asrs.wcs.common.domain.BaseParam; |
| | | import com.zy.asrs.wcs.common.domain.KeyValVo; |
| | | import com.zy.asrs.wcs.common.domain.PageParam; |
| | | import com.zy.asrs.wcs.core.entity.Motion; |
| | | import com.zy.asrs.wcs.core.entity.MotionLog; |
| | | import com.zy.asrs.wcs.core.entity.Task; |
| | | import com.zy.asrs.wcs.core.entity.TaskLog; |
| | | import com.zy.asrs.wcs.core.model.enums.TaskStsType; |
| | | import com.zy.asrs.wcs.core.service.MotionLogService; |
| | | import com.zy.asrs.wcs.core.service.MotionService; |
| | | import com.zy.asrs.wcs.core.service.TaskLogService; |
| | | import com.zy.asrs.wcs.core.service.TaskService; |
| | | import com.zy.asrs.wcs.system.controller.BaseController; |
| | | import com.zy.asrs.wcs.utils.ExcelUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | @RestController |
| | | @RequestMapping("/api") |
| | |
| | | |
| | | @Autowired |
| | | private TaskService taskService; |
| | | @Autowired |
| | | private TaskLogService taskLogService; |
| | | @Autowired |
| | | private MotionService motionService; |
| | | @Autowired |
| | | private MotionLogService motionLogService; |
| | | |
| | | @PreAuthorize("hasAuthority('core:task:list')") |
| | | @PostMapping("/task/page") |
| | |
| | | ExcelUtil.build(ExcelUtil.create(taskService.list(), Task.class), response); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('core:task:complete')") |
| | | @OperationLog("手动完成任务") |
| | | @PostMapping("/task/complete/{id}") |
| | | @Transactional |
| | | public synchronized R complete(@PathVariable Long id) { |
| | | Task task = taskService.getById(id); |
| | | if (task == null) { |
| | | return R.error("任务不存在"); |
| | | } |
| | | switch (TaskStsType.query(task.getTaskSts())) { |
| | | case NEW_INBOUND: |
| | | case ANALYZE_INBOUND: |
| | | case EXECUTE_INBOUND: |
| | | task.setTaskSts(TaskStsType.COMPLETE_INBOUND.sts); |
| | | break; |
| | | case NEW_OUTBOUND: |
| | | case ANALYZE_OUTBOUND: |
| | | case EXECUTE_OUTBOUND: |
| | | task.setTaskSts(TaskStsType.COMPLETE_OUTBOUND.sts); |
| | | break; |
| | | case NEW_CHARGE: |
| | | case ANALYZE_CHARGE: |
| | | case EXECUTE_CHARGE: |
| | | task.setTaskSts(TaskStsType.CHARGE_WORKING.sts); |
| | | break; |
| | | case NEW_MOVE: |
| | | case ANALYZE_MOVE: |
| | | case EXECUTE_MOVE: |
| | | task.setTaskSts(TaskStsType.COMPLETE_MOVE.sts); |
| | | break; |
| | | case NEW_MANUAL: |
| | | case ANALYZE_MANUAL: |
| | | case EXECUTE_MANUAL: |
| | | task.setTaskSts(TaskStsType.COMPLETE_MANUAL.sts); |
| | | break; |
| | | default: |
| | | return R.error("当前状态不可被完成"); |
| | | } |
| | | task.setUpdateTime(new Date()); |
| | | task.setUpdateBy(getLoginUserId()); |
| | | if (!taskService.updateById(task)) { |
| | | return R.error("完成失败"); |
| | | } |
| | | return R.ok("任务完成"); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('core:task:cancel')") |
| | | @OperationLog("手动取消任务") |
| | | @PostMapping("/task/cancel/{id}") |
| | | @Transactional |
| | | public synchronized R cancel(@PathVariable Long id) { |
| | | Task task = taskService.getById(id); |
| | | if (task == null) { |
| | | return R.error("任务不存在"); |
| | | } |
| | | |
| | | //创建历史档 |
| | | TaskLog taskLog = new TaskLog(); |
| | | taskLog.sync(task); |
| | | taskLog.setUpdateTime(new Date()); |
| | | taskLog.setUpdateBy(getLoginUserId()); |
| | | taskLog.setHostId(null); |
| | | taskLogService.save(taskLog); |
| | | |
| | | List<Motion> motions = motionService.list(new LambdaQueryWrapper<Motion>().eq(Motion::getTaskNo, task.getTaskNo()).eq(Motion::getHostId, task.getHostId())); |
| | | for (Motion motion : motions) { |
| | | //创建动作历史档 |
| | | MotionLog motionLog = new MotionLog(); |
| | | motionLog.sync(motion); |
| | | motionLog.setUpdateTime(new Date()); |
| | | motionLog.setHostId(null); |
| | | motionLogService.save(motionLog); |
| | | } |
| | | |
| | | //删除源任务 |
| | | taskService.removeById(task.getId()); |
| | | //删除动作 |
| | | motionService.remove(new LambdaQueryWrapper<Motion>().eq(Motion::getTaskNo, task.getTaskNo()).eq(Motion::getHostId, task.getHostId())); |
| | | |
| | | return R.ok("取消成功"); |
| | | } |
| | | } |