| New file |
| | |
| | | package com.zy.asrs.task; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.entity.LocMast; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import com.zy.asrs.service.LocDetlService; |
| | | import com.zy.asrs.service.LocMastService; |
| | | import com.zy.asrs.service.WorkService; |
| | | import com.zy.asrs.service.WrkMastService; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.properties.SlaveProperties; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | 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; |
| | | |
| | | @Component |
| | | @Slf4j |
| | | public class CheckDeepScheduler { |
| | | |
| | | @Value("${wcs-slave.doubleDeep}") |
| | | private boolean confirmDeep; |
| | | @Value("${wcs-slave.doubleLocs}") |
| | | private String deepLocs; |
| | | @Value("${wcs-slave.shallowLocs}") |
| | | private String shallowLocs; |
| | | @Autowired |
| | | private LocDetlService locDetlService; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private WorkService workService; |
| | | @Autowired |
| | | private WrkMastService wrkMastService; |
| | | @Autowired |
| | | private SlaveProperties slaveProperties; |
| | | |
| | | /** |
| | | * 遍历库存中,浅库位状态F/D,深库位状态O的数据,生成库位移转工作档将浅库位移转到对应深库位中去 |
| | | */ |
| | | @Scheduled(cron = "0/30 * * * * ?") |
| | | private void locMoveToDeep(){ |
| | | if (!confirmDeep) return; |
| | | List<LocMast> locMasts = locMastService.queryShallowLocFMast(); |
| | | |
| | | if (null == locMasts) return; |
| | | |
| | | for (LocMast sourceLoc : locMasts){ |
| | | String deep = Utils.getDeepLoc(slaveProperties, sourceLoc.getLocNo()); |
| | | LocMast destLoc = locMastService.selectById(deep); |
| | | |
| | | if(!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) { |
| | | //查找源库位是否有转移任务,如果有,不生成库位移转 |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>() |
| | | .eq("source_loc_no", sourceLoc.getLocNo())); |
| | | if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") && |
| | | (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) { |
| | | workService.locMove(sourceLoc.getLocNo(), deep, 1L); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | *遍历库存中,深浅库位状态都为F,物料不相同,或者浅库位入库日期比深库位早的库位,做库位移转移到新的深库位中去 |
| | | * 0点到5点之间执行,每次只执行一笔 |
| | | */ |
| | | // @Scheduled(cron = "0/90 * * * * ?") |
| | | private void LocMoveToNewLoc() throws ParseException { |
| | | // if (!confirmDeep) return; |
| | | // |
| | | // for (int crnNo = 1; crnNo < 4; crnNo++){ |
| | | // List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | // .eq("crn_no",crnNo) |
| | | // .last(" and wrk_sts in (2,3,4,11,12)") |
| | | // ); |
| | | // if (wrkMasts.size() > 0) continue; |
| | | // List<LocMast> locMasts = locMastService.queryNeedMoveShallLoc(crnNo); |
| | | // for (LocMast locMast : locMasts) { |
| | | // LocMast targetLoc = locMastService.queryEmptyDeepLoc(crnNo); |
| | | // if(!Cools.isEmpty(targetLoc)) { |
| | | // workService.locMove(locMast.getLocNo(), targetLoc.getLocNo(), 1L); |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 将深库位转为对应浅库位 |
| | | * @param deep |
| | | * @return |
| | | */ |
| | | private String convertShallow(String deep){ |
| | | String shallLoc = ""; |
| | | Integer mastInt = Integer.parseInt(deep.substring(0, 2)); |
| | | if (mastInt % 2 == 0){ |
| | | mastInt -= 1; |
| | | }else if (mastInt % 2 == 1){ |
| | | mastInt += 1; |
| | | } |
| | | if (mastInt <10){ |
| | | shallLoc = "0" + mastInt+ deep.substring(2,7); |
| | | }else { |
| | | shallLoc = mastInt+ deep.substring(2,7); |
| | | } |
| | | return shallLoc; |
| | | } |
| | | |
| | | } |