自动化立体仓库 - WMS系统
#
zjj
2025-03-14 dd984f63c67236c282d33ee45370d0424dadf5b5
src/main/java/com/zy/asrs/controller/NodeController.java
@@ -13,14 +13,20 @@
import com.core.common.DateUtils;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasWhs;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.ManLocDetl;
import com.zy.asrs.entity.Node;
import com.zy.asrs.entity.param.InitPakoutParam;
import com.zy.asrs.entity.param.NodeLocInitParam;
import com.zy.asrs.entity.param.PakinParam;
import com.zy.asrs.entity.result.KeyValueVo;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.NodeService;
import com.zy.common.entity.NodeExcel;
import com.zy.common.entity.NodeExcelListener;
import com.zy.common.entity.Parameter;
import com.zy.common.model.Shelves;
import com.zy.common.utils.ListUtils;
import com.zy.common.utils.NodeUtils;
import com.zy.common.utils.TreeUtils;
@@ -306,8 +312,136 @@
    }
    @RequestMapping("/work/stock/pakout")
    @ManagerAuth(memo = "生成拣货单")
    @ManagerAuth(memo = "出库")
    public R initPakout(@RequestBody List<InitPakoutParam> params) {
        return nodeService.initPakout(params, getUserId(), getHostId());
    }
    @PostMapping(value = "/work/empty/stock")
    public R getGroupEmptyStock(@RequestParam(required = false) String sourceLocNo) {
        List<Node> allEmptys = nodeService.selectList(new EntityWrapper<Node>()
                .eq("type","3"));
        return R.ok().add(allEmptys);
    }
    @RequestMapping("/work/move/start")
    @ManagerAuth(memo = "库位移转")
    public R locMoveStart(@RequestParam String sourceLocNo,
                          @RequestParam String targetLocNo) {
        nodeService.locMove(sourceLocNo, targetLocNo, getUserId());
        return R.ok("移库启动成功");
    }
    @RequestMapping(value = "/node/select/{id}/auth")
    @ManagerAuth
    public R getById(@PathVariable("id") String id) {
        Node node = nodeService.selectOne(new EntityWrapper<Node>()
                .eq("uuid",id));
        return R.ok(node);
    }
    @RequestMapping(value = "/node/init/pwd")
    public R locMastInitPwd(@RequestParam(required = false) String pwd) {
        if (Cools.isEmpty(pwd)) {
            return R.error("请输入口令");
        }
        return R.ok().add(Parameter.get().getLocMastInitPwd().equals(pwd));
    }
    @RequestMapping(value = "/node/all/get/loc")
    public R getarea(){
        EntityWrapper<Node> nodeEntityWrapper = new EntityWrapper<>();
        nodeEntityWrapper.eq("type",2);
        List<Node> list = nodeService.selectList(nodeEntityWrapper);
        List<KeyValueVo> keyValueVoList = new ArrayList<>();
        for (Node node : list){
            KeyValueVo vo = new KeyValueVo();
            vo.setName(node.getName());
            vo.setValue(node.getId());
            keyValueVoList.add(vo);
        }
        return R.ok(keyValueVoList);
    }
    @RequestMapping(value = "/node/init/auth")
    @ManagerAuth(memo = "平库库位初始化")
//    @Transactional
    public R init(@RequestBody NodeLocInitParam param) {
        try{
            EntityWrapper<Node> nodeEntityWrapper = new EntityWrapper<>();
            nodeEntityWrapper.eq("id",param.getValue());
            nodeEntityWrapper.eq("name",param.getName());
            Node node = nodeService.selectOne(nodeEntityWrapper);
            if (!Cools.isEmpty(param.getEnable()) && param.getEnable() == 1){
                nodeService.delete(new EntityWrapper<Node>().eq("parent_id",node.getId()));
            }
            List<Node> list = new ArrayList<>();
            for (int r=param.getStartRow(); r<=param.getEndRow(); r++){
                for (int b=param.getStartBay(); b<=param.getEndBay(); b++) {
                    for (int l=param.getStartLev(); l<=param.getEndLev(); l++) {
                        char rowCode = (char)(64+r);
                        // 获取库位号
                        String locNo = String.format("%02d", param.getCode())+rowCode + String.format("%02d", b) + String.format("%02d", l);
                        String[] string = node.getNamePath().split(",");
                        String uuid = String.valueOf(System.currentTimeMillis());
                        Date now =  new Date();
                        Node node1 = new Node();
                        node1.setUuid(uuid);
                        node1.setName(locNo);
                        node1.setParentId(node.getId());
                        node1.setParentName(node.getName());
                        node1.setType(3);
                        node1.setPath(node.getPath()+","+node.getId());
                        node1.setNamePath(node.getNamePath()+","+node.getName());
                        node1.setLevel(3);
                        node1.setStatus(1);
                        node1.setCreateBy(getUserId());
                        node1.setCreateTime(now);
                        node1.setUpdateBy(getUserId());
                        node1.setUpdateTime(now);
                        nodeService.insert(node1);
                    }
                }
            }
            return R.ok("初始化成功");
        }catch (Exception e){
            return R.error("初始化失败===>"+e.getMessage());
        }
//        String area = param.getString("name");
//        Integer value = param.getInteger("value");
//        Integer num = param.getInteger("startRow");
//        EntityWrapper<Node> nodeEntityWrapper = new EntityWrapper<>();
//        nodeEntityWrapper.eq("id",value);
//        nodeEntityWrapper.eq("name",area);
//        Node node = nodeService.selectOne(nodeEntityWrapper);
//        String[] string = node.getNamePath().split(",");
//        for (int i = 1; i <= num; i++) {
//            String locNo =area + String.format("%04d", i);
//            String uuid = String.valueOf(System.currentTimeMillis());
//            Date now =  new Date();
//            Node node1 = new Node();
//            node1.setUuid(uuid);
//            node1.setName(locNo);
//            node1.setParentId(node.getId());
//            node1.setParentName(node.getName());
//            node1.setType(3);
//            node1.setPath(node.getPath()+","+node.getId());
//            node1.setNamePath(node.getNamePath()+","+node.getName());
//            node1.setLevel(3);
//            node1.setStatus(1);
//            node1.setCreateBy(getUserId());
//            node1.setCreateTime(now);
//            node1.setUpdateBy(getUserId());
//            node1.setUpdateTime(now);
//            if (!nodeService.insert(node1)){
//                return R.error("数据插入失败");
//            }
//        }
    }
}