| | |
| | | */ |
| | | @RequestMapping(value = "/basDevp/visualized/container/moveOut") |
| | | public R visualiZedContainerMoveOut(@RequestBody Map<String,Object> map) { |
| | | |
| | | List<String> devNos = (List<String>) map.get("devNo"); |
| | | List<AgvWrkMast> agvWrkMastList = devNos.stream().map(devNo -> { |
| | | 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.出库,无法执行容器离场任务,请重新选择站点。"); |
| | | } |
| | | return agvWrkMast; |
| | | }).collect(Collectors.toList()); |
| | | 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); |
| | |
| | | */ |
| | | @RequestMapping(value = "/basDevp/visualized/container/pickIn") |
| | | public R visualiZedPickIn(@RequestBody Map<String,Object> map){ |
| | | List<String> devNos = (List<String>) map.get("devNo"); |
| | | List<AgvWrkMast> agvWrkMastList = devNos.stream().map(devNo -> { |
| | | 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)); |
| | | if(agvWrkMast.getIoType() == 101){ |
| | | throw new CoolException("工作号为" + agvWrkMast.getWrkNo() + "类型为101.出库,无法执行拣料入库任务,请重新选择站点。"); |
| | | } |
| | | return agvWrkMast; |
| | | }).collect(Collectors.toList()); |
| | | 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); |
| | | |
| | |
| | | //save api log (appkey 后续添加) |
| | | |
| | | AppAuthUtil.auth("",param, request); |
| | | |
| | | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", param.getTaskCode())); |
| | | int wrkNo = Integer.parseInt(param.getTaskCode()); |
| | | if(wrkNo < 0){ |
| | | wrkNo = -wrkNo; |
| | | } |
| | | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", wrkNo)); |
| | | if(Cools.isEmpty(agvWrkMast)){ |
| | | return R.error("任务编号错误"); |
| | | } |
| | |
| | | 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.entity.AgvWaitPakin; |
| | | import com.zy.asrs.entity.WaitPakin; |
| | | import com.zy.asrs.service.AgvBasDevpService; |
| | | import com.zy.asrs.service.AgvWaitPakinService; |
| | | import com.zy.asrs.service.WaitPakinService; |
| | | import com.zy.common.web.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | |
| | | @Autowired |
| | | private AgvWaitPakinService agvWaitPakinService; |
| | | @Autowired |
| | | private AgvBasDevpService agvBasDevpService; |
| | | |
| | | @RequestMapping(value = "/waitPakin/{id}/auth") |
| | | @ManagerAuth |
| | |
| | | return R.error(); |
| | | } |
| | | for (AgvWaitPakin entity : list){ |
| | | agvWaitPakinService.delete(new EntityWrapper<>(entity)); |
| | | AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", entity.getSuppCode())); |
| | | if(Cools.isEmpty(agvBasDevp)){ |
| | | agvWaitPakinService.delete(new EntityWrapper<>(entity)); |
| | | }else { |
| | | return R.error("料箱码为" + entity.getSuppCode() + "已绑定站点,请先从AGV站点管理解绑该料箱"); |
| | | } |
| | | |
| | | } |
| | | return R.ok(); |
| | | } |
| | |
| | | import com.zy.asrs.service.AgvLocMastService; |
| | | import com.zy.asrs.service.AgvWrkDetlService; |
| | | import com.zy.common.model.LocDto; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | @Slf4j |
| | | public class AgvLocDetlServiceImpl extends ServiceImpl<AgvLocDetlMapper, AgvLocDetl> implements AgvLocDetlService { |
| | | |
| | | @Autowired |
| | |
| | | List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", taskCode)); |
| | | agvWrkDetls.stream().map(agvWrkDetl -> { |
| | | AgvLocDetl agvLocDetl = new AgvLocDetl(); |
| | | log.info("agvWrkDetl: " + agvLocDetl.getBarcode()); |
| | | BeanUtils.copyProperties(agvWrkDetl, agvLocDetl); |
| | | agvLocDetl.setLocNo(locNo); |
| | | this.insert(agvLocDetl); |
| | |
| | | for(int row=rowIndex; row<=rowMax; row++) { |
| | | for (int bay = bayIndex; bay <= bayMax; bay++) { |
| | | for (int lev = levIndex; lev <= levMax; lev++) { |
| | | if(row == 8 || row == 9){ |
| | | if((bay >=8 && bay <=11) |
| | | || (bay >= 20 && bay <=23) |
| | | || (bay>=37 && bay <=39) |
| | | || (bay>=50 && bay <=52) |
| | | || (bay>=63 && bay <=64) |
| | | || (bay>=79 && bay <=80)){ |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | AgvLocMast loc = new AgvLocMast(); |
| | | String locRow = row < 10 ? "-00" + row : "-0" + row; |
| | | String locBay = bay < 10 ? "-00" + bay : "-0" + bay; |
| | |
| | | List<AgvWaitPakin> agvWaitPakinList = this.selectList(new EntityWrapper<AgvWaitPakin>().eq("zpallet", agvWrkMast.getBarcode())); |
| | | agvWaitPakinList.stream().forEach(agvWaitPakin -> { |
| | | agvWaitPakin.setIoStatus("Y"); |
| | | this.update(agvWaitPakin,new EntityWrapper<AgvWaitPakin>().eq("zpallet",agvWaitPakin.getZpallet())); |
| | | this.update(agvWaitPakin,new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getZpallet())); |
| | | }); |
| | | } |
| | | } |
| | |
| | | Date now = new Date(); |
| | | |
| | | //生成工作党 |
| | | AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getZpallet(), now, userId); |
| | | AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getSuppCode(), now, userId); |
| | | //生成工作明细档 |
| | | createWrkDetlReWrite(locDetl.getMatnr(),wrkMast.getWrkNo(),null,locDetl.getBatch(),locDetl.getCount(),wrkMast.getBarcode(),now,userId,agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime()); |
| | | //修改库位信息 |
| | |
| | | |
| | | Date now = new Date(); |
| | | //生成移库工作档 |
| | | AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getZpallet(), now, userId); |
| | | AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId); |
| | | //生成工作党明细 |
| | | createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime()); |
| | | //修改目标库位状态 |
| | |
| | | wrkDetl.setIoTime(now); |
| | | wrkDetl.setBatch(batch); |
| | | wrkDetl.setAnfme(anfme); // 数量 |
| | | wrkDetl.setZpallet(zpallet); // 托盘条码 |
| | | wrkDetl.setSuppCode(zpallet); // 托盘条码 |
| | | wrkDetl.setAppeUser(userId); |
| | | wrkDetl.setAppeTime(now); |
| | | wrkDetl.setModiUser(userId); |
| | |
| | | AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam(); |
| | | agvTaskParam.setTaskDescribe(agvTaskkDescribeParam); |
| | | //AgvTaskParam |
| | | agvTaskParam.setTaskCode(agvWrkMast.getWrkNo().toString()); |
| | | if(agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57){ |
| | | agvTaskParam.setTaskCode(-agvWrkMast.getWrkNo() + ""); |
| | | }else{ |
| | | agvTaskParam.setTaskCode(agvWrkMast.getWrkNo() + ""); |
| | | } |
| | | |
| | | agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue()); |
| | | |
| | | //AgvTaskkDescribeParam |
| | |
| | | {field: 'matnr', align: 'center',title: '存货编码', sort:true} |
| | | ,{field: 'maktx', align: 'center',title: '存货名称', sort:true} |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false} |
| | | ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true, hide: true} |
| | | ,{field: 'batch', align: 'center',title: '序列码', width: 300} |
| | | ,{field: 'anfme', align: 'center',title: '数量'} |
| | | ,{field: 'suppCode', align: 'center',title: '料箱码'} |
| | | ,{field: 'threeCode', align: 'center',title: '销售订单号'} |
| | | ,{field: 'dead_time', align: 'center',title: '销售订单行号'} |
| | | ,{field: 'deadTime', align: 'center',title: '销售订单行号'} |
| | | ,{field: 'specs', align: 'center',title: '规格型号', hide: false} |
| | | ,{field: 'model', align: 'center',title: '通用型号', hide: false} |
| | | |
| | |
| | | var detlCols = [ |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: true} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: false} |
| | | ,{field: 'suppCode', align: 'center',title: '料箱码', hide: false} |
| | | ,{field: 'suppCode', align: 'center',title: '料箱码', hide: true} |
| | | ,{field: 'suppCode', align: 'center',title: '料箱码', hide: false, width: 110} |
| | | ,{field: 'matnr', align: 'center',title: '存货编码',hide: true} |
| | | ,{field: 'matnr', align: 'center',title: '存货编码'} |
| | | ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true, hide: true} |
| | |
| | | var cols = [ |
| | | {field: 'wrkNo', align: 'center',title: '工作号'} |
| | | ,{field: 'ioTime$', align: 'center',title: '工作时间'} |
| | | ,{field: 'anfme', align: 'center',title: '数量'} |
| | | ]; |
| | | arrRemove(detlCols, 'field', 'zpallet'); |
| | | cols.push.apply(cols, detlCols); |
| | | return cols; |
| | | } |
| | |
| | | let cols = [ |
| | | {field: 'wrkNo', align: 'center',title: '工作号'} |
| | | ,{field: 'ioTime$', align: 'center',title: '工作时间',width:160} |
| | | ,{field: 'anfme', align: 'center',title: '数量'} |
| | | ]; |
| | | arrRemove(detlCols, 'field', 'zpallet'); |
| | | cols.push.apply(cols, detlCols); |
| | | return cols; |
| | | } |