| | |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.LocMastInitParam; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.CodeDetectionUtil; |
| | | 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") |
| | |
| | | AgvWaitPakinService agvWaitPakinService; |
| | | @Autowired |
| | | AgvWorkService agvWorkService; |
| | | @Autowired |
| | | AgvLocDetlService agvLocDetlService; |
| | | |
| | | @RequestMapping(value = "/basDevp/list/auth") |
| | | @ManagerAuth |
| | |
| | | } |
| | | agvBasDevp.setLocSts("O"); |
| | | agvBasDevp.setBarcode(""); |
| | | agvBasDevp.setLocType2(null); |
| | | agvBasDevpService.update(agvBasDevp,new EntityWrapper<AgvBasDevp>().eq("dev_no",agvBasDevp.getDevNo())); |
| | | |
| | | return R.ok(); |
| | |
| | | @RequestParam(defaultValue = "10")Integer limit, |
| | | @RequestParam Map<String, Object> param){ |
| | | String devNo = param.get("devNo").toString(); |
| | | if (Cools.isEmpty(devNo) || !CodeDetectionUtil.carCodeDetection(devNo)){ |
| | | throw new CoolException(devNo + "小车地码有误,请正确扫码!!!"); |
| | | } |
| | | AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo); |
| | | if("F".equals(agvBasDevp.getLocSts()) || "R".equals(agvBasDevp.getLocSts())){ |
| | | //先去入库通知档找明细 |
| | |
| | | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>() |
| | | .eq("loc_no", agvBasDevp.getDevNo()) |
| | | .or().eq("source_loc_no",agvBasDevp.getDevNo())); |
| | | if (Cools.isEmpty(agvWrkMast)) { |
| | | Page<AgvLocDetl> agvLocDetlPage = agvLocDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvLocDetl>() |
| | | .eq("supp_code", agvBasDevp.getBarcode())); |
| | | if (agvLocDetlPage.getRecords().size() > 0) { |
| | | return R.ok(agvLocDetlPage); |
| | | } else { |
| | | return R.error("当前货架码异常!"); |
| | | } |
| | | } |
| | | |
| | | Page<AgvWrkDetl> agvWrkDetlPage = agvWrkDetlService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvWrkDetl>() |
| | | .eq("wrk_no", agvWrkMast.getWrkNo())); |
| | |
| | | |
| | | 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") |
| | | @ManagerAuth(memo = "确认出库") |
| | | 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)); |
| | | 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); |
| | | |
| | | String barcode = map.get("barcode").toString(); |
| | | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts",205L)); |
| | | if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){ |
| | | throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型不为101.出库,无法执行货架离场任务,请重新选择站点。"); |
| | | } |
| | | |
| | | // 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()); |
| | | agvWrkMast.setWrkSts(206L); |
| | | agvWrkMast.setModiTime(new Date()); |
| | | agvWrkMastService.updateById(agvWrkMast); |
| | | |
| | | 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("货架离场成功"); |
| | | } |
| | | |
| | | /* |
| | | 任务完成 |
| | | */ |
| | | @RequestMapping(value = "/basDevp/visualized/container/moveOut2") |
| | | @ManagerAuth(memo = "确认出库2") |
| | | public R visualiZedContainerMoveOut2(@RequestBody Map<String,Object> map) { |
| | | |
| | | String barcode = map.get("barcode").toString(); |
| | | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts",205L)); |
| | | if(agvWrkMast.getIoType() != 101 && agvWrkMast.getIoType() != 110){ |
| | | throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型不为101.出库,无法执行货架离场任务,请重新选择站点。"); |
| | | } |
| | | |
| | | return R.ok("容器离场成功"); |
| | | agvWrkMast.setWrkSts(208L); |
| | | agvWrkMast.setModiTime(new Date()); |
| | | agvWrkMastService.updateById(agvWrkMast); |
| | | |
| | | return R.ok("货架离场成功"); |
| | | } |
| | | |
| | | /* |
| | | 拣料/盘点入库 |
| | | */ |
| | | @RequestMapping(value = "/basDevp/visualized/container/pickIn") |
| | | @ManagerAuth(memo = "已拣料回库") |
| | | 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)); |
| | | 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)); |
| | | String devNo = map.get("devNo").toString(); |
| | | String barcode = map.get("barcode").toString(); |
| | | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode).eq("wrk_sts",205L)); |
| | | if (agvWrkMast != null) { |
| | | if(agvWrkMast.getIoType() == 101){ |
| | | throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型为101.出库,无法执行拣料入库任务,请重新选择站点。"); |
| | | } |
| | | agvWrkMast.setLocNo(devNo); |
| | | agvWrkMastList.add(agvWrkMast); |
| | | agvWorkService.pickIn(agvWrkMastList); |
| | | } else { |
| | | return R.error("查不到拣料出库任务"); |
| | | } |
| | | |
| | | // 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("生成拣料出库任务成功"); |
| | | return R.ok("生成拣料回库任务成功"); |
| | | } |
| | | |
| | | private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ |