Browse Source

添加组合出库的二维码生成功能

lwx_dev
erdanergou 3 years ago
parent
commit
5becebd7f4
  1. 32
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java
  2. 40
      src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java
  3. 2
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  4. 30
      src/main/java/com/dreamchaser/depository_manage/mapper/GroupMapper.java
  5. 15
      src/main/java/com/dreamchaser/depository_manage/mapper/GroupMapper.xml
  6. 2
      src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java
  7. 23
      src/main/java/com/dreamchaser/depository_manage/service/GroupService.java
  8. 30
      src/main/java/com/dreamchaser/depository_manage/service/impl/GroupServiceImpl.java
  9. 64
      src/main/java/com/dreamchaser/depository_manage/utils/CreateQrCodeUtil.java
  10. 1
      src/main/resources/templates/index_mobile.html
  11. 83
      src/main/resources/templates/pages/application/application-in.html
  12. 5
      src/main/resources/templates/pages/application/application_multi.html
  13. 89
      src/main/resources/templates/pages/group/group_edit.html
  14. 23
      src/test/java/com/dreamchaser/depository_manage/TestForOther.java
  15. 1
      target/classes/templates/index_mobile.html
  16. 5
      target/classes/templates/pages/application/application_multi.html
  17. 3
      target/classes/templates/pages/chart/chart-out_back.html
  18. 4
      target/classes/templates/pages/chart/chart-stock_back.html

32
src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java

