| | |
| | | import com.core.common.*; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.mes.MesOutApply; |
| | | import com.zy.asrs.entity.mes.TransTask; |
| | | import com.zy.asrs.entity.param.*; |
| | | import com.zy.asrs.enums.CommonEnum; |
| | | import com.zy.asrs.enums.LocStsType; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | @Slf4j |
| | | @Service |
| | | public class MobileServiceImpl implements MobileService { |
| | | @Value("${wms.wmsTransStartStation2}") |
| | | public String WMS_TRANS_START_STATION_2; |
| | | |
| | | @Value("${wms.zpalletId}") |
| | | public String WMS_ZPALLET_ID; |
| | | |
| | | @Autowired |
| | | private MatService matService; |
| | |
| | | private BasStationService basStationService; |
| | | @Autowired |
| | | private BasContainerService basContainerService; |
| | | |
| | | @Resource |
| | | private MesService mesService; |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme()); |
| | | detlDto.setOrderId(order.getId()); |
| | | detlDto.setOrderNo(order.getOrderNo()); |
| | | detlDto.setStandby1(detls.getStandby1()); |
| | | if (DetlDto.has(detlDtos, detlDto)) { |
| | | DetlDto one = DetlDto.findDto(detlDtos, detlDto); |
| | | assert one != null; |
| | |
| | | waitPakin.setIoStatus("N"); // 入出状态 |
| | | waitPakin.setAnfme(detlDto.getAnfme()); // 数量 |
| | | waitPakin.setStatus("Y"); // 状态 |
| | | waitPakin.setStandby1(detlDto.getStandby1()); |
| | | waitPakin.setAppeUser(userId); |
| | | waitPakin.setAppeTime(now); |
| | | waitPakin.setModiUser(userId); |
| | |
| | | |
| | | @Override |
| | | @Transactional |
| | | public R callEmptyBinOutBound(String staNo, String locType, Long userId) { |
| | | public R callEmptyBinOutBound(MesOutApply mesOutApply, String staNo, String locType, Long userId) { |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", 'D').eq("loc_type2", locType)); |
| | | if(locMast == null) { |
| | | return R.parse("该类型:" + locType +"空托盘不存在"); |
| | |
| | | // 获取路径 |
| | | Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() |
| | | .eq("type_no", 110) |
| | | .eq("stn_no", staNo) |
| | | .eq("stn_no", 204) |
| | | .eq("crn_no", locMast.getCrnNo()); |
| | | StaDesc staDesc = staDescService.selectOne(wrapper); |
| | | if (staDesc == null) { |
| | | R.parse("出库路径不存在,站点:" + staNo); |
| | | return R.parse("出库路径不存在,站点:" + staNo); |
| | | } |
| | | Date now = new Date(); |
| | | // 生成工作档 |
| | |
| | | wrkMast.setAppeTime(now); |
| | | wrkMast.setModiUser(userId); |
| | | wrkMast.setModiTime(now); |
| | | if (mesOutApply != null) { |
| | | wrkMast.setTaskNo(mesOutApply.getTaskno()); |
| | | wrkMast.setAgvSta(mesOutApply.getStationId()); |
| | | wrkMast.setMemo(JSONObject.toJSONString(mesOutApply)); |
| | | } else { |
| | | wrkMast.setAgvSta(staNo); |
| | | } |
| | | |
| | | wrkMastService.insert(wrkMast); |
| | | |
| | | // 更新库位状态 |
| | |
| | | locMast.setModiTime(now); |
| | | locMastService.updateById(locMast); |
| | | } |
| | | |
| | | log.info("生成空托出库任务成功,任务号:{}",wrkMast.getWrkNo()); |
| | | return R.ok("出库成功"); |
| | | } |
| | | |
| | | @Override |
| | | public R callEmptyBinInBound(String site, Long userId) { |
| | | TransTask transTask = new TransTask(); |
| | | // transTask.setTaskno(mesInApply.getTaskno()); |
| | | // transTask.setTaskname(mesInApply.getTaskname()); |
| | | // transTask.setOrderNo(mesInApply.getOrderNo()); |
| | | transTask.setTransType("02"); // 下毛坯 |
| | | // transTask.setCurProcess(mesInApply.getProductLineId()); |
| | | transTask.setCurStationId(site); |
| | | transTask.setNextStationId(WMS_TRANS_START_STATION_2); |
| | | transTask.setItemno(WMS_ZPALLET_ID); // 固定为空托的编码 |
| | | transTask.setQty(1); // 空托只回1个 |
| | | // transTask.setProductLineId(mesInApply.getProductLineId()); |
| | | transTask.setOperateType(1); |
| | | transTask.setAgvFactory(1); |
| | | JSONObject sendAgvTask = mesService.submitTask(transTask); |
| | | if ("1".equals(sendAgvTask.getString("Success"))) { |
| | | log.info("pda呼叫料框回库成功,{}", JSONObject.toJSONString(transTask)); |
| | | return R.ok("成功"); |
| | | } else { |
| | | log.error("pda呼叫料框回库失败,{}", JSONObject.toJSONString(transTask)); |
| | | return R.parse("失败"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @date 2025/9/25 |