Browse Source

货架、货位模板结合二维码生成展示

dev-warehouse
kilo 2 years ago
parent
commit
438cba6865
  1. 8
      blade-service/logpm-basic/src/main/java/com/logpm/basic/mapper/BasicPrintTemplateMapper.java
  2. 42
      blade-service/logpm-basic/src/main/java/com/logpm/basic/mapper/BasicPrintTemplateMapper.xml
  3. 13
      blade-service/logpm-basic/src/main/java/com/logpm/basic/service/impl/BasicPrintTemplateServiceImpl.java
  4. 33
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataGoodsAllocationController.java
  5. 29
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataGoodsShelfController.java
  6. 8
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java
  7. 22
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataGoodsAllocationService.java
  8. 17
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataGoodsShelfService.java
  9. 46
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataGoodsAllocationServiceImpl.java
  10. 58
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataGoodsShelfServiceImpl.java
  11. 2
      doc/dpm/物流租户系统.pdma.json

8
blade-service/logpm-basic/src/main/java/com/logpm/basic/mapper/BasicPrintTemplateMapper.java

@ -26,6 +26,7 @@ import com.logpm.basic.vo.BasicPrintTemplateVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 打印模板信息 Mapper 接口
@ -53,4 +54,11 @@ public interface BasicPrintTemplateMapper extends BaseMapper<BasicPrintTemplateE
*/
List<BasicPrintTemplateExcel> exportBasicPrintTemplate(@Param("ew") Wrapper<BasicPrintTemplateEntity> queryWrapper);
/**
* 查询模板信息
* @param map 包含了租户ID和模板类型
* @return 模板信息
*/
BasicPrintTemplateEntity getTemplateInfo(@Param("po")Map<String, Object> map);
}

42
blade-service/logpm-basic/src/main/java/com/logpm/basic/mapper/BasicPrintTemplateMapper.xml

@ -15,7 +15,10 @@
<result column="create_dept" property="createDept"/>
<result column="template_name" property="templateName"/>
<result column="template_type" property="templateType"/>
<result column="template_address" property="templateAddress"/>
<result column="template_url" property="templateUrl"/>
<result column="print_type" property="printType"/>
<result column="template_width" property="templateWidth"/>
<result column="template_height" property="templateHeight"/>
<result column="founder" property="founder"/>
<result column="version" property="version"/>
<result column="reserve1" property="reserve1"/>
@ -35,5 +38,42 @@
SELECT * FROM logpm_basic_print_template ${ew.customSqlSegment}
</select>
<select id="getTemplateInfo" resultType="com.logpm.basic.entity.BasicPrintTemplateEntity">
SELECT
id,
tenant_id,
create_user,
create_time,
update_user,
update_time,
status,
is_deleted,
create_dept,
template_name,
template_type,
founder,
version,
template_url,
file_name,
reserve1,
reserve2,
reserve3,
reserve4,
reserve5,
print_type,
template_width,
template_height
FROM
logpm_basic_print_template
<where>
is_deleted = 0
<if test="po.tenantId !=null and po.tenantId != ''">
AND tenant_id = #{po.tenantId}
</if>
<if test="po.templateType !=null and po.templateType != ''">
AND template_type = #{po.templateType}
</if>
</where>
</select>
</mapper>

13
blade-service/logpm-basic/src/main/java/com/logpm/basic/service/impl/BasicPrintTemplateServiceImpl.java

