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..326099bba 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,48 @@
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
+
+
+
+
+
+
+
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..e8d6224e2
--- /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,148 @@
+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));
+
+
+ }
+
+
+
+
+ @GetMapping("/export")
+ @Operation(summary = "查看订单的板材信息(已将加入包裹的板材信息)")
+ @PreAuthorize("@ss.hasPermission('manage:grouping:export')")
+ public void exportData(@Valid ExportJsonReqVO reqVO) {
+
+
+
+
+
+ }
+
+
+
+
+
+
+
+
+}
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..5ef0eba5d
--- /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..7a1d95ed6
--- /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,47 @@
+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 = "工序 id")
+ private Long id;
+
+ @Schema(description = "生产单号")
+ private Long orderNo;
+
+ @Schema(description = "自定义单号")
+ private String customOrderNo;
+
+ @Schema(description = "客户")
+ private String customer;
+
+ @Schema(description = "地址")
+ private String address;
+
+ @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, example = "false")
+ 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..e12bcbbf9
--- /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..6be894a8f
--- /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,318 @@
+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);
+
+
+ }
+
+
+
+
+
+
+
+ @PostMapping("/insertaabbcc")
+ @Operation(summary = "测试包裹")
+ @PreAuthorize("@ss.hasPermission('manage:pack:insert')")
+ public CommonResult testpack (@Valid @RequestBody OrderPackageReqVO reqVO) {
+
+ //
+ return success(packService.testpack(reqVO));
+
+
+ }
+
+
+
+
+
+
+
+ // 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..cc22e6715
--- /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 Long 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..920cca7b6
--- /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,81 @@
+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/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..03ace49e2
--- /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,111 @@
+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.framework.common.util.object.BeanUtils;
+import com.cf.imes.module.manage.controller.admin.process.vo.OrderPorcessStepItemVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.OrderProcessReqVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPageReqVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.PlatePageVO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
+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.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 修改生产工序步骤表的状态")
+ @PreAuthorize("@ss.hasPermission('manage:process:update')")
+ public CommonResult updateProcessStatus(@Valid Long id){
+ productionProcessService.updateProcessStatus(id);
+ return success(true);
+
+ }
+
+
+
+ @PutMapping("/updateAll")
+ @Operation(summary = "根据工序 id 修改生产单工序表的状态")
+ @PreAuthorize("@ss.hasPermission('manage:process:update')")
+ public CommonResult updateAllProcessStatus(@Valid Long id){
+ productionProcessService.updateAllProcessStatus(id);
+ return success(true);
+
+ }
+
+
+
+
+ @GetMapping("/selectPlateName")
+ @Operation(summary = "查看板材信息的组合名称")
+ @PreAuthorize("@ss.hasPermission('manage:process:query')")
+ public CommonResult> selectPlateName(@Valid Long processStepId){
+
+ return success(productionProcessService.selectPlateName(processStepId));
+
+ }
+
+
+
+
+ @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/OrderPorcessStepItemVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/OrderPorcessStepItemVO.java
new file mode 100644
index 000000000..22aa48458
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/OrderPorcessStepItemVO.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 OrderPorcessStepItemVO {
+
+
+ @Schema(description = "主键")
+ 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/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..37a093cb9
--- /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 = "管理后台 - 生产单工序表 order_process_{N} Request VO")
+@Data
+@ToString(callSuper = true)
+public class OrderProcessReqVO {
+
+
+ @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 = "生产单号",requiredMode = Schema.RequiredMode.REQUIRED, example = "1234")
+ 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/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..67bcf61cd
--- /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 = "管理后台 - 生产单工序表 order_process_{N} 分页 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 = "0")
+ 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/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..3b833a9ac
--- /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,73 @@
+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 = "自定义单号", 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..315d3d009
--- /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,196 @@
+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 = "查看包裹详情分页")
+ @PreAuthorize("@ss.hasPermission('manage:query:query')")
+ public CommonResult> queryPackageDetails(@Valid OrderPackagePageReqVO pageReqVO){
+
+ PageResult packageDetailsRespVOPageResult = productionStatusService.queryPackageDetails(pageReqVO);
+
+ return CommonResult.success(packageDetailsRespVOPageResult);
+
+ }
+
+
+
+
+
+ @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..0ca0d891b
--- /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 = "包裹编号")
+ 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..b2a56e4b7
--- /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 = "主键", 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..9659ad697
--- /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 palteNo;
+
+ @Schema(description = "板名称", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String palteName;
+
+ @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..93eeed576
--- /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,19 @@
+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 = "组合名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "嘿嘿")
+ private String name;
+
+}
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..9c88b2ea0
--- /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 = "生产状态(2:生产中,3:生产完成)", 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..880903063
--- /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,20 @@
+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")
+ private Long bodyId ;
+
+
+}
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..b8b81477f
--- /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 cn.hutool.core.date.DateTime;
+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.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 计件工资查询分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class PriceRatePageReqVO extends PageParam {
+
+ @Schema(description = "工序id")
+ private Long orderProcessId;
+
+ @Schema(description = "生产单工序步骤状态(已加工状态)", requiredMode = Schema.RequiredMode.REQUIRED)
+ private Boolean status;
+
+ @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ private LocalDateTime startTime;
+
+ @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ private LocalDateTime endTime;
+
+ @Schema(description = "加工人")
+ private String creator;
+
+ @Schema(description = "工序名称")
+ private String name;
+
+ @Schema(description = "显示零单价(默认不显示)", 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/dal/dataobject/pack/OrderBodyDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/pack/OrderBodyDO.java
new file mode 100644
index 000000000..a16676958
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/pack/OrderBodyDO.java
@@ -0,0 +1,62 @@
+package com.cf.imes.module.manage.dal.dataobject.pack;
+
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
+import lombok.*;
+
+@TableName("order_body")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderBodyDO extends BaseDO {
+
+ @TableId
+ // 主键
+ private Long id;
+
+ // 生产单号
+ private Long orderId;
+
+ // 组织 ID,默认为1
+ private Long organId;
+
+ // 房间ID
+ private Long roomId;
+
+ // 房间名称
+ private String roomName;
+
+ // 模块名称
+ private String name;
+
+ // 模块宽度
+ private Float width;
+
+ // 模块高度
+ private Float height;
+
+ // 模块深度
+ private Float depth;
+
+ // 模块复制数量
+ private Integer multiNum;
+
+ // 板材数量
+ private Integer plateNum;
+
+ // 异型数量
+ private Integer unregularNum;
+
+ // 文件名
+ private String filename;
+
+ // 备注
+ private String remark;
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderDO.java
new file mode 100644
index 000000000..2e0c0736a
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderDO.java
@@ -0,0 +1,58 @@
+package com.cf.imes.module.manage.dal.dataobject.process;
+
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
+import lombok.*;
+
+@TableName(value = "`order`") // 由于 SQL Server 的 system_user 是关键字,所以使用 system_users
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderDO extends BaseDO {
+
+ @TableId()
+ // 生产单号
+ private Long id;
+
+ // 订单状态
+ private Long status;
+
+ // 自定义单号
+ private String customOrderNo;
+
+ // 客户
+ private String customer;
+
+ // 客户地址
+ private String address;
+
+ // 客户电话
+ private String phoneNumber;
+
+ // 组织 id
+ private Long organId;
+
+ // 经销商
+ private String dealer;
+
+ // 经销商电话
+ private String dealerPhoneNumber;
+
+ // 业务员
+ private String salesman;
+
+ // 拆单员
+ private String splitter;
+
+ // 备注
+ private String remark;
+
+
+
+
+}
\ No newline at end of file
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderProcessNDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderProcessNDO.java
new file mode 100644
index 000000000..9cec8a660
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderProcessNDO.java
@@ -0,0 +1,35 @@
+package com.cf.imes.module.manage.dal.dataobject.process;
+
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
+import lombok.*;
+
+@TableName(value = "order_process_n") // 由于 SQL Server 的 system_user 是关键字,所以使用 system_users
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderProcessNDO extends BaseDO {
+
+ @TableId
+ private Long id;
+
+ // 生产单号
+ private Long orderNo;
+
+ // 工序名
+ private String name;
+
+ // 工序状态
+ private Boolean status;
+
+ // 工序组 id
+ private Long groupId;
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderProcessStepItemNDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderProcessStepItemNDO.java
new file mode 100644
index 000000000..999eafa7f
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderProcessStepItemNDO.java
@@ -0,0 +1,41 @@
+package com.cf.imes.module.manage.dal.dataobject.process;
+
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
+import lombok.*;
+
+@TableName(value = "order_process_step_item_n", autoResultMap = true) // 由于 SQL Server 的 system_user 是关键字,所以使用 system_users
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderProcessStepItemNDO extends BaseDO{
+
+
+ @TableId
+ private Long id;
+
+ // 工序项目名
+ private String name;
+
+ // 生产单工序 id
+ private Long orderProcessId;
+
+ // 工序状态
+ private Boolean status;
+
+ // 工序步骤 id
+ private Long processStepId;
+
+ // 工序组名
+ private String groupName;
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderProcessStepNDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderProcessStepNDO.java
new file mode 100644
index 000000000..f0c974eb9
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/process/OrderProcessStepNDO.java
@@ -0,0 +1,72 @@
+package com.cf.imes.module.manage.dal.dataobject.process;
+
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+@TableName(value = "order_process_step_n") // 由于 SQL Server 的 system_user 是关键字,所以使用 system_users
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderProcessStepNDO extends BaseDO {
+
+ @TableId
+ private Long id;
+
+ // 生产单号
+ private Long orderNo;
+
+ //组织ID
+ private Long organId;
+
+ // 完成时间
+ private LocalDateTime finishTime;
+
+ //工序状态
+ private Boolean status;
+
+ // 加工类型
+ private Integer type;
+
+ // 计件工资
+ private Float pieceRate;
+
+ // 计件工资类型
+ private Integer pieceType;
+
+ // 排序优先级
+ private Integer sort;
+
+ // 工序名称
+ private String name;
+
+ // 工序ID
+ private Long processinfoId;
+
+ // 生产单工序ID
+ private Long orderProcessId;
+
+ // 计划日期
+ private Date scheduleDate;
+
+ // 工序处理时长
+ private Float duration;
+
+ // 工序负责人
+ private String manager;
+
+ // 工序处理日期
+ private Date processDate;
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/query/OrderItemDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/query/OrderItemDO.java
new file mode 100644
index 000000000..5b950c270
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/query/OrderItemDO.java
@@ -0,0 +1,51 @@
+package com.cf.imes.module.manage.dal.dataobject.query;
+
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+@TableName("order_item")
+@Data
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderItemDO {
+
+ // 明细编号
+ @TableId
+ private Long id;
+
+ // 生产单号
+ private Long orderId;
+
+ // 房间 ID
+ private Long roomId;
+
+ // 柜体 ID
+ private Long bodyId;
+
+ // 板件 id
+ private Long plateId;
+
+ // 配件 id
+ private Long partsId;
+
+ // 加工组 id
+ private Long groupId;
+
+ // 排单 ID
+ private Long planId;
+
+ // 包裹 ID
+ private Long packageId;
+
+ // 部件数量
+ private Float num;
+
+ // 组织 ID
+ private Long organId;
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/query/OrderPackageDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/query/OrderPackageDO.java
new file mode 100644
index 000000000..ed581dff6
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/query/OrderPackageDO.java
@@ -0,0 +1,47 @@
+package com.cf.imes.module.manage.dal.dataobject.query;
+
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
+import lombok.*;
+
+@TableName("order_package_n")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderPackageDO extends BaseDO {
+
+
+ // 包裹ID
+ @TableId
+ private Long id;
+
+ // 生产单号
+ private Long orderNo;
+
+ // 包裹编号
+ private Long packageNo;
+
+ // 包裹类型,-1未定义,0板材,1配件,2其他配件
+ private Long type;
+
+ // 包裹名
+ private String name;
+
+ // 包裹状态,0未封包,1已封包,2已入库,3已出库
+ private Integer status;
+
+ // 组织ID
+ private Long organId;
+
+ // 备注
+ private String remark;
+
+
+
+}
+
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/query/OrderPartsNDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/query/OrderPartsNDO.java
new file mode 100644
index 000000000..45a20dad3
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/query/OrderPartsNDO.java
@@ -0,0 +1,68 @@
+package com.cf.imes.module.manage.dal.dataobject.query;
+
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
+import lombok.*;
+
+@TableName("order_parts")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderPartsNDO extends BaseDO {
+
+ @TableId
+ // 配件 ID
+ private Long id;
+
+ // 生产单号
+ private Long orderId;
+
+ // 组织 ID
+ private Long organId;
+
+ // 商品ID
+ private Long goodsId;
+
+ // 配件名称
+ private String name;
+
+ // 材质
+ private String material;
+
+ // 配件类型
+ private String type;
+
+ // 型号
+ private String model;
+
+ // 规格
+ private String spec;
+
+ // 品牌
+ private String brand;
+
+ // 厂家
+ private String factory;
+
+ // 单位
+ private String unit;
+
+ // 价格
+ private Float price;
+
+ // 是否复合部件:0 否 1 是
+ private Boolean isComposite;
+
+ // 备注
+ private String remark;
+
+
+}
+
+
+
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderBodyMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderBodyMapper.java
new file mode 100644
index 000000000..47fbf4ecc
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderBodyMapper.java
@@ -0,0 +1,22 @@
+package com.cf.imes.module.manage.dal.mysql.pack;
+
+
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.module.manage.dal.dataobject.pack.OrderBodyDO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface OrderBodyMapper extends BaseMapperX {
+
+ default List selectGroup(Long orderId) {
+ return selectList(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderBodyDO::getOrderId, orderId)
+ .orderByDesc(OrderBodyDO::getId));
+ }
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java
new file mode 100644
index 000000000..e7c1483bd
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java
@@ -0,0 +1,55 @@
+package com.cf.imes.module.manage.dal.mysql.pack;
+
+
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.module.manage.controller.admin.pack.vo.OtherPackReqVO;
+import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO;
+import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO;
+import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
+import com.cf.imes.module.manage.dal.dataobject.query.OrderPartsNDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface OrderPackageMapper extends BaseMapperX {
+
+
+
+ default List selectByOrderNo(Long orderNo) {
+ return selectList(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderPackageDO::getOrderNo, orderNo)
+ .orderByDesc(OrderPackageDO::getId));
+ }
+
+
+
+ default OrderPackageDO selectByPackNo(Long orderNo) {
+ return selectOne(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderPackageDO::getPackageNo, orderNo));
+ }
+
+
+
+ List selectPackPage(@Param("collect") List collect);
+
+
+ List selectMissingBoard(Long orderNo);
+
+
+
+
+ default OrderPackageDO selectByPackId(Long packId) {
+ return selectOne(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderPackageDO::getId, packId));
+ }
+
+
+
+ void updateParts(@Param("packageId") Long packageId, @Param("packageNo") Long packageNo);
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/OrderProcessMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/OrderProcessMapper.java
new file mode 100644
index 000000000..f66cc3020
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/OrderProcessMapper.java
@@ -0,0 +1,52 @@
+package com.cf.imes.module.manage.dal.mysql.process;
+
+
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessNDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+ * 生产单工序表 order_process_{N} Mapper
+ *
+ * @author 晨丰科技
+ */
+@Mapper
+public interface OrderProcessMapper extends BaseMapperX {
+
+
+ default OrderProcessNDO queryProcess( Long processId , Long orderNo) {
+ return selectOne(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderProcessNDO::getId, processId)
+ .eqIfPresent(OrderProcessNDO::getOrderNo,orderNo));
+
+ }
+
+
+
+ default OrderProcessNDO selectByProcessId(Long id) {
+ return selectOne(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderProcessNDO::getId, id));
+
+ }
+
+
+
+
+
+ default OrderProcessNDO selectStatusById( Long id ) {
+ return selectOne(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderProcessNDO::getId, id));
+
+ }
+
+
+ @Update("UPDATE order_process_n SET status = #{status} WHERE id = #{id}")
+ void updateStatusById(@Param("id") Long id, @Param("status") Boolean status);
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepItemMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepItemMapper.java
new file mode 100644
index 000000000..d203ad0a3
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepItemMapper.java
@@ -0,0 +1,28 @@
+package com.cf.imes.module.manage.dal.mysql.process;
+
+
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPageReqVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepItemNDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 生产单工序明细表 order_process_step_item_{N} Mapper
+ *
+ * @author 晨丰科技
+ */
+@Mapper
+public interface ProcessStepItemMapper extends BaseMapperX {
+
+
+
+ List selectPlateName(Long processStepId);
+
+
+ List selectOrder(ProcessPageReqVO pageReqVO);
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.java
new file mode 100644
index 000000000..a5b35e5f8
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.java
@@ -0,0 +1,69 @@
+package com.cf.imes.module.manage.dal.mysql.process;
+
+
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRatePageReqVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO;
+import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+ * 生产单工序步骤表 order_process_step_{N} Mapper
+ *
+ * @author 晨丰科技
+ */
+@Mapper
+public interface ProcessStepMapper extends BaseMapperX {
+
+ default List getStepItemList(Long orderNo, Boolean status) {
+ return selectList(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderProcessStepNDO::getOrderNo, orderNo)
+ .eqIfPresent(OrderProcessStepNDO::getStatus, status));
+ }
+
+
+
+
+ default OrderProcessStepNDO selectStatusById(Long id) {
+ return selectOne(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderProcessStepNDO::getId, id));
+
+ }
+
+
+ @Update("UPDATE order_process_step_n SET status = #{status} WHERE id = #{id}")
+ void updateStatusById(@Param("id") Long id, @Param("status") Boolean status);
+
+
+
+ default List selectProducitonList(Long orderNo) {
+ return selectList(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderProcessStepNDO::getOrderNo, orderNo));
+
+ }
+
+
+
+ List selectListByStatus(@Param("collect") List collect);
+
+
+
+ default List selectListBy(PriceRatePageReqVO pageReqVO) {
+ return selectList(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderProcessStepNDO::getStatus, pageReqVO.getStatus())
+ .eqIfPresent(OrderProcessStepNDO::getCreator,pageReqVO.getCreator())
+ .eqIfPresent(OrderProcessStepNDO::getName,pageReqVO.getName())
+ .betweenIfPresent(OrderProcessStepNDO::getCreateTime,pageReqVO.getStartTime(),pageReqVO.getEndTime()));
+
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java
new file mode 100644
index 000000000..3a398cdfd
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java
@@ -0,0 +1,50 @@
+package com.cf.imes.module.manage.dal.mysql.process;
+
+
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.module.manage.controller.admin.grouping.vo.OrderPageReqVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPageReqVO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 生产单表 order_{N} Mapper
+ *
+ * @author 晨丰科技
+ */
+@Mapper
+public interface ProductionProcessMapper extends BaseMapperX {
+
+
+
+ default PageResult selectPage(ProcessPageReqVO pageReqVO) {
+ return selectPage(pageReqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(OrderDO::getId,pageReqVO.getOrderNo())
+ .eqIfPresent(OrderDO::getCustomOrderNo,pageReqVO.getCustomOrderNo())
+ .likeIfPresent(OrderDO::getCustomer,pageReqVO.getCustomer())
+ .likeIfPresent(OrderDO::getAddress,pageReqVO.getAddress())
+ .orderByDesc(OrderDO::getId));
+ }
+
+
+
+
+ default PageResult selectPageList(OrderPageReqVO pageReqVO) {
+ return selectPage(pageReqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(OrderDO::getId,pageReqVO.getOrderNo())
+ .eqIfPresent(OrderDO::getCustomOrderNo,pageReqVO.getCustomOrderNo())
+ .likeIfPresent(OrderDO::getCustomer,pageReqVO.getCustomer())
+ .likeIfPresent(OrderDO::getAddress,pageReqVO.getAddress())
+ .and(wrapper -> {
+ for (Long status : pageReqVO.getStatusList()) {
+ wrapper.or().eq(OrderDO::getStatus, status);
+ }
+ })
+ .orderByDesc(OrderDO::getId));
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java
new file mode 100644
index 000000000..90a711085
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java
@@ -0,0 +1,76 @@
+package com.cf.imes.module.manage.dal.mysql.query;
+
+
+
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.module.manage.controller.admin.grouping.vo.OrderPlateListRespVO;
+import com.cf.imes.module.manage.controller.admin.pack.vo.DeleteOtherPartsReqVO;
+import com.cf.imes.module.manage.controller.admin.pack.vo.PackReqVO;
+import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO;
+import com.cf.imes.module.manage.dal.dataobject.query.OrderItemDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+@Mapper
+public interface OrderItemMapper extends BaseMapperX {
+
+
+ List selectByPackageId(Long packageId);
+
+
+ List selectCombinationName(Long orderNo);
+
+
+ List selectPlateList(Long bodyId);
+
+
+ List selectOrderPlateList(Long orderNo);
+
+
+ List selectGroupingPlateList(Long orderNo);
+
+
+
+ void insertPackPlate( Long plateId);
+
+
+ List selectJoinedGroupPlateList(@Param("orderNo") Long orderNo , @Param("packageIdList") List packageIdList);
+
+
+
+ @Update("update order_item set package_id =0 where plate_id =#{plateId}")
+ void removePackPlate(Long plateId);
+
+
+ List selectPrintPlateList(@Param("orderNo")Long orderNo,@Param("packageNo") Long packageNo);
+
+
+
+ void deleteOrderPack(@Param("reqVO") PackReqVO reqVO);
+
+
+ void updateParts(@Param("reqVO") DeleteOtherPartsReqVO reqVO);
+
+
+ void deleteOtherParts(@Param("itemId") Long itemId);
+
+
+ void deleteParts(@Param("reqVO") PackReqVO reqVO);
+
+
+ void insertPackId(@Param("plateIdList") List plateIdList, @Param("packId") Long packId);
+
+
+ void deletePackId(@Param("deletePlateIdList") List deletePlateIdList,@Param("packId") Long packId);
+
+
+
+ void insertPartsId(@Param("packId") Long packId, @Param("addPartsIdList") List addPartsIdList);
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.java
new file mode 100644
index 000000000..f6fdf191f
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.java
@@ -0,0 +1,39 @@
+package com.cf.imes.module.manage.dal.mysql.query;
+
+
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.module.manage.controller.admin.pack.vo.OrderPartsRespVO;
+import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlatePageReqVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO;
+import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO;
+import com.cf.imes.module.manage.dal.dataobject.query.OrderPartsNDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface OrderPartsMapper extends BaseMapperX {
+
+
+ List selectParts(Long packageNo);
+
+
+ List selectPartsList(Long orderId);
+
+
+
+ List selectOrderParts(@Param("orderNo")Long orderNo,@Param("packageNo") Long packageNo);
+
+
+ void deleteOrderParts(@Param("packageId") Long packageId);
+
+
+ default OrderPartsNDO selectOneParts(String otherPartsName) {
+ return selectOne(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderPartsNDO::getName,otherPartsName));
+
+ }
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.java
new file mode 100644
index 000000000..36093d148
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.java
@@ -0,0 +1,69 @@
+package com.cf.imes.module.manage.dal.mysql.query;
+
+
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.module.manage.controller.admin.pack.vo.PackPageReqVO;
+import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO;
+import com.cf.imes.module.manage.controller.admin.pack.vo.PrintOrderPackRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlatePageReqVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface ProductionStatusMapper extends BaseMapperX {
+
+
+ default PageResult selectProductionPage(OrderPlatePageReqVO pageReqVO) {
+ return selectPage(pageReqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(OrderDO::getId, pageReqVO.getOrderNo())
+ .eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getCustomOrderNo())
+ .likeIfPresent(OrderDO::getCustomer, pageReqVO.getCustomer())
+ .likeIfPresent(OrderDO::getAddress, pageReqVO.getAddress())
+ .likeIfPresent(OrderDO::getDeleted, pageReqVO.getDealer())
+ .and(wrapper -> {
+ for (Long status : pageReqVO.getStatusList()) {
+ wrapper.or().eq(OrderDO::getStatus, status);
+ }
+ })
+ .orderByDesc(OrderDO::getCreateTime));
+ }
+
+
+
+/* default PageResult selectPackage(OrderPlatePageReqVO pageReqVO) {
+ return selectPage(pageReqVO, new LambdaQueryWrapperX()
+ .orderByDesc(OrderDO::getId));
+ }*/
+
+
+
+
+ PrintOrderRespVO selectPrintOrder(Long orderNo);
+
+
+ default List selectPackPage(PackPageReqVO pageReqVO) {
+ return selectList(new LambdaQueryWrapperX()
+ .eqIfPresent(OrderDO::getId, pageReqVO.getOrderNo())
+ .eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getCustomOrderNo())
+ .likeIfPresent(OrderDO::getCustomer, pageReqVO.getCustomer())
+ .likeIfPresent(OrderDO::getAddress, pageReqVO.getAddress())
+ .eqIfPresent(OrderDO::getStatus, pageReqVO.getStatus())
+ .orderByDesc(OrderDO::getCreateTime));
+ }
+
+ List selectOrderPlate(@Param("collect") List collect);
+
+
+
+
+ PrintOrderPackRespVO selectOrderPack(@Param("orderNo")Long orderNo,@Param("packageNo") Long packageNo);
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/grouping/GroupingService.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/grouping/GroupingService.java
new file mode 100644
index 000000000..babb0d2bc
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/grouping/GroupingService.java
@@ -0,0 +1,36 @@
+package com.cf.imes.module.manage.service.grouping;
+
+
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.cf.imes.module.manage.controller.admin.grouping.vo.*;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleReqVO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
+
+import java.util.List;
+
+public interface GroupingService {
+
+
+ // 查询订单
+ PageResult getGroupingList( OrderPageReqVO pageReqVO);
+
+
+ // 新增包裹
+ Long insertGrouping(OrderPackageReqVO packageReqVO);
+
+
+ // 查看订单的板材信息(未加入包裹的板材信息)
+ PageResult notJoinedGroupingPlateList(OrderModuleReqVO reqVO);
+
+
+ // 包裹表新增板件
+ void insertPackPlate(Long plateId);
+
+
+ // 查看订单的板材信息(已将加入包裹的板材信息)
+ PageResult joinedGroupPlateList(JoinedPlateReqVO reqVO);
+
+
+ // 移除包裹板材信息
+ void removePackPlate(Long plateId);
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/grouping/GroupingServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/grouping/GroupingServiceImpl.java
new file mode 100644
index 000000000..22ee10fd4
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/grouping/GroupingServiceImpl.java
@@ -0,0 +1,123 @@
+package com.cf.imes.module.manage.service.grouping;
+
+
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.cf.imes.framework.common.util.object.BeanUtils;
+import com.cf.imes.framework.common.util.object.PageUtils;
+import 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.OrderModuleReqVO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
+import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
+import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper;
+import com.cf.imes.module.manage.dal.mysql.process.ProductionProcessMapper;
+import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper;
+import com.cf.imes.module.manage.util.page.PageHelperUtil;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+@Validated
+public class GroupingServiceImpl implements GroupingService{
+
+
+ @Resource
+ private ProductionProcessMapper productionProcessMapper;
+
+
+ @Resource
+ private OrderPackageMapper orderPackageMapper;
+
+ @Resource
+ private OrderItemMapper orderItemMapper;
+
+
+
+ // 查询订单分页
+ @Override
+ public PageResult getGroupingList(OrderPageReqVO pageReqVO) {
+
+ return productionProcessMapper.selectPageList(pageReqVO);
+
+
+ }
+
+
+
+ // 新增包裹
+ @Override
+ public Long insertGrouping(OrderPackageReqVO packageReqVO) {
+
+ //
+ OrderPackageDO packageDO = BeanUtils.toBean(packageReqVO, OrderPackageDO.class);
+
+ orderPackageMapper.insert(packageDO);
+
+ return packageDO.getId();
+ }
+
+
+
+
+ // 查看订单的板材信息
+ @Override
+ public PageResult notJoinedGroupingPlateList(OrderModuleReqVO reqVO) {
+
+ PageHelper.startPage(reqVO.getPageNo(),reqVO.getPageSize());
+ List orderPlateListRespVOS = orderItemMapper.selectGroupingPlateList(reqVO.getOrderNo());
+ PageInfo pageInfo = new PageInfo<>(orderPlateListRespVOS);
+ PageResult priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
+
+ return priceRateReqVOPageResult;
+
+ }
+
+
+
+
+ // 包裹表新增板件
+ @Override
+ public void insertPackPlate(Long plateId) {
+
+ orderItemMapper.insertPackPlate(plateId);
+
+ }
+
+
+
+
+
+ @Override
+ public PageResult joinedGroupPlateList(JoinedPlateReqVO reqVO) {
+
+
+ PageHelper.startPage(reqVO.getPageNo(),reqVO.getPageSize());
+ List orderPlateListRespVOS = orderItemMapper.selectJoinedGroupPlateList(reqVO.getOrderNo(), reqVO.getPackageIdList());
+
+ PageInfo pageInfo = new PageInfo<>(orderPlateListRespVOS);
+ PageResult priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
+
+ return priceRateReqVOPageResult;
+
+ }
+
+
+
+
+ // 移除包裹板材信息
+ @Override
+ public void removePackPlate(Long plateId) {
+
+
+ orderItemMapper.removePackPlate(plateId);
+
+
+ }
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackService.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackService.java
new file mode 100644
index 000000000..af4acd3f0
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackService.java
@@ -0,0 +1,82 @@
+package com.cf.imes.module.manage.service.pack;
+
+
+import com.cf.imes.framework.common.pojo.PageResult;
+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.productionStatus.OrderModuleReqVO;
+import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
+
+import java.util.List;
+
+public interface PackService {
+
+
+ // 打包分页查询
+ PageResult getPackPage(PackPageReqVO pageReqVO);
+
+
+ // 查看生产订单对应的包裹信息
+ List getOrderPack(Long orderId);
+
+
+
+ // 查看生产订单对应的板材信息
+ List getOrderPlateList(Long orderId);
+
+
+
+ // 查看板材列表分页
+ PageResult queryPlateDetails(OrderModuleReqVO pageReqVO);
+
+
+
+ // 查看配件列表分页
+ PageResult getPartsList(OrderPartsReqVO reqVO);
+
+
+ // 拆包
+ void unpacking(Long packageID);
+
+
+
+
+ // 显示分组房间名称
+ List GetOrderPlateGroup(Long orderId);
+
+
+
+
+
+ // 查看配件包裹详情
+ List queryPackageDetails(PrintOrderPackReqVO reqVO);
+
+
+
+ // 包裹封包
+ OrderPackageDO updatePackStatus(OrderPackReqVO packageVO);
+
+
+
+ // 包裹订单打印
+ PrintOrderPackRespVO printOrderPack(PrintOrderPackReqVO reqVO);
+
+
+ // 删除包裹及其关联的包裹信息(删除全部)
+ void deleteOrderPack(PackReqVO reqVO);
+
+
+
+ // 新增外部配件
+ OrderPackageDO addNewOtherParts(OtherPackReqVO reqVO);
+
+
+ Long testpack(OrderPackageReqVO reqVO);
+
+
+ // 删除配件包裹中的配件(删除某一个)
+ void deleteOtherParts(DeleteOtherPartsReqVO reqVO);
+
+ // 新增配件-即新增一个包裹
+ OrderPackageDO addNewPartsPack(OrderPackReqVO reqVO);
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java
new file mode 100644
index 000000000..8dc2781c8
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java
@@ -0,0 +1,321 @@
+package com.cf.imes.module.manage.service.pack;
+
+
+import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
+import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
+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.OrderPackageReqVO;
+import com.cf.imes.module.manage.controller.admin.pack.vo.*;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleReqVO;
+import com.cf.imes.module.manage.dal.dataobject.pack.OrderBodyDO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
+import com.cf.imes.module.manage.dal.dataobject.query.OrderItemDO;
+import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
+import com.cf.imes.module.manage.dal.dataobject.query.OrderPartsNDO;
+import com.cf.imes.module.manage.dal.mysql.pack.OrderBodyMapper;
+import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper;
+import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper;
+import com.cf.imes.module.manage.dal.mysql.query.OrderPartsMapper;
+import com.cf.imes.module.manage.dal.mysql.query.ProductionStatusMapper;
+import com.cf.imes.module.manage.util.page.PageHelperUtil;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.cf.imes.module.system.enums.ErrorCodeConstants.THE_ACCESSORY_NAME_CANNOT_BE_DUPLICATED;
+
+@Service
+@Validated
+@Transactional
+public class PackServiceImpl implements PackService {
+
+ @Resource
+ private OrderPackageMapper orderPackageMapper;
+
+ @Resource
+ private ProductionStatusMapper productionStatusMapper;
+
+ @Resource
+ private OrderItemMapper orderItemMapper;
+
+ @Resource
+ private OrderPartsMapper orderPartsMapper;
+
+ @Resource
+ private OrderBodyMapper orderBodyMapper;
+
+
+ // 打包分页查询
+ @Override
+ public PageResult getPackPage(PackPageReqVO pageReqVO) {
+
+ // 根据生产状态查询生产单号
+ List collect = productionStatusMapper.selectPackPage(pageReqVO).stream().map(OrderDO::getId).collect(Collectors.toList());
+
+ PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
+
+ // 查询包裹的已打包数和已打片数
+ List packRespVOS = orderPackageMapper.selectPackPage(collect);
+
+ // 查询打包首页分页数据信息和总片数
+ List packRespVOS1 = productionStatusMapper.selectOrderPlate(collect);
+
+ PageInfo pageInfo = new PageInfo<>(packRespVOS);
+ pageInfo.setList(packRespVOS1);
+
+ // 转换成 PageResult 分页类型
+ PageResult priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
+
+ return priceRateReqVOPageResult;
+
+ }
+
+
+ // 查看生产订单对应的包裹信息
+ @Override
+ public List getOrderPack(Long orderId) {
+ return orderPackageMapper.selectByOrderNo(orderId);
+
+ }
+
+
+ // 查看生产订单对应的板材信息
+ @Override
+ public List getOrderPlateList(Long orderId) {
+
+ return orderItemMapper.selectOrderPlateList(orderId);
+
+ }
+
+
+ // 查看板材列表分页
+ @Override
+ public PageResult queryPlateDetails(OrderModuleReqVO pageReqVO) {
+
+
+ PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
+ List plateDetailsRespVOS = orderItemMapper.selectOrderPlateList(pageReqVO.getOrderNo());
+ PageInfo pageInfo = new PageInfo<>(plateDetailsRespVOS);
+ PageResult priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
+
+ return priceRateReqVOPageResult;
+ }
+
+
+ // 查看配件列表分页
+ @Override
+ public PageResult getPartsList(OrderPartsReqVO reqVO) {
+
+
+ PageHelper.startPage(reqVO.getPageNo(), reqVO.getPageSize());
+ List orderPartsRespVOS = orderPartsMapper.selectPartsList(reqVO.getOrderNo());
+ PageInfo pageInfo = new PageInfo<>(orderPartsRespVOS);
+ return PageHelperUtil.convertToPageResult(pageInfo);
+
+ }
+
+
+ // 拆包
+ @Override
+ public void unpacking(Long packageID) {
+
+ OrderPackageDO packageDO = orderPackageMapper.selectById(packageID);
+ packageDO.setStatus((OrderPackageStatusEnum.UNPACKED.getStatus()));
+ orderPackageMapper.updateById(packageDO);
+
+
+ }
+
+
+ // 显示分组房间名称
+ @Override
+ public List GetOrderPlateGroup(Long orderId) {
+
+ /*List collect = orderBodyMapper.selectGroup(orderId).stream().map(OrderBodyDO::getRoomName).collect(Collectors.toList());*/
+
+ List orderBodyDOS = orderBodyMapper.selectGroup(orderId);
+
+
+ return BeanUtils.toBean(orderBodyDOS, OrderPlateGroupRespVO.class);
+
+
+ }
+
+
+ // 查看配件包裹详情
+ @Override
+ public List queryPackageDetails(PrintOrderPackReqVO reqVO) {
+
+ return orderPartsMapper.selectOrderParts(reqVO.getOrderNo(), reqVO.getPackageNo());
+
+ }
+
+
+ // 包裹封包
+ @Override
+ public OrderPackageDO updatePackStatus(OrderPackReqVO packageVO) {
+
+ // 当传入的包裹ID为 -1 ,走新增的逻辑
+ if (packageVO.getPackId() == -1) {
+ OrderPackageDO orderPackageDO = new OrderPackageDO();
+ orderPackageDO.setOrderNo(packageVO.getOrderId());
+ orderPackageDO.setType(packageVO.getPackageType());
+ orderPackageDO.setStatus((OrderPackageStatusEnum.PACKAGED.getStatus()));
+ orderPackageMapper.insert(orderPackageDO);
+ // 生产单明细表新增包裹 ID
+ orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), orderPackageDO.getId());
+
+ return orderPackageDO;
+
+ }
+
+ // 不为 -1 ,有包裹存在,走更新逻辑
+
+ // 生产明细表新增包裹ID
+ orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), packageVO.getPackId());
+ // 移除包裹ID
+ orderItemMapper.deletePackId(packageVO.getDeletePlateIdList(), packageVO.getPackId());
+
+ return orderPackageMapper.selectByPackId(packageVO.getPackId()).setStatus(OrderPackageStatusEnum.PACKAGED.getStatus());
+
+
+ }
+
+
+ // 包裹订单打印
+ @Override
+ public PrintOrderPackRespVO printOrderPack(PrintOrderPackReqVO reqVO) {
+
+ PrintOrderPackRespVO printOrderPackRespVO = productionStatusMapper.selectOrderPack(reqVO.getOrderNo(), reqVO.getPackageNo());
+ printOrderPackRespVO.setPlateList(orderItemMapper.selectPrintPlateList(reqVO.getOrderNo(), reqVO.getPackageNo()));
+ return printOrderPackRespVO;
+
+
+ }
+
+
+
+ // 删除包裹及其关联的包裹信息(删除全部)
+ @Override
+ public void deleteOrderPack(PackReqVO reqVO) {
+
+ // 判断包裹的类型是否为其他类型,如果是,则删除其包裹信息
+ if (reqVO.getIsOther() == true) {
+
+ orderPartsMapper.deleteOrderParts(reqVO.getPackageId());
+ orderPackageMapper.updateParts(reqVO.getPackageId(), reqVO.getPackageNo());
+ orderItemMapper.deleteParts(reqVO);
+ return;
+ }
+
+ orderItemMapper.deleteOrderPack(reqVO);
+
+ }
+
+
+
+ // 新增外部配件包裹表
+ @Override
+ public OrderPackageDO addNewOtherParts(OtherPackReqVO reqVO) {
+
+
+ // 判断配件名称是否重复
+ OrderPartsNDO orderPartsNDO = orderPartsMapper.selectOneParts(reqVO.getName());
+ if (orderPartsNDO != null) {
+ throw exception(THE_ACCESSORY_NAME_CANNOT_BE_DUPLICATED);
+ }
+
+ // 配件表新增数据
+ OrderPartsNDO orderParts = BeanUtils.toBean(reqVO, OrderPartsNDO.class);
+ orderPartsMapper.insert(orderParts);
+
+
+ // 在包裹表中添加包裹编号和生产单号,修改包裹类型未其他配件类型
+ OrderPackageDO orderPackageDO = new OrderPackageDO();
+ orderPackageDO.setPackageNo(reqVO.getPackNo());
+ orderPackageDO.setOrderNo(reqVO.getOrderId());
+ orderPackageDO.setType(OrderPackageTypeEnum.OTHER_ACCESSORIES.getType().longValue());
+
+ // 新增包裹
+ orderPackageMapper.insert(orderPackageDO);
+
+
+ // 在生产单明细表中添加数据(生产单号,配件ID,包裹ID,部件数量(目前一直为1))
+ OrderItemDO orderItemDO = new OrderItemDO();
+ orderItemDO.setOrderId(reqVO.getOrderId());
+ orderItemDO.setPartsId(orderParts.getId());
+ orderItemDO.setPackageId(orderPackageDO.getId());
+ orderItemDO.setNum(Float.valueOf(1));
+
+
+ // 在生产单明细表中新增数据
+ orderItemMapper.insert(orderItemDO);
+
+ // 查看新增的包裹信息
+/* return orderPackageMapper.selectByPackId(orderPackageDO.getId());*/
+ return orderPackageDO;
+
+
+ }
+
+
+
+
+ @Override
+ public Long testpack(OrderPackageReqVO reqVO) {
+
+ OrderPackageDO packageDO = BeanUtils.toBean(reqVO, OrderPackageDO.class);
+ orderPackageMapper.insert(packageDO);
+ return packageDO.getId();
+ }
+
+
+
+
+ // 删除配件包裹中的配件(删除某一个)
+ @Override
+ public void deleteOtherParts(DeleteOtherPartsReqVO reqVO) {
+
+ // 判断,如果为true 为其他配件
+ if (reqVO.getIsOther() == true) {
+
+ orderItemMapper.updateParts(reqVO);
+ orderItemMapper.deleteOtherParts(reqVO.getItemId());
+ return;
+
+ }
+
+ orderItemMapper.updateParts(reqVO);
+
+ }
+
+
+
+
+
+ // 新增配件-即新增一个包裹
+ @Override
+ public OrderPackageDO addNewPartsPack(OrderPackReqVO reqVO) {
+
+ OrderPackageDO orderPackageDO = new OrderPackageDO();
+ orderPackageDO.setOrderNo(reqVO.getOrderId());
+ orderPackageDO.setType(reqVO.getPackageType());
+ orderPackageDO.setStatus(OrderPackageStatusEnum.PACKAGED.getStatus());
+ // TODO 包裹编号待完成
+ orderPackageMapper.insert(orderPackageDO);
+
+ orderItemMapper.insertPartsId(orderPackageDO.getId(),reqVO.getAddPartsIdList());
+
+ return orderPackageDO;
+
+ }
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessService.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessService.java
new file mode 100644
index 000000000..590aed76a
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessService.java
@@ -0,0 +1,41 @@
+package com.cf.imes.module.manage.service.process;
+
+
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.cf.imes.module.manage.controller.admin.process.vo.OrderPorcessStepItemVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.OrderProcessReqVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPageReqVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
+
+import java.util.List;
+
+public interface ProductionProcessService {
+
+
+ // 生产工序单分页查询
+ PageResult getProcessPage(ProcessPageReqVO pageReqVO);
+
+
+
+ // 查询工序订单下的加工项的详情
+ List getOrderProcessById(OrderProcessReqVO reqVO);
+
+
+
+ // 修改生产单的工序状态
+ void updateProcessStatus(Long id);
+
+
+
+
+ // 修改生产单工序的全部状态
+ void updateAllProcessStatus(Long id);
+
+
+ // 查看板材信息的组合名称
+ List selectPlateName(Long processStepId);
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java
new file mode 100644
index 000000000..33fba58de
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java
@@ -0,0 +1,177 @@
+package com.cf.imes.module.manage.service.process;
+
+
+import com.cf.imes.framework.common.enums.ProcessingStatusEnum;
+import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.cf.imes.framework.common.util.object.BeanUtils;
+import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.OrderPorcessStepItemVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.OrderProcessReqVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPageReqVO;
+import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO;
+import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessNDO;
+import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO;
+import com.cf.imes.module.manage.dal.mysql.process.OrderProcessMapper;
+import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper;
+import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper;
+import com.cf.imes.module.manage.dal.mysql.process.ProductionProcessMapper;
+import com.cf.imes.module.manage.util.page.PageHelperUtil;
+import com.cf.imes.module.system.enums.ErrorCodeConstants;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+import static com.baomidou.mybatisplus.core.toolkit.Wrappers.update;
+
+
+/**
+ * 生产单工序表 order_process_{N} 实现类
+ *
+ * @author 晨丰科技
+ */
+@Service
+@Validated
+public class ProductionProcessServiceImpl implements ProductionProcessService {
+
+ @Resource
+ private ProductionProcessMapper productionProcessMapper;
+
+
+ @Resource
+ private ProcessStepMapper processStepMapper;
+
+ @Resource
+ private OrderProcessMapper orderProcessMapper;
+
+ @Resource
+ private ProcessStepItemMapper processStepItemMapper;
+
+
+
+ // 生产工序单分页查询
+ @Override
+ public PageResult getProcessPage(ProcessPageReqVO pageReqVO) {
+
+
+ PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
+ List processRespVOS = processStepItemMapper.selectOrder(pageReqVO);
+
+ PageInfo pageInfo = new PageInfo<>(processRespVOS);
+
+ // 转换成 PageResult 分页类型
+ return PageHelperUtil.convertToPageResult(pageInfo);
+
+/* // 根据工序单id查询工序单信息
+ OrderProcessNDO orderProcessNDOS = orderProcessMapper.selectByProcessId(pageReqVO.getId());
+ pageReqVO.setOrderNo(orderProcessNDOS.getOrderNo());
+ pageReqVO.setStatus(orderProcessNDOS.getStatus());
+
+
+ // 查询生产单单分页信息
+ return productionProcessMapper.selectPage(pageReqVO);*/
+
+
+ }
+
+
+ // 查询工序订单下的加工项的详情
+ @Override
+ public List getOrderProcessById(OrderProcessReqVO reqVO) {
+
+ OrderPorcessStepItemVO orderPorcessStepItemVO = new OrderPorcessStepItemVO();
+
+ // 获取工序组 id
+ Long groupId = orderProcessMapper.queryProcess(reqVO.getId(), reqVO.getOrderNo()).getGroupId();
+
+ // 获取加工的工序项
+ List stepItemList = processStepMapper.getStepItemList(reqVO.getOrderNo(), reqVO.getStatus());
+
+ // 将工序组 id 加入
+ orderPorcessStepItemVO.setOrderProcessId(groupId);
+
+ // 类型转换并返回
+ return BeanUtils.toBean(stepItemList, OrderPorcessStepItemVO.class);
+
+
+ }
+
+
+ // 修改工序步骤表的工序状态
+ @Override
+ public void updateProcessStatus(Long id) {
+
+ // 根据步骤 id 查询当前生产单工序的状态
+ OrderProcessStepNDO orderProcessStepNDO = processStepMapper.selectStatusById(id);
+
+ // 未加工状态
+ Boolean status = orderProcessStepNDO.getStatus();
+
+ // 未加工状态才可进行加工
+ if (ProcessingStatusEnum.PROCESSED.getStatus().equals(status)) {
+
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.UNPROCESSED_BEFORE_PROCESSING);
+ }
+
+ // 更新加工状态
+ processStepMapper.updateStatusById(id, ProcessingStatusEnum.PROCESSED.getStatus());
+
+
+ // 判断生产单工序表的工序状态是否还有未加工
+ // 获取当前工序 id 下的所有生产单工序步骤表
+ List stepItemList = processStepMapper.getStepItemList(orderProcessStepNDO.getOrderNo(), ProcessingStatusEnum.RAW.getStatus());
+
+ // 集合剩余 1 ,代表当前工序步骤已全部加工,修改生产单工序表的状态为已加工
+ if (stepItemList.size() == 1) {
+ orderProcessMapper.updateStatusById(orderProcessStepNDO.getOrderProcessId(), ProcessingStatusEnum.PROCESSED.getStatus());
+ return;
+ }
+
+ // 遍历生产单工序步骤表,判断是否还有未加工的工序步骤
+ for (OrderProcessStepNDO processStepNDO : stepItemList) {
+ if (processStepNDO.getStatus().equals(ProcessingStatusEnum.RAW.getStatus())) {
+ return;
+ }
+ }
+
+ }
+
+ // 修改生产单工序的状态
+ @Override
+ public void updateAllProcessStatus(Long id) {
+
+
+ // 查看当前生产单的工序状态
+ Boolean status = orderProcessMapper.selectStatusById(id).getStatus();
+
+
+ // 未加工状态才可进行加工
+ if (ProcessingStatusEnum.PROCESSED.getStatus().equals(status)) {
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.UNPROCESSED_BEFORE_PROCESSING);
+ }
+
+ // 更新加工状态
+ orderProcessMapper.updateStatusById(id, ProcessingStatusEnum.PROCESSED.getStatus());
+
+ }
+
+
+ // 查看板材信息的组合名称
+ @Override
+ public List selectPlateName(Long processStepId) {
+
+ return processStepItemMapper.selectPlateName(processStepId);
+
+ }
+
+
+}
+
+
+
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusService.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusService.java
new file mode 100644
index 000000000..e79b20213
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusService.java
@@ -0,0 +1,67 @@
+package com.cf.imes.module.manage.service.query;
+
+
+import com.cf.imes.framework.common.pojo.PageResult;
+
+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.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 java.util.List;
+
+public interface ProductionStatusService {
+
+
+ // 生产状态分页查询
+ PageResult getProductionPage(OrderPlatePageReqVO pageReqVO);
+
+ // 查看生产单下的加工的工序组
+ List selectProduction(Long orderNo);
+
+
+ // 查看板材信息的组合名称
+ List selectPlateName(OrderModuleReqVO reqVO);
+
+
+ // 查看板材信息分页
+ PageResult getOrderPlatePage(PlatePageVO pageReqVO);
+
+
+ // 计件工资分页查询
+ PageResult getSalaryPage(PriceRatePageReqVO pageReqVO);
+
+
+
+ // 打包查询分页
+ PageResult queryPackage(OrderPlatePageReqVO pageReqVO);
+
+
+
+ // 生产单打包完成包裹查看
+ List getPackageList(Long orderNo);
+
+
+
+ // 查看包裹详情
+ PageResult queryPackageDetails(OrderPackagePageReqVO pageReqVO);
+
+
+ // 打印订单
+ PrintOrderRespVO printOrder(Long orderNo);
+
+
+
+ // 导出缺板
+ PageResult getMissingBoard(OrderPartsReqVO pageReqVO);
+
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusServiceImpl.java
new file mode 100644
index 000000000..f0b632728
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusServiceImpl.java
@@ -0,0 +1,239 @@
+package com.cf.imes.module.manage.service.query;
+
+
+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.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.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.dal.dataobject.process.OrderProcessStepNDO;
+import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
+import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper;
+import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper;
+import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper;
+import com.cf.imes.module.manage.dal.mysql.query.*;
+import com.cf.imes.module.manage.util.page.PageHelperUtil;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Validated
+public class ProductionStatusServiceImpl implements ProductionStatusService {
+
+ @Resource
+ private ProductionStatusMapper productionStatusMapper;
+
+ @Resource
+ private ProcessStepMapper processStepMapper;
+
+ @Resource
+ private ProcessStepItemMapper processStepItemMapper;
+
+
+ @Resource
+ private OrderPackageMapper orderPackageMapper;
+
+
+ @Resource
+ private OrderItemMapper orderItemMapper;
+
+ @Resource
+ private OrderPartsMapper orderPartsMapper;
+
+
+
+ // 生产状态分页查询
+ @Override
+ public PageResult getProductionPage(OrderPlatePageReqVO pageReqVO) {
+
+ return productionStatusMapper.selectProductionPage(pageReqVO);
+
+ }
+
+
+
+ // 查看生产单下的加工的工序组
+ @Override
+ public List selectProduction(Long orderNo) {
+
+ List orderProcessStepNDOS = processStepMapper.selectProducitonList(orderNo);
+
+ List productionGroupVOS = BeanUtils.toBean(orderProcessStepNDOS, ProductionGroupVO.class);
+
+ Long id = orderProcessStepNDOS.get(0).getId();
+
+ String name = processStepItemMapper.selectById(id).getGroupName();
+
+ for (int i = 0; i < 1; i++) {
+ productionGroupVOS.get(i).setGroupName(name);
+ }
+
+ return productionGroupVOS;
+ }
+
+
+
+
+ // 查询板材信息的组合名称
+ @Override
+ public List selectPlateName(OrderModuleReqVO reqVO) {
+
+ return orderItemMapper.selectCombinationName(reqVO.getOrderNo());
+
+ }
+
+
+
+
+ // 查看板材信息分页
+ @Override
+ public PageResult getOrderPlatePage(PlatePageVO pageReqVO) {
+
+ PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
+ List orderPlateRespVOS = orderItemMapper.selectPlateList(pageReqVO.getBodyId());
+ PageInfo pageInfo = new PageInfo<>(orderPlateRespVOS);
+ PageResult priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
+
+ return priceRateReqVOPageResult;
+
+ }
+
+
+
+
+ // 计件工资分页查询
+ @Override
+ public PageResult getSalaryPage(PriceRatePageReqVO pageReqVO) {
+
+ // todo 功能完成,数据库数据不完整,测试部分功能完成
+
+ List orderProcessStepNDOS = processStepMapper.selectListBy(pageReqVO);
+
+ if (pageReqVO.getNoShowZero()) {
+ for (OrderProcessStepNDO orderProcessStepNDO : orderProcessStepNDOS) {
+ if (orderProcessStepNDO.getPieceRate() == 0) {
+ orderProcessStepNDOS.remove(orderProcessStepNDO);
+ }
+ }
+ }
+
+ List reqVOS = BeanUtils.toBean(orderProcessStepNDOS, PriceRatePageReqVO.class);
+
+ List collect = reqVOS.stream().map(PriceRatePageReqVO::getOrderProcessId).collect(Collectors.toList());
+
+
+ PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
+ List priceRateReqVOS = processStepMapper.selectListByStatus(collect);
+ PageInfo pageInfo = new PageInfo<>(priceRateReqVOS);
+ PageResult priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
+
+ return priceRateReqVOPageResult;
+
+
+ }
+
+
+
+
+ // 打包查询分页
+ @Override
+ public PageResult queryPackage(OrderPlatePageReqVO pageReqVO) {
+
+ return productionStatusMapper.selectProductionPage(pageReqVO);
+
+ }
+
+
+
+
+ // 生产单打包完成包裹查看
+ @Override
+ public List getPackageList(Long orderNo) {
+
+ List orderPackageDOS = orderPackageMapper.selectByOrderNo(orderNo);
+
+ return BeanUtils.toBean(orderPackageDOS, OrderPackageVO.class);
+
+ }
+
+
+
+
+ // 查看包裹详情
+ @Override
+ public PageResult queryPackageDetails(OrderPackagePageReqVO pageReqVO) {
+
+ OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackNo(pageReqVO.getPackageNo());
+
+ // 查看配件包裹
+ if(orderPackageDO.getType() == 1 && orderPackageDO.getType() == 2){
+
+ PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
+ List packageDetailsRespVOS = orderPartsMapper.selectParts(orderPackageDO.getPackageNo());
+ PageInfo pageInfo = new PageInfo<>(packageDetailsRespVOS);
+ PageResult priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ return priceRateReqVOPageResult;
+
+ }
+
+
+ // 查看板材包裹
+ PageHelper.startPage(pageReqVO.getPageNo(),pageReqVO.getPageSize());
+ List packageDetailsRespVOS = orderItemMapper.selectByPackageId(orderPackageDO.getId());
+ PageInfo pageInfo = new PageInfo<>(packageDetailsRespVOS);
+ PageResult priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
+
+ return priceRateReqVOPageResult;
+
+ }
+
+
+
+
+ // 打印订单
+ @Override
+ public PrintOrderRespVO printOrder(Long orderNo) {
+
+ return productionStatusMapper.selectPrintOrder(orderNo);
+
+ }
+
+
+
+
+ // 导出缺板
+ @Override
+ public PageResult getMissingBoard(OrderPartsReqVO pageReqVO) {
+
+
+ PageHelper.startPage(pageReqVO.getPageNo(),pageReqVO.getPageSize());
+ List plateDetailsRespVOS = orderPackageMapper.selectMissingBoard(pageReqVO.getOrderNo());
+ PageInfo pageInfo = new PageInfo<>(plateDetailsRespVOS);
+ PageResult priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
+
+ return priceRateReqVOPageResult;
+
+ }
+
+
+
+
+
+
+
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/util/page/PageHelperUtil.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/util/page/PageHelperUtil.java
new file mode 100644
index 000000000..96c4c5e9c
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/util/page/PageHelperUtil.java
@@ -0,0 +1,21 @@
+package com.cf.imes.module.manage.util.page;
+
+import com.cf.imes.framework.common.pojo.PageResult;
+import com.github.pagehelper.PageInfo;
+
+
+/**
+ * PageHelper 工具类
+ *
+ * @author 晨丰科技
+ */
+public class PageHelperUtil {
+
+ // 转换分页数据类型
+ public static PageResult convertToPageResult(PageInfo pageInfo) {
+ PageResult pageResult = new PageResult<>();
+ pageResult.setTotal(pageInfo.getTotal());
+ pageResult.setList(pageInfo.getList());
+ return pageResult;
+ }
+}
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml
new file mode 100644
index 000000000..7c840610a
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UPDATE order_package_n
+ SET deleted = true
+ WHERE id = #{packageId} AND package_no = #{packageNo};
+
+
+
+
\ No newline at end of file
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProcessStepItemMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProcessStepItemMapper.xml
new file mode 100644
index 000000000..b6d8bf049
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProcessStepItemMapper.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.xml
new file mode 100644
index 000000000..7be9613b4
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProcessStepMapper.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.xml
new file mode 100644
index 000000000..48151a520
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.xml
@@ -0,0 +1,405 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UPDATE order_item oi
+ SET oi.package_id = (SELECT opn.id
+ FROM order_package_n opn
+ WHERE opn.name LIKE CONCAT('%', (SELECT ob.room_name
+ FROM order_body ob
+ WHERE oi.body_id = ob.id
+ AND plate_id = #{plateId}),'%' )
+ )
+ WHERE plate_id = #{plateId};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UPDATE order_item oi
+ JOIN order_package_n opn ON oi.package_id = opn.id
+ SET oi.package_id = 0, opn.deleted = true
+ WHERE opn.id = #{reqVO.packageId} AND opn.package_no = #{reqVO.packageNo};
+
+
+
+
+
+
+
+
+
+ UPDATE order_parts op
+ SET op.deleted = true
+ WHERE op.id IN (
+ SELECT oi.parts_id
+ FROM order_item oi
+ WHERE oi.order_id = #{reqVO.orderId} AND oi.package_id = #{reqVO.packageId} AND oi.id = #{reqVO.itemId}
+ );
+
+
+
+
+
+
+
+
+
+
+ DELETE FROM order_item
+ WHERE id = #{itemId};
+
+
+
+
+
+
+
+
+ delete from order_item
+ where package_id = #{reqVO.packageId}
+ and order_id in
+ (select order_no from order_package_n where id = #{reqVO.packageId} and package_no = #{reqVO.packageNo} );
+
+
+
+
+
+
+ update order_item oi
+
+ set package_id = #{packId}
+
+ where plate_id in
+
+ #{id}
+
+
+
+
+
+
+
+
+ update order_item oi
+
+ set package_id = 0
+
+ where package_id = #{packId} and plate_id in
+
+ #{id}
+
+
+
+
+
+
+
+
+
+ update order_item oi
+
+ set package_id = #{packId}
+
+ where parts_id in
+
+
+ #{id}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.xml
new file mode 100644
index 000000000..b1349cfad
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ update order_parts op set op.deleted = true where op.id in (
+ select oi.parts_id from order_item oi where package_id =#{packageId});
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.xml
new file mode 100644
index 000000000..080573b3c
--- /dev/null
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.xml
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java
index 1d33455b0..6c5aed981 100644
--- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java
+++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java
@@ -202,4 +202,13 @@ public interface ErrorCodeConstants {
ErrorCode REMAIN_PLATE_NOT_EXISTS = new ErrorCode(1_002_032_002, "板材不存在");
+ //=========== 工序的生产状态 1-002-034-000 ============
+ ErrorCode UNPROCESSED_BEFORE_PROCESSING = new ErrorCode(1_002_034_001, "未加工状态方可进行加工");
+
+
+ // ========== 新增外部配件 1-002-035-000 ==========
+ ErrorCode THE_ACCESSORY_NAME_CANNOT_BE_DUPLICATED = new ErrorCode(1_002_035_001, "配件名称不能重复");
+
+
+
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/process/ProcessGroupController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/process/ProcessGroupController.java
index f4483fcef..255babb73 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/process/ProcessGroupController.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/process/ProcessGroupController.java
@@ -72,8 +72,9 @@ public class ProcessGroupController {
@Operation(summary = "更新工序组")
@PreAuthorize("@ss.hasPermission('system:process-group:update')")
public CommonResult updateProcessGroup(@Valid @RequestBody ProcessListSaveReqVO updateReqVO) {
- processGroupService.updateProcessGroup(updateReqVO);
- return success(true);
+ /*processGroupService.updateProcessGroup(updateReqVO);
+ return success(true);*/
+ return null;
}
@DeleteMapping("/delete")
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/process/vo/group/ProcessGroupSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/process/vo/group/ProcessGroupSaveReqVO.java
index f9039fb43..66c892ff5 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/process/vo/group/ProcessGroupSaveReqVO.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/process/vo/group/ProcessGroupSaveReqVO.java
@@ -1,10 +1,12 @@
package com.cf.imes.module.system.controller.admin.process.vo.group;
+import com.cf.imes.module.system.controller.admin.process.vo.process.ProcessRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
+import java.util.List;
@Schema(description = "管理后台 - 工序组表 process_group新增/修改 Request VO")
@Data
@@ -33,4 +35,8 @@ public class ProcessGroupSaveReqVO {
@NotEmpty(message = "描述不能为空")
private String description;
+ public List getLists() {
+
+ return null;
+ }
}
\ No newline at end of file
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessGroupService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessGroupService.java
index b0e65a8fa..4d2a7355e 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessGroupService.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessGroupService.java
@@ -29,7 +29,7 @@ public interface ProcessGroupService {
*
* @param updateReqVO 更新信息
*/
- void updateProcessGroup(@Valid ProcessListSaveReqVO updateReqVO);
+ void updateProcessGroup(ProcessGroupSaveReqVO updateReqVO);
/**
* 删除工序组表 process_group
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessGroupServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessGroupServiceImpl.java
index db6d67d72..aa76376c4 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessGroupServiceImpl.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessGroupServiceImpl.java
@@ -4,7 +4,6 @@ import com.cf.imes.module.system.controller.admin.process.vo.group.ProcessGroupP
import com.cf.imes.module.system.controller.admin.process.vo.group.ProcessGroupSaveReqVO;
import com.cf.imes.module.system.controller.admin.process.vo.group.ProcessListSaveReqVO;
import com.cf.imes.module.system.controller.admin.process.vo.process.ProcessRespVO;
-import com.cf.imes.module.system.dal.dataobject.process.ProcessDO;
import com.cf.imes.module.system.dal.mysql.process.ProcessMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -48,7 +47,7 @@ public class ProcessGroupServiceImpl implements ProcessGroupService {
}
@Override
- public void updateProcessGroup(ProcessListSaveReqVO updateReqVO) {
+ public void updateProcessGroup(ProcessGroupSaveReqVO updateReqVO) {
// 校验存在
validateProcessGroupExists(updateReqVO.getId());
// 获取items