From 399ff7e77c18e19c855d2202289d69fefee69c4e Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期日, 18 二月 2024 15:07:40 +0800 Subject: [PATCH] 缓存货架放箱库位分配 --- src/main/java/com/zy/asrs/controller/AgvBasDevpController.java | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 267 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java b/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java index e0ccebf..be0183d 100644 --- a/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java +++ b/src/main/java/com/zy/asrs/controller/AgvBasDevpController.java @@ -1,29 +1,40 @@ package com.zy.asrs.controller; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.annotations.ManagerAuth; -import com.core.common.Cools; -import com.core.common.DateUtils; -import com.core.common.R; -import com.zy.asrs.entity.AgvBasDevp; -import com.zy.asrs.service.AgvBasDevpService; +import com.core.common.*; +import com.core.exception.CoolException; +import com.zy.asrs.entity.*; +import com.zy.asrs.entity.param.LocMastInitParam; +import com.zy.asrs.service.*; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; -import java.util.Date; -import java.util.Map; +import java.io.IOException; +import java.util.*; +import java.util.stream.Collectors; @RestController +@RequestMapping("/agv") public class AgvBasDevpController extends BaseController { @Autowired AgvBasDevpService agvBasDevpService; + @Autowired + AgvWrkMastService agvWrkMastService; + @Autowired + AgvWrkDetlService agvWrkDetlService; + @Autowired + AgvWaitPakinService agvWaitPakinService; + @Autowired + AgvWorkService agvWorkService; - @RequestMapping(value = "/agvBasDevp/list/auth") + @RequestMapping(value = "/basDevp/list/auth") @ManagerAuth public R list(@RequestParam(defaultValue = "1")Integer curr, @RequestParam(defaultValue = "10")Integer limit, @@ -37,7 +48,7 @@ return R.ok(agvBasDevpService.selectPage(new Page<>(curr, limit), wrapper)); } - @RequestMapping(value = "/agvBasDevp/add/auth") + @RequestMapping(value = "/basDevp/add/auth") @ManagerAuth(memo = "绔欑偣娣诲姞") public R add(AgvBasDevp agvBasDevp) { agvBasDevp.setModiUser(getUserId()); @@ -47,6 +58,249 @@ agvBasDevp.setLocSts("O"); agvBasDevpService.insert(agvBasDevp); return R.ok(); + } + + @RequestMapping(value = "/basDevp/check/column/auth") + @ManagerAuth + public R query(@RequestBody JSONObject param) { + Wrapper<AgvBasDevp> wrapper = new EntityWrapper<AgvBasDevp>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); + if (null != agvBasDevpService.selectOne(wrapper)){ + return R.parse(BaseRes.REPEAT).add(getComment(BasDevp.class, String.valueOf(param.get("key")))); + } + return R.ok(); + } + + @RequestMapping(value = "/basDevp/{id}/auth") + @ManagerAuth + public R get(@PathVariable("id") Long id) { + return R.ok(agvBasDevpService.selectById(String.valueOf(id))); + } + + @RequestMapping(value = "/basDevp/update/auth") + @ManagerAuth(memo = "绔欑偣淇敼") + public R update(AgvBasDevp basDevp){ + if (Cools.isEmpty(basDevp) || null==basDevp.getDevNo()){ + return R.error(); + } + basDevp.setModiUser(getUserId()); + basDevp.setModiTime(new Date()); + agvBasDevpService.updateById(basDevp); + return R.ok("淇敼瀹屾垚"); + } + + @RequestMapping(value = "/basDevp/delete/auth") + @ManagerAuth(memo = "绔欑偣鍒犻櫎") + public R delete(@RequestParam String param){ + List<AgvBasDevp> list = JSONArray.parseArray(param, AgvBasDevp.class); + if (Cools.isEmpty(list)){ + return R.error(); + } + for (AgvBasDevp entity : list){ + agvBasDevpService.delete(new EntityWrapper<>(entity)); + } + return R.ok(); + } + + @RequestMapping(value = "/basDevp/unbind/auth") + @ManagerAuth(memo = "绔欑偣瑙g粦") + public R unbind(@RequestParam String param){ + AgvBasDevp agvBasDevp = JSONArray.parseObject(param,AgvBasDevp.class); + + //鑻ュ綋鍓嶇珯鐐硅揣浣嶇姸鎬佷笉涓篎.鍦ㄥ簱鐘舵�侊紝鍒欒繑鍥為敊璇� + if(!agvBasDevp.getLocSts().equals("F")){ + return R.error("褰撳墠绔欑偣璐т綅鐘舵�佷笉涓哄湪搴擄紝鏃犳硶瑙i櫎缁戝畾"); + } + agvBasDevp.setLocSts("O"); + agvBasDevp.setBarcode(""); + agvBasDevpService.update(agvBasDevp,new EntityWrapper<AgvBasDevp>().eq("dev_no",agvBasDevp.getDevNo())); + + return R.ok(); + } + + @RequestMapping(value = "/basDevp/export/auth") + @ManagerAuth(memo = "绔欑偣瀵煎嚭") + public R export(@RequestBody JSONObject param){ + List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); + EntityWrapper<AgvBasDevp> wrapper = new EntityWrapper<>(); + Map<String, Object> map = excludeTrash(param.getJSONObject("basDevp")); + convert(map, wrapper); + List<AgvBasDevp> list = agvBasDevpService.selectList(wrapper); + return R.ok(exportSupport(list, fields)); + } + + @RequestMapping(value = "/basDevpQuery/auth") + @ManagerAuth + public R query(String condition) { + EntityWrapper<AgvBasDevp> wrapper = new EntityWrapper<>(); + wrapper.like("dev_no", condition); + Page<AgvBasDevp> page = agvBasDevpService.selectPage(new Page<>(0, 10), wrapper); + List<Map<String, Object>> result = new ArrayList<>(); + for (AgvBasDevp basDevp : page.getRecords()){ + Map<String, Object> map = new HashMap<>(); + map.put("id", basDevp.getDevNo()); + map.put("value", basDevp.getDevNo()); + result.add(map); + } + return R.ok(result); + } + + @RequestMapping(value = "/basDevp/init/auth") + @ManagerAuth(memo = "鍒濆鍖栫珯鐐�") + public R init(LocMastInitParam param) { + //娓呯┖鍘熸湁搴撲綅 + agvBasDevpService.clearBasDevp(); + //鍒濆鍖�1妤�3妤肩珯鐐� + agvBasDevpService.initBasDevp(); + + return R.ok(); + } + + /* + 绔欑偣鏄庣粏 + */ + @RequestMapping(value = "/basDevp/detail/list/auth") + public R basDevpDetailList(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam Map<String, Object> param){ + String devNo = param.get("devNo").toString(); + AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo); + if("F".equals(agvBasDevp.getLocSts()) || "R".equals(agvBasDevp.getLocSts())){ + //鍏堝幓鍏ュ簱閫氱煡妗f壘鏄庣粏 + Page<AgvWaitPakin> agvWaitPakinPage = agvWaitPakinService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvWaitPakin>() + .eq("supp_code", agvBasDevp.getBarcode())); + if(agvWaitPakinPage.getRecords().size()>0){ + return R.ok(agvWaitPakinPage); + }else { + //濡傛灉鍏ュ簱閫氭。鏄庣粏涓虹┖锛屽垯鍘诲伐浣滄。鎵炬槑缁� + AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>() + .eq("loc_no", agvBasDevp.getDevNo()) + .or().eq("source_loc_no",agvBasDevp.getDevNo())); + + Page<AgvWrkDetl> agvWrkDetlPage = agvWrkDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvWrkDetl>() + .eq("wrk_no", agvWrkMast.getWrkNo())); + + if(agvWrkDetlPage.getRecords().size()>0){ + return R.ok(agvWrkDetlPage); + } + } + } + + return R.ok(); + } + + @RequestMapping(value = "/basDevp/visualized/list/auth") + public R visualizedList(@RequestBody JSONObject param){ + + String stationCode = param.get("stationCode").toString(); + + Map<String, Object> result = agvBasDevpService.getAgvBasDevpDtoByStationCode(stationCode); + + return R.ok(result); + } + @RequestMapping(value = "/basDevp/visualized/list/auth/v2") + public R visualizedList(@RequestParam String stationCode){ + + Map<String, Object> result = agvBasDevpService.getAgvBasDevpDtoByStationCode(stationCode); + + return R.ok(result); + } + /* + 瀹瑰櫒绂诲満 + */ + @RequestMapping(value = "/basDevp/visualized/container/moveOut") + public R visualiZedContainerMoveOut(@RequestBody Map<String,Object> map) { + List<String> devNos = new ArrayList<>(); + List<AgvWrkMast> agvWrkMastList = new ArrayList<>(); + try { + devNos = (List<String>) map.get("devNo"); + agvWrkMastList = devNos.stream().map(devNo -> { + AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo).eq("wrk_sts",205L)); + if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){ + throw new CoolException("宸ヤ綔鍙蜂负" + agvWrkMast.getWrkNo() + "绫诲瀷涓嶄负101.鍑哄簱锛屾棤娉曟墽琛屽鍣ㄧ鍦轰换鍔★紝璇烽噸鏂伴�夋嫨绔欑偣銆�"); + } + return agvWrkMast; + }).collect(Collectors.toList()); + }catch (Exception e){ + String devNo = map.get("devNo").toString(); + AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo)); + if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){ + throw new CoolException("宸ヤ綔鍙蜂负" + agvWrkMast.getWrkNo() + "绫诲瀷涓嶄负101.鍑哄簱锛屾棤娉曟墽琛屽鍣ㄧ鍦轰换鍔★紝璇烽噸鏂伴�夋嫨绔欑偣銆�"); + } + agvWrkMastList.add(agvWrkMast); + + } + +// List<AgvWrkMast> agvWrkMastList = devNos.stream().map(devNo -> { +// AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo)); +// if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){ +// throw new CoolException("宸ヤ綔鍙蜂负" + agvWrkMast.getWrkNo() + "绫诲瀷涓嶄负101.鍑哄簱锛屾棤娉曟墽琛屽鍣ㄧ鍦轰换鍔★紝璇烽噸鏂伴�夋嫨绔欑偣銆�"); +// } +// return agvWrkMast; +// }).collect(Collectors.toList()); + + try { + int code = agvWrkMastService.containerMoveOut(agvWrkMastList); + if(code == 0){ + //灏嗗伐浣滃厷鐘舵�佹敼涓哄鍣ㄧ鍦� + agvWrkMastList.forEach(agvWrkMast -> { + agvWrkMast.setWrkSts(206L); + agvWrkMastService.updateById(agvWrkMast); + }); + //淇敼绔欑偣鐘舵�� + devNos.forEach(devNo -> { + AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo); + agvBasDevp.setBarcode(""); + agvBasDevp.setLocSts("O"); + agvBasDevpService.updateById(agvBasDevp); + }); + } + } catch (IOException e) { + e.printStackTrace(); + return R.error("瀹瑰櫒绂诲満澶辫触"); + } + + return R.ok("瀹瑰櫒绂诲満鎴愬姛"); + } + + /* + 鎷f枡/鐩樼偣鍏ュ簱 + */ + @RequestMapping(value = "/basDevp/visualized/container/pickIn") + public R visualiZedPickIn(@RequestBody Map<String,Object> map){ + List<String> devNos = new ArrayList<>(); + List<AgvWrkMast> agvWrkMastList = new ArrayList<>(); + try { + devNos = (List<String>) map.get("devNo"); + agvWrkMastList = devNos.stream().map(devNo -> { + AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo).eq("wrk_sts",205L)); + if(agvWrkMast.getIoType() == 101){ + throw new CoolException("宸ヤ綔鍙蜂负" + agvWrkMast.getWrkNo() + "绫诲瀷涓�101.鍑哄簱锛屾棤娉曟墽琛屾嫞鏂欏叆搴撲换鍔★紝璇烽噸鏂伴�夋嫨绔欑偣銆�"); + } + return agvWrkMast; + }).collect(Collectors.toList()); + }catch (Exception e){ + String devNo = map.get("devNo").toString(); + AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo).eq("wrk_sts",205L)); + if (agvWrkMast != null) { + if(agvWrkMast.getIoType() == 101){ + throw new CoolException("宸ヤ綔鍙蜂负" + agvWrkMast.getWrkNo() + "绫诲瀷涓�101.鍑哄簱锛屾棤娉曟墽琛屾嫞鏂欏叆搴撲换鍔★紝璇烽噸鏂伴�夋嫨绔欑偣銆�"); + } + agvWrkMastList.add(agvWrkMast); + } + } + +// List<String> devNos = (List<String>) map.get("devNo"); +// List<AgvWrkMast> agvWrkMastList = devNos.stream().map(devNo -> { +// AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devNo)); +// if(agvWrkMast.getIoType() == 101){ +// throw new CoolException("宸ヤ綔鍙蜂负" + agvWrkMast.getWrkNo() + "绫诲瀷涓�101.鍑哄簱锛屾棤娉曟墽琛屾嫞鏂欏叆搴撲换鍔★紝璇烽噸鏂伴�夋嫨绔欑偣銆�"); +// } +// return agvWrkMast; +// }).collect(Collectors.toList()); + + agvWorkService.pickIn(agvWrkMastList); + + return R.ok("鐢熸垚鎷f枡鍑哄簱浠诲姟鎴愬姛"); } private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ @@ -61,4 +315,5 @@ } } } + } -- Gitblit v1.9.1