#接口:
WCS入库任务申请
WCS任务上报通知
WCS申请任务重新分配入库
WCS申请在库库位更换库位
11个文件已添加
5个文件已修改
630 ■■■■■ 已修改文件
rsf-open-api/src/main/java/com/vincent/rsf/openApi/config/PlatformProperties.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsWcsController.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WcsConstant.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsChangeLocParam.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsCreateInTaskParam.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsReassignLocParam.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsTaskReportParam.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsWcsService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/resources/application-dev.yml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/CreateInTaskParam.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ReassignLocParam.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/TaskReportParam.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/config/PlatformProperties.java
@@ -66,4 +66,34 @@
    }
    @Data
    @Configuration
    @ConfigurationProperties(prefix = "platform.wcs")
    public class WcsApi {
        /**
         * rcs调用路径
         */
        private String host;
        /**rcs调用端口**/
        private String port;
    }
    @Data
    @Configuration
    @ConfigurationProperties(prefix = "platform.hk")
    public class HkApi {
        /**
         * rcs调用路径
         */
        private String host;
        /**rcs调用端口**/
        private String port;
    }
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsWcsController.java
New file
@@ -0,0 +1,92 @@
package com.vincent.rsf.openApi.controller;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.openApi.entity.params.WcsChangeLocParam;
import com.vincent.rsf.openApi.entity.params.WcsCreateInTaskParam;
import com.vincent.rsf.openApi.entity.params.WcsReassignLocParam;
import com.vincent.rsf.openApi.entity.params.WcsTaskReportParam;
import com.vincent.rsf.openApi.service.WmsWcsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Objects;
@RestController
@Api("WCS调度交互接口")
@RequestMapping("/wcs")
public class WmsWcsController {
    @Autowired
    private WmsWcsService wmsWcsService;
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: WCS入库任务申请
     * @version 1.0
     */
    @ApiOperation("WCS入库任务申请")
    @PostMapping("/openapi/createInTask")
    public R wcsCreateInTask(@RequestBody WcsCreateInTaskParam params) {
        if (Objects.isNull(params)) {
            return R.error("参数不能为空!!");
        }
        return R.ok().add(wmsWcsService.wcsCreateInTask(params));
    }
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: WCS任务上报通知
     * @version 1.0
     */
    @ApiOperation("WCS任务上报通知")
    @PostMapping("/openapi/report")
    public R wcsTaskReport(@RequestBody WcsTaskReportParam params) {
        if (Objects.isNull(params)) {
            return R.error("参数不能为空!!");
        }
        return R.ok().add(wmsWcsService.wcsTaskReport(params));
    }
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: WCS申请任务重新分配入库
     * @version 1.0
     */
    @ApiOperation("WCS申请任务重新分配入库")
    @PostMapping("/openapi/reassign/loc")
    public R wcsReassignLoc(@RequestBody WcsReassignLocParam params) {
        if (Objects.isNull(params)) {
            return R.error("参数不能为空!!");
        }
        return R.ok().add(wmsWcsService.wcsReassignLoc(params));
    }
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: WCS申请在库库位更换库位
     * @version 1.0
     */
    @ApiOperation("WCS申请在库库位更换库位")
    @PostMapping("/openapi/change/loc")
    public R wcsChangeLoc(@RequestBody WcsChangeLocParam params) {
        if (Objects.isNull(params)) {
            return R.error("参数不能为空!!");
        }
        return R.ok().add(wmsWcsService.wcsChangeLoc(params));
    }
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WcsConstant.java
New file
@@ -0,0 +1,9 @@
package com.vincent.rsf.openApi.entity.constant;
public class WcsConstant {
    public static String pubTask = "/openapi/createInTask";
    public static String syncLocs = "/api/open/loc/sync";
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/constant/WmsConstant.java
@@ -25,6 +25,21 @@
    //订单完成回写
    public static String REPORT_ORDER_CALLBACK = "/C3Api?SysCode=WMS";
    //入库任务申请
    public static String WCS_CREATE_IN_TASK = "/rsf-server/wcs/createInTask";
    //WCS任务上报通知
    public static String WCS_TASK_REPORT = "/rsf-server/wcs/task/report";
    //WCS申请任务重新分配入库
    public static String WCS_REASSIGN_LOC = "/rsf-server/wcs/reassign/loc";
    //WCS申请在库库位更换库位
    public static String WCS_CHANGE_LOC = "/rsf-server/wcs/change/loc";
    //移库任务申请
    public static String WCS_CREATE_LOC_MOVE_TASK = "/rsf-server/wcs/createLocMoveTask";
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsChangeLocParam.java
New file
@@ -0,0 +1,28 @@
package com.vincent.rsf.openApi.entity.params;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel(value = "WcsTaskReportParam", description = "WCS任务上报通知")
public class WcsChangeLocParam implements Serializable {
    @ApiModelProperty("托盘码")
    private String barcode;
    @ApiModelProperty("源站")
    private Integer sourceStaNo;
    @ApiModelProperty("可用排")
    private List<Integer> rowList;
    @ApiModelProperty("库位类型")
    private Integer locType1;
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsCreateInTaskParam.java
New file
@@ -0,0 +1,28 @@
package com.vincent.rsf.openApi.entity.params;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel(value = "WcsCreateInTaskParam", description = "入库任务申请")
public class WcsCreateInTaskParam implements Serializable {
    @ApiModelProperty("托盘码")
    private String barcode;
    @ApiModelProperty("源站")
    private Integer sourceStaNo;
    @ApiModelProperty("可用排")
    private List<Integer> rowList;
    @ApiModelProperty("库位类型")
    private Integer locType1;
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsReassignLocParam.java
New file
@@ -0,0 +1,28 @@
package com.vincent.rsf.openApi.entity.params;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel(value = "WcsTaskReportParam", description = "WCS任务上报通知")
public class WcsReassignLocParam implements Serializable {
    @ApiModelProperty("托盘码")
    private String barcode;
    @ApiModelProperty("源站")
    private Integer sourceStaNo;
    @ApiModelProperty("可用排")
    private List<Integer> rowList;
    @ApiModelProperty("库位类型")
    private Integer locType1;
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsTaskReportParam.java
New file
@@ -0,0 +1,28 @@
package com.vincent.rsf.openApi.entity.params;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel(value = "WcsTaskReportParam", description = "WCS任务上报通知")
public class WcsTaskReportParam implements Serializable {
    @ApiModelProperty("托盘码")
    private String barcode;
    @ApiModelProperty("源站")
    private Integer sourceStaNo;
    @ApiModelProperty("可用排")
    private List<Integer> rowList;
    @ApiModelProperty("库位类型")
    private Integer locType1;
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsWcsService.java
New file
@@ -0,0 +1,17 @@
package com.vincent.rsf.openApi.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.openApi.entity.Loc;
import com.vincent.rsf.openApi.entity.params.WcsChangeLocParam;
import com.vincent.rsf.openApi.entity.params.WcsCreateInTaskParam;
import com.vincent.rsf.openApi.entity.params.WcsReassignLocParam;
import com.vincent.rsf.openApi.entity.params.WcsTaskReportParam;
public interface WmsWcsService extends IService<Loc> {
    R wcsCreateInTask(WcsCreateInTaskParam params);
    R wcsTaskReport(WcsTaskReportParam params);
    R wcsReassignLoc(WcsReassignLocParam params);
    R wcsChangeLoc(WcsChangeLocParam params);
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java
New file
@@ -0,0 +1,198 @@
package com.vincent.rsf.openApi.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.cfg.CoercionAction;
import com.fasterxml.jackson.databind.cfg.CoercionInputShape;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.openApi.config.PlatformProperties;
import com.vincent.rsf.openApi.entity.Loc;
import com.vincent.rsf.openApi.entity.constant.WmsConstant;
import com.vincent.rsf.openApi.entity.dto.CommonResponse;
import com.vincent.rsf.openApi.entity.params.WcsChangeLocParam;
import com.vincent.rsf.openApi.entity.params.WcsCreateInTaskParam;
import com.vincent.rsf.openApi.entity.params.WcsReassignLocParam;
import com.vincent.rsf.openApi.entity.params.WcsTaskReportParam;
import com.vincent.rsf.openApi.mapper.LocMapper;
import com.vincent.rsf.openApi.service.WmsWcsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
import java.util.Objects;
@Slf4j
@Service("wmsWcsService")
public class WmsWcsServiceImpl extends ServiceImpl<LocMapper, Loc> implements WmsWcsService {
    @Autowired
    private PlatformProperties.WmsApi wmsApi;
    @Autowired
    private RestTemplate restTemplate;
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: 任务下发
     * @version 1.0
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R wcsCreateInTask(WcsCreateInTaskParam params)  {
        String createInTask =  wmsApi.getHost() + ":" + wmsApi.getPort() + WmsConstant.WCS_CREATE_IN_TASK;
        /**WMS基础配置链接*/
        log.info("入库任务申请,请求地址: {}, 请求参数: {}", createInTask , JSONObject.toJSONString(params));
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/json");
        headers.add("api-version", "v2.0");
        HttpEntity httpEntity = new HttpEntity(params, headers);
        ResponseEntity<String> exchange = restTemplate.exchange(createInTask, HttpMethod.POST, httpEntity, String.class);
        log.info("WCS入库任务申请,响应结果: {}", exchange);
        if (Objects.isNull(exchange.getBody())) {
            return R.error().add("下发WMS返回参数为空!!!");
        } else {
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.coercionConfigDefaults()
                    .setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty);
            try {
                CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
                if (result.getCode() == 200) {
                    return R.ok();
                } else {
                    return R.error(result.getMsg());
//                    throw new CoolException("任务执行状态上报失败!!");
                }
            } catch (JsonProcessingException e) {
//                throw new CoolException(e.getMessage());
            }
        }
        return R.error();
    }
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: WCS任务上报通知
     * @version 1.0
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R wcsTaskReport(WcsTaskReportParam params)  {
        String createInTask =  wmsApi.getHost() + ":" + wmsApi.getPort() + WmsConstant.WCS_TASK_REPORT;
        /**WMS基础配置链接*/
        log.info("WCS任务上报通知,请求地址: {}, 请求参数: {}", createInTask , JSONObject.toJSONString(params));
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/json");
        headers.add("api-version", "v2.0");
        HttpEntity httpEntity = new HttpEntity(params, headers);
        ResponseEntity<String> exchange = restTemplate.exchange(createInTask, HttpMethod.POST, httpEntity, String.class);
        log.info("WCS任务上报通知,响应结果: {}", exchange);
        if (Objects.isNull(exchange.getBody())) {
            return R.error().add("WCS任务上报通知告知wms返回参数为空!!!");
        } else {
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.coercionConfigDefaults()
                    .setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty);
            try {
                CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
                if (result.getCode() == 200) {
                    return R.ok();
                } else {
                    return R.error(result.getMsg());
//                    throw new CoolException("任务执行状态上报失败!!");
                }
            } catch (JsonProcessingException e) {
//                throw new CoolException(e.getMessage());
            }
        }
        return R.error();
    }
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: WCS申请任务重新分配入库
     * @version 1.0
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R wcsReassignLoc(WcsReassignLocParam params)  {
        String createInTask =  wmsApi.getHost() + ":" + wmsApi.getPort() + WmsConstant.WCS_REASSIGN_LOC;
        /**WMS基础配置链接*/
        log.info("WCS任务上报通知,请求地址: {}, 请求参数: {}", createInTask , JSONObject.toJSONString(params));
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/json");
        headers.add("api-version", "v2.0");
        HttpEntity httpEntity = new HttpEntity(params, headers);
        ResponseEntity<String> exchange = restTemplate.exchange(createInTask, HttpMethod.POST, httpEntity, String.class);
        log.info("WCS任务上报通知,响应结果: {}", exchange);
        if (Objects.isNull(exchange.getBody())) {
            return R.error().add("WCS任务上报通知告知wms返回参数为空!!!");
        } else {
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.coercionConfigDefaults()
                    .setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty);
            try {
                CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
                if (result.getCode() == 200) {
                    return R.ok();
                } else {
                    return R.error(result.getMsg());
//                    throw new CoolException("任务执行状态上报失败!!");
                }
            } catch (JsonProcessingException e) {
//                throw new CoolException(e.getMessage());
            }
        }
        return R.error();
    }
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: WCS申请在库库位更换库位
     * @version 1.0
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R wcsChangeLoc(WcsChangeLocParam params)  {
        String createInTask =  wmsApi.getHost() + ":" + wmsApi.getPort() + WmsConstant.WCS_CHANGE_LOC;
        /**WMS基础配置链接*/
        log.info("WCS任务上报通知,请求地址: {}, 请求参数: {}", createInTask , JSONObject.toJSONString(params));
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/json");
        headers.add("api-version", "v2.0");
        HttpEntity httpEntity = new HttpEntity(params, headers);
        ResponseEntity<String> exchange = restTemplate.exchange(createInTask, HttpMethod.POST, httpEntity, String.class);
        log.info("WCS任务上报通知,响应结果: {}", exchange);
        if (Objects.isNull(exchange.getBody())) {
            return R.error().add("WCS任务上报通知告知wms返回参数为空!!!");
        } else {
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.coercionConfigDefaults()
                    .setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty);
            try {
                CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
                if (result.getCode() == 200) {
                    return R.ok();
                } else {
                    return R.error(result.getMsg());
//                    throw new CoolException("任务执行状态上报失败!!");
                }
            } catch (JsonProcessingException e) {
//                throw new CoolException(e.getMessage());
            }
        }
        return R.error();
    }
}
rsf-open-api/src/main/resources/application-dev.yml
@@ -61,6 +61,18 @@
    host: http://127.0.0.1
    #端口
    port: 8088
  #WCS链接
  wcs:
    #链接
    host: http://192.168.4.78
    #端口
    port: 9091
  #WCS链接
  hk:
    #链接
    host: http://127.0.0.1
    #端口
    port: 9090
  wms:
    #链接
    host: http://127.0.0.1
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java
@@ -4,8 +4,7 @@
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.api.entity.dto.InTaskMsgDto;
import com.vincent.rsf.server.api.controller.erp.params.TaskInParam;
import com.vincent.rsf.server.api.entity.params.ExMsgParams;
import com.vincent.rsf.server.api.entity.params.WcsTaskParams;
import com.vincent.rsf.server.api.entity.params.*;
import com.vincent.rsf.server.common.annotation.OperationLog;
import com.vincent.rsf.server.manager.enums.TaskType;
import com.vincent.rsf.server.api.service.WcsService;
@@ -121,5 +120,57 @@
        return wcsService.receiveExMsg(params);
    }
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: WCS入库任务申请
     * @version 1.0
     */
    @ApiOperation("WCS入库任务申请")
    @OperationLog("WCS入库任务申请")
    @PostMapping("/createInTask")
    public R wcsCreateInTask(@RequestBody CreateInTaskParam params) {
        return R.ok();//lsh  待完善
    }
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: WCS任务上报通知
     * @version 1.0
     */
    @ApiOperation("WCS任务上报通知")
    @OperationLog("WCS任务上报通知")
    @PostMapping("/task/report")
    public R wcsTaskReport(@RequestBody TaskReportParam params) {
        return R.ok();//lsh  待完善
    }
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: WCS申请任务重新分配入库
     * @version 1.0
     */
    @ApiOperation("WCS申请任务重新分配入库")
    @OperationLog("WCS申请任务重新分配入库")
    @PostMapping("/reassign/loc")
    public R wcsReassignLoc(@RequestBody ReassignLocParam params) {
        return R.ok();//lsh  待完善
    }
    /**
     * @author Munch D. Luffy
     * @date 2026/01/09
     * @description: WCS申请在库库位更换库位
     * @version 1.0
     */
    @ApiOperation("WCS申请在库库位更换库位")
    @OperationLog("WCS申请在库库位更换库位")
    @PostMapping("/change/loc")
    public R wcsChangeLoc(@RequestBody TaskReportParam params) {
        return R.ok();//lsh  待完善
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/CreateInTaskParam.java
New file
@@ -0,0 +1,28 @@
package com.vincent.rsf.server.api.entity.params;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel(value = "CreateInTaskParam", description = "入库任务申请")
public class CreateInTaskParam implements Serializable {
    @ApiModelProperty("托盘码")
    private String barcode;
    @ApiModelProperty("源站")
    private Integer sourceStaNo;
    @ApiModelProperty("可用排")
    private List<Integer> rowList;
    @ApiModelProperty("库位类型")
    private Integer locType1;
}
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ReassignLocParam.java
New file
@@ -0,0 +1,28 @@
package com.vincent.rsf.server.api.entity.params;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel(value = "ReassignLocParam", description = "WCS任务上报通知")
public class ReassignLocParam implements Serializable {
    @ApiModelProperty("托盘码")
    private String barcode;
    @ApiModelProperty("源站")
    private Integer sourceStaNo;
    @ApiModelProperty("可用排")
    private List<Integer> rowList;
    @ApiModelProperty("库位类型")
    private Integer locType1;
}
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/TaskReportParam.java
New file
@@ -0,0 +1,28 @@
package com.vincent.rsf.server.api.entity.params;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel(value = "TaskReportParam", description = "WCS任务上报通知")
public class TaskReportParam implements Serializable {
    @ApiModelProperty("托盘码")
    private String barcode;
    @ApiModelProperty("源站")
    private Integer sourceStaNo;
    @ApiModelProperty("可用排")
    private List<Integer> rowList;
    @ApiModelProperty("库位类型")
    private Integer locType1;
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -237,7 +237,7 @@
    /**
     * 非光电站点任务下发
     */
//    @Scheduled(cron = "0/5 * * * * ?  ")
    @Scheduled(cron = "0/5 * * * * ?  ")
    @Transactional(rollbackFor = Exception.class)
    public void pubTaskToWcs() {
        Long loginUserId = SystemAuthUtils.getLoginUserId();
@@ -270,7 +270,7 @@
     * @description: 光电站点任务下发
     * @version 1.0
     */
//    @Scheduled(cron = "0/5 * * * * ?  ")
    @Scheduled(cron = "0/5 * * * * ?  ")
    @Transactional(rollbackFor = Exception.class)
    public void taskToWCS() throws Exception {
        Long loginUserId = SystemAuthUtils.getLoginUserId();
@@ -452,7 +452,7 @@
        ResponseEntity<String> exchange = restTemplate.exchange(pubTakUrl, HttpMethod.POST, httpEntity, String.class);
        log.info("任务下发后,响应结果: {}", exchange);
        if (Objects.isNull(exchange.getBody())) {
            throw new CoolException("任务下发失败!!");
            throw new CoolException("任务下发失败!!,返回参数为空!!!");
        } else {
            try {
                ObjectMapper objectMapper = new ObjectMapper();