自动化立体仓库 - WMS系统
qw
zc
2025-04-19 035ecbe3a3540011f29a8f2287aead232749aaad
src/main/java/com/zy/asrs/controller/WorkController.java
@@ -15,7 +15,6 @@
import com.zy.asrs.service.WorkService;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.StartupDto;
import com.zy.common.utils.RoleUtils;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
@@ -24,7 +23,6 @@
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 工作流接口控制器
@@ -47,55 +45,54 @@
        return R.ok("出库启动成功");
    }
    @RequestMapping("/locMerge/out/start/sxk")
    @ManagerAuth(memo = "并板出库")
    public R locMergeOutStartSxk(@RequestBody StockOutParam param) {
        workService.locMergeOutSxk(param, getUserId());
        return R.ok("出库启动成功");
    }
    @RequestMapping("/available/put/site")
    @ManagerAuth()
    public R availablePutSite(){
    public R availablePutSite() {
        return R.ok().add(basDevpService.getAvailableInSite());
    }
    @RequestMapping("/available/empty/put/site")
    @ManagerAuth()
    public R availableEmptyPutSite(){
    public R availableEmptyPutSite() {
        return R.ok().add(basDevpService.getAvailableEmptyInSite());
    }
    @RequestMapping("/available/take/site")
    @ManagerAuth()
    public R availableTakeSite(){
    public R availableTakeSite() {
        Set<Map<String, Object>> result = new HashSet<>();
        EntityWrapper<StaDesc> wrapper = new EntityWrapper<>();
        // 不同继承角色显示不同库信息
        RoleUtils.addRoleWrapperByCrn(getUserId(),wrapper);
        wrapper.eq("type_no",101);
        wrapper.eq("type_no", 101).orderBy("stn_no", true);
        List<StaDesc> staDescs = staDescService.selectList(wrapper);
        List<Integer> outSite = staDescs.stream().map(StaDesc::getStnNo).distinct().collect(Collectors.toList());
//        List<Integer> outSite = basDevpService.getAvailableOutSite(101);
        for (Integer siteId : outSite) {
        for (StaDesc site : staDescs) {
            Map<String, Object> map = new HashMap<>();
            map.put("siteId", siteId);
            map.put("desc","["+ Utils.getStaName(siteId)+"]");
            map.put("siteId", site.getStnNo());
            map.put("desc", site.getStnDesc() + site.getStnNo());
            result.add(map);
        }
        EntityWrapper<StaDesc> wrapper2 = new EntityWrapper<>();
        // 不同继承角色显示不同库信息
        RoleUtils.addRoleWrapperByCrn(getUserId(),wrapper2);
        wrapper2.eq("type_no",103);
        wrapper2.eq("type_no", 103).orderBy("stn_no", true);
        List<StaDesc> staDescs2 = staDescService.selectList(wrapper2);
        List<Integer> pickOutSite = staDescs2.stream().map(StaDesc::getStnNo).distinct().collect(Collectors.toList());
//        List<Integer> pickOutSite = basDevpService.getAvailableOutSite(103);
        for (Integer siteId : pickOutSite) {
        for (StaDesc site : staDescs2) {
            Map<String, Object> map = new HashMap<>();
            map.put("siteId", siteId);
            map.put("desc","["+ Utils.getStaName(siteId)+"]");
            map.put("siteId", site.getStnNo());
            map.put("desc", site.getStnDesc() + site.getStnNo());
            result.add(map);
        }
        return R.ok().add(result);
    }
    @RequestMapping("/crn/available/take/site")
    @ManagerAuth()
    public R crnAvailableTakeSite(){
    public R crnAvailableTakeSite() {
        List<Map<String, Object>> result = new ArrayList<>();
        List<Integer> outSite = basDevpService.getCrnAvailableOutSite(101);
        for (Integer siteId : outSite) {
@@ -116,66 +113,72 @@
    @RequestMapping("/available/take/check/site")
    @ManagerAuth()
    public R availableTakeCheckSite(){
    public R availableTakeCheckSite() {
        return R.ok().add(basDevpService.getAvailableOutSite(107));
    }
    @RequestMapping("/available/take/merge/site")
    @ManagerAuth()
    public R availableTakeMergeSite(){
    public R availableTakeMergeSite() {
        return R.ok().add(basDevpService.getAvailableOutSite(104));
    }
    @RequestMapping("/available/take/check/site/crn")
    @ManagerAuth()
    public R availableTakeCheckSiteCrn(){
    public R availableTakeCheckSiteCrn() {
        EntityWrapper<StaDesc> staDescEntityWrapper = new EntityWrapper<>();
        staDescEntityWrapper.eq("type_no",107);
        staDescEntityWrapper.eq("type_no", 107);
        staDescEntityWrapper.setSqlSelect("DISTINCT stn_no as stnNo");
        staDescEntityWrapper.in("crn_no",1,2,3,4,5,6,7);
        staDescEntityWrapper.in("crn_no", 1, 2, 3, 4, 5, 6, 7);
        return R.ok().add(staDescService.selectList(staDescEntityWrapper));
    }
    @RequestMapping("/available/take/check/site/ctu")
    @ManagerAuth()
    public R availableTakeCheckSiteCtu(){
    public R availableTakeCheckSiteCtu() {
        return R.ok().add(basDevpService.getAvailableOutSite(107));
    }
    @RequestMapping("/available/take/check/site/shuttle")
    @ManagerAuth()
    public R availableTakeCheckSiteShuttle(){
    public R availableTakeCheckSiteShuttle() {
        return R.ok().add(basDevpService.getAvailableOutSite(107));
    }
    @RequestMapping("/available/crn/empty/take/site")
    @ManagerAuth()
    public R availablecrnEmptyTakeSite(){
    public R availablecrnEmptyTakeSite() {
        return R.ok().add(basDevpService.getCrnAvailableEmptyOutSite());
    }
    @RequestMapping("/available/shuttle/empty/take/site")
    @ManagerAuth()
    public R availableshuttleEmptyTakeSite(){
    public R availableshuttleEmptyTakeSite() {
        return R.ok().add(basDevpService.getShuttleAvailableEmptyOutSite());
    }
    @RequestMapping("/available/ctu/empty/take/site")
    @ManagerAuth()
    public R availablectuEmptyTakeSite(){
    public R availablectuEmptyTakeSite() {
        return R.ok().add(basDevpService.getCtuAvailableEmptyOutSite());
    }
    @RequestMapping("/available/empty/take/site")
    @ManagerAuth()
    public R availableEmptyTakeSite(){
    public R availableEmptyTakeSite() {
        List<Map<String, Object>> result = new ArrayList<>();
        EntityWrapper<StaDesc> wrapper = new EntityWrapper<>();
        wrapper.eq("type_no",110);
        wrapper.eq("type_no", 110);
        // 不同继承角色显示不同库信息
        RoleUtils.addRoleWrapperByCrn(getUserId(),wrapper);
//        RoleUtils.addRoleWrapperByCrn(getUserId(),wrapper);
        List<StaDesc> staDescs = staDescService.selectList(wrapper);
        List<Integer> collect = staDescs.stream().map(StaDesc::getStnNo).distinct().collect(Collectors.toList());
        return R.ok().add(collect);
        for (StaDesc staDesc : staDescs) {
            Map<String, Object> map = new HashMap<>();
            map.put("siteId", staDesc.getStnNo());
            map.put("desc", "[" + Utils.getStaName(staDesc.getStnNo()) + "]");
            result.add(map);
        }
        return R.ok().add(result);
//        return R.ok().add(basDevpService.getAvailableEmptyOutSite());
    }
@@ -185,8 +188,8 @@
        try {
            String locNo = workService.startupFullPutStore(fullStoreParam, getUserId());
            return R.ok("入库启动成功").add(locNo);
        } catch (Exception e){
            return R.error("入库启动失败==>"+e.getMessage());
        } catch (Exception e) {
            return R.error("入库启动失败==>" + e.getMessage());
        }
    }
@@ -217,6 +220,13 @@
        return R.ok("出库启动成功");
    }
    @RequestMapping("/locCheck/out/start/sxk")
    @ManagerAuth(memo = "盘点出库")
    public R locCheckOutStartsxk(@RequestBody StockOutParam param) {
        workService.locCheckOutsxk(param, getUserId());
        return R.ok("出库启动成功");
    }
    @RequestMapping("/loc/move/start")
    @ManagerAuth(memo = "库位移转")
    public R locMoveStart(@RequestParam String sourceLocNo,
@@ -228,10 +238,10 @@
    @RequestMapping("/mat/turn/over/out/start")
    @ManagerAuth(memo = "品号移交")
    public R turnMatLocDetl(@RequestBody EmptyPlateOutParam param) {
        if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls(),param.getMatId()) || Cools.isEmpty(param.getLocDetls().get(0)) || Cools.isEmpty(param.getLocDetls().get(0).getMatnr())){
        if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls(), param.getMatId()) || Cools.isEmpty(param.getLocDetls().get(0)) || Cools.isEmpty(param.getLocDetls().get(0).getMatnr())) {
            return R.error("参数为空");
        }
        if (param.getLocDetls().size()>1){
        if (param.getLocDetls().size() > 1) {
            return R.error("请单条数据修改,谨慎操作!");
        }
        workService.turnMatLocDetl(param, getUserId());
@@ -248,7 +258,7 @@
    @RequestMapping("/hand/control/wrkMast")
    @ManagerAuth(memo = "手动处理工作档")
    public R handControlWrkMast(@RequestParam String workNo,
                                @RequestParam Integer type){
                                @RequestParam Integer type) {
        if (type == 1) {
            workService.completeWrkMast(workNo, getUserId());
            return R.ok("工作档已完成");