diff --git a/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/OrderPackageStatusEnum.java b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/OrderPackageStatusEnum.java
new file mode 100644
index 000000000..c3d67f42c
--- /dev/null
+++ b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/OrderPackageStatusEnum.java
@@ -0,0 +1,24 @@
+package com.cf.imes.framework.common.enums;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+public enum OrderPackageStatusEnum {
+
+ UNPACKED(0,"未封包"),
+ PACKAGED(1, "已封包");
+ private Integer status;
+ private String description;
+
+ public boolean equals(Integer status) {
+ return this.status .equals(status) ;
+ }
+
+ public boolean equals(OrderPackageStatusEnum enableStatusEnum) {
+ return enableStatusEnum != null && enableStatusEnum.status .equals(this.getStatus()) ;
+ }
+
+}
diff --git a/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/OrderPackageTypeEnum.java b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/OrderPackageTypeEnum.java
new file mode 100644
index 000000000..cbf675cd2
--- /dev/null
+++ b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/OrderPackageTypeEnum.java
@@ -0,0 +1,27 @@
+package com.cf.imes.framework.common.enums;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+public enum OrderPackageTypeEnum {
+
+ UNDEFINED(-1,"未定义"),
+ PLATE(0,"板材"),
+ PARTS(1,"配件"),
+ OTHER_ACCESSORIES(2,"其他配件");
+ private Integer type;
+ private String description;
+
+ public boolean equals(Integer type) {
+ return this.type .equals(type) ;
+ }
+
+ public boolean equals(OrderPackageTypeEnum enableTypeEnum) {
+ return enableTypeEnum != null && enableTypeEnum.type .equals(this.getType()) ;
+ }
+
+
+}
diff --git a/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/ProcessingStatusEnum.java b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/ProcessingStatusEnum.java
new file mode 100644
index 000000000..e437f4ac9
--- /dev/null
+++ b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/ProcessingStatusEnum.java
@@ -0,0 +1,26 @@
+package com.cf.imes.framework.common.enums;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+@AllArgsConstructor
+@Getter
+public enum ProcessingStatusEnum {
+
+ RAW(false,"未加工"),
+ PROCESSED(true, "已加工");
+ private Boolean status;
+ private String description;
+
+ public boolean equals(Integer status) {
+ return this.status .equals(status) ;
+ }
+
+ public boolean equals(ProcessingStatusEnum enableStatusEnum) {
+ return enableStatusEnum != null && enableStatusEnum.status .equals(this.getStatus()) ;
+ }
+}
+
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 3ad97e066..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
@@ -136,6 +136,54 @@
com.cf.imes
cf-spring-boot-starter-excel
+
+
+
+
+ com.github.pagehelper
+ pagehelper
+ 6.1.0
+
+
+ com.github.jsqlparser
+ jsqlparser
+
+
+
+
+ com.github.pagehelper
+ sqlparser4.5
+ 6.1.0
+
+
+
+
+
+
+ com.hynnet
+ jacob
+ 1.18
+
+
+
+
+ com.google.code.gson
+ gson
+ 2.8.8
+
+
+
+
+ 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/grouping/GroupingController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/GroupingController.java
new file mode 100644
index 000000000..b4aa62700
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/GroupingController.java
@@ -0,0 +1,137 @@
+package com.cf.imes.module.manage.controller.admin.grouping;
+
+
+import com.cf.imes.framework.common.pojo.CommonResult;
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.cf.imes.framework.common.util.object.BeanUtils;
+import com.cf.imes.module.manage.controller.admin.grouping.vo.*;
+import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleReqVO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
+import com.cf.imes.module.manage.service.grouping.GroupingService;
+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 static com.cf.imes.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 分堆 ")
+@RestController
+@RequestMapping("/manage/grouping")
+@Validated
+public class GroupingController {
+
+
+
+ @Resource
+ private GroupingService groupingService;
+
+
+
+
+
+ @GetMapping("/select")
+ @Operation(summary = "查询订单")
+ @PreAuthorize("@ss.hasPermission('manage:grouping:query')")
+ public CommonResult> getGroupingList(@Valid OrderPageReqVO pageReqVO) {
+
+ PageResult groupingList = groupingService.getGroupingList(pageReqVO);
+
+ return success(BeanUtils.toBean(groupingList, ProcessRespVO.class));
+
+ }
+
+
+
+
+
+
+ @GetMapping("/notJoinedPlate")
+ @Operation(summary = "查看订单的板材信息(未加入包裹的板材信息)")
+ @PreAuthorize("@ss.hasPermission('manage:grouping:query')")
+ public CommonResult> notJoinedGroupingPlateList(@Valid OrderModuleReqVO reqVO) {
+
+ return success(groupingService.notJoinedGroupingPlateList(reqVO));
+
+ }
+
+
+
+
+
+
+ @GetMapping("/joinedPlate")
+ @Operation(summary = "查看订单的板材信息(已将加入包裹的板材信息)")
+ @PreAuthorize("@ss.hasPermission('manage:grouping:query')")
+ public CommonResult> joinedGroupPlateList(@Valid JoinedPlateReqVO reqVO) {
+
+ return success(groupingService.joinedGroupPlateList(reqVO));
+
+ }
+
+
+
+
+
+
+
+ @PutMapping("/insertPlate")
+ @Operation(summary = "包裹表新增板件(加入)")
+ @Parameter(name = "plateId", description = "板材id", required = true)
+ @PreAuthorize("@ss.hasPermission('manage:grouping:create')")
+ public CommonResult insertPackPlate(@Valid @RequestParam("plateId") Long plateId) {
+
+ groupingService.insertPackPlate(plateId);
+
+ return success(true);
+
+ }
+
+
+
+
+
+ @PutMapping("/update")
+ @Operation(summary = "移除包裹板材信息")
+ @Parameter(name = "plateId", description = "板材id", required = true)
+ @PreAuthorize("@ss.hasPermission('manage:grouping:update')")
+ public CommonResult removePackPlate(@Valid @RequestParam("plateId") Long plateId) {
+
+ groupingService.removePackPlate(plateId);
+
+ return success(true);
+
+ }
+
+
+
+
+
+
+ @PostMapping("/insert")
+ @Operation(summary = "新增分堆(包裹)")
+ @PreAuthorize("@ss.hasPermission('manage:grouping:create')")
+ public CommonResult insertGrouping(@Valid @RequestBody OrderPackageReqVO packageReqVO) {
+
+ return success(groupingService.insertGrouping(packageReqVO));
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/ExportJsonReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/ExportJsonReqVO.java
new file mode 100644
index 000000000..1a3b76734
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/ExportJsonReqVO.java
@@ -0,0 +1,32 @@
+package com.cf.imes.module.manage.controller.admin.grouping.vo;
+
+
+import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO;
+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 ExportJsonReqVO {
+
+
+ @Schema(description = "板材信息", requiredMode = Schema.RequiredMode.REQUIRED)
+ private List Plates;
+
+
+ @Schema(description = "模块信息", requiredMode = Schema.RequiredMode.REQUIRED)
+ private List modules;
+
+ @Schema(description = "已分堆", requiredMode = Schema.RequiredMode.REQUIRED)
+ private List alreadyGrouping;
+
+
+ @Schema(description = "未分堆", requiredMode = Schema.RequiredMode.REQUIRED)
+ private List notYetGrouping;
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/GroupPlateReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/GroupPlateReqVO.java
new file mode 100644
index 000000000..741000ca1
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/GroupPlateReqVO.java
@@ -0,0 +1,27 @@
+package com.cf.imes.module.manage.controller.admin.grouping.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "管理后台 - 新增包裹板材信息 Request VO")
+@Data
+public class GroupPlateReqVO {
+
+ @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ @NotNull(message = "生产单号不能为空")
+ private Long orderNo;
+
+
+ @Schema(description = "板件id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ @NotNull(message = "板件id不能为空")
+ private Long plateId;
+
+
+ @Schema(description = "房间名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ @NotNull(message = "房间名称不能为空")
+ private String roomName;
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/JoinedPlateReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/JoinedPlateReqVO.java
new file mode 100644
index 000000000..3fc3a37a5
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/JoinedPlateReqVO.java
@@ -0,0 +1,25 @@
+package com.cf.imes.module.manage.controller.admin.grouping.vo;
+
+
+import com.cf.imes.framework.common.pojo.PageParam;
+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 JoinedPlateReqVO extends PageParam {
+
+ @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ private Long orderNo;
+
+
+ @Schema(description = "包裹ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3,4,5")
+ private List packageIdList;
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/OrderPackageReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/OrderPackageReqVO.java
new file mode 100644
index 000000000..ca10c4031
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/OrderPackageReqVO.java
@@ -0,0 +1,52 @@
+package com.cf.imes.module.manage.controller.admin.grouping.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 生产单包裹表 order_package_{N}新增/修改 Request VO")
+@Data
+public class OrderPackageReqVO {
+
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4399")
+ private Long id;
+
+
+ @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ @NotNull(message = "生产单号不能为空")
+ private Long orderNo;
+
+
+/* @Schema(description = "包裹编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ @NotNull(message = "包裹编号不能为空")
+ private Long packageNo;*/
+
+
+ @Schema(description = "包裹类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ @NotNull(message = "包裹类型不能为空(0:板材)")
+ private Long type;
+
+
+ @Schema(description = "包裹名", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ @NotNull(message = "包裹名不能为空")
+ private String name;
+
+
+ @Schema(description = "包裹状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ @NotNull(message = "包裹状态不能为空(默认为:0:未打包")
+ private Long status;
+
+
+
+ @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ 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/grouping/vo/OrderPageReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/OrderPageReqVO.java
new file mode 100644
index 000000000..8019b7532
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/OrderPageReqVO.java
@@ -0,0 +1,49 @@
+package com.cf.imes.module.manage.controller.admin.grouping.vo;
+
+
+import com.cf.imes.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
+
+@Schema(description = "管理后台 - 生产单表 order_{N} 分页 Request VO ")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OrderPageReqVO extends PageParam {
+
+
+ @Schema(description = "生产单号")
+ private Long orderNo;
+
+ @Schema(description = "自定义单号")
+ private String customOrderNo;
+
+ @Schema(description = "客户")
+ private String customer;
+
+ @Schema(description = "地址")
+ private String address;
+
+
+ @Schema(description = "经销商")
+ private String dealer;
+
+ @Schema(description = "开始时间",requiredMode = Schema.RequiredMode.REQUIRED)
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+ private LocalDateTime[] startTime;
+
+ @Schema(description = "结束时间",requiredMode = Schema.RequiredMode.REQUIRED)
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+ private LocalDateTime[] endTime;
+
+ @Schema(description = "订单状态-默认全都显示",requiredMode = Schema.RequiredMode.REQUIRED)
+ private List statusList;
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/OrderPlateListRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/OrderPlateListRespVO.java
new file mode 100644
index 000000000..d54cbfeb2
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/grouping/vo/OrderPlateListRespVO.java
@@ -0,0 +1,61 @@
+package com.cf.imes.module.manage.controller.admin.grouping.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 生产单板件表 Response VO")
+@Data
+public class OrderPlateListRespVO {
+
+
+ @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ private Long orderNo;
+
+
+ @Schema(description = "生产单明细ID", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long ItemID;
+
+
+ @Schema(description = "板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ private Long id;
+
+ @Schema(description = "板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+ private String name;
+
+ @Schema(description = "板材名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+ private String plateName;
+
+ @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 String material;
+
+
+ @Schema(description = "加工组", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+ private String groupName;
+
+
+ @Schema(description = "房间名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+ private String roomName;
+
+
+ @Schema(description = "柜体名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+ private String bodyName;
+
+
+ @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+ 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/pack/PackController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java
new file mode 100644
index 000000000..9c527cb0a
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java
@@ -0,0 +1,306 @@
+package com.cf.imes.module.manage.controller.admin.pack;
+
+
+import com.cf.imes.framework.common.pojo.CommonResult;
+import com.cf.imes.framework.common.pojo.PageParam;
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.cf.imes.framework.common.util.object.BeanUtils;
+import com.cf.imes.framework.excel.core.util.ExcelUtils;
+import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
+import com.cf.imes.module.manage.controller.admin.grouping.vo.OrderPackageReqVO;
+import com.cf.imes.module.manage.controller.admin.pack.vo.*;
+import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleReqVO;
+import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
+import com.cf.imes.module.manage.service.pack.PackService;
+import com.cf.imes.module.manage.service.query.ProductionStatusService;
+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.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import java.io.IOException;
+import java.util.List;
+
+import static com.cf.imes.framework.common.pojo.CommonResult.success;
+import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
+
+@Tag(name = "管理后台 - 生产打包 ")
+@RestController
+@RequestMapping("/manage/pack")
+@Validated
+public class PackController {
+
+
+
+ @Resource
+ private PackService packService;
+
+
+
+ @Resource
+ private ProductionStatusService productionStatusService;
+
+
+
+
+ @GetMapping("/page")
+ @Operation(summary = "打包分页查询")
+ @PreAuthorize("@ss.hasPermission('manage:pack:query')")
+ public CommonResult> getPlatePage(@Valid PackPageReqVO pageReqVO) {
+
+ return CommonResult.success(packService.getPackPage(pageReqVO));
+
+ }
+
+
+
+
+
+
+ @GetMapping("/getOrderPack")
+ @Operation(summary = "查看生产订单对应的包裹信息")
+ @Parameter(name = "orderId", description = "生产单Id", required = true)
+ @PreAuthorize("@ss.hasPermission('manage:pack:query')")
+ public CommonResult> getOrderPack(@Valid @RequestParam("orderId") Long orderId) {
+ List orderPack = packService.getOrderPack(orderId);
+ return success(BeanUtils.toBean(orderPack,OrderPackageVO.class));
+
+ }
+
+
+
+
+
+
+ @GetMapping("/getOrderPlate")
+ @Operation(summary = "查看生产订单对应的板材信息")
+ @Parameter(name = "orderId", description = "生产单Id", required = true)
+ @PreAuthorize("@ss.hasPermission('manage:pack:query')")
+ public CommonResult> getOrderPlateList(@Valid @RequestParam("orderId") Long orderId) {
+
+ return success(packService.getOrderPlateList(orderId));
+
+ }
+
+
+
+
+
+
+ @GetMapping("/export")
+ @Operation(summary = "导出缺板")
+ @PreAuthorize("@ss.hasPermission('manage:pack:export')")
+ @OperateLog(type = EXPORT)
+ public void exportPlateExcel(@Valid OrderPartsReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = productionStatusService.getMissingBoard(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "缺板信息表.xlsx", "数据", PlateDetailsRespVO.class, list);
+
+ }
+
+
+
+
+
+
+ @GetMapping("/pagePlate")
+ @Operation(summary = "查看板材列表分页")
+ @PreAuthorize("@ss.hasPermission('manage:pack:query')")
+ public CommonResult> queryPlateDetails(@Valid OrderModuleReqVO pageReqVO){
+
+ PageResult packageDetailsRespVOPageResult = packService.queryPlateDetails(pageReqVO);
+
+ return success(packageDetailsRespVOPageResult);
+
+ }
+
+
+
+
+
+
+ @GetMapping("/getParts")
+ @Operation(summary = "查看配件列表分页")
+ @PreAuthorize("@ss.hasPermission('manage:pack:query')")
+ public CommonResult> getParts(@Valid OrderPartsReqVO reqVO) {
+
+ return success(packService.getPartsList(reqVO));
+
+
+ }
+
+
+
+
+
+
+ // TODO 目前前端接口只有查询配件包裹时会调用,板材是否会调用待确认
+ @GetMapping("/getPartsPack")
+ @Operation(summary = "查看配件包裹详情")
+ @PreAuthorize("@ss.hasPermission('manage:pack:query')")
+ public CommonResult> queryPackageDetails(@Valid PrintOrderPackReqVO reqVO){
+
+ return success(packService.queryPackageDetails(reqVO));
+
+
+ }
+
+
+
+
+
+
+ @PutMapping("/insert")
+ @Operation(summary = "包裹封包-板材包裹封包")
+ @PreAuthorize("@ss.hasPermission('manage:pack:update')")
+ public CommonResult updatePackStatus(@Valid @RequestBody OrderPackReqVO packageVO) {
+
+ return success(packService.updatePackStatus(packageVO));
+
+ }
+
+
+
+
+
+
+
+
+ @PutMapping("/unpacking")
+ @Operation(summary = "拆包")
+ @PreAuthorize("@ss.hasPermission('manage:pack:update')")
+ public CommonResult unpacking(@Valid Long packageID) {
+
+ packService.unpacking(packageID);
+
+ return success(true);
+ }
+
+
+
+
+
+
+
+
+ @GetMapping("/GetOrderPlateGroup")
+ @Operation(summary = "显示分组房间名称")
+ @PreAuthorize("@ss.hasPermission('manage:pack:query')")
+ public CommonResult> GetOrderPlateGroup(@Valid Long orderId) {
+
+ return success(packService.GetOrderPlateGroup(orderId));
+
+ }
+
+
+
+
+
+
+
+ @GetMapping("/print")
+ @Operation(summary = "包裹订单打印")
+ @PreAuthorize("@ss.hasPermission('manage:pack:query')")
+ public CommonResult printOrderPack (@Valid PrintOrderPackReqVO reqVO) {
+
+ return success(packService.printOrderPack(reqVO));
+
+ }
+
+
+
+
+
+ @PostMapping("/insertParts")
+ @Operation(summary = "新增配件-即新增一个包裹")
+ @PreAuthorize("@ss.hasPermission('manage:pack:insert')")
+ public CommonResult addNewPartsPack (@Valid @RequestBody OrderPackReqVO reqVO) {
+
+ return success(packService.addNewPartsPack(reqVO));
+
+ }
+
+
+
+
+
+
+
+ @PostMapping("/insertOther")
+ @Operation(summary = "新增外部配件-即新增一个包裹")
+ @PreAuthorize("@ss.hasPermission('manage:pack:insert')")
+ public CommonResult addNewOtherParts (@Valid @RequestBody OtherPackReqVO reqVO) {
+
+ return success(packService.addNewOtherParts(reqVO));
+
+ }
+
+
+
+
+
+
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除包裹及其关联的包裹信息(删除全部)")
+ @PreAuthorize("@ss.hasPermission('manage:pack:delete')")
+ public CommonResult deleteOrderPack (@Valid @RequestBody PackReqVO reqVO) {
+
+ packService.deleteOrderPack(reqVO);
+ return success(true);
+
+ }
+
+
+
+
+
+
+
+ @DeleteMapping("/deleteOtherParts")
+ @Operation(summary = "删除配件包裹中的配件(删除某一个)")
+ @PreAuthorize("@ss.hasPermission('manage:pack:delete')")
+ public CommonResult deleteOtherParts (@Valid @RequestBody DeleteOtherPartsReqVO reqVO) {
+
+ packService.deleteOtherParts(reqVO);
+ return success(true);
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ // TODO 查询接口是否需要定义
+/*
+ @GetMapping("/query")
+ @Operation(summary = "板材列表下的查询")
+ @PreAuthorize("@ss.hasPermission('manage:pack:query')")
+ public CommonResult> GetOrderPlateGroup(@Valid Long orderId) {
+
+ return success(packService.GetOrderPlateGroup(orderId));
+
+ }
+*/
+
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/DeleteOtherPartsReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/DeleteOtherPartsReqVO.java
new file mode 100644
index 000000000..236f26f7d
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/DeleteOtherPartsReqVO.java
@@ -0,0 +1,31 @@
+package com.cf.imes.module.manage.controller.admin.pack.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 删除其他配件 Request VO")
+@Data
+@ToString(callSuper = true)
+public class DeleteOtherPartsReqVO {
+
+
+ @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long orderId;
+
+
+ @Schema(description = "包裹Id", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long packageId;
+
+
+ @Schema(description = "明细ID", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long itemId;
+
+
+ @Schema(description = "是否是其他类型的包裹", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Boolean isOther;
+
+
+}
+
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPackReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPackReqVO.java
new file mode 100644
index 000000000..1aab14e18
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPackReqVO.java
@@ -0,0 +1,41 @@
+package com.cf.imes.module.manage.controller.admin.pack.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 OrderPackReqVO {
+
+
+ @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long orderId;
+
+
+ @Schema(description = "包裹ID", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long packId;
+
+
+ @Schema(description = "包裹类型", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long packageType;
+
+
+ @Schema(description = "新增的板件ID", requiredMode = Schema.RequiredMode.REQUIRED)
+ private List addPlateIdList;
+
+
+ @Schema(description = "移除的板件ID", requiredMode = Schema.RequiredMode.REQUIRED)
+ private List deletePlateIdList;
+
+
+ @Schema(description = "新增的配件包裹ID", requiredMode = Schema.RequiredMode.REQUIRED)
+ private List addPartsIdList;
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPartsReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPartsReqVO.java
new file mode 100644
index 000000000..70d45820f
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPartsReqVO.java
@@ -0,0 +1,20 @@
+package com.cf.imes.module.manage.controller.admin.pack.vo;
+
+
+import com.cf.imes.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 生产单模块表 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OrderPartsReqVO extends PageParam {
+
+
+ @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long orderNo;
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPartsRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPartsRespVO.java
new file mode 100644
index 000000000..78e6a3e50
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPartsRespVO.java
@@ -0,0 +1,49 @@
+package com.cf.imes.module.manage.controller.admin.pack.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 配件列表详情 Response VO")
+@Data
+public class OrderPartsRespVO {
+
+
+ @Schema(description = "配件ID", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long partsId;
+
+ @Schema(description = "配件名称", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String partsName;
+
+ @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String model;
+
+ @Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String spec;
+
+ @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long num;
+
+ @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String unit;
+
+ @Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String brand;
+
+ @Schema(description = "厂家", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String factory;
+
+
+ @Schema(description = "配件类型", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String type;
+
+
+ @Schema(description = "是否复合配件", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Boolean isComposite;
+
+
+
+ @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/pack/vo/OrderPlateGroupRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPlateGroupRespVO.java
new file mode 100644
index 000000000..7263be8a3
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPlateGroupRespVO.java
@@ -0,0 +1,28 @@
+package com.cf.imes.module.manage.controller.admin.pack.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.apache.poi.ss.formula.functions.Value;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+@Schema(description = "管理后台 - 板材列表显示 Response VO")
+@Data
+public class OrderPlateGroupRespVO {
+
+
+ @Schema(description = "房间id", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long roomId;
+
+
+ @Schema(description = "房间名称", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String roomName;
+
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OtherPackReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OtherPackReqVO.java
new file mode 100644
index 000000000..686e961cf
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OtherPackReqVO.java
@@ -0,0 +1,47 @@
+package com.cf.imes.module.manage.controller.admin.pack.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "管理后台 - 新增外部配件 Request VO")
+@Data
+@ToString(callSuper = true)
+public class OtherPackReqVO {
+
+
+
+ @Schema(description = "配件ID,主键", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long id;
+
+
+ @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ @NotNull(message = "生产单号不能为空")
+ private Long orderId;
+
+
+
+ @Schema(description = "配件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ @NotEmpty(message = "配件名称不能为空")
+ private String name;
+
+
+ @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
+ @NotEmpty(message = "备注不能为空")
+ private String remark;
+
+
+
+/* @Schema(description = "包裹编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ @NotNull(message = "包裹编号不能为空")
+ private String packNo;*/
+
+
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackPageReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackPageReqVO.java
new file mode 100644
index 000000000..860353347
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackPageReqVO.java
@@ -0,0 +1,37 @@
+package com.cf.imes.module.manage.controller.admin.pack.vo;
+
+
+import com.cf.imes.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 打包分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class PackPageReqVO extends PageParam {
+
+
+ @Schema(description = "生产状态(2:生产中,3:生产完成)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ private Long status;
+
+
+ @Schema(description = "订单号")
+ private Long orderNo;
+
+
+ @Schema(description = "自定义单号")
+ private String customOrderNo;
+
+
+ @Schema(description = "客户")
+ private String customer;
+
+
+ @Schema(description = "地址")
+ private String address;
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackReqVO.java
new file mode 100644
index 000000000..0c501e2bd
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackReqVO.java
@@ -0,0 +1,28 @@
+package com.cf.imes.module.manage.controller.admin.pack.vo;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 删除订单包裹 Request VO")
+@Data
+@ToString(callSuper = true)
+public class PackReqVO {
+
+
+
+ @Schema(description = "包裹ID", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long packageId;
+
+
+ @Schema(description = "包裹编号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long packageNo;
+
+
+ @Schema(description = "是否是其他类型的包裹", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Boolean isOther;
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackRespVO.java
new file mode 100644
index 000000000..ed9d1cf56
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackRespVO.java
@@ -0,0 +1,74 @@
+package com.cf.imes.module.manage.controller.admin.pack.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+
+
+
+@Schema(description = "管理后台 - 生产单表 order_{N} Response VO")
+@Data
+public class PackRespVO {
+
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788")
+ private Long id;
+
+
+ @Schema(description = "自定义单号", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private String customOrderNo;
+
+
+ @Schema(description = "经销商", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private String dealer;
+
+
+ @Schema(description = "交付日期", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private LocalDateTime deliveryDate;
+
+
+ @Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED,example = "0")
+ private Long status;
+
+
+ @Schema(description = "客户", requiredMode = Schema.RequiredMode.REQUIRED,example = "张三")
+ private String customer;
+
+
+ @Schema(description = "客户地址", requiredMode = Schema.RequiredMode.REQUIRED,example = "AABB")
+ private String address;
+
+
+ @Schema(description = "客户电话", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private String phoneNumber;
+
+
+ @Schema(description = "业务员", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private String salesman;
+
+
+ @Schema(description = "拆单员", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private String splitter;
+
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ private LocalDateTime createTime;
+
+
+
+ @Schema(description = "已打包数", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long packCount;
+
+
+ @Schema(description = "已打包片数", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long packPieceCount;
+
+
+ @Schema(description = "总片数", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long totalPieceCount;
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PlateDetailsRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PlateDetailsRespVO.java
new file mode 100644
index 000000000..32e95ee0f
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PlateDetailsRespVO.java
@@ -0,0 +1,80 @@
+package com.cf.imes.module.manage.controller.admin.pack.vo;
+
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+
+@Schema(description = "管理后台 - 板材详情(导出板材表) Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class PlateDetailsRespVO {
+
+ @Schema(description = "房间名称", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("房间名称")
+ private String roomName;
+
+ @Schema(description = "柜体名称", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("柜体名称")
+ private String cabinetName;
+
+ @Schema(description = "板编号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("板编号")
+ private String plateNo;
+
+ @Schema(description = "板名称", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("板名称")
+ private String plateName;
+
+ @Schema(description = "材料", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("材料")
+ private String material;
+
+ @Schema(description = "颜色", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("颜色")
+ private String color;
+
+ @Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("宽度")
+ private Double width;
+
+ @Schema(description = "长度", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("长度")
+ private Double height;
+
+ @Schema(description = "厚度", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("厚度")
+ private Double thickness;
+
+ @Schema(description = "面积", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("面积")
+ private Double area;
+
+ @Schema(description = "纹路", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("纹路")
+ private String texture;
+
+ @Schema(description = "异形数量", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("异形")
+ private String specialShaped;
+
+ @Schema(description = "造型数量", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("造型")
+ private String profiling;
+
+ @Schema(description = "排孔数量", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("排孔")
+ private String rowHole;
+
+ @Schema(description = "加工组", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("加工组")
+ private String processGroup;
+
+ @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("备注")
+ 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/pack/vo/PrintOrderPackReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PrintOrderPackReqVO.java
new file mode 100644
index 000000000..1af1b176d
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PrintOrderPackReqVO.java
@@ -0,0 +1,23 @@
+package com.cf.imes.module.manage.controller.admin.pack.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 打印生产单的包裹 Request VO")
+@Data
+@ToString(callSuper = true)
+public class PrintOrderPackReqVO {
+
+
+
+ @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ private Long orderNo;
+
+
+ @Schema(description = "包裹id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ private Long packageNo;
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PrintOrderPackRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PrintOrderPackRespVO.java
new file mode 100644
index 000000000..e45ced424
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PrintOrderPackRespVO.java
@@ -0,0 +1,47 @@
+package com.cf.imes.module.manage.controller.admin.pack.vo;
+
+
+import com.cf.imes.module.manage.controller.admin.grouping.vo.OrderPlateListRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "管理后台 - 包裹打印显示 Response VO")
+@Data
+public class PrintOrderPackRespVO {
+
+ @Schema(description = "自定义单号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String customOrderNo;
+
+
+ @Schema(description = "经销商", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private String dealer;
+
+
+ @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788")
+ private Long orderNo;
+
+
+ @Schema(description = "包裹ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788")
+ private Long packNo;
+
+
+ @Schema(description = "包裹序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788")
+ private Long packNum;
+
+
+
+ @Schema(description = "客户地址", requiredMode = Schema.RequiredMode.REQUIRED,example = "AABB")
+ private String address;
+
+
+
+ @Schema(description = "板材列表", requiredMode = Schema.RequiredMode.REQUIRED,example = "AABB")
+ private List plateList;
+
+
+
+
+
+}
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
new file mode 100644
index 000000000..af9de560b
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/ProductionProcessController.java
@@ -0,0 +1,110 @@
+package com.cf.imes.module.manage.controller.admin.process;
+
+
+import com.cf.imes.framework.common.pojo.CommonResult;
+import com.cf.imes.framework.common.pojo.PageResult;
+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.controller.admin.query.vo.productionStatus.OrderPlateRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.PlatePageVO;
+import com.cf.imes.module.manage.service.process.ProductionProcessService;
+import com.cf.imes.module.manage.service.query.ProductionStatusService;
+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 = "管理后台 - 生产单工序 process")
+@RestController
+@RequestMapping("/manage/process")
+@Validated
+public class ProductionProcessController {
+
+
+ @Resource
+ private ProductionProcessService productionProcessService;
+
+ @Resource
+ private ProductionStatusService productionStatusService;
+
+
+
+ @GetMapping("/page")
+ @Operation(summary = "查看生产工序分页")
+ @PreAuthorize("@ss.hasPermission('manage:process:query')")
+ public CommonResult> getUserPage(@Valid ProcessPageReqVO pageReqVO) {
+
+ return success(productionProcessService.getProcessPage(pageReqVO));
+
+
+ }
+
+
+
+ @GetMapping("/select")
+ @Operation(summary = "根据工序号查看生产工序下的加工项")
+ @PreAuthorize("@ss.hasPermission('manage:process:query')")
+ public CommonResult> selectProcess(@Valid OrderProcessReqVO reqVO){
+ List orderProcessById = productionProcessService.getOrderProcessById(reqVO);
+ return CommonResult.success(orderProcessById);
+
+ }
+
+
+
+
+ @PutMapping("/update")
+ @Operation(summary = "根据工序明细 ID 修改生产工序明细表的状态")
+ @Parameter(name = "id", description = "工序明细ID", required = true, example = "1")
+ @PreAuthorize("@ss.hasPermission('manage:process:update')")
+ public CommonResult updateProcessStatus(@Valid @RequestParam("id") Long id){
+ productionProcessService.updateProcessStatus(id);
+ return success(true);
+
+ }
+
+
+
+ @PutMapping("/updateAll")
+ @Operation(summary = "修改生产步骤表的工序状态")
+ @PreAuthorize("@ss.hasPermission('manage:process:update')")
+ public CommonResult updateAllProcessStatus(@Valid @RequestBody OrderProStepReqVO reqVO){
+ productionProcessService.updateAllProcessStatus(reqVO);
+ return success(true);
+
+ }
+
+
+
+
+ @GetMapping("/selectPlateName")
+ @Operation(summary = "查看板材信息的组合名称")
+ @Parameter(name = "stepItemId", description = "工序明细ID", required = true, example = "1")
+ @PreAuthorize("@ss.hasPermission('manage:process:query')")
+ public CommonResult> selectPlateName(@Valid @RequestParam("stepItemId") Long stepItemId){
+
+ return success(productionProcessService.selectPlateName(stepItemId));
+
+ }
+
+
+
+
+ @GetMapping("/pagePlate")
+ @Operation(summary = "查看板材信息分页")
+ @PreAuthorize("@ss.hasPermission('manage:process:query')")
+ public CommonResult> queryPlate(@Valid PlatePageVO pageReqVO){
+ return success(productionStatusService.getOrderPlatePage(pageReqVO));
+ }
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/OrderProStepReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/OrderProStepReqVO.java
new file mode 100644
index 000000000..f360e4614
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/OrderProStepReqVO.java
@@ -0,0 +1,24 @@
+package com.cf.imes.module.manage.controller.admin.process.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 修改生产步骤表 ")
+@Data
+@ToString(callSuper = true)
+public class OrderProStepReqVO {
+
+
+ @Schema(description = "工序步骤id", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long processStepId;
+
+
+ @Schema(description = "生产单工序ID", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long orderProcessId;
+
+
+ @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long orderId;
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/OrderProcessReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/OrderProcessReqVO.java
new file mode 100644
index 000000000..f47489d82
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/OrderProcessReqVO.java
@@ -0,0 +1,24 @@
+package com.cf.imes.module.manage.controller.admin.process.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 生产单工序明细表 Request VO")
+@Data
+@ToString(callSuper = true)
+public class OrderProcessReqVO {
+
+
+ @Schema(description = "工序步骤ID", requiredMode = Schema.RequiredMode.REQUIRED,example = "12")
+ private Long processStepId;
+
+ @Schema(description = "工序状态",requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
+ private Boolean status;
+
+ @Schema(description = "生产单工序ID",requiredMode = Schema.RequiredMode.REQUIRED, example = "1234")
+ private Long orderProcessId;
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/OrderProcessStepItemVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/OrderProcessStepItemVO.java
new file mode 100644
index 000000000..50e4dba77
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/OrderProcessStepItemVO.java
@@ -0,0 +1,31 @@
+package com.cf.imes.module.manage.controller.admin.process.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Schema(description = "管理后台 - 生产单工序步骤表 order_process_step_{N} Response VO")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderProcessStepItemVO {
+
+
+ @Schema(description = "主键-工序明细ID")
+ private Long id;
+
+ @Schema(description = "加工项名称")
+ private String name;
+
+ @Schema(description = "工序组ID")
+ private Long orderProcessId;
+
+ @Schema(description = "工序名称")
+ private String stepName;
+
+
+
+}
+
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessPageReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessPageReqVO.java
new file mode 100644
index 000000000..eeb76a9ae
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessPageReqVO.java
@@ -0,0 +1,38 @@
+package com.cf.imes.module.manage.controller.admin.process.vo;
+
+
+import com.cf.imes.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 生产单表 分页 Request VO ")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ProcessPageReqVO extends PageParam {
+
+
+ @Schema(description = "工序 id", requiredMode = Schema.RequiredMode.REQUIRED,example = "12")
+ private Long id;
+
+ @Schema(description = "订单状态",requiredMode = Schema.RequiredMode.REQUIRED, example = "false")
+ private Boolean status;
+
+ @Schema(description = "生产单号")
+ private Long orderNo;
+
+ @Schema(description = "自定义单号")
+ private String customOrderNo;
+
+ @Schema(description = "客户")
+ private String customer;
+
+ @Schema(description = "地址")
+ private String address;
+
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessRespVO.java
new file mode 100644
index 000000000..f052388fe
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessRespVO.java
@@ -0,0 +1,75 @@
+package com.cf.imes.module.manage.controller.admin.process.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+
+@Schema(description = "管理后台 - 生产单表 order_{N} Response VO")
+@Data
+public class ProcessRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788")
+ private Long id;
+
+ @Schema(description = "生产单工序步骤ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7788")
+ private Long processStepId;
+
+ @Schema(description = "自定义单号", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private String customOrderNo;
+
+
+ @Schema(description = "经销商", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private String dealer;
+
+
+ @Schema(description = "交付日期", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private LocalDateTime deliveryDate;
+
+
+ @Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED,example = "0")
+ private Long status;
+
+
+ @Schema(description = "客户", requiredMode = Schema.RequiredMode.REQUIRED,example = "张三")
+ private String customer;
+
+
+ @Schema(description = "客户地址", requiredMode = Schema.RequiredMode.REQUIRED,example = "AABB")
+ private String address;
+
+
+ @Schema(description = "客户电话", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private String phoneNumber;
+
+
+ @Schema(description = "业务员", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private String salesman;
+
+
+ @Schema(description = "拆单员", requiredMode = Schema.RequiredMode.REQUIRED,example = "ABCD")
+ private String splitter;
+
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ private LocalDateTime createTime;
+
+
+
+
+ @Schema(description = "已打包数", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long packCount;
+
+
+ @Schema(description = "已打包片数", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long packPieceCount;
+
+
+ @Schema(description = "总片数", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long totalPieceCount;
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessStepVo.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessStepVo.java
new file mode 100644
index 000000000..f1793614e
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessStepVo.java
@@ -0,0 +1,21 @@
+package com.cf.imes.module.manage.controller.admin.process.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+@Schema(description = "更改状态")
+@Data
+@ToString(callSuper = true)
+public class ProcessStepVo {
+
+
+ @Schema(description = "步骤ID", requiredMode = Schema.RequiredMode.REQUIRED,example = "3344")
+ private Long id;
+
+ @Schema(description = "订单状态",requiredMode = Schema.RequiredMode.REQUIRED)
+ private Boolean Status;
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/ProductionStatusController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/ProductionStatusController.java
new file mode 100644
index 000000000..3b24d0474
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/ProductionStatusController.java
@@ -0,0 +1,195 @@
+package com.cf.imes.module.manage.controller.admin.query;
+
+
+import com.cf.imes.framework.common.pojo.CommonResult;
+import com.cf.imes.framework.common.pojo.PageParam;
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.cf.imes.framework.common.util.object.BeanUtils;
+import com.cf.imes.framework.excel.core.util.ExcelUtils;
+import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
+import com.cf.imes.module.manage.controller.admin.pack.vo.OrderPartsReqVO;
+import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackagePageReqVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.*;
+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.OrderDO;
+import com.cf.imes.module.manage.service.query.ProductionStatusService;
+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.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import java.io.IOException;
+import java.util.List;
+
+import static com.cf.imes.framework.common.pojo.CommonResult.success;
+import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
+
+@Tag(name = "管理后台 - 生产查询")
+@RestController
+@RequestMapping("/manage/query")
+@Validated
+public class ProductionStatusController {
+
+
+ @Resource
+ private ProductionStatusService productionStatusService;
+
+
+
+ @GetMapping("/page")
+ @Operation(summary = "生产状态查询分页")
+ @PreAuthorize("@ss.hasPermission('manage:query:query')")
+ public CommonResult> pageProductionStatus(@Valid OrderPlatePageReqVO pageReqVO){
+ PageResult pageResult = productionStatusService.getProductionPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, ProcessRespVO.class));
+ }
+
+
+
+
+ @GetMapping("/select")
+ @Operation(summary = "查看生产单下的工序组工序")
+ @Parameter(name = "orderNo", description = "生产单Id", required = true)
+ @PreAuthorize("@ss.hasPermission('manage:query:query')")
+ public CommonResult> selectProduction(@Valid @RequestParam("orderNo") Long orderNo){
+
+ List orderProcessById = productionStatusService.selectProduction(orderNo);
+
+ return CommonResult.success(orderProcessById);
+
+ }
+
+
+
+
+
+ @GetMapping("/selectPlateName")
+ @Operation(summary = "查看板材信息的组合名称")
+ @PreAuthorize("@ss.hasPermission('manage:query:query')")
+ public CommonResult> selectPlateName(@Valid OrderModuleReqVO reqVO){
+
+ return success(productionStatusService.selectPlateName(reqVO));
+
+ }
+
+
+
+
+
+ @GetMapping("/pagePlate")
+ @Operation(summary = "查看板材信息分页")
+ @PreAuthorize("@ss.hasPermission('manage:query:query')")
+ public CommonResult> queryPlate(@Valid PlatePageVO pageReqVO){
+ return success(productionStatusService.getOrderPlatePage(pageReqVO));
+ }
+
+
+
+
+
+ @GetMapping("/pageSalary")
+ @Operation(summary = "计件工资分页查询")
+ @PreAuthorize("@ss.hasPermission('manage:query:query')")
+ public CommonResult> StepSalary(@Valid PriceRatePageReqVO pageReqVO){
+
+ PageResult salaryPage = productionStatusService.getSalaryPage(pageReqVO);
+
+ return CommonResult.success(salaryPage);
+
+ }
+
+
+
+
+
+ @GetMapping("/pagePackage")
+ @Operation(summary = "打包查询分页")
+ @PreAuthorize("@ss.hasPermission('manage:query:query')")
+ public CommonResult> queryPackage(@Valid OrderPlatePageReqVO pageReqVO){
+
+ PageResult pageResult = productionStatusService.queryPackage(pageReqVO);
+
+ return success(BeanUtils.toBean(pageResult, ProcessRespVO.class));
+
+ }
+
+
+
+
+
+ @GetMapping("/queryPackageList")
+ @Operation(summary = "生产单打包完成包裹查看")
+ @Parameter(name = "orderNo", description = "生产单Id", required = true)
+ @PreAuthorize("@ss.hasPermission('manage:query:query')")
+ public CommonResult> queryPackageList(@Valid @RequestParam("orderNo") Long orderNo){
+
+ List orderProcessById = productionStatusService.getPackageList(orderNo);
+
+ return CommonResult.success(orderProcessById);
+
+ }
+
+
+
+
+
+ @GetMapping("/queryPackageDetails")
+ @Operation(summary = "查看包裹详情分页")
+ @Parameter(name = "packId", description = "包裹Id", required = true)
+ @PreAuthorize("@ss.hasPermission('manage:query:query')")
+ public CommonResult> queryPackageDetails(@Valid @RequestParam("packId") Long packId){
+
+ return CommonResult.success(productionStatusService.queryPackageDetails(packId));
+
+ }
+
+
+
+
+
+ @GetMapping("/printOrder")
+ @Operation(summary = "打印订单")
+ @Parameter(name = "orderNo", description = "生产单Id", required = true)
+ @PreAuthorize("@ss.hasPermission('manage:query:export')")
+ public CommonResult printOrder(@Valid @RequestParam("orderNo") Long orderNo){
+
+ return CommonResult.success(productionStatusService.printOrder(orderNo));
+
+ }
+
+
+
+
+
+ @GetMapping("/export")
+ @Operation(summary = "导出缺板")
+ @PreAuthorize("@ss.hasPermission('manage:query:export')")
+ @OperateLog(type = EXPORT)
+ public void exportPlateExcel(@Valid OrderPartsReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = productionStatusService.getMissingBoard(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "缺板信息表.xls", "数据", PlateDetailsRespVO.class, list);
+
+ }
+
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/OrderPackagePageReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/OrderPackagePageReqVO.java
new file mode 100644
index 000000000..3d92652ec
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/OrderPackagePageReqVO.java
@@ -0,0 +1,23 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.pack;
+
+
+import com.cf.imes.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 查看包裹详情分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OrderPackagePageReqVO extends PageParam {
+
+ @Schema(description = "包裹Id")
+ private Long packageNo;
+
+/* @Schema(description = "包裹类型")
+ private Integer type;*/
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/OrderPackageVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/OrderPackageVO.java
new file mode 100644
index 000000000..87a981ff9
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/OrderPackageVO.java
@@ -0,0 +1,49 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.pack;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 生产单包裹表 Response VO")
+@Data
+public class OrderPackageVO {
+
+
+
+ @Schema(description = "主键-包裹ID", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long id;
+
+ @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long orderNo;
+
+ @Schema(description = "包裹编号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String packageNo;
+
+ @Schema(description = "包裹类型", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long type;
+
+ @Schema(description = "包裹状态", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long status;
+
+ @Schema(description = "组织ID", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long organId;
+
+ @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String creator;
+
+ @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String remark;
+
+ @Schema(description = "出库人", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String updater;
+
+ @Schema(description = "出库时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ private LocalDateTime updateTime;
+
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ private LocalDateTime createTime;
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/PackageDetailsRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/PackageDetailsRespVO.java
new file mode 100644
index 000000000..b29f625bd
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/PackageDetailsRespVO.java
@@ -0,0 +1,85 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.pack;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 包裹详情 Response VO")
+@Data
+public class PackageDetailsRespVO {
+
+ @Schema(description = "房间名称-板材类型显示", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String roomName;
+
+ @Schema(description = "柜体名称", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String cabinetName;
+
+ @Schema(description = "板编号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String plateNo;
+
+ @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 String texture;
+
+ @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 = "加工组", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String processGroup;
+
+
+ @Schema(description = "备注(板材和配件都要传递)", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String remark;
+
+
+
+
+ @Schema(description = "配件名称-配件类型显示", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String partsName;
+
+ @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String model;
+
+ @Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String spec;
+
+ @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long num;
+
+ @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String unit;
+
+ @Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String brand;
+
+ @Schema(description = "厂家", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String factory;
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/PrintOrderRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/PrintOrderRespVO.java
new file mode 100644
index 000000000..550439e74
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/PrintOrderRespVO.java
@@ -0,0 +1,35 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.pack;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 打印订单 Response VO")
+@Data
+public class PrintOrderRespVO {
+
+
+ @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long orderNo;
+
+ @Schema(description = "自定义单号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String customOrderNo;
+
+ @Schema(description = "经销商", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String dealer;
+
+ @Schema(description = "收货地址", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String address;
+
+ @Schema(description = "客户", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String customer;
+
+ @Schema(description = "客户手机号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String customerPhone;
+
+
+ @Schema(description = "包裹数量", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Integer packageQuantity;
+
+
+}
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/OrderModuleReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/OrderModuleReqVO.java
new file mode 100644
index 000000000..65f7aacfe
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/OrderModuleReqVO.java
@@ -0,0 +1,19 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.productionStatus;
+
+
+import com.cf.imes.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+
+@Schema(description = "管理后台 - 生产单模块表 Request VO")
+@Data
+@ToString(callSuper = true)
+public class OrderModuleReqVO extends PageParam {
+
+ @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ private Long orderNo;
+
+
+}
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
new file mode 100644
index 000000000..1a2ccc5c2
--- /dev/null
+++ 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
@@ -0,0 +1,27 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.productionStatus;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+
+
+@Schema(description = "管理后台 - 生产单模块表 order_module_{N} Response VO")
+@Data
+public class OrderModuleVO {
+
+ @Schema(description = "柜体 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "嘿嘿")
+ 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/OrderPlatePageReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/OrderPlatePageReqVO.java
new file mode 100644
index 000000000..ea2218d11
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/OrderPlatePageReqVO.java
@@ -0,0 +1,47 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.productionStatus;
+
+
+import com.cf.imes.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+import java.util.List;
+
+
+@Schema(description = "管理后台 - 生产单表 order_{N} 分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OrderPlatePageReqVO extends PageParam {
+
+
+
+ @Schema(description = "生产状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2,3")
+ private List statusList;
+
+
+ @Schema(description = "订单号")
+ private Long orderNo;
+
+
+ @Schema(description = "自定义单号")
+ private String customOrderNo;
+
+
+ @Schema(description = "客户")
+ private String customer;
+
+
+ @Schema(description = "地址")
+ private String address;
+
+
+ @Schema(description = "经销商")
+ private String dealer;
+
+
+}
+
+
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/OrderPlateRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/OrderPlateRespVO.java
new file mode 100644
index 000000000..4ea76478e
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/OrderPlateRespVO.java
@@ -0,0 +1,35 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.productionStatus;
+
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 板材信息表 Response VO")
+@Data
+public class OrderPlateRespVO {
+
+ @Schema(description = "板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9822")
+ private Long id;
+
+ @Schema(description = "板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
+ private String name;
+
+
+ @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 String material;
+
+}
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
new file mode 100644
index 000000000..421624354
--- /dev/null
+++ 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
@@ -0,0 +1,24 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.productionStatus;
+
+
+import com.cf.imes.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@Schema(description = "管理后台 - 板材信息表分页")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class PlatePageVO extends PageParam {
+
+ @Schema(description = "柜体 id",requiredMode = Schema.RequiredMode.REQUIRED)
+ 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/query/vo/productionStatus/ProductionGroupVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/ProductionGroupVO.java
new file mode 100644
index 000000000..432e725f8
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/productionStatus/ProductionGroupVO.java
@@ -0,0 +1,35 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.productionStatus;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 生产单工序步骤表 order_process_step_{N} Response VO")
+@Data
+public class ProductionGroupVO {
+
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4399")
+ private Long id;
+
+ @Schema(description = "工序组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "嘿嘿")
+ private String groupName;
+
+ @Schema(description = "工序名", requiredMode = Schema.RequiredMode.REQUIRED, example = "嘿嘿")
+ private String name;
+
+ @Schema(description = "加工状态", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Boolean status;
+
+ @Schema(description = "工序负责人", requiredMode = Schema.RequiredMode.REQUIRED, example = "cfy_cf")
+ private String manager;
+
+ @Schema(description = "加工时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ private LocalDateTime processDate;
+
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/salary/PriceRatePageReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/salary/PriceRatePageReqVO.java
new file mode 100644
index 000000000..73350b54f
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/salary/PriceRatePageReqVO.java
@@ -0,0 +1,44 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.salary;
+
+
+import com.cf.imes.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import static com.cf.imes.framework.common.util.date.DateUtils.*;
+
+@Schema(description = "管理后台 - 计件工资查询分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class PriceRatePageReqVO extends PageParam {
+
+
+ @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String startTime;
+
+
+ @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String endTime;
+
+
+ @Schema(description = "加工人")
+ private String creator;
+
+
+ @Schema(description = "工序名称")
+ private String name;
+
+
+ @Schema(description = "显示零单价(默认不显示-false)", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Boolean noShowZero;
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/salary/PriceRateReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/salary/PriceRateReqVO.java
new file mode 100644
index 000000000..a6a66ca52
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/salary/PriceRateReqVO.java
@@ -0,0 +1,32 @@
+package com.cf.imes.module.manage.controller.admin.query.vo.salary;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 计件工资查询 Response VO")
+@Data
+public class PriceRateReqVO {
+
+
+ @Schema(description = "工序名", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String name;
+
+ @Schema(description = "计件工资", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long priceRate;
+
+ @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long num;
+
+ @Schema(description = "计件类型", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Integer priceType;
+
+ @Schema(description = "金额", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Long amount;
+
+
+ @Schema(description = "加工人", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String manager;
+
+
+}
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