@ -33,8 +33,6 @@ public class DepositoryRecordController {
@Autowired @Autowired
private CompanyService companyService; private CompanyService companyService;
@Autowired @Autowired
private RedisTemplate<Object,Object> redisTemplate;
@Autowired
private RedisTemplate<String,String> redisTemplateForHash; private RedisTemplate<String,String> redisTemplateForHash;
@Autowired @Autowired
private PlaceService placeService; private PlaceService placeService;
@ -620,19 +618,19 @@ public class DepositoryRecordController {
List<Integer> mids = (List<Integer>) map.get("mids"); List<Integer> mids = (List<Integer>) map.get("mids");
List<Integer> depositoryIds = (List<Integer>) map.get("depositoryIds"); List<Integer> depositoryIds = (List<Integer>) map.get("depositoryIds");
List<String> placeCodes = (List<String>) map.get("placeCodes"); List<String> placeCodes = (List<String>) map.get("placeCodes");
List<Object> nowmids = redisTemplate.opsForList().range("mids"+userToken.getId(), 0, -1); List<String> nowmids = redisTemplateForHash.opsForList().range("mids"+userToken.getId(), 0, -1);
for (int i = 0; i < mids.size(); i++) { for (int i = 0; i < mids.size(); i++) {
if(nowmids.contains(mids.get(i))){ if(nowmids.contains(mids.get(i))){
continue; continue;
} }
redisTemplate.opsForList().leftPush("mids"+userToken.getId(), mids.get(i)); redisTemplateForHash.opsForList().leftPush("mids"+userToken.getId(), mids.get(i).toString());
redisTemplate.opsForList().leftPush("depositoryIds"+userToken.getId(), depositoryIds.get(i)); redisTemplateForHash.opsForList().leftPush("depositoryIds"+userToken.getId(), depositoryIds.get(i).toString());
redisTemplate.opsForList().leftPush("placeCodes"+userToken.getId(), placeCodes.get(i)); redisTemplateForHash.opsForList().leftPush("placeCodes"+userToken.getId(), placeCodes.get(i).toString());
} }
redisTemplate.expire("mids"+userToken.getId(),24 * 60 * 60, TimeUnit.SECONDS); redisTemplateForHash.expire("mids"+userToken.getId(),24 * 60 * 60, TimeUnit.SECONDS);
redisTemplate.expire("depositoryIds"+userToken.getId(),24 * 60 * 60, TimeUnit.SECONDS); redisTemplateForHash.expire("depositoryIds"+userToken.getId(),24 * 60 * 60, TimeUnit.SECONDS);
redisTemplate.expire("placeCodes"+userToken.getId(),24 * 60 * 60, TimeUnit.SECONDS); redisTemplateForHash.expire("placeCodes"+userToken.getId(),24 * 60 * 60, TimeUnit.SECONDS);
return CrudUtil.postHandle(1,1); return CrudUtil.postHandle(1,1);
} }
@ -645,17 +643,17 @@ public class DepositoryRecordController {
@PostMapping("/deleteApplicationToRedis") @PostMapping("/deleteApplicationToRedis")
public RestResponse deleteApplicationToRedis(@RequestBody Map<String,Object> map,HttpServletRequest request){ public RestResponse deleteApplicationToRedis(@RequestBody Map<String,Object> map,HttpServletRequest request){
UserByPort userToken= (UserByPort) request.getAttribute("userToken"); UserByPort userToken= (UserByPort) request.getAttribute("userToken");
List<Integer> mids = (List<Integer>) map.get("mids"); List<Integer> mids = (List<Integer>) map.get("iids");
List<Integer> depositoryIds = (List<Integer>) map.get("depositoryIds"); List<Integer> depositoryIds = (List<Integer>) map.get("depositoryIds");
List<String> placeCodes = (List<String>) map.get("placeCodes"); List<String> placeCodes = (List<String>) map.get("placeCodes");
for (int i = 0; i < mids.size(); i++) { for (int i = 0; i < mids.size(); i++) {
redisTemplate.opsForList().remove("mids"+userToken.getId(),1,mids.get(i)); redisTemplateForHash.opsForList().remove("mids"+userToken.getId(),1,mids.get(i).toString());
} }
for (int i = 0; i < depositoryIds.size(); i++) { for (int i = 0; i < depositoryIds.size(); i++) {
redisTemplate.opsForList().remove("depositoryIds"+userToken.getId(),1,depositoryIds.get(i)); redisTemplateForHash.opsForList().remove("depositoryIds"+userToken.getId(),1,depositoryIds.get(i).toString());
} }
for (int i = 0; i < placeCodes.size(); i++) { for (int i = 0; i < placeCodes.size(); i++) {
redisTemplate.opsForList().remove("placeCodes"+userToken.getId(),1,placeCodes.get(i)); redisTemplateForHash.opsForList().remove("placeCodes"+userToken.getId(),1,placeCodes.get(i).toString());
} }
return CrudUtil.postHandle(1,1); return CrudUtil.postHandle(1,1);
} }
@ -833,18 +831,18 @@ public class DepositoryRecordController {
Integer start = (page - 1) * pagesize; Integer start = (page - 1) * pagesize;
Integer end = page * 10; Integer end = page * 10;
UserByPort userToken= (UserByPort) request.getAttribute("userToken"); UserByPort userToken= (UserByPort) request.getAttribute("userToken");
Long size = redisTemplate.boundListOps("mids"+userToken.getId()).size(); Long size = redisTemplateForHash.boundListOps("mids"+userToken.getId()).size();
if(end > size){ if(end > size){
end = ObjectFormatUtil.toInteger(size); end = ObjectFormatUtil.toInteger(size);
} }
List<ApplicationModel> list = new ArrayList<>(); List<ApplicationModel> list = new ArrayList<>();
for (int i = start; i < end; i++) { for (int i = start; i < end; i++) {
// 获取物料编号 // 获取物料编号
Integer mid =ObjectFormatUtil.toInteger(redisTemplate.opsForList().index("mids"+userToken.getId(),i)); Integer mid =ObjectFormatUtil.toInteger(redisTemplateForHash.opsForList().index("mids"+userToken.getId(),i));
// 获取仓库编号 // 获取仓库编号
Integer depositoryId =ObjectFormatUtil.toInteger(redisTemplate.opsForList().index("depositoryIds"+userToken.getId(),i)); Integer depositoryId =ObjectFormatUtil.toInteger(redisTemplateForHash.opsForList().index("depositoryIds"+userToken.getId(),i));
// 获取库位编码 // 获取库位编码
String placeCode =(String)(redisTemplate.opsForList().index("placeCodes"+userToken.getId(),i)); String placeCode =(String)(redisTemplateForHash.opsForList().index("placeCodes"+userToken.getId(),i));
// 获取物料信息 // 获取物料信息
Inventory materialById = materialService.findInventoryByMid(mid); Inventory materialById = materialService.findInventoryByMid(mid);
// 获取仓库信息 // 获取仓库信息

40
src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java

@ -1,9 +1,9 @@
package com.dreamchaser.depository_manage.controller; package com.dreamchaser.depository_manage.controller;
import cn.hutool.core.lang.Snowflake;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.entity.*;
import com.dreamchaser.depository_manage.exception.MyException; import com.dreamchaser.depository_manage.exception.MyException;
import com.dreamchaser.depository_manage.pojo.ApplicationModel;
import com.dreamchaser.depository_manage.pojo.GroupInfoP; import com.dreamchaser.depository_manage.pojo.GroupInfoP;
import com.dreamchaser.depository_manage.pojo.RestResponse; import com.dreamchaser.depository_manage.pojo.RestResponse;
import com.dreamchaser.depository_manage.pojo.StatusInfo; import com.dreamchaser.depository_manage.pojo.StatusInfo;
@ -12,15 +12,12 @@ import com.dreamchaser.depository_manage.service.GroupService;
import com.dreamchaser.depository_manage.service.MaterialService; import com.dreamchaser.depository_manage.service.MaterialService;
import com.dreamchaser.depository_manage.service.impl.QyWxOperationService; import com.dreamchaser.depository_manage.service.impl.QyWxOperationService;
import com.dreamchaser.depository_manage.utils.*; import com.dreamchaser.depository_manage.utils.*;
import com.sun.org.apache.xpath.internal.operations.Bool;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.sql.Time; import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -452,6 +449,12 @@ public class GroupController {
} }
/**
* 用于构造组合出库单
* @param map 出库数据
* @param request
* @return
*/
@PostMapping("/applicationOutForGroup") @PostMapping("/applicationOutForGroup")
public RestResponse applicationOutForGroup(@RequestBody Map<String, Object> map, HttpServletRequest request) { public RestResponse applicationOutForGroup(@RequestBody Map<String, Object> map, HttpServletRequest request) {
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); UserByPort userToken = (UserByPort) request.getAttribute("userToken");
@ -520,6 +523,33 @@ public class GroupController {
} }
// 构造组合二维码
@PostMapping("/createQrCode")
public RestResponse createQrCode(@RequestBody Map<String, Object> map) {
// 通过雪花算法计算随机数
Snowflake snowflake = new Snowflake(10, 10, true);
String qrCode = snowflake.nextIdStr();
Integer gid = ObjectFormatUtil.toInteger(map.get("gid"));
String qrCodeByMcode = groupService.findQrCodeByGid(gid);
if (qrCodeByMcode == null) {
Map<String, Object> param = new HashMap<>();
param.put("gid", gid);
param.put("code", qrCode);
groupService.addQrCodeByGroup(param);
} else {
qrCode = qrCodeByMcode;
}
try {
// 二维码保存信息
return RestResponse.CreateQrCode(qrCode);
} catch (IOException e) {
return new RestResponse("err: " + e.getMessage(), 678, new StatusInfo("失败", "请联系开发人员"));
}
}
/** /**
* 用于判断当前组合的数量是否合法 * 用于判断当前组合的数量是否合法

2
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -812,7 +812,9 @@ public class PageController {
public ModelAndView groupEdit(Integer id){ public ModelAndView groupEdit(Integer id){
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();
mv.setViewName("pages/group/group_edit"); mv.setViewName("pages/group/group_edit");
Group group = groupService.findGroupOnlyById(id);
mv.addObject("id",id); mv.addObject("id",id);
mv.addObject("record",group);
return mv; return mv;
} }

30
src/main/java/com/dreamchaser/depository_manage/mapper/GroupMapper.java

@ -12,7 +12,6 @@ import java.util.Map;
@Mapper @Mapper
public interface GroupMapper { public interface GroupMapper {
/** /**
* 用于查找所有组合不包含其他 * 用于查找所有组合不包含其他
* @return * @return
@ -20,6 +19,14 @@ public interface GroupMapper {
List<Group> findAllGroupOnly(String gname); List<Group> findAllGroupOnly(String gname);
/**
* 根据组合id获取具体信息
* @param gid 组合id
* @return
*/
Group findGroupOnlyById(Integer gid);
/** /**
* 用于查找所有组合 * 用于查找所有组合
* @return * @return
@ -33,12 +40,6 @@ public interface GroupMapper {
*/ */
GroupInfo findGroupById(Integer id); GroupInfo findGroupById(Integer id);
/**
* 根据主键查询组合不包含其他数据
* @param id 主键
* @return
*/
Group findGroupOnlyById(Integer id);
/** /**
@ -168,4 +169,19 @@ public interface GroupMapper {
*/ */
Integer delGroup(Integer id); Integer delGroup(Integer id);
/**
* 用于添加组合与二维码的对应关系
* @param map 具体添加数据
* @return
*/
Integer addQrCodeByGroup(Map<String,Object> map);
/**
* 用于通过组合id查询对应的码值
* @param gid 组合id
* @return
*/
String findQrCodeByGid(Integer gid);
} }

15
src/main/java/com/dreamchaser/depository_manage/mapper/GroupMapper.xml

@ -316,6 +316,21 @@
where id = #{id} where id = #{id}
</update> </update>
<select id="findQrCodeByGid" parameterType="int" resultType="String">
select code
from gidandcode
where gid = #{gid}
</select>
<insert id="addQrCodeByGroup">
insert into gidandcode(id,gid,code)
values (
#{id},
#{gid},
#{code}
)
</insert>
<update id="updateGroupOnly"> <update id="updateGroupOnly">
update update

2
src/main/java/com/dreamchaser/depository_manage/pojo/RestResponse.java

@ -78,6 +78,8 @@ public class RestResponse implements Serializable {
return new RestResponse(qrCode,200,new StatusInfo("成功!","二维码生成成功")); return new RestResponse(qrCode,200,new StatusInfo("成功!","二维码生成成功"));
} }
/** /**
* 将base64编码转为图片 * 将base64编码转为图片
* @param imgStr * @param imgStr

23
src/main/java/com/dreamchaser/depository_manage/service/GroupService.java

@ -20,6 +20,27 @@ public interface GroupService {
*/ */
List<GroupInfo> findAllGroup(); List<GroupInfo> findAllGroup();
/**
* 根据组合id获取具体信息
* @param gid 组合id
* @return
*/
Group findGroupOnlyById(Integer gid);
/**
* 用于通过组合id查询对应的码值
* @param gid 组合id
* @return
*/
String findQrCodeByGid(Integer gid);
/**
* 用于添加组合与二维码的对应关系
* @param map 具体添加数据
* @return
*/
Integer addQrCodeByGroup(Map<String,Object> map);
/** /**
* 根据组合id查询对应组合 * 根据组合id查询对应组合
* @param id 组合id * @param id 组合id
@ -179,4 +200,6 @@ public interface GroupService {
*/ */
List<GroupInfo> findGroupInfoByGid(Integer gid); List<GroupInfo> findGroupInfoByGid(Integer gid);
} }