@ -33,9 +33,7 @@ import org.springblade.core.tool.utils.Func;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
@ -90,6 +88,15 @@ public class BasicPrintTemplateServiceImpl extends BaseServiceImpl<BasicPrintTem
return result;
}
@Override
public BasicPrintTemplateEntity selectTemplateLink(String tenantId, String templateType) {
Map<String,Object> map = new HashMap<>();
map.put("tenantId",tenantId);
map.put("templateType",templateType);
BasicPrintTemplateEntity basicPrintTemplateEntity = printTemplateMapper.getTemplateInfo(map);
return basicPrintTemplateEntity;
}
@Override
public boolean save(BasicPrintTemplateEntity entity) {
if (Func.isEmpty(entity)){

33
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataGoodsAllocationController.java

@ -171,14 +171,33 @@ public class BasicdataGoodsAllocationController extends BladeController {
/**
* 货位 自定义分页
* 货位获取模板信息
*/
@GetMapping("/qrCode")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "二维码生成", notes = "传入构建好的二维码值")
public R<?> qrCode(@ApiIgnore @RequestParam String qrCode,HttpServletResponse response) {
boolean result = basicdataGoodsAllocationService.getQrCodeImg(qrCode,response);
return R.status(result);
@PostMapping("/getTemplate")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "生成模板图片返回前端渲染", notes = "传入模板参数")
public R<?> getTemplate(@ApiIgnore @RequestBody Map<String,Object> params,HttpServletResponse response) {
boolean result = basicdataGoodsAllocationService.getTemplate(params,response);
if (result){
return R.status(result);
}else {
return R.fail("操作失败");
}
}
/**
* 获取二维码图片
*/
@GetMapping("/QRCodeImg")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "生成二维码图片返回前端渲染", notes = "传入二维码信息")
public R<?> getQRCodeImg(@ApiIgnore @RequestParam String qrCode,HttpServletResponse response) {
boolean result = basicdataGoodsAllocationService.getQRCodeImg(qrCode,response);
if (result){
return R.status(result);
}else {
return R.fail("操作失败");
}
}
}

29
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataGoodsShelfController.java

