|  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSON; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
|---|
|  |  |  | import com.core.common.Arith; | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.core.exception.CoolException; | 
|---|
|  |  |  | import com.zy.asrs.entity.*; | 
|---|
|  |  |  | import com.zy.asrs.entity.result.KeyValueVo; | 
|---|
|  |  |  | import com.zy.asrs.service.*; | 
|---|
|  |  |  | import com.zy.asrs.utils.Utils; | 
|---|
|  |  |  | import com.zy.asrs.utils.VersionUtils; | 
|---|
|  |  |  | import com.zy.common.model.LocTypeDto; | 
|---|
|  |  |  | import com.zy.common.model.Shelves; | 
|---|
|  |  |  | import com.zy.common.model.StartupDto; | 
|---|
|  |  |  | import com.zy.common.properties.SlaveProperties; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.time.LocalDate; | 
|---|
|  |  |  | import java.time.format.DateTimeFormatter; | 
|---|
|  |  |  | import java.time.temporal.ChronoUnit; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | log.error("站点={} 未查询到对应的规则", sourceStaNo); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 4: | 
|---|
|  |  |  | //TODO zhangc 临时 | 
|---|
|  |  |  | List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() | 
|---|
|  |  |  | .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()) | 
|---|
|  |  |  | .eq("crn_no", 7) | 
|---|
|  |  |  | .eq("loc_type1", locTypeDto.getLocType1()) | 
|---|
|  |  |  | .in("row1", 8).in("bay1", 1, 8).orderBy("row1")); | 
|---|
|  |  |  | StartupDto startupDto = new StartupDto(); | 
|---|
|  |  |  | if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) { | 
|---|
|  |  |  | // 获取目标站 | 
|---|
|  |  |  | Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() | 
|---|
|  |  |  | .eq("type_no", staDescId) | 
|---|
|  |  |  | .eq("stn_no", sourceStaNo) | 
|---|
|  |  |  | .eq("crn_no", 7); | 
|---|
|  |  |  | StaDesc staDesc = staDescService.selectOne(wrapper); | 
|---|
|  |  |  | if (Cools.isEmpty(staDesc)) { | 
|---|
|  |  |  | log.error("入库路径不存在:type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, 7); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn()); | 
|---|
|  |  |  | if (!staNo.getAutoing().equals("Y")) { | 
|---|
|  |  |  | log.error("目标站" + staDesc.getCrnStn() + "不可用"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | startupDto.setStaNo(staNo.getDevNo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 生成工作号 | 
|---|
|  |  |  | int workNo = getWorkNo(0); | 
|---|
|  |  |  | // 返回dto | 
|---|
|  |  |  | startupDto.setWorkNo(workNo); | 
|---|
|  |  |  | startupDto.setCrnNo(7); | 
|---|
|  |  |  | startupDto.setSourceStaNo(sourceStaNo); | 
|---|
|  |  |  | startupDto.setLocNo(locMasts.get(0).getLocNo()); | 
|---|
|  |  |  | return startupDto; | 
|---|
|  |  |  | //return getLocNoRun4(whsType, staDescId, sourceStaNo, matnr, batch, grade, 4, locTypeDto, 0, mixture); | 
|---|
|  |  |  | //                    return getLocNoRun4(whsType, staDescId, sourceStaNo, matnr, batch, grade, 4, locTypeDto, 0, mixture); | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | return getLocNoRun5(whsType, staDescId, sourceStaNo, matnr, batch, grade, 0, locTypeDto, 0); | 
|---|
|  |  |  | case 6: | 
|---|
|  |  |  | 
|---|
|  |  |  | .ge("bay1", 3).le("bay1", 6) | 
|---|
|  |  |  | .eq("crn_no", 7) | 
|---|
|  |  |  | .eq("loc_type1", locTypeDto.getLocType1()) | 
|---|
|  |  |  | .eq("lev1", locMastWrk.getLev1()) | 
|---|
|  |  |  | .orderBy("bay1", true)); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | locMasts = locMastService.selectList(new EntityWrapper<LocMast>() | 
|---|
|  |  |  | .eq("bay1", locMastWrk.getBay1()) | 
|---|
|  |  |  | .eq("crn_no", 7) | 
|---|
|  |  |  | .eq("loc_type1", locTypeDto.getLocType1()) | 
|---|
|  |  |  | .eq("lev1", locMastWrk.getLev1()) | 
|---|
|  |  |  | .orderBy("bay1", false)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Cools.isEmpty(locMasts)) { | 
|---|
|  |  |  | 
|---|
|  |  |  | for (LocMast locMastGro1 : locMasts1) { | 
|---|
|  |  |  | if (locMastGro1.getLocSts().equals("F")) { | 
|---|
|  |  |  | LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_No", locMastGro1.getLocNo())); | 
|---|
|  |  |  | if (!locDetl.getMatnr().equals(matnr) || !locDetl.getBatch().equals(batch)) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | if (!Cools.isEmpty(locDetl.getSku())) { | 
|---|
|  |  |  | if (!locDetl.getMatnr().equals(matnr) || !locDetl.getSku().equals(batch)) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (!locDetl.getMatnr().equals(matnr)) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (locMastGro1.getLocSts().equals("P") || locMastGro1.getLocSts().equals("Q") || locMastGro1.getLocSts().equals("R")) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (locMastGro1.getLocSts().equals("O")) { | 
|---|
|  |  |  | locMast = locMastGro1; | 
|---|