chen.lin
昨天 98d88ac8caf7f0991d741079474c262f1e252927
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java
@@ -7,12 +7,22 @@
import com.vincent.rsf.server.api.entity.params.ExMsgParams;
import com.vincent.rsf.server.api.entity.params.WcsTaskParams;
import com.vincent.rsf.server.common.annotation.OperationLog;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.controller.params.LocToTaskParams;
import com.vincent.rsf.server.manager.entity.Loc;
import com.vincent.rsf.server.manager.enums.LocStsType;
import com.vincent.rsf.server.manager.enums.TaskType;
import com.vincent.rsf.server.manager.service.LocItemService;
import com.vincent.rsf.server.manager.service.LocService;
import com.vincent.rsf.server.api.service.WcsService;
import com.vincent.rsf.server.common.constant.Constants;
import com.vincent.rsf.server.system.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -27,7 +37,23 @@
    @Autowired
    private WcsService wcsService;
    @Autowired
    private LocItemService locItemService;
    @Autowired
    private LocService locService;
    @ApiOperation("空板库位列表(分页),仅返回 useStatus=D 的库位,用于空板出库页勾选")
    @PreAuthorize("hasAuthority('manager:emptyOutbound:list')")
    @PostMapping("/empty/locs/page")
    public R emptyLocsPage(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Loc, BaseParam> pageParam = new PageParam<>(baseParam, Loc.class);
        LambdaQueryWrapper<Loc> qw = new LambdaQueryWrapper<Loc>()
                .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_D.type)
                .orderByAsc(Loc::getId);
        return R.ok().add(locService.page(pageParam, qw));
    }
    @ApiOperation(value = "wcs生成入库任务接口")
    @PostMapping("/create/in/task")
@@ -138,7 +164,14 @@
        String barcode = (String) params.get("barcode");
        String staNo = (String) params.get("staNo");
        Integer type = params.get("type") != null ? Integer.valueOf(params.get("type").toString()) : null;
        Boolean full = null;
        if (params.get("full") != null) {
            if (params.get("full") instanceof Boolean) {
                full = (Boolean) params.get("full");
            } else {
                full = Boolean.parseBoolean(params.get("full").toString());
            }
        }
        if (Cools.isEmpty(barcode)) {
            return R.error("料箱码不能为空!!");
        }
@@ -148,8 +181,33 @@
        if (type == null) {
            return R.error("入库类型不能为空!!");
        }
        return wcsService.allocateLocation(barcode, staNo, type, full);
    }
        
        return wcsService.allocateLocation(barcode, staNo, type);
    @ApiOperation("空板出库:从指定空板库位生成出库任务至目标站点")
    @PreAuthorize("hasAuthority('manager:emptyOutbound:list')")
    @PostMapping("/empty/outbound")
    public R emptyOutbound(@RequestBody Map<String, Object> params) {
        if (Cools.isEmpty(params)) {
            return R.error("参数不能为空!!");
        }
        String staNo = (String) params.get("staNo");
        String orgLoc = (String) params.get("orgLoc");
        if (Cools.isEmpty(staNo)) {
            return R.error("目标站点 staNo 不能为空!!");
        }
        if (Cools.isEmpty(orgLoc)) {
            return R.error("源库位 orgLoc 不能为空!!");
        }
        LocToTaskParams map = new LocToTaskParams();
        map.setSiteNo(staNo);
        map.setOrgLoc(orgLoc);
        map.setType(Constants.TASK_TYPE_OUT_STOCK_EMPTY);
        Long userId = getLoginUserId();
        if (userId == null) {
            userId = 1L;
        }
        return R.ok("空板出库任务创建成功").add(locItemService.generateTaskEmpty(map, userId));
    }