条码功能完善

This commit is contained in:
JinLu.Yin 2022-09-02 17:01:16 +08:00
parent 0466be3d36
commit 83bc0f6498
7 changed files with 106 additions and 10 deletions

View File

@ -402,8 +402,11 @@ create table wm_barcode (
barcode_id bigint(20) not null auto_increment comment '条码ID', barcode_id bigint(20) not null auto_increment comment '条码ID',
barcode_formart varchar(64) not null comment '条码格式', barcode_formart varchar(64) not null comment '条码格式',
barcode_type varchar(64) not null comment '条码类型', barcode_type varchar(64) not null comment '条码类型',
barcode_content varchar(255) not null comment '产品物料ID', barcode_content varchar(255) not null comment '条码内容',
url varchar(255) comment '条码地址', bussiness_id bigint(20) not null comment '业务ID',
bussiness_code varchar(64) comment '业务编码',
bussiness_name varchar(255) comment '业务名称',
barcode_url varchar(255) comment '条码地址',
enable_flag char(1) default 'Y' comment '是否生效', enable_flag char(1) default 'Y' comment '是否生效',
remark varchar(500) default '' comment '备注', remark varchar(500) default '' comment '备注',
attr1 varchar(64) default null comment '预留字段1', attr1 varchar(64) default null comment '预留字段1',

View File

@ -1,22 +1,22 @@
package com.ktg.common.utils.file; package com.ktg.common.utils.file;
import java.io.File; import java.io.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import com.ktg.common.config.RuoYiConfig; import com.ktg.common.config.RuoYiConfig;
import com.ktg.common.utils.DateUtils; import com.ktg.common.utils.DateUtils;
import com.ktg.common.utils.StringUtils; import com.ktg.common.utils.StringUtils;
import com.ktg.common.utils.uuid.IdUtils; import com.ktg.common.utils.uuid.IdUtils;
import org.springframework.http.MediaType;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
/** /**
* 文件处理工具类 * 文件处理工具类
@ -272,4 +272,20 @@ public class FileUtils
int index = Math.max(lastUnixPos, lastWindowsPos); int index = Math.max(lastUnixPos, lastWindowsPos);
return fileName.substring(index + 1); return fileName.substring(index + 1);
} }
public static MultipartFile getMultipartFile(File file) {
FileItem item = new DiskFileItemFactory().createItem("file"
, MediaType.MULTIPART_FORM_DATA_VALUE
, true
, file.getName());
try (InputStream input = new FileInputStream(file);
OutputStream os = item.getOutputStream()) {
// 流转移
IOUtils.copy(input, os);
} catch (Exception e) {
throw new IllegalArgumentException("Invalid file: " + e, e);
}
return new CommonsMultipartFile(item);
}
} }

View File

@ -2,6 +2,8 @@ package com.ktg.mes.wm.controller;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.ktg.common.constant.UserConstants;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -77,6 +79,12 @@ public class WmBarcodeController extends BaseController
@PostMapping @PostMapping
public AjaxResult add(@RequestBody WmBarcode wmBarcode) public AjaxResult add(@RequestBody WmBarcode wmBarcode)
{ {
if(UserConstants.NOT_UNIQUE.equals(wmBarcodeService.checkBarcodeUnique(wmBarcode))){
return AjaxResult.error("当前业务内容的条码已存在!");
}
String path =wmBarcodeService.generateBarcode(wmBarcode);
wmBarcode.setBarcodeUrl(path);
return toAjax(wmBarcodeService.insertWmBarcode(wmBarcode)); return toAjax(wmBarcodeService.insertWmBarcode(wmBarcode));
} }
@ -88,6 +96,11 @@ public class WmBarcodeController extends BaseController
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody WmBarcode wmBarcode) public AjaxResult edit(@RequestBody WmBarcode wmBarcode)
{ {
if(UserConstants.NOT_UNIQUE.equals(wmBarcodeService.checkBarcodeUnique(wmBarcode))){
return AjaxResult.error("当前业务内容的条码已存在!");
}
String path =wmBarcodeService.generateBarcode(wmBarcode);
wmBarcode.setBarcodeUrl(path);
return toAjax(wmBarcodeService.updateWmBarcode(wmBarcode)); return toAjax(wmBarcodeService.updateWmBarcode(wmBarcode));
} }

View File

@ -27,6 +27,13 @@ public interface WmBarcodeMapper
*/ */
public List<WmBarcode> selectWmBarcodeList(WmBarcode wmBarcode); public List<WmBarcode> selectWmBarcodeList(WmBarcode wmBarcode);
/**
* 检查当前条码类型下对应的业务是否已经生成了条码
* @param wmBarcode
* @return
*/
public WmBarcode checkBarcodeUnique(WmBarcode wmBarcode);
/** /**
* 新增条码清单 * 新增条码清单
* *

View File

@ -27,6 +27,14 @@ public interface IWmBarcodeService
*/ */
public List<WmBarcode> selectWmBarcodeList(WmBarcode wmBarcode); public List<WmBarcode> selectWmBarcodeList(WmBarcode wmBarcode);
/**
* 根据条码类型和业务内容ID判断条码是否已存在
* @param wmBarcode
* @return
*/
public String checkBarcodeUnique(WmBarcode wmBarcode);
/** /**
* 新增条码清单 * 新增条码清单
* *
@ -58,4 +66,12 @@ public interface IWmBarcodeService
* @return 结果 * @return 结果
*/ */
public int deleteWmBarcodeByBarcodeId(Long barcodeId); public int deleteWmBarcodeByBarcodeId(Long barcodeId);
/**
* 根据条码记录生成实际的条码返回对应的url地址
* @param wmBarcode
* @return
*/
public String generateBarcode(WmBarcode wmBarcode);
} }

