From 8fdc98f0c379bed851ce68bf42b1c01137ec6c25 Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Thu, 11 Dec 2025 17:14:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(traycode):=20=E4=BC=98=E5=8C=96=E6=89=98?= =?UTF-8?q?=E7=9B=98=E7=A0=81=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91=E5=B9=B6?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=89=93=E5=8D=B0=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除旧的条码生成逻辑,使用新的序列规则生成托盘码 - 引入条码格式服务以支持更灵活的编码规则 - 更新前端打印模板,使用CODE39条形码替代二维码 - 调整打印页面尺寸为80mm x 50mm以适配标签打印机 - 修改CSS样式以提高打印质量,避免缩放导致的模糊问题 - 更新依赖包,添加vue-barcode库支持条形码渲染 --- .../service/impl/BasTraycodeServiceImpl.java | 23 +++++-- .../impl/BasTraycodeFormatServiceImpl.java | 13 ---- ruoyi-ui/package.json | 1 + .../src/views/bas/BasProductCode/index.vue | 68 ++++++++++++++++--- ruoyi-ui/src/views/bas/traycode/index.vue | 22 +++--- 5 files changed, 89 insertions(+), 38 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/traycode/service/impl/BasTraycodeServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/traycode/service/impl/BasTraycodeServiceImpl.java index da128f2..69ad881 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/traycode/service/impl/BasTraycodeServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/traycode/service/impl/BasTraycodeServiceImpl.java @@ -1,9 +1,12 @@ package com.ruoyi.bas.traycode.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; import com.ruoyi.bas.traycode.domain.BasTraycode; import com.ruoyi.bas.traycode.mapper.BasTraycodeMapper; import com.ruoyi.bas.traycode.service.IBasTraycodeService; +import com.ruoyi.bas.traycodeformat.domain.BasTraycodeFormat; +import com.ruoyi.bas.traycodeformat.service.IBasTraycodeFormatService; import com.ruoyi.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -21,6 +24,8 @@ public class BasTraycodeServiceImpl implements IBasTraycodeService { @Autowired private BasTraycodeMapper basTraycodeMapper; + @Autowired + private IBasTraycodeFormatService basTraycodeFormatService; /** * 查询条码信息 @@ -56,24 +61,28 @@ public class BasTraycodeServiceImpl implements IBasTraycodeService public int insertBasTraycode(BasTraycode basTraycode) { try { - Integer i = basTraycodeMapper.selectBasTrayCodeMax(); - if (i == null) { - i = 0; - } + BasTraycodeFormat basTraycodeFormat = basTraycodeFormatService.selectBasTraycodeFormatById(basTraycode.getFormatId()); + + int i1 = Integer.parseInt(basTraycode.getSpare1()); //如果i<4位数,前面补0 String code = ""; for (int j = 0; j < i1; j++) { - code = String.format("%04d", i + 1 + j); - if("9999".equals( code)){ + code = String.format("%07d",Convert.toInt( basTraycodeFormat.getSerialRule()) + 1 + j); + if(basTraycodeFormat.getMaxNum() < Convert.toLong( code)){ throw new RuntimeException("已生成最大值"); } - basTraycode.setTrayCode(code); + String finalCode = basTraycodeFormat.getBarcodeFormat()+code; + basTraycode.setTrayCode(finalCode); basTraycode.setSpare1(null); basTraycode.setCreateTime(DateUtils.getNowDate()); basTraycode.setSpare2("Y"); basTraycodeMapper.insertBasTraycode(basTraycode); + + } + basTraycodeFormat.setSerialRule(Convert.toLong( code).toString()); + basTraycodeFormatService.updateBasTraycodeFormat(basTraycodeFormat); } catch (Exception e) { throw new RuntimeException(e); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/traycodeformat/service/impl/BasTraycodeFormatServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/traycodeformat/service/impl/BasTraycodeFormatServiceImpl.java index f9d9031..9a0e930 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/traycodeformat/service/impl/BasTraycodeFormatServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/traycodeformat/service/impl/BasTraycodeFormatServiceImpl.java @@ -79,20 +79,7 @@ public class BasTraycodeFormatServiceImpl implements IBasTraycodeFormatService public int updateBasTraycodeFormat(BasTraycodeFormat basTraycodeFormat) { BasTraycodeFormat old = selectBasTraycodeFormatById(basTraycodeFormat.getId()); - int oldSerialRule = Convert.toInt(old.getSerialRule()); - int newSerialRule = Convert.toInt(basTraycodeFormat.getSerialRule()); - - List traycodeList = new ArrayList<>(); - for (int i = oldSerialRule; i < newSerialRule; i++) { - BasTraycode basTraycode = new BasTraycode(); - basTraycode.setFormatId(basTraycodeFormat.getId()); - String traycode = old.getBarcodeFormat()+ StrUtil.padPre(Convert.toStr(i),5,'0'); - basTraycode.setTrayCode(traycode); - traycodeList.add(basTraycode); - } basTraycodeFormat.setUpdateTime(DateUtils.getNowDate()); - //插入条码信息 - basTraycodeService.insertBasTraycodeList(traycodeList); return basTraycodeFormatMapper.updateBasTraycodeFormat(basTraycodeFormat); } diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index c98ae7c..dee870a 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -44,6 +44,7 @@ "sortablejs": "1.10.2", "splitpanes": "2.4.1", "vue": "2.6.12", + "vue-barcode": "^1.3.0", "vue-count-to": "1.0.13", "vue-cropper": "0.5.5", "vue-easy-print": "^0.0.8", diff --git a/ruoyi-ui/src/views/bas/BasProductCode/index.vue b/ruoyi-ui/src/views/bas/BasProductCode/index.vue index 08ac641..d29854d 100644 --- a/ruoyi-ui/src/views/bas/BasProductCode/index.vue +++ b/ruoyi-ui/src/views/bas/BasProductCode/index.vue @@ -103,7 +103,7 @@
-
-
+
+