代码更新
This commit is contained in:
parent
00837564e8
commit
3be86adb1a
|
|
@ -21,7 +21,7 @@ public class WmsConstants {
|
|||
.put("LR02", "CLC一箱一料")
|
||||
.put("UD01", "CLC一箱两料")
|
||||
.put("FC01", "CLC一箱一料")
|
||||
.put("FB01", "No-CLC一箱一料")
|
||||
.put("FB01", "No-CLC")
|
||||
.put("FB02", "间接物料")
|
||||
.put("FB03", "间接物料")
|
||||
.put("FB04", "间接物料")
|
||||
|
|
|
|||
|
|
@ -1421,4 +1421,105 @@ public class TaskController {
|
|||
return convertJsonString(response);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 呼叫空箱
|
||||
*
|
||||
* @param callEmptyVehicleRequest 请求信息
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/callEmptyVehicle")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "呼叫空箱", logMethod = "callEmptyVehicle")
|
||||
public String callEmptyVehicle(@RequestBody CallEmptyVehicleRequest callEmptyVehicleRequest) {
|
||||
logger.info("呼叫空箱:{},ip地址:{}", convertJsonString(callEmptyVehicleRequest), HttpUtils.getIpAddr(servletRequest));
|
||||
ResponseEntity response = new ResponseEntity();
|
||||
try {
|
||||
// 验证数量
|
||||
if (callEmptyVehicleRequest.getNeedNum() == null || callEmptyVehicleRequest.getNeedNum() <= 0) {
|
||||
logger.error("料箱数量必须为大于0的整数");
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("料箱数量必须为大于0的整数");
|
||||
return convertJsonString(response);
|
||||
}
|
||||
// 验证请求信息
|
||||
if (Objects.equals(callEmptyVehicleRequest.getVehicleType2(), "CLC一箱一料")) {
|
||||
if (!Objects.equals(callEmptyVehicleRequest.getVehicleType1(), "LR02") && !Objects.equals(callEmptyVehicleRequest.getVehicleType1(), "FC01")) {
|
||||
logger.error("料箱类型选择错误,{}与{}不对应。", callEmptyVehicleRequest.getVehicleType1(), callEmptyVehicleRequest.getVehicleType2());
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("料箱类型选择错误,与存放类型不对应。");
|
||||
return convertJsonString(response);
|
||||
}
|
||||
} else if (Objects.equals(callEmptyVehicleRequest.getVehicleType2(), "CLC一箱两料")) {
|
||||
if (!Objects.equals(callEmptyVehicleRequest.getVehicleType1(), "LR01") && !Objects.equals(callEmptyVehicleRequest.getVehicleType1(), "UD01")) {
|
||||
logger.error("料箱类型选择错误,{}与{}不对应。", callEmptyVehicleRequest.getVehicleType1(), callEmptyVehicleRequest.getVehicleType2());
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("料箱类型选择错误,与存放类型不对应。");
|
||||
return convertJsonString(response);
|
||||
}
|
||||
} else if (Objects.equals(callEmptyVehicleRequest.getVehicleType2(), "间接物料")) {
|
||||
if (StringUtils.isEmpty(callEmptyVehicleRequest.getGoodsId())) {
|
||||
logger.error("间接物料必须输入物料号");
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("间接物料必须输入物料号");
|
||||
return convertJsonString(response);
|
||||
}
|
||||
// 查询物料是否是间接物料
|
||||
Goods goods = goodsService.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getGoodsId, callEmptyVehicleRequest.getGoodsId()).eq(Goods::getGoodsInVehicleType, "间接物料"));
|
||||
if (goods == null) {
|
||||
logger.error("当前物料不是间接物料");
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("当前物料不是间接物料");
|
||||
return convertJsonString(response);
|
||||
}
|
||||
callEmptyVehicleRequest.setVehicleType1(goods.getVehicleType());
|
||||
} else if (Objects.equals(callEmptyVehicleRequest.getVehicleType2(), "No-CLC")) {
|
||||
// 设定料箱类型
|
||||
callEmptyVehicleRequest.setVehicleType1("FB01");
|
||||
} else {
|
||||
logger.error("请选择正确的存放类型");
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("请选择正确的存放类型");
|
||||
return convertJsonString(response);
|
||||
}
|
||||
|
||||
// 生成料箱出库任务
|
||||
int needNum = callEmptyVehicleRequest.getNeedNum();
|
||||
List<Task> vehicleOutTasks = new ArrayList<>();
|
||||
while (needNum > 0) {
|
||||
// 先找空箱
|
||||
Vehicle emptyVehicle = vehicleService.getOne(new LambdaQueryWrapper<Vehicle>()
|
||||
.eq(Vehicle::getVehicleType, callEmptyVehicleRequest.getVehicleType1())
|
||||
.eq(Vehicle::getIsEmpty, 1)
|
||||
.orderByAsc(Vehicle::getLastInTime));
|
||||
if (emptyVehicle != null) {// 有可用的空箱
|
||||
// 创建一个空箱出库任务
|
||||
Task emptyVehicleTask = new Task();
|
||||
emptyVehicleTask.setTaskId("VCK_");
|
||||
emptyVehicleTask.setTaskType(TaskType.OUT.getCode());
|
||||
emptyVehicleTask.setTaskStatus(WmsTaskStatus.NEW.getCode());
|
||||
emptyVehicleTask.setOrigin(emptyVehicle.getCurrentLocation());
|
||||
// TODO 这里的终点与Wcs商量传不传
|
||||
emptyVehicleTask.setDestination("");
|
||||
} else {// 已经没有空箱可用了
|
||||
break;
|
||||
}
|
||||
needNum--;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return convertJsonString(response);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.error("工作完成确认异常");
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("工作完成确认异常");
|
||||
return convertJsonString(response);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO 接收Wcs询问是否回库的请求
|
||||
}
|
||||
|
|
@ -3,6 +3,8 @@ package com.wms.entity.app.dto;
|
|||
import com.wms.entity.app.dto.extend.VehicleDetailInfo;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 载具
|
||||
*/
|
||||
|
|
@ -32,4 +34,8 @@ public class VehicleDto {
|
|||
* 额外信息
|
||||
*/
|
||||
private VehicleDetailInfo details;
|
||||
/**
|
||||
* 上次入库时间
|
||||
*/
|
||||
private LocalDateTime lastInTime;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
package com.wms.entity.app.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CallEmptyVehicleRequest {
|
||||
/**
|
||||
* 料箱类型
|
||||
*/
|
||||
@JsonProperty("vehicleType1")
|
||||
private String vehicleType1;
|
||||
/**
|
||||
* 存放类型
|
||||
*/
|
||||
@JsonProperty("vehicleType2")
|
||||
private String vehicleType2;
|
||||
/**
|
||||
* 料号
|
||||
*/
|
||||
@JsonProperty("goodsId")
|
||||
private String goodsId;
|
||||
/**
|
||||
* 料箱数量
|
||||
*/
|
||||
@JsonProperty("needNum")
|
||||
private Integer needNum;
|
||||
}
|
||||
|
|
@ -1,7 +1,11 @@
|
|||
package com.wms.entity.app.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.wms.entity.app.dto.extend.VehicleDetailInfo;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 载具VO
|
||||
|
|
@ -32,4 +36,10 @@ public class VehicleVO {
|
|||
* 额外信息
|
||||
*/
|
||||
private VehicleDetailInfo details;
|
||||
/**
|
||||
* 上次入库时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime lastInTime;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user