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

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

@ -92,21 +92,21 @@ public class IoCollectLedGroupService extends ServiceImpl<IoCollectLedGroupMappe
// collectLedGroupRequest.setLednum(setLedNum(one)); // collectLedGroupRequest.setLednum(setLedNum(one));
collectLedGroupRequest.setLednum(setLedNumByOrderId(collectOrderBiz.getOrderIdFk(),one.getMac(),collectOrderBiz.getId())); collectLedGroupRequest.setLednum(setLedNumByOrderId(collectOrderBiz.getOrderIdFk(),one.getMac(),collectOrderBiz.getId()));
// if (collectLedGroupRequest.getLednum() == 1) { if (collectLedGroupRequest.getLednum() == 1) {
// one.setRed(collectOrderBiz.getId()); one.setRed(collectOrderBiz.getId());
// } else if (collectLedGroupRequest.getLednum() == 2) { } else if (collectLedGroupRequest.getLednum() == 2) {
// one.setOrange(collectOrderBiz.getId()); one.setOrange(collectOrderBiz.getId());
// } else if (collectLedGroupRequest.getLednum() == 3) { } else if (collectLedGroupRequest.getLednum() == 3) {
// one.setBlue(collectOrderBiz.getId()); one.setBlue(collectOrderBiz.getId());
// } else if (collectLedGroupRequest.getLednum() == 4) { } else if (collectLedGroupRequest.getLednum() == 4) {
// one.setGreen(collectOrderBiz.getId()); one.setGreen(collectOrderBiz.getId());
// } }
collectOrderBiz.setQueueCode(sysWorkplaceQueue.getCode()); collectOrderBiz.setQueueCode(sysWorkplaceQueue.getCode());
collectOrderBiz.setLedNum(collectLedGroupRequest.getLednum()); collectOrderBiz.setLedNum(collectLedGroupRequest.getLednum());
ledGroupRequest.getData().add(collectLedGroupRequest); ledGroupRequest.getData().add(collectLedGroupRequest);
collectOrderBizService.updateById(collectOrderBiz); collectOrderBizService.updateById(collectOrderBiz);
// updateById(one); updateById(one);
} }
// http://192.168.0.166:9099/wms/associate/lighttagsled // 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){ private Integer setLedNumByOrderId(String orderIdFk,String mac,Long bizId){
SysOrderLed orderLedByOrder = sysOrderLedService.getOne(new LambdaQueryWrapper<SysOrderLed>().eq(SysOrderLed::getOrderId,orderIdFk)); SysOrderLed orderLedByOrder = sysOrderLedService.getOne(new LambdaQueryWrapper<SysOrderLed>().eq(SysOrderLed::getOrderId,orderIdFk));
if (orderLedByOrder != null){ if (orderLedByOrder != null){
redisDelayedQueue.addTaskToQueue(orderIdFk + ";" + mac + ";" + bizId,3 * 60,"led_queue");
return orderLedByOrder.getLedNum(); return orderLedByOrder.getLedNum();
} }
List<SysOrderLed> orderLeds = sysOrderLedService.list(new LambdaQueryWrapper<SysOrderLed>().isNull(SysOrderLed::getOrderId) 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.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.IoCollectLedGroupMapper;
import com.glxp.api.dao.collect.SysOrderLedMapper; import com.glxp.api.dao.collect.SysOrderLedMapper;
import com.glxp.api.entity.basic.SysWorkplaceQueue; import com.glxp.api.entity.basic.SysWorkplaceQueue;
@ -43,17 +45,17 @@ public class SysOrderLedService extends ServiceImpl<SysOrderLedMapper, SysOrderL
sysOrderLedMapper.updateSetOrderId(id); sysOrderLedMapper.updateSetOrderId(id);
} }
public void closeLed(String orderId) { public void closeLed(String orderId,Long bizId,String mac) {
String task = redisDelayedQueue.getTaskByOrderId("led_queue", orderId);
String[] valueList = task.split(";");
String mac = valueList[1];
String bizId = valueList[2];
SysOrderLed orderLed = getOne(new LambdaQueryWrapper<SysOrderLed>().eq(SysOrderLed::getOrderId, orderId)); SysOrderLed orderLed = getOne(new LambdaQueryWrapper<SysOrderLed>().eq(SysOrderLed::getOrderId, orderId));
updateSetOrderId(orderLed.getId());
SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getMac, mac)); SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getMac, mac));
IoCollectOrderBiz collectOrderBiz = ioCollectOrderBizService.getById(bizId); IoCollectOrderBiz collectOrderBiz = ioCollectOrderBizService.getById(bizId);
splitCodeService.confirmBizAutiTagCode(collectOrderBiz, sysWorkplaceQueue.getCode(), null, true); splitCodeService.confirmBizAutiTagCode(collectOrderBiz, sysWorkplaceQueue.getCode(), null, true);
// 从队列中删除已执行的任务genjv // 从队列中删除已执行的任务
redisDelayedQueue.getJedis().zrem("led_queue", orderId + ";" + mac + ";" + bizId); 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 @Resource
SysWorkplaceQueueService sysWorkplaceQueueService; SysWorkplaceQueueService sysWorkplaceQueueService;
@Resource
IoCollectLedGroupService ioCollectLedGroupService;
@ -88,14 +91,33 @@ public class LedClearTask implements SchedulingConfigurer {
String[] valueList = values.split(";"); String[] valueList = values.split(";");
String orderId = valueList[0]; String orderId = valueList[0];
String mac = valueList[1]; 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)); SysOrderLed orderLed = sysOrderLedService.getOne(new LambdaQueryWrapper<SysOrderLed>().eq(SysOrderLed::getOrderId, orderId));
if (orderLed == null){ if (orderLed == null){
redisDelayedQueue.getJedis().zrem("led_queue", orderId + ";" + mac + ";" + bizId); redisDelayedQueue.getJedis().zrem("led_queue", orderId + ";" + mac + ";" + bizId);
return; return;
} }
try { try {
sysOrderLedService.closeLed(orderId); sysOrderLedService.closeLed(orderId,bizId,mac);
} catch (Exception e) { } catch (Exception e) {
throw new JsonException(e.getMessage()); throw new JsonException(e.getMessage());
} }

@ -48,7 +48,6 @@ public class RedisDelayedQueue {
} }
public String getTaskByOrderId(String queueName, String orderId) { public String getTaskByOrderId(String queueName, String orderId) {
// 获取有序集合中的所有任务
List<String> tasks = jedis.zrange(queueName, 0, -1); List<String> tasks = jedis.zrange(queueName, 0, -1);
for (String task : tasks) { for (String task : tasks) {
String[] parts = task.split(";"); String[] parts = task.split(";");
@ -62,6 +61,19 @@ public class RedisDelayedQueue {
return null; 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() { // public static void startTaskProcessor() {
// while (true) { // while (true) {

Loading…
Cancel
Save