diff --git a/files/WCS系统开发手册.md b/files/WCS系统开发手册.md
index e1b0d88..fb019fd 100644
--- a/files/WCS系统开发手册.md
+++ b/files/WCS系统开发手册.md
@@ -19,4 +19,4 @@
电子标签联动输送线逻辑:输送线扫码时检查该捡选站台对应的电子标签货位是否有任务,若有则弹出;此处需要正确在电子标签货位表填写站台号
-电子标签状态:已经激活的直接定时任务点亮,未激活的要扫码触发
\ No newline at end of file
+电子标签状态:立即点亮的直接定时任务点亮,未激活的要扫码触发
\ No newline at end of file
diff --git a/wcs/src/main/java/org/wcs/business/etag/EtagDataHandler.java b/wcs/src/main/java/org/wcs/business/etag/EtagDataHandler.java
index 175785c..b528455 100644
--- a/wcs/src/main/java/org/wcs/business/etag/EtagDataHandler.java
+++ b/wcs/src/main/java/org/wcs/business/etag/EtagDataHandler.java
@@ -364,6 +364,7 @@ public class EtagDataHandler {
log.info("电子标签普通标签 {},未检索到任务", appEtagTagInfo.getTagName());
return;
}
+ etagRedis.removeEtagTagTask(appEtagTagInfo.getTagName()); // 解绑这个标签绑定的任务
// 更新确认数量和确认人
String user = etagRedis.getEtagAreaUser(appEtagTagInfo.getAreaId()); // 确认人
int confirmNum = AppStringUtils.forceToInt(etagReturnInfo.getData());
diff --git a/wcs/src/main/java/org/wcs/business/etag/EtagTaskExecute.java b/wcs/src/main/java/org/wcs/business/etag/EtagTaskExecute.java
index 302bcc7..9dddd56 100644
--- a/wcs/src/main/java/org/wcs/business/etag/EtagTaskExecute.java
+++ b/wcs/src/main/java/org/wcs/business/etag/EtagTaskExecute.java
@@ -1,31 +1,261 @@
package org.wcs.business.etag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import org.wcs.business.redis.EtagRedis;
+import org.wcs.constant.enums.database.EtagBusinessTypeEnum;
+import org.wcs.constant.enums.database.EtagTaskLightModelEnum;
+import org.wcs.constant.enums.database.EtagTaskStatusEnum;
+import org.wcs.constant.enums.etag.LedBlinkingEnum;
+import org.wcs.constant.enums.etag.LedColorEnum;
+import org.wcs.mapper.intf.AppEtagTagInfoService;
+import org.wcs.mapper.intf.AppEtagTaskService;
+import org.wcs.model.bo.etag.EtagLightParams;
+import org.wcs.model.po.app.AppEtagTagInfo;
+import org.wcs.model.po.app.AppEtagTagLocation;
+import org.wcs.model.po.app.AppEtagTask;
+import org.wcs.utils.AppStringUtils;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
/**
* 电子标签任务执行类
*/
+@Slf4j
@Component
+@RequiredArgsConstructor
public class EtagTaskExecute {
- /**
- * 点亮汇总标签
- */
- public void lightSummaryTag() {
- }
+ // 电子标签操作类
+ private final EtagAtopOperation etagAtopOperation;
+ // 电子标签任务服务
+ private final AppEtagTaskService etagTaskService;
+ // 电子标签小标签数据库服务
+ private final AppEtagTagInfoService etagTagInfoService;
+ // 电子标签Redis操作类
+ private final EtagRedis etagRedis;
/**
* 点亮小标签
*/
public void lightSmallTag() {
+ lightImmediatelyTask(); // 点亮立即点亮的任务
+ lightNeedFireTask(); // 点亮需要触发的任务
}
/**
- * 点亮通道灯
+ * 点亮立即点亮的任务
+ */
+ private void lightImmediatelyTask() {
+ // 点亮立即点亮的任务
+ AppEtagTask queryImmediatelyTask = new AppEtagTask();
+ queryImmediatelyTask.setTaskStatus(EtagTaskStatusEnum.NOT_ACTIVATED.getCode());
+ queryImmediatelyTask.setLightModel(EtagTaskLightModelEnum.IMMEDIATELY.getCode());
+ List immediatelyTaskList = etagTaskService.queryIgnoreNull(queryImmediatelyTask);
+ if(immediatelyTaskList == null) {
+ return;
+ }
+ if (immediatelyTaskList.isEmpty()) {
+ return;
+ }
+ lightEtagTasks(immediatelyTaskList);
+ }
+
+ /**
+ * 点亮需要触发的任务
+ */
+ private void lightNeedFireTask() {
+ // 查找区域绑定好的载具信息
+ Map areaVehicleAll = etagRedis.getEtagAreaVehicleAll();
+ for (Map.Entry entry : areaVehicleAll.entrySet()) {
+ String areaId = entry.getKey(); // 区域编号
+ String vehicleNo = entry.getValue(); // 载具编号
+ if(AppStringUtils.isEmpty(areaId) || AppStringUtils.isEmpty(vehicleNo)) {
+ continue;
+ }
+ List taskStatus = List.of(EtagTaskStatusEnum.NOT_ACTIVATED.getCode());
+ List appEtagTaskList = etagTaskService.queryByTagAreaIdAndVehicleAndStatus(areaId, vehicleNo, taskStatus);
+ if(appEtagTaskList == null || appEtagTaskList.isEmpty()) {
+ continue; // 查找任务失败或者没找到任务就继续下拨循环
+ }
+ lightEtagTasks(appEtagTaskList);
+ }
+ }
+
+ /**
+ * 点亮任务列表
+ * @param appEtagTaskList 电子标签任务列表
+ */
+ private void lightEtagTasks(List appEtagTaskList) {
+ for (AppEtagTask etagTask : appEtagTaskList) {
+ // 查找这个任务货位对应的标签信息
+ AppEtagTagLocation appEtagTagLocation = etagRedis.getEtagLocation(etagTask.getLocation());
+ if(appEtagTagLocation == null) {
+ log.info("点亮标签任务:{},时未找到货位:{} 的信息", etagTask.getTaskId(), etagTask.getLocation());
+ AppEtagTask updateEtagTask = new AppEtagTask();
+ updateEtagTask.setTaskId(etagTask.getTaskId());
+ updateEtagTask.setTaskStatus(EtagTaskStatusEnum.ERROR.getCode());
+ updateEtagTask.setCompletedTime(LocalDateTime.now());
+ updateEtagTask.setRemark("未找到货位:" + etagTask.getLocation() + " 的信息");
+ Integer result = etagTaskService.updateIgnoreNull(updateEtagTask).result();
+ log.info("更新电子标签任务:{},结果:{},更新项:{}", updateEtagTask.getTaskId(), result, updateEtagTask);
+ continue;
+ }
+ // 查找这个标签绑定的任务
+ AppEtagTask etagTagTask = etagRedis.getEtagTagTask(appEtagTagLocation.getTagName());
+ if(etagTagTask != null) {
+ // 绑定了任务,说明标签还在亮着,得等按下完成
+ continue;
+ }
+ // 查找这个标签名称对应的数据
+ AppEtagTagInfo appEtagTagInfo = etagRedis.getEtagTag(appEtagTagLocation.getTagName());
+ if(appEtagTagInfo == null) {
+ log.info("点亮标签任务:{},时未找到标签:{} 的信息", etagTask.getTaskId(), appEtagTagLocation.getTagName());
+ AppEtagTask updateEtagTask = new AppEtagTask();
+ updateEtagTask.setTaskId(etagTask.getTaskId());
+ updateEtagTask.setTaskStatus(EtagTaskStatusEnum.ERROR.getCode());
+ updateEtagTask.setCompletedTime(LocalDateTime.now());
+ updateEtagTask.setRemark("未找到标签:" + appEtagTagLocation.getTagName() + " 的信息");
+ Integer result = etagTaskService.updateIgnoreNull(updateEtagTask).result();
+ log.info("更新电子标签任务:{},结果:{},更新项:{}", updateEtagTask.getTaskId(), result, updateEtagTask);
+ continue;
+ }
+ // 点亮标签
+ EtagLightParams lightParams = EtagLightParams.builder()
+ .tagName(appEtagTagInfo.getTagName())
+ .tagId(appEtagTagInfo.getTagId().byteValue())
+ .tagValue(String.valueOf(etagTask.getLightNum()))
+ .tagString(etagTask.getGoodsName() + "[" + etagTask.getGoodsId() + "]")
+ .ledBlinking(LedBlinkingEnum.BLINKING_0_25)
+ .ledColor(LedColorEnum.ORANGE)
+ .build();
+ String lightTagResult = etagAtopOperation.lightTag(lightParams);
+ log.info("点亮电子标签: {},点亮参数:{},点亮结果:{}", appEtagTagLocation.getTagName(), lightParams, lightTagResult);
+ if(AppStringUtils.isEmpty(lightTagResult)) {
+ etagRedis.setEtagTagTask(appEtagTagLocation.getTagName(), etagTask); // 点亮成功,将任务绑定到标签
+ // 更新任务状态
+ AppEtagTask updateEtagTask = new AppEtagTask();
+ updateEtagTask.setTaskId(etagTask.getTaskId());
+ updateEtagTask.setTaskStatus(EtagTaskStatusEnum.LIGHTING.getCode());
+ updateEtagTask.setLightTime(LocalDateTime.now());
+ Integer result = etagTaskService.updateIgnoreNull(updateEtagTask).result();
+ log.info("更新电子标签任务:{},结果:{},更新项:{}", updateEtagTask.getTaskId(), result, updateEtagTask);
+ }
+ }
+ }
+
+ /**
+ * 点亮和熄灭通道灯
*/
public void lightTunnelLight() {
+ AppEtagTagInfo queryLightTag = new AppEtagTagInfo();
+ queryLightTag.setBusinessType(EtagBusinessTypeEnum.TUNNEL_LIGHT.getCode());
+ List etagTagInfoList = etagTagInfoService.queryIgnoreNull(queryLightTag); // 所有的通道灯数据
+ if(etagTagInfoList == null || etagTagInfoList.isEmpty()) {
+ return;
+ }
+ List lightParamsList = new ArrayList<>(); // 各个通道灯的点亮参数
+ // 遍历所有通道灯,获取各个通道灯的标签名称,检查其是否有绑定的任务
+ for (AppEtagTagInfo etagTagInfo : etagTagInfoList) {
+ AppEtagTagInfo queryTunnelEtag = new AppEtagTagInfo();
+ queryTunnelEtag.setTunnelNo(etagTagInfo.getTunnelNo());
+ List tunnelEtagTagInfoList = etagTagInfoService.queryIgnoreNull(queryTunnelEtag);
+ if(tunnelEtagTagInfoList == null) {
+ continue;
+ }
+ boolean existTask = false; // 是否存在任务
+ for (AppEtagTagInfo tunnelEtagTagInfo : tunnelEtagTagInfoList) {
+ existTask = etagRedis.existsEtagTagTask(tunnelEtagTagInfo.getTagName());
+ if(existTask) {
+ break; // 存在一个任务即视为存在,直接跳出
+ }
+ }
+ EtagLightParams lightParams; // 点亮参数
+ if(existTask) {
+ lightParams = EtagLightParams.builder()
+ .tagName(etagTagInfo.getTagName())
+ .tagId(etagTagInfo.getTagId().byteValue())
+ .ledBlinking(LedBlinkingEnum.LED_ON)
+ .ledColor(LedColorEnum.GREEN)
+ .build();
+ } else {
+ lightParams = EtagLightParams.builder()
+ .tagName(etagTagInfo.getTagName())
+ .tagId(etagTagInfo.getTagId().byteValue())
+ .ledBlinking(LedBlinkingEnum.LED_OFF)
+ .ledColor(LedColorEnum.GREEN)
+ .build();
+ }
+ lightParamsList.add(lightParams);
+ }
+ // 执行点亮或者熄灭动作
+ for (EtagLightParams lightParamsItem : lightParamsList) {
+ etagAtopOperation.lightTag(lightParamsItem);
+ }
}
+ /**
+ * 点亮汇总标签
+ */
+ public void lightSummaryTag() {
+ AppEtagTagInfo querySummaryTag = new AppEtagTagInfo();
+ querySummaryTag.setBusinessType(EtagBusinessTypeEnum.AREA.getCode());
+ List etagTagInfoList = etagTagInfoService.queryIgnoreNull(querySummaryTag); // 所有的区域标签数据
+ if(etagTagInfoList == null || etagTagInfoList.isEmpty()) {
+ return;
+ }
+ List lightParamsList = new ArrayList<>(); // 各个区域标签的点亮参数
+ for (AppEtagTagInfo etagTagInfo : etagTagInfoList) {
+ String etagAreaVehicle = etagRedis.getEtagAreaVehicle(etagTagInfo.getAreaId());
+ if(AppStringUtils.isEmpty(etagAreaVehicle)) {
+ // 没有绑定的载具了
+ lightParamsList.add(EtagLightParams.builder().tagName(etagTagInfo.getTagName())
+ .tagId(etagTagInfo.getTagId().byteValue()).tagValue("0").tagString("无任务")
+ .ledBlinking(LedBlinkingEnum.LED_OFF).ledColor(LedColorEnum.GREEN).build());
+ continue;
+ }
+ // 还有绑定的载具
+ List notCompletedTaskStatus = Arrays.asList(EtagTaskStatusEnum.NOT_ACTIVATED.getCode(), EtagTaskStatusEnum.LIGHTING.getCode());
+ // 检查这个载具有没有完成所有的任务
+ List allEtagTaskList = etagTaskService.queryByVehicleAndStatus(etagAreaVehicle, notCompletedTaskStatus);
+ if(allEtagTaskList == null) {
+ continue; // 查询数据库失败
+ }
+ if(allEtagTaskList.isEmpty()) {
+ lightParamsList.add(EtagLightParams.builder().tagName(etagTagInfo.getTagName())
+ .tagId(etagTagInfo.getTagId().byteValue()).tagValue("0").tagString("全部完成:" + etagAreaVehicle)
+ .ledBlinking(LedBlinkingEnum.LED_OFF).ledColor(LedColorEnum.GREEN).build());
+ continue;
+ }
+ // 检查这个区域还有没有这个载具的任务
+ List thisAreaEtagTaskList = etagTaskService.queryByTagAreaIdAndVehicleAndStatus(etagTagInfo.getAreaId(), etagAreaVehicle, notCompletedTaskStatus);
+ if(thisAreaEtagTaskList == null) {
+ continue; // 查询数据库失败
+ }
+ if(thisAreaEtagTaskList.isEmpty()) {
+ lightParamsList.add(EtagLightParams.builder().tagName(etagTagInfo.getTagName())
+ .tagId(etagTagInfo.getTagId().byteValue()).tagValue("0").tagString("任务完成:" + etagAreaVehicle)
+ .ledBlinking(LedBlinkingEnum.LED_ON).ledColor(LedColorEnum.BLUE).build());
+ continue;
+ }
+ // 正在捡选的情况
+ lightParamsList.add(EtagLightParams.builder().tagName(etagTagInfo.getTagName())
+ .tagId(etagTagInfo.getTagId().byteValue()).tagValue(String.valueOf(thisAreaEtagTaskList.size())).tagString("正在捡选:" + etagAreaVehicle)
+ .ledBlinking(LedBlinkingEnum.LED_ON).ledColor(LedColorEnum.ORANGE).build());
+ }
+ // 执行点亮或者熄灭动作
+ for (EtagLightParams lightParamsItem : lightParamsList) {
+ etagAtopOperation.lightTag(lightParamsItem);
+ }
+ }
+
+
+
}
diff --git a/wcs/src/main/java/org/wcs/business/redis/EtagRedis.java b/wcs/src/main/java/org/wcs/business/redis/EtagRedis.java
index 90bfcdb..a27aff1 100644
--- a/wcs/src/main/java/org/wcs/business/redis/EtagRedis.java
+++ b/wcs/src/main/java/org/wcs/business/redis/EtagRedis.java
@@ -97,7 +97,6 @@ public class EtagRedis {
}
-
/* ******************** 电子标签货位信息 *********************** */
/**
@@ -179,6 +178,22 @@ public class EtagRedis {
return stringRedisTemplate.hasKey(ETAG_TAG_TASK_KEY + ":" + tagName);
}
+ /**
+ * 获取所有电子标签绑定的任务信息
+ * @return 所有电子标签绑定的任务信息
+ */
+ public Map getEtagTagTaskAll() {
+ Map tagInfoMap = new HashMap<>();
+ Set keys = stringRedisTemplate.keys(ETAG_TAG_TASK_KEY + ":*");
+ for (String key : keys) {
+ String tagInfo = stringRedisTemplate.opsForValue().get(key);
+ String[] tagNameSplit = key.split(":");
+ tagInfoMap.put(tagNameSplit[tagNameSplit.length - 1], tagInfo);
+ }
+ return tagInfoMap;
+ }
+
+
/* ******************** 电子标签区域绑定的用户信息 *********************** */
/**
diff --git a/wcs/src/main/java/org/wcs/mapper/impl/AppEtagTaskDao.java b/wcs/src/main/java/org/wcs/mapper/impl/AppEtagTaskDao.java
index 3ef0c71..01cd561 100755
--- a/wcs/src/main/java/org/wcs/mapper/impl/AppEtagTaskDao.java
+++ b/wcs/src/main/java/org/wcs/mapper/impl/AppEtagTaskDao.java
@@ -188,4 +188,64 @@ public class AppEtagTaskDao extends ServiceImpl
return null;
}
}
+
+ /**
+ * 根据载具和状态查询任务
+ * @param vehicleNo 载具
+ * @param status 状态列表
+ * @return 列表
+ */
+ @Override
+ public List queryByVehicleAndStatus(String vehicleNo, List status) {
+ if (status == null || status.isEmpty()) {
+ return null;
+ }
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(AppEtagTask::getVehicleNo, vehicleNo)
+ .in(AppEtagTask::getTaskStatus, status)
+ .orderByAsc(AppEtagTask::getCreateTime);
+ try {
+ return super.baseMapper.selectList(queryWrapper);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ /**
+ * 忽略Null值查询条件查询
+ * @param appEtagTask 查询参数
+ * @return 任务列表
+ */
+ @Override
+ public List queryIgnoreNull(AppEtagTask appEtagTask) {
+ if(appEtagTask == null) {
+ return null;
+ }
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(appEtagTask.getTaskId() != null, AppEtagTask::getTaskId, appEtagTask.getTaskId());
+ queryWrapper.eq(appEtagTask.getTaskGroup() != null, AppEtagTask::getTaskGroup, appEtagTask.getTaskGroup());
+ queryWrapper.eq(appEtagTask.getTaskType() != null, AppEtagTask::getTaskType, appEtagTask.getTaskType());
+ queryWrapper.eq(appEtagTask.getVehicleNo() != null, AppEtagTask::getVehicleNo, appEtagTask.getVehicleNo());
+ queryWrapper.eq(appEtagTask.getOrderId() != null, AppEtagTask::getOrderId, appEtagTask.getOrderId());
+ queryWrapper.eq(appEtagTask.getLocation() != null, AppEtagTask::getLocation, appEtagTask.getLocation());
+ queryWrapper.eq(appEtagTask.getGoodsId() != null, AppEtagTask::getGoodsId, appEtagTask.getGoodsId());
+ queryWrapper.eq(appEtagTask.getGoodsName() != null, AppEtagTask::getGoodsName, appEtagTask.getGoodsName());
+ queryWrapper.eq(appEtagTask.getLightNum() != null, AppEtagTask::getLightNum, appEtagTask.getLightNum());
+ queryWrapper.eq(appEtagTask.getConfirmNum() != null, AppEtagTask::getConfirmNum, appEtagTask.getConfirmNum());
+ queryWrapper.eq(appEtagTask.getTaskStatus() != null, AppEtagTask::getTaskStatus, appEtagTask.getTaskStatus());
+ queryWrapper.eq(appEtagTask.getLightModel() != null, AppEtagTask::getLightModel, appEtagTask.getLightModel());
+ queryWrapper.eq(appEtagTask.getTaskSource() != null, AppEtagTask::getTaskSource, appEtagTask.getTaskSource());
+ queryWrapper.eq(appEtagTask.getCreatePerson() != null, AppEtagTask::getCreatePerson, appEtagTask.getCreatePerson());
+ queryWrapper.eq(appEtagTask.getCreateTime() != null, AppEtagTask::getCreateTime, appEtagTask.getCreateTime());
+ queryWrapper.eq(appEtagTask.getLightTime() != null, AppEtagTask::getLightTime, appEtagTask.getLightTime());
+ queryWrapper.eq(appEtagTask.getConfirmTime() != null, AppEtagTask::getConfirmTime, appEtagTask.getConfirmTime());
+ queryWrapper.eq(appEtagTask.getConfirmPerson() != null, AppEtagTask::getConfirmPerson, appEtagTask.getConfirmPerson());
+ queryWrapper.eq(appEtagTask.getCompletedTime() != null, AppEtagTask::getCompletedTime, appEtagTask.getCompletedTime());
+ queryWrapper.eq(appEtagTask.getRemark() != null, AppEtagTask::getRemark, appEtagTask.getRemark());
+ try {
+ return baseMapper.selectList(queryWrapper);
+ } catch (Exception e) {
+ return null;
+ }
+ }
}
diff --git a/wcs/src/main/java/org/wcs/mapper/intf/AppEtagTaskService.java b/wcs/src/main/java/org/wcs/mapper/intf/AppEtagTaskService.java
index 37f00e6..84f0ca4 100755
--- a/wcs/src/main/java/org/wcs/mapper/intf/AppEtagTaskService.java
+++ b/wcs/src/main/java/org/wcs/mapper/intf/AppEtagTaskService.java
@@ -18,4 +18,6 @@ public interface AppEtagTaskService extends IService {
DataBaseActionResult updateIgnoreNull(AppEtagTask appEtagTask); // 更新数据,忽略Null值
List queryByTaskId(String taskId); // 通过任务ID查询
List queryByTagAreaIdAndVehicleAndStatus(String areaId, String vehicleNo, List status); // 通过标签区域ID和载具号和状态查询
+ List queryByVehicleAndStatus(String vehicleNo, List status); // 通过标签]载具号和状态查询
+ List queryIgnoreNull(AppEtagTask appEtagTask); // 查询数据,忽略Null值的查询条件
}
diff --git a/wcs/src/main/java/org/wcs/model/po/app/AppEtagTask.java b/wcs/src/main/java/org/wcs/model/po/app/AppEtagTask.java
index 4c52b42..d12d93e 100755
--- a/wcs/src/main/java/org/wcs/model/po/app/AppEtagTask.java
+++ b/wcs/src/main/java/org/wcs/model/po/app/AppEtagTask.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
+import lombok.ToString;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@@ -12,6 +13,7 @@ import java.time.LocalDateTime;
* 电子标签任务类
*/
@Data
+@ToString
@TableName("t_app_etag_task")
public class AppEtagTask {
diff --git a/wcs/src/main/java/org/wcs/quartzJob/EtagJob.java b/wcs/src/main/java/org/wcs/quartzJob/EtagJob.java
index 445ce0a..962f87f 100644
--- a/wcs/src/main/java/org/wcs/quartzJob/EtagJob.java
+++ b/wcs/src/main/java/org/wcs/quartzJob/EtagJob.java
@@ -8,6 +8,7 @@ import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.wcs.business.etag.EtagCommon;
import org.wcs.business.etag.EtagDataHandler;
+import org.wcs.business.etag.EtagTaskExecute;
import org.wcs.business.redis.EtagRedis;
import org.wcs.constant.enums.common.OnOrOffEnum;
import org.wcs.constant.enums.common.TrueOrFalseEnum;
@@ -37,6 +38,8 @@ public class EtagJob implements Job {
private final AppEtagTagInfoService etagTagInfoService; // 电子标签小标信息数据表操作类
private final AppEtagTagLocationService etagTagLocationService; // 电子标签位置信息数据表操作类
+ private final EtagTaskExecute etagTaskExecute; // 电子标签任务执行类
+
// 是否正在加载基础数据
private static boolean isLoadingBaseData = false;
@@ -49,14 +52,9 @@ public class EtagJob implements Job {
if(EtagCommon.socketClient == null || !isLoadingBaseData) {
return;
}
-
- }
-
- /**
- * 点亮小标签
- */
- private void lightSmallTag() {
-
+ etagTaskExecute.lightSmallTag(); // 点亮小标签
+ etagTaskExecute.lightTunnelLight(); // 点亮通道灯
+ etagTaskExecute.lightSummaryTag(); // 点亮汇总标签
}
diff --git a/wcs/src/main/java/org/wcs/serve/service/impl/EtagTaskService.java b/wcs/src/main/java/org/wcs/serve/service/impl/EtagTaskService.java
index b6951fd..c5315fc 100644
--- a/wcs/src/main/java/org/wcs/serve/service/impl/EtagTaskService.java
+++ b/wcs/src/main/java/org/wcs/serve/service/impl/EtagTaskService.java
@@ -4,6 +4,7 @@ import cn.dev33.satoken.stp.StpUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import org.wcs.constant.ConstantData;
import org.wcs.constant.enums.database.EtagTaskLightModelEnum;
import org.wcs.constant.enums.database.EtagTaskStatusEnum;
import org.wcs.factory.AppServeResponseFactory;
@@ -84,9 +85,9 @@ public class EtagTaskService implements IEtagTaskService {
appEtagTask.setGoodsId(request.getGoodsId());
appEtagTask.setGoodsName(request.getGoodsName());
appEtagTask.setLightNum(request.getLightNum());
- appEtagTask.setTaskStatus(request.getLightModel().equals(EtagTaskLightModelEnum.IMMEDIATELY.getCode()) ? EtagTaskStatusEnum.ACTIVATED.getCode() : EtagTaskStatusEnum.NOT_ACTIVATED.getCode());
+ appEtagTask.setTaskStatus(EtagTaskStatusEnum.NOT_ACTIVATED.getCode());
appEtagTask.setLightModel(request.getLightModel());
- appEtagTask.setTaskSource("");
+ appEtagTask.setTaskSource(ConstantData.SYSTEM_NAME);
appEtagTask.setCreatePerson(operationUserId);
appEtagTask.setCreateTime(LocalDateTime.now());
appEtagTask.setRemark(request.getRemark());
diff --git a/wcs/src/main/resources/application.yml b/wcs/src/main/resources/application.yml
index d3ff496..8bf5f07 100644
--- a/wcs/src/main/resources/application.yml
+++ b/wcs/src/main/resources/application.yml
@@ -1,7 +1,7 @@
wcs:
etag:
- area-user-prefix: ^user$
- area-user-unbind: $user^
+ area-user-prefix: ^user$ # 电子标签扫描此字符串码后下一个视为用户码
+ area-user-unbind: $user^ # 电子标签扫描此字符串码后注销用户
spring:
application:
name: wcs
diff --git a/wcs/src/test/java/org/wcs/WcsApplicationTests.java b/wcs/src/test/java/org/wcs/WcsApplicationTests.java
index 53dcd92..5f1bea1 100644
--- a/wcs/src/test/java/org/wcs/WcsApplicationTests.java
+++ b/wcs/src/test/java/org/wcs/WcsApplicationTests.java
@@ -1,6 +1,7 @@
package org.wcs;
import HslCommunication.Core.Types.ActionOperateExTwo;
+import HslCommunication.Core.Types.List;
import HslCommunication.ModBus.ModbusTcpServer;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@@ -31,4 +32,15 @@ class WcsApplicationTests {
}
}
+ @Test
+ void testList() {
+ List list = new List<>();
+ list.Add(244546456);
+ list.Add(234234234);
+ List< Integer> newList = new List<>();
+ for (Integer i : list) {
+ newList.Add(i);
+ }
+ }
+
}