| | |
| | | package com.zy.common.web; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.mapper.WrkMastMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.CodeRes; |
| | | import com.zy.common.model.LocTypeDto; |
| | | import com.zy.common.model.StartupDto; |
| | |
| | | private AgvBasDevpService agvBasDevpService; |
| | | @Autowired |
| | | private AgvWrkMastService agvWrkMastService; |
| | | @Autowired |
| | | private WrkMastMapper wrkMastMapper; |
| | | @Autowired |
| | | private WrkMastLogService wrkMastLogService; |
| | | // @Autowired |
| | | // private ErpService erpService; |
| | | |
| | |
| | | dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode(), 2); |
| | | break; |
| | | case 103:// 拣料入库 |
| | | dto = pickWrkIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), locTypeDto, 2); |
| | | dto = pickWrkIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), param.getLiftNo(), locTypeDto, 2); |
| | | break; |
| | | case 104:// 并板入库 |
| | | case 107:// 盘点入库 |
| | | dto = pickWrkPlateIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), locTypeDto, 2); |
| | | dto = pickWrkPlateIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), param.getLiftNo(), locTypeDto, 2); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | case 103:// 拣料入库 |
| | | case 104:// 并板入库 |
| | | case 107:// 盘点入库 |
| | | dto = pickWrkPlateIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), locTypeDto); |
| | | dto = pickWrkPlateIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), param.getLiftNo(), locTypeDto); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | } |
| | | |
| | | @Transactional |
| | | public StartupDto pickWrkPlateIn(Integer wrkNo, Integer ioType, Integer devpNo, LocTypeDto locTypeDto) { |
| | | return pickWrkPlateIn(wrkNo, ioType, devpNo, locTypeDto, 1); |
| | | public StartupDto pickWrkPlateIn(Integer wrkNo, Integer ioType, Integer devpNo, Integer liftNo, LocTypeDto locTypeDto) { |
| | | return pickWrkPlateIn(wrkNo, ioType, devpNo, liftNo, locTypeDto, 1); |
| | | } |
| | | |
| | | @Transactional |
| | | public StartupDto pickWrkPlateIn(Integer wrkNo, Integer ioType, Integer devpNo, LocTypeDto locTypeDto, Integer version) { |
| | | public StartupDto pickWrkPlateIn(Integer wrkNo, Integer ioType, Integer devpNo, Integer liftNo, LocTypeDto locTypeDto, Integer version) { |
| | | WrkMast wrkMast = wrkMastService.selectOfPick(wrkNo, ioType); |
| | | if (Cools.isEmpty(wrkMast)) { |
| | | log.error("{}任务【ioType = {}】已过期!!!", wrkNo, ioType); |
| | |
| | | } |
| | | StartupDto dto = null; |
| | | if (version == 2) { |
| | | dto = commonService.getShuttleLocNo( ioType - 50, devpNo, matnrList, locTypeDto); // 库位号, 堆垛机,目标站 |
| | | }else { |
| | | dto = commonService.getShuttleLocNo(ioType - 50, devpNo, matnrList, locTypeDto); // 库位号, 堆垛机,目标站 |
| | | } else { |
| | | dto = commonService.getLocNo(1, ioType - 50, devpNo, matnrList, locTypeDto, 0); // 库位号, 堆垛机,目标站 |
| | | } |
| | | // 更新目标库位状态 |
| | |
| | | } else { |
| | | throw new CoolException(dto.getLocNo() + "目标库位已被占用"); |
| | | } |
| | | |
| | | // 保存工作主档历史档 |
| | | if (!wrkMastLogService.save(wrkMast.getWrkNo())) { |
| | | throw new CoolException(wrkMast.getWrkNo() + "保存工作主档历史档失败"); |
| | | } |
| | | |
| | | //获取回库提升机目标站 |
| | | Integer staNo = liftNo * 100 + locMast.getLev1(); |
| | | // 更新工作档数据状态 |
| | | wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 107->57 |
| | | wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走 |
| | | wrkMast.setSourceStaNo(dto.getSourceStaNo()); // 源站 |
| | | wrkMast.setStaNo(staNo);//目标站 |
| | | wrkMast.setLocNo(dto.getLocNo()); // 目标库位 |
| | | wrkMast.setShuttleNo(null); // 穿梭车清空 |
| | | wrkMast.setLiftNo(null);// 提升机清空 |
| | | wrkMast.setModiTime(new Date()); |
| | | if (!wrkMastService.updateById(wrkMast)) { |
| | | throw new CoolException(wrkMast.getWrkNo() + "更新工作档数据状态失败"); |
| | | } |
| | | |
| | | return dto; |
| | | } |
| | | |
| | | @Transactional |
| | | public StartupDto pickWrkIn(Integer wrkNo, Integer ioType, Integer devpNo, LocTypeDto locTypeDto, Integer version) { |
| | | public StartupDto pickWrkIn(Integer wrkNo, Integer ioType, Integer devpNo, Integer liftNo, LocTypeDto locTypeDto, Integer version) { |
| | | WrkMast wrkMast = wrkMastService.selectOfPick(wrkNo, ioType); |
| | | if (Cools.isEmpty(wrkMast)) { |
| | | log.error("{}任务【ioType = {}】已过期!!!", wrkNo, ioType); |
| | |
| | | devpNo = 341; |
| | | } |
| | | } |
| | | StartupDto dto = commonService.getShuttleLocNo( ioType - 50, devpNo, matnrList, locTypeDto);//获取库位 |
| | | StartupDto dto = commonService.getShuttleLocNo(ioType - 50, devpNo, matnrList, locTypeDto);//获取库位 |
| | | |
| | | // 更新目标库位状态 |
| | | LocMast locMast = locMastService.selectById(dto.getLocNo()); |
| | |
| | | if (!locMastService.updateById(locMast)) { |
| | | throw new CoolException("改变库位状态失败"); |
| | | } |
| | | |
| | | List<LocDetl> locDetls1 = locDetlService.selectByLocNo(locMast.getLocNo()); |
| | | log.info("工作号:" + wrkMast.getWrkNo() + ",托盘码:" + wrkMast.getBarcode() + ",修改库位状态O=>Q成功,库存明细:" + JSON.toJSONString(locDetls1)); |
| | | } else { |
| | | throw new CoolException(dto.getLocNo() + "目标库位已被占用"); |
| | | } |
| | |
| | | if (!locMastService.updateById(locMast1)) { |
| | | throw new CoolException("改变库位状态失败"); |
| | | } |
| | | }else { |
| | | } else { |
| | | throw new CoolException("源库位状态异常"); |
| | | } |
| | | |
| | | // 保存工作主档历史档 |
| | | if (!wrkMastLogService.save(wrkMast.getWrkNo())) { |
| | | throw new CoolException(wrkMast.getWrkNo() + "保存工作主档历史档失败"); |
| | | } |
| | | |
| | | //获取回库提升机目标站 |
| | | Integer staNo = liftNo * 100 + locMast1.getLev1(); |
| | | |
| | | // 更新工作档数据状态 |
| | | wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54 |
| | | wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走 |
| | | wrkMast.setSourceStaNo(dto.getSourceStaNo()); // 源站 |
| | | wrkMast.setStaNo(staNo);//目标站 |
| | | wrkMast.setLocNo(dto.getLocNo()); // 目标库位 |
| | | wrkMast.setShuttleNo(null); // 穿梭车清空 |
| | | wrkMast.setLiftNo(null);// 提升机清空 |
| | | wrkMast.setModiTime(new Date()); |
| | | if (!wrkMastService.updateById(wrkMast)) { |
| | | throw new CoolException(wrkMast.getWrkNo() + "更新工作档数据状态失败"); |
| | | } |
| | | |
| | | return dto; |
| | | } |
| | | |