feat(traycode): 优化托盘码生成逻辑并调整打印样式
- 移除旧的条码生成逻辑,使用新的序列规则生成托盘码 - 引入条码格式服务以支持更灵活的编码规则 - 更新前端打印模板,使用CODE39条形码替代二维码 - 调整打印页面尺寸为80mm x 50mm以适配标签打印机 - 修改CSS样式以提高打印质量,避免缩放导致的模糊问题 - 更新依赖包,添加vue-barcode库支持条形码渲染
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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<BasTraycode> 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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user