@ -27,17 +27,12 @@ import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import org.springblade.common.utils.QRCodeUtil;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -47,9 +42,6 @@ import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import springfox.documentation.annotations.ApiIgnore;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
@ -165,11 +157,26 @@ public class BasicdataGoodsShelfController extends BladeController {
/**
* 货架 分页
*/
@GetMapping("/qrCode")
@PostMapping("/getTemplate")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "生成二维码图片返回前端渲染", notes = "传入BasicdataGoodsShelf")
public R<?> qrCode(@ApiIgnore @RequestParam String qrCode,HttpServletResponse response) {
boolean result = basicdataGoodsShelfService.getQRCode(qrCode,response);
public R<?> getTemplate(@ApiIgnore @RequestBody Map<String,Object> params,HttpServletResponse response) {
boolean result = basicdataGoodsShelfService.getTemplate(params,response);
if (result){
return R.status(result);
}else {
return R.fail("操作失败");
}
}
/**
* 货架 分页
*/
@GetMapping("/getQRCodeImg")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "生成二维码图片返回前端渲染", notes = "传入BasicdataGoodsShelf")
public R<?> getTemplate(@ApiIgnore @RequestParam String qrCode,HttpServletResponse response) {
boolean result = basicdataGoodsShelfService.getQrRCodeImg(qrCode,response);
if (result){
return R.status(result);
}else {

8
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataWarehouseController.java

@ -19,7 +19,6 @@ package com.logpm.basicdata.controller;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.excel.BasicdataWarehouseExcel;
import com.logpm.basicdata.service.IBasicdataWarehouseService;
import com.logpm.basicdata.vo.BasicdataGoodsShelfVO;
import com.logpm.basicdata.vo.BasicdataWarehouseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -31,9 +30,7 @@ import javax.validation.Valid;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.IResultCode;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -133,7 +130,6 @@ public class BasicdataWarehouseController extends BladeController {
@ApiOperationSupport(order = 4)
@ApiOperation(value = "新增", notes = "传入warehouseWarehouse")
public R save(@Valid @RequestBody BasicdataWarehouseEntity warehouseWarehouse) {
return R.status(warehouseService.save(warehouseWarehouse));
}
@ -158,7 +154,9 @@ public class BasicdataWarehouseController extends BladeController {
}
/**
* 仓库 删除
* 删除
* @param ids 单条记录和多条记录均可使用
* @return
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)

22
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataGoodsAllocationService.java

@ -76,9 +76,27 @@ public interface IBasicdataGoodsAllocationService extends BaseService<BasicdataG
*/
IPage<BasicdataGoodsAllocationVO> selectGoodsAllocationList(Query query, Map<String, Object> basicdataGoodsAllocation);
/**
* 修改货位信息
* @param basicdataGoodsAllocationDto
* @return
*/
boolean updateGoodsAllocation(BasicdataGoodsAllocationDTO basicdataGoodsAllocationDto);
boolean getQrCodeImg(String qrCode, HttpServletResponse response);
/**
* 获取货位模板转换图片至前端
* @param params 货位信息
* @param response 响应流
* @return 渲染成功的模板图片
*/
boolean getTemplate(Map<String, Object> params, HttpServletResponse response);
/**
* 生成二维码图片并返回
* @param qrCode 二维码信息
* @param response 响应流
* @return 生成的二维码图片
*/
boolean getQRCodeImg(String qrCode, HttpServletResponse response);
}

17
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataGoodsShelfService.java

@ -93,11 +93,18 @@ public interface IBasicdataGoodsShelfService extends BaseService<BasicdataGoodsS
boolean removeGoodsShelf(List<String> ids);
/**
* 二维码生成
* @param qrCode
* @param response
* @return
* 获取模板内容结合模板
* @param params 参数
* @param response 响应流
* @return 渲染成功的模板图片
*/
boolean getTemplate(Map<String,Object> params,HttpServletResponse response);
/**
* 获取二维码图片
* @param qrCode 二维码信息
* @return 直接写出图片
*/
boolean getQRCode(String qrCode, HttpServletResponse response);
boolean getQrRCodeImg(String qrCode,HttpServletResponse response);
}

46
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataGoodsAllocationServiceImpl.java

@ -17,6 +17,8 @@
package com.logpm.basicdata.service.impl;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.logpm.basic.entity.BasicPrintTemplateEntity;
import com.logpm.basic.feign.IBasicPrintTemplateClient;
import com.logpm.basic.feign.IBasicTenantCodeClient;
import com.logpm.basicdata.dto.BasicdataGoodsAllocationDTO;
import com.logpm.basicdata.entity.BasicdataGoodsAllocationEntity;
@ -26,9 +28,9 @@ import com.logpm.basicdata.mapper.BasicdataGoodsAreaMapper;
import com.logpm.basicdata.service.IBasicdataGoodsAllocationService;
import com.logpm.basicdata.vo.BasicdataGoodsAllocationVO;
import com.logpm.basicdata.vo.BasicdataNodeVO;
import com.logpm.basicdata.vo.BasicdataWarehouseVO;
import lombok.AllArgsConstructor;
import org.springblade.common.utils.QRCodeUtil;
import org.springblade.common.utils.TemplateUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
@ -41,7 +43,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -62,6 +69,8 @@ public class BasicdataGoodsAllocationServiceImpl extends BaseServiceImpl<Basicda
private IBasicTenantCodeClient tenantCodeClient;
private IBasicPrintTemplateClient printTemplateClient;
@Override
public IPage<BasicdataGoodsAllocationVO> selectBasicdataGoodsAllocationPage(IPage<BasicdataGoodsAllocationVO> page, BasicdataGoodsAllocationVO BasicdataGoodsAllocation) {
return page.setRecords(baseMapper.selectBasicdataGoodsAllocationPage(page, BasicdataGoodsAllocation));
@ -131,7 +140,6 @@ public class BasicdataGoodsAllocationServiceImpl extends BaseServiceImpl<Basicda
String allocationCode = code+"-"+basicdataGoodsAllocationEntity.getColumnNum()+"-"+basicdataGoodsAllocationEntity.getLayerNum()+"-"+basicdataGoodsAllocationEntity.getGoodsAllocationName();
basicdataGoodsAllocationEntity.setQrCode(allocationCode);
boolean result = SqlHelper.retBool(goodsAllocationMapper.insert(basicdataGoodsAllocationEntity));
return result;
}
@ -157,15 +165,43 @@ public class BasicdataGoodsAllocationServiceImpl extends BaseServiceImpl<Basicda
return result;
}
@Override
public boolean getQrCodeImg(String qrCode, HttpServletResponse response) {
public boolean getTemplate(Map<String, Object> params, HttpServletResponse response) {
//查询模板信息
String tenantId = AuthUtil.getTenantId();
BasicPrintTemplateEntity template = printTemplateClient.getTemplate(tenantId, "8");
String qrCode = (String) params.get("qrCode");
if (Func.isBlank(qrCode)){
log.error("qrCode参数异常:+{"+qrCode+"}");
return false;
}
//生成二维码至本地并获取文件路径
String fileName = QRCodeUtil.createCodeToFile(qrCode);
params.put("img",fileName);
try {
//模板渲染
BufferedImage bufferedImage = TemplateUtil.turnImage(template.getFileName(), params, template.getTemplateUrl(), template.getTemplateWidth(), template.getTemplateHeight());
ServletOutputStream os = response.getOutputStream();
ImageIO.write(bufferedImage,"png",os);
} catch (IOException e) {
e.printStackTrace();
return false;
}finally {
File file = new File(fileName);
file.delete();
}
return true;
}
@Override
public boolean getQRCodeImg(String qrCode, HttpServletResponse response) {
try {
QRCodeUtil.createCodeToOutputStream(qrCode,response);
}catch (Exception e){
log.error("二维码生成失败{"+e.getMessage()+"}");
} catch (Exception e) {
e.printStackTrace();
log.error("二维码图片创建失败+{"+e.getMessage()+"}");
return false;
}
return true;
}

58
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataGoodsShelfServiceImpl.java

@ -19,12 +19,10 @@ package com.logpm.basicdata.service.impl;
import cn.hutool.extra.qrcode.QrCodeUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
//import com.logpm.basic.entity.BasicPrintTemplateEntity;
//import com.logpm.basic.mapper.BasicPrintTemplateMapper;
import com.google.zxing.WriterException;
import com.logpm.basic.entity.BasicPrintTemplateEntity;
import com.logpm.basic.feign.IBasicPrintTemplateClient;
import com.logpm.basic.feign.IBasicTenantCodeClient;
import com.logpm.basicdata.dto.BasicdataGoodsShelfDTO;
import com.logpm.basicdata.entity.BasicdataGoodsShelfEntity;
@ -34,27 +32,26 @@ import com.logpm.basicdata.service.IBasicdataGoodsShelfService;
import com.logpm.basicdata.vo.BasicdataGoodsShelfVO;
import lombok.AllArgsConstructor;
import org.springblade.common.utils.QRCodeUtil;
import org.springblade.common.utils.TemplateUtil;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.IoUtil;
import org.springblade.core.tool.utils.WebUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.StringUtils;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -72,6 +69,8 @@ public class BasicdataGoodsShelfServiceImpl extends BaseServiceImpl<BasicdataGoo
private IBasicTenantCodeClient basicTenantCodeClient;
private IBasicPrintTemplateClient basicPrintTemplateClient;
@Override
public IPage<BasicdataGoodsShelfVO> selectBasicdataGoodsShelfPage(IPage<BasicdataGoodsShelfVO> page, BasicdataGoodsShelfVO basicdataGoodsShelfVO) {
@ -175,14 +174,41 @@ public class BasicdataGoodsShelfServiceImpl extends BaseServiceImpl<BasicdataGoo
}
@Override
public boolean getQRCode(String qrCode, HttpServletResponse response) {
try {
QRCodeUtil.createCodeToOutputStream(qrCode,response);
}catch (Exception e){
log.error("二维码生成失败{"+e.getMessage()+"}");
public boolean getTemplate(Map<String,Object> params,HttpServletResponse response) {
String tenantId = AuthUtil.getTenantId();
BasicPrintTemplateEntity template = basicPrintTemplateClient.getTemplate(tenantId, "9");
String qrCode = (String) params.get("qrCode");
if (Func.isBlank(qrCode)){
log.error("参数异常:+{"+qrCode+"}");
return false;
}
String filename = QRCodeUtil.createCodeToFile(qrCode);
params.put("img",filename);
ServletOutputStream os =null;
try {
BufferedImage image = TemplateUtil.turnImage(template.getTemplateName(), params,template.getTemplateUrl(),template.getTemplateWidth(),template.getTemplateHeight());
os = response.getOutputStream();
ImageIO.write(image, "png",os);
os.flush();
} catch (IOException e) {
e.printStackTrace();
log.error("获取响应流失败+{"+e.getMessage()+"}");
}finally {
File file = new File(filename);
file.delete();
}
return true;
}
@Override
public boolean getQrRCodeImg(String qrCode, HttpServletResponse response) {
try {
QRCodeUtil.createCodeToOutputStream(qrCode,response);
} catch (Exception e) {
e.printStackTrace();
log.error("二维码图片生成失败+{"+e.getMessage()+"}");
}
return false;
}
}

2
doc/dpm/物流租户系统.pdma.json

@ -34265,4 +34265,4 @@
}
],
"dbConn": []
}
}

Loading…
Cancel
Save