diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/OutStockController.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/OutStockController.java index ed2558e..8bf1074 100644 --- a/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/OutStockController.java +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/OutStockController.java @@ -3,8 +3,11 @@ package com.mt.wms.empty.controller; import com.mt.wms.core.base.BaseController; import com.mt.wms.core.constants.CommonConstant; import com.mt.wms.core.params.IdParam; +import com.mt.wms.core.validator.groups.PageGroup; import com.mt.wms.core.vo.R; +import com.mt.wms.empty.params.OutStockParam; import com.mt.wms.empty.params.StockInfoQueryParam; +import com.mt.wms.empty.service.OutStockService; import com.mt.wms.empty.service.StockInfoService; import com.mt.wms.empty.vo.CurrTaskDetVo; import com.mt.wms.empty.vo.StockInfoVo; @@ -33,6 +36,8 @@ import java.util.List; public class OutStockController extends BaseController { @Autowired private StockInfoService stockInfoService; + @Autowired + private OutStockService outStockService; @PostMapping(value = "get") @ApiOperation(value = "获取库位详细信息") private R> get(@Validated @RequestBody IdParam idParam) { @@ -44,4 +49,9 @@ public class OutStockController extends BaseController { private R> list() { return stockInfoService.list(); } + @PostMapping(value = "runOutTask") + @ApiOperation(value = "执行出库操作") + private R runOutTask(@Validated({PageGroup.class, Default.class}) @RequestBody OutStockParam outStockParam) { + return outStockService.outTask(outStockParam); + } } diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/OutStockParam.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/OutStockParam.java new file mode 100644 index 0000000..b00a804 --- /dev/null +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/OutStockParam.java @@ -0,0 +1,38 @@ +package com.mt.wms.empty.params; + +import com.mt.wms.core.base.BaseParam; +import com.mt.wms.core.validator.groups.UpdateGroup; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; + +/** + * @Author: liguanghao + * @Date: 2021/12/17 11:29 + * @Version 1.0 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "出库操作参数对象", description = "用于出库操作") +public class OutStockParam extends BaseParam { + private static final long serialVersionUID = 1L; + + /** + * 库位id + */ + @ApiModelProperty(value = "库位id",required = true, example = "1") + @NotNull(message = "库位id不能为空", groups = {UpdateGroup.class}) + private Long localtionId; + + /** + * 提升台 + */ + @ApiModelProperty(value = "提升台",required = true, example = "1") + @NotNull(message = "提升台不能为空") + private Integer code; +} diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/OutStockService.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/OutStockService.java index 2f09473..ecd71b3 100644 --- a/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/OutStockService.java +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/OutStockService.java @@ -1,9 +1,19 @@ package com.mt.wms.empty.service; +import com.mt.wms.core.vo.PageVo; +import com.mt.wms.core.vo.R; +import com.mt.wms.empty.params.OutStockParam; + /** * @Author: liguanghao * @Date: 2021/12/17 8:53 * @Version 1.0 */ public interface OutStockService { + /** + * 执行出库操作 + * + * @param outStockParam xx查询参数 + */ + R outTask(OutStockParam outStockParam); } diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/impl/OutStockServiceImpl.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/impl/OutStockServiceImpl.java index 1d180eb..0978720 100644 --- a/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/impl/OutStockServiceImpl.java +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/impl/OutStockServiceImpl.java @@ -1,9 +1,23 @@ package com.mt.wms.empty.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.mt.wms.core.base.BaseService; +import com.mt.wms.core.dal.entity.InStockInfo; +import com.mt.wms.core.dal.entity.VehicleInfo; +import com.mt.wms.core.dal.service.InStockInfoServiceBiz; +import com.mt.wms.core.dal.service.VehicleInfoServiceBiz; +import com.mt.wms.core.vo.R; +import com.mt.wms.empty.params.OutStockParam; +import com.mt.wms.empty.service.OutStockService; +import com.mt.wms.empty.task.AsynRunTaskService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; +import java.util.List; + /** * @Author: liguanghao * @Date: 2021/12/17 8:52 @@ -11,5 +25,41 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Transactional -public class OutStockServiceImpl extends BaseService { +public class OutStockServiceImpl extends BaseService implements OutStockService { + + @Resource + private VehicleInfoServiceBiz vehicleInfoServiceBiz; + @Resource + private AsynRunTaskService asynRunTaskService; + @Resource + private InStockInfoServiceBiz inStockInfoServiceBiz; + + @Override + public R outTask(OutStockParam outStockParam) { + // TODO: 2021/12/17 出库 + Long localtionId = outStockParam.getLocaltionId(); + //提升台 + Integer code = outStockParam.getCode(); + //查询是否有空闲车辆,若有。占用车辆,若无,返回暂无可用车辆 + List vehicleInfoList = vehicleInfoServiceBiz.list(new QueryWrapper() + .eq(VehicleInfo.STATUS, 0) + .eq(VehicleInfo.VALID, 1)); + if (vehicleInfoList.size()>0){ + VehicleInfo vehicleInfo = vehicleInfoList.get(0); + vehicleInfo.setStatus(1); + vehicleInfo.setUpdateTime(LocalDateTime.now()); + vehicleInfoServiceBiz.updateById(vehicleInfo); + }else { + return R.failed("暂无可用车辆!请稍后重试!"); + } + //异步调用车辆 + asynRunTaskService.asynRunOutStock(); + //修改库位状态 + InStockInfo inStockInfo = inStockInfoServiceBiz + .getOne(new QueryWrapper().eq("Location_id", localtionId)); + inStockInfo.setStatus(1); + inStockInfoServiceBiz.updateById(inStockInfo); + return R.ok("操作成功"); + + } } diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/AsynRunTaskService.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/AsynRunTaskService.java index 6a2a840..cf3f6a8 100644 --- a/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/AsynRunTaskService.java +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/AsynRunTaskService.java @@ -138,5 +138,9 @@ public class AsynRunTaskService extends BaseService { public void asynRunTaskForKilnToWarehouse(Long kilnId,Long vehicleId){ } + //出库。起点为缓存区库位,终点为提升台 + @Async("asyncServiceExecutor") + public void asynRunOutStock(){ + } }