Browse Source

rev: 压机送料上下分配规则

master
李永德 1 year ago
parent
commit
7882eb9907
  1. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java
  2. 30
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java
  3. 35
      lms/nladmin-system/nlsso-server/src/test/java/org/nl/ext/TestDemo.java

2
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java

@ -134,7 +134,7 @@ public class WmsToMesServiceImpl implements WmsToMesService {
mesProductDataDto.setCHECKERIN_TIM(DateUtil.now());
mesProductDataDto.setPRODATE(workorder.getProduce_date());
mesProductDataDto.setCREATE_TM(DateUtil.now());
mesProductDataDto.setOP_FLAG("0");
mesProductDataDto.setOP_FLAG(GeneralDefinition.NO);
log.info("返给MES的数据:{}", mesProductDataDto);
// 插入mes数据库
try {

30
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java

@ -39,6 +39,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
@ -51,6 +52,8 @@ import java.util.stream.Collectors;
@TaskType("YZMLTask")
public class YZSLTask extends AbstractTask {
private static String TASK_CONFIG_CODE = "YZMLTask";
private static AtomicInteger countUp = new AtomicInteger(0); // 上层数量
private static AtomicInteger countLower = new AtomicInteger(0); // 下层数量
@Autowired
private ISchBasePointService pointService;
@Autowired
@ -96,6 +99,19 @@ public class YZSLTask extends AbstractTask {
NoticeTypeEnum.WARN.getCode());
continue;
}
int up = countUp.get();
int lower = countLower.get();
if (lower == 0 || lower != 5) {
countLower.incrementAndGet();
} else {
countUp.incrementAndGet();
}
if (up == 4) {
countLower = new AtomicInteger(0);
}
if (lower == 4 && up == 4) {
countUp = new AtomicInteger(0);
}
// 设置终点并修改创建成功状态
task.setPoint_code2(point.getPoint_code());
task.setTask_status(TaskStatus.CREATED.getCode());
@ -147,12 +163,14 @@ public class YZSLTask extends AbstractTask {
regionCode = nextRegionStr.get(0);
}
}
// 双层缓存货架的一上一下的区分
// 双层缓存货架的一上一下的区分 -> todo: 上五下五区分
// 计算缓存上和缓存下的空位数量决定是使用desc还是asc
int countUp = yzMapper.countConveyorLine(nextRegionStr.get(0), GeneralDefinition.UPPER_CONVEYOR_LINE,
PointStatusEnum.EMPTY_POINT.getCode());
int countLower = yzMapper.countConveyorLine(nextRegionStr.get(0), GeneralDefinition.LOWER_CONVEYOR_LINE,
PointStatusEnum.EMPTY_POINT.getCode());
int up = countUp.get();
int lower = countLower.get();
boolean isASC = false;
if (lower == 0 || lower != 5) {
isASC = true;
}
LambdaQueryWrapper<SchBasePoint> lam = new QueryWrapper<SchBasePoint>().lambda();
lam.eq(SchBasePoint::getRegion_code, regionCode)
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
@ -161,7 +179,7 @@ public class YZSLTask extends AbstractTask {
.or()
.eq(SchBasePoint::getIng_task_code, ""))
.eq(SchBasePoint::getIs_used, true)
.orderBy(true, countUp <= countLower, SchBasePoint::getPoint_code);
.orderBy(true, isASC, SchBasePoint::getPoint_code);
List<SchBasePoint> schBasePoints = pointService.list(lam);
return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
}

35
lms/nladmin-system/nlsso-server/src/test/java/org/nl/ext/TestDemo.java

@ -7,6 +7,8 @@ import org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @Author: lyd
* @Description:
@ -19,8 +21,39 @@ public class TestDemo {
private MesRequestMapper mesRequestMapper;
@Autowired
private WmsToMesService wmsToMesService;
private static AtomicInteger countUp = new AtomicInteger(0); // 上层数量
private static AtomicInteger countLower = new AtomicInteger(0); // 下层数量
@Test
public void test01() {
wmsToMesService.reportProductData("1701105828406366210");
for (int i = 0; i < 13; i++) {
toAdd();
int up = countUp.get();
int lower = countLower.get();
if (lower == 0 || lower != 5) {
countLower.incrementAndGet();
} else {
countUp.incrementAndGet();
}
if (up == 4) {
countLower = new AtomicInteger(0);
}
if (lower == 4 && up == 4) {
countUp = new AtomicInteger(0);
}
}
}
public void toAdd() {
int up = countUp.get();
int lower = countLower.get();
boolean isASC = false;
if (lower == 0 || lower != 5) {
isASC = true;
}
if (isASC) {
System.out.println("下面第" + lower + "次");
} else {
System.out.println("上面第" + up + "次");
}
}
}

Loading…
Cancel
Save