whycxzp
2025-03-26 acb710a0689eb9953ca8ef4dbc88bd73f6d19084
任务状态获取接口
4个文件已修改
1个文件已添加
105 ■■■■ 已修改文件
src/main/java/com/whyc/controller/InterfaceWmsController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/TaskDto.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattAlarmService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/TaskService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/WmsService.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/InterfaceWmsController.java
@@ -1,6 +1,7 @@
package com.whyc.controller;
import com.whyc.dto.Response;
import com.whyc.dto.TaskDto;
import com.whyc.dto.WmsPalletDto;
import com.whyc.pojo.db_wms.Task;
import com.whyc.service.WmsService;
@@ -63,12 +64,12 @@
    /**
     * 提供给第三方的接口,用于接收任务状态
     * @param task
     * @param taskDto
     * @return
     */
    @PostMapping("sendTaskStatus")
    public Response sendTaskStatus(@RequestBody Task task){
        return service.sendTaskStatus(task);
    public Response sendTaskStatus(@RequestBody TaskDto taskDto){
        return service.sendTaskStatus(taskDto);
    }
}
src/main/java/com/whyc/dto/TaskDto.java
New file
@@ -0,0 +1,31 @@
package com.whyc.dto;
import lombok.Data;
import lombok.ToString;
/**
 * 参数说明    字段名称    参数类型    字段描述
 *     task_no    String    任务编号
 *     task_type    int    任务类型:1=普通搬运、2=活化任务、3=缓存测压任务、4=入库测压任务、5=检测搬运任务
 *     start_location_code    String    起点编号
 *     end_location_code    String    终点编号
 *     pallet    String    电池编号,在入库测压任务时需要有此字段
 *     status    Int    状态:1=开始取货、2=取货完成、4=放货完成;
 * 11=开始取活化电池、12=取到活化电池、13=活化电池放置到活化仓内、14=开始取活化结束的电池、15=取到活化结束的电池、16=活化返库完成;
 * 21=开始取测压电池、22=取到测压电池、23=测压电池放置到活化仓内、24=开始取测压结束的电池、25=取到测压结束的电池、26=测压返库完成
 *     status_time    DateTime    获取status时的对应时间
 */
@ToString
@Data
public class TaskDto {
    private String task_no;
    private Integer task_type;
    private String start_location_code;
    private String end_location_code;
    private String pallet;
    private Integer status;
    private String status_time;
}
src/main/java/com/whyc/service/BattAlarmService.java
@@ -12,6 +12,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
@@ -53,6 +54,7 @@
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("num",num);
        wrapper.set("alm_confirm",1);
        wrapper.set("alm_confirm_time",new Date());
        int flag=mapper.update((BattAlarm) ActionUtil.objeNull,wrapper);
        return new Response().set(1,flag>0);
    }
@@ -61,6 +63,7 @@
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("num",num);
        wrapper.set("alm_confirm",0);
        wrapper.set("alm_confirm_time",null);
        int flag=mapper.update((BattAlarm) ActionUtil.objeNull,wrapper);
        return new Response().set(1,flag>0);
    }
src/main/java/com/whyc/service/TaskService.java
@@ -1,5 +1,7 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.mapper.TaskMapper;
import com.whyc.pojo.db_wms.Task;
import org.springframework.stereotype.Service;
@@ -15,4 +17,10 @@
    public void add(Task task) {
        mapper.insert(task);
    }
    public void update(Task task) {
        UpdateWrapper<Task> update = Wrappers.update();
        update.eq("task_no",task.getTaskNo());
        mapper.update(task,update);
    }
}
src/main/java/com/whyc/service/WmsService.java
@@ -5,13 +5,12 @@
import com.whyc.pojo.db_wms.Task;
import com.whyc.util.HttpUtil;
import com.whyc.util.JsonUtil;
import com.whyc.util.ThreadLocalUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class WmsService {
@@ -108,15 +107,52 @@
        return response;
    }
    public Response sendTaskStatus(Task task) {
        //对接收到的任务进行逻辑判断和数据存储 TODO
        /*String taskNo = task.getTaskNo();
    public Response sendTaskStatus(TaskDto taskDto) {
        Task task = new Task();
        task.setTaskNo(taskDto.getTask_no());
        task.setTaskType(taskDto.getTask_type());
        task.setStartLocationCode(taskDto.getStart_location_code());
        task.setEndLocationCode(taskDto.getEnd_location_code());
        task.setStatus(taskDto.getStatus());
        task.setStatusTime(ThreadLocalUtil.parse(taskDto.getStatus_time(),1));
        //对接收到的任务进行逻辑判断和数据存储
        String taskNo = task.getTaskNo();
        //taskType=4,入库测压任务,这个为仓储自动触发的任务,非主动平台下达,
        // 需要手动添加任务类型,和电池组编号
        Integer taskType = task.getTaskType();
        if(taskType == 4){
            task.setDes(2);
            task.setPallets(taskDto.getPallet());
        }
        Integer status = task.getStatus();
        if(status == 13 || status == 23){ //电池放置在活化仓内
            task.setExecuteTime(task.getStatusTime());
        }else if(status == 14 || status == 24){
            task.setExecuteEndTime(task.getStatusTime());
        }*/
        Date statusTime = task.getStatusTime();
        switch (status){
            case 1:
            case 11:
            case 21: task.setPickUpStartTime(statusTime);break;
            case 2:
            case 12:
            case 22: task.setPickUpTime(statusTime);break;
            case 13:
            case 23: task.setActivationChamberStartTime(statusTime);break;
            case 14:
            case 24:
                task.setActivationChamberPickUpTime(statusTime);break;
            case 15:
            case 25:
                task.setActivationChamberEndTime(statusTime);break;
            case 4:
            case 16:
            case 26:
                task.setBackFinishTime(statusTime);
                task.setEndTime(new Date());
                break;
            default:
                throw new IllegalArgumentException("status字段未定义,无法被识别: " + status);
        }
        taskService.update(task);
        return new Response().setII(1,"上报状态完成");
    }