package com.huaheng.api.tablet.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.huaheng.api.mes.domain.Cartons; import com.huaheng.common.constant.QuantityConstant; import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.pc.task.taskHeader.domain.TaskHeader; import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; import javafx.concurrent.Task; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; /** * 平板逻辑业务处理层 * @author xcq */ @Component @Transactional(rollbackFor = Exception.class) @Service public class TabletTaskApiServiceImpl { @Resource private TaskHeaderService taskHeaderService; public AjaxResult viewTasksServer(String port){ if (StringUtils.isEmpty(port)){ return AjaxResult.error("出库口不能为空!"); } LambdaQueryWrapper<TaskHeader> lambdaQuery = Wrappers.lambdaQuery(); lambdaQuery.isNotNull(TaskHeader::getStation) .eq(TaskHeader::getStatus, QuantityConstant.TASK_STATUS_COMPLETED) .eq(TaskHeader::getPort, port) .in(TaskHeader::getForkliftTaskStatus, QuantityConstant.FORKLIFT_TASK_NO, QuantityConstant.FORKLIFT_TASK_ACCEPTED); List<TaskHeader> taskHeaderList = taskHeaderService.list(lambdaQuery); AjaxResult result = AjaxResult.success("查询成功"); result.setData(taskHeaderList); return result; } public AjaxResult acceptTaskServer(Integer id){ if (id == null){ return AjaxResult.error("请勿提交空数据!"); } TaskHeader header = this.selectTaskHeader(id); if (header == null){ return AjaxResult.error("查询出库任务失败,请检查任务id是否正确!"); } // 判断叉车任务状态是否允许接取 if (QuantityConstant.FORKLIFT_TASK_NO.equals(header.getForkliftTaskStatus())){ // 修改叉车任务状态为已接取 header.setForkliftTaskStatus(QuantityConstant.FORKLIFT_TASK_ACCEPTED); // 设置修改人 header.setLastUpdatedBy(ShiroUtils.getLoginName()); taskHeaderService.updateById(header); return AjaxResult.success("任务接取成功!"); } return AjaxResult.error("该任务已被接取!"); } public AjaxResult finishTaskServer(Integer id){ if (id == null){ return AjaxResult.error("任务id不能为空!"); } TaskHeader header = this.selectTaskHeader(id); if (header == null){ return AjaxResult.error("查询任务头表失败!"); } // 判断任务状态是否正确 if (QuantityConstant.FORKLIFT_TASK_ACCEPTED.equals(header.getForkliftTaskStatus())){ header.setForkliftTaskStatus(QuantityConstant.FORKLIFT_TASK_FINISH); taskHeaderService.updateById(header); return AjaxResult.success("任务已完成!"); } return AjaxResult.error("任务状态异常!"); } public AjaxResult cancelTaskServer(Integer id){ if (id == null){ return AjaxResult.error("请勿提交空数据!"); } TaskHeader header = this.selectTaskHeader(id); if (header == null){ return AjaxResult.error("查询任务失败!"); } // 判断任务状态是否正确 if (QuantityConstant.FORKLIFT_TASK_ACCEPTED.equals(header.getForkliftTaskStatus())){ header.setForkliftTaskStatus(QuantityConstant.FORKLIFT_TASK_NO); taskHeaderService.updateById(header); return AjaxResult.success("任务取消成功!"); } return AjaxResult.error("任务状态异常!"); } public TaskHeader selectTaskHeader(Integer id){ LambdaQueryWrapper<TaskHeader> lambdaQuery = Wrappers.lambdaQuery(); lambdaQuery.eq(TaskHeader::getId, id); return taskHeaderService.getOne(lambdaQuery); } }