diff --git a/pom.xml b/pom.xml index f33100a9b..530089561 100644 --- a/pom.xml +++ b/pom.xml @@ -166,6 +166,12 @@ 0.9.1 + + redis.clients + jedis + 4.2.3 + + org.springframework.boot spring-boot-starter-test diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectLedGroupController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectLedGroupController.java index f0c1e9960..0599a11c9 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectLedGroupController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectLedGroupController.java @@ -11,6 +11,7 @@ import com.glxp.api.controller.BaseController; import com.glxp.api.entity.basic.SysWorkplaceQueue; import com.glxp.api.entity.collect.IoCollectLedGroup; import com.glxp.api.entity.collect.IoCollectOrderBiz; +import com.glxp.api.entity.collect.SysOrderLed; import com.glxp.api.req.basic.BasicCollectUserRequest; import com.glxp.api.req.collect.CollectLedConfirmRequest; import com.glxp.api.req.collect.CollectLedGroupRequest; @@ -24,6 +25,7 @@ import com.glxp.api.service.basic.SysWorkplaceQueueService; import com.glxp.api.service.collect.IoCollectCodeService; import com.glxp.api.service.collect.IoCollectLedGroupService; import com.glxp.api.service.collect.IoCollectOrderBizService; +import com.glxp.api.service.collect.SysOrderLedService; import com.glxp.api.service.inout.IoSplitCodeService; import com.glxp.api.util.IntUtil; import lombok.extern.slf4j.Slf4j; @@ -70,6 +72,10 @@ public class IoCollectLedGroupController extends BaseController { @Resource SysWorkplaceQueueService sysWorkplaceQueueService; + @Resource + SysOrderLedService sysOrderLedService; + + /** * 取货确认 * @@ -83,28 +89,28 @@ public class IoCollectLedGroupController extends BaseController { */ Integer ledNum = ledConfirmRequest.getLednum(); String mac = ledConfirmRequest.getMac(); - IoCollectLedGroup collectLedGroup = ioCollectLedGroupService.getOne(new LambdaQueryWrapper().eq(IoCollectLedGroup::getMac, mac), false); - SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper().eq(SysWorkplaceQueue::getMac, mac)); - 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); - IoCollectOrderBiz collectOrderBiz = ioCollectOrderBizService.getById(bizId); - splitCodeService.confirmBizAutiTagCode(collectOrderBiz, sysWorkplaceQueue.getCode(), null, true); +// IoCollectLedGroup collectLedGroup = ioCollectLedGroupService.getOne(new LambdaQueryWrapper().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().eq(SysOrderLed::getLedNum, ledNum)); + sysOrderLedService.closeLed(orderLed.getOrderId()); return ResultVOUtils.success("确认成功!"); } diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index af9a3c600..5b62b948e 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.glxp.api.annotation.CusRedissonAnnotation; import com.glxp.api.constant.*; import com.glxp.api.dao.inout.IoOrderDetailCodeDao; +import com.glxp.api.entity.auth.SysWorkplace; import com.glxp.api.entity.basic.*; import com.glxp.api.entity.collect.*; import com.glxp.api.exception.JsonException; @@ -13,11 +14,14 @@ import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.res.collect.RelCodeDetailResponse; import com.glxp.api.res.inout.*; +import com.glxp.api.service.auth.SysWorkplaceService; import com.glxp.api.service.collect.*; import com.glxp.api.service.collect.RelCodeDetailService; import com.glxp.api.service.inout.impl.IoCodeService; import com.glxp.api.service.inv.impl.InvProductServiceNew; import com.glxp.api.vo.basic.InvProductNewVo; +import org.apache.poi.ss.formula.functions.Offset; +import org.aspectj.weaver.ast.Var; import org.springframework.beans.BeanUtils; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; @@ -130,6 +134,12 @@ public class IoCodeTempController extends BaseController { @Autowired IoCollectOrderCodeManService ioCollectOrderCodeManService; + @Autowired + SysWorkplaceService sysWorkplaceService; + + @Resource + SysOrderLedService sysOrderLedService; + /** * PDA-----单据上传 @@ -176,6 +186,19 @@ public class IoCodeTempController extends BaseController { if (byBillNo != null){ return ResultVOUtils.error(500, "该单据已处理完成,请勿重复处理!"); } + + //取药确认 + if (addEnterCodeRequest.getSelectType() != null){ + List orderLeds = sysOrderLedService.list(new LambdaQueryWrapper().isNull(SysOrderLed::getOrderId) + .or() + .eq(SysOrderLed::getOrderId, "") + .orderByAsc(SysOrderLed::getLedNum)); + //如果为null 当前灯组已满 + if (orderLeds == null || orderLeds.size() == 0){ + return ResultVOUtils.error(500, "灯组已满!"); + } + } + IoCollectOrderResponse collectOrder = collectOrderService.unionSearch(null, addEnterCodeRequest.getBusType(), code); if (collectOrder == null) { //查询原始单据查到为异常提示 diff --git a/src/main/java/com/glxp/api/dao/collect/SysOrderLedMapper.java b/src/main/java/com/glxp/api/dao/collect/SysOrderLedMapper.java new file mode 100644 index 000000000..24f67c825 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/collect/SysOrderLedMapper.java @@ -0,0 +1,17 @@ +package com.glxp.api.dao.collect; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.collect.SysOrderLed; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author : zhuzhu + * @date : 2025/1/20 14:25 + * @modyified By : + */ +@Mapper +public interface SysOrderLedMapper extends BaseMapper { + + + void updateSetOrderId(Integer id); +} diff --git a/src/main/java/com/glxp/api/entity/collect/SysOrderLed.java b/src/main/java/com/glxp/api/entity/collect/SysOrderLed.java new file mode 100644 index 000000000..57d88db59 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/collect/SysOrderLed.java @@ -0,0 +1,99 @@ +package com.glxp.api.entity.collect; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.Date; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + + + +@ApiModel(value = "sys_order_led") +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "sys_order_led") +public class SysOrderLed implements Serializable { + /** + * + */ + @ApiModelProperty(value = "") + @TableId(value = "id", type = IdType.INPUT) + private Integer id; + + /** + * 1.红,2:橙,3:蓝,4:绿 + */ + @ApiModelProperty(value = "1.红,2:橙,3:蓝,4:绿") + @TableField(value = "ledNum") + private Integer ledNum; + + /** + * 订单id + */ + @ApiModelProperty(value = "") + @TableField(value = "orderId") + private String orderId; + + /** + * + */ + @ApiModelProperty(value = "") + @TableField(value = "remark") + private String remark; + + /** + * + */ + @ApiModelProperty(value = "") + @TableField(value = "updateTime") + private Date updateTime; + + /** + * + */ + @ApiModelProperty(value = "") + @TableField(value = "createTime") + private Date createTime; + + /** + * + */ + @ApiModelProperty(value = "") + @TableField(value = "createUser") + private String createUser; + + /** + * + */ + @ApiModelProperty(value = "") + @TableField(value = "updateUser") + private String updateUser; + + /** + * 状态 + */ + @ApiModelProperty(value = "状态") + @TableField(value = "status") + private Byte status; + + /** + * 超时时间 + */ + @ApiModelProperty(value = "超时时间") + @TableField(value = "timeOut") + private Integer timeOut; + + private static final long serialVersionUID = 1L; +} + diff --git a/src/main/java/com/glxp/api/req/inout/AddEnterCodeRequest.java b/src/main/java/com/glxp/api/req/inout/AddEnterCodeRequest.java index 654a72536..58da84f9b 100644 --- a/src/main/java/com/glxp/api/req/inout/AddEnterCodeRequest.java +++ b/src/main/java/com/glxp/api/req/inout/AddEnterCodeRequest.java @@ -13,4 +13,9 @@ public class AddEnterCodeRequest { private List codeList; private String viewType; private String orderId; + + /** + * selectType 搜索类型 用于取药确认搜索单据 判断灯组是否够用 + */ + private Integer selectType; } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectLedGroupService.java b/src/main/java/com/glxp/api/service/collect/IoCollectLedGroupService.java index 3ff0c3d08..7cc9476c4 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectLedGroupService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectLedGroupService.java @@ -11,7 +11,9 @@ import com.glxp.api.common.res.BaseResponse; import com.glxp.api.dao.collect.IoCollectLedGroupMapper; import com.glxp.api.entity.basic.SysWorkplaceQueue; import com.glxp.api.entity.collect.IoCollectLedGroup; +import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderBiz; +import com.glxp.api.entity.collect.SysOrderLed; import com.glxp.api.entity.thrsys.CodeRel; import com.glxp.api.enums.led.LedColorStatusEnum; import com.glxp.api.exception.JsonException; @@ -21,6 +23,8 @@ import com.glxp.api.res.collect.IoCollectLedGroupResponse; import com.glxp.api.service.basic.SysWorkplaceQueueService; import com.glxp.api.util.IntUtil; import com.glxp.api.util.OkHttpCli; +import com.glxp.api.util.RedisUtil; +import com.glxp.api.util.redis.RedisDelayedQueue; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -40,9 +44,16 @@ public class IoCollectLedGroupService extends ServiceImpl filterList(CollectLedGroupRequest collectLedGroupRequest) { if (collectLedGroupRequest == null) { @@ -78,22 +89,24 @@ public class IoCollectLedGroupService extends ServiceImpl().eq(SysOrderLed::getOrderId,orderIdFk)); + if (orderLedByOrder != null){ + return orderLedByOrder.getLedNum(); + } + List orderLeds = sysOrderLedService.list(new LambdaQueryWrapper().isNull(SysOrderLed::getOrderId) + .or() + .eq(SysOrderLed::getOrderId, "") + .orderByAsc(SysOrderLed::getLedNum)); + //如果为null 当前灯组已满 + SysOrderLed orderLed = orderLeds.get(0); + //if 没有满 设置订单id + orderLed.setOrderId(orderIdFk); + sysOrderLedService.updateById(orderLed); + //设置成功加入redis 一分钟超时时间 过期删除 然后根据订单id 清楚灯组 + redisDelayedQueue.addTaskToQueue(orderIdFk + ";" + mac + ";" + bizId,3 * 60,"led_queue"); + return orderLed.getLedNum(); + + } } diff --git a/src/main/java/com/glxp/api/service/collect/SysOrderLedService.java b/src/main/java/com/glxp/api/service/collect/SysOrderLedService.java new file mode 100644 index 000000000..7a3a191f1 --- /dev/null +++ b/src/main/java/com/glxp/api/service/collect/SysOrderLedService.java @@ -0,0 +1,59 @@ +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.dao.collect.IoCollectLedGroupMapper; +import com.glxp.api.dao.collect.SysOrderLedMapper; +import com.glxp.api.entity.basic.SysWorkplaceQueue; +import com.glxp.api.entity.collect.IoCollectOrderBiz; +import com.glxp.api.entity.collect.SysOrderLed; +import com.glxp.api.service.basic.SysWorkplaceQueueService; +import com.glxp.api.service.inout.IoSplitCodeService; +import com.glxp.api.util.redis.RedisDelayedQueue; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * @author : zhuzhu + * @date : 2025/1/20 14:23 + * @modyified By : + */ + +@Service +public class SysOrderLedService extends ServiceImpl { + + @Resource + SysOrderLedMapper sysOrderLedMapper; + + @Resource + IoCollectOrderBizService ioCollectOrderBizService; + @Resource + SysWorkplaceQueueService sysWorkplaceQueueService; + + @Resource + IoSplitCodeService splitCodeService; + + @Resource + private RedisDelayedQueue redisDelayedQueue; + + + + public void updateSetOrderId(Integer id) { + 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]; + SysOrderLed orderLed = getOne(new LambdaQueryWrapper().eq(SysOrderLed::getOrderId, orderId)); + updateSetOrderId(orderLed.getId()); + SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper().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); + } +} diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java index a6499ec6a..15e9fc36d 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java @@ -650,10 +650,9 @@ public class IoSplitCodeService extends ServiceImpl { - ioCollectLedGroupService.openLed(collectOrderBizs); + ioCollectLedGroupService.openLed(collectOrderBizs); } ); - collectOrderBizService.updateBatchById(collectOrderBizs); } diff --git a/src/main/java/com/glxp/api/task/LedClearTask.java b/src/main/java/com/glxp/api/task/LedClearTask.java new file mode 100644 index 000000000..e76d33cf8 --- /dev/null +++ b/src/main/java/com/glxp/api/task/LedClearTask.java @@ -0,0 +1,105 @@ +package com.glxp.api.task; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.basic.SysWorkplaceQueue; +import com.glxp.api.entity.collect.*; +import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.exception.JsonException; +import com.glxp.api.req.system.ScheduledRequest; +import com.glxp.api.service.basic.SysWorkplaceQueueService; +import com.glxp.api.service.collect.*; +import com.glxp.api.service.inout.IoSplitCodeService; +import com.glxp.api.util.IntUtil; +import com.glxp.api.util.RedisUtil; +import com.glxp.api.util.redis.RedisDelayedQueue; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; +import org.jfree.ui.Spinner; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; +import redis.clients.jedis.resps.Tuple; + +import javax.annotation.Resource; +import java.util.*; + +@Component +@EnableScheduling +@Slf4j +public class LedClearTask implements SchedulingConfigurer { + + + @Resource + RedisUtil redisUtil; + + @Resource + private ScheduledDao scheduledDao; + @Resource + private RedisDelayedQueue redisDelayedQueue; + + @Resource + SysOrderLedService sysOrderLedService; + + + @Resource + IoSplitCodeService splitCodeService; + @Resource + IoCollectOrderBizService ioCollectOrderBizService; + @Resource + SysWorkplaceQueueService sysWorkplaceQueueService; + + + + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("LedClearTask"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + if (scheduledEntity == null) { + return null; + } + String cron = scheduledEntity.getCron(); + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + + long currentTimestamp = System.currentTimeMillis() / 1000; // 当前时间戳(秒) + + // 获取所有超时的任务 (score <= 当前时间戳) + List tasksToProcess = redisDelayedQueue.getJedis().zrangeByScoreWithScores("led_queue", "-inf", String.valueOf(currentTimestamp)); + + Iterator iterator = tasksToProcess.iterator(); + while (iterator.hasNext()) { + Tuple task = iterator.next(); + String values = task.getElement(); + String[] valueList = values.split(";"); + String orderId = valueList[0]; + String mac = valueList[1]; + String bizId = valueList[2]; + SysOrderLed orderLed = sysOrderLedService.getOne(new LambdaQueryWrapper().eq(SysOrderLed::getOrderId, orderId)); + if (orderLed == null){ + redisDelayedQueue.getJedis().zrem("led_queue", orderId + ";" + mac + ";" + bizId); + return; + } + try { + sysOrderLedService.closeLed(orderId); + } catch (Exception e) { + throw new JsonException(e.getMessage()); + } + } + } + +} diff --git a/src/main/java/com/glxp/api/util/redis/RedisDelayedQueue.java b/src/main/java/com/glxp/api/util/redis/RedisDelayedQueue.java new file mode 100644 index 000000000..240c92e53 --- /dev/null +++ b/src/main/java/com/glxp/api/util/redis/RedisDelayedQueue.java @@ -0,0 +1,87 @@ +package com.glxp.api.util.redis; + +import org.springframework.stereotype.Component; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.resps.Tuple; + +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +@Component +public class RedisDelayedQueue { + + private Jedis jedis = new Jedis("localhost", 6379); // Redis连接 + + + // 将任务加入延时队列 + public void addTaskToQueue(String taskId, long delaySeconds,String queueName) { + long timestamp = System.currentTimeMillis() / 1000 + delaySeconds; // 计算任务执行的时间戳 + jedis.zadd(queueName, timestamp, taskId); // 将任务添加到有序集合,score 为任务的执行时间戳 + System.out.println("Task " + taskId + " added to queue with " + delaySeconds + " seconds delay."); + } + + public Jedis getJedis() { + jedis.select(10); + return jedis; + } + + // 获取并处理超时的任务 + public void processTasks() { + long currentTimestamp = System.currentTimeMillis() / 1000; // 当前时间戳(秒) + + // 获取所有超时的任务 (score <= 当前时间戳) + List tasksToProcess = jedis.zrangeByScoreWithScores("delay_queue", "-inf", String.valueOf(currentTimestamp)); + + Iterator iterator = tasksToProcess.iterator(); + while (iterator.hasNext()) { + Tuple task = iterator.next(); + String taskId = task.getElement(); + System.out.println("Processing task " + taskId); + + // 执行任务逻辑 (你可以在这里调用实际的业务逻辑) + + // 从队列中删除已执行的任务 + jedis.zrem("delay_queue", taskId); + System.out.println("Task " + taskId + " removed from queue."); + } + } + + public String getTaskByOrderId(String queueName, String orderId) { + // 获取有序集合中的所有任务 + List tasks = jedis.zrange(queueName, 0, -1); + for (String task : tasks) { + String[] parts = task.split(";"); + if (parts.length == 3) { + String taskId = parts[0]; + if (taskId.equals(orderId)) { + return task; + } + } + } + return null; + } + + // 定期检查并处理任务 +// public static void startTaskProcessor() { +// while (true) { +// try { +// // 每隔1秒检查一次队列 +// TimeUnit.SECONDS.sleep(1); +// processTasks(); // 处理超时的任务 +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } +// } +// } +// public static void main(String[] args) { +// // 添加任务到延时队列 +// addTaskToQueue("task1", 60); // 任务 1 延迟 5 秒执行 +// startTaskProcessor(); +// System.out.println("123"); +// return; +// // 启动任务处理器,定期检查队列 +// } + + +} diff --git a/src/main/resources/mybatis/mapper/collect/SysOrderLedMapper.xml b/src/main/resources/mybatis/mapper/collect/SysOrderLedMapper.xml new file mode 100644 index 000000000..82e8fe952 --- /dev/null +++ b/src/main/resources/mybatis/mapper/collect/SysOrderLedMapper.xml @@ -0,0 +1,10 @@ + + + + + + UPDATE sys_order_led + SET orderId = null + WHERE id = #{id} + + diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 47aa34655..278911489 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -5170,9 +5170,42 @@ CALL Pro_Temp_ColumnWork('io_split_fifo_inv', 'reCodeCount', 'int NULL DEFAULT NULL COMMENT ''剩余码数量''', 1); -INSERT IGNORE INTO `sys_custom_config_detail` (`id`, `configId`, `type`, `isShow`, `columnName`, `columnDesc`, `columnType`, `colorRule`, `sort`, `lableRule`, `width`, `tooltip`, `buttonRule`, `number`, `lineNumber`, `clickFuc`, `size`, `style`, `disabled`, `checkRules`, `inputType`, `disabledFuc`, `expression`, `dataFuc`, `isShowXx`, `isImport`) -VALUES (463278, 213, '2', 1, 'productBind', '产品是否绑定', 'select', NULL, NULL, '{\"0\":\"否\",\"1\":\"是\"}', NULL, NULL, NULL, 98, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1); +INSERT IGNORE INTO `sys_custom_config_detail` (`id`, `configId`, `type`, `isShow`, `columnName`, `columnDesc`, + `columnType`, `colorRule`, `sort`, `lableRule`, `width`, `tooltip`, + `buttonRule`, `number`, `lineNumber`, `clickFuc`, `size`, `style`, + `disabled`, `checkRules`, `inputType`, `disabledFuc`, `expression`, + `dataFuc`, `isShowXx`, `isImport`) +VALUES (463278, 213, '2', 1, 'productBind', '产品是否绑定', 'select', NULL, NULL, '{\"0\":\"否\",\"1\":\"是\"}', NULL, + NULL, NULL, 98, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1); + +INSERT IGNORE INTO `sys_custom_config_detail` (`id`, `configId`, `type`, `isShow`, `columnName`, `columnDesc`, + `columnType`, `colorRule`, `sort`, `lableRule`, `width`, `tooltip`, + `buttonRule`, `number`, `lineNumber`, `clickFuc`, `size`, `style`, + `disabled`, `checkRules`, `inputType`, `disabledFuc`, `expression`, + `dataFuc`, `isShowXx`, `isImport`) +VALUES (463279, 213, '2', 1, 'macBind', '灯组是否绑定', 'select', NULL, NULL, '{\"0\":\"否\",\"1\":\"是\"}', NULL, NULL, + NULL, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1); + -INSERT IGNORE INTO `sys_custom_config_detail` (`id`, `configId`, `type`, `isShow`, `columnName`, `columnDesc`, `columnType`, `colorRule`, `sort`, `lableRule`, `width`, `tooltip`, `buttonRule`, `number`, `lineNumber`, `clickFuc`, `size`, `style`, `disabled`, `checkRules`, `inputType`, `disabledFuc`, `expression`, `dataFuc`, `isShowXx`, `isImport`) -VALUES (463279, 213, '2', 1, 'macBind', '灯组是否绑定', 'select', NULL, NULL, '{\"0\":\"否\",\"1\":\"是\"}', NULL, NULL, NULL, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1); +CREATE TABLE IF NOT EXISTS `sys_order_led` +( + `id` int NOT NULL, + `ledNum` tinyint NULL DEFAULT NULL COMMENT '1.红,2:橙,3:蓝,4:绿', + `orderId` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '订单编号', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `updateTime` datetime NULL DEFAULT NULL, + `createTime` datetime NULL DEFAULT NULL, + `createUser` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `updateUser` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `status` tinyint NULL DEFAULT NULL COMMENT '状态', + `timeOut` int NULL DEFAULT NULL COMMENT '超时时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB + CHARACTER SET = utf8mb4 + COLLATE = utf8mb4_0900_ai_ci + COMMENT = '灯组与订单关联表' + ROW_FORMAT = Dynamic; + +INSERT IGNORE INTO `sys_scheduled` (`id`, `cronName`, `cron`, `customerId`, `remark`) +VALUES (165, 'LedClearTask', '0 */1 * * * ?', NULL, '自动查询未关闭灯组');