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