1/21 灯组逻辑优化1.0

dev_fifo_z
wangwei 6 months ago
parent 907e7e240c
commit cdf52d8c6d

@ -89,28 +89,27 @@ public class IoCollectLedGroupController extends BaseController {
*/
Integer ledNum = ledConfirmRequest.getLednum();
String mac = ledConfirmRequest.getMac();
// IoCollectLedGroup collectLedGroup = ioCollectLedGroupService.getOne(new LambdaQueryWrapper<IoCollectLedGroup>().eq(IoCollectLedGroup::getMac, mac), false);
// Long bizId = 0L;
// if (ledNum == 1) {
// bizId = collectLedGroup.getRed();
// collectLedGroup.setRed(0l);
// } else if (ledNum == 2) {
// bizId = collectLedGroup.getOrange();
// collectLedGroup.setOrange(0l);
// } else if (ledNum == 3) {
// bizId = collectLedGroup.getBlue();
// collectLedGroup.setBlue(0l);
// } else if (ledNum == 4) {
// bizId = collectLedGroup.getGreen();
// collectLedGroup.setGreen(0l);
// }
// if (IntUtil.value(bizId) == 0) {
// return ResultVOUtils.error("无订单");
// }
// ioCollectLedGroupService.updateById(collectLedGroup);
;
IoCollectLedGroup collectLedGroup = ioCollectLedGroupService.getOne(new LambdaQueryWrapper<IoCollectLedGroup>().eq(IoCollectLedGroup::getMac, mac), false);
Long bizId = 0L;
if (ledNum == 1) {
bizId = collectLedGroup.getRed();
collectLedGroup.setRed(0l);
} else if (ledNum == 2) {
bizId = collectLedGroup.getOrange();
collectLedGroup.setOrange(0l);
} else if (ledNum == 3) {
bizId = collectLedGroup.getBlue();
collectLedGroup.setBlue(0l);
} else if (ledNum == 4) {
bizId = collectLedGroup.getGreen();
collectLedGroup.setGreen(0l);
}
if (IntUtil.value(bizId) == 0) {
return ResultVOUtils.error("无订单");
}
ioCollectLedGroupService.updateById(collectLedGroup);
SysOrderLed orderLed = sysOrderLedService.getOne(new LambdaQueryWrapper<SysOrderLed>().eq(SysOrderLed::getLedNum, ledNum));
sysOrderLedService.closeLed(orderLed.getOrderId());
sysOrderLedService.closeLed(orderLed.getOrderId(),bizId,mac);
return ResultVOUtils.success("确认成功!");
}

@ -84,6 +84,7 @@ public class SysWorkplaceQueueService extends ServiceImpl<SysWorkplaceQueueMappe
sysWorkplaceQueue.setUpdateUser(userId + "");
sysWorkplaceQueue.setWorkPlaceIdFk(request.getWorkPlaceIdFk());
sysWorkplaceQueue.setFreightCode(request.getFreightCode());
sysWorkplaceQueue.setEnableRemind(0);
// sysWorkplaceQueues.add(sysWorkplaceQueue);
sysWorkplaceQueueMapper.insert(sysWorkplaceQueue);
}

