From e97bfb5567d95dea572f84a84db9c4151b884656 Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期五, 02 八月 2024 11:36:57 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java | 4 src/main/java/com/zy/asrs/controller/OrderController.java | 22 ++++ src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 6 + src/main/java/com/zy/asrs/task/AutoMoveScheduler.java | 63 ++++++++++++ src/main/java/com/zy/asrs/controller/AgvOpenController.java | 19 +++ src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java | 4 src/main/java/com/zy/asrs/controller/OrderDetlController.java | 31 ++++++ src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java | 12 ++ src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java | 2 src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java | 2 src/main/java/com/zy/asrs/controller/AgvMobileController.java | 2 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 37 +++++- src/main/java/com/zy/asrs/controller/OutController.java | 1 src/main/java/com/zy/asrs/service/AgvBasDevpService.java | 1 src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java | 69 +++++++++++++ 15 files changed, 260 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java index 771ae87..e9fa509 100644 --- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java +++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java @@ -117,7 +117,7 @@ } /* - 鍚姩鍏ュ簱锛岀粍鎵� + 鐢熶骇宸ヤ綔妗� + 鍚姩鍏ュ簱锛岀粍鎵� + 鐢熸垚宸ヤ綔妗� */ @PostMapping("/start/pakin/auth") @Synchronized diff --git a/src/main/java/com/zy/asrs/controller/AgvOpenController.java b/src/main/java/com/zy/asrs/controller/AgvOpenController.java index 6b87a01..2f37df0 100644 --- a/src/main/java/com/zy/asrs/controller/AgvOpenController.java +++ b/src/main/java/com/zy/asrs/controller/AgvOpenController.java @@ -203,11 +203,22 @@ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - //鍏ュ簱浠诲姟 || 鎷f枡鍏ュ簱浠诲姟 ||鐩樼偣鍐嶅叆搴� ||绌烘澘鍏ュ簱 - if(agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 || agvWrkMast.getIoType() == 10){ - //淇敼婧愮珯鐐圭姸鎬佷负O.绌猴紝浠ュ強瑙g粦鎵樼洏鏉$爜 - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null); + switch(agvWrkMast.getIoType()) { + //鍏ュ簱浠诲姟 + case 1: + // 绌烘澘鍏ュ簱 + case 10: + // 鎷f枡鍏ュ簱浠诲姟 + case 53: + // 鐩樼偣鍐嶅叆搴� + case 57: + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null); + break; } + //if(agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 || agvWrkMast.getIoType() == 10){ + // //淇敼婧愮珯鐐圭姸鎬佷负O.绌猴紝浠ュ強瑙g粦鎵樼洏鏉$爜 + // agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null); + //} //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负203.RCS鏀捐揣涓� agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),204); diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java index 771adbb..10de0f4 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -166,6 +166,28 @@ // return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper)); } + @RequestMapping(value = "/order/wait/detls/pakin/page/auth") + @ManagerAuth + public R waitOrderDetls(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "100")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); +// return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class))); + List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1)); + List<Long> docIds = new ArrayList<>(); + for (DocType pakin : pakins) { + if (pakin.getDocId() == 36) { + docIds.add(pakin.getDocId()); + } + } + wrapper.in("source",docIds); + return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper)); + } + // 鎵�鏈夊叆搴撹鍗曟槑缁� @RequestMapping(value = "/order/bcp/detls/pakin/page/auth") @ManagerAuth diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java index 1906679..c0c1deb 100644 --- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java +++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java @@ -194,6 +194,37 @@ return R.ok(page); } + @RequestMapping(value = "/orderDetl/pakout/list/authV6") + @ManagerAuth + public R pakoutList6(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convertLike(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { + wrapper.orderBy("create_time", false); + } + List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); + List<Long> docIds = new ArrayList<>(); + for (DocType pakin : pakins) { + if (pakin.getDocId() == 37) { + docIds.add(pakin.getDocId()); + } + } + + wrapper.in("source",docIds); + Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper); + for (OrderDetl record : page.getRecords()) { + Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode()); + record.setStock(sumAnfme == null ? 0 : sumAnfme); + } + + return R.ok(page); + } + 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()); diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 425cdb0..17c08a7 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -184,6 +184,7 @@ if(!staNoList.contains(locDto.getAgvStaNo())){ return R.error(locDto.getAgvStaNo()+"璇ョ珯鐐瑰凡鏈夊嚭搴撲换鍔★紝鏃犳硶閫夋嫨璇ョ珯鐐瑰嚭搴�"); } + } //濡傛灉鎵�鏈夊簱閮芥病鏈夊簱瀛橈紝鍒欒繑鍥� for (LocDto locDto : locDtos) { diff --git a/src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java b/src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java index 2392904..4bcb2d2 100644 --- a/src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java +++ b/src/main/java/com/zy/asrs/entity/param/AgvMobileStartPakin.java @@ -1,5 +1,7 @@ package com.zy.asrs.entity.param; +import com.zy.asrs.entity.AgvWrkDetl; +import com.zy.asrs.entity.WrkDetl; import lombok.Data; import java.util.List; @@ -20,6 +22,8 @@ private List<CombParam> combParams; + private List<AgvWrkDetl> wrkDetls; + // private List<CombParam> combParam; diff --git a/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java b/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java index 6fcda28..885fb64 100644 --- a/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java +++ b/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java @@ -38,6 +38,18 @@ List<String> selectCacheShelvesStationCodeByLocType(@Param("locType") Short locType, @Param("floor") int floor); @Select("SELECT\n" + + "\tdev_no \n" + + "FROM\n" + + "\tagv_bas_devp\n" + + "\tLEFT JOIN agv_wrk_mast ON agv_bas_devp.dev_no = agv_wrk_mast.source_loc_no \n" + + "WHERE\n" + + "\tagv_wrk_mast.loc_no IS NULL \n" + + "\tAND agv_bas_devp.loc_type1 = #{locType} \n" + + "\tAND agv_bas_devp.floor = #{floor} \n" + + "\tAND agv_bas_devp.out_enable = 'Y'") + List<String> selectCacheShelvesStationCodeByLocType2(@Param("locType") Short locType, @Param("floor") int floor); + + @Select("SELECT\n" + "\tbas.dev_no,\n" + "\tCOUNT ( mast.loc_no ) AS num \n" + "FROM\n" + diff --git a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java index 52d314a..b0f3a46 100644 --- a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java +++ b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java @@ -28,7 +28,7 @@ @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts = 1") Double selectSumAnfmeByMatnrProcess(@Param("matnr") String matnr,@Param("threeCode") String threeCode); - @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts != 1 AND b.lev1 != 2") + @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts != 1 AND b.floor != 1") Double selectSumAnfmeByMatnrProcessed(@Param("matnr") String matnr,@Param("threeCode") String threeCode); @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where (b.loc_sts = 'F' or b.loc_sts = 'R') and b.floor = #{floor} and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts != 1") diff --git a/src/main/java/com/zy/asrs/service/AgvBasDevpService.java b/src/main/java/com/zy/asrs/service/AgvBasDevpService.java index 399593a..dab9548 100644 --- a/src/main/java/com/zy/asrs/service/AgvBasDevpService.java +++ b/src/main/java/com/zy/asrs/service/AgvBasDevpService.java @@ -26,6 +26,7 @@ List<String> selectCacheShelvesStationCodeByFloor(int floor); List<String> selectCacheShelvesStationCodeByLocType(short locType, int floor); + List<String> selectCacheShelvesStationCodeByLocType2(short locType, int floor); public List<Map<String,Object>> selectDevNoAndNumBystationCode(String stationCode); diff --git a/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java index d9c18b8..2242247 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java @@ -303,6 +303,10 @@ public List<String> selectCacheShelvesStationCodeByLocType(short locType, int floor) { return this.baseMapper.selectCacheShelvesStationCodeByLocType(locType,floor); } + @Override + public List<String> selectCacheShelvesStationCodeByLocType2(short locType, int floor) { + return this.baseMapper.selectCacheShelvesStationCodeByLocType2(locType,floor); + } public List<Map<String,Object>> selectDevNoAndNumBystationCode(String stationCode){ return this.baseMapper.selectDevNoAndNumBystationCode(stationCode); diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java index 51e91ce..6c1417e 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java @@ -701,6 +701,12 @@ List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code",param.getBarcode())); agvWrkDetls.forEach(agvWrkDetl -> { + for (AgvWrkDetl wrkDetl : param.getWrkDetls()) { + if (wrkDetl.getMatnr().equals(agvWrkDetl.getMatnr()) && wrkDetl.getThreeCode().equals(agvWrkDetl.getThreeCode())) { + agvWrkDetl.setAnfme(wrkDetl.getAnfme()); + break; + } + } agvWrkDetl.setProcessSts(2); agvWrkDetl.setOrderNo(agvWrkDetl.getOrderNo().substring(2)); agvWrkDetl.setModiUser(userId); diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java index e66cebf..97316b1 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -17,8 +17,11 @@ import com.zy.common.model.TaskDto; import com.zy.common.service.AgvCommonService; import com.zy.common.web.BaseController; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; import lombok.Synchronized; import lombok.extern.slf4j.Slf4j; +import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,6 +72,8 @@ private AgvWrkDetlLogService agvWrkDetlLogService; @Autowired private WrkMastExecuteService wrkMastExecuteService; + @Autowired + private ConfigService configService; /* @@ -476,13 +481,28 @@ } } }); - if (isCurrLev.get()) { - agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,true); + + + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "elevatorTasks")); + if (Cools.isEmpty(config)) { + if (isCurrLev.get()) { + agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,true); + } else { + agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false); + } } else { - agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false); + List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1")); + if (Integer.parseInt(config.getValue()) <= agvWrkMasts.size()) { + agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,true); + } else { + if (isCurrLev.get()) { + agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,true); + } else { + agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false); + } + //agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false); + } } - - String devNo = agvBasDevp.getDevNo(); String locNo = agvLocMast.getLocNo(); @@ -514,7 +534,6 @@ updateAgvLocMast(agvLocMast,"S"); return agvLocMast.getLocNo(); } - /* 绌烘澘鍑哄簱 */ @@ -693,7 +712,9 @@ if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } - + if (wrkMast.getIoType() == 113 && (wrkMast.getWrkSts() != 212L || wrkMast.getWrkSts() != 213L || wrkMast.getWrkSts() != 214L)) { + throw new CoolException(workNo+"涓嶆敮鎸佹墜鍔ㄧ淮鎶�"); + } if (wrkMast.getIoType()==121){ if (wrkMast.getWrkSts()<12L){ agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId); @@ -1206,4 +1227,4 @@ } -} +} \ No newline at end of file diff --git a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java index f4ce7b2..539a5b5 100644 --- a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java +++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java @@ -142,7 +142,7 @@ try{ agvWrkMastHandler.startPutWayWrk(agvWrkMast); } catch (Exception e){ - log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负201,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); } }); } diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java index 0275339..db4034f 100644 --- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java +++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java @@ -1,7 +1,11 @@ package com.zy.asrs.task; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.Cools; +import com.core.exception.CoolException; import com.zy.asrs.entity.AgvBasDevp; import com.zy.asrs.entity.AgvLocMast; import com.zy.asrs.entity.AgvWrkMast; @@ -10,11 +14,15 @@ import com.zy.asrs.service.AgvWrkMastService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.AutoMoveHandler; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -31,6 +39,8 @@ private AgvWrkMastService agvWrkMastService; @Autowired private AgvBasDevpService agvBasDevpService; + @Autowired + private ConfigService configService; // 璋冩嫧鍑哄簱 // @Scheduled(cron = "0/2 * * * * ? ") @@ -305,4 +315,57 @@ } } } + + /** + * 鑷姩绉诲簱 + * + */ + @Scheduled(cron = "0/2 * * * * ? ") + private void autoEmptyBack7() throws ParseException { + Date now = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String currentDay = sdf.format(now); + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "autoTime")); + if (Cools.isEmpty(config)) { + + } else { + if (config.getStatus().intValue() == 0) { + return; + } + JSONObject jsonObject = JSON.parseObject(config.getValue().toString()); + Integer maxTansk = jsonObject.getInteger("maxTansk"); + //Integer startTime = jsonObject.getInteger("startTime"); + String startTime = jsonObject.getString("startTime"); + long time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(currentDay + " " + startTime).getTime(); + long time = now.getTime(); + long time3 = time - time1; + + + + if (time3 > 0 && time3 < (1000* 60 * 10)) { + + List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1")); + if (maxTansk <= agvWrkMasts.size()){ + return; + } + + List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( + new EntityWrapper<AgvLocMast>() + .eq("floor", 1) + .eq("lev1", 1) + .eq("loc_sts","F") + .eq("loc_type1",3)); + if (agvLocMasts.isEmpty()) { + return; + } + for (AgvLocMast agvLocMast : agvLocMasts) { + try{ + autoMoveHandler.autoTransfers(agvLocMast,maxTansk); + } catch (Exception e){ + log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); + } + } + } + } + } } diff --git a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java index 0207985..6a10807 100644 --- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java @@ -537,4 +537,73 @@ return SUCCESS; } + + public ReturnT<String> autoTransfers(AgvLocMast agvLocMast,Integer maxTansk) { + Date now = new Date(); + List<AgvLocDetl> locDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo())); + locDetls.forEach(agvLocDetl -> { + if (agvLocDetl.getProcessSts().equals(1)) { + throw new CoolException("褰撳墠搴撲綅鏈夊簱瀛樻湭鍔犲伐"); + } + }); + //鏌ヨ宸ヤ綔妗� + AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode()); + if(!Cools.isEmpty(agvWrkMast)){ + throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�"); + } + //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 + AgvLocMast LocMast = agvCommonService.getLocNo(3,1,false,false); + if (LocMast.getLev1() != 2) { + throw new CoolException("鐩爣妤煎眰涓嶆槸鍚稿浜屾ゼ"); + } + //鐢熸垚宸ヤ綔妗� + AgvWrkMast mast = new AgvWrkMast(); + //宸ヤ綔鐘舵�� + mast.setWrkSts(201L); + //鍏ュ嚭搴撶被鍨� + mast.setIoType(12); + mast.setIoTime(now); + //浼樺厛绾� + mast.setIoPri(300.0); + //婧愮珯鐐� + mast.setSourceLocNo(agvLocMast.getLocNo()); + //鐩爣绔欑偣 + mast.setLocNo(LocMast.getLocNo()); + //璐ф灦缂栫爜 + mast.setBarcode(agvLocMast.getBarcode()); + //璐ф灦绫诲瀷 + mast.setWhsType(30); + + mast.setAppeUser(9527L); + mast.setAppeTime(now); + mast.setModiUser(9527L); + mast.setModiTime(now); + mast.setLogErrMemo("doAutoMove"); + if (!agvWrkMastService.insertByIncrease(mast)) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + + AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no",agvLocMast.getLocNo())); + //鐢熸垚宸ヤ綔妗f槑缁� + List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo())); + agvLocDetls.forEach(agvLocDetl -> { + AgvWrkDetl wrkDetl = new AgvWrkDetl(); + wrkDetl.setWrkNo(mast1.getWrkNo()); + wrkDetl.sync(agvLocDetl); + wrkDetl.setSuppCode(agvLocDetl.getSuppCode()); + wrkDetl.setIoTime(now); + wrkDetl.setAppeUser(9527L); + wrkDetl.setAppeTime(now); + wrkDetl.setModiUser(9527L); + wrkDetl.setModiTime(now); + if (!agvWrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + }); + //鏇存柊鐩爣搴撲綅鐘舵�� + updateAgvLocMast(agvLocMast,"R"); + updateAgvLocMast(LocMast,"S"); + + return SUCCESS; + } } -- Gitblit v1.9.1