自动化立体仓库 - WMS系统
13
zhang
2 天以前 82de5a307466894bbb0258f8a63a26a7bb96d80d
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -11,9 +11,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.MobileAdjustResult;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.common.constant.ApiInterfaceConstant;
import com.zy.common.model.WrkDto;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
@@ -34,7 +32,7 @@
@RestController
@RequestMapping("mobile")
@Slf4j
public class MobileController extends BaseController  {
public class MobileController extends BaseController {
    @Autowired
    private MobileService mobileService;
@@ -57,15 +55,29 @@
    @Autowired
    private PackService packService;
    @Autowired
    private ManLocDetlMapper manLocDetlMapper;
    @Autowired
    private WrkDetlLogService wrkDetlLogService;
    @Autowired
    private CommonService commonService;
//    @PostMapping("/agv/start")
//    @ManagerAuth
//    public R pdaStockCheck(@RequestBody StockCheckParam param){
//
//
//
//    }
    @PostMapping("/agv/start")
    @ManagerAuth
    public R pdaAgvStart(@RequestBody Map<String,Object> map){
    public R pdaAgvStart(@RequestBody Map<String, Object> map) {
        if (Cools.isEmpty(map.get("sta"))) {
            return R.parse("暂存位不能为空");
        } else if (Cools.isEmpty(map.get("inSta"))) {
            return R.parse("入库站点不能为空");
        }
//        HashMap<String, String> map1 = new HashMap<>();
//        map1.put("agv0001","sta0001");
//        String sta = map.get("sta").toString();
@@ -77,64 +89,35 @@
//            return R.ok();
//        }
        String sta = (String) map.get("sta"); // 暂存位
        String inSts = "1040"; // 入库站点
        String inSta = String.valueOf(map.get("inSta")); // 入库站点
        ForwardAGVTaskParam forwardAGVTaskParam = new ForwardAGVTaskParam();
        forwardAGVTaskParam.setReqCode(UUID.randomUUID().toString().replace("-", ""));
        forwardAGVTaskParam.setTaskTyp("GT3");
        forwardAGVTaskParam.setCtnrTyp("2");
        forwardAGVTaskParam.setPriority("1");
        List<ForwardAGVTaskParam.PositionCodePaths> positionCodePathsList = new ArrayList<>();
        positionCodePathsList.add(new ForwardAGVTaskParam.PositionCodePaths(sta,"05"));
        positionCodePathsList.add(new ForwardAGVTaskParam.PositionCodePaths(inSts,"05"));
        forwardAGVTaskParam.setPositionCodePath(positionCodePathsList);
        return mobileService.inLocCallAgv(sta, inSta);
        String body = JSON.toJSONString(forwardAGVTaskParam);
        String response = "";
        boolean success = false;
        try {
            response = new HttpHandler.Builder()
                    .setUri(ApiInterfaceConstant.AGV_IP)
                    .setPath(ApiInterfaceConstant.AGV_CALL_IN_PATH)
                    .setJson(body)
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            if (jsonObject.getInteger("code").equals(0)) {
                success = true;
            } else {
                log.error("入库呼叫agv失败!!!url:{};request:{};response:{}", ApiInterfaceConstant.AGV_IP+ApiInterfaceConstant.AGV_CALL_IN_PATH, body, response);
            }
        } catch (Exception e) {
            log.error("入库呼叫agv异常", e);
        } finally {
            try {
                // 保存接口日志
//                apiLogService.save(
//                        "请求仓储MES盘点单上报接口",
//                        MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_SB_URL,
//                        null,
//                        "127.0.0.1",
//                        JSON.toJSONString(collect),
//                        response,
//                        success
//                );
            } catch (Exception e) { log.error("", e); }
        }
        return R.error();
    }
    private void getAgvTaskParam(ForwardAGVTaskParam agvTaskCreateParam,String agv,String sta){
    @PostMapping("/agv/unbind")
    @ManagerAuth
    public R pdaAgvUnbind(@RequestBody Map<String, Object> map) {
        String site = (String) map.get("site"); // 暂存位
        if (Cools.isEmpty(site)) {
            return R.parse("暂存位不能为空");
        }
        return mobileService.unbind(site);
    }
    private void getAgvTaskParam(ForwardAGVTaskParam agvTaskCreateParam, String agv, String sta) {
        List<ForwardAGVTaskParam.PositionCodePaths> agvTaskParamList = Arrays.asList(
                //起始位
                new ForwardAGVTaskParam.PositionCodePaths(agv,"05"),
                new ForwardAGVTaskParam.PositionCodePaths(agv, "05"),
                //目标位
                new ForwardAGVTaskParam.PositionCodePaths(sta,"05")
                new ForwardAGVTaskParam.PositionCodePaths(sta, "05")
        );
        Date date = new Date();
        DecimalFormat df = new DecimalFormat("0000");
        String wrkNo = "Crn"+date.getTime()/1000;
        String wrkNo = "Crn" + date.getTime() / 1000;
        agvTaskCreateParam.setReqCode(wrkNo);
        agvTaskCreateParam.setReqTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        agvTaskCreateParam.setTaskTyp("GT1");
@@ -145,7 +128,7 @@
    }
    private String forwardAGVHttpRequest(Object requestParam, String url, String path){
    private String forwardAGVHttpRequest(Object requestParam, String url, String path) {
        String response = "";
        String success = "error";
        try {
@@ -159,13 +142,13 @@
            JSONObject jsonObject = JSON.parseObject(response);
            String message = jsonObject.get("code").toString();
            if(("0").equals(message) || ("请求编号已存在").contains(message)){
            if (("0").equals(message) || ("请求编号已存在").contains(message)) {
                success = "SUCCESS";
            }else {
            } else {
                success = message;
            }
            log.info("转发agv任务:请求体:"+JSONObject.toJSONString(requestParam)+",返回值:"+jsonObject);
        }catch (Exception e){
            log.info("转发agv任务:请求体:" + JSONObject.toJSONString(requestParam) + ",返回值:" + jsonObject);
        } catch (Exception e) {
        }
        return success;
@@ -173,7 +156,7 @@
    @RequestMapping("/select/workDetl/barcode")
    @ManagerAuth
    public R selectWorkDetlBarcode(@RequestBody Map<String,Object> map) {
    public R selectWorkDetlBarcode(@RequestBody Map<String, Object> map) {
        String barcode = map.get("barcode").toString();
        if (Cools.isEmpty(barcode)) {
            return R.error("条码为空");
@@ -195,28 +178,12 @@
    @RequestMapping("/leftovers/out")
    @ManagerAuth
    public R leftoversOut(@RequestBody Map<String,Object> map) {
        mobileService.leftoversOut(map,getUserId());
    public R leftoversOut(@RequestBody Map<String, Object> map) {
        mobileService.leftoversOut(map, getUserId());
        return R.ok();
    }
    // 商品上架
    @RequestMapping("/mat/onSale/auth")
    @ManagerAuth
    public R matOnSale(@RequestBody CombParam combParam){
        mobileService.onSale(combParam);
        return R.ok("上架成功");
    }
    // 商品下架
    @RequestMapping("/mat/offSale/auth")
    //@ManagerAuth
    public R matOffSale(@RequestBody OffSaleParam offSaleParam){
        mobileService.offSale(offSaleParam);
        return R.ok("下架成功");
    }
    // 组托 ----------------------------------------------------------------------------------------------------
@@ -247,18 +214,18 @@
//    }
    @RequestMapping("/order/search/orderNo/auth")
    @ManagerAuth
    public R orderSearchByBarcode(@RequestParam String orderNo){
        if (Cools.isEmpty(orderNo)){
            orderNo=null;
    public R orderSearchByBarcode(@RequestParam String orderNo) {
        if (Cools.isEmpty(orderNo)) {
            orderNo = null;
        }
        List<Order> orders = orderService.selectorderNoL(orderNo);
        if (Cools.isEmpty(orders)){
        if (Cools.isEmpty(orders)) {
            return R.ok();
        }
        LinkedList<CombParam> combParams = new LinkedList<>();
        if (!Cools.isEmpty(orders)){
            for (Order order:orders){
                CombParam combParam=new CombParam();
        if (!Cools.isEmpty(orders)) {
            for (Order order : orders) {
                CombParam combParam = new CombParam();
                if (order == null) {
                    continue;
                }
@@ -272,11 +239,11 @@
                List<OrderDetl> orderDetls = orderService.selectWorkingDetls(order.getId());
                if (!Cools.isEmpty(orderDetls)) {
                    LinkedList<CombParam.CombMat> combMats = new LinkedList<>();
                    for (OrderDetl orderDetl:orderDetls){
                    for (OrderDetl orderDetl : orderDetls) {
                        CombParam.CombMat combMat = new CombParam.CombMat();
                        combMat.setMatnr(orderDetl.getMatnr());
                        combMat.setBatch(orderDetl.getBatch());
                        combMat.setAnfme(orderDetl.getAnfme()-orderDetl.getWorkQty());
                        combMat.setAnfme(orderDetl.getAnfme() - orderDetl.getWorkQty());
                        combMat.setMaktx(orderDetl.getMaktx());
                        combMat.setSpecs(orderDetl.getSpecs());
                        combMats.add(combMat);
@@ -292,14 +259,30 @@
    @RequestMapping("/comb/auth")
    @ManagerAuth(memo = "组托")
    public R comb(@RequestBody CombParam combParam){
        mobileService.comb(combParam, getUserId());
        return R.ok("组托成功");
    public R comb(@RequestBody CombParam combParam) {
        log.info("组托:" + JSONObject.toJSONString(combParam));
        if (Cools.isEmpty(combParam.getBarcode(), combParam.getCombMats())) {
            throw new CoolException(BaseRes.PARAM);
        }
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                .eq("barcode", combParam.getBarcode())
                .eq("io_type", 104)
                .in("wrk_sts", 14, 105));
        if (Cools.isEmpty(wrkMast)) {
            mobileService.comb(combParam, getUserId());
            return R.ok("组托成功");
        } else {
            mobileService.mergeComb(combParam, getUserId());
            return R.ok("并板成功");
        }
    }
    @RequestMapping("/pack/get/auth")
    @ManagerAuth
    public R packGet(@RequestParam String barcode){
    public R packGet(@RequestParam String barcode) {
        Pack pack = packService.selectByBarcode(barcode);
        if (pack == null) {
            return R.ok();
@@ -312,7 +295,7 @@
    @RequestMapping("/pack/comb/auth")
    @ManagerAuth(memo = "下线组托")
    public R packComb(@RequestBody CombParam combParam){
    public R packComb(@RequestBody CombParam combParam) {
        mobileService.packComb(combParam, getUserId());
        return R.ok("组托成功");
    }
@@ -325,7 +308,7 @@
    @Deprecated
    public R pakoutQuery(@RequestParam(required = false) String barcode,
                         @RequestParam(required = false) Integer staNo,
                         @RequestParam(required = false) String matnr){
                         @RequestParam(required = false) String matnr) {
        if (Cools.isEmpty(barcode) && Cools.isEmpty(matnr)) {
            return R.ok();
        }
@@ -349,7 +332,7 @@
     */
    @RequestMapping("/pakout/confirm/barcode/auth")
    @ManagerAuth
    public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode){
    public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode) {
        if (Cools.isEmpty(barcode)) {
            return R.ok();
        }
@@ -370,16 +353,16 @@
     */
    @RequestMapping("/pakout/confirm/goods/auth")       //待完善  原因(客户未给出详细信息)
    @ManagerAuth
    public R pakoutQueryByGoods(@RequestBody GDYKConfirmGoodsParam combParam){
    public R pakoutQueryByGoods(@RequestBody GDYKConfirmGoodsParam combParam) {
        if (Cools.isEmpty(combParam)) {
            return R.ok();
        }
//        List<Order> orders = orderService.selectorderNoL(batch);
        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", combParam.getMatnr()).eq("batch", combParam.getBatch()).eq("order_no",combParam.getOrderNo()));
        if (Cools.isEmpty(orderDetl)){
        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", combParam.getMatnr()).eq("batch", combParam.getBatch()).eq("order_no", combParam.getOrderNo()));
        if (Cools.isEmpty(orderDetl)) {
            return R.error("未查到数据");
        }
        if (!orderDetl.getQty$().equals("已完成")){
        if (!orderDetl.getQty$().equals("已完成")) {
            return R.error("任务未完成");
        }
        //复核数
@@ -388,15 +371,6 @@
        return R.ok();
    }
    // 根据库位码和商品码搜索商品
    @RequestMapping("/mat/find/auth")
    public R find(@RequestParam(required = false) String locNo
            , @RequestParam(required = false) String matnr){
        //List<ManLocDetl> manLocDetls = manLocDetlMapper.selectItem0(locNo, matnr);
        ManLocDetl manLocDetl = manLocDetlMapper.selectLocNo0(locNo, matnr);
        return R.ok(manLocDetl);
        //return R.ok(manLocDetlMapper.selectItem0(locNo, matnr));
    }
    /**
     * 出库确认 - 拣料出库 - 选择具体条码商品
@@ -404,7 +378,7 @@
    @RequestMapping("/pakout/confirm/pick/auth")
    @ManagerAuth
    public R pakoutQueryByBarcode(@RequestParam(required = false) Integer wrkNo
                                , @RequestParam(required = false) String matnr){
            , @RequestParam(required = false) String matnr) {
        if (Cools.isEmpty(wrkNo)) {
            return R.ok();
        }
@@ -539,64 +513,72 @@
    @RequestMapping("/adjust/auth")
    @ManagerAuth(memo = "盘点")
    public R adjust(@RequestBody MobileAdjustParam combParam){
    public R adjust(@RequestBody MobileAdjustParam combParam) {
        mobileService.adjust(combParam, getUserId());
        return R.ok("盘点成功");
    }
    @PostMapping("/order/out/pakout/auth")
    @ManagerAuth(memo = "订单出库")
    public synchronized R pakoutByOrder(@RequestBody JSONObject param) {
        if(!param.containsKey("staNo") || !param.containsKey("orderNo")){
        if (!param.containsKey("staNo") || !param.containsKey("orderNo")) {
            return R.parse(BaseRes.PARAM);
        }
        mobileService.pakoutByOrder(param,getUserId());
        mobileService.pakoutByOrder(param, getUserId());
        return R.ok("出库成功");
    }
    @RequestMapping("/ddd/ddd")
    @ManagerAuth()
    public R ddd() {
        int w = 64;
        int w = 99999;
        for (int i = 17; i <= 37; i++) {
        for (int j = 1;j<=14;j++){
            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 1));
            LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 2));
            LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 3));
            for (int j = 8; j <= 14; j++) {
                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 1));
                LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 2));
                LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 3));
//            LocMast locMast4 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", 26).eq("bay1", i).eq("lev1", 1));
            if (locMast.getGro1() == 999){
                continue;
            }
                if (locMast.getGro1() == 999) {
                    continue;
                }
//            locMast.setGro1(w);
            locMast2.setGro1(locMast.getGro1()+100);
            locMast3.setGro1(locMast.getGro1()+200);
//            locMast.setGro1(locMast.getGro1()+1000);
                locMast2.setGro1(locMast.getGro1() + 1000);
                locMast3.setGro1(locMast.getGro1() + 2000);
//            locMast4.setGro1(w);
//            locMastService.updateById(locMast);
            locMastService.updateById(locMast2);
            locMastService.updateById(locMast3);
                locMastService.updateById(locMast2);
                locMastService.updateById(locMast3);
//            locMastService.updateById(locMast4);
            w++;
        }
                w++;
            }
        }
//        for (int i = 17; i <=37; i++) {
//            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 14).eq("lev1", 1));
////            LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 10).eq("lev1", 1));
////            LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 11).eq("lev1", 1));
//            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 3).eq("lev1", 1));
//            LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 8).eq("lev1", 1));
//            LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 13).eq("lev1", 1));
////            LocMast locMast4 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 12).eq("lev1", 1));
//            locMast.setGro1(w);
////            locMast2.setGro1(w);
////            locMast3.setGro1(w);
//            if (!Cools.isEmpty(locMast)) {
//                locMast.setGro1(w);
//                locMastService.updateById(locMast);
//            }
//
//            locMast2.setGro1(w);
//            locMast3.setGro1(w);
////            locMast4.setGro1(w);
//            locMastService.updateById(locMast);
////            locMastService.updateById(locMast2);
////            locMastService.updateById(locMast3);
//
//            locMastService.updateById(locMast2);
//            locMastService.updateById(locMast3);
////            locMastService.updateById(locMast4);
//            w++;
////            w++;
//        }
        return R.ok();
    }
}