生产工序-查询-分堆-打包代码1.0

This commit is contained in:
liuzhaotian
2024-04-01 10:00:52 +08:00
parent a678b21e97
commit 443312552f
80 changed files with 5134 additions and 5 deletions
@@ -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()) ;
}
}
@@ -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()) ;
}
}
@@ -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()) ;
}
}
@@ -136,6 +136,48 @@
<groupId>com.cf.imes</groupId>
<artifactId>cf-spring-boot-starter-excel</artifactId>
</dependency>
<!-- pagehelper分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>6.1.0</version>
<exclusions>
<exclusion>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>sqlparser4.5</artifactId>
<version>6.1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.jacob/jacob -->
<dependency>
<groupId>com.hynnet</groupId>
<artifactId>jacob</artifactId>
<version>1.18</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version> <!-- 使用最新版本 -->
</dependency>
</dependencies>
<build>
@@ -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<PageResult<ProcessRespVO>> getGroupingList(@Valid OrderPageReqVO pageReqVO) {
PageResult<OrderDO> groupingList = groupingService.getGroupingList(pageReqVO);
return success(BeanUtils.toBean(groupingList, ProcessRespVO.class));
}
@GetMapping("/notJoinedPlate")
@Operation(summary = "查看订单的板材信息(未加入包裹的板材信息)")
@PreAuthorize("@ss.hasPermission('manage:grouping:query')")
public CommonResult<PageResult<OrderPlateListRespVO>> notJoinedGroupingPlateList(@Valid OrderModuleReqVO reqVO) {
return success(groupingService.notJoinedGroupingPlateList(reqVO));
}
@GetMapping("/joinedPlate")
@Operation(summary = "查看订单的板材信息(已将加入包裹的板材信息)")
@PreAuthorize("@ss.hasPermission('manage:grouping:query')")
public CommonResult<PageResult<OrderPlateListRespVO>> 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<Boolean> 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<Boolean> removePackPlate(@Valid @RequestParam("plateId") Long plateId) {
groupingService.removePackPlate(plateId);
return success(true);
}
@PostMapping("/insert")
@Operation(summary = "新增分堆(包裹)")
@PreAuthorize("@ss.hasPermission('manage:grouping:create')")
public CommonResult<Long> 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) {
}
}
@@ -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<OrderPlateListRespVO> Plates;
@Schema(description = "模块信息", requiredMode = Schema.RequiredMode.REQUIRED)
private List<OrderModuleVO> modules;
@Schema(description = "已分堆", requiredMode = Schema.RequiredMode.REQUIRED)
private List<Long> alreadyGrouping;
@Schema(description = "未分堆", requiredMode = Schema.RequiredMode.REQUIRED)
private List<Long> notYetGrouping;
}
@@ -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;
}
@@ -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<Long> packageIdList;
}
@@ -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;
}
@@ -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<Long> statusList;
}
@@ -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;
}
@@ -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<PageResult<PackRespVO>> 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<List<OrderPackageVO>> getOrderPack(@Valid @RequestParam("orderId") Long orderId) {
List<OrderPackageDO> 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<List<PlateDetailsRespVO>> 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<PlateDetailsRespVO> 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<PageResult<PlateDetailsRespVO>> queryPlateDetails(@Valid OrderModuleReqVO pageReqVO){
PageResult<PlateDetailsRespVO> packageDetailsRespVOPageResult = packService.queryPlateDetails(pageReqVO);
return success(packageDetailsRespVOPageResult);
}
@GetMapping("/getParts")
@Operation(summary = "查看配件列表分页")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<PageResult<OrderPartsRespVO>> getParts(@Valid OrderPartsReqVO reqVO) {
return success(packService.getPartsList(reqVO));
}
// TODO 目前前端接口只有查询配件包裹时会调用,板材是否会调用待确认
@GetMapping("/getPartsPack")
@Operation(summary = "查看配件包裹详情")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<List<OrderPartsRespVO>> queryPackageDetails(@Valid PrintOrderPackReqVO reqVO){
return success(packService.queryPackageDetails(reqVO));
}
@PutMapping("/insert")
@Operation(summary = "包裹封包-板材包裹封包")
@PreAuthorize("@ss.hasPermission('manage:pack:update')")
public CommonResult<OrderPackageDO> updatePackStatus(@Valid @RequestBody OrderPackReqVO packageVO) {
return success(packService.updatePackStatus(packageVO));
}
@PutMapping("/unpacking")
@Operation(summary = "拆包")
@PreAuthorize("@ss.hasPermission('manage:pack:update')")
public CommonResult<Boolean> unpacking(@Valid Long packageID) {
packService.unpacking(packageID);
return success(true);
}
@GetMapping("/GetOrderPlateGroup")
@Operation(summary = "显示分组房间名称")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<List<OrderPlateGroupRespVO>> GetOrderPlateGroup(@Valid Long orderId) {
return success(packService.GetOrderPlateGroup(orderId));
}
@GetMapping("/print")
@Operation(summary = "包裹订单打印")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<PrintOrderPackRespVO> printOrderPack (@Valid PrintOrderPackReqVO reqVO) {
return success(packService.printOrderPack(reqVO));
}
@PostMapping("/insertParts")
@Operation(summary = "新增配件-即新增一个包裹")
@PreAuthorize("@ss.hasPermission('manage:pack:insert')")
public CommonResult<OrderPackageDO> addNewPartsPack (@Valid @RequestBody OrderPackReqVO reqVO) {
return success(packService.addNewPartsPack(reqVO));
}
@PostMapping("/insertOther")
@Operation(summary = "新增外部配件-即新增一个包裹")
@PreAuthorize("@ss.hasPermission('manage:pack:insert')")
public CommonResult<OrderPackageDO> addNewOtherParts (@Valid @RequestBody OtherPackReqVO reqVO) {
return success(packService.addNewOtherParts(reqVO));
}
@DeleteMapping("/delete")
@Operation(summary = "删除包裹及其关联的包裹信息(删除全部)")
@PreAuthorize("@ss.hasPermission('manage:pack:delete')")
public CommonResult<Boolean> deleteOrderPack (@Valid @RequestBody PackReqVO reqVO) {
packService.deleteOrderPack(reqVO);
return success(true);
}
@DeleteMapping("/deleteOtherParts")
@Operation(summary = "删除配件包裹中的配件(删除某一个)")
@PreAuthorize("@ss.hasPermission('manage:pack:delete')")
public CommonResult<Boolean> deleteOtherParts (@Valid @RequestBody DeleteOtherPartsReqVO reqVO) {
packService.deleteOtherParts(reqVO);
return success(true);
}
@PostMapping("/insertaabbcc")
@Operation(summary = "测试包裹")
@PreAuthorize("@ss.hasPermission('manage:pack:insert')")
public CommonResult<Long> testpack (@Valid @RequestBody OrderPackageReqVO reqVO) {
//
return success(packService.testpack(reqVO));
}
// TODO 查询接口是否需要定义
/*
@GetMapping("/query")
@Operation(summary = "板材列表下的查询")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<List<OrderPlateGroupRespVO>> GetOrderPlateGroup(@Valid Long orderId) {
return success(packService.GetOrderPlateGroup(orderId));
}
*/
}
@@ -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;
}
@@ -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<Long> addPlateIdList;
@Schema(description = "移除的板件ID", requiredMode = Schema.RequiredMode.REQUIRED)
private List<Long> deletePlateIdList;
@Schema(description = "新增的配件包裹ID", requiredMode = Schema.RequiredMode.REQUIRED)
private List<Long> addPartsIdList;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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<OrderPlateListRespVO> plateList;
}
@@ -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<PageResult<ProcessRespVO>> getUserPage(@Valid ProcessPageReqVO pageReqVO) {
return success(productionProcessService.getProcessPage(pageReqVO));
}
@GetMapping("/select")
@Operation(summary = "根据工序号获得生产工序下的加工项")
@PreAuthorize("@ss.hasPermission('manage:process:query')")
public CommonResult<List<OrderPorcessStepItemVO>> selectProcess(@Valid OrderProcessReqVO reqVO){
List<OrderPorcessStepItemVO> orderProcessById = productionProcessService.getOrderProcessById(reqVO);
return CommonResult.success(orderProcessById);
}
@PutMapping("/update")
@Operation(summary = "根据工序步骤 id 修改生产工序步骤表的状态")
@PreAuthorize("@ss.hasPermission('manage:process:update')")
public CommonResult<Boolean> updateProcessStatus(@Valid Long id){
productionProcessService.updateProcessStatus(id);
return success(true);
}
@PutMapping("/updateAll")
@Operation(summary = "根据工序 id 修改生产单工序表的状态")
@PreAuthorize("@ss.hasPermission('manage:process:update')")
public CommonResult<Boolean> updateAllProcessStatus(@Valid Long id){
productionProcessService.updateAllProcessStatus(id);
return success(true);
}
@GetMapping("/selectPlateName")
@Operation(summary = "查看板材信息的组合名称")
@PreAuthorize("@ss.hasPermission('manage:process:query')")
public CommonResult<List<OrderModuleVO>> selectPlateName(@Valid Long processStepId){
return success(productionProcessService.selectPlateName(processStepId));
}
@GetMapping("/pagePlate")
@Operation(summary = "查看板材信息分页")
@PreAuthorize("@ss.hasPermission('manage:process:query')")
public CommonResult<PageResult<OrderPlateRespVO>> queryPlate(@Valid PlatePageVO pageReqVO){
return success(productionStatusService.getOrderPlatePage(pageReqVO));
}
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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<PageResult<ProcessRespVO>> pageProductionStatus(@Valid OrderPlatePageReqVO pageReqVO){
PageResult<OrderDO> 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<List<ProductionGroupVO>> selectProduction(@Valid @RequestParam("orderNo") Long orderNo){
List<ProductionGroupVO> orderProcessById = productionStatusService.selectProduction(orderNo);
return CommonResult.success(orderProcessById);
}
@GetMapping("/selectPlateName")
@Operation(summary = "查看板材信息的组合名称")
@PreAuthorize("@ss.hasPermission('manage:query:query')")
public CommonResult<List<OrderModuleVO>> selectPlateName(@Valid OrderModuleReqVO reqVO){
return success(productionStatusService.selectPlateName(reqVO));
}
@GetMapping("/pagePlate")
@Operation(summary = "查看板材信息分页")
@PreAuthorize("@ss.hasPermission('manage:query:query')")
public CommonResult<PageResult<OrderPlateRespVO>> queryPlate(@Valid PlatePageVO pageReqVO){
return success(productionStatusService.getOrderPlatePage(pageReqVO));
}
@GetMapping("/pageSalary")
@Operation(summary = "计件工资分页查询")
@PreAuthorize("@ss.hasPermission('manage:query:query')")
public CommonResult<PageResult<PriceRateReqVO>> StepSalary(@Valid PriceRatePageReqVO pageReqVO){
PageResult<PriceRateReqVO> salaryPage = productionStatusService.getSalaryPage(pageReqVO);
return CommonResult.success(salaryPage);
}
@GetMapping("/pagePackage")
@Operation(summary = "打包查询分页")
@PreAuthorize("@ss.hasPermission('manage:query:query')")
public CommonResult<PageResult<ProcessRespVO>> queryPackage(@Valid OrderPlatePageReqVO pageReqVO){
PageResult<OrderDO> 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<List<OrderPackageVO>> queryPackageList(@Valid @RequestParam("orderNo") Long orderNo){
List<OrderPackageVO> orderProcessById = productionStatusService.getPackageList(orderNo);
return CommonResult.success(orderProcessById);
}
@GetMapping("/queryPackageDetails")
@Operation(summary = "查看包裹详情分页")
@PreAuthorize("@ss.hasPermission('manage:query:query')")
public CommonResult<PageResult<PackageDetailsRespVO>> queryPackageDetails(@Valid OrderPackagePageReqVO pageReqVO){
PageResult<PackageDetailsRespVO> 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<PrintOrderRespVO> 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<PlateDetailsRespVO> list = productionStatusService.getMissingBoard(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "缺板信息表.xls", "数据", PlateDetailsRespVO.class, list);
}
}
@@ -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;*/
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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<Long> 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;
}
@@ -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;
}
@@ -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 ;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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<OrderBodyDO> {
default List<OrderBodyDO> selectGroup(Long orderId) {
return selectList(new LambdaQueryWrapperX<OrderBodyDO>()
.eqIfPresent(OrderBodyDO::getOrderId, orderId)
.orderByDesc(OrderBodyDO::getId));
}
}
@@ -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<OrderPackageDO> {
default List<OrderPackageDO> selectByOrderNo(Long orderNo) {
return selectList(new LambdaQueryWrapperX<OrderPackageDO>()
.eqIfPresent(OrderPackageDO::getOrderNo, orderNo)
.orderByDesc(OrderPackageDO::getId));
}
default OrderPackageDO selectByPackNo(Long orderNo) {
return selectOne(new LambdaQueryWrapperX<OrderPackageDO>()
.eqIfPresent(OrderPackageDO::getPackageNo, orderNo));
}
List<PackRespVO> selectPackPage(@Param("collect") List<Long> collect);
List<PlateDetailsRespVO> selectMissingBoard(Long orderNo);
default OrderPackageDO selectByPackId(Long packId) {
return selectOne(new LambdaQueryWrapperX<OrderPackageDO>()
.eqIfPresent(OrderPackageDO::getId, packId));
}
void updateParts(@Param("packageId") Long packageId, @Param("packageNo") Long packageNo);
}
@@ -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<OrderProcessNDO> {
default OrderProcessNDO queryProcess( Long processId , Long orderNo) {
return selectOne(new LambdaQueryWrapperX<OrderProcessNDO>()
.eqIfPresent(OrderProcessNDO::getId, processId)
.eqIfPresent(OrderProcessNDO::getOrderNo,orderNo));
}
default OrderProcessNDO selectByProcessId(Long id) {
return selectOne(new LambdaQueryWrapperX<OrderProcessNDO>()
.eqIfPresent(OrderProcessNDO::getId, id));
}
default OrderProcessNDO selectStatusById( Long id ) {
return selectOne(new LambdaQueryWrapperX<OrderProcessNDO>()
.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);
}
@@ -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<OrderProcessStepItemNDO> {
List<OrderModuleVO> selectPlateName(Long processStepId);
List<ProcessRespVO> selectOrder(ProcessPageReqVO pageReqVO);
}
@@ -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<OrderProcessStepNDO> {
default List<OrderProcessStepNDO> getStepItemList(Long orderNo, Boolean status) {
return selectList(new LambdaQueryWrapperX<OrderProcessStepNDO>()
.eqIfPresent(OrderProcessStepNDO::getOrderNo, orderNo)
.eqIfPresent(OrderProcessStepNDO::getStatus, status));
}
default OrderProcessStepNDO selectStatusById(Long id) {
return selectOne(new LambdaQueryWrapperX<OrderProcessStepNDO>()
.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<OrderProcessStepNDO> selectProducitonList(Long orderNo) {
return selectList(new LambdaQueryWrapperX<OrderProcessStepNDO>()
.eqIfPresent(OrderProcessStepNDO::getOrderNo, orderNo));
}
List<PriceRateReqVO> selectListByStatus(@Param("collect") List<Long> collect);
default List<OrderProcessStepNDO> selectListBy(PriceRatePageReqVO pageReqVO) {
return selectList(new LambdaQueryWrapperX<OrderProcessStepNDO>()
.eqIfPresent(OrderProcessStepNDO::getStatus, pageReqVO.getStatus())
.eqIfPresent(OrderProcessStepNDO::getCreator,pageReqVO.getCreator())
.eqIfPresent(OrderProcessStepNDO::getName,pageReqVO.getName())
.betweenIfPresent(OrderProcessStepNDO::getCreateTime,pageReqVO.getStartTime(),pageReqVO.getEndTime()));
}
}
@@ -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<OrderDO> {
default PageResult<OrderDO> selectPage(ProcessPageReqVO pageReqVO) {
return selectPage(pageReqVO, new LambdaQueryWrapperX<OrderDO>()
.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<OrderDO> selectPageList(OrderPageReqVO pageReqVO) {
return selectPage(pageReqVO, new LambdaQueryWrapperX<OrderDO>()
.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));
}
}
@@ -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<OrderItemDO> {
List<PackageDetailsRespVO> selectByPackageId(Long packageId);
List<OrderModuleVO> selectCombinationName(Long orderNo);
List<OrderPlateRespVO> selectPlateList(Long bodyId);
List<PlateDetailsRespVO> selectOrderPlateList(Long orderNo);
List<OrderPlateListRespVO> selectGroupingPlateList(Long orderNo);
void insertPackPlate( Long plateId);
List<OrderPlateListRespVO> selectJoinedGroupPlateList(@Param("orderNo") Long orderNo , @Param("packageIdList") List<Long> packageIdList);
@Update("update order_item set package_id =0 where plate_id =#{plateId}")
void removePackPlate(Long plateId);
List<OrderPlateListRespVO> 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<Long> plateIdList, @Param("packId") Long packId);
void deletePackId(@Param("deletePlateIdList") List<Long> deletePlateIdList,@Param("packId") Long packId);
void insertPartsId(@Param("packId") Long packId, @Param("addPartsIdList") List<Long> addPartsIdList);
}
@@ -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<OrderPartsNDO> {
List<PackageDetailsRespVO> selectParts(Long packageNo);
List<OrderPartsRespVO> selectPartsList(Long orderId);
List<OrderPartsRespVO> selectOrderParts(@Param("orderNo")Long orderNo,@Param("packageNo") Long packageNo);
void deleteOrderParts(@Param("packageId") Long packageId);
default OrderPartsNDO selectOneParts(String otherPartsName) {
return selectOne(new LambdaQueryWrapperX<OrderPartsNDO>()
.eqIfPresent(OrderPartsNDO::getName,otherPartsName));
}
}
@@ -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<OrderDO> {
default PageResult<OrderDO> selectProductionPage(OrderPlatePageReqVO pageReqVO) {
return selectPage(pageReqVO, new LambdaQueryWrapperX<OrderDO>()
.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<OrderDO> selectPackage(OrderPlatePageReqVO pageReqVO) {
return selectPage(pageReqVO, new LambdaQueryWrapperX<OrderDO>()
.orderByDesc(OrderDO::getId));
}*/
PrintOrderRespVO selectPrintOrder(Long orderNo);
default List<OrderDO> selectPackPage(PackPageReqVO pageReqVO) {
return selectList(new LambdaQueryWrapperX<OrderDO>()
.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<PackRespVO> selectOrderPlate(@Param("collect") List<Long> collect);
PrintOrderPackRespVO selectOrderPack(@Param("orderNo")Long orderNo,@Param("packageNo") Long packageNo);
}
@@ -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<OrderDO> getGroupingList( OrderPageReqVO pageReqVO);
// 新增包裹
Long insertGrouping(OrderPackageReqVO packageReqVO);
// 查看订单的板材信息(未加入包裹的板材信息)
PageResult<OrderPlateListRespVO> notJoinedGroupingPlateList(OrderModuleReqVO reqVO);
// 包裹表新增板件
void insertPackPlate(Long plateId);
// 查看订单的板材信息(已将加入包裹的板材信息)
PageResult<OrderPlateListRespVO> joinedGroupPlateList(JoinedPlateReqVO reqVO);
// 移除包裹板材信息
void removePackPlate(Long plateId);
}
@@ -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<OrderDO> 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<OrderPlateListRespVO> notJoinedGroupingPlateList(OrderModuleReqVO reqVO) {
PageHelper.startPage(reqVO.getPageNo(),reqVO.getPageSize());
List<OrderPlateListRespVO> orderPlateListRespVOS = orderItemMapper.selectGroupingPlateList(reqVO.getOrderNo());
PageInfo<OrderPlateListRespVO> pageInfo = new PageInfo<>(orderPlateListRespVOS);
PageResult<OrderPlateListRespVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
return priceRateReqVOPageResult;
}
// 包裹表新增板件
@Override
public void insertPackPlate(Long plateId) {
orderItemMapper.insertPackPlate(plateId);
}
@Override
public PageResult<OrderPlateListRespVO> joinedGroupPlateList(JoinedPlateReqVO reqVO) {
PageHelper.startPage(reqVO.getPageNo(),reqVO.getPageSize());
List<OrderPlateListRespVO> orderPlateListRespVOS = orderItemMapper.selectJoinedGroupPlateList(reqVO.getOrderNo(), reqVO.getPackageIdList());
PageInfo<OrderPlateListRespVO> pageInfo = new PageInfo<>(orderPlateListRespVOS);
PageResult<OrderPlateListRespVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
return priceRateReqVOPageResult;
}
// 移除包裹板材信息
@Override
public void removePackPlate(Long plateId) {
orderItemMapper.removePackPlate(plateId);
}
}
@@ -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<PackRespVO> getPackPage(PackPageReqVO pageReqVO);
// 查看生产订单对应的包裹信息
List<OrderPackageDO> getOrderPack(Long orderId);
// 查看生产订单对应的板材信息
List<PlateDetailsRespVO> getOrderPlateList(Long orderId);
// 查看板材列表分页
PageResult<PlateDetailsRespVO> queryPlateDetails(OrderModuleReqVO pageReqVO);
// 查看配件列表分页
PageResult<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO);
// 拆包
void unpacking(Long packageID);
// 显示分组房间名称
List<OrderPlateGroupRespVO> GetOrderPlateGroup(Long orderId);
// 查看配件包裹详情
List<OrderPartsRespVO> 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);
}
@@ -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<PackRespVO> getPackPage(PackPageReqVO pageReqVO) {
// 根据生产状态查询生产单号
List<Long> collect = productionStatusMapper.selectPackPage(pageReqVO).stream().map(OrderDO::getId).collect(Collectors.toList());
PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
// 查询包裹的已打包数和已打片数
List<PackRespVO> packRespVOS = orderPackageMapper.selectPackPage(collect);
// 查询打包首页分页数据信息和总片数
List<PackRespVO> packRespVOS1 = productionStatusMapper.selectOrderPlate(collect);
PageInfo<PackRespVO> pageInfo = new PageInfo<>(packRespVOS);
pageInfo.setList(packRespVOS1);
// 转换成 PageResult 分页类型
PageResult<PackRespVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
return priceRateReqVOPageResult;
}
// 查看生产订单对应的包裹信息
@Override
public List<OrderPackageDO> getOrderPack(Long orderId) {
return orderPackageMapper.selectByOrderNo(orderId);
}
// 查看生产订单对应的板材信息
@Override
public List<PlateDetailsRespVO> getOrderPlateList(Long orderId) {
return orderItemMapper.selectOrderPlateList(orderId);
}
// 查看板材列表分页
@Override
public PageResult<PlateDetailsRespVO> queryPlateDetails(OrderModuleReqVO pageReqVO) {
PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrderPlateList(pageReqVO.getOrderNo());
PageInfo<PlateDetailsRespVO> pageInfo = new PageInfo<>(plateDetailsRespVOS);
PageResult<PlateDetailsRespVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
return priceRateReqVOPageResult;
}
// 查看配件列表分页
@Override
public PageResult<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO) {
PageHelper.startPage(reqVO.getPageNo(), reqVO.getPageSize());
List<OrderPartsRespVO> orderPartsRespVOS = orderPartsMapper.selectPartsList(reqVO.getOrderNo());
PageInfo<OrderPartsRespVO> 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<OrderPlateGroupRespVO> GetOrderPlateGroup(Long orderId) {
/*List<String> collect = orderBodyMapper.selectGroup(orderId).stream().map(OrderBodyDO::getRoomName).collect(Collectors.toList());*/
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectGroup(orderId);
return BeanUtils.toBean(orderBodyDOS, OrderPlateGroupRespVO.class);
}
// 查看配件包裹详情
@Override
public List<OrderPartsRespVO> 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;
}
}
@@ -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<ProcessRespVO> getProcessPage(ProcessPageReqVO pageReqVO);
// 查询工序订单下的加工项的详情
List<OrderPorcessStepItemVO> getOrderProcessById(OrderProcessReqVO reqVO);
// 修改生产单的工序状态
void updateProcessStatus(Long id);
// 修改生产单工序的全部状态
void updateAllProcessStatus(Long id);
// 查看板材信息的组合名称
List<OrderModuleVO> selectPlateName(Long processStepId);
}
@@ -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<ProcessRespVO> getProcessPage(ProcessPageReqVO pageReqVO) {
PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
List<ProcessRespVO> processRespVOS = processStepItemMapper.selectOrder(pageReqVO);
PageInfo<ProcessRespVO> 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<OrderPorcessStepItemVO> getOrderProcessById(OrderProcessReqVO reqVO) {
OrderPorcessStepItemVO orderPorcessStepItemVO = new OrderPorcessStepItemVO();
// 获取工序组 id
Long groupId = orderProcessMapper.queryProcess(reqVO.getId(), reqVO.getOrderNo()).getGroupId();
// 获取加工的工序项
List<OrderProcessStepNDO> 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<OrderProcessStepNDO> 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<OrderModuleVO> selectPlateName(Long processStepId) {
return processStepItemMapper.selectPlateName(processStepId);
}
}
@@ -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<OrderDO> getProductionPage(OrderPlatePageReqVO pageReqVO);
// 查看生产单下的加工的工序组
List<ProductionGroupVO> selectProduction(Long orderNo);
// 查看板材信息的组合名称
List<OrderModuleVO> selectPlateName(OrderModuleReqVO reqVO);
// 查看板材信息分页
PageResult<OrderPlateRespVO> getOrderPlatePage(PlatePageVO pageReqVO);
// 计件工资分页查询
PageResult<PriceRateReqVO> getSalaryPage(PriceRatePageReqVO pageReqVO);
// 打包查询分页
PageResult<OrderDO> queryPackage(OrderPlatePageReqVO pageReqVO);
// 生产单打包完成包裹查看
List<OrderPackageVO> getPackageList(Long orderNo);
// 查看包裹详情
PageResult<PackageDetailsRespVO> queryPackageDetails(OrderPackagePageReqVO pageReqVO);
// 打印订单
PrintOrderRespVO printOrder(Long orderNo);
// 导出缺板
PageResult<PlateDetailsRespVO> getMissingBoard(OrderPartsReqVO pageReqVO);
}
@@ -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<OrderDO> getProductionPage(OrderPlatePageReqVO pageReqVO) {
return productionStatusMapper.selectProductionPage(pageReqVO);
}
// 查看生产单下的加工的工序组
@Override
public List<ProductionGroupVO> selectProduction(Long orderNo) {
List<OrderProcessStepNDO> orderProcessStepNDOS = processStepMapper.selectProducitonList(orderNo);
List<ProductionGroupVO> 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<OrderModuleVO> selectPlateName(OrderModuleReqVO reqVO) {
return orderItemMapper.selectCombinationName(reqVO.getOrderNo());
}
// 查看板材信息分页
@Override
public PageResult<OrderPlateRespVO> getOrderPlatePage(PlatePageVO pageReqVO) {
PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
List<OrderPlateRespVO> orderPlateRespVOS = orderItemMapper.selectPlateList(pageReqVO.getBodyId());
PageInfo<OrderPlateRespVO> pageInfo = new PageInfo<>(orderPlateRespVOS);
PageResult<OrderPlateRespVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
return priceRateReqVOPageResult;
}
// 计件工资分页查询
@Override
public PageResult<PriceRateReqVO> getSalaryPage(PriceRatePageReqVO pageReqVO) {
// todo 功能完成,数据库数据不完整,测试部分功能完成
List<OrderProcessStepNDO> orderProcessStepNDOS = processStepMapper.selectListBy(pageReqVO);
if (pageReqVO.getNoShowZero()) {
for (OrderProcessStepNDO orderProcessStepNDO : orderProcessStepNDOS) {
if (orderProcessStepNDO.getPieceRate() == 0) {
orderProcessStepNDOS.remove(orderProcessStepNDO);
}
}
}
List<PriceRatePageReqVO> reqVOS = BeanUtils.toBean(orderProcessStepNDOS, PriceRatePageReqVO.class);
List<Long> collect = reqVOS.stream().map(PriceRatePageReqVO::getOrderProcessId).collect(Collectors.toList());
PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
List<PriceRateReqVO> priceRateReqVOS = processStepMapper.selectListByStatus(collect);
PageInfo<PriceRateReqVO> pageInfo = new PageInfo<>(priceRateReqVOS);
PageResult<PriceRateReqVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
return priceRateReqVOPageResult;
}
// 打包查询分页
@Override
public PageResult<OrderDO> queryPackage(OrderPlatePageReqVO pageReqVO) {
return productionStatusMapper.selectProductionPage(pageReqVO);
}
// 生产单打包完成包裹查看
@Override
public List<OrderPackageVO> getPackageList(Long orderNo) {
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectByOrderNo(orderNo);
return BeanUtils.toBean(orderPackageDOS, OrderPackageVO.class);
}
// 查看包裹详情
@Override
public PageResult<PackageDetailsRespVO> queryPackageDetails(OrderPackagePageReqVO pageReqVO) {
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackNo(pageReqVO.getPackageNo());
// 查看配件包裹
if(orderPackageDO.getType() == 1 && orderPackageDO.getType() == 2){
PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
List<PackageDetailsRespVO> packageDetailsRespVOS = orderPartsMapper.selectParts(orderPackageDO.getPackageNo());
PageInfo<PackageDetailsRespVO> pageInfo = new PageInfo<>(packageDetailsRespVOS);
PageResult<PackageDetailsRespVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
return priceRateReqVOPageResult;
}
// 查看板材包裹
PageHelper.startPage(pageReqVO.getPageNo(),pageReqVO.getPageSize());
List<PackageDetailsRespVO> packageDetailsRespVOS = orderItemMapper.selectByPackageId(orderPackageDO.getId());
PageInfo<PackageDetailsRespVO> pageInfo = new PageInfo<>(packageDetailsRespVOS);
PageResult<PackageDetailsRespVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
return priceRateReqVOPageResult;
}
// 打印订单
@Override
public PrintOrderRespVO printOrder(Long orderNo) {
return productionStatusMapper.selectPrintOrder(orderNo);
}
// 导出缺板
@Override
public PageResult<PlateDetailsRespVO> getMissingBoard(OrderPartsReqVO pageReqVO) {
PageHelper.startPage(pageReqVO.getPageNo(),pageReqVO.getPageSize());
List<PlateDetailsRespVO> plateDetailsRespVOS = orderPackageMapper.selectMissingBoard(pageReqVO.getOrderNo());
PageInfo<PlateDetailsRespVO> pageInfo = new PageInfo<>(plateDetailsRespVOS);
PageResult<PlateDetailsRespVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
return priceRateReqVOPageResult;
}
}
@@ -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 <T> PageResult<T> convertToPageResult(PageInfo<T> pageInfo) {
PageResult<T> pageResult = new PageResult<>();
pageResult.setTotal(pageInfo.getTotal());
pageResult.setList(pageInfo.getList());
return pageResult;
}
}
@@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper">
<resultMap id="PackMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
<result property="packCount" column="numberOfPackages"/>
<result property="packPieceCount" column="packagedBoard"/>
</resultMap>
<select id="selectPackPage" resultType="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO"
parameterType="java.util.List"
resultMap="PackMap">
select
count(DISTINCT oi.package_id ) as numberOfPackages,
count(DISTINCT oi.plate_id) as packagedBoard
from order_package_n opn
join order_item oi on opn.id = oi.package_id
WHERE opn.order_no IN
<foreach item="id" collection="collect" open="(" separator="," close=")">
#{id}
</foreach>
and opn.status &lt;&gt; 0;
</select>
<resultMap id="PlateDetailsMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO">
<result property="roomName" column="roomName"/>
<result property="cabinetName" column="bodyName"/>
<result property="plateNo" column="palteId"/>
<result property="plateName" column="plateName"/>
<result property="material" column="plateMaterial"/>
<result property="color" column="palteColor"/>
<result property="width" column="plateWidth"/>
<result property="height" column="plateHeight"/>
<result property="thickness" column="plateThickness"/>
<result property="area" column="plateArea"/>
<result property="texture" column="texture"/>
<result property="specialShaped" column="specialShaped"/>
<result property="profiling" column="profiling"/>
<result property="rowHole" column="rowHole"/>
<result property="remark" column="remark"/>
<result property="processGroup" column="name"/>
</resultMap>
<select id="selectMissingBoard"
parameterType="java.lang.Long"
resultMap="PlateDetailsMap">
select
ob.room_name as roomName,
ob.name as bodyName,
op.id as palteId,
op.name as plateName,
p.material as plateMaterial,
p.color as palteColor,
p.height as plateHeight,
p.width as plateWidth,
p.thickness as plateThickness,
op.area as plateArea,
op.texture as texture,
op.remark as remark,
CASE WHEN op.unregular_point_count = 0 THEN '否' ELSE '是' END AS specialShaped,
CASE WHEN front_model_count = 0 or op.back_hole_count or op.side_hole_count THEN '否' ELSE '是' END AS profiling,
CASE WHEN front_hole_count = 0 or op.back_model_count THEN '否' ELSE '是' END AS rowHole
from order_plate op
join plate p on op.goods_id = p.goods_id
join order_item oi on op.id = oi.plate_id
join order_body ob on oi.body_id = ob.id
where
oi.order_id = #{orderNo}
and
op.id not in (
select oi2.plate_id
from order_item oi2
where oi2.order_id = #{orderNo} and oi2.package_id &lt;&gt; '');
</select>
<update id="updateParts"
parameterType="java.lang.Long">
UPDATE order_package_n
SET deleted = true
WHERE id = #{packageId} AND package_no = #{packageNo};
</update>
</mapper>
@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper">
<select id="selectPlateName"
resultType="com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO"
parameterType="java.lang.Long">
select CONCAT(ob.room_name,'_',ob.name) as name ,ob.id as bodyId
from order_process_step_item_n opsn join order_body ob on opsn.body_id = ob.id where opsn.process_step_id = #{processStepId};
</select>
<resultMap id="OrderMap" type="com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO">
<result property="id" column="id"/>
<result property="customOrderNo" column="customOrderNo"/>
<result property="customer" column="customer"/>
<result property="address" column="address"/>
<result property="status" column="status"/>
</resultMap>
<select id="selectOrder" resultMap="OrderMap" parameterType="com.cf.imes.module.manage.controller.admin.process.vo.ProcessPageReqVO">
select distinct
ops.order_id as id,
o.custom_order_no as customOrderNo,
o.customer as customer,
o.address as address,
o.status as status
from order_process_step ops
join `order` o on ops.order_id = o.id
<where>
<if test="id != null">
and ops.processinfo_id = #{id}
</if>
<if test="status != null">
and ops.status = #{status}
</if>
<if test="orderNo != null">
and ops.order_id = #{orderNo}
</if>
<if test="customOrderNo != null">
and o.custom_order_no = #{customOrderNo}
</if>
<if test="customer != null">
and o.customer = #{customer}
</if>
<if test="address != null">
and o.address = #{address}
</if>
</where>
</select>
</mapper>
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper">
<resultMap id="priceResultMap" type="com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO">
<result property="name" column="process_name"/>
<result property="priceRate" column="piece_rate"/>
<result property="num" column="total_piece_num"/>
<result property="priceType" column="piece_type"/>
<result property="amount" column="total_piece_rate"/>
<result property="manager" column="creator"/>
</resultMap>
<select id="selectListByStatus"
parameterType="java.util.List"
resultMap="priceResultMap">
SELECT
ops.piece_rate AS piece_rate,
ops.piece_type AS piece_type,
ops.name AS process_name,
ops.creator AS creator,
SUM(CASE
WHEN ops.piece_type = 1 THEN ops.piece_rate
ELSE ROUND((opn.size / p.hour_capacity), 2) * ops.piece_rate
END) AS total_piece_rate,
SUM(CASE
WHEN ops.piece_type = 1 THEN 1
ELSE 10 / ops.piece_rate
END) AS total_piece_num
FROM
order_process_step_n ops
JOIN
order_process_n opn ON ops.order_process_id = opn.id
JOIN
imes_base.process p ON opn.id = p.id
WHERE
ops.order_process_id IN
<foreach item="id" collection="collect" open="(" separator="," close=")">
#{id}
</foreach>
GROUP BY
ops.name, ops.creator, ops.piece_type, ops.piece_rate;
</select>
</mapper>
@@ -0,0 +1,405 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper">
<resultMap id="orderItemMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO">
<result property="roomName" column="roomName"/>
<result property="cabinetName" column="bodyName"/>
<result property="palteNo" column="palteId"/>
<result property="palteName" column="plateName"/>
<result property="material" column="plateMaterial"/>
<result property="color" column="palteColor"/>
<result property="width" column="plateWidth"/>
<result property="height" column="plateHeight"/>
<result property="thickness" column="plateThickness"/>
<result property="area" column="plateArea"/>
<result property="texture" column="texture"/>
<result property="specialShaped" column="specialShaped"/>
<result property="profiling" column="profiling"/>
<result property="rowHole" column="rowHole"/>
<result property="remark" column="remark"/>
<result property="processGroup" column="name"/>
</resultMap>
<select id="selectByPackageId"
parameterType="java.lang.Long"
resultMap="orderItemMap">
select
og.name as name,
ob.room_name as roomName,
ob.name as bodyName,
op.id as palteId,
op.name as plateName,
p.material as plateMaterial,
p.color as palteColor,
p.height as plateHeight,
p.width as plateWidth,
p.thickness as plateThickness,
op.area as plateArea,
op.texture as texture ,
op.remark as remark,
CASE WHEN op.unregular_point_count = 0 THEN '否' ELSE '是' END AS specialShaped,
CASE WHEN front_model_count = 0 or op.back_hole_count or op.side_hole_count THEN '否' ELSE '是' END AS profiling,
CASE WHEN front_hole_count = 0 or op.back_model_count THEN '否' ELSE '是' END AS rowHole
from order_item oi
join order_plate op on oi.plate_id = op.id
join plate p on op.goods_id = p.goods_id
join order_body ob on oi.body_id = ob.id
join order_group og on ob.id = og.body_id
where
oi.package_id =#{packageId}
</select>
<!-- 查看板材信息的组合名称-->
<select id="selectCombinationName"
resultType="com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO">
<![CDATA[
select CONCAT(ob.room_name,'_',ob.name) as name,ob.id as bodyId from order_body ob where order_id =#{orderNo};
]]>
</select>
<!-- 查看板材信息分页-->
<resultMap id="PlateMap" type="com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO">
<result property="id" column="palteId"/>
<result property="name" column="plateName"/>
<result property="color" column="palteColor"/>
<result property="width" column="plateWidth"/>
<result property="height" column="plateHeight"/>
<result property="thickness" column="plateThickness"/>
<result property="material" column="plateMaterial"/>
</resultMap>
<select id="selectPlateList"
resultMap="PlateMap"
parameterType="java.lang.Long">
select
op.id as palteId,
op.name as plateName,
p.material as plateMaterial,
p.color as palteColor,
p.height as plateHeight,
p.width as plateWidth,
p.thickness as plateThickness
from order_item oi
join order_plate op on oi.plate_id = op .id
join plate p on op.goods_id = p.goods_id
where oi.body_id = #{bodyId}
</select>
<resultMap id="PlateDetailsMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO">
<result property="roomName" column="roomName"/>
<result property="cabinetName" column="bodyName"/>
<result property="plateNo" column="plateId"/>
<result property="plateName" column="plateName"/>
<result property="material" column="plateMaterial"/>
<result property="color" column="plateColor"/>
<result property="width" column="plateWidth"/>
<result property="height" column="plateHeight"/>
<result property="thickness" column="plateThickness"/>
<result property="area" column="plateArea"/>
<result property="texture" column="texture"/>
<result property="specialShaped" column="specialShaped"/>
<result property="profiling" column="profiling"/>
<result property="rowHole" column="rowHole"/>
<result property="remark" column="remark"/>
<result property="processGroup" column="name"/>
</resultMap>
<select id="selectOrderPlateList"
parameterType="java.lang.Long"
resultMap="PlateDetailsMap" >
select
og.name as name,
ob.room_name as roomName,
ob.name as bodyName,
op.id as plateId,
op.name as plateName,
p.material as plateMaterial,
p.color as plateColor,
p.height as plateHeight,
p.width as plateWidth,
p.thickness as plateThickness,
op.area as plateArea,
op.texture as texture ,
op.remark as remark,
CASE WHEN op.unregular_point_count = 0 THEN '否' ELSE '是' END AS specialShaped,
CASE WHEN front_model_count = 0 or op.back_hole_count or op.side_hole_count THEN '否' ELSE '是' END AS profiling,
CASE WHEN front_hole_count = 0 or op.back_model_count THEN '否' ELSE '是' END AS rowHole
from order_item oi
join order_plate op on oi.plate_id = op.id
join plate p on op.goods_id = p.goods_id
join order_body ob on oi.body_id = ob.id
join order_group og on ob.id = og.body_id
where
oi.order_id =#{orderNo}
</select>
<resultMap id="PlateListMap" type="com.cf.imes.module.manage.controller.admin.grouping.vo.OrderPlateListRespVO">
<result property="orderNo" column="orderNo"/>
<result property="id" column="plateId"/>
<result property="name" column=""/>
<result property="name" column="plateName"/>
<result property="plateName" column="goodsName"/>
<result property="height" column="height"/>
<result property="width" column="width"/>
<result property="thickness" column="thickness"/>
<result property="material" column="material"/>
<result property="color" column="color"/>
<result property="groupName" column="groupName"/>
<result property="roomName" column="roomName"/>
<result property="bodyName" column="bodyName"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="selectGroupingPlateList"
parameterType="java.lang.Long"
resultMap="PlateListMap">
select
oi.order_id as orderNo,
op.id as plateId,
op.height as height,
op.width as width,
op.thickness as thickness,
op.name as plateName,
p.goods_name as goodsName,
p.material as material,
p.color as color,
ob.name as bodyName,
ob.room_name as roomName,
og.name as groupName,
op.remark as remark
from order_item oi
join order_body ob on oi.body_id = ob.id
join order_group og on oi.group_id = og.id
join order_plate op on oi.plate_id = op.id
join plate p on op.goods_id = p.goods_id
where oi.order_id = #{orderNo};
</select>
<!--parameterType="com.cf.imes.module.manage.controller.admin.grouping.vo.GroupPlateReqVO"-->
<update id="insertPackPlate"
parameterType="java.lang.Long">
<!-- UPDATE order_item oi
SET oi.package_id =
(select order_package_n.id from order_package_n where name like CONCAT ('%', #{roomName}, '%'))
WHERE plate_id =#{plateId} and order_id =#{orderNo};-->
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>
<select id="selectJoinedGroupPlateList"
parameterType="java.lang.Long"
resultMap="PlateListMap">
select
oi.order_id as orderNo,
op.id as plateId,
op.height as height,
op.width as width,
op.thickness as thickness,
op.name as plateName,
p.goods_name as goods_name,
p.material as material,
p.color as color,
ob.name as bodyName,
ob.room_name as roomName,
og.name as groupName,
op.remark as remark
from order_item oi
join order_body ob on oi.body_id = ob.id
join order_group og on oi.group_id = og.id
join order_plate op on oi.plate_id = op.id
join plate p on op.goods_id = p.goods_id
where oi.package_id in
<foreach item="id" collection="packageIdList" open="(" separator="," close=")">
#{id}
</foreach>
and oi.order_id = #{orderNo};
</select>
<select id="selectPrintPlateList"
parameterType="java.lang.Long"
resultMap="PlateListMap">
select
oi.order_id as orderNo,
op.id as plateId,
op.height as height,
op.width as width,
op.thickness as thickness,
op.name as plateName,
p.goods_name as goodsName,
p.material as material,
p.color as color,
ob.name as bodyName,
ob.room_name as roomName,
og.name as groupName,
op.remark as remark
from order_item oi
join order_body ob on oi.body_id = ob.id
join order_group og on oi.group_id = og.id
join order_plate op on oi.plate_id = op.id
join plate p on op.goods_id = p.goods_id
where oi.order_id = #{orderNo} and oi.package_id = #{packageNo};
</select>
<update id="deleteOrderPack">
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>
<update id="updateParts">
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}
);
</update>
<update id="deleteOtherParts"
parameterType="java.lang.Long">
DELETE FROM order_item
WHERE id = #{itemId};
</update>
<delete id="deleteParts">
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} );
</delete>
<update id="insertPackId" parameterType="java.lang.Long">
update order_item oi
set package_id = #{packId}
where plate_id in
<foreach item="id" collection="plateIdList" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<update id="deletePackId" parameterType="java.lang.Long">
update order_item oi
set package_id = 0
where package_id = #{packId} and plate_id in
<foreach item="id" collection="deletePlateIdList" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<update id="insertPartsId" parameterType="java.lang.Long">
update order_item oi
set package_id = #{packId}
where parts_id in
<foreach item="id" collection="addPartsIdList" open="(" separator="," close=")">
#{id}
</foreach>
</update>
</mapper>
@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.manage.dal.mysql.query.OrderPartsMapper">
<resultMap id="partsMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO">
<result property="partsName" column="name"/>
<result property="model" column="model"/>
<result property="spec" column="spec"/>
<result property="num" column="name_count"/>
<result property="unit" column="unit"/>
<result property="brand" column="brand"/>
<result property="factory" column="factory"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="selectParts"
parameterType="java.lang.Long"
resultMap="partsMap">
SELECT name, COUNT(name) AS name_count,model,spec,unit,brand,factory,remark
FROM order_parts
WHERE id IN (
SELECT parts_id
FROM order_item
WHERE package_id = #{packageNo}
)
GROUP BY name,model,spec,unit,brand,factory,remark;
</select>
<resultMap id="PartsListMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.OrderPartsRespVO">
<result property="partsId" column="partsId"/>
<result property="type" column="type"/>
<result property="isComposite" column="isComposite"/>
<result property="partsName" column="name"/>
<result property="model" column="model"/>
<result property="spec" column="spec"/>
<result property="num" column="num"/>
<result property="unit" column="unit"/>
<result property="brand" column="brand"/>
<result property="factory" column="factory"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="selectPartsList"
parameterType="java.lang.Long"
resultMap="PartsListMap">
select
id as partsId,name,model,spec,count(name) as num,unit,brand,factory,remark
from order_parts where order_id = #{orderId}
group by partsId,name,model,spec,unit,brand,factory,remark;
</select>
<select id="selectOrderParts"
parameterType="java.lang.Long"
resultMap="PartsListMap">
select
op.id as partsId,
op.name as name,
op.model as model ,
op.spec as spec,
oi.num as num,
op.unit as unit,
op.brand as brand,
op.factory as factory,
op.type as type,
op.is_composite as isComposite,
op.remark as remark
from order_parts op
join order_item oi on op.id = oi.parts_id
where op.order_id = #{orderNo} and oi.package_id =#{packageNo};
</select>
<update id="deleteOrderParts"
parameterType="java.lang.Long">
update order_parts op set op.deleted = true where op.id in (
select oi.parts_id from order_item oi where package_id =#{packageId});
</update>
</mapper>
@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.manage.dal.mysql.query.ProductionStatusMapper">
<resultMap id="printOrderMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO">
<result property="orderNo" column="orderNo"/>
<result property="customOrderNo" column="customOrderNo"/>
<result property="dealer" column="dealer"/>
<result property="address" column="address"/>
<result property="customer" column="customer"/>
<result property="customerPhone" column="customerPhone"/>
<result property="packageQuantity" column="packageQuantity"/>
</resultMap>
<select id="selectPrintOrder"
parameterType="java.lang.Long"
resultMap="printOrderMap">
select
o.id as orderNo ,
o.custom_order_no as customOrderNo,
o.dealer as dealer,
o.address as address,
o.customer as customer,
o.phone_number as customerPhone,
count(opn.order_no) as packageQuantity
from `order` o join order_package_n opn on o.id=opn.order_no
where o.id = #{orderNo} and opn.status &lt;&gt; 0;
</select>
<resultMap id="PackMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
<result property="id" column="orderNo"/>
<result property="customOrderNo" column="customOrderNo"/>
<result property="dealer" column="dealer"/>
<result property="deliveryDate" column="deliveryDate"/>
<result property="status" column="status"/>
<result property="customer" column="customer"/>
<result property="address" column="address"/>
<result property="phoneNumber" column="phoneNumber"/>
<result property="salesman" column="salesman"/>
<result property="splitter" column="splitter"/>
<result property="createTime" column="createTime"/>
<result property="totalPieceCount" column="num"/>
</resultMap>
<select id="selectOrderPlate" resultType="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO"
parameterType="java.util.List"
resultMap="PackMap">
SELECT
oi.num as num,
o.id as orderNo,
o.custom_order_no as customOrderNo,
o.dealer as dealer,
o.create_time as createTime,
o.delivery_date as deliveryDate,
o.customer as customer,
o.phone_number as phoneNumber,
o.address as address,
o.salesman as salesman,
o.splitter as splitter,
o.status as status
FROM `order` o
join order_item oi on o.id = oi.order_id
WHERE o.id in
<foreach item="id" collection="collect" open="(" separator="," close=")">
#{id}
</foreach>
group by num,orderNo,customOrderNo,dealer,createTime,deliveryDate,customer,phoneNumber,address,salesman,splitter,status;
</select>
<resultMap id="PrintMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PrintOrderPackRespVO">
<result property="customOrderNo" column="customOrderNo"/>
<result property="dealer" column="dealer"/>
<result property="orderNo" column="orderNo"/>
<result property="packNo" column="packNo"/>
<result property="packNum" column="packNum"/>
<result property="address" column="address"/>
</resultMap>
<select id="selectOrderPack"
parameterType="java.lang.Long"
resultMap="PrintMap">
select o.custom_order_no as customOrderNo,
o.dealer as dealer,
opn.id as packNo ,
o.id as orderNo,
o.address as address,
((SELECT COUNT(t2.id) FROM order_package_n t2 WHERE t2.create_time &lt;= opn.create_time and t2.order_no =#{orderNo})) as packNum
from `order` o
join order_package_n opn on o.id = opn.order_no
where opn.order_no =#{orderNo} and opn.id = #{packageNo} and opn.status &lt;&gt; 0
order by opn.create_time ;
</select>
</mapper>
@@ -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, "配件名称不能重复");
}
@@ -72,8 +72,9 @@ public class ProcessGroupController {
@Operation(summary = "更新工序组")
@PreAuthorize("@ss.hasPermission('system:process-group:update')")
public CommonResult<Boolean> updateProcessGroup(@Valid @RequestBody ProcessListSaveReqVO updateReqVO) {
processGroupService.updateProcessGroup(updateReqVO);
return success(true);
/*processGroupService.updateProcessGroup(updateReqVO);
return success(true);*/
return null;
}
@DeleteMapping("/delete")
@@ -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<ProcessRespVO> getLists() {
return null;
}
}
@@ -29,7 +29,7 @@ public interface ProcessGroupService {
*
* @param updateReqVO 更新信息
*/
void updateProcessGroup(@Valid ProcessListSaveReqVO updateReqVO);
void updateProcessGroup(ProcessGroupSaveReqVO updateReqVO);
/**
* 删除工序组表 process_group
@@ -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