| | |
| | | package com.vincent.rsf.server.manager.schedules; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.vincent.rsf.framework.common.Cools; |
| | | import com.vincent.rsf.framework.exception.CoolException; |
| | | import com.vincent.rsf.server.manager.controller.params.LocToTaskParams; |
| | | import com.vincent.rsf.server.manager.entity.Loc; |
| | | import com.vincent.rsf.server.manager.entity.WarehouseAreas; |
| | | import com.vincent.rsf.server.manager.enums.LocStsType; |
| | | import com.vincent.rsf.server.manager.service.*; |
| | | import com.vincent.rsf.server.manager.service.impl.WarehouseAreasServiceImpl; |
| | | import com.vincent.rsf.server.system.constant.GlobalConfigCode; |
| | | import com.vincent.rsf.server.system.entity.Config; |
| | | import com.vincent.rsf.server.system.service.ConfigService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * @author Munch D. Luffy |
| | |
| | | |
| | | @Autowired |
| | | private TaskService taskService; |
| | | |
| | | @Autowired |
| | | private ConfigService configService; |
| | | @Autowired |
| | | private WarehouseAreasServiceImpl warehouseAreasService; |
| | | @Autowired |
| | | private LocService locService; |
| | | @Autowired |
| | | private LocItemService locItemService; |
| | | |
| | | /** |
| | | * @author Munch D. Luffy |
| | |
| | | * @description: 缓存区域自动生成移库任务 |
| | | * @version 1.0 |
| | | */ |
| | | @Scheduled(cron = "0/3 * * * * ?") |
| | | @Scheduled(cron = "0/15 * * * * ?") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void startCacheInLocStock() throws Exception { |
| | | Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.AUTO_RUN_CHECK_ORDERS_YZ)); |
| | | if (!Boolean.parseBoolean(config.getVal())) { |
| | | return; |
| | | } |
| | | |
| | | String autoRunAreaStartYz = configService.getVal("AUTO_RUN_AREA_START_YZ", String.class); |
| | | if (Cools.isEmpty(autoRunAreaStartYz)) { |
| | | return; |
| | | } |
| | | |
| | | String autoRunAreaEndYz = configService.getVal("AUTO_RUN_AREA_END_YZ", String.class); |
| | | if (Cools.isEmpty(autoRunAreaEndYz)) { |
| | | return; |
| | | } |
| | | String curLoc = null; |
| | | String deepLoc = null; |
| | | try{ |
| | | String[] split = autoRunAreaStartYz.split(";"); |
| | | for (String c : split) { |
| | | WarehouseAreas byId = warehouseAreasService.getById(Integer.parseInt(c)); |
| | | if (!Cools.isEmpty(byId)) { |
| | | Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getWarehouseId, byId.getWarehouseId()).eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_F.type),false); |
| | | if (!Objects.isNull(loc)) { |
| | | curLoc = loc.getCode(); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e){ |
| | | log.error("配置参数AUTO_RUN_AREA_START_YZ解析失败,请检查!!!"); |
| | | } |
| | | try{ |
| | | String[] split = autoRunAreaEndYz.split(";"); |
| | | for (String c : split) { |
| | | WarehouseAreas byId = warehouseAreasService.getById(Integer.parseInt(c)); |
| | | if (!Cools.isEmpty(byId)) { |
| | | Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getWarehouseId, byId.getWarehouseId()).eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type),false); |
| | | if (!Objects.isNull(loc)) { |
| | | deepLoc = loc.getCode(); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e){ |
| | | log.error("配置参数AUTO_RUN_AREA_START_YZ解析失败,请检查!!!"); |
| | | } |
| | | |
| | | if (curLoc == null || deepLoc == null) { |
| | | return; |
| | | } |
| | | LocToTaskParams params = new LocToTaskParams(); |
| | | params.setOrgLoc(curLoc).setTarLoc(deepLoc); |
| | | //生成移库位任务 |
| | | locItemService.genMoveTask(params, 9999L); |
| | | } |
| | | |
| | | /** |
| | |
| | | @Scheduled(cron = "0/5 * * * * ? ") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void complateOutStock() throws Exception { |
| | | System.out.println("缓存区域自动生成空货架出库任务"); |
| | | } |
| | | } |