@ -92,21 +92,21 @@ public class IoCollectLedGroupService extends ServiceImpl<IoCollectLedGroupMappe
// collectLedGroupRequest.setLednum(setLedNum(one));
collectLedGroupRequest.setLednum(setLedNumByOrderId(collectOrderBiz.getOrderIdFk(),one.getMac(),collectOrderBiz.getId()));
// if (collectLedGroupRequest.getLednum() == 1) {
// one.setRed(collectOrderBiz.getId());
// } else if (collectLedGroupRequest.getLednum() == 2) {
// one.setOrange(collectOrderBiz.getId());
// } else if (collectLedGroupRequest.getLednum() == 3) {
// one.setBlue(collectOrderBiz.getId());
// } else if (collectLedGroupRequest.getLednum() == 4) {
// one.setGreen(collectOrderBiz.getId());
// }
if (collectLedGroupRequest.getLednum() == 1) {
one.setRed(collectOrderBiz.getId());
} else if (collectLedGroupRequest.getLednum() == 2) {
one.setOrange(collectOrderBiz.getId());
} else if (collectLedGroupRequest.getLednum() == 3) {
one.setBlue(collectOrderBiz.getId());
} else if (collectLedGroupRequest.getLednum() == 4) {
one.setGreen(collectOrderBiz.getId());
}
collectOrderBiz.setQueueCode(sysWorkplaceQueue.getCode());
collectOrderBiz.setLedNum(collectLedGroupRequest.getLednum());
ledGroupRequest.getData().add(collectLedGroupRequest);
collectOrderBizService.updateById(collectOrderBiz);
// updateById(one);
updateById(one);
}
// http://192.168.0.166:9099/wms/associate/lighttagsled
@ -147,6 +147,7 @@ public class IoCollectLedGroupService extends ServiceImpl<IoCollectLedGroupMappe
private Integer setLedNumByOrderId(String orderIdFk,String mac,Long bizId){
SysOrderLed orderLedByOrder = sysOrderLedService.getOne(new LambdaQueryWrapper<SysOrderLed>().eq(SysOrderLed::getOrderId,orderIdFk));
if (orderLedByOrder != null){
redisDelayedQueue.addTaskToQueue(orderIdFk + ";" + mac + ";" + bizId,3 * 60,"led_queue");
return orderLedByOrder.getLedNum();
}
List<SysOrderLed> orderLeds = sysOrderLedService.list(new LambdaQueryWrapper<SysOrderLed>().isNull(SysOrderLed::getOrderId)

@ -2,6 +2,8 @@ package com.glxp.api.service.collect;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.collect.IoCollectLedGroupMapper;
import com.glxp.api.dao.collect.SysOrderLedMapper;
import com.glxp.api.entity.basic.SysWorkplaceQueue;
@ -43,17 +45,17 @@ public class SysOrderLedService extends ServiceImpl<SysOrderLedMapper, SysOrderL
sysOrderLedMapper.updateSetOrderId(id);
}
public void closeLed(String orderId) {
String task = redisDelayedQueue.getTaskByOrderId("led_queue", orderId);
String[] valueList = task.split(";");
String mac = valueList[1];
String bizId = valueList[2];
public void closeLed(String orderId,Long bizId,String mac) {
SysOrderLed orderLed = getOne(new LambdaQueryWrapper<SysOrderLed>().eq(SysOrderLed::getOrderId, orderId));
updateSetOrderId(orderLed.getId());
SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getMac, mac));
IoCollectOrderBiz collectOrderBiz = ioCollectOrderBizService.getById(bizId);
splitCodeService.confirmBizAutiTagCode(collectOrderBiz, sysWorkplaceQueue.getCode(), null, true);
// 从队列中删除已执行的任务genjv
// 从队列中删除已执行的任务
redisDelayedQueue.getJedis().zrem("led_queue", orderId + ";" + mac + ";" + bizId);
int queueCount = redisDelayedQueue.countTasksByOrderIdFk(orderId, "led_queue");
if (queueCount == 0){
updateSetOrderId(orderLed.getId());
}
// return ResultVOUtils.success();
}
}

@ -56,6 +56,9 @@ public class LedClearTask implements SchedulingConfigurer {
@Resource
SysWorkplaceQueueService sysWorkplaceQueueService;
@Resource
IoCollectLedGroupService ioCollectLedGroupService;
@ -88,14 +91,33 @@ public class LedClearTask implements SchedulingConfigurer {
String[] valueList = values.split(";");
String orderId = valueList[0];
String mac = valueList[1];
String bizId = valueList[2];
Long bizId = Long.valueOf(valueList[2]);
IoCollectOrderBiz collectOrderBiz = ioCollectOrderBizService.getById(bizId);
IoCollectLedGroup collectLedGroup = ioCollectLedGroupService.getOne(new LambdaQueryWrapper<IoCollectLedGroup>().eq(IoCollectLedGroup::getMac, mac), false);
if (collectOrderBiz.getLedNum() == 1) {
bizId = collectLedGroup.getRed();
collectLedGroup.setRed(0l);
} else if (collectOrderBiz.getLedNum() == 2) {
bizId = collectLedGroup.getOrange();
collectLedGroup.setOrange(0l);
} else if (collectOrderBiz.getLedNum() == 3) {
bizId = collectLedGroup.getBlue();
collectLedGroup.setBlue(0l);
} else if (collectOrderBiz.getLedNum() == 4) {
bizId = collectLedGroup.getGreen();
collectLedGroup.setGreen(0l);
}
ioCollectLedGroupService.updateById(collectLedGroup);
// if (IntUtil.value(bizId) == 0) {
// return ResultVOUtils.error("无订单");
// }
SysOrderLed orderLed = sysOrderLedService.getOne(new LambdaQueryWrapper<SysOrderLed>().eq(SysOrderLed::getOrderId, orderId));
if (orderLed == null){
redisDelayedQueue.getJedis().zrem("led_queue", orderId + ";" + mac + ";" + bizId);
return;
}
try {
sysOrderLedService.closeLed(orderId);
sysOrderLedService.closeLed(orderId,bizId,mac);
} catch (Exception e) {
throw new JsonException(e.getMessage());
}

@ -48,7 +48,6 @@ public class RedisDelayedQueue {
}
public String getTaskByOrderId(String queueName, String orderId) {
// 获取有序集合中的所有任务
List<String> tasks = jedis.zrange(queueName, 0, -1);
for (String task : tasks) {
String[] parts = task.split(";");
@ -62,6 +61,19 @@ public class RedisDelayedQueue {
return null;
}
public int countTasksByOrderIdFk(String orderIdFk, String queueName) {
int count = 0;
List<String> tasks = jedis.zrange(queueName, 0, -1);
for (String task : tasks) {
String[] parts = task.split(";");
String taskId = parts[0];
if (taskId.equals(orderIdFk)) {
count ++;
}
}
return count;
}
// 定期检查并处理任务
// public static void startTaskProcessor() {
// while (true) {

Loading…
Cancel
Save