diff --git a/ant-design-vue-jeecg/package.json b/ant-design-vue-jeecg/package.json
index 430c5426..783c228b 100644
--- a/ant-design-vue-jeecg/package.json
+++ b/ant-design-vue-jeecg/package.json
@@ -27,14 +27,17 @@
"echarts": "^5.3.0",
"element-ui": "^2.15.6",
"enquire.js": "^2.1.6",
+ "html2canvas": "~1.0.0-rc.4",
"jquery": "^3.6.0",
"js-cookie": "^2.2.0",
+ "jspdf": "^2.5.1",
"lodash.get": "^4.4.2",
"lodash.pick": "^4.4.0",
"md5": "^2.2.1",
"nprogress": "^0.2.0",
"qiankun": "^2.5.1",
"qs": "^6.10.3",
+ "speak-tts": "^2.0.8",
"tinymce": "5.4.1",
"viser-vue": "^2.4.8",
"vue": "^2.6.10",
@@ -52,9 +55,7 @@
"vxe-table": "2.9.13",
"vxe-table-plugin-antd": "1.8.10",
"xe-utils": "2.4.8",
- "xss": "^1.0.13",
- "html2canvas": "~1.0.0-rc.4",
- "jspdf": "^2.5.1"
+ "xss": "^1.0.13"
},
"devDependencies": {
"@babel/polyfill": "^7.2.5",
@@ -67,11 +68,11 @@
"eslint": "^5.16.0",
"eslint-plugin-vue": "^5.1.0",
"html-webpack-plugin": "^4.2.0",
+ "html2canvas": "~1.0.0-rc.4",
+ "jspdf": "^2.5.1",
"less": "^3.9.0",
"less-loader": "^4.1.0",
- "vue-template-compiler": "^2.6.10",
- "html2canvas": "~1.0.0-rc.4",
- "jspdf": "^2.5.1"
+ "vue-template-compiler": "^2.6.10"
},
"eslintConfig": {
"root": true,
diff --git a/ant-design-vue-jeecg/src/App.vue b/ant-design-vue-jeecg/src/App.vue
index 9f4f7a8f..b4961c17 100644
--- a/ant-design-vue-jeecg/src/App.vue
+++ b/ant-design-vue-jeecg/src/App.vue
@@ -6,39 +6,166 @@
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/erp/accessories/ZyAccessoriesList.vue b/ant-design-vue-jeecg/src/views/erp/accessories/ZyAccessoriesList.vue
index 88341d34..09023f5f 100644
--- a/ant-design-vue-jeecg/src/views/erp/accessories/ZyAccessoriesList.vue
+++ b/ant-design-vue-jeecg/src/views/erp/accessories/ZyAccessoriesList.vue
@@ -84,9 +84,9 @@
-
+ 编辑
-
+
详情
diff --git a/ant-design-vue-jeecg/src/views/erp/accessories/modules/ZyAccessoriesForm.vue b/ant-design-vue-jeecg/src/views/erp/accessories/modules/ZyAccessoriesForm.vue
index 800d65bf..809f860c 100644
--- a/ant-design-vue-jeecg/src/views/erp/accessories/modules/ZyAccessoriesForm.vue
+++ b/ant-design-vue-jeecg/src/views/erp/accessories/modules/ZyAccessoriesForm.vue
@@ -8,7 +8,7 @@
+
+
+
+
+
+
+
+ mySpeak
+ 读取
+ 前进
+ 暂停
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/message/ZySpeechMessageList.vue b/ant-design-vue-jeecg/src/views/message/ZySpeechMessageList.vue
new file mode 100644
index 00000000..409b8730
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/message/ZySpeechMessageList.vue
@@ -0,0 +1,335 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ handleDelete(record.id)">
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/message/modules/ZySpeechMessageForm.vue b/ant-design-vue-jeecg/src/views/message/modules/ZySpeechMessageForm.vue
new file mode 100644
index 00000000..7572a4e7
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/message/modules/ZySpeechMessageForm.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/message/modules/ZySpeechMessageModal.vue b/ant-design-vue-jeecg/src/views/message/modules/ZySpeechMessageModal.vue
new file mode 100644
index 00000000..c5dea8b9
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/message/modules/ZySpeechMessageModal.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/message/modules/ZySpeechMessageModal__Style#Drawer.vue b/ant-design-vue-jeecg/src/views/message/modules/ZySpeechMessageModal__Style#Drawer.vue
new file mode 100644
index 00000000..da843833
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/message/modules/ZySpeechMessageModal__Style#Drawer.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/speak/Speak-tts.vue b/ant-design-vue-jeecg/src/views/speak/Speak-tts.vue
new file mode 100644
index 00000000..ab19d2d8
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/speak/Speak-tts.vue
@@ -0,0 +1,32 @@
+
+ speak-tts语音播报
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/system/UserAnnouncementList.vue b/ant-design-vue-jeecg/src/views/system/UserAnnouncementList.vue
index 749e4fe3..5419e7bf 100644
--- a/ant-design-vue-jeecg/src/views/system/UserAnnouncementList.vue
+++ b/ant-design-vue-jeecg/src/views/system/UserAnnouncementList.vue
@@ -16,7 +16,7 @@
-
+
查询
重置
@@ -51,142 +51,212 @@
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/zygoods/modules/ZyGoodsForm.vue b/ant-design-vue-jeecg/src/views/zygoods/modules/ZyGoodsForm.vue
index 6d546d64..46651051 100644
--- a/ant-design-vue-jeecg/src/views/zygoods/modules/ZyGoodsForm.vue
+++ b/ant-design-vue-jeecg/src/views/zygoods/modules/ZyGoodsForm.vue
@@ -10,7 +10,8 @@
-
+
+
diff --git a/jeecg-boot/jeecg-boot-module-erp/src/main/java/org/jeecg/modules/demo/accessories/controller/ZyAccessoriesController.java b/jeecg-boot/jeecg-boot-module-erp/src/main/java/org/jeecg/modules/demo/accessories/controller/ZyAccessoriesController.java
index 7d468284..72146c01 100644
--- a/jeecg-boot/jeecg-boot-module-erp/src/main/java/org/jeecg/modules/demo/accessories/controller/ZyAccessoriesController.java
+++ b/jeecg-boot/jeecg-boot-module-erp/src/main/java/org/jeecg/modules/demo/accessories/controller/ZyAccessoriesController.java
@@ -50,7 +50,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
public class ZyAccessoriesController extends JeecgController {
@Autowired
private IZyAccessoriesService zyAccessoriesService;
-
+
/**
* 分页列表查询
*
@@ -73,7 +73,7 @@ public class ZyAccessoriesController extends JeecgController pageList = zyAccessoriesService.page(page, queryWrapper);
return Result.OK(pageList);
}
-
+
/**
* 添加
*
@@ -93,7 +93,7 @@ public class ZyAccessoriesController extends JeecgController edit(@RequestBody ZyAccessories zyAccessories) {
QueryWrapper queryWrapper=new QueryWrapper();
queryWrapper.eq("contents",zyAccessories.getContents());
+ queryWrapper.ne("id",zyAccessories.getId());
int a= zyAccessoriesService.count(queryWrapper);
if(a>=1){
return Result.error("名称重复,请修改后重试!!");
@@ -113,7 +114,7 @@ public class ZyAccessoriesController extends JeecgController {
+ @Autowired
+ private IZySpeechMessageService zySpeechMessageService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param zySpeechMessage
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+// @AutoLog(value = "生产消息播报-分页列表查询")
+ @ApiOperation(value = "生产消息播报-分页列表查询", notes = "生产消息播报-分页列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryPageList(ZySpeechMessage zySpeechMessage,
+ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(zySpeechMessage, req.getParameterMap());
+ queryWrapper.orderByAsc("create_time");
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = zySpeechMessageService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 添加
+ *
+ * @param zySpeechMessage
+ * @return
+ */
+ @AutoLog(value = "生产消息播报-添加")
+ @ApiOperation(value = "生产消息播报-添加", notes = "生产消息播报-添加")
+ @PostMapping(value = "/add")
+ public Result> add(@RequestBody ZySpeechMessage zySpeechMessage) {
+ zySpeechMessageService.save(zySpeechMessage);
+ return Result.OK("添加成功!");
+ }
+
+ /**
+ * 编辑
+ *
+ * @param zySpeechMessage
+ * @return
+ */
+// @AutoLog(value = "生产消息播报-编辑")
+ @ApiOperation(value = "生产消息播报-编辑", notes = "生产消息播报-编辑")
+ @PutMapping(value = "/edit")
+ public Result> edit(@RequestBody ZySpeechMessage zySpeechMessage) {
+ zySpeechMessageService.updateById(zySpeechMessage);
+ return Result.OK("编辑成功!");
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "生产消息播报-通过id删除")
+ @ApiOperation(value = "生产消息播报-通过id删除", notes = "生产消息播报-通过id删除")
+ @DeleteMapping(value = "/delete")
+ public Result> delete(@RequestParam(name = "id", required = true) String id) {
+ zySpeechMessageService.removeById(id);
+ return Result.OK("删除成功!");
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "生产消息播报-批量删除")
+ @ApiOperation(value = "生产消息播报-批量删除", notes = "生产消息播报-批量删除")
+ @DeleteMapping(value = "/deleteBatch")
+ public Result> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+ this.zySpeechMessageService.removeByIds(Arrays.asList(ids.split(",")));
+ return Result.OK("批量删除成功!");
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "生产消息播报-通过id查询")
+ @ApiOperation(value = "生产消息播报-通过id查询", notes = "生产消息播报-通过id查询")
+ @GetMapping(value = "/queryById")
+ public Result> queryById(@RequestParam(name = "id", required = true) String id) {
+ ZySpeechMessage zySpeechMessage = zySpeechMessageService.getById(id);
+ if (zySpeechMessage == null) {
+ return Result.error("未找到对应数据");
+ }
+ return Result.OK(zySpeechMessage);
+ }
+
+ /**
+ * 导出excel
+ *
+ * @param request
+ * @param zySpeechMessage
+ */
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView exportXls(HttpServletRequest request, ZySpeechMessage zySpeechMessage) {
+ return super.exportXls(request, zySpeechMessage, ZySpeechMessage.class, "生产消息播报");
+ }
+
+ /**
+ * 通过excel导入数据
+ *
+ * @param request
+ * @param response
+ * @return
+ */
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ public Result> importExcel(HttpServletRequest request, HttpServletResponse response) {
+ return super.importExcel(request, response, ZySpeechMessage.class);
+ }
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/entity/ZySpeechMessage.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/entity/ZySpeechMessage.java
new file mode 100644
index 00000000..1ac07612
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/entity/ZySpeechMessage.java
@@ -0,0 +1,92 @@
+package org.jeecg.modules.message.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 生产消息播报
+ * @Author: jeecg-boot
+ * @Date: 2023-04-21
+ * @Version: V1.0
+ */
+@Data
+@TableName("zy_speech_message")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "zy_speech_message对象", description = "生产消息播报")
+public class ZySpeechMessage implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value = "主键")
+ private String id;
+ /**
+ * 创建人
+ */
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+ /**
+ * 创建日期
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建日期")
+ private Date createTime;
+ /**
+ * 更新人
+ */
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+ /**
+ * 更新日期
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "更新日期")
+ private Date updateTime;
+ /**
+ * 订单商品id
+ */
+ @Excel(name = "订单商品id", width = 15)
+ @ApiModelProperty(value = "订单商品id")
+ private String ordergoodsId;
+ /**
+ * 工单id
+ */
+ @Excel(name = "工单id", width = 15)
+ @ApiModelProperty(value = "工单id")
+ private String workorderId;
+ /**
+ * 生产计划工序id
+ */
+ @Excel(name = "生产计划工序id", width = 15)
+ @ApiModelProperty(value = "生产计划工序id")
+ private String zyplanprocessId;
+ /**
+ * 播报状态
+ */
+ @Excel(name = "播报状态", width = 15)
+ @ApiModelProperty(value = "是否加急")
+ @Dict(dicCode = "sfjj")
+ private String status;
+
+ @Excel(name = "消息", width = 15)
+ @ApiModelProperty(value = "消息")
+ private String message;
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/mapper/ZySpeechMessageMapper.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/mapper/ZySpeechMessageMapper.java
new file mode 100644
index 00000000..fbd00072
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/mapper/ZySpeechMessageMapper.java
@@ -0,0 +1,15 @@
+package org.jeecg.modules.message.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.message.entity.ZySpeechMessage;
+
+/**
+ * @Description: 生产消息播报
+ * @Author: jeecg-boot
+ * @Date: 2023-04-21
+ * @Version: V1.0
+ */
+public interface ZySpeechMessageMapper extends BaseMapper {
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/IZySpeechMessageService.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/IZySpeechMessageService.java
new file mode 100644
index 00000000..465be749
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/IZySpeechMessageService.java
@@ -0,0 +1,15 @@
+package org.jeecg.modules.message.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.message.entity.ZySpeechMessage;
+
+/**
+ * @Description: 生产消息播报
+ * @Author: jeecg-boot
+ * @Date: 2023-04-21
+ * @Version: V1.0
+ */
+public interface IZySpeechMessageService extends IService {
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/impl/ZySpeechMessageServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/impl/ZySpeechMessageServiceImpl.java
new file mode 100644
index 00000000..e6557ddc
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/service/impl/ZySpeechMessageServiceImpl.java
@@ -0,0 +1,18 @@
+package org.jeecg.modules.message.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.message.entity.ZySpeechMessage;
+import org.jeecg.modules.message.mapper.ZySpeechMessageMapper;
+import org.jeecg.modules.message.service.IZySpeechMessageService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 生产消息播报
+ * @Author: jeecg-boot
+ * @Date: 2023-04-21
+ * @Version: V1.0
+ */
+@Service
+public class ZySpeechMessageServiceImpl extends ServiceImpl implements IZySpeechMessageService {
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyProductPlanController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyProductPlanController.java
index c8590c4f..e6674f27 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyProductPlanController.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyProductPlanController.java
@@ -13,6 +13,8 @@ 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.message.entity.ZySpeechMessage;
+import org.jeecg.modules.message.service.IZySpeechMessageService;
import org.jeecg.modules.productplan.entity.ZyProductPlan;
import org.jeecg.modules.productplan.entity.vo.PaiWeiTuVo;
import org.jeecg.modules.productplan.service.IZyProductPlanService;
@@ -50,6 +52,9 @@ public class ZyProductPlanController extends JeecgController add(@RequestBody ZyProductPlan zyProductPlan) {
zyProductPlanService.create(zyProductPlan);
+
+ //保存生产计划语音播报消息
+ ZySpeechMessage zySpeechMessage = new ZySpeechMessage();
+ String productCode = zyProductPlan.getProductCode();
+ String code = productCode.substring(productCode.length() - 10);
+ String mess = "工单尾号" + code + ",生产计划已完成制定,请跟进后续生产作业.";
+ zySpeechMessage.setMessage(mess);
+ zySpeechMessage.setWorkorderId(productCode);
+ iZySpeechMessageService.save(zySpeechMessage);
return Result.OK("添加成功!");
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/zyclothsample/mapper/ZyClothSampleMapper.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/zyclothsample/mapper/ZyClothSampleMapper.java
index 1951d03f..99e2481e 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/zyclothsample/mapper/ZyClothSampleMapper.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/zyclothsample/mapper/ZyClothSampleMapper.java
@@ -19,7 +19,7 @@ public interface ZyClothSampleMapper extends BaseMapper {
@Select("select nums from zy_cloth_sample where style_id=#{styleId} and stylemodel_id=#{stylemodelId} order by nums desc limit 0,1")
String findSort(@Param("styleId") String styleId, @Param("stylemodelId") String stylemodelId);
- @Select("select model_code from zy_style_model where id=#{stylemodelId}")
+ @Select("select model_number from zy_style_model where id=#{stylemodelId}")
String findCode(String stylemodelId);
@Select("select nums from zy_cloths_style where id=#{styleId}")