| | |
| | | package com.zy.asrs.controller; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.enums.SqlLike; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.R; |
| | | import com.zy.asrs.entity.AgvWrkMast; |
| | | import com.zy.asrs.entity.param.AgvTaskCreateParam; |
| | | import com.zy.asrs.entity.param.AgvTaskParam; |
| | | import com.zy.asrs.entity.param.AgvTaskkDescribeParam; |
| | | import com.zy.asrs.service.AgvWaitPakinService; |
| | | import com.zy.asrs.service.AgvWrkMastService; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.common.web.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @RestController |
| | | @RequestMapping("/agv") |
| | |
| | | |
| | | @Autowired |
| | | AgvWrkMastService agvWrkMastService; |
| | | @Autowired |
| | | AgvWaitPakinService agvWaitPakinService; |
| | | |
| | | @RequestMapping(value = "/wrkMast/{id}/auth") |
| | | @ManagerAuth |
| | |
| | | |
| | | @RequestMapping(value = "/wrkMast/list/auth") |
| | | @ManagerAuth |
| | | public R list(@RequestParam(defaultValue = "1")Integer curr, |
| | | @RequestParam(defaultValue = "10")Integer limit, |
| | | @RequestParam(required = false)String orderByField, |
| | | @RequestParam(required = false)String orderByType, |
| | | @RequestParam(required = false)String condition, |
| | | @RequestParam Map<String, Object> param){ |
| | | public R list(@RequestParam(defaultValue = "1") Integer curr, |
| | | @RequestParam(defaultValue = "10") Integer limit, |
| | | @RequestParam(required = false) String orderByField, |
| | | @RequestParam(required = false) String orderByType, |
| | | @RequestParam(required = false) String condition, |
| | | @RequestParam Map<String, Object> param) { |
| | | excludeTrash(param); |
| | | EntityWrapper<AgvWrkMast> wrapper = new EntityWrapper<>(); |
| | | convert(param, wrapper); |
| | | convert2(param, wrapper); |
| | | allLike(AgvWrkMast.class, param.keySet(), wrapper, condition); |
| | | if (!Cools.isEmpty(orderByField)){ |
| | | if (orderByField.endsWith("$")){ |
| | | orderByField = orderByField.substring(0, orderByField.length()-1); |
| | | if (!Cools.isEmpty(orderByField)) { |
| | | if (orderByField.endsWith("$")) { |
| | | orderByField = orderByField.substring(0, orderByField.length() - 1); |
| | | } |
| | | wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); |
| | | }else { |
| | | } else { |
| | | wrapper.orderBy("io_time", false); |
| | | } |
| | | Page<AgvWrkMast> agvWrkMastPage = agvWrkMastService.selectPage(new Page<>(curr, limit), wrapper); |
| | | return R.ok(agvWrkMastPage); |
| | | } |
| | | |
| | | @RequestMapping(value = "/wrkMast/list/auth/dbList") |
| | | @ManagerAuth |
| | | public R dbList(@RequestParam(defaultValue = "1") Integer curr, |
| | | @RequestParam(defaultValue = "10") Integer limit, |
| | | @RequestParam(required = false) String orderByField, |
| | | @RequestParam(required = false) String orderByType, |
| | | @RequestParam(required = false) String condition, |
| | | @RequestParam Map<String, Object> param) { |
| | | excludeTrash(param); |
| | | EntityWrapper<AgvWrkMast> wrapper = new EntityWrapper<>(); |
| | | convert2(param, wrapper); |
| | | allLike(AgvWrkMast.class, param.keySet(), wrapper, condition); |
| | | if (!Cools.isEmpty(orderByField)) { |
| | | if (orderByField.endsWith("$")) { |
| | | orderByField = orderByField.substring(0, orderByField.length() - 1); |
| | | } |
| | | wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); |
| | | } else { |
| | | wrapper.orderBy("io_time", false); |
| | | } |
| | | wrapper.in("io_type", 108, 111, 112); |
| | | return R.ok(agvWrkMastService.selectPage(new Page<>(curr, limit), wrapper)); |
| | | } |
| | | |
| | | private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ |
| | | for (Map.Entry<String, Object> entry : map.entrySet()){ |
| | | private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) { |
| | | for (Map.Entry<String, Object> entry : map.entrySet()) { |
| | | String val = String.valueOf(entry.getValue()); |
| | | if (val.contains(RANGE_TIME_LINK)){ |
| | | if (val.contains(RANGE_TIME_LINK)) { |
| | | String[] dates = val.split(RANGE_TIME_LINK); |
| | | wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); |
| | | wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); |
| | | } else { |
| | | wrapper.eq(entry.getKey(), val); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private <T> void convert2(Map<String, Object> map, EntityWrapper<T> wrapper) { |
| | | for (Map.Entry<String, Object> entry : map.entrySet()) { |
| | | String val = String.valueOf(entry.getValue()); |
| | | if (val.contains(RANGE_TIME_LINK)) { |
| | | String[] dates = val.split(RANGE_TIME_LINK); |
| | | wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); |
| | | wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); |
| | | } else { |
| | | String key = entry.getKey(); |
| | | if (key.startsWith("%") && key.endsWith("%")) { |
| | | wrapper.like(entry.getKey().replaceAll("%", ""), val); |
| | | } else if (key.startsWith("%")) { |
| | | wrapper.like(entry.getKey().replace("%", ""), val, SqlLike.LEFT); |
| | | } else if (key.endsWith("%")) { |
| | | wrapper.like(entry.getKey().replace("%", ""), val, SqlLike.RIGHT); |
| | | } else { |
| | | wrapper.eq(entry.getKey(), val); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | @RequestMapping(value = "/wrkMast/delete/auth") |
| | | @ManagerAuth(memo = "工作档删除") |
| | | public R delete(@RequestParam String param){ |
| | | public R delete(@RequestParam String param) { |
| | | List<AgvWrkMast> list = JSONArray.parseArray(param, AgvWrkMast.class); |
| | | if (Cools.isEmpty(list)){ |
| | | return R.error(); |
| | | if (Cools.isEmpty(list)) { |
| | | return R.error("工作档参数缺失"); |
| | | } |
| | | for (AgvWrkMast entity : list){ |
| | | for (AgvWrkMast entity : list) { |
| | | agvWrkMastService.delete(new EntityWrapper<>(entity)); |
| | | } |
| | | return R.ok(); |
| | |
| | | |
| | | @RequestMapping(value = "/wrkMast/export/auth") |
| | | @ManagerAuth(memo = "工作档导出") |
| | | public R export(@RequestBody JSONObject param){ |
| | | public R export(@RequestBody JSONObject param) { |
| | | List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); |
| | | EntityWrapper<AgvWrkMast> wrapper = new EntityWrapper<>(); |
| | | Map<String, Object> map = excludeTrash(param.getJSONObject("wrkMast")); |
| | | convert(map, wrapper); |
| | | convert2(map, wrapper); |
| | | List<AgvWrkMast> list = agvWrkMastService.selectList(wrapper); |
| | | return R.ok(exportSupport(list, fields)); |
| | | } |
| | |
| | | wrapper.like("wrk_no", condition); |
| | | Page<AgvWrkMast> page = agvWrkMastService.selectPage(new Page<>(0, 10), wrapper); |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (AgvWrkMast wrkMast : page.getRecords()){ |
| | | for (AgvWrkMast wrkMast : page.getRecords()) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("id", wrkMast.getWrkNo()); |
| | | map.put("value", wrkMast.getWrkNo()); |
| | |
| | | @ManagerAuth |
| | | public R query(@RequestBody JSONObject param) { |
| | | Wrapper<AgvWrkMast> wrapper = new EntityWrapper<AgvWrkMast>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); |
| | | if (null != agvWrkMastService.selectOne(wrapper)){ |
| | | if (null != agvWrkMastService.selectOne(wrapper)) { |
| | | return R.parse(BaseRes.REPEAT).add(getComment(AgvWrkMast.class, String.valueOf(param.get("key")))); |
| | | } |
| | | return R.ok(); |
| | |
| | | if (list.isEmpty()) { |
| | | return R.error("请至少选择一行数据"); |
| | | } |
| | | for (AgvWrkMast entity : list){ |
| | | for (AgvWrkMast entity : list) { |
| | | entity.setIoPri(entity.getIoPri() + 1); |
| | | } |
| | | agvWrkMastService.updateBatchById(list); |
| | |
| | | if (list.isEmpty()) { |
| | | return R.error("请至少选择一行数据"); |
| | | } |
| | | for (AgvWrkMast entity : list){ |
| | | for (AgvWrkMast entity : list) { |
| | | entity.setIoPri(entity.getIoPri() - 1); |
| | | } |
| | | agvWrkMastService.updateBatchById(list); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/wrkMast/startWrk/auth") |
| | | @ManagerAuth(memo = "工作档开始任务") |
| | | public R startWrk(@RequestParam String param) throws IOException { |
| | | List<AgvWrkMast> agvWrkMastList = JSONArray.parseArray(param, AgvWrkMast.class); |
| | | if (Cools.isEmpty(agvWrkMastList)){ |
| | | return R.error(); |
| | | } |
| | | |
| | | AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); |
| | | agvTaskCreateParam.setTaskType("putaway"); |
| | | |
| | | List<AgvTaskParam> agvTaskParamList = agvWrkMastList.stream().map(agvWrkMast -> { |
| | | AgvTaskParam agvTaskParam = new AgvTaskParam(); |
| | | AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam(); |
| | | agvTaskParam.setTaskDescribe(agvTaskkDescribeParam); |
| | | //AgvTaskParam |
| | | agvTaskParam.setTaskCode(agvWrkMast.getWrkNo().toString()); |
| | | agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue()); |
| | | //AgvTaskkDescribeParam |
| | | agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo()); |
| | | agvTaskkDescribeParam.setToLocationCode(agvWrkMast.getLocNo()); |
| | | agvTaskkDescribeParam.setContainerCode(agvWrkMast.getBarcode()); |
| | | return agvTaskParam; |
| | | }).collect(Collectors.toList()); |
| | | |
| | | agvTaskCreateParam.setTasks(agvTaskParamList); |
| | | |
| | | String response = new HttpHandler.Builder() |
| | | .setUri("localhost:8080") |
| | | .setPath("test/task/create") |
| | | .setJson(JSONObject.toJSONString(agvTaskCreateParam)) |
| | | .build() |
| | | .doPost(); |
| | | |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | int code = (int) jsonObject.get("code"); |
| | | |
| | | System.out.println(response); |
| | | |
| | | if(code == 0){ |
| | | |
| | | } |
| | | |
| | | |
| | | return R.ok(); |
| | | } |
| | | // @RequestMapping(value = "/wrkMast/startWrk/auth") |
| | | // @ManagerAuth(memo = "工作档开始任务") |
| | | // public R startWrk(@RequestParam String param) throws IOException { |
| | | // List<AgvWrkMast> agvWrkMastList = JSONArray.parseArray(param, AgvWrkMast.class); |
| | | // if (Cools.isEmpty(agvWrkMastList)){ |
| | | // return R.error(); |
| | | // } |
| | | // int startWrkCode = agvWrkMastService.startWrk(agvWrkMastList,"putaway"); |
| | | // |
| | | // int code = agvWrkMastService.containerMoveIn(agvWrkMastList); |
| | | // |
| | | // if(code == 0){ |
| | | // agvWrkMastList.forEach(agvWrkMast -> { |
| | | // //202.RCS取货中 |
| | | // agvWrkMast.setWrkSts((long)202); |
| | | // //修改AGV入库通知档状态入出状态为Y |
| | | // agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y"); |
| | | // }); |
| | | // agvWrkMastService.updateBatchById(agvWrkMastList); |
| | | // |
| | | // return R.ok("任务启动成功"); |
| | | // } |
| | | // |
| | | // return R.error("任务启动失败"); |
| | | // |
| | | // } |
| | | } |