30
src/main/java/com/dreamchaser/depository_manage/service/impl/GroupServiceImpl.java

@ -54,6 +54,36 @@ public class GroupServiceImpl implements GroupService {
return null; return null;
} }
/**
* 根据组合id获取具体信息
* @param gid 组合id
* @return
*/
@Override
public Group findGroupOnlyById(Integer gid) {
return groupMapper.findGroupOnlyById(gid);
}
/**
* 根据组合id查询对应组合
* @param gid 组合id
* @return
*/
@Override
public String findQrCodeByGid(Integer gid) {
return groupMapper.findQrCodeByGid(gid);
}
/**
* 用于添加组合与二维码的对应关系
* @param map 具体添加数据
* @return
*/
@Override
public Integer addQrCodeByGroup(Map<String, Object> map) {
return groupMapper.addQrCodeByGroup(map);
}
/** /**
* 根据组合id查询对应组合 * 根据组合id查询对应组合
* *

64
src/main/java/com/dreamchaser/depository_manage/utils/CreateQrCodeUtil.java

@ -3,10 +3,16 @@ package com.dreamchaser.depository_manage.utils;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import com.google.zxing.BarcodeFormat; import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType; import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix; import com.google.zxing.common.BitMatrix;
import com.google.zxing.oned.Code128Writer;
import com.google.zxing.oned.EAN13Writer;
import com.google.zxing.pdf417.encoder.BarcodeMatrix;
import com.google.zxing.qrcode.QRCodeWriter; import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import org.apache.http.util.TextUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@ -15,13 +21,25 @@ import javax.servlet.ServletOutputStream;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap; import java.util.HashMap;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.Map;
/* /*
** 二维码生成 ** 二维码生成或条形码生成
*/ */
public class CreateQrCodeUtil { public class CreateQrCodeUtil {
/**
* 生成二维码
* @param content 对应数据
* @param width
* @param height
* @return base64格式的字符串
* @throws IOException
*/
public static String createQrCode(String content, int width, int height) throws IOException { public static String createQrCode(String content, int width, int height) throws IOException {
String resultImage = ""; String resultImage = "";
if (!StringUtils.isEmpty(content)) { if (!StringUtils.isEmpty(content)) {
@ -56,5 +74,49 @@ public class CreateQrCodeUtil {
} }
/**
* 用于创建code_128类型的条形码
* @param content 条形码存储的数据
* @param height 高度
* @param width 宽度
* @return base64格式的字符串
*/
public static String CreateBarCodeCode128(String content, int height, int width){
String resultImage = "";
if (!StringUtils.isEmpty(content)) {
ServletOutputStream stream = null;
ByteArrayOutputStream os = new ByteArrayOutputStream();
Hashtable hints = new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); // 指定字符编码为“utf-8”
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M); // 指定二维码的纠错等级为中级
hints.put(EncodeHintType.MARGIN, 2); // 设置图片的边距
Code128Writer writer = new Code128Writer();
BitMatrix bitMatrix = null;
try {
bitMatrix = writer.encode(content, BarcodeFormat.CODE_128, width, height,hints);
} catch (WriterException e) {
e.printStackTrace();
}
BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix);
try {
ImageIO.write(bufferedImage, "png", os);
} catch (IOException e) {
e.printStackTrace();
}
/**
* 原生转码前面没有 data:image/png;base64 这些字段返回给前端是无法被解析可以让前端加也可以在下面加上
*/
resultImage = new String("data:image/png;base64," + Base64.encode(os.toByteArray()));
return resultImage;
}
return null;
}
} }

