From ff14836e10ae7cecb5d7edb11bbcbe7e59721995 Mon Sep 17 00:00:00 2001 From: liuzhaotian Date: Sat, 20 Apr 2024 16:41:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=AD=E9=9F=B3=E6=92=AD=E6=8A=A5=EF=BC=8C?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=EF=BC=8C=E5=B7=A5=E5=BA=8F=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cf-module-prod-manage-biz/pom.xml | 12 +- .../module/manage/config/VocieParameters.java | 26 +++ .../module/manage/config/XxlJobParameter.java | 66 ++++++ .../patching/PatchingPlateController.java | 146 ++++++++++++ .../admin/patching/vo/DataRangeList.java | 20 ++ .../admin/patching/vo/MachineRespVO.java | 37 +++ .../patching/vo/PatchingDetailReqVO.java | 20 ++ .../patching/vo/PatchingDetailRespVO.java | 168 ++++++++++++++ .../patching/vo/PatchingPlatePageReqVO.java | 123 ++++++++++ .../patching/vo/PatchingPlateRespVO.java | 55 +++++ .../admin/patching/vo/PatchingReqVO.java | 34 +++ .../process/ProductionProcessController.java | 7 +- .../vo/productionStatus/OrderModuleVO.java | 8 + .../vo/productionStatus/PlatePageVO.java | 4 + .../controller/admin/test/TestController.java | 212 ++++++++++++++++++ .../admin/voice/VoiceController.java | 51 +++++ .../controller/admin/voice/vo/VoiceReqVO.java | 19 ++ .../dal/dataobject/patching/MachineDO.java | 42 ++++ .../dataobject/patching/PatchDetailDO.java | 44 ++++ .../dal/mysql/patching/MachineMapper.java | 12 + .../dal/mysql/patching/PatchDetailMapper.java | 15 ++ .../mysql/process/ProcessStepItemMapper.java | 3 - .../dal/mysql/process/ProcessStepMapper.java | 9 + .../process/ProductionProcessMapper.java | 14 +- .../dal/mysql/query/OrderItemMapper.java | 3 +- .../mysql/query/ProductionStatusMapper.java | 1 - .../patching/PatchingPlateService.java | 38 ++++ .../patching/PatchingPlateServiceImpl.java | 162 +++++++++++++ .../process/ProductionProcessService.java | 2 +- .../process/ProductionProcessServiceImpl.java | 54 ++--- .../query/ProductionStatusServiceImpl.java | 3 +- .../manage/service/voice/VoiceService.java | 16 ++ .../service/voice/VoiceServiceImpl.java | 150 +++++++++++++ .../module/manage/util/xxjJob/XxlJobUtil.java | 43 ++++ .../dal/mysql/plate/OrderPlateMapper.xml | 45 ++-- .../mysql/process/ProcessStepItemMapper.xml | 56 +---- .../dal/mysql/process/ProcessStepMapper.xml | 54 ++++- .../mysql/process/ProductionProcessMapper.xml | 140 ++++++++++-- .../dal/mysql/query/OrderItemMapper.xml | 16 +- 39 files changed, 1773 insertions(+), 157 deletions(-) create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/config/VocieParameters.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/config/XxlJobParameter.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/PatchingPlateController.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/DataRangeList.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/MachineRespVO.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingDetailReqVO.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingDetailRespVO.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingPlatePageReqVO.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingPlateRespVO.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingReqVO.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/voice/VoiceController.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/voice/vo/VoiceReqVO.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/patching/MachineDO.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/patching/PatchDetailDO.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/patching/MachineMapper.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/patching/PatchDetailMapper.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateService.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateServiceImpl.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/voice/VoiceService.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/voice/VoiceServiceImpl.java create mode 100644 cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/util/xxjJob/XxlJobUtil.java diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/pom.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/pom.xml index dd4e4917b..406901f01 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/pom.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/pom.xml @@ -173,12 +173,16 @@ - - - org.springframework.boot - spring-boot-starter-websocket + org.springframework.cloud + spring-cloud-starter-bootstrap + 3.1.0 + + com.cf.imes + cf-spring-boot-starter-job + + diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/config/VocieParameters.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/config/VocieParameters.java new file mode 100644 index 000000000..a9fbc3308 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/config/VocieParameters.java @@ -0,0 +1,26 @@ +package com.cf.imes.module.manage.config; + + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "voices.parameters") +public class VocieParameters { + + // 设置音频的质量( 越大越好,目前最大好像 22,最小为 4 ) + private Long quality; + + // 朗读声音大小 + private Long soundSize; + + // 朗读速度 + private Long readingSpeed; + + // 音频保存的路径 + private String path; + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/config/XxlJobParameter.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/config/XxlJobParameter.java new file mode 100644 index 000000000..a43542c99 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/config/XxlJobParameter.java @@ -0,0 +1,66 @@ +package com.cf.imes.module.manage.config; + + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Data +@Component +@ConfigurationProperties(prefix = "job.parameters") +public class XxlJobParameter { + + + /** + * 是否开启,默认为 true 关闭 + */ + private Boolean enabled; + + /** + * 访问令牌 + */ + private String accessToken; + +/* *//** + * 控制器配置 + *//* + @NotNull(message = "控制器配置不能为空") + private AdminProperties admin; + + *//** + * 执行器配置 + *//* + @NotNull(message = "执行器配置不能为空") + private ExecutorProperties executor;*/ + + @NotEmpty(message = "调度器地址不能为空") + private String addresses; + + /** + * 应用名 + */ + @NotEmpty(message = "应用名不能为空") + private String appName; + /** + * 执行器的 IP + */ + private String ip; + /** + * 执行器的 Port + */ + private Long port; + /** + * 日志地址 + */ + @NotEmpty(message = "日志地址不能为空") + private String logPath; + /** + * 日志保留天数 + */ + private Long logRetentionDays; + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/PatchingPlateController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/PatchingPlateController.java new file mode 100644 index 000000000..49d177836 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/PatchingPlateController.java @@ -0,0 +1,146 @@ +package com.cf.imes.module.manage.controller.admin.patching; + + +import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.framework.common.pojo.PageResult; +import com.cf.imes.module.manage.controller.admin.patching.vo.*; +import com.cf.imes.module.manage.service.patching.PatchingPlateService; +import com.cf.imes.module.manage.dal.dataobject.patching.MachineDO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static com.cf.imes.framework.common.pojo.CommonResult.success; + + +@Tag(name = "管理后台 - 补板") +@RestController +@RequestMapping("/manage/patching") +@Validated +public class PatchingPlateController { + + + @Resource + private PatchingPlateService patchingPlateService; + + + + @GetMapping("/searchPage") + @Operation(summary = "批量加入补板查询") + @PreAuthorize("@ss.hasPermission('manage:patching:query')") + public CommonResult> patchingSearchPlate(@Valid PatchingPlatePageReqVO pageReqVO){ + + PageResult patchingPlateRespVOPageResult = patchingPlateService.patchingSearchPlate(pageReqVO); + + return success(patchingPlateRespVOPageResult); + + } + + + + + + @GetMapping("/searchPlate") + @Operation(summary = "查询详细的板件") + @PreAuthorize("@ss.hasPermission('manage:patching:query')") + public CommonResult> searchPlateDetail(@Valid PatchingPlatePageReqVO pageReqVO){ + + PageResult plateDetailsRespVOPageResult = patchingPlateService.searchPlateDetail(pageReqVO); + + return success(plateDetailsRespVOPageResult); + + } + + + + + + + @GetMapping("/searchPatchingList") + @Operation(summary = "加入的板件信息") + @Parameter(name = "plateId", description = "板件ID", required = true, example = "1") + @PreAuthorize("@ss.hasPermission('manage:patching:query')") + public CommonResult searchPatchingList(@Valid @RequestParam("plateId") Long plateId){ + + return success(patchingPlateService.searchPatchingList(plateId)); + + + } + + + + + + + @GetMapping("/optimizeLayout") + @Operation(summary = "优化排版") + @PreAuthorize("@ss.hasPermission('manage:patching:query')") + public CommonResult> optimizeLayout(@Valid PatchingDetailReqVO reqVO){ + + List patchingDetailRespVOS = patchingPlateService.optimizeLayout(reqVO); + + return success(patchingDetailRespVOS); + + + } + + + + + + + + @PostMapping("/insertPatching") + @Operation(summary = "新增补板详情表") + @PreAuthorize("@ss.hasPermission('manage:patching:query')") + public CommonResult insertPatching(@Valid @RequestBody PatchingReqVO reqVO){ + + patchingPlateService.insertPatching(reqVO); + + return success(true); + + + } + + + + + + + + @GetMapping("/search") + @Operation(summary = "查询所有的机台") + @PreAuthorize("@ss.hasPermission('manage:patching:query')") + public CommonResult> searchMachine(){ + + return success(patchingPlateService.searchMachine()); + + } + + + + + + + @GetMapping("/searchPatchNC") + @Operation(summary = "导出 NC 所需要的数据") + @PreAuthorize("@ss.hasPermission('manage:patching:query')") + public CommonResult> searchPatchNC(@Valid PatchingDetailReqVO reqVO){ + + List patchingDetailRespVOS = patchingPlateService.optimizeLayout(reqVO); + + return success(patchingDetailRespVOS); + + } + + + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/DataRangeList.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/DataRangeList.java new file mode 100644 index 000000000..d31a6f028 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/DataRangeList.java @@ -0,0 +1,20 @@ +package com.cf.imes.module.manage.controller.admin.patching.vo; + + +import lombok.Data; +import lombok.ToString; + + +@Data +@ToString(callSuper = true) +public class DataRangeList { + + // 最大值 + private Long maxaa; + + // 最小值 + private Long minbb; + + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/MachineRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/MachineRespVO.java new file mode 100644 index 000000000..592996a3f --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/MachineRespVO.java @@ -0,0 +1,37 @@ +package com.cf.imes.module.manage.controller.admin.patching.vo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - Response VO") +@Data +public class MachineRespVO { + + + @Schema(description = "机台主键ID", requiredMode = Schema.RequiredMode.REQUIRED) + private Long id; + + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String name; + + @Schema(description = "机台类型", requiredMode = Schema.RequiredMode.REQUIRED) + private Boolean machineType; + + @Schema(description = "标签id", requiredMode = Schema.RequiredMode.REQUIRED) + private Long labelId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + + @Schema(description = "创建者", requiredMode = Schema.RequiredMode.REQUIRED) + private String creator; + + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingDetailReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingDetailReqVO.java new file mode 100644 index 000000000..bf6acfb78 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingDetailReqVO.java @@ -0,0 +1,20 @@ +package com.cf.imes.module.manage.controller.admin.patching.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +import java.util.List; + +@Schema(description = "管理后台 - 优化排版 Request VO") +@Data +@ToString(callSuper = true) +public class PatchingDetailReqVO { + + + @Schema(description = "板编号", requiredMode = Schema.RequiredMode.REQUIRED) + private List plateIdList; + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingDetailRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingDetailRespVO.java new file mode 100644 index 000000000..afd41123c --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingDetailRespVO.java @@ -0,0 +1,168 @@ +package com.cf.imes.module.manage.controller.admin.patching.vo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 补板详情 Response VO") +@Data +public class PatchingDetailRespVO { + + + @Schema(description = "房间名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String roomName; + + @Schema(description = "房间ID", requiredMode = Schema.RequiredMode.REQUIRED) + private Long roomId; + + @Schema(description = "柜体名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String cabinetName; + + @Schema(description = "柜体ID", requiredMode = Schema.RequiredMode.REQUIRED) + private Long bodyId; + + @Schema(description = "材料", requiredMode = Schema.RequiredMode.REQUIRED) + private String material; + + @Schema(description = "颜色", requiredMode = Schema.RequiredMode.REQUIRED) + private String color; + + + + // 需要添加的额外字段 + @Schema(description = "板件组合名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String plateCombinationName; + + @Schema(description = "自定义单号", requiredMode = Schema.RequiredMode.REQUIRED) + private Long customOrderId; + + @Schema(description = "客户", requiredMode = Schema.RequiredMode.REQUIRED) + private String customer; + + @Schema(description = "地址", requiredMode = Schema.RequiredMode.REQUIRED) + private String address; + + + + // 用于进行判断是否为异形等 + @Schema(description = "异形数量", requiredMode = Schema.RequiredMode.REQUIRED) + private String specialShaped; + + @Schema(description = "造型数量", requiredMode = Schema.RequiredMode.REQUIRED) + private String profiling; + + @Schema(description = "排孔数量", requiredMode = Schema.RequiredMode.REQUIRED) + private String rowHole; + + + + + + @Schema(description = "主键-板件ID", requiredMode = Schema.RequiredMode.REQUIRED) + private Long id; + + @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED) + private Long orderId; + + @Schema(description = "组织 ID", requiredMode = Schema.RequiredMode.REQUIRED) + private Long organId; + + @Schema(description = "板名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String name; + + @Schema(description = "自定义板编号", requiredMode = Schema.RequiredMode.REQUIRED) + private String plateNo; + + @Schema(description = "板类型,0 层板 1 立板 2 背板", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer type; + + @Schema(description = "商品 ID", requiredMode = Schema.RequiredMode.REQUIRED) + private Long goodsId; + + @Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double width; + + @Schema(description = "高度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double height; + + @Schema(description = "厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double thickness; + + @Schema(description = "拆单宽度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double splitWidth; + + @Schema(description = "拆单高度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double splitHeight; + + @Schema(description = "拆单厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double splitThickness; + + @Schema(description = "左封边厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double sealLeft; + + @Schema(description = "右封边厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double sealRight; + + @Schema(description = "上封边厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double sealUp; + + @Schema(description = "下封边厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double sealDown; + + @Schema(description = "面积", requiredMode = Schema.RequiredMode.REQUIRED) + private Double area; + + @Schema(description = "纹路类型,0 正纹 1 可翻转 2 反纹", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer texture; + + @Schema(description = "孔面类型,0 正面 1 反面 2 侧面", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer holeFace; + + @Schema(description = "排孔类型,0 正纹 1 反面 2 随意面", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer holeArrange; + + @Schema(description = "异型孔数量", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer unregularPointCount; + + @Schema(description = "正面孔数量", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer frontHoleCount; + + @Schema(description = "背面孔数量", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer backHoleCount; + + @Schema(description = "侧面孔数量", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer sideHoleCount; + + @Schema(description = "正面造型量", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer frontModelCount; + + @Schema(description = "背面造型量", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer backModelCount; + + @Schema(description = "是否门板", requiredMode = Schema.RequiredMode.REQUIRED) + private Boolean isDoor; + + @Schema(description = "开门类型,0 无 1 左 2 右 3 上 4 下", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer openDoorType; + + @Schema(description = "异型偏移 x", requiredMode = Schema.RequiredMode.REQUIRED) + private Float offsetX; + + @Schema(description = "异型偏移 y", requiredMode = Schema.RequiredMode.REQUIRED) + private Float offsetY; + + @Schema(description = "是否孤形对角", requiredMode = Schema.RequiredMode.REQUIRED) + private Boolean isArcAcross; + + @Schema(description = "模块类型 ID", requiredMode = Schema.RequiredMode.REQUIRED) + private Long moduleTypeId; + + @Schema(description = "排单过滤类型,1 有挖穿造型 2 有挖穿孔 4 有二维刀路 8 可叠", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer filterType; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + private String remark; + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingPlatePageReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingPlatePageReqVO.java new file mode 100644 index 000000000..a9aba49b0 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingPlatePageReqVO.java @@ -0,0 +1,123 @@ +package com.cf.imes.module.manage.controller.admin.patching.vo; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import com.cf.imes.framework.common.pojo.PageParam; +import io.swagger.v3.core.util.Json; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.apache.ibatis.type.TypeHandler; + +import java.util.HashMap; +import java.util.List; + +@Schema(description = "管理后台 - 补板 分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PatchingPlatePageReqVO extends PageParam { + + + + @Schema(description = "订单号") + private Long orderNo; + + + + + @Schema(description = "自定义单号") + private String customOrderNo; + + + + + @Schema(description = "状态-生产中,加工完成,打包完成", requiredMode = Schema.RequiredMode.REQUIRED,example = "3,4,5") + private List statusList; + + + + + @Schema(description = "客户") + private String customer; + + + + + @Schema(description = "收货地址") + private String address; + + + + @Schema(description = "开始时间"/*, requiredMode = Schema.RequiredMode.REQUIRED*/) + private String startTime; + + + + @Schema(description = "结束时间"/*, requiredMode = Schema.RequiredMode.REQUIRED*/) + private String endTime; + + + + + @Schema(description = "矩形") + private Boolean isRectangle; + + + + + @Schema(description = "异形") + private Boolean isSpecialShaped; + + + + + @Schema(description = "造型") + private Boolean isProfiling; + + + + + @Schema(description = "有挖穿造型") + private Boolean isDigThrough; + + + + + @Schema(description = "有挖穿孔") + private Boolean isDiggingHoles; + + + + + @Schema(description = "有二维刀路") + private Boolean is2DCuttingPath; + + + + + @Schema(description = "门板") + private Boolean isDoor; + + + + + @Schema(description = "长范围") + @TableField(typeHandler = JacksonTypeHandler.class) + private List longRangeList; + + + + + @Schema(description = "宽范围") + private List WidthRangeList; + + + + + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingPlateRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingPlateRespVO.java new file mode 100644 index 000000000..6a66690f8 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingPlateRespVO.java @@ -0,0 +1,55 @@ +package com.cf.imes.module.manage.controller.admin.patching.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 补板 Response VO") +@Data +public class PatchingPlateRespVO { + + @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) + private Long orderId; + + @Schema(description = "自定义单号", requiredMode = Schema.RequiredMode.REQUIRED) + private Long customOrderId; + + @Schema(description = "客户", requiredMode = Schema.RequiredMode.REQUIRED) + private String customer; + + @Schema(description = "地址", requiredMode = Schema.RequiredMode.REQUIRED) + private String address; + + @Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED) + private Long orderStatus; + + @Schema(description = "柜体ID", requiredMode = Schema.RequiredMode.REQUIRED) + private Long groupId; + + @Schema(description = "板件显示名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String plateName; + + @Schema(description = "材料", requiredMode = Schema.RequiredMode.REQUIRED) + private String material; + + @Schema(description = "颜色", requiredMode = Schema.RequiredMode.REQUIRED) + private String color; + + @Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double width; + + @Schema(description = "长度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double height; + + @Schema(description = "厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private Double thickness; + + @Schema(description = "面积", requiredMode = Schema.RequiredMode.REQUIRED) + private Double area; + + @Schema(description = "板件数量", requiredMode = Schema.RequiredMode.REQUIRED) + private Long plateNum; + + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingReqVO.java new file mode 100644 index 000000000..f0c567702 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/patching/vo/PatchingReqVO.java @@ -0,0 +1,34 @@ +package com.cf.imes.module.manage.controller.admin.patching.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +import java.util.List; + + +@Schema(description = "管理后台 - 新增补板详情 Request VO") +@Data +@ToString(callSuper = true) +public class PatchingReqVO { + + + @Schema(description = "板编号", requiredMode = Schema.RequiredMode.REQUIRED) + private List idList; + + @Schema(description = "计划ID", requiredMode = Schema.RequiredMode.REQUIRED) + private Long planId; + + + @Schema(description = "机台", requiredMode = Schema.RequiredMode.REQUIRED) + private Long machineId; + + +/* @Schema(description = "板材详情", requiredMode = Schema.RequiredMode.REQUIRED) + private String detail;*/ + + + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/ProductionProcessController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/ProductionProcessController.java index 0113733d8..af9de560b 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/ProductionProcessController.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/ProductionProcessController.java @@ -87,11 +87,11 @@ public class ProductionProcessController { @GetMapping("/selectPlateName") @Operation(summary = "查看板材信息的组合名称") - @Parameter(name = "processStepId", description = "工序步骤ID", required = true, example = "1") + @Parameter(name = "stepItemId", description = "工序明细ID", required = true, example = "1") @PreAuthorize("@ss.hasPermission('manage:process:query')") - public CommonResult> selectPlateName(@Valid @RequestParam("processStepId") Long processStepId){ + public CommonResult> selectPlateName(@Valid @RequestParam("stepItemId") Long stepItemId){ - return success(productionProcessService.selectPlateName(processStepId)); + return success(productionProcessService.selectPlateName(stepItemId)); } @@ -106,4 +106,5 @@ public class ProductionProcessController { } + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/OrderModuleVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/OrderModuleVO.java index 93eeed576..1a2ccc5c2 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/OrderModuleVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/OrderModuleVO.java @@ -13,7 +13,15 @@ public class OrderModuleVO { private Long bodyId; + @Schema(description = "加工组 id", example = "嘿嘿") + private Long groupId; + + @Schema(description = "组合名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "嘿嘿") private String name; + + @Schema(description = "加工组名称", example = "嘿嘿") + private String groupName; + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/PlatePageVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/PlatePageVO.java index ce682e40e..421624354 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/PlatePageVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/PlatePageVO.java @@ -17,4 +17,8 @@ public class PlatePageVO extends PageParam { private Long bodyId ; + @Schema(description = "加工组 id") + private Long groupId; + + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/test/TestController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/test/TestController.java index cf0ab963b..b5d4f37db 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/test/TestController.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/test/TestController.java @@ -1,14 +1,53 @@ package com.cf.imes.module.manage.controller.admin.test; +import com.cf.imes.framework.common.util.json.JsonUtils; +import com.cf.imes.framework.common.util.object.BeanUtils; +import com.cf.imes.framework.quartz.config.XxlJobProperties; +import com.cf.imes.module.manage.config.XxlJobParameter; +import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingDetailRespVO; +import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlateRespVO; +import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepItemNDO; +import com.cf.imes.module.manage.dal.mysql.plate.OrderPlateMapper; +import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper; import com.cf.imes.module.manage.dal.mysql.test.TestMapper; +import com.jacob.com.ComThread; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; + +import org.jetbrains.annotations.TestOnly; + +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.annotation.security.PermitAll; +import javax.sound.sampled.AudioInputStream; + +import com.jacob.activeX.ActiveXComponent; +import com.jacob.com.Dispatch; +import com.jacob.com.Variant; + +import javax.sound.sampled.*; + +import java.io.*; +import java.net.ServerSocket; +import java.net.Socket; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import java.net.Socket; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import java.io.IOException; +import java.util.Random; + /** * @author there @@ -22,10 +61,183 @@ public class TestController { @Resource private TestMapper testMapper; + + + @GetMapping("/get") @PermitAll @Operation(summary = "测试") public Object get() { return testMapper.selectList(); } + + + public class JacobTestController { + /* * + * 语音转文字并播放 + * + * @param text + */ + private static void convertTextToSpeech(String text) { + + + try { + + //jacob.dll没成功安装,执行这一步会出错 + //构建音频格式 调用注册表应用 + Dispatch spAudioFormat = new ActiveXComponent("Sapi.SpAudioFormat").getObject(); + //音频文件输出流 + Dispatch spFileStream = new ActiveXComponent("Sapi.SpFileStream").getObject(); + //构建音频对象 + Dispatch spVoice = new ActiveXComponent("Sapi.SpVoice").getObject(); + + //设置spAudioFormat音频流格式类型22 + Dispatch.put(spAudioFormat, "Type", new Variant(22)); + //设置spFileStream文件输出流的音频格式 + Dispatch.putRef(spFileStream, "Format", spAudioFormat); + + //设置spFileStream文件输出流参数地址等 + Dispatch.call(spFileStream, "Open", new Variant("E:AAAAA\48641486.wav"), new Variant(3), new Variant(true)); + //设置spVoice声音对象的音频输出流为输出文件对象 + Dispatch.putRef(spVoice, "AudioOutputStream", spFileStream); + //设置spVoice声音对象的音量大小100 + Dispatch.put(spVoice, "Volume", new Variant(100)); + //设置spVoice声音对象的速度 0为正常速度,范围【..-2 -1 0 1 2..】 + Dispatch.put(spVoice, "Rate", new Variant(0)); + //设置spVoice声音对象中的文本内容 + Dispatch.call(spVoice, "Speak", new Variant(text)); + //关闭spFileStream输出文件 + Dispatch.call(spFileStream, "Close"); + + //释放资源 + spVoice.safeRelease(); + spAudioFormat.safeRelease(); + spFileStream.safeRelease(); + + } catch (Exception e) { + System.out.println(e.getMessage()); + + } + } + + private static XxlJobProperties aabb(){ + + XxlJobParameter xxlJobParameter = new XxlJobParameter(); + + xxlJobParameter.setEnabled(false); + xxlJobParameter.setAccessToken("1122"); + xxlJobParameter.setAddresses("五阿里乌"); + xxlJobParameter.setAppName("aaappn"); + XxlJobProperties bean = BeanUtils.toBean(xxlJobParameter, XxlJobProperties.class); + return bean; + + } + + } + + + public static void deleteFiles(List filePaths) { + // 检查文件路径集合是否为空 + if (filePaths == null || filePaths.isEmpty()) { + System.out.println("文件路径集合为空"); + return; + } + + for (String filePath : filePaths) { + // 检查文件路径是否为空 + if (filePath == null || filePath.isEmpty()) { + System.out.println("文件路径为空"); + continue; + } + + File file = new File(filePath); + + // 检查文件是否存在 + if (!file.exists()) { + System.out.println("文件不存在:" + filePath); + continue; + } + + // 检查是否是文件 + if (!file.isFile()) { + System.out.println("路径指向的不是文件:" + filePath); + continue; + } + + // 尝试删除文件 + if (file.delete()) { + System.out.println("文件删除成功:" + filePath); + } else { + System.out.println("文件删除失败:" + filePath); + } + } + } + + + public static Integer aacc(){ + + RedisTemplate re = new RedisTemplate<>(); + + int randomInt = new Random(System.currentTimeMillis()).nextInt(900) + 100;// 生成100到999之间的随机数 + + + + return randomInt; + + } + + + + @TestOnly + public static void main(String[] args) { + +// // 创建文件路径集合并添加文件路径 +// List filePaths = new ArrayList<>(); +// filePaths.add("E:/BBBBBBB/1.txt"); +// filePaths.add("E:/BBBBBBB/2.txt"); +// filePaths.add("E:/BBBBBBB/4.txt"); + + List filePaths = new ArrayList<>(); + filePaths.add(aacc()); + + System.out.println(filePaths); + +// // 调用 deleteFiles 方法,传入文件路径集合 +// deleteFiles(filePaths); +// System.out.println(JacobTestController.aabb()); + + + + +/* PatchingPlateRespVO patchingPlateRespVO = new PatchingPlateRespVO(); + + patchingPlateRespVO.setGroupId(11L); + patchingPlateRespVO.setArea(11.2); + patchingPlateRespVO.setColor("红色"); + patchingPlateRespVO.setHeight(11.2); + + String jsonString = JsonUtils.toJsonString(patchingPlateRespVO); + System.out.println(jsonString);*/ + + // + /*byte[] 测试测试s = JacobTestController.convertTextToSpeech("测试测试");*/ + +// JacobTestController.convertTextToSpeech("测试测试"); + + + } + + } + + + + + + + + + + + + diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/voice/VoiceController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/voice/VoiceController.java new file mode 100644 index 000000000..c1573a5fa --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/voice/VoiceController.java @@ -0,0 +1,51 @@ +package com.cf.imes.module.manage.controller.admin.voice; + + +import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.module.manage.controller.admin.voice.vo.VoiceReqVO; +import com.cf.imes.module.manage.service.voice.VoiceService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import org.springframework.web.bind.annotation.RestController; + + + +@Tag(name = "管理后台 - 语音播报") +@RestController +@RequestMapping("/manage/voice") +@Validated +public class VoiceController { + + + @Resource + private VoiceService voiceService; + + + @PostMapping("/") + @Operation(summary = "语音播报") + @PreAuthorize("@ss.hasPermission('manage:voice:insert')") + public CommonResult voiceAnnouncements(@Valid @RequestBody VoiceReqVO reqVO ) throws Exception { + + String sourceFile = voiceService.voiceAnnouncements(reqVO.getText()); + + String gzipFile = sourceFile+".zip"; + + voiceService.zipFiles(sourceFile, gzipFile); + + return CommonResult.success(gzipFile); + + } + + +} + + + + diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/voice/vo/VoiceReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/voice/vo/VoiceReqVO.java new file mode 100644 index 000000000..b28c4574e --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/voice/vo/VoiceReqVO.java @@ -0,0 +1,19 @@ +package com.cf.imes.module.manage.controller.admin.voice.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; + +@Schema(description = "管理后台 - 语音播报 Request VO") +@Data +@ToString(callSuper = true) +public class VoiceReqVO { + + + @Schema(description = "语音数据", requiredMode = Schema.RequiredMode.REQUIRED) + private String text; +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/patching/MachineDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/patching/MachineDO.java new file mode 100644 index 000000000..f5915329d --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/patching/MachineDO.java @@ -0,0 +1,42 @@ +package com.cf.imes.module.manage.dal.dataobject.patching; + + +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.cf.imes.framework.organ.core.db.OrganBaseDO; +import lombok.*; + +@TableName("imes_base.system_machine") +@KeySequence("machine_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MachineDO extends OrganBaseDO { + + + /** + * 主键 + */ + @TableId + private Long id; + /** + * 名称 + */ + private String name; + /** + * 1机台设备 2CNC设备 + */ + private Boolean machineType; + /** + * 标签id + */ + private Long labelId; + + + // 配置 + private String setting; +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/patching/PatchDetailDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/patching/PatchDetailDO.java new file mode 100644 index 000000000..20bca0521 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/patching/PatchDetailDO.java @@ -0,0 +1,44 @@ +package com.cf.imes.module.manage.dal.dataobject.patching; + + +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; +import com.cf.imes.framework.organ.core.db.OrganBaseDO; +import lombok.*; + +@TableName("order_patch_detail_n") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PatchDetailDO extends OrganBaseDO { + + + // 补板ID + @TableId + private Long id; + + // 生产单号 + private Long orderId; + + // 组织 ID + private Long organId; + + // 总面积 + private Double area; + + // 计划 ID + private Long planId; + + // 机台 ID + private Long machineId; + + // 板材详情 + private String detail; + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/patching/MachineMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/patching/MachineMapper.java new file mode 100644 index 000000000..d420727ef --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/patching/MachineMapper.java @@ -0,0 +1,12 @@ +package com.cf.imes.module.manage.dal.mysql.patching; + + +import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; +import com.cf.imes.module.manage.dal.dataobject.patching.MachineDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MachineMapper extends BaseMapperX { + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/patching/PatchDetailMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/patching/PatchDetailMapper.java new file mode 100644 index 000000000..f72c3d188 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/patching/PatchDetailMapper.java @@ -0,0 +1,15 @@ +package com.cf.imes.module.manage.dal.mysql.patching; + + +import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; +import com.cf.imes.module.manage.dal.dataobject.patching.PatchDetailDO; +import org.apache.ibatis.annotations.Mapper; + + +@Mapper +public interface PatchDetailMapper extends BaseMapperX { + + + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepItemMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepItemMapper.java index df826d5ae..faa214f42 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepItemMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepItemMapper.java @@ -19,9 +19,6 @@ import java.util.List; public interface ProcessStepItemMapper extends BaseMapperX { - List selectOrder(ProcessPageReqVO pageReqVO); - - List selectPlateName(Long processStepId); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.java index 3b0e0f3d5..fbc28d221 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.java @@ -5,6 +5,8 @@ import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.module.manage.controller.admin.process.vo.OrderProStepReqVO; import com.cf.imes.module.manage.controller.admin.process.vo.OrderProcessStepItemVO; +import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPageReqVO; +import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO; import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRatePageReqVO; import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO; import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO; @@ -30,6 +32,11 @@ public interface ProcessStepMapper extends BaseMapperX { } + List selectOrder(ProcessPageReqVO pageReqVO); + + + + void updateStatusById(@Param("id") Long id, @Param("status") Boolean status); default List selectProducitonList(Long orderNo) { @@ -49,4 +56,6 @@ public interface ProcessStepMapper extends BaseMapperX { List selectSalaryList(PriceRatePageReqVO pageReqVO); + + } \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java index 09d9e272c..deb825dad 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java @@ -11,6 +11,7 @@ import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlateRespV import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPageReqVO; import com.cf.imes.module.manage.dal.dataobject.process.OrderDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -23,19 +24,6 @@ import java.util.List; public interface ProductionProcessMapper extends BaseMapperX { - - default PageResult selectPage(ProcessPageReqVO pageReqVO) { - return selectPage(pageReqVO, new LambdaQueryWrapperX() - .eqIfPresent(OrderDO::getId,pageReqVO.getOrderNo()) - .eqIfPresent(OrderDO::getCustomOrderNo,pageReqVO.getCustomOrderNo()) - .likeIfPresent(OrderDO::getCustomer,pageReqVO.getCustomer()) - .likeIfPresent(OrderDO::getAddress,pageReqVO.getAddress()) - .orderByDesc(OrderDO::getId)); - } - - - - default PageResult selectPageList(OrderPageReqVO pageReqVO) { return selectPage(pageReqVO, new LambdaQueryWrapperX() .eqIfPresent(OrderDO::getId,pageReqVO.getOrderNo()) diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java index 90a711085..4d8065cc4 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java @@ -10,6 +10,7 @@ import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO; import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO; import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO; import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO; +import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.PlatePageVO; import com.cf.imes.module.manage.dal.dataobject.query.OrderItemDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -27,7 +28,7 @@ public interface OrderItemMapper extends BaseMapperX { List selectCombinationName(Long orderNo); - List selectPlateList(Long bodyId); + List selectPlateList(PlatePageVO pageReqVO); List selectOrderPlateList(Long orderNo); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.java index 36093d148..8f4ea6b4c 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.java @@ -25,7 +25,6 @@ public interface ProductionStatusMapper extends BaseMapperX { .eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getCustomOrderNo()) .likeIfPresent(OrderDO::getCustomer, pageReqVO.getCustomer()) .likeIfPresent(OrderDO::getAddress, pageReqVO.getAddress()) - .likeIfPresent(OrderDO::getDeleted, pageReqVO.getDealer()) .and(wrapper -> { for (Long status : pageReqVO.getStatusList()) { wrapper.or().eq(OrderDO::getStatus, status); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateService.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateService.java new file mode 100644 index 000000000..cbb2a5fd3 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateService.java @@ -0,0 +1,38 @@ +package com.cf.imes.module.manage.service.patching; + + +import com.cf.imes.framework.common.pojo.PageResult; +import com.cf.imes.module.manage.controller.admin.patching.vo.*; +import com.cf.imes.module.manage.dal.dataobject.patching.MachineDO; + +import java.util.List; + +public interface PatchingPlateService { + + + // 批量加入补板查询 + PageResult patchingSearchPlate(PatchingPlatePageReqVO pageReqVO); + + + // 查询详细的板件 + PageResult searchPlateDetail(PatchingPlatePageReqVO pageReqVO); + + + // 加入的板件信息 + PatchingDetailRespVO searchPatchingList(Long plateId); + + + // 优化排版 + List optimizeLayout(PatchingDetailReqVO reqVO); + + + // 新增补板详情表 + void insertPatching(PatchingReqVO reqVO); + + + // 查询所有的机台 + List searchMachine(); + + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateServiceImpl.java new file mode 100644 index 000000000..1734343a6 --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateServiceImpl.java @@ -0,0 +1,162 @@ +package com.cf.imes.module.manage.service.patching; + + +import com.alibaba.nacos.shaded.com.google.gson.Gson; +import com.cf.imes.framework.common.pojo.PageResult; +import com.cf.imes.framework.common.util.json.JsonUtils; +import com.cf.imes.framework.common.util.object.BeanUtils; +import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO; +import com.cf.imes.module.manage.controller.admin.patching.vo.*; +import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO; +import com.cf.imes.module.manage.dal.dataobject.patching.PatchDetailDO; +import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO; +import com.cf.imes.module.manage.dal.mysql.patching.MachineMapper; +import com.cf.imes.module.manage.dal.mysql.patching.PatchDetailMapper; +import com.cf.imes.module.manage.dal.mysql.plate.OrderPlateMapper; +import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper; +import com.cf.imes.module.manage.dal.mysql.process.ProductionProcessMapper; +import com.cf.imes.module.manage.util.page.PageHelperUtil; +import com.cf.imes.module.manage.dal.dataobject.patching.MachineDO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Validated +public class PatchingPlateServiceImpl implements PatchingPlateService{ + + + @Resource + private ProductionProcessMapper productionProcessMapper; + + @Resource + private OrderPlateMapper orderPlateMapper; + + @Resource + private MachineMapper machineMapper; + + @Resource + private PatchDetailMapper patchDetailMapper; + + + + // 批量加入补板查询 + @Override + public PageResult patchingSearchPlate(PatchingPlatePageReqVO pageReqVO) { + + + // 查询板件和订单的基础信息 + PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + List patchingPlateRespVOS = productionProcessMapper.selectPatchingPlate(pageReqVO); + + // + PageInfo pageInfo = new PageInfo<>(patchingPlateRespVOS); + return PageHelperUtil.convertToPageResult(pageInfo); + + + } + + + + + // 查询详细的板件 + @Override + public PageResult searchPlateDetail(PatchingPlatePageReqVO pageReqVO) { + + // 查询每个订单对应的板件的详细信息 + PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + List plateDetailsRespVOS = orderPlateMapper.selectPlateDetail(pageReqVO); + + // + PageInfo pageInfo = new PageInfo<>(plateDetailsRespVOS); + return PageHelperUtil.convertToPageResult(pageInfo); + + + } + + + + + + + // 加入的板件信息 + @Override + public PatchingDetailRespVO searchPatchingList(Long plateId) { + + + return orderPlateMapper.selectPlate(plateId); + + + } + + + + + + + + // 优化排版 + @Override + public List optimizeLayout(PatchingDetailReqVO reqVO) { + + // 查询板件的的信息 + return orderPlateMapper.selectOtherPlateList(reqVO.getPlateIdList()); + + } + + + + + + + + // 新增补板详情表 + @Override + public void insertPatching(PatchingReqVO reqVO) { + + PatchDetailDO patchDetailDO = new PatchDetailDO(); + + // 循环查询板件的信息,并加入补板详情表中 + for (Long ids : reqVO.getIdList()) { + + PatchingDetailRespVO patchingDetailRespVO = orderPlateMapper.selectPlate(ids); + String jsonString = JsonUtils.toJsonString(patchingDetailRespVO); + + patchDetailDO.setId(ids); + patchDetailDO.setOrderId(patchingDetailRespVO.getOrderId()); + patchDetailDO.setArea(patchDetailDO.getArea()); + patchDetailDO.setPlanId(reqVO.getPlanId()); + patchDetailDO.setMachineId(reqVO.getMachineId()); + + patchDetailDO.setDetail(jsonString); + + patchDetailMapper.insert(patchDetailDO); + + } + + + } + + + + + + + + // 查询所有的机台 + @Override + public List searchMachine() { + + return machineMapper.selectList(); + + + } + + + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessService.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessService.java index f92e21109..45da6bd88 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessService.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessService.java @@ -31,7 +31,7 @@ public interface ProductionProcessService { // 查看板材信息的组合名称 - List selectPlateName(Long processStepId); + List selectPlateName(Long stepItemId); } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java index a33d73a6e..24804c864 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java @@ -4,6 +4,7 @@ package com.cf.imes.module.manage.service.process; import com.cf.imes.framework.common.enums.ProcessingStatusEnum; import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil; import com.cf.imes.framework.common.pojo.PageResult; +import com.cf.imes.module.manage.config.VocieParameters; import com.cf.imes.module.manage.controller.admin.process.vo.*; import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO; import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepItemNDO; @@ -51,9 +52,8 @@ public class ProductionProcessServiceImpl implements ProductionProcessService { @Override public PageResult getProcessPage(ProcessPageReqVO pageReqVO) { - PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - List processRespVOS = processStepItemMapper.selectOrder(pageReqVO); + List processRespVOS = processStepMapper.selectOrder(pageReqVO); // 判断生产步骤表在传入的状态查询后是否为空 if(processRespVOS.isEmpty()){ @@ -93,6 +93,7 @@ public class ProductionProcessServiceImpl implements ProductionProcessService { + // 修改工序明细表的工序状态 @Override public void updateProcessStatus(Long id) { @@ -118,26 +119,14 @@ public class ProductionProcessServiceImpl implements ProductionProcessService { processStepItemMapper.updateById(orderProcessStepItemNDO); - // 判断生产单工序表的工序状态是否还有未加工 - // 获取当前工序 id 下的所有生产单工序步骤表 -// List stepItemList = processStepMapper.getStepItemList(orderProcessStepNDO.getOrderNo(), ProcessingStatusEnum.RAW.getStatus()); - // 集合剩余 1 ,代表当前工序步骤已全部加工,修改生产单工序表的状态为已加工 -/* if (stepItemList.size() == 1) { - orderProcessMapper.updateStatusById(orderProcessStepNDO.getOrderProcessId(), ProcessingStatusEnum.PROCESSED.getStatus()); - return; - } - - // 遍历生产单工序步骤表,判断是否还有未加工的工序步骤 - for (OrderProcessStepNDO processStepNDO : stepItemList) { - if (processStepNDO.getStatus().equals(ProcessingStatusEnum.RAW.getStatus())) { - return; - } - }*/ } + + + // 修改生产步骤表的工序状态 @Override public void updateAllProcessStatus(OrderProStepReqVO reqVO) { @@ -163,24 +152,35 @@ public class ProductionProcessServiceImpl implements ProductionProcessService { processStepItemMapper.updateStatus(reqVO); - // 查询当前工序步骤表的工序状态是否还有未加工 - List orderProcessStepNDOS = processStepMapper.selectStepList(reqVO, ProcessingStatusEnum.RAW.getStatus()); - // 如果为空,修改工序表的加工状态为已加工 - if(orderProcessStepNDOS.isEmpty()){ - orderProcessMapper.updateStatusById(orderProcessStepNDO.getOrderProcessId(),ProcessingStatusEnum.PROCESSED.getStatus()); - } +/* // 查询当前工序步骤表的工序状态是否还有未加工 + List orderProcessStepNDOS = processStepMapper.selectStepList(reqVO, ProcessingStatusEnum.RAW.getStatus());*/ + + + // 修改工序表的加工状态为已加工 + orderProcessMapper.updateStatusById(orderProcessStepNDO.getOrderProcessId(),ProcessingStatusEnum.PROCESSED.getStatus()); + - } - // 查看板材信息的组合名称 @Override - public List selectPlateName(Long processStepId) { + public List selectPlateName(Long stepItemId) { - return processStepItemMapper.selectPlateName(processStepId); + + List orderModuleVOS = processStepItemMapper.selectPlateName(stepItemId); + + for (OrderModuleVO orderModuleVO : orderModuleVOS) { + if(orderModuleVO.getGroupName().isEmpty()){ + return orderModuleVOS; + } + + // 修改组合名称为加工组的名称 + orderModuleVO.setName(orderModuleVO.getGroupName()); + } + + return orderModuleVOS; } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusServiceImpl.java index 8f9025c50..04e5a364b 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusServiceImpl.java @@ -103,8 +103,9 @@ public class ProductionStatusServiceImpl implements ProductionStatusService { @Override public PageResult getOrderPlatePage(PlatePageVO pageReqVO) { + PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - List orderPlateRespVOS = orderItemMapper.selectPlateList(pageReqVO.getBodyId()); + List orderPlateRespVOS = orderItemMapper.selectPlateList(pageReqVO); PageInfo pageInfo = new PageInfo<>(orderPlateRespVOS); PageResult priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/voice/VoiceService.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/voice/VoiceService.java new file mode 100644 index 000000000..3ad2b61ff --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/voice/VoiceService.java @@ -0,0 +1,16 @@ +package com.cf.imes.module.manage.service.voice; + + +import java.io.IOException; + +public interface VoiceService { + + + // 生成音频文件 + String voiceAnnouncements(String text); + + + // 把生成的音频文件进行压缩 + void zipFiles(String sourceFile, String gzipFile) throws IOException; + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/voice/VoiceServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/voice/VoiceServiceImpl.java new file mode 100644 index 000000000..18f68819e --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/voice/VoiceServiceImpl.java @@ -0,0 +1,150 @@ +package com.cf.imes.module.manage.service.voice; + + +import com.cf.imes.framework.quartz.config.XxlJobProperties; +import com.cf.imes.module.manage.config.VocieParameters; +import com.cf.imes.module.manage.config.XxlJobParameter; +import com.jacob.activeX.ActiveXComponent; +import com.jacob.com.ComThread; +import com.jacob.com.Dispatch; +import com.jacob.com.Variant; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.*; + +import java.net.http.WebSocket; +import java.nio.ByteBuffer; +import java.nio.channels.Channels; +import java.nio.channels.FileChannel; +import java.nio.channels.WritableByteChannel; +import java.util.Objects; +import java.util.Random; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +@Service +@Slf4j +public class VoiceServiceImpl implements VoiceService{ + + @Resource + private VocieParameters vocieParameters; + + + + // 生成音频文件 + @Override + public String voiceAnnouncements(String text) { + // + // 音频保存的路径 + String path = vocieParameters.getPath(); + + // 设置音频的质量( 越大越好,目前最大好像 22,最小为 4 ) + Long quality = vocieParameters.getQuality();; + + // 朗读声音大小 + Long soundSize = vocieParameters.getSoundSize(); + + // 朗读速度 + Long readingSpeed = vocieParameters.getReadingSpeed(); + + ActiveXComponent ax = null; + Dispatch spFileStream = null; + Dispatch spAudioFormat = null; + Dispatch spVoice = null; + try{ + ax = new ActiveXComponent("Sapi.SpFileStream"); + spFileStream = ax.getObject(); + + ax = new ActiveXComponent("Sapi.SpAudioFormat"); + spAudioFormat = ax.getObject(); + + spVoice = new ActiveXComponent("Sapi.SpVoice").getObject(); + // 设置音频流格式 + Dispatch.put(spAudioFormat, "Type", new Variant(quality)); + // 设置文件输出流格式 + Dispatch.putRef(spFileStream, "Format", spAudioFormat); + // 随机数,控制文件的名字 + int randomInt = new Random(System.currentTimeMillis()).nextInt(900) + 100;// 生成100到999之间的随机数 + // 文件的路径 + String filePath = path + randomInt + ".mp3"; + + // 调用输出文件流打开方法,创建一个.wav文件 + Dispatch.call(spFileStream, "Open", new Variant(filePath), new Variant(3), new Variant(true)); + // 设置声音对象的音频输出流为输出文件对象 + Dispatch.putRef(spVoice, "AudioOutputStream", spFileStream); + // 设置音量 0 ~ 100 + Dispatch.put(spVoice, "Volume", new Variant(soundSize)); + // 设置朗读速度 -10 ~ +10 + Dispatch.put(spVoice, "Rate", new Variant(readingSpeed)); + + Dispatch.call(spVoice, "Speak", new Variant(text)); + + System.out.println("输出语音文件成功!"); + + return filePath; + + }catch(Exception e){ + e.printStackTrace(); + }finally { + // 关闭输出文件 + Dispatch.call(Objects.requireNonNull(spFileStream), "Close"); + Dispatch.putRef(Objects.requireNonNull(spVoice), "AudioOutputStream", null); + + Objects.requireNonNull(spAudioFormat).safeRelease(); + spFileStream.safeRelease(); + spVoice.safeRelease(); + ax.safeRelease(); + } + + return null; + } + + + + /** + * 把生成的音频文件进行压缩 + * @param fileNames 需要压缩的文件名称列表(包含相对路径) + * @param zipOutName 压缩后的文件名称 + **/ + @Override + public void zipFiles(String fileNames, String zipOutName) throws IOException { + ZipOutputStream zipOutputStream = null; + WritableByteChannel writableByteChannel = null; + ByteBuffer buffer = ByteBuffer.allocate(2048); + try { + zipOutputStream = new ZipOutputStream(new FileOutputStream(zipOutName)); + writableByteChannel = Channels.newChannel(zipOutputStream); + File source = new File(fileNames); + zipOutputStream.putNextEntry(new ZipEntry(source.getName())); + FileChannel fileChannel = new FileInputStream(fileNames).getChannel(); + while (fileChannel.read(buffer) != -1) { + //更新缓存区位置 + buffer.flip(); + while (buffer.hasRemaining()) { + writableByteChannel.write(buffer); + } + buffer.rewind(); + } + fileChannel.close(); + + System.out.println("文件压缩成功"); + + } catch (Exception e) { + log.error("batchZipFiles error fileNames:"); + } finally { + zipOutputStream.close(); + writableByteChannel.close(); + buffer.clear(); + } + } + + + + + + + +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/util/xxjJob/XxlJobUtil.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/util/xxjJob/XxlJobUtil.java new file mode 100644 index 000000000..673af5d4f --- /dev/null +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/util/xxjJob/XxlJobUtil.java @@ -0,0 +1,43 @@ +package com.cf.imes.module.manage.util.xxjJob; + + +import com.cf.imes.framework.quartz.config.XxlJobProperties; +import com.cf.imes.module.manage.config.XxlJobParameter; +import com.xxl.job.core.handler.IJobHandler; +import com.xxl.job.core.handler.annotation.XxlJob; + +import javax.annotation.Resource; + +public class XxlJobUtil extends IJobHandler { + + @Resource + private XxlJobParameter xxlJobParameter; + + + // 定时删除 + public void deleteFile(){ + + XxlJobProperties xxlJobProperties = new XxlJobProperties(); + + xxlJobProperties.setEnabled(xxlJobParameter.getEnabled()); + xxlJobProperties.setAccessToken(xxlJobParameter.getAccessToken()); + xxlJobProperties.getAdmin().setAddresses(xxlJobParameter.getAddresses()); + xxlJobProperties.getExecutor().setAppName(xxlJobParameter.getAppName()); + xxlJobProperties.getExecutor().setPort(xxlJobParameter.getPort().intValue()); + xxlJobProperties.getExecutor().setIp(xxlJobParameter.getIp()); + xxlJobProperties.getExecutor().setLogPath(xxlJobParameter.getLogPath()); + xxlJobProperties.getExecutor().setLogRetentionDays(xxlJobParameter.getLogRetentionDays().intValue()); + + + } + + + @Override + @XxlJob("demoJobHandler") + public void execute() throws Exception { + deleteFile(); + + System.out.println("定时任务测试"); + + } +} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml index ff93db078..d8f06492a 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml @@ -8,10 +8,9 @@ - - + @@ -23,7 +22,7 @@ - + @@ -36,7 +35,7 @@ o.id as orderId, ob.name as cabinetName, op.id as plateNo, - op.name as plateName, + op.name as name, op.height as height, op.width as width, op.thickness as thickness, @@ -47,11 +46,11 @@ o.address as address, CASE WHEN op.unregular_point_count = 0 THEN '否' ELSE '是' END AS specialShaped, - CASE WHEN front_model_count = 0 or op.back_hole_count or op.side_hole_count THEN '否' ELSE '是' END AS profiling, - CASE WHEN front_hole_count = 0 or op.back_model_count THEN '否' ELSE '是' END AS rowHole, + CASE WHEN front_model_count = 0 or op.back_hole_count = 0 or op.side_hole_count = 0 THEN '否' ELSE '是' END AS profiling, + CASE WHEN front_hole_count = 0 or op.back_model_count = 0 THEN '否' ELSE '是' END AS rowHole, CONCAT( - TRIM(TRAILING '.' from TRIM(TRAILING '0' FROM p.thickness)),'mm-',p.material,'-',p.color) AS name, + TRIM(TRAILING '.' from TRIM(TRAILING '0' FROM p.thickness)),'mm-',p.material,'-',p.color) AS plateCombinationName, p.material as material, p.color as color @@ -95,24 +94,28 @@ resultMap="PlateDetailMap"> select - o.id as orderId, + op.*, + oi.room_id as roomId, + oi.body_id as bodyId, + ob.room_name as roomName, ob.name as cabinetName, - op.id as plateNo, +/* op.id as plateNo, op.name as plateName, op.height as height, op.width as width, op.thickness as thickness, op.area as area, - op.remark as remark, + op.remark as remark,*/ o.custom_order_no as customOrderId, o.customer as customer, o.address as address, CASE WHEN op.unregular_point_count = 0 THEN '否' ELSE '是' END AS specialShaped, - CASE WHEN front_model_count = 0 or op.back_hole_count or op.side_hole_count THEN '否' ELSE '是' END AS profiling, - CASE WHEN front_hole_count = 0 or op.back_model_count THEN '否' ELSE '是' END AS rowHole, + CASE WHEN front_model_count = 0 or op.back_hole_count = 0 or op.side_hole_count = 0 THEN '否' ELSE '是' END AS profiling, + CASE WHEN front_hole_count = 0 or op.back_model_count = 0 THEN '否' ELSE '是' END AS rowHole, + CONCAT( - TRIM(TRAILING '.' from TRIM(TRAILING '0' FROM p.thickness)),'mm-',p.material,'-',p.color) AS name, + TRIM(TRAILING '.' from TRIM(TRAILING '0' FROM p.thickness)),'mm-',p.material,'-',p.color) AS plateCombinationName, p.material as material, p.color as color @@ -129,18 +132,9 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.xml index 1ca0a6a44..3280f081b 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.xml @@ -13,6 +13,58 @@ + + + + + + + + + + + + + + + + + @@ -55,7 +107,7 @@ and ops.status = true -/**/ + group by name,piece_rate,piece_type,creator; diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.xml index 24dad117b..31265840b 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.xml @@ -26,7 +26,7 @@ select - oi.body_id as groupId, + p.goods_id, o.id as orderId, o.custom_order_no as customOrderId, o.customer as customer, @@ -47,33 +47,125 @@ join order_plate op on oi.plate_id = op.id join plate p on op.goods_id = p.goods_id - - - and o.id = #{orderNo} - - - and o.custom_order_no = #{customOrderNo} - - - and o.customer = #{customer} - - - and o.address = #{address} - - - and o.status in - - #{id} - - - - and o.update_time between #{startTime} and #{endTime} - + + + + (op.filter_type = 1 + + or op.filter_type = 2 + + + or op.filter_type = 4 + ) + + + + and o.id = #{orderNo} + + + and o.custom_order_no = #{customOrderNo} + + + and o.customer = #{customer} + + + and o.address = #{address} + + + and o.status in + + #{id} + + + + and o.update_time between #{startTime} and #{endTime} + + + + and op.unregular_point_count = 0 + + + + and op.unregular_point_count > 0 + + + + and front_model_count > 0 or op.back_hole_count > 0 or op.side_hole_count > 0 + + + + and op.is_door = 1 + + + + + + + + + + + and o.id = #{orderNo} + + + and o.custom_order_no = #{customOrderNo} + + + and o.customer = #{customer} + + + and o.address = #{address} + + + and o.status in + + #{id} + + + + and o.update_time between #{startTime} and #{endTime} + + + + and op.unregular_point_count = 0 + + + + and op.unregular_point_count > 0 + + + + and front_model_count > 0 or op.back_hole_count > 0 or op.side_hole_count > 0 + + + + and op.is_door = 1 + + + + + + - group by groupId,orderId,customOrderId,customer,address,orderStatus,plateNum,plateName,thickness,material,color + group by p.goods_id,orderId,customOrderId,customer,address,orderStatus,plateNum,plateName,thickness,material,color \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.xml index 66b0f6b83..9b3a23029 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.xml @@ -80,7 +80,7 @@ - +