|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | import com.core.annotations.ManagerAuth; | 
|---|
|  |  |  | import com.core.common.BaseRes; | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.core.common.R; | 
|---|
|  |  |  | import com.core.exception.CoolException; | 
|---|
|  |  |  | import com.zy.asrs.entity.*; | 
|---|
|  |  |  | 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.*; | 
|---|
|  |  |  | import com.zy.asrs.entity.result.MobileAdjustResult; | 
|---|
|  |  |  | import com.zy.asrs.mapper.ManLocDetlMapper; | 
|---|
|  |  |  | import com.zy.asrs.service.*; | 
|---|
|  |  |  | import com.zy.common.model.WrkDto; | 
|---|
|  |  |  | import com.zy.common.service.CommonService; | 
|---|
|  |  |  | import com.zy.common.utils.HttpHandler; | 
|---|
|  |  |  | import com.zy.common.web.BaseController; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.text.DecimalFormat; | 
|---|
|  |  |  | import java.text.SimpleDateFormat; | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 移动端接口控制器 | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @RestController | 
|---|
|  |  |  | @RequestMapping("mobile") | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | public class MobileController extends BaseController  { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        ForwardAGVTaskParam forwardAGVTaskParam = new ForwardAGVTaskParam(); | 
|---|
|  |  |  | //        getAgvTaskParam(forwardAGVTaskParam,sta,map1.get(sta)); | 
|---|
|  |  |  | //        String request = forwardAGVHttpRequest(forwardAGVTaskParam, "10.0.100.110:8182", "/rcms/services/rest/hikRpcService/genAgvSchedulingTask"); | 
|---|
|  |  |  | //        if ("SUCCESS".equals(request)) { | 
|---|
|  |  |  | //            return R.ok(); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | String sta = (String) map.get("sta"); // 暂存位 | 
|---|
|  |  |  | String inSta = String.valueOf(map.get("inSta")); // 入库站点 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return mobileService.inLocCallAgv(sta, inSta); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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(sta,"05") | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | Date date = new Date(); | 
|---|
|  |  |  | DecimalFormat df = new DecimalFormat("0000"); | 
|---|
|  |  |  | 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"); | 
|---|
|  |  |  | agvTaskCreateParam.setCtnrCode("00000000"); | 
|---|
|  |  |  | agvTaskCreateParam.setPositionCodePath(agvTaskParamList); | 
|---|
|  |  |  | agvTaskCreateParam.setCtnrTyp("1"); | 
|---|
|  |  |  | agvTaskCreateParam.setTaskCode(wrkNo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private String forwardAGVHttpRequest(Object requestParam, String url, String path){ | 
|---|
|  |  |  | String response = ""; | 
|---|
|  |  |  | String success = "error"; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | response = new HttpHandler.Builder() | 
|---|
|  |  |  | .setUri(url) | 
|---|
|  |  |  | //                    .setHttps(true) | 
|---|
|  |  |  | .setPath(path) | 
|---|
|  |  |  | .setJson(JSONObject.toJSONString(requestParam)) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .doPost(); | 
|---|
|  |  |  | JSONObject jsonObject = JSON.parseObject(response); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String message = jsonObject.get("code").toString(); | 
|---|
|  |  |  | if(("0").equals(message) || ("请求编号已存在").contains(message)){ | 
|---|
|  |  |  | success = "SUCCESS"; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | success = message; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | log.info("转发agv任务:请求体:"+JSONObject.toJSONString(requestParam)+",返回值:"+jsonObject); | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return success; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/select/workDetl/barcode") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R selectWorkDetlBarcode(@RequestBody Map<String,Object> map) { | 
|---|
|  |  |  | String barcode = map.get("barcode").toString(); | 
|---|
|  |  |  | if (Cools.isEmpty(barcode)) { | 
|---|
|  |  |  | return R.error("条码为空"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode)); | 
|---|
|  |  |  | if (Cools.isEmpty(wrkMast)) { | 
|---|
|  |  |  | return R.error("未找到任务"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (wrkMast.getWrkSts() != 14 && wrkMast.getIoType() != 103) { | 
|---|
|  |  |  | return R.error("任务状态有误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); | 
|---|
|  |  |  | if (Cools.isEmpty(wrkDetls)) { | 
|---|
|  |  |  | return R.error("工作明细有误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(wrkDetls); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/leftovers/out") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R leftoversOut(@RequestBody Map<String,Object> map) { | 
|---|
|  |  |  | mobileService.leftoversOut(map,getUserId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 商品上架 | 
|---|
|  |  |  | @RequestMapping("/mat/onSale/auth") | 
|---|
|  |  |  | 
|---|
|  |  |  | CombParam.CombMat combMat = new CombParam.CombMat(); | 
|---|
|  |  |  | combMat.setMatnr(orderDetl.getMatnr()); | 
|---|
|  |  |  | combMat.setBatch(orderDetl.getBatch()); | 
|---|
|  |  |  | combMat.setAnfme(orderDetl.getAnfme()); | 
|---|
|  |  |  | combMat.setAnfme(orderDetl.getAnfme()-orderDetl.getWorkQty()); | 
|---|
|  |  |  | combMat.setMaktx(orderDetl.getMaktx()); | 
|---|
|  |  |  | combMat.setSpecs(orderDetl.getSpecs()); | 
|---|
|  |  |  | combMats.add(combMat); | 
|---|
|  |  |  | 
|---|
|  |  |  | @RequestMapping("/comb/auth") | 
|---|
|  |  |  | @ManagerAuth(memo = "组托") | 
|---|
|  |  |  | public R comb(@RequestBody CombParam combParam){ | 
|---|
|  |  |  | mobileService.comb(combParam, getUserId()); | 
|---|
|  |  |  | return R.ok("组托成功"); | 
|---|
|  |  |  | 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("/pingKu/Shelves/auth") | 
|---|
|  |  |  | @ManagerAuth(memo = "平库上架") | 
|---|
|  |  |  | public R pingKuShelves(@RequestBody CombParam combParam){ | 
|---|
|  |  |  | if (Cools.isEmpty(combParam.getLocno(), combParam.getCombMats())) { | 
|---|
|  |  |  | throw new CoolException(BaseRes.PARAM); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mobileService.pingKuShelves(combParam, getUserId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/pingKu/unShelves/auth") | 
|---|
|  |  |  | @ManagerAuth(memo = "平库下架") | 
|---|
|  |  |  | public R pingKuUnShelves(@RequestBody CombParam combParam){ | 
|---|
|  |  |  | if (Cools.isEmpty(combParam.getLocno(), combParam.getCombMats())) { | 
|---|
|  |  |  | throw new CoolException(BaseRes.PARAM); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mobileService.pingKuUnShelves(combParam, getUserId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/pack/get/auth") | 
|---|
|  |  |  | 
|---|
|  |  |  | wrkDetls.removeIf(wrkDetl -> wrkDetl.getInspect() != null && wrkDetl.getInspect() != 0); | 
|---|
|  |  |  | return R.ok().add(Cools.add("wrkNo", wrkMast.getWrkNo()).add("ioType", wrkMast.getIoType()).add("list", wrkDetls)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 出库确认 - 扫货物  广德宜科版 | 
|---|
|  |  |  | * 1.全板 返回 101 | 
|---|
|  |  |  | * 2.拣料 返回 103 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @RequestMapping("/pakout/confirm/goods/auth")       //待完善  原因(客户未给出详细信息) | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | 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)){ | 
|---|
|  |  |  | return R.error("未查到数据"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!orderDetl.getQty$().equals("已完成")){ | 
|---|
|  |  |  | return R.error("任务未完成"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //复核数 | 
|---|
|  |  |  | orderDetl.setSource(1); | 
|---|
|  |  |  | orderDetlService.updateById(orderDetl); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | return R.ok("盘点成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/pda/adjust/auth") | 
|---|
|  |  |  | @ManagerAuth(memo = "pda盘点") | 
|---|
|  |  |  | public R pdaAdjust(@RequestBody pdaAdjustParam param){ | 
|---|
|  |  |  | mobileService.pdaAdjust(param,getUserId()); | 
|---|
|  |  |  | return R.ok("盘点成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/order/out/pakout/auth") | 
|---|
|  |  |  | @ManagerAuth(memo = "订单出库") | 
|---|
|  |  |  | public synchronized R pakoutByOrder(@RequestBody JSONObject param) { | 
|---|
|  |  |  | 
|---|
|  |  |  | return R.ok("出库成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("/checkOut/submit/auth") | 
|---|
|  |  |  | @ManagerAuth(memo = "盘点上传") | 
|---|
|  |  |  | public R CheckOutUploadERP(@RequestParam String orderId){ | 
|---|
|  |  |  | mobileService.inventoryUpload(orderId); | 
|---|
|  |  |  | return R.ok("盘点成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping("/ddd/ddd") | 
|---|
|  |  |  | @ManagerAuth() | 
|---|
|  |  |  | public R ddd() { | 
|---|
|  |  |  | int w = 64; | 
|---|
|  |  |  | for (int i = 17; i <= 37; i++) { | 
|---|
|  |  |  | for (int j = 1;j<=3;j++){ | 
|---|
|  |  |  | //            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 7).eq("lev1", j)); | 
|---|
|  |  |  | LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 12).eq("lev1", j)); | 
|---|
|  |  |  | LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 14).eq("lev1", j)); | 
|---|
|  |  |  | //            LocMast locMast4 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", 26).eq("bay1", i).eq("lev1", 1)); | 
|---|
|  |  |  | //            if (locMast.getGro1() == 999){ | 
|---|
|  |  |  | //                continue; | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            locMast.setGro1(w); | 
|---|
|  |  |  | //            locMast.setGro1(locMast.getGro1()+1000); | 
|---|
|  |  |  | locMast2.setGro1(locMast2.getGro1()+10000); | 
|---|
|  |  |  | locMast3.setGro1(locMast3.getGro1()+2000); | 
|---|
|  |  |  | //            locMast4.setGro1(w); | 
|---|
|  |  |  | //            locMastService.updateById(locMast); | 
|---|
|  |  |  | locMastService.updateById(locMast2); | 
|---|
|  |  |  | locMastService.updateById(locMast3); | 
|---|
|  |  |  | //            locMastService.updateById(locMast4); | 
|---|
|  |  |  | 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 locMast4 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 12).eq("lev1", 1)); | 
|---|
|  |  |  | //            locMast.setGro1(w); | 
|---|
|  |  |  | ////            locMast2.setGro1(w); | 
|---|
|  |  |  | ////            locMast3.setGro1(w); | 
|---|
|  |  |  | ////            locMast4.setGro1(w); | 
|---|
|  |  |  | //            locMastService.updateById(locMast); | 
|---|
|  |  |  | ////            locMastService.updateById(locMast2); | 
|---|
|  |  |  | ////            locMastService.updateById(locMast3); | 
|---|
|  |  |  | ////            locMastService.updateById(locMast4); | 
|---|
|  |  |  | //            w++; | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|