1
src/main/resources/templates/index_mobile.html

@ -39,7 +39,6 @@
.layui-nav-item { .layui-nav-item {
color: #1b1d21; color: #1b1d21;
height: 35px !important;
line-height: 35px !important; line-height: 35px !important;
} }
.layui-layout-admin .layui-body{ .layui-layout-admin .layui-body{

83
src/main/resources/templates/pages/application/application-in.html

@ -598,49 +598,52 @@
}, },
end: function () { end: function () {
var mid = materialId.value; var mid = materialId.value;
$.ajax({ if(mid !== ''){
url: "/material/findMatrialById?mid=" + mid, $.ajax({
type: "get", url: "/material/findMatrialById?mid=" + mid,
dataType: 'json', type: "get",
contentType: "application/json;charset=utf-8", dataType: 'json',
success: function (d) { contentType: "application/json;charset=utf-8",
var material = d.data.materialById; success: function (d) {
var code = material.code; var material = d.data.materialById;
if (code === undefined) { var code = material.code;
code = ""; if (code === undefined) {
} code = "";
codeValue.value = code; }
priceValue.value = material.price; codeValue.value = code;
var materialAndBarCodeList = material["materialAndBarCodeList"]; priceValue.value = material.price;
if (materialAndBarCodeList.length > 0) { var materialAndBarCodeList = material["materialAndBarCodeList"];
// 如果有对应的条形码 if (materialAndBarCodeList.length > 0) {
var barCodeInput = barCodeItem.childNodes[1].childNodes[1]; // 如果有对应的条形码
var barCodeImg = barCodeItem.childNodes[1].childNodes[3]; var barCodeInput = barCodeItem.childNodes[1].childNodes[1];
var id = barCodeInput.id; var barCodeImg = barCodeItem.childNodes[1].childNodes[3];
$("#" + id).remove(); var id = barCodeInput.id;
// barCodeInput.style = "display:none"; $("#" + id).remove();
var idNumber = materialId.name.split("mid")[1]; // barCodeInput.style = "display:none";
var barCodeSelect = ` var idNumber = materialId.name.split("mid")[1];
var barCodeSelect = `
<select id=` + "barCode" + idNumber + ` name=` + "barCode" + idNumber + `> <select id=` + "barCode" + idNumber + ` name=` + "barCode" + idNumber + `>
</select>`; </select>`;
$("#" + barCodeImg.id).before(barCodeSelect); $("#" + barCodeImg.id).before(barCodeSelect);
form.render(); form.render();
$.each(materialAndBarCodeList, function (index, item) { $.each(materialAndBarCodeList, function (index, item) {
$("#barCode" + idNumber).append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素 $("#barCode" + idNumber).append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
}); });
form.render(); form.render();
} }
var shelfLife = material.shelfLife; var shelfLife = material.shelfLife;
if (shelfLife !== null && shelfLife !== undefined) { if (shelfLife !== null && shelfLife !== undefined) {
$("#" + "producedDateItem" + idNumber).show(); $("#" + "producedDateItem" + idNumber).show();
$("#" + "producedDate" + idNumber).attr("lay-verify", "required"); $("#" + "producedDate" + idNumber).attr("lay-verify", "required");
} else { } else {
$("#" + "producedDateItem" + idNumber).hide(); $("#" + "producedDateItem" + idNumber).hide();
form.render(); form.render();
}
} }
} });
}); }
} }
}); });
@ -895,8 +898,6 @@
} }
}); });
}; };
// 用于扫描入库位置 // 用于扫描入库位置
scanLocationByQrCode = function (obj) { scanLocationByQrCode = function (obj) {
parent.wx.scanQRCode({ parent.wx.scanQRCode({

5
src/main/resources/templates/pages/application/application_multi.html

@ -88,11 +88,11 @@
//监听表格复选框选择 //监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) { table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj) // console.log(obj)
}); });
table.on('edit(currentTableFilter)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值" table.on('edit(currentTableFilter)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
console.log(obj.data); //所在行的所有相关数据 // console.log(obj.data); //所在行的所有相关数据
}); });
/** /**
@ -300,7 +300,6 @@
} }
else if(obj.event === 'selectDepository'){ else if(obj.event === 'selectDepository'){
console.log(data)
} }
}); });
}); });

89
src/main/resources/templates/pages/group/group_edit.html

@ -13,6 +13,42 @@
<div class="layuimini-container"> <div class="layuimini-container">
<div class="layuimini-main"> <div class="layuimini-main">
<input id="id" th:value="${id}" style="display:none;"> <input id="id" th:value="${id}" style="display:none;">
<fieldset class="layui-elem-field layui-field-title">
<legend>基本信息</legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-inline">
<label class="layui-form-label">组合名称</label>
<div class="layui-input-block">
<input type="text" name="gname" id="gname" placeholder="请输入组合名称" th:value="${record.getGname()}" onblur="editGroupName(this)"
autocomplete="off" class="layui-input">
<input type="text" name="gid" id="gid" placeholder="请输入组合名称" th:value="${record.getId()}" style="display:none;"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">组合编码</label>
<div class="layui-input-block">
<input type="text" name="gcode" id="gcode" placeholder="请输入组合编码" th:value="${record.getCode()}" readonly
autocomplete="off" class="layui-input">
</div>
</div>
<!-- 二维码生成-->
<div class="layui-form-item" style="display: none">
<label class="layui-form-label">二维码</label>
<div class="layui-input-inline">
<input id="createCode" type="button" class="layui-btn layui-btn-radius layui-btn-normal" onclick="createQrCode()" value="生成二维码"/>
<img id="qrCode" style="display:none;">
</div>
</div>
</form>
</div>
</fieldset>
<script id="toolbarDemo" type="text/html"> <script id="toolbarDemo" type="text/html">
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add">添加</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add">添加</button>
@ -35,6 +71,11 @@
// 用于点击搜索按钮 // 用于点击搜索按钮
function selectMaterial(obj) { function selectMaterial(obj) {
} }
// 用于修改组合名称
function editGroupName(obj){}
// 用于创建二维码
function createQrCode(obj){}
layui.use(['form', 'table'], function () { layui.use(['form', 'table'], function () {
var $ = layui.jquery, var $ = layui.jquery,
form = layui.form, form = layui.form,
@ -234,6 +275,54 @@
}); });
// 用于修改组合名称
editGroupName = function (obj) {
let gid = $("#gid").val();
let gname = obj.value;
let req = {};
req.id = gid;
req.gname = gname;
$.ajax({
url:'/group/editGroupInfo',
dataType:"json",
type:"post",
data:JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (data) {
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
}
}
});
};
// 用于创建二维码
createQrCode = function () {
var gid = $("#gid").val();
var req = {};
req.gid = gid;
$.ajax({
url: "/group/createQrCode",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (d) {
var data = d.data;
layer.close(this.layerIndex);
$("#qrCode").attr("src",data);
$("#qrCode").show();
$("#createCode").hide();
}
})
}
}) })
</script> </script>

23
src/test/java/com/dreamchaser/depository_manage/TestForOther.java

@ -1,16 +1,16 @@
package com.dreamchaser.depository_manage; package com.dreamchaser.depository_manage;
import com.dreamchaser.depository_manage.entity.Depository; import com.dreamchaser.depository_manage.utils.CreateQrCodeUtil;
import com.dreamchaser.depository_manage.entity.UserByPort;
import com.dreamchaser.depository_manage.service.DepositoryService;
import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import sun.misc.BASE64Decoder;
import java.util.List; import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/** /**
@ -21,11 +21,14 @@ import java.util.List;
public class TestForOther { public class TestForOther {
@Autowired
DepositoryService depositoryService;
@Test @Test
public void Test(){ public void Test() throws IOException {
try {
String s = CreateQrCodeUtil.CreateBarCodeCode128("1603198268619399168", 100, 200);
System.out.println(s);
} catch (Exception e) {
e.printStackTrace();
}
} }
} }

1
target/classes/templates/index_mobile.html

@ -39,7 +39,6 @@
.layui-nav-item { .layui-nav-item {
color: #1b1d21; color: #1b1d21;
height: 35px !important;
line-height: 35px !important; line-height: 35px !important;
} }
.layui-layout-admin .layui-body{ .layui-layout-admin .layui-body{

5
target/classes/templates/pages/application/application_multi.html

@ -88,11 +88,11 @@
//监听表格复选框选择 //监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) { table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj) // console.log(obj)
}); });
table.on('edit(currentTableFilter)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值" table.on('edit(currentTableFilter)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
console.log(obj.data); //所在行的所有相关数据 // console.log(obj.data); //所在行的所有相关数据
}); });
/** /**
@ -300,7 +300,6 @@
} }
else if(obj.event === 'selectDepository'){ else if(obj.event === 'selectDepository'){
console.log(data)
} }
}); });
}); });

3
target/classes/templates/pages/chart/chart-out_back.html

@ -278,9 +278,6 @@
xAxis: {type: 'category'}, xAxis: {type: 'category'},
yAxis: {}, yAxis: {},
series: [ series: [
{type: 'bar'},
{type: 'bar'},
{type: 'bar'}
] ]
}; };

4
target/classes/templates/pages/chart/chart-stock_back.html

@ -207,8 +207,6 @@
xAxis: {type: 'category'}, xAxis: {type: 'category'},
yAxis: {}, yAxis: {},
series: [ series: [
{type: 'bar'},
{type: 'bar'}
] ]
}; };
@ -249,7 +247,7 @@
}, },
success: function (result) { success: function (result) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (result.code == 0) { if (result.code === 0) {
echartsRecords.setOption(optionRecords); echartsRecords.setOption(optionRecords);
echartsPies.setOption(optionPies); echartsPies.setOption(optionPies);
echartsDataset.setOption(optionDataset); echartsDataset.setOption(optionDataset);

Loading…
Cancel
Save