自动化立体仓库 - WMS系统
zwl
4 天以前 6efef82561e2cf14f09871d63e1581c6174cfe10
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -1,5 +1,6 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -12,20 +13,31 @@
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
import com.zy.asrs.entity.param.OffSaleParam;
import com.zy.asrs.entity.param.RCSParam;
import com.zy.asrs.entity.result.MobileAdjustResult;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.task.WorkMastScheduler;
import com.zy.common.model.LocDto;
import com.zy.common.model.TaskDto;
import com.zy.common.model.WrkDto;
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.xml.crypto.Data;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import static jdk.nashorn.internal.runtime.regexp.joni.Config.log;
/**
 * 移动端接口控制器
@@ -34,6 +46,7 @@
@RestController
@RequestMapping("mobile")
public class MobileController extends BaseController  {
    private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
    @Autowired
    private MobileService mobileService;
@@ -61,6 +74,12 @@
    private CommonService commonService;
    @Autowired
    private StaDescService staDescService;
    @Autowired
    private ApiLogService apiLogService;
    @Value("${rcs.address.url}")
    private String url;
    @Value("${rcs.address.attrcs}")
    private String attrcs;
    // 商品上架
@@ -323,6 +342,95 @@
        return R.ok();
    }
    /**
     * agv扫描源站点显示目标站点
     * @param locNo
     * @return
     */
    @RequestMapping("/AGVSite")
    public R AGVSite(@RequestParam(required = false) String locNo){
        HashMap<Integer,String> map=new HashMap<>();
        map.put(100,"100-入库口");
        map.put(1001,"1000-补空板口");
        map.put(2001,"2001-出库口1");
        map.put(2002,"2002-出库口2");
        map.put(3001,"3001-作业口1");
        map.put(3002,"3002-作业口2");
        map.put(4001,"4001-不合格");
        map.remove(Integer.parseInt(locNo));
        return R.ok(map);
    }
    /**
     * 执行移库任务
     * @param sourceStaNo
     * @param staNo
     * @return
     */
    @RequestMapping("/AGVMove")
    public R AGVMove(@RequestParam(required = false) String sourceStaNo
    ,@RequestParam(required = false) String staNo){
        LocalDateTime now = LocalDateTime.now();
        String noww=new Date().getTime()+"";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formattedDate = now.format(formatter); // 格式化日期时间
        LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>();
        rcsParam.put("task_id",noww);
        rcsParam.put("start_location",sourceStaNo);
        rcsParam.put("start_site_level",1);
        rcsParam.put("start_command",1);
        rcsParam.put("target_location",staNo);
        rcsParam.put("target_site_level",1);
        rcsParam.put("target_command",2);
        rcsParam.put("priority",1);
        rcsParam.put("robot_type",3);//车 辆 类 型 0:XC 1:XCD 2:XP_T 3:XP_L
        rcsParam.put("MoverID","XS1");
        LinkedHashMap<String,Object> map=new LinkedHashMap<>();
        map.put("data",rcsParam);
        String response ="";
        Boolean bool =false;
        String msg = "";
        try {
            log.info("wms派发搬运任务给AGV搬运={}", rcsParam);
            response = new HttpHandler.Builder()
                    // .setHeaders(headParam)
                    .setUri(url)
                    .setPath(attrcs)
                    .setJson(JSON.toJSONString(map))
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            JSONObject data = jsonObject.getJSONObject("data");
            JSONObject errInfo = jsonObject.getJSONObject("err_info");
            if(data.getInteger("result")==0){
                bool = true;
            }else{
                msg=errInfo.getString("err_msg");
            }
        } catch (Exception e) {
            log.error("wms派发搬运任务给AGV搬运失败返回值={}", response);
        } finally {
            apiLogService.save("wms派发搬运任务给AGV搬运"
                    , url + attrcs
                    , null
                    , "127.0.0.1"
                    , JSON.toJSONString(map)
                    , response
                    , bool
            );
        }
        if(bool){
            return R.ok();
        }else {
            return R.error(msg);
        }
    }
    // 根据库位码和商品码搜索商品
    @RequestMapping("/mat/find/auth")
    public R find(@RequestParam(required = false) String locNo