diff --git a/ant-design-vue-jeecg/src/views/hanger/ZyHangList.vue b/ant-design-vue-jeecg/src/views/hanger/ZyHangList.vue
new file mode 100644
index 00000000..228f5493
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/hanger/ZyHangList.vue
@@ -0,0 +1,285 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+
+
+
+
+
+
新增
+
导出
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 无图片
+
+
+
+
+
+
+ 显示3d模型
+
+
+
+ 无文件
+
+ 下载
+
+
+
+
+ 编辑
+
+ handleDelete(record.id)">
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/hanger/ZyHangPointList.vue b/ant-design-vue-jeecg/src/views/hanger/ZyHangPointList.vue
new file mode 100644
index 00000000..ce4cb2f1
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/hanger/ZyHangPointList.vue
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+
+
+
新增
+
导出
+
+ 导入
+
+
+
+
+
+ 删除
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 无图片
+
+
+
+ 无文件
+
+ 下载
+
+
+
+
+ 编辑
+
+
+
+ 更多
+
+
+ 详情
+
+
+ handleDelete(record.id)">
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangForm.vue b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangForm.vue
new file mode 100644
index 00000000..f8e1ad1d
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangForm.vue
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangModal.vue b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangModal.vue
new file mode 100644
index 00000000..ac2423ef
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangModal.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangModal__Style#Drawer.vue b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangModal__Style#Drawer.vue
new file mode 100644
index 00000000..297b3480
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangModal__Style#Drawer.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangPointForm.vue b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangPointForm.vue
new file mode 100644
index 00000000..f31173ae
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangPointForm.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangPointModal.vue b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangPointModal.vue
new file mode 100644
index 00000000..884b144e
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangPointModal.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangPointModal__Style#Drawer.vue b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangPointModal__Style#Drawer.vue
new file mode 100644
index 00000000..30a01652
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/hanger/modules/ZyHangPointModal__Style#Drawer.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/productplan/ZyProductPlanList.vue b/ant-design-vue-jeecg/src/views/productplan/ZyProductPlanList.vue
index 14e63ec8..2429657f 100644
--- a/ant-design-vue-jeecg/src/views/productplan/ZyProductPlanList.vue
+++ b/ant-design-vue-jeecg/src/views/productplan/ZyProductPlanList.vue
@@ -313,7 +313,6 @@ export default {
getPaiWeiTu(record) {
// alert(JSON.stringify(record));
- alert("请稍等,正在开发中。。。")
getAction(this.url.paiweitu, record).then((res) => {
if (res.success) {
console.log("the paiweitu----------" + JSON.stringify(res.result))
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/hanger/controller/ZyHangController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/hanger/controller/ZyHangController.java
new file mode 100644
index 00000000..c86750ca
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/hanger/controller/ZyHangController.java
@@ -0,0 +1,214 @@
+package org.jeecg.modules.hanger.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.zxing.BarcodeFormat;
+import com.google.zxing.EncodeHintType;
+import com.google.zxing.WriterException;
+import com.google.zxing.client.j2se.MatrixToImageWriter;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.qrcode.QRCodeWriter;
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.hanger.entity.ZyHang;
+import org.jeecg.modules.hanger.service.IZyHangService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.*;
+
+/**
+ * @Description: 吊挂表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-02
+ * @Version: V1.0
+ */
+@Api(tags = "吊挂表")
+@RestController
+@RequestMapping("/org.jeecg.modules.hanger/zyHang")
+@Slf4j
+public class ZyHangController extends JeecgController {
+ @Autowired
+ private IZyHangService zyHangService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param zyHang
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ @AutoLog(value = "吊挂表-分页列表查询")
+ @ApiOperation(value = "吊挂表-分页列表查询", notes = "吊挂表-分页列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryPageList(ZyHang zyHang,
+ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(zyHang, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = zyHangService.page(page, queryWrapper);
+ if (!ObjectUtils.isEmpty(pageList)) {
+ Map hints = new HashMap();
+ //设置UTF-8, 防止中文乱码
+ hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
+ //设置二维码四周白色区域的大小
+ hints.put(EncodeHintType.MARGIN, 1);
+ //设置二维码的容错性
+ hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
+ //width:图片完整的宽;height:图片完整的高
+ //因为要在二维码下方附上文字,所以把图片设置为长方形(高大于宽)
+ int width = 150;
+ int height = 150;
+ //画二维码,记得调用multiFormatWriter.encode()时最后要带上hints参数,不然上面设置无效
+ QRCodeWriter qrCodeWriter = new QRCodeWriter();
+// List