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 @@ + + + + \ 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 @@ + + + + \ 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}")