View File

@ -1,12 +1,22 @@
package com.ktg.mes.wm.service.impl; package com.ktg.mes.wm.service.impl;
import java.io.File;
import java.io.IOException;
import java.util.List; import java.util.List;
import com.ktg.common.constant.UserConstants;
import com.ktg.common.core.domain.AjaxResult;
import com.ktg.common.utils.DateUtils; import com.ktg.common.utils.DateUtils;
import com.ktg.common.utils.StringUtils;
import com.ktg.common.utils.barcode.BarcodeUtil;
import com.ktg.common.utils.file.FileUploadUtils;
import com.ktg.common.utils.file.FileUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ktg.mes.wm.mapper.WmBarcodeMapper; import com.ktg.mes.wm.mapper.WmBarcodeMapper;
import com.ktg.mes.wm.domain.WmBarcode; import com.ktg.mes.wm.domain.WmBarcode;
import com.ktg.mes.wm.service.IWmBarcodeService; import com.ktg.mes.wm.service.IWmBarcodeService;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 条码清单Service业务层处理 * 条码清单Service业务层处理
@ -44,6 +54,16 @@ public class WmBarcodeServiceImpl implements IWmBarcodeService
return wmBarcodeMapper.selectWmBarcodeList(wmBarcode); return wmBarcodeMapper.selectWmBarcodeList(wmBarcode);
} }
@Override
public String checkBarcodeUnique(WmBarcode wmBarcode) {
WmBarcode barcode = wmBarcodeMapper.checkBarcodeUnique(wmBarcode);
Long barcodeId = wmBarcode.getBarcodeId()==null?-1L:wmBarcode.getBarcodeId();
if(StringUtils.isNotNull(barcode) && barcode.getBarcodeId().longValue() != barcodeId.longValue()){
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
}
/** /**
* 新增条码清单 * 新增条码清单
* *
@ -93,4 +113,20 @@ public class WmBarcodeServiceImpl implements IWmBarcodeService
{ {
return wmBarcodeMapper.deleteWmBarcodeByBarcodeId(barcodeId); return wmBarcodeMapper.deleteWmBarcodeByBarcodeId(barcodeId);
} }
@Override
public String generateBarcode(WmBarcode wmBarcode) {
File buf = BarcodeUtil.generateFile(wmBarcode.getBarcodeContent(),"./tmp/barcode/"+wmBarcode.getBarcodeContent()+".png");
MultipartFile file = FileUtils.getMultipartFile(buf);
String fileName = null;
try {
fileName = FileUploadUtils.uploadMinio(file);
} catch (IOException e) {
e.printStackTrace();
return null;
}
return fileName;
}
} }

View File

@ -51,7 +51,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectWmBarcodeVo"/> <include refid="selectWmBarcodeVo"/>
where barcode_id = #{barcodeId} where barcode_id = #{barcodeId}
</select> </select>
<select id="checkBarcodeUnique" parameterType="WmBarcode">
<include refid="selectWmBarcodeVo"/>
where bussiness_id = #{bussinessId} and barcode_type = #{barcodeType}
</select>
<insert id="insertWmBarcode" parameterType="WmBarcode" useGeneratedKeys="true" keyProperty="barcodeId"> <insert id="insertWmBarcode" parameterType="WmBarcode" useGeneratedKeys="true" keyProperty="barcodeId">
insert into wm_barcode insert into wm_barcode
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">